• Tidak ada hasil yang ditemukan

BAB II LANDASAN TEORI

2.7. Penelitian yang Relevan

Berikut ini beberapa penelitian tentang jarak terpendek (shortest path) yang membahas algoritma Dijkstra dan algoritma A* (A-star):

1. Budiman, M. A. & Rachmawati, D. (2017) dalam judul “On factoring RSA modulus using random-restart hill-climbing algorithm and Pollard’s rho algorithm”. Penelitian menunjukkan sejumlah algoritma deterministik untuk memfaktorkan bilangan bulat menjadi faktor prima yang telah diteliti dalam bidang teori bilangan, seperti Fermat, Euler, Kraitchick, dan beberapa varian dari algoritma Pollard. Sementara itu, saat ini ada kekurangan dalam penelitian tentang penggunaan metaheuristik untuk faktorisasi bilangan bulat, seperti tabu search, hill-climbing, simulated annealing, and ant colony optimization algorithms.

2. Potdar, G. P. & Thool, R. C. (2014) dalam judul “Comparison Of Various Heuristic Search Techniques For Finding Shortest Path”. Penelitian menunjukkan perbandingan algoritma Simple Hill Climbing, algoritma Steepest Ascent Hill Climbing, dan algortima A* dengan hasil bahwa keseluruhan algoritma tersebut dapat diimplementasikan dalam pencarian lintasan terpendek, hanya saja ketiga algoritma dengan metode heuristik tersebut tidak ada kepastian untuk menemukan solusi akhir yang optimal.

3. Reedy, Harika (2013) dalam judul “Path Finding-Dijkstra’s and A*

Algorithm’s”. Algoritma A-star merupakan pencarian heuristik murni yang mampu berkomputasi solusi optimal.

4. Ratnasari, Asti, Ardiani, Farida & A., Feny Nurvita (2013) dalam judul

“Penentuan Jarak Terpendek dan Jarak Terpendek Alternatif Menggunakan Algoritma Dijkstra Serta Estimasi Waktu Tempuh”. Penelitian menunjukkan perbandingan algoritma Greedy dan Dijkstra berdasarkan jarak lintasannya, algoritma Greedy didasarkan pada pemindahan edge per edge dan pada setiap langkah yang diambil tidak memikirkan konsekuensi ke depan, dan juga tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada, sehingga tidak selalu berhasil memberikan solusi yang benar-benar optimal tetapi memberikan solusi yang mendekati nilai optimal, sedangkan algoritma

Dijkstra beroperasi secara menyeluruh terhadap semua alternatif yang ada, sehingga dapat dipastikan memberikan solusi optimal.

5. Siang, J.J. (2009) dalam judul “Matematika Diskrit dan Aplikasinya pada Ilmu Komputer”. Algoritma Dijkstra menyelesaikan masalah pencarian jalur terpendek (sebuah lintasan yang mempunyai panjang minimum) dari verteks a ke verteks z dalam graf berbobot, bobot tersebut adalah bilangan positif jadi tidak dapat dilalui oleh node negative.

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Sistem

Sistem ini akan melakukan pencarian rute terpendek antar SPBU di Kota Medan dengan menggunakan algoritma Dijkstra dan algortima A* (A-star).

Analisis sistem memiliki tiga tahapan dalam mendeskripsikan pengembangan sistem, yaitu :

1. Analisis masalah

Analisis masalah digunakan untuk mempelajari, mengidentifikasi, dan menganalisis suatu masalah serta batasan-batasan masalahnya.

2. Analisis kebutuhan

Analisis kebutuhan digunakan untuk mendeskripsikan fungsi-fungsi yang diberikan dan dapat dikerjakan oleh sistem, baik kebutuhan fungsional maupun non-fungsional.

3. Analisis proses.

Analisis proses digunakan untuk menggambarkan pola tingkah laku yang dimiliki sistem.

3.1.1. Analisis Masalah

Luasnya sebuah wilayah dapat menyebabkan seseorang mengalami kesulitan untuk menentukan rute terpendek dari satu lokasi ke lokasi lainnya.

Setiap orang yang ingin menuju ke lokasi SPBU tertentu, cenderung memilih rute terpendek. Posisi awal pelanggan ditentukan oleh lokasi SPBU yang berada, dan diasumsikan bahwa pelanggan telah berada di salah satu lokasi SPBU tersebut.

Permasalahan pada penelitian ini adalah pencarian rute terpendek dengan menggunakan algoritma Dijkstra dan algortima A* (A-star) terhadap graf yang sama dan melakukan perbandingan dari sisi waktu proses terhadap kedua algoritma tersebut dalam menentukan jarak terpendek antar lokasi SPBU di Kota Medan. Penulis membatasi masalah dengan 24 buah titik (node) yang merupakan

