2.1.1 Terminologi Graf
1. Bertetangga adjacent
Dua buah simpul dikatakan bertetangga jika kedua simpul tersebut terhubung langsung oleh dua sisi.
Contoh :
Perhatikan graf berikut :
Pada graf diatas : simpul P bertetangga dengan simpul Q dan S, tetapi simpul P tidak bertetangga dengan simpul R
2. Bersisian incidency
Suatu sisi e dikatakan bersisian dengan simpul v
1
dan simpul v
2
jika e menghubungkan kedua simpul tersebut, dengan kata lain e = v
1,
v
2
.
Contoh :
Perhatikan graf dari masalah jembatan Konigsberg berikut ini :
maka e
1
bersisian dengan simpul A dan simpul C, tetapi sisi tersebut tidak bersisian dengan simpul B.
Universitas Sumatera Utara
3. Simpul Terpencil Isolated Vertex
Jika suatu simpul tidak mempunyai sisi yang bersisian dengannya maka simpul tersebut dinamakan simpul terpencil.
Contoh :
Perhatikan graf berikut :
Simpul T dan simpul U merupakan simpul terpencil.
4. Derajat Degree Simpul
Derajat suatu simpul merupakan jumlah sisi yang bersisian dengan simpul tersebut. Misalkan, suatu simpul v mempunyai 3 buah sisi yang bersisian
dengannya maka dapat dikatakan simpul tersebut berderajat 3, atau dinotasikan oleh dv = 3.
Contoh :
Pada graf diatas : dP = dQ = dS = 5, sedangkan dR =3.
5. Lintasan Path
Lintasan dari suatu simpul awal v ke simpul tujuan v
T
didalam suatu graf G
Universitas Sumatera Utara
merupakan barisan sebuah sisi atau lebih x , x
1
, x
1
, x
2
, x
2
, x
3
, ….
xn-1
, x
n
pada G, dimana x = v
dan x
n =
v
T.
Lintasan ini dinotasikan oleh :
x , x
1,
x
2,
x
3,….
x
n
Lintasan ini mempunyai panjang n, karena lintasan ini memuat n buah sisi, yang dilewati dari suatu simpul awal v
ke simpul tujuan v
T
didalam suatu graf G. Suatu lintasan yang berawal dan berakhir pada simpul yang
sama dinamakan Siklus cycle atau Sirkuit circuit.
Contoh :
Perhatikan graf berikut ini :
6. Cut Set
Cut-set dari suatu graf terhubung G adalah himpunan sisi yang jika dibuang dari G menyebabkan G tidak terhubung. Jadi, cut-set selalu menghasilkan
dua buah subgraf. Pada graf dibawah ini, {1,4, 1,5, 2,3, 2,4} adalah cut-set. Terdapat banyak cut-set pada sebuah graf terhubung. Himpunan
{1,5, 4,5} juga adalah cut-set, {1,4, 1,5, 1,2} adalah cut-set, {5,6} juga cut-set.
Tetapi {1,4, 1,5, 4,5} bukan cut-set sebab himpunan bagiannya {1,5, 4,5} adalah cut-set.
Universitas Sumatera Utara
2.1.2 Jenis Graf
Pada dasarnya, graf dibagi dengan beberapa jenis :
1. Graf Tak Berarah
a. Graf sederhana simple graph
Graf sederhana merupakan graf tak berarah yang tidak mengandung gelang maupun sisi ganda.
Contoh :
b. Graf Ganda multigraph
Graf ganda merupakan graf tak berarah yang tidak mengandung gelang loop.
Contoh :
c. Graf Semu pseudograph
Graf semu merupakan graf yang boleh mengandung gelang loop. Contoh :
Universitas Sumatera Utara
2. Graf Berarah Directed graph
Graf berarah merupakan graf yang setiap sisinya mempunyai arah dan tidak mempunyai dua sisi yang berlawanan antara dua buah simpul tak
mempunyai sisi ganda. Contoh :
Tabel jenis-jenis graf
2.2 ALGORITMA DIJKSTRA
Pada tahun 1959 sebuah tulisan sepanjang tiga halaman yang berjudul A Note on Two Problems in Connexion with Graphs diterbitkan pada jurnal Numerische Mathematik.
Pada tulisan ini, Edsger W. Dijkstra, seorang ilmuwan komputer berumur dua puluh sembilan tahun mengusulkan algoritma-algoritma untuk solusi dari dua masalah
teoritis graf dasar : the minimum weight Algoritma Dijkstra untuk masalah jalan terpendek adalah satu dari algoritma-algoritma paling ternama pada ilmu komputer
dan sebuah algoritma paling popular pada operasi pencarianOR. Implementasi
Universitas Sumatera Utara
algoritma dijkstrapada ilmu komputer antara lain adalah pada link-state routing protocol, OSPF dan IS-IS.
Pada literatur tersebut, algoritma ini sering digambarkan sebagai sebuah algoritma yang tamak. Contohnya, buku Algorithmics Brassard and Bratley [1988,
pp. 87-92]mengulas ini pada bab tersebut dengan judul Greedy Algorithms. Encyclopedia of Operations Research and Management Science Gass and Harris
[1996, pp. 166-167] menggambarkan algoritma ini sebagai sebuah node labelling greedy algorithm dan sebuah algoritma yang tamak digambarkan sebagai a
heuristic algorithm that at every step selects the best choice available at that step without regard to future consequences Gass and Harris [1996, p. 264].
2.2.1 Definisi Algoritma Dijkstra
Pada dasarnya, algoritma ini merupakan salah satu bentuk algoritma greedy. Algoritma ini termasuk algoritma pencarian graf yang digunakan untuk
menyelesaikan masalah lintasan terpendek dengan satu sumber pada sebuah graf yang tidak memiliki cost sisi negatif, dan menghasilkan sebuah pohon lintasan terpendek.
Algoritma ini sering digunakan pada routing. Algoritma dijkstra mencari lintasan terpendek dalam sejumlah langkah. Algoritma ini menggunakan strategi greedy
sebagai berikut :
Untuk setiap simpul sumber source dalam graf, algortima ini akan mencari jalur dengna cost minimum antara simpul tersebut dengan simpul lainnya. Algoritma
juga dapat digunakan untuk mencari total biaya cost dari lintasan terpendek yang dibentuk dari sebuah simpul ke sebuah simpul tujuan. Sebagai contoh, bila simpul
pada graf merepresentasikan kota dan bobot sisi merepresentasikan jarak antara 2 kota yang mengapitnya, maka algoritma dijkstra dapat digunakan untuk mencari rute
terpendek antara sebuah kota dengan kota lainnya.
Universitas Sumatera Utara
2.2.2 Skema Umum Algoritma Dijkstra
Algoritma ini mencari panjang lintasan terpendek dari verteks a ke z dalam sebuah graf berbobot tersambung. Bobot dari rusuk i,j adalah wi,j0 dan label verteks x
adalah Lx. Hasilnya, Lz merupakan panjang lintasan terpendek dari a ke z.
Masukan: Sebuah graf berbobot tersambung dengan bobot positif. Verteks a sampai z. Keluaran: Lz, panjang lintasan terpendek dari a ke z.
1. procedure dijkstra w,a,z,L
2. La := 0
3. for semua verteks x a do