• Tidak ada hasil yang ditemukan

PERBANDINGAN ALGORITMA A* DAN BREADTH FIRST SEARCH UNTUK PENCARIAN HOTEL TERDEKAT DARI STASIUN KERETA API MEDAN RODIYAH AINI MANURUNG

N/A
N/A
Protected

Academic year: 2022

Membagikan "PERBANDINGAN ALGORITMA A* DAN BREADTH FIRST SEARCH UNTUK PENCARIAN HOTEL TERDEKAT DARI STASIUN KERETA API MEDAN RODIYAH AINI MANURUNG"

Copied!
75
0
0

Teks penuh

(1)

PERBANDINGAN ALGORITMA A* DAN BREADTH FIRST SEARCH UNTUK PENCARIAN HOTEL TERDEKAT

DARI STASIUN KERETA API MEDAN

RODIYAH AINI MANURUNG 121401057

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN

2016

(2)

2

PERBANDINGAN ALGORITMA A* DAN BREADTH FIRST SEARCH UNTUK PENCARIAN HOTEL TERDEKAT

DARI STASIUN KERETA API MEDAN

SKRIPSI

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

RODIYAH AINI MANURUNG 121401057

PROGRAM STUDI S-1 ILMU KOMPUTER

FAKULTAS ILMI KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2016

(3)

3

PERSETUJUAN

Judul : PERBANDINGAN ALGORITMA A* DAN

BREADTH FIRST SEARCH UNTUK PENCARIAN HOTEL TERDEKAT DARI STASIUN KERETA API MEDAN

Kategori : DESAIN DAN ANALISIS ALGORITMA

Nama : RODIYAH AINI MANURUNG

Nomor Induk Mahasiswa : 121401057

Program Studi : S-1 ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dian Rachmawati S.Si, M.Kom Drs. Agus Salim Harahap, M.Si

NIP. 198307232009122004 NIP. 195408281981031004

Diketahui/disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196202171991031001

(4)

4

PERNYATAAN

PERBANDINGAN ALGORITMA A* DAN BREADTH FIRST SEARCH UNTUK PENCARIAN HOTEL TERDEKAT

DARI STASIUN KERETA API MEDAN

SKRIPSI

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

Medan, Oktober 2016

Rodiyah Aini Manurung 121401057

(5)

5

PENGHARGAAN

Alhamdulillahirrabbil’alamin. Puji dan syukur penulis ucapkan atas kehadirat Allah SWT yang telah memberikan limpahan rahmat dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. Shalawat beriring salam penulis juga persembahkan kepada Nabi Besar Muhammad SAW.

Dengan segala kerendahan hati, pada kesempatan ini penulis menyampaikan terima kasih kepada semua pihak yang telah membantu penyelesaian skripsi dengan judul Perbandingan Algoritma A* dan Breadth First Search untuk Pencarian Hotel terdekat dari Stasiun Kereta Api Medan. Penulis mengucapkan terima kasih kepada:

1. Prof. Dr. Runtung Sitepu, SH, M.Hum sebagai Rektor Universitas Sumatera Utara (USU).

2. Prof. Dr. Opim Salim Sitompul sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

4. Drs. Agus Salim Harahap, M.Si sebagai Dosen Pembimbing I yang telah memberikan arahan, ilmu dan motivasi kepada penulis dalam pengerjaan skripsi ini.

5. Ibu Dian Rachmawati, S.Si, M.Kom sebagai Dosen Pembimbing II yang telah memberikan arahan, ilmu dan motivasi kepada penulis dalam pengerjaan skripsi ini.

6. Bapak M. Andri Budiman, S.T., M.Komp.Sc., M.E.M dan Ibu Elviwani, S.T., S.Kom., M.Kom selaku Dosen Penguji yang telah memberikan saran dan kritik kepada penulis dalam penyempurnaan skripsi ini.

7. Seluruh Dosen serta staf Pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

(6)

6

8. Kedua Orang tua penulis tercinta Ibunda Masjidawati dan Ayahanda Effendi Manurung serta adik tercinta Rahmat Riyadi Manurung dan Annisa Rahmayani Manurung yang telah memberikan do’a, dukungan, perhatian, kesabaran serta kasih sayang yang tulus serta pengorbanan yang tidak ternilai harganya.

9. Angkatan Sepuluh Pasbrata keluarga kedua penulis yang tulus memberikan do’a dan dukungan serta selalu mendegarkan cerita penulis baik suka maupun duka yang tidak bisa penulis sebutkan satu-persatu.

10. Terima kasih kepada Julilmi Harahap, S.Kom, Ananda Dwi Putri, S.Kom, Nurul Utami Marza, Rahma Isnaini Masya, S.Kom dan Tristania Marcelina Siagian, S.Kom yang selama perkuliahan menjadi tempat berbagi suka dan duka selama perkuliahan dan pengerjaan skripsi ini.

11. Teman- teman kuliah, khususnya Arif Setiawan, S.Kom, Boris Mario, S.Kom, Ridho Amanda Putra, Johan Surya, S.Kom, serta Stambuk 2012 yang tidak dapat disebut satu-persatu, yang telah banyak membantu dalam pengerjaan skripsi ini.

12. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Sekali lagi penulis mengucapkan terima kasih kepada semua pihak yang membantu dalam penyelesaian skripsi ini yang tidak dapat disebutkan satu persatu, terima kasih atas ide, saran dan motivasi yang diberikan. Semoga Allah SWT memberikan limpahan karunia kepada semua pihak yang telah memberikan bantuan, perhatian, kasih sayang serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Penulis menyadari bahwa skripsi ini masih jauh dari kesempurnaan karena kesempurnaan hanyalah milik Allah SWT semata. Oleh karena itu penulis menerima kritik dan saran dari semua pihak yang bersifat membangun dan menyempurnakan skripsi ini.

Penulis berharap semoga skripsi ini bermanfaat bagi penulis sendiri pada khususnya dan pembaca pada umumnya.

Medan, Oktober 2016 Penulis,

(7)

7

ABSTRAK

Stasiun Kereta Api Medan (KAI) merupakan tempat menaikkan dan menurunkan penumpang yang menggunakan jasa transportasi kereta api. Kebanyakan wisatawan atau pegawai yang melakukan perjalanan dinas berasal dari Kabupaten/Kota Madya Sumatera Utara. Kereta api menjadi pilihan kebanyakan orang, selain murah kereta api juga tergolong transportasi yang cepat dan bebas hambatan. seorang wisatawan atau orang yang melakukan perjalanan dinas kerap kali mencari penginapan terdekat dari Stasiun Kereta Api. Karena itu penulis membuat sebuah sistem yang mampu membantu kita dalam menentukan penginapan yang terdekat dari stasiun kereta api Medan. A* dan Breadth First Search (BFS) adalah algoritma yang digunakan untuk membangun sistem. Sistem dibangun dengan menggunakan Visual Basic 2010. Pada implementasinya proses pencarian hotel dengan menggunakan algoritma A* lebih cepat dibandingkan dengan algoritma Breadth First Search (BFS).

Kata Kunci: A*, Breadth First Search (BFS), shortest path.

(8)

8

COMPARISON OF A* WITH BREADHT FIRST SEARCH ALGORITHMS IN SEARCHING OF THE NEAREST HOTEL FROM

RAILWAY STATION IN MEDAN

ABSTRACT

Medan Railway Station is the place to transport and drop off passengers which uses train as transportation service. Most of people who are using this kind of transportation service are travelers or North Sumatera Regency employees who are doing service trip. Train is chosen by most people besides because of it is inexpensive, it is quite fast and one of a freeway type of transportation. A traveler or an employee who is in a service trip usually look for the nearest lodging from The Train Station.

Based on that case, writer has made a system which is capable to help in determining the nearest lodging from Medan Train Station. A* Algorithm and Breadth First Search (BFS) Algorithm are the algorithms which are utilized to build the system. This system is built by utilizing Visual Basic 2010. On the implementation of lodging searching process, A* Algorithm is worked faster than Breadth First Search (BFS) Algorithm.

Keywords: A*, Breadth First Search, Shortest Path

(9)

9

DAFTAR ISI

Hal.

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Tabel x

Daftar Gambar xi

Bab 1 Pendahuluan

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Ruang Lingkup Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metodologi Penelitian 3

1.7 Sistematika Penulisan 5

Bab 2 Tinjauan Pustaka

2.1 Graf 6

2.1.1 Pengertian Graf 6

2.1.2 Jenis-jenis Graf 6

2.1.3 Terminologi Dasar 9

2.2 Shortest Path 10

2.2.1 Pengertian Shortest path 10