beberapa nama lokasi SPBU di Kota Medan, dan edge merupakan panjang jarak yang akan dilintasi dari lokasi SPBU ke lokasi SPBU yang lainnya. Graf yang digunakan merupakan graf berarah terhubung.

Masalah penelitian ini dapat dilihat pada Gambar 3.1 yang dirancang dalam diagram Ishikawa yang menggambarkan hubungan sebab akibat dari masalah penelitian.

Berdasarkan Gambar 3.1, diketahui bahwa permasalahan berada pada kepala ikan (segi empat paling kanan). Terdapat empat kategori masalah yaitu Manusia, Metode, Material dan Sistem yang terhubung dengan tulang utama (garis horizontal yang terhubung ke kepala ikan). Penyebab dari masalah yang berada di kepala ikan ditunjukkan oleh tulang-tulang kecil yang digambarkan oleh garis panah menuju ke tulang-tulang kategori masalah.

Gambar 3.1. Diagram Ishikawa

3.1.2. Analisis Kebutuhan Sistem

Analisis kebutuhan terbagi atas dua bagian, yaitu kebutuhan fungsional dan kebutuhan non-fungsional. Kebutuhan fungsional mendeskripsikan aktivitas yang disediakan oleh sistem, sedangkan kebutuhan non-fungsional mendeskripsikan karakteristik.

3.1.2.1. Kebutuhan Fungsional

Analisis kebutuhan fungsional disini menjelaskan tentang sistem yang disediakan. Sistem ini melakukan perhitungan, perbandingan jarak dan waktu pencarian rute terpendek antar lokasi SPBU di Kota Medan Serdang. Untuk menerapkan sistem tersebut, kebutuhan fungsional yang harus dipenuhi antara lain:

1. Sistem ini menggunakan graf lokasi SPBU di Kota Medan yang telah ditentukan.

2. Sistem ini menggunakan node awal yang sudah ditentukan sebagai node asal (sumber).

3. Sistem ini mendapatkan hasil rute yang akan dilewati pada graf dan waktu eksekusi (running time) pada program dengan menggunakan algoritma Dijkstra dan algoritma A* (A-star).

3.1.2.2. Kebutuhan Non-Fungsional

Kebutuhan non-fungsional yang harus dipenuhi antara lain sebagai berikut:

1. Sistem yang dibangun bersifat murah, karena dapat digunakan secara offline (tanpa menggunakan internet).

2. Sistem yang dibangun memiliki tampilan user-friendly.

3. Sistem yang dibangun memiliki informasi tentang data-data yang akan digunakan pada sistem tersebut.

4. Sistem yang dibangun tidak memerlukan perangkat tambahan yang dapat mengeluarkan biaya dan bebas digunakan.

5. Sistem dirancang secara sederhana, dapat memudahkan pengguna dalam menggunakan aplikasi tersebut tanpa membutuhkan spesifikasi laptop/

komputer yang tinggi.

3.1.3. Analisis Proses

Sistem yang dibangun akan menggunakan bahasa pemrograman C#

dengan bantuan SharpDevelop 5.1. Pada analisis proses ini menggunakan

algoritma Dijkstra dan algoritma A* (A-star) dalam proses pencarian rute terpendek antar lokasi SPBU di Kota Medan. Pengguna dapat melakukan pencarian dengan memasukkan lokasi SPBU asal dan lokasi SPBU tujuan yang diinginkan (terdapat 21 lokasi SPBU di Kota Medan). Lalu, pengguna memilih algoritma yang akan digunakan sebagai perbandingan satu sama lain. Selanjutnya, sistem akan menampilkan hasil berupa total jarak, rute, dan waktu yang dibutuhkan untuk mengeksekusi program berdasarkan algoritma yang dipilih.

Diagram umum ini dapat dilihat pada Gambar 3.2.

Gambar 3.2. Diagram Umum

3.2. Perancangan Sistem

Pada penelitian ini, untuk mendesain dan merancang sistem pencarian jarak terpendek antar lokasi SPBU di Kota Medan menggunakan use-case diagram, activity diagram, dan sequence diagram.

User Menginput lokasi SPBU awal dan lokasi SPBU

tujuan

Algoritma A* (A-Star) Algoritma Dijkstra

Menampilkan hasil total jarak, rute, dan running

time

3.2.1. Use-Case Diagram

