Anda di halaman 1dari 89

PERBANDINGAN ALGORITMA DIJKSTRA DAN ALGORITMA STEEPEST

ASCENT HILL CLIMBING DALAM MENENTUKAN RUTE TERPENDEK


( STUDI KASUS : ANTAR LOKASI OBJEK WISATA DI
KABUPATEN SERDANG BEDAGAI )

SKRIPSI

RESTI KURNIAWATI
131401042

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


PERBANDINGAN ALGORITMA DIJKSTRA DAN ALGORITMA STEEPEST
ASCENT HILL CLIMBING DALAM MENENTUKAN RUTE TERPENDEK
( STUDI KASUS : ANTAR LOKASI OBJEK WISATA DI
KABUPATEN SERDANG BEDAGAI )

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah


Sarjana Ilmu Komputer

RESTI KURNIAWATI
131401042

PROGRAM STUDI S-1 ILMU KOMPUTER


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


Universitas Sumatera Utara
iv

PERNYATAAN

PERBANDINGAN ALGORITMA DIJKSTRA DAN ALGORITMA STEEPEST


ASCENT HILL CLIMBING DALAM MENENTUKAN
RUTE TEPENDEK ( STUDI KASUS : ANTAR LOKASI
OBJEK WISATA DI KABUPATEN
SERDANG BEDAGAI )

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, Mei 2018

Resti Kurniawati
131401042

Universitas Sumatera Utara


v

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.

Ucapan terima kasih penulis sampaikan kepada :

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.

Universitas Sumatera Utara


vi

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.

Medan, Juli 2018

Penulis

Universitas Sumatera Utara


vii

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

Universitas Sumatera Utara


viii

COMPARISON OF DIJKSTRA ALGORITHM AND STEEPEST ASCENT


HILL CLIMBING ALGORITHM IN DETERMINING SHORTEST
PATH (CASE STUDY: BEETWEN LOCATION OF TOURISM
ATTRACTIONS IN SERDANG BEDAGAI REGENCY)

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.

Keywords: Tourist attractions, Shortest Path, Graph, Dijkstra Algorithm, Steepest


Ascent Hill Climbing Algorithm.

Universitas Sumatera Utara


ix

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

Bab 2 Landasan Teori


2.1 Konsep Dasar Graf 7
2.1.1 Sejarah Graf 7
2.1.2 Defenisi Graf 9
2.1.3 Jenis – Jenis Graf 9
2.1.4 Graf Berbobot 11
2.2 Shortest Path 12
2.2.1 Metode Konvensional 13
2.2.2 Metode Heuristik 13
2.3 Algoritma 13
2.4 Algoritma Dijkstra 14
2.5 Algoritma Steepest Ascent Hill Climbing 18
2.6 Kompleksitas Waktu 20
2.7 Penelitian yang Relevan 20

Bab 3 Analisis dan Perancangan Sistem


3.1 Analisis Sistem 22
3.1.1 Analisis Masalah 22

Universitas Sumatera Utara


x

3.1.2 Analisis Kebutuhan Sistem 24


3.1.2.1 Kebutuhan Fungsional 24
3.1.2.2 Kebutuhan Non-Fungsional 24
3.1.3 Analisis Proses 25
3.1.4 Pseudocode 26
3.1.4.1 Pseudocode Algoritma Dijkstra 27
3.1.4.2 Pseudocode Algoritma Steepest Ascent Hill Climbing 28
3.2 Perancangan Sistem 28
3.2.1 Use Case Diagram 29
3.2.2 Activity Diagram 30
3.2.3 Sequence Diagram 31
3.2.4 Flowchart 31
3.2.4.1 Flowchart Sistem 32
3.2.4.2 Flowchart Algoritma Dijkstra 33
3.2.4.3 Flowchart Algoritma Steepest Ascent Hill Climbing 34
3.2.5 Mock-up 34
3.2.5.1 Halaman Awal 35
3.2.5.2 Halaman Rute Terpendek 35
3.2.5.3 Halaman Bantuan 37
3.2.5.4 Halaman Tentang Sistem 38

Bab 4 Implementasi dan Pengujian


4.1 Implementasi 39
4.1.1 Halaman Awal 39
4.1.2 Halaman Rute Terpendek 40
4.1.3 Halaman Bantuan 41
4.1.4 Halaman Tentang Sistem 42
4.2 Pengujian 42
4.2.1 Pengujian Proses Implementasi 43
4.2.2 Pengujian Proses Algoritma Dijkstra 43
4.2.2.1 Perhitungan Manual Algortima Dijkstra 44
4.2.3 Pengujian Proses Algoritma Steepest Ascent Hill Climbing 47
4.2.3.1 Perhitungan Manual Algoritma SAHC 48
4.3 Kompleksitas 52
4.3.1 Kompleksitas Algoritma Dijkstra 52
4.3.2 Kompleksitas Algoritma Steepest Ascent Hill Climbing 53
4.4 Pengujian Waktu Proses 54
4.4.1 Algoritma Dijkstra 54
4.4.2 Algoritma Steepest Ascent Hill Climbing 56
4.4.3 Perbandingan Total Jarak dan Waktu Proses 57

Bab 5 Kesimpulan dan Saran


5.1 Kesimpulan 59
5.2. Saran 59

Daftar Pustaka 60
Lampiran

Universitas Sumatera Utara


xi

DAFTAR TABEL

Halaman

Tabel 2.1 Iterasi 0 dan 1 16


Tabel 2.2 Iterasi 2 16
Tabel 2.3 Iterasi 3 17
Tabel 2.4 Iterasi 4 dan 5 17
Tabel 3.1 Keterangan Gambar Halaman Awal 35
Tabel 3.2 Keterangan Gambar Halaman Rute Terpendek 36
Tabel 3.3 Keterangan Gambar Halaman Bantuan 37
Tabel 3.4 Keterangan Gambar Halaman Tentang Sistem 38
Tabel 4.1 Daftar Lokasi Objek Wisata 44
Tabel 4.2 Hasil Perhitungan Manual Algoritma Dijkstra 46
Tabel 4.3 Nilai Heuristik h(n) 48
Tabel 4.4 Kompleksitas Algoritma Dijkstra 52
Tabel 4.5 Kompleksitas Algoritma Steepest Ascent Hill Climbing 53
Tabel 4.6 Hasil Pengujian Waktu Proses Algoritma Dijkstra 54
Tabel 4.7 Hasil Pengujian Waktu Proses Algoritma Steepest Ascent Hill Climbing 56
Tabel 4.8 Hasil Perbandingan Algoritma Dijkstra dengan Algoritma SAHC 57

Universitas Sumatera Utara


DAFTAR GAMBAR

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

Universitas Sumatera Utara


Gambar 4.14 Grafik Waktu Proses Algoritma Steepest Ascent Hill Climbing 56
Gambar 4.15 Grafik Perbandingan Total Jarak 57
Gambar 4.16 Grafik Perbandingan Waktu Proses 58
Gambar 4.17 Grafik Perbandingan Waktu Proses Rata – Rata 58

Universitas Sumatera Utara


DAFTAR LAMPIRAN

Halaman

Lampiran 1 Listing Program A-1


Lampiran 2 Curriculum Vitae B-1

Universitas Sumatera Utara


BAB 1

PENDAHULUAN

1.1 Latar Belakang


