SKRIPSI
RESTI KURNIAWATI
131401042
SKRIPSI
RESTI KURNIAWATI
131401042
PERNYATAAN
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Resti Kurniawati
131401042
PENGHARGAAN
Puji dan syukur kehadirat Allah SWT yang memberikan rahmat, hidayah dan
karuniaNya, sehingga penulis dapat menyelesaikan penyusunan skripsi yang berjudul
‘PERBANDINGAN ALGORITMA DIJKSTRA DAN ALGORITMA STEEPEST
ASCENT HILL CLIMBING DALAM MENENTUKAN RUTE TEPENDEK ( STUDI
KASUS : ANTAR LOKASI OBJEK WISATA DI KABUPATEN SERDANG
BEDAGAI )’ sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program
Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas
Sumatera Utara. Shalawat dan salam kepada Rasulullah SAW.
1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Opim Salim Sitompul, M.Sc., selaku Dekan Fakultas Ilmu Komputer
dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara.
4. Bapak Herriyance, S.T, M.Kom selaku Sekretaris Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara dan selaku Dosen Pembimbing II yang
telah memberikan bimbingan, saran, masukan dan dukungan kepada penulis.
5. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing I yang telah
memberikan bimbingan, saran, masukan dan dukungan kepada penulis.
6. Bapak M. Andri Budiman, S. T. M. Comp. Sc, M.E.,M selaku Dosen Pembanding
I yang telah memberikan bimbingan, saran, masukan dan dukungan kepada
penulis.
7. Ibu Sri Melvani Hardi, S. Kom, M. Kom selaku Dosen Pembanding II yang telah
memberikan bimbingan, saran, masukan dan dukungan kepada penulis.
8. Seluruh dosen dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi
USU, khususnya di Program Studi S1 Ilmu Komputer.
9. Ayahanda Suparjo dan ibunda Nuraini tercinta yang selalu memberikan do’a,
kasih sayang, nasehat dan dukungannya kepada penulis.
10. Adinda tersayang Khalimatu Syakdiah, Novira Ramadhani, dan Debby Syafitri
yang selalu memberikan do’a, semangat dan canda kepada penulis.
11. “Keluarga Samara”, UKMI Al-Khuwarizmi, Drum Band Sangita Pramuka
Akasha, Lingkaran Kecil, Stambuk 2013, Kom C yang selalu memberikan
semangat dan inspirasi kepada penulis.
12. Teman – teman yang luar biasa Kak Ani, Sasti, Dessyu, Fauza, Nikmah, Yoga,
Fajar, Reza, Fathimah, Poteto, yang telah menjadi teman diskusi dengan segenap
do’a dan dorongan.
13. Kakak – kakak tersayang khususnya kak Bidasari, Kak Nur Alimah, kak Zah, kak
Na, kak Yayang, kak Uba dan kak Ida untuk do’a dan inspirasinya kepada penulis.
Semoga Allah SWT melimpahkan berkah kepada semua pihak yang telah memberikan
do’a, bantuan, perhatian, serta dukungan kepada penulis mendapatkan berkat yang
melimpah dari Allah SWT. Semoga skripsi ini bermanfaat bagi pribadi, masyarakat dan
negara.
Penulis
ABSTRAK
Objek wisata merupakan salah satu tempat yang banyak dikunjungi dalam berekreasi
dan melepas penatnya rutinitas sehari – hari bersama teman dan keluarga. Luasnya suatu
wilayah dapat memberikan kesulitan dalam menentukan rute terpendek antar lokasi
objek wisata. Sistem komputer dapat digunakan untuk melakukan pencarian jarak dan
lintasan terpendek dengan cara merepresentasikan objek wisata tersebut kedalam
bentuk graf dan diimplementasikan dalam model simulasi. Hal ini diperlukan untuk
menghemat waktu dan biaya perjalanan. Apabila wisatawan membutuhkan waktu yang
lebih sedikit untuk tiba di lokasi objek wisata maka ada kemungkinan wisatawan akan
memiliki banyak waktu untuk menjelajah objek wisata lainnya. Maka dari itu
diperlukan juga algoritma, algoritma yang akan digunakan adalah algoritma Dijkstra
dan algoritma Steepest Ascent Hill Climbing. Algoritma Dijkstra dapat menyelesaikan
proses pencarian dengan cara mengunjungi setiap titik pada graf namun bobotnya tidak
boleh negatif. Sedangkan algoritma Steepest Ascent Hill Climbing berdasarkan nilai
heuristik terbaik yang dimiliki namun solusi yang ditemukan tidak selalu optimum
namun yang mendekati nilai optimum. Berdasarkan hasil pencarian rute terpendek antar
lokasi objek wisata di Kabupaten Serdang Bedagai dengan menggunakan algoritma
Dijkstra dan algoritma Steepest Ascent Hill Climbing menghasilkan rute, total jarak dan
running time yang berbeda dimana algoritma Steepest Ascent Hill Climbing memiliki
running time yang lebih cepat jika dibandingkan algoritma Dijkstra.
Kata kunci : Objek Wisata, Shortest path, Graf, Algoritma Dijkstra, Algoritma
Steepest Ascent Hill Climbing
ABSTRACT
Tourist attractions are one of the many places visited in recreation and take off daily
routines with friends and family. The extent of a region can provide difficulties in
determining the shortest path between tourist attractions sites. Computer systems can
be used to perform the shortest distance and shortest path by representing a tourist
attractions into a graph and implemented in a simulation model. This is necessary to
save time and travel expenses. If tourists need a little time to arrive at the location of a
tourist attraction then there is likely tourists will have plenty of time to explore other
sights. Therefore, the algorithm is needed, the algorithm used is Dijkstra algorithm and
Steepest Ascent Hill Climbing algorithm. Dijkstra's algorithm can complete the search
process by visiting every node on the graph but its weight should not be negative. While
the Steepest Ascent Hill Climbing algorithm based on the best heuristic value owned
but the solution found not always optimal but close to the optimum value. Based on the
results of the shortest path search between the tourist attraction locations in Serdang
Bedagai District using the Dijkstra algorithm and the Steepest Ascent Hill Climbing
algorithm resulted in different routes, the total distance and running time in which the
Steepest Ascent Hill Climbing algorithm has faster running times compared to
Dijkstra's algorithm.
DAFTAR ISI
Halaman
Persetujuan iii
Pernyataan iv
Penghargaan v
Abstrak vii
Abstract viii
Daftar Isi ix
Daftar Tabel xi
Daftar Gambar xii
Daftar Lampiran xiii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 4
1.5 Manfaat Penelitian 4
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
Daftar Pustaka 60
Lampiran
DAFTAR TABEL
Halaman
Halaman
Gambar 2.1 Representasi Jembatan Konigsberg 8
Gambar 2.2 Graf Representasi Jembatan Konigsberg 8
Gambar 2.3 Graf Sederhana 9
Gambar 2.4 Graf Ganda 10
Gambar 2.5 Graf Semu 10
Gambar 2.6 Graf Tidak Berarah 11
Gambar 2.7 Graf Berarah 11
Gambar 2.8 Graf Berbobot 12
Gambar 2.9 Soal Graf 1 15
Gambar 2.10 Lintasan Terpilih 17
Gambar 2.11 Soal Graf 2 19
Gambar 2.12 Hasil Pencarian 19
Gambar 3.1 Diagram Ishikawa Masalah Penelitian 23
Gambar 3.2 Diagram Umum 26
Gambar 3.3 Pseudocode Algoritma Dijkstra 27
Gambar 3.4 Pseudocode Algoritma Steepest Ascent Hill Climbing 28
Gambar 3.5 Use-case Diagram Sistem 29
Gambar 3.6 Activity Diagram Sistem 30
Gambar 3.7 Sequence Diagram Sistem 31
Gambar 3.8 Flowchart Sistem 32
Gambar 3.9 Flowchart Algoritma Dijkstra 33
Gambar 3.10 Flowchart Algoritma Steepest Ascent Hill Climbing 34
Gambar 3.11 Halaman Awal 35
Gambar 3.12 Halaman Rute Terpendek 36
Gambar 3.13 Halaman Bantuan 37
Gambar 3.14 Halaman Tentang Sistem 38
Gambar 4.1 Halaman Awal 39
Gambar 4.2 Halaman Rute Terpendek 40
Gambar 4.3 Halaman Graf Lokasi Objek Wisata 41
Gambar 4.4 Halaman Bantuan 41
Gambar 4.5 Halaman Tentang Sistem 42
Gambar 4.6 Pengujian Proses Implementasi 43
Gambar 4.7 Pengujian Proses Algoritma Dijkstra 44
Gambar 4.8 Graf Lokasi Objek Wisata di Kabupaten Serdang Bedagai 45
Gambar 4.9 Pengujian Proses Algoritma Steepest Ascent Hill Climbing 47
Gambar 4.10 Pencarian Pertama 49
Gambar 4.11 Pencarian Kedua 50
Gambar 4.12 Pencarian Ketiga 51
Gambar 4.13 Grafik Waktu Proses Algoritma Dijkstra 55
Halaman
PENDAHULUAN
1. Dalam kasus ini yang diteliti adalah graf berarah terhubung ( directed connected
graph ) yaitu graf yang setiap sisinya memiliki bobot dengan menggunakan vertex
yang sudah ditentukan.
2. Bobot yang digunakan adalah jarak antar lokasi objek wisata. Pengambilan data
bobot jarak tersebut menggunakan bantuan Google Maps.
3. Aplikasi ini menetapkan titik asal merupakan salah satu lokasi objek wisata di
Kabupaten Serdang Bedagai yang sudah ditentukan.
4. Shortest path ini hanya berlaku pada beberapa lokasi objek wisata di Kabupaten
Serdang Bedagai dan titik lokasi yang akan dikunjungi sebanyak dua puluh titik
destinasi objek wisata di Kabupaten Serdang Bedagai, yaitu :
a. Pantai Romance Bay. m. Pantai Sialang Buah.
b. Mesjid Kerajaan Serdang ( n. Roti Kacang Rajawali.
Mesjid Sultan Sulaimaniyah ). o. Ancol Arung Jeram Sipispis.
c. Taman Rekreasi Alam Sari. p. Pantai Sentang.
d. Pantai Cermin Theme Park. q. Air Terjun Sampuran Widuri.
e. Replika Istana Sultan r. Pantai Bogak Indah
Serdang. s. Mesjid Kerajaan Bedagai (
f. Romance Padi. Mesjid Jami’ Ismailiyah ).
g. Rahmat Zoo & Park. t. Pantai Bagan Kuala.
h. Pura Penataran
Dharmaraksaka Kampung
Bali.
i. Pantai Sri Mersing.
j. Dodol Deli Pasar Bengkel.
k. Pantai Cemara Kembar.
l. Eco Tour Mangrove
5. Jalan yang ditempuh adalah jalan – jalan utama di Kabupaten Serdang Bedagai dan
tidak membahas waktu dan kecepatan alat transportasi, kondisi jalan, kondisi lalu-
lintas dan lampu lalu-lintas (traffic light) dari lokasi asal ke lokasi tujuan serta
diasumsikan sebagai jalan dua arah.
6. Perhitungan dilakukan dengan membandingkan kompleksitas Big Ɵ ( theta ) dan
waktu proses dengan satuan waktu yang digunakan adalah Milisekon serta
membandingkan hasil ( result ) masing-masing algoritma Dijkstra dan algoritma
Steepest Ascent Hill Climbing.
7. Tidak membahas sistem informasi geografis.
8. Aplikasi ini offline dan perangkat yang digunakan dalam perancangan aplikasi
adalah SharpDevelop dengan menggunakan C# sebagai bahasa pemrograman.
1. Studi Pustaka
Pada tahap ini penelitian dimulai dengan peninjauan pustaka berupa buku – buku,
artikel – artikel ilmiah, dan penelitian – penelitian yang didokumentasikan dalam
bentuk jurnal yang berhubungan dengan Graf, Shortest Path, Dijkstra, Steepest
Ascent Hill Climbing.
2. Analisis Data
Tahap ini berkaitan dengan batasan masalah, pada tahap ini dilakukan analisa
mengenai apa saja yang dibutuhkan dalam penelitian penentuan rute terpendek
antar lokasi objek wisata dengan menggunakan algoritma Dijkstra dan algoritma
Steepest Ascent Hill Climbing di Kabupaten Serdang Bedagai.
3. Perancangan Sistem
Pada tahap ini dilakukan perancangan desain tampilan GUI (Graphic User
Interface), UML (Unified Modeling Language), dan lain – lain. Proses
perancangan ini berdasarkan pada batasan masalah dari penelitian ini.
4. Implementasi Sistem
Pada tahap ini perancangan sistem dengan algoritma Dijkstra dan algoritma
Steepest Ascent Hill Climbing diimplementasikan dengan tools SharpDevelop 4.3
menggunakan bahasa pemrograman C#.
5. Pengujian Sistem
Pada tahap ini dilakukan pengujian terhadap prototipe / sistem yang telah
diimplementasikan.
6. Dokumentasi Sistem
Pada tahap ini dilakukan pendokumentasian selama penelitian, mulai dari tahap
awal sampai kepada pengujian sistem, untuk selanjutnya dibuat dalam bentuk
laporan penelitian (skripsi).
LANDASAN TEORI
Jawaban yang diungkapkan Euler adalah orang tidak mungkin melalui ketujuh
jembatan tersebut masing – masing satu kali dan kembali lagi ke tempat asal
keberangkatan jika derajat setiap simpul tidak seluruhnya genap (Iryanto, 2003). Hal ini
dapat diperlihatkan pada Gambar 2.2 dimana vertex A bersisian dengan 5 edge
sedangkan vertex B, C, dan D bersisian dengan 3 edge.
Graf semu adalah graf yang mengandung loop (Munir, 2012). Pada Gambar 2.5
adalah contoh graf semu dengan himpunan simpul V dan himpunan sisi E adalah :
V = { 1, 2, 3, 4, 5 }
E = { (1,5), (1,1), (2,5), (2,5), (1,5), (4,5), (4,5), (3,5), (3,5) } → loop
= { e1, e2, e3, e9, e4, e5, e6, e7, e8 }
Dilihat dari orientasi arah pada sisinya, maka secara umum graf dikelompokkan
menjadi dua yaitu :
1. Graf tidak berarah (undirected graph) adalah graph yang sisinya tidak
mempunyai orientasi arah. Pada graf ini, urutan pasangan simpul yang
dihubungkan oleh sisi tidak diperhatikan (Munir, 2012). Contoh graf tidak
berarah dapat dilihat pada Gambar 2.6.
2. Graf berarah (directed graph atau digraph) adalah graf yang setiap sisinya
diberikan orientasi arah. Pada graf berarah, (u,v) dan (v,u) menyatakan dua
buah busur yang berbeda, dengan kata lain (u,v) ≠ (v,u). Untuk busur (u,v),
simpul u dinamakan simpul asal (initial vertex) dan simpul v dinamakan
simpul terminal (terminal vertex) (Munir, 2012). Contoh graf berarah dapat
dilihat pada Gambar 2.7.
komputer), ongkos produksi dan sebagainya (Munir, 2012). Contoh graf berbobot dapat
dilihat ada Gambar 2.8.
Shortest Path adalah pencarian lintasan, rute, jangkauan, atau pun jalur yang akan
dilalui dari satu titik ke titik lainnya untuk menentukan lintasan dengan nilai paling
minimun. Penyelesaian untuk hal tersebut adalah dengan merepresentasikannya ke
dalam bentuk graf. Bentuk graf representasinya adalah dengan membuat simpul dalam
graf sebagai representasi objek masalah dan membuat representasi hubungan antar
objek dengan garis yang menghubungkan simpul – simpul tersebut (Sutojo et al. 2011).
Graf yang akan digunakan adalah graf berbobot ( weighted graph ) yang memiliki nilai
atau bobot. Semua bobot diasumsikan bernilai positif. Dalam studi kasus ini, bobot pada
sisi graf menyatakan jarak antar lokasi objek wisata di Kabupaten Serdang Bedagai.
Cara algoritmis yang umum di pakai untuk menyelesaikan permasalahan diatas
adalah dengan menggunakan optimasi teknik pencarian berupa metode konvensional
dan metode heuristik (Lubis, 2009). Untuk mengukur peforma metode pencarian,
terdapat empat kriteria yang dapat dilakukan (Russel et al. 1995), yaitu :
1. Completeness. Apakah metode tersebut menjamin penemuan solusi jika solusinya
memang ada ?
2. Time complexity. Berapa lama waktu yang diperlukan untuk menemukan solusi
tersebut ?
3. Space complexity. Berapa banyak memori yang diperlukan ?
4. Optimality. Apakah metode tersebut menjamin menemukan solusi terbaik ?
2.3 Algoritma
Ditelaah dari asal usul kata, kata algorism berarti proses menghitung dengan angka
Arab. Kata tersebut berasal dari nama penulis buku Arab yang terkenal bernama Abu
Ja’far Muhammad Ibnu Musa al-Khuwarizmi dimana orang barat membaca al-
Khuwarizmi menjadi algorism. Beliau menulis buku yang berjudul Kitab al jabar wal-
muqabala, yang artinya “Buku Pemugaran dan Pengurangan” (the book of restoration
and reduction). Dari judul buku itu juga merupakan asal kata “aljabar” (algebra).
Perubahan kata algorism menjadi algorithm terjadi karena kata algorism sering
dikelirukan dengan arithmetic, sehingga akhiran -sm berubah menjadi thm. Lambat laun
kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi)
secara umum, sehingga kehilangan makna aslinya. Dalam bahasa Indonesia, kata
algorithm diserap menjadi algoritma (Munir, 2014).
Menurut Donald E. Knuth (Knuth, 1997) algoritma yang baik dan benar harus
memiliki karakteristik sebagai berikut :
1. Input : Sebuah algoritma harus memiliki nol input atau lebih dari pengguna sebagai
data masukan untuk diolah.
2. Output : Sebuah algoritma harus memiliki minimal sebuah ouput yang merupakan
hasil dari olahan data.
3. Finiteness : Sebuah algoritma harus terbatas dan berhenti dari proses yang telah
dieksekusi.
4. Defineteness : Sebuah Algoritma harus jelas dan tidak menimbulkan makna ganda
(ambigious).
5. Effectiveness : Langkah-langkah algoritma dikerjakan dalam waktu yang wajar.
terkecil (Pandey et al. 2016), bobot tersebut merupakan bobot yang dimiliki tiap edge
(Cruz et al. 2016). Keuntungan algoritma Dijkstra ialah lebih efisien dan dapat
digunakan untuk memproses graf dikarenakan hanya memproses tiap titik pada graf
sekali. Jumlah titik menentukan tingkat kecepatan menemukan solusi dari algoritma
Dijkstra.
1. Pada awalnya pilih node dengan bobot yang terendah dari node yang belum terpilih,
lalu diinisiasikan dengan “ ∞”. Bentuk tabel yang terdiri dari node, status, bobot dan
predecessor. Lengkapi kolom bobot yang diperoleh dari jarak node sumber ke semua
node yang langsung terhubungan dengan node sumber tersebut.
2. Jika node sumber ditemukan maka tetapkan sebagai node terpilih.
3. Tetapkan node terpilih dengan label permanen dan perbaharui node yang langsung
terhubung.
4. Tentukan node sementara yang terhubung pada node yang sudah terpilih sebelumnya
dan merupakan bobot terkecil dilihat dari tabel dan tentukan sebagai node terpilih
berikutnya.
5. Jika node yang terpilih = node tujuan, maka kumpulan node terpilih merupakan
rangkaian yang menunjukan lintasan terpendek.
Contoh :
Tentukanlah jalur terpendek dari graf yang ditunjukkan pada Gambar 2.9 dengan titik
asal = A, dan titik tujuan = E.
Langkah 1 :
- Buatlah tabel untuk hasil lintasan dengan keterangan i ( iterasi ), q ( titik yang belum
dikunjungi), s ( titik yang sudah di kunjungi ), c ( current state ), dan titik
A, B, C, D,E seperti pada Tabel 2.1.
- i = 0 adalah keadaan awal.
- Pada i = 1 dapat dilihat pada Tabel 2.1, A→B = 4, A→C = tidak memiliki
lintasan, A→D = 8, dan A→E = tidak memiliki lintasan. Lintasan A→B adalah
lintasan dengan bobot terendah dengan bobot = 4.
- Maka tentukan B sebagai current state untuk i = 2.
Langkah 2 :
- i = 1 adalah keadaan awal.
- Pada i = 2 dapat dilihat pada Tabel 2.2, B→C = 3 + 4 = 7, B→D = tidak memiliki
lintasan, maka tetap menggunakan nilai 8 dari state A, dan B→E = tidak memiliki
lintasan. Lintasan B→C adalah lintasan dengan bobot terendah dengan bobot = 7.
- Maka tentukan C sebagai current state untuk i = 3.
Langkah 3 :
- i = 2 adalah keadaan awal.
- Pada i = 3 dapat dilihat pada Tabel 2.3, C→D = 4 + 3 + 4 = 11 (penambahan bobot
sebelumnya). Namun bobot 11 tersebut lebih besar dari keadaan sebelumnya yang
berbobot 8 (8,A) maka bobot yang ditetapkan adalah bobot terendah yaitu 8,A.
C→E = tidak memiliki lintasan. Lintasan C→D adalah lintasan dengan bobot
terendah dengan bobot = 8.
- Maka tentukan D sebagai current state untuk i = 4.
Langkah 4 :
- i = 3 adalah keadaan awal.
- Pada i = 4 dapat dilihat pada Tabel 2.4, D→E = 8 + 7 = 15. Maka tentukan E sebagai
current state untuk i = 5.
- Pada i = 5, E adalah titik tujuan.
- Berdasarkan Tabel 2.4 diketahui bahwa untuk titik awal = A dan titik tujuan = E
harus melalui lintasan seperti pada Gambar 2.10 dengan total bobot = 15.
1. Mulai dari keadaan awal untuk melakukan pengujian. Jika merupakan tujuan, maka
berhenti. Jika tidak lanjutkan dengan keadaan sekarang sebagai keadaan awal.
2. Ulangi hingga solusi atau tujuan ditemukan atau hingga iterasi tidak memberikan
perubahan pada keadaan sekarang :
a. Tentukan SUCC sebagai nilai heuristik terbaik dari successor – successor.
b. Lakukan untuk masing – masing node yang digunakan oleh keadaan sekarang:
i. Gunakan node tersebut dan bentuk keadaan baru.
ii. Evaluasi keadaan terbaru tersebut. Jika merupakan tujuan maka keluar. Jika
tidak, maka bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik,
tetapkan nilai heuristik keadaan baru tersebut sebagai SUCC. Namun jika
tidak lebih baik, maka nilai SUCC tidak berubah.
c. Jika SUCC lebih baik baik dari nilai heuristik keadaan sekarang, maka ubah node
SUCC, menjadi keadaan sekarang.
Pada Steepest Ascent Hill Climbing ada 3 masalah yang mungkin terjadi yaitu :
1. Local Optimum, yaitu keadaan dimana semua tetangga lebih buruk atau sama
dengan keadaan dirinya.
2. Plateu, yaitu keadaan dimana semua tetangga sama dengan keadaan dirinya.
Misalkan pada contoh kasus TSP ada 4 kota dengan jarak antara tiap – tiap kota
seperti terlihat pada Gambar 2.11. Maka pencarian dengan Steepest Ascent Hill
Climbing ini dapat dilihat pada Gambar 2.12. Terlihat bahwa, keadaan awal, lintasan
terpiliah adalah ABCD(19). Pada level pertama, akan memilih nilai heuristik terbaik
dari keenam succesor yang ada, yaitu BACD(17), ACBD(12), ABDC(18), DBCA(12),
ADCB(18) atau CBAD(20). Maka yang terpilih adalah ACBD, karena memiliki nilai
heuristik paling kecil (=12). Selanjutnya dari ACBD ini akan dipilih nilai heuristik
terbaik dari succesor yaitu CABD(15), ABCD(19), ACBD(13), DCBA(19), ADBC(16)
atau BCAD(15). Ternyata diketahui dari keenam succesor tersebut memiliki nilai
heuristik yang lebih besar dibanding dengan ACBD. Sehingga tidak akan ada perubahan
nilai keadaan (tetap ACBD). Hasil yang diperoleh, lintasannya adalah ACBD(12)
(Kusumadewi et al. 2005).
Algoritma yang dapat dikatakan sebagai algoritma yang bagus adalah algoritma yang
mangkus. Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang (space)
memori yang dibutuhkan untuk menjalankannya (meminimumkan kebutuhan waktu
dan ruang). Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran
masukan jumlah data yang diproses yang disimbolkan dengan n. (Munir, 2012).
1. Ukuran besar masukan data untuk suatu algoritma n. Misal, jika masukan algoritma
adalah graf, maka ukuran masukan adalah jumlah simpul dan sisi.
2. Kompleksitas waktu, T(n) adalah jumlah operasi yang dilakukan untuk
melaksanakan algoritma sebagai fungsi dari ukuran masukan n.
3. Kompleksitas ruang, S(n) adalah ruang memori yang dibutuhkan algoritma sebagai
fungsi dari ukuran masukan n. (Munir, 2012)
Setelah menetapkan ukuran masukan, maka langkah selanjutnya dalam
mengukur kompleksitas waktu adalah menghitung banyaknya operasi yang dilakukan
algoritma. Apapun komputer yang akan digunakan untuk menjalankan algoritma atau
bahasa pemrograman yang akan digunakan, jumlah komputasi di dalam algoritma
tersebut tetap, yaitu T(n) (Munir, 2012).
Berikut penelitian tentang jarak terpendek (shortest path) yang membahas algoritma
Dijkstra dan algoritma Steepest Ascent Hill Climbing :
1. Zemma, L. A, Herfina & Qur’ania, A (2015) dalam judul penerapan metode
steepest ascent hill climbing pada model pencarian rute terdekat fasilitas pelayanan
darurat di kota Bogor. Penelitian menunjukkan bahwa penentuan rute terdekat pada
pencarian dengan menggunakan algoritma tersebut diperlukan jarak antar titik /
node dengan menggunakan data – data tersebut maka pencarian rute terdekat dapat
dilakukan. Proses implementasi tidak bisa secara langsung dimasukkan kedalam
pencarian rute di google maps, proses dilakukan secara manual dengan coding
program.
objek wisata maka wisatawan akan memiliki banyak waktu untuk mengeksplorasi objek
wisata lainnya. Posisi awal wisatawan ditentukan oleh lokasi wisatawan berada dan
diasumsikan bahwa wisatawan tersebut telah berada di salah satu lokasi objek.
Permasalahan pada penelitian ini adalah pencarian rute terpendek dengan
menggunakan algoritma Dijkstra dan algortima Steepest Ascent Hill Climbing terhadap
graf yang sama dan melakukan perbandingan dari sisi waktu proses terhadap kedua
algoritma tersebut dalam menentukan jarak terpendek antar lokasi objek wisata di
Kabupaten Serdang Bedagai. Penulis membatasi masalah dengan 20 buah vertex yang
merupakan beberapa nama lokasi objek wisata di Kabupaten Serdang Bedagai, dan edge
merupakan panjang jarak yang akan dilintasi dari lokasi objek wisata satu ke lokasi objek
wisata lainnya. Graf yang digunakan merupakan graf berarah terhubung.
Masalah penelitian ini dapat dilihat pada Gambar 3.1 yang dirancang dalam
diagram Ishikawa yang menggambarkan hubungan sebab akibat dari masalah penelitian.
Berdasarkan Gambar 3.1, diketahui bahwa permasalahan berada pada kepala ikan
(segi empat paling kanan). Terdapat empat kategori masalah yaitu Manusia, Metode,
Material dan Sistem yang terhubung dengan tulang utama (garis horizontal yang terhubung
ke kepala ikan). Penyebab dari masalah yang berada di kepala ikan ditunjukkan oleh tulang
– tulang kecil yang digambarkan oleh garis panah menuju ke tulang – tulang kategori
masalah.
Analisis kebutuhan terbagi atas dua bagian, yaitu kebutuhan fungsional dan kebutuhan
nonfungsional. Dimana kebutuhan fungsional mendeskripsikan aktivitas yang disediakan
oleh sistem. Sedangkan kebutuhan nonfungsional mendeskripsikan karakteristik.
1. Sistem menggunakan graf lokasi objek wisata di Kabupaten Serdang Bedagai yang
telah ditentukan.
2. Sistem mengunakan vertex awal yang sudah ditentukan sebagai vertex asal.
3. Sistem mendapatkan hasil rute yang akan dilaui pada graf dengan menggunakan
algoritma Dijkstra dan algoritma Steepest Ascent Hill Climbing.
4. Sistem ini memilih parameter yang digunakan untuk perbandingan yaitu kesesuaian
kompleksitas Big Ө (theta) kedua algoritma dan waktu proses yang dibutuhkan untuk
mendapatkan jarak terpendek.
Pengguna
Sistem
Tampilkan hasil
total jarak, rute dan waktu yang dibutuhkan
algoritma untuk memgeksekusi program.
3.1.4. Pseudocode
Pseudocode merupakan cara penulisan algoritma yang sedikit mirip dengan instruksi
kode / bahasa program yang sebenarnya. Pada penelitian ini terdapat dua pseudocode
yang mewakili algoritma yang ada pada sistem.
dist[v] := alt ;
previous[v] := u ;
Gambar 3.3 Pseudocode Dijkstra
decrease-key v in Q;
end if
end for
end while
return dist;
while (1) {
if (curr_node is goal node) then
terminate the process with SUCCESS;
else
{
find all the reachable node from curr_node;
determine the cost of reaching to these nodes
fromcurr_node;
according their cost add them in Q.
}
if (Q is empty) then
terminated the process with FAILURE;
else
{
temp_node = first node of Q ;
Gambar
path_cost 3.4 Pseudocode
= path_cost + Steepest Ascent Hill Climbing
edge_cost [curr_node][temp_node];
curr_node = temp_node;
3.2 Perancangan
delete firstSistem
node from Q ;
}
Pada penelitian ini untuk mendesain dan merancang sistem pencarian jarak terpendek
}
antar lokasi objek wisata di Kabupaten Serdang Bedagai digunakan Unified Modelling
Language (UML) sebagai bahasa pemodelan. Adapun model UML yang digunakan
antara lain adalah use-case diagram, activity diagram, dan sequence diagram.
Use-case diagram adalah diagram yang menjelaskan tentang interaksi antara pengguna
dengan fungsionalitas dari sistem berdasarkan sudut pandang pengguna. Pada penelitian
ini use-case diagram dapat dilihat pada Gambar 3.5.
Activity Diagram adalah diagram alir yang menggambarkan berbagai aktivitas yang dapat
dilakukan oleh sistem yang sedang dirancang. Activity diagram pada sistem ini dapat
dilihat pada Gambar 3.6.
Sequence Diagram adalah diagram yang menunjukkan interaksi antar objek yang
diurutkan berdasarkan waktu eksekusinya. Diagram ini mengilustrasikan bagaimana
pesan dikirim dan diterima antar objek. Sequence diagram pada sistem ini dapat dilihat
pada Gambar 3.7.
3.2.4. Flowchart
Flowchart adalah diagram alir yang menggambarkan urutan proses penyelesaian masalah
dengan simbol – simbol tertentu. Pada bagian ini, terdapat tiga flowchart, yaitu :
flowchart sistem, flowchart algoritma Dijkstra, dan flowchart algoritma Steepest Ascent
Hill Climbing.
Flowchart ini untuk melakukan pencarian jarak terdekat antar lokasi di objek wisata
Kabupaten Serdang Bedagai yang dapat dilihat pada Gambar 3.8. Pada flowchart ini
terdapat tiga masukan yaitu : lokasi asal objek wisata, lokasi tujuan objek wisata dan
algoritma, dengan keluarannya yang akan menghasilkan total jarak, rute, dan waktu
eksekusi berdasarkan algoritma yang dipilih.
Mulai
Selesai
Flowchart ini untuk menggambarkan proses pencarian jarak terdekat antar lokasi di objek
wisata Kabupaten Serdang Bedagai dengan menggunakan algoritma Dijkstra yang dapat
dapat dilihat pada Gambar 3.9.
Flowchart ini untuk menggambarkan proses pencarian jarak terdekat antar lokasi di objek
wisata Kabupaten Serdang Bedagai dengan menggunakan algoritma Steepest Ascent Hill
Climbing yang dapat dapat dilihat pada Gambar 3.10.
3.2.5. Mock-up
Mock-up adalah rancang sistem dalam bentuk gambaran / preview yang digunakan untuk
tampilan desain awal. Terdapat empat halaman mock-up yaitu halaman awal, halaman
rute terpendek, halaman bantuan, dan halaman tentang sistem.
Halaman awal adalah halaman yang akan tampil pertama kali saat sistem dijalankan. Pada
Halaman ini terdapat judul dari sistem, nama dan NIM, logo universitas, dan sebuah
button untuk masuk ke dalam sistem sebagaimana dapat dilihat pada Gambar 3.11 dan
keterangan gambar halaman awal pada Tabel 3.1.
Halaman Rute Terpendek adalah halaman yang akan tampil setelah pengguna mengklik
button masuk pada halaman awal. Pada halaman ini pengguna dapat memilih algoritma
yang akan digunakan untuk mencari jarak terpendek antar lokasi objek wisata di
kabupaten Serdang Bedagai. Pengguna juga dapat melihat hasil total jarak, rute dan
waktu eksekusi dari kedua algoritma tersebut serta melihat graf. Perancangan halaman
ini dapat dilihat pada Gambar 3.12 dan keterangan gambar halaman rute terpendek pada
Tabel 3.2.
Halaman Bantuan adalah halaman yang akan tampil saat pengguna memilih menu
bantuan pada menu bar. Pada halaman ini terdapat petunjuk penggunaan dari sistem
untuk pengguna. Perancangan halaman ini dapat dilihat pada Gambar 3.13 dan
keterangan gambar halaman bantuan terdapat pada Tabel 3.3
Halaman Tentang Sistem adalah halaman yang memberikan informasi mengenai sistem
dan penulis. Perancangan halaman ini dapat dilihat pada Gambar 3.14 dan keterangan
gambar halaman tentang sistem dapat dilihat pada Tabel 3.4.
4.1. Impelementasi
Impelementasi sistem yaitu tahap lanjutan dari tahap analisis dan perancangan sistem.
Dalam tugas akhir ini, sistem dibangun dengan menggunakan C# sebagai bahasa
pemrograman dan SharpDevelop sebagai perangkat bantu untuk membuat sistem. Sistem
ini terdapat 4 (empat) halaman, yaitu : halaman awal sebagai antarmuka sebelum
pengguna masuk ke sistem, halaman rute terpendek untuk mencoba proses dari masing –
masing algoritma, halaman bantuan untuk petunjuk penggunaan, dan halaman tentang
sistem yang berisi info tentang sistem dan perancang.
Pada Gambar 4.1 terdapat sebuah button dengan nama Masuk yang diberikan
aksi. Button masuk akan dilanjutkan ke dalam halaman rute terpendek, halaman bantuan
dan halaman tentang sistem.
Pada Gambar 4.4 diberikan sebuah informasi berupa petunjuk penggunaan sistem
sehingga pengguna dapat dengan mudah menggunakan sistem.
Halaman tentang sistem adalah halaman yang akan tampil saat pengguna memilih menu
tentang sistem pada menu bar. Tampilan halaman ini ditunjukkan pada Gambar 4.5.
Pada Gambar 4.5 diberikan sebuah informasi berupa tentang sistem tersebut dan sedikit
data diri dari perancang sistem.
4.2. Pengujian
Proses pengujian dapat dilakukan dengan cara menentukan lokasi objek wisata asal dan
lokasi objek wisata tujuan pada combo box yang sudah menyediakan sebanyak 20 titik
lokasi objek wisata di Kabupaten Serdang Bedagai. Selanjutnya tentukan algoritma
pada combo box algoritma yang menyediakan dua algoritma pilihan yaitu algoritma
Dijkstra dan algoritma Steepest Ascent Hill Climbing. Misalnya, tentukan “Pantai
Romance Bay” sebagai lokasi objek wisata asal, “Ancol Arung Jeram ” sebagai lokasi
objek wisata tujuan dan Dijkstra sebagai algoritma yang akan digunakan, silahkan
menekan button proses untuk melihat hasil rute terpendek, total jarak dan waktu proses.
Pemisalan ini dapat dilihat pada Gambar 4.6.
Misalnya, tentukan sebagai sebagai lokasi objek wisata tujuan dan Dijkstra
sebagai algoritma yang akan digunakan, silahkan menekan button proses untuk melihat
hasil rute terpendek. Pemisalan ini dapat dilihat pada Gambar 4.6.
Tentukan rute terpendek dari graf lokasi objek wisata di Kabupeten Serdang Bedagai
yang ditunjukkan pada Gambar 4.8. Dimana lokasi objek wisata asal adalah Romance
Bay dan lokasi objek wisata tujuan adalah Ancol Arung Jeram. Maka titik asal = node
A (Romance Bay) dan titik tujuan = node O (Ancol Arung Jeram). Untuk kode titik /
node lokasi dapat dilihat pada Tabel 4.1.
12 CNOPQRST ADBIEFGKHLM M 58.1 , B 39.4 , J ∞,M 39.4 , J ∞,M ∞,M ∞,M ∞,M
ADBIEFGKHLM
13 COPQRST N 58.1 , B 81.9 , N 39.4 , J 77 , N ∞,N 46.8 , N ∞,N
N
ADBIEFGKHLM
14 COQRST P 58.1 , B 81.9 , N 77 , N 43.3 , P 46.8 , N ∞,P
NP
ADBIEFGKHLM
15 COQST R 58.1 , B 81.9 , N 77 , N 46.8 , N 56.2 , R
NPR
ADBIEFGKHLM
16 COQT S 58.1 , B 81.9 , N 77 , N 54 , S
NPRS
ADBIEFGKHLM
17 COQ T 58.1 , B 81.9 , N 77 , N
NPRST
ADBIEFGKHLM
18 OQ C 81.9 , N 77 , N
NPRST C
ADBIEFGKHLM
19 O Q 81.9 , N
NPRST CQ
ADBIEFGKHLM
20 - O
NPRST CQO
45
Berdasarkan hasil perhitungan yang tertera pada Tabel 4.2, maka hasil rute
terpendek dari Pantai Romance Bay ke Ancol Arung Jeram adalah A → B → E → J →
N → O (Pantai Romance Bay → Mesjid Kerajaan Serdang Sultan Sulaimaniyah →
Replika Istana Sultan Serdang → Dodol Deli Pasar Bengkel → Roti Kacang Rajawali
→ Ancol Arung Jeram) dengan total jarak 81.9 km. Sehingga hasil pengujian proses
algoritma Dijkstra dengan sistem sesuai dengan proses perhitungan manual algoritma
Dijkstra (lihat Gambar 4.7 dan Tabel 4.2).
Tahap 1 :
Pengujian sistem yang akan dicari yaitu rute terdekat dengan hitungan manual dari node
A (Pantai Romance Bay) menuju node O (Ancol Arung Jeram) pada Gambar 4.8.
Tahap 2 :
.........................................(4.1)
Berikut adalah hasil perhitungan untuk mendapatkan nilai heuristik h(n) yang dapat
dilihat pada Tabel 4.3.
Node Node
Latitude (x) Longitude (y) h(n)
asal tujuan
A 3,675415 98,943531 O 0,488840567
B 3,567564 98,960986 O 0,379996586
C 3,292573 98,939636 O 0,150318731
D 3,651674 98,988806 O 0,456758646
E 3,567006 98,983848 O 0,374250588
F 3,552801 98,995496 O 0,358116743
G 3,516492 98,996089 O 0,322317302
H 3,487526 98,991246 O 0,295010005
I 3,632579 99,017264 O 0,434292577
J 3,564102 99,007488 O 0,367400554
K 3,59541 99,086437 O 0,396190526
L 3,591509 99,091371 O 0,392684965
M 3,569945 99,120795 O 0,374975327
N 3,485763 99,134187 O 0,295466011
O 3,200224 99,058242 O 0
P 3,563003 99,132173 O 0,370235595
Q 3,231328 99,135082 O 0,082896589
R 3,556551 99,160505 O 0,370711009
S 3,496685 99,191923 O 0,325207217
T 3,509186 99,23543 O 0,356164435
Tahap 3 :
Mulai dari node A. Bangkitkan semua successor dari node A yaitu node B, D, I.
Berdasarkan perhitungan yang ditunjukkan pada Tabel 4.3 diketahui bahwa nilai
heuristik masing – masing node adalah :
B = 0,379996586.
D = 0,456758646.
I = 0,434292577.
Lakukan pemilihan node yang bernilai terkecil yaitu node B. Maka f(B) = 0,379996586
menjadi current node baru (lihat Gambar 4.10).
Tahap 4 :
Mulai dari current node = B. Bangkitkan semua successor dari node B yaitu node C,
E, H, dan D. Berdasarkan perhitungan yang ditunjukkan pada Tabel 4.3 diketahui
bahwa nilai heuristik masing – masing node adalah :
C = 0,150318731.
D = 0,456758646
E = 0,374250588.
H = 0,295010005.
Lakukan pemilihan node yang bernilai terkecil yaitu node C. Maka f(C) = 0,150318731
menjadi current node baru (lihat Gambar 4.11).
Tahap 5 :
Mulai dari current node = C. Bangkitkan semua successor dari node C yaitu node H,
N, O, Q, S. Berdasarkan perhitungan yang ditunjukkan pada Tabel 4.3 diketahui bahwa
nilai heuristik masing – masing node adalah :
H = 0,295010005.
N = 0,295466011.
O = 0.
Q = 0,082896589.
S = 0,325207217.
Lakukan pemilihan node yang bernilai terkecil yaitu node O = 0 dan node O merupakan
tujuan. Maka hasil ditemukan dan proses pencarian berhenti (lihat Gambar 4.12).
4.3. Kompleksitas
Berdasarkan hasil dari kompleksitas yang diperoleh dari Tabel 4.4 dan Tabel 4.5, dapat
diketahui bahwa algoritma Dijkstra yang kompleksitasnya θ(n2) membutuhkan waktu
lebih lama dalam memproses jika dibandingkan dengan algoritma Steepest Ascent Hill
Climbing yang kompleksitasnya θ(n). Namun, yang harus diketahui bahwa tidak selalu
hasil perhitungan kompleksitas sesuai dengan perhitungan pada saat
pengimplementasian ke dalam program.
Pada pengujian ini dilakukan pencarian waktu proses dengan algoritma Dijkstra dan
algoritma Steepest Ascent Hill Climbing. Pengujian dilakukan terhadap objek wisata
yang akan dijadikan titik asal ke objek wisata tujuan sebanyak lima kali. Kemudian
dihitung nilai rata-rata waktu proses yang diperoleh.
Berdasarkan hasil pengujian waktu proses algoritma Dijkstra pada Tabel 4.6,
diketahui bahwa rata – rata waktu proses algoritma Dijkstra adalah 0,1113 ms. Hasil
tersebut dapat di ilustrasikan dengan grafik seperti pada Gambar 4.13.
0,1
0,08
0,06
0,04
0,02
0
R→H E→O S→D T→K I→Q
Objek Wisata Asal → Objek Wisata Tujuan
Tabel 4.7 Hasil Pengujian Waktu Proses Algoritma Steepest Ascent Hill Climbing
No Total Jarak Waktu Proses
Rute
Uji (km) (ms)
1 R→H 33 0,0115
2 E→O 66,8 0,011
3 S→D 47,5 0,0129
4 T→K 30,9 0,0101
5 I→Q 66,3 0,0115
Rata- rata 0,0114
Berdasarkan Tabel 4.7 hasil pengujian rata – rata waktu proses algoritma Steepest
Ascent Hill Climbing adalah 0,0114 ms. Hasil tersebut dapat di ilustrasikan dengan
grafik seperti pada Gambar 4.14.
0,01
0,008
0,006
0,004
0,002
0
R→H E→O S→D T→K I→Q
Objek Wisata Asal → Objek Wisata Tujuan
Gambar 4.14 Grafik Waktu Proses Algoritma Steepest Ascent Hill Climbing
Perbandingan total jarak diantara kedua algoritma tersebut dapat dilihat pada
Tabel 4.8. Diketahui bahwa pada pengujian pertama, keempat dan kelima memiliki
total jarak yang sama namun pada pengujian kedua dan ketiga menunjukkan total jarak
yang berbeda antara keduanya (algoritma Steepest Ascent Hill Climbing memiliki total
jarak lebih besar daripada algoritma Dijkstra karena masing – masing algoritma
memilih rute yang berbeda untuk sampai ke tujuan) hal ini di ilustrasikan seperti pada
Gambar 4.15.
50
40
30
20
10
0
R→H E→O S→D T→K I→Q
Dijkstra 33 63,5 42 30,9 66,3
SAHC 33 66,8 47,5 30,9 66,3
Objek Wisata Asal → Objek Wisata Tujuan
Dijkstra SAHC
Perbandingan waktu proses diantara kedua algoritma tersebut dapat dilihat pada
Tabel 4.8. Berdasarkan pengujian pertama hingga kelima diketahui bahwa keduanya
memiliki waktu proses yang berbeda seperti pada Gambar 4.16.
0,1
0,08
0,06
0,04
0
R→H E→O S→D T→K I→Q
Objek Wisata Asal → Objek Wisata Tujuan
Dijkstra SAHC
Berdasarkan Tabel 4.8, diketahui bahwa rata – rata waktu proses algoritma
Dijkstra adalah 0,1113 ms sedangkan Steepest Ascent Hill Climbing adalah 0,0114 ms
seperti pada Gambar 4.17. Sehingga dapat disimpulkan bahwa algoritma Steepest
Ascent Hill Climbing menggunakan waktu lebih sedikit sehingga lebih cepat dalam
memproses jika dibandingkan dengan algoritma Dijkstra meskipun dalam beberapa
kasus menghasilkan rute yang berbeda sehingga berbeda pula total jaraknya.
SAHC 0,0114
Algoritma
Dijkstra 0,1113
Dijkstra SAHC
PENUTUP
5.1. Kesimpulan
Berdasarkan hasil analisis, perancangan dan pengujian terhadap algoritma Dijkstra dan
algoritma Steepest Ascent Hill Climbing dalam menentukan rute terpendek antar lokasi
objek wisata di Kabupaten Serdang Bedagai, maka didapat beberapa kesimpulan
sebagai berikut :
5.2. Saran
DAFTAR PUSTAKA
Barakbah, Ali Ridho., Karlita, Tita. & Ahsan, Ahmad Syauqi. 2013. Logika dan
Algoritma. Surabaya.
Berlianty, I. & Arifin, M. 2010. Teknik – Teknik Optimasi Heuristik. Graha Ilmu :
Yogyakarta.
Cruz, J. C. D., Magwili, G. V., Mundo, J. P. E., Gregorio, G. P. B., Lamoca, M. L.
L. & Villasenor, J. A. 2016. Items-mapping and Route Optimization in a
Grocery Store using Dijkstra’s, Bellman-Ford and Floyd-Warshall
Algorithms. Proceedings of the International Conference IEEE Region 10
Conference (TENCON), pp. 243 – 246.
Harahap, N. F. 2017. Perbandingan Algoritma L-Deque dan Algoritma Greedy
Dalam Menentukan Rute Terpendek Antar Tempat Wisata di Kabupaten
Tapanuli Tengah. Skripsi. Universitas Sumatera Utara.
Iryanto. 2003. Pengantar Teori dan Aplikasi Graph. USU Press : Medan.
Kamus Besar Bahasa Indonesia. 2008. Pusat Bahasa Depertemen Pendidikan
Nasional : Jakarta.
Knuth, D. E. 1997. The Art of Computer Programming. Third Edition Volume
Fundamental of Algorithms. Addison – Wesley : Canada.
Kusumadewi, S. & Purnomo, H. 2005. Penyelesaian Masalah Optimisasi dengan
Teknik – Teknik Heuristik. Graha Ilmu : Yogyakarta.
Laaksonen, A. 2017. Competitive Programmer’s Handbook. Draft.
Lubis, H. S. 2009. Perbandingan Algoritma Greedy dengan Algoritma Dijkstra
untuk Menentukan Lintasan Terpendek. Skripsi. Universitas Sumatera
Utara.
Mediputra, A. 2010. Aplikasi Shortest Path dengan Menggunakan Graf dalam
Kehidupan Sehari – hari. Makalah IF2091. Institut Teknologi Bandung.
Munir, R. 2012. Matematika Diskrit. Revisi Kelima. Informatika : Bandung.
Mutakhiroh, I., Saptono, F., Hasanah, N., Wiryadinata, Romi. 2007. Pemanfaatan
Metode Heuristik dalam Pencarian Jalur Terpendek dengan Algoritma
Whitten, Jeffrey L., Bentley, Lonnie D., Dittman, Kevin C., 2004. Metode Desain
& Analisis Sistem. Edisi 6. New York : McGraw-Hill.
Zemma, L. A., Herfina, & Qur’ania, A. 2015. Penerapan Metode Steepest Ascent
Hill Climbing Pada Model Pencarian Rute Terdekat Fasilitas Pelayanan
Darurat di Kota Bogor. Jurnal. Universitas Pakuan.
LISTING PROGRAM
MainForm.cs
/*
* Created by SharpDevelop.
* User: Es Campur
* Date: 14/09/2017
* Time: 17:21
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
namespace Skripsi_DijkstraAndSAHC
{
/// <summary>
/// Description of MainForm.
/// </summary>
char[] lokasi_wisata = {
'a', // Pantai Romance Bay.
'b', // Mesjid Kerajaan Serdang Sultan Sulaimaniyah.
'c', // Taman Rekreasi Alam Sari.
'd', // Pantai Cermin Theme Park.
'e', // Replika Istana Sultan Serdang.
'f', // Romance Padi.
'g', // Rahmat Zoo & Park.
'h', // Pura Penataran Dharmaraksaka Kampung Bali.
'i', // Pantai Sri Mersing.
'j', // Dodol Deli Pasar Bengkel.
'k', // Pantai Cemara Kembar.
'l', // Eco Tour Mangrove.
'm', // Pantai Sialang Buah.
'n', // Roti Kacang Rajawali.
'o', // Ancol Arung Jeram.
'p', // Pantai Sentang.
'q', // Air Terjun Sampuran Widuri.
'r', // Pantai Bogak Indah.
's', // Mesjid Kerajaan Bedagai ( Mesjid Jami’ Ismailiyah ).
't', // Pantai Bagan Kuala {'',},
};
{'b',42.5}}},
{'d', new Dictionary<char, double> {{'e',13.6}, {'i',6.4}, {'a',9.4}, {'b',11.7}}},
{'e', new Dictionary<char, double> {{'f',2.9}, {'i',12.2}, {'j',2.9}, {'b',2.8}, {'d',13.6}}},
{'f', new Dictionary<char, double> {{'g',4.9}, {'j',2.5}, {'e',2.9}}},
{'g', new Dictionary<char, double> {{'h',3.6}, {'n',24.2}, {'f',4.9}}},
{'h', new Dictionary<char, double> {{'n',21.3}, {'b',12.7}, {'c',31.2}, {'g',3.6}}},
{'i', new Dictionary<char, double> {{'j',10.6}, {'k',12.5}, {'a',12.9}, {'d',6.4}, {'e',12.2}}},
{'j', new Dictionary<char, double> {{'k',13.4}, {'l',12.7}, {'m',17.1}, {'n',18.1}, {'p',18.1},
{'e',2.9}, {'f',2.5}, {'i',10.6}}},
{'k', new Dictionary<char, double> {{'l',4.4}, {'i',12.5}, {'j',13.4}}},
{'l', new Dictionary<char, double> {{'m',7.8}, {'n',17.6}, {'j',12.7}, {'k',4.4}}},
{'m', new Dictionary<char, double> {{'n',13.5}, {'p',1.9}, {'j',17.1}, {'l',7.8}}},
{'n', new Dictionary<char, double> {{'o',42.5}, {'p',14.4}, {'q',37.6}, {'s',7.4}, {'c',36.8},
{'g',24.2}, {'h',21.3}, {'j',18.1}, {'l',17.6}, {'m',13.5}}},
{'o', new Dictionary<char, double> {{'q',19.5}, {'s',47.6}, {'c',24.2}, {'n',42.5}}},
{'p', new Dictionary<char, double> {{'r',3.9}, {'s',12.4}, {'j',18.1}, {'m',1.9}, {'n',14.4}
{'q', new Dictionary<char, double> {{'s',42.7}, {'c',47.9}, {'n',37.6}, {'o',19.5}}},
{'r', new Dictionary<char, double> {{'s',10.1}, {'t',12.9}, {'p',3.9}}},
{'s', new Dictionary<char, double> {{'t',7.2}, {'c',41.2}, {'n',7.4}, {'o',47.6}, {'p',12.4},
{'q',42.7}, {'r',10.1}}},
{'t', new Dictionary<char, double> {{'r',12.9}, {'s',7.2}}},
};
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
cboxAsal.SelectedIndex = 0;
cboxTujuan.SelectedIndex = 0;
cboxAlgoritma.SelectedIndex = 0;
watch.Restart();
watch.Stop();
}
found = true;
}
if (jarak[smallest] == Inf){
continue;
}
watch.Restart();
char curr_node = asal, prev_node = '0';
double path_cost = 0;
path.Add(curr_node);
bool found = false;
while(true) {
if (curr_node == tujuan) {
found = true;
break;
} else {
char temp = getSmallestHeuristic(graph[curr_node], nilai_heuristik, prev_node);
if (temp == '@') break;
path_cost += graph[curr_node][temp];
prev_node = curr_node;
curr_node = temp;
path.Add(curr_node);
}
}
watch.Stop();
tbJarak.Text = path_cost.ToString();
tbWaktu.Text = watch.Elapsed.TotalMilliseconds.ToString();
if (found) return path;
else return null;
}
}
}
CURRICULUM VITAE
DATA DIRI
Nama : Resti Kurniawati
Jenis Kelamin : Perempuan
Tempat, Tanggal Lahir : Binjai, 19 Januari 1996
Kewarganegaraan : Indonesia
Agama : Islam
Alamat : Desa Melati II
Dsn.Belimbing, Perbaungan
Telepon : 0815 – 3343 1663
E-mail : resti.watt@gmail.com
PENDIDIKAN
2001 - 2007 SD Negeri 106837 Melati II
2007 - 2010 MTs. Al – Jam’iyatul Washliyah 16 Perbaungan
2010 - 2013 SMA Negeri 1 Perbaungan
2013 - sekarang Program Studi Ilmu Komputer
Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara
KEMAMPUAN KOMPUTER
Bahasa : Bahasa Indonesia, Bahasa Inggris (medium).
Pemrograman : HTML , C#.
Basis Data : MySQL.
Perangkat Lunak : Microsoft. Office, Libre Office, Adobe
Photoshop.
PENGALAMAN KERJA
2016 : Praktik Kerja Lapangan di Dinas Komunikasi dan
Informatika Kota Medan Bidang Teknologi Informasi
PENGALAMAN PELATIHAN
2013 : Training Islam, Ceria, dan Kreatif (TRICK IX)
: UKMI Al-Khuwarizmi Fasilkom-TI USU
2014 : Pembinaan Karakter Mahasiswa USU oleh Unit Pelayanan
Konsultasi dan Bimbingan Mahasiswa
2015 : Training For Mid-Level Cadre (Transformer)
UKMI Al-Khuwarizmi Fasilkom-TI USU
SEMINAR
2013 : Seminar Gelora Literasi Teknologi Informasi &
Komunikasi : (SI GELITIK).
2014 : Seminar International Youth Convention.
2014 : Seminar Nasional Optimalisasi Peran IT untuk
Pendidikan
2014 : Seminar Nasional Nasional Literasi Informasi
(SENARAI).
2016 : Seminar Indonesia Next