Anda di halaman 1dari 25

Modul ke:

Graph
13 Fakultas
FASILKOM
Dasar Graph dan Graph Berarah
Representasi matriks adjacency
Representasi linked list

YUWAN JUMARYADI, S.Kom., MM

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 BCD
B F  E  C A
C B  E A
D AE
E DCBF
F EB

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)

Perbedaan pokok dengan adjacency matrix adalah :


1. Data yang ada dalam suatu row, menyatakan indegree
2. Data yang ada dalam column, menyatakan outdegree

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.

Ada 2 macam penelusuran :


1. Depth First Search (DFS), penelusuran dengan mendahulukan
arah kedalaman
2. Breadth First Serch (BFS), penelusuran dengan mendahlukan
arah melebar

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.

2. A berhubungan dengan B dan C. Ambil B


dan simpan B ke stack. Simpul B
dinyatakan lebih dulu dari simpul C.

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.

2. A berhubungan dengan B dan C.


Ambil dan kunjungi semuanya.
Simpan B dan C ke dalam antrian. R
menunjuk yang terakhir yaitu C.
24
Terima Kasih
YUWAN JUMARYADI, S.Kom., MM

Anda mungkin juga menyukai