Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

22
Analisis dan Implementasi Algoritma Backtracking pada Permainan Hangman Proposal Skripsi DELY UTARI 071401035

Transcript of Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Page 1: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Analisis dan Implementasi Algoritma Backtracking pada Permainan

Hangman

Proposal Skripsi

DELY UTARI071401035

Page 2: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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

Page 3: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Latar Belakang (lnjut.)

Page 4: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Rumusan Masalah

1. Bagaimana mengimplementasikan algoritma Backtracking sebagai kecerdasan buatan pada permainan Hangman.

2. Bagaimana merancang dan membangun permainan Hangman yang menarik dan edukatif.

Page 5: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 6: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Tujuan Penelitian

1. Menerapkan algoritma Backtracking sebagai kecerdasan buatan pada permainan Hangman.

2. Merancang dan membangun permainan komputer yang menarik dan edukatif.

Page 7: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 8: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Tinjauan Pustaka

1. HangmanHangman 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.

Page 9: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.)

Page 10: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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 deretnyaxn-1 = bilangan acak sebelumnyaa = faktor pengalib = konstanta penambahm = modulus

Tinjauan Pustaka (lnjut.)

Page 11: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.)

Page 12: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.)

Page 13: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 14: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Tinjauan Pustaka (lnjut.)

Berikut ini adalah skema umum Algoritma Runut Balik:

procedure RunutBalik(input k:integer){Mencari semua solusi persoalan dengan metode runut balikMasukan: 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

Page 15: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 16: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 17: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 18: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Metodologi Penelitian

1. Studi Literatur2. Pengumpulan Data3. Analisis Masalah4. Implementasi Sistem5. Pengujian Sistem6. Penulisan Skripsi

Page 19: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

Rencana Jadwal Kegiatan

No. Nama Kegiatan

Tahun 2011

April Mei Juni Juli Agustus September

1 Pembuatan Proposal                                                

2 Studi Literatur                                                

3 Seminar Proposal                                                

4 Perbaikan Proposal                                                

5Analisis dan Perancangan Sistem

                                               

6Implementasi dan Pengujian Sistem

                                               

7 Penulisan Skripsi                                                

8 Seminar Hasil                                                

9 Perbaikan Skripsi                                                

10 Sidang Meja Hijau                                                

Page 20: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 21: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

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.

Page 22: Analisis Dan Implementasi Algoritma Backtracking Pada Permainan Hangman

SEKIAN

TERIMA KASIH