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