• Tidak ada hasil yang ditemukan

ANALISIS PERBANDINGAN ALGORITMA STEEPEST ASCENT HILL CLIMBING

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS PERBANDINGAN ALGORITMA STEEPEST ASCENT HILL CLIMBING"

Copied!
80
0
0

Teks penuh

(1)

ANALISIS PERBANDINGAN ALGORITMA STEEPEST ASCENT HILL CLIMBING DAN ALGORITMA BEST FIRST SEARCH

DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN WISATA DI KOTA MEDAN

SKRIPSI

RIZALI AHMAD BATUBARA 151401056

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2020

(2)

ANALISIS PERBANDINGAN ALGORITMA STEEPEST ASCENT HILL CLIMBING DAN ALGORITMA BEST FIRST SEARCH

DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN WISATA DI KOTA MEDAN

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

RIZALI AHMAD BATUBARA 151401056

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2020

(3)

(4)

PERNYATAAN

ANALISIS PERBANDINGAN ALGORITMA STEEPEST ASCENT HILL CLIMBING DAN ALGORITMA BEST FIRST SEARCH

DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN WISATA DI KOTA MEDAN

SKRIPSI

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

Medan, Januari 2020

Rizali Ahmad Batubara

151401056

(5)

PENGHARGAAN

Puji dan Syukur kepada Tuhan Yang Maha Esa atas berkatNya yang luar biasa, sehingga penulis dapat menyelesaikan penyusunan skripsi ini sebagai syarat memperoleh gelar Sarjana Komputer pada Program Studi S-1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Univeristas Sumatera Utara.

Dengan segala kerendahan hati, penulis ingin menyampaikan rasa hormat dan terimakasih yang sebesar-besarnya kepada semua pihak yang telah membantu dalam penyelesaian skripsi ini. Penulis mengucapkan terimakasih kepada :

1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. 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 S-1 Ilmu Komputer Universitas Sumatera Utara.

4. Ibu Dian Rachmawati S.Si, M.Kom selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran, motivasi dan dukungan kepada penulis dalam pengerjaan skripsi ini.

5. Bapak Handrizal, S.Si, M.Comp.Sc selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran, motivasi dan dukungan kepada penulis dalam pengerjaan skripsi ini.

6. Seluruh dosen dan staf pegawai Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

7. Orangtua penulis yakni Ayahanda Elia Kari Batubara dan Ibunda Alm.

Emmy Dewana Ritonga dan Lia Ritonga serta kakak saya Dian Rizka Batubara dan adik-adik tercinta Misbah Batubara, Bakri Ahmad Batubara, Nurmawaddah Batubara dan Auni Nurafifah Batubara yang selalu memberikan dukungan, semangat serta doa yang selalu menjadi motivasi penulis.

(6)

8. Teman-teman seperjuangan Stambuk 2015 yang telah memberikan banyak bantuan, semangat serta dukungan kepada penulis.

9. Sahabat yang senantiasa memberikan semangat dan doa untuk penulis, M. Reza Prasetyo, Akbar Siddik, Yogi Irhandi Simamora, Gunawan dan Abiyyu Hakam Sembiring.

10. Teman-Teman yang telah mengajari penulis, Zikri Akmal Santoso dan Adi Syahputra Situmorang.

11. Seluruh wadah pembentukan karakter bagi penulis, yang memberikan banyak sekali ilmu serta pengetahuan baru, HMI Komisariat FMIPA USU, HMPPKD (Himpunan Mahasiswa Pemuda Pelajar Kecamatan Dolok), IMAKOPASID (Ikatan Mahasiswa Kota Padang Sidempuan) beserta teman-teman di KPU Fasilkom-TI USU.

12. Dan semua pihak yang terlibat secara langsung maupun tidak langsung yang telah banyak membantu yang tidak bisa disebutkan satu-persatu.

Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan berkat yang melimpah dari Tuhan Yang Maha Kuasa.

Medan, Januari 2020 Penulis,

Rizali Ahmad Batubara

(7)

ABSTRAK

Medan termasuk salah satu kota besar yang ada terdapat Sumatera Utara dan termasuk salah satu kota besar di Indonesia. Di kota ini terdapat beberapa destinasi wisata yang dapat dikunjungi oleh masyarakat. Ketika pengunjung ingin melakukan perjalanan wisata dengan mengunjungi beberapa destinasi maka akan mempersulit pengunjung dalam menentukan rute terdekat yang dapat dilalui. Dan untuk mengetahui rute perjalanan terdekat tersebut, maka diperlukan sebuah sistem yang berfungsi dalam mencari rute perjalanan terdekat yang bisa dilewati oleh pengunjung. Pada penelitian ini, dibuatlah sebuah sistem pencarian rute terdekat untuk perjalanan wisata di kota Medan. Di dalam sistem ini terdapat menu untuk melakukan pencarian rute dengan menyediakan beberapa destinasi wisata yang ada di kota Medan. Dan dalam mendukung proses pencarian rute terpendek dalam sistem ini maka digunakanlah algoritma Steepest Ascent Hill Climbing dan algoritma Best First Search. Kemudian akan dilakukan proses perbandingan antara kedua algoritma baik dari running time maupun bobot jarak yang dihasilkan oleh algoritma yang diapakai. Setelah kedua algoritma diimplementasikan ke dalam sistem dan dilakukan pengujian terhadap kedua algoritma tersebut maka dapat diperoleh bahwa kompleksitas algoritma Steepest Ascent Hill Climbing adalah (n5) dan nilai running time diperoleh 59.3856 ms sedangkan untuk algoritma Best First diperoleh (n3) dan nilai running time 54.6669 ms. Dan dari pengujian kedua algoritma dapat disimpulkan bahwa pencarian dengan menggunakan algoritma Best First Search menghasilkan nilai running time lebih baik dibandingkan dengan algoritma Steepest Ascent Hill Climbing.

Kata kunci : Best First Search, Steepest Ascent Hill Climbing, rute terpendek

(8)

ANALYSIS COMPARISON OF STEEPEST ASCENT HILL CLIMBING ALGORITHM AND BEST FIRST SEARCH ALGORITHM

IN DETERMINING THE SHORTEST ROUTE FOR TOURIST TRAVEL IN MEDAN CITY

ABSTRACT

Medan is one of the major cities in North Sumatra and is one of the major cities in Indonesia. In this city, there are several tourist destinations that can be visited by the public. When visitors want to travel by visiting several destinations, it will be difficult for visitors to determine the shortest route that can be traveled. And to find out the shortest travel route, we need a system that functions in finding the shortest travel route that can be passed by visitors. In this study, a route search system was developed for the nearest tourist trip in the city of Medan. In this system there is a menu to search for routes by providing several tourist destinations in the city of Medan. And in supporting the shortest route search process in this system, the Steepest Ascent Hill Climbing algorithm and the Best First Search algorithm are used. Then the comparison process will be carried out between the two algorithms both from running time and the distance weights produced by the algorithm used. After the two algorithms are implemented into the system and testing of the two algorithms, it can be obtained that the complexity of the Steepest Ascent Hill Climbing algorithm is θ(n5) and the running time value is 59.3856 ms while the Best First algorithm is obtained θ(n3) and the running time value 54.6669 ms. And from the testing of the two algorithms, it can be concluded that the search by using the Best First Search algorithm produces better running time value than the Steepest Ascent Hill Climbing algorithm.

Keywords : Best First Search, Steepest Ascent Hill Climbing, the shortest route