Use-Case Diagram adalah diagram yang menjelaskan bahwa interaksi antara pengguna dengan fungsionalitas dari sistem berdasarkan sudut pandang pengguna. Pada penelitian ini, Use-Case Diagram dapat dilihat pada Gambar 3.3.

Gambar 3.3. Use-Case Diagram Keterangan:

<<include>> : mengidentifikasi hubungan antar dua use-case dimana yang satu memanggil yang lain, arah mata panah sesuai dengan arah pemanggilan.

3.2.2. Activity Diagram

Activity Diagram adalah diagram alir yang menggambarkan berbagai aktivitas yang dapat dilakukan oleh sistem yang sedang dirancang. Activity Diagram pada sistem ini dapat dilihat pada Gambar 3.4.

Gambar 3.4. Activity Diagram Keterangan:

: decision (keputusan)

3.2.3. Sequence Diagram

Sequence Diagram adalah suatu diagram yang menunjukkan interaksi antar objek yang diurutkan berdasarkan waktu eksekusinya. Aktivitas yang terjadi ketika pengguna sistem atau objek berinteraksi ke objek lain digambarkan dengan tanda panah garis penuh, sedangkan garis putus-putus mengambarkan respon sistem terhadap pengguna sistem, yaitu pengirim dan penerima.

Gambar 3.5. Sequence Diagram

: garis hidup objek

: objek sedang aktif berinteraksi, menandakan ketika suatu objek mengirim/menerima pesan.

: masukan, suatu objek yang membuat objek yang lain

: keluaran, suatu objek yang menghasilkan suatu kembalian ke objek

tertentu.

3.2.4. Flowchart

Flowchart adalah diagram alir yang menggambarkan langkah-langkah penyelesaian suatu masalah secara sistematis dan logis, dengan menggunakan simbol-simbol tertentu. Pada bagian ini, ada tiga flowchart, yaitu: flowchart sistem, flowchart algoritma Dijkstra, dan flowchart algoritma A* (A-star).

3.2.4.1. Flowchart Sistem

Flowchart ini untuk melakukan pencarian rute terpendek antar lokasi SPBU di Kota Medan yang dapat dilihat pada Gambar 3.6. Pada flowchart ini terdapat tiga masukan (inputan), yaitu: lokasi SPBU asal, lokasi SPBU tujuan, dan algoritma, dan keluarannya yang akan menghasilkan total jarak, rute, dan waktu eksekusi berdasarkan algoritma yang telah dipilih.

Gambar 3.6. Flowchart Sistem Mulai

Selesai Input titik asal dan titik

tujuan

Mengevaluasi rute yang dilalui

Proses menghitung algoritma Dijkstra atau A* (A-star)

Menampilkan hasil total jarak, rute, dan waktu

eksekusi

3.2.4.2. Flowchart Algoritma Dijkstra

Flowchart ini untuk menggambarkan proses pencarian jarak terpendek antar lokasi SPBU di Medan dengan menggunakan algoritma Dijkstra yang dapat dilihat pada Gambar 3.7.

Gambar 3.7. Flowchart Algoritma Dijkstra False

Set semua node dengan label

“unvisited” dan set node awal sebagai

“start”

Menghitung jarak yang terhubung dari titik start dengan node berlabel “unvisited”

Adakah nilai yang telah terekam sebelumnya?

Apakah nilai sekarang <

nilai yang telah terekam?

Hapus nilai yang telah terekam sebelumnya, simpan data jarak dengan jarak yang baru

Node berlabel “unvisited” selanjutnya

3.2.4.3. Flowchart Algoritma A* (A-star)

Flowchart ini untuk menggambarkan proses pencarian jarak terpendek antar lokasi SPBU di Medan dengan menggunakan algoritma A* (A-star) yang dapat dilihat pada Gambar 3.8.

Gambar 3.8. Flowchart Algoritma A* (A-Star) True

False Mulai

Node start sebagi successor Input titik asal dan

titik tujuan

Selesai

Menghitung semua nilai 𝑓 𝑥 𝑔 𝑥 𝑥 yang terhubung dari successor

Node successor = node tujuan?

Tentukan node bernilai 𝑓 𝑥 terbaik antar semua nilai 𝑓 𝑥 yang telah dihitung sebagai successor baru

Menampilkan hasil rute teroptimal

3.2.5. Mock-up

Mock-up adalah rancangan awal sebuah aplikasi dalam bentuk gambaran yang digunakan untuk tampilan desain awal. Terdapat dua halaman mock-up, yaitu halaman awal, dan halaman rute terpendek.

3.2.5.1. Halaman Utama

