GRAPH Oleh Nur Hayatin S ST Teknik Informatika

  • Slides: 61
Download presentation
GRAPH Oleh : Nur Hayatin, S. ST Teknik Informatika - Universitas Muhammadiyah Malang (UMM)

GRAPH Oleh : Nur Hayatin, S. ST Teknik Informatika - Universitas Muhammadiyah Malang (UMM) Tahun Akademik 2010 -2011

Sub Topik • • • Overview : Graph Jenis Graph Implementasi Graph Property Representasi

Sub Topik • • • Overview : Graph Jenis Graph Implementasi Graph Property Representasi Graph

Graph

Graph

Graph • G = (V, E) • Dimana : V adalah Vertex, menyatakan entitas

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

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

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

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

Jenis Graph

Jenis Graph • Directed Graph (Digraph) • Undirected Graph – Complete Undirected Graph –

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

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

Contoh Digraph (1) 2 3 1 4 5 6 7

Gambar Digraph (2)

Gambar Digraph (2)

Undirected Graph (Digraph) • Graph yang tidak memiliki orientasi/arah. • Setiap sisi {u, v}

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

Contoh Undi-Graph (1) 2 3 8 1 10 4 5 6 9 7 11

Gambar Undi-Graph (2)

Gambar Undi-Graph (2)

Complete Undirected Graph • Semua node memiliki edge/lines untuk setiap node pada graph. n=1

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.

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 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

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

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).

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

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

Loop • Digraph dapat memiliki edge dari dan menuju ke node itu sendiri (Self-edge).

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

Implementasi Graph

Implementasi Graph

Aplikasi Jaringan Komunikasi 2 3 8 1 10 4 5 6 9 11 7

Aplikasi Jaringan Komunikasi 2 3 8 1 10 4 5 6 9 11 7 • Node/Vertex = kota • Lines/Edge = communication link.

Peta Penelusuran Kota (Berdasarkan Jarak/Waktu) 2 4 3 8 8 1 6 2 10

Peta Penelusuran Kota (Berdasarkan Jarak/Waktu) 2 4 3 8 8 1 6 2 10 4 4 4 5 9 5 6 6 7 • Node/Vertex = Kota • Lines/edge = jalur • Weight = jarak/waktu 7 5 3 11

Peta kota 2 3 8 1 10 4 5 6 9 7 • Some

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

Graph Property

Graph Property

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

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

Jumlah Lines/Edge—Undirected Graph • Setiap lines/edge memiliki bentuk (u, v) dimana u != v.

Jumlah Lines/Edge—Undirected Graph • Setiap lines/edge memiliki bentuk (u, v) dimana u != v. • Jumlah pasangan vertex n yang mungkin adalah n(n-1). • Jumlah lines/edge undirected graph (lebih kecil sama dengan) <= n(n-1)/2. • Selama (u, v) sama dengan (v, u) Jumlah lines/edge pada complete undi-graph adalah n(n-1)/2.

Jumlah Lines/Edges—Directed Graph • Setiap lines/edge memiliki bentuk (u, v) dimana u != v.

Jumlah Lines/Edges—Directed Graph • Setiap lines/edge memiliki bentuk (u, v) dimana u != v. • Jumlah pasangan verteks yang mungkin untuk vertex n adalah n(n-1). • Selama edge(u, v) tidak sama dengan (u, v) dan (v, u) maka jumlah edge untuk complete directed graph adalah n(n-1). • Jumlah edge untuk directed graph (lebih kecil sama dengan) <= n(n-1).

Vertex degree • Degree : Jumlah edge/lines yang dimiliki node/vertex.

Vertex degree • Degree : Jumlah edge/lines yang dimiliki node/vertex.

Contoh Vertex Degree 2 3 8 1 10 4 5 6 9 11 7

Contoh Vertex Degree 2 3 8 1 10 4 5 6 9 11 7 degree(2) = 2, degree(5) = 3, degree(3) = 1 degree(9) = ? ? ? degree (11) = ? ? ?

Jumlah Vertex Degrees Jumlah Vertex degrees = 2 e (e adalah jumlah edge) 8

Jumlah Vertex Degrees Jumlah Vertex degrees = 2 e (e adalah jumlah edge) 8 10 9 11 Jumlah Vertex Degree = 6

In-Degree Jumlah edge yang mengarah ke Node/Vertex. 2 3 8 1 10 4 5

In-Degree Jumlah edge yang mengarah ke Node/Vertex. 2 3 8 1 10 4 5 6 9 11 7 indegree(2) = 1, indegree(8) = 0, indegree(7)=? ? ?

Out-Degree Jumlah edge yang keluar dari Node/Vertex. 2 3 8 1 10 4 5

Out-Degree Jumlah edge yang keluar dari Node/Vertex. 2 3 8 1 10 4 5 6 9 11 7 outdegree(2) = 1, outdegree(8) = 2, outdegree(7) =

Representasi Graph

Representasi Graph

Representasi Graph • Adjacency Matrix • Adjacency Lists

