Pengenalan Graph Disusun Oleh Budi Arifitama Pertemuan 9
Pengenalan Graph Disusun Oleh: Budi Arifitama Pertemuan 9
Questions Review 1. Apa yang dimaksud dengan tree? 2. Sebutkan penggunaan tree yang digunakan dalam kehidupan sehari 3. Apa yang dimaksud dengan leaf? 4. Apakah sebuah leaf dapat memiliki node dibawahnya? 5. Seandainya Sebuah leaf memiliki node dibawahnya sebutan apa kira yang tepat buat node tersebut? 6. Apa yang dimaksud dengan pohon biner?
Implementasi Tree (Preorder, Inorder & Postorder)
Graph
Sub Topik Overview : Graph Jenis Graph Implementasi Graph Property Representasi Graph
Graph digunakan untuk merepresentasikan 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 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 Nina Firda Riza Toni Joko Ale 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 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)
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 1 10 4 5 6 9 7 11
Gambar Undi-Graph (2)
Complete Undirected Graph Semua node memiliki edge/lines untuk setiap node pada graph. n=1 n=2 n = node n=3 n=4
Connected Graph Termasuk Jenis Undirected graph. Setiap pasang vertex memiliki edge.
Contoh Connected Graph 2 3 8 1 10 4 5 6 9 7 11
Contoh Not Connected Graph 2 3 8 1 10 4 5 6 9 7 11
Connected Components 2 3 8 1 10 4 5 6 9 7 11
Weigth Graph Jika semua lines/edge dalam graph memiliki bobot/nilai (value).
Contoh Weigth Graph A 2 E 2 D 2 4 5 B 4 F C
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.
3. Adjacent Pada graph tidah berarah, 2 buah simpul disebut adjacent bila ada busur yang menghubungkan kedua simpul tersebut. Simpul v dan w disebut adjacent. w v e Pada graph berarah, simpul v disebut adjacent dengan simpul w bila ada busur dari w ke v. e v w
Successor dan Predecessor 4. 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 5. Sebuah path adalah serangkaian simpul-simpul yang berbeda, yang adjacent secara berturut dari simpul satu ke simpul berikutnya. 1 2 3 4 1 3 2 1 2 4 3 4
Representasi Graph dalam bentuk matrix Adjacency Matrix Graph tak berarah Urut abjad B A C D Graph E A 0 B 1 C 2 D 3 E 4 0 1 0 1 0 1 A 0 B 1 C 2 D 3 0 1 1 E 4 1 0 1 0 1 1 1 0 Degree simpul : 3
Representasi Graph dalam bentuk matrix Directed Adjacency Matrix Graph ke dari B A C D E Graph A 0 B 1 C 2 D 3 E 4 0 1 0 1 0 1 A 0 B 1 C 2 D 3 0 1 1 E 4 0 0 1 0 0 0 out in
Contoh : untuk vertex A, memiliki 2 edge yang terhubung yaitu e 1 dan e 2. e 1 Urut abjad B e 4 e 3 A e 2 e 5 D e 6 A C B e 7 C E D Graph E e 1 e 2
List Matrix B A C D Graph E A B D B A C E C B D E D A C E E B C D
Directed Adjency List Graph B A C D E A B D B A C C E D C E B E
Directed & Weighted Graph A 0 B 6 3 5 A C 14 2 12 12 D 7 E A 0 B 1 C 2 D 3 E 4 B 1 0 5 6 0 0 0 14 C 2 D 3 E 4 0 3 0 12 0 0 0 0 9 7 0 Perhatikan pemilihan nilai 0.
Vertex degree Degree : Jumlah edge/lines yang dimiliki node/vertex.
Contoh Vertex Degree 2 3 8 1 10 4 5 6 9 7 degree(2) = 2, degree(5) = 3, degree(3) = 1 degree(9) = ? ? ? degree (11) = ? ? ? 11
In-Degree Jumlah edge yang mengarah ke Node/Vertex. 2 3 8 1 10 4 5 6 9 7 11 indegree(2) = 1, indegree(8) = 0, indegree(7)=? ? ?
Out-Degree Jumlah edge yang keluar dari Node/Vertex. 2 3 8 1 10 4 5 6 9 7 11 outdegree(2) = 1, outdegree(8) = 2, outdegree(7) = ? ? ?
Implementasi Graph
Aplikasi Jaringan Komunikasi 2 3 8 1 10 4 5 6 Node/Vertex = kota Lines/Edge = communication link. 9 7 11
Peta Penelusuran Kota (Berdasarkan Jarak/Waktu) 2 4 3 8 8 1 6 2 10 4 4 4 5 9 5 6 6 Node/Vertex = Kota Lines/edge = jalur Weight = jarak/waktu 7 7 5 3 11
Peta kota 2 3 8 1 10 4 5 6 Some streets are one way. 9 7 11
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 Simpul Tujuan Lintasan terpendek Jara k 1 3 1® 3 10 1 4 1® 3® 4 25 1 2 1® 3® 4® 2 45 1 5 1® 5 45 1 6 tidak ada -
- Slides: 52