Anda di halaman 1dari 31

BAB VII

GRAF

Banyak persoalan yang diformulasikan dalam


terminologi objek dan hubungan antara objek-objek.
Sebagai contoh, diberikan peta rute jalan raya yang
menghubungkan kota-kota di Pulau Sumatera Selatan.
Orang mungkin bertanya: “Rute perjalanan manakah yang
tersingkat kalau saya ingin berangkat dari Palembang ke
Linggau ?”. Atau, adakalanya orang lebih tertarik mengenai
biaya daripada waktu, dengan mencari rute perjalanan yang
termurah dari Palembang ke Linggau. Persoalan menentukan
rute tersingkat ini lebih mudah diselesaikan dengan
memodelkan keterhubungan antar kota dalam bentuk graf
(graph). Kota dinyatakan dengan bulatan atau titik atau
simpul, sedangkan jalan yang menghubungkan antara dua
buah kota dinyatakan dengan garis atau sisi.
7.1. Definisi Graf
Graf G didefinisikan sebagai pasangan himpunan (V,E),
dimana :
V = Himpunan berhingga dan tidak kosong dari simpul-
simpul (vertices atau node)
= {v1, v2, .., vn}
E = Himpunan sisi (edges) yang menghubungkan
sepasang simpul.
= {e1, e2, .., en}

Graf 1
atau dapat ditulis dengan notasi G = (V,E).
Simpul pada graf dapat dinomori dengan huruf seperti v,
w, .. atau dengan bilangan asli 1, 2, ... atau gabungan
keduanya.
Jika e adalah sisi yang menghubungkan simpul v i dengan
simpul vj, maka e dapat ditulis sebagai e = (vi, vj).
Secara geometri gaf digambarkan sebagai
sekumpulan simpul di dalam bidang dua dimensi yang
dihubungkan dengan sekumpulan garis (sisi). Gambar 1
menunjukan dua buah graf G 1 dan G2.

Gambar 1. Graf (a) G1 dan Graf (b) G2

G1 adalah graf dengan himpunan simpul V dan himpunan


sisi E adalah :
V = {1, 2, 3, 4}
E = {(1,2), (1,3), (2,3), (2,4), (3,4)}
G2 adalah graf dengan himpunan simpul dan himpunan sisi
adalah :
V = {1, 2, 3}
E = {(1,2), (1,2), (1,3), (2,3), (3,3)}

Graf 2
Pada G2, sisi e1 = (1,2) dan sisi e2 = (1,2) dinamakan sisi-
ganda (multiple edges atau paralell edges) karena kedua sisi
ini menghubungi dua buah simpul yang sama, yaitu simpul
1 dan simpul 2. Sisi e5 = (3,3) dinamakan gelang atau
kalang (loop) karena simpul awal dan simpul akhirnya sama.
Graf yang tidak mengandung gelang dan sisi-ganda
dinamakan graf sederhana (simple graph). Garf G1 adalah
graf sederhana sedangkan G2 bukan. Graf yang
mengandung sisi-ganda dinamakan bahu-graf (multi-graph).
Jumlah simpul pada graf disebut kardinalitas graf dan
dinyatakan dengan n = |V| dan jumlah sisi dinyatakan
dengan m = |E| . Pada graf G 1 memunyai n = 4 dan m = 5,
sedangkan G2 mempunyai n =3 dan m =5. Jika n berhingga
jumlahnya, maka grafnya disebut graf terbatas. Graf dengan
n tidak berhingga disebut graf tidak berhingga. Graf pada
Gambar 2 adalah contoh graf tidak berhingga. Dalam buku
ini yang akan dibahas graf berhingga jadi istilah graf berarti
graf berhingga.

Gambar 2. Dua buah graf tidak berhingga

Graf 3
Definisi graf menyatakan bahwa V tidak boleh kosong,
sedangkan E boleh kosong. Jadi sebuah graf dimungkinkan
tidak mempunyai sisi tetapi simpulnya harus ada. Graf yang
himpunan sisinya merupakan himpunan kosong disebut graf
kosong (null graph atau empty graph) dan ditulis sebagai N n,
untuk n adalah jumlah simpul. Pada Gambar 3 menunjukkan
graf N4.

Gambar 3. Graf kosong N4


