G=(V, E) disebut graph jika V himpunan tak kosong dari vertex (titik atau node) dan E
himpunan edge (busur) yang merupakan pasangan tak terurut dari vertex.
Contoh:
G=(V, E) dimana V={a, b, c, d, e}, dan E={{a, b}, {a, c}, {a, d}, {b, c}, {b, d}, {c, d}}
Lambang {a, b} pada anggota E menyatakan ketakurutan dari a dan b, yang menyatakan
busur yang menghubungkan a dan b.
Contoh:
Pseudo Graph
Contoh:
Multigraph Directed
Sumber: Kenneth Rossen, Discrete Mathematics and Its Applications, 4th edition,
McGraw Hill, 1999
Istilah-istilah yang berkaitan dengan simpul dan busur dari graph tak berarah
1. Adjacent/ Bertetangga: Dua simpul atau titik atau node disebut adjacent/ bertetangga,
jika mempunyai busur yang sama
2. Incident: simpul dengan busur disebut incident jika simpul dan busur saling
terhubung
Contoh:
Contoh:
e1
b c
e7 e2
e4
e3 d
e5 a
e
f
e6
Contoh:
e2
e1
e3
a b
e7 e6 e4
e5
d c
e8
Pada graph di atas berlaku:
Pada busur e1 initial point adalah a dan terminal point adalah b
Pada busur e8 end point-nya adalah node d dan node c
In_deg(a) = 3
Out_deg(a) = 3
In_deg(b) = 3
Out_deg(b) = 0
K1
K2
K3 K4 K5
Karena setiap vertex pasti bertetangga dengan vertex yang lain, berarti derajat dari
masing-masing vertex adalah n-1.
C3 C4 C5
W3 W4 W5
W6
Q0 Q1 Q2 Q3
5. Graph Bipartite: Simple graph G disebut bipartite jika himpunan vertex V dapat
dipartisi menjadi dua himpunan yang tak kosong, misalkan V1 dan V2, sedemikian
sehingga setiap busur pada graph hanya menghubungkan vertex di V1 dan vertex di
V2 (Tidak ada busur di G yang terhubung di V1 saja atau di V2 saja)
Contoh:
Apakah graph G dan H di bawah ini termasuk graph bipartite? Jika benar, ubahlah
representasi graph tersebut membentuk representasi graph bipartite.
a b c d e
b f
a
c i g
d
h
G H
Jawab:
Graph G dan H dapat diubah menjadi dua himpunan vertex yang tidak saling bertetangga
dalam satu himpunan tersebut dan bertetangga hanya dengan vertex yang menjadi
anggota himpunan yang lain, berikut ini:
c
d
a
e
c d f
g
h
G H i
6. Graph reguler: graph yang semua vertexnya mempunyai degree yang sama
Contoh: Pada contoh-contoh di atas, maka yang termasuk graph reguler adalah: graph
lengkap (complete), graph circle, dan graph cubes. Sedangkan graph Wheel bukan graph
reguler mulai W4.
Sub Graph
Bisa dibuat sebuah graph baru dari graph yang telah dipunyai:
Sub graph: seperti pada himpunan, di himpunan dikenal sub himpunan, dengan ide yang
mirip dapat dibuat sub graph
Misalkan: G=(V,E) suatu graph.
Sub graph dari G, misalkan H=(V’, E’), dimana V’ ⊆ V dan E’ ⊆ E
Contoh 1
Manakah yang menjadi sub graph G?
H3
G H1 H2
H4
H5 H7
H6
C
A
H8 H9 H10 H11
B
Bridge (jembatan), yaitu busur yang jika dihapus menyebabkan graph terbagi dua.
Cut Set: sehimpunan penghilangan busur, misalkan pada H11 dapat dibuat cut set {{A, B},
{B, C}}. Lebih panjangnya dapat dibaca di buku tulisan Munir.
Titik Potong (Cut Node), Node yang jika dihapus beserta busur yang incident,
menyebabkan graph terbagi menjadi beberapa sub graph yang terpisah
Semua graph di atas tidak ada cut node (titik potong), kecuali H11
Contoh 2
Dari graph di bawah ini, tentukan semua vertex yang menjadi titik potong (cut node), dan
juga semua busur yang menjadi bridge (jembatan).
v1 e1 v2 v4 e8 v5
e2 e3 e6 e7
e4 e5
v7
v3
v6
- Operasi terhadap dua graph
Union dari dua simple graph G1=(V1, E1) dan G2=(V2, E2) adalah simple graph dengan
vertexnya V1 ∪ V2 dan busur E1 ∪E2. Union G1 dan G2 ditulis G1 ∪G2
v1 e1 v2 v3
e2 e3 e6
e4 e5
v7
v3
v6
Representasi Graph
1. Menggunakan gambar: verteks (titik) dan edge (busur)
2. Matrik adjacency ~ adjacent (matrik ketetanggaan): didasarkan banyaknya busur
antara satu verteks dengan verteks yang lain.
A=[aij], aij= 1, verteks ke-vi mempunyai satu busur ke verteks ke-vj dan di luar
tersebut diberi nilai 0.
3. Matrik incidence ~ incident: hubungan antara vertex dengan busur.
M=[mij], mij=1, jika ada hubungan antara verteks ke-vi dengan busur ke-ej, dan diluar
tersebut bernilai 0.
Contoh 3
Dari graph di bawah ini, tentukan matrik ketetanggaan dan matrik incident-nya.
A B C D E
A ⎡1 2 0 0 0 ⎤
B ⎢⎢2 0 1 0 1⎥⎥
A=
C ⎢0 1 0 1 0⎥
⎢ ⎥
D ⎢0 0 1 0 0⎥
E ⎢⎣0 1 0 0 1⎥⎦
Jumlah dari semua entry pada kolom menunjukkan derajat, kecuali untuk entry pada
diagonal utama harus dikali 2.
Matrik berbentuk matrik simetri, sehingga dengan menuliskan entry setengah bagian saja,
informasi sudah didapat secara penuh.
Loop dinyatakan pada entry pada diagonal utama
Pada multigraph dan pseudograph entry tidak hanya nol dan satu saja.
e1 e2 e3 e4 e5 e6 e7
A ⎡1 1 1 0 0 0 0⎤
B ⎢⎢0 1 1 1 0 1 0⎥⎥
M=
C ⎢0 0 0 1 1 0 0 ⎥
⎢ ⎥
D ⎢0 0 0 0 1 0 0 ⎥
E ⎢⎣0 0 0 0 0 1 1⎥⎦
Jumlah entry pada kolom maksimal 2, dan jika hanya satu maka busur tersebut berupa
loop.
Jumlah entry pada setiap baris ditambah 2kali jumlah loop menghasilkan derajat pada
verteks tersebut
Entry pada matrik incident hanya nol (0 ) dan (1), walaupun pseudo graph
Contoh 4
Dari graph di bawah ini, tentukan matrik ketetanggaan (adjacency) dan matrik incident-
nya
e3
e6 e7
e4 e5
e8
d
c e9 e10
Jawab:
⎡0 3 2 0⎤
⎢3 0 1 1 ⎥⎥
A= ⎢
⎢2 1 0 2⎥
⎢ ⎥
⎣0 1 2 1⎦
e1 e2 e3 e4 e5 e6 e7 e8 e9 e10
a ⎡1 1 1 1 1 0 0 0 0 0⎤
M= b ⎢1 1 1 0 0 1 1 0 0 0⎥⎥
⎢
c ⎢0 0 0 1 1 1 0 1 1 0⎥
⎢ ⎥
d ⎣0 0 0 0 0 0 1 1 1 1⎦
Isomorphism: iso ~ sama, morphis ~ bentuk = bentuknya pada dasarnya sama namun
digambarkan secara berbeda, Î matrik adjacency dapat diubah menjadi matrik yang
sama
Definisi:
G1=(V1,E1) dan G2=(V2, E2) dua simple graph yang isomorphism berarti jika ada fungsi
korespondensi satu-satu, misalkan fungsi tersebut f dari V1 ke V2 dengan sifat jika a dan
b bertetangga di G1, jika dan hanya jika f(a) dan f(b) bertetangga di G2, untuk semua a, b
∈G1
A B 1 2
E 6
F 5
3
4
C D
F: A ~ 5, B ~ 2, C ~ 3, D ~ 4, E ~ 1, F ~ 6
Contoh 5
Manakah dari pasangan graph berikut yang isomorphisme?
v10 u1 u7 u3
v1
v6 v9 v3 u10
u8
u9
u4
v8 u6
v7
v5 u5
v4
(a)
(b)
(c)
a) Graph berarah yang pertama isomorphisme: dengan fungsi isomorphism Î v1~u4,
v2~u3, v3~u1
b) Yang kedua, tidak isomorphisme karena pada graph pertama node v3 dan v4 tidak
bertetangga, sedangkan pada graph yang kedua u1 dan u2 saling bertetangga
c) Bukan isomorphisme karena pada graph pertama terdapat arah panah yang saling
membentuk putaran yaitu dari v3 ke v2 ke v4, tetapi bentuk yang demikian tidak ada
dalam graph yang kedua
Connectivity (Keterhubungan)
Definisi: Path (Lintasan) dengan panjang n dari u ke v, dimana n bilangan bulat positif,
pada graph tak berarah adalah barisan busur e1, e2, …, en sedemikian sehingga f(e1)={x0,
x1}, f(e2)={x1, x2}, …, f(en)={xn-1, xn}, dimana x0=u dan xn=v. Jika pada simple graph,
path ini dapat ditulis x0, x1, …, xn. Sebuah path adalah sirkuit jika dimulai dan diakhiri
pada vertex yang sama, atau u=v. Path atau sirkuit disebut simple jika tidak ada busur
yang sama.
Setiap sirkuit adalah path, tetapi tidak setiap path membentuk sirkuit
Definisi: Sebuah graph tak berarah disebut terhubung (connected) jika ada path untuk
setiap pasang vertex yang berbeda pada graph tersebut.
Teorema:
Ada simple path diantara sepasang vertex yang berbeda dari graph tak berarah terhubung.
Definisi:
Graph berarah adalah strongly connected (terhubung secara kuat) jika setiap path dari a
ke b dan selalu ada path dari b ke a, jika a dan b vertex pada graph.
Definisi:
Graph berarah adalah weakly connected jika ada path diantara dua vertex yang hanya satu
arah saja.
Dengan menggunakan konsep path (lintasan) dapat pula membantu menentukan graph-
graph yang isomorphisme.
Contoh:
Berapa banyak path yang berbeda dengan panjang 4 dari a ke d pada graph di bawah ini:
a
b
d c
Jawab:
⎡0 1 1 0⎤
⎢1 0 0 1⎥⎥
A= ⎢
⎢1 0 0 1⎥
⎢ ⎥
⎣0 1 1 0⎦
⎡0 1 1 0⎤ ⎡0 1 1 0⎤ ⎡ 2 0 0 2⎤
⎢1 0 0 1⎥⎥ ⎢1 0 0 1⎥⎥ ⎢⎢0 2 2 0⎥⎥
A2= ⎢ ⎢ =
⎢1 0 0 1⎥ ⎢1 0 0 1⎥ ⎢0 2 2 0⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣0 1 1 0⎦ ⎣0 1 1 0⎦ ⎣ 2 0 0 2⎦
Definisi:
Sebuah sirkuit Euler pada sebuah graph G adalah simple sirkuit yang berisikan setiap
busur dari G. Path Euler pada G adalah simple path yang berisikan seluruh busur dari G.
Teorema:
Multigraph terhubung mempunyai sirkuit Euler jika dan hanya jika setiap vertex
mempunyai derajat genap
Teorema:
Multigraph terhubung mempunyai path Euler tetapi bukan sirkuit Euler jika dan hanya
jika tepat mempunyai dua vertex yang berderajat ganjil.
Definisi:
Graph yang mempunyai sirkuit Euler disebut Graph Euler
Sedangkan graph yang hanya mempunyai path Euler disebut Graph Semi Euler
Definisi:
Pada Simple Graph. Jika path x0, x1, …, xn-1, xn pada graph G=(V, E) disebut path
Hamilton jika V = {x0, x1, …, xn-1, xn} dan xi ≠ xj untuk 0 ≤ i < j ≤ n. Sirkuit x0, x1, …, xn-
1, xn, x0 (dengan n > 1) pada graph G=(V, E) disebut sirkuit Hamilton jika x0, x1, …, xn-1,
xn adalah path Hamilton.
Teorema:
Jika G graph simple terhubung dengan vertex sebanyak n, dimana n ≥ 3, maka G
mempunyai sirkuit Hamilton jika derajat setiap vertex paling sedikit n/2
Graph Berbobot
Graph yang busur-busurnya diberi bobot (bobot-bobot ini dapat menyatakan berbagai
macam penggunaan, misal waktu tempuh, jarak, kualitas, kuantitas, dll)
Contoh:
45
1 50 2 10
5
40
15 35
20 10 20
30
3 15 4 3 6
Lintasan terpendek
Algoritma Dijkstra
Procedure Dijkstra (G: simple graph yg diberi bobot, dgn bobot selalu positif)
{G punya vertex a=vo, v1, …, vn=z dan bobot w(vi, vj) dimana w(vi, vj)= ∞ jika (vi, vj)
bukan busur di G}
For i:= 1 to n
L(vi):= ∞ {panjang lintasan dari a ke vi}
L(a):=0 {panjang lintasan dari a ke a}
S:= ∅
{semua variable sudah diinisiasi sehingga panjang a = 0 dan yg lainnya tak hingga,
sedangkan S himpunan kosong}
While z ∉ S
Begin
u:= vertex bukan anggota S dengan L(u) minimum
S:=S ∪ {u}
For semua vertex v bukan anggota S
If L(u)+w(u,v) < L(v) then L(v):= L(u) + w(u,v)
Jawab:
S={A, B, F, C, D}
L(D)=10
Contoh:
Tentukan lintasan terpendek dengan menggunakan algoritma Dijkstra dari A sampai
dengan D:
B 8 C
2 8 1
5
A 3 4 D
6 2
F 5 E
Jawab:
Contoh:
Tentukan lintasan terpendek dengan menggunakan algoritma Dijkstra dari A sampai
dengan Z:
D 3
2
F H
1 1 5 2 3
A 2 3
C 3 1
Z
2 E 5
1 3 1
4 I
3
B G
Jawab:
Algoritma lain yang digunakan untuk mencari lintasan terpendek untuk sembarang dua
pasang node adalah Algoritma Floyd. Algoritma ini adalah pengembangan dari algoritma
Algoritma Floyd
Procedure Floyd(G: simple graph yang diboboti)
{menentukan lintasan terpendek dari vi ke vj}
{G mempunyai vertex v1, v2, …, vn dan bobot w(vi, vj) dengan w(vi, vj)= ∞ jika tidak ada
busur}
for i:=1 to n
for j:=1 to n
d(vi, vj):=w(vi, vj)
for i:=1 to n
for j:= 1 to n
for k:=1 to n
if d(vj, vi)+ d(vi, vk)< d(vj, vk):= then d(vj, vk):= d(vj, vi)+ d(vi, vk)
{ d(vi, vj) panjang lintasan terpendek diantara vi dan vj}
Contoh:
Tentukan lintasan terpendek dari node B ke node F dari graph yang berbobot berikut ini:
D 3
1
F H
1 2 5 4 3
A 2 2
C 3 1
Z
2 E 5
1 3 1
4 I
3
B G
Graph Planar
Definisi: Sebuah graph disebut planar jika dapat digambarkan pada bidang tanpa
membuat busur yang saling bersilangan. Gambar yang demikian ini disebut representasi
planar
v1 v2 v1 v2
v3 v4 v3 v4
Representasi Planar
Homomorphic: Graph G=(V,E) homomorphic dengan graph H=(V’, E’) jika graph H
dibentuk dari G dengan cara menambahkan beberapa vertex pada beberapa busur.
Teorema Kuratowski
Graph yang mempunyai sub graph yang homomorphic dengan K3,3 atau K5, bukan
merupakan graph planar.
H2 H3
W G E
v10
v1
v6 v9 v3
v8
v7
v5
v4
Region
Representasi planar membuat bidang di-split dalam beberapa region, termasuk region
yang tak terbatas.
r4 r1
r2 r3
Rumus Euler:
Simple Graph Planar Terhubung dengan busur sebanyak e dan vertex sebanyak v, serta
region sebanyak r memenuhi rumus:
r=e–v+2
Contoh:
Sebuah simple graph planar terhubung dengan 20 vertex yang masing-masing
mempunyai derajat 3. Ada berapa regionnya?
Jawab:
Rumus handshaking= jumlah derajat = 2e
Jumlah derajat: 3x20 = 60
Sehingga r =12
Definisi:
Bilangan kromatik dari sebuah graph adalah bilangan terkecil dari banyaknya warna yang
digunakan dalam perwarnaan graph.
Algoritma Welch-Powell:
1. Urutkan node berdasarkan derajat menurun (representasi ini tidak tunggal, karena
derajat node bisa sama)
2. Berilah warna mulai dari node yang berderajat terbesar.
3. Berilah warna yang sama, sepanjang bukan node yang bertetangga, terhadap node
yang mempunyai derajat yang sama atau lebih kecil.
4. Langkah 3 diulang sampai habis.
5. Langkah 2., 3., dan 4., diulang sampai semua node diberi warna
Contoh Aplikasi:
1. Pewarnaan pada peta dunia. Jika negara saling berbatasan tidak boleh mempunyai
warna yang sama.
2. Penyimpanan bahan kimia berbahaya, jika dikumpulkan dalam satu ruangan bisa
menimbulkan ledakan
3. Penjadwalan ujian, sehingga tidak ada mahasiswa yang ujian dalam satu waktu.
4. Pengaturan Frekuensi. Sehingga dua stasiun TV yang berdekatan tidak menggunakan
frekuensi yang sama
Contoh:
A B C D E
A 0 2 1 3 2
B 2 0 0 1 1
C 1 0 0 1 2
D 3 1 1 0 1
E 2 1 2 1 0
Dari matrik ketetanggaan multi graph di atas tentukan nilai kromatiknya
Jawab:
Node A D E B C
Derajat 8 6 6 4 4
Warna m b k hj hj
Akibatnya untuk mewarnai peta dunia cukup digunakan maksimal empat warna saja,
karena dual dari peta dunia membentuk graph planar.