Halaman awal adalah halaman yang akan tampil pertama kali saat aplikasi dijalankan. Pada halaman utama terdapat judul skripsi, nama dan NIM, logo Universitas, dan sebuah button untuk masuk ke dalam sistem utama yang dapat dilihat pada Gambar 3.8.

Gambar 3.9. Halaman Awal

Keterangan:

1. Label yang menampilkan judul skripsi

2. Label yang menampilkan nama dan NIM penulis Mulai

1

2

3

4

5

3. Picture yang menampilkan logo Fakultas Ilmu Komputer dan Teknologi Informasi USU

4. Label yang menampilkan program studi dan fakultas 5. Button “Mulai” untuk masuk ke dalam sistem utama

3.2.5.2. Halaman Shortest Path

Halaman Shortest Path adalah halaman yang akan tampil setelah pengguna mengklik button “Mulai” pada halaman awal. Pada halaman ini, pengguna dapat memilih algoritma yang akan digunakan untuk mencari jarak terpendek antar lokasi SPBU di Kota Medan. Pengguna juga dapat melihat hasil total jarak, rute dan waktu eksekusi dari kedua algoritma tersebut, serta melihat graf. Perancangan halaman ini dapat dilihat pada Gambar 3.9.

Gambar 3.10. Halaman Shortest Path

Keterangan:

1. Group Box untuk cari rute terpendek 2. Label untuk lokasi SPBU asal 3. Label untuk lokasi SPBU tujuan

Lokasi SPBU Asal

Hasil Rute Teropimal Total Jarak (m)

Waktu Proses (ms)

4. Label untuk lokasi pilihan algoritma

5. Combo Box untuk pemilihan lokasi SPBU asal 6. Combo Box untuk pemilihan lokasi SPBU tujuan 7. Combo Box untuk pemilihan algoritma

8. Button Proses untuk menampilkan hasil rute terpendek 9. Button Lihat Graf untuk menampilkan graf

10. Group Box untuk hasil rute terpendek

11. Text Box untuk menampilkan hasil rute terpendek 12. Group Box untuk total jarak

13. Text Box untuk menampilkan hasil total jarak 14. Group Box untuk waktu proses

15. Text Box untuk menampilkan hasil waktu proses

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Impelementasi sistem yaitu tahap lanjutan dari tahap analisis dan perancangan sistem. Dalam tugas akhir ini, sistem dibangun dengan menggunakan C# sebagai bahasa pemrograman dan SharpDevelop 5.1 sebagai perangkat bantu untuk membuat sistem. Sistem ini terdapat 2 (dua) halaman, yaitu : halaman awal sebagai antarmuka sebelum pengguna masuk ke sistem, halaman rute terpendek untuk mencoba proses dari masing-masing algoritma.

4.1.1. Halaman Awal

Halaman awal adalah halaman yang akan tampil pertama kali saat sistem dijalankan. Tampilan halaman ini ditunjukkan pada Gambar 4.1., yang berisi tentan penulis dan tombol untuk memulai sistem.

Gambar 4.1. Halaman Awal

4.1.2. Halaman Shortest Path

Halaman Shortest Path adalah halaman yang akan tampil setelah pengguna mengklik button “MULAI” pada halaman awal tersebut. Halaman ini digunakan untuk mencari rute terpendek. Tampilan halaman ini ditunjukkan pada Gambar 4.2.

Gambar 4.2. Halaman Shortest Path

Pada halaman tersebut yang dapat digunakan untuk pengguna memasukkan lokasi SPBU asal sebagai titik awal dan lokasi SPBU tujuan sebagai titik tujuan. Pengguna dapat memilih algoritma yang akan digunakan untuk mencari rute terpendek antar lokasi SPBU di Kota Medan, yaitu: algoritma Dijkstra dan algoritma A* (A-star). Terdapat dua buah button, yaitu: button proses dan button graf. Button proses berfungsi untuk menampilkan hasil rute, total jarak, dan waktu eksekusi (running time) dari kedua algoritma, sedangkan button graf berfungsi untuk menampilkan gambar graf lokasi SPBU di Kota Medan.

4.2. Pengujian

Pengujian sistem adalah tahap lanjutan setelah dilakukannya implementasi sistem. Pengujian sistem dilakukan dengan tujuan untuk membuktikan bahwa sistem yang dibangun telah berjalan dengan baik. Pengujian dilakukan terhadap algoritma Dijkstra dan algoritma A* (A-star) untuk menentukan rute terpendek dengan membanding hasil jarak terpendek dan waktu eksekusi dari kedua algoritma tersebut. Titik asal dan titik tujuan terdapat sebanyak 24 titik yang Intel(R) Core(TM) i5-5200 CPU @2.20 GHz (4 CPUs), dan RAM 10240MB.

