Team project ©2017 Dony Pratidana S. Hum | Bima Agus Setyawan S. IIP
Hak cipta dan penggunaan kembali:
Lisensi ini mengizinkan setiap orang untuk menggubah,
memperbaiki, dan membuat ciptaan turunan bukan untuk
kepentingan komersial, selama anda mencantumkan nama
penulis dan melisensikan ciptaan turunan dengan syarat
yang serupa dengan ciptaan asli.
Copyright and reuse:
This license lets you remix, tweak, and build upon work
non-commercially, as long as you credit the origin creator
and license it on your new creations under the identical
terms.
PERBANDINGAN ALGORITMA A* (A-STAR) DAN
ALGORITMA DIJKSTRA PADA APLIKASI PENCARIAN
JARAK TERPENDEK
SKRIPSI
Diajukan guna memenuhi sebagian persyaratan memperoleh
gelar Sarjana Komputer (S.Kom.)
Nathan Sadeli
07110110013
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI
UNIVERSITAS MULTIMEDIA NUSANTARA
GADING SERPONG – TANGERANG
2014
ii
PERNYATAAN
Dengan ini saya menyatakan bahwa skripsi ini adalah karya ilmiah saya sendiri, bukan plagiat dari karya ilmiah yang ditulis oleh orang lain atau lembaga lain, dan semua karya ilmiah orang lain atau lembaga lain yang dirujuk dalam skripsi ini telah disebutkan sumber kutipannya serta dicantumkan di Daftar Pustaka. Jika dikemudian hari terbukti ditemukan kecurangan/penyimpangan, baik dalam pelaksannan skripsi maupun dalam penulisan laporan skripsi, saya bersedia menerima konsekuensi dinyatakan TIDAK LULUS untuk mata kuliah Skripsi yang telah saya tempuh.
Tangerang, 12 Agustus 2014
(Nathan Sadeli)
HALAMAN PENGESAHAN
Skripsi dengan judul
Perbandingan Algoritma A* (A-Star) dan Algoritma Dijkstra Pada Aplikasi Pencarian Jarak Terpendek
Oleh
Nathan Sadeli – 07110110013
Telah diujikan pada hari rabu, 23 Juli 2014 dan dinyatakan lulus
dengan susunan penguji sebagai berikut
Ketua Sidang Penguji
(Maria Irmina P, S.Kom., M.T.) (Adhi Kusnadi. S.T., M.Si.)
Pembimbing
(Dodick Z Sudirman, B.App.Sc., M.T.I)
Disahkan oleh
Ketua Program Studi Teknik Informatika
iv
HALAMAN PERSEMBAHAN
Karya penulis ini dipersembahakan
Untuk Tuhan Yesus Kristus, yang terus bantuin Nathan dari awal kuliah sampai sekarang bisa selesain skripsi ini, itu semua berkat dan kasih sayang-Nya buat
saya.
Untuk orang-orang yang ku cintai papa & mama tersayang beribu kata terima kasih ku ucapkan tidak akan pernah dapat melebihi jutaan kasih sayang yang
kalian berikan kepada putramu ini yang selalu mendoakan, membimbing, menyanyangi, dan selalu ada di sampingku setiap saat!!!
Untuk kakakku Nanette, maafin adekmu yang nakal ini, yang selalu ingin menang sendiri di rumah & terima kasih menjadi motivasiku dan semangatku buat
ngerjain skripsi ini.
Untuk dosen-dosen yang pernah mengajariku pada masa-masa kuliah mulai dari semester 1 sampai sekarang terutama pas selesain skripsi (Pak Dodick dan Ibu Maria) yang selalu mengingatkan dan berbaik hati. Semoga Pak Dodick dan Ibu
Maria bisa sukses terus dalam segala pekerjaan dan diberkati Tuhan setiap hari.
Untuk Teman-teman yang telah bantuin aku dalam selesain skripsinya (Albert, Daniel, dan Yunky) makasih uda banyak membantu Nathan.
Dengan segala ketulusan hati
Nathan Sadeli
KATA PENGANTAR
Puji syukur penulis ucapkan kepada Tuhan Yesus Kristus karena atas berkat-Nya laporan ini dapat terselesaikan. Laporan skripsi dengan judul Perbandingan Algoritma A* (A-Star) dan Algoritma Dijkstra Pada Aplikasi Pencarian Jarak Terpendek dengan diselesaikan ini untuk melengkapi sebagian persyaratan memperoleh gelar Sarjana Komputer (S.Kom.).
Penulis juga mengucapkan terima kasih kepada kedua orang tua, papa, dan mama, dan kakak yang tanpa henti-hentinya manyayangi, membimbing, memberi motivasi, serta mendodakan penulis sehingga penulis bisa semangat dalam mengerjakan skripisi. Dan kepada semua pihak kampus UMN (Universitas Multimedia Nusantara) yang sudah membantu dalam penyusunan laporan ini, khususnya kepada Bapak Dodick Z Sudirman yang sudah memberikan waktu, ide, dan tenaganya dalam membimbing penyusunan skripsi ini.
Penulis juga menyadari bahwa masih terdapat kekurangan dan kesalahan dalam menyelesaikan skripsi ini, oleh karena itu semuanya kritik, masukan, dan saran yang konstruktif senantiasa dinantikan. Akhir kata, penulis berharap jika laporan ini dapat memberikan informasi dan menambah wawasan kepada para pembacanya.
Jakarta, Agustus 2014 Penulis
vi
PERBANDINGAN ALGORITMA A* (A-STAR) DAN ALGORITMA DIJKSTRA PADA APLIKASI PENCARIAN JARAK TERPENDEK
ABSTRAK
Masalah dalam Pathfinding yang sering dijumpai adalah Shortest Path, dideskripsikan sebagai solusi pencarian untuk menemukan lintasan terpendek antara dua atau beberapa simpul yang saling berhubungan. Algoritma untuk mengatasi masalah tersebut diantaranya algoritma Dijkstra, algoritma Bellman -
Ford, algoritma Floyd - Warshal, algoritma A* (A-Star). Dalam skripsi ini akan
menganalisa tentang perbandingan optimasi lintasan terpendek dengan menggunakan metode algoritma A* (A-Star) dan algoritma Dijkstra dan diimplementasikan pada aplikasi pencarian jalur terpendek dengan bahasa pemrograman Javascript. Kedua algoritma tersebut bekerja dengan memproses satu per satu kemungkinan jarak setiap simpul yang ada lalu kemudian menentukan lintasan yang memiliki jarak paling pendek.
Kata Kunci: Algoritma A* (A-Star), Algortima Dijkstra, Shortest Path, Pathfinding, Javascript.
COMPARISON of A* (A-STAR) ALGORITHM AND DIJKSTRA ALGORITHM ON PATHFINDING APLICATION
ABSTRACT
Frequently problem encountered in the pathfinding is Shortest Path, described as a search solution to find the shortest path between two or more nodes that are interconnected. Many algorithms to solve these problems including Dijkstra Algorithm, Bellman – Ford Algorithm, Floyd – Warshal Algorithm, A* (A-Star) Algorithm. In this thesis will analyze the optimization comparasion of the shortest path by using A* (A-Star) Algorithm and Dijkstra Algorithm and implemented in the shortest path search application with Javascript programming language. The two algorithms work by processing one at a distance of every node possibilities that exist and then determine the path that has the shortest distance.
viii DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN PERNYATAAN ... ii
HALAMAN PENGESAHAN ... iii
HALAMAN PERSEMBAHAN ... iv
KATA PENGANTAR ... v
ABSTRAK ... vi
ABSTRACT ... vii
DAFTAR ISI ... viii
DAFTAR TABEL ... ix DAFTAR GAMBAR ... x BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 3 1.3 Batasan Masalah ... 4 1.4 Tujuan Penelitian ... 4 1.5 Manfaat Penelitian ... 5 1.6 Sistematika Penulisan ... 5
BAB II Landasan Teori ... 7
2.1 Lintasan Terpendek (Shortest Path) ... 7
2.2 Pencarian Lintasan (Path Finding) ... 8
2.3 Algoritma A* ... 9
2.4 Algoritma Dijkstra ... 11
2.5 JavaScript ... 13
BAB III PERANCANGAN SISTEM ... 15
3.1 Metodologi Penelitian ... 15
3.2 Perancangan ... 16
3.2.1 Flowchart ... 16
3.2.2 Rancangan Tampilan Antar Muka ... 22
A Tampilan Awal Aplikasi ... 22
B Tampilan Aplikasi Jarak Terpendek ... 23
C Tampilan Aplikasi Yang Memiliki Hambatan ... 24
BAB IV IMPLEMENTASI ... 26
4.1 Hardware dan Software ... 26
4.2 Implementasi ... 26
4.3 Testing ... 30
BAB V SIMPULAN DAN SARAN ... 64
5.1 Kesimpulan ... 64
5.2 Saran ... 65
DAFTAR PUSTAKA ... 67
DAFTAR TABEL
Tabel 4.1 Tabel Pengujian Aplikasi Menggunakan Metode Algoritma
A* (A-Star)... 30 Tabel 4.2 Tabel Pengujian Aplikasi Menggunakan Metode Algoritma
Dijkstra ... 47 Tabel 4.2 Tabel Hasil Pengujian ... 64
x
DAFTAR GAMBAR
Gambar 2.1 Shortest Path (Garis Tebal) ... 7
Gambar 2.2 Contoh Pseudocode Algoritma A* (A-Star) ... 10
Gambar 2.3 Ilustrasi Solusi Algoritma A* Dalam Mencari Jalur Terpendek ... 11
Gambar 2.4 Contoh Pseudocode Algoritma Dijkstra ... 13
Gambar 2.5 Contoh Pemrograman JavaScript ... 14
Gambar 3.1 Flowchart Pencarian Jarak Terpendek ... 17
Gambar 3.2 Flowchart Algoritma A* (A-Star) ... 19
Gambar 3.3 Flowchart Algoritma Dijkstra ... 21
Gambar 3.4 Flowchart Aplikasi Pencarian Jalur Terpendek Saat Digunakan ... 22
Gambar 3.5 Ilustrasi Tampilan Awal Aplikasi ... 23
Gambar 3.6 Ilustrasi Aplikasi Untuk Menetukan Jarak Terpendek ... 24
Gambar 3.7 Ilustrasi Yang Terjadi Ketika Aplikasi Memiliki Hambatan ... 25
Gambar 4.1 Tampilan Awal Aplikasi ... 27
Gambar 4.2 Tampilan Aplikasi Jalur Terpendek ... 28
Gambar 4.3 Tampilan Aplikasi Jalur Terpendek Dengan Metode Algoritma Dijkstra ... 29
Gambar 4.4 Tampilan Uji Coba 1 Aplikasi Algortima A* (A-Star) Tanpa Halangan ... 31
Gambar 4.5 Tampilan Uji Coba 1 Aplikasi Algortima A* (A-Star) Tanpa Halangan Arah Sebaliknya ... 32
Gambar 4.6 Tampilan Uji Coba 2 Aplikasi Algortima A* (A-Star) ... 33
Gambar 4.7 Tampilan Uji Coba 2 Aplikasi Algortima A* (A-Star) Arah Sebaliknya ... 34
Gambar 4.8 Tampilan Uji Coba 3 Aplikasi Algortima A* (A-Star) ... 35
Gambar 4.9 Tampilan Uji Coba 3 Aplikasi Algortima A* (A-Star) Arah Sebaliknya ... 36
Gambar 4.10 Tampilan Uji Coba 4 Aplikasi Algortima A* (A-Star) ... 37
Gambar 4.11 Tampilan Uji Coba 4 Aplikasi Algortima A* (A-Star) Arah Sebaliknya ... 38
Gambar 4.12 Tampilan Uji Coba 5 Aplikasi Algortima A* (A-Star) ... 39
Gambar 4.13 Tampilan Uji Coba 5 Aplikasi Algortima A* (A-Star) Arah Sebaliknya ... 40
Gambar 4.14 Tampilan Uji Coba 6 Aplikasi Algortima A* (A-Star) ... 41
Gambar 4.15 Tampilan Uji Coba 6 Aplikasi Algortima A* (A-Star) Arah Sebaliknya ... 43
Gambar 4.16 Tampilan Uji Coba 7 Aplikasi Algortima A* (A-Star) ... 43
Gambar 4.17 Tampilan Uji Coba 7 Aplikasi Algortima A* (A-Star) Arah Sebaliknya ... 44
Gambar 4.18 Tampilan Uji Coba 8 Aplikasi Algortima A* (A-Star) ... 45
Gambar 4.19 Tampilan Uji Coba 7 Aplikasi Algortima A* (A-Star) Arah Sebaliknya ... 46
xi
Gambar 4.20 Tampilan Uji Coba 1 Aplikasi Algortima Dijkstra ... 48
Gambar 4.21 Tampilan Uji Coba 1 Aplikasi Algortima Dijkstra Halangan Arah Sebaliknya ... 49 Gambar 4.22 Tampilan Uji Coba 2 Aplikasi Algortima Dijkstra ... 50 Gambar 4.23 Tampilan Uji Coba 2 Aplikasi Algortima Dijkstra Arah
Sebaliknya ... 51 Gambar 4.24 Tampilan Uji Coba 3 Aplikasi Algortima Dijkstra ... 52 Gambar 4.25 Tampilan Uji Coba 3 Aplikasi Algortima Dijkstra Arah
Sebaliknya ... 53 Gambar 4.26 Tampilan Uji Coba 4 Aplikasi Algortima Dijkstra ... 54 Gambar 4.27 Tampilan Uji Coba 4 Aplikasi Algortima Dijkstra Arah
Sebaliknya ... 55 Gambar 4.28 Tampilan Uji Coba 5 Aplikasi Algortima A* (A-Star) ... 56 Gambar 4.29 Tampilan Uji Coba 5 Aplikasi Algortima A* (A-Star) Arah
Sebaliknya ... 57 Gambar 4.30 Tampilan Uji Coba 6 Aplikasi Algortima A* (A-Star) ... 58 Gambar 4.31 Tampilan Uji Coba 6 Aplikasi Algortima A* (A-Star) Arah
Sebaliknya ... 59 Gambar 4.32 Tampilan Uji Coba 7 Aplikasi Algortima A* (A-Star) ... 60 Gambar 4.33 Tampilan Uji Coba 7 Aplikasi Algortima A* (A-Star) Arah
Sebaliknya ... 61 Gambar 4.34 Tampilan Uji Coba 8 Aplikasi Algortima A* (A-Star) ... 62 Gambar 4.35 Tampilan Uji Coba 7 Aplikasi Algortima A* (A-Star) Arah