Bab 4.Teori Graf

44
Teori Graf Teori graf merupakan pokok bahasan matematika yang telah tua usianya (teori ini muncul pertama sekali pada tahun 1736) namun masih dipelajari hingga saat ini, ini disebabkan penerapan teori ini dalam pemrograman komputer. Selain dalam pemrograman komputer teori graf juga diterapkan dalam ilmi kimia, operasi penelitian, teknik elektro, linguistik, dan ekonomi. Graf digunakan untuk merepresentasikan objek-ojek diskrit dan hubungan antara objek-objek tersebut. Beberapa contoh graf yang sering dijumpai dalam kehidupan sehari-hari antara lain: struktur organisasi, bagan alir pengambilan mata kuliah, peta, rangkaian listrik, dan lain-lain. Peta yang merupakan contoh graf yang sering kita perhatikan dapat menolong kita untuk melihat hubungan jalan raya yang menghubungkan kota-kota dalam peta itu, juga dapat dilihat jarak (dalam skala) jalan-jalan itu. Sehingga dengan melihat peta kita dapat menentukan rute perjalanan Bab 3

Transcript of Bab 4.Teori Graf

Page 1: Bab 4.Teori Graf

Teori Graf

Teori graf merupakan pokok bahasan matematika yang telah tua usianya (teori ini muncul pertama sekali pada tahun 1736) namun masih dipelajari hingga saat ini, ini disebabkan penerapan teori ini dalam pemrograman komputer. Selain dalam pemrograman komputer teori graf juga diterapkan dalam ilmi kimia, operasi penelitian, teknik elektro, linguistik, dan ekonomi. Graf digunakan untuk merepresentasikan objek-ojek diskrit dan hubungan antara objek-objek tersebut. Beberapa contoh graf yang sering dijumpai dalam kehidupan sehari-hari antara lain: struktur organisasi, bagan alir pengambilan mata kuliah, peta, rangkaian listrik, dan lain-lain. Peta yang merupakan contoh graf yang sering kita perhatikan dapat menolong kita untuk melihat hubungan jalan raya yang menghubungkan kota-kota dalam peta itu, juga dapat dilihat jarak (dalam skala) jalan-jalan itu. Sehingga dengan melihat peta kita dapat menentukan rute perjalanan mana yang harus kita ikuti agar lebih cepat sampai ke tujuan.

Tujuan Instruksional Umum

Agar mahasiswa memahami teori graf dan penerapannya dalam merepresentasikan objek-objek diskrit dan dalam hubungannya pemrograman, misalnya dengan algoritma lintasan terpendek.

Bab 3

Page 2: Bab 4.Teori Graf

Bab 3. Teori Graf

Tujuan Instruksional Khusus

Setelah mempelajari topik-topik bahasan dalam bab ini, mahasiswa diharapkan mampu:1. Membedakan directed dan undirected graf.2. Memahami istilah-istilah dalam graf seperti, edge, verteks, path, graf

berarah, graf tidak berarah.3. Memahami aplikasi siklus Hamilton untuk memecahkan masalah the

traveling sales person.4. Menentukan siklus Euler dan siklus Hamilton dari suatu graf.5. Menerapkan algoritma Dijkstra untuk memecahkan masalah lintasan

terpendek dalam kasus the travelling sales person.6. Menuliskan representasi matriks menurut adjacency matriks dan

incidence matriks.7. Menentukan dua graf yang diberikan isomorfis dan identik.8. Memahami aplikasi graf dalam pemograman komputer.

Topik-topik bahasan

3.1. Pendahuluan3.2. Graf tak-berarah dan berarah3.3. Lintasan dan siklus3.4. Siklus Hamilton dan masalah travelling sales-person.3.5. Algoritma lintasan terpendek.3.6. Representasi graf3.7. Keisomorfisan graf3.8. Graf bidang.3.9. Bilangan ErdosRingkasan BabSoal-soal Latihan

100

Page 3: Bab 4.Teori Graf

Bab 3. Teori Graf

3.1. Pendahuluan

Perhatikan gambar 3.1 di bawah ini. Gambar 3.1 menunjukkan peta lokasi 10 (A, B, C, D, E, F, G, H, I, J) kota dalam suatu propinsi di negara tertentu.

Gambar 3.1. Peta 10 kota A, B, C,…, I dalam suatu daerah.

Peta di atas dapat digambar ulang sebagai sebuah graf seperti gambar 3.2 berikut:

Gambar 3.2. Graf yang mewakili peta pada gambar 3.1

Dalam graf terdapat titik-titik yang dihubungkan oleh garis-garis. Titik-titik ini disebut verteks (simpul), sedangkan garis-garis ini disebut edges (sisi). Label dari verteks adalah A, B, C, …, J. Verteks-verteks (kota) ini dapat juga disimbolkan dengan A=v0, B=v1, C=v2, …, J=v9 Sedangkan label dari edges adalah e0, e1,…,e13. Jika kita mengadakan perjalanan dari kota A hingga ke J, dengan lintasan tertentu, maka kita mengambil lintasan (path) lengkap.

B

C

D

E

F

G H

I J

A

e2C

DE

FG

HI

J

A

e3e4 e5 e6

e9 e10 e11

99e12 e13 e14

B e1

e7 e8

101

Page 4: Bab 4.Teori Graf

Bab 3. Teori Graf

Definisi Graf:Secara sederhana sebuah graf adalah merupakan kumpulan dari verteks-verteks, bersama-sama dengan beberapa edge yang menghubungkan verteks-verteks itu. Sebuah graf adalah sebuah objek G=(V,E), dimana V adalah sebuah himpunan terbatas dan E adalah kumpulan dari subset dari V. Elemen-elemen dari V disebut verteks dan elemen-elemen dari E disebut edges. Dua verteks v,w V disebut berdekatan (adjacent) jika (v,w) E; dengan kata lain, jika v dan w dihubungkan dengan sebuah edge.

