• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem

3.3 Perhitungan Jarak

Perhitungan algoritma merupakan suatu uji coba dari aplikasi untuk mengetahui jarak antar objek.

41 A I F 1.83 0.70 B 0.87 1.46 2.32 H M G 1.83 1.36 1.49 0.91 1,93 2,99 Q 2.19 P 2.05 O 0.74 2,41 1.94 1.92 1.37 R 1.34 S 2.47 2.47 2,4 T U 2.13 2.02 V 2.31 1.17 3.07 N 1.20 1.02 L 0.86 0.38 0.50 K 0.67 0.50 1.61 W 3.95 2.75 3.35 3.72 4.87 C 2.40 3.80 D 3.56 E 2.08 J 1.27 2.47 2.27 2.56 Y X 1.16 1 1.8 4.33 3.19 Z 2.27 3.52 A1 3.35 1.23 2.68 5.22 3.73 4.16

Gambar 3.20 berikut ini menunjukkan graph yang akan dipakai dalam algoritma dijkstra untuk pencarian rute tercepat. Graph ini didapatkan dari gambar peta Kota Medan yang sudah ada sebelumnya.

Pada graf yang terdapat dalam tabel 3.5, nama persimpangan diwakili oleh nama node, sedangkan nama jalur diwakili dengan penomoran pada tiap simpul. Adapun pembuatan huruf A, B, C pada nama node adalah untuk mempermudah dalam mengelompokkan letak persimpangan. Data-data inilah yang nantinya akan menjadi tolak ukur untuk melihat panjang rute sehingga akan didapatkan rute terpendek dari setiap lokasi lembaga bimbingan belajar yang ada.

Tabel 3.5 Data Objek Peta

Simbol Nama Objek Kategori

A Jalan Setia Budi No.129A Cabang Medica B Jalan Gatot Subroto Jalan Besar C Jalan T Amir Hamzah Jalan Besar D Jalan Yos Sudarso No.175B Cabang Medica

E Jalan Merdeka No.2 Cabang Medica

F Jalan Sei Batang Hari Jalan Besar G Jalan Jamin Ginting No.241 Cabang Medica H Universitas Sumatera Utara Tempat Umum

I Rumah Makan Wong Solo Tempat Umum

J Jalan Krakatau Jalan Besar

K Jalan Gajah Mada Jalan Besar

L Jalan Nusantara Jalan Besar

M Jalan Iskandar Muda No.19 A/B/C Cabang Medica N Plaza Medan Polonia Jalan Besar

43

P Bandara Polonia Tempat Umum

Q Jalan Jenderal A.H Nasution Jalan Besar R Jalan Brigjen Zein Hamid No.24-D Cabang Medica S Jalan Sisingamaraja No.348 Cabang Medica T Jalan Sisingamaraja No.251/252 Cabang Medica U Jalan Sisingamaraja Jalan Besar

V Jalan Dipoenogoro Jalan Besar

W Jalan Profesor Muhammad Yamin Jalan Besar

X Jalan Garuda II Jalan Besar

Y Jalan Sentosa Baru No.17A Cabang Medica

Z Jalan Cemara Jalan Besar

A1 Jalan William Iskandar Jalan Besar

Gambar graph/titik utuk objek peta BT/BS Medica yang digambarkan dengan menggunakan metode djikstra. Berikut ini akan diberikan suatu contoh perhitungan djikstra yang merupakan perhitugan jarak terpendek dari graph yang ditunjukkan di atas :

Contoh Studi Kasus : Tentukan Rute Terpendek dengan menggunakan algoritma Djikstra dari node awal B menuju node akhir yaitu M.

B – F = 0.87 KM F – I = 0.70 KM I – M = 0.91 KM I F 0.70 B 0.87 M 0.91

Jarak Total : 0.87 + 0.70 + 0.91 = 2.48 KM

Gambar graph/titik utuk objek peta bimbingan belajar Medica yang digambarkan dengan menggunakan metode djikstra. Berikut ini akan diberikan suatu contoh perhitungan djikstra yang merupakan perhitugan jarak terpendek dari graph yang ditunjukkan di atas :

Adapun coding PHP yang dignakan untuk mencari perhitungan ini adalah sebagai berikut :

<?php

$neighbors['Jalan Jamin Ginting No.241'] = array('Jalan Jenderal A.H Nasution' => 2.19, 'Jalan Setia Budi No.129A' => 2.99

,'Universitas Sumatera Utara' => 1.93, 'Bandara Polonia' => 1.94);

