Algoritma pencarian melebar pertama breadth first search BFS

36 Kondisi bintang kejora pada gambar 3.3 dapat disimpan dalam bentuk string, yaitu ’5304917268’, sedangkan kondisi bintang kejora pada gambar 3.4 dapat disimpan dalam bentuk string, yaitu ’3061425987BA’. Permasalahan pergeseran angka dalam bintang kejora mempunyai keadaan awal initial state dan keadaan tujuan goal state. Dengan menggunakan pohon pelacakan, pencarian akan dimulai dari node akar yang berisikan keadaan awal. Kemudian, sesuai dengan aturan pergeseran yang berlaku, keadaan-keadaan baru dihasilkan dan disimpan sebagai node cabang dari keadaan sebelumnya. Pencarian berakhir ketika ditemukan keadaan tujuan atau tidak ada lagi keadaan baru yang dapat dikembangkan atau dihasilkan. Apabila tidak ada keadaan baru yang dapat dikembangkan lagi dan keadaan tujuan belum ditemukan, maka permasalahan tidak memiliki solusi menuju keadaan tujuan. Adapun metode pencarian yang digunakan untuk mendapatkan keadaan tujuan adalah:

A. Algoritma pencarian melebar pertama breadth first search BFS

Pada metode pencarian BFS, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar keadaan awal terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya. Demikian seterusnya hingga ditemukannya solusi. Pada implementasinya, algoritma BFS akan memerlukan waktu yang relatif lama untuk menemukan solusi yang memiliki langkah penyelesaian yang relatif panjang, 37 karena untuk mendapatkan solusi pada level n, BFS akan mengembangkan semua node pada level sebelum n. Hal ini akan bermasalah apabila n adalah angka yang besar solusi dengan langkah penyelesaian yang panjang. Sebagai contoh, perhatikan permasalahan pada gambar 3.6 berikut. Gambar 3.5 Contoh permasalahan dalam bintang kejora berkaki lima Pada gambar 3.5 , keadaan awal adalah ’2634510897’ dan keadaan tujuan adalah ’1234567890’. Struktur pohon pelacakan dapat dilihat pada gambar 3.6 berikut. 38 Gambar 3.6 Struktur pohon pelacakan pada permasalahan pada gambar 3.5 Solusi dari pergeseran angka terlihat pada tabel 3.1. Tabel 3.1 Solusi Pergeseran Angka No. Langkah Kondisi 0. Keadaan Awal. 2634510897 1. Geser angka ’4’ dari posisi 4 ke posisi 7. 2630514897 2. Geser angka ’3’ dari posisi 3 ke posisi 4. 2603514897 3. Geser angka ’1’ dari posisi 6 ke posisi 3. 2613504897 4. Geser angka ’8’ dari posisi 8 ke posisi 6. 2613584097 5. Geser angka ’4’ dari posisi 7 ke posisi 8. 2613580497 6. Geser angka ’3’ dari posisi 4 ke posisi 7. 2610583497 7. Geser angka ’1’ dari posisi 3 ke posisi 4. 2601583497 8. Geser angka ’2’ dari posisi 1 ke posisi 3. 0621583497 39 9. Geser angka ’1’ dari posisi 4 ke posisi 1. 1620583497 10. Geser angka ’3’ dari posisi 7 ke posisi 4. 1623580497 11. Geser angka ’4’ dari posisi 8 ke posisi 7. 1623584097 12. Geser angka ’8’ dari posisi 6 ke posisi 8. 1623504897 13. Geser angka ’6’ dari posisi 2 ke posisi 6. 1023564897 14. Geser angka ’2’ dari posisi 3 ke posisi 2. 1203564897 15. Geser angka ’3’ dari posisi 4 ke posisi 3. 1230564897 16. Geser angka ’4’ dari posisi 7 ke posisi 4. 1234560897 17. Geser angka ’7’ dari posisi 10 ke posisi 7. 1234567890 Apabila menggunakan pencarian BFS, pencarian solusi pada tabel 3.1 memakan waktu 188.766 detik 3 menit dan 8.766 detik.

3.2 Perancangan