3.2 Graf tak-berarah dan berarah

Graf tak berarah.

Sebuah graf tak-berarah G (directed graph) terdiri dari himpunan verteks V (simpul) dan himpunan edges E sedemikian hingga masing-masing edges e E berhubungan dengan pasangan tak berurutan dengan verteks. Jika ada edge tertentu e menghubungkan verteks v dan w, kita menulis e=(v,w) atau e=(w,v). Dalam konteks ini (v,w) menyatakan sebuah edge antara v dan w dalam graf tak-berarah dan bukan pasangan teratur.

Graf berarah.

Sebuah graf berarah G (directed graph) terdiri dari himpunan verteks V (simpul) dan himpunan edges E sedemikian hingga masing-masing edges e E berhubungan dengan pasangan berurutan dengan verteks. Jika ada edge tertentu e menghubungkan verteks v dan w, kita menulis e=(v,w). Pada gambar 3.3 berikut ditunjukkan graf berarah. Graf ini merupakan gambar yang sama dengan graf pada gambar 3.2, kecuali dengan adanya panah yang membedakan graf berarah dengan graf tak-berarah.

102

Page 5: Bab 4.Teori Graf

Bab 3. Teori Graf

Gambar 3.3. Graf berarah.

Cara menuliskan graf.

Jika G adalah sebuah graf (directed atau undirected graph) berhubungan dengan verteks V dan edges E kita dapat menulis graf tersebut sebagai G=(V,E)

Contoh 3.1.Perhatikan graf pada gambar 3.2. Nyatakan semua edges dalam verteks, dan himpunan E dan V dan nyatakan graf tersebut sebagai graf G.Jawab:e1 = (v0,v1)= (v1,v0) e2 = (v0,v2)= (v2,v0) e3 = (v1,v4)= (v4,v1) e4 = (v1,v3)= (v3,v1)e5 = (v2,v3)= (v3,v2) e6 = (v2,v9)= (v9,v2) e7 = (v4,v3)= (v3,v4) e8 = (v9,v3)= (v3,v9)e9 = (v4,v5)= (v5,v4) e10 = (v4,v6)= (v6,v4) e11 = (v3,v6)= (v6,v3) e12 = (v7,v9)= (v9,v7)e13 = (v5,v8)= (v7,v5) e14 = (v6,v8)= (v8,v6)e15 = (v7,v6)= (v6,v7)E = {e1,e2,e3,e4,e5,e6,e7,e8,e9,e9,e10,e11,e12,e13,e14,e15}V = {v0,v1,v2,v3,v4,v5,v6,v7,v8,v9}G=({v0,v1,v2,v3,v4,v5,v6,v7,v8,v9},{e1,e2,e3,e4,e5,e6,e7,e8,e9,e9,e10,e11,

e12,e13,e14,e15})Contoh 3.2.Perhatikan graf pada gambar 3.3. Nyatakan semua edges dalam verteks.Jawab.

e2C

DE

FG

HI

J

A

e3e4

e5 e6

e9 e10 e11

99e12 e13 e14

B e1

e7 e8

103

Page 6: Bab 4.Teori Graf

Bab 3. Teori Graf

e1 = (v1,v0) e2 = (v0,v2) e3 = (v1,v4) e4 = (v1,v3)e5 = (v2,v3) e6 = (v2,v9) e7 = (v4,v3) e8 = (v3,v9)e9 = (v4,v5) e10 = (v4,v6) e11 = (v3,v6) e12 = (v9,v7)e13 = (v6,v8) e14 = (v8,v6)e15 = (v7,v6)

Jika e1 dan e2 keduanya berhubungan dengan pasangan verteks (v1,v2), maka verteks e1 dan e2 disebut edge paralel (sejajar). Sebuah edge e yang berawal dan berakhir di verteks v, e=(v,v), maka verteks e disebut loop. Jika ada tidak ada satupun edge yang dibuhungkan dengan sebuah verteks v maka verteks v disebut verteks terisolasi (isolated vertex). Sebuah graf yang tidak memiliki edge paralel maupun loop, disebut graf sederhana (simple graph).

Sebuah graf dimana semua edgenya merupakan sebuah angka yang menyatakan nilai (panjang) dari edge itu disebut weighted graph (graf bernilai). Panjang suatu lintasan dapat dihitung yaitu merupakan jumlah dari semua edge yang dilalui.

Contoh 3.3.Lihat graf berikut ini. Dari segala kemungkinan lintasan dari a ke e tentukan panjang lintasannya.

Gambar 3.4. Graf untuk contoh soal 3.3.

b

8

6a

4

d

12

9

5

2

36

4

e

c

104

Page 7: Bab 4.Teori Graf

Bab 3. Teori Graf

Ada 6 kemungkinan lintasan yang ditabelkan pada tabel berikut. Misalnya untuk lintasan pertama: (a,b)+(b,c)+(c,d)+(d,e) = 8+6+3+4 = 21.

Lintasan Panjanga,b,c,d,ea,b,d,c,ea,c,b,d,ea,c,d,b,ea,d,b,c,ea,d,c,b,e

212824262722

Contoh soal 3.3 merupakan salah satu penerapan sebuah graf yaitu untuk menentukan lintasan terpendek. Dalam teori graf masalah ini disebut sebagai the travelling salesperson problem. Seorang sales yang ingin menjual produknya kepada pelanggan di sejumlah kota, maka dia akan membentuk sebuah graf untuk semua kota-kota yang akan dikunjungi. Dari segala kemungkinan rute yang akan dilalui, dan dengan mempertimbangkan panjang jalan dari masing-masing rute yang akan dilalui itu, maka dia harus memutuskan rute mana yang harus dilalui agar perjalanannya efisien (lintasan yang dilalui adalah jarak terpendek).

