• Tidak ada hasil yang ditemukan

PERBANDINGAN ALGORITMA A* DAN ALGORITMA BEST FIRST SEARCH MODIFICATION UNTUK MENCARI JALUR TERPENDEK PASAR SWALAYAN DI KOTA MEDAN SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "PERBANDINGAN ALGORITMA A* DAN ALGORITMA BEST FIRST SEARCH MODIFICATION UNTUK MENCARI JALUR TERPENDEK PASAR SWALAYAN DI KOTA MEDAN SKRIPSI"

Copied!
89
0
0

Teks penuh

(1)PERBANDINGAN ALGORITMA A* DAN ALGORITMA BEST FIRST SEARCH MODIFICATION UNTUK MENCARI JALUR TERPENDEK PASAR SWALAYAN DI KOTA MEDAN. SKRIPSI. KEVIN ABDUL D. SIMANJUNTAK 151401115. PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2019. UNIVERSITAS SUMATERA UTARA.

(2) PERBANDINGAN ALGORITMA A* DAN ALGORITMA BEST FIRST SEARCH MODIFICATION UNTUK MENCARI JALUR TERPENDEK PASAR SWALAYAN DI KOTA MEDAN. SKRIPSI. Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer. KEVIN ABDUL D. SIMANJUNTAK 151401115. PROGRAM STUDI S-1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2019. UNIVERSITAS SUMATERA UTARA.

(3) ii. Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001. UNIVERSITAS SUMATERA UTARA.

(4) iii. PERNYATAAN. PERBANDINGAN ALGORITMA A* DAN ALGORITMA BEST FIRST SEARCH MODIFICATION UNTUK MENCARI JALUR TERPENDEK PASAR SWALAYAN 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,. Agustus 2019. Kevin Abdul D. Simanjuntak 151401115. UNIVERSITAS SUMATERA UTARA.

(5) iv. PENGHARGAAN. Segala Puji dan Syukur atas kehadirat Allah SWT yang telah memberikan kesehatan, nikmat umur, rahmat serta hidayah. Tak lupa pula shalawat dan salam kita panjatkan kepada junjungan kita Nabi besar Muhammad SAW. 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: 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 sekaligus Dosen Penguji I yang telah memberikan kritik dan saran dalam penulisan skripsi. 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. Ibu Amalia S.T., M.T selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada penulis dalam pengerjaan skripsi ini. 6. Bapak Dr.Sajadin Sembiring,S.Si.,M.Comp.Sc selaku Dosen penguji II yang telah memberikan kritik dan saran dalam penulisan skripsi. 7. Seluruh dosen dan staf pegawai Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. 8. Teristimewa kepada Kedua orangtua penulis Ayahanda Dr. Syafruddin Pohan, M.Si dan Ibunda Eliza Mawardi serta kakak tercinta Ielena Istiqlal. UNIVERSITAS SUMATERA UTARA.

(6) v. Pohan yang telah memberikan dukungan, semangat serta doa yang selalu menjadi motivasi penulis. 9. Saudara penulis baik dari keluarga besar Ayahanda maupun keluarga besar Ibunda yang telah memberikan doa serta semangat kepada penulis. 10. Teman-teman seperjuangan Stambuk 2015 yang telah memberikan banyak bantuan, semangat serta dukungan kepada penulis, Zikri Akmal Santoso, Gisella Fransca, Diah Suci, Cindy Laurent, Nifhia Annisa , Hilda Ayu, Triska, Renzi Safiano, Khafiroh Zamzamy, Balya, Arief Dalimunthe, Defri Chaniago, dan Matun. 11. Teman-teman yang senantiasa memberikan semangat dan doa untuk penulis, Nabil Shawab, Hamdan Afif, Nadira Aliza, Fia, Dzaki Sultan, Saiful Fadhil, Ardiansyah, dan Gifari Naufal. 12. Seluruh wadah pembentukan karakter bagi penulis, yang memberikan banyak sekali ilmu serta pengetahuan baru, IMILKOM USU, dan HMI Komisariat FMIPA. 13. 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,. Agustus 2019 Penulis,. Kevin Abdul D. Simanjuntak. UNIVERSITAS SUMATERA UTARA.

(7) vi. ABSTRAK. Pasar Swalayan adalah pusat pembelian kebutuhan pokok, kadang kita tidak menemukan barang atau kebutuhan yang ingin kita beli dan kita akan mencari barang tersebut di Pasar Swalayan lainnya. Kita tidak tau jalur mana yang terdekat ke pasar swalayan yang ingin kita tuju terlebih lagi untuk kota besar seperti kota Medan. Dibutuhkan sebuah sistem yang berfungsi untuk mencari rute optimum dari Pasar Swalayan yang kita tempati saat ini ke Pasar Swalayan yang lainnya. Pada penelitian ini, maka dibuatlah sebuah sistem pencarian rute yang optimum untuk mencari Pasar Swalayan yang ingin dituju. Sistem ini memiliki menu untuk melakukan pencarian dengan memilih titik awal serta titik tujuan yang akan menghasilkan rute optimum untuk mencapai titik tujuan tersebut. Untuk mendukung optimasi pencarian rute dalam sistem ini diterapkan algoritma A* dan algoritma Best First Search Modification yang kemudian akan dibandingkan performa running time. Setelah itu dilakukanlah implementasi dan perbandingan kedua algoritma tersebut dan lalu diketahui bahwasanya kompleksitas algoritma A* adalah 𝜃(n3) dan memiliki rata-rata running time 151.30 ms sedangkan kompleksitas algoritma Best First Search Modification adalah 𝜃(n3) dan memiliki rata-rata running time 124.31 ms. Maka disimpulkan bahwa algoritma Best First Search Modification lebih efisien dalam waktu (running time) dibandingkan algoritma A* dan juga menghasilkan jarak yang terpendek dalam pencarian jalur yang pertama. Kata kunci : Pasar Swalayan, A*, Pencarian Jalur Optimum, Best First Search Modification, Rute.. UNIVERSITAS SUMATERA UTARA.

(8) vii. THE COMPARISON OF A* ALGORITHM AND BEST FIRST SEARCH MODIFICATION ALGORITHM TO FIND THE SHORTEST PATH OF A SUPERMARKET IN THE CITY OF MEDAN. ABSTRACT. Supermarkets, are the main provider of our daily essential needs. But often the items that we want aren't available in one particular supermarket but obtainable in the other. To acquire those particular items, we have to reach the next nearest supermarket. Yet sometimes the shortest route isn't familiar to us, especially in a large city like Medan. To tackle the problem, a system to identify the optimal route from a supermarket to another would be needed. For this purpose, in this research an optimal route finder system to find the optimal route to the designated supermarket was created. This system has the ability to find the optimal route based on a chosen starting point to a chosen destination point. To optimize the route searching process the system utilizes the A* algorithm and the Best First Search Modification algorithm. The results of these two algorithms would be then compared, based on their complexity and their respective running time. After the implementation of the two algorithms, it is known that the A* algorithm with a complexity of θ (n3) has an average running time of 151.30ms. Meanwhile, the Best First Search Modification algorithm with a complexity of θ (n3) has an average running time of 124.31ms. From the aforementioned results, it was concluded that the Best First Search Modification algorithm is the more efficient algorithm based on their running time and would nevertheless find the most efficient and the shortest pathway to the destination point.. Keywords :. Supermarket, A*, Path Finding , Best First Search Modification, Route.. UNIVERSITAS SUMATERA UTARA.

(9) viii. DAFTAR ISI. Halaman. Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran. Bab 1 Pendahuluan 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metode Penelitian 1.7 Sistematika Penulisan. ii iii iv vi vii viii x xi xii. 1 2 3 3 4 4 5. Bab 2 Landasan Teori 2.1 Pengertian Algoritma 2.2 Teori Dasar Graf 2.2.1 Jenis-jenis Graf 2.3 Pencarian Jalur Terpendek 2.4 Algoritma A* 2.5 Algoritma Best First Search 2.6 Algoritma Best First Search Modification 2.7 Kompleksitas 2.8 Penelitian Relevan. 6 6 7 9 10 15 18 19 20. Bab 3 Analisis dan Perancangan Sistem 3.1 Analisis Sistem 3.1.1 Analisis Masalah 3.1.2 Analisis Kebutuhan 3.1.3 Analisis Proses 3.1.4 Diagram Umum 3.1.5 Flowchart 3.2 Perancangan Sistem 3.3 Perancangan Antarmuka (Interface). 22 22 32 34 34 35 39 41. UNIVERSITAS SUMATERA UTARA.

(10) ix. Bab 4 Implementasi dan Pengujian Sistem 4.1 Implementasi 4.1.1 Tampilan Halaman Main Menu 4.1.2 Tampilan Halaman Menu Panduan 4.1.3 Tampilan Halaman Menu Mulai Uji 4.1.4 Tampilan Halam Menu Tentang 4.2 Pengujian 4.2.1 Pengujian Implementasi Algoritma A* 4.2.2 Perhitungan Manual Algoritma A* 4.2.3 Pengujian Implementasi Algoritma Best First Search Modification 4.2.4 Perhitungan Manual Algoritma Best First Search Modification 4.3 Hasil Pengujian Algoritma 4.4 Kompleksitas Algoritma 4.4.1 Kompleksitas Algoritma A* 4.4.2 Kompleksitas Algoritma Best First Search Modification Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 5.2. Saran Daftar Pustaka Lampiran. 46 46 47 47 48 48 49 49 53 53 57 58 58 60. 63 63 65. UNIVERSITAS SUMATERA UTARA.

(11) x. DAFTAR TABEL. Halaman Tabel 2.1 Nilai Heuristik Tiap Vertex Pada Graf Tabel 3.1 Nama-nama Pasar Swalayan Yang Menjadi Vertex Tabel 3.2 Jarak Tiap Vertex Pada Graf Pasar Swalayan di Kota Medan Tabel 3.3 Nilai Heuristik Pada Semua Vertex Tabel 4.1 Hasil Real Running Time Setiap Algoritma Tabel 4.2 Kompleksitas Algoritma A* Tabel 4.3 Kompleksitas Algoritma Best First Search Modification. 11 23 28 31 57 58 60. UNIVERSITAS SUMATERA UTARA.

(12) xi. DAFTAR GAMBAR. Halaman Gambar 2.1 Contoh Graf Sederhana Gambar 2.2 Contoh Graf Ganda Gambar 2.3 Contoh Graf Semu Gambar 2.4 Contoh Graf Tak Berarah Gambar 2.5 Contoh Graf Berarah Gambar 2.6 Graf untuk Algoritma A* Gambar 2.7 Graf A* Gambar 2.8 Graf A* Gambar 2.9 Graf A* Gambar 2.10 Graf A* Gambar 2.11 Contoh Tree algoritma Best First Search Gambar 2.12 Node Best First Search Gambar 2.13 Tree Best First Search Gambar 2.14 Tree Best First Search Gambar 2.15 Tree Best First Search Gambar 2.16 Tree Best First Search Gambar 2.13 Grafik Fungsi Ꝋ Gambar 3.1 Rute Pasar Swalayan di Kota medan (Google Maps) Gambar 3.2 Diagram Ishikawa Gambar 3.3 Diagram Umum Gambar 3.4 Flowchart Sistem Gambar 3.5Flowchart Algoritma A* Gambar 3.6 Flowchart Algoritma Best First Search Modification Gambar 3.7 Use Case Diagram Gambar 3.8 Activity Diagram Gambar 3.9 Sequence Diagram Gambar 3.10 Perancangan Interface Main Menu Gambar 3.11 Perancangan Interface Menu Panduan Penggunaan Gambar 3.12 Perancangan Interface Menu Mulai Uji Gambar 3.13 Perancangan Interface Menu Tentang Gambar 4.1 Halaman Main Menu Gambar 4.2 Halaman Menu Panduan Penggunaaan Gambar 4.3 Halaman Menu Mulai Uji Gambar 4.4 Halaman Menu Tentang Gambar 4.5 Graf Hasil Pengujian Algoritma A* Gambar 4.6 Graf Hasil Pengujian Algoritma Best First Search Modification. 7 8 8 9 9 11 12 12 13 14 16 16 16 17 17 18 20 28 32 34 36 37 38 39 40 41 42 43 44 45 46 47 48 48 49 53. UNIVERSITAS SUMATERA UTARA.

