Você está na página 1de 22

Analisis dan Implementasi Algoritma

Backtracking pada Permainan


Hangman

Proposal Skripsi

DELY UTARI
071401035
Latar Belakang
Permainan sering digunakan sebagai contoh dalam mengajar Kecerdasan
Buatan. Permainan merupakan suatu sarana hiburan yang diminati dan dimainkan
oleh banyak kalangan. Permainan juga dapat berguna untuk melatih dan
mengasah kemampuan berpikir seseorang.

Permainan Hangman adalah salah satu permainan kata klasik dimana


pemain akan menebak sebuah kata rahasia, huruf demi huruf. Pemain hanya
mengetahui jumlah huruf pada kata berdasarkan jumlah ruang kosong yang
tersedia untuk ditebak. Hangman dapat mengasah otak dan dijadikan sebagai
media pembelajaran kosakata untuk beberapa bahasa serta dapat dimainkan oleh
berbagai usia.

Algoritma Runut Balik (Backtracking) sering digunakan dalam beberapa


penyelesaian masalah dan untuk memberikan kecerdasan buatan dalam
permainan.
Latar Belakang (lnjut.)
Penulis tertarik untuk menerapkan algoritma runut balik ini
sebagai kecerdasan buatan dalam permainan Hangman. Permainan terdiri
dari dua pemain. Pemain pertama adalah manusia dan pemain kedua
adalah komputer. Sejumlah kata akan disimpan dalam sebuah database.
Kata rahasia yang akan ditebak, dipilih secara acak dari database tersebut
dengan pembangkit bilangan acak. Selanjutnya pemain secara bergantian
akan menebak huruf demi huruf sampai kata tersebut berhasil ditebak.

Pemain yang berhasil menebak huruf terakhir dari kata rahasia


