LAPORAN PRAKTIKUM STRUKTUR DATA DAN ALGORITMA II
BACKTRACK
DISUSUN OLEH :
YAHYA ABDUL AZIZ M0515041 ASISTEN :
1. KELVIN HERWANDA TANDRIO
(M0514027)
2. KHOIRUL FIKRI
(M0514028)
3. MUHAMMAD ADAM FAHMIL ‘ILMI ‘ILMI
(M0514031)
PROGRAM STUDI INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SEBELAS MARET SURAKARTA
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,
Class main ’ Backtrack_41.java’
Hasil output: - Didalam program ini kita diharuskan meng-input kan ukuran maze untuk ‘ jalur tikus’ yang akan dilewati ‘tikus’. Input terdiri matriks ‘ 1 0’
Input minimal 6 dan maksimal P = 15 , L = 10 -
Kita coba buat labirin 7x7
Maka labirin siap di isi input. -
Lalu kita lihat hasilnya,
PEMBAHASAN Analisis Hasil Post-Test
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 solve maze
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 ters ebut, 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.