Graph
13 Fakultas
FASILKOM
Dasar Graph dan Graph Berarah
Representasi matriks adjacency
Representasi linked list
Program Studi
SISTEM
INFORMASI
Kemampuan Akhir Yang Diharapkan
Definisi dasar graph dan graph berarah : memahami apa yang
dimaksud dengan graph dan jenis-jenisnya.
Representasi matriks adjacency dan representasi linked list.
Graph
Merupakan struktur data yang mempunyai hubungan antar
elemen: many to many
Notasi Graph
Graph terdiri dari:
Node atau vertice
Arc atau edge
G = (V,E)
3
Tipe Graph
Undirected Graph
Directed Graph
Weighted Graph
4
Representasi Graph
1. Adjacency Matrix
5
2. Adjacency List
Node Edge List
A BCD
B F E C A
C B E A
D AE
E DCBF
F EB
6
Representasi Graph dalam bentuk
Matrix
a. Adjacency matrix graph tak berarah (Undirected Graph)
Data yang terdapat baik dalam row maupun column, dapat menyatakan
degree sebuah simpul
7
Representasi Graph dalam bentuk
Matrix
b. Adjacency Matrix Graph Berarah (directed Graph)
Data yang terdapat dalam suatu row, dapat menyatakan outdegree simpul
yang bersangkutan
8
Representasi Graph dalam bentuk
Matrix
c. Inverse Adjacency Matrix Graph Berarah (Directed Graph)
9
Representasi Graph dalam bentuk
Matrix
d. Adjacency Matrix Graph Berbobot Tak Berarah
(Weighted Undirected Graph)
Dua buah simpul yang tidak berhubungan langsung atau tidak dihubungkan
langsung oleh sebuah busur, maka dianggap dihubungkan oleh sebuah
busur yang nilai bobotnya tidak terhingga.
10
Representasi Graph dalam bentuk
Matrix
e. Incidence Matrix Graph Tak Berarah
Matrix n * m
n = jumlah simpul ; m = jumlah busur
11
Representasi Graph dalam bentuk
Matrix
e. Incidence Matrix Graph Tak Berarah
12
Representasi Graph dalam bentuk
Matrix
f. Vector Matrix Graph Tak Berarah
13
Representasi Graph dalam bentuk
Linked-List
a. Adjacency List Graph Tak Berarah
14
Representasi Graph dalam bentuk
Linked-List
b. Adjacency List Graph Berbobot Tak Berarah
15
Representasi Graph dalam bentuk
Linked-List
c. Adjacency List Graph Berbobot dan Berarah
16
Representasi Graph dalam bentuk
Linked-List
d. Inverse Adjacency List Graph Berbobot dan Berarah
17
Penelusuran Graph (Graph Traversal)
Penelusuran Graph maksudnya mengunjungi (visit) atau membaca
Graph menurut arah tertentu, simpul per simpul, mulai dari
simpul tertentu sampai semua simpul dikunjungi tanpa ada simpul
yang dikunjungi atau dibaca lebih dari satu kali.
18
Penelusuran Graph (Graph Traversal)
1. Depth First Search
Depth First Search (DFS), penelusuran graph yang arah
penelusurannya mendahulukan ke arah kedalaman graph tersebut.
19
Penelusuran Graph (Graph Traversal)
1. Depth First Search
Depth First Search (DFS), penelusuran graph yang arah
penelusurannya mendahulukan ke arah kedalaman graph tersebut.
20
Penelusuran Graph (Graph Traversal)
1. Depth First Search
Dalam proses penelusuran, akan terlihat nanti pada suatu titik, 'terpaksa'
dilakukan langkah kembali ke simpul sebelumnya. Dalam pemrograman,
untuk dapat kembali ke posisi sebelumnya, biasanya diperlukan stack. Pada
penelusuran, kita menggunakan stack S, dengan jumlah elemen tidak
kurang dari jumlah simpul graph yang ditelusuri.
Awal penelusuran:
1. Misal penelusuran dimulai dari simpul A.
Ambil A. Simpan (Push) A ke Stack S.
21
2. Breadth First Search
Breadth First Search (BFS), penelusuran graph yang arah
penelusurannya mendahulukan ke arah 'lebar' graph tersebut.
22
2. Breadth First Search
Breadth First Search (BFS), penelusuran graph yang arah
penelusurannya mendahulukan ke arah 'lebar' graph tersebut.
23
2. Breadth First Search
Proses penelusuran:
Diperlukan sebuah array untuk antrian (Queue) yang diberi
nama Q yang jumlah elemenya tidak kurang dari jumlah simpul.
Awal penelusuran:
1. Misal penelusuran dimulai dari simpul
A. Simpan A ke antrian Q. Pointer F
dan R menunjuk ke A.