2. PC_2 dengan spesifikasi Windows 8.1 Single Language 64-bit (6.3, Build

Dan juga dilakukan dengan cara menentukan lokasi SPBU asal dan lokasi SPBU tujuan pada combo box yang telah menyediakan sebanyak 24 titik lokasi SPBU di Kota Medan. Selanjutnya, tentukan algoritma pada combo box yang menyediakan dua algoritma pilihan, yaitu: algoritma Dijkstra dan algoritma A* (A-star).

Misalnya, tentukan SPBU Gatot Subroto 11.201.104 sebagai lokasi SPBU asal, SPBU Ringroad 14.201.1121 sebagai lokasi SPBU tujuan, dan Dijkstra sebagai algoritma yang akan digunakan, silahkan menekan button proses untuk melihat hasil rute terpendek, total jarak, dan waktu eksekusi (running time). Pemisalan ini dapat dilihat pada Gambar 4.4.

Gambar 4.4. Pengujian Proses Implementasi pada Lokasi SPBU Asal

Gambar 4.5. Pengujian Proses Implementasi pada Lokasi SPBU Tujuan

Gambar 4.6. Pengujian Proses Implementasi pada Algoritma

4.2.2. Pengujian Proses Algoritma Dijkstra

Setelah menentukan lokasi SPBU asal, lokasi SPBU tujuan, dan algoritma yang akan digunakan seperti pada Gambar 4.4, 4.5, dan 4.6. Selanjutnya, menekan button proses untuk melakukan pencarian rute terpendek, total jarak dan waktu eksekusi yang menggunakan algoritma Dijkstra seperti yang ditunjukkan pada Gambar 4.7. Berdasarkan Gambar 4.7. diketahui bahwa dari SPBU Gatot Subroto 11.201.104 sebagai lokasi SPBU asal ke SPBU Ringroad 14.201.1121 sebagai lokasi SPBU tujuan, hasil rute terpendek yang dilintasi adalah SPBU Gatot Subroto 11.201.104 → SPBU Kasuari 14.201.1150 → SPBU Ringroad 14.201.1121 dengan total jarak 5.4 km, dan waktu eksekusi dalam PC_1 selama 4.9956 ms, dalam PC_2 selama 5.3576 ms, dalam PC_3 selama 11.7469 ms.

Gambar 4.7. Pengujian Proses Algoritma Dijkstra menggunakan PC_1

Gambar 4.8. Pengujian Proses Algoritma Dijkstra menggunakan PC_2

Gambar 4.9. Pengujian Proses Algoritma Dijkstra menggunakan PC_3

Gambar 4.9. Hasil Graf pada Algoritma Dijkstra

Gambar 4.10. Hasil Peta pada Algoritma Dijkstra

4.2.2.1. Perhitungan Manual Algoritma Dijkstra

Tentukan rute terpendek dari graf lokasi SPBU di Kota Medan yang ditunjukkan pada Gambar 4.8. Dimana lokasi SPBU asal adalah SPBU Gatot Subroto 11.201.104, dan lokasi SPBU tujuan adalah SPBU Ringroad 14.201.1121. Maka, titik asal = node C (SPBU Gatot Subroto 11.201.104) dan titik tujuan = node I (SPBU Ringroad 14.201.1121). Untuk kode titik / node lokasi dapat dilihat pada Tabel 4.1.

Tabel 4.1. Daftar Lokasi SPBU di Kota Medan

Kode Titik SPBU

A SPBU Merak Jingga 11.201.102 B SPBU Katamso 11.201.103 C SPBU Gatot Subroto 11.201.104 D SPBU TBBM Medan Grup 11.201.105 E SPBU Polonia ex Petronas 11.201.106 F SPBU H.M. Yamin 11.201.107

G SPBU Klambir Lima 14.201.1102 H SPBU Sei Batang Hari 14.201.1108

I SPBU Ringroad 14.201.1121

J SPBU Brigjen Katamso 14.201.1126 K SPBU Setia Budi 14.201.1134

L SPBU Platina Raya Titi Papan 14.201.1140 M SPBU Kasuari 14.201.1150

N SPBU Raya Medan Tenggara 14.201.1151 O SPBU Karya Wisata 14.201.1152

P SPBU Sempakata Simpang Pemda 14.201.121 Q SPBU Gatot Subroto 14.201.123

R SPBU Tritura 14.201.167

S SPBU Sutomo Ujung 14.202.1119

T SPBU Krakatau Simpang Metal 14.202.1128 U SPBU Yos Sudarso 14.202.1137

V SPBU Marelan Raya Pasar III 14.202.1141 W SPBU Sisingamangaraja 14.202.126

X SPBU Jamin Ginting 14.203.199

Berikut adalah hasil perhitungan manual algoritma Dijkstra ditunjukkan pada Tabel 4.2. di bawah ini:

Tabel 4.2. Hasil Perhitungan Manual Algoritma Dijkstra

i u c A B C D E F G H I J K L M N O P Q R S T U V W X

0 ABCDEFGHIJKLM

NOPQRSTUVWX - ∞,- ∞,- 0,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,- ∞,-

1 ABDEFGHIJKLM

NOPQRSTUVWX C 5.7,A ∞,- 0,- ∞,- 6.5,C 8.7,C 5.4,C 2.4,C 5.5,C 8.3,C 9.7,C ∞,- 1.1,C ∞,- ∞,- 6.6,C 4.7,C ∞,- 7.2,C ∞,- ∞,- ∞,- ∞,- ∞,-

2 ABDEFGHIJKL

NOPQRSTUVWX M 5.7,A 9.8,M 0,- ∞,- 6.5,C 8.7,C 5.4,C 2.4,C 5.4,M 8.3,C 9.1,M ∞,- 1.1,C 10.6,M ∞,- 6.6,C 4.7,C ∞,- 7.2,C ∞,- ∞,- ∞,- 10.2,M 9.9,M

3 ABDEFGIJKLNO

PQRSTUVWX H 5.7,A 9.8,M 0,- ∞,- 6.5,C 8.7,C 5.4,C 2.4,C 5.4,M 8.3,C 9.1,M ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 7.2,C ∞,- ∞,- ∞,- 9.9,H 9.9,M

4 ABDEFGIJKLNO

PRSTUVWX Q 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 9.1,M ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11.9,Q 15.6,A 18.7,A 9.9,H 9.9,M

5 BDEFGIJKLNO

PRSTUVWX A 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 9.1,M ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S ∞,- 15.6,A 18.7,A 9.9,H 9.9,M

6 BDEFIJKLNO

PRSTUVWX G 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 9.1,M ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S ∞,- 15.6,A 18.7,A 9.9,H 9.9,M

7 BDEFJKLNO

PRSTUVWX I 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 9.1,M ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S ∞,- 15.6,A 18.7,A 9.9,H 9.9,M

8 BDFJKLNO

PRSTUVWX E 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 9.1,M ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S ∞,- 15.6,A 18.7,A 9.9,H 9.9,M 9 BDFJKLNO

RSTUVWX P 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S ∞,- 15.6,A 18.7,A 9.9,H 9.9,M

10 BDFJKLNO

RTUVWX S 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

11 BDJKLNO

RTUVWX F 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

12 BDKLNO

RTUVWX J 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M 13 BDLNORTUVWX K 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

14 DLNORTUVWX B 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

15 DLNORTUVX W 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

16 DLNORTUV X 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

17 DLORTUV N 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

18 DLRTUV O 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P ∞,- 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

19 DLRUV T 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P 19.6,T 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

20 DLUV R 5.7,A 9.8,M 0,- ∞,- 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P 19.6,T 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

21 DLV U 5.7,A 9.8,M 0,- 25.1,U 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P 18.3,T 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

22 DL V 5.7,A 9.8,M 0,- 25.1,U 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P 18.3,T 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

23 D L 5.7,A 9.8,M 0,- 25.1,U 6.5,C 7.9,A 5.4,C 2.4,C 5.4,M 8.3,C 8.7,P 18.3,T 1.1,C 10.3,H 10.4,H 6.6,C 4.7,C 12.1,H 6.9,S 11,S 15.6,A 18.7,A 9.9,H 9.9,M

Keterangan:

i = iterasi

u = node yang belum dikunjungi (unvisited node)

c = current node

Berdasarkan hasil perhitungan yang tertera pada Tabel 4.2, maka hasil rute terpendek dari SPBU Gatot Subroto 11.201.103 ke SPBU Ringroad 14.201.1121 adalah C → M → I (SPBU Gatot Subroto 11.201.103 → SPBU Kasuari 14.201.1150 → SPBU Ringroad 14.201.1121) dengan total jarak 5.4 km.

Sehingga hasil pengujian proses algoritma Dijkstra dengan sistem sesuai dengan proses perhitungan manual algoritma Dijkstra yang dapat dilihat pada Gambar 4.7 dan Tabel 4.2).