2.3 Algoritma 11

2.3.1 Pengertian Algoritma 11

2.3.2 Ciri-ciri Algoritma 11

2.3.3 A* (A Star) 11

2.3.4 Breadth First Search (BFS) 16

2.4 Google Maps 18

2.4.1 Pengertian Google Maps 18

2.4.2 Cara kerja Google Maps 18

2.4.3 Google Maps API 20

Bab 3 Analisis dan Perancangan Sistem

3.1 Analisis Sistem 22

(10)

10

3.1.1 Analisis Masalah 22

3.1.2 Analisis Kebutuhan Sistem 23

3.1.2.1 Analisis Kebutuhan Fungsional Sistem 23 3.1.2.2 Analisis Kebutuhan Non-fungsional Sistem 24

3.1.3 Pemodelan Sistem 25

3.1.3.1 Use Case Diagram 25

3.1.3.2 Activity Diagram 27

3.1.3.3 Sequence Diagram 28

3.1.3.4 Flowchart Sistem dan Algoritma 29

3.2 Perancangan Interface 33

3.2.1 Interface Menu Utama 33

3.2.2 Halaman Hasil Pencarian 34

3.2.3 Halaman Help 35

3.2.4 Halaman About 36

Bab 4 Implementasi dan Pengujian

4.1 Implementasi 38

4.1.1 Halaman Home 38

4.1.2 Halaman Hotel 39

4.1.3 Halaman About 40

4.1.4 Halaman Help 41

4.2 Pengujian Proses Perhitungan Hotel dengan Algoritma A* 41 4.3 Pengujian Proses Perhitungan dengan Algoritma 45

Breadth First Search

4.4 Perhitungan Kompleksitas Algoritma 47

4.5 Pengujian Algoritma Terhadapa Waktu 48

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 52

5.2 Saran 53

Daftar Pustaka 54

Listing Program A-1

Curriculum Vitae B-

1

(11)

11

DAFTAR TABEL

Hal.

TABEL 2.1. URL untuk menampilkan peta suatu lokasi ... 19

TABEL 2.2 Script kode Google Maps API... 20

TABEL 3.1. Deskripsi Pilih Jenis Bintang ... 26

TABEL 3.2. Deskripsi Pilih Hotel ... 26

TABEL 3.3. Deskripsi Menampilkan Rute dan Jarak ... 27

TABEL 4.1. Jarak Stasiun KAI antar Hotel Bintang 1 ... 42

TABEL 4.2. Jarak Heuristik KAI antar Hotel Bintang 1 ... 43

TABEL 4.3. Perhitungan dengan Algoritma Breadth First Search ... 46

TABEL 4.4. Perhitungan Kompleksitas Algoritma A*……….……….47

TABEL 4.5. Perhitungan Kompleksitas Algoritma Breadth First Searc…………47

TABEL 4.6. Waktu Proses pada Algoritma A* ... 48

TABEL 4.7. Waktu Proses pada Algoritma Breadth First Search ... 49

(12)

12

DAFTAR GAMBAR

GAMBAR 2.1. Contoh Graf Sederhana ... 7

GAMBAR 2.2. Graf Tidak Sederhana ... 7

GAMBAR 2.3. Graf tak berarah ... 8

GAMBAR 2.4 Contoh Graf Berarah ... 9

GAMBAR 2.5 Contoh Graf Tidak Berbobot dan Graf Berbobot ... 10

GAMBAR 2.6 Contoh Graf Untuk Pencarian Urutan Lintasan A* ... 15

GAMBAR 2.7 Contoh Graf Untuk Pencarian Urutan Lintasan BFS ... 17

GAMBAR 2.8 Pembagian gambar peta pada Google Maps ... 19

GAMBAR 3.1. Fishbone Diagram ... 23

GAMBAR 3.2. Use Case Diagram Sistem ... 25

GAMBAR 3.3. Activity Diagram Proses Pencarian Istilah ... 28

GAMBAR 3.4. Sequence Diagram ... 29

GAMBAR 3.5. Flowchart Sistem Pencarian Hotel dengan Algoritma A* dan BFS 30 GAMBAR 3.6. Flowchart Algoritma A* ... 31

GAMBAR 3.7. Flowchart Algoritma Breadth First Search ... 32

GAMBAR 3.8. Halaman Utama Sistem ... 33

GAMBAR 3.9. Halaman Hasil Pencarian ... 34

GAMBAR 3.10. Tampilan Halaman Help Sistem ... 35

GAMBAR 3.11. Tampilan Halaman About Sistem ... 36

GAMBAR 4.1. Tampilan Halaman Home ... 38

GAMBAR 4.2. Tampilan Halaman Hotel ... 39

GAMBAR 4.3. Menampilkan Rute dari Hotel yang dipilih ... 40

GAMBAR 4.4. Tampilan Halaman About ... 40

GAMBAR 4.5. Tampilan Halaman Help... 41

GAMBAR 4.6. Graph Algoritma A* ... 42

(13)

13

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Dewasa ini, perkembangan teknologi dan internet sangat mempermudah orang dalam mencari informasi. Semua orang dapat memperoleh informasi dimana saja dan kapan saja dengan mengakses suatu alamat informasi hanya dengan menggunakan alat teknologi canggih seperti laptop ataupun telepon genggam.

Stasiun Kereta Api Medan (KAI) merupakan tempat menaikkan dan menurunkan penumpang yang menggunakan jasa transportasi kereta api. Setiap harinya Stasiun Kereta Api Medan melayani 2000-2500 penumpang ke seluruh wilayah Sumatera Utara dan stasiun ini berada di pusat kota Medan. Kebanyakan wisatawan atau pegawai yang melakukan perjalanan dinas berasal dari Kabupaten/Kota Madya Sumatera Utara. Untuk menuju kota Medan ada dua transportasi yang biasa digunakan masyarakat yaitu jalur kereta api atau darat seperti mobil, bus atau motor. Tetapi kereta api menjadi pilihan kebanyakan orang, selain murah kereta api juga tergolong transportasi yang cepat dan bebas hambatan. Hal penting lainnya bagi wisatawan adalah penginapan. Saat melakukan perjalanan keluar kota, seorang wisatawan atau orang yang melakukan perjalanan dinas kerap kali mencari penginapan terdekat dari Stasiun Kereta Api. Kita perlu memperhitungkan waktu dan biaya selama perjalanan. Mulai dari harga penginapan sampai transportasi selama perjalanan bisnis. Karena itu dibutuhkan sistem yang mampu membantu kita dalam menentukan penginapan yang dekat dengan pemberhentian kita serta dapat melihat harga sesuai keinginan kita.

Algoritma A* adalah sebuah algoritma yang telah diperkaya dengan menerapkan suatu heuristik. Algoritma ini membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa langkah-langkah yang dibuang sudah pasti

(14)

merupakan langkah yang tidak akan mencapai solusi yang diinginkan. Heuristik adalah nilai yang memberi nilai pada tiap simpul yang memandu A* mendapatkan solusi yang diinginkan.

Dengan heuristik, maka A* pasti akan mendapatkan solusi (Putra, R.D. 2012).

Breadth First Search (BFS) merupakan metode yang menguji semua keadaan dalam pohon pelacakan dalam waktu yang sama. Dari kiri ke kanan dari atas ke bawah satu tingkat pada waktu yang sama. Mulai dari keadaan awal, Breadth First Search memperhatikan semua keadaan pada tiap tingkat sebelum meneruskan ke tingkat lebih bawah berikutnya (Syahfitri, D. 2013).

Berdasarkan uraian di atas, penulis akan merancang suatu sistem aplikasi pencarian penginapan terdekat dari Stasiun Kereta Api Medan sebagai titik awal pengguna. Sistem ini menggunakan algoritma A* dan Breadth First Search..

1.2 Rumusan Masalah

Rumusan masalah pada penelitian ini adalah bagaimana memanfaatkan teknologi informasi sebagai solusi untuk menentukan jarak terpendek dalam pencarian hotel terdekat dari stasiun kereta api Medan dengan membandingkan algoritma A* dan Breadth First Search.

1.3 Ruang Lingkup Masalah

Ruang lingkup masalah dalam penelitian ini adalah sebagai berikut:

1. Menggunakan bahasa pemrograman Visual Basic dan MySQL sebagai DBMS.

2. Penginapan yang dibahas adalah hotel bintang satu sampai lima.

3. Inputan sistem ini berupa list view hotel bintang satu sampai lima.

4. Menggunakan algoritma shortest path A* dan Breadth First Search (BFS).

5. Membahas theoritical running time.

