My first Magazine pemrograman-kompetitif-dasar | Page 106
9 Perkenalan Graf
• Kompleksitas menghapus edge dan memeriksa keterhubungan sepasang node adalah
O(E).
• Demikian juga untuk mendapatkan daftar tetangga dari node , kompleksitasnya adalah
O(E).
9.4
Perbandingan Representasi Graf
Tabel 9.1 menunjukkan ringkasan operasi dan kompleksitas pada graf dengan V node dan E
edge untuk berbagai representasi, dengan K adalah banyaknya node yang bertetangga dengan
node yang sedang kita periksa.
Tabel 9.1: Tabel perbandingan operasi dan kompleksitas berbagai representasi graf, dengan
catatan adjacency list diimplementasikan dengan array of dynamic array dan edge
list diimplementasikan dengan array .
Adj.Matrix Adj.List Edge List
Tambah edge
O(1)
O(1)
O(1)
Hapus edge
O(1)
O(K)
O(E)
Cek keterhubungan
O(1)
O(K)
O(E)
Daftar tetangga
O(V )
O(K)
O(E)
2
Kebutuhan memori
O(V )
O(E)
O(E)
Kompleksitas operasi-operasi adjacency list dan edge list yang ditunjukkan Tabel 9.1 bisa
jadi lebih efisien, apabila kita menggunakan struktur data yang lebih efisien dalam penampungan
datanya. Sebagai contoh, struktur data balanced binary search tree yang digunakan sebagai
penampungan dapat melakukan operasi simpan, cari, dan hapus dalam kompleksitas logaritmik.
Struktur data lanjutan seperti balanced binary search tree tidak dibahas pada buku ini. Pembaca
yang tertarik dapat mempelajarinya pada buku Introduction to Algorithm. 13
9.5
Penjelajahan Graf
Penjelajahan graf merupakan penelusuran node -node pada suatu graf menurut suatu
aturan tertentu. Terdapat 2 metode yang dapat digunakan, yaitu DFS dan BFS.
9.5.1
DFS: Depth-First Search
Penelusuran dilakukan dengan mengutamakan node yang lebih dalam terlebih dahulu (depth-
first ). Misalkan penelusuran secara DFS dimulai dari suatu node . Selama masih terdapat
tetangga yang belum dikunjungi, kunjungi tetangga tersebut. Pada node tetangga ini, lakukan
pula hal yang serupa. Ketika kita mencapai suatu node yang mana seluruh tetangganya sudah
pernah dikunjungi, kembali ke node terakhir yang dikunjungi tepat sebelum node ini dikunjungi.
Sebagai contoh, perhatikan Gambar 9.18. Penelusuran akan dilakukan menuju node yang paling
dalam, lalu keluar, dan ke node lain yang paling dalam, dan seterusnya.
96