Contoh 3.4: Kemiripan GrafContoh berikut berhubungan dengan masalah mengelompokkan objek-objek ke dalam kelompok-kelompok didasarkan atas sifat-sifat objek itu. Misalnya suatu masalah akan dikerjakan dengan bahasa BASIC. Orang berbeda akan menuliskan program yang berbeda untuk menyelesaikan hal yang sama. Perbedaan yang dilakukan bisa jadi dalam hal jumlah baris program itu, juga jumlah perintah GOTO yang digunakan dan jumlah panggilan subrutin. Misalkan ada 5 programer menghasilkan 5 program yang diberikan pada tabel berikut:

105

Page 8: Bab 4.Teori Graf

Bab 3. Teori Graf

Program Jumlah baris Jumlah perintah GOTO

Jumlah subrutin

12345

6641689075

201053412

128514

Program ke-1 hingga ke-5 merupakan verteks v1,v2,v3,v4 dan v5. Verteks v berhubungan ketiga sifat-sifat jumlah baris (p1), jumlah GOTO (p2) dan jumlah subrutin(p3). Sedangkan untuk verteks w sifat-sifat itu disimbolkan dengan q1,q2, dan q3. Nilai edge untuk verteks v dan w, s(v,w), didefinisikan sebagai s(v,w) = |p1-q1|+|p2-q2|+|p3-q3|. Nilai dari s(v,w) menyatakan tingkat kemiripan dari dua program. Jika nilai s kecil maka dua program disebut mirip, sedangkan kalau nilai s besar maka dua program tsb tidak mirip. Dari definisi ini dapat dihitung nilai dari masing-masing edge sbb:

s(v1,v2) = 36 s(v1,v3) = 24s(v1,v4) = 42 s(v1,v5) = 30s(v2,v3) = 38 s(v2,v4) = 76s(v2,v5) = 48 s(v3,v4) = 54s(v3,v5) = 20 s(v4,v5) = 46

Bila kriteria nilai kemiripan itu misalnya ditentukan s=25 (rata-rata dari s(v3,v5) = 20 dan s(v1,v5)=30), maka program-program yang mirip adalah v1,v3

dan v5. sedangkan program 2 dan 4 tidak mirip dengan program yang lain.

Graf lengkap.

Graf lengkap dengan n verteks, dinyatakan sebagai Kn, adalah graf sederhana dimana ada edge diantara tiap-tiap pasangan verteks.

Contoh 3.5.Graf berikut adalah graf lengkap K4.

106

Page 9: Bab 4.Teori Graf

Bab 3. Teori Graf

Gambar 3.5. Graf lengkap K4.

Graf bipartisi.

Sebuah graf G=(V,E) adalah graf bipartisi jika himpunan verteks V dapat dipartisi menjadi dua sub-himpunan V1 dan V2 sedemikian hingga masing-masing edge E ada pada setiap verteks dalam V1 dan V2. Graf bipartisi lengkap dengan m dan n verteks, disimbolkan Km,n adalah graf sederhana dimana verteksnya dapat dipartisi menjadi dua verteks V1 dengan m verteks dan V2 dengan n verteks dimana ada edge pada setiap pasangan verteks.

Contoh 3.6.Graf (a) berikut adalah graf bipartisi dimana V1={ v1,v2,v3} dan V2=(v4,v5), sedangkan gambar (b) merupakan graf bipartisi lengkap K2,4.

(a) (b)

Gambar 3.6. Graf bipartisi tidak lengkap (a) dan bipartisi lengkap (b).

v1

v2

v3

v4

v5

v1

v2 v5

v4

v6

107

v3

Page 10: Bab 4.Teori Graf

Bab 3. Teori Graf

3.3 Lintasan dan siklus

Misalkan v0 dan v v0 adalah verteks-verteks dalam sebuah graf. Sebuah lintasan dari v v0 ke v vn dengan panjang n adalah sebuah deretan dengan n+1 verteks dan n edge mulai dari verteks v0 dan berakhir di vn,

(v0, e1, v1, e2,…, vn-1,en,vn),

dimana edge ei ada pada verteks vi-1 dan vi untuk i=1,2,…,n.

Contoh 3.7.Tentukan sebuah lintasan dengan panjang 4 dari verteks 1 ke verteks 2.

Gambar 3.7. Graf untuk contoh soal 3.7.

Lintasan dengan panjang 4 adalah (1,e1,2,e2,3,e3,4,e4,2).

Sebuah graf adalah terhubung jika pada setiap verteks yang diberikan, v dan w, ada lintasan dari v ke w. Contohnya graf pada contoh soal 3.7 adalah graf terhubung karena ada lintasan dari v ke w yang diberikan.

Subgraf.

Misalkan G=(V,E) adalah sebuah graf. (V’,E’) adalah subgraf dari G jika:a. V’ V dan E’ E.

e3

3

e8

e7

6

5

1

e1

2e2

e5

e4

e6

7

4

108

Page 11: Bab 4.Teori Graf

Bab 3. Teori Graf

b. Untuk setiap edge e’E, jika e’ menghubungkan v’ dan w’, maka v’,w’V’.

Lintasan sederhana dan siklus.

Misalkan v dan w ada dalam graf G. Sebuah lintasan sederhana dari v ke w adalah sebuah lintasan tanpa ada verteks yang berulang. Sebuah siklus (sirkuit) adalah sebuah lintasan dengan panjang bukan nol dari v ke v tanpa ada edge yang berulang. Sebuah siklus sederhana adalah sebuah siklus dari v ke v dimana, kecuali verteks awal dan terakhir, tidak ada verteks yang berulang.

Contoh 3.8.Perhatikan graf pada gambar 3.7. Tentukan yang mana merupakan lintasan sederhana, siklus dan siklus sederhana?Jawab.Tabel berikut ini meringkaskan lintasan yang merupakan lintasan sederhana, siklus dan siklus sederhana.

