graph

3/12/2013

struktur data by andi arfian

1

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

G = (V, E)
Dimana
G = Graph V = Simpul atau Vertex, atau Node, atau Titik E = Busur atau Edge, atau arc
3/12/2013 struktur data by andi arfian 2

Contoh sebuah graph
v2 B
e1
v1

Simpul=Titik.node,vortex(V) e3 V=v1,v2,,,,,v5 C v3 e7 Busur =arc,egde (E) E1,e2,,,,e7 E

A
e5

e4

e2

D
v4
e6

v5

3/12/2013

struktur data by andi arfian

3

Karakter graph
 Sebuah graph mungkin hanya terdiri dari satu simpul.  Sebuah graph belum tentu semua simpulnya terhubung
dengan busur  Dalam sebuah graph kemungkinan ada simpul yg tak terhubung  Sebuah graph kemungkinan saling berhubungan

3/12/2013

struktur data by andi arfian

4

Terminologi
GRAPH adalah suatu struktur data yang berbentuk network/jaringan dimana hubungan antara elemen-elemennya adalah many-tomany. BU : G = (V,E) V = NODE (VERTICE), E = ARC (EDGE) SUBGRAPH : Adalah GRAPH yang merupakan suatu subset/bagian dari GRAPH. PATH Adalah sequence dari kumpulan node-node dimana tiap node dengan node berikutnya dihubungkan dengan EDGE
B A D F

C
A-F
3/12/2013

E
struktur data by andi arfian 5

Terminologi
SIMPLE PATH Jika node dalam path tersebut hanya muncul 1 kali.

B A

D F A

B

D F

C
A-F

E

3/12/2013

struktur data by andi arfian

6

Terminologi
CYCLE GRAPH Jika node pertama dan node terakhir dalam GRAPH adalah sama.

B A

C

3/12/2013

struktur data by andi arfian

7

Tipe
 Directed GRAPH (DiGraph)/ berarah  Undirected GRAPH/tidak berarah  Connected GRAPH  Unconnected GRAPH  Weighted GRAPH/berbobot  Unweighted GRAPH

3/12/2013

struktur data by andi arfian

8

Directed Graph
Jika sepasang node yg membentuk edge dalam GRAPH mempunyai arah/arti
B A C

Directed Graph

3/12/2013

struktur data by andi arfian

9

Contoh direct graph
Busur ab adalah satu busur. Busur b->a dengan busur lainnya a

b

c

d

e

3/12/2013

struktur data by andi arfian

10

Undirected Graph/tak berarah
Jika sepasang node yang membentuk edge dalam GRAPH tidak terarah./ urutan simpul dalam busur tidak dipentingkan Ex.a b,b->a
B A C

Undirected Graph

3/12/2013

struktur data by andi arfian

11

Connected Graph/terhubung
Bila setiap pasang node punya hubungan di antara keduanya dalam GRAPH.

B

D
F

A
C E

Connected Graph

3/12/2013

struktur data by andi arfian

12

Full Connected Graph/Terhubung penuh

 Suatu graph terhubung penuh jika setiap
simpul saling berhubungan
b a c

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

Dimana m=jumlah busur N=jumlah simpul

d

e

Terlihat : untuk simpul n=5, maka busur m=5(5-1)/2=10

3/12/2013

struktur data by andi arfian

13

Unconnected Graph
Bila terdapat SubGraph yang terisolasi.

B
A C

D F E

Unconnected Graph

3/12/2013

struktur data by andi arfian

14

Weighted Graph
Jika semua edge dalam GRAPH diberi nilai.
A 2 B 5 C 3 D

4

Weighted Graph

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

3/12/2013

struktur data by andi arfian

15

Graph berlabel hubungan dengan jarak dan diameter

 Graph berbobot adalah graph yang diberikan bobot
disetiap garisnya.bobot tersebut bisa merupakan pengambaran suatu besaran mengenai jarak,biaya atau apa saja(Sesuai aplikasi yang akan dibahas)
f 5 a 4 d 6 5 7

3
b 4 e

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 jarakjarak tersebut.

3/12/2013

struktur data by andi arfian

16

Unweighted Graph
Jika semua edge dalam GRAPH tidak ada nilai.
A B C D

Weighted Graph

3/12/2013

struktur data by andi arfian

17

Sub graph
 Sub graph adalah bagian dari graph ,bahkan
graph itu sendiri merupakan sub graph dari dirinya sendiri,  Contoh (hanya untuk graph sederhana tak berbobot dan tak berarah)

Graph G

Graph G1

Graph G2 Graph G1 adalah subgraph dari G

3/12/2013

struktur data by andi arfian

G2 adalah sub dari18 G

Multi graph
 Sebuah multi graph hampir serupa dengan graph,tetapi
tidak dapat dikatakan graph karena didalamnya mengandung lebih dari satu garis yang menghubungkan dua buah titik / simpul atau menghubungkan garis yang menghubungkan titik yang sama (Loop)
d
e8 e6

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

e7

a
e2 e1 e4

b multigraph
3/12/2013 struktur data by andi arfian 19

Walk ,trail,path
 WALk adalah suatu perjalanan yang melintasi barisan
titikdan barisan garis yang ada ada dalam graf yang dimulai dari titik awal tertentu(V1) menuju titik akhir(Vn),banyaknya ruas yang dilalui disebut sebagai panjang WALK, Walk (Cyle) dikatakan tertutup bila titik awal juga merupakan titik akhirnya.  Trail adalah walk yang tidak memiliki garis atau ruas yang sama didalam barisannya.  Path adalah walk yang semua titik dalam barisanya berbeda, path sudah pasti trail.panjang(Leght) dari sebuah path adalah banyaknya garis yang dilalui

3/12/2013

struktur data by andi arfian

20

Walk terbuka ,path dan trail •Titik Jkt,Bdg,Yog,Smr dan S by Jkt

Smr

Sby

Walk Tebuka Bdg

Yog

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
3/12/2013 struktur data by andi arfian 21

Diskusi
A B C D

E

F

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

3/12/2013

struktur data by andi arfian

22

Representasi
ADJACENCY MATRIX
 Direpresentasikan dengan Array 2 dimensi  Tipe komponen dari Array bisa digunakan BOOLEAN atau INTEGER (untuk WEIGHTED GRAPH).

ADJACENCY LIST
 Direpresentasikan sebagai suatu list, bisa dinyatakan dengan LINKED -LIST.
3/12/2013 struktur data by andi arfian 23

Adjacency
B

D
F

A
C E

Undirected Graph

NODE A B C D E A 0 1 1 0 0 B 1 0 1 1 1 C 1 1 0 0 1 D 0 1 0 0 1 E 0 1 1 1 0 F 0 0 0 1 1 Adjacency Matrix
3/12/2013

F 0 0 0 1 1 0

NODE A B C D E F

EDGE LIST B C A C D E A B E B E F B C D F D E Adjacency List
24

struktur data by andi arfian

Traversal
Adalah proses untuk mengunjungi setiap node pada GRAPH. Dua metode yang digunakan untuk traversal pada GRAPH :
• Breadth First Traversal (BFT) : adalah proses traversal yang lebih memprioritaskan node-node tetangga atau node pada level yang sama. Setelah itu diteruskan ke level terdalam selanjutnya. • Depth First Traversal (DFT) : adalah proses traversal yang lebih memprioritaskan langkah penelusuran ke level terdalam terlebih dahulu.

3/12/2013

struktur data by andi arfian

25

Algoritma BFT
Pilih node Awal 1. Set semua node dengan status siap dikunjungi (status=1) 2. Enqueue(node Awal), ubah status node awal menjadi menunggu (status=2) 3. Dequeue&(node_N), ubahstatus node_N menjadi telah diproses (status=3) 4. Enqueue semua node yang adjacent dengan node_N dan memiliki status=1, ubah status mereka menjadi 2 5. Ulangi langkah 3 s.d. 4 hingga Queue kosong

3/12/2013

struktur data by andi arfian

26

Algoritma DFT
Pilih node Awal 1. Set semua node dengan status siap dikunjungi (status=1) 2. Push(node Awal), ubah status node awal menjadi menunggu (status=2) 3. Pop(node_N), ubahstatus node_N menjadi telah diproses (status=3) 4. Push semua node yang adjacent dengan node_N dan memiliki status=1, ubah status mereka menjadi 2 5. Ulangi langkah 3 s.d. 4 hingga Stack kosong

3/12/2013

struktur data by andi arfian

27

Contoh Traversal
B A D F NODE A B C D E F EDGE LIST B C A C D E A B E B E F B C D F D E Adjacency List

C

E

Undirected Graph

BFT ? DFT ?

3/12/2013

struktur data by andi arfian

28

BFT
start node A
Langkah Node_N 1 2 3 4 5 6 7 8 9 10 11 12 13
3/12/2013

QUEUE

A A A B B C C D D E E F

B-C C C-D-E D-E D-E E E-F F F

A 1 2 3 3 3 3 3 3 3 3 3 3 3

Status Node B C D E 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 3 2 1 1 3 2 2 2 3 3 2 2 3 3 2 2 3 3 3 2 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 3

F 1 1 1 1 1 1 1 1 1 2 2 2 3

Hasil

A A A-B A-B A-B-C A-B-C A-B-C-D A-B-C-D A-B-C-D-E A-B-C-D-E A-B-C-D-E-F
29

struktur data by andi arfian

Selesai
3/12/2013 struktur data by andi arfian 30

3/12/2013

struktur data by andi arfian

31

3/12/2013

struktur data by andi arfian

32

3/12/2013

struktur data by andi arfian

33

3/12/2013

struktur data by andi arfian

34

3/12/2013

struktur data by andi arfian

35

3/12/2013

struktur data by andi arfian

36

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.