04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 11
graph 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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 ?
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.
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
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.
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
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
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 ?
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
04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3030
SelesaiSelesai
04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3131
04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3232
04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3333
04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3434
04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3535
04/12/2304/12/23 struktur data by andi arfianstruktur data by andi arfian 3636