Menurut KBBI (Kamus Besar Bahasa Indonesia) wisata adalah bepergian bersama-sama
(untuk memperluas pengetahuan, bersenang-senang, dsb); bertamasya; piknik (Pusat
Bahasa Departemen Pendidikan Nasional, 2008). Dan merujuk Undang-Undang RI
Nomor 10 Tahun 2009 tentang Kepariwisataan pasal 1 ayat 1 menyatakan wisata adalah
kegiatan perjalanan yang dilakukan oleh seseorang atau sekelompok orang dengan
mengunjungi tempat tertentu untuk tujuan rekreasi, pengembangan pribadi, atau
mempelajari keunikan daya tarik wisata yang dikunjungi dalam jangka waktu sementara.
Serdang Bedagai merupakan kabupaten pemekaran dari Kabupaten Deli Serdang
yang beribukta Sei Rampah sesuai dengan UU RI Nomor 36 Tahun 2003 pada tanggal
18 Desember 2003. Potensi utama dari Kabupaten Serdang Bedagai dalam bidang
Pariwisata adalah letak geografisnya serta termasuk jalur lintas timur Sumatera yang
membuatnya mudah di jangkau. Kabupaten Serdang Bedagai menawarkan pesona
berbagai objek wisata yang menakjubkan dan terus melakukan pengembangan dalam
pariwisata baik berupa objek wisata bahari (seperti Pantai Romance Bay dan Mangrove
Eco Tour), wisata alam (seperti Air Terjun Sampuran Widuri dan Ancol Arung Jeram),
wisata budaya (seperti Pura Penataran Dharmaraksaka Kampung Bali), wisata heritage
(seperti Mesjid Kerajaan Serdang, Mesjid Kerajaan Bedagai, Replika Istana Sultan
Serdang), dan wisata kuliner (seperti Dodol Pasar Bengkel). (Sumber :
http://indonesia.serdangbedagaikab.go.id/content/2007/5/potensi+pariwisata.html).

Universitas Sumatera Utara


2

Kabupaten Serdang Bedagai memiliki luas wilayah 1.900,22 km2. Luasnya


suatu wilayah dapat menyebabkan wisatawan kebingungan atau kesulitan dalam
menentukan rute terpendek dari satu lokasi objek wisata ke lokasi objek wisata lainnya.
Para wisatawan cenderung untuk memilih rute terpendek. Posisi awal wisatawan
ditentukan oleh lokasi wisatawan berada dan diasumsikan bahwa wisatawan tersebut
telah berada di salah satu lokasi objek wisata.
Shortest path adalah pencarian rute atau jalur yang terpendek antara vertex /
node yang ada pada graf, dengan menghasilkan bobot yang terkecil. Pencarian rute atau
jalur yang terpendek ini telah diterapkan dalam berbagai bidang untuk mengoptimasi
kinerja suatu sistem, baik untuk meminimalkan biayanya atau mempercepat prosesnya
(Purwananto et al. 2005). 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 (Harahap, 2017). Dalam
menentukan rute terpendek (shortest path) antar lokasi objek wisata tersebut penulis
menggunakan algoritma Dijkstra dan algoritma Steepest Ascent Hill Climbing.
Algoritma adalah runtunan logis yang menjelaskan tahapan – tahapan
penyelesaian masalah yang dirangkum secara sistematis untuk menyelesaikan suatu
masalah (Munir, 2012). Algoritma Dijkstra dipilih karena dapat menyelesaikan
pencarian jalur terpendek dari satu simpul ke semua simpul yang ada pada suatu graf
berarah dengan bobot dan bobot tersebut tidak bernilai negatif . Sedangkan algoritma
Steepest Ascent Hill Climbing adalah hasil dari variasi dalam pendakian bukit algoritma
Simple Hill Climbing. Gerakan pencarian akan dicari berdasarkan nilai heuristik terbaik
yang dimiliki (Kusumadewi et al. 2005). Secara harafiah steepest bermakna paling
tinggi sedangkan ascent bermakna kenaikan (Zemma et al. 2015). Berdasarkan hasil
penelitian Potdar, G.P dan Thool, R.C pada tahun 2014 deketahui bahwa algoritma
tersebut dapat ditemukan solusinya.

1.2 Rumusan Masalah


Berdasarkan latar belakang diatas, maka rumusan masalah yang akan diteliti adalah :

1. Bagaimana cara kerja pencarian rute terpendek menggunakan algoritma Dijkstra


dan algoritma Steepest Ascent Hill Climbing.

Universitas Sumatera Utara


3

2. Bagaimana perbandingan algoritma Dijkstra dan algoritma Steepest Ascent Hill


Climbing dalam menentukan rute terpendek (shortest path) dari sisi waktu proses
dan total jarak yang dihasilkan.

1.3 Batasan Masalah


Dalam hal mengimplementasikan algoritma Dijkstra dan algoritma Steepest Ascent Hill
Climbing terdapat beberapa batasan masalah yaitu :

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

Universitas Sumatera Utara


4

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.4 Tujuan Penelitian


Adapun tujuan dari penelitian ini adalah untuk mengimplementasikan dan
membandingkan algoritma Dijkstra dan algoritma Steepest Ascent Hill Climbing dalam
menentukan rute terpendek antar lokasi objek wisata di Kabupaten Serdang Bedagai.

1.5 Manfaat Penelitian


Adapun manfaat dari penelitian ini adalah diharapkan dapat memudahkan wisatawan
dalam menentukan rute terpendek antar lokasi objek wisata di Kabupaten Serdang
Bedagai dan mengetahui algoritma yang lebih efektif antara algoritma Dijkstra dan
algoritma Steepest Ascent Hill Climbing untuk pencarian tersebut.

1.6 Metode Penelitian

Metode penelitian yang dilakukan dalam penelitian ini adalah :

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.

Universitas Sumatera Utara


5

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

1.7 Sistematika Penulisan


Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, yaitu :
BAB 1 PENDAHULUAN
Bab ini menjelaskan perihal latar belakang penelitian judul skripsi
“Perbandingan Algoritma Dijkstra dan Algoritma Steepest Ascent Hill
Climbing Dalam Menentukan Rute Terpendek (Studi Kasus : Antar
Lokasi Objek Wisata di Kabupaten Serdang Bedagai)”. Rumusan
masalah, batasan masalah, tujuan penelitian, manfaat penelitian,
metode penelitian, dan sistematika penulisan.

Universitas Sumatera Utara


6

BAB 2 LANDASAN TEORI


Bab ini berisi tentang penjelasan mengenai teori graf, shortest path,
algoritma Dijkstra dan algoritma Steepest Ascent Hill Climbing dalam
dan sebagainya.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM


Bab ini menjelaskan uraian analisis terhadap masalah penelitian dan
perancangan terhadap sistem yang akan dibangun seperti terdiri dari
flowchart, GUI (Graphic User Interface) dan UML (Unified Modeling
Language).

BAB 4 IMPLEMENTASI DAN PENGUJIAN


Bab ini berisi implementasi algoritma Dijkstra dan algoritma Steepest
Ascent Hill Climbing dalam menentukan rute terpendek (studi kasus :
antar lokasi objek wisata di Kabupaten Serdang Bedagai). Selanjutnya
dilakukan pengujian terhadap sistem tersebut dan pembahasan hasil
pengujian beserta analisisnya.

BAB 5 KESIMPULAN DAN SARAN


Bab ini memuat kesimpulan dari keseluruhan uraian dari bab-bab
sebelumnya dan saran berdasarkan hasil pengujian yang diperoleh.
Diharapkan hal tersebut dapat bermanfaat dalam pengembangan
selanjutnya.

Universitas Sumatera Utara


BAB 2

LANDASAN TEORI

2.1 Konsep Dasar Graf


Graf digunakan untuk menggambarkan objek – objek diskrit dengan cara menyatakan
objek tersebut sebagai noktah, bulatan atau titik dan hubungan antara objek – objek
tersebut dinyatakan dengan garis (Munir, 2012). Representasi graf bertujuan agar
penggambaran terhadap objek-objek dapat lebih mudah dipahami (Siang, 2009). Graf
dapat diimplementasikan dalam banyak bidang (kehidupan sehari – hari) seperti
pengaturan lampu lalu lintas, travelling salesmen problem, pencarian rute terpendek
dan lain-lain (Mediputra, 2010). Bahkan peta adalah sebuah graf, dimana kota adalah
objek yang dinyatakan dengan bulatan dan jalan dinyatakan dengan garis (Munir, 2012).

2.1.1 Sejarah Graf


Menurut catatan sejarah, pada tahun 1736 adalah pertama kali penggunaan graf yang
diterapkan pada penyelesaian masalah jembatan Königsberg. Kota Königsberg berada
di sebelah timur negara bagian Prussia, Jerman dan sekarang bernama Kaliningrad,
dimana di kota tersebut terdapat sungai Pregal yang mengalir mengitari pulau Kneiphof
lalu bercabang menjadi dua buah anak sungai (Iryanto, 2003). Ada tujuh jembatan yang
menghubungkan daratan yang dipisahkan oleh sungai tersebut sebagaimana
direpresentasikan pada Gambar 2.1.

Universitas Sumatera Utara


8

Gambar 2.1 Representasi Jembatan Königsberg (Sumber : Rossen, 2003)

Masalah jembatan Königsberg adalah apakah mungkin melalui ketujuh buah


jembatan tersebut masing – masing tepat satu kali, dan kembali ke tempat semula. Pada
tahun 1736, seorang matematikawan asal Swiss bernama Leonhard Euler adalah orang
pertama yang membuktikan bahwa perjalanan seperti itu tidak mungkin dapat dilakukan
(Iryanto, 2003). Pembuktian tersebut dengan cara membuat model masalah ini kedalam
graf. Daratan dinyatakan sebagai titk yang disebut simpul (vertex) dan jembatan
dinyatakan sebagai garis yang disebut sisi (edge). Setiap titik diberi label A, B, C, dan
D (Munir, 2012). Graf yang dimodelkan oleh Euler diperlihatkan pada Gambar 2.2.

Gambar 2.2 Graf Representasi Jembatan Königsberg ( Sumber : Munir, 2012)

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.

Universitas Sumatera Utara


9

2.1.2 Defenisi Graf


Suatu graf sederhana G adalah suatu pasangan terurut ( V, E ), dimana V disebut vertex
yaitu suatu himpunan berhingga yang tidak kosong dan elemen – elemennya dan E
disebut edge yaitu suatu himpunan garis yang menghubungkan dua elemen subset dari
V (Iryanto, 2003). Secara matematis, Graf G didefinisikan sebagai pasangan himpunan
( V, E ) dapat ditulis dengan notasi G = ( V, E ) dimana dalam hal ini V adalah himpunan
tidak – kosong dari simpul – simpul ( vertices atau node ) dan E adalah himpunan sisi (
edge atau arc ) untuk menghubungkan sepasang simpul (Munir, 2012). Maka V tidak
boleh kosong, sedangkan E boleh kosong.

2.1.3 Jenis – Jenis Graf


Graf dapat dikelompokkan menjadi beberapa jenis hal ini berdasarkan ada tidaknya sisi
ganda, jumlah simpul, atau orientasi arah pada sisi (Munir, 2012). Berdasarkan ada
tidaknya sisi ganda atau loop pada suatu graf, maka secara umum graf dapat
digolongkan menjadi :
 Graf sederhana (simple graph).
Graf sederhana adalah graf yang tidak mengandung sisi ganda maupun gelang
(loop)(Munir, 2012). Pada Gambar 2.3 adalah contoh graf sederhana dengan
himpunan simpul V dan himpunan sisi E adalah :
V = { 1, 2, 3, 4, 5, 6, 7 }
E = { (1,4), (2,4), (3,4), (4,5), (4,7), (5,6), (6,7) }

Gambar 2.3 Graf Sederhana

Universitas Sumatera Utara


10

 Graf tak-sederhana (unsimple-graph)


Graf tak-sederhana adalah graf yang mengandung sisi ganda atau loop. Ada dua
macam graf tak-sederhana yaitu graf ganda ( multigraph ) dan graf semu
( pseudograph ) (Munir, 2012). Graf ganda adalah graf yang mengandung sisi
ganda seperti pada Gambar 2.4 dengan himpunan simpul V dan himpunan sisi E
adalah :
V = { 1, 2, 3, 4, 5, 6, 7 }
E = { (1,2), (2,4), (2,4), (2,3), (3,7), (3,5), (1,5), (1,7), (5,6), (6,7) }
= { e1, e2, e3, e4, e5, e6, e7, e8, e9, e10 }

Gambar 2.4 Graf Ganda

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 }