(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Daftar Lampiran xiii

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasa Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodelogi Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 Tinjauan Pustaka 2.1 Graf 6

2.2 Travelling Salesman Problem 7

2.3 Algoritma 8

2.4 Algoritma Steepest Ascent Hill Climbing 9

2.5 Algoritma Best First Search 11

2.6 Kompleksitas Algoritma 15

Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 17

3.1.1 Analisis Masalah 18

3.1.3 Analisis Kebutuhan 19

3.1.4 Analisis Proses 19

3.2 Pemodelan Sistem 28

3.2.1 Use Case Diagram 28

3.2.2 Activity Diagram 29

3.2.3 Sequence Diagram 30

3.3 Flowchart 31

3.3.1 Flowchart Sistem 31

3.3.2 Flowchart Algoritma Best First Search 32

3.3.3 Flowchart Algoritma Steepest Ascent Hill Climbing 32

(10)

3.4 General Arsitektur 33

3.5 Perancangan Antarmuka (Interface) 33

3.5.1 Halaman Home 33

3.5.2 Halaman Proses 34

3.5.3 Halaman Bantuan 35

3.5.4 Halaman Profil 36

Bab 4 Implementasi dan Pengujian Sistem 4.1 Implementasi Sistem 37

4.1.1 Halaman Home 37

4.1.2 Halaman Proses 38

4.1.3 Halaman Bantuan 38

4.1.4 Halaman Profil 39

4.2 Pengujian Program 39

4.2.1 Pengujian Proses Algoritma Steepest Ascent Hill Climbing 40

4.2.2 Perhitungan Manual Algoritma Steepest Ascent Hill Climbing 40

4.2.3 Pengujian Proses Algoritma Best First Search 43

4.2.4 Perhitungan Manual Algoritma Best First Search 43

4.3 Hasil Pengujian 46

4.4 Kompleksitas Algoritma 47

4.4.1 Kompleksitas Algoritma Steepest Ascent Hill Climbing 47

4.4.2 Kompleksitas Algoritma Best First Search 52

Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 55

5.2 Saran 56

Daftar Pustaka 57 Lampiran

(11)

DAFTAR TABEL

Halaman

Tabel 3.1 Daftar Destinasi Wisata 19

Tabel 3.2 Keterangan gambar halaman Home 34

Tabel 3.3 Keterangan gambar halaman Proses 35

Tabel 3.4 Keterangan gambar halaman Bantuan 35

Tabel 3.5 Keterangan gambar halaman Profil 36

Tabel 4.1 Hasil Pengujian 46

Tabel 4.2 Kompleksitas algoritma Steepest Ascent Hill Climbing 48

Tabel 4.3 Kompleksitas algoritma Best First Search 52

(12)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Graf Sederhana 6

Gambar 2.2 Graf Tak Sederhana 6

Gambar 2.3 Graf Berarah 7

Gambar 2.4 Graf Tak Berarah 7

Gambar 2.5 (a) Graf Berbobot (b) Hasil Pencarian Travelling Salesman Problem 8

Gambar 2.6 Contoh Steepest Ascent Hill Climbing 9

Gambar 2.7 Penyelesaian algoritma Steepest Ascent Hill Climbing 10

Gambar 2.8 Iterasi 1 10

Gambar 2.9 Iterasi 2 11

Gambar 2.10 Iterasi 3 11

Gambar 2.11 Contoh Best First Search 12

Gambar 2.12 Penyelesaian dengan algoritma Best First Search 13

Gambar 2.13 State Awal 13

Gmabar 2.14 Iterasi 1 13

Gambar 2.15 Iterasi 2 14

Gambar 2.16 Iterasi 3 14

Gambar 2.17 Grafik Fungsi Big O (Adam, 2011) 15

Gambar 2.18 Grafik Fungsi Big Ω (Adam, 2011) 16

Gambar 2.19 Grafik Fungsi Big Ɵ (Adam, 2011) 16

Gambar 3.1 Diagram Ishikawa 17

Gambar 3.2 Rute Terminal Terpadu Amplas - Mesjid Raya Medan 20 Gambar 3.3 Rute Terminal Terpadu Amplas - Taman Candika 20 Gambar 3.4 Rute Terminal Terpadu Amplas - Taman Wisata Merci 21 Gambar 3.5 Rute Taman Wisata Merci – Taman Candika 21 Gambar 3.6 Rute Taman Wisata Merci – Kebun Binatang Medan 22 Gambar 3.7 Rute Kebun Binatang Medan – Taman Candika 22

Gambar 3.8 Rute Taman Candika – Istana Maimoon 23

Gambar 3.9 Rute Mesjid Raya Medan – Istana Maimoon 23 Gambar 3.10 Rute Istana Maimoon – Museum Perjuangan 24 Gambar 3.11 Rute Istana Maimoon – Kediaman Tjong A Pie 24 Gambar 3.12 Rute Kediaman Tjong A Pie – Museum Perjuangan 25 Gambar 3.13 Rute Kediaman Tjong A Pie – Merdeka Walk 25 Gambar 3.14 Rute Merdeka Walk – Pekan Raya Sumatera Utara 26 Gambar 3.15 Rute Museum Perjuangan – Pekan Raya Sumatera Utara 26 Gambar 3.16 Rute Museum Perjuangan – Penangkaran Buaya 27 Gambar 3.17 Rute Taman Candika – Penangkaran Buaya 27 Gambar 3.18 Rute Pekan Raya Sumatera Utara – Penangkaran Buaya 28

Gambar 3.19 Use case diagram 29

Gambar 3.20 Activity diagram 30

Gambar 3.21 Sequence Diagram 31

Gambar 3.22 Flowchart Sistem 31

(13)

Gambar 3.23 Flowchart Algoritma Steepest Ascent Steepest Hill Climbing 32

Gambar 3.24 Flowchart Algoritma Best First Search 32

Gambar 3.25 General Arsitektur 33

Gambar 3.26 Halaman Home 34

Gambar 3.27 Halaman Proses 34

Gambar 3.28 Halaman Bantuan 35

Gambar 3.29 Halaman Profil 36

Gambar 4.1 Tampilan Halaman Home 37

Gambar 4.2 Tampilan Halaman Proses 38

Gambar 4.3 Tampilan Halaman Bantuan 39

Gambar 4.4 Tampilan Halaman Profil 39

Gambar 4.5 Hasil pengujian algoritma Steepest Ascent Hill Climbing 40 Gambar 4.6 Hasil perhitungan manual algoritma Steepest Ascent Hill Climbing 41

Gambar 4.7 Langkah 1 41

Gambar 4.8 Langkah 2 42

Gambar 4.9 Langkah 3 42

Gambar 4.10 Langkah 4 43

Gambar 4.11 Hasil pengujian algoritma Best First Search 43 Gambar 4.12 Hasil perhitungan manual algoritma Best First Search 44

Gambar 4.13 Langkah 1 44

Gambar 4.14 Langkah 2 45

Gambar 4.15 Langkah 3 45

Gambar 4.16 Langkah 4 45

Gambar 4.17 Langkah 5 46

Gambar 4.18 Perbandingan Running Time Terhadap Jumlah Destinasi 47 Gambar 4.19 Perbandingan Bobot Jarak Terhadap Jumlah Destinasi 47

(14)

DAFTAR LAMPIRAN

Halaman

Lampiran 1 Listing Program A-1

Lampiran 3 Curriculum Vitae B-1

(15)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Medan termasuk salah satu kota besar yang ada terdapat Sumatera Utara dan termasuk salah satu kota besar di Indonesia. Di kota tersebut terdapat beberapa tempat wisata yang bisa dikunjungi seperti Istana Maimmon, Taman Buaya Asam Kumbang, Kantor Pos, Museum Perjuangan, dan lainnya. Pengunjung biasanya melakukan perjalanan wisata untuk mengunjungi beberapa destinasi wisata.

Dikarenakan banyaknya destinasi wisata yang ingin dikunjungi akan mempersulit pengunjung dalam menentukan rute yang ingin dilewati untuk menghemat waktu dalam melakukan perjalanan wisata. Maka untuk mempermudah pengunjung dalam melakukan perjalanan tersebut dibutuhkan sebuah sistem untuk menentukan rute terpendek yang menghubungkan beberapa destinasi wisata yang ingin dikunjungi.

Travellling Salesman Problem merupakan salah satu metode untuk memecahkan masalah dalam pencarian rute terpendek atau jarak minimum untuk seorang pengunjung dari titik awal ke titik lainnya dan tepat kembali ketitik awal keberangkatan. Travelling Salesman Problem ini diterapkan dengan menggunakan graf berbobot dimana bobot tersebut merupakan nilai jarak antara satu titik dengan titik lainnya. Dalam menentukan rute terpendek ini dibutuhkan suatu algoritma yang diantaranya adalah algoritma Algoritma Steepest Ascent Hill Climbing dan Algoritma Best First Search.

Pada jurnal penelitian terdahulu (Rike Nur Setiyani dan Muchammad Abrori) dilakukan pemecahan permasalahan Travelling Salesman Problem dalam menemukan rute terpendek untuk perjalanan destinasi wisata kota Yogyakarta dengan menerapkan algoritma Best First Search. Menyimpulkan bahwa Langkah untuk mencari rute terbaik perjalanan wisata menggunakan Algoritma Best-First Search secara manual dimulai dengan merepresentasikan permasalahan ke dalam bentuk graf lengkap, kemudian dicari nilai dari setiap simpul ke simpul lainnya.

(16)

Selanjutnya perjalanan dimulai dari simpul awal hingga seluruh simpul terlewati dan kembali ke simpul awal.

Pada jurnal penelitian yang lain (Muhammad Irfan) menggunakan algoritma Hill Climbing dalam menyelesaikan permasalahan Travelling Salesman Problem untuk menentukan rute terpendek. Didapat kesimpulan bahwa dalam melakukan pengujian panjang rute Simple Hill Climbing dikerjakan dari kiri ke kanan.

Sedangkan Steepest Ascent Hill Climbing harus membandingkan nilai heuristik dari seluruh lintasan dan dipilih nilai heuristik yang terkecil untuk dijadikan new state. Dari kedua metode tersebut, Steepest Ascent Hill Climbing lebih efektif dalam menyelesaikan masalah Travelling Salesman Problem.

Dari latar belakang yang telah dijelaskan maka penulis ingin membandinkan kedua algoritma tersebut dengan mengambil topik penelitian yang berjudul

“Analisis Perbandingan Algoritma Steepest Ascent Hill Climbing dan Algoritma Best First Search dalam Menentukan Rute Terpendek untuk Perjalanan Wisata di Kota Medan”.

1.1. Rumusan Masalah

Permasalahan yang dibahas adalah pengunjung yang mengalami kesulitan dalam menentukan rute terpendek berdasarkan jarak untuk perjalanan wisata di kota Medan. Maka diselesaikanlah masalah tersebut dengan mengimplementasikan Algoritma Steepest Ascent Hill Climbing dan Algoritma Best First Search serta analisis perbandingan dari algoritma yang dipakai.

1.2. Batasan Masalah

Dalam melakukan penelitian ini, peneliti membatasi ruang masalah yang akan diteliti. Batasan-batasan masalah yang digunakan adalah :

1. Bobot yang dipakai dalam Travelling Salesman Problem adalah jarak. Dan untuk kemacetan jalan tidak berpengaruh terhadap proses pencarian rute terpendek.

2. Tempat wisata yang dikunjungi disesuaikan dengan kebutuhan user dari total 10 tempat wisata yang ada di kota Medan yaitu Mesjid Raya Medan, Istana Maimmon, Merdeka Walk, Kediaman Tjong A Fie, Pekan Raya Sumatera

(17)

Utara, Taman Candika, Taman Buaya Asam Kumbang, Taman Wisata Merci, Museum Perjuangan dan Kebun Binatang Medan.

3. Implementasi hanya menampilkan data vertex dan edge saja.

4. Titik awal perjalanan dimulai Terminal Amplas Medan.

5. Parameter yang dipakai untuk perbandingan kinerja kedua algoritma adalah jarak (m), running time (ms) dan kompleksitas algoritma (big θ).

6. Bahasa pemrograman yang digunakan yaitu bahasa C# pada aplikasi Microsoft Visual Studio 2017

1.2 Tujuan Penelitian

Tujuan dilakukan penelitian ini adalah untuk menerapkan algoritma serta mengetahui tingkat efektifitas dan efisiensi algoritma tersebut dalam mencari rute terpendek perjalanan wisata di kota Medan dengan memakai algoritma Steepest Ascent Hill Climbing dan algoritma Best First Search.

1.3 Manfaat Penelitian

Manfaat yang diharapkan dapat dihasilkan dari proses penelitian ini agar dapat mempermudah pengunjung dalam menentukan rute terpendek untuk perjalanan wisata di kota Medan.

1.4 Metodologi Penelitian

Metode penelitian yang dilakukan dalam penelitian ini adalah:

1. Studi Pustaka

Pada tahap ini penelitian dimulai dengan mencari referensi yang dari jurnal, buku, artikel ilmiah, dan makalah atau dari berbagai sumber yang berhubungan dengan Algoritma Travelling Salesman Problem, Algoritma Steepest Ascent Hill Climbing, Algoritma Best First Search dan mencari dari berbagai sumber mengenai titik dan jarak antar destinasi wisata di kota Medan.

2. Analisis dan Perancangan

Pada tahap ini penulis melakukan analisis terhadap berbagai kebutuhan dalam penelitian yang dicapai dari implementasi Algoritma Steepest Acsent Steepest

(18)

Hill Climbing dan Algoritma Best First Search dan segera melakukan perancangan Diagram Alir (Flowchart), Unified Modeling Language (UML), dan Diagram Ishikawa.

3. Implementasi Sistem

Pada bagian ini akan dilakukan implementasi pada rancangan sistem menggunakan bahasa pemrograman Visual Studio 2017.

4. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian pada sistem yang dirancang.

5. Dokumentasi

Pada tahap ini dilakukan pembuatan laporan dari hasil analisis, perancangan, implementasi dan pengujian sistem dalam format penulisian berbentuk skripsi.

1.5 Sistematika Penulisan

Sistematika penulisan pada skripsi ini meiliki beberapa bagian, yaitu:

BAB 1: PENDAHULUAN

Bab ini berisi mengenai latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan skripsi.

BAB 2: TINJAUAN PUSTAKA

Bab ini berisi teori-teori yang digunakan untuk mendukung penulisan tugas akhir, antara lain Algoritma Steepest Ascent Hill Climbing, Algoritma Best First Search, Traveling Salesman Problem (TSP) dan Kompleksitas Algoritma.

BAB 3: ANALISIS DAN PERANCANGAN

Bab ini berisi mengenai analisis dan perancangan sistem, pembuatan flowchart, Unified Modeling Language (UML), Design Interface serta cara kerja sistem.

(19)

BAB 4: IMPLEMENTASI DAN PENGUJIAN

Pada bab ini berisi mengenai hasil pengujian, implementasi dari programn yang sebelumnya telah dirancang dan analisis program

BAB 5: KESIMPULAN DAN SARAN

Bab ini memuat tentang kesimpulan dari pembahasan dan saran berdasarkan hasil pengujian yang dilakukan agar dapat bermanfaat untuk penelitian selanjutnya.

(20)

BAB II

TINJAUAN PUSTAKA

2.1 Graf

Graf merupakan pasangan ( , ), di mana adalah himpunan titik (vertices) dan adalah himpunan sisi (edge). Graf bisa diartikan sebagai kumpulan titk-titik yang dihubungkan oleh garis atau dengan kata lain setiap sisi di E menghubungkan dua titik dari V (Muchammad Abrori, 2015). Berikut ini merupakan beberapa jenis- jenis graf.

a. Graf Sederhana

Graf Sederhana merupakan suatu graf yang tidak memiliki arah dan sisi ganda maupun gelang (loop). Graf sederhana disajikan pada Gambar 2.1.

Gambar 2.1 Graf Sederhana b. Graf Tak Sederhana

Graf Tak Sederhana merupakan suatu graf yang mempunyai dua arah dan gelang (loop). Graf tidak sederhana disajikan pada Gambar 2.2.

Gambar 2.2 Graf tak sederhana

(21)

Graf tidak selalu berdasarkan dengan adanya dua arah atau gelang (loop), namun graf juga bisa digolongkan berdasarkan berdasarkan arahnya. Graf ini digolongkan menjadi dua model, yakni:

c. Graf Berarah

Graf berarah merupakan graf yang setiap sisinya dilengkapi dengan atau memiliki arah dan tidak mempunyai dua sisi yang berlawanan. Graf Berarah disajikan pada Gambar 2.3.

Gambar 2.3 Graf Berarah d. Graf Tidak Berarah

Graf Tidak Berarah merupakan graf yang setiap sisinya tidak mempunyai arah.

Graf Tak Berarah disajikan pada Gambar 2.4.

Gambar 2.4 Graf Tak Berarah

2.2 Travelling Salesman Problem

Permasalahan Traveling Salesman Problem merupakan suatu masalah dimana salesman saat melakukan perjalanan harus singgah disemua kota dan salesman tersebut hanya boleh mengunjungi kota yang sama tepat satu kali. Dan perjalanan seorang salesman harus berakhir tepat di kota awal keberangkatan. Tujuannya

(22)

adalah untuk memperoleh rute perjalanan dengan jarak dan biaya paling minimum (Muhammad Irfan, 2017).

Secara singkat karakteristik dari permasalahan Travelling Salesman Problem adalah sebagai berikut:

 Perjalanan dimulai dan berakhir di kota yang sama

 setiap kota hanya boleh dikunjungi satu kali

 Perjalanan selesai apabila semua kota telah dikunjungi

Untuk contoh Travelling Salesman Problem disajikan pada gambar 2.5, dari gambar tersebut diperoleh rute terpendek untuk melalui semua titik adalah melalui rute A-B-D-F-E-C-A dengan bobot 29.

(a) (b)

Gambar 2.5 (a) Graf Berbobot dengan (b) Hasil Pencarian Travelling Salesman Problem

2.3 Algoritma

Kata algoritma diserap dari nama seorang penulis buku yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al Khuwarizmi. Beliau merupakan matematikawan yang berasal dari Persia pada Abad Ke-9. Kata algoritma sendiri berasal dari kata algorism yang memiliki arti proses menghitung dengan angka Arab (Ritayani, 2016).

Secara umum algoritma itu merupakan sebuah metode yang tersusun dari langkah-langkah yang yang bertujuan untuk memecahkan suatu masalah tertentu (Ritayani, 2016).

(23)

2.4 Algoritma Steepest Ascent Hill Climbing

Algortima Steepest Ascent Hill Climbing merupakan metode algoritma yang banyak digunakan untuk permasalahan optimasi. Salah satu penerapannya adalah untuk mencari rute yang terpendek dengan cara meminimumkan nilai dari fungsi optimasi yang ada (Eka, 2015).

Metode Steepest Ascent Hill Climbing disaat menentukan next state adalah dengan membandingkan nilai current state dengan succesors yang terhubung dengannya sehingga next state nya merupakan successor yang paling baik atau paling mendekati tujuan (Eka, 2015).

Cara kerja dari algoritma Stepest Ascent Hill Climbing adalah sebagai berikut, lakukan tahap-tahap ini sampai diperoleh goal state atau sampai tidak ada lagi operator (state) yang ingin digunakan:

1. Pilih operator bebas untuk digunakan sebagai current state. Jadikan operator tersebut untuk mencari new state.

2. Evaluasi current state dan dapatkan semua successor untuk dijadikan sebagai next state. Kemudian evaluasi setiap successor dan beri nilainya.

3. Jika ada satu successor yang ditemukan memiliki nilai terbaik dari current statenya,maka gunakan successor itu menjadi new current state. Lakukan operasi 1 sampai 3 hingga ditemukan current state sama dengan goal state.

Berikut pada gambar 2.6 merupakan contoh penerapan Steepest Ascent Hill Climbing pada Travelling Salesman Problem.

Gambar 2.6 Contoh Steepest Ascent Hill Climbing

Misalkan current state yang dipilih adalah ABCDA. Nilai ABCDA adalah 8+5+6+7 =26. New state dapat diperoleh dari kombinasi titik-titik tersebut dengan persamaan 1.

(24)

... (Persamaan 1) C =

=

= 3

Maka diperoleh 3 kombinasi untuk mendapatakan successor yaitu:

a) Tukar 2,3 (tukar posisi titik ke-2 dengan titik ke-3) b) Tukar 2,4 (tukar posisi titik ke-2 dengan titik ke-4) c) Tukar 3,4 (tukar posisi titik ke-3 dengan titik ke-4)

