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 +