Algoritma dan Struktur Data pengenalan graph Ramos Somya
Defenisi Graf Suatu graf G terdiri dari 2 himpunan yang berhingga, yaitu himpunan titik tidak kosong (simbol V(G)) dan himpunan 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.
Defenisi Graf (Lanjut) Kadang-kadang suatu graf dinyatakan dengan gambar. Gambar suatu graf G terdiri dari himpunan titik V(G), himpunan 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 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!
Contoh (Lanjut) B E e1 e4 A C e3 e5 G e2 F D
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. Pada interpretasinya, kota G merupakan kota yang terasing karena tidak dapat dikunjungi dari kota-kota lain dengan jalan darat.
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 titik 1 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
Lintasan vertex 1 ke semua vertex lain Vertex Asal Vertex Tujuan Lintasan Terpendek Jarak 1 2 1, 3, 4, 2 45 3 1, 3 10 4 1, 3, 4 25 5 1, 5 6 Tidak ada -
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).
Langkah-langkah Buat sebuah projek java application dengan nama GrafSederhana. Kelas-kelas yang harus dibuat: Main (Utama) Vertex XNode
Kelas Main Dibuat langsung saat generate projek
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().
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().
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.
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:
See You Next Week God Bless