Berdasarkan adanya arah pada sisi, graf dibedakan atas :
1. Graf berarah (directed graph atau digraph)
Graf yang setiap sisinya diberikan orientasi arah. Pada
graf berarah (vj, vk) dan (vk, vj) menyatakan dua buah sisi
yang berbeda atau (vj, vk) ≠ (vk, vj) untuk sisi (vj, vk)
simpul vj dinamakan simpul asal (initial vertex) dan
simpul vk dinamakan simpul terminal (terminal vertex).
Gambar 4 merupakan contoh graf berarah. Graf berarah
sering dipakai untuk menggambarkan aliran proses, peta
lalu lintas suatu kota. Gambar 4 merupakan contoh graf
berarah.
2. Graf tidak berarah (undirected graf)

Graf 4
Graf yang sisinya tidak mempunyai orientasi arah. Pada
graf tidak berarah, urutan simpul yang dihubungkan oleh
sisi tidak diperhatikan. Jadi (v j, vk) = (vk, vj) adalah sisi
yang sama. Gambar 1 adalah graf tidak berarah.

Gambar 4. Contoh graf berarah


7.2. Contoh Terapan graf
Banyak persoalan yang dimodelkan dengan graf,
diantaranya:
1. Rangkaian listrik
2. Isomer senyawa kimia karbon
3. Perjalanan keliling dunia
4. Transaksi konkuren pada basis data terpusat
5. Pengujian program

7.3. Terminologi Graf


Dalam menerapkan graf, akan sering menggunakan
terminologi yang berkaitan dengan graf, diantaranya
sebagai berikut:
Ketetanggaan (adjacent)

Graf 5
Dua buah simpul dikatakan bertentangga bila
keduanya terhubung. Secara formal dinyatakan:
V1 bertetangga dengan v2 jika ve € E sehingga e = (v1, v2)
Pada Gambar 1(a), simpul 1 bertetangga dengan simpul 2
dan simpul 3, tetapi tidak bertetangga dengan simpul 4.

Bersisian (incidency)
Untuk sembarang sisi e = (vj, vk) dikatakan
e bersisian dengan simpul vj atau
e bersisian dengan simpul vk
Pada Gambar 1(a), sisi (2,3) bersisian dengan simpul 2 dan
simpul 3, tetapi sisi(1,2) tidak bersisian dengan simpul 4.

Gelang (self-loop)
Gelang atau kalang adalah sisi (u,v) yang bersisian terhadap
simpul yang sama, dengan kata lain u = v, sisi (3,3) atau e 5
pada Gambar 1(b) adalah gelang.

Simpul Terpencil (isolated vertex)


Simpul terpencil adalah simpul yang tidak mempunyai sisi
yang bersisian dengannya. Atau simpul terpencil adalah
simpul yang tidak satupun bertetangga dengan simpul
lainnya. Pada Gambar 5 simpul 4 adalah simpul terpencil.

Graf 6
Gambar 5. Simpul 4 adalah simpul terpencil
Derajad
Derajad suatu simpul adalah jumlah sisi yang bersisian
dengan simpul tersebut. Dilambangkan: d(v)
Pada Gambar 1 (a)
d(1) = d(4) = 2
d(2) = d(3) = 3
Simpul terpencil adalah simpul dengan d(v) = 0.
Simpul yang mempunyai gelang dihitung mempunyai dua
buah sisi yang bersisian dengannya sehingga graf pada
Gambar 1(b) d(3) = 4.
Simpul yang berderajad satu disebut anting-anting (pendant
vertex).
Pada graf berarah, pengertian derajad dibedakan menjadi
dua macam:
Din(vi) = derajad masuk = jumlah sisi yang masuk ke simpul
vi
Dout(vi) = derajad keluar = jumlah sisi yang keluar dari
simpul vi
sehingga
d(vi) = Din(vi) + Dout(vi)
Pada Gambar 4:
din(1) = 1; dout(1) = 1
din(2) = 1; dout(2) = 3
din(3) = 1; dout(3) = 1
din(4) = 2; dout(4) = 0

