Masalah GRAPH
Graph adalah kumpulan dari titik ( node ) dan garis dimana
pasangan-pasangan titik ( node ) tersebut dihubungkan oleh segmen garis.
Node ini biasa disebut simpul (verteks) dan segmen garis
disebut ruas (edge).
Simpul dan ruas dalam graph dapat diperluas dengan penambahan
informasi. Sebagai contoh, simpul bisa diberi nomor atau label dan ruas
dapat diberi nilai juga. Perluasan dengan pemberian informasi ini sangat
berguna dalam penggunaan graph untuk banyak aplikasi komputer. Contoh,
graph dengan simpul yang merepresentasikan kota dan ruas merepresentasikan
jarak yang ditempuh diantara kota-kota tsb. (atau harga tiket pesawat
antara kota-kota tsb.) , dapat digunakan sebagai “transportation network” untuk
mempelajari total jarak (atau harga) dari suatu perjalanan dengan banyak kota
pemberhentian. Satu kemungkinan pertanyaan yang bisa muncul adalah “Jalur
mana yang terpendek dengan satu atau lebih tempat pemberhentian, yang
menghubungkan kota tertentu menuju kota tertentu lainnya dalam transportation
network tersebut ?”.
Dalam kehidupan sehari-hari maupun dalam bidang akademis banyak persoalan
yang dimodelkan dengan graph. Graph dipakai untuk membantu pemecahan
masalah. Dari model graph yang dibuat, suatu masalah dapat dipahami
menjadi lebih mudah. Untuk kemudian diturunkan metode pemecahannya.
1.1. Kelahiran Teori Graph
Jembatan Konigsberg
Menurut catatan sejarah, masalah jembatan Konigsberg adalah masalah yang
pertama kali menggunakan graph (th. 1736). Masalah Jembatan Konigsberg
adalah : “ apakah mungkin melalui tujuh buah jembatan masing-masing
tepat satu kali. Dan kembali lagi ke tempat semula ?” . Tak
seorangpun yang dapat memecahkan masalah ini. Barulah Euler yang pertama
kali menemukan jawabannya. Ia memodelkan masalah dengan memodelkannya ke
dalam graph. Daratan (titik-titik yang dihubungkan oleh jembatan)
dinyatakannya sebagai simpul (vertex) dan jembatan sebagai sisi. Graph
dibuat oleh Euler diperlihatkan pada gambar dibawah atas.
Jawabannya adalah : Orang tidak mungkin berjalan melalui ketujuh jembatan
masing-masing satu kali dan kembali ke tempat asal keberangkatan.
Singkatnya, tidak terdapat siklus Euler pada Graph tersebut.
Graph yang memenuhi kondisi diatas tersebut kemudian dikenal dengan nama Graph
Euler dan perjalanannya disebut perjalanan euler.Perjalanan Euler adalah :
Perjalanan dari suatu simpul kembali ke simpul tersebut dengan melalui setiap ruas tepat satu kali.
Perjalanan Euler akan terjadi, jika :
– Graf terhubung.
– Banyaknya ruas yang datang pada setiap simpul adalah genap
1.2. Graph secara Formal
Definisi Graf Graf G (V, E), adalah koleksi atau pasangan dua himpunan
(1) Himpunan V yang elemennya disebut simpul atau titik, atau vertex, atau point, atau node.
(2) Himpunan E yang merupakan pasangan tak terurut dari simpul, disebut ruas atau rusuk, atau sisi, atau edge, atau line.
Banyaknya simpul (anggota V) disebut order Graph G, sedangkan banyaknya ruas (anggota E) disebut ukuran (size) Graph G
e4
e3 1 e1 2 e2 3 e5 4 9
e10 e11 e12 e13
e6 e7 e8 e9 8
e14
5 6 7 e16
e15 10
Graph G
Pada Gbr 2, G (V,E) adalah
graph dengan
V =
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
E =
{e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16 }
Ruas
e1 = (1,2)
e2 = (2,3)
e3 = (1,1)
e4 = (2,4)
e5 = (3,4)
e6 = (1,5)
e7 = (1,6)
e8 = (2,6)
e9 = (2,7)
e10 = (3,8)
e11 = (4,8)
e12 = (4,7)
e13 = (4,7)
e14 = (7,8)
e15 = (5,6)
e16 = (7,10)
Pada Graph G , Order = 10
dan Ukuran = 16
Pada Graph G , ruas
e12 = (4,7) dan ruas e13 = (4,7) dinamakan ruas berganda atau ruas
sejajar (multiple edges atau paralel edges), karena kedua
sisi ini menghubungi dua buah simpul yang sama, yaitu simpul 4 dan simpul 7.
Pada Graph G , ruas e3
= (1,1) dinamakan gelung atau self-loop karena ia berawal dan
berakhir pada simpul yang sama.
Derajat (Degree) suatu simpul d(v) adalah banyaknya ruas yang
menghubungi simpul tersebut.
Sedangkan Derajat Graph
G adalah jumlah derajat semua simpul pada Graph G.
Pada, derajat simpul
d(1)
= 5
d(2)
= 5
d(3)
= 3
d(4)
= 5
d(5)
= 2
d(6)
= 3
d(7)
= 5
d(8)
= 3
d(9)
= 0
d(10)
= 1 +
= 30
Maka derajat Graph G adalah
32 dan jumlah derajat semua simpul Graph (derajat Graph) = dua kali banyaknya
ruas Graph (size/ukuran Graph).
Simpul 9 dikatakan simpul
terpencil / simpul terisolasi, karena d(9) = 0 dan simpul 10
dikatakan simpul bergantung / simpul akhir karena d(10) = 1
1.3. Jenis Graph
Berdasarkan ada tidaknya gelang atau
sisi ganda pada suatu graph, maka graph digolongkan menjadi dua jenis:
1. Graph sederhana (simple
graph).
Graph yang tidak mengandung gelung
maupun sisi-ganda dinamakan graph sederhana.
2. Graph tak-sederhana (unsimple-graph/multigraph).
Graph yang mengandung ruas ganda
atau gelung dinamakan graph tak-sederhana (unsimple graph atau multigrapf).
Berdasarkan jumlah simpul pada suatu
graph, maka secara umum graph dapat digolongkan menjadi dua jenis:
1. Graph berhingga (limited
graph)
Graph berhingga adalah graph yang
jumlah simpulnya, n, berhingga.
2. Graph tak-berhingga (unlimited
graph)
Graph yang jumlah simpulnya, n,
tidak berhingga banyaknya disebut graph tak-berhingga.
Berdasarkan orientasi arah pada
sisi, maka secara umum graph dibedakan atas 2 jenis:
1. Graph tak-berarah (undirected
graph)
Graph yang sisinya tidak mempunyai
orientasi arah disebut graph tak-berarah.
2. Graph berarah (directed
graph atau digraph)
Graph yang setiap sisinya diberikan
orientasi arah disebut sebagai graph berarah.
e4
e3 1 e1
2 e2
3 e5 4
e10
e11
e6
e7
e8
e9
5
6
e15
Graph Berarah
1.4. Subgraph
Misalkan G = (V, E) adalah sebuah
graph. G1 = (V1, E1), jika V1 ⊆ V dan E1 ⊆
E. maka G1 adalah subgraph (subgraph) dari G
.
G = (V, E)
Dengan
V = { A, B, C, D }
E = { e1, e2, e3, e4, e5 }
Dan
G1 = (V1, E1)
Dengan
V1 = { A, B, D } ⊆ V
E1 = { e1, e5
} ⊆ E
D
|
C
|
B
|
A
|
e5
|
e1
|
e3
|
e25
|
e4
|
G
|
B
|
AD
|
D
|
e1
|
e5
|
G1
|
D
|
C
|
B
|
e3
|
e25
|
e4
|
G2
|
Komplemen dari subgraph G1 terhadap graph G adalah
graph G2 = (V2, E2)
sedemikian sehingga E2 = E – E1 dan V2
adalah himpunan simpul yang anggota-anggota E2 bersisian
dengannya.
G = (V, E)
Dengan
V = { A, B, C, D }
E = { e1, e2, e3, e4, e5 }
G1 = (V1, E1)
subgraph dari G
Dengan
V1 = { A, B, D } ⊆ V
E1 = { e1, e5
} ⊆ E
G2 = (V1, E1)
subgraph dari G
Dengan
V2 = { B, C, D } ⊆ V
E2 = { e2, e3, e4 }
⊆ E
Dan terlihat E2 =
E – E1
Subgraph yang Direntang (Spanning
Subgraph) Apabila E‘ mengandung semua
ruas di E yang kedua ujungnya di V‘ , maka G‘ adalah Spanning
Subgraph dari G yang dibentuk oleh V‘ .
G2 = (V1, E1)
Spanning subgraph dari G
Dengan
V2 = { B, C, D } ⊆ V
E2 = { e2, e3, e4 }
⊆ E
Anggota E2 adalah semua
ruas dari G yang menghubungkan simpul di V2.
1.5. Keterhubungan Graph
D
|
C
|
B
|
A
|
e5
|
e1
|
e3
|
e25
|
e4
|
G
|
Dua buah simpul dikatakan bertetangga
(Adjacent) bila keduanya terhubung langsung oleh sebuah ruas.
Pada graph G disamping,
simpul A bertetangga dengan simpul B
dan D,
simpul A tidak bertetangga dengan
simpul C
Bersisian (Incidency)
Untuk sembarang ruas e = (vj,
vk) dikatakan :
e bersisian
dengan simpul vj , atau e bersisian dengan
simpul vk
Pada graph G
ruas e5 bersisian dengan simpul A
dan simpul D, tetapi
ruas e5 tidak bersisian dengan
simpul B
Simpul terpencil (Isolated Vertex)
ialah simpul yang tidak mempunyai sisi yang bersisian dengannya atau simpul
bererajat 0 (nol).
D
|
Graf
Kosong (null graf atau empty graf)
adalah graf yang himpunan sisinya merupakan himpunan kosong (Nn).
A
|
B
|
C
|
Graph N4
1.6. Operasi Graph
G1 = (E1,V1) , G2 = (E2,V2)
1. Gabungan G1 ∪ G2 adalah graf dgn himpunan ruasnya E1 ∪ E2.
2. Irisan G1 ∩ G2 adalah graf dgn
himpunan ruasnya E1 ∩ E2.
3. Selisih G1 – G2 adalah graf dgn
himpunan ruasnya E1 – E2.
4. Selisih G2 – G1 adalah graf dgn
himpunan ruasnya E2 – E1.
5. Penjumlahan ring G1 ⊕ G2 adalah graf dgn himpunan ruasnya (E1 ∪ E2) – (E1 ∩ E2) atau (E1 – E2) ∪ (E2 – E1).
D
|
C
|
B
|
A
|
e5
|
e1
|
e3
|
e25
|
e4
|
G1
|
D
|
C
|
G2 – G1
|
e6
|
e8
|
e7
|
D
|
C
|
A
|
e5
|
e4
|
G2
|
e6
|
e8
|
e7
|
D
|
C
|
A
|
e5
|
e4
|
G1 G2
|
D
|
C
|
B
|
A
|
e1
|
e3
|
e25
|
G1 – G2
|
D
|
C
|
B
|
A
|
e5
|
e1
|
e3
|
e25
|
e4
|
G1 G2
|
e6
|
e8
|
e7
|
D
|
C
|
B
|
A
|
e1
|
e3
|
e25
|
e6
|
e8
|
e7
|
G2
|
G1
|
Graph K dan L
merupakan dekomposisi Suatu graf G,
bila K ∪ L = G dan K ∩ L = ∅
Contoh :
Penghapusan ( deletion ) dapat dilakukan pada simpul ataupun ruas.
1) Penghapusan Simpul .
Notasinya : G – {V}
Contoh :
2) Penghapusan Ruas .
Notasinya : G – {e}
Pemendekan/Shorting adalah menghapus simpul yang dihubungkan oleh 2 ruas
(simpul berderajat 2), lalu menghubungkan titik-titik ujung yang lain dari
kedua ruas tersebut.
Contoh :
1.7. Keterhubungan
Perjalanan atau walk pada suatu Graf G adalah barisan simpul dan ruas
berganti-ganti
v1, e1, v2,
e2, …,en-1,
dengan vn simpul
ei ruas
menghubungkan vi dan vi+1
dapat hanya ditulis barisan ruas
atau barisan simpul saja.
e1, e2, …,en-1
atau v1, v2, …, vn-1, vn
Dalam hal ini, v1 disebut
simpul awal, dan vn disebut simpul akhir.
Perjalanan disebut perjalanan
tertutup bila v1 = vn, sedangkan
Perjalanan disebut perjalanan tebuka yang menghubungkan v1
dan vn. Panjang Perjalanan adalah banyaknya ruas dalam
barisan tersebut
Lintasan (Trail) Lintasan adalah Walk dengan semua ruas dalam barisan
adalah berbeda.
Jalur adalah Walk yang semua simpul dalam barisan adalah berbeda.
Lintasan yang berawal dan berakhir
pada simpul yang sama disebut sirkuit atau siklus. Panjang
sirkuit adalah jumlah ruas dalam sirkuit tersebut.
Graf yang tidak mengandung sirkuit
disebut acyclic.
Contoh Pohon :
Suatu graf G disebut terhubung jika untuk setiap simpul dari graf terdapat jalur yang
menghubungkan kedua simpul tersebut.
Subgraf terhubung suatu graf disebut
komponen dari G bila subgraf tersebut tidak terkandung dalam
subgraf terhubung lain yang lebih besar.
Contoh :
Rank (G) = n – K
Nullity (G) = e – (n – k)
Dimana : n : Order graf G
e : Size graf G
K : banyaknya komponen graf G
Jarak antara 2 simpul dalam graf G adalah panjang jalur terpendek antara ke 2 simpul tersebut.
Diameter suatu graf terhubung G adalah maksimum jarak antara simpul G.
Jarak maksimum dalam graf G adalah 3 (yaitu
antara A – G atau B – G ataupun C – G), jadi diameter = 3