Analisis Algoritma Aplikasi Permainan Congklak Berbasis Android Menggunakan Algoritma Minimax

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI Kecerdasan buatan atau Artificial Intelligence AI merupakan bagian dari ilmu pengetahuan yang penting dalam bidang komputer. Banyak permainan komputer yang memanfaatkan kecerdasan buatan untuk membuat permainan tersebut bertindak cerdas dengan memilih langkah terbaik pada permainan. Tetapi banyak orang yang memainkan permainan tersebut tidak mengerti cara kerja dari kecerdasan buatan itu sendiri. Oleh karena itu, penulis mencoba membuat suatu aplikasi permainan congklak yang memiliki kecerdasan buatan yaitu dengan menggunakan algoritma Minimax yang dioptimasi oleh Alpha Beta Pruning dan menjelaskan cara kerja algoritma tersebut pada permainan congklak.

3.1 Analisis Algoritma

Pada bab sebelumnya telah dijelaskan tentang algoritma Minimax dan cara kerjanya secara umum. Pada bab ini, penulis akan menjelaskan tentang penerapan algoritma Minimax yang dioptimasi dengan Alpha Beta Pruning pada permainan congklak yang akan dirancang. Tetapi sebelum membahas analisis algoritma Minimax dan Alpha Beta Pruning penulis akan membahas analisis algoritma permainan congklak terlebih dahulu.

3.1.1 Analisis Algoritma Permainan Congklak

Permainan congklak adalah permainan dengan 2 orang pemain, menggunakan biji dengan arena permainan umumnya memiliki 16 buah lubang tempat biji diletakkan, dimana 2 lubang merupakan lumbung lubang penyimpanan milik masing-masing pemain. Tujuan dari permainan congklak adalah memasukkan biji sebanyak- Universitas Sumatera Utara banyaknya di lumbung milik sendiri. Dalam bermain congklak terdapat 2 kriteria yang diutamakan. Adapun kriteria yang dimaksud adalah sebagai berikut: 1. Pemilihan langkah free turn. Langkah free turn merupakan langkah dimana pemain dapat melakukan langkah selanjutnya karena telah memasukkan biji terakhir yang berada di tangan ke dalam lumbung. Langkah ini diutamakan dalam permainan congklak karena pemain dapat terus melanjutkan permainan. Berikut ini adalah contoh gambar keadaan papan congklak untuk menemukan langkah free turn. B7 B6 B5 B4 B3 B2 B1 7 7 7 7 7 7 7 L1 L2 7 7 7 7 7 7 7 A1 A2 A3 A4 A5 A6 A7 Gambar 3.1 Keadaan papan congklak untuk menemukan langkah free turn Dari gambar di atas, hasil dari penelusuran pohon permainan adalah memilih lubang B7. Karena jika biji pada lubang B7 dijalankan akan berhenti pada lumbung dan dapat melakukan langkah selanjutnya free turn. Berikut ini adalah gambar pohon permainan untuk menemukan langkah free turn pada congklak: Universitas Sumatera Utara Gambar 3.2 Pohon permainan untuk menemukan langkah free turn Keterangan: A1-A7 : merupakan daerah permainan Player 1 B1-B7 : merupakan daerah permainan Player 2. Pada permainan Single Player yang bertindak sebagai Player 2 adalah AI komputer L1 : daerah lumbung Player 1. Lumbung ini hanya dapat diisi oleh Player 1 L2 : daerah lumbung Player 2. Lumbung ini hanya dapat diisi oleh Player 2 x,y : x merupakan jumlah biji yang berada di lumbung. y merupakan jumlah biji yang berada pada lubang yang dipilih oleh pemain T z : T merupakan langkah tembak yang dilakukan pemain dan z merupakan jumlah biji yang ditembak 2. Pemilihan langkah melakukan tembak. Langkah ini dipilih jika tidak tersedia pilihan langkah free turn. Langkah tembak terjadi apabila biji terakhir yang berada di tangan jatuh di lubang kosong di arena permainan sendiri dan di hadapannya terdapat lubang lawan yang berisi biji biji0. Atau pemain juga dapat memilih langkah tembak ini pada arena permainan sendiri jika langkah ini dianggap lebih menguntungkan dibanding menjalalankan biji B1 B2 B3 B4 B5 B6 B7 B2 B1 B3 B4 B5 B6 A1 A2 A3 A4 A5 A6 L2 L2 L2 L2 L2 L2 L2 0,7 0,7 0,7 0,7 0,7 0,7 1,8 1,8 1,8 1,8 1,8 7 10 10 10 10 10 T9 T9 T9 T9 T9 T9 1,0 1,0 1,0 1,0 1,0 0,7 1,8 10 1,0 Universitas Sumatera Utara pada lubang lain. Berikut ini adalah contoh gambar keadaan papan congklak untuk menemukan langkah tembak: B7 B6 B5 B4 B3 B2 B1 2 3 1 9 5 L1 L2 23 20 11 8 4 12 A1 A2 A3 A4 A5 A6 A7 Gambar 3.3 Keadaan papan congklak untuk menemukan langkah tembak Dari gambar di atas, hasil dari penelusuran pohon permainan adalah memilih lubang B2. Karena jika biji pada lubang B2 dijalankan akan berhenti pada lubang yang dapat melakukan tembak. Dan langkah B2 juga menghasilkan poin tertinggi dibandingkan langkah lubang yang lainnya. Berikut ini adalah gambar pohon permainan untuk menemukan langkah tembak pada congklak: Universitas Sumatera Utara Gambar 3.4 Pohon permainan untuk menemukan langkah tembak

