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
© Copyright 2024 Paperzz