Aplikasi Pencarian Taksi Terdekat Menggunakan Algoritma Floydwarshall

BAB 2
LANDASAN TEORI

2.1 Lintasan Terpendek
Lintasan terpendek merupakan lintasan minumum yang diperlukan untuk mencapai
suatu titik dari titik tertentu (Pawitri, 2007) disebutkan bahwa. Dalam permasalahan
pencarian lintasan terpendek, seorang pengarah jalan ingin menentukan lintasan
terpendek antara dua tempat berdasarkan rute alternatif yang tersedia, dimana tempat
tujuan hanya satu (Purba, 2011). Pencarian lintasan terpendek ini sendiri diperlukan
untuk mengurangi waktu dan biaya (cost) yang dikeluarkan untuk menempuh jarak
menuju suatu tempat.
Lintasan ini merupakan bagian dari graf. Pencarian lintasan terpendek termasuk
dalam salah satu persoalan dalam teori graf yang berarti meminimalisasi bobot suatu
lintasan dalam graf. Permasalahannya adalah bagaimana cara mengunjungi satu
verteks pada graf dari verteks awal hingga verteks akhir dengan bobot minimum.
Ada beberapa macam persoalan lintasan terpendek, antara lain:
1. Lintasan terpendek antara dua buah simpul tertentu (a pair shortets path)
2. Lintasan terpendek antara semua pasangan simpul (all pairs shortest path)
3. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain (singlesource shortest path)
4. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul
tertentu (intermediate shortest path)


7

2.2 Graf
2.2.1 Definisi Graf
Biasanya, untuk menggambarkan permasalahan lintasan terpendek digunakan graf.
Graf adalah objek abstrak matematis, yang mana mengandung verteks dan edge. Edge
menghubungkan sepasang verteks. Di sepanjang edge yang ada pada graf, adalah
memungkinkan bergerak dari satu verteks ke verteks lainnya. Tergantung pada apakah
atau tidak seseorang dapat berjalan di sepanjang edge oleh kedua sisi atau hanya satu
sisi tergantung graf tersebut merupakan directed graph atau undirected graph
(Magzhan & Jani, 2013).
Graf G didefinisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi
G=(V,E), yang dalam hal ini V adalah himpunan tidak-kosong dari simpul-simpul
(vertices atau simpul) dan E adalah himpunan sisi (edges atau arcs) yang
menghubungkan sepasang simpul (Munir, 2005). Berikut graf G yang memuat
himpunan titik V(G) dan himpunan sisi E(G).
V(G) = {a,b,c,d,e}
E(G) = {(a, b), (a, c), (a, d), (b, d), (b, c), (d, e)}
Berikut graf tersebut digambarkan.


Gambar 2.1. Graf G
(Munir, 2005)

Berdasarkan Gambar 2.1 graf G mempunyai 5 titik sehingga order G (Donny ,2014).
Graf G dengan himpunan titik dan sisi masing-masing:
V(G) = {a, b, c, d, e}
E(G) = {(a, b), (a, c), (a, d), (b, d), (b, c), (d, e)}

8

Dapat juga ditulis dengan:
V(G) = {a, b, c, d, e}
E(G) = {e1, e2, e3, e4, e5, e6}

Yaitu
e1 = (a, b)
e2 = (a, c)
e3 = (a, d)
e4 = (b, d)

e5 = (b, c)
e6 = (d, e)

2.2.2 Jenis – Jenis Graf
Graf dikelompokkan menurut ada tidaknya edges-nya yang paralel atau loop, jumlah
vertexnya, berdasarkan ada tidaknya arah pada edgesnya, atau ada tidaknya bobot
pada edges-nya (Zakaria & Teddy, 2005).
Berikut ini adalah jenis graf berdasarkan ada tidaknya edge yang paralel atau loop:
1. Graf Sederhana
Graf sederhana adalah graf yang tidak mempunyai paralel edges atau edges ganda
dan atau loop. Loop adalah edge yang menghubungkan sebuah vertex dengan
dirinya sendiri. Graf sederhana dapat dilihat pada Gambar 2.2.

Gambar 2.2 Contoh Graf Sederhana
(Zakaria & Teddy, 2005)

9

2. Graf Tak-Sederhana
Graf tak-sederhana adalah graf yang memiliki edges ganda dan atau loops. Graf tak

sederhana dapat dibagi dua yaitu:
a. Graf ganda (multi graph) adalah graf yang mengandung edge ganda. Sisi ganda
yang menghubungkan sepasang verteks bisa lebih dari dua buah. Graf ganda
dapat dilihat pada Gambar 2.3

Gambar 2.3 Contoh Graf Ganda
(Zakaria & Teddy, 2005)

b. Graf semu (pseudograph) adalah graf yang mempunyi loop, termasuk juga graf
yang mempunyai loop dan edge ganda karena itu graf semu lebih umum
daripada graf ganda, karena graf semu edgenya dapat terhubung dengan dirinya
sendiri. Graf semu dapat dilihat pada Gambar 2.4

Gambar 2.4 Contoh Graf Semu
(Zakaria & Teddy, 2005)

Selain berdasarkan ada tidaknya edge yang paralel atau loop, graf dapat juga
dikelompokkan berdasarkan orientasi arah atau panah yaitu:
1. Graf Tak Berarah (undirected graph)
Graf tak berarah adalah graf yang edgenya tidak mempunyai orientasi arah atau

panah. Pada graf ini, urutan pasangan verteks yang dihubungkan oleh edge tidak

10

diperhatikan. Jadi (vj, vk) = (vk, vj) adalah edge yang sama. Graf tak berarah dapat
dilihat pada Gambar 2.5.

Gambar 2.5 Contoh Graf Tak Berarah
(Zakaria & Teddy, 2005)

2. Graf Berarah (directed graf atau digraf)
Graf berarah adalah graf yang setiap edgenya memiliki orientasi arah atau panah.
Pada graf berarah (vj, vk) ≠ (vk, vj). Graf berarah dapat dilihat pada Gambar 2.6

Gambar 2.6 Contoh Graf Berarah
(Zakaria & Teddy, 2005)

Berdasarkan jumlah vertex pada suatu graf, maka secara umum graf dapat
digolongkan menjadi dua jenis:
1. Graf Berhingga (limited graph)

Graf berhingga adalah graf yang jumlah vertexnya berhingga, n. Graf berhingga
dapat dilihat pada Gambar 2.7.

11

Gambar 2.7 Contoh Graf Berhingga
(Zakaria & Teddy, 2005)
2. Graf Tak Berhingga (unlimited graph)
Graf tak berhingga adalah graf yang jumlah verteksnya, n tidak berhingga. Graf tak
berhingga dapat dilihat pada Gambar 2.8.

Gambar 2.8 Contoh Graf Tak Berhingga
(Zakaria & Teddy, 2005)

Graf juga ada yang mempunyai bobot atau nilai. Berdasarkan bobotnya, graf dibagi
menjadi dua jenis, yaitu:
1. Graf tidak berbobot (unweighted graph) adalah graf yang tidak mempunyai bobot
atau nilai. Graf tidak berbobot dapat dilihat pada Gambar 2.9.

Gambar 2.9 Contoh Graf Tidak Berbobot

(Zakaria & Teddy, 2005)

12

2. Graf berbobot (weighted graf) adalah graf yang masing-masing busurnya
mempunyai bobot atau nilai tertentu. Gambar berbobot dapat dilihat pada Gambar
2.10.

Gambar 2.10 Contoh Graf Berbobot
(Zakaria & Teddy, 2005)

2.3 Sistem Informasi Geografis
Sistem Informasi Geografi (SIG) atau yang lebih dikenal dengan Geografic
Information System (GIS) merupakan sistem yang dirancang untuk bekerja dengan
data yang tereferensi secara spasial atau koordinat-koordinat geografi. SIG juga
merupakan teknologi untuk mengelola, menganalisa dan menyebarkan informsi
geografis (Asade, 2011).
SIG merupakan suatu rancangan sistem informasi untuk mengerjakan data
koordinat geografis atau berunsur ruang. Teknologi SIG menyatu dengan operasi
database seperti pencarian data dan analisa statistik serta analisis geografis yang

disajikan dalam bentuk peta. Kemampuan SIG ini banyak digunakan secara luas
misalnya untuk menjelaskan kejadian, memperkirakan hasil dan perencanaan strategis
(Supriadi, 2007).
Sistem informasi geografis dapat dilengkapi dengan beberapa fitur, antara lain:
a. Legenda
Legenda adalah keterangan mengenai objek-objek yang terdapat didalam petayang
ditampilkan dengan bentuk-bentuk yang berbeda, seperti wilayah, jalan dan lainlain.

13

b. Skala
Skala adalah perbandingan ukuran yang terdapat pada layar tatap muka dengan
ukuran yang sebenarnya.
c. Zoom in/out
Fitur ini digunakan untuk memperbesar (zoom in) dan memperkecil (zoom out)
tampilan peta pada layar tatap muka.
d. Pan
Fitur ini digunakan untuk dapat menggeser peta sehingga menampilkan bagian
yang diinginkan.
e. Pencarian

Fitur ini digunakan untuk dapat menampilkan bagian peta sesuai input yang
dimasukkan.
f. Pengukuran
Fitur ini memberikan informasi mengenai jarak antar simpul ataupun luas suatu
wilayah.
g. Informasi
Fitur ini dapat menampilkan informasi mengenai suatu tempat, jalan, wilayah dan
sebagainya.
h. Link
Fitur ini digunakan untuk menghubungkan peta dengan data lain seperti gambar,
video, halaman web, form baru, dan lain – lain.

2.4

Google Maps

Google Maps merupakan layanan pemetaan berbais web untuk menunjukkan jalanjalan di seluruh dunia sehingga dapat kita gunakan untuk melihat suatu jalan di lokasi
manapun. Dengan kata lain, Google Maps merupakan suatu peta yang dapat dilihat
dengan menggunakan suatu browser yang akan ditampilkan secara digital. Kegunaan
Google Maps adalah untuk membantu seseorang untuk mencari jalan ke lokasi yang

ingin dituju. Google Maps juga dilengkapi dengan fasilitas yang dapat menghitung
jarak. Sehingga memudahkan kita untuk mengetahui seberapa jauh jalan yang akan
dituju.

14

Google Maps API merupakan aplikasi antarmuka yang dapat diakses lewat
javascript agar Google Maps dapat ditampilkan pada halaman web yang sedang
dibangun. Dengan menggunakan Google Maps API dapat menghemat waktu dan
biaya untuk membangun aplikasi peta digital yang handal, karena pengguna hanya
fokus pada data-data yang ingin dikostumisasi saja, untuk data peta sudah disediakan
oleh Google Maps. Ada 2 cara untuk mengakses data Google Maps, tergantung dari
data yang ingin diambil dan diuraikan dari Google Maps (Sirenden & Dachi, 2012),
yaitu:
1. Mengakses data Google Maps tanpa menggunakan API key.
2. Mengakses data Google Maps menggunakan API key.
3. Pendaftaran API key dilakukan dengan data pendaftaran berupa nama domain
web yang kita bangun.

2.5 Algoritma Floyd-Warshall

Algoritma Warshall dikembangkan oleh R.W. Floyd sehingga matriks merupakan
graf berbobot dan bukan lagi matriks Boolean (Goodaire, 1998). Algoritma FloydWarshall adalah sebuah algoritma analisis graf untuk mencari bobot minimum dari
graf berarah. Dari 4 jenis permasalahan lintasan terpendek, Algoritma Floyd-Warshall
termasuk dalam lintasan terpendek antara semua pasangan simpul atau all pairs
shortest path (Levitin, 2009). Algoritma ini dapat menghitung bobot positif atau
negatif, tetapi tidak dapat menghitung siklus negatif (Sharma & Kurana, 2013).
Dalam satu kali eksekusi algoritma, akan didapatkan jarak sebagai jumlah bobot
dari lintasan terpendek antar setiap pasang simpul tanpa memperhitungkan informasi
mengenai simpul-simpul yang dilaluinya. Algoritma yang juga dikenal dengan nama
Roy-Floyd ini merupakan penerapan strategi dynamic programming. Di sinilah peran
pemrograman dinamis yang mencoba untuk memberikan solusi yang memiliki
pemikiran terhadap konsekuensi yang ditimbulkan dari pengambilan keputusan pada
suatu tahap. Pemrograman dinamis mampu mengurangi penumerasian keputusan yang
tidak mengarah ke solusi. 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.
Algoritma Floyd-Warshall menyediakan lintasan terpendek antara semua
pasangan simpul dengan hanya dijalankan sekali dan merupakan algoritma paling

15

cepat (Awasthi et al, 2013). Algoritma Floyd-Warshall dapat digunakan secara efektif
pada sistem dengan jumlah node yang besar dan mengarahkan pada perbaikan yang
signifikan dalan keefisiensian pada saat dijalankan. Tahapan Algoritma Floyd:
1. Bentuklah sebuat matriks dari graf yang memiliki bobot.
2.

Isi sesuai hubungan antara vertex satu ke vertex lainnya.

3. Bandingkan semua vertex dengan rumus ik + kj < ij, maka nilai ij diganti
dengan nilai ik + kj.
4. Setelah dibandingkan terhadap semua vertex, maka didapatkan hasil terkecil.

Algoritma Floyd:
1. n ⃪ rows(F)
2. D(0 )⃪ F

3. for k ⃪ 1 to n

4. do for i ⃪ to n

5. do for j ⃪ to n
6. �

( )


7. return D(n)



( −�)

,�

( −�)

+�

( −�)

)

Running time dari algoritma Floyd ditentukan oleh perulangan for bersarang rangkap
tiga pada baris 3-6. Setiap eksekusi dari baris ke-6 mengambil O(1) kali. Sehingga
algoritma ini berjalan dalam waktu Θ (n3) (Cormen et al, 1990).
Algoritma Floyd membandingkan semua kemungkinan lintasan pada graf untuk
setiap sisi dari semua simpul. Algoritma ini mampu mengerjakan proses
perbandingkan ini sebanyak Θ(n3) kali (bandingkan dengan kemungkinan jumlah sisi
sebanyak Ω(n2) (kuadrat jumlah simpul) pada graf, dan setiap kombinasi sisi
diujikan). Hal tersebut bisa terjadi karena adanya perkiraan pengambilan keputusan
(pemilihan lintasan terpendek) pada setiap tahap antara dua simpul, hingga perkiraan
tersebut diketahui sebagai nilai optimal.
Pencarian lintasan terpendek dengan menggunakan algoritma Floyd dapat
dilihat dalam contoh kasus berikut. Diketahui sebuah graf seperti pada Gambar 2.11,
permasalahannya adalah bagaimana menemukan lintasan terpendek antara semua
pasangan simpul.

16

Gambar 2.11 Contoh Graf
(Boffey, 1982)

Langkah-langkah untuk mendapatkan lintasan terpendek antara semua pasangan
simpul dengan menggunakan algoritma Floyd:
1. Representasi graf dalam matriks ketetanggaan.
2. Matriks n x n untuk graf dimana n adalah jumlah simpul.
3. Jika i=j maka sisinya bernilai 0, dan jika tidak ada jarak antara i ke j maka
sisinya bernilai ∞.
4. Jarak terpendek dari A ke B adalah perpotongan antara baris dan kolom.

0

(0)
D =


6

2  11
0 3  
2 0 5

7 7 0

1
2
ϴ ⃪
3

4

1 1 1
2 2 2
3 3 3

4 4 4

0

(1)
D = 


6

2  11
0 3  
2 0 5

7 7 0

1
2
ϴ ⃪
3

4

1 1 1
2 2 2
3 3 3

4 4 4

0

(2)
D = 


6

2 5 11
0 3  
2 0 5

7 7 0

1
2
ϴ ⃪
3

4

1 1 1
2 2 2
3 3 3

4 4 4

17

0