Lintasan Lintasan sederhana?

Siklus? Siklus sederhana

(6,5,2,4,3,2,1)(6,5,2,4)(2,6,5,2,4,3,2)(5,6,2,5)(7,6)

TidakYaTidakTidakYa

TidakTidakYaYaTidak

TidakTidakTidakYaTidak

Masalah Jembatan Königsberg.

Masalah jembatan Königserg adalah masalah yang pertama kali menggunakan graf pada tahun 1736 yang dikemukan oleh Leonhard Euler. Di kota Königserg (sekarang Kaliningrad Rusia) ada dua pulau kecil dalam di dalam sungai Pregel yang dihubungkan sebuah jembatan dan ada empat jembatan lainnya menghubungkan ke dua pulau dengan daratan, seperti ditunjukkan oleh gambar 3.8 berikut. Dimana di samping gambar tersebut diberikan graf yang berhubungan.

109

Page 12: Bab 4.Teori Graf

Bab 3. Teori Graf

Gambar 3.8. Jembatan Könisberg dan representasi grafnya.

Siklus Euler

Jika sebuah graf G memiliki sebuah siklus Euler, maka G adalah graf terhubung dan setiap verteks memiliki derajat genap. Dengan kata lain jika G adalah graf terhubung dan setiap verteksnya berderajat genap, maka G memiliki siklus Euler. Jika G adalah sebuah graf dengan m edge dan vertices {v1,v2,…,vn}, maka

Dengan kata lain, jumlah derajat dari semua verteks dalam graf itu adalah genap.

Bila kita melihat graf di kanan gambar 6.8, dapat dilihat bahwa semua verteks (A, B, C dan D) berderajat ganjil, dimana (A) = 3, (B) = 5, (C) = 3, (D) = 3. Sehingga graf tersebut tidak memiliki siklus Euler. Pemberian istilah siklus Euler, untuk menghormati Leonhard Euler yang pertama sekali menulis dan menjelaskan graf berhubungan dengan jembatan Königsberg.

Contoh 3.9.Misalkan G adalah graf pada gambar 3.8, periksalah apakah G memiliki sebuah siklus Euler? Jika ada sebutkan salah satunya.

B C

A

sungai pregel

D

A

C

B

D

110

Page 13: Bab 4.Teori Graf

Bab 3. Teori Graf

Gambar 3.8. Graf untuk contoh soal 3.9.

Kita melihat bahwa

(v1)=(v2)=(v3)=(v5)= 4,

dan

(v4) = 6, (v6)=(v7) = 2.

Karena semua verteks berderajat genap maka dari definisi, graf pada gambar 3.8 memiliki siklus Euler, yaitu:

(v6,v4,v7,v5,v1,v3,v4,v1,v2, v5,v4,v2,v3,v6).

Sebuah graf mempunyai sebuah lintasan tanpa pengulangan edge dari v ke w (vw) yang berisi semua edge dan verteks jika dan hanya jika graf itu terhubung dan v dan w adalah semua verteks yang memiliki derajat ganjil.

Jika sebuah graf G berisi sebuah siklus dari v ke v, maka G berisi sebuah siklus sederhana dari v ke v.

v2

v1

v5

v3

v4

v7v6

111

Page 14: Bab 4.Teori Graf

Bab 3. Teori Graf

3.4 Siklus Hamilton

Masalah siklus Hamilton ini pertama-tama dikemukakan oleh William R. Hamilton sekitar pertengahan 1800 berupa sebuah teka-teki tentang dodekahedron seperti gambar 3.9 berikut.

Gambar 3.9. (a) Dodekahedron, (b) Graf menyatakan (a), (c) Siklus Hamilton.

Untuk menghormati Hamilton, siklus dalam sebuah graf G yang berisi masing-masing verteks dalam G tepat satu kali, kecuali verteks yang merupakan awal sikllus yang juga merupakan akhir siklus, disebut siklus Hamilton.

Masalah the travelling salesperson berhubungan dengan masalah mendapatkan sebuah siklus Hamilton dalam sebuah graf. Masalahnya adalah, bila diberikan sebuah graf bernilai, maka akan ditentukan siklus Hamilton dengan panjang lintasan minimum.

Masalah mendapat siklus Hamilton dalam sebuah graf kelihatannya mirip dengan masalah menentukan siklus Euler dalam sebuah graf. Pada siklus Euler, setiap edge dilewati satu kali saja, sementara pada siklus Hamilton yang dikunjungi satu kali saja adalah verteks, sehingga sebenarnya masalah kedua siklus ini berbeda.

Contoh 3.10.Tentukan siklus Hamilton pada graf berikut.

(b) (c)(a)

112

Page 15: Bab 4.Teori Graf

Bab 3. Teori Graf

Gambar 3.10. Graf untuk contoh soal 3.10

Jawab.Siklus Hamilton untuk graf di atas adalah (a,b,c,d,e,f,g,a).Contoh 3.11.Tunjukkan bahwa graf pada gambar 3.11 berikut tidak memiliki sebuah siklus Hamilton.

Gambar 3.11: Graf untuk contoh soal 3.11

Karena ada lima verteks maka sebuah siklus Hamilton harus memiliki lima edge. Tetapi karena pada graf di atas siklus yang akan dibentuk harus melewati verteks dua kali hingga kembali verteks semula maka tidak ada siklus Hamilton pada graf tersebut. Misalnya kita mulai dari v1, sehingga harus kembali ke v1, maka siklus yang mungkin dibuat adalah (v1,v2,v3,v4) kalau mau melewati v5 dan harus kembali ke v1 maka v2 harus dilewati 2 kali. Namun kalau langsung ke v1 dari v4, maka v5 tidak akan dilewati, sehingga tidak ada siklus Hamilton dalam graf tersebut. Ada siklus Hamilton pada graf tersebut, maka harus ada edge yang menghubungkan verteks v1