Maka penyelesaian dengan menerapkan algoritma Steepest Ascent Hill Climbing disajikan pada gambar 2.7.

Gambar 2.7 Penyelesaian algoritma Steepest Ascent Hill Climbing Berikut langkah-langkah dalam menentukan rute terpendek menggunakan Steepest Ascent Hill Climbing.

 Iterasi 1

Gambar 2.8 Iterasi 1

(25)

o Pada gambar 2.8 dilakukan evaluasi pada setiap successor, dan diperoleh successor ACBDA lebih baik dari ABCDA (current state). ACBDA dijadikan current state untuk iterasi berikutnya.

 Iterasi 2

Gambar 2.9 Iterasi 2

o Successor ABCDA merupakan current state sebelumnya dan tidak dievaluasi lagi.

o Pada gambar 2.9 dilakukan evaluasi pada setiap successor, dan diperoleh successor ADBCA sama dengan ACBDA (current state). ADBCA dijadikan current state untuk iterasi berikutnya.

 Iterasi 3

Gambar 2.10 Iterasi 3

o Successor ACBDA merupakan current state sebelumnya dan tidak dievaluasi lagi.

o Pada gambar 2.10 dilakukan evaluasi pada setiap successor, tidak ditemukan nilai terbaik dari ADBCA (current state). Maka rute ADBCA merupakan solusi optimum untuk contoh ini dengan bobot sebesar 19.

