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 Simpul=Titik.node,vortex(V) B e3 e1 v1 C v3 e4 A V=v1,v2,,,,,v5 Busur =arc,egde (E) E1,e2,,,,e7 e5 e2 e7 E D v4 3/12/2013 e6 v5 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 D A F C E A-F 3/12/2013 struktur data by andi arfian 5 Terminologi SIMPLE PATH Jika node dalam path tersebut hanya muncul 1 kali. B D A B F C A D F E A-F 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 ab adalah satu busur. b Busur b->a dengan busur lainnya c a d 3/12/2013 e 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 A F 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 Pada full conneted berlaku : m=n(n-1) /2 c a 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 D A F C E Unconnected Graph 3/12/2013 struktur data by andi arfian 14 Weighted Graph Jika semua edge dalam GRAPH diberi nilai. A 4 2 B 5 C 3 D 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 Jarak antara dua titik didalam graphadalah jalur terpendek yg menghubungkan kedua simpul tersebut 3 5 b 7 4 d e 6 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 C B 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 3/12/2013 Graph G1 Graph G2 Graph G1 adalah subgraph dari G struktur data by andi arfian G2 adalah sub dari18G 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) Contoh, d Sebuah multigraph karena ada garis e1dan e2 yang menghubungkan titik A dan B atau terdapat Loop e5 di titik C e6 e8 e7 a c e2 e4 e5 e3 e1 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 Smr Walk terbuka ,path dan trail Sby •Titik Jkt,Bdg,Yog,Smr dan S by Jkt 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 D C 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 A F 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 struktur data by andi arfian EDGE LIST B C A C D E A B E B E F B C D F D E Adjacency List 24 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 D A F C E Undirected Graph BFT ? DFT ? 3/12/2013 NODE A B C D E F struktur data by andi arfian EDGE LIST B C A C D E A B E B E F B C D F D E Adjacency List 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 struktur data by andi arfian 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 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