Graf 7
Lemma : jumlah derajad simpul pada suatu graf adalah
genap, yaitu dua kali jumlah sisi pada graf tersebut.
Lemma ini dikenal dengan Lemma jabat tangan
(handshaking Lemma). Layaknya orang berjabat tangan,
maka jumlah tangan yang berjabatan adalah genap dan
jumlah tangan yang berjabatan adalah dua kali jumlah
jabatan tangan yang terjadi.
Jumlah derajad seluruh simpul pada graf Gambar 1(a)
d(1) + d(2) + d(3) + d(4) = 2 + 3 + 3 +2 = 10 = 2 x jumlah
sisi = 2 x 5
jumlah derajad seluruh simpul pada graf Gambar 1(b)
d(1) + d(2) + d(3) = 3 + 3 + 4 = 10 = 2 x jumlah sisi = 2 x 5
Dari lemma di atas adalahdapat diturunkan teorema berikut:
Teorema : Untuk sembarang graf G, jumlah simpul yang
berderajad ganjil selalu genap.

Lintasan (path)
Lintasan dari simpul vp ke vq dalam G adalah rangkaian
simpul vp, vi1, vi2, .., vim, vq sehingga (vp, vi1), (vi1, vi2), .., (vim, vq)
adalah sisi-sisi dalam graf. Pada Gambar 1(a) lintasan
1,2,4,3 adalah lintasan dengan runtunan sisi (1,2), (2,4),
(4,3).
Lintasan sederhana adalah lintasan dengan semua simpul
yang berbeda kecuali mungkin simpul pertama dan simpul
akhir.
Pada Gambar 1(a)
Lintasan 1, 2, 4, 3 adalah lintasan sederhana.

Graf 8
Lintasan 1, 2, 4, 3, 2 bukan lintasan sederhana.
Panjang lintasan adalah jumlah sisi dalam lintasan tersebut.
Lintasan 1, 2, 4, 3 pada Gambar 1(a)memiliki panjang 3.
Siklus (cycle) atau Sirkuit (circuit)
Siklus atau sirkuit adalah lintasan sederhana dengan simpul
pertama sama dengan simpul terakhir.
Pada Gambar 1(a) 1, 2, 3, 1 adalah sirkuit. Panjang sirkuit
adalah jumlah sisi dalam sirkuit tersebut. Lintasan 1, 2, 3, 1
pada Gambar 1(a) memiliki panjang 3.

Keterhubungan (connected)
Dua buah simpul v1 dan simpul v2 disebut terhubung jika
terdapat lintasan dari v 1 ke v2. Graf tak berarah G disebut
terhubung jika untuk setiap pasang simpul v i dan vj dalam
himpunan V terdapat lintasan dari v i ke vj (yang juga harus
berarti ada lintsan dari vj ke vi). Jika tidak, maka G
disebutgraf tidak terhubung. Sebagai perjanjian setiap
simpul terhubung dengan dirinya sendiri. Jadi graf yang
hanya terdiri atas satu simpul saja (tidak ada sisi) juga
dikatakan graf terhubung. Kedua graf pada Gambar 1 adalah
graf terhubung. Graf pada Gambar 6 merupakan contoh
graf yang tidak terhubung.

Graf 9
Gambar 6. Graf tidak terhubung
Graf berarah G dikatakan terhubung jika graf tidak
berarahnya terhubung (graf tidak berarahnya diperoleh
dengan menghilangkan arahnya).
Dua simpul, u dan v, pada graf berarah G disebut terhubung
kuat jika terdapat lintasan berarah dari u ke v dan juga
lintasan berarah dari v ke u. Pada Gambar 4 simpul 1 dan
simpul 2 terhubung kuat.
Jika u dan v tidak terhubung kuat tetapi terhubung pada graf
tidak berarahnya, maka u dan v dikatakan terhubung lemah.
Pada Gambar 4 simpul 1 dan 3 terhubung lemah.
Graf berarah G disebut terhubung kuat apabila untuk setiap
pasang simpulsembarang u dan v di G, terdapat lintasan
dari simpul u ke simpul v, demikian juga dari simpul v ke
simpul u. Kalau tidak, G disebut graf terhubung lemah. Graf
pada Gambar 7 adalah graf terhubung kuat sedangkan
Gambar 4 adalah graf terhubung lemah.

Graf 10
Gambar 7. Graf berarah terhubung kuat
Pohon (tree)
Pohon adalah graf terhubung yang tidak mempunyai sirkuit.
Graf pada Gambar 8 adalah pohon.

Gambar 8. Pohon

Subgraf (subgraph) dan Komplemen Graf


Misalkan G = (V,E) adalah sebuah graf.

