Algoritma dan Struktur Data PENGENALAN GRAPH RAMOS SOMYA

  • Slides: 18
Download presentation
Algoritma dan Struktur Data PENGENALAN GRAPH RAMOS SOMYA

Algoritma dan Struktur Data PENGENALAN GRAPH RAMOS SOMYA

Defenisi Graf Suatu graf G terdiri dari 2 himpunan yang berhingga, yaitu himpunan titik

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

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

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 1 A E e 4 e 3 C e 5

Contoh (Lanjut) B e 1 A E e 4 e 3 C e 5 G e 2 D F

Penjelasan Contoh Dalam graf tersebut e 1 berhubungan dengan titik A dan B (keduanya

Penjelasan Contoh Dalam graf tersebut e 1 berhubungan dengan titik A dan B (keduanya disebut titik ujung e 1). 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

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

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 40 20 10 3 15 15 10 20 5

Gambar-nya: 45 1 2 50 40 20 10 3 15 15 10 20 5 35 30 4 3 6

Lintasan vertex 1 ke semua vertex lain Vertex Asal Vertex Tujuan 1 1 1

Lintasan vertex 1 ke semua vertex lain Vertex Asal Vertex Tujuan 1 1 1 2 3 4 5 6 Lintasan Terpendek 1, 3, 4, 2 1, 3, 4 1, 5 Tidak ada Jarak 45 10 25 45 -

Graf (Java) Dengan Java, Graf dapat dibuat menjadi sebuah bentuk objek. Objek yang dapat

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 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 Graf. Sederhana. Kelas-kelas yang harus dibuat:

Langkah-langkah Buat sebuah projek java application dengan nama Graf. Sederhana. Kelas-kelas yang harus dibuat: Main (Utama) Vertex XNode

Kelas Main Dibuat langsung saat generate projek

Kelas Main Dibuat langsung saat generate projek

Kelas XNode Tambahkan atribut: private Vertex vertex; private int panjang; Buat konstruktor XNode(Vertex vertex,

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 get. Vertex() dan get. Panjang().

Kelas Vertex Tambahkan atribut: private String label. private Vector<XNode> xnodes. Buat konstruktor Vertex(String label)

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 get. Label() dan get. XNode().

Coba Project Di kelas main, buat sebuah objek vector dengan nama list. V. Setelah

Coba Project Di kelas main, buat sebuah objek vector dengan nama list. V. Setelah itu, tambahkan beberapa objek vertex ke dalamnya. Kemudian buat perulangan untuk mencetak label dari vertex-vertex yang sudah dimasukkan ke dalam list. V.

Latihan Tambahkan sebuah method untuk membuat relasi antar vertex beserta dengan panjang edge antara

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

See You Next Week God Bless