dan v5.

a b

f dc

g e

v1

v3v2

v4

v5

113

Page 16: Bab 4.Teori Graf

Bab 3. Teori Graf

Contoh 3.12.Tunjukkan apakah graf berikut memiliki siklus Hamilton atau tidak.

Gambar 3.12: Graf untuk contoh soal 3.12

Misalkan graf tersebut memiliki siklus Hamilton, maka edge (a,b), (a,g), (b,c) dan (c,k) harus dilalui, karena masing-masing verteks dalam siklus Hamilton memiliki derajat 2. Sehingga edge (b,d) dan (b,f) tidak bagian dari siklus. Maka edge (g,d), (d,e), (e,f) dan (f,k) harus bagian dari siklus. Dengan meilhat graf di atas dapat diyakini bahwa graf tersebut tidak memiliki siklus Hamilton.Contoh 3.13: Kode Gray dan Siklus HamiltonMisalkan G1 menyatakan barisan 0,1. Kita mendefinisikan Gn dalam hal Gn-1

dengan aturan-aturan berikut:a). Misalkan menyatakan barisan Gn-1 yang ditulis terbalik.

b). Misalkan menyatakan barisan yang diperoleh dengan

menambahkan imbuhan pada masing-masing anggota dengan 0.

c). Misalkan menyatakan barisan yang diperoleh dengan

menambahkan imbuhan pada masing-masing dengan 1.

a b c

d

e

f

g h i jk

l

m

114

Page 17: Bab 4.Teori Graf

Bab 3. Teori Graf

d). Misalkan Gn adalah barisan berisi diikuti oleh .

Maka Gn adalah kode Gray untuk setiap integer n.Maka dari definisi di atas dapat dibentuk kode gray G3 dimulai dengan G1.

G1 0 11

00

11

00

0

01

10

01 11 10

10

000

110

000

11

001

111

001

01

011

101

011

00

010

100

010 110 111 101 100

3.5 Algoritma lintasan terpendek

Graf dengan bobot adalah sebuah graf dimana nilai dari edges diberikan dan bahwa panjang dalam sebuah graf berbobot adalah jumlah dari bobot edge dalam lintasan itu. Misalkan w(i,j) adalah bobot dari edge(i,j). Kita ingin menentukan lintasan terpendek antara dua verteks yang diberikan. Berikut ini dituliskan algoritma yang menentukan lintasan terpendek. Algoritma ini dikembangkan oleh E.W. Dikstra, seorang ahli pemrograman berkebangsaan Belanda.

115

Page 18: Bab 4.Teori Graf

Bab 3. Teori Graf

Contoh 3.14.Perhatikan graf berikut pada gambar 3.13(a). Tentukan lintasan terpendek dari A ke D untuk graf tersebut. Verteks yang tidak dilingkari dan memiliki label sementara. Verteks yang dilingkari memiliki label permanen.

116

Page 19: Bab 4.Teori Graf

Bab 3. Teori Graf 117

Page 20: Bab 4.Teori Graf

Bab 3. Teori Graf 118

Page 21: Bab 4.Teori Graf

Bab 3. Teori Graf

Gambar 3.13: Graf-graf untuk Langkah-langkah Dengan Menggunakan Algoritma Dijkstra

3.6 Representasi graf

Graf pada umumnya dinyatakan dengan menggambarnya. Berikut ini dijelaskan cara merepresentasikan graf dengan cara formal agar lebih dapat diolah dengan komputer. Ada 3 metode yang dibahas yaitu cara matriks berdekatan (verteks dengan verteks) dan matriks insiden (verteks dengan edge).

119

Page 22: Bab 4.Teori Graf

Bab 3. Teori Graf

Matriks berdekatan.Contoh 3.15.Diberikan matriks pada gambar 3.14 berikut. Buatlah matriks verteks dengan verteks.

Gambar 3.14 : Graf untuk contoh soal 3.15.

Matriks untuk graf di atas adalah:

Perhatikan bahwa dengan menjumlahkan semua angka pada baris kita dapat menentukan derajat dari masing-masing verteks. Misalnya derajat dari verteks a adalah 2 dan derajat verteks e adalah 4.

Perhatikan juga bahwa representasi graf dengan cara ini memungkinkan sebuah loop dapat direpresentasikan, akan tetapi tidak dapat direpresentasikan edge sejajar/paralel. Tetapi jika kita memodifikasi definisi dari matriks berdekatan ini sehingga diperbolehkan menggunakan sembarang bilangan bulat bukan negatif sebagai masukan maka kita dapat merepresentasikan edge sejajar.

c

ba

d e

120

Page 23: Bab 4.Teori Graf

Bab 3. Teori Graf

Matriks berdekatan bukanlah cara yang sangat efisien untuk merepresentasikan sebuah graf. Karena matriks menjadi simetris sepanjang diagonal utamanya, sehingga informasi kecuali pada diagonal utama, muncul dua kali.

Contoh 3.16.Tuliskan matriks berdekatan untuk graf berikut:

Gambar 3.15: Graf untuk contoh soal 3.16

Matriks untuk graf di atas adalah:

Jika A adalah matriks berdekatan dari sebuah graf, maka pangkat dari A:

A, A2, A3,…

menyatakan jumlah lintasan dengan berbagai panjang. Jelasnya, jika verteks dari graf G diberi label 1,2,3,…, maka elemen ke-ij dalam matriks An sama dengan jumlah lintasan dari i ke j dengan panjang n. Sebagai contoh, dari misalkan matriks di atas adalah A, maka:

a b

c

d e

121

Page 24: Bab 4.Teori Graf

Bab 3. Teori Graf

=