G1 = (V1, E1) adalah subgraf dari G jika V1 V dan E1 E


(Gambar 9 (b))
Komplemen dari subgraf G 1 terhadap graf G adalah graf

Graf 11
G2 = (V2, E2) sedemikian sehingga E2 = E – E 1dan V2 adalah
himpunan simpul yang angota-anggota E2 bersisian
dengannya (Gambar 9(c)).

Gambar 9 . (a) Graf G 1, (b) sebuah subgraf dari G 1, dan


(c) komplemen dari subgraf yang bersesuaian.
Jika graf tidak terhubung, maka graf tersebut terdiri atas
beberapa komponen. Komponen graf adalah jumlah
maksimum subgraf terhubung dalam graf G. Pada gambar
10 merupakan graf G yang mempunyai 3 buah komponen.
Graf terhubung hanya terdiri dari satu komponen.

Gambar 10 Graf Gyang mempunyai 3 komponen

Pada graf berarah, komponen terhubung kuat adalah jumlah


maksimum subgraf yang terhubung kuat. Graf pada Gambar
11 mempunyai dua bah komponen terhubung kuat.

Graf 12
Gambar 11. Graf G yang mempunyai 2 buah
komponen terhubung kuat
Subgraf Rentang (Spanning Subgraph)
Subgraf G’ = (V’,E’) dari G dikatakan subgraf rentang jika
V’=V (yaitu G’ mengandung semua simpul dari G). Pada
Gambar 12 G’ adalah sugraf rentang dari G, tetapi G” bukan
subgraf rentang dari G.

Gambar 12. (a) Graf G


(b) subgraf rentang dari G, dan
(c) bukan subgraf rentang dari G

Graf Isomorfik (Isomorphic Graph)


Dua buah graf, G1 dan G2 dikatakan isomorfik jika terdapat
korespondensi satu-satu antara simpul di G1 dan simpul di
G2, sedemikian sehingga jumlah sisi yang menghubungkan
dua buah simpul di G1 sama dengan jumlah sisi yang
menghubungkan dua buah simpul di G2. Atau, misalkan sisi
e bersisian dengan simpul u dan v di G1, maka e’ yang

Graf 13
berkoresponden di G2 harus bersisian dengan simpul u’ dan
v’ yang di G2 (Gambar 13).

Gambar 13. G1 isomorfik dengan G2,


tetapi G1 tidak isomorfik dengan G3
Simpul 1,2,3,dan 4 di G1 berkoresponden dengan simpul
a,b,c dan d di G2. Sisi (1,2), (2,3), (3,1), (3,4), (1,4) dan (2,4)
berkoresponden dengan sisi (a,b), (b,c), (c,d), (a,d), (a,c) dan
(b,d).
Panduan yang dapat digunakan untuk menyatakan
bahwa dua buah graf isomorfik haruslah memenuhi tiga
syarat :
1. Mempunyai jumlah simpul yang sama
2. Mempunyai jumlah sisi yang sama
3. Mempunyai jumlah simpul yang sama berderajad
tertentu.

Contoh graf pada Gambar 14 tidak isomorfik karena


syarat ketiga tidak terpenuhi. Di (a) terdapat dua simpul
anting-anting (berderajad 1) sedangkan di (b) hanya
terdapat satu.

Graf 14
Gambar 14. Dua buah graf yang tidak isomorfik

Graf Lengkap (Complete Graph)


Graf lengkap adalah graf yang setiap simpulnya mempunyai
sisi kesemua simpul lainnya.Graf lengkap dengan n buah
simpul dinyatakan Kn. Jumlah sisi pada graf lengkap dengan
n buah simpul adalah n(n-1)/2.

Gambar 15. (a) Graf lengkap dengan 4 simpul (K 4)


(b) Graf lengkap dengan 5 simpul (K 5)

Graf Teratur (Regular Graph)


Graf yang setiap simpulnya mempunyai derajad yang sama
disebut graf teratur. Apabila derajad setiap simpul adalah r,
maka graf tersebut disebut sebagai graf teratur derajad r.
Garf lengkap K n adalah graf teratur berderajad (n-1), jumlah
sisi pada graf teratur adalah nr/2.

Graf 15
Gambar 16. Graf teratur berderjad 3

Graf Bipartite (Bipartite Graph)


