Pengenalan Graph Disusun Oleh: Budi Arifitama Pertemuan 9
Questions Review Apa yang dimaksud dengan tree? Sebutkan penggunaan tree yang digunakan dalam kehidupan sehari hari Apa yang dimaksud dengan leaf? Apakah sebuah leaf dapat memiliki node dibawahnya? Seandainya Sebuah leaf memiliki node dibawahnya sebutan apa kira kira yang tepat buat node tersebut? Apa yang dimaksud dengan pohon biner?
Implementasi Tree (Preorder,Inorder & Postorder)
Graph
Sub Topik Overview : Graph Jenis Graph Implementasi Graph Graph Property Representasi Graph
Graph Graph digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Gambar berikut ini sebuah graph yang menyatakan peta jaringan jalan raya yang menghubungkan sejumlah kota di Provinsi Jawa Tengah.
Graph
Definisi Graf Graf G (V, E), adalah koleksi atau pasangan dua himpunan Himpunan V yang elemennya disebut simpul atau titik, atau vertex, atau point, atau node. Himpunan E yang merupakan pasangan tak terurut dari simpul, disebut ruas atau rusuk, atau sisi, atau edge, atau line.
Graph Banyaknya simpul (anggota V) disebut order Graf G, sedangkan banyaknya ruas (anggota E) disebut ukuran (size) Graf G
Graph G = (V,E) Dimana : V adalah Vertex, menyatakan entitas data. E adalah Edge, menyatakan garis penghubung antar node. Vertex (Vertices) disebut juga sebagai node atau point. Edge disebut juga sebagai arcs atau lines. Setiap edge menghubungkan dua vertices.
Contoh Graph Contoh persoalan di dunia nyata yang dapat direpresentasikan dengan graph adalah : Jaringan pertemanan pada Facebook.
Jaringan pertemanan pada Facebook Toni Nina Ale Firda Joko Riza Graph dengan 6 node/vertex dan 7 lines/edge yang merepresentasikan jaringan pertemanan pada Facebook
Penjabaran Node(vertex): para pemakai Facebook Lines(edge) : Garis penghubung antara pemakai satu dengan yang lain. Sehingga dari contoh graph diatas dapat dijabarkan sebagai berikut : V = {Nina, Toni, Ale, Riza, Joko, Firda} E = {{Nina,Toni},{Toni,Riza},{Nina, Riza}, {Toni,Ale}, {Ale,Joko},{Riza,Joko},{Firda,Joko}}
Jenis Graph Directed Graph (Digraph) Undirected Graph Weigth Graph Complete Undirected Graph Connected Undirected Graph Weigth Graph
Directed Graph (Digraph) Graph yang memiliki orientasi/arah. Setiap lines/edge Digraph memiliki anak panah yang mengarah ke node tertentu. Secara notasi sisi digraph ditulis sebagai vektor (u, v). u = origin (vertex asal) v = terminus (vertex tujuan) u v
Contoh Digraph (1) 2 3 1 4 5 6 7
Gambar Digraph (2)
Contoh Digraph (2) G = {V, E} V = {A, B, C, D, E, F, G, H, I,J, K, L, M} E = {(A,B),(A,C), (A,D), (A,F), (B,C), (B,H), (C,E), (C,G), (C,H), (C,I), (D,E), (D,F), (D,G), (D,K), (D,L), (E,F), (G,I), (G,K), (H,I), (I,J), (I,M), (J,K), (J,M), (L,K), (L,M)}.
Undirected Graph (Digraph) Graph yang tidak memiliki orientasi/arah. Setiap sisi {u, v} berlaku pada kedua arah. Misalnya : {x,y}. Arah bisa dari x ke y, atau y ke x. Secara grafis sisi pada undigraph tidak memiliki mata panah dan secara notasional menggunakan kurung kurawal. u v
Contoh Undi-Graph (1) 2 3 8 10 1 4 5 9 11 6 7
Gambar Undi-Graph (2)
Contoh Undi-Graph (2) G = {V, E} V = {A, B, C, D, E, F, G, H, I,J, K, L, M} E = { {A,B},{A,C}, {A,D}, {A,F}, {B,C}, {B,H}, {C,E}, {C,G}, {C,H}, {C,I}, {D,E}, {D,F}, {D,G}, {D,K}, {D,L}, {E,F}, {G,I}, {G,K}, {H,I}, {I,J}, {I,M}, {J,K}, {J,M}, {L,K}, {L,M}}.
Complete Undirected Graph Semua node memiliki edge/lines untuk setiap node pada graph. n = 2 n = 4 n = 3 n = 1 n = node
Connected Graph Termasuk Jenis Undirected graph. Setiap pasang vertex memiliki edge.
Contoh Connected Graph 2 3 8 10 1 4 5 9 11 6 7 Determine whether an undirected graph is connected.
Contoh Not Connected Graph 2 3 8 10 1 4 5 9 11 6 7
Connected Components 2 3 8 10 1 4 5 9 11 6 7
Weigth Graph Jika semua lines/edge dalam graph memiliki bobot/nilai (value).
Contoh Weigth Graph B A C E F D 2 4 5
Istilah pada graph Degree (derajat), indegree dan outdegree Degree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut.
Indegree sebuah simpul pada graph berarah adalah jumlah busur yang kepalanya incident dengan simpul tersebut, atau jumlah busur yang “masuk” atau menuju simpul tersebut. Outdegree sebuah simpul pada graph berarah adalah jumlah busur yang ekornya incident dengan simpul tersebut, atau jumlah busur yang “keluar” atau berasal dari simpul tersebut.
Adjacent Pada graph tidah berarah, 2 buah simpul disebut adjacent bila ada busur yang menghubungkan kedua simpul tersebut. Simpul v dan w disebut adjacent. Pada graph berarah, simpul v disebut adjacent dengan simpul w bila ada busur dari w ke v. w v e w e v
Successor dan Predecessor Pada graph berarah, bila simpul v adjacent dengan simpul w, maka simpul v adalah successor simpul w, dan simpul w adalah predecessor dari simpul v. Path Sebuah path adalah serangkaian simpul-simpul yang berbeda, yang adjacent secara berturut-turut dari simpul satu ke simpul berikutnya. 1 1 1 2 1 2 2 2 4 4 4 4 3 3 3 3
Representasi Graph dalam bentuk matrix Adjacency Matrix Graph tak berarah A B C D E Urut abjad 1 2 3 4 B A 1 B 1 A C C 2 D 3 D E E 4 Graph Degree simpul : 3
Representasi Graph dalam bentuk matrix Directed Adjacency Matrix Graph A B C D E ke 1 2 3 4 B dari A 1 B 1 out A C C 2 D 3 D E E 4 Graph in
Contoh : untuk vertex A, memiliki 2 edge yang terhubung yaitu e1 dan e2. Urut abjad e1 A e1 e2 e3 e4 A C B e2 e5 e7 C D E e6 D Graph E
List Matrix A B D B B A C E C B D E A C D A C E E B C D D E Graph
Directed Adjency List Graph B A B D B A C A C C E D C E D E E B
Directed & Weighted Graph B C D E 1 2 3 4 B 6 5 2 6 3 9 12 7 14 A 3 5 B 1 A 14 C C 2 12 2 12 D 3 D E E 4 7 Perhatikan pemilihan nilai 0.
Vertex degree Degree : Jumlah edge/lines yang dimiliki node/vertex.
Contoh Vertex Degree 2 3 8 10 1 4 5 9 11 6 7 degree(2) = 2, degree(5) = 3, degree(3) = 1 degree(9) = ??? degree (11) = ???
In-Degree Jumlah edge yang mengarah ke Node/Vertex. indegree(2) = 1, indegree(8) = 0, indegree(7)=??? 2 3 8 10 1 4 5 9 11 6 7
Out-Degree Jumlah edge yang keluar dari Node/Vertex. outdegree(2) = 1, outdegree(8) = 2, outdegree(7) = ??? 2 3 8 10 1 4 5 9 11 6 7
Implementasi Graph
Aplikasi Jaringan Komunikasi 2 3 8 10 1 4 5 9 11 6 7 Internet connection. Vertices are computers. Send email from 1 to 7. Node/Vertex = kota Lines/Edge = communication link.
Peta Penelusuran Kota (Berdasarkan Jarak/Waktu) 2 3 8 10 1 4 5 9 11 6 7 Node/Vertex = Kota Lines/edge = jalur Weight = jarak/waktu
Peta kota 2 3 8 10 1 4 5 9 11 6 7 Some streets are one way.
Graph Property
Beberapa Aplikasi Graf a. Lintasan Terpendek (Shortest Path) graf berbobot (weighted graph), lintasan terpendek: lintasan yang memiliki total bobot minimum. Contoh aplikasi: Menentukan jarak terpendek/waktu tempuh tersingkat/ongkos termurah antara dua buah kota Menentukan waktu tersingkat pengiriman pesan (message) antara dua buah terminal pada jaringan komputer.
Lintasan Terpendek Terdapat beberapa jenis persoalan lintasan terpendek, antara lain: Lintasan terpendek antara dua buah simpul tertentu. Lintasan terpendek antara semua pasangan simpul. Lintasan terpendek dari simpul tertentu ke semua simpul yang lain. Lintasan terpendek antara dua buah simpul yang melalui beberapa simpul tertentu. ==> Di dalam kuliah ini kita memilih jenis persoalan 3.
Lintasan Terpendek Uraian persoalan Diberikan graf berbobot G = (V, E) dan sebuah simpul a. Tentukan lintasan terpendek dari a ke setiap simpul lainnya di G. Asumsi yang kita buat adalah bahwa semua sisi berbobot positif.
Lintasan Terpendek Graph Simpul asal Tujuan Lintasan terpendek Jarak 1 3 1 ® 3 10 4 1 ® 3 ® 4 25 2 1 ® 3 ® 4 ® 2 45 5 1 ® 5 6 tidak ada -