Perancangan Database Perancangan Perangkat Lunak

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

Perancangan perangkat lunak permainan pergeseran angka dalam bintang kejora menggunakan bahasa pemograman Microsoft Visual Basic 6.0. Untuk database yang berfungsi sebagai tempat penyimpanan pengetahuan heuristik, digunakan Microsoft Access 2003.

3.2.1 Perancangan Database

Database digunakan sebagai tempat penyimpanan pengetahuan heuristik. Dalam database tersebut terdapat sebuah tabel ’Heuristic’. Perancangan tabel ini adalah sebagai berikut: 40 Tabel 3.2 Rancangan Tabel ’Heuristic’ No. Field Name Data Type Field Size 1. GoalState Text 20 2. Isi Text 20 3. Indeks Number Long Integer 4. LevelS Number Long Integer 5. ParentNode Number Long Integer 6. Kosong Number Long Integer 7. Pergeseran Text 50 Keterangan: 1 : Field ’GoalState’ berisi keadaan tujuan. 2 : Field ’Isi’ berisi keadaan isi dari node. 3 : Field ’Indeks’ berisi indeks dari node. 4 : Field ’LevelS’ berisi level dari node. 5 : Field ’ParentNode’ berisi indeks dari parent node node induk satu level di atas node yang bersangkutan. 6 : Field ’Kosong’ berisi posisi titik dari node yang kosong. 7 : Field ’Pergeseran’ berisi informasi atas aksi yang telah dilakukan untuk menghasilkan node yang bersangkutan. Contoh: ’3910’ artinya angka ’3’ digeser dari posisi 9 ke posisi 10. 41

3.2.2 Perancangan Perangkat Lunak

Perangkat lunak dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0 dengan menggunakan komponen standard, seperti command button sebagai tombol, text box sebagai tempat input, label sebagai komponen untuk menampilkan tulisan, option button sebagai komponen untuk memilih, image atau pictureBox sebagai komponen untuk menampilkan gambar, shape sebagai komponen untuk menampilkan bentuk persegi, lingkaran, MSFlexGrid sebagai tabel, dan komponen standard lainnya. Perangkat lunak ini memiliki beberapa form, antara lain: 1. Form Awal. 2. Form Set Keadaan Bintang Berkaki Lima. 3. Form Set Keadaan Bintang Berkaki Enam. 4. Form Pilih Metode Pencarian. 5. Form Pencarian BFS atau Heuristik. 6. Form Solusi Bintang Berkaki Lima. 7. Form Solusi Bintang Berkaki Enam. 8. Form About . 42

3.2.2.1 Form Awal

Form ini adalah form yang muncul pertama kali ketika program dijalankan. Fungsi dari form ini adalah untuk memilih bentuk wadah bintang kejora yang akan digunakan bintang berkaki lima atau bintang berkaki enam. Gambar 3.7 Rancangan Form Awal 1 : optionbutton, untuk memilih bintang kejora berkaki lima. 2 : optionbutton, untuk memilih bintang kejora berkaki enam. 3 : picturebox, untuk menampilkan gambar bintang kejora berkaki lima. 4 : picturebox, untuk menampilkan gambar bintang kejora berkaki enam. 5 : tombol ’Tentang Pembuat’, untuk menampilkan form ’About’. 6 : tombol ’OK’, untuk mengkonfirmasi pilihan dan menampilkan form set keadaan. 7 : tombol ’Keluar’, untuk menutup form. Pilih bentuk bintang yang akan digunakan 1 2 43

3.2.2.2 Form Set Keadaan Bintang Berkaki Lima

Form ini berfungsi untuk mengatur keadaan awal dan keadaan tujuan pada bintang kejora berkaki lima. Keadaan awal dan keadaan tujuan dapat dihasilkan secara acak oleh komputer. Gambar 3.8 Rancangan Form Set Keadaan Bintang Berkaki Lima 1 : picturebox, untuk menampilkan keadaan awal. 2 : tombol ’Random’, untuk menghasilkan keadaan awal secara acak. 3 : picturebox, untuk menampilkan keadaan tujuan. 4 : tombol ’Random’, untuk menghasilkan keadaan tujuan secara acak. 5 : tombol ’Kembali’, untuk kembali ke form ’Awal’. 6 : tombol ’OK’, untuk menampilkan form ’Pilih Metode Pencarian’. 44

