BAB IV ANALISIS PEMILIHAN ALGORITMA LINTASAN TERPENDEK DAN PENYELESAIAN KASUS RUTE PENERBANGAN DOMESTIK

dokumen-dokumen yang mirip
Airline Shortest Path Software

BAB I PENDAHULUAN. Di tengah masyarakat dengan aktivitas yang tinggi, mobilitas menjadi hal yang penting.

STUDI DAN IMPLEMENTASI ALGORITMA DIJKSTRA, BELLMAN-FORD DAN FLOYD-WARSHALL DALAM MENANGANI MASALAH LINTASAN TERPENDEK DALAM GRAF

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Implementasi Graf dalam Penentuan Rute Terpendek pada Moving Object

PENENTUAN RUTE TERPENDEK PADA OPTIMALISASI JALUR PENDISTRIBUSIAN BARANG DI PT. X DENGAN MENERAPKAN ALGORITMA FLOYD-WARSHALL

Perbandingan Algoritma Dijkstra dan Algoritma Floyd-Warshall dalam Penentuan Lintasan Terpendek (Single Pair Shortest Path)

BAB 2 LANDASAN TEORI

BAB II STUDI LITERATUR

Aplikasi Graf pada Persoalan Lintasan Terpendek dengan Algoritma Dijkstra

BAB 2 LANDASAN TEORITIS

ALGORITMA DJIKSTRA, BELLMAN-FORD, DAN FLOYD-WARSHALL UNTUK MENCARI RUTE TERPENDEK DARI SUATU GRAF

Penentuan Jarak Terpendek dan Jarak Terpendek Alternatif Menggunakan Algoritma Dijkstra Serta Estimasi Waktu Tempuh

BAB II TINJAUAN PUSTAKA

Algoritma Greedy (lanjutan)

Penerapan Graf dalam Optimasi Jalur Penerbangan Komersial dengan Floyd-Warshall Algorithm

PENGGUNAAN ALGORITMA FLOYD WARSHALL DALAM MASALAH JALUR TERPENDEK PADA PENENTUAN TATA LETAK PARKIR

BAB 2 LANDASAN TEORI

BAB III METODOLOGI PENELITIAN

Pencarian Jalur Terpendek dengan Algoritma Dijkstra

ALGORITMA BELLMAN-FORD DALAM DISTANCE VECTOR ROUTING PROTOCOL

A. TUJUAN PEMBELAJARAN

BAB 2 LANDASAN TEORI

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

BAB II LANDASAN TEORI

Penerapan Teori Graf Pada Algoritma Routing

Elvira Firdausi Nuzula, Purwanto, dan Lucky Tri Oktoviana Universitas Negeri Malang

BAB II LANDASAN TEORI

Penerapan Algoritma A* dalam Penentuan Lintasan Terpendek

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