(13) xii. DAFTAR LAMPIRAN. Halaman Lampiran 1 Listing Program A-1 Lampiran 2 Kriteria Nilai Heuristik Tiap Pasar Swalayan dan Titik Simpang B-1 Lampiran 3 Curriculum Vitae C-1. UNIVERSITAS SUMATERA UTARA.

(14) 1. BAB 1. PENDAHULUAN. 1.1. Latar Belakang. Pada saat kita berbelanja di suatu pasar swalayan pasti terkadang kita tidak menemukan barang yang ingin kita beli dan kita akan mencari di pasar swalayan lainnya untuk menemukan barang tersebut, tetapi kita tidak tahu jalur mana yang terdekat dari pasar swalayan yang saat ini kita tempati. Terlebih lagi kota besar seperti kota Medan,. Luasnya kota Medan serta banyaknya jalan raya terlebih lagi volume kendaraan yang banyak sering kali menyulitkan seseorang untuk mencari jalur terpendek ke tempat tujuan yang terdekat, baik dari segi jarak maupun waktu tempuh. Pencarian jalur tependek (shortest path) menjadi masalah yang penting di karenakan selain banyaknya jalan ada juga hambatan seperti kemacetan, sehingga shortest path adalah sebuah solusi agar tidak banyak waktu yang terbuang untuk masalah pencarian jalur terpendek ini. Maka penulis akan membuat sebuah aplikasi untuk menyelesaikan permasalahan ini. Ada banyak algoritma yang digunakan untuk mencari jalur terpendek (shortest path), namun belum pasti mana algoritma yang lebih baik untuk mencari jalur terpendek. Untuk itu, dalam penelitian ini dilakukan perbandingan kinerja antara algoritma path finding dan algoritma searching untuk mengetahui mana algoritma yang lebih efektif dan efisien dalam mencari jalur tependek. Pada Penelitian terdahulu (P. Suyitno, 2016) membuat pencarian jalur terpendek dari rumah menuju Candi Jiwa Batujaya dengan algoritma A*. Disimpulkan bahwa Pencarian jalur terpendek dengan menggunakan algoritma A* akan memberikan jalur terpendek yang akurat dan mudah dipahami serta dalam. UNIVERSITAS SUMATERA UTARA.

(15) 2. proses penelusurannya, algoritma A* tidak melewati semua jalur jika titik tujuan sudah ditemukan. Pada penelitian lainnya (Rike Nur Setiyani, 2015), dilakukan implementasi algoritma Best First Search pada penyelesaian (TSP) dengan studi kasus perjalanan wisata di kota Yogyakarta. Berdasarkan penelitian tersebut di simpulkan bahwa algoritma Best First Search bekerja dengan memakai fungsi heuristik, yaitu dengan mendahulukan pemeriksaan node – node yang berurut dan pada arah yang benar, karena hanya menggunakan fungsi heuristik tanpa memperhitungkan biaya untuk menuju ke suatu node, sehingga jalur yang ditemukan dengan algoritma ini kemungkinan jalur terpendek, tetapi belum tentu jalur tersebut memiliki biaya terendah. Pada penelitian lainnya (B. Siregar, 2017) Food Delivery System with the Utilization of Vehicle Using Geographical Information System (GIS) and A Star Algorithm. Hasil penelitian tersebut menyebutkan bahwa dengan memakai algoritma A* pada suatu aplikasi untuk menyelesaikan permasalahan kasus jalur terpendek akan mendapatkan hasil yang bagus, seperti sistem Ojek Food Delivery dengan tujuan mencari jalur terpendek dari lokasi kendaraan saat ini ke suatu restoran dan lokasi pelanggan di daerah sekitaran Universitas Sumatera Utara terselesaikan dengan baik. Melihat dari uraian diatas, maka penulis tertarik untuk melakukan penelitian mengenai “Perbandingan Algoritma A* dan Algoritma Best First Search Modification Untuk Mencari Jalur Terpendek Pasar Swalayan di Kota Medan”.. 1.2. Rumusan Masalah. Bagaimana kinerja algoritma A* dengan algoritma Best First Search Modification pada pencarian jalur terpendek Pasar Swalayan di kota Medan, lalu membandingkan kedua algoritma tersebut.. UNIVERSITAS SUMATERA UTARA.

(16) 3. 1.3. Batasan Masalah. Dalam melakukan penelitian ini, peneliti membatasi ruang masalah yang akan diteliti. Batasan-batasan masalah yang digunakan dalam skripsi ini sebagai berikut : 1. Penelitian ini hanya membandingkan algoritma A* dan algoritma Best First Search Modification tanpa membandingkan algoritma lain. 2. Parameter yang digunakan untuk memperhitungkan jalur terpendek adalah jarak, rute dan tingkat kemacetan 3. Uji perbandingan dilakukan dengan menggunakan real running time, dan kompleksitas 4. Titik tujuan yang akan dikunjungi sebanyak 12 titik Pasar Swalayan di Kota Medan. 5. Aplikasi ini hanya dapat digunakan dari Pasar Swalayan ke Pasar Swalayan lainnya. 6. Bahasa pemrograman yang digunakan yaitu C#.. 1.4. Tujuan Penelitian. Tujuan penelitian dari judul ini adalah: 1. Untuk mengetahui algoritma mana yang lebih optimal dalam mencari jalur terpendek antara algoritma A* dan algoritma Best First Search Modification. 2. Menerapkan algoritma A* dan algoritma Best First Search Modification untuk pencarian jalur terpendek pasar swalayan di kota Medan. 3. Membuat aplikasi untuk penerapan algoritma A* dan algoritma Best First Search Modification untuk pencarian jalur terpendek.. 1.5. Manfaat Penelitian. UNIVERSITAS SUMATERA UTARA.

(17) 4. Manfaat yang diharapkan dapat dihasilkan dari penelitian ini adalah untuk mengetahui perbandingan cara kerja algoritma A* dan algoritma Best First Search Modification dalam pemecahan kasus jalur terpendek.. 1.6. Metode Penelitian. Metode penelitian yang dilakukan dalam penelitian ini adalah: 1.. Studi Pustaka Pada tahap ini, penulis memulai penelitian dengan mencari referensi dari banyak sumber dan melakukan peninjauan pustaka melalui buku – buku, artikel ilmiah, dan penelitian – penelitian sebelumnya dalam bentuk jurnal maupun skripsi yang berhubungan dengan beberapa topik seperti pengertian algoritma, graf, shortest path, kompleksitas, algoritma A* dan algoritma Best First Search Modification.. 2.. Analisa dan Perancangan Pada tahap ini, penulis melakukan pengumpulan data serta analisa data terhadap apa saja hal yang berkaitan dan juga yang dibutuhkan dalam penelitian. Sehingga dapat dirancang sebuah diagram alir (flowchart), Unified Modeling Language (UML), dan diagram Ishikawa.. 3.. Implementasi Tahap selanjutnya yaitu mengimplementasikan yang sudah dirancang sebelumnya ke dalam sebuah sistem dengan menggunakan bahasa pemrograman C# sesuai dengan diagram alir yang sudah dirancang.. 4.. Pengujian Pada tahap ini, sistem yang sudah dirancang akan dilakukan uji coba untuk melakukan perbandingan hasil pencarian rute Pasar Swalayan untuk algoritma A* dan juga algoritma Best First Search Modification.. 5.. Dokumentasi Pada tahap ini, setiap tahap yang telah dilakukan dalam penelitian ini dibuat dokumentasi mulai dari tahap analisa dan perancangan sampai dengan tahap pengujian dalam bentuk skripsi.. 1.7. Sistematika Penulisan. UNIVERSITAS SUMATERA UTARA.

(18) 5. Dalam pembuatan skripsi ini, penulis membaginya dalam lima bab dengan sistematika dan sesuai dengan aturannya agar lebih mudah dipahami, yaitu: BAB 1 PENDAHULUAN Bab ini menjelaskan tentang latar belakang pemilihan judul skripsi “Perbandingan Algoritma A* dan Algoritma Best First Search Modification Untuk Mencari Jarak Terpendek Pasar Swalayan Di Kota Medan”. Rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, tinjauan pustaka dan sistematika penulisan skripsi. BAB 2 LANDASAN TEORI Bab ini akan membahas tentang teori-teori yang berhubungan dengan penelitian untuk mendukung penulisan penelitian. BAB 3 ANALISIS DAN PERANCANGAN SISTEM Bab ini berisi tentang uraian analisis mengenai proses kerja dari algoritma A* dan algoritma Best First Search Modification dalam pencarian jalur terpendek Pasar Swalayan di kota Medan dan perbandingan dari kedua algoritma tersebut, serta perancangan antarmuka program. BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM Pada bab ini berisi tentang implementasi dari program yang sebelumnya telah dirancang, analisis program, serta hasil pengujian. BAB 5 PENUTUP Bab ini berisi tentang kesimpulan dari semua pembahasan dan saran-saran dari hasil yang diperoleh diharapkan dapat bermanfaat dalam pengembangan yang selanjutnya.. BAB 2. UNIVERSITAS SUMATERA UTARA.

(19) 6. LANDASAN TEORI. 2.1. Pengertian Algoritma. Algoritma berasal dari kata al-khwarizmi yang terdapat di buku Abu Ja’far Muhammad Ibnu Musa Al-Kwarizmi, seorang ahli matematika yang berasal dari Persia dengan judul Bukunya “Aljabar wal Muqabala”. Dalam beberapa buku tedapat banyak pengertian tentang definisi Algoritma. Tetapi jika kita perhatikan lagi dengan baik, semua buku tersebut mengarah ke tujuan yang sama. Definisi Algoritma adalah susunan langkah penyelesaian suatu masalah secara sistematis dan logis (Sitorus, Lamhot. 2015). Ada dua kata yang menjadi perhatian dalam definisi ini, yaitu sistematis dan juga logis. Sistematis adalah suatu bentuk usaha untuk membagi serta merumuskan suatu hal kedalam konteks hubungan yang teratur sehingga membentuk sistem secara menyeluruh yang bisa menjelaskan rangkaian sebab akibat yang terkait dari suatu objek tertentu. Sementara logis adalah hasil pertimbangan dari akal pikiran yang dijelaskan lewat kata-kata. 2.2. Teori Dasar Graf. Definisi suatu graf G adalah pasangan himpunan (V,E), di notasikan dengan G = (V,E), dengan V adalah himpunan tak kosong berhingga dari elemen yang disebut titik (vertex) dan E adalah himpunan berhingga (boleh kosong) dari pasangan titik dalam V x V yang disebut sisi (edge). V disebut himpunan titik dan E disebut himpunan sisi dari graf G. Setiap sisi di V menghubungkan dua titik dari V. Istilah lain dari titik adalah simpul (nodes) dan istilah lain dari sisi adalah garis (marsudi, 2016).. 2.2.1. Jenis – Jenis Graf. UNIVERSITAS SUMATERA UTARA.

