You are on page 1of 4

Algorima dijkstra adalah sebuah algoritma rakus (greedy algorithm) dalam

memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah


graf berarah (directed graph) atau graf tak berarah (undirected graph) dengan bobot-
bobot sisi (edge weights) yang bernilai tak negatif sehingga diasumsikan bahwa k(vij)
>= 0 untuk semua edges (vij) ∈ E. Algoritma dijkstra ditemukan oleh E.W Dijkstra
salah seorang kontributor utama dalam pengembangan ALGOL, sebuah bahasa
pemrogaman tingkat tinggi. Dan juga merupakan salah seorang pengembang dari
ilmu dan dari bahasa pemrograman secara umum. E.W Dijkstra adalah lulusan dari
The Gymnasium Erasmianum di Rotterdam, dan mendapatkan gelar dalam bidang
matematika dan fisika teori dari universitas Leyden, dan gelar Ph.D. dalam ilmu
komputer dari universitas Amsterdam. E.W Dijkstra bekerja sebagai programmer di
pusat matematika, Amsterdam pada tahun 1952 sampai denga tahun 1962. Pada tahun
1962 hingga tahun 1984, E.W Dijkstra menjadi professor matematika di Universitas
Teknik Eindhoven. E.W Dijkstra mengadakan Schlumberger Centennial Chair in
Computing Sciences di Universitas Texas pada tahun 1984 sampai dengan tahun
1999, dan mundur dengan menyandang gelar sebagai professor kehormatan pada
tahun 1999.

Dengan algoritma dijkstra dapat menyelesaikan lintasan/rute terpendek dari sebuah


verteks asal dan verteks tujuan dalam suatu graf berbobot G=(V,E). Jarak terpendek
diperoleh dari dua buah verteks jika total bobot dari semua edges dalam jaringan graf
adalah yang paling minimal. Berikut adalah langkah-langkah pencarian lintasan
terpendek dengan

menggunakan algoritma dijkstra:

1. Graf yang dibuat direpresentasikan dalam matriks K=[vij]

vij = bobot sisi (i,j).

vii = 0

vij = ∞, bila tidak ada lintasan dari simpul vi ke simpul vj.

2. Dibuat tabel S = [si]

si = 1, jika simpul i termasuk lintasan terpendek.

si = 0, jika simpul i tidak termasuk lintasan terpendek.

3. Dibuat tabel D = [di] yaiu jarak dari simpul awal ke simpul awal ke simpul awal
ke simpul tujuan.

function Dijkstra(G, k, s) //deklarasi fungsi dijkstra

for each vertex v in V[G] // inisialisasi semua bobot verteks pada graf G

d[vj] := infinity // bobot vertek ke j di simpan pada array tak terhingga

previous[vj] := undefined // bobot verteks ke j sebelumnya tidak di ketahui

d[s] := 0 // set 0 pada array untuk simpul s tidak termasuk lintasan terpendek

S := empty set // set variabel S = 0

Q := V[G] // ser variabel Q dengan bobot verteks pada graf G

while Q is not an empty set // inisialisasi variabel Q

vi := Extract_Min(Q) // set bobot verteks ke i

S := S union { vi } // set variabel S

for each edge (vi,vj) // inisialisasi setiap edge pada graf

if d[vi] + k(vi,vj) < d[vj]

d[vj] := d[vi] + k(vi, vj)

previous[vj] := vi

Algorima dijkstra adalah sebuah algoritma rakus (greedy algorithm) dalam


memecahkan permasalahan jarak terpendek (shortest path problem). Di bawah ini
merupakan penerapan algoritma dijkstra pada graf yang mempunyai 11 vertices
dengan bobot masing-masing yang mewakili jarak antar verteks. Vertices pada graf
dapat mewakili suatu tempat atau ring road pada suatu wilayah geografis.
Dalam penentuan jalur terpendek pada graf di atas di butuhkan titik awal dan titik
tujuan. Misalkan titik awal D dengan titik tujuan F dengan diagram pohon kita dapat
mengetahui jalur mana yang dapat dilalui, dengan ketentuan jalur jalan yang telah
dilalui dengan rute yang sama tidak boleh dilalui lagi dan jika telah sampai pada titik
tujuan maka pencarian pada rute tersebut berhenti dan melanjutkan dengan rute lain,
jika semua rute telah dilalui kita dapat mengambil kesimpulan rute mana yang akan
dilalui dengan jarak yang optimum atau terpendek.
Dari diagram pohon tersebut dapat ditentukan rute yang berhasil mencapai tujuan dari
vertices D ke vertices F yaitu :

D ⇨A ⇨ B ⇨F dengan total jarak = 10

D ⇨A ⇨ G ⇨ B⇨ F dengan total jarak = 18

D ⇨C ⇨ B ⇨F dengan total jarak = 13

D ⇨E ⇨F dengan total jarak = 9

Dari hasil tersebut jarak terpendek adalah D ⇨E ⇨F dengan total jarak 9. Dalam
penerapan algoritma dijkstra pada graf di atas merupakan graf tidak berarah, tetapi
algoritma Dijkstra dapat juga diterapkan pad

You might also like