2.5 Algoritma Best First Search

Algoritma Best First Search diasumsikan dalam proses pencarian rute terdekat, dimana nilai terbaik adalah nilai yang lebih minimum dari hasil perbandingan dengan nilai lain. Setelah titik yang memiliki nilai terbaik ditemukan dan bukan merupakan goal state maka dilakukan kembali pengecekan pada titik selanjutnya pada kedalaman yang sama untuk memperoleh nilai terbaik. Kemudian titik

(26)

tersebut dibuka dan dicek apakah merupakan goal statenya. Apabila goal state belum diperoleh, lakukan proses yang sama pada titik berikutnya (Muchammad Abrori, 2015).

Untuk menerapkan algoritma ini, dibutuhkan dua buah indeks yaitu OPEN dan CLOSE. Dimana indeks OPEN berfungi untuk menampung titik-titik yang belum dievaluasi dan indeks CLOSE berfungsi untuk menampung titik-titik yang sudah dibandingkan. Cara kerja algoritma Best First Search adalah sebagai berikut (Muchammad Abrori, 2015).

1. Tentukan titik awal dan letakkan pada antrian OPEN.

2. Ulangi sampai goal state diperoleh atau sampai antrian OPEN kosong.

i. Pilih titik terbaik dari dalam OPEN.

ii. Jika titik itu sama dengan goal state, maka proses berhenti. Jika tidak, masukkan titik itu ke dalam antrian CLOSE.

3 Bangkitkan titik tesebut 4 Untuk setiap titik kerjakan :

i. Apabila titik tersebut tidak pernah dibangkitkan,maka evaluasi titik itu dan masukkan ke OPEN.

ii. Jika titik tersebut sudah dibangkitkan sebelumnya, ubah lintasan ke rute baru yang lebih baik daripada rute sebelumnya. Hapus titik itu dari antrian OPEN .

Berikut disajikan pada gambar 2.11 merupakan contoh penerapan algoritma Best First Search pada Travelling Salesman Problem.

Gambar 2.11 Contoh Best First Search

Maka penyelesaian algoritma Best First Search goal state disajikan pada gambar 2.12.

(27)

. Gambar 2.12 Penyelesaian dengan algoritma Best First Search

Berikut langkah-langkah dalam menentukan rute terpendek menggunakan algoritma Best First Search.

 Iterasi 1

Gambar 2.13 State Awal

Gambar 2.13 merupakan state awal A dimasukkan ke antrian OPEN dan dijadikan bestnode, karena hanya titik A berada pada antrian OPEN kemudian dipindahkan ke antrian CLOSE. Kemudian semua successor dibangkitkan, yaitu B, C dan D. Maka menghasilkan antrian OPEN = [B, C, D] dan antrian CLOSE = [A].

Gambar 2.14 Iterasi 1

(28)

Pada gambar 2.14 diperoleh titik terbaik adalah C=3 dan dipilih sebagai bestnode. Kemudian C dipindahkan ke antrian CLOSE dan didapatkan lintasan A- C. Maka diperoleh antrian CLOSE = [A, C] dan pada antrian OPEN = [B, D].

 Iterasi 2

Maka diperoleh antrian CLOSE yang baru yaitu titik C, kemudian successor dibangkitkan, maka diperoleh yaitu B dan D.

Gambar 2.14 Iterasi 2

Pada gambar 2.14 diperoleh titik terbaik adalah B=5 dan dipilih sebagai bestnode. Kemudian B dipindahkan ke antrian CLOSE dan didapatkan lintasan rute A-C-B. Maka diperoleh CLOSE = [A, C, B] dan pada antrian OPEN = [D].

 Iterasi 3

Diperoleh nilai baru dari antrian CLOSE, yaitu titik B, kemudian successor dibangkitkan,maka diperoleh yaitu D.

Gambar 2.16 Iterasi 3

Karena D satu-satunya antrian OPEN Pada gambar 2.16, maka D = 6 dipilih sebagai node terbaik. Dari langkah ini diperoleh antrian OPEN = [ ] dan antrian CLOSE = [A, C, B, D]. Proses iterasi akan berhenti karena seluruh titik didalam antrian OPEN sudah dikunjungi dan antrian OPEN sudah kosong. Karena perjalanan harus berakhir dititik awal, maka pohon pencarian menggunakan algoritma Best First Search untuk memperoleh rute terbaik adalah titik A-C-B–D- A, dengan bobot 3+5+4+7 = 19 .

(29)

2.6. Kompleksitas Algoritma

Sebuah Algoritma tidak dinilai dari hanya harus benarnya saja, tetapi dinilai juga dari tingkat keefisienannya. Keefesienan algoritma diukur dari berapa banyak waktu dan ruang memori yang dibutuhkan untuk menjalankan algoritma tersebut.

Dimana algoritma yang efisien adalah algoritma yang meminimumkan kebutuhan waktu dan ruang serta memori yang digunakan (Elliana, 2017). Notasi asimtotik adalah notasi yang menyatakan kompleksitas suatu algoritma dan dibagi menjadi tiga yaitu :

1. Big-O (O)

Fungsi T(n) dikatakan berada di dalam O(g(n)), dinyatakan dengan T(n) € O(g(n)), apabila T(n) dibatasi oleh beberapa konstanta dikali g(n) untuk seluruh n. Jika ada konstanta c positif dan bilangan bulat tak negatif N0 sehingga T(n) ≤ cg(n) untuk semua n ≥ N0 (Adam, 2011). Grafik fungsi big O disajikan pada

gambar 2.17.

Gambar 2.17 Grafik Fungsi Big O (Adam, 2011) 2. Big Theta (Ɵ)

Fungsi T(n) dikatakan berada di dalam Ω(g(n)), dinyatakan dengan T(n) € O(g(n)), apabila T(n) dibatasi oleh beberapa konstanta dikali g(n) untuk seluruh n. Jika ada konstanta c positif dan bilangan bulat tak negatif N0 sehingga T(n) ≥ cg(n) untuk semua n ≥ N0 (Adam, 2011). Grafik fungsi big Ω disajikan pada gambar 2.18.

(30)

Gambar 2.18 Grafik Fungsi Big Ω (Adam, 2011) 3. Big Omega (Ω)