4.2.3. Pengujian Proses Algoritma A* (A-Star)

Setelah menentukan lokasi SPBU asal, lokasi SPBU tujuan, dan algoritma yang akan digunakan. Selanjutnya, menekan button proses untuk melakukan pencarian rute terpendek, total jarak dan waktu eksekusi yang menggunakan algoritma A* (A-star) seperti yang ditunjukkan pada Gambar 4.7. Berdasarkan Gambar 4.7 diketahui bahwa dari SPBU Gatot Subroto 11.201.104 sebagai lokasi SPBU asal ke SPBU Ringroad 14.201.1121 sebagai lokasi SPBU tujuan, hasil rute terpendek yang dilintasi adalah SPBU Gatot Subroto 11.201.104 → SPBU Ringroad 14.201.1121 dengan total jarak 5.5 km, dan waktu eksekusi dalam PC_1 selama 1.7723 ms, dalam PC_2 selama 2.1741 ms, dalam PC_3 selama 2.4534 ms.

Gambar 4.11. Pengujian Proses Algoritma A* (A-star) menggunakan PC_1

Gambar 4.12. Pengujian Proses Algoritma A* (A-star) menggunakan PC_2

Gambar 4.13. Pengujian Proses Algoritma A* (A-star) menggunakan PC_3

