1 / 68

GRAPH

Algoritma dan Struktur Data. GRAPH. Teknik Informatika Universitas Muhammadiyah Malang 2011. Tujuan Instruksional . Mampu memahami konsep struktur data graph Mampu memahami representasi graph Mampu memahami teknik penelusuran pada graph Mampu mengimplementasikan graph kedalam pemrograman.

dana-holman
Download Presentation

GRAPH

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritma dan Struktur Data GRAPH Teknik Informatika Universitas Muhammadiyah Malang 2011

  2. Tujuan Instruksional • Mampu memahami konsep struktur data graph • Mampu memahami representasi graph • Mampu memahami teknik penelusuran pada graph • Mampu mengimplementasikan graph kedalam pemrograman.

  3. Topik • Definisi Graph • Contoh graph • Jenis graph • Representasi graph • Graph traversal • Implementasi graph

  4. Definisi • Graph adalah struktur data yang memiliki relasi many to many, yaitu tiap element dapat memiliki 0 atau lebih dari 1 cabang. • Graph terbentuk dari 2 bagian, yaitu node dan edge. • Node : digunakan untuk menyimpan data • Edge : cabang, untuk menghubungkan node satu dengan node lain.

  5. Nina Firda Riza Toni Joko Ale Contoh Graph • Jaringan pertemanan pada Facebook. Graph dengan 6 node dan 7 edge yang merepresentasikan jaringan pertemanan pada Facebook

  6. Penjabaran • Jika =>G = (N,E) • Dimana : G adalah Graph, Nadalah Node, dan Eadalah Edge. • Sehingga dari contoh graph facebook tersebut dapat dijabarkan : N = {Nina, Toni, Ale, Riza, Joko, Firda} E = {{Nina,Toni},{Toni,Riza},{Nina, Riza}, {Toni,Ale}, {Ale,Joko},{Riza,Joko},{Firda,Joko}} *N: para anggota Facebook E: pertemanan antara member satu dengan yang lain.

  7. Jenis Graph • Graph dibedakan menjadi beberapa jenis, antara lain : • Undirected Graph • Directed Graph (Digraph) • Weigth Graph

  8. U • V {U,V} atau {V,U} Undirected Graph • Biasa disingkat : undi-graph. • Yaitu graph yang tidak memiliki arah. • Setiap sisi berlaku dua arah. • Misalkan : {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.

  9. Gambar Undi-Graph

  10. Notasional 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}}.

  11. 2 3 1 4 5 6 7 Contoh Undi-Graph

  12. u • v Directed Graph • Biasa disingkat : Di-graph. • Yaitu graph yang memiliki arah. • Setiap 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)

  13. Gambar Digraph

  14. Notasional 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)}.

  15. 2 3 1 4 5 6 7 Contoh Digraph

  16. Weigth Graph • Graph yang memiliki bobot, yaitu pada tiap edge-nya memiliki nilai.

  17. A E 2 D 2 2 4 5 B F 4 C Contoh Weigth Graph

  18. 1 2 Self-edge/loop LEGAL 3 4 5 6 7 Loop • Digraph dapat memiliki edge dari dan menuju ke node itu sendiri (Self-edge). Hal ini dikenal dengan istilah loop.

  19. Contoh Penerapan Graph

  20. 2 4 3 8 8 1 6 10 2 4 5 4 4 3 5 9 11 5 6 7 6 7 Peta Penelusuran Kota(Berdasarkan Jarak) • Node = Tempat Wisata • edge = jalur • Weight = jarak

  21. 2 3 8 1 10 4 5 9 11 6 7 Peta kota • Some streets are one way.

  22. Graph Property

  23. Property • Jumlah Edge • Degree • Jumlah Vertex Degree • In-Degree • Out-Degree

  24. Jumlah Edge • Jumlah pasangan edge yang mungkin (banyak maksimal edge) dapat dilihat dari jumlah node (n). • Dibedakan menjadi 2 : untuk undi-graph dan di-graph. • Undi-graph : (lebih kecil sama dengan )<= n(n-1)/2 • Di-graph : (lebih kecil sama dengan )<= n(n-1) • Dimana, n adalah jumlah node.

  25. n = 3 n = 3 Contoh • Undi-graph jumlah maks edge : 3 • Di-graph jumlah maks edge : 6 dengan loop : 9

  26. 2 3 1 4 5 6 7 Degree • Degree : jumlah cabang atau jumlah edge yang dimiliki node. • Contoh undi-graph : degree(2) = 2, degree(5) = 3, degree(3) = ??? degree(7) = ???

  27. 2 3 8 1 10 4 5 9 11 6 7 Contoh (Di-graph) • Degree (4) =??? • Degree (7) = ???

  28. 8 10 9 11 Jumlah Degree • Jumlah degree adalah jumlah total cabang/degree yang ada pada graph. • Rumus = 2e (dimana eadalah jumlah edge) • Hanya berlaku untuk undi-graph! Jumlah Vertex Degree = 6

  29. 2 3 1 4 5 6 7 In-Degree Jumlah edge yang masuk atau mengarah ke Node. indegree(2) = 1, indegree(7) = 2, indegree(1)=???

  30. 2 3 1 4 5 6 7 Out-Degree Jumlah edge yang keluar dari Node. outdegree(2) = 1, outdegree(7) = 0, outdegree(1) = ???

  31. Representasi Graph

  32. Representasi Graph • Representasi graph dibedakan menjadi 2 : 1. Adjacency Matrix dapat direpresentasikan dengan matriks (array 2 Dimensi). 2. Adjacency Lists dapat direpresentasikan dengan array (bukan berupa matriks) maupun linked list.

  33. Adjacency Matrix • Representasi Graph berupa Matrik ordo nxn. dimana n = node. • Baris berisi Node asal, sedangkan kolom berisi Node tujuan. • Jika graph tidak berbobot,maka nilai matriks diisi dengan 1 atau 0. nilai 1 jika ada edge, dan 0 jika tidak ada edge antar node. A(i,j) = 1,jika antara node i dan node j terdapat edge/terhubung. • Jika graph berbobot, maka nilai matriks diisi dengan bobot dari edge. A(i,j) = nilai bobot.

  34. 1 2 3 4 5 2 1 3 2 1 3 4 4 5 5 Adjacency Matrix 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0

  35. 1 2 3 4 5 2 1 0 1 0 1 0 3 2 1 0 0 0 1 1 3 0 0 0 0 1 4 4 1 0 0 0 1 5 5 0 1 1 1 0 Undi-graph • Diagonal entries are zero. • Adjacency matrix of an undirected graph is symmetric. • A(i,j) = A(j,i) for all i and j.

  36. 1 2 3 4 5 2 1 0 0 0 1 0 3 2 1 0 0 0 1 1 3 0 0 0 0 0 4 4 0 0 0 0 1 5 5 0 1 1 0 0 Di-graph • Dimungkinkan tidak simetris jika terdapat loop.

  37. Adjacency List • Direpresentasikan dengan linkedlist atau array. • Array list : array dua dimensi namun tidak ber-ordo nxn. • Linked list : array of single linked list

  38. 2 3 1 4 5 Array Lists aList[1] = (2,4) aList[2] = (1,5) aList[3] = (5) aList[4] = (5,1) aList[5] = (2,4,3)

  39. 2 aList[1] 2 4 3 [2] 1 5 [3] 5 1 [4] 5 1 4 [5] 2 4 3 5 Adjacency Lists (Linked List)

  40. Latihan 1. Gambarkangraph darirepresentasiMatrik berikut:

  41. A E 2 D 2 2 4 5 B F 4 C 2. Representasikan dengan adjacency list & adjacency matrix 1

  42. Nina Firda Riza Toni Joko Ale 3. Representasikan dengan adjacency list & adjacency matrix

  43. Penelusuran Graph

  44. Metode Penelusuran • Graph Traversal : Mengunjungi tiap simpul/node secara sistematik. • Metode : • DFS (Depth First Search) : Pencarian Mendalam • BFS (Breadth First Search) : Pencarian Melebar

  45. Algoritma BFS • BFS diawali dengan vertex yang diberikan, yang mana di level 0. Dalam stage pertama, kita kunjungi semua vertex di level 1. Stage kedua, kita kunjungi semua vertex di level 2. Disini vertex baru, yang mana adjacent ke vertex level 1, dan seterusnya. Penelusuran BFS berakhir ketika setiap vertex selesai ditemui.

  46. Breadth First Search (BFS) Urutan verteks hasil penelusuran :

  47. Breadth First Search (BFS) …. ….

  48. Algoritma BFS • Traversal dimulai dari simpul v. • Algoritma: • Kunjungi simpul v, • Kunjungi semua simpul yang bertetangga dengan simpul v terlebih dahulu. • Kunjungi simpul yang belum dikunjungi dan bertetangga dengan simpul-simpul yang tadi dikunjungi, demikian seterusnya.

More Related