Dari matriks A2 di atas, perhatikan elemen baris pertama (a) dan kolom ketiga (c), yaitu 2. Berarti ada 2 lintasan dengan panjang 2 (n=2), yaitu (a,b,c) dan (a,d,c). Contoh lain verteks b ke b (baris 2, kolom 2), elemennya adalah 3, maka terdapat 3 lintasan dengan panjang 2, yaitu (b,c,c), (b,a,b) dan (b,e,b).

Jika A adalah matriks berdekatan dari sebuah graf sederhana, maka elemen ke-ij dari An sama dengan jumlah lintasan dengan panjang n dari verteks i ke verteks j, n=1,2,3,…

Dari contoh di atas, jika matriks dipangkat empat (n=4), maka akan didapat:

=

122

Page 25: Bab 4.Teori Graf

Bab 3. Teori Graf

Elemen baris d dan kolom e adalah 6, berarti bahwa ada 6 lintasan dengan panjang 4 dari d ke e, yaitu: (d,a,d,c,e), (d,c,d,c,e), (d,a,b,c,e), (d,c,e,c,e), (d,c,e,b,e) dan (d,c,b,c,e).

Matriks insiden (bersisian).

Contoh 3.17.Diberikan graf berikut:

Gambar 3.16 : Graf untuk soal 3.16

Matriks insiden untuk graf di atas adalah:

Matriks insiden memungkinkan kita merepresentasikan edge dan loop. Perhatikan bahwa dalam graf tanpa loop maka masing-masing kolom edge akan memiliki dua angka 1 dan jika jumlah dari baris tertentu menyatakan derajat dari verteks yang dinyatakan dalam baris itu.

e2e1

e3 v3v1

v5

e6e5

e7

v4

e4

123

Page 26: Bab 4.Teori Graf

Bab 3. Teori Graf

3.7 Keisomorfisan graf

Misalkan 2 orang diminta untuk menggambar graf pada kertas, dengan instruksi: “gambar dan berikan label lima verteks a, b, c, d, dan e. Hubungkan a dan b, b dan c, c dan d, d dan e.” Graf yang dihasilkan ke dua orang itu mungkin berbeda seperti pada gambar berikut. Kedua graf itu disebut isomorfis.

Gambar 3.17: 2 graf G1 dan G2 yang isormorfis.

Graf G1 dan G2 disebut isomorfis jika ada fungsi pada, satu-satu (f) dari verteks-verteks graf G1 ke verteks-verteks graf G2 dan fungsi pada, satu-satu (g) dari edges graf G1 ke edge graf G2, sehingga sebuah e ada pada v dan w dalam G11 jika dan hanya jika g(e) ada pada f(v) dan f(w) dalam G2. Pasangan fungsi f dan g disebut keisomorfisan G1 dan G2.

Keisomorfisan pada graf gambar 2.17 untuk G1 dan G2 didefinisikan sebagai f(a) = A, f(b) = B, f(c) = C, f(d) = D dan f(e) = E. g(x i) = yi, dimana i = 1, 2, …,5. Jika kita mendefinisikan sebuah relasi R pada himpunan dari graf dengan aturan G1RG2 jika G1 dan G2 adalah isomorfis, R adalah relasi ekuivalen. Masing-masing kelas equivalensi terdiri dari sebuah himpunan graf isomorifis yang mutual.

Misalkan G1 dan G2 adalah graf sederhana. Maka pernyataan berikut adalah ekuivalen.(a) G1 dan G2 adalah isomorfis.(b) Ada fungsi f pada,satu-satu dari kumpulan verteks G1 kepada kumpulan

verteks G2 yang memenuhi: verteks-verteks v dan w bertetangga dalam G1 jika dan hanya jika verteks f(v) dan f(w) adalah bertetangga dalam G2.

ax2

be

x5

d x4

x3

c

A

C

BE

Dy1

y2

y4

y3

y5

124

x1

Page 27: Bab 4.Teori Graf

Bab 3. Teori Graf

Graf sederhana G1 dan G2 adalah isomorfis jika dan hanya jika untuk beberapa verteks yang berurutan, matriks yang berdekatan adalah sama.

Contoh 3.18.Lihat gambar 3.17. Tentukan matrik bertetangga untuk graf G1 dan G2.Jawab.Matriks bertetangga untuk graf G1:

Matriks bertetangga untuk graf G2:

Kita melihat bahwa kedua matriks adalah sama.

Masalah yang menarik adalah untuk menentukan apakah dua graf isomorfis atau bukan isomorfis. Salah satu cara untuk menunjukkan bahwa dua graf G1 dan G2 bukan isomorfis. Tentukan sifat dari G1 yang mana G2 tidak miliki, tetapi G2 akan miliki jika G1 dan G2 isomorfis. Sifat seperti disebut invariant. Jelasnya, sifat P adalah invarian, jika kapanpun G1 dan G2 adalah graf isomorfis:

Jika G1 memiliki sifat P, G2 juga memiliki sifat P.

Dari definisi, jika graf G1 dan G2 isomorfis maka ada fungsi pada, satu-satu dari edges (verteks) G1 ke edge (verteks) G2. Sehingga jika G1 dan G2

125

Page 28: Bab 4.Teori Graf

Bab 3. Teori Graf

isomorfis, maka G1 dan G2 memiliki jumlah edge dan verteks yang sama. Sehingga, jika e dan n adalah bilangan bulat bukan negatif , sifat “memiliki e edge” dan “memiliki n verteks” adalah invarian.

Contoh 3.19.Graf G1 dan G2 berikut bukanlah isomorfis, karena G1 memiliki tujuh edge dan G2 memiliki enam edge dan “memiliki 7 edge” adalah sebuah invarian.

Gambar 3.19: Graf G1 dan G2 yang bukan isomorfis.

3.8 Graf planar

Perhatikan gambar berikut ini, misalkan pada tiga kota K1, K2 dan K3 akan dibangun jalan langsung dari masing-masing kota ke semua kota K4 K5, dan K6. Apakah mungkin membangun jalan tersebut tanpa saling-silang? jawabannya adalah tidak mungkin, seperti ditunjukkan dalam gambar 3.20. Dalam hal ini jalan layang tidak dimungkinkan.

