Analisis Algoritma Negamax Permainan Catur Harimau Menggunakan Algoritma Negamax Pada Platform Android

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