Gambar 2.5 Graf semu

Universitas Sumatera Utara


11

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.

Gambar 2.6 Graf tidak berarah (Sumber : Munir, 2012)

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.

Gambar 2.7 Graf berarah (Sumber : Munir, 2012)

2.1.4 Graf Berbobot (Weighted Graph)


Graf berbobot adalah graf yang setiap sisinya memiliki harga (bobot). Bobot pada tiap
sisi bergantung pada masalah yang dimodelkan sehingga nilainya dapat berbeda-beda.
Bobot tersebut dapat menyatakan jarak antara dua buah kota, waktu tempuh pesan
(message) dari sebuah simpul komunikasi ke simpul komunikasi lain (dalam jaringan

Universitas Sumatera Utara


12

komputer), ongkos produksi dan sebagainya (Munir, 2012). Contoh graf berbobot dapat
dilihat ada Gambar 2.8.

Gambar 2.8 Graf berbobot

2.2 Shortest Path

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 ?

Universitas Sumatera Utara


13

2.2.1 Metode Konvensional


Metode konvensional adalah metode yang menggunakan perhitungan matematika
dalam penerapannya (Lubis, 2009). Metode konvensional yaitu berupa algoritma yang
menggunakan perhitungan matematis biasa. Pada metode ini hanya membandingkan
jarak masing – masing node untuk kemudian mencari jarak dengan bobot terpendek
(Mutakhiroh et al. 2007). Beberapa diantaranya adalah algoritma Dijkstra, algoritma
Floyd – Warshall, dan algoritma Bellman – Ford.

2.2.2 Metode Heuristik


Metode heuristik merupakan bagian bidang dari kecerdasan buatan yang digunakan
untuk melakukan pencarian (Mutakhiroh et al. 2007). Asal mula kata heuristik berasal
dari kata kerja bahasa Yunani, yaitu heurisken yang artinya ‘mencari’ atau
‘menemukan’. Proses pencarian pada metode ini dilakukan dengan selektif dan dapat
memberikan panduan untuk proses pencarian berikutnya yang memiliki kemungkinan
sukses paling besar (Berlianty et al. 2010). Beberapa diantaranya adalah algoritma
Genetika, algoritma A*, algoritma Simple Hill Climbing dan algoritma Steepest –
Ascent Hill Climbing.

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

Universitas Sumatera Utara


14

Berikut beberapa defenisi Algoritma berdasarkan beberapa sumber, yaitu :


1. Menurut Kamus Besar Bahasa Indonesia (KBBI), Algoritma adalah urutan logis
pengambilan suatu keputusan dalam memecahkan suatu permasalahan (Pusat
Bahasa Depertemen Pendidikan Nasional, 2008).
2. Algoritma adalah runtunan logis yang menjelaskan tahapan – tahapan
penyelesaian masalah yang dirangkum secara sistematis untuk menyelesaikan
suatu masalah (Munir, 2012).
3. Algoritma adalah ilmu yang mempelajari tentang bagaimana cara menyelesaikan
suatu masalah berdasarkan urutan langkah-langkah terbatas yang disusun secara
sistematis dan menggunakan bahasa yang logis dengan tujuan tertentu (Barakbah
et al. 2013).

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.

2.4 Algoritma Dijkstra


Algoritma Dijkstra yang merupakan salah satu dari banyaknya algoritma shortest path
yang populer. Edsger W. Dijkstra adalah ilmuwan komputer yang merumuskan
algoritma Dijkstra pada tahun 1956 dan mempublikasikannya pada tahun 1959.
Algoritma Dijkstra menyelesaikan masalah pencarian sebuah shortest path dari titik
satu ke titik lainnya dimana graf tersebut harus memiliki bobot yang bernilai positif
(Popa et al. 2016). Sehingga apabila graf tersebut memiliki bobot yang bernilai negatif
maka lintasan tersebut tidak dapat dilintasi dan penyelesaiannya berupa infiniti
(Laaksonen, 2017). Algoritma ini memilih titik terdekat yaitu titik dengan bobot yang

Universitas Sumatera Utara


15

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.

Algoritma Dijkstra adalah sebagai berikut :

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.

Gambar 2.9 Soal Graf 1

Universitas Sumatera Utara


16

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.

Tabel 2.1 Iterasi 0 dan 1


i q s c A B C D E
0 ABCDE - - ∞,- ∞,- ∞,- ∞,- ∞,-
1 BCDE A A 4,A ∞,A 8,A ∞,A

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.

Tabel 2.2 Iterasi 2


i q s c A B C D E
0 ABCDE - - ∞,- ∞,- ∞,- ∞,- ∞,-
1 BCDE A A 4,A ∞,A 8,A ∞,A
2 CDE AB B 7,B 8,A ∞,A

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.

Universitas Sumatera Utara


17

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.

Tabel 2.3 Iterasi 3


i q s c A B C D E
0 ABCDE - - ∞,- ∞,- ∞,- ∞,- ∞,-
1 BCDE A A 4,A ∞,A 8,A ∞,A
2 CDE AB B 7,B 8,A ∞,A
3 DE ABC C 8,A ∞,A

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.

Tabel 2.4 Iterasi 4 dan 5


i q S c A B C D E
0 ABCDE - - ∞,- ∞,- ∞,- ∞,- ∞,-
1 BCDE A A 4,A ∞,A 8,A ∞,A
2 CDE AB B 7,B 8,A ∞,A
3 DE ABC C 8,A ∞,A
4 E ABCD D 15,D
5 - ABCDE E 15,D

Gambar 2.10 Lintasan Terpilih

Universitas Sumatera Utara


18

2.5 Algoritma Steepest Ascent Hill Climbing


Steepest Ascent Hill Climbing memiliki kemiripan dengan algoritma Simple Hill
Climbing, namun gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan
pencarian selanjutnya ditentukan berdasarkan nilai heuristik terbaik. Dalam hal ini
urutan penggunaan operator tidak menentukan penemuan solusi (Kusumadewi et al.
2005). Bedanya adalah Simple Hill Climbing menentukan titik selanjutnya dengan
membandingkan titik saat ini dengan satu successor (titik persimpangan) dan successor
pertama yang lebih baik akan dipilih menjadi titik selanjutnya. Sedangkan Steepest
Ascent Hill Climbing, akan membandingkan titik selanjutnya dengan semua successor
yang ada di dekatnya sehingga dalam Steepest Ascent Hill Climbing titik selanjutnya
adalah successor yang paling baik dan mendekati tujuan (Zemma et al. 2015).

Algoritma Steepest Ascent Hill Climbing adalah sebagai berikut :

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.

Universitas Sumatera Utara


19

3. Ridge, yaitu local optimum yang lebih disebabkan karena ketidakmampuan


menggunakan 2 operator sekaligus.

Gambar 2.11 Soal Graf 2

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

Gambar 2.12 Hasil Pencarian (Kusumadewi et al. 2005)

Universitas Sumatera Utara


20

2.6 Kompleksitas Waktu

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

Terminologi yang diperlukan dalam membahas kompleksitas waktu dan


kompleksitas ruang suatu algoritma adalah :

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

2.7 Penelitian yang Relevan

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.

Universitas Sumatera Utara


21

2. Potdar, G. P. & Thool, R. C ( 2014 ) dalam judul comparison of various heuristic


