Algoritma Pencarian Breadth First Search

50

BAB IV ALGORITMA DAN IMPLEMENTASI

4.1 Algoritma

Algoritma untuk merancang perangkat lunak penyelesaian permainan pergeseran angka dalam bintang kejora dibagi menjadi 2 dua bagian, yaitu: 1. Algoritma Pencarian Breadth First Search.

4.1.1 Algoritma Pencarian Breadth First Search

Pencarian dilakukan pada semua simpul dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian akan dilakukan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi.Dengan cara ini, BFS menjamin ditemukannya solusi jika solusinya memang ada dan solusi yang ditemukannya paling baik. Dengan kata lain, BFS adalah komplit dan optimal. BFS harus menyimpan semua simpul yg pernah dibangkitkan agar BFS dapat melakukan penelusuran simpul-simpul sampai di level bawah. Jika b adalah faktor percabangan jumlah simpul anak yg dimiliki oleh suatu simpul dan d adalah kedalaman solusi, maka jumlah simpul yg harus disimpan sebanyak Ob d . Misalkan, b = 10 dan d = 8, maka BFS harus membangkitkan dan menyimpan sebanyak 10 + 51 10 1 + 10 2 + 10 3 +10 4 +10 5 +10 6 +10 7 +10 8 = 111.111.111 simpul. Dari segi kecepatan, hal ini mungkin masih bisa diterima. Dari segi memori, ini menjadi masalah karena membutuhkan ruang memori yg sangat besar. Algoritma pencarian BFS adalah sebagai berikut: a. Mulai pencarian BFS Mula – mula program mengecek nilai n, apakah n Ubound state jika ya ambil tempat yang kosong nilai nol dimana nTKosong = Staten.Kosong, maksudnya nilai yang kosong pada bintang kejora ada pada state ke n yang dimana tergantung pada posisi awal state awal pada bintang kejora. Misal state awal pada bintang kejora kita set 1234560897, maka nTKosong adalah 7. 52 b. Rule untuk bintang 5 Setelah kita ketahui nTKosong pada langkah sebelumnya, maka program akan mengecek rule untuk bintang 5 pada case 7. Hal ini untuk mengetahui langkah yang bisa dilakukan oleh program, sesuai dengan aturan yang berlaku. c. Generate keadaan baru Program akan mengenerate keadaan sekarang sebagai state ke 1 sekaligus sebagai start state. Untuk n1=1 pindahkan angka yang berada di posisi – posisi 53 yang mungkin bisa di geser ke tempat kosong. Misal, untuk kasus yang di atas, maka tempat kosong ada pada posisi 7, jadi angka yang bisa di geser ke posisi ini adalah angka yang berada pada posisi 4, posisi 5, posisi 10, dan posisi 11. Setelah angka di geser ke tempat kosong maka ganti tempat angka asal menjadi “0”. d. Sudah menemukan solusi Ulangi langkah a – c sampai menemukan solusi dari permasalahan yang ada. Apabila isi dari state ke n sama dengan goalstate maka berarti solusi ditemukan dan pencarian akan di hentikan. e. Algoritma Pencarian BFS 1. Menentukan state awal dan state akhir pada bintang kejora. 2. Sistem akan mengecek tempat kosong pada bintang saat set keadaan awal. 3. Dari tempat kosong dapat diketahui rule yang dapat di jalankan oleh program sesuai dengan aturan yang berlaku. 4. Program akan mengenerate keeadaan sekarang sebagai keadaan awal,lalu program akan memindahkan node satu persatu sesuai dengan aturan yang berlaku, hingga ditemukan solusi. 5. Jika solusi telah ditemukan maka pencarian akan di hentikan. 54

4.2 Implementasi Perangkat Lunak