3/12/2013 struktur data by andi arfian 2
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
Contoh sebuah graph
B A C D E Simpul=Titik.node,vortex(V) V=v1,v2,,,,,v5 v1 v2 v3 v5 v4Busur =arc,egde (E) E1,e2,,,,e7 e1 e2 e3 e4 e5 e6 e7
3/12/2013 struktur data by andi arfian 4
Karakter graph
Sebuah graph mungkin hanya terdiri dari satu simpul.
Sebuah graph belum tentu semua simpulnya terhubungdengan busur
Dalam sebuah graph kemungkinan ada simpul yg takterhubung
GRAPH adalah suatu struktur data yang berbentuk network/jaringan dimana hubungan antara elemen-elemennya adalah many-to-many.
BU :
G = (V,E)
V = NODE (VERTICE), E = ARC (EDGE) SUBGRAPH :
Adalah GRAPH yang merupakan suatu subset/bagian dari GRAPH.
Terminologi
PATH
Adalah sequence dari kumpulan node-node dimana tiap node dengan node berikutnya dihubungkan dengan EDGE
3/12/2013 struktur data by andi arfian 6
Terminologi
SIMPLE PATH
Jika node dalam path tersebut hanya muncul 1 kali.
A - F B A D F C E B A D F
Terminologi
CYCLE GRAPH
Jika node pertama dan node terakhir dalam GRAPH adalah sama.
B
A
3/12/2013 struktur data by andi arfian 8
Directed GRAPH (DiGraph)/ berarah
Undirected GRAPH/tidak berarah
Connected GRAPH
Unconnected GRAPH
Weighted GRAPH/berbobot
Unweighted GRAPH
Jika sepasang node yg membentuk edge dalam GRAPH mempunyai arah/arti
Directed Graph
Directed Graph B C A3/12/2013 struktur data by andi arfian 10
Contoh direct graph
a
b
c
d e
Busur ab adalah satu busur.
Busur b->a dengan busur lainnya
Jika sepasang node yang membentuk edge dalam
GRAPH tidak terarah./ urutan simpul dalam busur tidak dipentingkan
Ex.a b,b->a
Undirected Graph/tak berarah
Undirected Graph
B
C A
3/12/2013 struktur data by andi arfian 12
Connected Graph/terhubung
Bila setiap pasang node punya hubungan di antara keduanya dalam GRAPH.
Connected Graph B A D F C E
Full Connected Graph/Terhubung
penuh
Suatu graph terhubung penuh jika setiap
simpul 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,
3/12/2013 struktur data by andi arfian 14
Unconnected Graph
Bila terdapat SubGraph yang terisolasi.
Unconnected Graph B A C D F E
Weighted Graph A C B D
Weighted Graph
3 5 4 2Jika 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
3/12/2013 struktur data by andi arfian 16
Graph berlabel
hubungan
dengan jarak dan diameter
Graph berbobot adalah graph yang diberikan bobotdisetiap garisnya.bobot tersebut bisa merupakan
pengambaran suatu besaran mengenai jarak,biaya atau 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.
Unweighted Graph
Jika semua edge dalam GRAPH tidak ada nilai.
Weighted Graph
A C
3/12/2013 struktur data by andi arfian 18
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
Multi graph
Sebuah multi graph hampir serupa dengan graph,tetapitidak 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 a c e8 e6 e4 e7 e2 Contoh,
Sebuah multigraph karena ada garis e1dan e2 yang menghubungkan titik A dan B atau terdapat Loop e5 di titik C
3/12/2013 struktur data by andi arfian 20
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 titikakhir(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 barisanyaberbeda, path sudah pasti trail.panjang(Leght) dari sebuah path adalah banyaknya garis yang dilalui
Jkt
Smr
Bdg Yog
Sby Walk 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
3/12/2013 struktur data by andi arfian 22
Diskusi
B A D F C EApakah tree tersebut juga merupakan Graph ?
Representasi
ADJACENCY MATRIX
Direpresentasikan dengan Array 2 dimensi
Tipe komponen dari Array bisa digunakan
BOOLEAN atau INTEGER (untuk
WEIGHTED GRAPH).
ADJACENCY LIST
3/12/2013 struktur data by andi arfian 24
Adjacency
Adjacency Matrix 0 0 0 1 1 0 A 0 1 1 1 0 1 B 0 1 0 0 1 1 C F E D NODE 0 0 0 A 0 1 1 0 0 1 0 1 1 1 1 1 0 0 1 F E D C B Adjacency List B C A A C D E B A B E C F E D NODE D E B C D F B E F EDGE LIST Undirected Graph B A D F C ETraversal
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
3/12/2013 struktur data by andi arfian 26
Algoritma BFT
Pilih node Awal1.
Set semua node dengan status siap dikunjungi (status=1)2.
Enqueue(node Awal), ubah status node awal menjadimenunggu (status=2)
3.
Dequeue&(node_N), ubahstatus node_N menjadi telahdiproses (status=3)
4.
Enqueue semua node yang adjacent dengan node_N danmemiliki status=1, ubah status mereka menjadi 2
Algoritma DFT
Pilih node Awal1.
Set semua node dengan status siap dikunjungi (status=1)2.
Push(node Awal), ubah status node awal menjadimenunggu (status=2)
3.
Pop(node_N), ubahstatus node_N menjadi telah diproses(status=3)
4.
Push semua node yang adjacent dengan node_N danmemiliki status=1, ubah status mereka menjadi 2
3/12/2013 struktur data by andi arfian 28
Contoh Traversal
Undirected Graph B A D F C E Adjacency List B C A A C D E B A B E C F E D NODE D E B C D F B E F EDGE LIST BFT ? DFT ?start node A
A-B-C-D 2 2 3 3 3 3 E-F D 10 A-B-C-D 1 2 3 3 3 3 E D 9 A-B-C 1 2 2 3 3 3 D-E C 8 A-B-C 1 2 2 3 3 3 D-E C 7 A-B 1 2 2 2 3 3 C-D-E B 6 A-B 1 1 1 2 3 3 C B 5 A 1 1 1 2 2 3 B-C A 4 A 1 1 1 1 1 3 A 3 Node_N 1 1 1 1 1 2 A 2 1 B 1 C 1 D 1 E 1 A Status Node 1 1 F Hasil QUEUE LangkahBFT
3/12/2013 struktur data by andi arfian 30