6. Membahas kompleksitas algoritma.

7. Memperhitungkan jalan yang satu arah dan dua arah.

(15)

7

1. Tujuan penelitian ini adalah membuat suatu sistem aplikasi pencarian rute terpendek (shortest path) dalam menentukan hotel terdekat dari stasiun kereta api medan berbasis android

2. Membandingkan Algoritma A* dan Breadth First Search (BFS) dalam menentukan hotel terdekat dari stasiun kereta api medan.

1.5 Manfaat Penelitian

Penelitian ini diharapkan dapat memberikan manfaat sebagai berikut:

1. Memajukan teknologi dalam bidang Informasi Telekomunikasi.

2. Membantu pengguna dalam menemukan dan cara mudah mencapai hotel terdekat dari stasiun kereta api Medan.

3. Sebagai bahan referensi bagi peneliti lain yang ingin membahas topik yang terkait dengan penelitian ini.

1.6 Metodologi Penelitian

Tahapan penelitian yang dilakukan dalam penelitian ini adalah : 1. Studi Literatur

Pada tahap ini dilakukan peninjauan terhadap buku, artikel, jurnal, maupun hasil penelitian terdahulu sebagai referensi yang diperlukan dalam melakukan penelitian. Ini dilakukan untuk memperoleh informasi yang terkait dengan Breadth First Search, A*, serta pemrograman Visual Basic.

2. Analisis dan Perancangan

Tahap ini digunakan untuk mengolah data dari hasil studi literatur yang kemudian dilakukan analisis dan perancangan menggunakan algoritma Breadth First Search dan A* sehingga menjadi suatu aplikasi yang terstruktur dan jelas. Proses ini meliputi pembuatan algoritma program, Use case Scenario, flowchart sistem, flowchart algoritma, rancangan aplikasi, dan pembuatan User Interface aplikasi.

3. Implementasi

(16)

8

Algoritma Breadth First Search dan A* diimplementasikan ke dalam pembuatan suatu aplikasi pencarian rute terpendek untuk pencarian hotel terdekat dengan menggunakan bahasa pemrograman Visual Basic.

4. Pengujian

Menguji apakah aplikasi yang dibuat telah berhasil berjalan sesuai dengan keinginan dan melakukan perbaikan kesalahan jika masih tedapat error pada aplikasi.

5. Dokumentasi

Pada tahap ini berisi laporan dan kesimpulan akhir dari hasil akhir analisa dan pengujian dalam bentuk skripsi.

(17)

9

1.7 Sistematika Penulisan

Untuk membuat penulisan lebih terstruktur, maka penulisan ini dibagi menjadi lima bab, yaitu:

BAB 1 PENDAHULUAN

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

BAB 2 LANDASAN TEORI

Pada bab ini berisi penjelasan mengenai teori-teori yang terkait dengan penelitian ini diantaranya adalah shortest path, Algoritma A*, Algortima Breadth First Search, Google Maps dan API Google Maps.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi analisis sistem dalam pembuatan kamus pada visual basic, desain sistem dan perancangan sistem.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini akan membahas tentang implementasi hasil penelitian menjadi sebuah aplikasi untuk membuat Kamus Istilah Psikologi pada visual basic.

Kemudian dilanjutkan dengan tahapan pengujian sistem untuk menguji apakah sistem sudah berjalan sesuai dengan perancangan.

BAB 5 KESIMPULAN DAN SARAN

Pada bab ini berisi kesimpulan yang diperoleh dalam penelitian dan saran yang diberikan untuk pengembangan lebih lanjut.

(18)

10

BAB 2

LANDASAN TEORI

2.1 Graf

2.1.1 Pengertian Graf

Graf sudah lama digunakan pada bidang ilmu komputer terutama pengantar algoritma dasar.

Bukan hanya permasalahan pada bidang ilmu komputer saja, banyak permasalahan di dunia ini dapat dengan mudah diselesaikan dengan menggunakan graf. Graf adalah diagram simpel yang mengolah dan menampilkan data dengan menggunakan vertex yang berhubungan dengan edge (Maxwell, A. 2010). Sebuah edge berfungsi untuk menunjukkan hubungan antara dua vertex. Notasi graf G (V, E) artinya graf G memiliki V sebagai kumpulan vertex- vertex dan E sebagai kumpulan edge-edge.

2.1.2 Jenis-jenis graf

Graf dapat dikelompokkan berdasarkan ada tidaknya edge yang paralel (loop), jumlah verteks, berdasarkan ada tidaknya arah pada edge, ada tidaknya bobot pada edge, atau ada tidaknya hubungan dengan graf yang lain.

Berikut ini adalah jenis graf berdasarkan ada tidaknya edge yang paralel atau loop.

1. Graf Sederhana

Graf sederhana adalah graf yang tidak mempunyai edge ganda dan atau loop. Loop adalah edge yang menghubungkan sebuah verteks dengan dirinya sendiri. Contoh Graf Sederhana bisa dilihat pada Gambar 2.1.

(19)

Gambar 2.1. Contoh Graf Sederhana

Pada Gambar 2.1 menjelaskan bahwa titik-titik pada graf sederhana dihubungkan tepat dengan satu garis ke setiap titik yang lain dan tidak ada garis yang titik awal dan akhirnya sama.

2. Graf Tak Sederhana

Graf tak sederhana adalah graf yang memiliki edges ganda atau loop. Graf tak sederhana dibagi menjadi dua yaitu Graf Ganda (multiple graf) dan Graf Semu (pseudo graph). Graf Ganda adalah graf yang mengandung edge ganda. Sisi ganda yang menghubungkan sepasang verteks bisa lebih dari dua buah. Graf semu (pseudo graph), adalah graf yang mempunyi loop, termasuk juga graf yang mempunyai loop dan edge ganda karena itu graf semu lebih umum dari pada graf ganda, karena graf semu edgenya dapat terhubung dengan dirinya sendiri. Gambar 2.2 menunjukkan contoh graf tidak sederhana dan perbedaan antara Graf Ganda dan Graf Semu.

(a) Contoh Graf Semu (b) Contoh Graf Ganda

Gambar 2.2. Graf Tidak Sederhana

(20)

Pada Gambar 2.2 terlihat Graf Semu (pseudo graph) mempunyai loop dan garis paralel sedangkan Graf Ganda (multiple graph) hanya memiliki garis paralel tetapi tidak memiliki loop.

Selain berdasarkan ada tidaknya edge yang paralel atau loop, graf dapat juga di kelompokkan berdasarkan orientasi arah atau panah.

1. Graf tak-berarah (undirected graph)

Graf tak berarah adalah graf yang edge nya tidak mempunyai orientasi arah atau panah.

Pada graf ini, urutan pasangan verteks yang dihubungkan oleh edge tidak diperhatikan.

Contoh Graf tak-berarah dapat dilihat pada Gambar 2.3.

Gambar 2.3. Graf tak berarah

Pada Gambar 2.3 menunjukkan jika semua garisnya tidak berarah maka disebut graf tidak berarah (undirected graph).

2. Graf Berarah (directed graph atau digraph)

Graf berarah adalah graf yang setiap edge nya memiliki orientasi arah atau panah.

Gambar 2.4 menunjukkan contoh Graf Berarah.

(21)

Gambar 2.4. Contoh Graf Berarah

2.1.3 Terminologi Dasar

Dibawah ini adalah beberapa terminologi (istilah) dasar yang berkaitan dengan graf.

1. Bertetangga (Adjacent)

Dua buah verteks pada graf tak berarah G dikatakan bertetangga bila keduanya terhubung langsung dengan sebuah edge.

2. Derajat (Degree)

Derajat suatu verteks pada graf tak berarah adalah jumlah edge yang bersisian dengan verteks tersebut.

Pada graf berarah, derajat verteks v dinyatakan dengan Din (V) dan Dout (V), yang dalam hal ini:

Din (V) = derajat masuk (in-degree)

= jumlah verteks yang masuk ke verteks v Dout (V) = derajat keluar (out-degree)

= jumlah verteks yang keluar dari verteks v dan

D(V) = Din (V) + Dout (V) Dalam hal ini D (V) menyatakan derajat verteks.

3. Lintasan (path)

Lintasan yang panjangnya n dari edge awal v0 ke verteks tujuan vn di dalam graf ialah barisan berselang-seling verteks dan edgenya. Sebuah lintasan dikatakan lintasan sederhana (simple path) jika semua verteksnya berbeda atau setiap edge yang dilalui hanya satu kali. Lintasan yang berawal dan berakhir pada verteks yang sama disebut

(22)

lintasan tertutup (closed path) sedangkan lintasan yang memiliki verteks awal dan verteks akhir yang berbeda disebut lintasan terbuka (open path).

4. Graf Berbobot (weighted graph) dan Graf Tidak Berbobot

Graf berbobot adalah graf yang setiap sisinya diberikan sebuah harga (bobot). Bobot pada setiap sisi dapat menyatakan jarak antara dua buah kota, biaya perjalanan, waktu tempuh, ongkos produksi, dan sebagainya. Graf tidak berbobot adalah graf yang tidak memiliki nilai untuk setiap garisnya. Contoh Graf Berbobot dan Graf Tidak Berbobot pada Gambar 2.5.

(a) Graf tidak berbobot (b) Graf berbobot Gambar 2.5. Contoh Graf Tidak Berbobot dan Graf Berbobot

Pada Gambar 2.5 menunjukkan bahwa perbedaan terletak pada edge yang diberi nilai pada Graf Berbobot sedangkan Graf Tidak Berbobot tidak diberi nilai (cost).

2.2 Shortest Path

2.2.1 Pengertian Shortest Path

Lintasan Terpendek (Shortest Path) merupakan lintasan minimum yang diperlukan untuk mencapai suatu titik dari titik tertentu. Dalam pencarian lintasan terpendek masalah yang dihadapi adalah mancari lintasan mana yang akan dilalui sehingga didapat lintasan yang paling pendek dari satu vertex ke vertex yang lain.

Ada beberapa macam persoalan lintasan terpendek, antara lain :

(23)

Pada tugas akhir ini persoalan lintasan terpendek yang menjadi masalah adalah lintasan terpendek antara dua buah vertex dimana bobot pada setiap edge graf di gunakan untuk menyatakan jarak antara stasiun kereta api pada hotel terdekat dalam satuan kilometer (km). Algoritma yang digunakan adalah algoritma A* dalam menentukan lintasan terpendek.

2.3 Algoritma

2.3.1 Pengertian Algoritma

Algoritma berasal dari nama seorang Ilmuwan Arab yang bernama Abu Jafar Muhammad Ibnu Musa Al Khuwarizmi penulis buku berjudul Al Jabar Wal Muqabala. Kata Al Khuwarizmi dibaca orang barat menjadi Algorism yang kemudian lambat laun menjadi Algorithm diserap dalam bahasa Indonesia menjadi Algoritma. Ketika membuat sebua program komputer, pada umumnya kita mengimplementasikan metode yang telah dirancang sebelumnya untuk menyelesaikan sebuah masalah. Metode ini sering digunakan para

programmer pada bahasa program untuk menyelesaikan masalah. Algoritma bisa kita jelaskan dengan mendeskripsikan prosedur-prosedur untuk menyelesaikan sebuah masalah

(Sedgewick, Robert. 2011)

2.3.2 Ciri-ciri algoritma

1. Finiteness (keterbatasan), algoritma harus berakhir setelah mengerjakan sejumlah langkah proses.

2. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak berarti ganda.

3. Input (masukan), algoritma memiliki nol atau lebih data masukan (input).

4. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).

5. Effectiveness (efektivitas), algoritma harus sangkil (efektif), langkah-langkah algoritma dikerjakan dalam waktu yang wajar.

2.3.3 A* (A Star)

Algoritma A* pertama kali ditemukan oleh Peter Hart, Nils Nilsson, dan Bertram Raphael dari Stanford Reasearch Institute pada tahun 1963. Algoritma A* merupakan pengembangan dari Algoritma Djikstra yang ditemukan tahun 1959. Algoritma A* dianggap menghasilkan hasil yang lebih baik daripada Djikstra karena menggunakan fungsi heuristik. Fungsi heuristik akan membantu penentuan titik mana yang akan dikunjungi terlebih dahulu (Aini, D.Y. 2010).

Heuristik adalah fungsi yang memberi nilai pada setiap simpul yang memandu A*

mendapatkan solusi yang diinginkan. Dengan heuristik maka A* pasti akan mendapatkan solusi yang terbaik (jika memang ada solusinya). Dengan demikian fungsi optimasi yang menjadikan A* lebih baik dari algoritma lainnya (Putra, R.D. 2012).

(24)

Algoritma A* dimulai dari titik awal kemudian ke antrian prioritas dan melanjutkan proses sampai mencapai titik tujuan. (Sedgewick, R. 2011). Algoritma A* menggabungkan cost yang dibutuhkan untuk mencapai suatu node yaitu g(n) dan cost yang didapatkan dari node ke tujuan yaitu h(n) (Pearl, Judea. 1985). Algoritma A* dapat dirumuskan :

f(n) = g (n) + h (n) ...(1) Keterangan :

f(n): perkiraan total biaya (cost) sebuah sebuah jalur (path) dari node awal ke node tujuan melalui node n

g(n): biaya (cost) yang dibutuhkan oleh sebuah jalur (path) untuk mencapai node n dari node awal

h(n): perkiraan biaya (cost) sebuah jalur (path) Beberapa istilah yang terdapat pada algoritma A*:

1) Starting point merupakan terminologi untuk posisi awal .

2) Simpul (node) merupakan titik yang merepresentasikan suatu tujuan. Bentuknya dapat berupa persegi, segitiga, ataupun lingkaran

3) A merupakan simpul yang sedang berjalan dalam pencarian jalur terpendek 4) Open list merupakan simpul yang mungkin diakses dari starting point maupun

simbol yang sedang dijalankan.

5) Closed List merupakan simpul yang telah dipilih sebagai pemilihan dari jalur terpendek.

6) Harga (cost) merupakan nilai dari f(n)

7) Halangan (unwalked) merupakan sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A.

Pada umumnya, algoritma A* mempresentasikan simpul-simpul pada graf dengan menggunakan dua buah himpunan, yaitu Open List dan Close list. Setiap kali menelusuri sebuah simpul yang baru, maka simpul tersebut dibandingkan dengan simpul-simpul lain yang berada di dalam Open list dan Close List, untuk memeriksa apakah simpul baru tersebut sudah pernah ditelusuri atau belum. Untuk simpul awal sudah termasuk pada Open List (Alshawi, I.S et all, 2012). Sedangkan simpul lain akan dipindahkan ke Open List akan dibandingkan sesuai dengan fungsi heuristic pada algoritma A* (Dong, Z & Li, M. 2009). Open list berisi

(25)

1. Jarak Manhattan

Fungsi ini merupakan fungsi heuristik yang paling umum digunakan. Fungsi ini menjumlahkan selisih nilai x dan y dari dua buah titik. Fungsi ini dinamakan fungsi Manhattan karena fungsi ini mengadopsi keadaan di kota Manhattan. Di kota Manhattan, jarak dari dua lokasi dihitung dari blok-blok yang harus dilalui saja. Jarak tersebut tidak bisa dilewati secara diagonal. Perhitungannya yaitu :

h(n)= |(x1-x2)| + |(y1-y2)| ...(2) Dimana h(n) merupakan perkiraan cost dari noden ke node tujuan yang dihitung dengan fungsi heuristik. Variabel x1 merupakan koordinat x dari node asal, sedangkan variabel y1 merupakan koordinat y dari node asal. Variabel x2

merupakan koordinat x dari node tujuan dan y2 merupakan koordinat koordinat y dari node tujuan. Nilai dari h(n) akan selalu bernilai positif.

2. Jarak Euclid

Heuristik ini akan menghitung jarak berdasarkan panjang garis yang dapat ditarik dari dua buah titik. Perhitungannya dapat dituliskan sebagai berikut:

h(n) = √ ...(3) Dalam kasus ini, skala relatif nilai g mungkin akan tidak sesuai lagi dengan nilai fungsi heuristik h. Karena jarak jarak Euclid selalu lebih pendek dari jarak Manhattan, maka dapat dipastikan selalu akan didapat jalur terpendek, walaupun secara komputasi lebih berat. Untuk penelitian ini maka akan dipilih jarak Euclid untuk fungsi heuristiknya.

3. Jarak Euclidian Kuadrat

Dalam beberapa literatur disebutkan jika nilai g adalah 0, maka lebih baik jika komputasi untuk pengakaran heuristik nilai euclid dihilangkan saja. Sehingga didapatkan rumus :

h(n)² = ...(4) Algoritma A* memilih titik tujuan berdasarakan simpul yang paling dekat ke titik awal (sesuai dengan algoritma Djikstra) dan juga paling dekat ke titik akhir (sesuai dengan algoritma best first search). Jadi, dengan memperhitungkan jarak sebenarnya (biasa disebut g(n)) dan jarak perkiraan (biasa disebut h(n)), algoritma ini dianggap akan memberikan hasil yang optimal.

Pada algoritma A* ada tiga tipe keadaan pada proses pencarian jarak terpendek. Keadaan pertama yaitu berada pada posisi OPEN. Keadaan kedua berada pada posisi CLOSE. Keadaan ketiga menyatakan belum berada di posisi OPEN maupun CLOSE.

Titik yang berada pada posisi OPEN menunjukkan titik tersebut telah dibangkitkan untuk selanjutnya diseleksi apakah terpilih sebagai titik tujuan terbaik.

Titik yang berada pada posisi CLOSE menunjukkan titik tersebut telah terpilih sebagai tujuan terbaik karena memiliki cost terkecil. Titik yang belum berada pada posisi OPEN maupun CLOSE menunjukkan bahwa titik tersebut belum terpilih sebagai tujuan terbaik dan bahkan belum dibangkitkan untuk masuk ke daftar

(26)

pemilihan tujuan selanjutnya. Perhitungan biaya atau cost pada algoritma ini menggunakan rumus :

f(n) = g (n) + h (n) ...(5)

Gambar 2.6. Contoh Graf Untuk Pencarian Urutan Lintasan A*

Pada Gambar 2.6 terlihat graf berarah dimana jarak satu titik ke titik lainnya belum tentu sama dengan keadaan sebaliknya. Hal ini sebagai contoh yang menunjukkan adanya jalan satu arah yang menyebabkan perubahan jalur ketika mengunjungi tempat tertentu. Setiap node menunjukkan hotel terdekat. Busur menyatakan besarnya jarak sebenarnya antara satu titik dengan titik lain.

Berikut adalah jarak real antara titik awal atau Stasiun KAI ke hotel terdekat sesuai pada Gambar 2.6. Ukuran jaraknya dalam satuan kilometer (KM).

Stasiun KAI – Hotel Grand Aston Medan = 0,75 KM Stasiun KAI – D’primahotel Medan = 0,1 KM

Stasiun KAI – Hotel Seochi International Medan = 1 KM

Pada algoritma A*, perhitungan penentuan tujuan dari satu titik ke titik berikutnya

menggunakan fungsi heuristik h(n). Berikut nilai h(n) atau fungsi heuristik jarak euclid untuk setiap node.

Stasiun KAI – Hotel Grand Aston Medan = 0,0429 KM Stasiun KAI – D’primahotel Medan = 0,3522 KM

Stasiun KAI – Hotel Seochi International Medan = 0,9380 KM

Berikut langkah-langkah untuk menentukan tujuan dari titik KAI dengan menggunakan algoritma A* untuk mendapatkan shortest path.

Sebagai titik awal, karena telah ditentukan titik awal adalah KAI, maka KAI yang semula pada keadaan OPEN dipilih sebagai best node dan dipindah pada keadaan CLOSED

(27)

Fungsi Evaluasi :

Total jarak sebenarnya dengan jarak euclid didapatkan hasil sebagai berikut : f (GA) = g(KAI ke GA) + h (O ke A) = 0,75 + 0,3522 = 1,1 KM

f (DPH) = g(KAI ke DPH) + h (O ke B) = 0,5 + 0,0429 = 0,54 KM f (SCH) = g(KAI ke SCH) + h (O ke C) = 1 + 0,9380 = 1,9 KM

Dari evaluasi tersebut didapat hotel terdekat dari titik awal atau Stasiun KAI adalah titik DPH dan semua titik telah masuk ke best node. Maka, hotel yang paling dekat jaraknya dari titik KAI berdasarkan perhitungan A* adalah D’primahotel Medan (DPH) dengan jarak 0,54 kilometer (KM)

2.3.4 Breadth First Search (BFS)

Breadth First Search merupakan algoritma graf yang digunakan sebagai prototipe pada minimum spanning tree dan shortest path (Yun, L. 2002). Algoritma untuk pencarian graf dengan cara Breadth-First sudah dipelajari selama 50 tahun. Breadth First Search (BFS) ditemukan oleh Edward F. Moore pada tahun 1950 saat mencari rute terpendek untuk keluar dari sebuah labirin. Pada tahun 1961 penemuan lainnya dipublikasikan oleh C.Y. Lee saat perutean sebuah printed circuit boards (PCB) untuk pemilihan jalur yang harus dilalui.

Breadth First Search (BFS) adalah salah satu dari algoritma graf yang mengunjungi seluruh node dari node akar atau awal. Pada prosedur BFS (Breadth First Search) inisial dari simpul adalah kunci utama untuk menemukan rute. Dalam urutan pencarian rute yang akurat insial simpul adalah kumpulan jalan-jalan yang ada didekat simpul awal (Hsu, C.M. 2011).

Cara kerja algoritma Breadth First Search (BFS) dilakukan pada semua verteks dilevel n secara berurutan dari kiri kekanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya (n+1). Demikian seterusnya sampai ditemukan solusi. Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik (Optimal). Tetapi BFS harus

menyimpan semua node yang pernah dibangkitkan, hal ini harus dilakukan untuk penelusuran balik jika solusi sudah ditemukan, sehingga membutuhkan memori yang cukup banyak. Pada Gambar 2.7 menunjukkan contoh Pencarian Lintasan Terpendek Pada Algoritma Breadth First Search.

(28)

Gambar 2.7. Contoh Graf Untuk Pencarian Urutan Lintasan BFS

Gambar 2.7 menunjukkan ada 13 node dan masing-masing memiliki bobot yang berbeda dengan titik tujuan yang sama yaitu titik KAI. Setiap node menunjukkan hotel terdekat dari titik tujuan Stasiun KAI Medan. Pada pengertian Breadth First Search (BFS) menjelaskan jika node pertama pada level 1 bukan tujuannya maka akan terus dilanjutkan pada node berikutnya, jika node pertama adalah tujuannya maka selesai.

KAI merupakan titik awal pencarian dan akan mengunjungi titik-titik lainnya yaitu GA (Grand Aston) – SCH (Hotel Seochi International) – DPH (D’primahotel Medan) – ADH (Aryaduta Hotel) – STH (Santika Hotel) – CHM (Cordela Hotel Medan) – GSM (Grand Swiss Medan) – JWM (JW Mariott Medan) – GAM (Grand Angkasa Medan) – HDT (Hotel Danau Toba Medan) – HPH (Hermes Palaces Hotel) – HM (Hotel Madani). Pada Algoritma Breadth First Search (BFS) sudah ditentukan tujuan dari pencarian adalah jarak tempuh minimum dari titik awal atau KAI. Berikut adalah perhitungan dari proses pencarian hotel yang dilakukan dari akar atau titik awal.

KAI – GA = 0,75 KAI – SCH = 0,9 KAI – DPH = 0,1 KAI – ADH = 2,25 KAI – STH = 3,05

(29)

KAI – HPH = 1,3 KAI – CHM = 5,05 KAI – GAM = 4, 65 KAI – HDT = 5,45

Dari pencarian menggunakan algoritma Breadth First Search sesuai pada Gambar 2.7 maka diperoleh KAI – DPH (D’primahotel Medan) adalah jarak tempuh terpendek. Dengan jarak 0,1 kilometer (KM).

2.4. Google Maps

2.4.1 Pengertian Google Maps

Google Maps adalah aplikasi desktop dan mobile peta online dibawah pimpinan Google. Google Maps dapat diakses pada situs official https://www.maps.google.com atau mengunduh aplikasi mobile untuk smartphone dengna sistem operasi Android atau iOS.

Google Maps menyajikan citra satelit, rute peta dasar dan tampilan jalan yang persepektif.

Google Maps mengintegrasikan rute jalan dasar dan tampilan 3D. Google Maps

memberikan fitur yang menampilkan situasi jalan atau tempat tujuan sehingga pengguna dapat melihat tempatnya sebelum dikunjungi (Google Developer, 2012). Google Maps juga

menyediakan fitur petunjuk arah yang memungkimkan pengguna menemukan cara mereka menuju tempat tujuan (Google Work, 2012).

Google Maps juga memiliki fasilitas traffic atau jalur lalu lintas di daerah tertentu.

Rute hijau, kuning dan merah yang ditampilkan Google Maps merupakan tanda untuk menunjukkan jalanan yang bergerak lancar, lambat atau sedang macet. Kita dapat memanfaatkannya untuk menentukan cara cepat sampai ke tujuan (Fadhlia, N. 2015).

2.4.2. Cara Kerja Google maps

