Penelusuran graf — BFS, DFS, dan Dijkstra
Representasi graf, BFS dengan queue, DFS dengan stack/rekursi, lalu Dijkstra untuk graf berbobot.
SlideBFS DFS 2026
Graf terdiri dari himpunan simpul (vertex) dan sisi (edge) . Peta jalan, jaringan pertemanan, dependensi mata kuliah, bahkan grid di game semuanya bisa dimodelkan sebagai graf.
Representasi
| Adjacency matrix | Adjacency list | |
|---|---|---|
| Memori | ||
| Cek apakah ada | ||
| Iterasi tetangga | ||
| Cocok untuk | graf padat | graf jarang (paling umum) |
BFS vs DFS
Breadth-First Search menjelajah melebar: semua tetangga jarak 1, lalu semua jarak 2, dan seterusnya. Memakai queue. Pada graf tak berbobot, BFS menemukan jalur dengan jumlah sisi paling sedikit.
Depth-First Search masuk sedalam mungkin dulu, lalu mundur (backtrack). Memakai stack (atau rekursi). DFS berguna untuk deteksi siklus, topological sort, dan mencari komponen terhubung.
Grid di bawah adalah graf: setiap sel adalah simpul, terhubung ke 4 tetangganya. Bandingkan pola penjelajahannya. Lalu gambar lumpur (biaya 5) dan lihat bedanya BFS (tidak peduli biaya) dengan Dijkstra.
Kompleksitas BFS dan DFS dengan adjacency list: . Setiap simpul diproses sekali, setiap sisi diperiksa sekali (dua kali untuk graf tak berarah).
Dijkstra: jalur terpendek berbobot
Kalau sisi punya bobot (jarak, waktu, biaya), jumlah sisi paling sedikit belum tentu jalur termurah. Dijkstra selalu mengambil simpul dengan jarak sementara terkecil dari priority queue, lalu melakukan relaksasi:
Dengan binary heap, kompleksitasnya .
Latihan: Jumlah Pulau, Jalur Terpendek di Grid.
Latihan UTS & UAS
- UAS 2026 · No. 1Bandingkan pencarian rute minimum dengan algoritma berbobot.