(20) 7. Graf diklasifikasikan berdasarkan ada atau tidaknya sisinya yang paralel atau loop, jumlah vertexnya, berdasarkan ada tidaknya arah pada sisinya, atau ada tidaknya bobot pada sisinya. Berikut ini adalah jenis graf berdasarkan ada tidaknya sisinya yang paralel atau loop: 1. Graf Sederhana Graf sederhana adalah graf yang tidak mempunyai paralel, sisi, sisi ganda dan loop. Loop adalah sisi yang membuat sebuah vertex terhubung dengan dirinya sendiri. Graf sederhana dapat dilihat pada Gambar 2.1.. Gambar 2.1 Contoh Graf Sederhana (Aini, 2011). 2. Graf Tak-Serderhana Graf tak-sederhana adalah graf yang memiliki sisi ganda dan atau loop. Graf tak sederhana dapat dibagi dua, yaitu: a. Graf ganda (multi graph) adalah graf yang memiliki sisi ganda. Sisi ganda yang membuat sepasang vertex terhubung bisa lebih dari dua buah. Graf ganda dapat dilihat pada Gambar 2. 2. UNIVERSITAS SUMATERA UTARA.

(21) 8. Gambar 2.2 Contoh Graf Ganda. (Aini , 2011) b. Graf semu (pseudograph) adalah graf yang mempunyai loop, termasuk juga graf yang mempunyai loop dan sisi ganda karena itu graf semu lebih umum dari pada graf ganda, karena graf semu sisinya dapat terhubung dengan dirinya sendiri. Graf semu dapat dilihat pada Gambar 2.3. Gambar 2.3 Contoh Graf Semu. (Aini, 2011). Selain berdasarkan ada tidaknya sisinya yang paralel atau loop, graf dapat juga diklasifikasikan berdasarkan arah atau panah, yaitu : 1. Graf Tak Berarah (undirected graph) Graf tak berarah adalah graf yang sisinya tidak mempunyai arah atau panah. Pada graf ini, urutan setiap vertex yang dihubungkan oleh edge tidak diperhatikan. Jadi (vj, vk) = (vk, vj) adalah sisi yang sama. Graf tak berarah dapat dilihat pada gambar 2.4.. UNIVERSITAS SUMATERA UTARA.

(22) 9. Gambar 2.4 Contoh Graf Tak Berarah. (Aini, 2011) 2. Graf Berarah (directed graf) Graf berarah adalah graf yang setiap sisinya memiliki arah atau panah. Pada graf berarah (vj, vk) ≠ (vk, vj). Graf berarah dapat dilihat pada Gambar 2.5.. Gambar 2.5 Contoh Graf Berarah. (Aini, 2011). 2.3. Pencarian Jalur Terpendek. Pada umumnya untuk mencari sebuah solusi dalam pemecahan masalah atau kasus pencarian jalur terpendek dapat dilakukan dengan dua buah metode, yaitu metode algoritma konvesional dan metode heuristik. Metode algoritma konvesional dikerjakan dengan cara perhitungan aritmatika, sedangkan metode heuristik dikerjakan dengan perhitungan kecerdasan buatan, dengan menentukan dasar pengetahuan dan perhitungannya (Wiryadinata, Romi. 2007).. UNIVERSITAS SUMATERA UTARA.

(23) 10. a. Metode Konvesional Metode konvesional memakai algoritma yang menggunakan perhitungan aritmatika, ada sebagian algoritma dalam metode konvensional yang sering dipakai dalam pencarian jalur terpendek, antara lain adalah algoritma Dijkstra, dan algoritma Bellman-Ford. b. Metode Heuristik Metode Heuristik Adalah bagian dari kecerdasan buatan yang biasa dipakai untuk melakukan pencarian jalur terpendek. Ada banyak algoritma dalam metode heuristik yang sering dipakai dalam pencarian jalur terpendek, tetapi dalam skripsi ini penulis hanya membahas dua jenis algoritma yaitu algoritma A* dan algoritma Best First Search Modification.. 2.4. Algoritma A* (A-Star). Algoritma A* adalah salah satu dari sekian banyak algoritma yang sering digunakan untuk pencarian jalur (path finding) dan penerusan graf. Metode algoritma A* adalah metode yang merupakan hasil pengembangan dari metode dasar algoritma BFS (Best First Search). Seperti halnya pada BFS, untuk menemukan solusi, A* juga dituntun oleh fungsi heuristik. Algoritma A* menggunakan dua indeks, yaitu OPEN dan CLOSED. Terdapat tiga buah kondisi bagi setiap suksesor yang dibangkitkan, yaitu : sudah beraada di OPEN, sudah berada di CLOSED, dan tidak ada di OPEN dan juga di CLOSED. Ketiga kondisi tersebut memiliki cara penyelesaian yang berbeda-beda. Jika suksesor sudah pernah berada di OPEN, maka dilakukan pemeriksaan apa perlu mengubah parent atau tidak tepaut pada nilai g-nya melalui parent lama atau parent baru. Jika melalui parent baru memberikan nilai g yang lebih kecil, maka dilakukan pengubahan parent. Jika pengubahan parent dilakukan, maka dilakukan juga perbaikan nilai g dan f pada suksesor tersebut. Jika suksesor sudah pernah berada di CLOSED, maka dilakukan pemeriskaan apa perlu diubah parent atau. UNIVERSITAS SUMATERA UTARA.

(24) 11. tidak, jika iya, maka dilakukan perbaikan nilai g dan f pada suksesor tersebut serta semua ‘anak cucunya’ yang sudah pernah berada di OPEN. Jika suksesor tidak berada di OPEN maupun di CLOSED, maka suksesor tersebut langsung dimasukkan ke dalam OPEN. Algoritma A* menggunakan notasi f(n)= g(n) + h(n), dimana f(n) adalah biaya estimasi terendah, g(n) adalah cost dari node awal ke node n, dan h(n) ialah jarak estimasi/ heuristik. Contoh pengerjaan Algoritma A* (A-Star). Gambar 2.6 Graf untuk Algoritma A* Tabel 2.1 Tabel Nilai Heuristik tiap Vertex pada graf. Berikut adalah langkah-langkah untuk menyelesaikan permasalahan graf dari vertex S ke vertex F dengan menggunakan algoritma A* :. UNIVERSITAS SUMATERA UTARA.

(25) 12. Gambar 2.7 Graf A*. Fungsi Evaluasi : S-C, f(A) = (g(S)+g(S ke A)) + h(A) = (0 + 55) + 30 = 85 S-A, f(C) = (g(S)+G(S ke C)) + h(C) = (0 + 25) + 18 = 43 Pertama, karena di OPEN hanya terdapat satu vertex yaitu S. Maka S di pilih sebagai bestnode dan di pindahkan ke CLOSED. Kemudian semua suksesornya dibangkitkan, yaitu : A dan C. Karena kedua suksesornya tidak ada di OPEN maupun di CLOSED, maka keduanya dimasukkan ke OPEN. Langkah pertama ini menghasilkan OPEN=[A,C] dan CLOSED=[S].. Gambar 2.8 Graf A*. UNIVERSITAS SUMATERA UTARA.

(26) 13. Fungsi Evaluasi : f(A) = 85 S-C-D, f(D) = (g(C)+g(C ke D)) + h(D) = (25+30) + 15 = 70 S-C-F, f(F) = (g(C)+g(C ke F)) + h(F) = (25+55) + 0 = 80. Langkah selanjutnya, C dengan biaya terkecil, yaitu 43 terpilih sebagai bestnode dan dipindahkan ke CLOSED. Lalu, semua suksesor C dibangkitkan, yaitu : D dan F. Karena belum pernah ada di OPEN maupun CLOSED, keduanya dimasukkan ke OPEN. Sehingga langkah kedua ini menghasilkan OPEN=[A,D,F] dan CLOSED=[S,C].. Gambar 2.9 Graf A* Fungi Evaluasi: f(A) = 85 S-C-D-F, f(F)= (g(D)+g(D ke F)) + h(D) = (55+45) + 0 = 100 f(F) = 80 Selanjutnya, D dengan biaya terkecil yaitu 70, terpilih sebagai bestnode dan dipindahkan ke CLOSED, lalu semua suksesor D dibangkitkan, yaitu : F. Karena F. UNIVERSITAS SUMATERA UTARA.

(27) 14. sebelumnya sudah ada di OPEN, maka terlebih dahulu harus diperiksa apakah parent dari F harus diganti apa tidak. Biaya dari S ke F melalui C ternyata lebih kecil dari pada biaya S ke F melalui D, oleh karena itu parent dari F harus diubah dari D kembali menjadi C. Dari langkah diatas didapat OPEN=[A,F] dan CLOSED=[S,C,D].. Gambar 2.10 Graf A* Fungsi Evaluasi : f(A) = 85 F dengan biaya terkecil, yaitu 80 terpilih sebagai bestnode. Karena bestnode-nya sama dengan goal, berarti solusi telah ditemukan. Rute dan total biaya bisa ditelusuri balik dari F menuju S, Karena setiap vertex hanya memiliki satu parent dan setiap vertex memiliki informasi biaya dari node awal ke node n (g). Penelusuran balik menghasilkan rute S-C-F dengan total jarak 80, dan rute ini merupakan rute terpendek dari vertex S ke vertex F.. UNIVERSITAS SUMATERA UTARA.

(28) 15. 2.5. Algoritma Best First Search. Algoritma Best First Search (BFS) merupakan gabungan dari dua macam algoritma yaitu Depth First Search dan juga algoritma Breadth First Search dengan mengambil keunggulan serta kelebihan dari kedua algoritma tersebut. Jika melakukan. pencarian. dengan. memakai. algoritma. Hill. Climbing. tidak. diperbolehkan untuk kembali ke node pada level yang lebih rendah, walaupun node di level yang lebih rendah tersebut memiliki nilai herusitik yang lebih bagus, bertentangan dengan algoritma Best First Search, jika melakukan pencarian diperbolehkan mengunjungi node yang berada di level yang lebih rendah, apabila node di level yang lebih tinggi mempunyai nilai heuristik yang lebih rendah (Kusumadewi, 2003). Untuk mengimplementasikan algoritma Best First Search ini, digunakan dua buah indeks, yaitu: OPEN untuk mengatur node-node yang pernah dibangkitkan tetapi belum dievaluasi dan CLOSED untuk mengelola node-node yang pernah dibangkitkan dan sudah dievaluasi. Untuk lebih lengkapnya adalah sebagai berikut. 1. Untuk pertama kali OPEN berisi titik awal dan CLOSED masih kosong. 2. Untuk yang selanjutnya ulangi sampai goal ditemukan atau sampai tidak ada di dalam OPEN. a. Ambil Simpul terbaik yang berada di dalam OPEN. b. Jika simpul tersebut sama dengan tujuan, maka selesai. c. Jika tidak, masukkan simpul tersebut ke dalam CLOSED. d. Bangkitkan semua suksesor dari simpul tesebut e. Lalu untuk setiap suksesor kerjakan :. i. Jika suksesor tersebut belum pernah dibangkitkan, evaluasi suksesor tersebut, tambahkan ke OPEN, dan catat parent. ii. Jika suksesor tersebut sudah pernah dibangkitkan, ubah parentnya, jika jalur melalui parent ini lebih baik dari pada jalur parent sebelumnya. Selanjutnya ubah biaya suksesor tersebut dan node lain yang berada di level bawahnya.. UNIVERSITAS SUMATERA UTARA.

(29) 16. Contoh pengerjaan Algoritma Best First Search (BFS). Gambar 2.11 Contoh tree algoritma BFS Berikut adalah langkah-langkah untuk menyelesaikan tree dari node A ke node H dengan menggunakan algoritma BFS :. Gambar 2.12 Node BFS. Pertama karena A adalah node awal, maka kita masukkan node A ke OPEN. Langkah pertama menghasilkan : OPEN [A6] , CLOSED [ ] , A ≠ H.. Gambar 2.13 Tree BFS Langkah selanjutnya, bangkitkan semua suksesor A, karena node B, C, dan D. UNIVERSITAS SUMATERA UTARA.