Graf G yang himpunan simpulnya dapatdipisah menjadi dua
himpunan bagian V 1 dan V2, sehingga setiap sisi pada G
menghubungkan sebuah simpul di V 1 ke sebuah simpul di V 2
disebut graf bipartite dan dinyatakan sebagai G(V 1,V2).
Dengan kata lain, setiap pasang simpul di V 1 (demikian juga
dengan simpul-simpul di V2) tidak bertetangga (Gambar 17).
Apabila setiap simpul di V 1 bertetangga dengan semua
simpul di V2, maka G(V 1, V2) disebut sebagai graf bipartite
lengkap (Gambar 18).

Gambar 17. Graf bipartite

Graf 16
Pada Gambar 18 merupakan contoh persoalan utilitas:
terdapat tiga buah rumah (H1, H2, dan H3) masing-masing
dihubungkan tiga buah utilitas: air (W), gas (G)dan listrik (E).

Gambar 18. Graf bipartite lengkap

Graf Planar (Plannar Graph)


Graf yang dapat digambarkan pada bidang datar dengan
sisi-sisi tidak saling memotong disebut graf planar. Graf K 4
pada Gambar 19 adalah graf lengkap dan juga merupakan
graf planar. Sedangkan K 5 bukan graf planar.

Gambar 19. (a) Graf planar, dan (b) Graf tidak planar

Graf Berbobot (Weighted Graph)


Graf berbobot adalah graf yang setiap sisinya diasosiasikan
dengan sebuah harga (bobot). Bobot pada tiap sisi dapat

Graf 17
menyatakan jarak antara dua buah kota., biaya perjalanan
antara dua buah kota, waktu tempuh pesan (message) dari
sebuah simpul komunikasi ke simpul komunikasi lain (dalam
jaringan komputer), ongkos produksi, dll. Gambar 20
menunjukkan contoh graf berarah yang berbobot.

Gambar 20. Graf berarah yang berbobot

7.4. Lintasan dan Sirkuit Euler


Lintasan Euler adalah lintasan yang melalui masing-masing
sisi tepat satu kali. Bila lintasan tersebut kembali ke simpul
asal membentuk lintasan tertutup (sirkuit), maka lintasan
tertutup itu dinamakan sirkuit Euler. Jadi, sirkuit Euler ialah
sirkuit yang melewati masing-masing sisi tepat satu kali.
Graf yang mempunyai sirkuit Euler disebut graf Euler. Graf
yang mempunyai lintasan Euler dinamakan juga graf semi-
Euler.
Lintasan Euler pada graf Gambar 21(a): 3,1,2,3,4,1
Lintasan Euler pada graf Gambar 21(b): 1,2,4,6,2,3,6,5,1,3,5
Lintasan Euler pada graf Gambar 21(c):
1,2,3,4,7,3,5,7,6,5,2,6,1

Graf 18
Lintasan Euler pada graf Gambar 21(d):
a,c,f,e,c,b,d,e,a,d,f,b,a

Gambar 21. (a) dan (b) Graf yang mempunyai lintasan Euler (graf semi-Euler)
(c) dan (d) Graf yang mempunyai sirkuit Euler (graf Euler)
(e) Graf yang tidak memiliki lintasan dan sirkuit Euler

Teorema: Graf tidak berarah memiliki lintasan Euler jika


hanya jika terhubung dan memiliki dua buah
simpul berderajad ganjil atau tidak sama sekali.
Bukti:
Misalkan G memiliki lintasan Euler, G jelas terhubung. Jika
lintasan Euler dilalui, maka pada setiap simpul terdapat dua
buah sisi yang bersisian, kecuali pada simpul awal dan
simpul akhir. Jadi, setiap simpul, selain simpul awal dan
simpul akhir, harus berderajad genap.Jika simpul awal dan
simpul akhir sama, maka sirkuit Euler.
Akibat dari teorema ini: graf tidak berarah memiliki sirkuit
Euler jika dan hanya jika terhubung dan semua simpulnya
berderajad genap. Atau dengan teorema:

Graf 19
Teorema: graf tidak berarah G adalah graf Euler (memiliki
sirkuit Euler) jika dan hanya jika setiap simpul berderajad
genap.
Dengan menggunakan teorema yang terakhir ini jelaslah
masalah jembatan Kőnigsberg tidak memiliki sirkuit Euler
karena semua simpul berderajad ganjil.
Untuk membuat graf G yang mempunyai lintasan Euler,
harus memenuhi kondisi :
1. Graf terhubung
2. Graf tidak memiliki simpul derajad ganjil sama sekali
atau memiliki dua buah simpul berderajad ganjil.
Gambar 22 merupakan graf G yang memenuhi kedua kondisi
tersebut (mempunyai lintasan Euler).
Untuk membuat graf G yang mempunyai sirkuit Euler, harus
memenuhi kondisi :
1. Graf terhubung
2. Semua simpul pada graf berderajad genap.

Gambar 22. Graf yang memiliki lintasan Euler

Graf 20
Teorema: Graf berarah G memiliki sirkuit Euler jika dan
hanya jika Gterhubung dan setiap simpul memiliki derajad-
masuk dan derajad-keluar sama. G memiliki lintasan Euler
jika dan hanya jika G terhubung dan setiap simpul memiliki
derajad-masuk dan derajad-keluar sama kecuali dua simpul,
yang pertama memiliki derajad-keluar satu lebih besar dari
derajad-masuk, dan yang kedua memiliki derajad-masuk
satu lebih besar dari derajad-keluar.
Contoh terapan sirkuit Euler adalah persoalan tukang pos.
Seorang tukang pos pekerjaannya mengantarkan surat. Oleh
karena itu, ia harus melalui semua jalan yang ada pada
daerah tertentu dan kembali ke tempat awal. Pada Gambar
23 slah satu sirkuit Euler yang dilalui oleh tukang pos adalah
A,

Gambar 23. Graf persoalan tukang pos

7.5. Lintasan dan Sirkuit Hamilton


Lintasan Hamilton adalah lintasan yang melalui tiap simpul
hanya boleh satu kali. Bila lintasan itu kembali ke simpul
asal membentuk lintasan tertutup (sirkuit), maka lintasan

Graf 21
tertutup itu dinamakan sirkuit Hamilton. Jadi sirkuit Hamilton
adalah sirkuit yang melalui tiap simpul tepat satu kali,
kecuali simpul asal (sekaligus simpul akhir) yang dilalui dua
kali. Graf yang memiliki sirkuit Hamilton dinamakan graf
Hamilton, sedangkan graf yang hanya memiliki lintasan
Hamilton disebut graf semi-Hamilton (Gambar 24).

Gambar 24. (a) graf yang tidak memiliki lintasan


Hamilton
(b)Graf yang memiliki lintasan Hamilton
(c) Graf yang memiliki sirkuit Hamilton
Contoh terapan sirkuit Hamilton adalah masalah pedagang
keliling (travelling salesperson problem atau TSP). Seorang
pedagang harus mengunjungi setiap kota satu kali dan
kembali ke kota asal dengan jarak tempuh terpendek. Jika
graf yang dilalui adalah graf pada Gambar 23, maka
kemungkinan sirkuit Hamiltonnya adalah :
(a) A,B,E,D,C,F,A dengan panjang 22
(b) A,B,C,D,E,F,A dengan panjang 23
(c) A,F,C,D,E,B,A dengan panjang 22
Dan seterusnya. TSP bertujuan mencari sirkuit
Hamilton yang memunyai panjang terpendek.
Teorema :
1. Setiap graf lengkap adalah graf Hamilton.

Graf 22
2. Graf berarah yang terhubung kuat adalah graf lengkap
dan graf Hamilton.
3. Syarat cukup (bukan syarat perlu) supaya graf sederhana
Gdengan n (≥ 3) buah simpul adalah graf Hamilton
adalah bila derajad tiap simpul paling sedikit n/2 (yaitu
d(v) ≥ n/2) untuk setiap simpul v digraf G).
4. Dalam graf lengkap G dengan n buah simpul (n ≥ 3),
terdapat (n-1)/2 buah sirkuit Hamilton.
5. Dalam graf lengkap G dengan n buah simpul (n ≥ 3 dan n
ganjil), terdapat (n-1)/2 buah sirkuit Hamilton yang saling
lepas (tidak ada sisi beririsan). Jika n genap dan n ≥ 4,
maka terdapat (n-2)/2 buah sirkuit Hamilton yang saling
lepas.
Catatan:
1. Setiap lintasan Hamilton pada graf dengan n buah simpul
terdiri dari n-1 buah sisi.
2. Setiap sirkuit Hamilton pada graf dengan n buah simpul
terdiri dari n buah sisi.

7.6. Representasi Graf


Representasi graf di dalam memori yang paling sering
digunakan ada tiga, yaitu: matriks ketetanggaan, senarai
ketetanggaan, dan bahu senarai ketetanggaan.
1. Matriks Ketetanggaan (adjacency matrix)
Merupakan representasi yang paling umum. Misalkan G =
(V,E) adalah graf dengan n simpul, n ≥ 1. Matriks

Graf 23
ketetanggaan G adalah matrik dua dimensi yang
berukuran n x n. Bila matriks tersebut dinamakan A,
maka:
A[i,j) = 1, jika simpul i bertetangga dengan simpul j.
A[i,j) = 0, jika simpul i tidak bertetangga dengan
simpul j.

Deklarasi :
const n = ........ {jumlah simpul graf G}
type graf = array[1..n, 1..n] of integer {atau
boolean}
A : graf

Matriks ketetanggaan untuk graf pada Gambar 1(a) dan


Gambar 1(b) seperti di bawah ini:
1 2 3 4 1 2 3
1 0 1 1 0 1 0 1 1
2 1 0 1 1 2 1 0 1
3 1 1 0 1 3 1 1 1
4 0 1 1 0

Matriks ketetanggaan untuk graf berarah pada


Gambar 4:
1 2 3 4
1 0 1 0 0
2 1 0 1 1
3 0 0 0 1
4 0 0 0 0

Graf 24
Untuk graf berbobot, A[i,j] berisi bobot tiap sisi yang
menghubungkan simpul i dengan simpul j. Matriks
ketetanggaan untuk graf berbobot pada Gambar 20.
1 2 3 4
1 ∞ 8 9 5
1
2 ∞ ∞ ∞
0
3 9 6 ∞ ∞
4 ∞ ∞ ∞ ∞
Tanda “∞” menyatakan bahwa tidak ada sisi dari simpul i ke
simpul j atau dari simpul i ke simpul i itu sendiri.
2. Senarai Ketetanggaan (adjacency list)
Dengan representasi ini, n baris matriks ketetanggaan
disajikan sebagai n buah senarai berkait. Elemen-elemen
pada senarai i menyatakan simpul-simpul yang bertetangga
dengan simpul i.

Deklarasi :
const n = ........ {jumlah simpul graf G}
type elemen_senarai = pointer to elemen
type elemen : <simpul: integer,
Lalu : elemen_senarai >
Kepala_senarai: array[1..n] of integer elemen_senarai

Representasi graf tidak berarah pada Gambar 1(a) dan


Gambar 4 diperlihatkan masing-masing pada Gambar 25(a)
dan Gambar 25(b).

Graf 25
Gambar 25 (a) senarai ketetanggaan untuk graf pada Gambar 1(a)
(b) senarai ketetanggaan untuk graf pada Gambar 4
Selain dengan larik, alamat kepala senarai dapat juga
dinyatakan dalam senarai berkait (Gambar 26), dengan
deklarasi adalah:

Deklarasi :
const n = ........ {jumlah simpul graf G}
type elemen_senarai = pointer to elemen
type elemen : <simpul: integer,
Lalu1 : elemen_senarai>
type Kepala_senarai = pointer to kepala
type kepala : <awal : elemen_senarai,
Lalu2 : kepala_senarai>

Graf 26
Gambar 26. Variasi lain senarai ketetanggaan
untuk graf pada Gambar 2(a)

Derajad tiap simpul dengan representasi senarai


ketetanggaan ditentukan sebagai berikut:
1. Graf tidak berarah : d(vi) = jumlah elemen senarai pada simpul
i
2. Graf berarah : dout(vi) = jumlah elemen senarai pada
simpul i
Menentukan derajad-masuk untuk graf berarah lebih sulit
daripada derajad_keluarnya. Kita harus membangun senarai
ketetanggaan balikan (inverse adjacency). Pada senarai
balikan ini, tiap simpul i mempunyai satu buah senarai. Tiap
senarai mengandung elemen yang menyatakan simpul yang
masuk ke simpul i. Senarai ketetanggaan balikan untuk graf
berarah pada Gambar 4 dapat dilihat pada Gambar 27.

