download

Matakuliah
Tahun
Versi
: T0534/Struktur Data
: 2005
: September 2005
Pertemuan 13
GRAPH
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• menerangkan karakteristik, jenis dan operasi
Traversal pada Graph(TIK-11).
• membuat representasi Graph(TIK-11).
2
Outline Materi
• Terminologi.
• Tipe.
• Traversal :
– BFT
– DFT
3
Terminologi
GRAPH adalah suatu struktur data yang berbentuk network/jaringan dimana
hubungan antara elemen-elemennya adalah many-to-many.
BU :
G = (V,E)
V = NODE (VERTICE), E = ARC (EDGE)
SUBGRAPH :
Adalah GRAPH yang merupakan suatu subset/bagian dari GRAPH.
PATH
Adalah sequence dari kumpulan node-node dimana tiap node dengan
node berikutnya dihubungkan dengan EDGE
B
D
A
F
C
E
A-F
4
Terminologi
SIMPLE PATH
Jika node dalam path tersebut hanya muncul 1 kali.
B
D
A
B
F
C
A
D
F
E
A-F
5
Terminologi
CYCLE GRAPH
Jika node pertama dan node terakhir dalam GRAPH adalah sama.
B
A
C
6
Tipe
•
•
•
•
•
•
Directed GRAPH (DiGraph)
Undirected GRAPH
Connected GRAPH
Unconnected GRAPH
Weighted GRAPH
Unweighted GRAPH
7
Directed Graph
Jika sepasang node yg membentuk edge dalam GRAPH
mempunyai arah.
B
A
C
Directed Graph
8
Undirected Graph
Jika sepasang node yang membentuk edge dalam
GRAPH tidak terarah.
B
A
C
Undirected Graph
9
Connected Graph
Bila setiap pasang node punya hubungan di antara keduanya dalam GRAPH.
B
D
A
F
C
E
Connected Graph
10
Unconnected Graph
Bila terdapat SubGraph yang terisolasi.
B
D
A
F
C
E
Unconnected Graph
11
Weighted Graph
Jika semua edge dalam GRAPH diberi nilai.
A
2
B
C
4
3
5
D
Weighted Graph
12
Unweighted Graph
Jika semua edge dalam GRAPH tidak ada nilai.
A
C
B
D
Weighted Graph
13
Diskusi
A
B
D
C
E
F
Apakah tree tersebut juga merupakan Graph ?
Jika merupakan Graph, termasuk dalam tipe yang mana ?
14
Representasi
•ADJACENCY MATRIX
–Direpresentasikan dengan Array 2 dimensi
–Tipe komponen dari Array bisa digunakan
BOOLEAN atau INTEGER (untuk WEIGHTED
GRAPH).
•ADJACENCY LIST
–Direpresentasikan sebagai suatu list, bisa
dinyatakan dengan LINKED -LIST.
15
Adjacency
B
D
A
F
C
E
Undirected Graph
NODE A B C D E
A
0 1 1 0 0
B
1 0 1 1 1
C
1 1 0 0 1
D
0 1 0 0 1
E
0 1 1 1 0
F
0 0 0 1 1
Adjacency Matrix
F
0
0
0
1
1
0
NODE
A
B
C
D
E
F
EDGE LIST
B C
A C D E
A B E
B E F
B C D F
D E
Adjacency List
16
Traversal
Adalah proses untuk mengunjungi setiap node pada
GRAPH. Dua metode yang digunakan untuk
traversal pada GRAPH :
• Breadth First Traversal (BFT) : adalah proses traversal
yang lebih memprioritaskan node-node tetangga atau
node pada level yang sama. Setelah itu diteruskan ke
level terdalam selanjutnya.
• Depth First Traversal (DFT) : adalah proses traversal yang
lebih memprioritaskan langkah penelusuran ke level
terdalam terlebih dahulu.
17
Algoritma BFT
Pilih node Awal
1. Set semua node dengan status siap dikunjungi (status=1)
2. Enqueue(node Awal), ubah status node awal menjadi
menunggu (status=2)
3. Dequeue&(node_N), ubahstatus node_N menjadi telah
diproses (status=3)
4. Enqueue semua node yang adjacent dengan node_N dan
memiliki status=1, ubah status mereka menjadi 2
5. Ulangi langkah 3 s.d. 4 hingga Queue kosong
18
Algoritma DFT
Pilih node Awal
1. Set semua node dengan status siap dikunjungi (status=1)
2. Push(node Awal), ubah status node awal menjadi
menunggu (status=2)
3. Pop(node_N), ubahstatus node_N menjadi telah diproses
(status=3)
4. Push semua node yang adjacent dengan node_N dan
memiliki status=1, ubah status mereka menjadi 2
5. Ulangi langkah 3 s.d. 4 hingga Stack kosong
19
Contoh Traversal
B
D
A
F
C
E
Undirected Graph
BFT ?
DFT ?
NODE
A
B
C
D
E
F
EDGE LIST
B C
A C D E
A B E
B E F
B C D F
D E
Adjacency List
20
BFT
start node A
Langkah Node_N
1
2
3
4
5
6
7
8
9
10
11
12
13
QUEUE
A
A
A
B
B
C
C
D
D
E
E
F
B-C
C
C-D-E
D-E
D-E
E
E-F
F
F
A
1
2
3
3
3
3
3
3
3
3
3
3
3
Status Node
B
C D E
1
1
1 1
1
1
1 1
1
1
1 1
2
2
1 1
3
2
1 1
3
2
2 2
3
3
2 2
3
3
2 2
3
3
3 2
3
3
3 2
3
3
3 3
3
3
3 3
3
3
3 3
F
1
1
1
1
1
1
1
1
1
2
2
2
3
Hasil
A
A
A-B
A-B
A-B-C
A-B-C
A-B-C-D
A-B-C-D
A-B-C-D-E
A-B-C-D-E
A-B-C-D-E-F
21
Selesai
22