BAB 3 ANALISIS DAN PERANCANGAN APLIKASI
3.1 Analisis Algoritma Backtracking pada Word Search Puzzle
Pada bab sebelumnya telah dijelaskan bahwa aplikasi yang akan dibangun adalah suatu aplikasi yang dapat menemukan solusi permainan word search puzzle dengan
menerapkan algoritma backtracking. Algoritma ini akan diterapkan pada menu ‘bantuan’ dan ‘selesaikan’ pada aplikasi. ‘bantuan’ adalah menu untuk mencari salah
satu solusi dari permainan sedangkan ‘selesaikan’ adalah menu untuk menemukan seluruh solusi pada permainan.
Adapun langkah-langkah pencarian dengan algoritma backtracking pada Word search puzzle
adalah sebagai berikut : 1.
Simpul akar pada pohon yang merepresentasikan ruang kemungkinan probability space merupakan inisialisasi dan menyatakan pencarian huruf
awal dari kata yang ingin dicari di papan permainan. Pencarian posisi- posisi ini dilakukan dari bagian kiri atas hingga bagian kanan bawah
papan permainan. Pencarian ini akan menghasilkan posisi-posisi pada papan permainan yang berisi huruf yang sama dengan huruf awal pada kata
yang ingin dicari. Pohon yang merepresentasikan ruang kemungkinan solusi pada pencarian solusi permainan word search puzzle dapat dilihat pada
Gambar 3.1.
26
Gambar 3.1 Pohon yang merepresentasikan ruang kemungkinan
solusi permainan word search puzzle
2. Jika pencarian pada langkah 1 tidak menemukan satupun posisi pada
papan permainan yang berisi huruf awal dari kata yang dicari, berarti kata tersebut tidak ada di papan permainan.
3. Jika pencarian pada langkah 1 menemukan posisi yang tepat, pencarian
huruf selanjutnya akan dimulai dari posisi tersebut. 4.
Pembangkitan simpul-simpul dari posisi tersebut dilakukan dengan mengikuti algoritma DFS. Simpul dibangkitkan dengan urutan jalur yang
memungkinkan yaitu : a.
Vertikal ke atas b.
Vertikal ke bawah c.
Horizontal ke kanan d.
Horizontal ke kiri e.
Diagonal kanan atas f.
Diagonal kiri atas g.
Diagonal kanan bawah h.
Diagonal kiri bawah ...
27 5.
Pembangkitan simpul selanjutnya dilakukan dengan berdasarkan ketentuan sebagai berikut :
a. Jika pembangkitan suatu simpul telah memilih suatu jalur,
pembangkitan simpul selanjutnya untuk lintasan tersebut dilakukan menurut jalur tersebut.
b. Jumlah huruf yang terdapat dalam kata yang ingin dicari. Dengan
kata lain, jika ingin memeriksa suatu jalur, terlebih dahulu dilakukan pengecekan apakah pada jalur tersebut dapat diperoleh
jumlah huruf yang sama dengan jumlah huruf pada kata yang ingin dicari.
c. Kecocokan huruf pada suatu posisi pada grid permainan dengan
huruf pada kata yang ingin dicari. 6.
Pencarian berhasil jika menemukan kata yang dicari pada pembangkitan simpul-simpul pada proses pencarian melalui suatu jalur.
7. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi, simpul tersebut
dipotong sehingga menjadi simpul mati dead node dan tidak akan di-perluas lagi.
8. Jika pembentukan lintasan berakhir dengan simpul mati, proses pencarian
solusi dilanjutkan dengan melakukan backtracking ke simpul orangtua. Dalam hal ini, backtracking dilakukan hingga kembali ke simpul pada
langkah 4. Selanjutnya simpul ini menjadi simpul yang baru dan simpul anak berikutnya dibangkitkan sesuai urutan jalur yang telah disebutkan
sebelumnya. 9.
Jika simpul yang diperoleh dari langkah 8 tidak bisa diperluas lagi semua jalur telah diperiksa dan tidak ada yang memenuhi, pencarian
solusi dilakukan dengan backtracking ke simpul akar. Dengan kata lain,
28 proses dimulai kembali dari langkah 1 dengan mencari posisi lain dari
huruf awal kata yang ingin dicari di papan permainan. Penerapan algoritma backtracking pada word search puzzle dapat dilihat
dalam pencarian kata pada contoh word search puzzle berukuran 5x5 pada Gambar 3.2.
A Z X B G T B U K U
A J W R I R T A W S
N E O Q U
Gambar 3.2 Word search puzzle 5x5
Misalkan kata yang ingin dicari pada word search puzzle Gambar 3.2 adalah ‘BUKU’. Penerapan langkah-langkah pencarian dengan algoritma backtracking untuk
menemukan solusi ‘BUKU’ pada word search puzzle Gambar 3.2 dapat dilihat pada
Gambar 3.3. Pada Gambar 3.3 a ditunjukkan indeks posisi dari setiap huruf dalam word search puzzle.
a b
Gambar 3.3 Posisi huruf pada grid a Pohon ruang solusi permainan word search puzzle b
1 2 4
3 5 6 7 8
13 11 12
14 15 16
17 18
19 20
21 22 23 24 25 9
10
mulai
B K
R W
Q G
X Z
A U
U J
R B
Z J
T E
U K
U T X
A W
W U
A 4
7
9 14
19 24
5 3 2
1 8
10 12
16 2 12 8
17 22
9 10
6 3 1 13 19
25 1
berhenti