Download presentation
Presentation is loading. Please wait.
1
ADT DINAMIS : KONSEP DASAR GRAF
2
Kelompok 6 Fayza Fatimattuzahra 1217050055
Haiqel Aziizul Hakeem Haniah Amalia Hary Rizky Khafka Fadillah Wibawa Nurdiansyah Muhammad Faisal Achramsyah Muhammad Ikhsan Nurhalim
3
Graf Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut, sehingga secara sederhana graf didefinisikan sebagai kumpulan titik yang dihubungkan oleh garis-garis/sisi. Sedangkan definisi matematis untuk graf adalah, pasangan terurut himpunan (V,E), dimana V merupakan himpunan beranggotakan titik-titik (vertex) dan E merupakan himpunan beranggotakan sisi-sisi (edges). Perhatikan Contoh Graf (V,E) berikut: V:={1,2,3,4} E:={e1, e2, e3, e4, e5, e6, e7, e8}. G:={e1=(1,2),e2=(2,3),e3=(1,3),e4=(1,3),e5= (2,4),e6=(3,4),e7=(3,4),e8=(3,3)}.
4
Representasi Graf Dalam Pemrograman
DALAM PEMROGRAMAN, AGAR DATA YANG ADA DALAM GRAF DAPAT DIOLAH, MAKA GRAF HARUS DINYATAKAN DALAM SUATU STRUKTUR DATA YANG DAPAT MEWAKILI GRAF TERSEBUT. DALAM HAL INI GRAF PERLU DIREPRESENTASIKAN KEDALAM BENTUK ARRAY DAN DIMENSI YANG SERING DISEBUT MATRIKS ATAU DIREPRESENTASIKAN DALAM BENTUK LINKED LIST. BENTUK MANA YANG DIPILIH BIASANYA TERGANTUNG KEPADA EFISIENSI DAN KEMUDAHAN DALAM MEMBUAT PROGRAM. ADAPUN BEBERAPA ALGORITMA GRAPH DALAM PEMROGRAMAN
5
Istilah Dalam Graf Orde dari graf G, ditulis|V(G)| = n, adalahbanyaknya titik pada graf. Ukuran dari graf G, ditulis |E(G)| = m, adalah banyaknyagaris pada graf. Derajat dari suatu titik pada graf G adalah banyaknya titik lain yang terhubung (secaralangsung) ke titik tersebut. Titik Ujung, Dua titik pada graf yang dihubungkan oleh suatu garis disebut titik-titik ujung Insiden, Suatu garis dan suatu titik sebagai titik ujung pada garis tersebut dikatakan saling berinsiden atau bersentuhan.
6
Istilah Dalam Graf Garis Ajasen, Dua garis pada graf dikatakan saling berajasen atau bertetangga (secara langsung) jika kedua garis tersebut berinsiden dengan satu titik yang sama. Titik Ajasen, Dua titik pada graf dikatakan saling berajasen atau bertetangga (secara langsung) jika kedua titik tersebut berinsiden dengan satu garis yang sama.
7
Penyajian Graf Bentuk Diagram Bentuk Matriks Bentuk Himpunan
Dalam bentuk diagram, setiap titik pada graf digambarkan dengan sebuah lingkaran kecil dan setiap garis pada graf digambarkan dengan segmen garis yang menghubungkan 2 titik. Matriks Ajasensi Matriks ajasensi A(G) = [ajk] dari sebuah graf G didefinisikan dengan: Bentuk Himpunan Dalam bentuk notasi himpunan, sebuah graf dinyatakan dengan pasangan terurut dari dua himpunan; yaitu himpunan titik dan himpunan garis. Himpunan garisnya merupakan kumpulan dari pasangan tak-terurut dari dua titik. Matriks Insidensi Matriks insidensi I(G) = [ijk] dari sebuah graf G didefinisikan dengan:
8
Contoh Soal Graf Misalkan penulis mengundang 6 teman untuk pesta ulang tahun penulis, mereka memiliki inisial nama a, b, c, d, e, dan f. Diketahui bahwa a saling mengenal dengan b, c, d, e dan f; sedangkan b saling mengenal dengan c dan e; sedangkan c saling mengenal dengan d dan e; sedangkan d saling mengenal dengan e, f; sedangkan e saling mengenal dengan f. Penulis ingin mengetahui bentuk graf yang terbentuk. Dengan “inisial nama” menyatakan “titik” dan “hubungan saling kenal” menyatakan “garis” maka dapat dibuat graf berikut :
9
Graf Khusus Graf tak Berarah (Undirected Graph)
Graf Berarah (Directed Graph) Graf tak-berarah G = {V,E} adalah graf dengan syarat : V adalah suatu himpunan yang anggotanya disebut vertex atautitik. E adalah suatu himpunan dari pasangan (tak- terurut) dari dua titik, disebut edge atau garis. Graf berarah G= {V,A} adalah graf dengan syarat: V adalah suatu himpunan yang anggotanya disebutvertex atau titik. A adalah suatu himpunan dari pasangan (terurut) dari titik disebut directed edges, arcs atau anak panah karena memiliki arah yang menunjukan awal dan akhir. Suatu arc e = arc (x,y) dianggap berarah dari x ke y ; dengan x disebut ekor dan y disebut kepala dari anak panah. arc e’ = arc (y,x) kebalikan dari arc e = arc (x,y). Graf Kosong(Null Graph) Graf nol atau graf kosong adalah graf yang tidak memiliki garis. Notasinya adalah Nn dengan n banyaknya titik dari N. Jika suatu graf tidak memilikiketerangan apakah graf berarah atau graf tidak berarah maka diasumsikan graf yang dimaksudadalah graf tidak berarah.
10
Graf Khusus Graf Bagian(Subgraph)
Graf Lengkap (Complete Graph) Graf bagian H dari graf G = {V,E} adalah pasangan tak-terurut dari W dan F yaitu H = {W,F} dengan WV dan FE , dinotasikan dengan HG. Graf lengkap adalah graf yang setiap titiknya ajasen dengan semua titik lainnya pada graf tersebut. Simbolnya adalah Kn dengan n banyaknya titik. Kn adalah graf teratur berderajat (n - 1) Banyaknya garis pada Kn adalah Graf Teratur(Regular Graph) Graf teratur adalah graf yang setiap titiknya mempunyai derajat yang sama. Notasinya adalah Rd dengan d sebagai derajat setiap titiknya. Banyaknya garis pada graf teratur adalah Misalkan titik-titik x1, x2, x3, …, xn -1, xn adalah titik-titik pada Kn. Terdapat garis antara x1 dengan x2, x3, …, xn -1, xn jadi ada n-1 garis. Terdapat garis antara x2 dengan x3, …, xn -1, xn jadi ada n-2 garis. Terdapat garis antara x3 dengan x4, …, xn -1, xn jadi ada n-3 garis. Terdapat garis antara xn -2 dengan xn -1 dan xn jadi ada 2 garis. Terdapat garis antara xn -1 dengan xn jadi ada 1 garis. Jadi total garis ada (n-1) +( n-2) + (n-3) + … =
11
Algoritma DFS (Depth First Search)
12
Algoritma DFS (Depth First Search)
Algortima DFS adalah salah satu algoritma penelusuran struktur graf atau pohon berdasarkan kedalaman. Simpul ditelusuri dari root kemudian ke salah satu simpul anaknya ( misal nya prioritas penelusuran berdasarkan anak pertama [simpul sebelah kiri] ), maka penelusuran dilakukan terus melalui simpul anak pertama dari simpul anak pertama level sebelumnya hingga mencapai level terdalam. Setelah sampai di level terdalam, penelusuran akan kembali ke 1 level sebelumnya untuk menelusuri simpul anak kedua pada pohon biner [simpul sebelah kanan] lalu kembali ke langkah sebelumnya dengan menelusuri simpul anak pertama lagi sampai level terdalam dan seterusnya.
13
A Visit Order : B C D E F G Stack Cara Kerja DFS
14
A Visit Order : B C D E F G A Stack Cara Kerja DFS
15
A Visit Order : A B C D E F G Stack Scan A Cara Kerja DFS
16
A Visit Order : A B C D E F G B C Stack Cara Kerja DFS
17
A Visit Order : A - C B C D E F G B Stack Scan C Cara Kerja DFS
18
A Visit Order : A - C B C D E F G B F G Stack Cara Kerja DFS
19
A Visit Order : A - C - G B C D E F G B F Stack Scan G Cara Kerja DFS
20
Cara Kerja DFS A Visit Order : A - C - G - F B C D E F G B Stack
Scan F Cara Kerja DFS
21
Cara Kerja DFS A Visit Order : A - C - G - F - B B C D E F G Stack
Scan B Cara Kerja DFS
22
A Visit Order : A - C - G - F - B B C D E F G D E Stack Cara Kerja DFS
23
Cara Kerja DFS A Visit Order : A - C - G - F - B - E B C D E F G D
Stack Scan E Cara Kerja DFS
24
Cara Kerja DFS A Visit Order : A - C - G - F - B - E - D B C D E F G
Stack Scan D Cara Kerja DFS
25
Cara Kerja DFS A Visit Order : A - C - G - F - B - E - D B C D E F G
Stack Scan D Cara Kerja DFS
26
A Visit Order : A - C - G - F - B - E - D B C D E F G Cara Kerja DFS
27
Kelemahan DFS Kelebihan DFS
Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus menyimpan semua node yang pernah dibangkitkan. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat. Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete). Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).
28
Contoh Program DFS Dalam Java
Source Code Output
29
Algoritma BFS (Breadth First Search)
30
Algoritma BFS (Breadth First Search)
Memiliki nama lain Algoritma Pencarian Melebar. Algoritma ini mengunjungi simpul secara pre order, yaitu mengunjungi suatu simpul kemudian mengunjungi semua simpul yang bertetangga, dan berlanjut ke simpul lainnya. Algoritma ini memerlukan sebuah antrian queue untuk menyimpan simpul yang telah dikunjungi. Simpul-simpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul yang bertetanggaan dengannya. Tiap simpul yang telah dikunjungi masuk ke dalam antrian hanya satu kali. Algoritma ini juga membutuhkan tabel Boolean untuk menyimpan simpul yang telah dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.
31
Cara kerja BFS Masukkan simpul ujung (akar) ke dalam antrian.
Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi. Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian. Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan mengembalikan hasil solusi tidak ditemukan. Ulangi pencarian dari langkah kedua.
32
Kelemahan BFS Kelebihan BFS
Pasti menemukan solusi yang dicari Tidak menemui jalan buntu Menjamin ditemukannya solusi (jika solusi memang ada) dan solusi yang ditemukan pasti yang paling baik Memerlukan memori yang cukup besar, karena metode ini mengecek keseluruhan node yang ada dan membutuhkan waktu yang lebih untuk mengecek semua node yang ada tersebut Waktu yang diperlukan cukup lama
33
Contoh Program BFS Dalam Java
Source Code Output
34
_ _ _ _ _ _ _ _ A B C D F X P Z M B A D F C X P Z M A B C X D P M Z F
35
Algoritma MST (Minimum Spanning Tree)
36
Algoritma MST (Minimum Spanning Tree)
Tree adalah graf terhubung yang tidak memiliki arah dan tidak mengandung sirkuit. Sedangkan Spanning Tree merupakan graf terhubung yang diperoleh dengan cara memutus sirkuit dalam graf, tidak memiliki arah, dan memiliki bobot paling minimal. contoh
37
Spanning Tree
38
Algoritma Prim Sebuah algoritma dalam teori graf untuk mencari pohon rentang minimum untuk sebuah graf berbobot yang saling terhubung. Ini berarti bahwa sebuah himpunan bagian dari edge yang membentuk suatu pohon yang mengandung node, di mana bobot keseluruhan dari semua edge dalam pohon diminimalisasikan. Bila graf tersebut tidak terhubung, maka graf itu hanya memiliki satu pohon rentang minimum untuk satu dari komponen yang terhubung.
39
Contoh Program Prim Dalam Java
Source Code
40
Contoh Program Prim Dalam Java
Lanjutan Source Code Output Graf Awal Graf Hasil / MST
41
Contoh Algoritma Graf Prim
42
Algoritma Kruskal Algoritma Kruskal adalah algoritma untuk mencari pohon merentang minimum secara langsung didasarkan pada algoritma MST (Minimum Spanning Tree) umum. Pada algoritma Kruskal sisi-sisi di dalam graf diurut terlebih dahulu berdasarkan bobotnya dari kecil ke besar. Sisi yang dimasukkan ke dalam himpunan T adalah sisi graf G sedemikian sehingga T adalah pohon. Pada keadaan awal, sisi-sisi sudah diurut berdasarkan bobot membentuk hutan (forest). Hutan tersebut dinamakan hutan merentang (spanning forest). Sisi dari graf G ditambahkan ke T jika tidak membentuk sirkuit di T.
43
Contoh Program Kruskal Dalam Java
Source Code
44
Contoh Program Kruskal Dalam Java
Lanjutan Source Code Output Graf Awal Graf Hasil / MST
45
Contoh Algoritma Graf Kruskal
46
Perbandingan Algoritma Prim Dan Kruskal
Setiap algoritma memiliki kelebihan dan kekurangan dalam menyelesaikan suatu masalah. Ada kasus yang dengan mudah diselesaikan oleh algoritma Kruskal, namun untuk kasus lain, algoritma Prim jauh memberikan keuntungan dibanding Kruskal. Walaupun masih dalam satu permasalahan, yaitu pencarian pohon merentang minimum, data-data yang diberikan sering kali mengakibatkan algoritma yang satu berjalan lebih cepat dibanding algotima yang lain, atau kadang sebaliknya. Algoritma Prim dan Algoritma Kruskal dapat menyelesaikan permasalahan pencarian pohon merentang minimum dengan tepat. Algoritma Prim lebih efisien dibanding algoritma Kruskal saat graf yang diberikan memiliki banyak sisi dengan simpul yang sedikit (graf lengkap). Algoritma Kruskal lebih efisien dibanding algoritma Prim saat graf yang diberikan memiliki banyak simpul dengan sisi yang sedikit.
47
Ada Pertanyaan? Malu Bertanya Sesat Dijalan...
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.