search techniques for finding shortest path. Penelitian menunjukkan perbandingan
algoritma Simple Hill Climbing, algoritma Steepest Ascent Hill Climbing, dan
algortima A* dengan hasil bahwa keseluruhan algoritma tersebut dapat di
implementasikan dalam pencarian lintasan terpendek hanya saja untuk algoritma
dengan metode heuristik tidak ada kepastian untuk menemukan solusi akhir yang
optimal.
3. Sihombing, J. (2014) dalam judul perancangan aplikasi pencarian jalur terpendek
untuk daerah kota Medan dengan metode steepest ascent hill climbing. Pada
penelitian ini menunjukkan bahwa metode steepest ascent hill climbing dapat
menemukan solusi, karena tidak semua cabang dilalui.
4. Sanan, S., Jain, l & Kappor B (2013) dalam judul shortest path algorithm
menunjukkan bahwa algoritma algoritma jarak terpemdek adalah sebuah
permasalahan penting dalam teori graf dalam pengaplikasiannya di beberapa aspek.
Pada paper ini algoritma yang berbeda digunakan salah satunya adalah algoritma
Dijkstra. Algoritma ini melakukan pencarian buta dan tidak dapat melalui node
bernilai negatif.
5. Lubis, Henny Syahriza ( 2009 ) dalam judul penelitian perbandingan algoritma
Greedy dan Dijkstra untuk menentukan lintasan terpendek. Penelitian
menunjukkan perbandingan algoritma Greedy dan Dijkstra berdasarkan jarak
lintasannya, algoritma Greedy menghasilkan jarak yang lebih besar dan juga
algortima Greedy tidak beroperasi secara menyeluruh terhadap semua alternatif
fungsi yang ada, sehingga lintasan terpendek hanya diperoleh dari verteks asal
hingga verteks tujuan, sedangkan algoritma Dijkstra beroperasi secara menyeluruh
terhadap semua alternative yang ada, sehingga lintasan terpendek tidak hanya
diperoleh dari node sumber ke node tujuan saja, akan tetapi lintasan terpendek
dapat diperoleh dari semua node.

Universitas Sumatera Utara


BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem


Sistem ini akan melakukan pencarian rute terpendek antar lokasi objek wisata di
Kabupaten Serdang Bedagai dengan menggunakan algoritma Dijkstra dan algortima
Steepest Ascent Hill Climbing.

Analisis sistem memiliki tiga tahapan dalam mendeskripsikan pengembangan


sistem, yaitu :

1. Analisis masalah. Analisis masalah digunakan untuk mempelajari,


mengidentifikasi, dan menganalisis suatu masalah serta batasan – batasannya.
2. Analisis kebutuhan. Analisis kebutuhan digunakan untuk mendeskripsikan fungsi
– fungsi yang diberikan dan dapat dikerjakan oleh sistem, baik kebutuhan
fungsional maupun non fungsional.
3. Analisis proses. Analisis proses digunakan untuk menggambarkan pola tingkah
laku yang dimiliki sistem.

3.1.1. Analisis Masalah

Luasnya sebuah wilayah dapat menyebabkan seseorang mengalami kesulitan untuk


menentukan rute terpendek dari satu lokasi ke lokasi lainnya. Setiap orang yang
berwisata cenderung memilih rute terpendek. Semakin cepat wisatawan tiba di lokasi

Universitas Sumatera Utara


23

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.

Gambar 3.1 Diagram Ishikawa 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.

Universitas Sumatera Utara


24

3.1.2. Analisis Kebutuhan Sistem

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.

3.1.2.1. Kebutuhan Fungsional

Analisis kebutuhan fungsional disini menjelaskan tentang sistem yang disediakan.


Sistem ini melakukan perhitungan, perbandingan jarak dan waktu pencarian rute
terpendek antar lokasi objek wisata di Kabupaten Serdang. Untuk menerapkan sistem
tersebut, kebutuhan fungsional yang harus dipenuhi antara lain adalah :

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.

3.1.2.2. Kebutuhan Non-fungsional


Kebutuhan non-fungsional yang harus dipenuhi antara lain sebagai berikut:
1. Performa
Sistem yang akan dibangun dapat menunjukkan hasil waktu proses dan rute terpendek
dari pencarian lokasi objek wisata.
2. Mudah dipelajari dan digunakan
Sistem yang akan dibangun memiliki tampilan user friendly sehingga memudahkan
pengguna dan disertai halaman petunjuk.
3. Hemat Biaya
Sistem yang akan dibangun tidak memerlukan perangkat tambahan yang dapat
mengeluarkan biaya dan bebas digunakan.

Universitas Sumatera Utara


25

3.1.3. Analisis Proses


Sistem yang dibangun akan menggunakan bahasa pemrograman C# dengan bantuan
SharpDevelop 4.3. Pada analisis proses ini menggunakan algoritma Dijkstra dan
algoritma Steepest Ascent Hill Climbing dalam proses pencarian rute terpendek antar
lokasi objek wisata di Kab. Serdang Bedagai. Pengguna dapat melakukan pencarian
dengan memasukkan lokasi objek wisata asal dan dan lokasi objek wisata tujuan yang
diinginkan (terdapat 20 lokasi objek wisata). Lalu pengguna memilih algoritma yang
akan digunakan sebagai perbandingan satu sama lain.. Selanjutnya sistem akan
menampilkan hasil berupa total jarak, rute, dan waktu yang dibutuhkan untuk
mengeksekusi program berdasarkan algoritma yang dipilih. Diagram umum ini dapat
dilihat pada Gambar 3.2

Pengguna

Sistem

Pengguna memasukkan lokasi objek wisata asal


dan lokasi objek wisata tujuan.

Dijkstra Steepest Ascent Hill Climbing


Proses pencarian dilakukan dengan Proses pencarian dilakukan dengan
menelusuri satu simpul ke semua membandingkan current state ke
simpul yang bernilai positif, jika semua successor yang ada
berbobot negatif tidak dapat dilalui didekatnya dengan nilai paling baik
dan diberi nilai infiniti. (heuristik).

Tampilkan hasil
total jarak, rute dan waktu yang dibutuhkan
algoritma untuk memgeksekusi program.

Gambar 3.2 Diagram Umum

Universitas Sumatera Utara


26

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.

3.1.4.1. Pseudocode Algoritma Dijkstra


Pada sistem yang dirancang terdapat algoritma Dijkstra yang berguna untuk
melakukan pencarian rute terpendek. Pseudocode ditunjukkan pada Gambar 3.3.
function Dijkstra(Graph, source):
for each vertex v in Graph:
dist[v] := infinity ;
previous[v] := undefined ;
end for
dist[source] := 0 ;
Q := the set of all nodes in Graph ;

while Q is not empty:


u := vertex in Q with smallest distance in dist[] ;
remove u from Q ;
if dist[u] = infinity:
break ;
end if

for each neighbor v of u:


alt := dist[u] + dist_between(u, v) ;
if alt < dist[v]:

dist[v] := alt ;
previous[v] := u ;
Gambar 3.3 Pseudocode Dijkstra
decrease-key v in Q;
end if
end for
end while
return dist;

Universitas Sumatera Utara


27

3.1.4.2. Pseudocode Algoritma Steepest Ascent Hill Climbing


