pengenalan graph
description
Transcript of pengenalan graph
![Page 1: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/1.jpg)
Algoritma dan Struktur Data Lanjut
![Page 2: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/2.jpg)
Defenisi Graf
Suatu graf G terdiri dari 2 himpunan yang berhingga, yaitu himpunan titik-titik tidak kosong (simbol V(G)) dan himpunan garis-garis (simbol E(G)).
Setiap garis berhubungan dengan satu atau dua titik. Titik-titik tersebut dinamakan Titik Ujung. Garis yang hanya berhubungan dengan satu titik ujung disebut Loop. Dua garis berbeda yang menghubungkan titik yang sama disebut Garis Paralel.
![Page 3: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/3.jpg)
Defenisi Graf (Lanjut)
Kadang-kadang suatu graf dinyatakan dengan gambar. Gambar suatu graf G terdiri dari himpunan titik-titik V(G), himpunan garis-garis E(G) yang menghubungkan titik-titik tersebut (beserta arah garis pada graf berarah), dan label pada garisnya (jika ada). Panjang garis, kelengkungan garis, dan letak titik tidak berpengaruh dalam suatu graf.
![Page 4: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/4.jpg)
Contoh
Ada 7 kota (A,...,G) yang beberapa di antaranya dapat dihubungkan secara langsung dengan jalan darat. Hubungan-hubungan langsung yang dapat dilakukan adalah sebagai berikut:
A dengan B dan D
B dengan D
C dengan B
E dengan F
Buatlah graf yang menunjukkan keadaan transportasi di 7 kota tersebut!
![Page 5: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/5.jpg)
Contoh (Lanjut)
C
D
e1
e2
e3
e4
e5 GA
B
E
F
![Page 6: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/6.jpg)
Penjelasan Contoh
Dalam graf tersebut e1 berhubungan dengan titik A dan B (keduanya disebut titik ujung e1). Titik A dan B dikatakan berhubungan, sedangkan titik A dan C tidak berhubungan karena tidak ada garis yang menghubungkannya secara langsung.
Titik G adalah titik terasing karena tidak ada garis yang berhubungan dengan G. dalam interpretasinya, kota G merupakan kota yang terasing karena tidak dapat dikunjungi dari kota-kota lain dengan jalan darat.
![Page 7: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/7.jpg)
Penggunaan Graf (1): Shortest Path
Graf yang digunakan adalah graf berbobot : setiap sisinya diberikan nilai atau bobot.
Bobot menyatakan jarak antar kota atau waktu tempuh.
Misal ada kota A dan B, maka persoalan lintasan terpendek di sini adalah menentukan jarak terpendek atau waktu tersingkat dari kota A ke B.
![Page 8: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/8.jpg)
Contoh
Misal ada graf G = (V, E) dan sebuah simpul/vertex awal a. Tentukan lintasan terpendek dari a ke setiap simpul lainnya di dalam graf G!
![Page 9: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/9.jpg)
Gambar-nya:
1 2
3 4
5
6
20 10
4015
15 3
20 35
30
45
50 10
![Page 10: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/10.jpg)
Lintasan vertex a ke semua vertex lain
Vertex Asal Vertex Tujuan
Lintasan Terpendek
Jarak
1 2 1, 3, 4, 2 45
1 3 1, 3 10
1 4 1, 3, 4 25
1 5 1, 5 45
1 6 Tidak ada -
![Page 11: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/11.jpg)
Graf (Java)
Dengan Java Graf dapat dibuat menjadi sebuah bentuk objek.
Objek yang dapat kita bentuk adalah vertexnya. Lalu atribut-atribut yang dapat dimasukan ke dalam objek tersebut antara lain label, node-node yang berhubungan dengan vertex tersebut, dan jaraknya.
Karena setiap vertex dapat terhubung dengan banyak vertex, maka digunakan kelas Vector (bawaan java).
![Page 12: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/12.jpg)
Langkah-langkah
Buat sebuah projek java application dengan nama GrafSederhana.
Kelas-kelas yang harus dibuat:Main (Utama)VertexXNode
![Page 13: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/13.jpg)
Kelas Main
Dibuat langsung saat generate projek
![Page 14: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/14.jpg)
Kelas XNode
Tambahkan atribut:
private Vertex vertex;
private int panjang;
Buat konstruktor XNode(Vertex vertex, int panjang)
Di dalam konstruktor beri perintah untuk inisialisasi atribut vertex dan panjang.
Tambahkan fungsi getVertex() dan getPanjang().
![Page 15: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/15.jpg)
Kelas Vertex
Tambahkan atribut:
private String label.
private Vector<XNode> xnodes.
Buat konstruktor Vertex(String label)
Di dalam konstruktor beri perintah untuk inisialisasi atribut label dan xnodes.
Tambahkan fungsi getLabel() dan getXNode().
![Page 16: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/16.jpg)
Coba Project
Di kelas main, buat sebuah objek vector dengan nama listV.
Setelah itu, tambahkan beberapa objek vertex ke dalamnya.
Kemudian buat perulangan untuk mencetak label dari vertex-vertex yang sudah dimasukkan ke dalam listV.
![Page 17: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/17.jpg)
Latihan
Tambahkan sebuah method untuk membuat relasi antar vertex beserta dengan panjang edge antara vertex yang berelasi tersebut.
Misal terdapat himpunan vertex: A, B, C, D,E Relasi vertex:
A dan B dengan panjang edge 3 A dan D dengan panjang edge 5
Tampilkan relasi vertex
yang terjadi tersebut
dengan panjangnya:
![Page 18: pengenalan graph](https://reader033.fdocuments.net/reader033/viewer/2022061516/56814fc3550346895dbd820e/html5/thumbnails/18.jpg)
See You Next WeekGod Bless