180 likes | 424 Views
Algoritma dan Struktur Data Lanjut. Ramos Somya. pengenalan graph. 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)).
E N D
Algoritma dan Struktur Data Lanjut Ramos Somya pengenalan graph
Defenisi Graf • Suatugraf G terdiridari 2 himpunan yang berhingga, yaituhimpunantitik-titiktidakkosong (simbol V(G)) danhimpunangaris-garis (simbol E(G)). • Setiapgarisberhubungandengansatuatauduatitik. Titik-titiktersebutdinamakanTitik Ujung. Garis yang hanyaberhubungandengansatutitikujungdisebut Loop. Duagarisberbeda yang menghubungkantitik yang samadisebutGarisParalel.
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.
Contoh • Ada 7 kota (A,...,G) yang beberapadiantaranyadapatdihubungkansecaralangsungdenganjalandarat. Hubungan-hubunganlangsung yang dapatdilakukanadalahsebagaiberikut: • A dengan B dan D • B dengan D • C dengan B • E dengan F Buatlahgraf yang menunjukkankeadaantransportasidi 7 kotatersebut!
Contoh (Lanjut) B E e1 e4 A C e5 G e3 e2 F D
PenjelasanContoh • Dalamgraftersebut e1 berhubungandengantitik A dan B (keduanyadisebuttitikujung e1). Titik A dan B dikatakanberhubungan, sedangkantitik A dan C tidakberhubungankarenatidakadagaris yang menghubungkannyasecaralangsung. • Titik G adalahtitikterasingkarenatidakadagaris yang berhubungandengan G. dalaminterpretasinya, kota G merupakankota yang terasingkarenatidakdapatdikunjungidarikota-kota lain denganjalandarat.
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.
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!
Gambar-nya: 45 1 2 50 10 5 40 20 35 15 20 10 30 6 15 3 3 4
Graf (Java) • Dengan Java Graf dapatdibuatmenjadisebuahbentukobjek. • Objek yang dapatkitabentukadalahvertexnya. Laluatribut-atribut yang dapatdimasukankedalamobjektersebutantara lain label, node-node yang berhubungandengan vertex tersebut, danjaraknya. • Karenasetiap vertex dapatterhubungdenganbanyak vertex, makadigunakankelas Vector (bawaan java).
Langkah-langkah • Buatsebuahprojek java application dengannamaGrafSederhana. • Kelas-kelas yang harusdibuat: • Main (Utama) • Vertex • XNode
Kelas Main • Dibuat langsung saat generate projek
KelasXNode • 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().
Kelas Vertex • Tambahkanatribut: • private String label. • private Vector<XNode> xnodes. • Buatkonstruktor Vertex(String label) • Di dalamkonstruktorberiperintahuntukinisialisasiatribut label danxnodes. • TambahkanfungsigetLabel() dangetXNode().
Coba Project • Di kelas main, buatsebuahobjek vector dengannamalistV. • Setelahitu, tambahkanbeberapaobjek vertex kedalamnya. • Kemudianbuatperulanganuntukmencetak label dari vertex-vertex yang sudahdimasukkankedalamlistV.
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: