IMPLEMENTASI ALGORITMA BELLMAN FORD DAN (1)

IMPLEMENTASI ALGORITMA BELLMAN-FORD DAN FLOYDWARSHALL UNTUK MENCARI RUTE TERPENDEK
(STUDI KASUS: RUTE JAKARTA-JOGJA)

NASKAH PUBLIKASI

diajukan oleh
Gopinda Al Araaf
12.12.6435

kepada
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM YOGYAKARTA
YOGYAKARTA
2014

IMPLEMENTASI ALGORITMA BELLMAN-FORD DAN FLOYD-WARSHALL UNTUK
MENCARI RUTE TERPENDEK
(STUDI KASUS: RUTE JAKARTA-JOGJA)
Gopinda Al Araaf), Nila Feby Puspitasari2),
1)
2)


Sistem Informasi STMIK AMIKOM Yogyakarta
Teknik Informatika STMIK AMIKOM Yogyakarta

Jl Ringroad Utara, Condongcatur, Depok, Sleman, Yogyakarta Indonesia 55283
Email : gopinda.a@students.amikom.ac.id1),

Abstract – Jakarta-Yogyakarta route is one of most
popular route in Indonesia. Every day about a
thousand of vehicles were crosses the path. Start from
two wheeled vehicle to wheeled lot.

nilafeby@amikom.ac.id2)

merupakan suatu masalah. Jalur tersebut terlintasi
ratusan bahkan mungkin ribuan jalan. Sehingga
kemungkinan untuk nyasar pun semakin besar. Maka
sangat diperlukan untuk diciptakan suatu alat yang tidak
hanya mampu menunjukkan arah, tapi juga dapat
menunjukkan jalur tercepat. Sehingga waktu perjalanan

pun tidak terbuang sia-sia.

Especially at certain moments, the path could
experience a surge in the number of vehicles is large
enough. So sometimes also cause congestion on some
roads. This is certainly an impact on travel time are
getting longer.

1.1 Rumusan Masalah

This research aims to find the shortest route (read:
alternative) between Jakarta to Yogyakarta. FloydWarshall and Bellman-Ford Algorithm is used to
calculate the shortest route. This Software was
designed by UML and Flowchart. Results of this
research will be realized in the web-based software. So
anyone can use it while they are connected the
internet.

Berdasarkan uraian yang di atas, maka berikut adalah
rumusan masalah yang diangkat dalam penelitian ini:


Keyword: Floyd-Warshall Algorithm, Bellman-Ford
Algorithm, implementation of algorithm, the shourtest
path.

1.2 Tujuan Penelitian

Bagaimana merancang suatu aplikasi yang dapat
menentukan rute terpendek (shortest-path) antara
Jakarta-Jogja dengan menggunakan algoritma Bellmanford dan Floyd-Warshall-Ford?

1. Menghasilkan suatu aplikasi yang dapat menghitung
rute terpendek (shortest-path) dengan menggunakan
algoritma Floyd-Warshall atau Bellman-Ford.

1. Pendahuluan
Dalam kehidupan sehari-hari, kita hampir selalu
melakukan perjalanan dari suatu tempat ke tempat yang
lain. Dari kota A ke kota B atau pun sebaliknya. Dan
dalam melakukan perjalanan tersebut, tentu kita akan

selalu mempertimbangkan tingkat efisiensi terhadap
waktu dan jarak. Sehingga diperlukan suatu perencanaan
yang terukur dalam penentuan rute terpendek (shortestpath) antara dua tempat tersebut.

2. Membandingkan informasi yang dihasilkan oleh
algoritma Floyd-Warshall dan Bellman-Ford.
1.3 Metodologi Penelitian
Dalam penelitian ini, penulis tidak melakukan
observasi langsung di lapangan. Melainkan hanya
menggunakan data-data GPS yang telah tersedia secara
gratis oleh aplikasi Google Maps. Sehingga dalam hal
ini, metode penelitian yang digunakan hanyalah metode
kepustakaan.

Rute Jakarta-Jogja adalah salah satu rute terpopuler
di Indonesia. Hampir setiap hari ada ribuan kendaraan
yang melintasi jalur tersebut. Ada sekitar puluhan
bahkan ratusan jalan yang menghubungkan ke dua
tempat tersebut. Sehingga kemungkinan jalan yang dapat
dilalui pun akan semakin banyak dan beragam.


2. Landasan Teori
2.1 Teori Graf
Teori graf pertama kali muncul pada tahun 1736.
Ketika itu permasalahan yang akan diselesaikan adalah

Bagi masyarakat awam, bepergian dari Jakarta ke
Jogja atau pun sebaliknya tanpa petunjuk arah tentu saja

1

mencari suatu rute agar dapat melewati ketujuh
Jembatan Könsigsberg (Gambar 2.1) tepat satu kali dan
kemudian kembali lagi ke titik semula Teori graf
didefinisikan sebagai pasangan himpunan (V,E) yang
ditulis dengan notasi G=(V,E). Dimana V adalah
himpunan tidak-kosong dari simpul-simpul (vertices atau
simpul) dan E adalah himpunan sisi (edge atau arcs)
yang menghubungkan sepasang simpul. [1]
2.2 Global Positioning System (GPS)

GPS adalah sistem yang digunakan untuk
menentukan letak di permukaan bumi dengan bantuan
penyelarasan (synchronization) sinyal satelit. Sistem ini
menggunakan 24 satelit untuk mengirimkan sinyal
gelombang mikro ke Bumi. Sinyal tersebut kemudian
diterima oleh alat penerima di permukaan bumi dan
digunakan untuk menentukan letak, kecepatan, arah dan
waktu. Sistem yang serupa dengan GPS antara lain,
GLONASS dari Rusia, Galileo dari Uni Eropa, dan
IRNSS dari India. [2]

Gambar 1 salah satu contoh graf dengan sisi bernilai
negatif
Dalam algoritma Bellman-Ford, apabila ingin dicari
lintas dengan bobot paling sedikit dari simpul bernomor
1 ke simpul bernomor 2, maka lintasannya adalah 1-4-32, sehingga bobot yang didapat adalah 7-3-2=2
Berikut algoritma Bellman-Ford jika disajikan dalam
bentuk notasi matematika:
M [i,v] = min( M [i-1,v] , ( M [i-1,n]+ Cvn))


2.3 Google Maps
Google Maps mapping service adalah sebuah
aplikasi berbasis online yang memberikan informasi
kepada penggunanya dengan berbagai fitur-fitur peta,
seperti: tampilan street-map, arahan kemudi point-topoint, serta jalur-jalur untuk mencari lokasi bisnis di
berbagai kota. Dengan tambahan street-map dan terrain
view, satellite atau aerial view, dapat memberikan
kemudahan bagi penggunanya dalam menggunakan
perangkat tersebut. Selain itu, aplikasi ini juga bisa
diakses dari mana saja dan dengan perangkat apa saja—
selagi masih terkoneksi dengan internet (Frazel, 2009).

i = iterasi, v = vertex = node, n = node neighbor, C =
cost
2.5 Algoritma Floyd-Warshall
Algoritma Floyd-Warshall ditemukan oleh R. Floyd.
Algoritma Floyd merupakan algoritma yang dapat
digunakan untuk membangun sebuah sistem yang
membutuhkan mekanisme pencarian jalur tercepat.
Sementara Floyd, merupakan suatu algoritma untuk

mencari jalur atau lintasan terpendek pada suatu graf
berbobot (weighted graph). Algoritma ini juga dapat
melakukan analisis dan penyelesaian kerumitan terhadap
suatu proses. [3] (Purwanto, 2005).

2.4 Algoritma Bellman-Ford
Algoritma Bellman-Ford adalah algoritma yang
digunakan untuk mencari rute terpendek (dari satu
sumber) pada sebuah graf berbobot. Artinya, dalam
mencari solusi jalur terpendek, algoritma Bellman-Ford
akan menghitung setiap semua jarak terpendek yang
berasal dari satu titik node/simpul. Dalam penerapannya,
algoritma ini hanya digunakan jika ada sisi berbobot
negatif.

Algoritma ini adalah salah satu dari beberapa varian
dari pemrograman dinamis. Yaitu suatu metode
pemecahan masalah yang didapat dari kesimpulankesimpulan yang ada.
Dalam melakukan pencarian solusi, algoritma
Floyd-Warshall melakukan pemecahan masalah dengan

memandang solusi yang akan diperoleh sebagai suatu
keputusan yang saling terkait. Artinya, dalam mengambil
kesimpulan, algoritma Floyd-Warshall akan mengacu
pada kesimpulan-kesimpulan sebelumnya.

Sebagai contoh seperti yang ditunjukkan pada
Gambar 1 di bawah ini.

Sebagai gambaran, berikut contoh pencarian rute
oleh algoritma Floyd-Warshall yang tunjukkan pada
Gambar 2.

2

penentuan titik asal dan titik tujuan, baru kemudian
dilakukan proses iterasi atau pencarian rute. Tiap hal
tersebut akan diuraikan sebagai berikut:
a) Fungsi Obyektif
Fungsi obyektif yang dicari dalam implementasi
ini adalah nilai jarak minimum antara Jakarta dan

Yogyakarta.

Gambar 2 Contoh Rute
Dalam contoh di atas, diumpakan akan mencari rute
terpendek dari simpul A ke simpul C. Maka yang akan
dilakukan oleh algoritma Floyd-Warshall adalah:
1.

Menghitung nilai jarak simpul yang dapat
dijangkau.

2.

Membandingkan nilai jarak
memilih nilai jarak terendah.

3.

Jika jarak antara simpul A-C lebih rendah dari
pada jarak A-C melalui B, maka pilih opsi

pertama. Jika tidak pilih opsi kedua.

tersebut

b) Penentuan titik asal dan titik tujuan
Titik asal dan titik tujuan adalah lokasi yang
menjadi acuan dari algoritma atau sistem dalam
membangun rute. Dalam penelitian ini, lokasi asal
dan lokasi tujuan ditentukan ke menjadi beberapa
tempat. Sehingga pengguna dapat memilih salah
satu di antaranya.

dan

c) Proses iterasi
Proses iterasi dilakukan untuk mencari nilai jarak
terendah antara Jakarta dan Yogyakarta setelah
dilakukan penentuan lokasi seperti yang telah
disebutkan di atas. Secara acak, sistem akan
mencari rute terdekat berdasarkan pendekatan
masing-masing algoritma.

Maka dalam implementasinya, untuk menuju simpul
C, algoritma Floyd-Warshall akan melewati simpul A-BD-C.
Berikut algoritma Floyd-Warshall jika disajikan
dalam bentuk notasi matematika:

Berdasarkan uraian di atas, akan dikembangkan
sebuah pemodelan menggunakan algoritma BellmanFord dan Floyd-Warshall untuk pencarian rute terpendek
antara Jakarta dan Yogyakarta seperti yang ditunjukkan
pada Gambar 2 dan Gambar 3.

f(i, j, 0) = cost(i, j)
f(i, j, k) = min(f(i, k, k − 1) + f(k, j, k − 1), f(i, j, k − 1))
i,j,k: simpul
3. Pembahasan
3.1 Pemodelan Sistem
Pemodelan sistem yang akan dibangun pada
penelitian ini adalah menggunakan bahasa pemrograman
PHP. Pemodelan yang dibuat dalam optimasi pencarian
rute terpendek ini menggunakan titik koordinat GPS
antara lokasi awal atau asal dan lokasi akhir atau tujuan
sebagai. Sedangkan dalam implemantasinya, penelitian
ini akan menggunakan dua metode sekaligus, yaitu:
metode Bellman-Ford dan Floyd-Warshall. Parameterprameter yang digunakan dalam penelitian ini antara
lain: koordinat lokasi (awal dan akhir), jalur, jarak antara
simpul atau node, dan jarak total yang dihasilkan antara
titik awal dan akhir.

Gambar 3 Flowchart Bellman-Ford

3.2 Pemodelan Algoritma Bellman-Ford dan FloydWarshall
Berikut akan dijelaskan secara detil proses
iterasi dari algoritma Bellman-Ford seperti yang
tersaji pada Gambar 3 di atas.

Pada pemodelan menggunakan algoritma BellmanFord dan Floyd-Warshall, akan dilakukan sebuah
implementasi pencarian rute terpendek dari dua titik,
yaitu titik asal dan titik tujuan. Ada beberapa hal yang
harus dirancang dalam rangka implementasi algoritma
Bellman-Ford ini, yaitu fungsi obyektif (cost function),

1. Aplikasi dijalankan. Dalam tahapan ini, akan
diaktifkan aplikasi Xampp dan kemudian

3

membuka program menggunakan aplikasi
browser
dan
mengetik
localhost:8080/implementasi_algoritma pada
kolom address bar.

Berdasarkan flowchart di atas, berikut ini dijelaskan
secara detil proses iterasi dari algoritma Floyd-Warshall.
1.

Aplikasi dijalankan. Dalam tahapan ini, akan
diaktifkan aplikasi Xampp dan kemudian
membuka program menggunakan aplikasi
browser
dan
mengetik
localhost:8080/implementasi_algoritma
pada
kolom address bar.

2.

Mengambil data jalur dari database.

3.

Selanjutnya algoritma akan melakukan inisiasi
awal; simpul i dan simpul j bernilai awal nol.
Kemudian diberikan statement,jika jarak simpul i
ke j kurang dari tak-terdefinisi, maka jarak yang
digunakan adalah nilai dari i.

4.

Memeriksa nilai bobot simpul pada tiap simpul
yang dapat dijangkau langsung dari simpul awal.
Pilih simpul dengan nilai jarak terkecil kemudian
kemudian menuliskannya pada label jarak
sementara serta ditambahkan pula urutannya
(iterasi).

5.

Masukan nilai jarak sementara pada tiap simpul
yang belum memiliki urutan dan jarak. Nilainya
adalah penjumlahan antara nilai bobot dari simpul
sebelumnya dan simpul yang dijalankan. Jika
simpul tersebut sudah memiliki nilai, maka hanya
diganti jika nilai penjumlahan tadi lebih kecil
dibanding nilai semula.

6.

Kemudian aplikasi akan mengecek simpul. Jika
belum menemukan simpul tujuan, maka proses
pada langkah ke-5 akan terus dijalankan.

7.

Selanjutnya aplikasi akan diperintahkan untuk
mencetak jalur yang harus dilalui. Cetak jalur
terjadi jika simpul tujuan = iterasi (x-1).

8.

Kemudian aplikasi akan melakukan pengecekan
nilai bobot simpul dari simpul tujuan ke simpul
asal. Sayaratnya: selisih graph harus mendekati 0
tapi tidak bernilai negatif. Jika syarat terpenuhi,
maka aplikasi akan memilih jalur tersebut.

9.

Langkah ini akan terus berjalan hingga bertemu
pada simpul tujuan.

2. Aplikasi akan mengambil seluruh data jalur dari
database.
3. Selanjutnya dilakukan tahap inisiasi; setiap nilai
jarak D dari i akan diberi nilai awal tak
terdefinisi, dengan semua i tidak sama dengan d
dan untuk jarak D dari node d bernilai 0.
Dimana D adalah nilai jarak masing-masing
simpul yang terdapat di dalam database,
sementara i menunjukkan urutan simpul, dan d
adalah simpul tujuan (destination).
4. Langkah selanjutnya adalah membandingkan
nilai atau bobot simpul. Pada langkah ini, nilai
D pada simpul i diperbaharui dengan mengecek
nilai yang dari penjumlahan nilai jarak C antara
simpul i dan j dengan nilai jarak D dari simpul
j, untuk setiap i yang tidak sama dengan j.
Sebagai catatan, nilai D adalah nilai bobot yang
berada pada tabel in-progress, sementara nilai C
adalah nilai yang berada pada simpul tabel yang
diketahui.
5. Setelah melakukan perhitungan seperti pada
langkah no. 4, algoritma Bellman-Ford akan
mengecek baris iterasi pada tabel; jika baris
iterasi x sama dengan baris iterasi x-1, maka
proses dihentikan. Akan langsung ke tahap
cetak jalur. Namun jika belum, akan kembali ke
langkah no.4 dan melakukan perulangan hingga
statement iterasi x = iterasi x-1.

10. Selesai.
3.3 Hasil Implementasi Algoritma
Tabel 1 Pengujian Pencarian Rute TMII (Jakarta) –
STMIK Amikom (Yogyakarta)
Algoritma Titik
Titik
Jarak (m)
Waktu

Gambar 4 Flowchart Algoritma Floyd-Warshall
Setelah dijelaskan proses pencarian rute berdasarkan
algoritma Bellman-Ford, selanjutkan akan dijelaskan
pula proses pencarian rute dari algoritma FloydWarshall.

4

Bellman-

asal
STMIK

Ford

Amikom

tujuan
TMII

530609,632

(s)
0,0100

Floyd-

STMIK

TMII

Warshall

Amikom

530609,632

Computer Sience (M.Cs) Program Pasca Sarjana
Magister Teknologi Informasi Fakultas Ilmu Komputer
Universitas Gajah Mada Yogyakarta, lulus tahun 2014.
Saat ini menjadi Dosen di STMIK AMIKOM
Yogyakarta.

0,0300

Tabel 2 Hasil Pengujian TMII-Malioboro
Algoritma Titik Titik
Jarak (m)
Waktu
Bellman-

asal
TMII

tujuan
Jl.

530609,632

(s)
0,00300

Ford
Floyd-

TMII

Malioboro
Jl.

530609,632

0,02000

Warshall

Malioboro

4.Kesimpulan
Berdasarkan hasil penelitian yang telah dilakukan oleh
peneliti seperti yang telah diuraikan di atas, maka berikut
ini beberapa kesimpulan yang bisa diambil:
1) Algoritma Bellman-Ford dan Floyd-Warshall
menghasilkan output yang sama. Sehingga dapat
disimpulkan bahwa algoritma Bellman-Ford dan
Floyd-Warshall adalah sama dalam artian yang
sebenarnya. Artinya, untuk menentukan rute
terdekat antara dua titik, bisa menggunakan
algoritma Bellman-Ford atau Floyd-Warshall.
2) Algoritma Bellman-Ford dan Floyd-Warshall layak
dijadikan referensi untuk mencari rute terdekat
antara dua simpul. Hal ini karena kedua algoritma di
atas mampu menghasilkan jarak yang lebih dekat,
dengan waktu proses yang lebih cepat pula tentunya,
jika dibandingkan dengan metode pencarian rute
secara manual.
Daftar Pustaka
[1] Munir, Rinaldi. 2005. Matematika Diskrit. Bandung:
Penerbit Informatika.
[2] Winardi. 2006. Penentuan Posisi Dengan GPS Untuk
Survei Terumbu Karang. Jakarta: Puslit Oseanografi
—Lipi.
[3] Purwanto, Taufik H. 2004. Pemodelan Spasial
Dengan Sistem Informasi Geografis untuk Analisis
Jaringan Kemacetan Lalulintas Di Kotamadya
Yogyakarta. Yogyakarta: Prodi Kartografi dan
Penginderaan Jauh Fakultas Geografi UGM
Biodata Penulis
Gopinda Al Araaf, memperoleh gelar Sarjana Komputer
(S.Kom), Jurusan Sistem Informasi STMIK AMIKOM
Yogyakarta, lulus tahun 2016. Saat ini menjadi freelance
web programmer dan penulis konten.
Nila Feby Puspitasari, memperoleh gelar Sarjana
Komputer (S.Kom), Jurusan Teknik Informatika STMIK
AMIKOM Yogyakarta. Memperoleh gelar Master of
5