Teknik Pencarian Searching Algoritma Depth-First Search DFS

5. Giliran pemain akan tetap berlanjut jika memenuhi kondisi berikut: a. Apabila biji congklak di tangan habis di lumbung miliknya maka ia dapat melanjutkan dengan memilih lubang kecil di sisinya. b. Apabila biji congklak di tangan habis di lubang kecil yang berisi biji lainnya, ia dapat melanjutkan permainan. 6. Giliran pemain akan berakhir apabila biji habis di lubang kecil yang kosong pada daerah permainan sendiri atau lawan. Jika biji jatuh di daerah permainan sendiri dan di hadapannya terdapat lubang berisi biji, maka ia dapat mengambil seluruh biji di lubang tersebut biji sisi lawan. Proses ini dinamakan “tembak”. 7. Permainan selesai apabila sudah tidak ada biji lagi yang dapat diambil atau salah satu arena pada lubang kecil tidak berisi biji lagi. Apabila biji di salah satu arena sudah habis, maka biji yang tersisa di arena lainnya di masukkan seluruhnya ke lumbung miliknya. 8. Pemain yang memiliki biji lebih banyak pada lumbung miliknya akan keluar sebagai pemenang.

2.4 Teknik Pencarian Searching

Pencarian merupakan suatu proses menemukan solusi yang tepat dari suatu permasalahan Russell Norvig, 2010. Evaluasi strategi pencarian memiliki empat kriteria: 1. Completeness: Apakah strategi tersebut menjamin menemukan solusi jika solusinya memang ada? 2. Time complexity: Berapa lama waktu yang diperlukan untuk menemukan solusi? 3. Space complexity: Berapa banyak memori yang diperlukan untuk melakukan pencarian? 4. Optimality: Apakah strategi tersebut menemukan solusi yang paling baik jika terdapat beberapa solusi berbeda pada permasalahan yang ada? Universitas Sumatera Utara Di dalam kecerdasan buatan, metode pencarian sangat menentukan tingkat keberhasilan sistem cerdas tersebut. Teknik pencarian ini terbagi atas 2, yaitu pencarian buta blind search dan pencarian heuristik heuristic search. Pencarian buta merupakan pencarian yang penelusurannya dimulai dengan tidak ada informasi awal yang digunakan dalam proses pencarian. Contohnya adalah Breadth-First- Search BFS dan Depth-First-Search DFS. Sedangkan pencarian heuristik merupakan pencarian yang penelusurannya dimulai dengan adanya informasi awal yang digunakan dalam proses pencarian. Contohnya adalah Hill Climbing, Tabu Search, Genetic Algorithm, Ant Algorithm dan Simulated Annealing Kusumadewi Purnomo, 2005.

2.5 Algoritma Depth-First Search DFS

Depth-First Search DFS merupakan algoritma pencarian yang paling umum digunakan. DFS akan melakukan pencarian pada sebuah pohon dengan cara menelusuri satu cabang sebuah pohon sampai menemukan solusi. Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking yaitu penelusuran balik untuk mendapatkan jalur yang diinginkan Cormen et al., 2009. Gambar 2.2 Penelusuran pohon permainan dengan DFS Coppin, 2004 Universitas Sumatera Utara 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