Gambar 4.14. Hasil Graf pada Algoritma A* (A-Star)

Gambar 4.15. Hasil Peta pada Algoritma A* (A-Star)

4.2.3.1. Perhitungan Manual Algoritma A* (A-Star)

Dalam pengujian ini, akan dilihat hasil dari perhitungan manual algoritma A* (A-star), apakah sesuai dengan implementasi sistem. Ada beberapa tahap yang dilakukan, sebagai berikut:

Tahap 1:

Pengujian sistem yang akan dicari, yaitu rute terpendek dengan hitungan manual dari node C (SPBU Gatot Subroto 11.201.104) ke node I (SPBU Ringroad 14.201.1121) seperti pada Gambar 4.8.

Tahap 2:

Mendapatkan nilai heuristik dengan menggunakan titik koordinat yang sudah dikonversi ke satuan kilometer (km), lalu dihitung dengan menggunakan persamaan

√( ) ( )

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

Tabel 4.3. Daftar Nilai Heuristik h(asal,tujuan)

Node Asal Latitude (x) Longitude (y) Node Tujuan h(asal,tujuan)

A 3.595414 98.677365 I 7.20442

K 3.538064 98.622119 I 2.04778

Mulai dari node C. Bangkitkan semua successor dari node C, yaitu: node A, E, F, G, H, I, J, K, M, P, Q, dan S. Berdasarkan perhitungan yang ditunjukkan pada Tabel 4.3. diketahui bahwa nilai heuristik setiap node, yaitu:

h(A,I) = 7.20442

Kemudian, hitungkanlah fungsi f(x,y) = g(x,y) + h(y,tujuan)

Lakukanlah pemilihan node yang bernilai terkecil, yaitu node M.

Gambar 4.16. Pencarian Pertama dalam Algoritma A* (A-star)

Tahap 4:

Mulai dari node M. Bangkitkan semua successor dari node M, yaitu: node A, B, C, E, F, G, H, I, J, K, N, P, Q, S, W dan X. Berdasarkan perhitungan yang ditunjukkan pada Tabel 4.3. diketahui bahwa nilai heuristik setiap node, yaitu:

h(A,I) = 7.20442

h(E,I) = 5.96671

Kemudian, hitungkanlah fungsi f(x,y) = g(x,y) + h(y,tujuan) f(M,A) = g(M,A) + h(A,I) = 6.4 + 7.20442 = 13.60442

Lakukanlah pemilihan node yang bernilai terkecil, yaitu node I, dan juga merupakan node tujuan. Maka, hasil solusi telah ditemukan, dan proses pencarian berhenti.

Gambar 4.17. Pencarian Kedua dalam Algoritma A* (A-star)

Berdasarkan hasil dari pengujian proses perhitungan manual dengan menggunakan algoritma A* (A-star) yang yang ditunjukkan pada Gambar 4.10, maka hasil rute terpendek dari SPBU Gatot Subroto 11.201.103 ke SPBU Ringroad 14.201.1121 adalah C → M → I (SPBU Gatot Subroto 11.201.103 → SPBU Kasuari 14.201.1150 → SPBU Ringroad 14.201.1121). Total jaraknya adalah 1.1 + 4.3 = 5.4 km. Sehingga, hasil pengujian proses algoritma A* (A-star) dengan sistem sesuai dengan proses perhitungan manual algoritma A* (A-star) yang dapat dilihat pada Gambar 4.8. dan Gambar 4.10.