Fungsi T(n) dikatakan berada di dalam Ɵ(g(n)), dinyatakan dengan T(n) € O(g(n)), apabila T(n) dibatasi oleh beberapa konstanta dikali g(n) untuk seluruh n. Jika ada konstanta c positif dan bilangan bulat tak negatif N0 sehingga c2g(n) ≤ T(n) ≤ c1g(n) untuk semua n ≥ N0 (Adam, 2011). Grafik fungsi big Ɵ disajikan pada gambar 2.19.

Gambar 2.19 Grafik Fungsi Big Ɵ (Adam, 2011)

(31)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem merupakan suatu tahapan untuk menghasilkan pemahaman terhadap kebutuhan sistem beserta dengan tugas-tugas yang dapat dikerjakan oleh sistem. Tahapan analisis terdiri dari analisis masalah, analisis kebutuhan dan analisis proses.

3.1.1. Analisis Masalah

Adapun masalah dalam penelitian ini salah satunya adalah bagaimana pengunjung dapat menentukan rute terpendek untuk perjalanan wisata di kota Medan. Adapun untuk mengidentifikasikan masalah tersebut, maka diperlukanlah sebuah Diagram Ishikawa. Diagram Ishikawa merupakan diagram yang menampilkan sebab akibat dari masalah secara spesifik.

Dengan menggunakan diagram ini, kita dapat mengidentifikasi dan menggambarkan suatu masalah berserta dengan sebab akibat suatu permasalahan tersebut. Diagram Ishikawa disajikan pada gambar 3.1.

Gambar 3.1 Diagram Ishikawa

(32)

3.1.2. Analisis kebutuhan

Analisis kebutuhan terbagi menjadi dua golongan, yaitu golongan kebutuhan fungsional dan golongan kebutuhan non-fungsional.

1. Kebutuhan Fungsional

Kebutuhan fungsional merupakan deskripsi mengenai fungsi-fungsi yang dapat dilakukan atau tersedia pada sistem. Kebutuhan fungsional yang terdapat di dalam sistem adalah sebagai berikut:

a. Sistem dapat membaca titik-titik tujuan yang diinputkan oleh user.

b. Sistem mampu menghitung dan menampilkan hasil pencarian rute optimum dengan memakai algoritma Steepest Ascent Hill Climbing dan algoritma Best First Search.

c. Sistem mampu menghitung dan menentukan running time dari algortima yang digunakan.

2. Kebutuhan Non-Fungsional

Kebutuhan non-fungsional pada merupakan deskripsi fitur, karakteristik beserta batasan lainnya. kebutuhan non-fungsional yang terdapat di dalam sistem adalah sebagai berikut:

a. Kinerja Sistem

Sistem yang akan dibuat mampu menampilkan hasil pencarian dari algoritma yang diterapkan di dalam sistem.

b. User Friendly

Tampilan sistem yang akan dibbuat mudah digunakan dan menarik bagi pengguna.

c. Hemat Biaya

Sistem yang akan dibuat tidak membutuhkan perangkat tambahan yang dapat mengeluarkan biaya tambahan.

d. Manajemen Kualitas Sistem

Sistem yang akan dibuat harus mempunyai kualitas yang baik dan hasil yang tepat.

(33)

3.1.3. Analisis Proses

Dipenelitian ini algoritma yang dipakai untuk penyelesaian permasalahan menentukan rute terpendek dalam perjalanan wisata adalah dengan mengunakan algortima Steepest Ascent Hill Climbing dan algoritma Best First Search.

Sebelum dilakukan pencarian rute terdekat, langkah awal user akan menginputkan titik awal perjalanan dan titik tujuan yang ingin dikunjungi. Setelah itu, user akan memilih algoritma mana yang akan digunakan untuk mencari rute optimum antara algoritma Steepest Ascent Hill Climbing dan algoritma Best First Search. Setelah algoritma dipilih, sistem akan menampilkan hasil pencarian berupa rute optimum, total jarak perjalanan, serta running time dari algoritma yang dipilih user.

Pada penelitian ini, jumlah destinasi wisata yang dijadikan sebagai subjek penelitian berjumlah 10 destinasi wisata dan 1 titik awal perjalanan. Daftar destinasi wisata yang dijadikan sebagai titik kunjungan dalam sistem ini disajikan pada Tabel 3.1 berikut:

Tabel 3.1 Daftar Destinasi Wisata

No. Nama Titik Bobot Jarak

(m)

1 Terminal Terpadu Amplas – Mesjid Raya Medan 7.100

2 Terminal Terpadu Amplas – Taman Candika 8.700

3 Terminal Terpadu Amplas – Taman Wisata Merci 8.800

4 Taman Wisata Merci – Taman Candika 4.000

5 Taman Wisata Merci – Kebun Binatang Medan 11.700

6 Kebun Binatang Medan – Taman Candika 9.900

7 Taman Candika – Istana Maimoon 8.300

8 Taman Candika - Penangkaran Buaya Asam Kumbang 9.700

9 Mesjid Raya Medan – Istana Maimoon 600

10 Istana Maimoon – Museum Perjuangan 2.800

11 Istana Maimoon – Kediaman Tjong A Pie 1.300

12 Kediaman Tjong A Pie - Museum Perjuangan 1.500

13 Kediaman Tjong A Pie – Merdeka Walk 600

14 Merdeka Walk – Pekan Raya Sumatera Utara 5.800

15 Museum Perjuangan – Pekan Raya Sumatera Utara 6.100

(34)

16 Museum Perjuangan – Penangkaran Buaya Asam Kumbang 9.500 17 Pekan Raya Sumatera Utara - Penangkaran Buaya Asam Kumbang 6.300

Untuk bobot jarak antar destinasi wisata diambil dari data google maps. Dan bobot jarak antar destinasi wisata diperoleh sebagai berikut :

1. Rute Terminal Terpadu Amplas - Mesjid Raya Medan

Bobot dari rute Terminal Terpadu Amplas - Mesjid Raya Medan disajikan pada Gambar 3.2.

Gambar 3.2 Rute Terminal Terpadu Amplas - Mesjid Raya Medan 2. Rute Terminal Terpadu Amplas - Taman Candika

Bobot dari rute Terminal Terpadu Amplas - Taman Candika disajikan pada Gambar 3.3 .

Gambar 3.3 Rute Terminal Terpadu Amplas - Taman Candika

(35)

3. Rute Terminal Terpadu Amplas - Taman Wisata Merci

Bobot dari rute Terminal Terpadu Amplas - Taman Wisata Merci disajikan pada Gambar 3.4

. Gambar 3.4 Rute Terminal Terpadu Amplas - Taman Wisata Merci 4. Rute Taman Wisata Merci – Taman Candika

Bobot dari rute Taman Wisata Merci – Taman Candika disajikan pada Gambar 3.5.

Gambar 3.5 Rute Taman Wisata Merci – Taman Candika

(36)

5. Rute Taman Wisata Merci – Kebun Binatang Medan

Bobot dari rute Taman Wisata Merci – Kebun Binatang Medan disajikan pada Gambar 3.6.

Gambar 3.6 Rute Taman Wisata Merci – Kebun Binatang Medan 6. Rute Kebun Binatang Medan – Taman Candika

Bobot dari rute Kebun Binatang Medan – Taman Candika disajikan pada Gambar 3.7.

Gambar 3.7 Rute Kebun Binatang Medan – Taman Candika

(37)

7. Rute Taman Candika – Istana Maimoon

Bobot dari rute Taman Candika – Istana Maimoon disajikan pada Gambar 3.8.

Gambar 3.8 Rute Taman Candika – Istana Maimoon 8. Rute Mesjid Raya Medan – Istana Maimoon

Bobot dari rute Mesjid Raya Medan – Istana Maimoon disajikan pada Gambar 3.9.

Gambar 3.9 Rute Mesjid Raya Medan – Istana Maimoon

(38)

9. Rute Istana Maimoon – Museum Perjuangan

Bobot dari rute Istana Maimoon – Museum Perjuangan disajikan pada Gambar 3.10

. Gambar 3.10 Rute Istana Maimoon – Museum Perjuangan 10. Rute Istana Maimoon – Kediaman Tjong A Pie

Bobot dari rute Istana Maimoon – Kediaman Tjong A Pie disajikan pada Gambar 3.11.

Gambar 3.11 Rute Istana Maimoon – Kediaman Tjong A Pie

(39)

11. Rute Kediaman Tjong A Pie – Museum Perjuangan

Bobot dari rute Kediaman Tjong A Pie – Museum Perjuangan disajikan pada Gambar 3.12.

Gambar 3.12 Rute Kediaman Tjong A Pie – Museum Perjuangan 12. Rute Kediaman Tjong A Pie – Merdeka Walk

Bobot dari rute Kediaman Tjong A Pie – Merdeka Walk disajikan pada Gambar 3.13.

Gambar 3.13 Rute Kediaman Tjong A Pie – Merdeka Walk

(40)

13. Rute Merdeka Walk – Pekan Raya Sumatera Utara