BAB I Pendahuluan 1.1. Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. dalam teori graf dikenal dengan masalah lintasan atau jalur terpendek (shortest

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

Algoritma Greedy (lanjutan)

BAB 2 LANDASAN TEORI

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

BAB 2 LANDASAN TEORI

PERBANDINGAN ALGORITMA DIJKSTRA DAN FLOYD-WARSHALL DALAM PEMILIHAN RUTE TERPENDEK JALAN

ALGORITMA ROUTING DI LINGKUNGAN JARINGAN GRID MENGGUNAKAN TEORI GRAF

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Design and Analysis Algorithm

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

I. PENDAHULUAN. Bellman-Ford, Dijkstra, Floyd-Warshall, link-state routing protocol.

ANALISIS ALGORITMA FLOYD UNTUK MENYELESAIKAN MASALAH PENCARIAN LINTASAN TERPENDEK PADA SETIAP PASANGAN SIMPUL

Algoritma Bellman-Ford dalam Distance Vector Routing Protocol

Aplikasi Teori Graf dalam Manajemen Sistem Basis Data Tersebar

Aplikasi Algoritma Greedy pada Optimasi Pelaksanaan Misi dalam Permainan Assassins Creed : Revelations

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Aplikasi Teori Graf dalam Pencarian Jalan Tol Paling Efisien

PERANCANGAN ARSITEKTUR PEMARALELAN UNTUK MENCARI SHORTEST PATH DENGAN ALGORITMA DIJKSTRA

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

GRAF. V3 e5. V = {v 1, v 2, v 3, v 4 } E = {e 1, e 2, e 3, e 4, e 5 } E = {(v 1,v 2 ), (v 1,v 2 ), (v 1,v 3 ), (v 2,v 3 ), (v 3,v 3 )}

PROGRAM DINAMIS UNTUK PENENTUAN LINTASAN TERPENDEK DENGAN PENDEKATAN ALGORITMA FLOYD-WARSHALL

PERBANDINGAN ALGORITMA DIJKSTRA DAN ALGORITMA BELLMAN-FORD PADA JARINGAN GRID

Penerapan Travelling Salesman Problem dalam Penentuan Rute Pesawat

BAB 2 LANDASAN TEORI. Algoritma adalah urutan atau deskripsi langkah-langkah untuk memecahkan suatu masalah.

STUDI DAN IMPLEMENTASI PERSOALAN LINTASAN TERPENDEK SUATU GRAF DENGAN ALGORITMA DIJKSTRA DAN ALGORITMA BELLMAN-FORD

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

Penerapan Algoritma A* (A Star) Sebagai Solusi Pencarian Rute Terpendek Pada Maze

UNIVERSITAS GUNADARMA

PERANGKAT LUNAK PERMAINAN SEEKING PATH DENGAN ALGORITMA ALL-PAIRS SHORTEST-PATH FLOYD WARSHALL

Rancang Bangun Aplikasi Web Pencarian Rute Terpendek Antar Gedung di Kampus Menggunakan Algoritma Floyd-warshall

Metode Path Finding pada Game 3D Menggunakan Algoritma A* dengan Navigation Mesh

IMPLEMENTASI ALGORITMA DIJKSTRA UNTUK MENENTUKAN JALUR TERPENDEK WILAYAH PISANGAN DAN KAMPUS NUSA MANDIRI TANGERANG

BAB 2 LANDASAN TEORI

Matematika dan Statistika

SISTEM PENUNJANG KEPUTUSAN PENCARIAN JARAK TERPENDEK MENUJU RUMAH SAKIT DAN PUSKESMAS DENGAN METODE DIJKSTRA

Penentuan Rute Terpendek Tempat Wisata di Kota Tasikmalaya Dengan Algoritma Floyd-warshall

PENGEMBANGAN SISTEM PENUNJUK RUTE ANGKUTAN KOTA(ANGKOT) DI KOTA MALANG BERBASIS GIS PADA PERANGKAT ANDROID MENGGUNAKAN METODE DIJKSTRA

Implementasi Algoritma Dijkstra pada Peta Spasial

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

1. Pendahuluan 1.1. Latar Belakang Menghubungkan beberapa kota besar mungkin akan dihubungkan secara langsung dengan jalan tol, namun pada umumnya, se

Aplikasi Shortest Path dengan Menggunakan Graf dalam Kehidupan Sehari-hari

BAB 2 LANDASAN TEORI

Studi Algoritma Optimasi dalam Graf Berbobot

BAB I PENDAHULUAN. yang juga diterapkan dalam beberapa kategori game seperti real time strategy

Algoritma Dijkstra dan Bellman-Ford dalam Pencarian Jalur Terpendek

Perbandingan Algoritma Dijkstra Dan Algoritma Ant Colony Dalam Penentuan Jalur Terpendek

BAB III METODOLOGI PENELITIAN

BAB 1 PENDAHULUAN. barang, jaringan jalan raya, atau dalam masalah komputasi yaitu jaringan penjadwalan.

Oleh : CAHYA GUNAWAN JURUSAN SISTEM INFORMASI FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA BANDUNG 2012

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA

Penggunaan Algoritma Dynamic Programming pada Aplikasi GPS Car Navigation System

Algoritma Greedy (Bagian 2) IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

ALGORITMA MENCARI LINTASAN TERPENDEK

BAB 2 LANDASAN TEORI

Kode MK/ Matematika Diskrit

Diktat Algoritma dan Struktur Data 2

BAB II LANDASAN TEORI

PENGEMBANGAN SHORTEST PATH ALGORITHM (SPA) DALAM RANGKA PENCARIAN LINTASAN TERPENDEK PADA GRAF BERSAMBUNG BERARAH BERUNTAI

Sirkuit Euler & Sirkuit Hamilton SISTEM INFORMASI UNIVERSITAS GUNADARMA 2012/2013

PERANCANGAN APLIKASI MENCARI JALAN TERPENDEK KOTA MEDAN MENGGUNAKAN ALGORITMA DJIKSTRA

1. PENDAHULUAN 1.1 Latar Belakang

Transkripsi:

BAB IV ANALISIS PEMILIHAN ALGORITMA LINTASAN TERPENDEK DAN PENYELESAIAN KASUS RUTE PENERBANGAN DOMESTIK 4.. Langkah Pemilihan dan Penerapan Algoritma Seiring dengan perkembangan teknologi yang makin pesat termasuk dalam aplikasi dari algoritma pencarian lintasan terpendek, maka sangat penting untuk memilih algoritma yang tepat agar diperoleh hasil yang optimal. Ada banyak pilihan algoritma untuk mencari lintasan terpendek diantaranya dengan algoritma Djikstra, Bellman-Ford, dan Floyd Warshal. Masing-masing memiliki keunggulan dan kelemahan tergantung dari persoalan yang dihadapi. Pengertian dasar dan prinsip kerja secara singkat telah dibahas pada bab sebelumnya, sehingga pada bab ini lebih melihat kepada aspek keunggulan yang mendukung dan kelemahan yang tidak sesuai dengan karakteristik penerbangan domestik dan desain aplikasi yang akan dibuat. Pada penelitian ini langkah yang dilakukan adalah memilih algoritma dan mengaplikasikan dengan sedikit penyesuaian terhadap kasus yang dihadapi dan tidak melakukan proses algorithm engineering dari awal berupa desain algoritma. Pada desain algoritma lebih mengarah kepada pembuatan konsep sedangkan pemilihan hanya menyeleksi algoritma yang telah ada. Meskipun tidak membuat, namun proses atau tahapan yang dikerjakan hampir sama dengan siklus algorithm engineering sebagaimana ditunjukkan gambar 4.. Algorithm Design Theoretical Analysis Algorithm Selection Algorithm Implemntation Experimental Analysis (a) (b) Gambar 4. (a) Diagram Algorithm Engineering Cycle (Sumber : C.Demetrescue,I.Finocchi, dan G.F.Itliano.Algorithm Engineering. The Algorithmic Colum,Buletin of the EACTS,page 6.00) (b) Tahap Peneitian pada Bab ini (dalam kotak merah)

Langkah awal membuat analisis teori mengenai keunggulan dan kelemahan algoritma yang dibandingkan. Setelah itu dipilih algoritma yang memiliki keunggulan sesuai dengan parameter yang telah ditetapkan. Algoritma yang terpilih inilah yang menjadi acuan dasar pembuatan aplikasi di tahap berikutnya. Disebut acuan karena penerapannya juga harus disesuaikan dengan kasus yang diselesaikan, sehingga masih ada kemungkinan untuk membuat sedikit modifikasi dan pengembangan lanjutan. 4.. Penentuan Parameter Perbandingan Pemilihan Algoritma Penentuan parameter disesuaikan dengan desain aplikasi yang akan dibuat yang mengacu pada tujuan penelitian dan rumusan masalah sebagaimana dijelaskan pada Bab I. Parameter tersebut adalah :. Spesifikasi Penyelesaian Masalah Kriteria spesifikasi penyelesaian menyangkut spesifikasi karakteristik graf yang dapat diselesaikan. Karakter tersebut antara lain : Weigth edge Node source Node destination. Jenis Masalah yang diselesaikan Kriteria ini menyangkut jenis masalah lintasan terpendek yang diselesakan yang merupakan pilihan dari masalah dibawah ini : Lintasan terpendek antara dua buah simpul tertentu (a pair shortest path). Lintasan terpendek antara semua pasangan simpul (all pairs shortest path). Lintasan terpendek dari simpul tertentu ke semua simpul yang lain (single- source shortest path). Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu (intermediate shortest path).. Kompleksitas Waktu Running Algoritma Salah satu aspek paling penting dalam algoritma adalah seberapa cepat ia bekerja (running time). Seringkali menjadi suatu yang sangat mudah untuk menggunakan algoritma dalam menyelesaikan suatu masalah, akan tetapi bila proses berkerja algorima berjalan terlalu lambat maka tidak ada bedanya dengan penyelesaian manual. Karena kecepatan yang tepat dari algoritma sangat bergantung pada dimana algoritma tersebut dijalankan, sebagaimana detil secara

tepat dari algoritma terhadap implementasinya, para ilmuwan komputer yang secara khusus meneliti masalah ini menyimpulkan bahwa besarnya running time relatif terhadap besar/banyaknya input. Sebagai contoh, bila input terdiri dari N buah integer, algoritma tersebut mungkin memiliki running time yang proporsional terhadap N, yang direpresentasikan dengan O(N ). Artinya bila kita mencoba menjalankan suatu program implementasi dari suatu algoritma dengan input sebesar N, maka akan membutuhkan waktu C*N detik, dimana C adalah konstanta yang tidak berubah relatif terhadap perubahan ukuran input. Bagaimanapun, waktu pelaksanaan dari banyak algoritma kompleks dapat berbeda-beda dalam kaitan dengan faktor selain dari ukuran dari masukan. Sebagai contoh, suatu algoritma penyortiran boleh jadi bekerja jauh lebih cepat ketika satu set diberi bilangan bulat yang telah disortir dibanding ketika diberi satuan bilangan bulat dalam suatu order;pesanan acak. Para pakar informatika memberi contoh hasil kompleksitas running time algoritma secara umum sebagai berikut (dengan asumsi N=00): O(Log(N)) O(N) O(N*Log(N)) O(N ) O(N 6 ) 0-7 detik 0-6 detik 0 - detik 0-4 detik menit O( N ) 0 4 tahun O(N!) 0 4 tahun Tabel 4.. Contoh running time algoritma tertentu dengan N=00 (Sumber : Ibackstrom. The Importance of Algorithms,topcoder.com.007) Namun untuk efektifitas dan kemudiahan penelitian running time yang akan dibandingkan adalah running time dari literatur yang telah banyak digunakan oleh para insinyur informatika. 4.. Pemilihan Algoritma Masalah Lintasan Terpendek Berdasarkan perbandingan langsung dari uraian teoritik tiga buah algoritma yang diusulkan dalam bab II (Studi Literatur) yaitu : a. Algoritma Djikstra 0

b. Algoritma Bellman-Ford c. Algoritma Floyd-Warshal Dan dengan menggunakan parameter pembanding di sub bab 4., maka dapat dibuat tabel perbandingan sebagai berikut : Kriteria Djikstra Bellman-Ford Floyd-Warshal Spesifikasi penyelesaian masalah Efektif untuk graf berbobot positif Untuk kasus graf Struktur dasar penyelesaian masalah mirip dengan Djikstra Dapat menghitung bobot positif/negatif namun tidak dapat dengan bobot tak- Hanya digunakan menghitung siklus negatif, Djikstra dapat untuk menyelesaikan negatif menghitung dengan kecepatan lebih baik dari Belman-Ford kasus graf berbobot negatif Untuk graf berbobot Menghitung bobot terkecil dari semua jalur yang Tidak dapat negatif running time menghubungkan menghitung graf yang lebih baik dari pasangan titik dan berbobot negatif Djikstra melakukannya Hasil perhitungan belum tentu optimal sekaligus untuk pasangan titik (bergantung pada kasus Menggunakan yang dihadapi) pemrograman dinamik Jenis masalah Single-source shortest path Single-source shortest path All-pairs shortest path yang diselesaikan Running Time O((V+E)logV) O(V.E) O(V ) Tabel 4.. Tabel Perbandingan antar Algoritma Berdasarkan tabel perbandingan tersebut dapat diambil kesimpulan bahwa :. Ketiganya dapat menyelesaikan menyelesaikan masalah lintasan terpendek, namun untuk kasus graf dengan bobot yang selalu positif algoritma djikstra lebih efektif dan lebih cepat, sedang algoritma Bellman-Ford dan Floyd-Warshal unggul di penyelesaian graf dengan bobot negatif.. Berdasarkan urutan waktu penyelesaian dengan memasukkan data sebarang pada rumus diatas diperoleh urutan algoritma dari yang tercepat adalah : O(V.E) < O((E+V)logV) < O(V ) = Bellman-Ford < Dijkstra < Floyd-Warshall

. Berdasarkan masalah yang dapat diselesaikan.: Algoritma Dijkstra untuk masalah Single-source Shortest Path, Algoritma Bellman- Ford untuk masalah Single-source Shortest Path, Algoritma Floyd-Warshall untuk masalah All-pairs Shortest Path Berdasarkan batasan masalah yang diberikan dan karakteristik jaringan penerbangan domestik di Indonesia didapatkan karakteristik graf yang akan diselesaikan adalah sebagai berikut : a) Mempunyai satu simpul pemasok/sumber dan satu simpul penampung/tujuan dengan rute perjalanan melalui beberapa simpul perantara b) Kapasitas busur disini yang diperhitungkan berupa waktu tempuh perjalanan (minimum total trip time) atau harga tiket penerbangan pada kelas termurah (minimum total trip cost). c) Harga kapasitas busur selalu positif. Maka algoritma yang masih memungkinkan adalah algoritma DJIKSTRA dan FLOYD WARSHAL. Sebenarnya jika melihat pada kriteria (a) maka yang paling cocok adalah algoritma Floyd Warshall, namun Djikstra juga bisa diterapkan untuk mencari pasangan simpul tertentu yang ditentukan. Tahap selanjutnya adalah memilih diantara dua algoritma tersebut berdasarkan kesesuaian dengan kasus yang dihadapi dan implementasinya. 4.4. Analisis Perbandingan Algoritma Penyelesaian Masalah Lintasan Terpendek pada Kasus Jaringan Penerbangan Domestik 4.4. Algoritma Djikstra Input algoritma ini adalah sebuah graf berarah dan berbobot, G dan sebuah source vertex s dalam G. V adalah himpunan semua simpul dalam graph G. Setiap sisi dari graph ini adalah pasangan vertices (u,v) yang melambangkan hubungan dari vertex u ke vertex v. Himpunan semua edge disebut E. Weights dari edges dihitung dengan fungsi w: E [0, ); jadi w(u,v) adalah jarak non-negatif dari vertex u ke vertex v. Cost dari sebuah edge dapat dianggap sebagai jarak antara dua vertex, yaitu jumlah jarak semua edge dalam path tersebut. Untuk sepasang vertex s dan t dalam V, algoritma ini menghitung jarak terpendek dari s ke t. 4.4.. Intuisi dasar dalam Algoritma Djikstra Pada Setiap langkah dalam algoritma :