$neighbors['Jalan Setia Budi No.129A'] = array('Jalan Jamin Ginting No.241' => 2.99, 'Universitas Sumatera Utara' => 1.36, 'Rumah Makan Wong Solo' => 1.80, 'Jalan Sei Batang Hari' => 1.46, 'Jalan Gatot Subroto' => 2.32);

$neighbors['Jalan Gatot Subroto'] = array('Jalan Setia Budi No.129A' => 2.32, 'Jalan Sei Batang Hari' => 0.88, 'Rumah Makan Wong Solo' => 1.15,

'Jalan Gajah Mada' => 1.61, 'Jalan Profesor Muhammad Yamin' => 4.87, 'Jalan T Amir Hamzah' => 2.40);

$neighbors['Jalan Sei Batang Hari'] = array('Jalan Setia Budi No.129A' => 1.46, 'Jalan Jamin Ginting No.241' => 1.93

, 'Rumah Makan Wong Solo' => 0.98, 'Jalan Gatot Subroto' => 0.88,);

$neighbors['Universitas Sumatera Utara'] = array('Jalan Setia Budi No.129A' => 1.36, 'Jalan Jamin Ginting No.241' => 1.93, 'Rumah Makan Wong Solo' => 1.83, 'Jalan Iskandar Muda No.19 A/B/C' => 1.55, 'Jalan Patimura' => 1.37, 'Bandara Polonia' => 2.41);

$neighbors['Jalan Jenderal A.H Nasution'] = array('Jalan Jamin Ginting No.241' => 2.19, 'Bandara Polonia' => 2.05,

45

'Jalan Brigjen Zein Hamid No.24-D' => 1.34, 'Jalan Sisingamaraja No.348' => 2.40);

$neighbors['Jalan Brigjen Zein Hamid No.24-D'] = array('Jalan Jenderal A.H Nasution' => 1.34,

'Jalan Sisingamaraja No.348' => 2.47);

$neighbors['Rumah Makan Wong Solo'] = array('Jalan Setia Budi No.129A' => 1.80, 'Jalan Gatot Subroto' => 1.15, 'Jalan Sei Batang Hari' => 0.98,

'Universitas Sumatera Utara' => 1.83, 'Jalan Gajah Mada' => 0.73, 'Jalan Nusantara' => 0.90, 'Jalan Iskandar Muda No.19 A/B/C' => 0.96);

$neighbors['Jalan Gajah Mada'] = array('Jalan Gatot Subroto' => 1.61, 'Rumah Makan Wong Solo' => 0.73, 'Jalan Nusantara' => 0.37,

'Plaza Medan Polonia' => 0.50);

$neighbors['Jalan Nusantara'] = array('Jalan Gajah Mada' => 0.37, 'Rumah Makan Wong Solo' => 0.90,

'Jalan Iskandar Muda No.19 A/B/C' => 0.15, 'Plaza Medan Polonia' => 0.39, 'Jalan Patimura' => 0.86);

$neighbors['Jalan Iskandar Muda No.19 A/B/C'] = array('Jalan Nusantara' => 0.15, 'Rumah Makan Wong Solo' => 0.96,

'Universitas Sumatera Utara' => 1.55, 'Jalan Patimura' => 0.74);

$neighbors['Jalan Patimura'] = array('Jalan Iskandar Muda No.19 A/B/C' => 0.74, 'Jalan Nusantara' => 0.86,

'Plaza Medan Polonia' => 1.03, 'Universitas Sumatera Utara' => 1.37, 'Jalan Dipoenogoro' => 1.17,'Bandara Polonia' => 1.93);

$neighbors['Bandara Polonia'] = array('Jalan Patimura' => 1.93, 'Universitas Sumatera Utara' => 2.41,

'Jalan Jenderal A.H Nasution' => 2.05, 'Jalan Jamin Ginting No.241' => 1.94, 'Jalan Sisingamaraja No.348' => 2.47,

'Jalan Sisingamaraja No.251/252' => 2.13, 'Jalan Sisingamaraja' => 2.01, 'Jalan Dipoenogoro' => 2.31);

$neighbors['Jalan Profesor Muhammad Yamin'] = array('Bandara Polonia' => 2.31, 'Plaza Medan Polonia' => 0.95 , 'Jalan Patimura' => 1.93,

'Jalan Gatot Subroto' => 4.87, 'Jalan Garuda II' => 1.80,'Jalan Sisingamaraja' => 3.95, 'Jalan Sentosa Baru No.17A' => 1.16 ,'Jalan T Amir Hamzah' => 3.80, 'Jalan Krakatau' => 2.47, 'Jalan Dipoenogoro' => 3.95);