(30) 17. belum pernah dibangkitkan sebelumnya, maka node tersebut dimasukkan ke OPEN, dan juga karena B merupakan node terbaik maka B dipilih sebagai langkah berikutnya. Langkah kedua menghasilkan : OPEN [B3, C4, D5] , CLOSED [A5] , B ≠ H.. Gambar 2.14 Tree BFS Langkah selanjutnya, bangkitkan semua suksesor B, karena node E belum pernah dibangkitkan sebelumnya, maka node tersebut dimasukkan ke OPEN, dan juga karena C adalah node terbaik maka dipilih sebagai langkah selanjutnya. Langkah ketiga menghasilkan : OPEN [C4, D5, E9] , CLOSED [B3] , C ≠ H.. Gambar 2.15 Tree BFS. UNIVERSITAS SUMATERA UTARA.

(31) 18. Langkah selanjutnya, bangkitkan semua suksesor C, karena node F belum pernah dibangkitkan sebelumnya, maka node tersebut dimasukkan ke OPEN, dan D dipilih sebagai langkah berikutnya karena merupakan node terbaik dari OPEN list yang ada. Langkah keempat menghasilkan : OPEN [D5, F7, E9] , CLOSED [C4] , D ≠ H.. Gambar 2.16 Tree BFS Langkah selanjutnya, bangkitkan semua suksesor D, karena node G dan H belum pernah dibangkitkan sebelumnya maka node tersebut dimasukkan ke OPEN, dan karena di langkah ini tujuannya telah didapatkan yaitu node H dan juga merupakan node terbaik dari OPEN list yang ada maka contoh terselesaikan. Langkah terakhir ini menghasikan : OPEN [H5, G6 , F7, E9] , CLOSED [D5] , H = H, dengan total 23.. 2.6. Algoritma Best First Search Modification. Algoritma Best First Search adalah algoritma yang sebenarnya bukan untuk mencari jalur terpendek karena algortima ini dapat kembali ke titik yang sudah dia lewati sebelumnya. Jadi penulis memodifikasi algoritma ini agar dapat dipakai untuk pencarian jalur terpendek (shortest path).. UNIVERSITAS SUMATERA UTARA.

(32) 19. Pada algoritma Best First Search Modification ini pada saat pertama kali membangkitkan suksesor lalu dibandingkan mana yang lebih kecil diantara kedua suksesor tersebut, lalu dari yang terkecil tersebut akan diselesaikan terlebih dahulu semua suksesornya mirip seperti algoritma Depth First Search hanya saja di algoritma Best First Search Modification ini menggunakan biaya sebagai pembandingnya, setelah selesai sampai habis barulah dia menyelesaikan suksesor yang lain lagi sampai ketemu goalnya lalu membandingkan semua hasil goal dan memilih yang terkecil yang dijadikan sebagai hasilnya.. 2.7. Kompleksitas. Algoritma yang terbaik adalah algoritma yang efektif dan juga efisien. Efektifitas algoritma bisa diukur dari waktu (time) penyelesaian algoritma dan kebutuhan ruang (space) memori. Algoritma yang efisien adalah algoritma yang mengurangi kebutuhan pada ruang dan juga waktu. Keperluan ruang dan waktu dalam suatu algoritma tergantung pada ukuran masukan (n), yang menunjukkan jumlah data yang diproses. Efisiensi algoritma bisa dipakai untuk menilai algoritma yang terbaik dari sebagian algoritma penyelesaian masalah. Besaran yang dipakai untuk menunjukkan model abstrak pengukuran ruang atau waktu ini adalah kompleksitas algoritma, yaitu kompleksitas ruang dan juga kompleksitas waktu (Munir 2009). Notasi asimtotik adalah notasi yang menunjukkan suatu kompleksitas algoritma, dilihat dari banyaknya data. Notasi asimtotik dibagi menjadi 3 bagian, yaitu: -. Keadaan Terbaik (best case) Dilambangkan dengan notasi ( Ꝋ ) dibaca Big Theta. -. Keadaan rata-rata (average case) Dilambangkan dengan notasi ( Ω ) dibaca Big Omega. -. Keadaan Terburuk (worst case) Dilambangkan dengan notasi ( O ) dibaca Big-O. UNIVERSITAS SUMATERA UTARA.

(33) 20. Gambar 2.17 Grafik Fungsi Ꝋ. 2.8. Penelitian Relevan. Berikut ini adalah beberapa penelitian yang terkait dengan penelitian ini : 1.. Rian Putra Pratama (2011) Perbandingan Algoritma A* dan Dijkstra Berbasis Webgis Untuk Pencarian Rute Terpendek. Didapat kesimpulan bahwa algoritma A* dan Dijkstra akan memperoleh hasil berupa nilai yang sama untuk pencarian rute terpendek, tetapi mempunyai sedikit perbedaan dalam segi kecepatan. Pada algoritma A* memiliki proses yang lebih cepat yaitu rata-rata 0.8 ms, sedangkan algoritma Dijkstra rata-rata 1.46 ms dari lima kali percobaan.. 2.. Sudi Suryadi (2014) Perancangan Aplikasi Pencarian File Dengan Menggunakan Metode Best First Search. Di simpulkan bahwa algoritma Best First Search memiliki beberapa kelebihan antara lain adalah membutuhkan memori yang cukup relatif kecil, karena hanya node - node pada jalur aktif saja yang disimpan dan algoritma Best First Search bisa mendapatkan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan.. UNIVERSITAS SUMATERA UTARA.

(34) 21. 3.. Anisya dan Ganda Yoga Swara (2017) Implementation Of Havershine Formula And Best First Search Method in Searching Of Tsunami Evacuation Route. Menjelaskan bahwa Best First Search adalah algoritma pencarian grafis, yang berarti ruang pencarian dapat direpresentasikan sebagai simpul yang dihubungkan oleh jalur, algoritma ini lumayan bagus dipakai dalam hal memperkirakan populasi di sekitar node serta lebar jalan yang dilalui, dan juga bisa dapat meraih waktu yang optimal berdasarkan data dari populasi dan panjangnya jalur.. UNIVERSITAS SUMATERA UTARA.

(35) 22. BAB 3. ANALISIS DAN PERANCANGAN SISTEM. 3.1. Analisis Sistem. Analisis sistem adalah suatu tahapan yang memberikan penjelasan tentang beberapa permasalahan yang akan mendukung proses dalam perancangan model sistem yang kemudian akan dilakukan implementasinya dan juga menjadi penyelesaian dari kasus yang akan dikaji. Aplikasi Pencarian Rute Terdekat Pasar Swalayan Di Kota Medan ini merupakan aplikasi untuk menentukan rute / jalur dari suatu pasar swalayan ke tujuannya yaitu pasar swalayan lainnya dengan rute dan jalan terpendek yang paling efektif. Pengerjaan untuk membuat aplikasi ini memiliki beberapa tahapan untuk memudahkan perancangan serta pembuatannya. 3.1.1. Analisis Masalah. Selalu ada cara bagi kita untuk mencapai suatu tempat yang ingin dituju, dalam hal ini adalah untuk menuju Pasar Swalayan yang ingin kita tuju dibutuhkan suatu cara yang cepat dalam mencari rute terpendeknya serta mencari solusi yang paling optimal, sehingga tidak banyak waktu yang terbuang dan perjalanan lebih efisien. Dengan ini, maka penulis akan mencoba suatu cara untuk mencari rute terpendek Pasar Swalayan di Kota Medan dengan menggunakan dua buah algoritma, yaitu algoritma A* dan juga algoritma Best First Search Modification. Selain itu permasalahan untuk penelitian ini bukan hanya mencari rute terpendek dengan dua jenis algoritma, namun juga dengan membandingkan jarak dan hasil proses dari kedua algoritma tersebut dan untuk pengaplikasiannya graf dibuat dengan mengikuti peta Kota Medan, vertexnya ditentukan berdasarkan nama – nama Pasar Swalayan yang sudah dipilih yang berada di Kota Medan, dan edge yang merupakan panjang jarak yang akan dilalui dari satu Pasar Swalayan ke Pasar Swalayan lainnya.. UNIVERSITAS SUMATERA UTARA.

(36) 23. Ada 12 nama Pasar Swalayan di kota Medan yang telah penulis pilih dan akan diterapkan pada graf pada sistem yang dibuat, nama – nama Pasar Swalayan yang akan dipakai dapat dilihat pada Tabel 3.1 ini: Tabel 3.1 Nama – Nama Pasar Swalayan Yang Menjadi Vertex No. Nama Pasar Swalayan. Alamat. 1. Alfamart Flamboyan Raya [A]. Jl. Flamboyan Raya. 2. Swalayan Bahagia [B]. Jl. Melati Raya. 3. Alfamidi Ringroad 2 [J]. Jl. Ringroad. 4. Bina Swalayan [I]. Jl. Setia Budi. 5. Carrefour Citra Garden [E]. Jl. Jamin Ginting. 6. Swalayan Chyke’s [C]. Jl. Jend A.H. Nasution. 7. Surya Swalayan [F]. Jl. Jamin Ginting. 8. Diamond Karya Wisata [D]. Jl. Karya Wisata. 9. Swalayan 88 [L]. Jl. Kapten Patimura. 10. Pasar Buah Supermarket [K]. Jl. Sunggal. 11. Metro Store [H]. Jl. Dr Manysur. 12. Vigo Supermarket [G]. Jl. Kapten Patimura. Pada penelitian ini, penulis membatasi masalah dengan 12 buah simpul ( Vertex), kedepannya diharapkan ada penelitian lebih lanjut tentang masalah yang sama dengan memperbanyak jumlah simpul untuk Pasar Swalayan di kota Medan. Dan berikut adalah peta rute perjalanan dari 12 Pasar Swalayan yang telah dipilih untuk mencari Pasar Swalayan yang di inginkan.. UNIVERSITAS SUMATERA UTARA.

(37) 24. UNIVERSITAS SUMATERA UTARA.

(38) 25. UNIVERSITAS SUMATERA UTARA.

(39) 26. UNIVERSITAS SUMATERA UTARA.

(40) 27. UNIVERSITAS SUMATERA UTARA.

(41) 28. Gambar 3.1 Rute Pasar Swalayan di Kota medan (Google Maps) Dalam representasi graf, pemilihan hubungan antara vertex serta edge pada graf Pasar Swalayan di Kota Medan sangat dibutuhkan, dengan memperhatikan bobot berupa jarak agar prosesnya mendapatkan hasil yang optimal dalam pencarian jalur terpendek Pasar Swalayan. Data setiap vertex antara satu dengan yang lainnya dapat dilihat pada tabel 3.2. Tabel 3.2 Jarak Tiap Vertex Pada Graf Pasar Swalayan di Kota Medan. 1. Alfamart Flamboyan Raya. Alfamidi Ringroad 2. 2.6 Km. Bina Swalayan. 3.0 Km. Swalayan Bahagia. 400 M. UNIVERSITAS SUMATERA UTARA.

(42) 29. 2. 3. 4. 5. 6. 7. 8. 9. Swalayan Bahagia. Swalayan Chyke‘s. Diamond Karya Wisata. Carrefour Citra Garden. Surya Swalayan. Vigo Supermarket. Metro Store. Bina Swalayan. Alfamart Flamboyan Raya. 600 M. Alfamidi Ringroad 2. 2.4 Km. Swalayan Chyke’s. 4.3 Km. Bina Swalayan. 2.9 Km. Diamond Karya Wisata. 800 M. Carrefour Citra Garden. 1.9 Km. Swalayan Bahagia. 4.3 Km. Swalayan Chyke’s. 800 M. Surya Swalayan. 700 M. Swalayan Chyke’s. 1.9 Km. Swalayan Bahagia. 4.4 Km. Metro Store. 2.5 Km. Vigo Supermarket. 2.6 Km. Carrefour Citra Garden. 700 M. Metro Store. 1.6 Km. Surya Swalayan. 2.6 Km. Pasar Buah Supermarket. 1.8 Km. Bina Swalayan. 2.2 Km. Vigo Supermarket. 1.6 Km. Surya Swalayan. 2.5Km. Pasar Buah Supermarket. 1.4 Km. Metro Store. 2.2 Km. Alfamidi Ringroad 2. 3.7 Km. Alfamart Flamboyan Raya. 3.0 Km. Swalayan Bahagia. 2.9 Km. UNIVERSITAS SUMATERA UTARA.

(43) 30. 10 Alfamidi Ringroad 2. 11 Pasar Buah Supermarket. 12 Swalayan 88. Alfamart Flamboyan Raya. 2.6 Km. Swalayan Bahagia. 2.4 Km. Bina Swalayan. 3.7 Km. Swalayan 88. 2.4 Km. Pasar Buah Supermarket. 5.3 Km. Swalayan 88. 3.8 Km. Alfamidi Ringroad 2. 5.3 Km. Bina Swalayan. 1.4 Km. Metro Store. 1.8 Km. Alfamidi Ringroad 2. 2.4 Km. Pasar Buah Supermarket. 3.8 Km. Dan juga karena penulis menggunakan algoritma A* maka nilai heuristik untuk setiap titik Pasar Swalayan di tentukan berdasarkan : 1. 2. 3. 4. 5. 6. 7. 8.. Barang Lengkap (Diambil 3 sampel barang yaitu biskuit, sabun, permen) Suasana Mutu / Kualitas Barang (Expirednya tidak ada, diambil 5 sampel barang ) Pajangan barang (rapi atau tidak) Pelayanan (Ramah atau tidaknya pegawai) Kasir (minimal 2) Promosi (minimal ada 5 barang yg mendapat promosi harga) Lapangan Parkir ( Minimal 3 mobil, 6 motor ). Setelah dilakukan survey ke setiap Pasar Swalayan yang telah ditentukan penulis mendapatkan nilai heuristik setiap titik seperti gambar berikut ini :. UNIVERSITAS SUMATERA UTARA.

(44) 31. Tabel 3.3 Nilai Heuristik Pada Semua Vertex No Nama Pasar Swalayan. Nilai Heuristik. 1. Diamond Karya Wisata [D]. 2. 2. Swalayan Chyke’s [C]. 0. 3. Carrefour Citra Garden [E]. 0. 4. Swalayan Bahagia [B]. 1. 5. Surya Swalayan [F]. 3. 6. Alfamart Flamboyan Raya [A]. 4. 7. Alfamidi Ringroad 2 [J]. 0. 8. Bina Swalayan [I]. 1. 9. Vigo Supermarket [G]. 1. 10. Metro Store [H]. 0. 11. Pasar Buah Supermarket [K]. 0. 12. Swalayan 88 [L]. 0. Dan juga untuk hambatan berupa kemacetan di beri nilai sebagai berikut : - Lancar. = +0. - Sedikit Macet. = +1. - Macet. = +2. - Macet Total. = +3. Untuk mengidentifikasi suatu masalah pada umumnya dapat memakai diagram Ishikawa (fishbone diagram). Diagram Ishikawa ialah suatu alat visual untuk mengidentifikasi, menyelidiki, dan juga secara grafik memvisualkan secara rinci semua penyebab yang terkait dengan suatu permasalahan. Diagram Ishikawa memiliki bentuk yang mirip seperti kerangka tulang ikan yang bagiannya terdiri. UNIVERSITAS SUMATERA UTARA.

(45) 32. dari kepala ikan, dan tulang – tulang ikan. Biasanya kepala ikan akan berisi nama atau judul dari suatu masalah yang akan diidentifikasi penyebabnya, sedangkan tulang ikan merupakan kemungkinan penyebab yang berpengaruh pada masalah. Diagram Ishikawa untuk penelitian ini dapat dilihat pada gambar 3.2 berikut ini.. Gambar 3.2 Diagram Ishikawa Diagram Ishikawa diatas terbagi menjadi 4 aspek yaitu material, metode, user, dan sistem. Material adalah kebutuhan apa saja yang diperlukan dalam menjalankan sistem, dibagian ini ada 4 yaitu jarak, rute, node, dan kemacetan. Metode adalah kebutuhan yang spesifik dalam proses yang memiliki 2 kebutuhan yaitu dibutuhkannya pencarian jalur Pasar Swalayan yang memakai hambatan berupa kemacetan secara visual serta dibutuhkannya pencarian rute dengan metode heuristik.User adalah apa saja yang akan didapatkan pengguna aplikasi dimana user belum mengetahui cara kerja sistem. Sistem adalah sesuatu yang akan dilakukan atau dibuat yaitu dengan membuat aplikasi pencarian rute Pasar Swalayan di Kota Medan dengan algoritma A* dan algoritma Best First Search Modification. 3.1.2. Analisis Kebutuhan. Analisis kebutuhan dikerjakan setelah melewati tahap analisis masalah. Pada umumnya analisis kebutuhan dibagi menjadi 2 bagian, yaitu kebutuhan fungsional dan kebutuhan non – fungsional. Tahap ini memiliki tujuan untuk mengetahui hal. UNIVERSITAS SUMATERA UTARA.

(46) 33. – hal apa saja yang akan di kerjakan sistem, model, serta informasi spesifikasi perangkat lunak yang diperlukan pengguna. a. Kebutuhan Fungsional Kebutuhan fungsional ini menjelaskan tentang sistem yang disediakan. Dengan melakukan perhitungan, perbandingan rute, dan waktu pencarian Pasar Swalayan terdekat di Kota Medan dengan membandingkan dua buah algoritma yaitu algoritma A* dan algoritma Best First Search Modification, berikut ini adalah beberapa persyaratan fungsional, antara lain : 1. Sistem ini memakai graf Pasar Swalayan di Kota Medan yang telah dipilih dan dapat ditampilkan pada sistem sesuai dengan representasi graf yang sudah ditentukan. 2. Sistem yang dibangun menggunakan vertex dan edge pada graf yang dapat ditampilkan pada sistem berupa bobot jarak, rute yang akan dilalui untuk menuju Pasar Swalayan yang sudah ditentukan, serta nilai kemacetan. 3. Hasil pencarian dengan graf menggunakan dua buah algoritma yaitu A* dan Best First Search Modification yang diterpakan pada sistem. 4. Untuk Hasil real running time dengan memakai algoritma A* dan algoritma Best First Search Modification, sistem dapat menentukan kecepatan proses dari kedua algoritma tersebut. 5. Hasil dari graf dengan menggunakan algoritma A* dan Best First Search Modification dapat menentukan rute yang akan dilalui dalam sistem.. b. Kebutuhan Non - Fungsional Kebutuhan non - fungsional adalah kebutuhan yang berisi kinerja kebutuhan operasional serta kinerja dari suatu sistem. Berikut adalah beberapa persyaratan non - fungsional yang harus dikerjakan diantaranya : 1. User Friendly Sistem yang akan dikerjakan harus mudah digunakan (user friendly), artinya sistem tersebut akan mudah dipakai oleh user dengan tampilan yang sederhana dan dapat mudah dimengerti.. UNIVERSITAS SUMATERA UTARA.

(47) 34. 2. Performa Sistem yang akan dikerjakan harus dapat menunjukkan hasil running time dan rute Pasar Swalayan dari algoritma yang diterapkan. 3. Dokumentasi Sistem yang akan dikerjakan harus memiliki panduan penggunaan sistem sehingga user dapat menggunakan sistem dengan baik sesuai panduan. 4. Hemat Biaya Sistem yang digunakan tidak memerlukan perangkat tambahan yang dapat mengeluarkan biaya. 3.1.3. Analisis Proses. Pembuatan sistem menggunakan bahasa pemrograman C#. Algoritma yang digunakan untuk mencari rute terdekat Pasar Swalayan di Kota Medan adalah algoritma A* dan algoritma Best First Search Modification, hasil kinerja dari kedua buah algoritma tersebut akan dibandingkan untuk mengetahui algoritma mana yang lebih baik dari pencarian rute. 3.1.4. Diagram Umum. Diagram umum menjelaskan tentang bagaimana jalannya alur sistem secara umum dapat dilihat pada gambar 3.3 berikut ini.. Gambar 3.3 Diagram Umum Diagram Umum yang ditunjukkan pada gambar 3.3. Gambar tersebut menjelaskan langkah pertama adalah pengguna memasukkan titik awal atau lokasi awal yang dilanjutkan dengan memasukkan titik tujuan atau lokasi tujuan. Setelah. UNIVERSITAS SUMATERA UTARA.

(48) 35. itu proses pencarian dilakukan dengan algoritma A-Star dan algoritma Best First Search Modification. Setelah melalui tahap pencarian dengan kedua algoritma, maka sistem akan menampilkan hasil pencarian kepada pengguna berupa rute terpendek dan juga Hasil Running Time. 3.1.5. Flowchart. Flowchart adalah suatu bagan dengan simbol – simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program. Flowchart yang akan dibuat dibagi menjadi dua bagian yaitu flowchart sistem dan flowchart algoritma. a. Flowchart Sistem Flowchart Sistem yang dibuat dapat dilihat pada gambar 3.4.. UNIVERSITAS SUMATERA UTARA.

(49) 36. Gambar 3.4 Flowchart Sistem. UNIVERSITAS SUMATERA UTARA.

(50) 37. b. Flowchart Algoritma A* Flowchart algoritma A* dapat dilihat pada gambar 3.5.. Gambar 3.5 Flowchart Algoritma A*. UNIVERSITAS SUMATERA UTARA.

(51) 38. c. Flowchart Algoritma Best First Search Modification Flowchart algoritma Best First Search Modification dapat dilihat pada gambar 3.6.. Gambar 3.6 Flowchart Algoritma Best First Search Modification. UNIVERSITAS SUMATERA UTARA.

(52) 39. 3.2. Perancangan Sistem. Pada bagian perancangan sistem digunakan Unified Modeling Language (UML) sebagai bahasa spesifikasi standar suatu model yang berfungsi untuk membantu merancang sistem. Sistem ini dikerjakan dengan membuat use case diagram, activity diagram, dan sequence diagram. a. Use Case Diagram Use case adalah gambaran fungsionalitas dari suatu sistem, sehigga user mengerti mengenai apa saja kegunaan sistem yang dibangun, dimana penggambaran sistem dari sudut pandang user itu sendiri sehingga use case lebih diberatkan pada fungsionalitas yang berada pada sistem. Adapun use case dari sistem yang akan dibangun pada penelitian ini dapat dilihat pada gambar 3.7 berikut.. Gambar 3.7 Use Case Diagram b. Activity Diagram Activity diagram dapat dilihat pada gambar 3.8 menjelaskan tentang alur aktivitas antara user dan sistem yang dibuat secara berurutan dan detail sesuai interaksi antara user dan sistem yang akan dibuat.. UNIVERSITAS SUMATERA UTARA.

(53) 40. Gambar 3.8 Activity Diagram. c. Sequence Diagram Sequence diagram adalah diagram yang menampilkan interkasi yang berlangsung antar objek dengan proses yang dilakukan dalam sistem. Sequence diagram pencarian jalur terpendek dapat dilihat pada gambar 3.10 Berikut.. UNIVERSITAS SUMATERA UTARA.

