3.2 Rancangan Use Case
Use Case
dari aplikasi yang dibuat dapat digambarkan sebagai berikut:
Gambar 3.2 Use Case Alat Pengujian
Terdapat 1 user dimana peneliti yang melakukan penelitian dengan pathfinfing dengan algoritma A dan Dijkstra. Peneliti akan menggunakan
fasilitas pencari jalur terpendek A dan Dijkstra yang akan menampilkan simulasi dan data pengujian berupa runtime, open nodenode yang dijelajahi dan best
pathjalur terpendek.
3.3 Rancangan Algoritma
Dalam membangun fasilitas pencarian jalur terpendek maka dibutuhkan algoritma yang mampu memberikan solusi tersebut, maka untuk penelitian ini
akan dipakai algoritma algoritma A dan Dijkstra dimana keduanya akan memberi solusi untuk pencarian jalur terpendek. Dimana nantinya akan dilakukan
penelitian pada segi performa dari kedua algoritma tersebut. Untuk perancangan
Peneliti Melihat Performa
Algoritma A dan Dijkstra
algoritma dapat diuraikan sebagai berikut.
3.3.1 Rancangan Kode untuk Algoritma A
Pseudocode algoritma A dapat diuraikan sebagai berikut :
3.3.2 Rancagan Kode untuk Algoritma Dijkstra
Adapun pseudocode dari algoritma dijkstra dapat diuraikan sebagai berikut:
\
initialize the open list initialize the closed list
put the starting node on the open list set F = G+ H where G = 0 and H = distance from goal to open list
while the open list is not empty set node with the least f as current
if current is the goal, stop the search return the path generate all successors and set current as their parents
for each successor
successor.g = current.g + distance between successor and q successor.h = distance from goal to successor
successor.f = successor.g + successor.h if a node with the same position as successor is in the CLOSED list
which has a lower f than successor, skip this successor otherwise, add the node to the open list
end for push current on the closed list
find the node with the least f on the open list end while
initialize the open list initialize the closed list
put the starting node on the open list set the cost is 0 while the open list is not empty
set node with the least cost as current generate all successors and set current as their parents
for each successor
if successor is the goal, stop the search return the path successor.cost = q.cost + distance between successor and q
add the node to the open list end for
push current on the closed list find the node with the least cost on the open list,
end while
Linked List adalah suatu struktur data linier.Berbeda dengan array yang juga merupakan struktur data linier dan tipe data komposit, linked list dibentuk
secara dinamik. Pada saat awal program dijalankan elemen linked list belum ada. Elemen linked list disebut node dibentuk sambil jalan sesuai instruksi. Linked
list digunakan untuk menyimpan alur dari path dari end node menuju start node melalui parent
– parent nodenya dalam proses runut balik ke node awal. Misal Start Node di koordinat 19,11 dan End Node di 16,13 maka pada
pencarian tersebut disetiap node yang dijelajahi akan di disimpan ke dalam array dengan index sesuai koordinatnya. Ketika Algoritma sudah menemukan jarak
terpendek maka akan dilihat index [x][y] nya kemudian didalam array tersebut sudah terbentuk link list yang digunakan untuk merunut node tersebut dari node
awal. Link listnya dimulai dari End Node ditelusur parent - parent nya hingga sampai ke start node.
Untuk koordinat di atas maka dimulai dari Object Node 16,13 yang menunjuk parent ke node 17,13 , node 18,13 menunjuk parent node19,13 ,
node 19,13 menunjuk ke parent node 19,12 kemudian node 19,12 menunjuk ke parent node 19,11. Jadi itulah menjadi jalur terbaik dari node 19,11 ke
16,13.
Gambar 3.4 3.4
Perancangan Struktur Data
Pada penelitian ini penulis menggunakan struktur data sebagai penyimpan data.Struktur data yang digunakan adalah Array dan Linked List. Array dua
dimensi digunakan untuk menentuan koordinat titik x, y dalam permainan labirin ini. Array dua dimensi
adalah Sebuah array yang menampung array lain sebagai data nilai dari setiap indeks array penampung.