🛣️Praktikum 1
Graf dengan Linked List
Deskripsi
Pada percobaan ini akan diimplementasikan Graph menggunakan linked list untuk merepresentasikan graph adjacency. Struktur data linked list yang digunakan merupakan package / library dari Java.
Langkah Percobaan
Buatlah kelas
Graph
.Tambakan atribur
vertices
dan array dengan namalist
bertipe list. Jangan lupa import package LinkedList kedalam kelasGraph
.
Tambakan konstruktor didalam kelas
Graph
.
Tambahkan method
addEdge()
. Jika yang akan dibuat adalah graph berarah, maka yang dijalankan hanya baris pertama saja. Jika graph tidak berarah yang dijalankan semua baris pada methodaddEdge()
.
Tambahkan method
degree()
untuk menampilkan jumlah derajat lintasan pada suatu vertex. Di dalam metode ini juga dibedakan manakah statement yang digunakan untuk graph berarah atau graph tidak berarah. Eksekusi hanya sesuai kebutuhan saja.
Tambahkan method
removeEdge()
. Method ini akan menghapus lintasan ada suatu graph. Oleh karena itu, dibutuhkan 2 parameter untuk menghapus lintasan yaitu source dan destination.
Tambahkan method
removeAllEdges()
untuk menghapus semua vertex yang ada di dalam graph.
Tambahkan method
printGraph()
untuk mencatak graph ter-update.
Buatlah kelas
MainGraph
dan tambahkan main method seperti berikut.
Compile dan jalankan main class. Amati hasilnya.
Tambahkan pemanggilan method
removeEdge()
sesuai potongan code di bawah ini pada main method. Kemudian tampilkan graph tersebut.
Amati hasilnya.
Pertanyaan
Sebutkan beberapa jenis (minimal 3) algoritma yang menggunakan dasar graph, dan apakah kegunaan algoritma-algoritma tersebut?
Pada class
Graph
terdapat array bertipeLinkedList
, yaituLinkedList list[]
. Apakah tujuan pembuatan variabel tersebut ?Apakah alasan pemanggilan method
addFirst()
untuk menambahkan data, bukan method add jenis lain pada linked list ketika digunakan pada methodaddEdge()
pada classGraph
?Bagaimana cara mendeteksi
prev
pointer pada saat akan melakukan penghapusan suatu edge pada graph?Kenapa pada praktikum langkah untuk menghapus path yang bukan merupakan lintasan pertama kali (perhatikan main class) menghasilkan output yang salah ? Bagaimana solusinya ?
Last updated