(54) 41. Gambar 3.9 Sequence Diagram. 3.3. Perancangan Interface. Perancangan interface ini merupakan suatu bagian yang penting dalam membangun sebuah sistem. Interface yang baik perlu memperhatikan faktor user dalam menggunakan sistem, selain untuk mempermudah user dalam menggunakan sistem yang akan dibangun juga perlu memperhatikan kenyamanan dari user dalam menggunakan sistem tersebut. Adapun Interface yang tedapat pada sistem ini adalah menu Home, Panduaan Pengguanan, Mulai Uji, dan Tentang. a. Menu Home Pada gambar 3.10 kita dapat melihat interface pada menu home beserta dengan keterangan tentang gambar yang dijelaskan dibawah gambar 3.10.. UNIVERSITAS SUMATERA UTARA.

(55) 42. Gambar 3.10 Perancangan Interface Main Menu Keterangan gambar 3.10 : 1. Merupakan label judul skripsi penulis 2. Merupakan picture box logo fakultas 3. Merupakan label nama dan nim 4. Strip tool menu bar item Panduan Penggunaan 5. Strip tool menu bar item Mulai Uji 6. Strip tool menu bar item Tentang. b. Halaman Menu Panduaan Penggunaan Halaman menu panduan penggunaan merupakan halaman yang digunakan untuk menunjukkan cara kerja atau penggunaan sistem. Adapun rancangan halaman menu panduaan penggunaan dalpat dilihat pada gambar 3.11 dan keterangan gambar dibawahnya.. UNIVERSITAS SUMATERA UTARA.

(56) 43. Gambar 3.11 Perancangan Interface Halaman Menu Panduan Penggunaan Keterangan gambar 3.11 : 1. Label untuk menampilkan tulisan panduan penggunaan 2. Picture box untuk menampilkan contoh gambar 3. Label untuk menampilkan petunjuk langkah sistem 4. Picture box untuk menampilkan contoh gambar 5. Label untuk menampilkan petunjuk langkah sistem. c. Halaman Menu Mulai Uji Halaman ini merupakan halaman yang tampil pada saat pengguna memilih menu mulai uji pada halaman Home. Pada halaman ini pengguna dapat melihat graf yang akan ditampilkan, pemilihan algoritma yang akan dipakai, hari dan waktu, hasil total jarak, rute, serta running time dari kedua algoritma tersebut. Rancangan halaman menu mulai uji dapat dilihat pada gambar 3.12 Berikut serta penjelasan dibawah gambarnya.. UNIVERSITAS SUMATERA UTARA.

(57) 44. Gambar 3.12 Perancangan Interface Halaman Menu Mulai Uji Keterangan gambar 3.12 : 1. Combobox untuk menginput titik awal 2. Combobox untuk menginput titik tujuan 3. Combobox untuk menginput hari dan waktu 4. Button untuk menemuka jalur dari titik awal ke titik tujuan 5. DataGridView untuk menampilkan jalur bedasarkan algoritma A* 6. Textbox untuk menampilkan waktu proses algoritma A* 7. Textbox untuk menampilkan jumlah solusi algoritma A* 8. Textbox untuk menampilkan jalur terbaik algoritma A* 9. DataGridView untuk menampilkan jalur bedasarkan algoritma BFS Modification 10. Textbox untuk menampilkan waktu proses algoritma BFS Modification 11. Textbox untuk menampilkan jumlah solusi algoritma BFS Modification 12. Textbox untuk menampilkan jalur terbaik algoritma BFS Modification 13. Groupbox untuk menampilkan graf jalur pasar swalayan 14. Trackbar untuk menzoom in dan zoom out graf. UNIVERSITAS SUMATERA UTARA.

(58) 45. 15. Button untuk kembali ke menu awal program 16. Button untuk reset semua data dan kembali seperti awal. d. Halaman Menu Tentang Tampilan halaman tentang merupakan halaman yang berisi nama penulis, daftar riwayat hidup penulis, dan penjelasan lainnya. Dapat dilihat pada gambar 3.14 dan keterangannya dibawah gambar 3.13 berikut.. Gambar 3.13 Perancangan Interface Halaman menu Tentang. Keterangan gambar 3.13 : 1. Label untuk menampilkan Tentang 2. Picture box untuk menampilkan foto 3. Label untuk menampilkan data dan riwayat hidup penulis 4. Label untuk menampilkan Unviersitas Sumatera Utara 5. Button untuk kembali ke menu awal. UNIVERSITAS SUMATERA UTARA.

(59) 46. BAB 4. IMPLEMENTASI DAN PENGUJIAN. 4.1. Implementasi. Untuk Implementasi dalam penelitian ini, sistem dibuat dengan bahasa pemrograman C# dan menggunakan software Visual Studio. Dalam sistem ini terdapat 4 tampilan halaman, yaitu Main Menu, Panduan, Mulai Uji, dan Tentang.. 4.1.1. Tampilan Halaman Main Menu. Tampilan Main Menu ialah tampilan awal yang muncul ketika user menjalankan aplikasi. Tampilan Main Menu dapat dilihat pada gambar 4.1, pada Main Menu terlihat tampilan aplikasi yang mempunyai judul penelitian, logo universitas penulis, identitas penulis, dan 3 buah button yaitu Panduan, Mulai Uji, dan Tentang.. Gambar 4.1 Halaman Main Menu. UNIVERSITAS SUMATERA UTARA.

(60) 47. 4.1.2. Tampilan Halaman Menu Panduan. Tampilan halaman menu panduan merupakan halaman yang berisi gambar dan juga penjelasan tentang cara menggunakan aplikasi pada menu Mulai Uji. Seperti yang dapat dilihat pada gambar 4.2.. Gambar 4.2 Halaman Menu Panduan Penggunaan. 4.1.3. Tampilan Halaman Menu Mulai Uji. Pada halaman menu ini user dapat memilih titik awal dan tujuan sesuai dengan supermarket yang dia pilih dan juga dapat memilih hari dan waktu. Setelah selesai memilih, user diharuskan menekan button temukan jalur untuk memproses pencarian dan akan langsung tampil hasil pencarian berupa kumpulan rute, jarak, jumlah solusi, jarak terpendek, dan running time dari kedua algoritma tersebut. Dapat dilihat pada gambar 4.3. UNIVERSITAS SUMATERA UTARA.

(61) 48. Gambar 4.3 Halaman Menu Mulai Uji. 4.1.4. Tampilan Halaman Menu Tentang. Tampilan halaman menu tentang merupakan tampilan halaman yang berisi riwayat hidup penulis dan juga riwayat pendidikan penulis. Dapat dilihat pada gambar 4.4.. Gambar 4.4 Halaman Menu Tentang. 4.2. Pengujian. Pengujian sistem pada penelitian ini merupakan lanjutan setelah implementasi sistem. Pengujian sistem memiliki tujuan untuk membuktikan bahwa sisitem yang. UNIVERSITAS SUMATERA UTARA.

(62) 49. dibangun telah berjalan dengan baik untuk pencarian rute terpendek. Pengujian sistem ini dilakukan pada graf Pasar Swalayan dengan 18 node dengan membandingkan pencarian menggunakan algoritma A* dan algoritma Best First Search Modification.. 4.2.1. Pengujian Implementasi Algoritma A*. Algoritma A* merupakan algoritma pencarian jalur (path finding) yang di tuntun oleh fungsi heuristik. Hasil pengujian dengan algoritma A* dapat dilihat pada gambar 4.5 berikut.. Gambar 4.5 Graf Hasil Pengujian Algoritma A* 4.2.2. Perhitungan Manual Algoritma A*. Perhitungan manual algoritma A*, proses pencarian jalur dimulai dari titik A menuju titik C. Berikut adalah langkah-langkah perhitungan manual pencarian jalur menggunakan algoritma A* : Keterangan gambar : : Node yang belum di kunjungi : Node yang sudah di kunjungi. UNIVERSITAS SUMATERA UTARA.

(63) 50. : Node Tujuan. Langkah 1. A Node A merupakan node awal, dan menjadi best node.. Langkah 2. A. 1 Lalu dibangkitkan semua suksesor node A, karena cuma ada satu node maka node 1 dipilih sebagai langkah selanjutnya. Langkah 3. A. 1. B. 6. Selanjutnya dibangkitkan suksesor node 1, yaitu B dan 6 lalu setelah dibandingkan cost + nilai heuristiknya, ternyata B lebih baik dari pada 6. B dipilih sebagai langkah selanjutnya.. UNIVERSITAS SUMATERA UTARA.

(64) 51. Langkah 4. A. 1. B. 6. 2 Selanjutnya suksesor node B dibangkitkan, walaupun node 6 lebih baik dari pada node 2, node 2 tetap terpilih sebagai langkah selanjutnya. Karena algoritma A* menyelesaikan terlebih dahulu jalur dengan cost ditambah dengan nilai heuristik terkecil sampai tidak bisa lagi menemukan node yang bisa dikunjungi. Langkah 5. A. 1. B. 6. 2. C E. E. Selanjutnya suksesor node 2 dibangkitkan, yaitu C dan E, karena memiliki nilai yang sama maka C dipilih karena C lebih dulu di panggil walaupun sama-sama. UNIVERSITAS SUMATERA UTARA.

(65) 52. dibangkitkan dan node C adalah goal, walaupun sudah goal dia mengecek lagi apakah ada node lain yang bisa ke goal. Lalu di cek dari node E ternyata bukan goal dan terusan dari E tidak akan sampai ke goal maka node E tidak dijalankan. Langkah 6. Lalu di cek lagi parent yang masih ada, dan ternyata masih ada 6 lalu di dicari sampai kebawah sama seperti sebelumnya dan dapatlah 2 jalur tree lagi yang bisa sampai ke goal. Lalu semua jalur tree yang bisa ke goal sampai ke titik awal sampai ke goal dilakukan perbandingan mana yang paling memiliki total jarak yang paling rendah dan dapatlah hasil dari algoritma A*, yaitu A-1-B-2-C dengan jarak 4.70Km.. UNIVERSITAS SUMATERA UTARA.

(66) 53. 4.2.3. Pengujian Implementasi Algoritma Best First Search Modification. Algoritma Best First Search (BFS) adalah gabungan dari algoritma Depth First Search dan algoritma Breadth First Search dengan mengambil kelebihan dari dua algoritma tersebut, tetapi karena algoritma Best First Search ini adalah algoritma untuk sorting maka disini penulis memodifikasi algoritmanya agar bisa digunakan untuk path finding. Hasil pengujian dengan algoritma Best First Search Modification dapat dilihat pada gambar 4.5 berikut.. Gambar 4.6 Graf Hasil Pengujian Algoritma Best First Search Modification. 4.2.4. Perhitungan Manual Algoritma Best First Search Modification. Sama seperti Algoritma A*, proses pencarian jalur dimulai dari titik A menuju titik C. Berikut adalah langkah-langkah perhitungan manual pencarian jalur menggunakan algoritma Best First Search Modification : Keterangan gambar : : Node yang belum di kunjungi : Node yang sudah di kunjungi : Node Tujuan. UNIVERSITAS SUMATERA UTARA.

(67) 54. Langkah 1. A Node A merupakan node awal, dan menjadi best node.. Langkah 2. A. 1 Lalu dibangkitkan semua suksesor node A, karena cuma ada satu node maka node 1 dipilih sebagai langkah selanjutnya. Langkah 3. A. 1. B. 6. Selanjutnya dibangkitkan suksesor node 1, yaitu B dan 6 lalu setelah dibandingkan ternyata B lebih baik dari pada 6. B dipilih sebagai langkah selanjutnya.. Langkah 4. UNIVERSITAS SUMATERA UTARA.

(68) 55. A. 1. B. 6. 2 Selanjutnya suksesor node B dibangkitkan, walaupun node 6 lebih baik dari pada node 2, node 2 tetap terpilih sebagai langkah selanjutnya. Karena algoritmanya dimodifikasi sehingga ketika suksesor/anak dari node dibuka dan memiliki lebih dari satu cabang, lalu dipilih salah satu yang memiliki nilai terkecil dan node yang terpilih akan dilakukan pencarian sampai kebawah sama seperti algoritma DFS. Langkah 5. A. 1. B. 6. 2. C E. E. Selanjutnya suksesor node 2 dibangkitkan, yaitu C dan E, karena memiliki nilai yang sama maka C dipilih karena C lebih dulu di panggil walaupun sama-sama. UNIVERSITAS SUMATERA UTARA.

(69) 56. dibangkitkan dan node C adalah goal, walaupun sudah goal dia mengecek lagi apakah ada node lain yang bisa ke goal. Lalu di cek dari node E ternyata bukan goal dan terusan dari E tidak akan sampai ke goal maka node E tidak dijalankan. Langkah 6. Lalu di cek lagi parent yang masih ada, dan ternyata masih ada 6 lalu di dicari sampai kebawah sama seperti sebelumnya dan dapatlah 2 jalur tree lagi yang bisa sampai ke goal. Lalu semua jalur tree yang bisa ke goal sampai ke titik awal sampai ke goal dilakukan perbandingan mana yang paling memiliki total jarak yang paling rendah dan dapatlah hasil dari algoritma Best First Search Modification yang dimodifikasi, yaitu A-1-B-2-C dengan jarak 4.70Km.. UNIVERSITAS SUMATERA UTARA.

(70) 57. 4.3. Hasil Pengujian Algoritma. Setelah melakukan pengujian untuk sistem, didapatlah semua hasil dari pengujian untuk kedua algoritma tersebut yang dapat dilihat pada tabel 4.4 berikut. Tabel 4.1 Hasil Running Time Setiap Algoritma Waktu Proses. Waktu Proses Algoritma. Algoritma A*. Best First Search. (Ms). Modification (Ms). No. Rute. Hari dan Waktu. 1. A-L. Weekends Pagi. 129.67 ms. 164.47 ms. 2. B-L. Weekends Pagi. 131.85 ms. 93.92 ms. 3. C–L. Weekends Pagi. 157.17 ms. 142.82 ms. 4. D–L. Weekends Pagi. 149.97 ms. 150.13 ms. 5. E–L. Weekends Pagi. 160.19 ms. 120.08 ms. 6. F-L. Weekends Pagi. 169.90 ms. 172.89 ms. 7. G-L. Weekends Pagi. 167.92 ms. 110.08 ms. 8. H-L. Weekends Pagi. 179.14 ms. 160.02 ms. 9. I-L. Weekends Pagi. 158.03 ms. 100.01 ms. 10. J-L. Weekends Pagi. 97.21 ms. 54.65 ms. 11. K-L. Weekends Pagi. 163.25 ms. 98.35 ms. 12. Rata – Rata Waktu Proses. 151.30 ms. 124.31 ms. Berdasarkan tabel 4.1, dari total 11 kali pengujian dapat dilihat bahwa algoritma Best First Search Modification yang lebih cepat waktu prosesnya dibandingkan algoritma A*. Hari dan waktu juga mempengaruhi waktu proses pada algoritma A* maupun algoritma Best First Search Modification.. UNIVERSITAS SUMATERA UTARA.

(71) 58. 4.4. Kompleksitas Algoritma. Kompleksitas algoritma didapatkan dari analisis kode program yang telah dibuat, dan jadi tolak ukur unutk mengetahui real time dari algoritma yang dipilih.. 4.4.1. Kompleksitas Algortima A*. Kompleksitas menggunakan algoritma A* dapat dilihat pada tabel 4.2 berikut. Tabel 4.2 Kompleksitas Algoritma A* No. Kode Program. C. #. C*#. 1. jumlah = 0;. C1. 1. C1. 2. int titikasal = comboBox1.SelectedIndex;. C2. 1. C2. 3. int titiktujuan = comboBox2.SelectedIndex;. C3. 1. C3. 4. Datanya[] tujuan = node[titikasal];. C4. 1. C4. 5. Array.Sort<Datanya>(tujuan, (x, y) => x.cost.CompareTo(y.cost));. C4. 1. C4. 6. List<int> telahDilewati = new List<int>();. C5. 1. C5. 7. telahDilewati.Add(titikasal);. C5. 1. C5. 8. foreach (Datanya titiknya in tujuan). C6. n. C6n. 9. astardown(telahDilewati, titiknya.kemana, titiktujuan);. C7. n. C7n. 10. void astardown(List<int> sudahDilalui, int vertextujuan, int titikakhir). 11. List<int> yangDilewati = new List<int>(sudahDilalui);. C8. 1. C8. 12. Datanya[] tujuan = node[vertextujuan];. C9. 1. C9. 13. yangDilewati.Add(vertextujuan);. C9. 1. C9. 14. Array.Sort<Datanya>(tujuan, (x, y) => x.cost.CompareTo(y.cost));. C9. 1. C9. 15. foreach (Datanya vertexnya in tujuan). C6. n. C6n. 16. if (!yangDilewati.Contains(vertexnya.kemana) && vertexnya.kemana != titikakhir). C10. n. C10n. UNIVERSITAS SUMATERA UTARA.

(72) 59. 17. astardown(yangDilewati, vertexnya.kemana, titikakhir);. C7. n. C7n. 18. else if (vertexnya.kemana == titikakhir). C10. n. C10n. 19. List<int> yangDilewati2 = new List<int>(yangDilewati);. C11. n. C11n. 20. yangDilewati2.Add(vertexnya.kemana);. C11. n. C11n. 21. double jarak = 0.00;. C12. n. C12n. 22. int macets = 0;. C13. n. C13n. 23. string kemacetan = " ";. C14. n. C14n. 24. Double AstarF = 0.00;. C15. n. C15n. 25. int baru = yangDilewati2[0];. C16. n. C16n. 26. String rute = name[baru];. C17. n. C17n. 27. foreach(int i in yangDilewati2). C6. n2. C6 n2. 28. foreach (Datanya z in node[baru]). C6. n3. C6n3. 29. if (z.kemana == i). C10. n3. C10 n3. 30. jarak += z.cost;. C12. n3. C12 n3. 31. macets += z.kemacetan;. C13. n3. C13 n3. 32. kemacetan += z.kemacetan + "-";. C14. n3. C14 n3. 33. baru = i;. C18. n3. C18 n3. 34. rute += " - " + name[baru];. C17. n3. C17 n3. 35. string kemacetanasli = kemacetan.Substring(0, kemacetan.Length - 1);. C19. n3. C19 n3. 36. AstarF = heur[titikakhir] + (jarak);. C20. n3. C20 n3. 37. dataGridView1.Rows.Add(++jumlah, jarak.ToString(), rute ,AstarF.ToString(),kemacetanasli.ToString());. C21. n3. C21 n3. Kolom C pada tabel 4.2 menjelaskan tentang berapa banyak precessor melakukan komputasi. Kolom # berguna sebagai variabel untuk menghitung pengerjaan baris program. Kolom C*# adalah hasil perkalian dari kolom C dan #. Dari perhitungan. UNIVERSITAS SUMATERA UTARA.

(73) 60. kompleksitas pada tabel 4.2 maka didapat T(n) yang merupakan jumlah kolom C*# sebagai berikut: T (n) =. C1 + C2 +C3 + C4 + C4 + C5 + C6n + C7n + C8 + C9 + C9 + C9 + C6n + C10n + C11n + C11n + C12n + C13n + C14n + C15n + C16n + C17n + C6 n2 + C6 n3 + C10 n3 + C12 n3 + C13 n3 + C14 n3 + C18 n3 + C17 n3 + C19 n3 + C20 n3 + C21 n3. T (n) =. (C1 + C2 + C3 + C4 + C4 + C5 + C9 + C9 + C9) n0 + (C6 + C6 + C7 + C10 + C11 + C12 + C13 + C14 + C15 + C16 + C17) n1 + (C6)n2 + (C6 + C10 + C12 + C13 + C14 + C17 + C18 + C19 + C20 + C21)n3. T (n) =. 𝜃 (n3). Pada perhitungan diatas diperoleh hasil perhitungan kompleksitas algoritma A* adalah 𝜃 (n3).. 4.4.2. Kompleksitas Algoritma Best First Search Modification. Kompleksitas menggunakan algoritma Best First Search Modification dapat dilihat pada tabel 4.3 berikut ini. Tabel 4.3 Kompleksitas Algoritma Best First Search Modification No. Kode Program. C. #. C*#. 1. jumlah = 0;. C1. 1. C1. 2. int titikasal = comboBox1.SelectedIndex;. C2. 1. C2. 3. int titiktujuan = comboBox2.SelectedIndex;. C3. 1. C3. 4. Datanya[] tujuan = node[titikasal];. C4. 1. C4. 6. Array.Sort<Datanya>(tujuan, (x, y) => x.kemana.CompareTo(y.kemana));. C4. 1. C4. 7. List<int> telahDilewati = new List<int>();. C5. 1. C5. 8. telahDilewati.Add(titikasal);. C5. 1. C5. 9. foreach (Datanya vertexnya in tujuan). C6. n. C6n. UNIVERSITAS SUMATERA UTARA.

(74) 61. 10. Bfsdown(telahDilewati, vertexnya.kemana, titiktujuan);. C7. n. C7n. 11. List<int> yangDilewati = new List<int>(sudahDilalui);. C8. 1. C8. 12. Datanya[] tujuan = node[vertextujuan];. C9. 1. C9. 13. int macets = 0;. C10. 1. C10. 14. Array.Sort<Datanya>(tujuan, (x, y) => x.cost.CompareTo(y.cost));. C4. 1. C4. 15. yangDilewati.Add(vertextujuan);. C10. 1. C10. 16. foreach (Datanya vertexnya in tujuan). C6. n. C6n. 17. if (!yangDilewati.Contains(vertexnya.kemana) && vertexnya.kemana != titikakhir && jumlahsolusibest <1). C11. n. C11n. 18. Bfsdown(yangDilewati, vertexnya.kemana, titikakhir);. C7. n. C7. 19. if (vertexnya.kemana == titikakhir). C11. n. C11n. 20. List<int> yangDilewati2 = new List<int>(yangDilewati);. C12. n. C12n. 21. yangDilewati2.Add(vertexnya.kemana);. C12. n. C12n. 22. double jarak = 0.00;. C13. n. C13n. 23. string kemacetan = " ";. C14. n. C14n. 24. int baru = yangDilewati2[0];. C15. n. C15n. 25. String rute = name[baru];. C16. n. C16n. 26. for (int i = 1; i < yangDilewati2.Count; i++). C6. n2. C6n2. 27. foreach (Datanya z in node[baru]). C6. n3. C6n3. 28. if (z.kemana == yangDilewati2[i]). C11. n3. C11n3. 29. macets += z.kemacetan;. C14. n3. C14n3. 30. jarak += z.cost;. C13. n3. C13n3. 31. kemacetan += z.kemacetan + "-";. C14. n3. C14 n3. UNIVERSITAS SUMATERA UTARA.

