perbandingan algoritma a* dan dijkstra untuk … · perbandingan algoritma a* dan dijkstra untuk...

88
Oleh: A Fendi Pratama NIM. 135314113 Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta 2017 PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK PENCARIAN JALUR TERPENDEK PADA GRAF SQUARE LATTICE SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Upload: trinhhanh

Post on 08-Mar-2019

248 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

Oleh:

A Fendi Pratama

NIM. 135314113

Program Studi Teknik Informatika

Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Yogyakarta

2017

PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK

PENCARIAN JALUR TERPENDEK PADA GRAF SQUARE LATTICE

SKRIPSI

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

COMPARISON OF A* AND DIJKSTRA ALGORITHMS FOR

SMALLEST PATHFINDING IN SQUARE LATTICE GRAPH

THESIS

Presented as Partial Fulfillment of The Requirements

To Obtain Sarjana Komputer Degree

In Informatics Engineering Study Program

By:

A Fendi Pratama

NIM. 135314113

Informatics EngineeringStudy Program

Faculty of Science and Technolgy

Sanata Dharma University

Yogyakarta

2017

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

HALAMAN PERSETUruAN SKRIPSI

PERBAI{I}INGAI\I ALGORITMA A* DAIY DIJKSTRA UNTUK

PENCARIAN JALUR TERPENDEK PADA GRAF'SQUARE I,AITTICE

llI

