Anda di halaman 1dari 8

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

Anda mungkin juga menyukai