(75) 62. 32. baru = yangDilewati2[i];. C15. n3. C15 n3. 33. rute += " - " + name[baru];. C16. n3. C16 n3. 34. string kemacetanasli = kemacetan.Substring(0, kemacetan.Length - 1);. C17. n3. C17 n3. 35. dataGridView2.Rows.Add(++jumlah, jarak.ToString(), rute , kemacetanasli.ToString());. C18. n3. C18 n3. Kolom C pada tabel 4.3 menjelaskan tentang berapa banyak precessor melakukan komputasi. Kolom # berguna sebagai variabel untuk menghitung pengerjaan baris program. Kolom C*# adalah hasil perkalian dari kolom C dan #. Dari perhitungan kompleksitas pada tabel 4.3 maka didapat T(n) yang merupakan jumlah kolom C*# sebagai berikut: T (n) =. C1, C2, C3, C4, C4, C5, C5, C6n, C7n, C8, C9, C10, C4, C10, C6n, C11n, C7,C11n, C12n, C12n, C13n, C14n, C15n, C16n, C6n2, C6 n3, C11 n3, C14 n3, C13 n3, C14 n3, C15 n3, C16 n3, C17 n3, C18 n3. T (n) =. (C1 + C2 + C3 + C4 + C4 + C4 + C5 + C5 + C7 + C8 + C9 + C10 + C10) n0 + (C6 + C6 + C7 + C11 + C11 + C12 + C12 + C13 + C14 + C15+ C16) n1 + (C6)n2 + (C6 + C11 + C13 + C14 + C14 + C15 + C16 + C17 + C18)n3. T (n) =. 𝜃 (n3). Pada perhitungan diatas diperoleh hasil perhitungan kompleksitas algoritma Best First Search Modification adalah 𝜃 (n3).. UNIVERSITAS SUMATERA UTARA.

(76) 63. BAB 5. KESIMPULAN DAN SARAN. 5.1. Kesimpulan. Dari pembuatan dan pengujian sistem pencarian jalur Pasar Swalayan dikota Medan dengan algoritma A* dan algoritma Best First Search Modification diambil kesimpulan sebagai berikut : 1. Pencarian jalur pada sistem dengan algoritma A* dan Best First Search Modification selalu bisa menemukan jalur apabila titik awal dan titik tujuan telah ditentukan. 2. Hasil pencarian jalur terpendek Pasar Swalayan dikota Medan dengan kedua algoritma menghasilkan total jarak dan rute yang sama tetapi untuk running timenya berbeda. 3. Untuk kompleksitas algoritma A* adalah 𝜃(n3) sedangkan algoritma Best First Search Modification adalah 𝜃(n3). Untuk algoritma A* mempunyai rata - rata running time 151.3 ms dan alogritma. Best First Search. Modification mempunyai rata-rata running time 124.31 ms, jadi untuk algoritma yang lebih efisien dalam waktu proses (running time) adalah algoritma Best First Search Modification dibandingkan dengan algoritma A*. 4. Lamanya proses pencarian untuk pencarian rute dengan kedua algoritma, khususnya algoritma A* yang tergantung pada bagus atau tidaknya suatu swalayan serta jarak antara node awal dan node tujuan pada peta. 5.2. Saran. Berikut ini adalah saran yang dapat penulis berikan untuk pengembangan maupun penelitian selanjutnya adalah :. UNIVERSITAS SUMATERA UTARA.

(77) 64. 1. Sistem bisa dikembangan pada studi kasus lain dengan menambahkan jumlah node serta bisa juga menambahkan hambatan sebagai faktor perhitungan. 2. Sebaiknya untuk pengembangan kedepannya sistem dikembangkan dengan menggunakan sistem yang berbasis mobile. 3. Pada sistem ini algoritma yang digunakan adalah algoritma A* dan algoritma Best First Search Modification. Untuk pengembangan selanjutnya diharapkan penggunaan algoritmanya berbeda dan bisa lebih dari dua algoritma untuk lebih banyak mengetahui perbandingan kinerja tiap algoritma yang digunakan.. UNIVERSITAS SUMATERA UTARA.

(78) 65. DAFTAR PUSTAKA. Aini, Dewi Yusra. 2011. Analisis Algoritma A* Dan Implementasinya Dalam Pencarian Rute Terpendek Pada Jalur Lintas Sumatera Di Provinsi Sumatera Utara. Skripsi. Medan: Universitas Sumatera Utara Jones, M. Tim. 2009. Artificial Intelligence: A System Approach. London: Jones and Bartlett Publishers. Marsudi. 2016. Teori Graf. Malang : Universitas Brawijaya Press. Pratama, Rian P. 2011. Perbandingan Algoritma A* Dan Djikstra berbasis Webgis Untuk Pencarian Rute Terpendek. Bandung: Universitas Pendidikan Indonesia. R. Munir, 2009. Matematika Diskrit, Edisi 3. Bandung : Informatika. Setiyani, Rike Nur. 2015. Implementasi Algoritma Best First Search Pada Penyelesaian Traveling Salesman Problem (TSP) (Studi Kasus: Perjalanan Wisata di Kota Yogyakarta). Skripsi. Universitas Islam Negeri Sunan Kalijaga Yogyakarta. Siregar, B., Gunawan, D., Andayani, U., Lubis, E.S., Fahmi, F. 2017. Food Delivery System with the Utilization of Vehicle Using Geographical Information System (GIS) and A Star Algorithm. IOP Conference Series : Journal of Physics : Conference Series 801 (2017) 012038. Sitorus, L. 2015 : Algoritma dan Pemrograman. Yogyakarta : Andi Publisher. Suryadi, Sudi. 2014. Perancangan Aplikasi Pencarian File Dengan Menggunakan Metode Best First Search. Jurnal Informatika AMIK-LB, Vol. 2, No. 2, 2034. Suyitno, Popy P. Wahid. 2016. Pencarian Jalur Terpendek Dari Rumah Menuju Candi Jiwa Batujaya Menggunakan Algoritma A-Star. Jurnal KNIT-2 Nusa Mandiri. Vol.2, No.1, ISBN: 978-602-72850-1-9.. UNIVERSITAS SUMATERA UTARA.

(79) 66. Swara, Ganda Y., Anisya. 2017. Implementation Of Havershine Formula And Best First Search Method in Searching Of Tsunami Evacuation Route. IOP Conference Series: Earth and Environmental Science 97 (2017) 012004.. UNIVERSITAS SUMATERA UTARA.

(80) A-1. LISTING PROGRAM Algoritma A*. public void astar() { jumlah = 0; int titikasal = comboBox1.SelectedIndex; int titiktujuan = comboBox2.SelectedIndex; Datanya[] tujuan = node[titikasal]; Array.Sort<Datanya>(tujuan, (x, y) => (x.cost+x.h).CompareTo((y.cost+y.h))); List<int> telahDilewati = new List<int>(); telahDilewati.Add(titikasal); foreach (Datanya titiknya in tujuan) { astardown(telahDilewati, titiknya.kemana, titiktujuan); } } void astardown(List<int> sudahDilalui, int vertextujuan, int titikakhir) { List<int> yangDilewati = new List<int>(sudahDilalui); Datanya[] tujuan = node[vertextujuan]; yangDilewati.Add(vertextujuan); Array.Sort<Datanya>(tujuan, (x, y) => (x.cost+ x.h).CompareTo(y.cost+y.h)); foreach (Datanya vertexnya in tujuan) { if (!yangDilewati.Contains(vertexnya.kemana) && vertexnya.kemana != titikakhir) { astardown(yangDilewati, vertexnya.kemana, titikakhir); } else if (vertexnya.kemana == titikakhir) { List<int> yangDilewati2 = new List<int>(yangDilewati); yangDilewati2.Add(vertexnya.kemana); double jarak = 0.00; string kemacetan = " "; Double AstarF = 0.00; int baru = yangDilewati2[0]; String rute = name[baru];. foreach(int i in yangDilewati2) { foreach (Datanya z in node[baru]). UNIVERSITAS SUMATERA UTARA.

(81) A-2. { if (z.kemana == i) { jarak += z.cost; kemacetan += z.kemacetan + "-"; baru = i; rute += " - " + name[baru];. break; } } } string kemacetanasli = kemacetan.Substring(0, kemacetan.Length - 1); AstarF = heur[titikakhir] + (jarak); dataGridView1.Rows.Add(++jumlah, jarak.ToString(), rute ,AstarF.ToString(),kemacetanasli.ToString()); jumlahsolusiastar++; } } }. Algoritma Best First Search Modification public void BestFirstSearch() { jumlah = 0; int titikasal = comboBox1.SelectedIndex; int titiktujuan = comboBox2.SelectedIndex; Datanya[] tujuan = node[titikasal]; Array.Sort<Datanya>(tujuan, (x, y) => x.kemana.CompareTo(y.kemana)); List<int> telahDilewati = new List<int>(); telahDilewati.Add(titikasal); foreach (Datanya vertexnya in tujuan) { Bfsdown(telahDilewati, vertexnya.kemana, titiktujuan); } } void Bfsdown(List<int> sudahDilalui, int vertextujuan, int titikakhir). UNIVERSITAS SUMATERA UTARA.

(82) A-3. { List<int> yangDilewati = new List<int>(sudahDilalui); Datanya[] tujuan = node[vertextujuan]; Array.Sort<Datanya>(tujuan, (x, y) => x.cost.CompareTo(y.cost)); yangDilewati.Add(vertextujuan); foreach (Datanya vertexnya in tujuan) { if (!yangDilewati.Contains(vertexnya.kemana) && vertexnya.kemana != titikakhir) { Bfsdown(yangDilewati, vertexnya.kemana, titikakhir); } if (vertexnya.kemana == titikakhir) { List<int> yangDilewati2 = new List<int>(yangDilewati); yangDilewati2.Add(vertexnya.kemana); double jarak = 0.00; string kemacetan = " "; int baru = yangDilewati2[0]; String rute = name[baru]; for (int i = 1; i < yangDilewati2.Count; i++) { foreach (Datanya z in node[baru]) { if (z.kemana == yangDilewati2[i]) { jarak += z.cost; kemacetan += z.kemacetan + "-"; baru = yangDilewati2[i]; rute += " - " + name[baru]; break; } } } string kemacetanasli = kemacetan.Substring(0, kemacetan.Length - 1); dataGridView2.Rows.Add(++jumlah, jarak.ToString(), rute , kemacetanasli.ToString()); jumlahsolusibest++; } } }. UNIVERSITAS SUMATERA UTARA.

Referensi

Dokumen terkait

rute yang akan dicoba dengan menggunakan kedua algoritma tersebut adalah Jalan. Sei Padang menuju

Algoritma ini diujikan untuk melakukan proses optimasi dalam pencarian lintasan ataupun jalur terpendek dari suatu model graf.. Lalu dilakukan analisis kinerja perangkat

Pencarian rute terpendek dengan menggunakan algoritma Floyd Warshall pada taksi dengan rute terminal Leuwi Panjang-dipati ukur akan mencari waktu tercepat dan

Ada algoritma yang lebih baik daripada BFS untuk mencari jalan terpendek pada graf tak berarah karena algoritma tersebut menggunakan prinsip algoritma Branch and Bound,

algoritma Greedy dalam penentuan rute terpendek antar tempat wisata di. Kabupaten Tapanuli Tengah dan perbandingan dari kedua algoritma

Rumusan masalah yang akan dibahas dalam penelitian ini adalah bagaimana merancang aplikasi untuk mencari jarak terpendek menuju tempat wisata di Kota Medan dengan

Algoritma Dijkstra memecahkan masalah pencarian jalur terpendek antara dua simpul dalam graf berbobot dengan jumlah total terkecil, dengan mencari jarak terpendek antara simpul awal

Permasalahan pada salesman cat dapat diketahi sebagai berikut: Keadaan awal = A Keadaan Tujuan = T Penyelesaian pemilihan rute terpendek dapatdiselesaikan menggunakan Algoritma