Pada sistem yang dirancang terdapat algoritma Steepest Ascent Hill Climbing yang
berguna untuk melakukan pencarian rute terpendek. Pseudocode ditunjukkan pada
Gambar 3.4.
steep_asc_hll( s, g , Q ) {
initialise Q;
curr_node = s;
path_cost=0;

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.

Universitas Sumatera Utara


28

3.2.1. Use-case 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.

Gambar 3.5 Use-case Diagram Sistem

Universitas Sumatera Utara


29

3.2.2. Activity Diagram

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.

Gambar 3.6 Activity Diagram Sistem

Universitas Sumatera Utara


30

3.2.3. Sequence Diagram

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.

Gambar 3.7 Sequence Diagram Sistem

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.

Universitas Sumatera Utara


31

3.2.4.2. Flowchart Sistem

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

Masukkan lokasi asal


dan lokasi tujuan

Mencari lokasi asal


dan lokasi tujuan

Mengevaluasi rute yang


dilalui

Hitung rute terpendek dengan


algoritma Dijkstra atau SAHC

Menampilkan hasil total


jarak, rute, dan waktu
eksekusi

Selesai

Gambar 3.8 Flowchart Sistem

Universitas Sumatera Utara


32

3.2.4.3. Flowchart Algoritma Dijkstra

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.

Gambar 3.9 Flowchart Algoritma Dijkstra

Universitas Sumatera Utara


33

3.2.4.4. Flowchart algoritma Steepest Ascent Hill Climbing

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.

Gambar 3.10 Flowchart Algoritma Steepest Ascent Hill Climbing

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.

Universitas Sumatera Utara


34

3.2.5.1. Halaman Awal

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.

Gambar 3.11 Halaman Awal

Tabel 3.1 Keterangan Gambar Halaman Awal


No Keterangan
1. Label untuk menampilkan judul skripsi.
2. Label untuk menampilkan judul nama dan NIM.
3. Picture Box untuk menampilkan logo Universitas Sumatera Utara.
4. Label untuk menampilkan program studi, fakultas, universitas, kota dan tahun.
5. Button untuk masuk kedalam sistem.

3.2.5.2. Halaman Rute Terpendek

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.

Universitas Sumatera Utara


35

Gambar 3.12 Halaman Rute Terpendek

Tabel 3.2 Keterangan Gambar Halaman Rute Terpendek


No Keterangan
1. Tab Control untuk menunjukkan halaman yang tersedia pada sistem.
2. Group Box untuk Cari Rute Terpendek.
3. Label untuk Lokasi Objek Wisata Asal.
4. Combo Box untuk pemilihan vertex asal.
5. Label untuk Lokasi Objek Wisata Tujuan.
6. Combo Box untuk pemilihan vertex tujuan.
7. Label untuk Algoritma.
8. Combo Box untuk Pilihan Algoritma.
9. Group Box untuk Proses.
10. Button untuk menampilkan Proses.
11. Group Box untuk Lihat Graf.
12. Button untuk menampilkan Graf.
13. Group Box untuk Hasil Rute Terpendek.
14. Text Box untuk menampilkan Hasil Rute Terpendek.
15. Group Box untuk Total Jarak (km).
16. Text Box untuk menampilkan Total Jarak (km).
17. Group Box untuk Waktu Proses (ms).
18. Text Box untuk menampilkan Waktu Proses (ms).

Universitas Sumatera Utara


36

3.2.5.3. Halaman Bantuan

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

Gambar 3.13 Halaman Bantuan

Tabel 3.3 Keterangan Gambar Halaman Bantuan


No Keterangan
1. Tab Control untuk menunjukkan halaman yang tersedia pada sistem.
2. Group Box untuk petunjuk penggunaan sistem.
3. RichTextBox untuk menampilkan isi petunjuk penggunaan sistem.

Universitas Sumatera Utara


37

3.2.5.4. Halaman Tentang Sistem

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.

Gambar 3.14 Halaman Tentang Sistem

Tabel 3.4 Keterangan Gambar Halaman Tentang Sistem


No Keterangan
1. Tab Control untuk menunjukkan halaman yang tersedia pada sistem .
2. GroupBox untuk tentang sistem.
3. RichTextBox untuk menampilkan informasi tentang sistem.
4. GroupBox untuk tentang perancang sistem.
5. RichTextBox untuk menampilkan informasi tentang perancang sistem.

Universitas Sumatera Utara


BAB 4

IMPLEMENTASI DAN PENGUJIAN

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.

4.1.1. Halaman Awal


Halaman awal adalah halaman yang akan tampil pertama kali saat sistem dijalankan.
Tampilan halaman ini ditunjukkan pada Gambar 4.1.

Gambar 4.1 Halaman Awal

Universitas Sumatera Utara


39

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.

4.1.2. Halaman Rute Terpendek


Halaman rute terpendek adalah halaman yang akan tampil setelah pengguna mengklik
button masuk pada halaman awal. Halaman ini digunakan untuk mencari rute terpendek.
Tampilan halaman ini ditunjukkan pada Gambar 4.2.

Gambar 4.2 Halaman Rute Terpendek

Pada Gambar 4.2 diberikan halaman yang dapat digunakan pengguna


memasukkan lokasi objek wisata asal untuk posisi awal pengguna dan lokasi objek
wisata tujuan untuk lokasi objek wisata yang akan dituju. Pengguna dapat memilih
algoritma yang akan digunakan untuk mencari jarak terpendek antar lokasi objek wisata
yaitu algoritma Dijkstra dan Algoritma Steepest Ascent Hill Climbing. Terdapat dua
buah button, yaitu : button proses dan button lihat graf. Button proses berfungsi untuk
menampilkan hasil total jarak, rute dan waktu eksekusi dari kedua algoritma sedangkan
button lihat graf berfungsi untuk menampilkan gambar graf lokasi objek wisata di
Kabupaten Serdang Bedagai seperti yang ditunjukkan pada Gambar 4.3.

Universitas Sumatera Utara


40

Gambar 4.3 Graf Lokasi Objek Wisata

4.1.3. Halaman Bantuan


Halaman bantuan adalah halaman yang akan tampil saat pengguna memilih menu
bantuan pada menu bar. Tampilan halaman ini ditunjukkan pada Gambar 4.4.

Gambar 4.4 Halaman Bantuan

Universitas Sumatera Utara


41

Pada Gambar 4.4 diberikan sebuah informasi berupa petunjuk penggunaan sistem
sehingga pengguna dapat dengan mudah menggunakan sistem.

4.1.4. Halaman Tentang 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.

Gambar 4.5 Halaman Tentang Sistem

4.2. Pengujian

Pengujian sistem adalah tahap lanjutan setelah dilakukannya implementasi sistem.


Pengujian sistem dilakukan dengan tujuan untuk membuktikan bahwa sistem yang
dibangun telah berjalan dengan baik. Pengujian dilakukan terhadap algoritma Dijkstra
dan algoritma Steepest Ascent Hill Climbing untuk menentukan rute terpendek dengan
membanding hasil jarak terpendek dan waktu proses dari masing – masing algoritma.
Titik asal dan titik tujuan terdapat sebanyak 20 titik yang disediakan.

Universitas Sumatera Utara


42

4.2.1. Pengujian Proses Implementasi

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.

Gambar 4.6 Pengujian Proses Implementasi

4.2.2. Pengujian Proses Algoritma Dijkstra


Setelah menentukan lokasi objek wisata asal, lokasi objek wisata tujuan, dan algoritma
yang akan digunakan seperti pada Gambar 4.6, selanjutnya tekan button proses untuk
melakukan pencarian rute terpendek, total jarak dan waktu proses menggunakan
algoritma Dijkstra seperti yang di tunjukkan pada Gambar 4.7. Berdasarkan Gambar
4.7 diketahui bahwa dari Pantai Romance Bay (lokasi objek wisata asal) ke Ancol
Arung Jeram (lokasi objek wisata tujuan) hasil rute terpendek yang dilintasi adalah
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 dan waktu proses selama 17,1297 ms.

Universitas Sumatera Utara


43

Gambar 4.7 Pengujian Proses Algoritma Dijkstra

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.

4.2.2.1. Perhitungan Manual Algoritma Dijkstra

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.

Tabel 4.1 Daftar Lokasi Objek Wisata


Kode
Objek Wisata Alamat
Titik
A Pantai Romance Bay. Kota Pari, Pantai Cermin.
Mesjid Kerajaan Serdang
B Simpang Tiga Pekan, Perbaungan.
Sultan Sulaimaniyah.
C Taman Rekreasi Alam Sari. Desa Siahap, Bintang Bayu.
D Pantai Cermin Theme Park. Dusun 1, Desa Pantai Cermin Kanam.
Replika Istana Sultan
E Desa Tualang, Perbaungan.
Serdang.

Universitas Sumatera Utara


44

F Romance Padi. Desa Karang Anyar, Pegajahan.


G Rahmat Zoo & Park. Desa Bengabing, Pegajahan.
Pura Bali Penataran
H Desa Pegajahan.
Dharmaraksaka.
I Pantai Sri Mersing. Desa Kuala Lama, Pantai Cermin.
J Dodol Deli Pasar Bengkel. Jl. Besar Ps. Bengkel, Perbaungan.
K Pantai Cemara Kembar. Jl. Pantai ATP No. 15, Desa Sei Nagalawan.
L Eco Tour Mangrove Desa Sei Naga Lawan, Perbaungan.
M Pantai Sialang Buah. Sialang Buah, Teluk. Mengkudu.
N Roti Kacang Rajawali. Jl. Negara, Sei Rampah.
O Ancol Arung Jeram. Jl. Pondok Sampanan, Dolok Merawan.
P Pantai Sentang. Desa Sentang, Teluk Mengkudu.
Q Air Terjun Sampuran Widuri. Jl. Desa Pabatu III, Dolok Merawan.
R Pantai Bogak Indah. Jl. Bogak Besar, Teluk Mengkudu.
Mesjid Kerajaan Bedagai
S Desa Pekan, Tanjung Beringin.
Jami’ Ismailiyah.
T Pantai Bagan Kuala. Tanjung Beringin, Bagan Kuala.

Gambar 4.8 Graf Lokasi Objek Wisata di Kabupeten Serdang Bedagai

Universitas Sumatera Utara


Berikut adalah hasil perhitungan manual algoritma Dijkstra di tunjukkan pada Tabel 4.2 di bawah ini :
Tabel 4.2 Hasil Perhitungan Manual Algoritma Dijkstra
Node yang Node yang
i belum di sudah di c A B C D E F G H I J K L M N O P Q R S T
kunjungi kunjungi
ABCDEFGHIJK
0 - - ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,-
LMNOPQRST
BCDEFGHIJKL
1 A A 15.6 , A ∞,A 9.4 , A ∞,A ∞,A ∞,A ∞,A 12.9 , A ∞,A ∞,A ∞,A ∞,A ∞,A ∞,A ∞,A ∞,A ∞,A ∞,A ∞,A
MNOPQRST
BCEFGHIJKLM
2 AD D 15.6 , A ∞,D 23 , D ∞,D ∞,D ∞,D 12.9 , A ∞,D ∞,D ∞,D ∞,D ∞,D ∞,D ∞,D ∞,D ∞,D ∞,D ∞,D
NOPQRST
CEFGHIJKLMN
3 ADB B 58.1 , B 18.4 , B ∞,B ∞,B 28.3 , B 12.9 , A ∞,B ∞,B ∞,B ∞,B ∞,B ∞,B ∞,B ∞,B ∞,B ∞,B ∞,B
OPQRST
CEFGHJKLMNO
4 ADBI I 58.1 , B 18.4 , B ∞,I ∞,I 28.3 , B 23.5 , I 25.4 , I ∞,I ∞,I ∞,I ∞,I ∞,I ∞,I ∞,I ∞,I ∞,I
PQRST
CFGHJKLMNOP
5 ADBIE E 58.1 , B 21.3 , E ∞,E 28.3 , B 21.3 , E 25.4 , I ∞,E ∞,E ∞,E ∞,E ∞,E ∞,E ∞,E ∞,E ∞,E
QRST
CGHJKLMNOP
6 ADBIEF F 58.1 , B 26.2 , F 28.3 , B 21.3 , E 25.4 , I ∞,F ∞,F ∞,F ∞,F ∞,F ∞,F ∞,F ∞,F ∞,F
QRST
CGHKLMNOPQ
7 ADBIEFJ J 58.1 , B 26.2 , F 28.3 , B 25.4 , I 34 , J 38.4 , J 39.4 , J ∞,J 39.4 , J ∞,J ∞,J ∞,J ∞,J
RST
CHKLMNOPQR
8 ADBIEFG G 58.1 , B 28.3 , B 25.4 , I 34 , J 38.4 , J 39.4 , J ∞,G 39.4 , J ∞,G ∞,G ∞,G ∞,G
ST
CHLMNOPQRS
9 ADBIEFGK K 58.1 , B 28.3 , B 29.8 , K 38.4 , J 39.4 , J ∞,K 39.4 , J ∞,K ∞,K ∞,K ∞,K
T
10 CLMNOPQRST ADBIEFGKH H 58.1 , B 29.8 , K 38.4 , J 39.4 , J ∞,H 39.4 , J ∞,H ∞,H ∞,H ∞,H
11 CMNOPQRST ADBIEFGKHL L 58.1 , B 37.6 , L 39.4 , J ∞,L 39.4 , J ∞,L ∞,L ∞,L ∞,L

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

Universitas Sumatera Utara


46

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

4.2.3. Pengujian Proses Algoritma Steepest Ascent Hill Climbing


Setelah menentukan lokasi objek wisata asal, lokasi objek wisata tujuan, dan algoritma
yang akan digunakan, selanjutnya tekan button proses untuk melakukan pencarian rute
terpendek, total jarak dan waktu proses menggunakan algoritma Steepest Ascent Hill
Climbing seperti yang di tunjukkan pada Gambar 4.9. Berdasarkan Gambar 4.9
diketahui bahwa dari Pantai Romance Bay (lokasi objek wisata asal) ke Ancol Arung
Jeram (lokasi objek wisata tujuan) hasil rute terpendek yang dilintasi adalah Pantai
Romance Bay → Mesjid Kerajaan Serdang Sultan Sulaimaniyah → Taman Rekreasi
Alam Sari → Ancol Arung Jeram. dengan total jarak 82.3 km dan waktu proses selama
8,4291 ms.

Gambar 4.9 Pengujian Proses Algoritma Steepest Ascent Hill Climbing

Universitas Sumatera Utara


47

4.2.3.1. Perhitungan Manual Algoritma Steepest Ascent Hill Climbing


Dalam pengujian ini, akan dilihat hasil dari perhitungan manual algoritma Steepest
Ascent Hill Climbing, apakah sesuai dengan implementasi sistem. Ada beberapa tahap
yang dilakukan, sebagai berikut :

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 :

Mendapatkan nilai heuristik dengan menggunakan titik koordinat yang sudah di


konversi ke desimal lalu di hitung dengan menggunakan persamaan 4.1 sebagaimana
yang tertera dibawah ini :

.........................................(4.1)

Berikut adalah hasil perhitungan untuk mendapatkan nilai heuristik h(n) yang dapat
dilihat pada Tabel 4.3.

Tabel 4.3 Nilai Heuristik h(n)

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

Universitas Sumatera Utara


48

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

Gambar 4.10 Pencarian Pertama

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

Universitas Sumatera Utara


49

Gambar 4.11 Pencarian Kedua

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

Universitas Sumatera Utara


50

Gambar 4.12 Pencarian Ketiga


Berdasarkan hasil dari pengujian proses perhitungan manual dengan
menggunakan algoritma Steepest Ascent Hill Climbing yang di tunjukkan pada Gambar
4.12, maka hasil rute terpendek dari Pantai Romance Bay ke Ancol Arung Jeram adalah
A → B → C → O (Pantai Romance Bay → Mesjid Kerajaan Serdang Sultan
Sulaimaniyah → Taman Rekreasi Alam Sari → Ancol Arung Jeram). Total jaraknya
adalah 15.6 + 42.5 + 24.2 = 82.3 km. Sehingga hasil pengujian proses algoritma Steepest
Ascent Hill Climbing dengan sistem sesuai dengan proses perhitungan manual algoritma
Steepest Ascent Hill Climbing (lihat Gambar 4.9 dan Tabel 4.12).

Universitas Sumatera Utara


51

4.3. Kompleksitas

4.3.1. Kompleksitas Algoritma Dijkstra


Perhitungan kompleksitas algoritma Dijkstra dapat dilihat pada Tabel 4.4 berikut :
Tabel 4.4 Kompleksitas Algoritma Dijkstra
Listing Program C # C×#
List<char> Q = new List<char>(); C1 1 C1
List<char> path = new List<char>(); C2 1 C2
Dictionary<char, double> jarak C3 1 C3
= new Dictionary<char, double>();
Dictionary<char, char> prev C4 1 C4
= new Dictionary<char, char>();
double Inf = double.MaxValue; C5 1 C5
watch.Restart(); C6 1 C6
foreach (var node in graph){ C7 n C7 n
if (node.Key == asal){ C8 n C8 n
jarak[node.Key] = 0;} C3 n C3 n
else { C9 n C9 n
jarak[node.Key] = Inf; } C3 n C3 n
Q.Add(node.Key);} C1 n C1 n
bool found = false; C10 1 C10
while ( Q.Count!=0){ C11 n C11 n
char smallest = getSmallestNode(Q, jarak); C12 n C12 n
Q.Remove(smallest); C13 n C13 n
if (smallest == C14 n C14 n
tujuan && jarak[smallest] != Inf){
found = true; } C10 n C10 n
if (jarak[smallest] == Inf){ C15 n C15 n
continue;} C16 n C16 n
foreach (var tetangga in graph[smallest]){ C17 n2 C17 n2
var alt = C18 n2 C18 n2
jarak[smallest] + tetangga.Value;
if (alt < jarak[tetangga.Key]){ C19 n2 C19 n2
jarak[tetangga.Key] = alt; C3 n2 C3 n2
prev[tetangga.Key] = smallest;}}} C4 n2 C4 n2
if(found){ C20 1 C20
char tmp = tujuan; C21 1 C21
while (prev.ContainsKey(tmp)){ C22 n C22 n
path.Add(tmp); C2 n C2 n
tmp = prev[tmp];} C21 n C21
path.Add(asal); C2 1 C2 n
watch.Stop(); C23 1 C23
return path; C24 1 C24

Universitas Sumatera Utara


52

T(n) = (2C1 + 2C2 + C3 + C4 + C5 + C6 + C10 + C20 + C21 + C23 + C24) +


(C2 + 2C3 + C7 + C8 + C9 + C10 + C11 + C12 + C13 + C14 + C15 + C16 + C21 +
C22)n +
(C3 + C4 + C17 + C18 + C19)n2
= θ(n2)
Tabel 4.4 menunjukkan hasil dari kompleksitas algoritma Dijkstra. Pada Tabel 4.4
kolom 𝐶 merupakan variabel yang menunjukkan berapa banyak processor melakukan
komputasi. Kolom # merupakan variabel untuk menghitung pengerjaan kalimat
(statemant) program yang dieksekusi. Kolom 𝐶 × # menghitung hasil perkalian dari 𝐶
dengan #. Sehingga diperoleh hasil kompleksitas algoritma Dijkstra yaitu θ(n2).

4.3.2. Kompleksitas Algoritma Steepest Ascent Hill Climbing


Perhitungan kompleksitas algoritma Steepest Ascent Hill Climbing dapat dilihat pada
Tabel 4.5 berikut :

Tabel 4.5 Kompleksitas Algoritma Steepest Ascent Hill Climbing


Listing Program C # C#
List<char> path = new List<char>(); C1 1 C1
Dictionary<char, double> nilai_heuristik
C2 1 C2
= getNilaiHeuristik(tujuan);
watch.Restart(); C3 1 C3
char curr_node = asal, prev_node = '0'; C4 1 C4
double path_cost = 0; C5 1 C5
path.Add(curr_node); C1 1 C1
bool found = false; C6 1 C6
while(true){ C7 n C7 n
if (curr_node == tujuan){ C8 n C8 n
found = true; C7 n C7 n
break;} C9 n C9 n
else { C10 n C10 n
char temp
= getSmallestHeuristic(graph[curr_node], nilai_heuristik, C11 n C11 n
prev_node);
if (temp == '@') break; C11 n C11 n
path_cost += graph[curr_node][temp]; C5 n C5 n
prev_node = curr_node; C4 n C4 n
curr_node = temp; C4 n C4 n
path.Add(curr_node); }} C1 n C1 n
watch.Stop(); C12 1 C12
if (found) return path; C13 1 C13
else return null; C13 1 C13

Universitas Sumatera Utara


53

T(n) = (3C1 + C2 + C3 + C4 + C5 + C6 + C12 + 2C13) +


(C1 + 2C4 + C5 + C6 + C7 + C8 + C9 + C10 + 2C11)n
= θ(n)
Tabel 4.5 menunjukkan hasil dari kompleksitas algoritma Steepest Ascent Hill
Climbing. Pada Tabel 4.4 kolom 𝐶 merupakan variabel yang menunjukkan berapa
banyak processor melakukan komputasi. Kolom # merupakan variabel untuk
menghitung pengerjaan kalimat (statemant) program yang dieksekusi. Kolom 𝐶 × #
menghitung hasil perkalian dari 𝐶 dengan #. Sehingga diperoleh hasil kompleksitas
algoritma Steepest Ascent Hill Climbing yaitu θ(n).

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.

4.4. Pengujian Waktu Proses

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.

4.4.1. Algoritma Dijkstra


Hasil pengujian waktu proses algoritma Dijkstra dapat dilihat pada Tabel 4.6.
Tabel 4.6 Hasil Pengujian Waktu Proses Algoritma Dijkstra
No Total Jarak Waktu Proses
Rute
Uji (km) (ms)
1 R→H 33 0,1154
2 E→O 63,5 0,1289
3 S→D 42 0,1049
4 T→K 30,9 0,1058
5 I→Q 66,3 0,1015
Rata- rata 0,1113

Universitas Sumatera Utara


54

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.

Grafik Waktu Proses Algoritma Dijkstra


0,14 0,1289
0,1154
0,12 0,1049 0,1058 0,1015
Waktu Proses (ms)

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

Waktu Proses (ms)

Gambar 4.13 Grafik Waktu Proses Algoritma Dijkstra

Universitas Sumatera Utara


55

4.4.2. Algoritma Steepest Ascent Hill Climbing


Hasil pengujian dengan algoritma Steepest Ascent Hill Climbing dapat dilihat pada
Tabel 4.7.

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.

Grafik Waktu Proses Algoritma SAHC


0,014 0,0129
0,0115 0,0115
0,012 0,011
0,0101
Waktu Proses (ms)

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

Waktu Proses (ms)

Gambar 4.14 Grafik Waktu Proses Algoritma Steepest Ascent Hill Climbing

Universitas Sumatera Utara


56

4.4.3. Perbandingan Total Jarak dan Waktu Proses


Hasil perbandingan waktu proses dari Algoritma Dijkstra dan Steepest Ascent Hill
Climbing dapat dilihat pada Tabel 4.8.
Tabel 4.8 Hasil Perbandingan Algoritma Dijkstra dengan Algoritma SAHC
No Total Jarak (km) Waktu Proses (ms)
Rute
Uji Dijkstra SAHC Dijkstra SAHC
1 R→H 33 33 0,1154 0,0115
2 E→O 63,5 66,8 0,1289 0,011
3 S→D 42 47,5 0,1049 0,0129
4 T→K 30,9 30,9 0,1058 0,0101
5 I→Q 66,3 66,3 0,1015 0,0115
Rata –rata 0,1113 0,0114

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.

Grafik Perbandingan Total Jarak


80
70
60
Total Jarak (km)

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

Gambar 4.15 Grafik Perbandingan Total Jarak

Universitas Sumatera Utara


57

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.

Grafik Perbandingan Waktu Proses


0,14 0,1289
0,1154
0,12 0,1049 0,1058
0,1015
Waktu Proses (ms)

0,1

0,08

0,06

0,04

0,0115 0,011 0,0129 0,0115


0,02 0,0101

0
R→H E→O S→D T→K I→Q
Objek Wisata Asal → Objek Wisata Tujuan

Dijkstra SAHC

Gambar 4.16 Grafik Perbandingan Waktu Proses

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.

Waktu Proses Rata - Rata

SAHC 0,0114
Algoritma

Dijkstra 0,1113

0 0,02 0,04 0,06 0,08 0,1 0,12


Waktu Proses (ms)

Dijkstra SAHC

Gambar 4.17 Grafik Perbandingan Waktu Proses Rata - Rata

Universitas Sumatera Utara


BAB 5

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 :

1. Pencarian rute terpendek dapat diselesaikan dengan menggunakan algoritma


Dijkstra dan algoritma Steepest Ascent Hill Climbing meskipun untuk beberapa
kasus hasil rute yang didapatkan berbeda sehingga total jarak yang dihasilkan
berbeda pula.
2. Bahwa rata – rata waktu proses algoritma Dijkstra adalah 0,1113 ms sedangkan
rata – rata waktu proses algoritma Steepest Ascent Hill Climbing adalah 0,0114
ms. Hal ini menunjukkan bahwa algoritma Steepest Ascent Hill Climbing
memiliki waktu proses yang lebih cepat daripada algoritma Dijkstra karena
Steepest Ascent Hill Climbing hanya memilih titik lokasi berdasarkan nilai
heuristik terbaik sementara Dijkstra tidak, melainkan mengunjungi setiap titik
lokasi terlebih dahulu baru kemudian menemukan solusi.
3. Bahwa diperoleh hasil perhitungan kompleksitas algoritma Dijkstra adalah θ(n2)

sedangkan algoritma Steepest Ascent Hill Climbing adalah θ(n).

5.2. Saran

Saran-saran yang dapat dipertimbangkan untuk penelitian maupun pengembangan


sistem kedepannya, diantaranya adalah :
1. Untuk pengembangan sistem selanjutnya diharapkan dapat menunjukkan lokasi
objek wisata melalui google map yang dapat di akses langsung oleh pengguna.

Universitas Sumatera Utara


B-60

2. Untuk penelitian selanjutnya diharapkan dapat mengimplementasikan algoritma


tersebut pada kasus yang berbeda.
3. Untuk penelitian selanjutnya pada simpul dan sisi dapat ditambahkan agar jarak
yang dihasilkan lebih variatif.

Universitas Sumatera Utara


60

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

Universitas Sumatera Utara


B-61

Semut dan Algoritma Genetika. Seminar Nasional Aplikasi Teknologi


Informasi 2007 (SNATI 2007), pp. B-33 – B-39.
Pandey, V., Yadav, S.C. & Arora, P. 2016. Retiming Technique for Clock Period
Minimization using Shortest Path Algorithm. International Conference on
Computing, Communication and Automation (ICCCA), pp. 1418 – 1423.
Popa, B. & Popescu, D. 2016. Analysis of Algorithmic for Shortest Path Problem
in Parallel. 17th International Carpathian Control Conference (ICCC),
pp. 613 – 617.
Potensi Pariwisata. 2007. (Online) http://indonesia.serdangbedagaikab.go.id/content/200
7/5/potensi+pariwisata.html (8 Februari 2017).
Potdar, G. P. & Thool, R. C. 2014. Comparison of Various Heuristic Search
Techniques For Finding Shortest Path. International Journal of Artificial
Intelligence and Apllications (IJAIA) Vol. 5(4) : 63 – 66.
Purwananto, Y., Purwitasari, D. & Wibowo, A. 2005. Implementasi dan Analisis
Algoritma Pencarian Rute Terpendek di Kota Surabaya. Jurnal Penelitian
dan Pengembangan Telekomunikasi No. 2, Vol.10.
Republik Indonesia. 2009. Undang – Undang No. 10 Tahun 2009 tentang
Kepariwisataan. Lembaran Negara RI Tahun 2009 No. 11, Tambahan
Lembaran Negara RI NO. 4966. Sekretariat Negara : Jakarta.
Rossen, K. 2003. Discrete Mathematic and its Apllications. 5th Edition. VAGA :
New York.
Russel, S. & Norvig, P. 1995. Artificial Intelligence : A Modern Approach. 3rd
Edition. Prentice Hall International Inc : New Jersey.
Sanan S., Jain, L. & Kapporm B. 2013. Shortest Path Algorithm. International
Journal of Application or Innovation in Engineering and Management
(IJAIEM) Vol. 2(7) : 316 – 320.
Siang, J. J. 2009. Matematika Diskrit dan Aplikasinya pada Ilmu Komputer.
Cetakan Keempat. Andi : Yogyakarta.
Sihombing, J. 2014. Perancangan Aplikasi Pencarian Jalur Terpendek untuk
Daerah Kota Medan dengan Metode Steepest Ascent Hill Climbing. Pelita
Informatika Budi Darma Vol 6(2) : 61 – 64.
Sutojo, T., Mulyanto, E. & Suhartono, V. 2011. Kecerdasan Buatan. Andi :
Yogyakarta.

Universitas Sumatera Utara


B-62

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.

Universitas Sumatera Utara


A-1

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>

public partial class MainForm : Form {


Stopwatch watch = new Stopwatch();

Universitas Sumatera Utara


B-2

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 {'',},
};

Dictionary<char,Dictionary<char,double>> graph = new Dictionary<char, Dictionary<char, double>> {


{'a', new Dictionary<char, double> {{'b',15.6}, {'d',9.4}, {'i',12.9}}},
{'b', new Dictionary<char, double> {{'c',42.5}, {'d',11.7}, {'e',2.8}, {'h',12.7}, {'a',15.6}}}},
{'c', new Dictionary<char, double> {{'h',31.2}, {'n',36.8}, {'o',24.2}, {'q',47.9}, {'s',41.2},

Universitas Sumatera Utara


B-3

{'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}}},
};

Dictionary<char, double[]> koordinat = new Dictionary<char, double[]>{


{'a', new double[] {3.675415, 98.943531}},
{'b', new double[] {3.567564, 98.960986}},
{'c', new double[] {3.292573, 98.939636}},
{'d', new double[] {3.651674, 98.988806}},
{'e', new double[] {3.567006, 98.983848}},
{'f', new double[] {3.552801, 98.995496}},
{'g', new double[] {3.516492, 98.996089}},

Universitas Sumatera Utara


B-4

{'h', new double[] {3.487526, 98.991246}},


{'i', new double[] {3.632579, 99.017264}},
{'j', new double[] {3.564102, 99.007488}},
{'k', new double[] {3.59541, 99.086437}},
{'l', new double[] {3.591509, 99.091371}},
{'m', new double[] {3.569945, 99.120795}},
{'n', new double[] {3.485763, 99.134187}},
{'o', new double[] {3.200224, 99.058242}},
{'p', new double[] {3.563003, 99.132173}},
{'q', new double[] {3.231328, 99.135082}},
{'r', new double[] {3.556551, 99.160505}},
{'s', new double[] {3.496685, 99.191923}},
{'t', new double[] {3.509186, 99.23543}}
};

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();
}

string getLokasiWisata(char alpha) {


if(alpha == ('a')) return cboxAsal.Items[0].ToString();
if(alpha == ('b')) return cboxAsal.Items[1].ToString();
if(alpha == ('c')) return cboxAsal.Items[2].ToString();

Universitas Sumatera Utara


B-5

if(alpha == ('d')) return cboxAsal.Items[3].ToString();


if(alpha == ('e')) return cboxAsal.Items[4].ToString();
if(alpha == ('f')) return cboxAsal.Items[5].ToString();
if(alpha == ('g')) return cboxAsal.Items[6].ToString();
if(alpha == ('h')) return cboxAsal.Items[7].ToString();
if(alpha == ('i')) return cboxAsal.Items[8].ToString();
if(alpha == ('j')) return cboxAsal.Items[9].ToString();
if(alpha == ('k')) return cboxAsal.Items[10].ToString();
if(alpha == ('l')) return cboxAsal.Items[11].ToString();
if(alpha == ('m')) return cboxAsal.Items[12].ToString();
if(alpha == ('n')) return cboxAsal.Items[13].ToString();
if(alpha == ('o')) return cboxAsal.Items[14].ToString();
if(alpha == ('p')) return cboxAsal.Items[15].ToString();
if(alpha == ('q')) return cboxAsal.Items[16].ToString();
if(alpha == ('r')) return cboxAsal.Items[17].ToString();
if(alpha == ('s')) return cboxAsal.Items[18].ToString();
if(alpha == ('t')) return cboxAsal.Items[19].ToString();
return "Empty";
}

char getSmallestNode(List<char> q, Dictionary<char, double> jarak){


char smallest = q[0];
for(int i=1; i<q.Count; i++){
if (jarak[q[i]] < jarak[smallest])
smallest = q[i];
}
return smallest;
}

Dictionary<char, double> getNilaiHeuristik(char tujuan) {


double x_tujuan = koordinat[tujuan][0];
double y_tujuan = koordinat[tujuan][1];
Dictionary<char, double> nilai_heuristik = new Dictionary<char, double>();
foreach(var node in koordinat) {
double x_node = koordinat[node.Key][0];

Universitas Sumatera Utara


B-6

double y_node = koordinat[node.Key][1];


double heuristik = Math.Sqrt(Math.Pow(x_node - x_tujuan, 2) + Math.Pow(y_node-y_tujuan, 2));
nilai_heuristik.Add(node.Key, heuristik);
}
return nilai_heuristik;
}

char getSmallestHeuristic(Dictionary<char, double> nodes, Dictionary<char, double> nilai_heuristik


, char prev){
char smallest = '@';
foreach(var node in nodes){
if (node.Key == prev) continue;
if (smallest == '@'){
smallest = node.Key;
}
else if (nilai_heuristik[node.Key] < nilai_heuristik[smallest]){
smallest = node.Key;
}
}
return smallest;}

string getRute(List<char> path, int kode) {


if (path == null) return "Rute Tidak Tersedia";
string rute = getLokasiWisata(path[0]);
for (int i=1; i<path.Count; i++)
if(kode==1) {
rute = getLokasiWisata(path[i]) + " -> " + rute;
} else {
rute = rute + " -> " + getLokasiWisata(path[i]);
}
return rute;
}

void BtnLihatClick(object sender, EventArgs e) {


Form2 lihatGraf = new Form2();
lihatGraf.Show();

Universitas Sumatera Utara


B-7

void BtnProsesClick(object sender, EventArgs e) {


int pilih_algoritma = cboxAlgoritma.SelectedIndex;
if (pilih_algoritma == 0) {
List<char> path =
Dijkstra(lokasi_wisata[cboxAsal.SelectedIndex], lokasi_wisata[cboxTujuan.Sel ectedIndex]);
tbRute.Text = getRute(path, 1);
} else {
List<char> path
=SAHC(lokasi_wisata[cboxAsal.SelectedIndex], lokasi_wisata[cboxTujuan.SelectedIndex]);
tbRute.Text = getRute(path, 2);
}
}

List<char> Dijkstra(char asal, char tujuan) {


List<char> Q = new List<char>();
List<char> path = new List<char>();
Dictionary<char, double> jarak = new Dictionary<char, double>();
Dictionary<char, char> prev = new Dictionary<char, char>();
double Inf = double.MaxValue;
watch.Restart();
foreach (var node in graph) {
if (node.Key == asal) {
jarak[node.Key] = 0;
} else {
jarak[node.Key] = Inf;
}
Q.Add(node.Key);
}

bool found = false;


while ( Q.Count!=0) {
char smallest = getSmallestNode(Q, jarak);
Q.Remove(smallest);
if (smallest == tujuan && jarak[smallest] != Inf) {

Universitas Sumatera Utara


B-8

found = true;
}
if (jarak[smallest] == Inf){
continue;
}

foreach (var tetangga in graph[smallest]){


var alt = jarak[smallest] + tetangga.Value;
if (alt < jarak[tetangga.Key]){
jarak[tetangga.Key] = alt;
prev[tetangga.Key] = smallest;
}
}
}
if(found){
char tmp = tujuan;
while (prev.ContainsKey(tmp)){
path.Add(tmp);
tmp = prev[tmp];
}
path.Add(asal);
watch.Stop();
tbJarak.Text = jarak[tujuan].ToString();
}
tbWaktu.Text = watch.Elapsed.TotalMilliseconds.ToString();
return path;
}

Universitas Sumatera Utara


B-9

List<char> SAHC(char asal, char tujuan) {


List<char> path = new List<char>();
Dictionary<char, double> nilai_heuristik = getNilaiHeuristik(tujuan);

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;

Universitas Sumatera Utara


B-10

}
}
}

Universitas Sumatera Utara


B-1

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

PENGALAMAN ORGANISASI / KEPANITIAAN


2010 – 2013 : Anggota Divisi Melodis

Universitas Sumatera Utara


B-2

: Sangita Pramuka Akasha Drumband Club.


2010 – 2012 : Sekretaris Umum
: Sangita Pramuka Akasha Drumband Club.
2012 – 2013 : Sekretaris Panitia PHBI
: Remaja Musholla Amanatul Ibadah Dusun
Belimbing.
2013 : Sekretaris Panitia Hari Ibu
: UKMI Al – Khuwarizmi Fasilkom – TI USU.
2014 – 2015 : Sekretaris Divisi Humas Bidang Syiar
: UKMI Al – Khuwarizmi Fasilkom – TI USU.
2014 : Anggota dana AFEST
: UKMI Al – Khuwarizmi Fasilkom – TI USU.
2014 : Anggota dana Porseni
: Ikatan Mahasiswa Ilmu Komputer USU.
2015 – 2016 : Sekretaris Umum
: UKMI Al – Khuwarizmi Fasilkom – TI USU.
2016 : Anggota Acara AFEST
: 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

Universitas Sumatera Utara


Universitas Sumatera Utara

Anda mungkin juga menyukai