Algoritma Minimax Aplikasi Permainan Congklak Berbasis Android Menggunakan Algoritma Minimax

Pada Gambar 2.2 dapat diketahui bahwa proses penelusuran DFS dimulai dari A-B-D-G-D-H-D-B-A-C-E-I-E-J. A merupakan root yang menandakan keadaan belum diambil, lalu ditelusuri hingga kedalaman yang paling dalam sebelah kiri yaitu G, lalu melakukan proses backtrack ke D lalu lanjut lagi ke H. Proses tersebut berhenti karena telah mencapai goal state yaitu leaf node J. Langkah-langkah cara kerja algoritma DFS adalah sebagai berikut: 1. Masukkan root ke dalam struktur data tumpukan stack. 2. Ambil simpul dari tumpukan teratas, dan diperiksa apakah simpul merupakan solusi. 3. Jika simpul merupakan solusi, maka pencarian selesai dan hasil dikembalikan. 4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut ke dalam tumpukan. 5. Jika tumpukan kosong dan setiap simpul sudah ditelusuri, pencarian selesai dan solusi tidak ditemukan. 6. Ulangi pencarian dari poin kedua.

2.6 Algoritma Minimax

Algoritma Minimax ialah suatu metode yang sangat bermanfaat untuk permainan dua pemain sederhana. Metode ini digunakan untuk memilih langkah terbaik yang diberikan, dimana kedua pemain saling berusaha untuk memenangkan permainan. Setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya akan dapat diketahui M. Tim Jones, 2008. Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai maksimal. 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 Universitas Sumatera Utara 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. Jika pemain memilih suatu langkah, maka pemain akan memilih langkah yang akan menghasilkan suatu posisi yang bagus. Kita dapat menganggap bahwa pemain akan memilih langkah yang akan menuntunnya pada posisi terbaik. Dengan kata lain, ketika pemain mendapat giliran bermain maka pemain akan mencoba memaksimalkan nilainya. Ketika lawan mendapat giliran bermain, pemain akan mengganggap bahwa lawan akan memilih langkah yang akan memberikan pemain posisi terburuk yang tersedia. Lawan sedang berusaha meminimalkan nilai dari pemain. Untuk proses dan cara kerja algoritma Minimax yang lebih jelas, dapat dilihat pada gambar berikut: Level 0 Level 1 Level 2 Gambar 2.3 Cara kerja algoritma Minimax Coppin, 2004 Langkah-langkah cara kerja algoritma Minimax adalah sebagai berikut: 1. Hampiri node pertama pada leaf dengan nilai 5, naik ke parent pada level 2 MAX masukkan nilai 5, hampiri 2. Karena 25 maka nilai parent tidak perlu diganti. 2. Setelah kedua leaf pertama dihampiri, naik lebih tinggi lagi ke level 1 MIN masukkan nilai 5. 3. Hampiri node ketiga pada leaf dengan nilai 1, naik ke parent pada level 2 MAX masukkan nilai 1. Kemudian hampiri leaf keempat dengan nilai 3. Karena 31 maka ganti parent pada level 2 MAX dengan nilai 3. 4. Karena 35 maka ganti parent pada level 1 MIN dengan nilai 3. Universitas Sumatera Utara 5. Setelah keempat leaf pertama dihampiri, naik lebih tinggi lagi ke level 0 MAX masukkan nilai 3. 6. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah 6.

2.7 Algoritma Alpha Beta Pruning