DISUSUN OLEH :
YAHYA ABDUL AZIZ
M0515041
ASISTEN :
2016
HASIL PRAKTIKUM
Pada Post-test kali ini, kita akan membahas tentang algoritma Backtrack dalam sebuah game
Rat In Maze. Berikut hasil source code dan screen shoot hasil running program ini.
Hanya memakai satu class utama saja,
Praktikum ini kita membahas tentang algoritma Backtracking. Algoritma ini kita terapkan
dalam sebuah labirin dimana terdapat banyak jalan dan hanya ada satu jalur masuk dan keluar.
Algoritma ini terkenal dalam solve suatu game bernama Rat In Maze.
Masuk kedalam pembahasan algoritma. Didalam class ini terdiri dari 1 konstruktor dan
beberapa method.
- Constructor
Konstruktor disini bertugas menyusun array yang berisi solusi dari masalah labirin yang
diinputkan.
Disusun menggunakan looping terhadap tiap indeks yang ada, dengan nilai 0 adalah
indeks awal. Jalur yang merupakan solusi diberi nilai 1 dan jalur yang tak bisa dilewati
mouse diberi nilai 1.
Method ini digunakan untuk menampilkan array yang telah berisi solusi untuk masalah
labirin yang telah diinputkan. Jika penunjuk pencari arah berhasil mencapai indeks
paling terakhir, maka array solusi yang sudah terbentuk akan ditampilkan. Tetapi jika
penunjuk pencari arah tidak bisa mencapai langkah ke indeks paling terakhir, maka
akan ditampilkan NO PATH FOUND sebagai keterangan bahwa labirin tersebut
tidak memiliki solusi penyelesaian. Pada method ini juga ditentukan bahwa arah
pertama yang disimpan oleh langkah pertama adalah down atau ke bawah.
- Method findpath
Method ini digunakan sebagai penunjuk jalan dalam pencarian track solusi dalam
labirin. Pertama-tama diberi keterangan bahwa jika penunjuk sudah mencapai indeks
paling terakhir, maka penunjuk tidak perlu melakukan pencarian langkah ke arah
manapun lagi, dan pencarian selesai. Serta dilakukan penambahan 1000 poin ke score.
Jika pilihan masuk ke method SafeToGo, maka akan mengembalikan nilai true pada
langkah yang palig terakhir dilakukan, maka akan terdapat 4 kemungkinan dari langkah
yang bisa dilakukan selanjutnya. Dilakukan pengecekan terhadap semua arah tersebut,
dengan urut dimulai dari pengecekan arah bawah, lalu kanan, lalu atas, lalu kiri. Dengan
catatan yaitu, arah yang dilakukan selanjutnya bukan indeks yang telah dilalui
sebelumnya. Jadi jika tikus datang dari atas, maka arah atas tersebut tidak akan dilalui
dulu sebelum tikus mengecek tiga kemungkinan arah lainnya, begitu pula jika tikus
datang dari kemungkinankemungkinan arah yang lain. Jika berhasil dilakukan langkah,
lanjut, maka method ini mengembalikan nilai true.
- Method isSafeToGo
Method ini adalah untuk memeriksa apakah terdapat arah (indeks) yang bisa dimasuki
antara bawah, atas, kanan, atau kiri dari indeks yang sedang ditempati tikus. Jika ada,
maka indeks yang sedang ditempati tikus diubah menjadi nilai 1 sebagai penanda
bahwa indeks tersebut adalah indeks yang merupakan bagian dari solusi.
- Method print
Method ini hanyadigunakan untuk menampilkan semua indeks dari array solusi.
- Fungsi main
Seperti umumnya, method main adalah method utama yang dieksekusi oleh program.
Pertama user diminta untuk menginputkan panjang dan lebar dari labirin, dengan
ketentuan 5 < panjang < 16 dan 5 < lebar < 11, jika nilai panjang atau lebar yang
diinputkan keluar dari interval aturan yang sudah diberikan, maka user akan diminta
untuk menginputkan ulang.