Google Maps dibuat dengan menggunakan kombinasi dari gambar peta, database, serta obyek-obyek interaktif yang dibuat dengan bahasa pemrograman HTML, Javascript dan AJAX, serta beberapa bahasa pemrograman lainnya (Cita, 2008).

(30)

Gambar 2.8. Pembagian gambar peta pada Google Maps

Pada Gambar 2.8 menjelaskan bahwa tiap-tiap potongan gambar diatas, mewakili gambar tertentu dalam longitude, latitude dan zoom level tertentu. Latitude adalah garis yang melintang di antara kutub utara dan kutub selatan, yang menghubungkan antara sisi timur dan barat bagian bumi. Sedangkan longitude adalah garis membujur yang menghubungkan antara sisi utara sisi selatan bumi (kutub). Kode Java script yang digunakan untuk menampilkan peta Google Maps diambil dari link URL. Jadi untuk menampilkan peta suatu lokasi yang

diinginkan, dapat dengan cara mengirimkan URL yang diinginkan. Tabel 2.1 menunjukkan contoh URL suatu lokasi.

Tabel 2.1. URL untuk menampilkan peta suatu lokasi

Pada Tabel 2.1 berdasarkan link URL tersebut maka ie = UTF8 merupakan karakter encoding untuk map, ll = -6.500899,106.918945, adalah posisi titik tengah peta yaitu latitude (lintang) dan longitude (bujur) dari peta yang ditampilkan, pada link diatas posisi titik tengah peta pada latitude: -6.500899 dan longitude: 106.918945. Sedangkan spn =

4.327078,4.938354 merupakan rentang dari latitude dan longitude nya dan z = 8, adalah tingkatan atau level zoom peta (Fadhlia, N. 2015).

2.4.3. Google Maps API

Google Maps adalah layanan pemetaan berbasis web service yang disediakan oleh Google dan bersifat gratis, yang memiliki kemampuan terhadap banyak layanan pemetaan berbasis web. Google Maps juga memiliki sifat server side, yaitu peta yang tersimpan pada server Google dapat dimanfaatkan oleh pengguna (Cita, 2008). API atau Application Programming Interface merupakan suatu dokumentasi yang terdiri dari interface, fungsi,

http://maps.google.com/?ie=UTF8&ll=-

6.500899,106.918945&spn=4.327078,4.938354&z=8

(31)

Untuk membangun aplikasi yang memanfaatkan Google Maps di desktop dan mobile device maka akan digunakan Google Maps JavaScript API v3 yang memiliki keunggulan lebih cepat dari versi sebelumnya (Fadhlia, N. 2015).

Google Maps API menawarkan alat analisis yang memungkinkan para pengembang melihat cara pengunung berinteraksi dengan peta. Pengembang dapat melihat berapa banyak pengunjung yang beralih ke tampilan satelit, memperbesar atau memperkecil tampilan serta fitur mana dari peta tersebut yang paling sering digunakan oleh pengunjung (Google Developer, 2012).

Dengan menggunakan Google Maps API, Google Maps dapat ditampilkan pada web site eksternal. Agar aplikasi Google Maps dapat muncul di website tertentu, diperlukan adanya API key. API key merupakan kode unik yang digenerasikan oleh Google untuk suatu website tertentu, agar server Google Maps dapat mengenali. Script Google Maps API dapat dilihat pada Tabel 2.2

Tabel 2.2. Script kode Google Maps API

Pada Tabel 2.2 kode yang bercetak biru adalah script kode dari Google Maps API. Untuk mendapatkan kode itu dapat mendaftar pada http://code.google.com /apis/maps/ signup.html agar website mendapatkan kunci untuk mengakses API pada Google. Key akan berbeda untuk setiap website yang didaftarkan ke Google maps.

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Analisis sistem dilakukan untuk dapat memahami kebutuhan sistem dan gambaran tugas-tugas yang akan dikerjakan, sebelum membangun sistem terlebih dahulu

<scripttype=”text/javascript”src=”http://maps.google.com/maps?file=

api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAbE7c_nBHqt2 MsYavLihx9hQJ7kqb6IJHXd0Q5wX6KEaY9g0umROwx63Z3Gq2UYSM8 sC7Ngl45s6nw“></script>

(32)

dilakukan beberapa tahap analisis untuk mengidentifikasi segala kebutuhan yang akan diterapkan dalam sistem agar tidak terjadi kesalahan dan sistem yang dibangun akan optimal.

3.1.1 Analisis Masalah

Mengidentifikasi masalah merupakan langkah pertama yang dilakukan dalam tahap analisis sistem. Masalah dapat didefinisikan sebagai suatu pertanyaan yang diinginkan untuk

dipecahkan. Masalah inilah yang menyebabkan sasaran dari sistem tidak dapat dicapai. Oleh karena itu langkah pertama yang harus dilakukan pada tahap ini adalah mengidentifikasi terlebih dahulu masalah yang terjadi (identify).

Masalah yang akan dibahas dalam penelitian ini adalah bagaimana menentukan urutan kunjungan ketika mengunjungi beberapa tempat yang letaknya tidak saling berdekatan

sehingga didapatkan jarak total yang minimum (shortest path).

Analisis masalah dapat diuraikan sebagai berikut:

1. User merupakan orang yang melakukan proses pencarian hotel.

2. Metode merupakan proses yang digunakan untuk menyelesaikan permasalahan.

3. Material merupakan kebutuhan yang digunakan untuk menjalankan proses.

4. Sistem menunjukan pencarian rute terdekat dengan algoritma A* dan Breadth First Search (BFS).

Selanjutnya, untuk mengidentifikasi masalah yang dijelaskan di atas digunakan Diagram Ishikawa (Fishbone Diagram). Diagram Tulang Ikan (Fishbone) adalah sebuah alat visual untuk mengidentifikasi, mengeksplorasi dan secara grafik menggambarkan secara detail semua penyebab yang berhubungan dengan suatu permasalahan. Untuk lebih jelasnya

mengenai Diagram Fishbone, dapat dilihat pada Gambar 3.1.

(33)

Seperti yang terlihat pada Gambar 3.1 di atas, masalah utama adalah pada persegi panjang di posisi paling kanan gambar (bagian kepala) diagram fishbone.

Kategori ditunjukkan pada empat persegi panjang yang masing-masing terhubung ke garis utama, sedangkan sebab-akibat ditunjukkan dalam bentuk tanda panah horizontal pada masing-masing kategori masalah.

3.1.2 Analisis Kebutuhan Sistem

Dalam analisis kebutuhan sistem terdapat dua bagian penting yang harus dipenuhi, yaitu analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional sistem.

3.1.2.1 Analisis Kebutuhan Fungsional Sistem

Analisis kebutuhan fungsional sistem adalah analisis terhadap kebutuhan secara fungsional baik dalam aliran data ataupun informasi dan merupakan hal yang harus dimiliki oleh sistem untuk mencapai tujuannya. Berikut ini merupakan beberapa kebutuhan fungsional sistem yang akan dibangun, antara lain:

1. Sistem mampu mencari data hotel yang telah diinput pada database.

2. Sistem mampu mencari pencarian rute terdekat dengan menggunakan algorima A* dan Breadth First Search (BFS).

3. Sistem mampu meminta jarak sebenarnya dan arah menuju hotel yang ditentukan pengguna.

4. Sistem menggunakan running time theorytical untuk menentukan kinerja algoritma.

3.1.2.2 Analisis Kebutuhan Non-Fungsional Sistem

Analisis kebutuhan non-fungsional adalah suatu analisis untuk mengetahui elemen- elemen apa saja yang berhubungan dengan sistem yang sedang berjalan. Untuk mendukung kinerja sistem, sistem sebaiknya dapat berfungsi sebagai berikut:

Persyaratan non-fungsional adalah persyaratan yang dimiliki suatu sistem yang menggambarkan karakteristik dan batasan kemampuan suatu sistem yang menjadi dasar penentuan apakah daya guna suatu sistem sudah baik atau belum. Adapun persyaratan non- fungsional yang harus dipenuhi diantaranya : (Whitten, 2004)

1. Performa

(34)

Suatu sistem yang dibangun harus dapat menunjukkan hasil dari urutan tujuan yang harus dicapai dengan menampilkan jarak total yang akan ditempuh.

2. Informasi

Persyaratan informasi mempresentasikan informasi yang sangat penting bagi pengguna dalam konteks isi, akurasi, dan format.

3. Ekonomi

Sistem atau perangkat lunak yang akan dibangun tidak memerlukan perangkat tambahan yang mahal.

4. Efisiensi

Sistem harus mampu menghasilkan output dengan tingkat ketidakefisienan yang minimal.

5. Kontrol dan keamanan