yang dimaksud adalah pemenangnya. Komputer sebagai pemain kedua
akan menggunakan algoritma runut balik sebagai kecerdasan buatan yang
akan mencari huruf-huruf yang sesuai dengan kata yang ditebak. Selain
itu, digunakan pula algoritma pencocokan string untuk mencocokkan
huruf yang dimasukkan pemain dengan kata yang ditebak.
Rumusan Masalah
1. Bagaimana mengimplementasikan algoritma Backtracking
sebagai kecerdasan buatan pada permainan Hangman.
2. Bagaimana merancang dan membangun permainan
Hangman yang menarik dan edukatif.
Batasan Masalah
1. Kata yang akan ditebak disediakan oleh sistem.
2. Kata yang akan ditebak adalah kosakata dalam Bahasa
Indonesia, khususnya kata-kata yang berhubungan dengan
bidang ilmu komputer.
3. Pembangunan permainan Hangman ini menggunakan
aplikasi Macromedia Flash 8 dan Database Management
System (DBMS) MySQL.
Tujuan Penelitian
1. Menerapkan algoritma Backtracking sebagai kecerdasan
buatan pada permainan Hangman.
2. Merancang dan membangun permainan komputer yang
menarik dan edukatif.
Manfaat Penelitian
Manfaat dari penelitian ini adalah untuk
mengimplementasikan algoritma backtracking dalam pencarian
huruf-huruf yang sesuai dengan kata rahasia dan mengasah
kemampuan pemain untuk menebak kata serta menambah
perbendaharaan kata, khususnya Bahasa Indonesia.
Tinjauan Pustaka
1. Hangman
Hangman dimainkan sebagai berikut:
a. Satu pemain memilih kata rahasia, kemudian menuliskan sejumlah
garis sama banyak dengan panjang kata.
b. Pemain lain mulai menebak huruf. Jika seorang pemain menebak
sebuah huruf dan ternyata yang ada pada kata, pemain yang pertama
mengungkapkan semua huruf tersebut dalam kata. Jika tidak, maka
tebakan salah dan pemain pertama menggambarkan satu elemen
dari bagan Hangman sebagai tanda perhitungan.
c. Permainan berakhir ketika semua huruf dalam kata telah terungkap
atau bila penebak sudah kehabisan tebakan.
Tinjauan Pustaka (lnjut.)
Sifat Hangman bisa berbeda-beda. Beberapa
pemain menggambar tiang gantungan sebelum
bermain dan menggambar bagian tubuh manusia
(seperti kepala, badan, tangan kiri, tangan kanan, kaki
kiri dan kaki kanan satu per satu) saat permainan.
Pemain lain memulai tanpa gambar sama sekali untuk
memberikan peluang lebih banyak kepada pemain lain
untuk menebak. Jumlah bagian tubuh manusia juga
dapat bervariasi, tergantung jumlah peluang yang akan
diberikan. Alternatif lainnya adalah membuat
permainan sedikit lebih mudah dengan memberikan
definisi kata sehingga memungkinkan permainan
untuk belajar bahasa.
Tinjauan Pustaka (lnjut.)
2. Pembangkit Bilangan Acak
Dalam pengacakan kata dalam permainan Hangman akan digunakan salah
satu pembangkit bilangan acak yang cukup terkenal, yaitu Linear
Congruential Generator (LCG). LCG merupakan pembangkit bilangan
acak yang sederhana, mudah dimengerti, dan juga mudah untuk
diimplementasikan. LCG didefinisikan dalam relasi berulang berikut:
xn= ( a . xn-1 + b ) mod m (2.1)
dimana:
xn = bilangan acak ke-n dari deretnya
xn-1 = bilangan acak sebelumnya
a = faktor pengali
b = konstanta penambah
m = modulus
Tinjauan Pustaka (lnjut.)
LCG mempunyai periode tidak lebih besar dari m dan pada
kebanyakan kasus periodenya kurang dari itu. Maksudnya adalah deret
bilangan acak yang dihasilkan tidak lebih banyak dari modulonya.
Keunggulan LCG terletak pada kecepatannya dan hanya membutuhkan
sedikit operasi bit. LCG berguna untuk aplikasi non-kriptografi seperti
simulasi, sebab LCG mangkus dan memperlihatkan sifat statistik yang
bagus dan sangat tepat untuk uji-uji empiris. 
Tinjauan Pustaka (lnjut.)
3. Algoritma Runut Balik (Backtracking)
Algoritma Backtracking atau runut balik adalah algoritma yang
cara kerjanya berdasarkan pada DFS (Depth Search First). Algoritma
ini merupakan perbaikan dari algoritma Brute Force. Algoritma runut
balik yang secara sistematis mencari solusi persoalan di antara semua
kemungkinan solusi yang ada kemudian membangkitkan simpul dari
solusi yang mendekati penyelesaian. Dengan kata lain kita tidak perlu
membangkitkan simpul yang menjauhi solusi sehingga waktu pencarian
solusi dapat dikurangi. (Enrich, 2008).
Tinjauan Pustaka (lnjut.)
Properti-properti dalam algoritma runut balik adalah sebagai berikut :
1. Solusi persoalan
Solusi dinyatakan sebagai : X = (x1, x2, …, xn), xi  Si.
Mungkin saja S1=S2=…=Sn. Contoh: Si={0, 1}, xi = 0 atau 1
2. Fungsi pembangkit nilai xk
Dinyatakan sebagai : T(k)
T(k) membangkitkan nilai untuk xk yang merupakan komponen
vektor solusi.
3. Fungsi pembatas (fungsi kriteria)
Dinyatakan sebagai : B( x1, x2, ..., xk )
Fungsi pembatas menentukan apakah ( x1, x2, ..., xk ) mengarah ke
solusi.
Tinjauan Pustaka (lnjut.)
Berikut ini adalah skema umum Algoritma Runut Balik:

procedure RunutBalik(input k:integer)