E F G H I

A J K M P Q S

A

E F G H I

C J K N P Q S W X

A B

4.3. Kompleksitas

4.3.1. Kompleksitas Algoritma Dijkstra

Tabel 4.4. Tabel Kompleksitas Algoritma Dijkstra

Listing Program C # C #

If (!sett[j] && node[min_index] + graph[min_index,j]

< node[j] && graph[min_index,j] != INF &&

node[min_index]!=INF) { T(n) = Θ(n2), dimana n merupakan banyaknya current node / neighbor node.

Tabel 4.4. menunjukkan hasil dari kompleksitas algoritma Dijkstra. Pada Tabel 4.4, kolom C merupakan variabel yang menunjukkan berapa banyak processor melakukan komputasi. Kolom # merupakan variabel untuk menghitung

pengerjaan kalimat (statement) program yang dieksekusi. Kolom C # menghitung hasil perkalian dari C dengan #. Sehingga, diperoleh hasil kompleksitas algoritma Dijkstra yaitu Θ(n2).

4.3.2. Kompleksitas Algoritma A* (A-Star)

Tabel 4.5. Tabel Kompleksitas Algoritma A* (A-Star)

Listing Program C # C #

Math.Sqrt(Math.Pow(x,2)*Math.Pow(y,2)); C1 m*n C1*m*n double f = succ[min_index]+graph[min_index,j]; C1 m*n C1*m*n double h = EuclideanDistance((char)(j+65),dest); C1 m*n C1*m*n If (!visited[j] && succ[min_index] +

T(n) = (C1+C1)*n0 + (C2+C1+C1)*n + (C1+C1)*n0 + (C2+C1)*n + C1*n0 + (C2+C1+ C1)*m+

Tabel 4.5. menunjukkan hasil dari kompleksitas algoritma A* (A-star). Pada Tabel 4.5, kolom C merupakan variabel yang menunjukkan berapa banyak processor melakukan komputasi. Kolom # merupakan variabel untuk menghitung pengerjaan kalimat (statement) program yang dieksekusi. Kolom C # menghitung hasil perkalian dari C dengan #. Sehingga, diperoleh hasil kompleksitas algoritma A* (A-star) yaitu Θ(m*n), dimana 0 m n.

4.4. Pengujian Waktu Proses 4.4.1. Algoritma Dijkstra

Tabel 4.6. Hasil Pengujian Waktu Eksekusi Algoritma Dijkstra (PC_1) No. Rute Total Jarak (km) Waktu Eksekusi (ms)

Berdasarkan hasil pengujian waktu proses algoritma Dijkstra pada Tabel 4.6, diketahui bahwa rata-rata waktu eksekusi algoritma Dijkstra adalah 7.71852

ms. Hasil tersebut dapat diilustrasikan dengan grafik seperti pada Gambar 4.11.

. Gambar 4.18. Grafik Waktu Eksekusi Algoritma Dijkstra

4.4.2. Algoritma A* (A-Star)

Tabel 4.7. Hasil Pengujian Waktu Eksekusi Algoritma A* (A-Star) (PC_1) No. Rute Total Jarak (km) Waktu Eksekusi (ms)

1. C → X 13.9 4.1866

2. V → E 23.3 5.0898

3. D → A 21.9 4.2552

4. G → W 20.8 4.1213

5. A → K 18.8 4.3774

Rata-rata 4.40606

Berdasarkan hasil pengujian waktu proses algoritma A* (A-star) pada Tabel 4.7, diketahui bahwa rata-rata waktu eksekusi algoritma A* (A-star) adalah 4.40606 ms. Hasil tersebut dapat diilustrasikan dengan grafik seperti pada Gambar 4.12.

6 6.5 7 7.5 8 8.5

C → X V → E D → A G → W A → K

Waktu Eksekusi (ms)

Rute

Grafik Waktu Eksekusi Algoritma Dijkstra

Gambar 4.19. Grafik Waktu Eksekusi Algoritma A* (A-Star)

0 1 2 3 4 5 6

C → X V → E D → A D → W A → K

Waktu Eksekusi (ms)

Rute

Grafik Waktu Eksekusi Algoritma A* (A-Star)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil analisis, perancangan dan pengujian terhadap algoritma

Berdasarkan hasil analisis, perancangan dan pengujian terhadap algoritma

Dokumen terkait