3.1.2 Analisis Algoritma Minimax

Pada permainan congklak ini algoritma Minimax hanya digunakan pada level Hard. Algoritma Minimax diterapkan pada simulasi untuk mendapatkan langkah free turn. B7 B6 B5 B4 B3 B2 B1 A1 A5 A1 B7 B3 A2 B3 A5 B5 L2 B6 L2 B4 L2 20,3 20,9 20,1 20,5 20,1 20,10 21,12 20,10 21,5 21 10 22,6 21,0 21,3 L2 B2 L2 B1 A6 A6 L2 21,0 21,2 21,0 T14 35 22,5 22,3 23,15 24,0 24 T9 21 20,2 29 20,0 Universitas Sumatera Utara Langkah simulasi ini dipilih jika tidak tersedia pilihan langkah free turn dan langkah tembak. Simulasi dilakukan sampai AI menemukan langkah free turn. Berikut ini adalah contoh gambar keadaan papan congklak pada simulasi menemukan langkah terbaik: B7 B6 B5 B4 B3 B2 B1 6 2 3 1 16 4 L1 L2 48 4 6 2 1 1 4 A1 A2 A3 A4 A5 A6 A7 Gambar 3.5 Keadaan papan congklak pada simulasi menemukan langkah terbaik Dari gambar di atas, hasil dari penelusuran algoritma Minimax adalah memilih lubang B7. Dalam kondisi ini terdapat dua nilai free turn yang sama yaitu 6 pada lubang B7 dan B3. Penelusuran algoritma Minimax dapat dilihat pada gambar berikut: Universitas Sumatera Utara Gambar 3.6 Pohon permainan menggunakan algoritma Minimax pada simulasi menemukan langkah terbaik Karena terdapat dua nilai yang sama yaitu pada lubang B7 dan B3 maka algoritma Minimax melakukan simulasi pada player dengan tujuan mengetahui nilai maksimum yang akan diperoleh oleh player. L2 B7 B6 B5 B4 B3 B2 B1 B2 A4 L2 L2 L2 B1 B4 B2 B2 B2 B6 B1 A5 4,2 4,3 4,16 4,4 4,2 4,0 5,2 5,2 4 5,6 L2 4,0 A3 B3 A2 L2 4,6 4,5 6,3 A7 B7 17 5 T10 6 4 5,0 B7 5,3 6 5,4 5,2 4,1 4,17 6,8 7,7 7,0 Universitas Sumatera Utara Berikut ini adalah gambar keadaan papan congklak setelah lubang B7 menemukan langkah free turn dan pohon permainan menggunakan algoritma Minimax untuk mengetahui nilai maksimum yang akan diperoleh player a: B7 B6 B5 B4 B3 B2 B1 1 5 3 18 1 L1 L2 48 6 7 3 2 1 1 5 A1 A2 A3 A4 A5 A6 A7 Gambar 3.7 Keadaan papan congklak setelah lubang B7 menemukan langkah free turn Gambar 3.8 Pohon permainan menggunakan algoritma Minimax pada simulasi player a A7 A6 A5 A4 A3 A2 A1 A3 B1 L1 B5 A5 A1 A4 B7 A2 L1 A6 L1 A6 B2 48,1 48,2 49,0 48,3 48,7 48,2 48,8 48,1 49,2 52 49 49,2 48,0 49,6 B6 A4 L1 A4 L1 L1 48,3 49,2 49,0 T4 53 49,2 49,0 49 T4 53 48,5 48,4 49,0 49 Universitas Sumatera Utara Berikut ini adalah gambar keadaan papan congklak setelah lubang B3 menemukan langkah free turn dan dan pohon permainan menggunakan algoritma Minimax untuk mengetahui nilai maksimum yang akan diperoleh player b: B7 B6 B5 B4 B3 B2 B1 7 3 4 2 1 3 L1 L2 48 6 7 3 2 2 1 1 5 A1 A2 A3 A4 A5 A6 A7 Gambar 3.9 Keadaan papan congklak setelah lubang B3 menemukan langkah free turn Gambar 3.10 Pohon permainan menggunakan algoritma Minimax pada simulasi player b A7 A6 A5 A4 A3 A2 A1 A3 B1 A1 A6 A5 A1 A4 B7 A2 L1 A4 L1 A4 B2 48,1 48,2 49,0 48,3 48,7 48,2 48,8 48,1 49,8 49 49 49,4 48,4 49,2 B6 A1 A7 A1 A4 B2 48,3 49,3 49,9 T9 51 49,3 49,0 49 T4 58 B1 L1 L1 L1 L1 B2 B6 A2 L1 48,4 49,4 48,5 49,0 49,4 49,4 48,8 48,3 48,2 49,0 49,0 50,7 49 49 Universitas Sumatera Utara Dari dua simulasi yang telah dilakukan pada player maka didapatkan hasil berikut ini: Gambar 3.11 Pohon penelusuran algoritma Minimax Berdasarkan gambar di atas dapat dilihat bahwa nilai maksimum yang diperoleh player jika AI memilih lubang B7 adalah 53 dan nilai maksimum yang diperoleh player jika AI memilih lubang B3 adalah 58. Oleh sebab itu algoritma Minimax memilih lubang B7 untuk menghindari kerugian maksimum yang akan diperoleh AI. Untuk lebih jelasnya penerapan algoritma Minimax pada aplikasi permainan congklak ini dapat lihat pada pseudocode berikut: pencarian minimax { int AIvalue ← 0 tmpBoard[i] ← 0 int minval ← -99 i ← banyak biji di lumbung simulasi ifbestmovevalue = Aivalue Aivalue 0 ifbestmovevalue AIvalue bestmovevalue ← AIvalue bestmove ← i else ifbestmovevalue == Aivalue int val ← getMinPlayertmpBoard -1 ifval minval minval ← val bestmovevalue ← AIvalue bestmove ← i endif endif else ifbestmovevalue Aivalue B7 53 58 48 52 49 49 49 53 53 51 58 49 53 49 49 B7 B3 53 49 Universitas Sumatera Utara bestmovevalue ← bestmove bestmove ← i endif return bestmove }

3.1.3 Analisis Algoritma Alpha Beta Pruning

Seperti yang telah dibahas pada bab sebelumnya, penulis menggunakan algoritma Alpha Beta Pruning untuk mempersingkat waktu pencarian sekaligus sebagai optimasi algoritma Minimax. Algoritma Alpha Beta Pruning akan mengurangi ruang pencarian Minimax sehingga waktu eksekusi untuk algoritma ini akan lebih efisien. Berikut ini adalah contoh pohon permainan yang dianalisis dengan algoritma Alpha Beta Pruning: Gambar 3.12 Pohon permainan menggunakan algoritma Alpha Beta Pruning

3.2 Perancangan Sistem