Implementasi Permainan Reversi menggunakan Penelusuran BFS dengan Konsep Algoritma MinMax Romi Fadillah Rahmat, Muhammad Anggia Muchtar, Dedy Arisandi Fakultas MIPA – Program Studi Teknologi Informasi Universitas Sumatera Utara Email :
[email protected],
[email protected],
[email protected]
Abstrak Reversi merupakan salah satu permainan papan yang murni berbasis strategi dan dimainkan oleh dua pemain pada papan yang berukuran 8 baris dan 8 kolom dan setiap pemain memiliki bidak yang berbeda warna (biasanya hitam dan putih). Saat ini, permainan Reversi dapat ditemukan dengan mudah dalam bentuk aplikasi. Penulis membangun aplikasi permainan Reversi berbasis Kecerdasan Buatan dengan menerapkan konsep algoritma Minimax dan menggunakan algoritma BFS. Penerapan algoritma ini mengefisienkan waktu eksekusi program dan memungkinkan agen cerdas untuk mengalahkan manusia. Pembuatan aplikasi ini bertujuan untuk mengetahui cara kerja suatu agen cerdas pada permainan Reversi. Aplikasi ini dikembangkan menggunakan metode perancangan UML dan bahasa pemrograman Java
1. Pendahuluan Permainan papan (board game) adalah sebuah permainan di mana bidak-bidak diletakkan, dipindahkan ataupun dimakan oleh bidak lawan yang dimainkan di atas papan yang bertanda sesuai dengan peraturan yang berlaku pada permainan tersebut. Permainan papan ada yang murni berbasis strategi, kesempatan ataupun gabungan dari kedua hal tersebut dan biasanya mempunyai suatu tahap kemenangan yang ingin dicapai oleh para pemain. Permainan papan juga mempunyai berbagai jenis yang dibedakan oleh ukuran papan dan jumlah pemain. Reversi merupakan salah satu permainan papan yang murni berbasis strategi dan dimainkan oleh dua pemain pada papan yang berukuran 8 baris dan 8 kolom dan setiap pemain memiliki bidak yang berbeda warna (biasanya hitam dan putih). Pemain dikatakan menang bila pada akhir permainan mempunyai jumlah bidak lebih banyak daripada jumlah bidak lawan.
Reversi juga dikenal dengan Othello karena dipasarkan oleh perusahaan permainan Amerika dengan nama Othello. Kecerdasan buatan merupakan salah satu bidang ilmu komputer yang didefinisikan sebagai kecerdasan yang dibuat untuk suatu sistem dengan menggunakan algoritma-algoritma tertentu sehingga sistem tersebut seolah-olah dapat berpikir seperti manusia. Program kecerdasan buatan pertama kali ditulis pada tahun 1951 untuk menjalankan mesin Ferranti Mark di University of Manchester (UK) yang merupakan mesin permainan naskah yang ditulis oleh Christopher Strachey. [1]. Algoritma Minimax adalah salah satu algoritma yang digunakan pada permainan papan yang dimainkan oleh dua pemain dan berbasis zero-sum (pendapatan poin untuk pemain yang satu merupakan kehilangan poin untuk pemain lawan). Algoritma ini sering mendasari pola pikir langkah penyelesaian masalah dalam beberapa jenis permainan papan yang dimainkan di komputer. Secara garis besar konsep algoritma minimax ini adalah meminimalkan kemungkinan kekalahan dan memaksimalkan kemungkinan kemenangan. Breadth-First Search (BFS) merupakan metode pencarian buta (blind search) yang dilakukan pada sebuah pohon yang ditelusuri dari tingkat teratas sampai tingkat terbawah. Pada metode pencarian ini, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya demikian pula dari kiri ke kanan hingga ditemukannya solusi. [2]. “Pada tahun 1997, seorang juara dunia Takeshi Murakami dari Jepang berhasil dikalahkan oleh sebuah program komputer dengan skor 6-0 dalam permainan Othello, yang dirancang oleh Michael Buro, yang diberi nama Logistello.” [1]. Mencermati hal-hal di atas, maka penulis berkeinginan untuk menerapkan konsep algoritma
Minimax dengan menggunakan BFS untuk membuat aplikasi permainan Reversi yang berbasis kecerdasan buatan dan mampu mengalahkan manusia. Dengan menerapkan konsep algoritma Minimax dengan menggunakan algoritma BFS, maka akan memungkinkan terjadinya beberapa cut-off sehingga waktu eksekusi untuk algoritma ini akan lebih efisien.
2. Landasan Teori Permainan Reversi adalah permainan yang dimainkan oleh dua orang pemain. Permainan ini dimainkan di atas papan Reversi persegi yang terdiri dari 8 baris dan 8 kolom kotak-kotak kecil. Peralatan lain yang dibutuhkan adalah koin berwarna gelap dan koin berwarna terang (umumnya warna hitam dan warna putih) masing-masing sebanyak 64 buah. Pada awal permainan akan diletakkan dua koin hitam dan dua koin putih pada tengah-tengah papan. Aturan permainan Reversi secara umum adalah sebagai berikut: 1. Pemain yang menggunakan koin hitam akan bermain terlebih dahulu. 2. Bila pemain koin hitam yang akan bermain, maka koin hitam harus diletakkan di kotak yang dapat dilompati oleh koin hitam lainnya. Dan begitu juga kondisinya untuk pemain yang menggunakan koin putih. Lihat Gambar 1 untuk lebih jelasnya. 3. Apabila salah satu pemain tidak dapat bermain karena tidak ada kotak yang sesuai dengan aturan nomor 2, maka pemain yang satunya lagi yang bermain. 4. Apabila kedua pemain sama-sama tidak dapat mengambil langkah lagi, maka permainan berakhir.
Gambar 1 Keadaan Awal dan Kotak yang Mungkin (Langkah Hitam) [1] Permainan Reversi berakhir dengan beberapa kondisi sebagai berikut: 1. Semua kotak pada papan sudah penuh diisi koinkoin.
2.
3.
Belum semua kotak pada papan diisi tetapi koinkoin yang ada pada papan hanya tersisa koin-koin dalam 1 warna saja. Kedua pemain setuju untuk mengakhiri permainan (bisa seri ataupun menyerah).
Alternatif lain untuk algoritma pencarian adalah Breadth-First Search (BFS). Seperti namanya, algoritma ini lebih mendahulukan pencarian cabang daripada pencarian kedalaman. Jadi, pencarian akan dilakukan dari tingkat n dan akan lanjut ke tingkat n+1 jika dan hanya jika tingkat n telah ditelusuri seluruhnya. Penelusuran pada Gambar 2.10 dimulai dari A-BC-D-E-F-G-H-I-J di mana A merupakan kedaaan awal dan mencapai J yang merupakan keadaan tujuan. Dapat kita ketahui dengan jelas bahwa penelusuran BFS dilakukan secara tingkat ke tingkat pada pohon permainan. Langkah-langkah cara kerja algoritma BFS adalah sebagai berikut: 1. Masukkan root ke dalam struktur data antrian (queue). 2. Ambil simpul dari awal antrian, lalu periksa apakah simpul merupakan solusi. 3. Jika simpul merupakan solusi, maka pencarian selesai dan nilai dikembalikan. 4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut ke dalam antrian. 5. Jika antrian kosong dan setiap simpul sudah ditelusuri, maka pencarian selesai dan solusi tidak ditemukan. 6. Ulangi pencarian dari poin kedua. Kompleksitas dalam kondisi terburuk untuk algoritma BFS adalah O(bd) dengan keterangan b merupakan unsur percabangan pada pohon dan d merupakan tingkat kedalaman yang dicapai BFS saat menemukan solusi. Sedangkan kompleksitas untuk kondisi terbaik pada algoritma BFS adalah O(1), dengan kondisi pencarian simpul pertama langsung menemukan solusi. Algoritma Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai maksimal. Algoritma ini diterapkan dalam permainan yang melibatkan dua pemain dan permainan tersebut menggunakan strategi dan logika. Hal ini berarti permainan-permainan tersebut dapat dijelaskan sebagai suatu rangkaian aturan. Algortima Minimax dapat menghasilkan pilihan langkah yang baik dengan mengasumsikan bahwa pemain lawan akan selalu memilih langkah terbaik untuk dirinya dan langkah terburuk bagi komputer. Prinsip dasar pada algoritma Minimax ini adalah jalur
yang akan dipilih oleh komputer merupakan jalur maksimum (max node) yang akan menghasilkan nilai maksimum di jalur tersebut, dan saat lawan yang akan bermain akan meminimalkan (min node) nilai komputer. Jadi, komputer bertujuan untuk memaksimalkan kemungkinan nilai paling rendah yang akan diperoleh komputer. Algoritma Minimax merupakan algoritma dasar pencarian DFS untuk melakukan traversal dalam pohon. DFS akan mengekspansi simpul paling dalam terlebih dahulu. Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dst. Dalam melakukan traversal, misalkan dimulai dari suatu simpul i, maka simpul selanjutnya yang akan dikunjungi adalah simpul tetangga j, yang bertetangga dengan simpul k, selanjutnya pencarian dimulai lagi secara rekursif dari simpul j. Ketika telah mencapai simpul m, di mana semua simpul yang bertetangga dengannya telah dikunjungi, pencarian akan dirunutbalik ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul j yang belum dikunjungi. Selanjutnya pencarian dimulai kembali dari j. Ketika tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi maka pencarian selesai. Untuk proses dan cara kerja algoritma yang lebih jelasnya lagi, dapat dilihat pada Gambar 2 yang merepresentasikan cara kerja algoritma Minimax.
Untuk faktor percabangan pada permainan Reversi mempunyai jumlah yang bervariasi dari tingkat ke tingkat, oleh karena itu kita misalkan saja hanya ada 5 faktor percabangan dari tingkat ke tingkat walaupun pada kenyataannya bisa lebih ataupun kurang. Dengan demikian, kita telah memperoleh nilai untuk faktor percabangan dan juga nilai untuk faktor kedalaman yaitu O(560). Ini tentu adalah nilai yang sangat besar dan tidak mungkin untuk ditelusuri. Oleh karena itu, penulis membatasi tingkat kedalaman hingga 4 tingkat saja. Pembatasan hingga tingkat tertentu, tentu membuat agen menjadi lebih lemah jika agen hanya mencari koin paling banyak yang bisa didapatkan di setiap tingkat. Namun, penulis tidak menggunakan strategi untuk mencari koin yang bisa didapatkan, tetapi penulis menggunakan fungsi evaluasi yang berupa strategi peletakkan koin pada papan permainan. Jadi, setiap kotak pada papan permainan, mempunyai nilainilai tersendiri.
Gambar 3 Strategi peletakkan koin pada kotak
Gambar 2 Cara Kerja MinMax
3. Analisis dan Perancangan Untuk penelusuran pohon permainan pada permainan Reversi menggunakan algoritma BFS, maka tingkat kedalaman yang akan ditelusuri adalah jumlah kotak yang belum diisi dikurangi dengan jumlah kotak yang sudah terisi. Kita ketahui bahwa dari awal permainan, sudah ada 4 kotak yang terisi dengan koin, dan jumlah keseluruhan kotak pada permainan Reversi adalah 64 kotak, maka tingkat kedalaman pada permainan Reversi dari awal permainan adalah 60 tingkat.
Nilai-nilai pada Gambar 3 merupakan positional strategy pada situs tersebut. Pada gambar tersebut, dapat kita lihat kotak di sudut mempunyai nilai yang tertinggi, sedangkan untuk kotak yang mengelilingi kotak sudut mempunyai nilai negatif. Kotak sudut merupakan kotak yang paling menguntungkan karena jika ada koin yang sudah terletak di sudut, maka koin tersebut tidak dapat diganggu lagi. Sedangkan kotak yang berada di sekitar sudut merupakan kotak yang dapat menyebabkan lawan mendapatkan kotak sudut, oleh karena itu kotak tersebut diberi nilai negatif. Jadi, secara keseluruhan strategi ini bertujuan agar agen berusaha untuk mendapatkan kotak sudut dan kotak pinggir, dan berusaha untuk tidak meletakkan koin di kotak-kotak yang mempunyai nilai negatif yang dapat menyebabkan lawan mendapatkan kotak sudut dan kotak pinggir.
Karena papan permainan Reversi bersimetris secara horizontal, vertikal, dan diagonal, maka papan permainan Reversi hanya memiliki 10 kotak yang unik. Dari 10 kotak yang unik inilah penulis menyimpan semua nilai-nilai strategi seperti tampak pada Gambar 3.1. Untuk memperjelas kotak-kotak unik yang dimaksud, penulis mengvisualisasikan pada Gambar 3.2 berikut.
Gambar 5 Kondisi yang menghasilkan cut-off Dari Gambar 5, dapat ditelusuri menjadi sebuah pohon permainan. Di sini, koin putih adalah koin agen. Berikut adalah gambar pohon permainan yang ditelusuri oleh algoritma BFS dan algoritma DFS.
Gambar 4 Kotak-kotak unik pada papan permainan Reversi Pada Gambar 4, dapat dilihat bahwa hanya ada 10 kotak yang unik (dari 0 sampai 9). Sebagai contoh untuk kotak sudut diberi nilai 0, maka untuk semua kotak 0 diisi dengan nilai 99 karena kotak 0 merupakan kotak sudut. Tujuan pembuatan kotak-kotak unik adalah untuk mempermudah proses penelusuran dan juga menghemat memori yang digunakan. Kelebihan menggunakan algoritma BFS adalah algoritma BFS dapat melakukan cut-off pada suatu keadaan saat penelusuran pada pohon permainan. Dengan adanya cut-off tersebut, tentu ini akan menghemat waktu penelusuran pada pohon permainan karena tidak seluruh pohon permainan harus ditelusuri. Kondisi yang akan menghasilkan cut-off adalah pada saat penelusuran di tingkat lawan yang akan menyebabkan agen kehilangan semua koin di papan permainan (skor agen = 0). Karena kondisi ini merupakan akhir permainan dan agen kalah dengan tidak ada koin yang tersisa di papan permainan, maka jalur pada tingkat agen yang menuju ke jalur ini di tingkat lawan akan dihapus dan tidak ditelusuri lebih lanjut lagi.
Gambar 6 Pohon permainan dengan BFS dan DFS Gambar 6 menunjukkan pohon permainan yang ditelusuri dengan algoritma BFS dan algoritma DFS. Angka-angka yang terdapat pada setiap node merupakan jumlah koin yang akan diperoleh agen. Penelusuran dengan BFS jelas lebih efisien di saat terjadi cut-off ini, karena untuk jalur kedua (jalur yang terjadi cut-off), penelusuran dilakukan hanya sampai tingkat kedua saja, sedangkan dengan DFS, penelusuran terjadi hingga tingkat ketiga yang seharusnya tidak perlu ditelusuri lagi. Oleh karena itu, jelas algoritma BFS lebih unggul pada cut-off ini. Algoritma Minimax telah dijelaskan di bab sebelumnya dan telah diketahui bahwa algoritma Minimax menggunakan penelusuran Depth-First Search (DFS) untuk menelusuri pohon permainan. Dan telah kita ketahui bahwa penelusuran menggunakan Breadth-First Search (BFS) dapat menghasilkan cut-off yang lebih efisien daripada algoritma DFS. Oleh karena itu, penulis tidak sepenuhnya menerapkan algoritma Minimax, tetapi hanya menggunakan konsep algoritma Minimax untuk mendapatkan nilai optimal. Untuk memperjelas bagaimana konsep algoritma Minimax bekerja, perhatikan Gambar 7 berikut beserta penjelasannya.
nilai 6 dan nilai 4. Dengan demikian, jalur kiri merupakan jalur yang akan dipilih oleh agen dan merupakan nilai yang optimal dari pada 2 jalur lainnya dalam penelusuran dengan kedalaman 3 tingkat.
4. Implementasi dan Pengujian
Gambar 7 Penelusuran BFS dan konsep algoritma Minimax Tingkat max merupakan tingkat saat agen mengambil langkah, sedangkan tingkat min merupakan tingkat saat lawan mengambil langkah. Penjelasan Gambar 7 adalah sebagai berikut: 1. Penelusuran BFS menghasilkan data-data antrian seperti tampak pada gambar. 2. Setelah data-data antrian diperoleh, maka penerapan konsep algoritma Minimax dilakukan. Semua tingkat tidak berisi nilai, kecuali tingkat-3 diisi dengan data-data antrian. 3. Untuk mengisi data-data di tingkat-2 (tingkat max), maka dilakukan seleksi data-data yang paling maksimal dari tingkat-3. Seleksi dilakukan pada setiap data-data yang mempunyai parent yang sama. Sebagai contoh, perhatikan 4 data paling kiri di tingkat-3 {8,7,7,9}. Data-data tersebut hanya mempunya 2 parent yaitu 8 dan 7 mempunyai parent yang sama, 7 dan 9 mempunyai parent yang sama. Oleh karena itu, seleksi hanya dapat dilakukan antara 8 dan 7, serta 7 dan 9, sehingga diperoleh nilai 8 dan 9. (untuk mengetahui parent dari setiap data, digunakan variabel jalur yang ada pada setiap data) 4. Setelah data-data di tingkat-2 diperoleh, maka dilakukan seleksi data-data di tingkat-2 untuk mengisi data-data di tingkat-1 (tingkat min). Kalau tadi kita mencari nilai maksimal di tingkat max, di tingkat min kita mencari nilai minimal. 5. Proses tersebut berakhir dengan nilai maksimal 8 yaitu jalur yang paling kiri pada. Nilai 8 yang diperoleh merupakan nilai yang optimal, karena jika kita melangkah ke jalur kiri (nilai 8), sebagus apapun pilihan langkah lawan, paling sedikit kita memperoleh nilai 8. Sedangkan untuk jalur tengah dan jalur kanan, kita hanya dapat memperoleh
Penjelasan tentang implementasi sistem dilakukan untuk mengetahui hasil dari aplikasi yang dirancang, dan pengujian sistem dilakukan untuk membuktikan kebenaran proses berpikir agen cerdas yang berjalan pada sistem. Implementasi aplikasi permainan Reversi dibuat menggunakan bahasa pemrograman Java berbasis Applet dan menggunakan Integrated Development Environment (IDE) Netbeans 6.5. Berikut akan dijelaskan hasil eksekusi aplikasi permainan Reversi yang dijalankan di browser Mozilla Firefox. Penjelasan dimulai dari tampilan awal aplikasi.
Gambar 8 Halaman awal Penjelasan penomoran pada Gambar 8 adalah sebagai berikut: 1. Judul (tidak termasuk dalam Applet) 2. Status melangkah 3. Status permainan 4. Papan permainan 5. Status kotak yang valid dan berapa koin yang diperoleh 6. Koin hitam 7. Koin putih 8. Tombol mulai baru yang akan menampilkan jendela baru jika diklik 9. Tombol undo langkah 10. Tombol minta bantuan
Gambar 9 Tampilan agen berpikir
Gambar 11 Tampilan minta bantuan
Status melangkah pada permainan dapat berubahubah jika pemain yang bermain adalah manusia dan agen. Jika manusia yang akan melangkah, maka statusnya adalah “Silahkan Melangkah”, sedangkan jika agen yang akan melangkah, maka statusnya adalah “Agen Sedang Berpikir…”. Dengan adanya status ini, maka pemain manusia dapat mengetahui bahwa agen sedang melakukan proses pencarian terhadap langkah yang akan dia lakukan. Berikut adalah tampilan apabila agen yang akan melangkah. Tombol mulai baru akan menampilkan jendela mulai baru yang berfungsi untuk menentukan pemain 1 dan pemain 2, kemudian mengulang permainan dari awal. Saat jendela mulai baru masih aktif, semua fungsi pada tampilan awal tidak dapat dijalankan. Berikut adalah tampilan jendela mulai baru.
Gambar 12 Tampilan akhir permainan dan papan telah penuh
Gambar 10 Jendela mulai baru Tombol bantuan akan menampilkan bantuan pada status di bawah papan permainan. Bantuan didapatkan sama seperti cara berpikir agen yang dirancang yaitu melalui algoritma Breadth-First Search dan konsep algoritma Minimax. Bantuan tidak wajib diikuti oleh pemain, karena bantuan hanya berupa kalimat yang merujuk kepada kotak pada papan permainan. Berikut adalah tampilan status minta bantuan. Telah kita ketahui bahwa akhir permainan dari permainan Reversi adalah pada saat kedua pemain sudah tidak bisa mengambil langkah lagi. Akhir permainan bisa terjadi saat papan telah penuh terisi maupun pada saat papan belum penuh terisi. Berikut adalah tampilan pada saat permainan telah berakhir.
Gambar 13 Tampilan akhir permainan dan papan belum penuh Pegujian dilakukan untuk membuktikan bahwa algoritma Breadth-First Search (BFS) dan konsep algoritma Minimax telah bekerja sesuai dengan rancangan pada agen cerdas. Pengujian agen cerdas
tidak dapat dilakukan untuk data yang terlalu besar, sehingga penulis membatasi data yang akan diuji tidak lebih dari 100 data. Data yang dimaksud adalah data yang diperoleh dari proses penelusuran algoritma BFS yang kemudian akan dicari nilai optimalnya menggunakan konsep algoritma Minimax. Pengujian dilakukan dengan melakukan uji coba menggunakan 3 buah sampel posisi papan Reversi yang berbeda, kemudian dilakukan pendataan secara manual dengan menelusuri pohon permainan hingga tingkat ke-4 kemudian ditelusuri kembali untuk mendapatkan nilai optimalnya menggunakan konsep algoritma Minimax. Berikut adalah ketiga sampel yang diuji. 4.1.
16 25 15 16 25 14 25
15 16
14
15 16 16 17 14
25
15
16 17
Sampel posisi 1 16
14 15 17
14 25 14 16 14 25 14 15 15 14 16 14 15
-12 -3 -23 -25 -16 -7 -25 -25 -5 -5 -7 -3 -3
16 15 17 15 16 16 14 17 14 16 15 14 14 15
-11 -7 7 -23 -25 -11 -7 7 -23 -25 -11 -11 -25 -25
Tabel 2 Pencarian Nilai Optimal Sampel 1 0 (max)
1 (min)
Jalur (Tingkat) 2 (max)
3 (min) 11
11
-12 -7 11
7
7
11
-12 -7
7
11
7 11 11 -3
Gambar 14 Sampel posisi 1 (giliran langkah putih)
-16 -16 -25
Tabel 1 Data Antrian Tingkat 4 Sampel 1 -16
Jalur (Tingkat) 1
2
3 15
14
17 25 14
16
15
17 25
17
25
25 14 15 17 15
14 17
25 15
14
4 17 25 15 25 15 17 17 25 14 25 14 17 14 15 15 14 14 15 16 25 15 16 16 25
Nilai 16 11 -12 -3 -7 7 16 11 -12 -3 -7 7 7 7 11 11 -3 -3 -16 -5 -23 -25 -16 -5
-12
-12 -25
-16
-16 -16 -25 -5 7
-3
-7 -3 -11
-7
-7 -25 -11
-11
-7
-7 -25
-11
-11 -11 -25
4 16 11 -12 -3 -7 7 16 11 -12 -3 -7 7 7 7 11 11 -3 -3 -16 -5 -23 -25 -16 -5 -12 -3 -23 -25 -16 -7 -25 -25 -5 -5 -7 -3 -3 -11 -7 7 -23 -25 -11 -7 7 -23 -25 -11 -11 -25 -25
Pencarian nilai optimal pada Tabel 2 mendapatkan nilai 7 yang merupakan langkah 16 (baris 1 kolom 6) pada Tabel 1. Pada Gambar 14, tertulis “ambil langkah baris 1 kolom 6” sehingga ini membuktikan agen telah berpikir dengan benar sesuai dengan algoritma BFS dan konsep algoritma Minimax. 4.2.
Pengujian secara manual terhadap ketiga sampel ini memperoleh nilai yang sama dengan nilai yang diperoleh dari agen cerdas. Dengan demikian, agen cerdas sudah dapat berpikir sesuai dengan yang diharapkan.
Sampel posisi 2
Gambar 16 Sampel posisi 3 (giliran langkah hitam) Tabel 5 Data Antrian Tingkat 4 Sampel 3 Jalur (Tingkat) 1
2
Gambar 15 Sampel posisi 2 (giliran langkah putih) 12
Tabel 4 Data Antrian Tingkat 4 Sampel 2
22
Jalur (Tingkat) 1
2
12
-2
17
12 12 17
18
11
3 17 18 18 17 12
4 -3 17 -4 -5 -6
3 21 22 27 11 17 21
Nilai 27
-16 99 99 99 99
11
12 22 27
21
11 12
Tabel 4 Pencarian Nilai Optimal Sampel 2
22 27
99
99
99
99
99 99 99
99
-16 99 99 99 99
-16 99 99 99 99
Pada Tabel 4, terdapat 3 pilihan langkah yang mempunyai nilai yang sama. Untuk kasus ini, agen akan mengambil langkah yang pertama kali dia peroleh yaitu langkah 12 (baris 1 kolom 2) dan langkah ini sesuai dengan Gambar 15.
22
21
27
17
11 12 17 27 12 21 22
1 (min)
Jalur (Tingkat) 2 (max)
Sampel posisi 3 -91
Pencarian nilai optimal pada Tabel 6 mendapatkan nilai 91 yang merupakan langkah 22 (baris 2 kolom 2) pada Tabel 5. Pada Gambar 16, tertulis “ambil langkah baris 2 kolom 2” sehingga ini membuktikan agen telah berpikir dengan benar sesuai dengan algoritma BFS dan konsep algoritma Minimax.
Nilai -91 -123 -123 123 8 -91 -107 0 -91 -123 -123 -107 123 -91 -107 0 0 91 -123 0 -32 0 0 -123 -32 -32
Tabel 6 Pencarian Nilai Optimal Sampel 3 0 (max)
-91
4.3
4 22 21 17 21 -2 11 11 17 22 12 17 22 12 11 11 12 17 12 11 27 17 22 11 22 12 21
123
3 (min) -91 -123 -123 123 8 -91 -107
91 -91
-91 -123 -123
-91 123
123 -91 -107
4 -91 -123 -123 123 8 -91 -107 0 -91 -123 -123 -107 123 -91 -107 0
91
91
0
0
91
91 -123 0 -32 0 -123 -32
0 91 -123 0 -32 0 0 -123 -32 -32
5. Kesimpulan Berdasarkan hasil analisis dan pengujian yang dilakukan pada bab sebelumnya, maka kesimpulan yang dapat diambil adalah sebagai berikut: 1. Aplikasi permainan Reversi yang dirancang mempunyai representasi papan Reversi tersendiri serta mempunyai bagian penting yaitu, fungsi evaluasi, algoritma penelusuran pohon permainan dan algoritma pencari nilai optimal. 2. Fungsi evaluasi yang digunakan adalah strategi peletakkan koin pada papan permainan, sehingga agen berupaya untuk mendapatkan posisi-posisi yang menguntungkan (sudut dan pinggir) serta berupaya untuk tidak menempati posisi-posisi yang mengakibatkan lawan mendapatkan posisi-posisi yang menguntungkan.
3.
4.
5.
Jika ada jalur lawan yang mengakibatkan jumlah koin agen menjadi nol, maka algoritma BreadthFirst Search (BFS) akan melakukan pemotongan (cut-off) pada jalur agen yang menuju ke jalur lawan tersebut. Pemotongan (cut-off) pada algoritma BreadthFirst Search (BFS) menjadikan algoritma lebih efisien dan mencegah agen untuk kalah dengan kondisi tidak ada koin yang tersisa pada papan. Pencarian menggunakan algoritma Breadth-First Search lebih efisien dibanding algoritma DepthFirst Search dalam hal pemotongan (cut-off) pohon permainan berdasarkan jumlah koin agen.
6. Daftar Pustaka [1]B. Coppin, Artificial Intelligence Illuminated, Jones and Barnet, USA, 2004. [2]S. Kusumadewi, Artificial Intelligence (Teknik dan Aplikasinya, Graha Ilmu, Yogyakarta, 2003.