Bobot dari rute Merdeka Walk – Pekan Raya Sumatera Utara disajikan pada Gambar 3.14.

Gambar 3.14 Rute Merdeka Walk – Pekan Raya Sumatera Utara 14. Rute Museum Perjuangan – Pekan Raya Sumatera Utara

Bobot dari rute Museum Perjuangan – Pekan Raya Sumatera Utara disajikan pada Gambar 3.15.

Gambar 3.15 Rute Museum Perjuangan – Pekan Raya Sumatera Utara

(41)

15. Rute Museum Perjuangan – Penangkaran Buaya

Bobot dari rute Museum Perjuangan – Penangkaran Buaya disajikan pada Gambar 3.16.

Gambar 3.16 Rute Museum Perjuangan – Penangkaran Buaya 16. Rute Taman Candika – Penangkaran Buaya

Bobot dari rute Taman Candika – Penangkaran Buaya disajikan pada Gambar 3.17.

Gambar 3.17 Rute Taman Candika – Penangkaran Buaya

(42)

17. Rute Pekan Raya Sumatera Utara – Penangkaran Buaya

Bobot dari rute Pekan Raya Sumatera Utara – Penangkaran Buaya disajikan pada Gambar 3.18.

Gambar 3.18 Rute Pekan Raya Sumatera Utara – Penangkaran Buaya

3.2. Pemodelan Sistem

Pemodelan sistem merupakan suatu gambaran peran dan kondisi dari bagian- bagian yang berperan dalam sistem yang akan dibangun. Sistem ini dirancang dengan menggunakan Use Case Diagram, Activity Diagram dan Sequence Diagram.

3.2.1. Use Case Diagram

Untuk menganalisis komponen yang berperan dalam sistem yang akan dibangun, maka digunakan use case diagram agar proses penganalisis komponen dapat dilakukan dengan mudah. Use case diagram merupakan interaksi antara user dengan sistem. Use Case Diagram disajikan pada Gambar 3.19.

(43)

Gambar 3.19 Use case diagram

Gambar Use Case Diagram yang disajikan pada gambar 3.19, user menginputkan titik awal perjalanan dan titik-titik yang ingin dikunjungi.

selanjutnya pencarian rute terpendek dilakukan dengan menggunakan salah satu algoritma Steepest Ascent Hill Climbing dan algoritma Best First Search. Sistem akan menampilkan rute terpendek, jarak dan running time dari algoritma yang digunakan.

3.2.2. Activity Diagram

Activity Diagram merupakan gambaran alur kerja sebuah dari sistem yang dimulai dari bagaimana suatu sistem mengawali, memproses dan mengakhiri proses kerja tersebut. Activity Diagram disajikan pada Gambar 3.20.

(44)

Gambar 3.20 Activity diagram

Gambar Activity Diagram yang disajikan pada gambar 3.20, dimana user menginputkan titik awal perjalanan dan titik-titik yang ingin dikunjungi.

selanjutnya user memilih algortima yang ingin digunakan. Setelah itu sistem akan menampilkan rute terpendek, jarak dan running time dari algoritma yang digunakan.

3.2.3 Sequence Diagram

Sequence Diagram merupakan gambaranobjek-objek yang saling berinterkasi dalam suatu sistem. Sequence Diagram disajikan pada Gambar 3.21.

(45)

Gambar 3.21 Sequence Diagram 3.3. Flowchart

Flowchart merupakan representasi yang menggambarkan setiap langkah-langkah yang saling berkaitan pada suatu proses (Abdillah, 2009).

3.3.1. Flowchart Sistem

Gambar 3.22 Flowchart Sistem

(46)

3.3.2 Flowchart Algoritma Steepest Acsent Steepest Hill Climbing

Gambar 3.23 Flowchart Algoritma Steepest Ascent Steepest Hill Climbing 3.3.3 Flowchart Algoritma Best First Search

Gambar 3.24 Flowchart Algoritma Best First Search

(47)

3.4. General Arsitektur

General arsitektur merupakan suatu representasi dari sebuah sistem yang menggambarkan proses, alur dan interaksi antar komponen dalam suatu sistem.

Penjabaran general arsitektur disajikan pada gambar 3.25.

Gambar 3.25 General Arsitektur

Tahap awal dalam implementasi program adalah user menginputkan titik tujuan. Hasil inputan akan diproses dengan dua pilihan algoritma yaitu dengan memakai algoritma Steepest Ascent Hill Climbing maupun algoritma Best First Search. Setelah proses selesai, program akan menampilkan rute terdekat perjalanan wisata.

3.5. Perancangan Antarmuka

Perancangan antarmuka adalah kebutuhan primer dalam membangun sebuah sistem. Perancangan antarmuka berfungsi untuk mempermudah user dalam menggunakan sistem.

3.5.1. Halaman Home

Halaman Home merupakan halaman yang ditampilkan pertama kali untuk user disaat sistem dijalankan. Tampilan halaman Home disajikan pada gambar 3.26.

(48)

Gambar 3.26 Halaman Home

Keterangan gambar 3.26 disajikan pada tabel 3.2 sebagai berikut : Tabel 3.2 Keterangan gambar halaman Home

No. Keterangan

1 Label untuk menampilkan judul skripsi 2 Label untuk menampilkan nama dan nim 3 PictureBox menampilkan logo fakultas

4 Label untuk menampilkan nama program studi dan fakultas 5 Button untuk masuk keproses pencarian

3.5.2. Halaman Proses

Halaman Proses merupakan halaman untuk melakukan proses pencarian, dimana user akan memilih titik awal perjalanan, titik tujuan dan algoritma yang ingin digunakan dalam melakukan proses pencarian. Tampilan halaman Proses disajikan pada gambar 3.27

Gambar 3.27 Halaman Proses

(49)

Keterangan gambar 3.27 disajikan pada tabel 3.3 sebagai berikut : Tabel 3.3 Keterangan gambar halaman proses

No. Keterangan

1 Menu untuk menampilkan proses pencarian 2 Menu untuk menampilkan bantuan sistem 3 Menu untuk menampilkan profil mahasiswa 4 PictureBox untuk menampilkan graf terbentuk 5 CheckBox untuk memilih titik tujuan destinasi wisata 6 Button untuk memilih dan proses algoritma

7 TextBox untuk menampilkan Rute Terbentuk 8 TextBox untuk menampilkan Jarak Tempuh

9 TextBox untuk menampilkan Running Time algoritma 10 Button untuk Reset

11 Button untuk Exit 3.5.3. Halaman Bantuan

Halaman Bantuan memuat mengenai tata cara pemakaian sistem. Tampilan halaman Profil disajikan pada gambar 3.28

Gambar 3.28 Halaman Bantuan

Keterangan gambar 3.28 disajikan pada tabel 3.4 sebagai berikut : Tabel 3.4 Keterangan gambar halaman profil

No. Keterangan

1 Menu untuk menampilkan proses pencarian 2 Menu untuk menampilkan bantuan sistem 3 Menu untuk menampilkan profil mahasiswa 4 Label untuk menampilkan petunjuk pemakaian

(50)

3.5.4. Halaman Profil

Halaman Profil adalah halaman yang memuat mengenai data diri si pembuat sistem. Tampilan Halaman Profil disajikan pada gambar 3.29

Gambar 3.29 Halaman Profil

Keterangan gambar 3.29 dapat dilihat pada tabel 3.5 sebagai berikut : Tabel 3.5 Keterangan gambar halaman profil

No. Keterangan

1 Menu untuk menampilkan proses pencarian 2 Menu untuk menampilkan bantuan sistem 3 Menu untuk menampilkan profil mahasiswa 4 PictureBox untuk menampilkan foto mahasiswa 5 Label untuk menampilkan biodata mahasiswa

(51)

BAB 4

IMPLEMENTASI DAN PENGUJIAN PROGRAM

4.1 Implementasi Sistem

Implementasi sistem merupakan suatu proses penerapan dari semua analisis dan perancangan untuk membangun suatu sistem. Pada penelitian ini, sistem dibangun dengan menggunakan bahasa pemrograman C# pada aplikasi Microsoft Visual Studio 2017. pada sistem terdapat empat tampilan halaman, yaitu tampilan Halaman Home, tampilan Halaman Proses, tampilan Halaman Bantuan dan tampilan Halaman Profil.

4.1.1 Halaman Home

Tampilan Halaman Home merupakan tampilan yang pertama kali ditampilkan sistem ketika user menjalankan sistem. Pada bagian tampilan Halaman Home sistem memuat judul penelitian, logo universitas, idenditas penulis dan tombol masuk yang digunakan untuk masuk ke sistem pencarian rute perjalanan wisata.

Tampilan Halaman Home disajikan pada gambar 4.1.

Gambar 4.1 Tampilan Halaman Home

(52)

4.1.2 Halaman Proses

Tampilan Halaman Proses merupakan halaman yang berfungsi sebagai tempat user melakukan input pencarian rute perjalanan wisata. Pada bagian Halaman Proses memuat daftar destinasi wisata yang dapat dikunjungi sesuai dengan pilihan user. Setelah user memilih tujuan destinasi yang ingin dikunjungi, kemudian user memilih salah satu tombol dari dua algoritma yang disediakan.