Graf 27
Gambar 27. Senarai ketetanggaan balikan
untuk graf berarah pada Gambar 4

Berdasarkan graf ketetanggan balikan, derajad-masuk


simpul i adalah jumlah elemen senarai pada simpul i.
Derajad-masuk simpul 4 pada Gambar 25 adalah 2, derajad-
masuk untuk simpul 1 adalah 1, dan seterusnya.

Dua macam senarai ketetanggan seperti di atas dapat


disederhanakan menjadi senarai ortogonal.

3. Senarai Ortogonal
Representasi dengan senarai ortogonal sama seperti
representasi matriks jarang (sparse matrix). Dengan
representasi ini, terdapat senarai dummy-baris dan senarai
dummy-kolom. Elemen senarai dummy-baris menyimpan
alamat elemen pertama baris, sedangkan elemen senarai
dummy-kolom menyimpan alamat elemen pertama senarai
kolom.

Graf 28
Deklarasi :
const n = ........ {jumlah simpul graf}
type elemen_senarai = pointer to elemen
type elemen : <simpul_i: integer,
simpul_j: integer,
Lalu_kolom : elemen_senarai
Lalu_baris : elemen_senarai >
Senarai_ortogonal = elemen_senarai

Senarai ortogonal untuk graf Gambar 4 dapat dilihat pada


Gambar 28.

Gambar 28. Senarai ortogonal untuk graf pada Gambar 4


Representasi graf dengan senarai ortogonal ini juga berlaku
untuk graf tidak berarah.

7.7. Penelusuran Graf


Kebanyakan persoalan yang dimodelkan dengan graf
membutuhkan penelusuran atau pencarian yang sistematis.
Misalkannya menemukan sirkuit Hamilton, menemukan
lintasan terpendek, dan sebagainya. Penelusuran graf
berarti mengunjungi setiap simpul di dalam graf dan
memeriksa setiap sisi. Dengan menelusuri graf, kita dapat

Graf 29
menentukan apakah suatu graf terhubung atau tidak. Jika
graf tidak terhubung, berapa buah komponennya dan
sebagainya.
Terdapat dua macam skema penelusuran graf, yaitu:
1. Pencarian mendalam (depth first search - DFS)
2. Pencarian melebar (breadth first search – BFS)
Pencarian Mendalam (DFS)
Misalkan penelusuran dimulai dari simpul v, simpul
berikutnya yang dikunjungi adalah simpul w yang
bertetangga dengan simpul v, lalu pencarian mendalam
dimulai lagi secara rekursif dari simpul w. Ketika sampai
simpul u sedemikian sehingga semua simpul yang
bertetangga dengannya telah dikunjungi, pencarian dirunut-
balik ke simpul terakhir yang dikunjungi sebelumnya dan
mempunyai simpul w yang belum dikunjungi. Pencarian
mendalam dimulai lagi dari w. Pencarian berakhir bila tidak
ada lagi simpul yang belum dikunjungi yang dapat dicapai
dari simpul yang telah dikunjungi.
Sebagai contoh, misalnya graf yang dikunjungi adalah graf
G pada Gambar 29(a), bila kunjungan dimulai dari simpul 1.
Maka urutan simpul yang dikunjungi secara DFS adalah :
1, 2, 4, 8, 5, 6, 3, 7
Bila graf diubah sedikit menjagi graf pada Gambar 29(b),
maka urutan simpul yang dikunjungi (mulai dari simpul 1)
adalah :
1, 2, 3, 6, 8, 4, 5, 7

Graf 30
Gambar 29(a) graf G dan (b) Graf G setelah ditambah
sisi(2,3)

Pencarian Melebar (BFS)


Penelusuran graf secara BFS berbeda dengan DFS. Bila
penelusuran dimulai dari simpul v, maka semua simpul yang
bertetangga dengan simpul v dikunjungi terlebih dahulu.
Selanjutnya, simpul yang belum dikunjungi dan bertetangga
dengan simpul-simpul tadi dikunjungi, demikian seterusnya.
Dengan BFS, maka bila graf G pada Gambar 29(a) dikunjungi
dari simpul 1, maka urutan simpul yang dikunjungi adalah :
1, 2, 3, 4, 5, 6, 7, 8
Untuk graf pada gambar 29(b), urutan simpul akan tetap
sama seperti di atas.

Graf 31

Anda mungkin juga menyukai