(3)
D = 


6

2 5 10
0 3 8 
2 0 5

7 7 0

1
2
ϴ ⃪
3

4

1 1 1
2 2 2
3 3 3

4 4 4

0
14
(4)
D = 
11

6

2 5 10
0 3 8 
2 0 5

7 7 0

1
2
ϴ ⃪
3

4

1 1 1
2 2 2
3 3 3

4 4 4

2.6 Penelitian Terdahulu
Beberapa penelitian terdahulu mengenai pencarian lintasan terpendek dapat dilihat
pada Tabel 2.1.
Tabel 2.1 Penelitian Terdahulu
No.

Judul

Peneliti

Metode

1.

Sistem Pencarian Rute

Andre Asade

A*

Terpendek Dinamis

(2011)

Keterangan
Sistem ini dapat
menemukan rute

Menggunakan

terpendek menuju

Algoritma A* Pada

fasilitas-fasilitas

Jalan Protokol Di Kota

umum, namun

Medan Berbasis Web

diakses pada web

GIS

dan tidak real
time.

2.

Perancangan Aplikasi
Pencarian Rute
Terpendek Dengan

Syarah

Floyd-Warshall

Pada algoritma ini

Sukmadria S

ditemukan hasil

(2014)

yang maksimal

Metode Floyd Pada

untuk pencarian

Taksi

rute terpendek.

18

Tabel 2.1 Penelitian Terdahulu (Lanjutan)
No.

Judul

Peneliti

Metode

Keterangan

3.

Aplikasi Rekomendasi

Anggreiny

A*

Rute Angkutan Kota di

Ginting

berhasil

Medan dan Pencarian

(2014)

diimplementasikan

Algoritma A*

Jarak Terpendek

dalam

Dengan Algoritma A*

rekomendasi

Berbasis Android

pemilihan
angkutan kota.

4.

Penentuan Rute
Terpendek Untuk

Ahmad Najam

Floyd-Warshall

Algoritma FloydWarshall efisien

(2014)

Distribusi Paket Pos

diterapkan dalam

Menggunakan

permasalahan

Algoritma Floyd-

penentuan rute

Warshall

dalam pengiriman
paket pos di
Kecamatan Medan
Petisah.

5.

Rekomendasi Rute
SPBU Terdekat

Nurul Fadhlia

Bellman-Ford

(2015)

Aplikasi ini dapat
menghasilkan

Menggunakan

rekomendasi SPBU

Algoritma Bellman-

yang terdekat

Ford Berbasis Android

berdasarkan urutan
jarak terpendek.

Adapun perbedaan yang dimiliki oleh penulis dengan penelitian terdahulu adalah:
1.

Andre Asade (2011):
Sistem ini tidak berlangsung secara real-time dan diakses pada web, juga
menggunakan algoritma A*. Sedangkan pada penelitian ini sistem berlangsung
secara real-time dan digunakan pada smartphone android.

19

2.

Syarah Sukmadira (2014):
Pada sistem ini, peta yang digunakan adalah peta yang di capture, bukan peta
sebenarnya. Sedangkan pada penelitian ini peta yang digunakan adalah peta yang
berasal dari Google Maps.

3.

Anggreiny Ginting (2014):
Sistem ini menggunakan algoritma A* dan diterapkan dalam rekmomendasi
pemilihan angkutan kota, sedangkan penelitian ini diterapkan dalam pencarian
taksi terdekat dengan menggunakan algoritma Floyd-Warshall.

4.

Ahmad Najam (2014):
Penerapan algoritma Floyd-Warshall diterapkan dalam penentuan rute dalam
pengiriman paket pos, sedangkan penelitian ini diterapkan dalam pencarian taksi
terdekat.

5.

Nurul Fadhlia (2015):
Pada penelitian tersebut, aplikasi dapat menghasilkan rekomendasi SPBU
terdekat berdasarkan urutan jarak terpendek menggunakan algoritma BellmanFord sedangkan pada penelitian ini diterapkan algoritma Floyd-Warshall dalam
pencarian taksi terdekat dari lokasi pemesan taksi.