KECERDASAN BUATAN TIC TAC TOE DENGAN A

Permainan Congklak Mini
dengan Algoritma Minimax
Oleh : Kelompok 8
5112100008 Rahmat Irfan
5112100038 Madis Saralita
5112100195 Oshi P. Gusman
5112100208 Nurindah Tiffani Rachman
Permainan congklak adalah permainan tradisional jawa yang memerlukan strategi
matematika untuk bisa memenangkannya. Permainan ini juga dikenal dengan istilah ‘dakon’
atau ‘dakonan’. Congklak dimainkan oleh 2 orang. Pada umumnya, permainan congklak
menggunakan papan yang memiliki 16 lubang seperti mangkok. Setiap sisi memiliki 7 lubang
untuk menampung biji yang awalnya masing-masing berisi 7 biji, sedangkan di kedua
ujungnya memiliki lubang yang lebih besar untuk menampung biji hasil permainan. Semakin
banyak lubang maka permainan akan semakin lama dan diperlukan strategi yang lebih untuk
memenangkannya. Permainan ini bisa diterapkan menjadi permainan komputer dengan
menggunakan Artificial Intelligence.
Kata Kunci : Minimax, Heuristik, Congklak, Dakon, Lubang, Mangkok, Biji, DOR.

Penjabaran Metode dan Masalah
Strategi permainan congklak yang kami buat akan diselesaikan menggunakan
algoritma minimax. Algoritma minimax digunakan untuk menentukan langkah awal yang

memberikan kesempatan menang lebih besar pada komputer. Algoritma minimax yang
digunakan dibatasi sampai 3 kedalaman. Karena goal state dari permainan congklak dilihat
dari banyaknya biji dalam mangkok, maka dibuat semua kemungkinan jalan untuk komputer
yang akan menghasilkan biji lebih banyak dari lawan. Sedangkan, untuk menghasilkan
keputusan terbaik akan dibandingkan menggunakan nilai heuristik.
Karena permainan congklak dengan 16 lubang membutuhkan waktu yang lama untuk
menyelesaikannya. Maka, masalah yang akan kami pecahkan menggunakan 8 lubang yang
terdiri dari 6 lubang kecil yang berisi 6 biji setiap lubangnya dan 2 lubang besar. Permainan
dimainkan oleh 2 pemain yaitu, pemain komputer dan pemain lawan. Masing-masing pemain
memiliki 3 lubang kecil dan 1 lubang besar. 1 lubang besar ini kami istilahkan dengan nama
‘mangkok’. Berikut adalah ilustrasi papan permainannya jika digambarkan dengan matriks:
Lubang
Pemain Komputer

6

6

6


0

Mangkok Pemain Komputer

6

6

6

0

Mangkok Pemain Lawan

Lubang
Pemain Lawan

Aturan Permainan
1. Congklak dimainkan oleh dua pemain yaitu, pemain komputer dan pemain lawan.
2. Masing-masing pemain memiliki 3 lubang kecil yang berisi 6 biji untuk masingmasing lubangnya dan 1 mangkok.

3. Permainan dimulai dengan:
Pemain memilih biji pada lubang miliknya dan menjatuhkan setiap biji ke lubang
permainan dan mangkok miliknya (mangkok lawan tidak diisi) searah jarum jam.
4. Permainan DOR jika :
a. Pemain menjatuhkan biji terakhir pada lubang miliknya yang kosong.
i. Pada lubang lawan yang sejajar terdapat biji.
ii. Pemain dapat mengambil biji pada lubang lawan yang sejajar.
iii. Pemain menjatuhkan satu per satu biji yang didapat dari lubang lawan tadi di
setiap lubang permainan dan mangkok miliknya.
b. Pemain menjatuhkan biji terakhir pada lubang miliknya yang kosong.
i. Pada lubang lawan yang sejajar tidak terdapat biji (kosong).
ii. Pemain memasukkan biji terkakhir yang dijatuhkan pada mangkok miliknya.
5. Akhir giliran pemain jika :
a. Biji terakhir yang dijatuhkan pemain berada pada lubang kosong miliknya dan
sudah mengambil 3 kali biji.
b. Biji terakhir yang dijatuhkan pemain berada pada lubang kosong milik lawan.
c. Sudah mengambil biji sebanyak 3 kali.
6. Permainan berakhir jika :
Tidak ada lagi biji yang terdapat pada lubang pemain komputer atau pemain
lawan.

7. Pemain menang jika :
Jumlah biji pada mangkoknya memiliki jumlah terbanyak.

Tahapan Penyelesaian Algoritma
1. Insialisasi biji dan lubang.
Seperti yang telah diilustrasikan pada penjabaran masalah. Berikut adalah
susunan matriksnya yang menginisialisasi lubang dan bijinya. Sedangkan in akan
digunakan sebagai acuan pengambilan biji.
i1

i2

i3

6

6

6


0

6

6

6

0

i1

i2

i3

2. Pencarian kemungkinan langkah.
Karena banyak tabel yang harus dibuat, kami akan mengilustrasikannya secara
terpisah dulu. Untuk melihat tabel perhitungan pohon pencarian secara keseluruhan,
buka file pada excel yang kami sertakan.


Keterangan :
x
x
x
x
x

Ambil biji ke 1 (pada putaran pertama)
Ambil biji ke 2 (pada putaran kedua)
Ambil biji ke 3 (pada putaran ketiga)
DOR
Biji terakhir jatuh untuk 3x ambil biji

Case 1 : Pemain mengmbil biji pertama pada i1

Gambar 1.Pohon Pencarian Pengambilan Dimulai dari i1

Case 2 : Pemain mengmbil biji pertama pada i2


Gambar 2.Pohon Pencarian Pengambilan Dimulai dari i2

Case 3 : Pemain mengmbil biji pertama pada i3

Gambar 3.Pohon Pencarian Pengambilan Dimulai dari i3

3. Perhitungan nilai heuristik.
Sebuah fungsi heuristik ditentukan dengan faktor - faktor yang mempengaruhi
permasalahan. Dari permasalahan tersebut, maka disimpulkan ada 3 kondisi yang
mempengaruhi permainan congklak mini yaitu :
a. Total biji yang ada pada mangkok pemain komputer dan pemain lawan.
b. Permainan DOR, jika ada kondisi DOR maka nilai +1 dan jika tidak DOR maka
nilai +0.
c. Biji komputer sebelum permainan berjalan yaitu biji komputer yang ada dalam
mangkok pada akar kedalaman 3 dikurangi biji komputer pada akar kedalaman 2.

Mengacu pada 3 faktor di atas, fungsi heuristik dengan minimax untuk permainan
congklak mini merupakan total dari beberapa heuristik yang rumusnya sebagai
berikut:
n


H=

∑ hi
i=1

Keterangan :
H = Total nilai heuristik permainan congklak mini
n = Batas heuristik
hi = jumlah nilai heursitik pada kondisi tertentu.
Perhitungan heuristik pada masing masing kondisi dijabarkan sebagai berikut :
a. Total biji dalam mangkok komputer pada akar kedalaman
h1 = mangkok_komputer – mangkok_lawan
Keterangan :
h1 = jumlah biji dalam mangkok
mangkok_komputer = jumlah biji dalam mangkok komputer
mangkok_lawan = jumlah biji dalam mangkok lawan
b. Permainan DOR
+0 , jika tidak ada kondisi DOR
h2 =

+1 , jika ada kondisi DOR
Keterangan :
h2 = jumlah biji hasil DOR
c. Total biji yang ada pada mangkok komputer sebelum akar kedalaman
h3 = mangkok_komputerj – mangkok_komputerj-1
Keterangan :
h3 = jumlah biji dalam mangkok komputer

j = level akar kedalaman

Gambar 4. Pohon Pencarian 3 Akar Kedalaman dengan 3 Lubang 6 Biji

Perhitungan nilai heuristik akan dilakukan per tabel dahulu agar jelas. Tabel yang
dihitung nilai heuristiknya adalah tabel pada akar kedalaman.
h3 = 8 – 6 = 2
HC2 = h1 + h2 + h3 = 10

Heuristik akar C1 :
h1 = 8 – 0 = 8
h2 = 0

h3 = 8 – 6 = 2
HC1 = h1 + h2 + h3 = 10

Heuristik akar C2 :
h1 = 8 – 0 = 8
h2 = 0

Heuristik akar C3 :
h1 = 9 – 0 = 9
h2 = 1
h3 = 9 – 6 = 3
HC3 = h1 + h2 + h3 = 13

Heuristik akar D1 :

h1 = 14 – 0 = 14
h2 = 1
h3 = 14 – 6 = 8
HD1 = h1 + h2 + h3 = 23


Heuristik akar D2 :
h1 = 8 – 0 = 8
h2 = 0
h3 = 8 – 6 = 2

HD2 = h1 + h2 + h3 = 10

Heuristik akar D3 :
h1 = 8 – 0 = 8
h2 = 0
h3 = 8 – 6 = 2
HD3 = h1 + h2 + h3 = 10

Heuristik akar E1 :
h1 = 14 – 0 = 14
h2 = 1
h3 = 14 – 7 = 7
HE1 = h1 + h2 + h3 = 22

Heuristik akar E2 :
h1 = 10 – 0 = 10
h2 = 0
h3 = 10 – 7 = 3
HE2 = h1 + h2 + h3 = 13

Heuristik akar G1 :
h1 = 16 – 0 = 16
h2 = 0
h3 = 16 – 14 = 2
HG1 = h1 + h2 + h3 = 18

Heuristik akar G2 :
h1 = 17 – 0 = 17

h2 = 0
h3 = 17 – 14 = 3
HG2 = h1 + h2 + h3 = 20

Heuristik akar G3 :
h1 = 16 – 0 = 16
h2 = 0
h3 = 16 – 14 = 2
HG3 = h1 + h2 + h3 = 18

h3 = 17 – 14 = 3
HJ1 = h1 + h2 + h3 = 21

Heuristik akar H1 :
h1 = 25 – 0 = 25
h2 = 1
h3 = 25 – 15 = 10
HH1 = h1 + h2 + h3 = 36

Heuristik akar J1 :
h1 = 17 – 0 = 17
h2 = 1

Heuristik akar K1 :
h1 = 16 – 0 = 16
h2 = 1
h3 = 16 – 14 = 2
HK1 = h1 + h2 + h3 = 19

Heuristik akar K2 :
h1 = 17 – 0 = 17
h2 = 0
h3 = 17 – 14 = 3
HK2 = h1 + h2 + h3 = 20

Gambar 5. Pohon Pencarian dengan Nilai Heuristik

4. Membandingkan nilai heuristik.
Dari nilai heuristik yang didapatkan maka kita bisa melakukan perbandingan
untuk mendapatkan nilai yang memberikan kesempatan lebih besar pada komputer
untuk memenangkan permainan.

Gambar 6. Membandingkan Nilai Heuristik dengan Minimax

5. Didapatkan hasil.
Berdasarkan perbandingan nilai heuristik dengan minimax, didapat hasil
bahwa yang memberikan kesempatan menang lebih besar pada komputer adalah
matriks yang memiliki nilai heuristik 20, yaitu G2 dan K2.