rangga: l(r JUNI 1ot7

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

SKRIPSI

PERBANDINGAN ALGORITMA A* DAI{ DIJKSTRA TJNTUK

PENCARIAIY JALUR TERPENDEK PADA GRAT SQUARB LATTTICE

Yang Dipersiapkan dan Ditutis Oleh :

A Fendi Pratama

r3$14u3Telah dipertahamkan di depan Panitia Penguji

mdinvehlrrg-44 Iq4D

5ts- '

4 *u*u**i*

\--{:*daqA-1f.

Fakultas Sains dan Teknologi

Sudi Mrmgkasi, S.Si., M.Math. Sc.,Ph.D

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

v

PERNYATAAN KEASLIAN HASIL KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

tisak memuat karya atau bagian karya orang lain, kecuali yang telah disesbutkan

dalam kutipan dan daftar pustaka, sebagaimana hasil karya ilmiah.

Yogyakarta, 14 Juni 2017

Penulis

A Fendi Pratama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

vi

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI UNTUK

KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma

Yogyakarta :

Nama : A Fendi Pratama

NIM : 135314113

Demi pengembangan ilmu pengetahuan, saya memberikan kepada

Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

“PERBANDINGAN ALGORITMA A* DAN DIJKSTRAUNTUK

PENCARIAN JALUR TERPENDEK PADA GRAF SQUARE LATTTICE ”

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya

memberikan kepada Universitas Sanata Dharma untuk menyimpan, mengalihkan

dalam bentuk media lain, mengolahnya dalam bentuk pangkalan data,

mendistribusikannya secara terbatas, dan mempublikasikannya di internet atau

media lain untuk kepentingan akademis tanpa perlu minta ijin dari saya maupun

memberikan royality kepada saya selama tetao mencatumkan nama saya sebagai

penulis. Demikian peryataan ini saya buat dengan sebenarnya.

Yogyakarta, 14 Juni 2017

Penulis

A Fendi Pratama

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

vii

ABSTRAK

Graf Square Lattice merupakan salah satu bentuk graf yang simpul dan

penghubungnya membentuk dimensi jaring-jaring kotak atau persegi. Graf ini

sering diimplementasikan untuk membangun jalur pada peta suatu arena

permainan. Salah satu permasalahan popular yang muncul pada graf adalah

pencarian jalur terpendek. Maka dengan menggunakan teknolgi komputer dapat

dibuat sistem yang bisa memberikan solusi jalur terpendek dengan lebih cepat.

Pada pembangunan sistem ini dapat dibuat dengan menerapkan algoritma

pathfinding.Ada beberapa algoritma pathfinding yang bisa digunakan dua

diantaranya adalah A* dan Dijkstra. Dari kedua algoritma tersebut dapat

ditentukan algoritma mana yang bekerja lebih baik, baik dari solusi yang

diberikan dan proses kerja. Parameter yang dapat digunakan untuk penilaian

kedua algoritma tersebut diantaranya waktu eksekusi, poses looping, simpul

dijelajahi yang merupakan parameter proses kerja dan jalur terpendek merupakan

parameter solusi.

Hasil yang dicapai adalah bawha algoritma A* dan Dijkstra sama-sama

memberikan solusi yang optimal. Kedua algoritma mampu memberikan jalur

terpendek dengan ukuran yang sama.Pada proses kerja baik dari Algoritma A*

dan Algoritma Dijkstra memiliki keunggulan dan kelemahan masing-masing. A*

lebih baik untuk arenadengan halangan yang tidak mengecoh. Dijkstra bisa lebih

baik untuk arena dengan halangan yang mengecoh.

Kata Kunci : Graf Square Lattice, A*, Dijkstra

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

viii

ABSTRACT

Graph Square Lattice is one of the forms of graph that vertices and edges

form a square webs dimension. These graphs are often implemented to build paths

on maps in a game arena.One of the popular topics that appear on graphs is the

shortest pathfinding. So by using computer technology can be made system that

can provide the shortest path solution more quickly.

To build this system can be made by applying pathfinding algorithm.

There are several pathfinding algorithms that can be used two of them are A* and

Dijkstra. From both algorithms can be determined which algorithm works better,

both form given solution and work process.Parameters that can be used for the

assessment of both algorithms include execution time, looping process, explored

nodes which are the working process parameters and the shortest path is the

solution parameter.

The result is that the A* and Dijkstra algorithms provide the optimal

solution. Both algorithms are able to provide the shortest path of the same size. In

the work process both from A* Algortihm and Dijkstra Algorithm have

advantages and disadvantages of each. A* Algorithm is better for obstacles that do

not deceive. Dijkstra is better for a deceptive obstacle.

Kata Kunci :Square Lattice Graph, A*, Dijkstra

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

ix

KATA PENGANTAR

Puji syukur saya haturkan kepada Tuhan YME yang telah melimpahkan

rahmat dan karunia-Nya, sehingga penulis dapat menyelsesaikan Tugas Akhir

dengan judul “Perbandingan Algoritma A* dan Dijkstrauntuk Pencarian

Jalur Terpendek pada Graf Square Lattice”.

Dalam menyelesaikan pembuatan program dan laporan Tugas Akhir ini,

penulis telah banyak menerima bimbingan, saran dan masukan dari berbagai

pihak, baik secara langsung maupun tidak langsung. Pada kesempatan ini penulis

menyampaikan banyak terima kasih kepada :

1. Bapak Albertus Agung Hadhiatma M.T. selaku dosen pembimbing

yang telah banyak membantu, memberikan bimbingannya dengan

sabar danbaik.

2. Ayah, Ibu, dan Kakak yang telah memberi dukungan dalam bentuk

materi, non materi, moril, kasih sayang bagi penulis sehingga program

dan laporan Tugas Akhir ini dapat terselesaikan dengan baik dan tepat

waktu.

3. Sahabat – sahabat dekat saya yang selalu memberikan semangat, dan

pencerahan.

4. Teman – teman TI angkatan 2013 yang tidak dapat penulis sebutkan

satu per satu.

5. Pihak lain yang tidak dapat penulis sebutkan satu per satu, sehingga

Tugas Akhir ini dapat terselesaikan dengan baik.

Penulis menyadari bahwa Tugas Akhir ini masih jauh dari

sempurna.Penulis sangat mengharapkan kritik dan saran yang membangun dari

pembaca, sehingga suatu saat penulis dapat memberikan karya yang lebih baik.

Akhir kata, penulis memohon maaf apabila ada kesalahan dan kekurangan

baik dalam penyusunan laporan Tugas Akhir maupun penyusunan program Tugas

Akhir. Penulis berharap semoga Laporan Tugas Akhir ini dapat berguna dan

bermanfaat bagi pembaca.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

x

DAFTAR ISI

HALAMAN JUDUL .......................................................................................... i

TITTLE PAGE .................................................................................................. ii

HALAMAN PERSETUJUAN SKRIPSI .......................................................... iii

HALAMAN PENGESAHAN SKRIPSI ........................................................... iv

PERYATAAN KEASLIAN HASIL KARYA................................................... v

LEMBAR PERYATAAN PUBLIKASI ............................................................ vi

ABSTRAK ......................................................................................................... vii

ABSTRACT ....................................................................................................... viii

KATA PENGANTAR ....................................................................................... ix

DAFTAR ISI ..................................................................................................... x

DAFTAR GAMBAR ........................................................................................ xiii

DAFTAR TABEL ............................................................................................. xv

DAFTAR GRAFIK ........................................................................................... xvi

BAB IPENDAHULUAN ................................................................................... 1

1.1 Latar Belakang ...................................................................................... 1

1.2 Rumusan Masalah ................................................................................. 2

1.3 Batasan Masalah ................................................................................... 2

1.4 Tujuan Penelitian .................................................................................. 3

1.5 Manfaat Penelitian ............................................................................... 3

1.6 Metode Penilitian ................................................................................. 4

1.7 Sistematika Penulisan .......................................................................... 5

BAB II LANDASAN TEORI ............................................................................ 7

2.1 Permainan Labirin ................................................................................ 7

2.2 Graf Square Lattice ............................................................................... 8

2.3 Algoritma A* ....................................................................................... 9

2.3.1 Terminologi Dasar Algoritma A* ........................................................ 9

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

xi

2.3.3 Fungsi Heuristik ................................................................................... 10

2.3.4 Langkah Algoritma A* ......................................................................... 11

2.4 Algoritma Dijkstra ................................................................................ 12

2.4.1 Algoritma Greedy ................................................................................. 13

2.4.2. Langkah Algoritma Dijkstra ................................................................ 14

BAB III PERANCANGAN SISTEM ................................................................ 14

3.1 Kebutuhan Sistem ................................................................................ 15

3.2 Rancangan Use Case ............................................................................. 17

3.3 Rancangan Algoritma ........................................................................... 17

3.3.1 Rancangan Kode untuk Algoritma A* ................................................. 18

3.3.2 Rancangan Kode untuk Algoritma Dijkstra ......................................... 18

3.4 Perancangan Struktur Data ................................................................... 19

3.5. Perancangan Antarmuka ....................................................................... 20

3.6 Perancangan Pengujian ......................................................................... 21

3.7 Simulasi Manual Penerapan Algoritma ................................................ 21

3.7.1 Simulasi Algoritma A* ......................................................................... 21

3.7.2 Simulasi Algoritma Dijkstra ................................................................. 27

BAB IV IMPLEMENTASI DAN ANALISIS ................................................... 30

4.1 Implementasi Sistem ............................................................................. 30

4.1.1 Implementasi Rancangan Tampilan ...................................................... 30

4.1.2 Implementasi Algoritma Dijkstra dan A* ............................................ 32

4.2 Pengujian dan Analisa .......................................................................... 36

4.2.1 Pengujian Arena Solid dan Simetris ..................................................... 38

4.2.2 Pengujian Arena TidakSoliddan Simetris ............................................ 42

4.2.3 Pengujian Arena Solid danRandom Obstacle ....................................... 47

4.2.4 Pengujian Arena TidakSoliddan Random Obstacle .............................. 57

4.2.5 Pengujian Arena TidakSoliddan Random ObstacleUkuran

Diperbesar ............................................................................................. 62

4.2.6 Pengujian dengan Halangan Berbentuk cincin ..................................... 59

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

xii

4.2.7 Pengujian dengan Banyak Target ......................................................... 64

4.2.8 Analisa................................................................................................... 65

BABVKESIMPULAN DAN SARAN ............................................................... 69

5.1 Kesimpulan ........................................................................................... 69

5.2 Saran ...................................................................................................... 69

Daftar Pustaka ................................................................................................... 70

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

xiii

DAFTAR GAMBAR

Gambar 2.1 Contoh Permainan Labirin Pacman ............................................... 7

Gambar 2.2 Graf Square Lattice ....................................................................... 8

Gambar 3.1.c Rancangan Grid Matrix ............................................................... 16

Gambar 3.2 Use Case Alat Pengujian ............................................................... 17

Gambar 3.4 Linked List Penelusuran Ke Node Awal ...................................... 19

Gambar 3.5 Tampilan Papan Permainan dan Pengujian .................................... 20

Gambar 3.7.1.1 Visualisasi A* Langkah 1 ....................................................... 22

Gambar 3.7.1.2 Visualisasi A* Langkah 2 ....................................................... 22

Gambar 3.7.1.3 Visualisasi A* Langkah 3 ....................................................... 23

Gambar 3.7.1.4 Visualisasi A* Langkah 4 ....................................................... 23

Gambar 3.7.1.5 Visualisasi A* Langkah 5 ....................................................... 24

Gambar 3.7.1.6.a Visualisasi A* Langkah 6 ..................................................... 24

Gambar 3.7.1.6.b Kemungkinan Jalur Terpendek ............................................ 25

Gambar 3.7.1.7 Visualisasi A* Langkah 7 ....................................................... 25

Gambar 3.7.1.8.a Visualisasi A* Langkah 8 ..................................................... 26

Gambar 3.7.1.8.b Visualisasi Runut Balik ........................................................ 26

Gambar 3.7.2.1 Inisiasi Posisi Awal ................................................................. 27

Gambar 3.7.2.2 Langkah Dijkstra 2 .................................................................. 27

Gambar 3.7.2.3 Langkah Dijkstra 3 .................................................................. 28

Gambar 3.7.2.4 Langkah Dijkstra 4 .................................................................. 28

Gambar 3.7.2.5 Langkah Dijkstra 5 .................................................................. 29

Gambar 4.1.1 Tampilan papan permainan dan Fasilitas Pencarian jalur

terpendek ............................................................................................... 31

Gambar 4.2.1.1 Arena Solid dan Simetris.......................................................... 38

Gambar 4.2.1.2 Pencarian Algoritma A* Pengujian 1 ....................................... 39

Gambar 4.2.1.3 Pencarian Algoritma Dijkstra Pengujian 1 ............................... 39

Gambar 4.2.2.1 Arena TidakSoliddan Simetris ................................................. 42

Gambar 4.2.2.2 Pencarian Algoritma A* Pengujian 2 ....................................... 43

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

xiv

Gambar 4.2.2.3 Pencarian Algoritma Dijkstra Pengujian 2 ............................... 43

Gambar 4.2.3.1 Arena Soliddan Random Obstacle............................................ 47

Gambar 4.2.3.2 Pencarian Algoritma A* Pengujian 3 ....................................... 48

Gambar 4.2.3.3 Pencarian Algoritma Dijkstra Pengujian 3 ............................... 48

Gambar 4.2.4.1 Arena TidakSolid danRandom Obstacle .................................. 51

Gambar 4.2.4.2 Pencarian Algoritma A* Pengujian 4 ....................................... 52

Gambar 4.2.4.3 Pencarian Algoritma DijkstraPengujian 4 ................................ 52

Gambar 4.2.6.1 Arena Halangan Berbentuk Cincin .......................................... 51

Gambar 4.2.6.2 Pencarian Algoritma A* Pengujian 6 ....................................... 52

Gambar 4.2.6.3 Pencarian Algoritma Dijkstra Pengujian 6 ............................... 52

Gambar 4.2.7.1 Arena dengan Banyak Target ................................................... 64

Gambar 4.2.7.2 Pencarian Algoritma A* Pengujian 5 ....................................... 64

Gambar 4.2.7.3 Pencarian Algoritma DijkstraPengujian 5 ................................ 65

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

xv

DAFTAR TABEL

Tabel 4.2.1.1 Tabel PengujianArena Solid dan Simetris ................................... 40

Tabel 4.2.2.1 Tabel PengujianArena TidakSolid dan Simetris .......................... 44

Tabel 4.2.3.1 Tabel Pengujian Arena Solid dan Random Obstacle ................... 48

Tabel 4.2.4.1 Tabel Pengujian Arena Tidak Solid dan Random Obstacle ......... 53

Tabel 4.2.5.1 Tabel Pengujian Arena Tidak Solid dan Random Obstacle

Ukuran Diperbesar ................................................................................ 56

Tabel 4.2.6.1 Tabel Pengujian Arena Halangan Berbentuk Cincin ................... 61

Tabel 4.2.8.1 Rata-Rata Penurunan Besaran Proses Dari Algoritma

Dijktra ke A* ......................................................................................... 66

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

xvi

DAFTAR GRAFIK

Grafik 4.2.1.1 Perbandingan Node Visitation 30 Kali Pengujian 1 .................. 41

Grafik 4.2.1.2 Perbandigan Proses Looping 30 Kali Pengujian 1 ...................... 42

Grafik 4.2.1.3 Perbandingan Waktu Pencarian 30 Kali Pengujian 1 ................ 42

Grafik 4.2.2.1 Perbandingan Node Visitation 30 Kali Pengujian 2 .................. 45

Grafik 4.2.2.2 Perbandigan Proses Looping 30 Kali Pengujian 2 ..................... 46

Grafik 4.2.2.3 Perbandingan Waktu Pencarian 30 Kali Pengujian 2 ................ 46

Grafik 4.2.3.1 Perbandingan Node Visitation 30 Kali Pengujian 3 .................. 50

Grafik 4.2.3.2 Perbandigan Proses Looping 30 Kali Pengujian 3 ..................... 50

Grafik 4.2.3.3 Perbandingan Waktu Pencarian 30 Kali Pengujian 3 ................ 51

Grafik 4.2.4.1 Perbandingan Node Visitation 30 Kali Pengujian 4 .................. 54

Grafik 4.2.4.2 Perbandigan Proses Looping 30 Kali Pengujian 4 ..................... 55

Grafik 4.2.4.3 Perbandingan Waktu Pencarian 30 Kali Pengujian 4 ................ 55

Grafik 4.2.5.1 Perbandingan Node Visitation 30 Kali Pengujian 5 .................. 58

Grafik 4.2.5.2 Perbandigan Proses Looping 30 Kali Pengujian 5 ..................... 58

Grafik 4.2.5.3 Perbandingan Waktu Pencarian 30 Kali Pengujian 5 ................ 59

Grafik 4.2.6.1 Perbandingan Node Visitation 30 Kali Pengujian 6 .................. 62

Grafik 4.2.6.2 Perbandigan Proses Looping 30 Kali Pengujian 6 ..................... 63

Grafik 4.2.6.2 Perbandigan Proses Looping 30 Kali Pengujian 6 ..................... 63

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Graf Square Lattice merupakan salah satu bentuk graf yang simpul dan

penghubung-nya membentuk dimensi kotak atau persegi. Graf ini sering

diimplementasikan untuk membangun jalur pada peta untuk arena

permainan.Ghost Words Labyrinth merupakan permainan labirin dimana

pemainakan ditugaskan untuk menyusun kata dari huruf yang secara beruntun

akan muncul pada peta labirin. Dalam membangun arena labirin permainan ini

diimplementasikan Graf Square Lattice. Rintangan dari game ini adalah dinding-

dinding yang ada pada arena permainan. Skor permainan akan bergantung

seberapa cepat pemain dapat mendapatkan huruf, sehingga pemain harus mencari

jalur yang efektif untuk mendapatkan huruf yang dicari.

Dari masalah di atas maka bisa dibuat fasilitas pencari jalan yang dapat

membantu pemain menyelesaikan misi.Menurut buku Artificial Intelligence for

Games karangan Ian Millington algoritma pathfinding bisa dipakai sebagai solusi

untuk menyelesaikan misi permainan yang membutuhkan pencarian jalur

terpendek.Ada banyak algoritma yang dapat digunakan untuk pencarian jalur

beberapa diantaranya adalah algoritma A* dan algoritma Dijkstra.

Algoritma A* diperkenalkan pertama kali oleh Peter Hart, Nils Nilsson dan

Bertram Raphael dari Institut Riset Stanford(Stanford Reseach Institute) pada

tahun 1968. Algoritma A* merupakan algoritma heuristik sehingga pencariannya

akan terbimbing. Sedangkan untuk algoritma Dijksta diperkenalkan oleh Edsger

Dijkstra pada tahun 1956.Algoritma Dijkstra sendiri bersifat greedy sehingga

pencarianya tidak terbimbing.(Reddy, 2013).

Dari kedua algoritma yang disebutkan di atas ini dapat dicari algoritma

mana yang bekerja lebih baik.Dalam buku Analysis of Algortihms karangan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

2

Robert Sedgewick bahwa algoritma dapat dikatakan bekerja lebih baik jika kita

dapat melihat nilai performa yang didapatkan dari masing algoritma. Kemudian

pada bukuAftificial Intelligence for Games karangan Ian Millington performa

kerja algoritma Patfinding dapat dinilai dengan melihat banyaknya proses kerja

dan solusi yang diberikan.

Merujuk permasalahan di atas peneliti akan membuat prototipe dari papan

Ghost Words Labyrinth dan membuat fasilitas pencarian jalur terpendek dengan

algoritmaA* dan Dijkstra. Kemudian meneliti performa dari algoritma A* dan

Dijkstra yang akan dipakai, sehingga perbandingan kedua algoritma tadi dapat

diketahui mana yang lebih baik.

1.2 Rumusan Masalah

Berdasarkan latar belakang diatas, maka dapat ditarik beberapa rumusan

masalah sebagai berikut :

1. Bagaimana hasil perbandingan untuk solusi jalur terpendek yang

diberikan algoritma A* maupun Dijkstra?

2. Bagaimana hasil perbandingan dari proses kerja untuk algoritma A*

dan Dijkstra?

1.3 Batasan Masalah

Batasan-batasan masalah dalam dalam penelitian ini antara lain :

1. Graf yang dipakai untuk membuat jalur pada arena adalah Square

Lattice sehingga hanya memungkinkan jalur vertikal dan horizontal.

2. Peta arena dibuat secara manual dan tidak dibuat secara otomatis.

3. Penelitian difokuskan pada perbandingan kinerja Algoritma A* dan

Dijkstra. Penelitian tidak menitikberatkan pada RealGame

Development , tidak melakukan pembahasan dan analisa game yang

meliputi antarmuka, usability testing, skenario / jalan cerita game.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

3

4. Game ini adalah prototipe yang digunakan sebagai media untuk

menguji dan mengukur kinerja Algoritma A* dan Dijkstra.

1.4 Tujuan Penelitian

Tujuan yang akan dicapai dari penelitian ini adalah mengetahui

perbandingan performa algortima A* dan Dijkstra baik dari solusi yang diberikan

dan proses kerja yang dilakukan untuk mencari jalur terpendek pada graf dengan

tipe Square Lattice pada suatu arena permainan.

1.5 Manfaat Penelitian

Manfaat yang dapat diperoleh dari penilitian dapat diuraikan sebagai

berikut :

1. Bagi Peneliti

Bisa menambah wawasan keilmuan kepada peniliti dalam

menerapkan algoritma untuk memberikan solusi pada suatu

permainan.Kemudian bisa menambah pengetahuan mengenai

perbandingan algoritma yang diterapkan.

2. Bagi Peneliti Berikutnya

Dapat dijadikan sebagai bahan pertibangan atau dikembangkan lebih

lanjut, serta referensi terhadap penelitian sejenis.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

4

1.6 Metode Penelitian

Dalam melakukan penelitian ini langkah-langkah yang dilakukan adalah

sebagai berikut :

1. Studi Pustaka

Pada langkah ini peneliti mempelajari teori-teori melalui buku,

artikel, jurnal yang berkaitan dengan perancangan permainan komputer,

algoritma A*, Algoritma Dijkstra, dan buku referensi dalam membangun

aplikasi dengan menggunakan HTML5 dan pemrograman Javascripgt.

2. Perancangan Sistem

Peneliti melakukan perencanaan alat uji yang akan digunakan

sebagai alat penelitian. Perancangan sistem ini akan meliputi skenario

permainan, perancangan kebutuhan, use case, rancangan struktur data,

rancangan algoritma, serta rancangan antarmuka dari aplikasi yang akan

dibuat.

3. Pembangunan Sistem

Pada tahap ini peneliti akan membangun alat uji yakni simulasi

pencarian jalur permainan Ghost Words Labyrinth berdasarkan rancangan

yang telah dibuat.

4. Pengujian

Pada Bagian ini peniliti akan melakukan pengujian dengan melihat

perbadingan efektifitas algoritma A* dan Dijkstra dengan menjalankan

alat uji yang telah dibuat.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

5

5. Evalusi dan Analisis Hasil

Peniliti melakukan penarikan kesimpulan setelah menganalisis data

hasil pengujian.

1.7 Sistematika Penulisan

Sistematika penulisan proposal tugas akhir ini terbagi atas lima bab dengan

garis besar sebagai berikut :

BAB I PENDAHULUAN

Berisi gambaran umum dari penelitian. Pendahulan terdiri dari

Latar Belakang, Rumusan Masalah, Batasan Masalah, Tujuan

Penelitian, Manfaat Penelitian, Metode Penelitian dan Sistematika

Penulisan.

BAB II LANDASAN TEORI

Berisi teori-teori yang berhubungan dengan permainan, algoritma

A* dan Dijkstra yang digunakan untuk pencarian jalur terpendek.

BAB III PERANCANGAN SISTEM

Berisi analisis teori-teori yang digunakan dan bagaimana

menerjemahkannya ke dalam sistem yang hendak dibuat dan

membahas tentang perancangan kebutuhan sistem, pemilihan

algoritma, desain user interface program, dan rancangan pengujian

sistem.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

6

BAB IV IMPLEMENTASI DAN ANALISIS

Bab ini memuat hasil riset/implementasi, dan pembahasan/analisis

dari riset tersebut yang sifatnya terpadu.

BAB V KESIMPULAN DAN SARAN

Kesimpulan merupakan peryataan singkat dan tepat yang

dijabarkan dari hasil analisis kegiatan riset/implementasi dalam

penyusunan skripsi. Saran memuat aktifitas yang dilakukan untuk

mengembangkan kinerja sistem saat ini.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

7

BAB II

LANDASAN TEORI

2.1 Permainan Labirin

Permainan labirin adalah salah satu jenisatau genre dari pemainan

komputer yang cukup populer di dunia. Permainan ini merupakann cabang

permainan puzzle dalam bentuk percabangan jalan yang kompleks dan memiliki

banyak jalan yang buntu. Tujuan dari permainan labirin adalah pemain harus

mencari jalan keluar dari suatu pintu masuk menuju pintu keluar.Bisa juga pemain

harus menyelesaikan suatu misi atau tugas dengan mejelajahi labirin yang telah

disediakan.

Permainan labirin biasanya bersifat single-user atau dimainkan oleh satu

orang pemain.Salah satu contoh misi yang harus diselesaikan pada permainan

labirin adalah mengumpulkan sejumlah objek yang disebarkan di dalam peta

labirin. Dimana objek yang dikumpulkan akan menjadi scoring atau penilaian

dalam permainan labirin.(Rina, 2013)

Gambar 2.1 Contoh Permainan Labirin Pacman

Arena pada game labirin biasanya menerapkan graf untuk membangun

lintasan-lintasan yang ada. Graf tersebut membentuk jaring-jaring ubin

membentuk persegi atau bisa disebut Square Lattice Graph. Permaslahan yang

muncul adalah bagaimana mendapatkan jalur terpendek untuk mendapat target

pada game. Dengan menggunakn algoritma pathfinding masalah itu bisa selesai.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

8

Pada penelitian akan dipakai dua algoritma yang bisa dipakai untuk memcahkan

masalah tersebut yaitu A* atau Dijkstra.(Angga, 2013)

2.2 Graf Square Lattice

Secara definitif graf merupakan suatu pasangan dua himpunan dari elemen

yang disebut titik, atau simpul, vertex dan pasang terurut dari simpul yang disebut

ruas atau garis, atau ruas, atau edge. Square Lattice Graph merupakan salah satu

bentuk dari Lattice Graph. Menurut Beouwer, A.E. (1999) graf lattice atau bisa

disebut graf jaring atau graf grid merupakan graf yang memiliki gambar yang

disematkan di ruang euclidean, graf ini biasanya membentuk ubin. Simpul pada

graf ini biasanya menyimpan data koordinat sehinnga meskipun kedua simpul

tidak terhubung dengan vertex secara langsung perkiraan jarak dari kedua simpul

bisa diketahui dengan pendekatan jarak tertentu.

Square Lattice Graph adalah graf lattice yang jaring-jaring ubinya

membentuk kotak. Garis atau edge pada graph menyimbolkan apakah kedua

simpul saling terhubung. Graf Square Lattice dapat digambarkan sebagai berikut.

Gambar 2.2 Graf Square Lattice

Simpul yang ada di graf diatas meyimpan koordinat x dan y, dari hal itu yang

meyatakan graf tersebut terdapat pada sebuah ruang euclidean.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

9

2.3 Algoritma A*

Algoritma A* adalah algoritma yang ditemukan oleh Hart, Nilsson, dan

Raphael pada tahun 1968. Algoritma A* merupakan salah satu algoritma Branch

& Bound atau disebut juga sebagai sebuah algoritma untuk melakukan pencarian

solusi dengan menggunakan informasi tambahan (heuristik) dalam menghasilkan

solusi yang optimal.(Hapsari,2011)

2.3.1 Terminologi Dasar Algoritma A*

Beberapa terminologi dasar yang terdapat pada algoritma ini adalah

starting point, current node, simpul, neighbor node, open set , closed set , came

from, harga (F), walkabiltiy, target point.

Starting point adalah sebuah terminologi untuk posisi awal sebuah

benda.Current node adalah simpul yang sedang dijalankan dalam algoritma

pencarian jalan terpendek.Simpul adalah petak-petak kecil sebagai representasi

dari area pathfinding.Bentuknya dapat berupa persegi, lingkaran, maupun

segitiga.Neighbor node adalah simpul-simpul bertetangga dengan current node.

Open set adalah tempat menyimpan data simpul yang mungkin diakses

dari starting point maupun simpul yang sedang dijalankan. Closed set adalah

tempat menyimpan data simpul sebelum current node yang juga merupakan

bagian dari jalur terpendek yang telah berhasil didapatkan. Came from adalah

tempat menyimpan data ketetanggan dari suatu simpul, misalnya y came from x

artinya neighbor node y dari current node x.

Harga (F) adalah nilai yang diperoleh dari penjumlahan nilai G, jumlah

nilai tiap simpul dalam jalur terpendek dari starting point ke current node, dan H

adalah jumlah nilai perkiraan dari sebuah simpul ke target point. Target point

yaitu simpul yang dituju dan H inilah merupakan fungsi heuristik yang

digunakan.Kemudian, Walkability adalah sebuah atribut yang menyatakan apakah

sebuah simpul dapat atau tidak dapat dilalui oleh current node.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

10

2.3.2 Fungsi Heuristik

Algoritma A* merupakan teknik heuristik dan membantu penyelesaian

persoalan.Heuristik adalah penilai yang memberi harga pada tiap simpul yang

memandu A* mendapatkan solusi yang diinginkan. Dengan heuristik yang benar,

maka A* pasti akan mendapatkan solusi (jika memang ada solusinya) yang dicari.

Dengan kata lain, heuristik adalah fungsi optimasi yang menjadikan algoritma A*

lebih baik dari algoritma lainnya. Namun heuristik masih merupakan

estimasi/perkiraan biasa saja, sama sekali tidak ada rumus khususnya. Artinya

setiap kasus memiliki fungsi heuristik yang berbeda – beda.Nilai ongkos pada

setiap simpul n menyatakan taksiran ongkos termurah lintasan dari simpul n ke

simpul target (target node), yaitu :

F(n) = nilai taksiran lintasan termurah dari simpul status n ke status tujuan

Dengan kata lain, F(n) menyatakan batas bawah (lower bound) dari

ongkos pencarian solusi dari status n. Fungsi heuristik yang terdapat pada

algoritma A* untuk menghitung taksiran nilai dari suatu simpul dengan simpul

yang telah dilalui adalah :

( ) ( ) ( ) ( )

Dimana:

F(n) = ongkos untuk simpul n

G(n) = ongkos mencapai simpul n dari akar

H(n) = ongkos mencapai simpul tujuan dari simpul n (heuristik).

Fungsi H ini dapat dihitung menggunakan rumus pendekatan jarak salah

satunya yang dapat dipakai adalah Manhattan Distance. Rumus Manhattan

Distanceuntuk mencari fungsi Heuristik H dapat formulasikan sebagai berikut :

( ) | | | | ( )

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

11

Dimana :

H(n) = Perkiraan heuristik Dari simpul n ke target

Xt = Koordinat X untuk simpul target

Xn = Koordinat X untuk simpul n (sedang dijelajahi)

Yt = Koordinat Y untuk simpul target

Yn = Koordinat Y untuk simpul n (sedang dijelajahi)

2.3.3 Langkah Algoritma A*

Menurut Eranki Rajiv(2002) dari MIT mengenai algoritma A* secara

ringkas langkah demi langkahnya adalah sebagai berikut :

1. Inisiasi Open list dan Inisiasi Closed List.

2. Tambahkan starting point ke dalam open list dan set nilai f = g+h

dimana g = 0 dan h dengan menggunakan rumus ii.

3. Lakukan looping jika open list tidak kosong. Jika kosong pencarian

selesai.

4. Ambil open list dengan f terkecil sebagai current.

5. Jika current adalah node tujuan, hentikan pencarian dan return

pathnya.

6. Generatesemua simpul yang bertetangga dengan current yang

walkable atau dapat dijelajahi. Node – node ini disebut suksesor.

7. Loop semua suksesor pada node current.

8. Set nilai g untuk suksesor sama dengan current.g ditambah dengan

jarak antara suksesor dengan current.

9. Set nilai h (heuristik) untuk suksesor dari node tujuan ke suksesor

dengan rumus ii.

10. Set nilai f sama dengan g ditambah nilai h pada suksesor seperti rumus

i.

11. Jika sebuah node dengan posisi yang sama dengan suksesor ada di

dalam close list dan mempunyai nilai f yang lebih kecil dari suksesor

maka abaikan suksesor tersebut.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

12

12. Jika suksesor mempunyai kondisi selain pada langkah 11 maka

tambahkan suksesor ke dalam open list.

13. Ulangi langkah 7 pada semua suksesor.

14. Tambahkan nodecurrent ke dalam closed list.

15. Temukan node yang ada di dalam open list dengan nilai F paling kecil

, kembali ke langkah 3.

2.4 Algoritma Dijkstra

Sudah banyak algoritma yang bisa digunakan untuk pencarian rute

terpendek. Tidak bisa dipungkiri Dijkstra masih menjadi salah satu yang populer

dari sekian banyak algoritma pencarian jalur terpendek.Algoritma Dijkstra

dinamakan sesuai dengan nama penemunya, seorang ilmuwan komputer

berkebangsan Belanda yang bernama Edsger Dijkstra pada tahun 1956, adalah

algoritma yang digunakan untuk mencari lintasan terpendek pada sebuah graf

berarah dan tidak berarah. Ian Millington (2006) pada bukunya berjudul Artificial

Inteligence for Games menyebut algoritma dijkstra sebagai versi ringkas

algoritma A*. Keringkasan yang dimaksud adalah bahwa keduanya memiliki

kesamaan dalam proses pencarian rute terdekat, hanya saja pada algoritma

Dijkstra fungsi heuristik tidak di perhitungkan sebagaimana yang dilakukan oleh

A*.(Setiawan, 2015).

Cara kerja algoritma Dijkstra memakai strategi greedy, dimana pada setiap

langkah dipilih sisi dengan bobot yang paling kecil yang menghubungkan sebuah

simpul yang sudah terpilih dengan simpul lain yang belum terpilih.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

13

2.4.1 Algoritma Greedy

Algoritma greedy merupakann metode yang paling populer untuk

memecahkan persoalan optimasi.Persoalan Optimasi adalah persoalan mencari

solusi yang paling optimum.Hanya ada dua macam persoalan optimasi, yaitu

maksimasi dan minimasi.

Algoritma greedy adalah algoritma yang memecahkan masalah langkah

per langkah . Pada setiap langkah :

1. Mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu

tanpa memperhatikan konsekuensi ke depan.

2. Berharap bahwa dengan memilih optimum local pada setiap langkah

akan berakhir dengan optimum global.

Element-elemen algoritma greedy :

1. Himpunan kandidat (C), berisi elemen-elemen pembentuk solusi.

2. Himpunan solusi (S), berisi kandidat-kandidat yang terpilih sebagai

solusi persoalan.

3. Fungsi seleksi, memilih kandidat yang paling memungkinkan

mencapai solusi optimal. Kandidat yang sudah dipilih pada suatu

langkah tidak pernah dipertimbangkan lagi pada langkah selanjutnya.

4. Fungsi kelayakan, memeriksa apakah fungsi suatu kandidat yang telah

dipilih dapat memberikan solusi yang layak, yakni kandidat tersebut

bersama-sama dengan himpunan solusi yang sudah terbentuk tidak

melanggar kendala (constraints) yang ada. Kandidat yanglayak

dimasukkan ke dalam himpunan solusi,sedangkan kandidat yang tidak

layak dibuang dantidak pernah dipertimbangkan lagi.

5. Fungsi Obyektif, fungsi yang memaksimumkan atau meminimumkan nilai

solusi(misalnya panjang lintasan, keuntungan, dan lain-lain).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

14

Algoritma greedy melibatkan pencarian sebuah himpunan bagian, S, dari

himpunan kandidat, C, yang dalam hal ini, S harus memenuhi beberapa kriteria

yang ditentukan, yaitu menyatakan suatu solusi dan S dioptimasi oleh fungsi

obyektif.

2.4.2 Langkah Algoritma Dijkstra

Algoritma Dijkstra pada dasarnya menggunakan strategi greedy. Pada

setiap langkah, ambil sisi yang berbobot minimum yang menghubungkan sebuah

simpul yang sudah terpilih dengan sebuah simpul lain yang belum terpilih.

Lintasan dari simpul asal ke simpul yang baru haruslah merupakan lintasan yang

terpendek diantara semua lintasannya ke simpul-simpul yang belum terpilih.

Algoritma secara ringkas langkahnya dapat dijelaskan sebagai berikut :

1. Inisiasi open list dan close list.

2. Setstarting node ke dalam open list dan set cost sama dengan 0.

3. Lakukan looping jika open list tidak kosong. Jika kosong pencarian

selesai.

4. Ambil open list dengan cost terkecil sebagai current.

5. Jika Suksesor adalah node tujuan, hentikan pencarian dan return

pathnya.

6. Generatesemua simpul yang bertetangga dengan current yang

walkable atau dapat dijelajahi. Node – node ini disebut suksesor.

7. Loop semua suksesor pada node current.

8. Set cost pada suksesor dengan nilai cost current ditambah jarak antara

suksesor dengan current.

9. Tambahkan suksesor tersebut ke dalam open list.

10. Ulangi langkah ke 7 untuk semua suksesor.

11. Tambahkan current ke dalam closed list.

12. Temukan node yang ada di dalam open list dengan nilai cost paling

kecil , kembali ke langkah 3.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

15

BAB III

PERANCANGAN SISTEM

Pada bab ketiga penulisan Tugas Akhir ini dibagi menjadi 7 subbab.

Bagian pertama kebutuhan sistem yang akan dipakai untuk membangun dan

menjalankan aplikasi. Bagian kedua adalah diagram use case yang

memperlihatkan kegiatan user terhadap aplikasi. Bagian ketiga adalah rancangan

algoritma yang akan digunakan berupa pseudocode dari algoritma A* dan

Dijkstra. Bagian keempat berisi rancangan struktur data dari aplikasi yang

dibuat.Bagian kelima merupakan rancangan antarmuka dari aplikasi yang dibuat.

Bagian keenam merupakan rancangan pengujian yang akan dilakukan. Bagian

ketuju berisi penerapan algoritma yang memperlihatkan kerja dari algoritma A*

dan Dijkstra.

3.1 Kebutuhan Sistem

Secara umum kebutuhan yang diperlukan dalam membangun prototype

Ghost Words Labyrinth dengan fasilitas pencarian jalurnya meliputi kebutuhan

perangkat lunak, kebutuhan perangkat keras dan kebutuhan data. Kebutuhan yang

diperlukan dalam sistem dapat jabarkan sebagai sebagi berikut:

a. Perangkat Lunak

Pada pembuatan permainan Ghost Words Labyrinth peneliti akan

menggunakan sistem operasi windows 7. Kemudian untuk membangun sistem

akan digunakan text editor Sublime dengan menggunakan bahasa

pemrograman Javascript dan HTML5, serta menggunakan web browser

Google Chrome untuk menjalankan sistem.

HTML5 merupakan bahasa markah generasi ke 5 yang diciptakan

World Wide Web Consortium (Konsortium Waring Wara Wenua).HTML5

mempunyai dukungan untuk teknologi multimedia terbaru, sehingga mudah

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

16

dibaca oleh manusia dan dimengerti oleh mesin.Javascript sendiri

merupakanbahasa pemrogrman tingkat tinggi dan dinamis yang dijalankan

pada sisi client. Kode Javascript sendiri langsung diterjemahkan oleh web

browser.

b. Perangkat Keras

Perangkat keras yang akan dipakai pada penelitian ini memiliki

spesifikasi sebagai berikut

Processor Intel Pentium B960 Dual Core 2GHz RAM 4 GB

Hardisk 1 GB

Keybord dan Mouse

c. Data

Pada penelitian ini akan dibutuhkan data berupa kata-kata. Kata-kata

ini akan dipakai untuk misi dalam prototype permainan Ghost Words

Labyrinth. Kemudian data lainnya adalah objek animasi untuk karakter

pemain dan karakter, serta peta labirin yang akan dipakai sebagai map dari

game yang direpresentasikan sebagai graf berbentuk grid matrix atau bisa

disebut (Square Lattice Graph)dimana 1 melambangkan dindingyang tidak

bisa dilalui dan 0 melambangkan jalan pada labirin dengan dimensi matrix.

Gambar 3.2.c Rancangan Grid Matrix

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

17

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 node(node yang dijelajahi) dan best

path(jalur 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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

18

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

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

19

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 node(19,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.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

20

3.5 Perancangan Antarmuka

Bagian ini menjelaskan mengenai rancangan interfacepapan permainan

Ghost Words Labyrinth beserta fasilitas pencarian jalur terpendek serta fungsi-

fungsi dari tombol yang dibuatt.

Gambar 3.5 Tampilan Papan Permainan dan Pengujian

Gambar diatas merupakan rancangan untuk untuk papan permainan dari

Ghost Words Labyrinth. Dimana bagiannya dapat diuraikan sebagai berikut :

1. Papan permainan Ghost Words Labyrinth

2. Fasilitas pencarian jalur terpendek untuk penyelesaian misi yakni

tombol A* dan Dijkstra, yang digunakan juga sebagai pengujian

untuk perbandingan algoritma.

3. Data performa yang diperlihatkan yaitu time adalah waktu algoritma

melakukan pencarian jalur terpendek, loop adalah banyaknya proses

looping, node adalah banyak simpul yang dijelajahi, path adalah

solusi jalur terpendek yang diberikan.

1

2

3

Linked List Penelusuran Alur Ke Node Awal

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

21

3.6 Perancangan Pengujian

Pengujian akan dilakukan dengan menjalankan fasilitas pencarian jalur

terpendek pada permainan Ghost Words Labyrinth. Pada pengujian akan dipakai

beberapa karakteristik peta labirin yang berbeda. Akan digunakan fasilitas

pencarian untuk algoritma A* dan Dijkstra untuk penyelesaian misi yang sama.

Jadinya untuk satu misi akan dijalankan dua fasilitas pencarian jalur yaitu A* dan

Dijkstra.

Ketika menjalankan fasilitas pencarian jalur akan dicatat data performa

diantaranya lama algoritma melakukan pencarian jalur terpendek, banyak proses

looping yang dilakukan oleh algoritma, banyaknya simpul dijelajahi danbanyak

solusijalur terpendek yang diberikan. Setelah itu akan dilakukan analisa dari data

dengan menghitung nilai efisiensi dan akan ditarik kesimpulan bagaimana

perbandingan peforma dari kedua algoritma tersebut.

3.7 Simulasi Manual Penerapan Algoritma

Pada subbab ini akan dijelaskan bagaimana jalanya pencarian terpendek

dengan menggunakan algoritma A* dan Dijktra. Dimana disitu akan terdapat

angka yang menjelaskan penghitungan dari kedua algoritma tersebut

3.7.1 Simulasi Algoritma A*

Penerapan Algoritma A* pada permainan ini adalah pada fasilitas

pencarian jalur yang akan digunakan untuk membantu pemain dalam penyelesaian

misi. Adapun proses algoritma-nya dapat dicontohkan seperti berikut ini. Pada

gambar dibawah akan terdapat daftar nilai untuk F = G+Hdimana :

F adalah ongkos untuk kotak : Posisinya berada di kiri atas.

G adalah ongkos dari node awal : Posisinya berada di kiri bawah.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

22

H adalah ongkos dari node yang dituju : Posisinya berada di kanan

bawah.

Langkah 1

Tentukan kotak tentangga yang mungkin dijelajahi (Walkable) dari posisi awal

(Poin A).Hitung juga nilai F, dan tambahkan itu sebagai list.

Gambar 3.7.1.1 Visualisasi A* Langkah 1

Langkah 2

Langkah selanjutnya, pilih kotak yang memiliki nilai F terkecil, tambahkan ke

closed list kemudian cari lagi tetangganya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

23

Gambar 3.7.1.2 Visualisasi A* Langkah 2

Langkah 3

Lakukan lagi, yaitu memilih lagi kotak dengan nilai F terendah, dan lanjutkan

iterasi.

Gambar 3.7.1.3 Visualisasi A* Langkah 3

Langkah 4

Pada langkah ini ada kasus yang menarik. Dapat dilihat pada gambar sebelumnya

terdapat 4 kotak yang memiliki nilai F yang sama yaitu 7. Lalu solusinya adalah

tetap ikuti kotak yang baru ditambahkan ke open list.Kemudian lanjutkan pada

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

24

kotak baru yang telah didapatkan.

Gambar 3.7.1.4 Visualisasi A* Langkah 4

Langkah 5

Pilih kotak yang memiliki nilai terendah yakni 7 dan pada kasus ini dipilih simpul

yang paling baru.

Gambar 3.7.1.5 Visualisasi A* Langkah 5

Langkah 6

Pada langkah ini sudah akan terlihat bahwa akan terdapat dua pilihan 2 jalur

terpendek untuk ke tujuan yang bisa dipilih, yakni 1-2-3-4-5-6 dan 1-2-3-4-5-7

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

25

tetapi ini tidak menjadi masalah yang mana yang akan dipilih, ini akan sesuai

dengan implementasi yang sebenarnya dalam kode program.

Gambar 3.7.1.6.a Visualisasi A* Langkah 6

Gambar 3.7.1.6.b Kemungkinan Jalur Terpendek

Langkah 7

Lakukan iterasi satu kali lagi dari langkah sebelumnya maka tujuan akan masuk

ke open list.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

26

Gambar 3.7.1.7 Visualisasi A* Langkah 7

Langkah 8

Pada saat dimana kotak target telah menjadi open list, algoritma akan

menambahkan itu ke closed list, kemudian algoritma akan melakukan runut balik

untuk memperoleh jalur final.

Gambar 3.7.1.8.a Visualisasi A* Langkah 8

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

27

Gambar 3.7.1.8.b Visualisasi Runut Balik

3.7.2 Visualisasi Algoritma Dijkstra

Penerapan Algoritma Dijkstra pada permainan Ghost Words Labyrinth

adalah pada fasilitas pencarian jalur yang akan digunakan untuk membantu

pemain dalam penyelesaian misi.Adapun keterangan angka adalah ongkos dari

setiap simpul yang dihitung dari akar.

Langkah 1

Gambar 3.7.2.1 Inisiasi Posisi Awal Dijkstra

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

28

Pada posisi awal open node di atas dan disamping kiri dan kanan node

awal diberi cost 1. Sesudah itu pilih salah satu node dengan nilai cost paling

kecil.Lalu jadikan posisi current node.Sesudah itu pada current node tentukan

open node dari current node.

Langkah 2

Gambar 3.7.2.2 Langkah Dijkstra 2

Sesudah ditentukan maka berikan nilai cost adalah cost current node

ditambah 1. Untuk selanjutnya pilihlah open node dengan cost terkecil lalu

tentukan open node lagi. Begitu seterusnya hingga mencapai titik akhir yang

dicari.

Langkah 3

Gambar 3.7.2.3 Langkah Dijkstra 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

29

Lakukan hal yang sama seperti langkah sebelumnya untuk close node pada

node yang ada dikiri dengan menjelajahi ke atas dan ke bawah dan berikan cost 2

untuk lanjutan biaya dari node sebelumnya.

Langkah 4

Gambar 3.7.2.4 Langkah Dijkstra 4

Lakukan lagi pencarian dengan closed node dengan biaya terkecil yaitu

current node yang berada diatas start point. Jadikan node diatasnya sebagai closed

node lanjutan dan tambahkan biayanya sehingga biayanya menjadi 2.

Langkah 5

Pada Langkah 5 ini ditampilkan proses keselurah dari pencarian algoritma

dijkstra. Jadi node tujuan ditemukan dengan cost 7 maka proses selesai. Lalu

dirunut balik menujut titik awal dari tujuan melewati node- node parentnya maka

diperoleh jalur terpendek.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

30

Gambar 3.7.2.5 Langkah Dijkstra 5

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

30

BAB IV

IMPLEMENTASI DAN ANALISIS

Bab keempat pada penulisan Tugas Akhir ini akan dibagi menjadi menjadi

dua bagian. Pada bagian pertama akan berisi impementasi pembangunan sistem

berdasrkan rancangan yang telah dibuat. Pada bagian Kedua menjelaskan

mengenai hasil pengujian yang dilakukan antara Algoritma Dijkstra dan

Algoritma A* pada beberapa tipe Arena yang berbeda serta analisa baik secara

matematis maupun secara deskriptif.

4.1 Implementasi Sistem

Berdasarkan perancangan dan perencanaan yang telah dilakukan pada Bab

3, aplikasi pencari jalur untuk permainan Ghost Words Labyrinth dibuat dengan

menggunakan pemrograman HTML5 dan Javascript, aplikasi ini

direkomendasikan untuk dijalankan menggunakan web browser Google Chrome.

Pada subbab ini akan dibagi menjadi dua bagian, bagian pertama akan

menjelaskan tentang rancangan implementasi rancangan tampilan program,

kemudian untuk bagian kedua menjelaskan implemntasi algoritma A* dan

Dijkstra pada aplikasi pencarian jalan di permainan Ghost Words Labyrinth.

4.1.1 Implementasi Rancangan Tampilan

Peneliti masuk ke papan permainan untuk melakukan pengujian algoritma.

Dalam papan permainan tersebut akan ada beberapa tombol. Tampilan papan

permainan dapat diperlihatkan pada halaman selanjutnya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

31

Gambar 4.1.1 Tampilan Papan Permainan dan Fasilitas Pencarian Jalur

Terpendek

Tampilan papan permainan dan fasilitas pencarian jalur sesuai rancangan

yang dibuat. Tampilan diatas dipakai untuk meneliti bagaimana performa

algoritma yang dipakai sesuai dengan bentuk arena yang ada. Akan terdapat 5

tombol yang ada program yang dibuat,yaitu :

Simulasi Dijkstra :

Tombol ini digunakan untuk memperlihatkan simulasi proses pencarian

rute terpendek dengan algoritma Dijkstra.

Simulasi A* :

Tombol ini digunakan untuk memperlihatkan simulasi proses pencarian

rute terpendek dengan algoritma A*.

Performa Dijsktra :

Tombol ini digunakan untuk memperlihatkan performa dari pengetesan

algoritma Dijkstra dan memperlihatkan proses pencarian jalur terpedek

secara langsung tanpa animasi proses pencarian.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

32

Performa A* :

Tombol ini digunakan untuk memperlihatkan performa dari dari

pengetesan algoritma A* untuk peneliti dan bagi publik dapat dipakai

untuk mencari langsung rute terpendek saat bermain game Ghost Words

Labyrinth.

4.1.2 Implementasi Algoritma Dijkstra dan A*

Algoritma Dijkstra dan A* dipakai untuk mencari jalur terpendek jika user

kesulitan mencari jalur yang efektif.User bisa memakai kedua fasilitas pencarian

jalur yang ada. Kedua algoritma akan bekerja dengan membaca peta labirin yang

sedang dimainkan dimana dinding dan hantu adalah simpul yand tidak dapat

dijelajahi. Kemudian obyek player dan target yang merupakan titik awal dan akhir

pencarian. Algoritma akan melakukan iterasi pencarian pada node yang

diinisialisasikan sebagai jalan pada peta labarin. Iterasi akan dilakukan sampai

target ditemukan .

Setelah simpul target ditemukan maka algoritma akan dilakukan proses

backtracking. Proses backtracking akan melakukan penelusuran jalur dengan

merunut jalur Linked List hasil dari proses pencarian dari root menuju target.

Setelah proses backtracking selesai maka jalur terpendek telah ditemukan. Yang

membedakan dari kedua algoritma adalah pada proses pencarian algoritma A*

dibuat fungsi heuristik yang akan mecari simpul tetangga dengan nilai terkecil.

Sedangkan algoritma dijkstra tidak memakai fungsi heuristik dan akan menelurusi

semua node terdekat sampai target ditemukan.

Berikut ini akan ditampilkan kode program yang telah dibuat untuk

algortima Dijsktra dan A*.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

33

Dijkstra

function getDijkstra(fromX,fromY,toX,toY) { console.log("FIND: " + fromX + "," + fromY + " -> " + toX + "," + toY); if(toX < 0 || toY < 0 || toY >= map.length || toX >= map[0].length || map[toY][toX] != 0) return []; var m = []; for (var i = 0; i <map.length; i++) { m[i] = []; for (var j = 0; j < map[i].length; j++) { m[i][j] = map[i][j]; } } for (var i = 0; i <monsters.length; i++) { m[monsters[i].gy][monsters[i].gx] = 1; } var width = m[0].length; var height = m.length; var opened = []; var open = []; var count = 0; var start = AData(fromX,fromY,0,0); addtoOpenNode(open,start); addtoOpenedNode(opened,start); while(open.length > 0) { var cur = open[0]; cur.closed = true; if(cur.x == toX && cur.y == toY) { count++; console.log("FOUND xxx"); var path = []; while(cur != null) { path.splice(0,0,{x:cur.x,y:cur.y}); cur = cur.parent; } return {"path":path, "node": opened, "count": count}; } open.splice(0,1); var neighbour = []; if(cur.x - 1 > 0 && m[cur.y][cur.x - 1] == 0) { neighbour.push({x:cur.x-1,y:cur.y}); }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

34

A*

if(cur.y - 1 > 0 && m[cur.y - 1][cur.x] == 0) { neighbour.push({x:cur.x,y:cur.y-1}); } if(cur.x + 1 < width && m[cur.y][cur.x + 1] == 0) { neighbour.push({x:cur.x+1,y:cur.y}); } if(cur.y + 1 < height && m[cur.y + 1][cur.x] == 0) { neighbour.push({x:cur.x,y:cur.y+1}); } for(var i = 0; i < neighbour.length; i++) { var n = neighbour[i]; var node = getNode(opened, n.x, n.y); count++; if (!node){ node = AData(n.x, n.y, cur.g + 1, 0,cur); addtoOpenedNode (opened, node); addtoOpenNode(open,node); } } } }

function getAstar(fromX,fromY,toX,toY,heur=heuristic) { console.log("FIND: " + fromX + "," + fromY + " -> " + toX + "," + toY); if(toX < 0 || toY < 0 || toY >= map.length || toX >= map[0].length || map[toY][toX] != 0) return []; var m = []; for (var i = 0; i <map.length; i++) { m[i] = []; for (var j = 0; j < map[i].length; j++) { m[i][j] = map[i][j]; } } for (var i = 0; i <monsters.length; i++) { m[monsters[i].gy][monsters[i].gx] = 1; }

var width = m[0].length; var height = m.length; var opened = []; var open = []; var count = 0;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

35

var start = AData(fromX,fromY,0,heur(fromX,fromY,toX,toY)); addtoOpenNode(open,start); addtoOPenedNode(opened,start); while(open.length > 0) { var cur = open[0]; cur.closed = true; if(cur.x == toX && cur.y == toY) { count++; console.log("FOUND xxx"); var path = []; while(cur != null) { path.splice(0,0,{x:cur.x,y:cur.y}); cur = cur.parent; } return {"path":path, "node": opened, "count": count}; } open.splice(0,1); var neighbour = []; if(cur.x - 1 > 0 && m[cur.y][cur.x - 1] == 0) { neighbour.push({x:cur.x-1,y:cur.y}); } if(cur.y - 1 > 0 && m[cur.y - 1][cur.x] == 0) { neighbour.push({x:cur.x,y:cur.y-1}); } if(cur.x + 1 < width && m[cur.y][cur.x + 1] == 0) { neighbour.push({x:cur.x+1,y:cur.y}); } if(cur.y + 1 < height && m[cur.y + 1][cur.x] == 0) { neighbour.push({x:cur.x,y:cur.y+1}); } for(var i = 0; i < neighbour.length; i++) { var n = neighbour[i]; var node = getNode(opened, n.x, n.y); count++; if (!node){

node = AData(n.x, n.y, cur.g + 1, heur(n.x,n.y,toX,toY),cur);

addtoOpenedNode(opened, node); addtoOpenNode(open,node); } else { if(cur.g + 1 < node.g) { node.g = cur.g + 1; node.parent = cur; addtoOpenedNode(opened, node); addtoOpenNode(open,node); } } } } }

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

36

4.2 Pengujian dan Analisa

Proses pengujian akan dilakukan sebanyak 30 kali untuk tiap tipe

karakteristik arena. Setiap pengujian akan ditempatkan posisi start dan tujuan

secara acak ( random ) lalu diambil data berupa path terbaik , jumlah node yang

dijelajahi, waktu , dan proses looping pada proses pencarian.

Sebelumnya akan dijelaskan mengenai data yang akan diambil dalam

pengujian :

1. Path :

Path adalah jalur terpendek yang diperoleh dari masing-masing

algoritma. Pada papan pengujian diperlihatkan dari blok jalan yang

berwarna jingga, kemudian jumlahnya dapat dilihat dari status

performa.

2. Simpul dijelajahi/ Node Visitation :

Simpul dijelajahi adalah jumlah simpul yang dijelajahi selama

algoritma melakukan pencarian sampai target ditemukan. Dapat dilihat

pada gambar papan pengujian dari semua blok jalan yang berubah

warna. Dimana terdiri dari close node yang diwakili warna kuning dan

jingga. Dan open node yang diwakili dengan blok berwarna biru.

3. Banyak Looping :

Looping adalah jumlah proses looping dari proses algoritma mencari

jalur terpendek. Pada implementasi algoritma dapat dilihat dari kedua

algoritma terdapat proses looping yang merupakan proses pengecekan

tetangga dari dari starting point sampai menemukan target.

4. Time :

Waktu adalah lama untuk algoritma melakukan pencarian jalur

terpendek, untuk mendapatkan waktu tersebut akan dilakukan

pencatatan waktu algoritma mulai dipanggil sampai selesai

memberikan solusi jalur terpendek kemudian dicari selisihnya. Waktu

yang dicatat adalah dalam satuan milisekon(ms).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

37

Proses pengujian ini dilakukan dengan 5 tipe karakteristik arena yang

berbeda :

1. Arena Solid dan Simetris (Simetris Sedikit Rongga)

Arena yang penuh dengan obstacle(halangan) dengan bentuk halangan

dan tipe jalur yang teratur (jalurnya setapak).

2. Arena TidakSoliddan Simetris (Simetris dan banyak rongga)

Arena yang mempunyai halangan dan bentuknya simetris , terdapat

banyak rongga (jalurnya tidak setapak).

3. Arena Solid dan RandomObstacle (Acak sedikit Rongga)

Arena yang mempunyai sedikit rongga (jalurnya setapak) dan bentuk

halangannya random.

4. Arena Tidak Solid dan Random Obstacle (Acak dan Berongga)

Arena yang mempunyai halangan yang banyak rongga dan bentuk

halangannya random.

5. Arena Tidak Solid dan RandomObstacle Ukuran Diperbesar

Pada arena iniadalah seperti jenis ke 4 hanya arena diperbesar menjadi

sekitar 4 kali lipat dari ukuran semula dengan ukuran matrik 156 x 70.

6. Arena dengan Halangan Berbentuk Cincin

Pada arena ini adalah halangan atau obstacle akan membentuk cincin.

Starting point akan berada di dalam cincin dan target point berada di luar

cincin.

7. Arena dengan Banyak Target

Pada arena ini berbentuk seperti dengan arena 6. Hanya memiliki target lebih

dari 1.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

38

4.2.1 Pengujian Arena Solid dan Simetris

Gambar 4.2.1.1 Arena Solid dan Simetris

Tipe Arena ini mempunyai halangan dan jalur yang teratur.Jalur yang

disediakan adalah jalur setapak saja di setiap arena. Pada peta ini algoritma A*

lebih baik dari pada Algoritma Dijkstra dalam hal Efisiensi dan Efektifitas

Algoritma, yang ditandai dengan waktu proses pencarian yang lebih cepat dan

proses penjelajahan node yang lebih sedikit dan 2 Algoritma tersebut sama –

sama menghasilkan path yang terbaik ( minimum ) pada semua proses pengujian

yang telah ditentukan jumlahnya .

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

39

Gambar 4.2.1.2 Pencarian Algoritma A* Pengujian 1

Gambar 4.2.1.3 Pencarian Algoritma Dijkstra Pengujian 1

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

40

Berikut ini adalah tabel data pengujian Algoritma A* dan Dijkstra pada 30

kondisi berbeda pada arena tersebut :

Tabel 4.2.1.1 Tabel Pengujian Arena Solid dan Simetris

No Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

1 24,11 29,3 3.3200 175 91 14 2.8200 31 19 14

2 29,10 35,17 5.7250 167 87 14 3.1500 29 17 14

3 15,8 20,17 4.1900 209 107 15 1.6350 31 18 15

4 37,6 29,12 3.5750 75 40 15 1.1950 33 20 15

5 9,11 1,4 4.2050 207 106 16 2.8050 41 24 16

6 15,10 6,17 5.1850 255 129 17 2.7750 49 28 17

7 29,5 17,11 3.6300 217 111 19 3.4100 43 26 19

8 30,17 18,11 2.8450 153 78 19 1.1800 41 24 19

9 29,12 36,1 4.1950 227 116 19 1.1250 69 38 19

10 9,5 23,4 5.6350 237 119 20 1.1000 49 29 20

11 26,7 15,16 6.8050 299 150 21 2.5900 57 33 21

12 25,7 9,12 5.0900 323 158 22 2.9750 55 33 22

13 15,17 1,12 4.9250 237 121 22 2.8950 49 28 22

14 36,11 23,1 2.8600 209 112 24 2.5600 65 37 24

15 29,10 9,6 5.3950 315 154 25 3.0450 63 37 25

16 37,15 21,7 3.1550 159 81 25 2.4550 55 32 25

17 37,6 19,1 2.7550 215 110 26 2.1350 91 47 26

18 23,6 7,17 5.6300 387 189 28 2.3450 101 54 28

19 9,6 31,11 4.4450 337 164 28 1.2450 65 39 28

20 9,12 29,17 4.0250 339 165 28 2.3450 113 60 28

21 1,1 19,11 3.6900 187 96 29 0.8900 120 63 29

22 7,17 29,8 4.0800 307 152 32 2.1650 71 41 32

23 6,7 29,16 4.0500 357 174 33 2.5800 105 59 33

24 34,1 16,17 4.6550 303 150 35 2.9550 87 48 35

25 35,7 9,15 3.8750 355 173 35 2.2550 103 58 35

26 31,11 3,1 5.6250 409 198 39 2.4500 137 73 39

27 2,1 29,17 3.9200 371 181 44 2.1050 147 78 44

28 37,6 1,13 6.6750 399 193 44 3.2650 113 63 44

29 5,17 34,1 6.2450 405 196 46 3.4700 121 67 46

30 37,1 7,17 5.5250 387 189 47 3.9350 153 81 47

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

41

Panjang semua path yang dipilih sebagai jalur baik Algoritma A* dan

Dijkstra adalah sama. Node yang dijelajahi oleh algoritma A* lebih sedikit dari

Algoritma Dijkstra dan Waktu yang diperlukan untuk menemukan jalur

terbaiknya lebih sedikit sehingga bisa dikatakan algoritma A* lebih baik daripada

Algoritma Dijkstra pada Arena tipe ini. Presentase 2 algoritma menemukan jalur

terbaiknya dalam 30 kali pengujian adalah 30/30*100% = 100% .

Grafik 4.2.1.1 Perbandingan Node Visitation 30 Kali Pengujian 1

Grafik 4.2.1.2 Perbandingan Proses Looping 30 kali Pengujian 1

0

50

100

150

200

250

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

No

de

Percobaan ke

Dijkstra

A*

0

50

100

150

200

250

300

350

400

450

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Loo

pin

g

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

42

Grafik 4.2.1.3 Perbandingan Waktu Pencarian 30 kali Pengujian 1

4.2.2. Pengujian Arena Tidak Solid dan Simetris

Gambar 4.2.2.1 Arena Tidak Solid dan Simetris

Tipe Arena ini mempunyai halangan yang tidak padat, bentuknya simetris

dan jalur yang longgar.Jalur yang disediakan adalah jalur longgar di setiap arena.

Di arena ini memungkinkan hero mempunyai banyak pilihan untuk menentukan

jalur menuju tujuannya, karena jalurnya longgar dan tidak setapak, akan tetapi

0.0000

1.0000

2.0000

3.0000

4.0000

5.0000

6.0000

7.0000

8.0000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Wak

tu(m

s)

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

43

masih memiliki rintangan penghalang.

Gambar 4.2.2.2 Pencarian A* Pengujian 2

Gambar 4.2.2.3 Pencarian Dijkstra Pengujian 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

44

Berikut ini adalah tabel data pengujian Algoritma A* dan Dijkstra pada 30

kondisi berbeda pada arena tersebut :

Tabel 4.2.2.1 Tabel Pengujian Arena Tidak Solid dan Simetris

No Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

1 14,8 9,15 5.7050 572 193 13 2.2750 39 27 13

2 1,3 9,9 4.4850 194 65 15 4.0900 43 29 15

3 14,11 23,6 6.6000 711 232 15 3.9100 55 41 15

4 8,7 16,1 7.5850 587 195 15 4.7150 51 37 15

5 21,3 13,11 4.6550 583 190 17 2.8300 60 44 17

6 8,1 18,8 5.1450 454 152 18 2.7100 74 26 18

7 29,14 37,5 10.0950 620 205 18 5.2100 111 56 18

8 30,14 36,2 8.9850 607 200 19 1.8000 114 63 19

9 30,15 36,2 10.7250 607 200 20 4.3050 121 66 20

10 15,8 1,3 14.1700 979 315 20 5.7500 110 60 20

11 32,12 18,7 11.5050 676 220 20 2.6950 65 45 20

12 23,10 37,3 11.2150 1045 332 22 5.9000 68 44 22

13 4,6 16,15 16.3350 661 217 22 6.7150 96 58 22

14 31,2 36,17 8.3250 708 230 23 3.9300 182 83 23

15 18,8 37,2 6.9750 1254 392 26 4.5400 80 55 26

16 24,8 7,16 11.1250 1167 366 26 3.6100 210 96 26

17 36,3 22,15 7.5850 661 217 27 4.1200 114 71 27

18 6,5 28,10 6.3750 937 299 28 3.9800 230 103 28

19 17,14 37,7 11.0050 1642 386 28 1.6650 174 74 28

20 24,10 3,16 6.0100 1236 388 28 2.1750 369 115 28

21 31,2 15,17 7.3400 1014 318 32 3.9650 138 81 32

22 20,17 2,4 6.1750 1265 395 32 2.8450 162 89 32

23 14,7 37,16 8.4950 1308 404 33 6.6600 282 127 33

24 31,5 7,14 11.7500 1137 358 34 4.1550 213 107 34

25 37,3 18,16 5.0250 952 302 35 4.3350 540 171 35

26 4,12 33,17 5.4800 1171 367 37 3.0200 330 135 37

27 3,14 31,5 8.4100 1119 352 38 1.9150 130 89 38

28 30,16 1,6 12.1700 1256 392 40 2.8900 179 110 40

29 36,16 6,5 13.1150 1140 358 42 3.8350 214 118 42

30 1,4 37,16 10.9700 1308 404 49 4.1850 364 172 49

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

45

Pada arena ini baik Algoritma A* maupun Dijkstra menemukan jalur

terbaik dengan nilai yang sama di setiap pengujian. Apabila dilihat dari gambar

4.2.2.2 dan 4.2.2.3 bisa dilihat kalau rintangan semakin longgar maka Algoritma

Dijkstra akan melakukan pencarian path secara menyebar sehingga algoritma ini

akan melakukan proses yang lebih banyak dan tidak efisien, sedangkan Algoritma

A* lebih efektif dalam proses pencarian pathnya

Dilihat dari hasil path jalur terbaik maka algoritma Dijkstra dan A* sama –

sama menemukan hasil, akan tetapi proses dan pencarian algoritma Dijkstra

kurang efektif dibandingkan Algoritma A*. Persentase 2 Algoritma menemukan

jalur terbaik yang sama minimumnya dalam 30 kali pengujian adalah

30/30*100% = 100%.

Grafik 4.2.2.1 Perbandingan Node Visitation 30 kali Pengujian 2

0

50

100

150

200

250

300

350

400

450

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

No

de

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

46

Grafik 4.2.2.2 Perbandingan Proses Looping 30 kali Pengujian 2

Grafik 4.2.2.2 Perbandingan Waktu Pencarian 30 kali Pengujian 2

0

200

400

600

800

1000

1200

1400

1600

1800

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Loo

pin

g

Percobaan ke

Dijkstra

A*

0.0000

2.0000

4.0000

6.0000

8.0000

10.0000

12.0000

14.0000

16.0000

18.0000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Wak

tu(m

s)

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

47

4.2.3. Pengujian Arena Soliddan Random Obstacle

Gambar 4.2.3.1 Arena Solid dan Random Obstacle

Tipe Arena ini mempunyai halangan yang padat dan letaknya

random.Jalur yang disediakan adalah jalur setapak saja di setiap arena. Untuk

mencapai suatu tujuan , di arena ini memungkinkan Hero untuk mencari path

dengan jalur yang berbeda pada setiap pencarian algoritma, tergantung jarak

tujuan dengan posisi awal Hero.

Gambar 4.2.3.2 Pencarian A* Pengujian 3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

48

Gambar 4.2.3.3 Pencarian Dijkstra Pengujian 3

Berikut ini adalah tabel data pengujian Algoritma A* dan Dijkstra pada 30

kondisi berbeda pada arena tersebut :

Tabel 4.2.3.1 Tabel Pengujian Arena Soliddan Random Obstacle

No Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

1 25,8 17,12 3.3050 214 110 13 2.0200 30 19 13

2 37,8 31,3 2.8350 123 64 14 1.3400 39 22 14

3 17,6 24,7 9.2050 258 133 15 2.9850 57 33 15

4 11,4 17,11 9.2850 247 124 16 1.6750 48 29 16

5 27,13 20,8 3.7950 279 140 17 1.8550 81 43 17

6 26,5 31,14 16.8950 267 134 17 2.9300 82 46 17

7 17,12 11,2 6.7400 412 207 19 2.5100 57 62 19

8 22,5 12,15 9.8500 620 199 21 1.5050 103 33 21

9 18,13 30,5 6.3000 442 215 21 4.1750 57 34 21

10 20,6 11,1 11.1150 491 235 23 4.7650 124 67 23

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

49

Tabel 4.2.3.1 Tabel Pengujian Arena Soliddan Random Obsctacle

No. Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

11 11,11 24,4 8.6300 446 215 23 5.3850 81 43 23

12 33,17 17,10 6.5450 283 137 24 5.1750 63 37 24

13 7,17 18,5 6.3100 331 161 24 1.9600 60 36 24

14 11,2 17,16 5.0800 342 168 25 2.5550 69 40 25

15 22,2 31,14 7.7250 478 228 26 3.9750 104 58 26

16 20,8 33,17 8.2900 576 272 27 2.1850 66 38 27

17 8,6 27,13 7.2750 420 200 27 2.5250 71 43 27

18 15,12 37,7 6.4800 613 287 28 2.7000 73 43 28

19 7,13 23,2 10.2350 409 194 28 1.6950 62 36 28

20 28,14 13,4 6.4900 519 248 30 5.1200 229 116 30

21 9,4 29,14 10.2550 481 229 31 1.8100 87 52 31

22 11,1 26,6 12.7000 465 222 31 2.8750 171 86 31

23 25,11 6,2 9.5150 596 278 31 6.2550 163 88 31

24 18,2 33,12 6.7850 586 277 32 4.9450 169 93 32

25 3,8 25,16 5.2400 439 207 33 2.3200 154 84 33

26 34,17 20,3 20.2650 466 219 35 7.9950 275 131 35

27 25,6 1,15 6.4000 631 293 38 5.0300 229 114 38

28 14,4 37,9 7.8750 602 281 39 4.5650 169 91 39

29 3,4 30,16 7.2200 522 246 44 3.7300 196 106 44

30 3,11 35,3 7.4150 611 286 49 3.8450 346 161 49

Pada arena ini baik Algoritma A* maupun Dijkstra menemukan jalur

terbaik dengan nilai yang sama di setiap pengujian. Apabila dilihat dari gambar

4.2.3.2 dan 4.2.3.3 bisa dilihat kalau Algoritma Dijkstra melakukan pencarian

secara menyebar karena pada Arena ini terdapat beberapa jalan , sesuai

karakteristiknya Algoritma Dijkstra akan melakukan pencarian secara menyebar

apabila ruang kosongnya ada banyak di area sekitar Hero berada.

Dilihat dari hasil path jalur terbaik maka baik Algoritama Dijkstra maupun

A* sama – sama menghasilakan jalur dengan nilai path yang sama. Proses dan

pencarian algoritma Dijkstra kurang efektif dibandingkan Algoritma A*.

Persentase 2 Algoritma menemukan jalur terbaik yang sama minimumnya dalam

30 kali pengujian adalah 30/30*100% = 100%.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

50

Grafik 4.2.3.1 Perbandingan Node Visitation 30 kali Pengujian 3

Grafik 4.2.3.2 Perbandingan Proses Looping 30 kali Pengujian 3

0

50

100

150

200

250

300

350

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

No

de

Percobaan ke

Dijkstra

A*

0

100

200

300

400

500

600

700

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Loo

pin

g

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

51

Grafik 4.2.3.3 Perbandingan Waktu Pencarian 30 kali Pengujian 3

4.2.4. Pengujian Arena Tidak Solid dan Random Obstacle

Gambar 4.2.4.1 Arena Tidak Solid dan Random Obstacle

Tipe Arena ini mempunyai halangan yang random dan jalur yang

longgar.Jalur yang disediakan adalah jalur longgar saja di dalam arena ini. Untuk

mencapai suatu tujuan , di arena ini memungkinkan Hero untuk mencari path

0.0000

5.0000

10.0000

15.0000

20.0000

25.0000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Wak

tu(m

s)

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

52

dengan jalur yang berbeda pada setiap pencarian algoritma, tergantung jarak

tujuan dengan posisi awal Hero.

Gambar 4.2.4.2 Pencarian A* Pengujian 4

Gambar 4.2.4.3 Pencarian Dijkstra Pengujian 4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

53

Berikut ini adalah tabel data pengujian Algoritma A* dan Dijkstra pada 30

kondisi berbeda pada arena tersebut :

Tabel 4.2.4.1 Tabel Pengujian Tidak Arena Solid dan Random Obstacle

No Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

1 10,14 15,9 4.6450 258 96 11 2.0800 33 22 11

2 4,2 9,11 3.8650 263 88 15 1.1800 47 32 15

3 29,16 34,6 10.8400 481 165 16 3.3750 130 63 16

4 17,8 7,3 6.9650 623 218 16 2.9400 69 42 16

5 27,15 37,6 7.5750 577 193 20 3.5300 153 73 20

6 3,4 15,10 4.3850 470 159 21 2.8650 127 58 21

7 21,3 8,6 10.7350 296 301 21 2.5950 68 47 21

8 9,3 2,17 10.5350 768 256 22 5.1300 71 50 22

9 1,13 16,7 4.7100 480 167 22 1.0300 74 51 22

10 6,13 20,7 5.5550 796 263 23 3.3300 289 96 23

11 23,13 8,5 8.1450 1051 349 24 4.5900 91 56 24

12 13,11 32,16 18.5100 1151 379 25 6.5450 188 95 25

13 9,1 18,16 7.9850 781 259 25 1.5100 188 73 25

14 37,12 16,7 12.6150 748 246 27 6.3050 198 92 27

15 17,11 34,1 11.0950 1324 428 28 3.0450 135 83 28

16 7,3 21,16 6.6600 871 288 28 3.0900 177 94 28

17 14,10 32,1 9.7250 1254 409 28 5.9150 97 64 28

18 23,14 3,7 7.4700 1181 386 28 3.2800 195 92 28

19 31,16 13,6 10.0600 857 284 29 3.1500 99 65 29

20 28,15 10,7 6.0100 922 306 29 3.4450 257 110 29

21 28,11 7,3 9.5950 1199 393 30 5.3300 160 87 30

22 12,3 29,10 8.3650 974 312 31 4.4700 271 112 31

23 12,3 27,10 13.4750 974 321 31 6.6350 271 113 31

24 27,10 3,4 9.9850 1285 419 33 4.5100 304 130 33

25 17,17 33,1 6.8400 1299 420 33 4.5400 128 79 33

26 9,17 31,5 8.0000 1133 375 35 1.1250 119 79 35

27 8,15 29,1 13.7850 1195 391 36 4.0100 119 82 36

28 11,1 31,13 9.3100 1126 373 37 6.4100 220 112 37

29 8,3 26,15 10.7850 1226 402 37 6.8200 805 236 37

30 35,16 3,7 6.3100 1181 386 42 5.3250 319 147 42

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

54

Pada arena ini baik algoritma Dijkstra maupun A* sama – sama

mempunyai hasil optimal dalam menemukan jalur terbaik sampai ke tujuan (

nilainya selalu sama ). Arena ini mempunyai karakteristik jalur yang longgar

sehingga Algoritma Dijkstra akan melakukan pencarian secara menyebar dan hal

ini akan menyebabkan proses pencarian yang kurang efektif bagi algoritma

Dijkstra.

Dilihat dari hasil path jalur terbaik maka baik Algoritama Dijkstra maupun

A* sama – sama menghasilakan jalur dengan nilai path yang sama . Proses dan

pencarian algoritma Dijkstra kurang efektif dibandingkan Algoritma A*.

Persentase 2 Algoritma menemukan jalur terbaik yang sama minimumnya dalam

30 kali pengujian adalah 30/30*100% = 100%.

Grafik 4.2.4.1 Perbandingan Node Visitation 30 kali Pengujian 4

0

50

100

150

200

250

300

350

400

450

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

No

de

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

55

Grafik 4.2.4.2 Perbandingan Proses Looping 30 kali Pengujian 4

Grafik 4.2.4.3 Perbandingan Waktu Pencarian 30 kali Pengujian 4

0

200

400

600

800

1000

1200

1400

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Loo

pin

g

Percobaan ke

Dijkstra

A*

0.0000

2.0000

4.0000

6.0000

8.0000

10.0000

12.0000

14.0000

16.0000

18.0000

20.0000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Wak

tu(m

s)

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

56

4.2.5Pengujian Arena Tidak Solid dan RandomObstacle Ukuran Diperbesar

Pada percobaan ini arena akan diperbesar menjadi 156x70 dengan tipe

yang berongga dengan bentuk rintangan yang yang random. Dengan tujuan

mengamati kinerja algoritma pada ruang yang lebih luas.Apakah terjadi perbedaan

pada solusi jalur terpendek yang diberikan, dan perbandingan kinerja pada kedua

algoritma.Pada bagian tidak ditampilkan arena yang telah dibuat karena ukuran

arena yang terlalu besar sehingga melebihi jendela browser.

Berikut ini adalah tabel data pengujian Algoritma A* dan Dijkstra pada 30

kondisi berbeda pada arena tersebut :

Tabel 4.2.5.1 Tabel Pengujian Arena Tidak Solid dan RandomObstacle

Ukuran Diperbesar

No Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

1 70,67 81,60 5.8750 680 223 19 1.4100 74 53 19

2 153,20 139,29 11.4300 1854 524 24 3.1600 93 70 24

3 44,23 22,29 11.2950 2201 679 35 1.6750 236 105 35

4 117,9 92,19 14.4100 3195 969 38 1.9800 200 101 38

5 112,35 96,58 13.5000 5109 1547 40 1.8950 141 101 40

6 106,33 72,47 19.7500 7899 2342 49 2.0650 193 127 49

7 109,63 68,47 20.3650 7477 2178 58 1.9650 369 193 58

8 146,45 111,16 19.2950 8231 2338 65 3.1150 246 149 65

9 119,57 77,32 19.4950 10351 2992 68 2.8000 782 322 68

10 64,31 115,51 22.8150 11999 3508 72 3.7450 476 230 72

11 24,13 16,53 12.7100 6752 2004 73 10.0400 1760 534 73

12 55,39 32,5 24.7150 12903 3769 76 15.0050 2099 620 76

13 75,31 25,3 23.0650 13722 4010 79 5.7750 626 289 79

14 15,19 90,21 14.7300 8223 2407 82 3.4050 453 222 82

15 1,10 43,52 63.4300 6088 1808 85 8.0450 292 191 85

16 140,63 78,41 16.9100 10188 2911 85 2.7450 574 286 85

17 11,16 77,4 15.1100 7721 2266 85 12.9450 1534 452 85

18 64,32 133,26 19.1800 15066 4390 86 4.0600 1560 486 86

19 9,30 79,47 16.8900 8363 2436 88 3.6500 430 226 88

20 90,10 8,29 20.4200 17637 5082 102 3.9450 1044 442 102

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

57

Tabel 4.2.5.1 Tabel Pengujian Arena Tidak Solid dan Random Obstacle

Ukuran Diperbesar

No Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

21 100,45 33,3 26.7650 18890 5389 110 3.7850 935 414 110

22 28,23 94,67 25.2950 14798 4297 117 3.7200 601 303 117

23 108,5 12,21 19.1850 18158 5195 119 17.8150 3913 1069 119

24 65,68 152,27 31.5000 19565 5612 129 4.9900 534 324 129

25 8,67 85,3 21.4250 14149 4126 142 4.6850 1180 567 142

26 116,17 8,48 19.9800 20156 5768 148 15.2750 10168 2051 148

27 26,39 141,1 25.2350 20227 5794 154 4.0350 708 435 154

28 126,2 4,35 26.5350 19383 5534 156 17.2450 2268 893 156

29 1,45 153,55 25.8950 19814 5708 185 17.7600 4170 1292 185

30 147,5 8,65 32.1800 20515 5857 202 28.3200 8741 2537 202

Pada arena ini baik algoritma Dijkstra maupun A* sama – sama

mempunyai hasil optimal dalam menemukan jalur terbaik sampai ke tujuan (

nilainya selalu sama ). Arena ini mempunyai karakteristik jalur yang longgar

sehingga Algoritma Dijkstra akan melakukan pencarian secara menyebar dan hal

ini akan menyebabkan proses pencarian yang kurang efektif bagi algoritma

Dijkstra.

Dilihat dari hasil path jalur terbaik maka baik Algoritama Dijkstra maupun

A* sama – sama menghasilakan jalur dengan nilai path yang sama . Proses dan

pencarian algoritma Dijkstra kurang efektif dibandingkan Algoritma A*.

Persentase 2 Algoritma menemukan jalur terbaik yang sama minimumnya dalam

30 kali pengujian adalah 30/30*100% = 100%.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

58

Grafik 4.2.5.1 Perbandingan Node Visitation 30 kali Pengujian 5

Grafik 4.2.5.2 Perbandingan Proses Looping 30 kali Pengujian 5

0

1000

2000

3000

4000

5000

6000

7000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

No

de

Percobaan ke

Dijkstra

A*

0

5000

10000

15000

20000

25000

30000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Loo

pin

g

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

59

Grafik 4.2.5.3 Perbandingan Waktu Pencarian 30 kali Pengujian 5

4.2.6. Pengujian dengan Halangan Berbentuk Cincin

Gambar 4.2.6.1 Arena Halangan Berbentuk Cincin

Tipe Arena ini mempunyai halangan berbentuk cincin dimana terdapat

ruangan satu ruangan berongga besar didalam halangan dan terdapat jalan setapak

di dilur halangan. Posisi titik awal berada dalam halangan dan titik akhir

pencarian diluar halanagan. Hanya satu jalan yang menghubungkan antara ruang

0

10

20

30

40

50

60

70

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Wak

tu(m

s)

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

60

di dalam halangan dan di luar halangan.

Gambar 4.2.6.2 Pencarian A* Pengujian 6

Gambar 4.2.6.3 Pencarian Dijkstra Pengujian 2

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

61

Berikut ini adalah tabel data pengujian Algoritma A* dan Dijkstra pada 30

kondisi berbeda pada arena tersebut :

Tabel 4.2.6.1 Tabel Pengujian Arena Halangan Berbentuk Cincin

No Koordinat Dijkstra A*

Start End Time(ms) Loop Node Path Time(ms) Loop Node Path

1 16,15 37,4 2.8150 1749 492 37 7.1120 1862 319 37

2 20,14 1,1 11.6800 1769 502 39 21.6900 1795 321 39

3 24,14 1,5 4.1050 1753 494 39 12.6050 1952 355 39

4 18,15 35,1 6.2200 1767 501 40 9.4300 1850 327 40

5 17,13 35,1 5.2700 1767 501 43 10.6450 1897 365 43

6 10,15 37,4 6.6800 1749 492 43 11.6150 2402 397 43

7 10,13 37,4 5.2500 1749 492 45 9.8850 2300 422 45

8 27,14 1,1 6.1700 1769 502 46 10.6450 2410 401 46

9 14,13 35,1 3.3300 1767 501 46 11.4500 2152 404 46

10 20,15 10,1 13.9200 1803 519 47 25.3500 1966 444 47

11 12,9 37,4 5.1900 1749 492 47 9.8200 1936 434 47

12 12,13 35,1 6.9000 1767 501 48 8.4700 2322 430 48

13 34,15 1,5 5.1500 1753 494 48 11.3150 2850 463 48

14 25,7 1,1 5.5200 1769 502 51 8.5200 1903 439 51

15 22,12 10,1 7.3750 1803 519 52 42.8100 2121 483 52

16 29,10 1,1 5.9000 1769 502 52 8.8150 2342 457 52

17 12,9 35,1 5.2600 1767 501 52 30.2800 2090 459 52

18 35,15 1,1 6.1650 1769 502 53 10.0300 3145 467 53

19 28,7 1,1 3.9450 1769 502 54 5.0200 2029 457 54

20 33,8 1,5 4.6350 1753 494 54 10.8550 2034 463 54

21 21,12 14,1 7.7900 1819 527 55 27.0450 1965 492 55

22 23,13 14,1 10.2300 1819 527 56 43.7200 2069 492 56

23 24,13 14,1 8.9100 1819 527 57 46.9500 2109 492 57

24 3,7 37,4 4.2200 1749 492 58 11.7700 1943 462 58

25 35,6 1,5 3.4700 1753 494 58 9.9200 1814 463 58

26 28,10 10,1 7.9550 1803 519 60 43.3700 2209 484 60

27 23,8 14,1 5.1950 1819 527 61 22.6700 1909 492 61

28 33,5 1,1 4.3250 1769 502 61 10.5350 1929 467 61

29 35,3 1,5 5.1850 1753 494 61 11.1650 1906 436 61

30 25,9 14,1 12.1700 1819 527 62 34.0100 1989 492 62

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

62

Pada arena ini baik Algoritma A* maupun Dijkstra menemukan jalur

terbaik dengan nilai yang sama di setiap pengujian. Dilihat dari hasil path jalur

terbaik maka algoritma Dijkstra dan A* sama – sama menemukan hasil.

Persentase 2 Algoritma menemukan jalur terbaik yang sama minimumnya dalam

30 kali pengujian adalah 30/30*100% = 100%.

Dilihat dari node yang dijelajahi bahwa algoritma A* menjelejahi node

lebih sedikit dari Dijkstra. Namun jika dilihat dari proses looping dan waktu pada

kasus ini algoritma Dijkstra melakukan proses kerja lebih sedikit. Hal ini

disebabkan karena algoritma A* terkecoh oleh titik target yang dicari, dimana A*

hanya menitikberatkan posisi target yang dicari tanpa melihat halangan yang ada

didepan. Kemudian algoritma A* harus melakukan pengulangan untuk

pengecekan node yang sudah dijelajahi sehingga algoritma A* untuk mendapat

jalan keluardari halangan yang berbentuk cincin.

Grafik 4.2.6.1 Perbandingan Node Visitation 30 kali Pengujian 6

0

100

200

300

400

500

600

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

No

de

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

63

Grafik 4.2.6.2 Perbandingan Proses Looping 30 kali Pengujian 6

Grafik 4.2.6.2 Perbandingan Waktu Pencarian 30 kali Pengujian 6

0

500

1000

1500

2000

2500

3000

3500

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Loo

pin

g

Percobaan ke

Series1

Series2

0.0000

5.0000

10.0000

15.0000

20.0000

25.0000

30.0000

35.0000

40.0000

45.0000

50.0000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Wak

tu(m

s)

Percobaan ke

Dijkstra

A*

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

64

4.2.7. Pengujian dengan Banyak Target

Gambar 4.2.7.1 Arena dengan Banyak Target

Tipe Arena ini mempunyai halangan berbentuk seperti pada arena

pengujian tipe 6. Namun memiliki banyak target untuk di cari jalurnya.

Gambar 4.2.7.2 Pencarian A* Pengujian 7

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

65

Gambar 4.2.7.3 Pencarian Dijkstra Pengujian 7

Pada keadaan seperti ini sudah dapat dilihat bahwa algoritma A* tidak bisa

digunakan untuk banyak dalam satu kali pencarian. Alasanya adalah bahwa pada

pada algoritma A* target harus diperhitungan pada proses pencarian jalur yaitu

dalam proses pencarian nilai heuristik. Pada nilai heuristik tersebut harus

diperhitungkan jarak antara simpul current dengan dengan simpul target.

Sehingga hal ini menjadi kelemahan A* terhadap dijkstra. Pada pengujian ini

tidak ditampilkan data perbandingan performa karena A* tidak bisa melakukan

tugas seperti Dijkstra.

4.2.8Analisa

Pengujian yang dilakukan pada 6 tipe arena yang berbeda tadi

membandingkan 3 parameter yaitu Node Visitation , proses Looping / Iteration,

dan waktu yang dilakukan untuk pencarian path terbaik . Jumlah Path terbaik yang

dihasilkan oleh 2 algoritma Dijkstra maupun A* besarnya selalu sama (sama –

sama menghasilkan jalur yang optimum).

Pengujian dilakukan dengan cara membandingkan besaran Node

Visitation, proses Looping dan waktu pencarian sebanyak 30 kali percobaan pada

5 tipe arena yang berbeda. Suatu algoritma pathfinding dikatakan lebih baik

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

66

apabila hasil besaran pada 3 parameter itu lebih kecil daripada yang dihasilkan

oleh algoritma pathfinding yang lain.

Kondisi Arena mempengaruhi kinerja algoritma, faktor yang

mempengaruhi antara lain halangan (obstacle), ruang gerak serta jarak dengan

tujuan akan sangat mempengaruhi kinerja masing – masing algoritma. Ruang

gerak yang lebih longgar akan menyebabkan tingginya node visitation, proses

Looping pada masing – masing algoritma dibandingkan ruang gerak yang lebih

sempit.

Tabel 4.2.8.1Rata-Rata Penurunan Proses Algortim A* Terhadap Dijkstra

Arena Node Loop Time

Arena Solid dan Simetris 68,71% 72,01% 45,52%

Arena Tidak Soliddan Simetris 72,31% 82,44% 52,75%

Arena Soliddan RandomObstacle 70,40% 74,02% 54.60%

Arena Tidak Solid danRandomObstacle 71,26% 79,63% 54,25%

Arena Diperbesar 156x70 86,12% 88,91% 66,69%

Arena Halangan Bentuk Cincin 13,00% -18,77% -175.39%

Tabel diatas dibuat agar dapat melihat nilai garis besar dari perbandingan

performa kerja dari kedua algoritma. Penghitungan dilihat dari sisi algoritma A*

terhadap algoritma Dijkstra. Dimana tabel perbandingan akan menampilkan nilai

prsentasi penurunan proses algoritma A* terhadap Dijkstra.

Nilai persentase penurunan besaran proses Dari Algoritma Dijkstra ke A*

ditentukan dengan rumus :

Persentase Penurunan = 100 – ( Besaran Proses A star / Besaran Proses

Dijkstra *100 %)

Algoritma A* lebih efektif dikarenakan Algoritma Dijkstra menggunakan

metodeblind search. A* sebenarnya cara kerjanya mirip dengan Dijkstra.

Perbedaannya adalah A* mencari path menggunakan fungsi heuristic yang

memberikan prioritas pada Node yang diduga lebih baik daripada yang node yang

lain sedangkan Algoritma Dijkstra hanya melakukan eksplorasi ke semua path

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

67

yang memungkinkan dijelajahi. Optimalitas Algoritma A* tergantung pada fungsi

heuristik yang digunakan.

Di dalam simulasi bisa terlihat jika algoritma A* lebih terfokus pencarian

node tujuannya, dan node yang diobservasi lebih sedikit. Sedangkan pada

algoritma Dijkstra pencariannya dilakukan secara menyebar keseluruh node yang

berdekatan dengan current node ( ketika dianimasikan jelas terlihat membentuk

belah ketupat yang semakin membesar) hingga ketemu node tujuan.

Dilihat dari tabel untuk arena - arena yang obstacle / halangannya tidak

solid ( longgar ) maka presentase rata - rata penurunan proses loop maupun node

visitation lebih besar dikarenakan karakteristik algoritma Dijkstra yang

melakukan pencarian menyebar ke segala arah , hal ini didukung pula dengan tipe

arena tersebut yang menyediakan ruang gerak yang lebih besar. Kemudian pada

arena yang diperbesar algoritma A* masih memberikan solusi yang sama

minimumnya dengan algoritma Dijkstra. Bisa dilihat pula pada tabel analisa

bahwa penurunan besaran proses kerja algortima A* terhadap algoritma dijkstra

semakin besar.

Namun pada pengujian 6 dan 7 Algoritma A* memperlihatkan

kelemahanya. Pada pengujian 6 Algoritma A* terkecoh oleh halangan membentuk

cincin dimana starting node berada di dalam dan target node terdapat di luar.

Node yang dijelajahi tidak memperlihatkan bahwa Algoritma A* mempunyai

kelemahan tetapi pada proses looping dapat memperlihatkan bahwa A*

mempunyai kelemahan dimana proses looping Algoritma A* lebih besar dari

Algoritma Dijkstra. Hal ini disebabkan karena Algoritma A* harus mengecek

algoritma yang pernah dijelajahi untuk mencari jalan keluar dari halangan

berbentuk cincin sehingga loopingnya akan lebih besar. Namun Dijkstra yang

pencariannya menyebar hanya akan menjelajahi simpul satu kali saja dan tidak

akan melakukan banyak looping.

Pada pengujian 7 Algoritma Dijkstra memperlihatkan keungulannya.

Algoritma Dijkstra mampu mencari jalur untuk banyak target dalam sekali

pencarian. Hal ini dapat terjadi karena Algoritma Dijkstra tidak menitikberatkan

posisi target. Algoritma hanya menitikberatkan bahwa target sudah ditemukan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

68

atau belum ditemukan. Berbeda dengan Algoritma A* dengan nilai heuristiknya

harus memerlukan posisi target untuk mendapatkanya. Sehingga hal ini tidak

memungkinkan untuk Algoritma A* mencari jalur untuk banyak target untuk satu

kali pencarian.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

69

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan implementasi dan hasil analisa penelitian yang telah

dilakukan pada bab sebelumnya, maka dapat diperoleh kesimpulan sebagai

berikut :

1. Baik algoritma A* dan Dijkstra meberikan solusi yang optimal

diperlihatkan pada setiap percobaan memberikan solusi dengan

besaran yang sama.

2. Algoritma A* memiliki keunggulan dan kelemahan. Algoritma A*

dengan fungsi heuristiknya mampu membuat pencarian menjadi

lebih terpusat ke arah target sehingga proses kerja lebih sedikit.

Tetapi Algoritma A* dapat terkecoh dengan halangan

tertentuseperti pengujian telah dilakukan dimana proses kerja A*

lebih besar dari Dijkstra.

3. Algoritma Dijkstra juga memiliki keunggulan dan kelemahannya.

Algoritma Dijkstramampu melakukan pencarian untuk banyak

target dalam satu kali pencarian berbeda dengan A* yang hanya

bisa satu-persatu. Dengan pencarian yang menyebar membuat

Algoritma Dijkstra tidak terkecoh oleh halangan seperti pengujian

yang telah dilakukan. Namun pada halangan yang tidak mengecoh

performa kerja A* lebih baik dari Dijktra

5.2 Saran

Beberapa saran untuk penelitian sejenis mendatang :

1. Untuk penelitian selanjutnya, bisa kembangkan untuk sistem

penyelesaian misi dengan algoritma pencari jalur terpendek yang

lain.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

70

Daftar Pustaka

Ari W, Angga. 2013. INTEGRASI ALGORITMA A* UNTUK PENGEMBANGAN

PATHFINDING DAN PERILAKU KARAKTER GAME.Jember. Program

Studi Sistem Informasi Universitas Jember.

Br Sirait, Rina. 2013. PERANCANGAN APLIKASI GAME LABIRIN DENGAN

MENGGUNAKAN ALGORITMA BACKTRACKING . Medan. Teknik

Informatika STMIK Budidarma Medan.

Millington, Ian & Funge, John. 2009. ARTIFICIAL INTELLIGENCE FOR

GAMES. Morgan Kaufmann Publisher.

van der Spuy, Rex. 2012. FOUNDATION GAME DESIGN WITH HTML5 &

JAVASCRIPT. Friendsof an Apress Company.

Reddy, Harika. 2013. PATHFINDING - Dijkstra’s and A* Algorithm’s. India.

Putrady, Ekky. 2009. PENERAPAN ALGORITMA A* SEBAGAI ALGORITMA

PENCARI JALAN DALAM GAME . Bandung. Teknik Informatika Institut

Teknologi Bandung.

Raywenderlich. (2011, 29 September). INTRODUCTION TO A*

PATHFINDING.Diperoleh 23 November 2016, dari

https://www.raywenderlich.com/ 4946/introduction-to-a-pathfinding.

Sedgewick, Robert & Flajolet, Philippe. 2013. AN INTRODUCTION TO THE

ANAYLYSIS ALGORITHMS SECOND EDITION. Addison-Wesley

Tilawah, Hapsari. 2011. PENERAPAN ALGORITMA A-STAR(A*) UNTUK

MENYELESAIKAN MASALAH MAZE. Bandung. Teknik Informatika

Institut Teknologi Bandung.

Visat S, Muhammad. 2015. PENERAPAN ALGORITMA DIJKSTRA PADA

PERMAINAN COUNTER STRIKE. Bandung. Teknik Informatika Institut

Teknologi Bandung.

Zaidah, Nur. 2016. PENERAPAN ALGORITMA DIJKSTRA UNTUK GAME

HIJAIYAH . Malang. Teknik Informatika Universitas Maulana Malik

Ibrahim Malang.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: PERBANDINGAN ALGORITMA A* DAN DIJKSTRA UNTUK … · perbandingan algoritma a* dan dijkstra untuk pencarian jalur terpendek pada graf square lattice skripsi diajukan untuk memenuhi

71

Eranki Rajiv. (2002). PATHFINDING USING A*(A-STAR). Diperoleh

1 Maret 2017, dari http://web.mit.edu/eranki/www/tutorials/search/

Beouwer, A.E. (1999). Lattice Graph . Diperoleh 3 Juni 2017,

darihttp://mathworld.wolfram.com/LatticeGraph.html

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI