36
06/11/22 06/11/22 struktur data by andi arfian struktur data by andi arfian 1 graph graph

Graph

Embed Size (px)

DESCRIPTION

pertemuan 13

Citation preview

Page 1: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 11

graph graph

Page 2: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 22

GraphGraph

Graph adalah kumpulan dari simpul dan busur yang Graph adalah kumpulan dari simpul dan busur yang secara matematis dinyatakan sebagai :secara matematis dinyatakan sebagai :

G = (V, E)G = (V, E)Dimana Dimana

G = GraphG = Graph

V = Simpul atau Vertex, atau Node, atau TitikV = Simpul atau Vertex, atau Node, atau Titik

E = Busur atau Edge, atau arcE = Busur atau Edge, atau arc

Page 3: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 33

Contoh sebuah graphContoh sebuah graph

B

A C

D E

Simpul=Titik.node,vortex(V)

V=v1,v2,,,,,v5v1

v2

v3

v5v4

Busur =arc,egde (E)

E1,e2,,,,e7

e1

e2

e3

e4

e5

e6

e7

Page 4: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 44

Karakter graphKarakter graph Sebuah graph mungkin hanya terdiri dari satu simpul.Sebuah graph mungkin hanya terdiri dari satu simpul. Sebuah graph belum tentu semua simpulnya terhubung Sebuah graph belum tentu semua simpulnya terhubung

dengan busurdengan busur Dalam sebuah graph kemungkinan ada simpul yg tak Dalam sebuah graph kemungkinan ada simpul yg tak

terhubungterhubung Sebuah graph kemungkinan saling berhubunganSebuah graph kemungkinan saling berhubungan

Page 5: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 55

GRAPH adalah suatu struktur data yang berbentuk network/jaringan dimana GRAPH adalah suatu struktur data yang berbentuk network/jaringan dimana hubungan antara elemen-elemennya adalah many-to-many.hubungan antara elemen-elemennya adalah many-to-many.

BUBU ::G = (V,E)G = (V,E)V = NODE (VERTICE), E = ARC (EDGE)V = NODE (VERTICE), E = ARC (EDGE)

SUBGRAPH :SUBGRAPH :Adalah GRAPH yang merupakan suatu subset/bagian dari GRAPH.Adalah GRAPH yang merupakan suatu subset/bagian dari GRAPH.

TerminologiTerminologi

PATHPATHAdalah sequence dari kumpulan node-node dimana tiap node dengan Adalah sequence dari kumpulan node-node dimana tiap node dengan node berikutnya dihubungkan dengan EDGE node berikutnya dihubungkan dengan EDGE

A - F

B

A

D

F

C E

Page 6: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 66

TerminologiTerminologiSIMPLE PATHSIMPLE PATH Jika node dalam path tersebut hanya muncul 1 kali.Jika node dalam path tersebut hanya muncul 1 kali.

A - F

B

A

D

F

C E

B

A

D

F

Page 7: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 77

TerminologiTerminologi

CYCLE GRAPHCYCLE GRAPHJika node pertama dan node terakhir dalam GRAPH adalah Jika node pertama dan node terakhir dalam GRAPH adalah sama.sama.

B

A

C

Page 8: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 88

Directed GRAPH (DiGraph)/ berarahDirected GRAPH (DiGraph)/ berarah Undirected GRAPH/tidak berarahUndirected GRAPH/tidak berarah Connected GRAPHConnected GRAPH Unconnected GRAPHUnconnected GRAPH Weighted GRAPH/berbobotWeighted GRAPH/berbobot Unweighted GRAPHUnweighted GRAPH

TipeTipe

Page 9: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 99

Jika sepasang node yg membentuk edge dalam GRAPH Jika sepasang node yg membentuk edge dalam GRAPH mempunyai arah/artimempunyai arah/arti

Directed GraphDirected Graph

Directed Graph

B

CA

Page 10: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1010

Contoh direct graphContoh direct graph

a

b

c

d e

Busur ab adalah satu busur.

Busur b->a dengan busur lainnya

Page 11: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1111

Jika sepasang node yang membentuk edge dalam Jika sepasang node yang membentuk edge dalam GRAPH tidak terarah./ urutan simpul dalam busur tidak GRAPH tidak terarah./ urutan simpul dalam busur tidak dipentingkandipentingkanEx.a Ex.a b,b->ab,b->a

Undirected Graph/tak berarahUndirected Graph/tak berarah

Undirected Graph

B

CA

Page 12: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1212

Connected Graph/terhubungConnected Graph/terhubung

Bila setiap pasang node punya hubungan di antara Bila setiap pasang node punya hubungan di antara keduanya dalam GRAPH.keduanya dalam GRAPH.

Connected Graph

B

A

D

F

C E

Page 13: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1313

Full Connected Graph/Terhubung Full Connected Graph/Terhubung penuhpenuh

Suatu graph terhubung penuh jika setiap Suatu graph terhubung penuh jika setiap simpul saling berhubungansimpul saling berhubungan

b

d

c

e

a

Pada full conneted berlaku : m=n(n-1) /2

Dimana m=jumlah busur

N=jumlah simpul

Terlihat : untuk simpul n=5,

maka busur m=5(5-1)/2=10

Page 14: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1414

Unconnected GraphUnconnected GraphBila terdapat SubGraph yang terisolasi.Bila terdapat SubGraph yang terisolasi.

Unconnected Graph

B

A

C

D

F

E

Page 15: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1515

Weighted Graph

A C

B D

Weighted GraphWeighted Graph

35

42

Jika semua edge dalam GRAPH diberi nilai.Jika semua edge dalam GRAPH diberi nilai.

Apabila setiap busur mempunyai nilai yang menyatakan hubungan antara dua buah simpul ,maka busur tersebut dikatakan mempunyai bobot,dan graph disebut graph berbobot, bobot sebuah busur dapat menyatakan panjang sebuah jalan anatara dua titik

Page 16: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1616

Graph berlabel Graph berlabel hubunganhubungan dengan jarak dan diameter dengan jarak dan diameter

Graph berbobot adalah graph yang diberikan bobot Graph berbobot adalah graph yang diberikan bobot disetiap garisnya.bobot tersebut bisa merupakan disetiap garisnya.bobot tersebut bisa merupakan pengambaran suatu besaran mengenai jarak,biaya atau pengambaran suatu besaran mengenai jarak,biaya atau apa saja(Sesuai aplikasi yang akan dibahas)apa saja(Sesuai aplikasi yang akan dibahas)

4

f

a b

d e

5 3

5

4 7

6

Jarak antara dua titik didalam graphadalah jalur terpendek yg menghubungkan kedua simpul tersebut

Diameter Graph (Terhubung) adalah nilai maksimum dari jarak(antara dua titik) yang ada didalam graph

Ex, dari titik D menuju titik F minimal dapat dilakukan sebayak 2 langkah(sehingga,jarak D ke F adalah 2) begitu juga dari titik e ke f, sedankan dari titik A atau Bketitik F sama-sama dapat dilakukan dengan sekali langkah ( jarak=1),

maka diameter graph adalah maksimal dari jarak-jarak tersebut.

Page 17: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1717

Unweighted GraphUnweighted Graph

Jika semua edge dalam GRAPH tidak ada nilai.Jika semua edge dalam GRAPH tidak ada nilai.

Weighted Graph

A C

B D

Page 18: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1818

Sub graphSub graph Sub graph adalah bagian dari graph ,bahkan Sub graph adalah bagian dari graph ,bahkan

graph itu sendiri merupakan sub graph dari graph itu sendiri merupakan sub graph dari dirinya sendiri,dirinya sendiri,

Contoh (hanya untuk graph sederhana tak Contoh (hanya untuk graph sederhana tak berbobot dan tak berarah)berbobot dan tak berarah)

Graph G Graph G1 Graph G2Graph G1 adalah subgraph dari G

G2 adalah sub dari G

Page 19: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 1919

Multi graphMulti graph Sebuah multi graph hampir serupa dengan graph,tetapi Sebuah multi graph hampir serupa dengan graph,tetapi

tidak dapat dikatakan graphtidak dapat dikatakan graph karena didalamnya karena didalamnya mengandung lebih dari satu garis yang menghubungkan mengandung lebih dari satu garis yang menghubungkan dua buah titik / simpul atau menghubungkan garis yang dua buah titik / simpul atau menghubungkan garis yang menghubungkan titik yang sama (Loop)menghubungkan titik yang sama (Loop)

d

a c

b

e8 e6

e4

e7

e2

e3e1

Contoh,

Sebuah multigraph karena ada garis e1dan e2 yang menghubungkan titik A dan B atau terdapat Loop e5 di titik C

e5

multigraph

Page 20: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2020

Walk ,trail,pathWalk ,trail,path WALk WALk adalah suatu perjalanan yang melintasi barisan adalah suatu perjalanan yang melintasi barisan

titikdan barisan garis yang ada ada dalam graf yang titikdan barisan garis yang ada ada dalam graf yang dimulai dari titik dimulai dari titik awalawal tertentu(V1) menuju titik tertentu(V1) menuju titik akhir(Vn),banyaknya ruas yang dilalui disebut sebagai akhir(Vn),banyaknya ruas yang dilalui disebut sebagai panjang panjang WALK, WALK, Walk Walk (Cyle)(Cyle) dikatakan tertutup bila titik dikatakan tertutup bila titik awal juga merupakan titik akhirnya.awal juga merupakan titik akhirnya.

Trail Trail adalah walk yang tidak memiliki garis atau ruas adalah walk yang tidak memiliki garis atau ruas yang sama didalam barisannya.yang sama didalam barisannya.

PathPath adalah walk yang semua titik dalam barisanya adalah walk yang semua titik dalam barisanya berbeda, path sudah pasti trail.panjang(Leght) dari berbeda, path sudah pasti trail.panjang(Leght) dari sebuah path adalah banyaknya garis yang dilaluisebuah path adalah banyaknya garis yang dilalui

Page 21: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2121

Jkt

Smr

BdgYog

SbyWalk terbuka ,path dan trail

•Titik Jkt,Bdg,Yog,Smr dan S by

Walk Tebuka

Walk tertutup dan Trail

Graph lengkap /complete bila setiap titik memiliki hubungan dengan seluruh titik yang ada didalam graph, N(N-1)/2 maka 5(5-1)2= 10

Jalur Eulerian didalam Graph yaitu jalur yang melewati seluruh titik yang ada didalam graph tepat satu kali ,tetapi boleh melewati garis penghubungnya lebih dari satu, jalur eulerian dimulai dari titik awal dan berakhir dititik awal

Page 22: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2222

DiskusiDiskusi

B

A

D

F

C

E

Apakah tree tersebut juga merupakan Graph ?Jika merupakan Graph, termasuk dalam tipe yang mana ?

Page 23: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2323

RepresentasiRepresentasiADJACENCY MATRIXADJACENCY MATRIX

Direpresentasikan dengan Array 2 dimensiDirepresentasikan dengan Array 2 dimensi Tipe komponen dari Array bisa digunakan Tipe komponen dari Array bisa digunakan

BOOLEAN atau INTEGER (untuk BOOLEAN atau INTEGER (untuk WEIGHTED GRAPH).WEIGHTED GRAPH).

ADJACENCY LISTADJACENCY LIST Direpresentasikan sebagai suatu list, bisa Direpresentasikan sebagai suatu list, bisa

dinyatakan dengan LINKED -LIST. dinyatakan dengan LINKED -LIST.

Page 24: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2424

AdjacencyAdjacency

Adjacency Matrix

000000111100AA001111110011BB001100001111CC

FFEEDD

NODENODE

000000

AA

001111000011001111111111000011

FFEEDDCCBB

Adjacency List

B CB CAA A C D EA C D EBB A B EA B ECC

FFEEDD

NODENODE

D ED E B C D FB C D F B E FB E F

EDGE LISTEDGE LIST

Undirected Graph

B

A

D

F

C E

Page 25: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2525

TraversalTraversalAdalah proses untuk mengunjungi setiap node pada Adalah proses untuk mengunjungi setiap node pada GRAPH. Dua metode yang digunakan untuk GRAPH. Dua metode yang digunakan untuk traversal pada GRAPH :traversal pada GRAPH :• Breadth First Traversal (BFT)Breadth First Traversal (BFT) : adalah proses traversal : adalah proses traversal

yang lebih memprioritaskan node-node tetangga atau yang lebih memprioritaskan node-node tetangga atau node pada level yang sama. Setelah itu diteruskan ke node pada level yang sama. Setelah itu diteruskan ke level terdalam selanjutnya.level terdalam selanjutnya.• Depth First Traversal (DFT)Depth First Traversal (DFT) : adalah proses traversal : adalah proses traversal

yang lebih memprioritaskan langkah penelusuran ke level yang lebih memprioritaskan langkah penelusuran ke level terdalam terlebih dahulu.terdalam terlebih dahulu.

Page 26: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2626

Algoritma BFTAlgoritma BFT

Pilih node AwalPilih node Awal

1.1. Set semua node dengan status siap dikunjungi (status=1)Set semua node dengan status siap dikunjungi (status=1)

2.2. Enqueue(node Awal), ubah status node awal menjadi Enqueue(node Awal), ubah status node awal menjadi menunggu (status=2)menunggu (status=2)

3.3. Dequeue&(node_N), ubahstatus node_N menjadi telah Dequeue&(node_N), ubahstatus node_N menjadi telah diproses (status=3)diproses (status=3)

4.4. Enqueue semua node yang adjacent dengan node_N dan Enqueue semua node yang adjacent dengan node_N dan memiliki status=1, ubah status mereka menjadi 2memiliki status=1, ubah status mereka menjadi 2

5.5. Ulangi langkah 3 s.d. 4 hingga Queue kosongUlangi langkah 3 s.d. 4 hingga Queue kosong

Page 27: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2727

Algoritma DFTAlgoritma DFT

Pilih node AwalPilih node Awal

1.1. Set semua node dengan status siap dikunjungi (status=1)Set semua node dengan status siap dikunjungi (status=1)

2.2. Push(node Awal), ubah status node awal menjadi Push(node Awal), ubah status node awal menjadi menunggu (status=2)menunggu (status=2)

3.3. Pop(node_N), ubahstatus node_N menjadi telah diproses Pop(node_N), ubahstatus node_N menjadi telah diproses (status=3)(status=3)

4.4. Push semua node yang adjacent dengan node_N dan Push semua node yang adjacent dengan node_N dan memiliki status=1, ubah status mereka menjadi 2memiliki status=1, ubah status mereka menjadi 2

5.5. Ulangi langkah 3 s.d. 4 hingga Stack kosongUlangi langkah 3 s.d. 4 hingga Stack kosong

Page 28: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2828

Contoh TraversalContoh Traversal

Undirected Graph

B

A

D

F

C E

Adjacency List

B CB CAA A C D EA C D EBB A B EA B ECC

FFEEDD

NODENODE

D ED E B C D FB C D F B E FB E F

EDGE LISTEDGE LIST

BFT ?DFT ?

Page 29: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 2929

start node A start node A

A-B-C-D-E-FA-B-C-D-E-F333333333333FF1313

A-B-C-D-E A-B-C-D-E 223333333333 FFEE1212

A-B-C-D-EA-B-C-D-E223333333333 FFEE1111

A-B-C-DA-B-C-D222233333333 E-FE-FDD1010

A-B-C-DA-B-C-D112233333333 EEDD99

A-B-CA-B-C112222333333 D-ED-ECC88

A-B-CA-B-C112222333333 D-ED-ECC77

A-BA-B112222223333 C-D-EC-D-EBB66

A-BA-B111111223333 CCBB55

AA111111222233 B-CB-CAA44

AA111111111133 AA33

Node_NNode_N

111111111122 AA22

11

BB

11

CC

11

DD

11

EE

11

AA

Status NodeStatus Node

1111

FFHasilHasilQUEUEQUEUELangkahLangkah

BFTBFT

Page 30: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3030

SelesaiSelesai

Page 31: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3131

Page 32: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3232

Page 33: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3333

Page 34: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3434

Page 35: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3535

Page 36: Graph

04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3636