18
3.2 Analisis Algoritma Negamax
3.2.1 Pohon Permainan Pohon permainan akan menggambarkan kondisi permainan yang sedang dihadapi
hingga langkah-langkah yang mungkin diambil dalam permainan. Setiap node merepresentasikan posisi dari papan. Dimulai dari node root yang merupakan keadaan
awal permainan. Cabang-cabangnya menunjukan kemungkinan langkah yang dapat diambil menuju ke posisi node berikutnya.
Penulis akan membuat sebuah pohon permainan untuk sebuah kondisi pada permainan catur harimau. Penulis akan membatasi untuk kedalaman pohon sama
dengan tiga. Kedalaman pertama adalah kemungkinan langkah yang dapat diambil bidak harimau, kedalaman kedua giliran kambing dan kedalaman ketiga kembali
giliran harimau. Begitu juga dengan cabang pohon, hanya akan ditampilkan tiga cabang pohon saja jika kemungkinan langkah ada lebih dari tiga. Pada gambar 3.2
dapat dilihat posisi permainan catur harimau yang akan dibuat pohon permianannya.
Gambar 3.2 Kondisi Permaian Catur Harimau
Dari kondisi permainan pada gambar 3.2, penulis dapat membuat sebuah pohon permainan yang dapat merepresentasikan permainan. Bidak bewarna merah
mewakili bidak harimau dan bidak warna hijau mewakili bidak kambing. Jadi saat ini kondisi permainan ada satu bidak harimau, tiga bidak kambing di papan permainan
Universitas Sumatera Utara
19
dan satu bidak kambing diluar papan permaianan. Gambar 3.3 merupakan pohon permainan yang diperoleh dari kondisi permainan gambar 3.2.
Gambar 3.3 Pohon Permainan Catur Harimau
Gambar 3.3 menunjukan pohon permainan saat computer player memainkan bidak harimau. Pada gambar 3.3 tampak ada dua kemungkinan langkah yang dapat
diambil bidak harimau. Adapun langkahnya yaitu 2-1 memindahkan bidak dari titik dua ke titik satu dan 2-4. Jika bidak harimau memilih langkah 2-1, maka kemudian
ada tiga kemungkinan langkah yang dapat diambil bidak kambing yang ditampilkan hanya tiga, kemungkinan langkah sebenarnya ada lebih dari tiga yaitu L-13
memasukan satu bidak kambing dari luar papan permainan ke titik 13, 7-8 dan 12- 13. Kotak dengan isi titik-titik menandakan ada langkah lain selain dari tiga langkah
yang ditampilkan. Setelah pohon permainan terbentuk, maka langkah selanjutnya yaitu
memasukan nilai evaluasi.
3.2.2 Fungsi Evaluasi Dalam algoritma negamax, tugas dari fungsi evaluasi adalah menemukan posisi
terkini dari papan dengan cara memberikan nilai evaluasi pada setiap simpul yang terbentuk yang mewakili nilai dari langkah-langkah yang akan diambil, maka dapat
ditentukan pilihan langkah mana yang akan diambil diantara semua langkah yang ada. Fungsi evaluasi akan dihitung dari sudut pandang kedua pemain, bergantian antara
computer player dan human player dan mereka akan memilih nilai maksimal untuk
Universitas Sumatera Utara
20
diri mereka masing-masing. Hanya saja saat giliran human player, nilai akan dikalikan negative.
Penulis memberikan beberapa nilai evaluasi yang akan diberikan dalam permainan catur harimau ini dengan tujuan agar computer player dapat memilih
langkah terbaik untuk mendapatkan kemenangan dalam permainan.
3.2.2.1 Nilai Melompat Untuk bidak harimau, dia memiliki gerakan khusus yaitu melompati bidak kambing
yang berguna untuk memakan bidak kambing. Karena kondisi menang diperoleh jika semua bidak kambing habis , maka penulis memberikan nilai +9999 untuk setiap
gerakan melompat.
3.2.2.2 Nilai Masuk Diawal permainan hanya ada delapan bidak kambing dari total 22 bidak kambing yang
ada dalam papan permainan. Setiap giliran bidak kambing nantinya, pemain yang menggunakan bidak kambing dapat memasukan bidak kambing lainnya kedalam
papan permainan. Oleh karena kesempatan untuk mengepung bidak harimau lawan lebih besar jika dalam papan ada banyak bidak kambing, maka penulis memberikan
nilai +9999 untuk setiap gerakan masuk kedalam papan.
3.2.2.3 Nilai Posisi Untuk menentukan kearah mana langkah yang akan diambil bidak harimau atau ke
posisi mana bidak kambing yang masuk akan diletakan, maka perlu diberikan nilai evaluasi untuk setiap kemungkinan posisi pada papan permainan untuk mengevaluasi
langkah bidak. Saat giliran bidak harimau main, gerakan yang di utamakan adalah gerakan
melompat untuk memakan bidak kambing, oleh karenanya penulis memberikan nilai +9999 saat bidak harimau melompat. Namun saat tidak ada bidak kambing yang dapat
dilompati bidak harimau, maka cara terbaik yaitu memberikan nilai posisi papan untuk setiap kemungkinan langkah yang dapat diambil. Tentu saja langkah terbaik yaitu
gerakan mendekati bidak kambing yang dapat dilompati pada giliran berikutnya. Oleh karena itu penulis memberikan nilai posisi seperti pada table 3.1 berikut :
Universitas Sumatera Utara
21
Tabel 3.1 Nilai Posisi Bidak Harimau Bentuk Formasi
Nilai
_XOE_ Horizontal +500
_EOX_ Horizontal +500
| X
O Vertikal E
| +500
| E
O Vertikal X
| +500
\ X
O Diagonal E
\ +500
\ E
O Diagonal X
\ +500
Pada table 3.1 diatas, X menunjukan bidak harimau, O menunjukan bidak kambing dan E menunjukan posisi papan yang kosong. Jadi saat penelusuran pada
pohon permainan, jika ditemukan posisi seperti salah satu dari formasi diatas, maka akan diberikan nilai +500 pada papan tersebut. Jika ada dua, maka akan ditambahkan
lagi +500 menjadi +1000, begitu seterusnya hingga didapat nilai yang paling maksimum yang akan menjadi pilihan langkah terbaik.
Universitas Sumatera Utara
22
Selanjutnya saat giliran kambing main, maka perlu ditentukan ke titik mana dari papan bidak kambing akan dimasukan, ataupun saat semua bidak kambing sudah
dipapan, kearah mana dia akan digerakan. Oleh karenanya perlu diberikan nilai posisi untuk setiap kemungkinan langkah yang dapat diambil. Untuk bidak kambing,
langkah terbaik yang dapat diambil tentu saja gerakan menghalangi bidak harimau untuk memakan bidak kambing lainnya. Saat tidak ada bidak harimau yang bisa
dihalangi, maka gerakan terbaik yaitu berusaha mengurung bidak harimau agar terpojok dan kehabisan kemungkinan langkah. Oleh karena itu penulis memberikan
nilai posisi seperti pada table 3.2 berikut :
Tabel 3.2 Nilai Posisi Bidak Kambing Bentuk Formasi
Nilai
_XOO_ Horizontal +500
_OOX_ Horizontal +500
| X
O Vertikal O
| +500
| O
O Vertikal X
| +500
\ X
O Diagonal O
\ +500
Universitas Sumatera Utara
23
Tabel 3.2 Nilai Posisi Bidak Kambing lanjutan Bentuk Formasi
Nilai
\ O
O Diagonal X
\ +500
_XEO_ Horizontal +50
_OEX_ Horizontal +50
| X
E Vertikal O
| +50
| O
E Vertikal X
| +50
\ X
E Diagonal O
\ +50
\ O
E Diagonal X
\ +50
_XO_ Horizontal +5
_OX_ Horizontal +5
Universitas Sumatera Utara
24
Tabel 3.2 Nilai Posisi Bidak Kambing lanjutan Bentuk Formasi
Nilai
| X Vertikal
O |
+5
| O Vertikal
X |
+5
\ X Diagonal
O \
+5
\ O Diagonal
X \
+5
Tabel 3.2 menampilkan nilai posisi jika giliran main bidak kambing. X menunjukan bidak harimau, O menunjukan bidak kambing dan E menunjukan papan
yang kosong. Nilai tertinggi diberikan saat posisi _XOO_ baik horizontal, vertikal ataupun diagonal karna posisi itu kita anggap bidak kambing menghambat bidak
harimau untuk memakan bidak kambing yang ditengah. Kemudian jika tidak ada bidak harimau yang ingin dihambat langkahnya maka akan diutamakan posisi _XEO_
baik horizontal, vertikal ataupun diagonal yaitu saat bidak kambing ingin mengurung bidak harimau tapi tidak membuat bidak harimau dapat memakan bidak kambing. Jika
tidak bisa lagi membuat posisi seperti diatas, maka kemungkinan yang ada hanyalah bidak harimau sudah terkepung, tinggal mengisi titik-titik yang kosong agar tidak
dapat bergerak lagi. Posisi _XO_ baik horizontal, vertikal ataupun diagonal diberi nilai terkecil agar tidak melebihi nilai yang lain karena bukan posisi yang menjadi
prioritas utama.
Universitas Sumatera Utara
25
Pada algoritma negamax, nilai evaluasi akan dilihat dari sudut pandang kedua pemain dan akan bergantian di setiap giliranya. Pertama, penulis akan memperlihatkan
pemberian nilai evaluasi untuk bidak harimau di kedalaman 1. Gambar 3.4 akan menunjukan pohon permainan yang telah diberikan nilai evaluasi.
Gambar 3.4 Pohon Permainan dengan Nilai Evaluasi pada Kedalaman 1
Hanya ada dua kemungkinan langkah yang bisa diambil harimau pada papan permainan di gambar 3.2, langkah 2-1 dan 2-4. Jika bidak harimau mengambil
langkah a akan membentuk formasi _XOE_ sehingga mendapatkan nilai 500. Sedangkan langkah b adalah gerakan melompat sehingga mendapatkan nilai 9999.
Selanjutnya penulis akan memperlihatkan pemberian nilai evaluasi untuk bidak harimau di kedalaman 2. Gambar 3.5 akan menunjukan pohon permainan yang telah
diberikan nilai evaluasi.
Gambar 3.5 Pohon Permainan dengan Nilai Evaluasi pada Kedalaman 2
Jika bidak harimau memilih langkah a ataupun b, maka ada beberapa kemungkinan langkah yang dapat diambil bidak kambing. Pada kedalaman 2 adalah
langkah yang diambil bidak kambing, yang berarti human player. Maka nilai akan dikalikan negative agar tetap mencari nilai maksimal saat penelusuran oleh algoritma
negamax. Langkah c ada 2 nilai evaluasi yang sesuai dengan keadaan papan. Pertama langkah masuknya bidak kambing dari luar papan ke titik 13, maka nilai evaluasi
ditambah -9999. Selanjutnya langkah c juga membentuk formasin _XOO_ sehingga
Universitas Sumatera Utara
26
nilai kembali ditambah -500. Sehingga total nilai evaluasi untuk titik c menjadi -10499. Untuk langkah d membentuk formasi _XO_ sehingga nilai evaluasi menjadi
-5. Langkah d hanya membentuk formasi _XOO_ sehingga nilai evaluasi langkah d menjadi -500. Sedangkan untuk langkah f adalah langkah memasukan bidak kambing
ke titik 2 sehingga nilai evaliasi ditambah -9999. Tidak ada formasi yang terbentuk sehingga tidak ada penambahan nilai lainnya. Untuk langkah g dan h tidak
membentuk formasi apapun sehingga hanya diberi nilai 0. Untuk kedalaman 2 ini, nilai evaluasi haruslah berada pada leaf node pohon agar algoritma negamax dapat
berjalan. Oleh karena itu langkah selanjutnya menjumlahkan nilai evaluasi di setiap node menuju leaf node mereka masing-masing.
Gambar 3.6 Pohon Permainan dengan Nilai Evaluasi pada Leaf Node
Pada gambar 3.6 telah tampak bahwasanya nilai evaluasi telah berada pada leaf node pohon. Langkah selanjutnya memanggil algoritma negamax.
3.2.3 Algoritma Negamax Pada gambar 3.4 telah ditunjukan nilai evaluasi pada pohon permainan untuk bidak
harimau pada kedalaman 1. Karena kedalamannya hanya satu, maka langsung dapat dilihat bahwasanya nilai terbesar yaitu langkah b, 2-4. Proses perubahan nilai dapat
dilihat pada gambar 3.7.
Gambar 3.7 Proses Perubahan Nilai Node menggunakan Algoritma Negamax pada Kedalaman 1
Universitas Sumatera Utara
27
Gambar 3.6 telah menunjukan nilai evaluasi untuk bidak harimau dengan kedalaman 2. Algoritma negamax akan menelusuri pohon permainan dari simpul
paling terdalam di sebelah kiri terlebih dahulu. Gambar 3.8 menunjukan bagaimana algoritma negamax menemukan langkah dalam permainan untuk bidak harimau
dengan kedalaman 2.
Gambar 3.8 Proses Perubahan Nilai Node Menggunakan Algoritma Negamax pada Kedalaman 2
Di kedalaman 2 untuk naik ke kedalaman 1, nilai akan dikalikan negative terlebih dahulu. Setelah dikalikan negative maka didapat bahwasanya posisi c adalah
posisi dengan nilai terbesar, maka naiklah nilai dari posisi c ke posisi a. Begitu juga untuk cabang sebelah kanan, posisi g dan h sama-sama memiliki nilai -9999, maka
yang naik ke posisi b adalah nilai g yang lebih dahulu ditemukan. Selanjutnya yang menentukan langkah mana yang dipilih, pada kedalaman 1 di cari lagi nilai terbesar.
Untuk naik ke kedalaman 0 maka nilai kembali dikalikan negative terlebih dahulu, maka didapatlah bahwasanya posisi b memiliki nilai terbesar yaitu 9999, maka
langkah terbaik adalah langkah b.
3.3 Perancangan Sistem