Semua lintasan terpendek yang diketahui simpul-simpulnya masukkan dalam { S } Simpan dalam C[K], jarak dengan lintasan terpendek dalam node K (untuk semua lintasan yang melalui node dalam {S}) Tambahkan ke {S} node terdekat {S} selanjutnya Gambar 4. Perbarui jarak ke J setelah menambahkan node K Lintasan terpendek sebelumnya disiagakan dalam C[K] Cari kemungkinan lintasan lebih pendek dengan menghitung yang melalui node K Bandingkan besar C[J] dengan Gambar 4. C[K] + bobot (K,J) (Sumber : Emad Fauzi, Tseng Chau-Wen. Graphs & Graphs Algorithm. Departement of Computer Science, Maryland University,USA) 4.4.. Konsep Langkah Penyelesaian Djikstra Sebagai contoh kasus dimisalkan diketahui jaringan penerbangan antar kota yang disimbulkan dengan angka,,,4 dan seperti gambar berikut. Angka dalam lingkaran menunjukkan kota-kota sedangkan angka di tepi garis menunjukkan jarak yang dapat mewakili waktu tempuh yang diperlukan untuk penerbangan antara dua kota yang dihubungkan atau biaya perjalanan yang dibutuhkan. Kemudian akan kita cari lintasan terpendek yang menghubungkan kota ke kota. 0 4 Gambar 4.4 Contoh Jaringan Sederhana