Setelah algoritma dipilih, sistem akan menampilkan rute terbaik, jarak tempuh dan running time algoritma yang digunakan. Tampilan Halaman Proses disajikan pada gambar 4.2.

Gambar 4.2 Tampilan Halaman Proses

4.1.3 Halaman Bantuan

Tampilan Halaman Bantuan merupakan halaman yang menyediakan panduan dan penjelasan tatacara penggunaan sistem kepada user yang mengalami kesulitan dalam menjalankannya. Tampilan Halaman Bantuan disajikan pada gambar 4.3.

(53)

Gambar 4.3 Tampilan Halaman Bantuan

4.1.2 Halaman Profil

Tampilan Halaman Profil merupakan halaman yang menyajikan informasi atau biodata penulis. Tampilan Halaman Profil disajikan pada gambar 4.4.

Gambar 4.4 Tampilan Halaman Profil

4.2 Pengujian Program

Pengujian Program atau sistem merupakan tahapan yang dilakukan steleah melakukan implementasi sistem. Pengujian sistem ini bertujuan untuk membuktikan

(54)

sistem yang dibangun apakah sudah berjalan dengan baik dan sesuai dengan rancangan sistem yang telah dibuat. Pengujian sistem ini dilakukan pada graf destinasi wisata di kota Medan dengan jumlah node sebanyak 17 dengan membandingkan algoritma Steepest Ascent Hill Climbing dan algoritma Best First Search.

4.2.1 Pengujian Proses Algoritma Steepest Ascent Hill Climbing

Algoritma Best First Search merupakan suatu metode pencarian dimana akan dilakukan proses pencarian sampai ditemukan nilai heuristik terbaik. Hasil pengujian algoritma Steepest Ascent Hill Climbing disajikan pada gambar 4.5.

Gambar 4.5 Hasil pengujian algoritma Steepest Ascent Hill Climbing 4.2.2 Perhitungan Manual Algoritma Steepest Ascent Hill Climbing

Dalam melakukan proses pencarian rute perjalanan destinasi wisata dengan menggunakan algoritma Steepest Ascent Hill Climbing akan dimulai dari titik A (Terminal Terpadu Amplas). Untuk destinasi wisata yang dikunjungi adalah titik E (Taman Candika), titik I (Merdeka Walk) dan titik K (Penangkaran Buaya).

Berikut langkah-langkah dalam pencarian untuk menentukan rute terpendek menggunakan Steepest Ascent Hill Climbing. Hasil perhitungan manual algoritma Steepest Ascent Hill Climbing disajikan pada gambar 4.6.

(55)

Gambar 4.6 Hasil perhitungan manual algoritma Steepest Ascent Hill Climbing

 Langkah 1

Pada gambar 4.7 merupakan beberapa destinasi wisata yang dipilih dan dijadikan sebagai current state kemudian dihitung bobotnya. Pada penyelesaian ini dipilih rute A-E-I-K-A sebagai current state dengan bobot 49400 m.

Gambar 4.7 Langkah 1

 Langkah 2

Pada gambar 4.8 dilakukan proses pencarian rute lain dan ditemukan beberapa successor. Kemudian setiap successor dihitung bobotnya dan semua bobot successor dibandingkan dengan bobot current state. Dan ditemukan successor yang memiliki nilai lebih kecil dari current state , maka dijadikan successor tersebut menjadi new state. Pada penyelesaian ini dipilih rute A-E-K-I-A sebagai current state dengan bobot 40550 m.

(56)

Gambar 4.8 Langkah 2

 Langkah 3

Pada gambar 4.9 dilakukan kembali proses pencarian rute lain dari new state dan ditemukan beberapa successor. Kemudian setiap successor dihitung bobotnya dan semua bobot successor dibandingkan dengan bobot current state. Dan ditemukan successor terbaik, maka dipilih rute A-I-K-E-A sebagai current state dengan bobot 40100 m.

Gambar 4.9 Langkah 3

 Langkah 4

Pada gambar 4.9 dilakukan kembali proses pencarian rute dari new state dan ditemukan beberapa successor. Kemudian setiap successor dihitung bobotnya dan semua bobot successor dibandingkan dengan bobot current state. Dan tidak ditemukan successor terbaik, maka pencarian selesai dan dipilih rute A-I-K-E-A sebagai goal state dengan bobot 40100 m.

(57)

Gambar 4.10 Langkah 4

4.2.3 Pengujian Proses Algoritma Best First Search

Algoritma Best First Search merupakan suatu metode pencarian dimana akan dilakukan proses pencarian dengan cara mengunjungi titik anak terbaik dan proses pencarian akan dilakukan pada kedalaman yang sama. Hasil pengujian dengan algoritma Best First Search disajikan pada gambar 4.11.

Gambar 4.11 Hasil pengujian algoritma Best First Search 4.2.4 Perhitungan Manual Algoritma Best First Search

Sama seperti proses pencarian dengan menggunakan algoritma Steepest Ascent Hill Climbing, Dalam melakukan proses pencarian rute perjalanan destinasi wisata dengan menggunakan algoritma Best First Search akan dimulai dari titik A (Terminal Terpadu Amplas). Untuk destinasi wisata yang dikunjungi adalah titik E (Taman Candika), titik I (Merdeka Walk) dan titik K (Penangkaran Buaya).

(58)

Berikut langkah-langkah dalam pencarian untuk menentukan rute terpendek menggunakan Best First Search. Hasil perhitungan manual algoritma Best First Search disajikan pada gambar 4.12.

Gambar 4.12 Hasil perhitungan manual algoritma Best First Search

 Langkah 1

Pada gambar 4.13 merupakan titik awal perjalanan yang dimulai dari titik A kemudian dimasukkan ke antiran OPEN dan dijadikan bestnode, karena hanya titik A berada pada antrian OPEN kemudian dipindahkan ke antrian CLOSE. Kemudian semua successor dibangkitkan, yaitu E, I dan K. Maka menghasilkan antrian OPEN = [E, I, K] dan antrian CLOSE= [A].

Gambar 4.13 Langkah 1

 Langkah 2

Pada gambar 4.14 diperoleh titik terbaik yaitu titik E=8700 dan dipilih sebagai bestnode. Kemudian E dipindahkan ke antrian CLOSE dan

(59)

didapatkan lintasan A-E. Maka diperoleh antrian CLOSE = [A, E] dan pada antrian OPEN = [I, K].

Gambar 4.14 Langkah 2

 Langkah 3

Pada gambar 4.15 diperoleh kembali titik terbaik yaitu titik K=9700 dan dipilih sebagai bestnode. Kemudian K dipindahkan ke antrian CLOSE dan didapatkan lintasan A-E-K. Maka diperoleh antrian CLOSE = [A, E, K] dan pada antrian OPEN = [I].

Gambar 4.15 Langkah 3

 Langkah 4

Pada gambar 4.16 hanya diperoleh satu successor maka titik I=10750 dijadikan sebagai bestnode. Kemudian I dipindahkan ke antrian CLOSE dan didapatkan lintasan A-E-K-I. Maka diperoleh antrian CLOSE = [A, E, K, I] dan pada antrian OPEN = [ ].

Gambar 4.16 Langkah 4

 Langkah 5

Karena pada kasus Travelling Salesman Problem harus kembali ke titik awal, maka dibangkitkan kembali successor ke titik A sesuai dengan gambar 4.17. maka diperoleh rute A-E-K-I-A dengan bobot 40550.

(60)

Gambar 4.17 Langkah 5

4.2 Hasil Pengujian

Setelah proses pengujian sistem dilakukan, maka diperoleh hasil dari pengujian sistem tersebut. Pengujian dilakukan sebanyak 10 kali dengan tujuan destinasi yang berbeda. Hasil pengujian dapat dilihat pada tabel 4.1.

Tabel 4.1 Hasil Pengujian No Destinasi

yang dipilih Perbadingan Rute Terbentuk Perbandingan jarak (meter)

Perbandingan running time (ms) Steepest

Ascent Hill Climbing

Best First Search

Steepest Ascent

Hill Climbing

Best First Search

Steepest Ascent

Hill Climbing

Best First Search

1 B A-B-A A-B-A 14200 14200 18.7248 19.2696

2 B-C A-B-C-A A-B-C-A 15400 15400 27.4524 36.7056

3 B-C-D A-B-C-D-A A-B-C-D-A 28800 28800 42.9572 33.9264 4 B-C-D-E A-B-C-E-D-A A-B-C-E-D-

A 28800 28800 26.2473 31.3041

5 B-C-D-E-F A-B-C-E-D-F- A

A-B-C-E-D-

F-A 50300 50300 56.4525 63.089

6 B-C-D-E- F-G

A-B-C-G-E-D- F-A

A-B-C-G-E-

D-F-A 55400 53600 69.5172 65.1887

