• Tidak ada hasil yang ditemukan

BAB III ANALISA DAN PERANCANGAN

3.1 Pembahasan

3.1.1 Alur Kerja Perangkat Lunak

3.1 Pembahasan

Pembahasan perancangan perangkat lunak penyelesaian permainan pergeseran angka dalam bintang kejora mencakup alur kerja perangkat lunak dan pembahasan mengenai permainan pergeseran angka dalam bintang kejora. Masing-masing pembahasan akan dibahas dalam beberapa sub bab berikut ini.

3.1.1 Alur Kerja Perangkat Lunak

Perangkat lunak dimulai dengan form Awal. Form Awal berfungsi untuk memilih bentuk bintang kejora yang ingin digunakan. Pilih salah satu bentuk bintang (berkaki lima atau berkaki enam), maka akan muncul form Set Keadaan untuk masing-masing bentuk bintang. Form ini berfungsi untuk mengatur keadaan awal dan keadaan akhir. Setelah itu, tekan ’OK’ dan muncul form Pilih Metode Pencarian. Pada form ini, user dapat memilih untuk menggunakan metode pencarian Breadth First Search (BFS). Bila solusi ditemukan, maka perangkat lunak akan menampilkannya pada form Solusi Bintang Berkaki Lima atau Enam. Alur kerja perangkat lunak ini dapat digambarkan dalam bentuk flowchart seperti terlihat pada gambar 3.1 berikut.

START

Pilih Bintang

Bintang Kaki 5 Bintang Kaki 6

Set Keadaan Awal

SOLUSI

END Solusi Bitang Kaki

5 Metode BFS

Solusi Bintang Kaki 6

Gambar 3.1 Flowchart

3.1.2 Permainan Pergeseran Angka dalam Bintang Kejora

Permainan pergeseran angka pada bintang kejora merupakan salah satu permasalahan AI yang dapat diselesaikan dengan bantuan pohon pelacakan. Permainan pergeseran angka pada bintang kejora mirip dengan permainan pergeseran angka dalam kotak berbentuk persegi. Perbedaannya hanya terletak pada bentuk wadah yang digunakan. Setiap titik perpotongan dalam bintang kejora merupakan

titik (node) penempatan angka. Seperti halnya, permainan pergeseran angka lainnya, dalam permainan ini juga disediakan satu tempat kosong sebagai ruang untuk menggeser posisi angka. Dalam permainan ini terdapat aturan untuk menggeser angka dari satu titik ke titik lain. Aturan pergeseran angka dalam bintang kejora adalah sebagai berikut:

1. Setiap angka hanya dapat digeser mengikuti jalur yang sudah ada sesuai dengan bentuk bintang kejora yang digunakan.

2. Setiap angka hanya dapat digeser ke suatu titik atau tempat kosong yang tidak ditempati oleh angka lain.

Setiap pergeseran angka harus mematuhi aturan yang telah ditetapkan. Pada bintang kejora berkaki lima yang memiliki 10 buah titik, tersedia 9 buah titik yang memuat angka dan 1 buah titik kosong, sedangkan pada bintang kejora berkaki enam yang memiliki 12 buah titik, tersedia 11 buah titik yang memuat angka dan 1 buah titik kosong. Perhatikan gambar 3.2.

Gambar 3.2 Aturan Pergeseran Angka dalam Bintang Kejora

Pada gambar 3.2, angka 3, 5, 4 dan 1 dapat digeser ke titik kosong, karena terdapat jalur (garis) yang menghubungkan titik tempat angka tersebut berada dengan titik yang kosong.

Dalam perancangan, kondisi atau keadaan bintang kejora direpresentasikan atau disimpan dalam bentuk string. Caranya adalah, setiap titik dalam bintang kejora diberikan nomor urut dari posisi paling atas, dari kiri ke kanan, turun ke bawah dan seterusnya. Selanjutnya, angka-angka disimpan dalam bentuk string berurut sesuai dengan posisi dari titik yang ditempatinya. Tempat kosong direpresentasikan sebagai angka ’0’. Perhatikan gambar 3.3.

Gambar 3.3 Posisi titik dalam bintang kejora berkaki lima

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,

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.

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

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).

Dokumen terkait