Implementasi Algoritma Floyd Warshall Dalam Menentukan Jarak Terpendek (Medan-Bandara Kuala Namu)
IMPLEMENTASIALGORITMAFLOYD WARSHALL
DALAM MENENTUKAN JARAK TERPENDEK
(MEDAN - BANDARA KUALA NAMU)
SKRIPSI
RINI CHAIRANI HARAHAP
121421090
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(2)
IMPLEMENTASI ALGORITMA FLOYD WARSHALL
DALAM MENENTUKAN JARAK TERPENDEK
(MEDAN - BANDARA KUALA NAMU)
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
RINI CHAIRANI HARAHAP
121421090
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2015
(3)
ii PERSETUJUAN
Judul : IMPLEMENTASI ALGORITMA FLOYDWARSHALL
DALAM MENENTUKAN JARAK TERPENDEK (MEDAN - BANDARA KUALA NAMU)
Kategori : SKRIPSI
Nama : RINI CHAIRANI HARAHAP
Nomor Induk Mahasiswa : 121421090
Program Studi : EKSTENSI S1 ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :
Pembimbing II Pembimbing I
Dr. Syahril Efendi, SSi, MIT. Dian Rachmawati, S.Si, M.Kom
NIP.196711101996021001 NIP. 198307232009122004
Diketahui/disetujui oleh
Program Studi Ekstensi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 19620217 199103 1 001
(4)
IMPLEMENTASI ALGORITMA FLOYD WARSHALL DALAM MENENTUKAN JARAK TERPENDEK
(MEDAN - BANDARA KUALA NAMU)
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, September 2015
Rini Chairani Harahap NIM. 121421090
(5)
iv PENGHARGAAN
Bismillahirrohmanirrohim
Segala puji dan syukur penulis ucapkan kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga dapat menyelesaikan skripsi ini tepat waktu sesuai dengan instruksi dan peraturan yang berlaku di Fakultas Ilmu Komputer dan Teknologi Informasi serta shalawat dan salam penulis hadiahkan kepada Nabi Besar Muhammad SAW.
Dalam penyusunan dan penulisan skripsi ini, penulis banyak mendapat bantuan, dukungan, dan bimbingan dari berbagai pihak. Pada kesempatan ini penulis ingin mengucapkan rasa terima kasih dan penghargaan kepada :
1. Ayahanda M.O Harahap, S.Sos I, Ibunda Dahlia dan Abang saya Ridwan Fahlevi Harahap atas doa restunya da kasih sayangnya yang tiada habisnya diberikan pada penulis serta dukungan moril dan materil yang tanpa jasanya tak mungkin penulis sampai pada saat sekarang.
2. Bapak Prof. Drs. Subhilhar, M.A, Ph.Dselaku Rektor Universitas Sumatera Utara. 3. Bapak Prof. Dr. Muhammad Zarlis, M.Kom selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi.
4. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer.
5. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu Komputer.
6. BapakDr. Syahril Efendi, SSi, M.IT.selaku Dosen Pembimbing I dan Ibu Dian Rachmawati, S.Si, M.Komselaku Dosen Pembimbing II yang telah meluangkan waktu, tenaga, dan pikiran dalam membimbing, mengarahkan, menasehati, memotivasi, dan menyemangati penulis agar dapat menyelesaikan skripsi ini. 7. Bapak Drs. Marihat Situmorang, M.Kom selaku dosen Pembanding I dan Bapak
Amer Sharif, S.Si, M.Kom selaku dosen Pembanding II yang telah memberikan kritik dan saran terhadap skripsi penulis.
(6)
Rachman, Nugra Atsaury Saragih dan Rudi Setiawan selalu menemani dan memberi motivasi kepada penulis.
10. Teman – teman seperjuangan mahasiswa/i S1 Ekstensi Ilmu Komputer stambuk 2012 yang selalu memberi dukungan.
11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu menyelesaikan skripsi ini.
Penulis menyadari bahwa skripsi ini masih memiliki banyak kekurangan, baik dari segi teknik, tata penyajian ataupun dari segi tata bahasa. Oleh karena itu penulis bersedia menerima kritik dan saran dari pembaca dalam upaya perbaikan skripsi ini. Semoga skripsi ini dapat bermanfaat bagi penulis dan pembaca, khususnya rekan-rekan mahasiswa lainnya yang mengikuti perkuliahan di Universitas Sumatera Utara.
Medan, September 2015 Penulis
(7)
vi ABSTRAK
Bandara internasional Kuala Namu merupakan Bandar udara Internasional yang melayani kota medan dan sekitarnya. Komputer banyak digunakan untuk melakukan pencarian lintasan terpendek (shortest path), yang ditampilkan dalam model simulasi.Ide dari penelitian ini berawal dari masalah jarak tempuh untuk menuju Bandara Kuala Namu.Faktor ketepatan dalam memilih jarak terpendek untuk sampai pada bandara sangat penting untuk mencegah ketinggalan pesawat.Pencarian jarak terpendek ini memfokuskan hanya untuk mencari jalur terdekat menuju Bandara Kuala Namu yang disimbolkan dengan sebuah titik (vertex).Algoritma yang digunakan untuk pencarian jarak terpendek adalah Floyd Warshall.Hasil yang diperoleh dalam pencarian jarak terpendek antar verteks adalah rute-rute yang dilalui.
Kata kunci:Algoritma Floyd Warshall, Shortest Path, Bandara Internasional Kuala Namu.
(8)
ABSTRACT
Kuala Namu International Airport is an international airport serving Medan and surrounding areas.Computers are widely used to search the shortest path, which is shown in the simulation model.The idea of this study originated from mileage problem to get to the Kuala Namu Airport.Accuracy factor in choosing the shortest path to arrive at the airport is very important to prevent miss the plane.The shortest path focused only to find the nearest path towards Kuala Namu Airport that is symbolized by a point(vertex).The algorithm used to search the shortest path is Floyd Warshall.The results obtained in the search for the shortest path between vertex are the passed routes.
Keywords:Floyd Warshall algorithm, Shortest Path, Kuala Namu International Airport.
(9)
viii DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 4
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
Bab 2 Landasan Teori 7
2.1 Graph 7
2.1.1 Macam – macam Graph Menurut Arah dan Bobotnya 8
2.2 Lintasan Terpendek (Shortest Path) 11
2.3 Algoritma 11
2.3.1 Pegertian Algoritma 11
2.3.2 Algoritma Floyd Warshall 13
2.3.3 Analisis Algoritma Floyd Warshall 15
Bab 3 Analisis dan Perancangan Sistem 17
3.1 Analisis Sistem 17
3.1.1 Analisis Masalah 17
3.1.2 Analisis Persyaratan 19
3.2 Pemodelan Aplikasi 20
3.2.1 Use-Case Diagram 20
3.2.2 Activity Diagram 21
3.2.3 Sequence Diagram 23
3.3 Flowchart 24
3.4 Perancangan Interface 25
3.5 Database 26
3.6 Entity Relationship Diagram (ERD) 28
Bab 4 Implementasi Dan Pengujian Sistem 29
4.1 Implementasi Sistem 29
4.1.1 Tampilan Halaman Utama 29
4.1.2 Tampilan Menu Floyd 30
(10)
4.3.3 Iterasi Ke Tiga 34
4.3.4 Iterasi Ke Empat 35
4.3.5 Iterasi Ke Lima 36
4.3.6 Iterasi Ke Enam 37
4.3.7 Iterasi Ke Tujuh 38
4.3.8 Iterasi Ke Delapan 39
4.3.9 Iterasi Ke Sembilan 40
4.3.10 Iterasi Ke Sepuluh 41
4.3.11 Iterasi Ke Sebelas 42
4.3.12 Iterasi Ke Dua Belas 43
4.4 Tampilan Rute 44
4.4.1 Focal Point – KNIA 44
4.4.2 Pinang Baris – KNIA 44
4.4.3 Medan Plaza – KNIA 45
4.4.4 Sun Plaza – KNIA 45
4.4.5 Hermes Place – KNIA 46
4.4.6 Amplas – KNIA 46
4.4.7 Paladium – KNIA 47
4.4.8 Centre Point – KNIA 47
4.4.9 Thamrin Plaza – KNIA 48
4.4.10 Medan Mall – KNIA 48
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 49
5.2 Saran 50
DAFTAR PUSTAKA
LAMPIRAN A [KODE PROGRAM]
(11)
x DAFTAR TABEL
Halaman
Tabel 3.1 Tabel tbljarak 26
Tabel 3.2 Tabel tbljlhpengguna 26
Tabel 3.3 Tabel tblpengunjung 27
Tabel 3.4 Tabel tblmap 27
Tabel 3.5 Tabel tblnode 27
Tabel 4.1 Perhitungan algoritma Floyd Iterasi Pertama 33 Tabel 4.2 Perhitungan Algoritma Floyd Iterasi Ke Dua 34 Tabel 4.3 Perhitungan Algoritma Floyd Iterasi Ke Tiga 34 Tabel 4.4 Perhitungan Algoritma Floyd Iterasi Ke Empat 35 Tabel 4.5 Perhitungan Algoritma Floyd Iterasi Ke Lima 36 Tabel 4.6 Perhitungan Algoritma Floyd Iterasi Ke Enam 37 Tabel 4.7 Perhitungan Algoritma Floyd Iterasi Ke Tujuh 38 Tabel 4.8 Perhitungan Algoritma Floyd Iterasi Ke Delapan 39 Tabel 4.9 Perhitungan Algoritma Floyd Iterasi Ke Sembilan 40 Tabel 4.10 Perhitungan Algoritma Floyd Iterasi Ke Sepuluh 41 Tabel 4.11 Perhitungan Algoritma Floyd Iterasi Ke Sebelas 42 Tabel 4.12 Perhitungan Algoritma Floyd Iterasi Ke Dua Belas 43
(12)
Gambar 2.2 Graph Berarah dan Berbobot 8
Gambar 2.3 Graph Tidak Berarah dan Berbobot 9
Gambar 2.4 Graph Berarah dan Tidak Berbobot 9
Gambar 2.5 Graph Tidak Berarah dan Tidak Berbobot 10
Gambar 2.6 Graph Sederhana 10
Gambar 2.7 Graph Tidak Sederhana 10
Gambar 3.1 Ishikawa Diagram 18
Gambar 3.2 Use Case Sistem Penentuan Jalur Terpendek Menuju KNIA 20 Gambar 3.3 Activity Diagram Algoritma Floyd Warshall 22
Gambar 3.4 Sequence Diagram 23
Gambar 3.5 Diagram Alur Algoritma Floyd Warshall 24
Gambar 3.6 Perancangan Interface 25
Gambar 3.7 Entity Relationship Diagram (ERD) 28
Gambar 4.1 Tampilan Halaman Utama 29
Gambar 4.2 Tampilan Menu Floyd 30
Gambar 4.3 Tampilan Login Admin 30
Gambar 4.4 Tampilan Data Lokasi 31
Gambar 4.5 Graph Yang Digunakan Untuk Menghitung Jarak Terpendek 31 Menuju KNIA
Gambar 4.6 Tampilan Rute Focal Point – KNIA 44
Gambar 4.7 Tampilan Rute Pinang Baris – KNIA 44
Gambar 4.8 Tampilan Rute Medan Plaza – KNIA 45
Gambar 4.9 Tampilan Rute SUN Plaza – KNIA 45
Gambar 4.10 Tampilan Rute Hermes Polonia – KNIA 46
Gambar 4.11 Tampilan Rute Amplas – KNIA 46
Gambar 4.12 Tampilan Rute Paladium – KNI 47
Gambar 4.13 Tampilan Rute Centre Point – KNIA 47
Gambar 4.14 Tampilan Rute Thamrin Plaza – KNIA 48
(13)
vi ABSTRAK
Bandara internasional Kuala Namu merupakan Bandar udara Internasional yang melayani kota medan dan sekitarnya. Komputer banyak digunakan untuk melakukan pencarian lintasan terpendek (shortest path), yang ditampilkan dalam model simulasi.Ide dari penelitian ini berawal dari masalah jarak tempuh untuk menuju Bandara Kuala Namu.Faktor ketepatan dalam memilih jarak terpendek untuk sampai pada bandara sangat penting untuk mencegah ketinggalan pesawat.Pencarian jarak terpendek ini memfokuskan hanya untuk mencari jalur terdekat menuju Bandara Kuala Namu yang disimbolkan dengan sebuah titik (vertex).Algoritma yang digunakan untuk pencarian jarak terpendek adalah Floyd Warshall.Hasil yang diperoleh dalam pencarian jarak terpendek antar verteks adalah rute-rute yang dilalui.
Kata kunci:Algoritma Floyd Warshall, Shortest Path, Bandara Internasional Kuala Namu.
(14)
ABSTRACT
Kuala Namu International Airport is an international airport serving Medan and surrounding areas.Computers are widely used to search the shortest path, which is shown in the simulation model.The idea of this study originated from mileage problem to get to the Kuala Namu Airport.Accuracy factor in choosing the shortest path to arrive at the airport is very important to prevent miss the plane.The shortest path focused only to find the nearest path towards Kuala Namu Airport that is symbolized by a point(vertex).The algorithm used to search the shortest path is Floyd Warshall.The results obtained in the search for the shortest path between vertex are the passed routes.
Keywords:Floyd Warshall algorithm, Shortest Path, Kuala Namu International Airport.
(15)
BAB 1
PENDAHULUAN
1.1Latar Belakang
Bandara internasional Kuala Namu merupakan Bandar udara Internasional yang melayani kota medan dan sekitarnya. Bandara ini terletak 39 KM dari kota medan. Bandar udara Intenasional Kuala Namu termasuk bandara terbesar ke dua di Indonesia Setelah Bandar Udara Internasional Soekarno-Hatta.
Komputer banyak digunakan untuk melakukan pencarian lintasan terpendek (shortest path), yang ditampilkan dalam model simulasi. Pencarian lintasan terpendek merupakan suatu masalah yang paling banyak dibahas dan dipelajari sejak akhir tahun 1950. Pencarian lintasan terpendek ini telah diterapkan di berbagai bidang untuk mengoptimasi kinerja suatu sistem, baik untuk meminimalkan biaya atau mempercepat jalannya suatu proses (Purwananto, 2005).
Pada penelitian ini dilakukan studi kasus pencarian rute terpendek untuk menuju Bandara Kuala Namu.Ide dari penelitian ini berawal dari masalah jarak tempuh untuk menuju Bandara Kuala Namu.Faktor ketepatan dalam memilih jarak terpendek untuk sampai pada bandara sangat penting untuk mencegah ketinggalan pesawat.Pencarian jarak terpendek ini memfokuskan hanya untuk mencari jalur terdekat menuju Bandara Kuala Namu yang disimbolkan dengan sebuah titik (vertex).Algoritma yang digunakan untuk pencarian jarak terpendek adalah Floyd Warshall.Hasil yang diperoleh dalam pencarian jarak terpendek antar verteks adalah rute-rute yang dilalui.
(16)
Untuk itu diperlukan suatu sistem yang dapat membantu dalam menemukan rute terpendek yang dapat merepresentasikan data yang ada.Data tersebut dapat disimpan, diolah, dan disajikan dalam bentuk yang lebih sederhana serta terkomputerisasi sehingga memudahkan dalam penentuan rute terpendek.
1.2Rumusan Masalah
Berdasarkan latar belakang yang telah dipaparkan maka rumusan masalah yang akan dibahas pada penelitian ini adalah pemanfaatan teknologi informasi sebagai solusi penentuan jarak terpendek untuk menuju Bandara Kuala Namu.
1.3Batasan Masalah
Adapun batasan masalah yang diangkat adalah sebagai berikut: 1. Setiap jalan yang dilalui dianggap satu arah
2. Posisi user yang akan menjadi titik awal harus berada di satu wilayah yang ditentukan layanan yaitu kota medan
3. Tidak membahas keadaan lalu lintas, waktu tempuh dan keadaan jalan dari tempat asal ke tempat tujuan.
4. Aplikasi yang dikembangkan membutuhkan koneksi internet untuk Google MapsApi dan mengunduh data dari server.
5. Input pada sistem ini adalah titik asal dan titik tujuan dimana titik asal berupa tempat-tempat penting di kota Medan (beberapa terminal dan beberapa pusat perbelanjaan), dan titik tujuan adalah Bandara Kuala Namu.
(17)
3
Output berupa rute perjalanan, jalur yang harus dilewati pada peta, dan pewarnaan pada jalur yang ditempuh.
a. Terminal :
1. Terminal Amplas 2. Terminal Pinang Baris b. Pusat perbelanjaan:
1. Paladium 5. Medan Fair
2. SUN 6. Medan Mall
3. Centre Point 7. Hermes 4. Focal Point 8. Thamrin Plaza 6. Moda yang digunakan adalah transportasi motor dan mobil.
7. Dari kota asal ke kota tujuan tidak ada hambatan seperti lampu merah atau hambatan lain.
8. Menggunakan bahasa pemrograman PHP dan MySQL sebagaiDataBase Management System (DBMS).
9. Perhitungan yang dilakukan hanya berdasarkan jarak tempuh.
1.4Tujuan Penelitian
1. Membangun suatu aplikasi yang dapat membantu menentukan jarak terpendek (shortest part) dalam menuju bandar udara Kuala Namu.
2. Menerapkan algoritma Floyd warshall pada penentuan jalur terpendek menuju Bandar udara Kuala Namu.
(18)
1.5Manfaat Penelitian
Manfaat penelitian ini adalah sebagai berikut: 1. Manfaat bagi penulis
a. Dapat menerapkan ilmu yang di dapat di Universitas Sumatera Utara
2. Manfaat bagi masyarakat
a. Dapat menggunakan aplikasi berbasis web untuk menentukan jarak terpendek menuju titik Bandar udara Kuala Namu dari titik awal yaitu kota medan.
1.6Metode Penelitian
Metode peneltian yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut:
a. Studi Literatur
Pada tahap ini dilakukan dengan mempelajari bahan-bahan ataupun buku-buku referensi, skripsi, jurnal dan sumber lain yang berkaitan dengan penulisan tugas akhir ini. Topik yang di bahas dalam skripsi ini menyangkut dengan graph, dan algoritma Floyd Warshall dalam menentukan rute terpendek.
b. Observasi
Observasi dilakukan dengan melakukan menggunakan aplikasi google maps, dan aplikasi here maps. Pada aplikasi here maps digunakan untuk mengambil informasi jarak dan google maps digunakan untuk penerapan peta pada aplikasi. c. Analisis dan Perancangan
Pada metode ini dilakukan analisis sesuai dengan kebutuhan seperti cara membangun aplikasi yang mengimplementasikan Algoritma Floyd Warshall, jenis perangkat yang digunakan, pembuatan desain interface, target pengguna, dan hasil yang diinginkan.
(19)
5
d. Implementasi Sistem
Metode ini dilaksanakan dengan mengimplementasikan rancangan sistem yang telah dibuat pada analisis dan perancangan sistem kedalam program komputer dengan menggunakan bahasa pemrograman PHP dan MySQL.
e. Penguji Sistem
Metode ini dilaksanakan dengan mengimplementasikanAlgoritma Floyd Warshhall dalam penentuan jalur kBandar Udara Kuala Namu. Hasil program diuji kemudian dianalisis perbandingan kecepatan dan ketepatan pencarian
f. Dokumentasi
Metode ini berisi laporan dan kesimpulan akhir dari hasil analisis dan pengujian dalam bentuk penulisan tugas akhir beserta kesimpulannya dan menampilkan data-data sebagai bukti dalam bentuk hard copy.
1.7Sistematika Penulisan
Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut:
BAB I: PENDAHULUAN
Bab ini akan menjelaskan mengenai latar belakang pemilihan judul skripsi
“Implementasi Algoritma Floyd Warshall Untuk Menentukan Rute Terpendek (Studi Kasus : Medan – Bandara Kuala Namu)”, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metode penelitian, serta sistematika penulisan.
BAB II: LANDASAN TEORI
Bab ini akan membahas teori-teori yang berkaitan dengan Lintasan Terpendek, Graph, Algoritma Floyd Warshall, Database Management System (DBMS)MySQL dan pemrograman PHP.
(20)
BAB III: ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini berisikan langkah-langkah penelitian yang dilakukan, serta analisis terhadap fokus permasalahan penelitian. Pada bab ini juga akan dibahas perancangan sistem yang merupakan tindak lanjut dari tahapan analisis, termasuk didalamnya pemodelan proses dan pemodelan data yang dibangun berdasarkan pendekatan terstruktur.
BAB IV: IMPLEMENTASI SISTEM
Bab ini berisi proses pembangunan perangkat lunak berdasarkan hasil perancangan pada bab sebelumnya dan pengimplementasiannya ke sistem nyata.
BAB V: KESIMPULAN DAN SARAN
Bab terakhir akan memuat kesimpulan isi dari keseluruhan uraian bab-bab sebelumnya dan saran-saran dari hasil yang diperoleh yang diharapkan dapat bermanfaat dalam pengembangan selanjutnya untuk perbaikan di masa yang akan datang.
(21)
BAB 2
LANDASAN TEORI
2.1Graph
Graf adalah struktur data yang terdiri dari atas kumpulan vertex (V) dan edge (E), biasa ditulis sebagai G=(V,E), di mana vertex adalah node pada graf, dan edge adalah rusuk / jaring yang menghubungkan dua node. Jaring terdefenisi melalui pasangan node (v,w), di mana v disebut tail dan w disebut head dari jaring tersebut. (Dr.Suarga,2012.)
Beberapa istilah yang sering digunakan dalam masalah graf antara lain :
1. Adjacent vertex: adalah dua node berdekatan, terhubung langsung oleh vertex. 2. Path: jalur melalui edge yang menghubungkan suatu vertex ke vertex yang
lain, panjang suatu jalur ditentukan oleh jumlah jaring (edge) yang menghubungkan dua vertex.
3. Complete graph: adalah graf di mana semua vertex terhubung langsung satu dengan yang lain.
4. Weighted graph: graf yang setiap edgenya memiliki bobot/ nilai.
5. Cycle: adalah jalur yang mulai dari suatu vertex dan berakhir pada vertex yang sama.( Dr.Suarga,2012.)
(22)
Gambar 2.1 Graph dengan 4 verteks dan 5 edge.
Pada gambar 2.1 diatas graph G = (V, E) dimana:
1. V adalah himpunan titik, simpul, verteks atau nodes dari G, yaitu V = {v1, v2, v3, v4}
2. E adalah himpunan rusuk, edges, atau sisi dari G, yaitu E = {e1, e2, e3, e4, e5}
2.1.1 Macam – macam Graph Menurut Arah dan Bobotnya
Menurut arah dan bobotnya, graph dibagi menjadi enam bagian, yaitu :
1. Pada gambar 2.2 menjelaskan Graph berarah (digraph) dan berbobot: setiap edges mempunyai arah (yang ditunjukkan dengan anak panah) dan bobot.
Gambar 2.2 Graph Berarah Dan Berbobot. v3
e4 v2
v
e5 e
3
e1
e2
(23)
9
2. Pada gambar 2.3 menjelaskan Graph tidak berarah dan berbobot: setiap edges tidak mempunyai arah tetapi mempunyai bobot.
Gambar 2.3 Graph Tidak Berarah Dan Berbobot.
3. Pada gambar 2.4 menjelaskan Graph berarah (digraph) dan tidak berbobot: setiap edges mempunyai arah tetapi tidak mempunyai bobot.
(24)
4. Pada gambar 2.5 menjelaskan Graph tidak berarah dan tidak berbobot: setiap edges tidak mempunyai arah dan tidak mempunyai bobot
Gambar 2.5 Graph Tidak Berarah Dan Tidak Berbobot
5. Pada gambar 2.6 menjelaskanGraph sederhana : Graph yang tidak memiliki garis paralel ataupun loop. Titik-titik pada Graph sederhana dihubungkan tepat dengan satu garis ke setiap titik yang lain dan tidak ada garis yang titik awal dan akhirnya sama (Adelina, 2014).
Gambar 2.6 Graph Sederhana (Adelina,2014)
6. Pada gambar 2.7 menjelaskanGraph tidak sederhana : Graph yang memiliki loop atau garis paralel. Graph tidak sederhana kemudian terbagi lagi menjadi Graph semu (pseudoGraph) dan multiple Graph (Adelina, 2014).
a. Graph Semu (pseudo Graph) b. MultipleGraph Gambar 2.7 Graph Tidak Sederhana(Adelina,2014)
(25)
11
2.2Lintasan Terpendek (Shortest Path)
Persoalan mencari lintasan terpendek di dalam Graph merupakan salah satu persoalan optimasi.Graph yang digunakan dalam pencarian lintasan terpendek adalah Graph suatu nilai atau bobot. Bobot pada sisi Graph dapat menyatakan jarak antar kota, waktu pengiriman pesan, ongkos pembangunan, dan sebagainya. Asumsi yang
digunakan disini adalah bahwa semua bobot bernilai positif. Kata “terpendek” jangan
selalu diartikan secara fisik sebagai panjang minimum, sebab kata “terpendek” berbeda-beda maknanya tergantung pada tipikal persoalan yang akan diseleseikan.
Namun secara umum “terpendek” berarti meminimisasi bobot pada suatu lintasan di
dalam Graph. (Anik Andriani, 2014)
Ada beberapa macam persoalan lintasan terpendek, antara lain : a. Lintasan terpendek antara dua buah simpul tertentu. b. Lintasan terpendek antara semua pasangan simpul.
c. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain.
d. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu.
2.3Algoritma
2.3.1 Pengertian Algoritma
Ahli sejarah matematika menemukan kata algoritma berasal dari nama penulis buku Arab terkenal, yaitu Abu Abdullah Muhammad Ibnu Musa Al-Khuwarizmi seorang ahli matematika, astrologi, astronomi, geoGraphi.
Algoritma adalah sekumpulan langkah (tahapan) logis untuk menyelesaikan suatu pekerjaan ( permasalahan).
(26)
Terdapat beberapa defenisi dari algoritma:
1. Algoritma adalah teknik penyusunan langkah-langkah penyelesaian masalah dalam bentuk kalimat dengan jumlah kata terbatas tetapi tersusun seccara logis dan sitematis.
2. Algoritma adalah suatu proses yang jelas untuk menyelesaikan suatu persoalan degan menggunakan langkah-langkah tertentu dan terbatas jumlahnya.
3. Algoritma adalah susunan langkah yang pasti, yang bila diikuti maka akan mentrasformasikan data input menjadi output yang berupa informasi (Indrawoko Kurniadi,2011).
Suatu Algoritma yang terbaik “Suatu algoritma harus menghasilkan output
yang tepat guna (efektif) dalam waktu yang relative singkat dan penggunaan memori yang relative sedikit (efesien) dengan langkah yang berhingga dan prosedurnya
berakhir baik dalam keadaan diperoleh suatu solusi ataupun tidak ada solusinya”.
Algoritma yang baik harus mampu memberikan hasil yang optimal. Dalam pemilihan algoritma ada beberapa hal yang perlu dipertimbangkan yaitu :
1. Algoritma haruslah benar. Algoritma harus bisa memberikan hasil sesuai dengan yang dikehendaki dari sejumlah masukan yang diberikan
2. Seberapa baik hasil yang dicapai. Artinya algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai sebenarnya.
3. Efisiensi algoritma. Efisiensi algoritma ditinjau dari dua hal yaitu :
a. Efisiensi waktu. Mampu memberikan keluaran atau hasil yang cepat. b. Efisiensi memori. Semakin banyak memori yang dibutuhkan sebuah
algoritma untuk memecahkan suatu masalah maka makin buruklah algoritma itu (Siang, 2006).
(27)
13
Harga perangkat keras saat ini cenderung menurun.Maka efisiensi waktu lebih diutamakan daripada efisiensi memori. Hal-hal yang berhubungan dengan kompleksitas waktu yang digunakan oleh sebuah algoritma adalah :
1. Perancangan. Yang termasuk dalam bagian perancangan adalah :
a. Deskripsi algoritma pada suatu tingkatan yang memiliki arti bahasa semu (pseudo)
b. Pembuktian kebenaran bahwa sebuah algoritma bisa menyelesaikan masalah yang diberikan.
2. Analisis. Memberikan evaluasi kinerja algoritma terhadap permasalahan yang diberikan (Purwanto, 2008)
2.3.2 Algoritma Floyd Warshall
Algoritma Floyd Warshall adalah salah satu varian dari pemrograman dinamis, yaitu suatu metode yang melakukan pemecahan masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. (Thomas H. Cormen,2003).
if k = 0 , if k ≥ 1
Keterangan : menyatakan nilai jalur terpendek dari i ke j yang melalui titik ke 1 ,...., k (Thomas H. Cormen,2003).
Algoritma ini bekerja dengan menghitung shortest path (i,j,k) untuk semua pasangan (i,j), kemudian hasil tersebut akan digunakan untuk menghitung shortest path (i,j,k) untuk semua pasangan (i,j), dst. Proses ini akan terus berlangsung hingga k=n dan kita telah menemukan jalur terpedek untuk semua pasangan (i,j) menggunakan simpul-simpul perantara. (Thomas H. Cormen,2003).
Salah satu algoritma Graph yaitu algoritma Floyd Warshall.Algoritma Floyd Warshall menghitung jalur terpendek antara semua simpul dengan menghitung dari
(28)
satu sumber simpul sampai simpul tujuan melalui beberapa jalur (Baras & Theodorakopoulos, 2010).Algoritma Floyd Warshall dapat digunakan untuk mencari panjang lintasan terpendek antara semua pasangan simpul dalam Graph sederhana yang terhubung tetapi algoritma Floyd Warshall tidak dapat digunakan untuk membuat lintasan terpendek (Rosen, 2011).
Cara kerja dari algoritma Floyd Warshall adalah dengan membandingkan semua lintasan yang mungkin terjadi dalam Graph untuk setiap pasang simpul dan melakukan pengujian dari setiap kombinasi simpul yang diperoleh.Misalkan adalah matriks ketetanggaan awal Graph berarah berbobot. adalah matriks ketetanggaan berbobot terpendek dengan sama dengan path terpendek dari titik ke (Siang, 2009).
Beberapa karakteristik yang dimiliki oleh algoritma Floyd Warshall antara lain:
1. Persoalan dibagi atas beberapa tahap, yang setiap tahapnya hanya akan diambil satu keputusan.
2. Masing-masing tahap terdiri atas sejumlah status yang saling berhubungan dengan status tersebut. Status yang dimaksud disini adalah berbagai kemungkinan masukan yang ada pada tahap tersebut.
3. Ketika masuk ke suatu tahap, hasil keputusan akan ditransformasi.
4. Bobot pada suatu tahap akan meningkat secara teratur seiring bertambahnya jumlah tahapan.
5. Bobot yang ada pada suatu tahap tergantung dari bobot tahapan yang telah berjalan dan bobot pada tahap itu sendiri.
6. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan pada tahap sebelumnya.
7. Terdapat hubungan rekursif yang menyatakan bahwa keputusan terbaik dalam setiap status pada tahap k akan memberikan keputusan terbaik untuk setiap status pada tahap k+1.
(29)
15
Kelebihan dari algoritma Floyd Warshall antara lain (Adams, 2012):
1. Algoritma Floyd Warshall dapat digunakan untuk mencari jarak terpendek (shortest path) dari setiap pasangan node
2. Algoritma Floyd Warshall menggunakan matriks bobot n x n sebagai masukan, dimana n merupakan jumlah node
3. Algoritma Floyd Warshall dapat mentolerir negative edge.
Dari beberapa penelitian tentang perbandingan algoritma Floyd Warshall dengan algoritma Djikstra adalah pada algoritma Dijkstra hanya memikirkan solusi terbaik yang akan diambil pada setiap langkah tanpa memikirkan konsekuensi ke depan. Dan hasil yang diberikan tidak selalu memberikan hasil yang optimal.sedangkan algoritma Floyd warshall memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait sehingga lebih menjamin keberhasilan penemuan solusi optimum untuk kasus penentuan lintasan terpendek (Sondang, 2011).
2.3.3 Analisis Algoritma Floyd Warshall
Dalam iterasinya untuk mencari lintasan terpendek, algoritma Floyd-Warshall membentuk n matriks sesuai dengan iterasi-k. Algoritma Floyd-Warshall sering dipergunakan untuk menghitung lintasan terpendek karena kesederhanaan algoritmanya. Algoritma ini menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan melakukannya sekaligus untuk semua pasangan titik. Dengan kata lain pada saat perhitungan rute optimum yang akan dilalui terlebih dahulu. Algoritma Floyd-Warshall bekerja berdasarkan formulasi dinamic programming. Setiap langkahnya akan memeriksa lintasan antara vi dan vjapakah bisa lebih pendek jika melalui vi-vk dan vk-vj.
(30)
Proses Penentuan Nilai Minimum Algoritma Floyd-Warshalldapat dituliskan sebagai berikut:
1. Pada iterasi ke-1, setiap sel matriks dilakukan pengecekan apakah jarak antar dua titik mula mula lebih besar dari penjumlahan antar jarak titik asal ke titik tujuan (titik tujuan=iterasi ke-1) dengan jarak titik asal (titik asal=iterasi ke-1) ke titik tujuan. Dengan kata lain apakah W[i,j] > W[i,k] + W[k,j].
2. Jika iya maka jarak antar dua titik mula mula diganti dengan penjumlahan antar jarak titik asal ke titik tujuan (titik tujuan=iterasi ke-1) dengan jarak titik asal (titik asal=iterasi ke-1) ke titik tujuan (W[i,k] + W[k,j]).
3. Jika tidak, maka jarak yang digunakan yaitu jarak antar dua titik mula mula (W[i,j]).
4. Proses iterasi dilakukan hingga pada iterasi terakhir (jumlah iterasi=jumlah total titik).
(31)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem merupakan bagian dari proses pembuatan sistem yang memiliki beberapa tahapan. Berikut merupakan tahapan - tahapan dari analisis sistem.
3.1.1. Analisis masalah
Masalah yang dibahas dalam penelitian ini adalah, sulitnya seseorang dalam memilih informasi tentang jalur yang diinginkan dengan menggunakan algoritma Floyd warshall.Maka dari itu, sebelum membangun program dilakukan analisis masalah dengan menggunakan Ishikawa Diagram seperti yang ditunjukkan di gambar 3.1.
Ishikawa Diagram (diagram fishbone) berbentuk tulang ikan yang merupakan buah pikiran dari Kaoru Ishikawa.Ishikawa Diagram adalah sebuah alat grafis yang digunakan untuk mengidentifikasi, mengeksplorasi dan mengambarkan suatu masalah, sebab dan akibat dari masalah itu. Sering disebut diagram sebab-akibat atau diagram tulang ikan (Fishbone diagram) karena menyerupai tulang ikan.
(32)
Konsep dasar dari diagram Ishikawa adalah nama masalah yang mendapat perhatian dicantumkan di sebelah kanan diagram (atau pada kepala ikan) dan penyebab masalah yang mugkin digambarkan sebagai tulang-tulang dari tulang utama. Secara khusus tulang-tulang ini mendeskripsikan empat kategori dasar yaitu material, mesin kekuatan, manusia, dan metode).Kategori alternative atau tambahan meliputi tempat prosedur, kebijakan, dan orang atau lingkungan sekeliling, pemasok, system dan keterampilan.(Jeffery, 2004).
Masalah pencarian rute terpendek untuk menuju
Bandara kuala Namu Masalah pencarian rute terpendek
untuk menuju Bandara kuala Namu Material
Material MetodeMetode
Machine
Machine PeoplePeople
Menggunakan algoritma Floyd Warshall Rute yang dilalui
dari titik asal ke titik tujuan
Program Shortest path
Hasil rute yang dipilih berdasarkan
jarak
Gambar 3.1 Ishikawa Diagram
Berdasarkan gambar 3.1 , merupakan masalah pencarian rute terpendek menuju bandara Kuala Namu. Dalam diagram perhatikan bahwa masalah yang dipecahkan berada di kotak sebelah kanan. Empat area yang diidentifikasi sebagai kategori penyebab (material, metode, machine dan people) dituliskan di kotak sebelah atas dan bawah kerangka ikan dan dihubungkan dengan panah (tulang) menuju ke tulang ikan.Sebab aktual dari masalah unntuk setiap kategori di gambarkan sebagai panah ke panah kategori (bone).
(33)
19
3.1.2. Analisis persyaratan
Analisis persyaratan dibagi menjadi dua yaitu persyaratan fungsional dan non-fungsional.
a. Fungsional
Persyaratan fungsional merupakan persyaratan yang dimiliki oleh sistem dalam menyelesaikan suatu masalah.Dalam hal ini persyaratan fungsional yang harus dimiliki sistem yaitu:
1. Pada proses input, sistem ini menggunakan lintasan terpendek yang rutenya di lihat dari jalan yang terbaca oleh google maps.
2. Metode yang diimplementasikan dalam sistem ini ialah proses pencarian lintasan terpendek dengan menggunakan Algoritma Floyd-Warshall pada lintasan terpendek yang akan dicari.
b. Non-fungsional
Kebutuhan non-fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut:
a. User Friendly
Sistem yang dibangun harus User Friendly, artinya sistem ini dapat dengan mudah digunakan dan dimengerti oleh user sehingga menjadi salah satu solusi dalam mencari lintasan terpendek.
b. Software Pendukung
Sistem yang dibangun oleh penulis menggunakan semua Software Pendukung bersifat freeware sehingga tidak memerlukan izin atau hal-hal yang dapat merugikan pihak lain.
(34)
c. Fitur Tambahan
Sistem ini menambah beberapa fitur tambahan yaitu menyediakan beberapa fungsi yang akan menyimpan hasil dari pencarian lintasan terpendek.
d. Performa
Pencarian lintasan terpendek yang dilakukan oleh sistem akan mampu menunjukkan hasil akhir dari proses, yaitu jarak terpendek
3.2 Pemodelan Aplikasi
Pemodelan aplikasi yang dirancang bertujuan untuk menggambarkan semua kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang.Pemodelan Aplikasi dilakukan dengan membuat Use-Case Diagram, Activity Diagram, dan Sequence Diagram.
3.2.1 Use-Case Diagram
Use case diagram akan menjelaskan apa saja fungsi-fungsi yang akan dikerjakan oleh sistem. Hal ini dikarenakan use case diagram akan merepresentasikan bagaimana interaksi antara actor (user)dengan sistem.
Input daerah asal
Evaluasi node demi node
Bandingkan semua rute yang dilalui
Floyd Warshall <<depends (on)>> Jarak terpendek
<< ext ends>> <<ext ends >> << iclude>> <<iclu de>> user System
Gambar 3.2 Use Case Diagram Sistem Penentuan Jalur Terpendek Menuju Bandara Kuala Namu
(35)
21
Use case diagram pada gambar 3.2 menjelaskan user melakukan pencarian lintasan terpendek dengan menginputkan daerah asal dengan menggunakan Algoritma Floyd Warshall kemudian melihat hasil dari lintasan terpendek yang telah dicari setelah membandingkan node node yang telah di evaluasi.
3.2.2 Activity Diagram
UML menawarkan sebuah diagram tambahan yang disebut activity diagram atau diagram aktivitas. Activity diagram adalah sebuah diagram yang dapat digunakan untuk menggambarkan secara grafis aliran proses bsnis, langkah-langkah sebuah use case atau logika behavior (metode) object. Diagram ini seupa dengan flowchart dimana secara grafis diagram ini menggambarka diagram aliran sekuensial dari kegiatan. Perbedaan diagram ini dengan flowchart dimana diagram ini menyediakan sebuah mekanisme untuk menggambarkan kegiatan yang tampak secara pararel. Diagram ini sangat berguna untuk memodelkan kegiatan yang akan dilakukan saat sebuah operasi dieksekusi dan memodelkan hasil-hasil dari kegiatan-kegiatan ini. (Jeffery , 2004)
(36)
System User
Input daerah asal Evaluasi node demi node
Bandingkan semua rute yang dilalui
Proses pencarian rute dengan menggunakan algoritma floyd warshall menuju KNIA Tampilkan jarak terpendek yang di lalui
Gambar 3.3 Activity Diagram Algoritma Floyd Warshall
Diagram activity pada gambar 3.3 ini menjelaskan tentang pencarian jarak terpendek menggunakan alggoritma Floyd Warshall, yang mana user akan menginput daerah asal dan sistem akan mulai mengevaluasi node demi node dan membandingkan node terdekat menuju bandara Kuala Namu dengan menggunakan algoritma Floyd Warshall. Setelah mendapat perhitungan jarak terpendek maka akan ditampilkan jarak tersebut ke user dan sistem akan berhenti.
(37)
23
3.2.3 Sequence Diagram
Sequence diagram adalah diagram UML yang memodelkan logika sebuah use case dengan cara menggambarkan interaksi pesan di antara objek-objek dalam rangkaian waktu. Pada gambar 3.4 akan dijelaskan sequence diagram.
Start
User Interface Floyd Warshall Proses Lintasan
Proses Perhitungan Floyd Warshall
Bandingkan semua vertex yang terhubung
Tampil jalur terpendek ditemukan oleh Algoritma Floyd Warshall
(38)
3.3 Flowchart
Pengertian dari flowchart atau digram alir adalah sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Flowchart Floyd Warshall digambarkan oleh gambar 3.5
Gambar 3.5 Diagram Alur Algoritma Floyd-Warshall
Start
Input daerah asal
Evaluasi vertex demi vertex
Bandingkan semua rute yang dilalui
Proses pencarian jarak terpendek menggunakan Algoritma Floyd-warshall
Tampilkan rute jarak terpendek
(39)
25
3.4 Perancangan Interface
Sistem ini dirancang dengan tampilan awal yang langsung bisa diakses tanpa melalui login.
Gambar 3.6 Perancangan Interface Keterangan gambar 3.6
Header : bagian paling atas dar website yang biasanya berisi gambar website, alamat, dan nama website.
Menu : Untuk menyambungkan halaman yang satu dengan halaman yang lainnya.
Peta : Menampilkan gambar peta yang berfugsi untuk
menunjukkan rute / jalan menuju bandara KNIA Jumlah Pengunjung&
pengguna
: Database yang menampilkan jumlah pengunjung dan pengguna aplikasi ini
HEADER
GAMBAR PETA
PENCARIAN RUTE TERPENDEK MENGGUNKAN ALGORITMA FLOYD
WARSHALL
HOME CONTACT
US
DATA
LOKASI
FLOYD
PILIH DAERAH ASAL
DAERAH TUJUAN (KNIA)
PROSES
JUMLAH PENGUNJUNG JUMLAH PENGGUNA
1 2 3 3 4 5 6
(40)
Daerah asal : Berupa combo box yang menampilkan titik-titik awal/ asal untuk menuju bandara KNIA
Daerah tujuan : KNIA
3.5 Database
Database adalah tempat media penyimpanan data dalam membuat sebuah program yang berisikan tabel, field dan record, yang di selimuti namanya DBMS (DataBase Managemet Systm).
Database terdiri dari tabel – tabel yang dibuat menggunakan program MySQL. Database yang dirancang penulis adalah database db_floyd yang terdiri dari 5 tabel.
1. Tabel tbljarak
Tabel 3.1 Tabel tbljarak
Field Name Type Width Description
awal Varchar 10 Titik awal
akhir Varchar 10 Titik akhir
arah Varchar 30 Arah
jarak Double Jarak
2. Tabel tbljlhpengguna
Tabel 3.2 Tabel tbljlhpengguna Field
Name Type Width Description
Id Int 11 No. urut (auto_increment, primary key) Waktu Datetime Waktu dalam mengakses aplikasi
(41)
27
3. Tabel tbljlhpengunjung
Tabel 3.3 Tabel tbljlhpengunjung Field
Name Type Width Description
Id Int 11 No. urut (auto_increment, primary key) Waktu Datetime Waktu dalam mengakses aplikasi
Ip varchar 30 IP
4. Tabel tblmap
Tabel 3.4 Tabel tblmap Field
Name Type Width Description
Awal Varchar 30 Titik awal
Akhir Varchar 30 Titik akhir
5. Tabel tblnode
Tabel 3.5 Tabel tblnode
Field Name Type Width Description
kdnode Varchar 30 Kode node
nama Varchar 30 Nama singkatan
koor1 Varchar 30 Titik koordinat pertama
koor2 Varchar 30 Titik koordinat ke dua
(42)
3.6 Entity Relationship Diagram (ERD)
Entity Relationship Diagram (ERD) merupakan suatu teknik pemodelan data yang menggambarkan entitas dan hubugan antar entitas dalam sebuah sistem informasi.
Tabel Node
Kdnode
Nama Koor1 Koor2 keterangan
Tabel Map Awal akhir
Tabel Jarak
Awal Akhir Arah jarak ambil
ambil
Tabel Pengunjung
Id
Waktu ip
Tabel Pengguna
Id
Waktu ip
(43)
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1Implementasi Sistem
Web server merupakan sebuah perangkat lunak dalam server yang berfungsi menerima permintaan (request) berupa halaman web melalui HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali (response) hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk document HTML.
4.1.1 Tampilan halaman utama
Tampilan ini merupakan tampilan yang pertama kali muncul pada saat aplikasi dijalankan.
(44)
4.1.2 Tampilan Menu Floyd
Tampilan ini hanya menampilkan cara proses perhitungan jarak dari algoritma Floyd warshall
Gambar 4.2 Tampilan Menu Floyd
4.1.3 Tampilan Login Admin Pengelola Data
Tampilan ini akan muncul ketika si pengguna mengklik menu data lokasi. Dan tampilan ini hanya bisa dikelola oleh admin.
(45)
31
4.1.4 Tampilan data lokasi
Tampilan ini berisikan titik (node) yang dapat diinput , edit dan hapus oleh admin
Gambar 4.4 Tampilan Data Lokasi
4.2GraphYang Digunakan Untuk Menentukan Rute Terpendek
Gambar 4.5 Graph yang digunakan untuk menghitung jarak terpendek menuju KNIA
(46)
Keterangan gambar 4.5
FP : Focal Point : Jalan Arteri Ringroad, Medan, Sumatera Utara
PB : Pinang Baris : Jl. Pinang Baris, Selalas, Medan, Sumatera Utara
MP : Medan Plaza : Jl. Medan Sumatera Utara Jend. Gatot Subroto No. 30
SUN : SUN Plaza : Jl. H. Zianul Arifin No. 7 Medan Sumatera Utara
Hermes : Hermes Polonia : Jl. Medan Sumatera Utara Wolter Monginsidi No.45 Amplas : Terminal Amplas : JL. Menteng, No. 7 Medan Sumatera Utara
Palad :
Paladium
: Jl. Kapten Maulana Lubis No. 8 Petisah Tengah Medan Petisah Medan Sumatera Utara
CP : Centre Point : Jl. Timor Blok H No. 1, Medan, Sumatera Utara TP : Thamrin Plaza : Jl. Thamrin No. 75 R, Sumatera Utara MM : Medan Mall : JL. MT Haryono No. 8 - 9, Sumatera Utara
KNIA : Kuala Namu
Internasional Airport :
Jl. Bandara Internasional Kualanamu, Medan, Sumatera Utara
(47)
33
4.3Perhitungan algoritma Floyd Warshall
4.3.1 Iterasi Pertama
Tabel 4.1 Perhitungan Algoritma Floyd iterasi pertama Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 ∞ 8 6.6 ∞ ∞ ∞ ∞ 12.1 ∞
PB ∞ 0 7.1 9.1 ∞ ∞ ∞ ∞ ∞ ∞ ∞
MP ∞ ∞ 0 2 ∞ 2.2 ∞ ∞ ∞ ∞ ∞
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ ∞ 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 ∞ 0 2.1 2.3 ∞ ∞ 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.1 adalah tahapan pertama dalam menghitung algoritma Floyd Warshall. Pada iterasi ini berupa perpindahan dari graph menjadi tabel matriks.
(48)
4.3.2 Iterasi ke dua
Tabel 4.2 Perhitungan Algoritma Floyd Iterasi Ke Dua
Pada tabel 4.2 Pada iterasi ini Untuk setiap sel matrik w dicek apakah w[i, j]> w[i,k]+w[k,j].Jika ya, maka w [i, j] diganti w[i,k]+w[k,j]
4.3.3 Iterasi Ke Tiga
Tabel 4.3 Perhitungan Algoritma Floyd Iterasi Ke Tiga Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 ∞ ∞ ∞ ∞ 12.1 ∞
PB ∞ 0 7.1 9.1 ∞ ∞ ∞ ∞ ∞ ∞ ∞
MP ∞ ∞ 0 2 ∞ 2.2 ∞ ∞ ∞ ∞ ∞
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ ∞ 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 ∞ 0 2.1 2.3 ∞ ∞ 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Ke
Dari FP PB MP SUN HERME
S PALAD CP TP MM
AMPLA
S KNIA
FP 0 4.4 ∞ 8 6.6 ∞ ∞ ∞ ∞ 12.1 ∞
PB ∞ 0 7.1 9.1 ∞ ∞ ∞ ∞ ∞ ∞ ∞
MP ∞ ∞ 0 2 ∞ 2.2 ∞ ∞ ∞ ∞ ∞
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ ∞ 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 ∞ 0 2.1 2.3 ∞ ∞ 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
(49)
35
Pada tabel 4.3Iterasi ke tiga dilakukan dengan cara yang sama seperti iterasi ke dua hanya saja perantaranya adalah titik PB.
Pada titik [FP,MP]= ∞
[FP,MP] > [FP,PB]+ [PB,MP]
4.4+7.1= 11.5 maka nilai [FP,MP] akan diganti dengan nilai 11.5
Pada titik [FP,SUN]=8
[FP,SUN] > [FP,PB]+[PB,SUN]
4.4+9.1 = 13.5 maka nilai [FP,SUN] tidak diganti dikarenakan hasil penjumlahan dari [FP,PB]+[PB,SUN] lebih besar dari jarak sebenarnya.
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara PB
4.3.4 Iterasi ke Empat
Tabel 4.4 Perhitungan Algoritma Floyd Iterasi Ke Empat Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 ∞ ∞ ∞ 12.1 ∞
PB ∞ 0 7.1 9.1 ∞ 9.3 ∞ ∞ ∞ ∞ ∞
MP ∞ ∞ 0 2 ∞ 2.2 ∞ ∞ ∞ ∞ ∞
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ ∞ 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 ∞ 0 2.1 2.3 ∞ ∞ 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.4Iterasi ke empat dilakukan dengan cara yang sama seperti iterasi ke tiga hanya saja perantaranya adalah titik MP.
(50)
[FP,PALAD] > [FP,MP]+ [MP,PALAD]
11.5+2.2= 13.7 maka nilai [FP,PALAD] akan diganti
dengan nilai 13.7 karena nilai [FP, PALAD] 13.7 < ∞ Pada titik [PB,PALAD]= ∞
[PB,PALAD] > [PB,MP]+ [MP,PALAD]
7.1+2.2= 9.3 maka nilai [PB,PALAD] akan diganti dengan
nilai 13.7, karena nilai [PB,PALAD] 9.3 < ∞
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua nodememiliki jumlah node yang paling kecil dari titik perantara MP.
4.3.5 Iterasi ke Lima
Tabel 4.5 Perhitungan Algoritma Floyd Iterasi Lima
Pada tabel 4.5Iterasi ke lima dilakukan dengan cara yang sama seperti iterasi ke empat hanya saja perantaranya adalah titik SUN
Pada titik [FP, Hermes]= 6
[FP,Hermes > [FP,SUN]+ [SUN,Hermes] Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 ∞ ∞ ∞ 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 ∞ ∞ ∞ ∞ 36.6
MP ∞ ∞ 0 2 3.9 2.2 ∞ ∞ ∞ ∞ 29.5
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ ∞ 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 ∞ ∞ 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
(51)
37
8+1.9 = 9.9 maka nilai [FP,Hermes] tidak diganti
dikarenakan hasil penjumlahan dari
[FP,SUN]+[SUN,Hermes] lebih besar dari jarak sebelumnya.
Pada titik [PB,Hermes]= ∞
[PB,Hermes] > [PB,SUN]+ [SUN, Hermes]
9.1+ 1.9 = 11 maka nilai [PB,Hermes] akan diganti dengan
nilai 11, karena nilai [PB,Hermes] 11 < ∞
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara SUN.
4.3.6 Iterasi ke enam
Tabel 4.6 Perhitungan Algoritma Floyd Iterasi Ke Enam
Pada tabel 4.6Iterasi ke enam dilakukan dengan cara yang sama seperti iterasi ke lima hanya saja perantaranya adalah titik Hermes
Pada titik [FP, Amplas]=12.1
[FP, Amplas] > [FP,Hermes]+ [Hermes, Amplas] Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 ∞ ∞ ∞ 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 ∞ ∞ ∞ 19.6 36.6
MP ∞ ∞ 0 2 3.9 2.2 ∞ ∞ ∞ 12.5 29.5
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ 10.5 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 ∞ 11.5 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
(52)
6.6 + 8.6 = 15.2 maka nilai [FP,Amplas] tidak diganti dikarenakan hasil penjumlahan dari [FP,Hermes]+[Hermes, Amplas] lebih besar dari jarak sebelumnya.
Pada titik [PB,Amplas]= ∞
[PB,Amplas] > [PB,Hermes]+ [Hermes, Amplas]
11+ 8.6 = 19.6 maka nilai [PB,Amplas] akan diganti dengan nilai 19.6, karena nilai [PB,Amplas] 19.6 < ∞
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara Hermes.
4.3.7 Iterasi ke tujuh
Tabel 4.7 Perhitungan Algoritma Floyd Iterasi Ke Tujuh Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 15.8 16 ∞ 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 11.4 11.6 ∞ 19.6 35.9
MP ∞ ∞ 0 2 3.9 2.2 4.3 4.5 ∞ 12.5 28.8
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ 10.5 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 ∞ 11.5 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.7Iterasi ke tujuh dilakukan dengan cara yang sama seperti iterasi ke enam hanya saja perantaranya adalah titik Palad
Pada titik [FP, CP]= ∞
[FP,CP] > [FP,Palad]+ [Palad, CP]
13.7+ 2.1 = 15.8 maka nilai [FB,CP] akan diganti dengan nilai
15.8 , karena nilai [FB,CP] 15.8 < ∞
(53)
39
[FB, TP] > [FP,Palad]+ [Palad, TP]
13.7+ 2.3 = 16 maka nilai [FB,TP] akan diganti dengan nilai 16
, karena nilai [FB,TP] 16 < ∞
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara Palad
4.3.8 Iterasi ke delapan
Tabel 4.8 Perhitungan Algoritma Floyd Iterasi Ke Delapan Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 15.8 16 ∞ 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 11.4 11.6 ∞ 19.6 35.9
MP ∞ ∞ 0 2 3.9 2.2 4.3 4.5 ∞ 12.5 28.8
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ 10.5 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 ∞ 11.5 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 ∞ ∞ ∞
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.8Iterasi ke delapan dilakukan dengan cara yang sama seperti iterasi ke tujuh hanya saja perantaranya adalah titik CP
Pada titik [FP, TP]= 16
[FP,TP] > [FP,CP]+ [CP, TP]
15.8 + 1 = 16.8 maka nilai [FP,TP] tidak diganti dikarenakan hasil penjumlahan dari [FP,CP]+ [CP, TP] lebih besar dari jarak sebelumnya.
Pada titik [PB, TP]= 11.6
[PB, TP] > [PB,CP]+ [CP, TP]
11.6 + 1 = 12.1 maka nilai [PB,TP] tidak diganti dikarenakan hasil penjumlahan dari [PB,CP]+ [CP, TP]lebih besar dari jarak sebelumnya.
(54)
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara CP
4.3.9 Iterasi ke sembilan
Tabel 4.9 Perhitungan Algoritma Floyd Iterasi Ke Sembilan Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 15.8 16 16.15 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 11.4 11.6 11.75 19.6 35.9
MP ∞ ∞ 0 2 3.9 2.2 4.3 4.5 4.65 12.5 28.8
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ 10.5 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 2.45 11.5 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 1.15 ∞ 26.4
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.9Iterasi ke sembilan dilakukan dengan cara yang sama seperti iterasi ke delapan hanya saja perantaranya adalah titik TP
Pada titik [FP, MM]= ∞
[FP,MM] > [FP,TP]+ [TP, MM]
16 + 0.15 = 16.15 maka nilai [FB,MM] akan diganti dengan nilai 16.15, karena nilai [FB,MM] 16.15 < ∞
Pada titik [PB,MM]= ∞
[PB, MM] > [PB,TP]+ [TP, MM]
11.6 + 0.15 = 11.75maka nilai [PB, MM)] akan diganti dengan
nilai 11.75 , karena nilai [PB, MM] 11.75 < ∞
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara TP.
(55)
41
4.3.10 Iterasi ke sepuluh
Tabel 4.10 Perhitungan Algoritma Floyd Iterasi Ke Sepuluh Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 15.8 16 16.15 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 11.4 11.6 11.75 19.6 35.9
MP ∞ ∞ 0 2 3.9 2.2 4.3 4.5 4.65 12.5 28.8
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ 10.5 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 2.45 11.5 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 1.15 ∞ 26.4
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.10Iterasi ke Sepuluh dilakukan dengan cara yang sama seperti iterasi ke Sembilan hanya saja perantaranya adalah titik MM
Pada titik [FP, Amplas]= 12.1
[FP,Amplas] > [FP,MM]+ [MM,Amplas]
∞ + 16.15 = ∞ maka nilai [FP,Amplas] tidak diganti dikarenakan hasil penjumlahan dari [FP,MM]+ [MM,Amplas] lebih besar dari jarak sebelumnya.
Pada titik [PB, Amplas]= 19.6
[PB, Amplas] > [PB,MM]+ [MM, Amplas]
19.6 + ∞ = ∞ maka nilai [PB,Amplas] tidak diganti dikarenakan hasil penjumlahan dari [PB,MM]+ [MM, Amplas] lebih besar dari jarak sebelumnya.
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara MM
(56)
4.3.11 Iterasi ke sebelas
Tabel 4.11 Perhitungan Algoritma Floyd Iterasi Ke Sebelas Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 15.8 16 16.15 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 11.4 11.6 11.75 19.6 35.9
MP ∞ ∞ 0 2 3.9 2.2 4.3 4.5 4.65 12.5 28.8
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ 10.5 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 2.45 11.5 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 1.15 ∞ 26.4
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.11Iterasi ke Sebelas dilakukan dengan cara yang sama seperti iterasi ke Sepuluh hanya saja perantaranya adalah titik Amplas
Pada titik [FP, KNIA]= 35.5
[FP,KNIA] > [FP,Amplas]+ [Amplas,KNIA]
12.1 + 27.7 = 39.8 maka nilai [FP,KNIA] tidak diganti dikarenakan hasil penjumlahan dari [FP,Amplas]+ [Amplas,KNIA] lebih besar dari jarak sebelumnya.
Pada titik [PB,KNIA]= 35.9
[PB, KNIA] > [PB,Amplas]+ [Amplas, KNIA]
19.6 + 27.7 = 47.3 maka nilai [PB,KNIA] tidak diganti dikarenakan hasil penjumlahan dari [PB,Amplas]+ [Amplas, KNIA] lebih besar dari jarak sebelumnya.
Perhitungan dilakukan seteruskan dengan cara yang sama sampai semua node memiliki jumlah node yang paling kecil dari titik perantara Amplas
(57)
43
4.3.12 Iterasi Dua Belas
Tabel 4.12 Perhitungan Algoritma Floyd Iterasi Ke Dua belas Ke
Dari FP PB MP SUN HERMES PALAD CP TP MM AMPLAS KNIA
FP 0 4.4 11.5 8 6.6 13.7 15.8 16 16.15 12.1 35.5
PB ∞ 0 7.1 9.1 11 9.3 11.4 11.6 11.75 19.6 35.9
MP ∞ ∞ 0 2 3.9 2.2 4.3 4.5 4.65 12.5 28.8
SUN ∞ ∞ ∞ 0 1.9 ∞ ∞ ∞ ∞ 10.5 27.5
HERMES ∞ ∞ ∞ ∞ 0 ∞ ∞ ∞ ∞ 8.6 29.4
PALAD ∞ ∞ ∞ 1 2.9 0 2.1 2.3 2.45 11.5 26.6
CP ∞ ∞ ∞ ∞ ∞ ∞ 0 1 1.15 ∞ 26.4
TP ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 0.15 ∞ 25.4
MM ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ 25.4
AMPLAS ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 27.7
KNIA ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0
Pada tabel 4.12Iterasi ke Dua Belas dilakukan dengan cara yang sama seperti iterasi ke Sebelas hanya saja perantaranya adalah titik KNIA.
(58)
4.4Pengujian Sistem 4.4.1 Focal Point – KNIA
Gambar 4.6 Tampilan Rute Focal Point – KNIA
4.4.2 Pinang Baris – KNIA
(59)
45
4.4.3 Medan Plaza – KNIA
Gambar 4.8 Tampilan Rute Medan Plaza – KNIA
4.4.4 SUN Plaza – KNIA
(60)
4.4.5 Hermes Place Polonia – KNIA
Gambar 4.10 Tampilan Rute Hermes Polonia – KNIA
4.4.6 Amplas – KNIA
(61)
47
4.4.7 Paladium – KNIA
Gambar 4.12 Tampilan Rute Padalium – KNIA
4.4.8 Centre Point - KNIA
(62)
4.4.9 Thamrin Plaza – KNIA
Gambar 4.14 Tampilan Rute Thamrin Plaza – KNIA 4.4.10 Medan Mall – KNIA
(63)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil studi literatur, analisis perancangan, implementasi dan pengujian sistem ini, maka didapatkanlah kesimpulan seperti berikut ini :
1. Lintasan Terpendek yang didapat adalah lintasan antar vertex dan hasilnya digambarkan dalam bentuk garis lintasan yang berwarna biru yang menghubungkan antara vertex yang satu dengan yang lainnya.
2. Algoritma Floyd Warshall merupakan metode yang tepat untuk pencarian jalur terpendek pada aplikasi ini.
3. Algoritma Floyd Warshall mempunyai pemrograman dinamis, Prinsip yang dipegang oleh pemrograman dinamis adalah prinsip optimalitas, yaitu jika solusi total optimal, maka bagian solusi sampai suatu tahap (misalnya tahap ke-i) juga optimal.
4. Algoritma Floyd-Warshall membandingkan semua kemungkinan lintasan pada graf untuk setiap sisi dari semua simpul. Hal tersebut bisa terjadi karena adanya perkiraan pengambilan keputusan (pemilihan jalur terpendek) pada setiap tahap antara dua simpul, hingga perkiraan tersebut diketahui sebagai nilai optimal.
(64)
5.2Saran
Adapun saran yang diberikan penulis untuk pengembangan dan perbaikan pada sistem ini selanjutnya adalah sebagai berikut :
1. Untuk penelitian selanjutnya sebaiknya dapat menghitung ketepatan waktu untuk menuju KNIA.
2. Pada penelitian selanjutnya diharapkan dapat menemukan jalur terpendek melalui jalur mana saja yang lebih dekat dari si pengguna.
3. Pada penelitian selanjutnya diharapkan dapat menentukan titik awal akses menggunakan sistem Global Positioning System(GPS).
4. Pada penelitian yang lebih lanjut sebaiknya aplikasi ini dapat diterapkan berbasis android
(65)
DAFTAR PUSTAKA
[1] Adams, E. D. 2012. Rancang Bangun Aplikasi Web Pencarian Rute Terpendek Antar Gedung Di Kampus Menggunakan Algoritma Floyd Warshall. Journal Basic Science And Technology Universitas Brawijaya Malang. [2] Andriani, Anik. 2014 Rancangan Bangun Sistem Informasi Rute Wisata
Terpendek Berbasis Algoritma Floyd Warshall. Jakarta: Amik BSI Jakarta.
[3] Baras, J., & Theodorakopoulos, G. 2010. Path Problems in Network.Morgan & Claypool Publishers.
[4] Cormen, Thomas H 2003. Intrudoction To Algorithms Edition. The MIT Press.Cambridge London.
[5] Handaka, M.S. (2010). Perbandingan Algoritma Dijkstra (Greedy), Bellman-Ford(BFS-DFS), dan Floyd-Warshall (Dynamic Programming) dalam Pengaplikasian LintasanTerpendek pada Link-State Routing Protocol. Bandung: ITB
[6] Kurniadi, I,.2011. Logika Dan Algoritma Dasar Menggunakan C ++. Jakarta: Mitra Wacana Media.
[7] Kusrini.2007.Konsep dan Aplikasi Sistem Pendukung Keputusan. Andi: Yogyakarta.
[8] Purwananto, Yudhi; Purwitasari, Diana; Wibowo, Agung., 2005, “Implementasi dan Analisis Algoritma Pencarian Rute Terpendek di Kota Surabaya”, JurnalPenelitian dan Pengembangan Telekomunikasi, No. 2, Vol.10, Desember 2005.
[9] Purwanto, E. B., 2008, “Perancangan Dan Analisis Algoritma”, Edisi 1, Graha Ilmu, Yogyakarta.
[10] Rosen, K. H. 2011. Discrete Mathematics and Its Applications, Seventh Edition. United Stated: Mc Graw Hill
(66)
[11] Siang,Jungjenk. 2009. Matematika Diskrit Dan Aplikasinya Pada Ilmu Komputer. Yogykarta: Andi Offset.
[12] Sitanggang, Sondang. 2011. Perbandingan Algoritma Dijkstra dan Floyd-Warshall Dalam Mencari Rute Terpendek Jaringan Jalan.Skripsi: Universitas Sumatera Utara.
[13] Suarga., 2012. Algoitma Dan Pemrograman.Yogyakarta Penerbit Andi.
[14] Whiten, L.J., Bentley L.D. & Ditman K.C. 2004. Metode Desain dan Analisis Sistem, Yogyakarta: Andi.
(67)
LISTING PROGRAM
1. Index.php<?
include "config.php"; $jalurterpendek = ""; $njalurterpendek = 500000; $iterasi=0;
$fullpath = ""; $cawal="";
function get_client_ip() { $ipaddress = '';
if($_SERVER['REMOTE_ADDR'])
$ipaddress = $_SERVER['REMOTE_ADDR']; else
$ipaddress = 'UNKNOWN'; return $ipaddress; } function arah($zx,$zy,$alokasi,$nilai) { global $jalurterpendek; global $njalurterpendek; global $iterasi; global $fullpath; $spasi=0; if(empty($alokasi)){$alokasi=$zx;} $spasi++;
$queryzx="select * from tbljarak where awal ='$zx' and jarak>0"; $query=mysql_query($queryzx);
while ($data = mysql_fetch_array($query)) { $pecah=explode("|",$data['arah']); if($pecah[0]==$zx){ $anak=$pecah[1]; }else{ $anak=$pecah[0]; }
(68)
$ubahcariulangan=str_replace($anak,"xxxx",$alokasi); if($ubahcaritujuan!=$alokasi){
/*tidak sama //tidak dapet dapet 1*/ }
elseif($ubahcariulangan!=$alokasi){ /* Tidak pernah diulangin*/ }
else{
/* tidak memenuhi dan berulang terus */ $nilaix=$nilai+$data['jarak']; //echo $data['jarak']."|"; $alokasix=$alokasi."|".$anak; arah($anak,$zy,$alokasix,$nilaix); $ubahcaritujuanx=str_replace($zy,"xxxx",$alokasix); if($ubahcaritujuanx!=$alokasix){
/*tidak sama //tidak dapet dapet 1*/ if ($nilaix<$njalurterpendek){
$jalurterpendek = $alokasix; $njalurterpendek = $nilaix; }
//echo "</br>(".$alokasix.") --->".$nilaix."Km</br>"; } } //echo $ubahcaritujuan."|".$ubahcariulangan."|".$alokasi; //echo $spasi; } }?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>
<title>PENCARIAN JALUR TERPENDEK</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="" content="" />
<link href="css/style.css" rel="stylesheet" type="text/css" /> <link href="css/layout.css" rel="stylesheet" type="text/css" /> <!--[if lt IE 7]>
<link href="style_ie.css" rel="stylesheet" type="text/css" /> <![endif]-->
(69)
55
</style>
<script type="text/javascript" src="scripts/jquery-1.6.1.min.js"></script> <script type="text/javascript" src="scripts/jquery.nivo.slider.js"></script> <script type="text/javascript" src="scripts/topmenu.js"></script>
<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript" src="scripts/util.js"></script> <script>
var directionsDisplay;
var directionsService = new google.maps.DirectionsService(); var map;
function initialize() {
var myLatlng = new google.maps.LatLng(3.595444, 98.769372); var myOptions = {
zoom: 11,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP }
var map = new google.maps.Map(document.getElementById("map"), myOptions); downloadUrl("phpsqlajax_genxml.php", function(data) {
var infowindow = new google.maps.InfoWindow();
var markers = data.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) {
var latlng = new
google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
var marker = new google.maps.Marker({position: latlng, map: map});
google.maps.event.addListener(marker, 'click', (function(marker, i) { return function() {
infowindow.setContent(markers[i].getAttribute("ket")); infowindow.open(map, marker); } })(marker, i)); } }); }
(70)
var directionsDisplay;
var directionsService = new google.maps.DirectionsService(); var map;
directionsDisplay = new google.maps.DirectionsRenderer(); var cp = new google.maps.LatLng(3.591780, 98.680325); var mapOptions = {
zoom: 11, center: cp }
map = new google.maps.Map(document.getElementById('map'), mapOptions); directionsDisplay.setMap(map);
var pathkoordinat = document.getElementById('koordinat').textContent; var pecah = pathkoordinat.split("|");
var start = pecah[0]; //PB
var end = pecah[pecah.length-1]; // KNIA var waypts = [];
//var checkboxArray = document.getElementById('waypoints'); for (var i = 1; i < pecah.length-1; i++) {
waypts.push({location:pecah[i],stopover:true}); }
var request = { origin: start, destination: end, waypoints: waypts, optimizeWaypoints: true, travelMode: google.maps.TravelMode.DRIVING };
directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response); }
}); }
//google.maps.event.addDomListener(window, 'load', initialize); </script>
</head>
<body id="page1" onload="" onunload="GUnload()"> <a name="top"></a>
(71)
57
<? include "header.php" ?>
<!-- content -->
<div id="bg-content"> <div id="content">
<div class="colom-welcome"> <h3>
<p>PENCARIAN RUTE TERPENDEK MENGGUNKAN ALGORITMA FLOYD WARSHALL </h4> </p> <p><?php include"time.php"; ?></p>
<div id="map" style="width: 500px; height:300px"></div> <?php
if (isset($_POST['awal'])) { $ip = get_client_ip();
$updatepe = mysql_query("insert into tbljlhpengguna set waktu=now(),ip='$ip'"); $awal=$_POST['awal']; global $cawal; $cawal=$_POST['awal']; $tujuan=$_POST['tujuan']; if(empty($awal)){$awal=0;} if(empty($tujuan)){$tujuan=0;} arah($awal,$tujuan,"",0); $fullpath=""; $koorjalur=""; $pecah=explode("|",$jalurterpendek); $jlh = count($pecah);
$hps = mysql_query("delete from tblmap"); for ($i = 0; $i < $jlh; $i++) {
// echo "kode: $pecah[$i] <br>";
$query="select ket,koor1,koor2 from tblnode where kdnode='$pecah[$i]'"; $q=mysql_query($query);
(72)
while ($data = mysql_fetch_array($q)){ if ($i==0){ $fullpath=$fullpath.$data['ket']; $koorjalur=$koorjalur.$data['koor1'].",".$data['koor2']; }else{ $fullpath=$fullpath."|".$data['ket']; $koorjalur=$koorjalur."|".$data['koor1'].",".$data['koor2']; } } if ($i<($jlh-1)){
$aw = $pecah[$i]; $ak = $pecah[$i+1];
$inputmap = mysql_query("insert into tblmap set awal='$aw',akhir='$ak'");
} }
echo "<h4></br>HASIL : ";
if ($njalurterpendek == 500000){$njalurterpendek=0;} echo "( ".$fullpath." ) --->".$njalurterpendek."Km</br>"; echo "<label id='koordinat'>".$koorjalur."</label></h4>"; } ?> <div></div> <p></p> <br /> </br> </div>
<div class="colom-product" style="margin-top:100px;"> <?php
if (isset($_POST['awal'])){}else{ $ip = get_client_ip();
$updatepe = mysql_query("insert into tbljlhpengunjung set waktu=now(),ip='$ip'");}
$query = mysql_query("select count(*) as jlh from tbljlhpengunjung");
while($lihat=mysql_fetch_array($query)){
(73)
59
}
$query = mysql_query("select count(*) as jlh from tbljlhpengguna");
while($lihat=mysql_fetch_array($query)){
echo "<h4>Jumlah Pengguna : ".$lihat['jlh']."</h4>";
} ?>
<form method="POST" action="#" > <table cellpadding="10px">
<tr><td><select name="awal">
<option value=""> -Pilih Daerah Asal- </option> <?php $query=mysql_query("select * from tblnode");
while($lihat=mysql_fetch_array($query)){
//echo "<script type='text/javascript'>alert('".$cawal."'); if ($lihat['kdnode']==$cawal){
echo "<OPTION selected='selected' VALUE='".$lihat['kdnode']."'>".$lihat['ket']."</OPTION>"; }else{ echo "<OPTION VALUE='".$lihat['kdnode']."'>".$lihat['ket']."</OPTION>"; } } ?> </select></td> </tr>
<tr bgcolor="#33FF99"><td>Daerah Tujuan (KNIA) <input type="hidden" name="tujuan" value="T011"></td></tr>
<tr><td><input type="submit" value="RUTE" ></td></tr> </table>
</form>
</div>
<? if (isset($_POST['awal'])) {echo '<script type="text/javascript"> calcRoute();</script>';
}else{echo '<script type="text/javascript"> initialize();</script>';}?> <p></p>
</body> </html>
(1)
<? include "header.php" ?>
<!-- content -->
<div id="bg-content"> <div id="content">
<div class="colom-welcome"> <h3>
<p>PENCARIAN RUTE TERPENDEK MENGGUNKAN ALGORITMA FLOYD WARSHALL
</h4> </p> <p><?php
include"time.php"; ?></p>
<div id="map" style="width: 500px; height:300px"></div> <?php
if (isset($_POST['awal'])) { $ip = get_client_ip();
$updatepe = mysql_query("insert into tbljlhpengguna set waktu=now(),ip='$ip'");
$awal=$_POST['awal']; global $cawal;
$cawal=$_POST['awal']; $tujuan=$_POST['tujuan']; if(empty($awal)){$awal=0;} if(empty($tujuan)){$tujuan=0;} arah($awal,$tujuan,"",0); $fullpath="";
$koorjalur="";
$pecah=explode("|",$jalurterpendek); $jlh = count($pecah);
$hps = mysql_query("delete from tblmap"); for ($i = 0; $i < $jlh; $i++) {
// echo "kode: $pecah[$i] <br>";
$query="select ket,koor1,koor2 from tblnode where kdnode='$pecah[$i]'"; $q=mysql_query($query);
(2)
while ($data = mysql_fetch_array($q)){ if ($i==0){
$fullpath=$fullpath.$data['ket'];
$koorjalur=$koorjalur.$data['koor1'].",".$data['koor2']; }else{
$fullpath=$fullpath."|".$data['ket'];
$koorjalur=$koorjalur."|".$data['koor1'].",".$data['koor2']; }
}
if ($i<($jlh-1)){
$aw = $pecah[$i]; $ak = $pecah[$i+1];
$inputmap = mysql_query("insert into tblmap set awal='$aw',akhir='$ak'");
} }
echo "<h4></br>HASIL : ";
if ($njalurterpendek == 500000){$njalurterpendek=0;} echo "( ".$fullpath." ) --->".$njalurterpendek."Km</br>"; echo "<label id='koordinat'>".$koorjalur."</label></h4>"; }
?>
<div></div> <p></p> <br /> </br>
</div>
<div class="colom-product" style="margin-top:100px;"> <?php
if (isset($_POST['awal'])){}else{ $ip = get_client_ip();
$updatepe = mysql_query("insert into tbljlhpengunjung set waktu=now(),ip='$ip'");}
$query = mysql_query("select count(*) as jlh from tbljlhpengunjung");
while($lihat=mysql_fetch_array($query)){
(3)
}
$query = mysql_query("select count(*) as jlh from tbljlhpengguna");
while($lihat=mysql_fetch_array($query)){
echo "<h4>Jumlah Pengguna : ".$lihat['jlh']."</h4>";
} ?>
<form method="POST" action="#" > <table cellpadding="10px">
<tr><td><select name="awal">
<option value=""> -Pilih Daerah Asal- </option> <?php $query=mysql_query("select * from tblnode");
while($lihat=mysql_fetch_array($query)){
//echo "<script type='text/javascript'>alert('".$cawal."'); if ($lihat['kdnode']==$cawal){
echo "<OPTION selected='selected' VALUE='".$lihat['kdnode']."'>".$lihat['ket']."</OPTION>";
}else{
echo "<OPTION
VALUE='".$lihat['kdnode']."'>".$lihat['ket']."</OPTION>"; }
} ?>
</select></td> </tr>
<tr bgcolor="#33FF99"><td>Daerah Tujuan (KNIA) <input type="hidden" name="tujuan" value="T011"></td></tr>
<tr><td><input type="submit" value="RUTE" ></td></tr> </table>
</form>
</div>
<? if (isset($_POST['awal'])) {echo '<script type="text/javascript"> calcRoute();</script>';
}else{echo '<script type="text/javascript"> initialize();</script>';}?> <p></p>
</body> </html>
(4)
1. Config.php <?php
//mysql_connect("localhost","root",""); //sesuaikan username dan password nya sesuai dengan host teman-teman
//mysql_select_db("db_floyd"); //sesuai dengan nama database yang kita buat dan yg akan kita gunakan
$koneksi=@mysql_connect("localhost","root","") or die ("Koneksi Gagal : ".mysql_error()); $db=@mysql_select_db("db_floyd") or die
("Database tidak ditemukan karena : ".mysql_error()); ?>
2. Time.php <body>
<strong><font color="#000000" size="3"> <?php
//time.php
//menampilkan tanggal sekarang $data=time();
$sekarang=date("d M Y",$data); echo" $sekarang<br>"
?>
</font></strong><font color="#FFFFFF" size="3"></font> </body>
</html>
3. Header.php
<div id="background" ><div id="top-header">
<div id="bg-header" style="background-image: url(images/header-world-map.jpg)"><div id="header" align="center"><div class="digitcal"></div> </div></div>
(5)
<div id="nav-menu"> <div id="nav"> <ul id="navigation">
<li style="border-left:1px solid rgba(0,0,0,0.2);"><a href="index.php"
style="padding: 2px 20px" ><img height="30px" src='images/home.png' alt='home' style=" padding-bottom:0; margin:0"/></a></li>
<li><a href="index.php">K N I A</a></li> <li><a href="floyd/index.php">FLOYD</a></li> <li><a href="login.php">DATA LOKASI</a></li> </ul>
</div> </div> </div>
<!-- end of button -->
4. Login.php <html> <head>
<title>PENCARIAN JALUR TERPENDEK</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="" content="" />
<link href="css/style.css" rel="stylesheet" type="text/css" /> <link href="css/layout.css" rel="stylesheet" type="text/css" /> <?php
include 'config.php'; // hubungkan file php dengan file configurasi ke database ?>
</head> <body>
<a name="top"></a> <? include "header.php" ?> <!-- content -->
<div id="bg-content"> <div id="content">
<h3>Admin Kelola Data</h3> <p><?php
include"time.php"; ?></p>
(6)
<tr>
<th colspan="2" scope="row"><div id="left"> <div class="post"></div>
<div class="post"> <div align="left">
<form id="form1" method="post" action="data%20lokasi/lihatnode.php"> <table width="400" align="center" cellpadding="5">
<tr>
<td colspan="4"> </td> </tr>
<tr>
<td width="10" rowspan="2"><img src="images/login-welcome.gif" width="56" height="49" /></td>
<td width="78"><b>User</td> <td width="6"><b>:</b></td>
<td width="144"><input type="text" name="user" maxlength="40" /> </td>
</tr> <tr>
<td><b>Password</b></td> <td><strong>:</strong></td>
<td><input type="password" name="password" maxlength="40" /> </td>
</tr> <tr>
<td colspan="4"> </td> </tr>
<tr>
<td colspan="3"> </td>
<td><input name="submit" type="submit" value="Login" /> <input name="reset" type="reset" value="Hapus" />
</td> </tr> </table>
<p> </p> </form>
</div> </div> </body> </html>