$neighbors['Jalan Sisingamaraja'] = array('Jalan Profesor Muhammad Yamin' => 3.95, 'Jalan Sisingamaraja No.251/252' => 0.57,

'Jalan Dipoenogoro' => 3.08, 'Bandara Polonia' => 2.01, 'Jalan Garuda II' => 3.40);

$neighbors['Jalan Sisingamaraja No.251/252'] = array('Jalan Sisingamaraja' => 0.57, 'Bandara Polonia' => 2.13,

'Jalan Sisingamaraja No.348' => 0.61, 'Jalan Garuda II' => 3.90);

$neighbors['Jalan Sisingamaraja No.348'] = array('Jalan Sisingamaraja No.251/252' => 0.61, 'Jalan Brigjen Zein Hamid No.24-D' => 2.47,

'Jalan Jenderal A.H Nasution' => 2.40, 'Bandara Polonia' => 2.47, 'Jalan Garuda II' => 4.33);

$neighbors['Jalan Sentosa Baru No.17A'] = array('Jalan Profesor Muhammad Yamin' => 1.16, 'Jalan Garuda II' => 1.00,

'Jalan Jenderal A.H Nasution' => 2.4, 'Bandara Polonia' => 2.47, 'Jalan Krakatau' => 3.19, 'Jalan Cemara' => 3.52,

'Jalan William Iskandar' => 3.35);

$neighbors['Jalan Garuda II'] = array('Jalan Sentosa Baru No.17A' => 1.00, 'Jalan Sisingamaraja No.348' => 4.33,

'Jalan Sisingamaraja No.251/252' => 3.9, 'Jalan Sisingamaraja' => 3.40, 'Jalan Profesor Muhammad Yamin' => 1.80, 'Jalan William Iskandar' => 4.16);

$neighbors['Jalan Dipoenogoro'] = array('Plaza Medan Polonia' => 0.95, 'Jalan Patimura' => 1.17,

47

'Bandara Polonia' => 2.31, 'Jalan Sisingamaraja' => 3.08, 'Jalan Profesor Muhammad Yamin' => 2.75);

$neighbors['Plaza Medan Polonia'] = array('Jalan Dipoenogoro' => 0.95, 'Jalan Gajah Mada' => 0.50,

'Jalan Nusantara' => 0.39, 'Jalan Patimura' => 1.03, 'Jalan Profesor Muhammad Yamin' => 3.37);

$neighbors['Jalan T Amir Hamzah'] = array('Jalan Profesor Muhammad Yamin' => 3.80, 'Jalan Gatot Subroto' => 2.40,

'Jalan Krakatau' => 2.56, 'Jalan Merdeka No.2' => 2.27, 'Jalan Yos Sudarso No.175B' => 3.56);

$neighbors['Jalan Krakatau'] = array('Jalan T Amir Hamzah' => 2.56, 'Jalan Sentosa Baru No.17A' => 3.19,

'Jalan Profesor Muhammad Yamin' => 3.80, 'Jalan Cemara' => 2.68, 'Jalan Yos Sudarso No.175B' => 2.08);

$neighbors['Jalan William Iskandar'] = array('Jalan Cemara' => 1.23, 'Jalan Sentosa Baru No.17A' => 3.35,

'Jalan Garuda II' => 4.16);

$neighbors['Jalan Cemara'] = array('Jalan William Iskandar' => 1.23, 'Jalan Merdeka No.2' => 2.68,

'Jalan Yos Sudarso No.175B' => 3.73, 'Jalan Sentosa Baru No.17A' => 3.52, 'Jalan Krakatau' => 2.68);

$neighbors['Jalan Merdeka No.2'] = array('Jalan Cemara' => 2.68,

'Jalan T Amir Hamzah' => 2.27, 'Jalan Krakatau' => 1.27, 'Jalan Yos Sudarso No.175B' => 2.08);

function dijkstra($neighbors, $start) { $closest = $start;

while (isset($closest)) { $marked[$closest] = 1;

foreach ($neighbors[$closest] as $vertex => $distance) { if (isset($marked[$vertex]))

continue;

$dist = (isset($paths[$closest][0]) ? $paths[$closest][0] : 0) + $distance;

if (!isset($paths[$vertex]) || ($dist < $paths[$vertex][0])) { if (isset($paths[$closest])) { $paths[$vertex]= $paths[$closest]; } $paths[$vertex][] = $closest; $paths[$vertex][0] = $dist; } } unset($closest);

foreach ($paths as $vertex => $path) { if (isset($marked[$vertex]))

continue;

$distance = $path[0];

if ((!isset($min) || $distance < $min) || !isset($closest)) { $min = $distance; $closest = $vertex; } } } return $paths; } ?>

49 BAB 4

Dokumen terkait