Gambar 3.20 : Graf yang bukan planar.

Sebuah graf adalah planar jika dapat digambarkan dalam bidang itu tanpa edgenya bersilangan.

G2G1

K2 K3

K4 K5 K6

K1

126

Page 29: Bab 4.Teori Graf

Bab 3. Teori Graf

Masalah graf planar ini diterapkan dalam bidang elektronika, dimana kalau seseorang ingin mendisain rangkaian elektronik harus diusahakan sedemikian rupa agar garis-garis rangkaian tidak saling bersilangan, sehingga seorang ahli disain rangkaian elektronik menghadapi masalah planaritas.

Jika sebuah sebuah graf terhubung yang planar dibuat dalam bidang, bidang dibagi kedalam daerah yang disebut muka (faces). Sebuah muka dicirikan dengan sebuah lingkaran yang membentuk batasannya.

Contoh 3.20.Perlihatkan bahwa graf berikut adalah planar.

Gambar 3.21: Sebuah graf yang planar

Muka A terikat kepada siklus (5,2,3,4,5), dan muka C terikat kepada siklus (1,2,5,1). Sedangkan muka luar D dianggap terikat kepada siklus (1,2,3,4,6,1). Graf di atas memiliki 4 muka (f=4), 8 edge (e=8), dan 6 verteks (v=6). Perhatikan bahwa berikut berikut berlaku:

f = e – v + 2.

Adalah Euler pada tahun 1752 yang membuktikan kebenaran rumus di atas yang berlaku untuk setiap graf terhubung yang planar.Contoh 3.21.Tunjukkan bahwa graf pada gambar 3.20 dan 3.22 tidak planar.

B

D

A

C

1 2

34

56

127

Page 30: Bab 4.Teori Graf

Bab 3. Teori Graf

Gambar 3.22: Graf K5 yang bukan planar

Pada gambar 3.20, e=9 dan v=6. Karena setiap siklus paling sedikit memiliki 4 edge, maka setiap muka terikat kepada paling sedikit 4 edge. Sehingga jumlah edge yang terikat kepada muka adalah paling sedikit 4f, karena masing-masing edge milik dari paling banyak 2 siklus terikat. Sehingga 2e 4f, dan 2e 4 (e-v+2), maka 18 = 2.9 4(9-6+2), atau 18 20, berarti kontradiksi. Dengan argumen yang sama akan dapat dibuktikan bahwa graf pada gambar 3.22 tidak planar.

3.9 Bilangan Erdos

Setiap ahli matematik memiliki sebuah bilangan Erdos. Setiap ahli matematika yang bangka akan dirinya sendiri mengetahui bilangan Erdosnya. Ide bilangan Erdos berasal dari banyak teman dan kolega dari ahli matematika terkenal berkebangsaan Hungari (1913-1996), yang menulis sekitar 1500 artikel matematik berkualitas tinggi. Bilangan Erdos adalah sebuah ukuran dari rasa yang enak, dimana bilangan erdos yang tinggi menyatakan rasa sangat tidak enak.

Semua sahabat-sahabat Erdos setuju bahwa hanya Erdos yang memiliki kualifiasi bilangan Erdos = 0. Bilangan Erdos dari ahli matematika yang lain adalah apakah bilangan integer positif atau tidak terhingga. Karena Erdos telah memberikan kontribusi yang lebih banyak dalam hal matematika diskrit disbanding ahli matematika lainnya, adalah tepat bahwa penggunaan bilangan Erdos didefinisikan dalam hal teori Graf.

a

e c

d

128

b

Page 31: Bab 4.Teori Graf

Bab 3. Teori Graf

Misalkan sebuah graf G=(V,E), dimana V adalah himpunan terbatas dari semua ahli matematika, sekarang ini, maupun yang sudah mati. Untuk setiap dua ahli matematika x,y V, misalkan (x,y) E jika dan hanya jika x dan y memiliki sebuah artikel matematika dengan penulis bergabung (bersama) dengan yang lain, mungkin dengan ahli matematika yang lain. Graf G dinyatakan dalam fungsi weight w: E N. Karena Erdos tidak menyenangi semua ketidakadilan, fungsi weight ini didefinisikan dengan menuliskan w({x,y})=1 untuk setiap edge {x,y} E.

Jika kita melihat pada graf ini secara hati-hati, maka tidak sulit untuk merealisasikan bahwa graf ini tidak terhubung. Beberapa ahli matematika tidak memiliki artikel gabungan dengan ahli matematika yang lain, dan yang lain tidak pernah menulis sama sekali. Kemudian, banyak ahli matematika yang berada dalam komponen berbeda dari graf berisi bilangan erdos. Ahli matematika ini semuanya memiliki bilangan erdos .

Dan seterusnya didefinisikan bilangan-bilangan Erdos dari semua ahli matematika yang cukup beruntung memiliki komponen yang sama dari graf G seperti Erdos. Misalkan x Erdos adalah seorang ahli matematika. Panjang dari lintasan ini, yang pasti sebuah bilangan integer, tetapi kebanyakan tertentu jumlahnya, diambil sebagai bilangan Erdos dari ahli matematika x.

Setiap ahli matematika yang telah menulis sebuah artikel bersama dengan Paman Paul, dengan siapa Erdos terus dikenal, memiliki bilangan erdos 1. Setiap ahli matematika yang telah menulis sebuah artikel bersama dengan seorang ahli matematika yang lain yang telah menulis sebuah artikel bersama dengan Erdos, tetapi dia sendiri belum pernah menulis artikel bersama dengan Erdos, memiliki bilangan erdos 2. Dan seterusnya.

Ringkasan bab