7 B-C-D-E- F-G-H

A-B-C-E-D-F- H-G-A

A-B-C-H-G-

E-D-F-A 62700 55400 61.7419 79.2087 8 B-C-D-E-

F-G-H-I

A-B-C-E-D-F- I-H-G-A

A-B-C-H-I-

G-E-D-F-A 65000 57700 87.4069 72.3361 9 B-C-D-E-

F-G-H-I-J

A-B-C-E-D-F- G-H-I-J-A

A-B-C-H-I-

G-J-E-D-F-A 76850 69200 119.9986 73.4497 10

B-C-D-E- F-G-H-I-J- K

A-B-C-E-D-F- G-H-I-J-K-A

A-B-C-H-I- G-J-K-E-D- F-A

84550 69200 83.3576 72.1916

Rata-rata 48200 44260 59.3856 54.6669

(61)

Setelah dilakukan proses pengujian, maka diperoleh grafik yang menampilkan perbandingan running time algoritma terhadap jumlah destinasi yang dipilih user, grafik perbandingan running time kedua algoritma disajikan pada gambar 4.18.

Gambar 4.18 Perbandingan Running Time terhadap Jumlah Destinasi Dan grafik perbandingan bobot jarak terhadap jumlah destinasi dari pengujian kedua algoritma disajikan pada gambar 4.19.

Gambar 4.19 Perbandingan Bobot Jarak terhadap Jumlah Destinasi

(62)

Berdasarkan isi dari tabel dan grafik tersebut maka dapat diperoleh bahwa nilai bobot jarak dan running time algoritma Best First Search lebih cepat dibandingkan dengan algoritma Steepest Ascent Hill Climbing untuk beberapa destinasi yang dipilih. Dan jumlah destinasi yang dipilih mempengaruhi waktu proses setiap algoritma baik itu algoritma Steepest Ascent Hill Climbing maupun algoritma Best First Search.

4.3 Kompleksitas Algoritma

4.4.2 Kompleksitas Algoritma Steepest Ascent Hill Climbing

Tabel 4.2 Kompleksitas Algoritma Steepest Ascent Hill Climbing

No Kode Program C # C*#

1 List<int> pilihan = new List<int>(); C1 1 C1

2 pilihan.Add(0); C1 1 C1

3 if (checkBox1.Checked) pilihan.Add(1);

C2 1 C2

4 if (checkBox2.Checked) pilihan.Add(2);

C2 1 C2

5 if (checkBox3.Checked) pilihan.Add(3);

C2 1 C2

6 if (checkBox4.Checked) pilihan.Add(4);

C2 1 C2

7 if (checkBox5.Checked) pilihan.Add(5);

C2 1 C2

8 if (checkBox6.Checked) pilihan.Add(6);

C2 1 C2

9 if (checkBox7.Checked) pilihan.Add(7);

C2 1 C2

10 if (checkBox8.Checked) pilihan.Add(8);

C2 1 C2

11 if (checkBox9.Checked) pilihan.Add(9);

C2 1 C2

12 if (checkBox10.Checked) pilihan.Add(10);

C2 1 C2

13 int pilih = 0; C3 1 C3

14 int[] sahc = new int[pilihan.Count]; C4 1 C4

15 foreach (int haha in pilihan) { C5 n nC5

(63)

16 sahc[pilih] = haha; C4 n nC4

17 pilih++; } C3 n nC3

18 fungsisahc(sahc); C6 1 C6

19 void fungsisahc(int[] tujuan) { C7 1 C7

20 int permutasi = 0; C8 1 C8

21 for (int brp = 0; brp < tujuan.Length - 1; brp++) { C9 n nC9 22 for (int i = 1; i < tujuan.Length - 1; i++) { C9 n2 n2C9 23 for (int j = i; j < tujuan.Length - 1; j++) { } C9 n3 n3C9

24 permutasi++; }} C8 n2 n2C8

25 permutasi = permutasi / 2 + 1; C8 1 C8

26 string[] child = new string[permutasi]; C10 1 C10 27 int[] jarake = new int[permutasi]; C11 1 C11

28 int[] abisal = new C12 1 C12

29 int[tujuan.Length]; C13 1 C13

30 int tanker = 0; C14 1 C14

31 foreach (int x in tujuan) { C5 n nC5

32 abisal[tanker] = x; C12 n nC12

33 tanker++; } C14 n nC14

34 for (int brp = 0; brp < 2; brp++) { C9 n nC9

35 int temper = 1; C15 n nC15

36 for (int i = 1; i < tujuan.Length - 1; i++) { C9 n2 n2C9 37 for (int j = i; j < tujuan.Length - 1; j++) { C9 n3 n3C9

38 int invoker = 0; C16 n3 n3C16

39 foreach (int xy in abisal) { C5 n4 n4C5

40 tujuan[invoker] = xy; C16 n4 n4C16

41 invoker++; } C16 n4 n4C16

42 invoker = 0; C16 n3 n3C16

43 string abysperl = ""; C17 n3 n3C17

44 foreach (int gg in abisal) { C5 n4 n4C5

45 abysperl += gg; } C17 n4 n4C17

46 child[0] = abysperl; C10 n3 n3C10

(64)

47 int costarica2 = 0; C18 n3 n3C18

48 int temperatursuhu = 0; C19 n3 n3C19

49 for (int m = 0; m < tujuan.Length - 1; m++) { C9 n4 n4C9 50 foreach (jarak x in edge[tujuan[m]]) { C5 n5 n5C5 51 if (x.hubungan == (tujuan[m + 1])) { C2 n5 n5C2

52 costarica2 += x.cosjarak; }} C18 n5 n5C18

53 if (tujuan[m + 1] == tujuan[tujuan.Length - 1]) { C2 n4 n4C2 54 foreach (jarak x in edge[tujuan[m + 1]]) { C5 n5 n5C5

55 if (x.hubungan == 0) { C2 n5 n5C2

56 temperatursuhu = x.cosjarak; }}}} C19 n5 n5C19 57 jarake[0] = costarica2 + temperatursuhu; C11 n3 n3C11 58 int temp = 0; C20 n3 n3C20

59 temp = tujuan[i]; C7 n3 n3C7

60 tujuan[i] = tujuan[j + 1]; C7 n3 n3C7

61 tujuan[j + 1] = temp; C7 n3 n3C7

62 string xamp = ""; C21 n3 n3C21

63 foreach (int x in tujuan) { C5 n4 n4C5

64 xamp += x + ""; } C21 n4 n4C21

65 int costarica = 0; C22 n3 n3C22

66 for (int m = 0; m < tujuan.Length - 1; m++) { C9 n4 n4C9 67 foreach (jarak x in edge[tujuan[m]]) { C5 n5 n5C5 68 if (x.hubungan == (tujuan[m + 1])) { C2 n5 n5C2

69 costarica += x.cosjarak; }} C22 n5 n5C22

70 if (tujuan[m + 1] == tujuan[tujuan.Length - 1]) { C2 n4 n4C2 71 foreach (jarak x in edge[tujuan[m + 1]]) { C5 n5 n5C5

72 if (x.hubungan == 0) { C2 n5 n5C2

73 temperatursuhu = x.cosjarak; }}}} C19 n5 n5C19

74 child[temper] = xamp; C10 n3 n3C10

75 jarake[temper] = costarica + temperatursuhu; C11 n3 n3C11

76 if (temper == permutasi - 1){ C2 n3 n3C2

77 for (int kale = 0; kale < permutasi; kale++) { C9 n4 n4C9

Referensi

Garis besar

Dokumen terkait

Dengan selesainya penelitian saya yang berjudul : “ Implementasi Algoritma Welch Powell, PartialCol, dan Steepest Ascent Hill Climbing dalam Penjadwalan Petugas

Algoritma Dijkstra adalah suatu algoritma rakus dimana algoritma ini digunakan untuk mencari rute permasalahan terpendek antara simpul sumber dan simpul tujuan

Sistem yang akan dirancang pada aplikasi panggilan darurat ini adalah mencari rute terbaik menggunakan algoritma Hill Climbing dan Greedy, kemudian

Maka berdasarkan pengujian sistem yang dilakukan, metode steepest ascent hill climbing yang digunakan sebagai metode utama penelitian ini dapat diimplementasikan pada pencarian

Segala puji dan syukur penulis sampaikan kepada Tuhan Yesus yang telah memberikan berkat-Nya yang melimpah sehingga penulis dapat menyelesaikan skripsi ini dengan baik

Algoritma A* akan digunakan untuk mencari rute terpendek untuk mencapai koordinat tujuan berdasarkan rute dengan total jarak yang paling sedikit dengan

Dari hasil penelitian didapatkan bahwa Algoritma terbaik untuk mendapatkan rute terpendek dan paling efektif yang diterapkan pada jalur transportasi yang tersedia adalah

Proses pencarian tempat wisata ini diawali dengan mencari jarak latitude dan longitude dari setiap tempat wisata beserta jarak antar tempat wisata menggunakan google maps, lalu jarak