{Mencari semua solusi persoalan dengan metode runut balik
Masukan: k, yaitu indeks komponen vektor solusi, x[k]
Keluaran: solusi x = (x[1], x[2], ..., x[n])
}
Algoritma:
for tiap x[k] yang belum dicoba sedemikian sehingga
(x[k] ← T(k)) and B (x[1], x[2], ..., x[k] = true do
if (x[1], x[2], ..., x[k]) adalah lintasan dari akar ke daun
then
CetakSolusi(x)
Endif
RunutBalik(k+1){Tentukan nilai untuk x[k+1]}
endfor
Tinjauan Pustaka (lnjut.)
4. Pencocokan String
String matching adalah suatu metode yang digunakan untuk
mencocokkan lambang atau huruf (string) dalam suatu deret. Pada
metode ini akan dipelajari bagaimana komputer bisa mendapatkan satu
pola atau dereten pola yang diberikan. Ide dasarnya muncul dari
permasalahan umum yaitu bagaimana mendapat simbol atau huruf
dalam kumpulan teks yang diberikan. (Purwanto, 2008).
Teks (text) yaitu (long) string yang panjangnya n karakter. Pattern
yaitu string dengan panjang m karakter (m<n) yang akan dicari di
dalam teks. Misalnya diberikan teks dengan n karakter dalam array
T[1..n] dan suatu pola dengan m karakter dalam array P[1..m].
Bagaimana mendapat integer s (disebut valid shift) yang memenuhi 0
 s  n-m dan T[s + 1..s + m] = P[1..m]. Jika P sebagai substring dari
T, selanjutnya akan diketahui apakah P di dalam T.
Tinjauan Pustaka (lnjut.)
Naive string matching (NSM) adalah salah satu algoritma
dalam bidang pattern matching atau pencocokan pola, yang
umumnya digunakan untuk mencari suatu pola atau kata di dalam
suatu teks yang tersusun dari sederetan karakter yang dalam dunia
pemrograman dikenal dengan sebutan string. Algoritma ini disebut
naive atau naif karena metode yang digunakan adalah perbandingan
langsung untuk tiap bagian teks dengan pola yang sedang dicari dan
ditelusuri secara sequensial (terurut) dari kiri ke kanan mulai
karakter pertama sampai karakter terakhir di dalam string teks.
Metode ini juga disebut metode brute force.
Tinjauan Pustaka (lnjut.)
Algoritma backtracking telah banyak diterapkan dalam
beberapa permainan. Penelitian yang dilakukan Amin, 2007
menggunakan algoritma runut balik pada permainan teka-teki silang
untuk mengisi kotak-kotak permainan yang sebelumnya telah
dibuat. Algoritma backtracking dapat pula gunakan pada permainan
word diagram seperti penelitian yang dilakukan Saputra, 2007.
Dalam penelitian yang dilakukan Irwanti, 2010 algoritma
backtracking digunakan dalam mencari anagram dari sebuah kata.
Metodologi Penelitian
1. Studi Literatur
2. Pengumpulan Data
3. Analisis Masalah
4. Implementasi Sistem
5. Pengujian Sistem
6. Penulisan Skripsi
Rencana Jadwal Kegiatan
Tahun 2011
No. Nama Kegiatan
April Mei Juni Juli Agustus September

1 Pembuatan Proposal                                                

2 Studi Literatur                                                

3 Seminar Proposal                                                

4 Perbaikan Proposal                                                

Analisis dan Perancangan


5                                                
Sistem

Implementasi dan Pengujian


6                                                
Sistem

7 Penulisan Skripsi                                                

8 Seminar Hasil                                                

9 Perbaikan Skripsi                                                

10 Sidang Meja Hijau                                                


DAFTAR PUSTAKA
Aho, A. V., Hopcroft, J. E., dan Ullman, J. D. 1983. Data Structures and Algorithms.
USA:Addison-Wesley Publishing Company.
Amin, Imaduddin. 2007. Diakses tanggal 5 April 2011. Penerapan Algoritma Runut
Balik dalam Permainan Teka-Teki Silang.
http://www.informatika.org/~rinaldi/Stmik/2006-007/Makalah_2007/
MakalahSTMIK2007-098.pdf.
Enrich, Kenny. 2008. Diakses tanggal 5 April 2011. Penerapan Algoritma Runut-Balik
(Backtracking) pada Permainan Menyeberangkan Serigala, Kambing, dan Sayuran.
http://www.informatika.org/~rinaldi/Stmik/2007-
2008/Makalah2008/MakalahIF2251-2008-081.pdf.
Irwanti, Silvina. 2010. Implementasi Algoritma Backtracking dalam Perancangan
Perangkat Lunak Game Anagram. Skripsi. Medan:Program Studi S1 Ilmu Komputer
Universitas Sumatera Utara.
Munir, Rinaldi. 2006. Kriptografi. Bandung:Informatika.
Munir, Rinaldi. 2007. Diktat Kuliah Strategi Algoritmik. Edisi 2007. Bandung:Program
Studi Teknik Informatika STEI ITB.
DAFTAR PUSTAKA (lnjut.)
Purwanto, Eko B. 2008. Perancangan dan Analisis Algoritma. Yogyakarta:Graha
Ilmu.
Putra, D. N., dkk. Diakses tanggal 5 April 2011. Penerapan dan Implementasi
Algoritma Backtracking.http://www.informatika.org/~rinaldi/Stmik/
Makalah/MakalahStmik26.pdf.
Santosa, A. D. 2011. Diakses tanggal 16 April 2011. Analisis Frekuensi Teks
Bahasa Inggris dan Indonesia, dan Efektifitasnya Jika Disisipkan ke Citra
Bitmap. http://www.informatika.org/~rinaldi/Kriptografi/2010-2011/
Makalah1/Makalah1-IF3058-Sem1-2010-2011-074.pdf.
Suparman dan Marlan. 2007. Komputer Masa Depan Pengenalan Artificial
Intelligence. Yogyakarta:ANDI.
Saputra, Ivan. 2007. Diakses tangal 5 April 2011. Algoritma Runut Balik dalam
Penyelesaian Permainan Word Diagram.
http://www.informatika.org/~rinaldi/Stmik/2006-2007/Makalah2007/
MakalahSTMIK2007-074.pdf.
SEKIAN

TERIMA KASIH

Você também pode gostar