Maka algoritma dasarnya adalah: { S } = Ø ; C[X] = 0 ; C[Y] = untuk semua node yang lain while ( bukan semua node dalam { S } ) find node K not in { S } dengan C[K] terkecil tambahkan K ke dalam { S } for tiap node M tidak dalam { S } yang berdekatan dengan K C[M] = min ( C[M], C[K] + cost of (K,M) ) Penghitungan untuk memperoleh hasil optimal ini menggunakan prinsip dasar strategi greedy. Penyelesaian langkah per langkah diilustrasikan dengan penjelasan berikut ini : Dimisalkan : {S} adalah himpunan simpul yang jarak terdekatnya telah diketahui C[K} adalah kapasitas busur yang menunjukkan waktu tempuh pada simpul tertentu dari simpul pemasok dimana harga C[K] = 0, menunjukkan simpul pemasok C[K] =, menunjukkan tidak ada busur yang terhubungkan secara langsung dari simpul tersebut ke simpul pemasok. Untuk menyelesaikan masalah tersebut dilakukan langkah-langkah sebagai berikut : 0 0 4 0 4 0 4 0 4 0 4 4 0 0 6 0 7 4 4 4 4

0 0 4 4 0 4 Gambar 4. Langkah penyelesaian algoritma Djikstra Langkah 0 - Tahap inisiasi { S } = Ø C[] = 0 C[] = C[] = C[4] = C[] = Gambar 4.6 Tahap Inisiasi Djikstra Langkah Memasukkan simpul K yang dipilih sebagai simpul sumber dan memasukkannya ke himpunan simpul yang di perhitungkan {S} { S } = C[] = 0 C[] = C[] = C[4] = C[] = 0 0 4 4 Gambar 4.7 Tahap identifikasi simpul sumberalgoritma Djikstra Langkah Memperbarui C[K] untuk semua simpul terdekat dari simpul yang tidak ada dalam {S} { S } =