Representasi Graph • Adjacency Matrix • Adjacency Lists

Adjacency Matrix • Direpresentasikan dengan array 2 D.

Adjacency Matrix • Direpresentasikan dengan array 2 D.

Adjacency Matrix • Matriks digunakan untuk himpunan adjacency setiap verteks. • Baris berisi vertex

Adjacency Matrix • Matriks digunakan untuk himpunan adjacency setiap verteks. • Baris berisi vertex asal adjacency, sedangkan kolom berisi vertex tujuan adjacency. • Bila sisi graph tidak mempunyai bobot, maka [x, y] adjacency disimbolkan dengan 1 dan 0. • Bila sisi graph mempunyai bobot, maka [x, y] adjacency disimbolkan dengan bobot sisi tersebut.

Representasi Graph

Representasi Graph

Penerapan Adjacency Matriks

Penerapan Adjacency Matriks

Adjacency Matrix • Representasi Matrik ordo nxn , dimana n = vertex/node • A(i,

Adjacency Matrix • Representasi Matrik ordo nxn , dimana n = vertex/node • A(i, j) = 1, jika antara node i dan node j terdapat edge/terhubung. 2 3 1 4 5 1 2 3 4 5 1 0 1 0 2 1 0 0 0 1 3 0 0 1 4 1 0 0 0 1 5 0 1 1 1 0

Adjacency Matrix (Undi-graph) 2 3 1 4 5 1 2 3 4 5 1

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

Adjacency Matrix (Digraph) 2 3 1 4 5 1 2 3 4 5 1

Adjacency Matrix (Digraph) 2 3 1 4 5 1 2 3 4 5 1 0 0 0 1 0 2 1 0 0 0 1 3 0 0 0 4 0 0 1 5 0 1 1 0 0 • Adjacency matrix of a digraph need not be symmetric.

Adjacency List • Direpresentasikan dengan linked list atau array. § Linked Adjacency Lists §

Adjacency List • Direpresentasikan dengan linked list atau array. § Linked Adjacency Lists § Array Adjacency Lists

Array Adjacency Lists • Adjacency list for vertex i is a linear list of

Array Adjacency Lists • Adjacency list for vertex i is a linear list of vertices adjacent from vertex i. • An array of n adjacency lists. a. List[1] = (2, 4) a. List[2] = (1, 5) 2 3 1 a. List[3] = (5) a. List[4] = (5, 1) a. List[5] = (2, 4, 3) 4 5

Adjacency Lists (Linked List) • Each adjacency list is a chain. 2 3 1

Adjacency Lists (Linked List) • Each adjacency list is a chain. 2 3 1 4 5 a. List[1] 2 4 [2] 1 5 [3] 5 [4] 5 1 2 4 a. List[5] 3

Adjacency Lists (Array) • Each adjacency list is an array list. 2 3 1

Adjacency Lists (Array) • Each adjacency list is an array list. 2 3 1 4 5 a. List[1] 2 4 [2] 1 5 [3] 5 [4] 5 1 2 4 a. List[5] 3

Latihan 1. Gambarkan undirected graph dari representasi graph berikut:

Latihan 1. Gambarkan undirected graph dari representasi graph berikut:

2. Representasikan dengan adjacency list & adjacency matrix A 2 E 2 D 2

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

Spanning Tree • Subgraph that includes all vertices of the original graph. • Subgraph

Spanning Tree • Subgraph that includes all vertices of the original graph. • Subgraph is a tree. § If original graph has n vertices, the spanning tree has n vertices and n-1 edges.

Minimum Cost Spanning Tree 2 4 3 8 8 1 6 2 10 4

Minimum Cost Spanning Tree 2 4 3 8 8 1 6 2 10 4 4 4 5 5 9 6 2 6 5 8 3 11 7 7 • Tree cost is sum of edge weights/costs.

A Spanning Tree 2 4 3 8 8 1 6 2 10 4 4

A Spanning Tree 2 4 3 8 8 1 6 2 10 4 4 4 5 5 9 6 2 6 5 7 Spanning tree cost = 51. 7 8 3 11

Minimum Cost Spanning Tree 2 4 3 8 8 1 6 2 10 4

Minimum Cost Spanning Tree 2 4 3 8 8 1 6 2 10 4 4 4 5 5 9 6 2 6 5 7 Spanning tree cost = 41. 7 8 3 11

A Wireless Broadcast Tree 2 4 3 8 8 1 6 2 10 4

A Wireless Broadcast Tree 2 4 3 8 8 1 6 2 10 4 4 4 5 5 9 6 2 6 5 8 3 11 7 7 Source = 1, weights = needed power. Cost = 4 + 8 + 5 + 6 + 7 + 8 + 3 = 41.

Pustaka • Sartaj Sahni , “Data Structures & Algorithms”, Presentation L 20 -24. •

Pustaka • Sartaj Sahni , “Data Structures & Algorithms”, Presentation L 20 -24. • Mitchell Waite, “Data Structures & Algorithms in Java”, SAMS, 2001