Sistem mampu menampilkan pesan kesalahan ketika terjadi kesalahan input data oleh pengguna. Keamanan dapat diterapkan dengan perbedaan hak antara user dan admin.

6. Pelayanan

Memperesentasikan kebutuhan agar sistem menjadi reliabel, fleksibel, dan dapat diperluas.

3.1.3 Pemodelan Sistem

Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem, serta hal-hal apa saja yang harus dilakukan oleh sebuah sistem sehingga sistem dapat berfungsi dengan baik sesuai dengan kegunaannya.

Pada penelitian ini digunakan UML (Unified Modeling Language) sebagai bahasa pemodelan untuk mendesain merancang sistem yang akan dibangun. UML yang digunakan antara lain use case diagram, activity diagram dan sequence diagram.

3.1.3.1 Use Case Diagram

Use Case Diagram menggambarkan kebutuhan sistem secara fungsional dengan mengidentifikasi aktor-aktor yang terlibat dan berinteraksi dengan fungsi dasar pada

(35)

Gambar 3.2 Use Case Diagram Sistem

Pada Gambar 3.2 menunjukkan untuk mendapatkan rute dan jarak hotel terdekat, user terlebih dahulu memilih jenis bintang kemudian memilih hotel yang diinginkan berdasarkan algoritma. Untuk deskripsi Pilih Jenis Bintang dapat dilihat pada tabel 3.1.

Tabel 3.1 Deskripsi Pilih Jenis Bintang Name Use-Case Pilih Jenis Bintang

Actor User

Trigger User memilih jenis bintang.

Pre condition User mempersiapkan data hotel berdasarkan jenis bintang.

Post condition User dapat memilih hotel berdasarkan jenis bintang yang dipilih.

(36)

Success scenario 1. user telah memilih jenis bintang.

2. user mengakses tombol search.

3. Sistem melakukan proses pencarian hotel.

4. user mendapatkan list hotel terdekat berdasarkan jenis bintang

Alternative flow -

Deskripsi dari Pilih Hotel dapat dilihat pada tabel 3.2.

Tabel 3.1 Deskripsi Pilih Hotel Name Use-Case Pilih Hotel

Actor User

Trigger User memilih hotel terdekat.

Pre condition User memilih jenis bintang.

Post condition User mendapatkan rute hotel.

Success scenario 1. User telah memilih hotel terdekat.

2. Sistem melakukan proses pencarian rute.

3. User mendapatkan rute hotel yang dipilih.

Alternative flow -

Deskripsi Menampilkan Rute dan Jarak dapat dilihat pada tabel 3.3.

Tabel 3.1 Deskripsi Menampilkan Rute dan Jarak

(37)

Pre condition User memilih hotel yang terdekat.

Post condition User memastikan adanya jaringan internet.

Success scenario 1. Sistem dapat mengakses google maps.

2.Sistem menampilkan rute dan jarak.

Alternative flow Jika tidak ada jaringan internet sistem tidak dapat menampilkan maps.

3.1.3.2 Activity Diagram

Activity Diagram menggambarkan berbagai aktivitas alir dalam sistem yang sedang dirancang. Untuk proses pencarian hotel terdekat pada stasiun kereta api Medan dengan algoritma A* dan Breadth First Search dapat dilihat pada Gambar 3.3 berikut.

(38)

Gambar 3.3 Activity Diagram Proses Pencarian Istilah

Seperti yang terlihat pada Gambar 3.3, sistem menampilkan proses kerja dari sistem sampai dengan selesai. Fungsi utama dari sistem ini adalah mencari hotel terdekat dari stasiun kereta api Medan dengan menggunakan algoritma A* dan Breadth First Search.

3.1.3.3 Sequence Diagram

Sequence Diagram digunakan untuk menggambarkan interaksi antara objek dengan proses yang terkait pada kelas diagram melalui message dalam eksekusi operation, untuk satu buah use case. Sequence membantu untuk menggambarkan data yang masuk dan keluar dari system, seperti yang terlihat pada Gambar 3.4 berikut.

Gambar 3.4 Sequence Diagram

(39)

dengan meminta jarak yang sebenarnya dan arah dari GoogleMaps kemudian A* dan Breadth First Search menghitung jarak antara stasiun ke semua hotel yang sudah diseleksi sesuai bintang yang dipilih. Kemudian menampilkan hasil pencarian hotel terdekat dari stasiun kereta api Medan.

3.1.3.4 Flowchart Sistem dan Algoritma

Flowchart merupakan gambar atau bagan yang menunjukkan aliran data di dalam sistem secara logika. Flowchart sistem dapat didefinisikan sebagai bagan yang menunjukkan aliran pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urutan-urutan dari prosedur yang ada di dalam sistem. Flowchart dari sistem yang akan dibangun dapat dilihat pada Gambar 3.5 berikut ini.

(40)

Gambar 3.5 Flowchart Sistem Pencarian Hotel dengan Algoritma A* dan BFS

(41)

Gambar 3.6 Flowchart Algoritma A*

(42)
(43)

Gambar 3.7 Flowchart Algoritma Breadth First Search

(44)

3.2 Perancangan Interface

Perancangan antarmuka (interface) merupakan salah satu bagian yang sangat penting dalam sebuah perancangan sistem. Perancangan antarmuka dibuat agar mudah dalam membangun sebuah sistem. Sebuah antarmuka harus dirancang dengan memperhatikan pengguna sehingga dapat memberikan kemudahan dan kenyamanan untuk digunakan oleh pengguna.

3.2.1 Interface Menu Utama

Menu utama adalah halaman yang pertama kali muncul ketika pertama sekali sistem dijalankan. Halaman utama ini adalah halaman untuk login sebelum masuk ke menu selanjutnya untuk menggunakan aplikasi. Tampilan rancangan halaman utama dapat dilihat pada Gambar 3.8.

(45)

Keterangan:

1. Merupakan menu button Home

2. Merupakan menu scrolldown Hotel yang akan menampilkan list bintang.

3. Merupakan menu button Help untuk membantu user menggunakan sistem 4. Merupakan menu button About keterangan dari sistem.

5. Merupakan menu label menunjukkan judul dari sistem.

6. Merupakan logo dari Universitas Sumatera Utara.

7. Merupakan menu label menunjukkan nama penulis.

8. Merupakan menu label menunjukkan nomor induk mahasiswa penulis.

9. Merupakan menu label menunjukkan keterangan fakultas dan jurusan serta tahun ajaran penulis.

10. Merupakan menu label menunjukkan hak cipta pembuat.

3.2.2 Halaman Hasil Pencarian

Halaman ini merupakan hasil dari pencarian sesuai bintang yang dipilih. Untuk melihat rancangan pada halaman hasil pencarian dapat dilihat pada Gambar 3.9 berikut:

(46)

Gambar 3.9 Halaman Hasil Pencarian Keterangan:

1. Merupakan menu button Home

2. Merupakan menu scrolldown Hotel yang akan menampilkan list bintang.

3. Merupakan menu button Help untuk membantu user menggunakan sistem 4. Merupakan menu button About keterangan dari sistem.

5. Merupakan menu label menunjukkan sistem sedang berada pada halam hasil pencarian.

6. Merupakan menu scrolldown untuk menampung hasil dari pencarian hotel untuk algoritma A Star.

7. Merupakan menu scrolldown untuk menampung hasil dari pencarian hotel untuk algoritma Breadth First Search.

8. Merupakan scrolldown untuk melihat list hotel dari hasil pencarian dengan algoritma

(47)

11. Merupakan menu label menunjukkan hak cipta.

3.2.3 Halaman Help

Halaman ini merupakan halaman bantuan untuk pengguna dalam menggunakan sistem. Untuk melihat rancangan pada halaman ini dapat dilihat pada Gambar 3.10 berikut

Gambar 3.10 Tampilan Halaman Help Sistem

Keterangan:

1. Merupakan menu button Home

2. Merupakan menu scrolldown Hotel yang akan menampilkan list bintang.

3. Merupakan menu button Help untuk membantu user menggunakan sistem 4. Merupakan menu button About keterangan dari sistem.

5. Merupakan menu label menunjukkan sistem sedang berada pada halaman Help.

6. Merupakan menu label menunjukkan hak cipta sistem.

3.2.4 Halaman About

Halaman ini berisi keterangan tentang dan versi sistem. Halaman ini juga menyajikan profil singkat penulis. Unuk melihat rancangan pada halaman ini dapat dilihat pada Gambar 3.11 berikut:

(48)

Gambar 3.11 Tampilan Halaman About Sistem

Keterangan:

1. Merupakan menu button Home

2. Merupakan menu scrolldown Hotel yang akan menampilkan list bintang.

3. Merupakan menu button Help untuk membantu user menggunakan sistem 4. Merupakan menu button About keterangan dari sistem.

5. Merupakan menu label menunjukkan sistem sedang berada pada halaman Help.

(49)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Setelah sistem dianalisis dan dirancang seperti yang telah diuraikan pada bab sebelumnya, tahap selanjutnya adalah mengimplementasikan sistem tersebut kedalam bahasa pemrograman. Sistem ini dibangun dengan menggunakan Microsoft Visual Basic 2010. Pada sistem ini terdapat empat halaman, yaitu : halaman Home, halaman Process, halaman About, dan halaman Help.

4.1.1 Halaman Home

Halaman Home merupakan halaman yang pertama kali tampil pada saat sistem dijalankan. Tampilan halaman Home dapat dilihat pada Gambar 4.1.

Gambar 4.1 Tampilan Halaman Home

(50)

.Pada Gambar 4.1 terdapat 4 menu yang dapat memanggil halaman yang lain, yaitu:

menu Hotel, menu About, menu Help, dan menu Exit. Pada halaman Home juga terdapat informasi judul.

4.1.2 Halaman Hotel

Halaman Hotel merupakan halaman yang ditampilkan jika user memilih menu

“Hotel” yang terdapat pada halaman Home. Tampilan dari halaman Hotel dapat dilihat pada Gambar 4.2.

Gambar 4.2 Tampilan Halaman Hotel

Pada Gambar 4.2 menunjukkan halaman yang digunakan untuk melakukan proses pencarian hotel terdekat dari stasiun kereta api Medan sesuai dengan bintang yang dipilih. Tampilan awal dari halaman ini terdapat satu button search yang berproses

(51)

Gambar 4.3 Menampilkan rute dari hotel yang dipilih.

Pada Gambar 4.3 menampilkan rute dari hotel yang dipilih. Setelah user memilih bintang hotel maka sistem akan memberikan list hotel terdekat dari bintang tersebut dan user memilih hotel yang diinginkan untuk ditampilkan rute pada map.

4.1.3 Halaman About

Halaman About merupakan halaman yang ditampilkan jika pengguna memilih menu

“About”. Adapun tampilan dari halaman About dapat dilihat pada Gambar 4.4.

(52)

Gambar 4.4 Tampilan Halaman About

Pada Gambar 4.4 ditampilkan informasi judul dan biodata singkat dari penulis.

4.1.4 Halaman Help

Halaman Help merupakan halaman yang ditampilkan oleh sistem jika pengguna memilih menu “Help”. Adapun tampilan dari halaman Help dapat dilihat pada Gambar 4.5.

Gambar 4.5 Tampilan Halaman Help

Pada Gambar 4.5 ditampilkan informasi mengenai langkah-langkah

(53)

Pada tahap ini akan dilakukan pengujian keberhasilan sistem dalam melakukan proses pencarian hotel terdekat dari stasiun dengan menggunakan algoritma A*. Perhitungan biaya atau cost pada algoritma ini menggunakan rumus :

f(n) = g (n) + h (n)...(1)

Gambar 4.6 Graph Algoritma A*

Pada Gambar 4.6 menjelaskan keadaan hotel bintang satu yang berlokasi di stasiun kereta api dan keadaan pada graf belum tentu kejadian yang sebenarnya. Titik awal pencarian dimulai dari KAI dan akan dijalankan fungsi heuristk untuk mencari hotel yang paling dekat jaraknya dengan stasiun. Jarak antar titik untuk Gambar 4.6 dapat dilihat di Tabel 4.1. Ukuran jarak adalah dalam satuan kilometer (km).

Tabel 4.1 Jarak Stasiun KAI antar hotel bintang 1

NO HOTEL ID STASIUN KAI

1 GARUDA CITRA HOTEL GCA

2,1

2 WISMA SEDERHANA WS 1,2

3 RESIDENCE HOTEL RH 2,5

(54)

4 KANASHA HOTEL KH 1,6

5 SUMATERA HOTEL SH 2

6 AIRY HOTEL AH 2,3

7 HOTEL UKM HK 2,2

8 HOTEL WISMA YULI HWY 2,2

9 ZAKIA HOTEL ZH 2,9

10 PERMATA INN PI 1,8

Pada algoritma A*, perhitungan penentuan tujuan dari satu titik ke titik berikutnya menggunakan fungsi heuristik h(n). Untuk nilai h(n) atau fungsi heuristik jarak euclid didapat nilai heuristik untuk setiap node seperti Tabel 4.2 :

Tabel 4.2 Jarak Heuristik KAI antar hotel bintang 1

NO HOTEL ID STASIUN KAI

1 GARUDA CITRA HOTEL GCA 0,015070043

2 WISMA SEDERHANA WS 0,009127208

3 RESIDENCE HOTEL RH 0,01621232

4 KANASHA HOTEL KH 0,013278034

5 SUMATERA HOTEL SH 0,014620463

6 AIRY HOTEL AH 0,017505316

7 HOTEL UKM HK 0,017631621

8 HOTEL WISMA YULI HWY 0,017697811

9 ZAKIA HOTEL ZH 0,018279274

10 PERMATA INN PI 0,010440833

Berikut langkah-langkah untuk menentukan urutan tujuan dari titik KAI

(55)

Total jarak sebenarnya dengan jarak euclid didapatkan hasil sebagai berikut :

f (GCA) = g(KAI ke GCA) + h (KAI ke GCA) = 2.1 + 0.01507 = 2.11507 Km f (WS) = g(KAI ke WS) + h (KAI ke WS) = 1.3 + 0.00912 = 1.30912 Km f (RH) = g(KAI ke RH) + h (KAI ke RH) = 2.9 + 0.01327 = 2.91327 Km f (KH) = g(KAI ke KH) + h (KAI ke KH) = 1.6 + 0.01327 = 1.61087 Km f (SH) = g(KAI ke SH) + h (KAI ke SH) = 2 + 0.01087 = 2.01087 Km f (AH) = g(KAI ke AH) + h (KAI ke AH) = 2.3 + 0.01750 = 2.31769 Km f (HK) = g(KAI ke HK) + h (KAI ke HK = 2.2 + 0.01769 = 2.21769 Km f (HWY) = g(KAI ke HWY) + h (KAI ke HWY)) = 2.3 + 0.01769 = 2.31769Km f (ZH) = g(KAI ke ZH) + h (KAI ke ZH) = 2.9 + 0.01827 = 2.91827 Km f (PI) = g(KAI ke PI) + h (KAI ke PI) = 1.8 + 0.01044 = 1.81044 Km

Maka semua titik telah masuk ke bestnode dan perhitungan selesai. Dari hasil perhitungan dengan menggunakan algoritma A* maka didapatkan hotel dengan jarak terdekat yaitu . 1.30912 Km. Untuk hasil pencarian menggunakan sistem dapat dilihat pada Gambar 4.7.

Gambar

Gambar 2.1. Contoh Graf Sederhana
Gambar 2.3. Graf tak berarah
Gambar 2.7. Contoh Graf Untuk Pencarian Urutan Lintasan BFS
Gambar 3.2 Use Case Diagram Sistem
+7

Referensi

Dokumen terkait

 Merencanakan Stasiun Kereta Api Medan sebagai pusat transportasi yang dapat mempertemukan beberapa jenis alat transportasi umum sehingga tercipta keintegrasian dengan

Dapat mewujudkan desain interior Stasiun Kereta Api yang memperhatikan fasilitas yang dibutuhkan sesuai dengan perkembangan pembangunan. Dapat membuat desain interior

Diatas adalah hasil perancangan dari Stasiun Kereta Api Trans Sulawesi, gambar gambar tersebut merupakan proses hasil penelitian terpadu dari gagasan tema “Mutasi

Kajian Perubahan Elemen Fasade Arsitektur Kolonial (Studi Kasus : Stasiun Kereta Api

Gambar Ulang Skematik Denah Stasiun Kereta Api Medan5.

Persepsi (apa yang dirasakan) konsumen sehingga bersedia menggunakan jasa angkutan kereta api di stasiun Medan Kota. Keterangan

di boulevard stasiun kereta api Bandung bagian Selatan……….141 GAMBAR SIMULASI RANCANGAN 5.37 Tempat makan yang berada di samping bangunan restoran di boulevard kawasan stasiun

Bagaimana pendapat Anda tentang Ketepatan ”Waktu / Jam Tutup” pelayanan pada loket pembayaran tiket di stasiun kereta api