Elementary Graph
Algorithms
Graph
• Graph adalah kumpulan node (simpul) di dalam bidang dua
dimensi yang dihubungkan dengan sekumpulan garis (sisi).
• Graph dapat digunakan untuk merepresentasikan
objek-objek diskrit dan hubungan antara objek-objek
tersebut.
• Representasi visual dari graph adalah dengan menyatakan
objek sebagai node, bulatan atau titik (Vertex), sedangkan
hubungan antara objek dinyatakan dengan garis (Edge).
Graph
Graph G = (V, E)
Dimana:
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc
Graph
Contoh Graph:
Jaringan pertemanan pada Facebook
Graph dengan 6 node dan 7 edge yang merepresentasikan jaringan pertemanan
Graph
Sehingga dari contoh graph facebook tersebut dapat
dijabarkan :
V = {Nina, Toni, Ale, Riza, Joko, Firda}
E = {{Nina,Toni},{Toni,Riza},{Nina, Riza}, {Toni,Ale},
{Ale,Joko},{Riza,Joko},{Firda,Joko}}
*Vertex: para anggota Facebook
Edge: relasi pertemanan antara anggota satu dengan yang lain.
Graph
• Graph merupakan suatu cabang ilmu yang memiliki banyak
terapan.
• Banyak struktur yang bisa direpresentasikan dengan graph,
dan banyak masalah yang bisa diselesaikan dengan bantuan
graph.
• Graph bermanfaat untuk menciptakan link yang ada di
internet, algoritma, transportasi, kecerdasan buatan, GPS,
data mining, serta banyak hal lainnya.
Graph
• Graph digunakan untuk merepresentasikan suatu jaringan.
• Misalkan jaringan jalan raya dimodelkan graph dengan
kota sebagai simpul (vertex/node) dan jalan yang
menghubungkan setiap kotanya sebagai sisi (edge) yang
bobotnya (weight) adalah panjang dari jalan tersebut.
Istilah Pada Graph
• Vertex
Adalah himpunan node / titik pada sebuah graph.
• Edge
Adalah himpunan garis yang menghubungkan tiap node /
vertex.
Istilah Pada Graph
• Adjacent
Dua buah titik dikatakan berdekatan
(adjacent) jika dua buah titik
tersebut terhubung dengan sebuah
sisi.
Titik v1 adjacent dengan titik v2 dan
titik v3, tetapi titik v1 tidak adjacent
dengan titik v4.
Istilah Pada Graph
• Weight
Sebuah graph G = (V, E) disebut sebuah graph berbobot
(weight graph), apabila terdapat sebuah fungsi bobot
bernilai real W pada himpunan E,
W:E R
nilai W(e) disebut bobot untuk sisi e, ∀ e ∈ E.
Istilah Pada Graph
Graf berbobot G = (V, E, W) dapat menyatakan
▪Suatu sistem perhubungan udara, di mana
V = himpunan kota-kota
E = himpunan penerbangan langsung dari satu kota ke kota lain
W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos
atau waktu
Istilah Pada Graph
▪ Suatu sistem jaringan komputer, di mana :
V = himpunan komputer
E = himpunan jalur komunikasi langsung antar dua komputer
W = fungsi bernilai real pada E yang menyatakan jarak atau
ongkos atau waktu
Istilah Pada Graph
• Path
Adalah jalur dengan setiap vertex berbeda.
Sebuah jalur (W) didefinisikan sebagai urutan (tidak nol) vertex dan
edge. Diawali origin vertex (vertex awal) dan diakhiri terminus
vertex (vertex akhir).
• Cycle
Adalah Siklus (Cycle) atau Sirkuit (Circuit) yaitu lintasan yang
berawal dan berakhir pada simpul yang sama .
Jenis graph
Terdapat beberapa jenis graph yaitu:
▪Graph tak berarah (undirected graph atau non-directed
graph)
▪Graph berarah (directed graph)
▪Graph Berbobot (Weighted Graph)
Undirected graph
• Undirected graph merupakan graph yang tidak memiliki arah.
• Setiap sisi berlaku dua arah.
• Misalkan: {x,y}
Arah bisa dari x ke y, atau y ke x.
• Secara grafis sisi pada undirected graph tidak memiliki mata
panah dan secara notasional menggunakan kurung kurawal.
U V {U,V} atau {V,U}
Contoh Undirected graph
Notasinal:
G = {V, E}
V = {A, B, C, D, E, F, G, H, I,J, K, L, M}
E = { {A,B},{A,C}, {A,D}, {A,F},
{B,C}, {B,H}, {C,E}, {C,G}, {C,H},
{C,I}, {D,E},{D,F}, {D,G}, {D,K},
{D,L}, {E,F}, {G,I}, {G,K}, {H,I}, {I,J},
{I,M}, {J,K},{J,M}, {L,K}, {L,M}}.
Contoh Undirected graph
Directed Graph
• Yaitu graph yang memiliki arah.
• Setiap edge directed graph memiliki anak panah yang
mengarah ke node tertentu.
• Secara notasi sisi directed graph ditulis sebagai vektor (u, v).
u = origin (vertex asal)
v = terminus (vertex tujuan)
u v
Contoh Directed Graph
Notasinal:
G = {V, E}
V = {A, B, C, D, E, F, G, H, I,J, K, L, M}
E = {(A,B),(A,C), (A,D), (A,F), (B,C),
(B,H), (C,E), (C,G), (C,H), (C,I), (D,E),
(D,F), (D,G), (D,K), (D,L), (E,F), (G,I),
(G,K), (H,I), (I,J), (I,M), (J,K), (J,M),
(L,K), (L,M)}.
Contoh Directed graph
Weighted Graph
• Jika setiap busur mempunyai nilai yang menyatakan hubungan
antara 2 buah simpul, maka busur tersebut dinyatakan memiliki
bobot.
• Graph yang memiliki bobot, yaitu pada tiap edge-nya memiliki
nilai.
• Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari
2 buah titik, jumlah rata-rata kendaraan perhari yang melalui
sebuah jalan, dll.
Contoh Weighted Graph
Contoh Weighted Graph
Loop
• Directed Graph dapat
memiliki edge dari dan
menuju ke node itu sendiri
(Self-edge). Hal ini dikenal
dengan istilah loop.
Representasi Graph
• Dalam pemrograman, agar data yang ada dalam graph
dapat diolah, maka graph harus dinyatakan dalam suatu
struktur data yang dapat mewakili graph tersebut.
• Graph direpresentasikan dengan 2 cara standar, yaitu:
1. Adjacency Lists
2. Adjacency Matrix
Adjacency Lists
• Consists of an array Adj of |V| lists.
• One list per vertex.
• For u ∈ V, Adj[u] consists of all vertices adjacent to u
Undirected graph
a b a b d c
b a c
c d a b
c d
d a c
Adjacency Lists
Directed graph
a b d c
a b
b c
c d
d
c d
If weighted, store weights also in
adjacency lists.
Adjacency Matrix
• Representasi Graph berupa Matrik ordo V x V (V = Vertex)
• Baris berisi Node asal, sedangkan kolom berisi Node tujuan.
• Jika graph tidak berbobot, maka nilai matriks diisi dengan 1
atau 0. Nilai 1 jika ada edge, dan 0 jika tidak ada edge antar
vertex (node).
• A(i,j) = 1, jika antara node i dan node j terdapat edge/terhubung.
• Jika graph berbobot, maka nilai matriks diisi dengan bobot dari
edge. A(i,j) = nilai bobot.
Adjacency Matrix
Undirected graph
1 2 1 2 3 4
a b 1 0 1 1 1
2 1 0 1 0 A = AT for undirected graphs
3 1 1 0 1
c d 4 1 0 1 0
3 4
Diagonal entries are zero.
Adjacency matrix of an undirected graph is symmetric.
Adjacency Matrix
Directed graph
1 2 1 2 3 4
a b 1 0 1 1 1
2 0 0 1 0
3 0 0 0 1
c d 4 4 0 0 0 0
3
Dimungkinkan tidak simetris jika terdapat loop.
Tugas
1. Gambarkan graph dari representasi Matrik berikut:
Tugas
2. Representasikan Graph berikut dengan adjacency list dan
adjacency matrix
Tugas
3. Representasikan Graph berikut dengan adjacency list dan
adjacency matrix
Tugas
Metode Penelusuran Graph:
1.DFS (Depth First Search) : Pencarian Mendalam
2.BFS (Breadth First Search) : Pencarian Melebar