Latihan: Peta Rute Perjalanan
Membangun graf tak berarah menggunakan representasi Adjacency Matrix untuk memodelkan keterhubungan rute perjalanan antar kota.
Membangun graf tak berarah menggunakan representasi Adjacency Matrix untuk memodelkan keterhubungan rute perjalanan antar kota.
Anda sedang mengembangkan fitur navigasi untuk memetakan jalur darat dan tol antar beberapa kota. Sistem ini membutuhkan informasi mengenai kota-kota apa saja yang saling terhubung secara langsung.
Untuk merepresentasikannya di dalam memori komputer, Anda menggunakan Adjacency Matrix (Matriks Ketetanggaan).
Dalam graf jalan darat, hubungan antar kota bersifat Undirected (Tak Berarah). Artinya, jika ada jalan tol dari Bandar Lampung (Indeks 0) ke Jakarta (Indeks 2), maka otomatis ada jalan tol dari Jakarta kembali ke Bandar Lampung. Hubungan timbal-balik ini akan membuat matriks yang Anda cetak terlihat simetris seperti cermin secara diagonal!
AddEdge: Fungsi ini menerima src (sumber) dan dest (tujuan). Karena graf ini tak berarah, Anda wajib memperbarui dua sel sekaligus di dalam array 2D G->matrix. Set nilai sel tersebut menjadi 1 untuk menandakan adanya jalur atau jalan yang menghubungkan keduanya.PrintMatrix: Untuk melihat apakah AddEdge Anda berhasil, Anda harus mencetak seluruh isi tabel matriks. Gunakan teknik Nested Loop (Perulangan Bersarang) seperti saat Anda memanipulasi Array 2 Dimensi biasa. Cetak nilai G.matrix[i][j] satu per satu.Program akan mencetak struktur matriks 2D berukuran 4x4 yang merepresentasikan ada (1) atau tidaknya (0) jalur penghubung, disusul dengan legenda daftar nama kota.
Perhatikan matriks yang tercetak. Pada baris ke-0 (Bandar Lampung), terdapat angka 1 pada kolom 1 (Palembang) dan kolom 2 (Jakarta), menandakan bahwa kota tersebut terhubung langsung dengan kedua kota tersebut.
Output:
=== REPRESENTASI ADJACENCY MATRIX ===
[0] [1] [2] [3]
[0] 0 1 1 0
[1] 1 0 0 0
[2] 1 0 0 1
[3] 0 0 1 0
=== DAFTAR KOTA ===
Indeks 0 : Bandar Lampung
...Hint: Sifat Simetri
Cobalah tarik garis khayal yang membelah secara diagonal dari ujung kiri atas[0][0]ke ujung kanan bawah[3][3]. Anda akan melihat bahwa angka-angka di segitiga atas sama persis dengan angka-angka di segitiga bawah. Inilah bukti bahwa graf Anda bersifat dua arah (Undirected).