Sebuah graf takberarah G terdiri dari kumpulan verteks V(v1,v2,v3,…,vn) atau node dan kumpulan edges E(e1,e2,e3,…,en) sehingga masing-masing edge e E berhubungan dengan sebuah pasangan takberaturan verteks. Sebuah graf berarah G terdiri dari kumpulan verteks V dan kumpulan edges E sehingga edge eE berasosiasi dengan pasangan beraturan verteks.

129

Page 32: Bab 4.Teori Graf

Bab 3. Teori Graf

Graf lengkap dengan n verteks, Kn, adalah graf sederhana dengan n verteks dimana ada edge antara setiap pasangan verteks berbeda. Graf bipartit lengkap dengan verteks m dan n, Kn,m, adalah graf sederhana yang kumpulan verteksnya dipartisi menjadi Vn dengan n verteks, dan Vm

dengan m verteks yang mana ada edge antara pasangan verteks v1 dan v2 dimana v1 ada di V1 dan v2 ada di V2.

Sebuah graf sederhana dari v ke w adalah sebuah lintasan tanpa verteks berulang. Sebuah siklus adalah sebuah lintasan dengan panjang bukan nol dari v ke w tanpa edge berulang. sebuah siklus sederhana adalah sebuah siklus dari v ke v, kecuali dari awal dan akhir verteks yang keduanya sama kepada v, tanpa pengulangan verteks.

Jika graf G memiliki sebuah siklus Euler, maka G adalah graf terhubung dan setiap verteks memiliki derajat genap. Derajat suatu verteks adalah banyaknya edges yang terhubung kepada verteks tsb. Dalam setiap graf ada sejumlah genap verteks yang berderajat ganjil.

Siklus Hamilton, atau the traveling sales person, adalah siklus dimana edge tidak berulang, tetapi semua verteks harus dilalui, kecuali verteks awal. Kubik-n memiliki sebuah siklus Hamilton untuk setiap bilangan integer positif n 2.

Algoritma Djikstra adalah sebuah algoritma untuk menentukan lintasan terpendek pada the travelling sales person problem. Algoritma ini memiliki kompleksitas orde (n2).

Jika A adalah matriks adjacency dari graf sederhana, maka elemen ke I dari A sama dengan jumlah lintasan dengan panjang n dari verteks I ke verteks j, n=1,2,….

Graf secara khusus diaplikasikan dalam masalah menentukan lintasan terpendek (menggunakan algoritma Dijkstra) dan menyelesaikan masalah the travelling salesperson.

130

Page 33: Bab 4.Teori Graf

Bab 3. Teori Graf

Soal-soal Latihan

1. Gambarkan graf K3 dan K5.

2. Tentukan rumus untuk menentukan jumlah edge dalam Kn.

3. Berikan sebuah graf bipartisi selain graf pada contoh soal 3.6.

4. Gambarkan graf K2,3 dan K3,3.

5. Tentukan rumus untuk menentukan jumlah edge dalam Km,n.

6. Tentukan biaya paling kecil yang diperlukan untuk membangun jalan yang menghubungkan kota-kota seperti ditunjukkan graf berikut. Vertek-verteks dalam graf menyatakan kota-kota, sedangkan edge-edge menyatakan biaya membangun jalan yang menghubungkan kota itu.

7. Tentukan apakah soal (a) hingga (i) graf berikut memiliki (i) lintasan sederhana, (ii) dan (iii) siklus sederhana.

a). (b,b)b). (e,d,c,b)

a

15

105

b c

e

g

7 30

20

128

14f

6 5

9 d

a

c

b

ed

131

Page 34: Bab 4.Teori Graf

Bab 3. Teori Graf

c) . (a,d,c,d,e)d). (d,c,b,e,d)e). (,c,d,a,,e,d,c,b)f). (b,c,d,e,,b)g). (a,d,c,b,e)h). (d)i). (d,c,b)

8. Untuk masing-masing soal (a) s/d (j) berikut, gambarlah sebuah yang memiliki sifat-sifat seperti diberikan atau jelaskan mengapa tidak ada mungkin ada graf tersebut.a). Enam verteks masing-masing berderajat 3.b). Lima verteks masing-masing berderajat 3.c). Empat verteks masing-masing berderajat 1d). Enam verteks; empat edgee). Empat edge; empat verteks yang memiliki derajat 1,2,3,4.f). Empat verteks memiliki derajat 1,2,3,4.g). Graf sederhana; enam verteks yang memiliki derajat 1,2,3,4,5,5.h). Graf sederhana; lima verteks yang memiliki derajat 2,3,3,4,4.i). Graf sederhana; lima verteks yang memiliki derajat 2,2,4,4,4.

9. Tentukan semua siklus sederhana yang pada graf di bawah ini.

10. Tentukan apakah graf berikut memiliki siklus Euler atau tidak. Jika ada tunjukkan salah satunya.

ba

g

dce

f

ea

b

c

d fg

jih

id

c

b

a

e

g

f

h k

j

132

Page 35: Bab 4.Teori Graf

Bab 3. Teori Graf

(a) (b)

11. Kapankah sebuah graf lengkap Kn berisi sebuah siklus Euler?

12. Kapankah sebuah graf bipartit lengkap Km,n berisi sebuah siklus Euler?

13. Tentukan apakah pernyataan berikut benar atau salah. Jika salah berikan contoh yang membenarkannya:a. Misalkan G adalah graf dan v dan w adalah verteks yang berbeda. Jika

ada lintasan dari v ke w, maka ada lintasan sederhana dari v ke w.b. Jika sebuah graf berisi sebuah siklus yang berisi semua edge, siklus itu

adalah siklus Euler.

14. Misalkan G adalah graf terhubung. Misalkan juga bahwa sebuah edge e ada dalam siklus. Tunjukkan bahwa jika e dibuang G masih graf terhubung.

15. Tunjukkan bahwa ada 125 spanning tree yang berbeda dari graf lengkap K5.

133