3.2.2.3 Form Set Keadaan Bintang Berkaki Enam

Form ini berfungsi untuk mengatur keadaan awal dan keadaan tujuan pada bintang kejora berkaki enam. Keadaan awal dan keadaan tujuan dapat dihasilkan secara acak oleh komputer. Gambar 3.9 Rancangan Form Set Keadaan Bintang Berkaki Enam 1 : picturebox, untuk menampilkan keadaan awal. 2 : tombol ’Random’, untuk menghasilkan keadaan awal secara acak. 3 : picturebox, untuk menampilkan keadaan tujuan. 4 : tombol ’Random’, untuk menghasilkan keadaan tujuan secara acak. 5 : tombol ’Kembali’, untuk kembali ke form ’Awal’. 6 : tombol ’OK’, untuk menampilkan form ’Pilih Metode Pencarian’. 45

3.2.2.4 Form Pilih Metode Pencarian

Form ini berfungsi untuk memilih metode pencarian yang akan digunakan untuk mencari solusi pergeseran angka dari keadaan awal menuju keadaan tujuan. Gambar 3.10 Rancangan Form Pilih Metode Pencarian 1 : optionbutton, untuk memilih metode pencarian BFS. 2 : tombol ’OK’, untuk mengkonfirmasi pilihan dan lanjut ke form pencarian solusi. 3 : tombol ’Batal’, untuk membatalkan pemilihan dan kembali ke form set keadaan.

3.2.2.5 Form Solusi Bintang Berkaki Lima

Form ini berfungsi untuk menampilkan solusi pada bintang kejora berkaki lima yang telah didapatkan dari form pencarian. 46 Gambar 3.11 Rancangan Form Solusi Bintang Berkaki Lima Keterangan: 1 : picturebox, untuk menampilkan keadaan dari bintang kejora berkaki lima. 2 : label, untuk menampilkan metode yang telah digunakan untuk mendapatkan solusi. 3 : label, untuk menampilkan waktu pencarian. 4 : label, untuk menampilkan panjang langkah solusi. 5 : msflexgrid, sebagai tabel untuk menampilkan langkah-langkah menuju keadaan akhir. 6 : textbox, untuk memasukkan besar delay pergerakan antar langkah. 7 : tombol ’Mulai’, untuk memulai proses pergeseran angka menuju keadaan akhir. 8 : tombol ’Hentikan’, untuk menghentikan proses pergeseran angka. 5 47 9 : tombol ’Ulangi’, untuk mengulangi proses pergeseran angka. 10 : tombol ’Keluar’, untuk menutup form.

3.2.2.9 Form Solusi Bintang Berkaki Enam

Form ini berfungsi untuk menampilkan solusi pada bintang kejora berkaki enam yang telah didapatkan dari form pencarian. Gambar 3.12 Rancangan Form Solusi Bintang Berkaki Enam Keterangan: 1 : picturebox, untuk menampilkan keadaan dari bintang kejora berkaki lima. 2 : label, untuk menampilkan metode yang telah digunakan untuk mendapatkan solusi. 5 48 3 : label, untuk menampilkan waktu pencarian. 4 : label, untuk menampilkan panjang langkah solusi. 5 : msflexgrid, sebagai tabel untuk menampilkan langkah-langkah menuju keadaan akhir. 6 : textbox, untuk memasukkan besar delay pergerakan antar langkah. 7 : tombol ’Mulai’, untuk memulai proses pergeseran angka menuju keadaan akhir. 8 : tombol ’Hentikan’, untuk menghentikan proses pergeseran angka. 9 : tombol ’Ulangi’, untuk mengulangi proses pergeseran angka. 10 : tombol ’Keluar’, untuk menutup form.

3.2.2.10 Form About

Form ini berfungsi untuk menampilkan informasi atau data pribadi pembuat program atau penyusun tugas akhir. Gambar 3.13 Rancangan Form About Keterangan: 1 : picturebox, untuk menampilkan logo perangkat lunak. 2 : label, untuk menampilkan judul atau nama perangkat lunak. 3 : label, untuk menampilkan nama, NIM, jurusan dan nama kampus pembuat 49 perangkat lunak. 4 : tombol ’OK’, untuk menutup form. 5 : tombol ’System Info’, untuk menampilkan spesifikasi hardware dan software dari komputer yang sedang dipakai. 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 +