ata Structure hapter 8 GRPH ahlia Widhyaestoeti, S.Kom
genda Hari Ini Representasi Graph Penelusuran Graph 2
1. Representasi Graph dalam bentuk Matrix a. djacency Matrix Graph Tak erarah (Undirected Graph) 0 1 2 3 4 0 0 1 0 1 0 1 1 0 1 0 1 2 0 1 0 1 1 3 1 0 1 0 1 4 0 1 1 1 0 ata yang terdapat baik dalam row maupun column, dapat menyatakan degree sebuah simpul. 3
1. Representasi Graph dalam bentuk Matrix b. djacency Matrix Graph erarah (irected Graph) ke dari 0 1 2 3 4 0 0 1 0 1 0 1 1 0 1 0 1 2 0 1 0 1 1 3 0 0 1 0 1 4 0 0 0 0 0 ata yang terdapat dalam suatu row, dapat menyatakan outdegree simpul yang bersangkutan 4
1. Representasi Graph dalam bentuk Matrix c. Inverse djacency Matrix Graph erarah (irected Graph) dari Menuju ke 0 1 2 3 4 0 0 1 0 0 0 1 1 0 1 0 0 2 0 1 0 1 0 3 1 0 1 0 0 4 0 1 1 1 0 Perbedaan pokok dengan adjacency matrix adalah : 1. ata yang ada dalam suatu row, menyatakan indegree 2. ata yang ada dalam column, menyatakan outdegree 5
1. Representasi Graph dalam bentuk Matrix d. djacency Matrix Graph erbobot Tak erarah (Weighted Undirected Graph) 4 5 12 8 3 3 6 0 1 2 3 4 0 0 5 999 4 999 1 5 0 3 999 12 2 999 3 0 8 6 3 4 999 8 0 3 4 999 12 6 3 0 ua buah simpul yang tidak berhubungan langsung atau tidak dihubungkan langsung oleh sebuah busur, maka dianggap dihubungkan oleh sebuah busur yang nilai bobotnya tidak terhingga. 6
1. Representasi Graph dalam bentuk Matrix e. Incidence Matrix Graph Tak erarah V 2 e 3 V 3 e V 1 1 e 2 e 4 e 5 e 7 e 6 V 4 V 5 e1 e2 e3 e4 e5 e6 e7 0 1 2 3 4 5 6 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 2 0 0 1 0 1 0 1 3 0 1 0 0 1 1 0 4 0 0 0 1 0 1 1 Matrix n * m n = jumlah simpul ; m = jumlah busur 7
1. Representasi Graph dalam bentuk Matrix e. Incidence Matrix Graph Tak erarah e1 e2 e3 e4 e5 e6 e7 0 1 2 3 4 5 6 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 2 0 0 1 0 1 0 1 3 0 1 0 0 1 1 0 4 0 0 0 1 0 1 1 usur yang ada hubungan dengan simpul adalah busur: e1, e3 dan e4. ngka 1 menunjukan bahwa dari simpul keluar 3 buah busur e1, e3 dan e4. Simpul yang dihubungkan oleh e2 adalah simpul dan 8
1. Representasi Graph dalam bentuk Matrix f. Vector Matrix Graph Tak erarah V 2 e 3 V 3 e V 1 1 e 2 e 4 e 5 e 7 e 6 V 4 V 5 e e e e 0 1 2 3 0 1 2 0 0 1 1 3 4 0 2 3 5 7 0 3 2 5 6 0 4 4 6 7 0 Simpul erhubungan dengan busur : e3, e4, dan e7 Ukuran Matrix : n * (n-1) n = jumlah simpul ; (n-1) = jumlah maksimum busur yang mungkin incedence dengan sebuah simpul 9
2. Representasi Graph dalam bentuk Linked-List a. djacency List Graph Tak erarah FIRST e 2 e 1 e 3 e 4 e 5 e 6 0 0 e 7 0 0 Simpul dituliskan sesuai dengan urutan abjad. 0 10
2. Representasi Graph dalam bentuk Linked-List b. djacency List Graph erbobot Tak erarah 2 5 12 8 7 3 Sama dengan adjacency List Graph erarah dimana arh busurnya selalu berpasangan. 2 FIRST 5 2 0 5 3 12 0 3 8 2 0 2 8 7 0 12 2 7 0 11
2. Representasi Graph dalam bentuk Linked-List c. djacency List Graph erbobot an erarah FIRST 6 2 3 5 14 12 7 9 5 2 0 6 3 0 9 0 12 7 0 14 0 12
2. Representasi Graph dalam bentuk Linked-List d. Inverse djacency List Graph erbobot an erarah FIRST 6 2 3 5 14 12 7 9 6 0 5 14 0 2 12 0 2 0 9 7 0 13
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. da 2 macam penelusuran : 1. epth First Search (FS), penelusuran dengan mendahulukan arah kedalaman 2. readth First Serch (FS), penelusuran dengan mendahlukan arah melebar 14
Penelusuran Graph (Graph Traversal) 1. epth First Search epth First Search (FS), penelusuran graph yang arah penelusurannya mendahulukan ke arah kedalaman graph tersebut. F G H Graph G F G H 0 1 2 3 4 5 6 7 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 2 1 0 0 0 0 1 1 0 3 0 1 0 0 0 0 0 1 4 0 1 0 0 0 0 0 1 F 5 0 0 1 0 1 0 0 1 G 6 0 0 1 0 0 0 0 1 H 7 0 0 0 1 1 1 1 0 djacency Matrix Graph G 15
Penelusuran Graph (Graph Traversal) 1. epth First Search epth First Search (FS), penelusuran graph yang arah penelusurannya mendahulukan ke arah kedalaman graph tersebut. F G F G H H Graph G Hasil penelusuran secara FS Graph G 16
Penelusuran Graph (Graph Traversal) 1. epth First Search alam proses penelusuran, akan terlihat nanti pada suatu titik, 'terpaksa' dilakukan langkah kembali ke simpul sebelumnya. alam 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. wal penelusuran: 1. Misal penelusuran dimulai dari simpul. mbil. Simpan (Push) ke Stack S. 2. berhubungan dengan dan. mbil dan simpan ke stack. Simpul dinyatakan lebih dulu dari simpul. Top S S 17
Penelusuran Graph (Graph Traversal) 2. readth First Search readth First Search (FS), penelusuran graph yang arah penelusurannya mendahulukan ke arah 'lebar' graph tersebut. F G H Graph G F G H 0 1 2 3 4 5 6 7 0 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 2 1 0 0 0 0 1 1 0 3 0 1 0 0 0 0 0 1 4 0 1 0 0 0 0 0 1 F 5 0 0 1 0 1 0 0 1 G 6 0 0 1 0 0 0 0 1 H 7 0 0 0 1 1 1 1 0 djacency Matrix Graph G 18
Penelusuran Graph (Graph Traversal) 2. readth First Search readth First Search (FS), penelusuran graph yang arah penelusurannya mendahulukan ke arah 'lebar' graph tersebut. F G F G H H Graph G Hasil penelusuran secara FS Graph G 19
Penelusuran Graph (Graph Traversal) 2. readth First Search Proses penelusuran: iperlukan sebuah array untuk antrian (Queue) yang diberi nama Q yang jumlah elemenya tidak kurang dari jumlah simpul. wal penelusuran: 1. Misal penelusuran dimulai dari simpul. Simpan ke antrian Q. Pointer F dan R menunjuk ke. Q R F 0 1 2 3 4 5 6 7 2. berhubungan dengan dan. mbil dan kunjungi semuanya. Simpan dan ke dalam antrian. R menunjuk yang terakhir yaitu. R 0 1 2 3 4 5 6 7 Q F 20