C[] = 0 C[] = C[] = C[4] = C[] = 0 4 C[] = min (, 0 [] = min (, C[] + (+ ) = C[] = min (, C[] + (,) ) = min (, 0 + ) = Gambar 4. Langkah ke- Djikstra (Pencarian simpul terdekat) Langkah Memilih simpul K terpilih dengan jarak terdekat dari simpul dan ditambahkan ke {S} { S } =, C[] = 0 C[] = C[] = C[4] = C[] = C[] = 0 C[] = C[] = 6 0 Gambar 4. Langkah ke- Djikstra (Memilih simpul yang terdekat) 4 Langkah 4 - Memperbarui C[K] untuk semua simpul terdekat dari simpul yang tidak ada dalam {S} { S } =, 0 C[] = 0 C[] = 4 C[] = 6 C[4] = C[] = C[] = min (, C[] + (,) ) = min (, + ) = 6 C[4] = min (, C[] + (,4) ) = min (, + 0) = Gambar 4.0 Langkah ke-4 Djikstra (Memperbarui C[K] pada simpul terdekat dari simpul terpilih) Langkah Memilih simpul K terpilih dengan jarak C[K} terdekat dan ditambahkan ke {S} { S } =,, 0 4 6

C[4] = C[] = Gambar 4. - Langkah ke- Djikstra (Memilih simpul K terpilih yang terdekat) Langkah 6 - Memperbarui C[K] untuk semua simpul terdekat dari simpul yang tidak ada dalam {S} { S } =,, 0 C[] = 0 C[] = C[] = 6 C[4] = C[] = C[4] = min (, C[] + (,4) ) = min (, 6 + ) = Gambar 4. - Langkah ke-6 Djikstra Langkah 7 Memilih simpul K terpilih dengan jarak C[K} terdekat dan dimasukkan ke {S} { S } =,,, 4 C[] = 0 C[] = C[] = 6 C[4] = C[] = Gambar 4. - Langkah ke-7 Djikstra Langkah - Memperbarui C[K] untuk semua simpul terdekat dari simpul 4 yang tidak ada dalam {S} { S } =,,, 4 C[] = 0 C[] = C[] = 6 C[4] = C[] = min (, C[4] + (4,) ) = min (, + ) = C[] = Gambar 4.4 - Langkah ke- Djikstra Langkah Memilih simpul K terpilih dengan jarak C[K} terdekat dan dimasukkan ke {S} { S } =,,, 4, C[] = 0 C[] = C[] = 6 C[4] = 0 0 4 4 4 0 4 7

C[] = Gambar 4. - Langkah ke- Djikstra Langkah 0 Memastikan bahwa semua simpul dalam {S} telah di hitung { S } =,,, 4, C[] = 0 C[] = C[] = 6 C[4] = C[] = 0 Gambar 4.6 - Langkah ke-0 Djikstra Proses diulang hingga semua simpul masuk ke dalam {S}. 4 Jadi dari perhitungan tersebut diperoleh bahwa jalur terdekat yang ditempuh untuk menuju simpul dari simpul adalah lintasan ---4- dengan total jarak = Sejauh ini untuk kasus percobaan lintasan terpendek jaringan penerbangan antar kota secara sederhana, algoritma Dijkstra dapat berhasil menyelesaikan pencarian lintasan terpendek dengan baik. 4.4.. Studi Implementasi Algoritma Djikstra Pada pengujian implementasi algoritma Djikstra ini agar lebih mudah diambilkan dari penggalan graf yang terdapat dalam peta daftar kota tujuan Garuda Indonesia dan Citylink yang terdapat pada Gambar. dengan komponen kapasitas busur berupa data dummy untuk mempermudah pengamatan dan perhitungan. PNK. BPN BTH 4 CKG SUB DPS JOG 6

PNK. BPN BTH 4 CKG SUB DPS JOG 6 Gambar 4.7 Contoh implementasi algoritma Djikstra dari kasus subpart gambar. Dengan data graf sebagaimana gambar diatas apabila dicari rute perjalanan terpendek antara kota Batam ke kota Denpasar dengan menggunakan algoritma Djikstra maka dihasilkan rute BTH CKG SUB DPS dengan total jarak lintasan (ditunjukkan dengan garis busur berwarna merah). Garis graf diatas busur dengan garis putus-putus menunjukkan hasil pencarian path dari source ke setiap vertex dalam graf melalui mekanisme single source shortest path. 4.4. Algoritma Floyd-Warshal 4.4.. Intuisi Dasar Algoritma Floyd-Warshall Memperluas daya jangkau algoritma Berdasarkan pada aliran pencarian ulang yang serupa : - Dimisalkan D k [i,j] menandai besarnya jarak pada lintasan terpendek dari i ke j yang mana simpul antaranya adalah suatu subset {,,...,k}. - Kemudian, D k [i,j] = min ( D k- [i,j], D k- [i,k] + D k- [k,j] ) Floyd-Warshall All-Pairs shortest paths Menghitung D k dari D k- : Untuk setiap pasangan simpul ( i,j ) di dalam D k-, maka diset bahwa nilai D k [i,j] merupakan harga yang paling minimum dari pilihan berikut ini : o D k- [ i,j ] ( alur paling pendek sebelumnya) o D k- [i,k]+ D k- [k,j] ( alur paling pendek baru yang mungkin yang mana melalui simpul k)

Gunakan hanya simpul-simpul nomor,...,k i j Gunakan hanya simpul-simpul dengan nomor,...,k- k Gunakan hanya simpul-simpul dengan nomor,...,k- Gambar 4. Intuisi dasar Floyd-Warshall Algoritma All-Pairs shortest paths Floyd-Warshall merupakan cara penyelesaian menggunakan pemrograman dinamik sehingga penyelesaian diharapkan bisa lebih optimal karena tidak seperti Algoritma Djikstra bekerja secara serial, Floydwarshall secara paralel mencari lintasan terdekat dari setiap pasangan vertek/simpul dalam graf dengan mencari lintasan alternatif yang melalui simpul antara...k dalam graf. Cara ini akan menghasilkan solusi optimal pada setiap subpath/localgraf yang dilalui untuk menghasilkan solusi total yang optimal juga. Algorithm AllPair(G) {assumes vertices,,n} for all vertex pairs (i,j) if i = j D0[i,i] 0 else if (i,j) is an edge in G D0[i,j] weight of edge (i,j) else D0[i,j] + for k to n do for i to n do for j to n do Dk[i,j] min{dk-[i,j], Dk-[i,k]+Dk-[k,j]} return Dn 40

4.4.. Langkah Penyelesaian dan Implementasi Algoritma Floyd-Warshall Untuk lebih mempersingkat pembahasan studi implementasi dilakukan langsung pada contoh kasus sebagaimana pada subbab 4.4... Langkah 0. Inisiasi graf dalam satu set siklus dengan pokok graf berupa lintasan dari simpul sumber menuju simpul penampung(tujuan) yang melalui jumlah simpul antara terbanyak. Bentuk graf pada Gambar 4.7 bisa juga digambarkan sebagai graf sebagai berikut : BTH 4 CKG JOG SUB DPS 6 BPN Gambar 4. Graf untuk implementasilangkah inisiasi Floyd-Warshall Dari ilustrasi gambar dapat kita ketahui bahwa untuk mendapatkan lintasan terpendek dari Batam (BTH) ke Denpasar (DPS) ada EMPAT pasangan simpul (pairs of vertex) yang menjadi subpath yang mempunyai pilihan lintasan lebih dari satu lintasan. Setiap subpath diatas harus kita cari lintasan terpendek nya untuk menghasilkan lintasan terpendek secara total dari BTH ke DPS. Keempat pasangan simpul tersebut adalah :. JOG DPS ( min : JOG - DPS ; JOG SUB DPS ). CKG SUB (min ; CKG JOG SUB ; CKG BPN SUB ; CKG SUB). CKG DPS [min : CKG DPS ; (min: JOG DPS)] 4. BTH SUB [min : BTH SUB ; (min: CKG SUB )] Langkah. Mencari lintasan terpendek pada subpath untuk mengeliminasi subgraf yang tidak terpendek sehingga hanya tertinggal subgraf yang memiliki kemungkinan mempunyai lintasan terpendek. 4

Pada lintasan JOG DPS ( min : JOG - DPS ; JOG SUB DPS ) diperoleh lintasan terpendek yaitu JOG SUB DPS, sehingga subgraf JOG DPS dapat kita eliminasi dari graf utama. 6 BTH 4 CKG JOG SUB DPS BPN Gambar 4.0 Eliminasi tahap Langkah. Eliminasi pada subpath ke- Pada tahap ini kita mencari nilai (min ; CKG JOG SUB ; CKG BPN SUB) sebagai sebagian solusi lintasan terpendek pada subpath CKG SUB. Dan kita mendapatkan CKG JOG SUB sebagai yang terpendek sehingga subpath CKG BPN SUB kita eliminasi. 6 BTH 4 CKG JOG SUB DPS Gambar 4. Eliminasi tahap ke- Langkah. Eliminasi subpath ke- Masih sama dengan tahap sebelumnya untuk subpath CKG SUB dengan membandingkan lintasan terpendek pada eliminasi sebelumnya dengan lintasan CKG SUB yang ditempuh langsung tanpa melalui simpul perantara. 4

6 BTH 4 CKG SUB DPS Gambar 4. Eliminasi tahap ke- Langkah 4. Eliminasi subpath ke-4 Masih sama dengan tahap sebelumnya untuk subpath BTH SUB dengan membandingkan lintasan terpendek lintasan C yang ditempuh langsung tanpa melalui simpul perantara dengan lintasan BTH CKG - SUB. Dan yang lebih pendek adalah lintasan BTH CKG SUB, sehingga graf lintasan BTH SUB kita hapus ari graf utama. 6 BTH 4 CKG SUB DPS Gambar 4. Eliminasi tahap ke-4 Langkah. Eliminasi subpath ke- Seperti pada gambar Gambar 4. subpath yang masih perlu kita cari lintasan terpendeknya adalah pasangan simpul CKG DPS. Dari hasil perhitungan penerbangan dari Jakarta (CKG) menuju Denpasar (DPS) yang menggunakan simpul perantara di Surabaya(SUB) lebih pendek daripada penerbangan langsung pada rute tersebut. Jadi subpath/subpgraf CKG DPS kita hapus dari graf utama. Karena sudah tidak ada lagi pasangan simpul yang terpilih lintasan terpendeknya maka graf tersebut menunjukkan lintasan dengan jarak total dari Batam(BTH) ke Denpasar(DPS) yang terpendek. 4 BTH CKG SUB DPS Gambar 4.4 Solusi final pencarian rute terdekat dari BTH DPS 4

Berdasarkan hasil penerapan Algoritma Floyd-Warshall diatas, hasil final lintasan terpendek yang diperoleh adalah sebesar. Nilai ini bila dikaitkan dengan pembahasan solusi optimal total pada Subbab 4.4.. merupakan hasil yang paling optimal karena tidak ada lagi pilihan lintasan untuk pasangan simpul asal tujuan (BTH DPS) yang lebih pendek dari. Jadi penerapan algoritma Floyd-Warshall bila dibandingkan dengan algoritma Djikstra, solusi lokal pada setiap subpat/subgraf (pasangan semua simpul dalam graf ) menghasilkan nilai yang selalu optimal dan hasil finalnya juga akan selalu yang paling optimal (terpendek). 4.. Hasil Akhir Pemilihan Algoritma Lintasan Terpendek DJIKSTRA FLOYD-WARSHALL Spesialis single source shortest path dan Spesifik untuk kasus all-pairs shortest path ( bisa juga untuk single source-single semua lintasan terpendek masing-masing destination shortest path dengan antara tiap kemungkinan pasang kota yang penambahan parameter destination node berbeda ) Intuisi pencarian dari vertex/simpul Intuisi pencarian dengan mencari dan tetangga terdekat dengan himpunan bagian membandingkan path alternatif yang vertex S melalui simpul antara (,..., k ) Pada satu kali running program bisa mengetahui lintasan terpendek dari satu kota ke kota lainnya di dalam graf Pada satu proses pencarian bisa langsung diketahui lintasan terpendek setiap pasangan vertex di dalam graf Dari hasil analisis perbandingan diatas dapat diambil kesimpulan bahwa Algoritma Floyd- Warshall lebih cocok dipakai untuk penyelesaan masalah lintasan terpendek pada kasus penerbangan domestik. 44

Algoritma yang diusulkan :. Djikstra. Bellman-Ford. Floyd-Warshall Analisis Teori Algoritma tersaring : Djikstra Floyd-Warshall Analisis Implementasi Algoritma terpilih : Floyd-Warshall Gambar 4. Rangkuman Seleksi Algoritma Shortest Path 4