Breadth-First Search (BFS) adalah algoritma pencarian atau traversal pada graf dan pohon yang bekerja dengan cara menjelajahi simpul (node/vertex) secara bertingkat (level-wise).
-
BFS dimulai dari simpul awal (source/start node).
-
BFS mengunjungi semua tetangga dari simpul awal terlebih dahulu sebelum bergerak ke simpul di level berikutnya.
-
Dengan kata lain, BFS menelusuri graf melebar (breadth) sebelum mendalami simpul lebih jauh.
Konsep Utama BFS
-
Struktur Data yang Digunakan → BFS menggunakan queue (antrian FIFO).
-
FIFO = First In, First Out → simpul yang dimasukkan pertama akan diproses lebih dahulu.
-
-
Visited (Tercatat/Dikunjungi) → Untuk mencegah kunjungan berulang (infinite loop), setiap simpul yang sudah dikunjungi akan ditandai.
-
Level-order Traversal → BFS sering digunakan pada pohon biner untuk traversal per level.
Langkah-langkah BFS
Misalkan kita punya graf tak berarah (undirected graph):
-
Pilih simpul awal (misalnya
A). -
Tandai
Asebagai dikunjungi, lalu masukkan ke dalam queue. -
Selama queue tidak kosong:
-
Ambil simpul dari depan queue.
-
Kunjungi semua tetangga simpul tersebut yang belum dikunjungi.
-
Tandai tetangga tersebut sebagai dikunjungi dan masukkan ke queue.
-
-
Ulangi sampai semua simpul dikunjungi atau simpul tujuan ditemukan (jika ada target).
Contoh Ilustrasi
Graf sederhana:
A
/ \
B C
/ \ \
D E F
Proses BFS (mulai dari A):
-
Queue: [A] → Kunjungi A
-
Queue: [B, C] → Kunjungi B, C
-
Queue: [D, E, F] → Kunjungi D, E, F
-
Habis → traversal selesai.
Urutan BFS: A → B → C → D → E → F
Pseudocode BFS
BFS(G, start):
buat queue Q
tandai start sebagai visited
enqueue(Q, start)
while Q tidak kosong:
node = dequeue(Q)
kunjungi(node)
for setiap tetangga dari node:
if tetangga belum visited:
tandai tetangga sebagai visited
enqueue(Q, tetangga)
Kompleksitas Waktu & Ruang
-
Waktu:
O(V + E)-
V= jumlah simpul (vertices) -
E= jumlah sisi (edges)
-
-
Ruang:
O(V)(untuk menyimpan status visited dan queue)
Kegunaan BFS
-
Menemukan jalur terpendek pada graf tak berbobot.
-
Pencarian pada pohon/graf.
-
Web crawling (menjelajahi halaman per level link).
-
Jaringan sosial (mencari teman dengan jarak koneksi tertentu).
-
Artificial Intelligence (AI) → untuk eksplorasi state-space (misalnya puzzle, permainan).
Manfaat BFS dalam Pemrosesan Data Graf
1. Menemukan Jalur Terpendek (Shortest Path)
-
Pada graf tak berbobot, BFS menjamin menemukan jalur dengan jumlah edge (sisi) paling sedikit.
-
Berguna untuk:
-
Sistem navigasi (peta jalan, transportasi umum).
-
Routing jaringan komputer (menemukan rute tercepat tanpa bobot).
-
2. Analisis Konektivitas Jaringan
-
BFS bisa mengecek apakah semua node dalam jaringan saling terhubung.
-
Bisa dipakai untuk mendeteksi komponen terhubung dalam graf.
-
Aplikasi:
-
Mengecek apakah server masih bisa dicapai dalam jaringan.
-
Analisis hubungan dalam jejaring sosial (misalnya “siapa saja teman dalam radius 2 koneksi”).
-
3. Eksplorasi Data Secara Bertingkat (Level-Order Traversal)
-
BFS menelusuri graf berdasarkan lapisan/level.
-
Manfaat:
-
Menentukan node yang jaraknya k dari node sumber.
-
Digunakan dalam sistem penyebaran informasi (broadcast) dalam jaringan.
-
4. Dasar untuk Algoritma Lain
-
BFS menjadi fondasi untuk banyak algoritma graf:
-
Ford-Fulkerson (aliran maksimum pada jaringan).
-
Edmonds-Karp (variasi Ford-Fulkerson dengan BFS).
-
Algoritma untuk bipartite graph checking.
-
5. Pencarian dan Penemuan Rute dalam AI
-
Dalam kecerdasan buatan (AI), BFS dipakai untuk:
-
Menelusuri ruang kemungkinan (state-space).
-
Menyelesaikan puzzle, game tree (misalnya catur, tic-tac-toe).
-
Robot pathfinding (mencari rute terpendek dalam labirin).
-
6. Efisiensi dalam Pemrosesan Data Skala Besar
-
Dengan kompleksitas
O(V + E), BFS relatif cepat untuk graf dengan banyak node dan edge. -
Cocok untuk:
-
Sistem rekomendasi (misalnya mencari hubungan antar pengguna).
-
Analisis jaringan transportasi (kereta, bus, penerbangan).
-
Ringkasan
Secara umum, manfaat BFS dalam pemrosesan data berbasis graf adalah:
-
✅ Menemukan jalur terpendek dalam graf tak berbobot.
-
✅ Menentukan keterhubungan antar node.
-
✅ Eksplorasi graf berdasarkan level.
-
✅ Menjadi dasar bagi algoritma lanjutan.
-
✅ Berguna dalam AI, jaringan, navigasi, dan big data.

Penutup
Algoritma Breadth-First Search (BFS) merupakan salah satu algoritma fundamental dalam pemrosesan data berbasis graf yang bekerja dengan cara menjelajahi simpul secara bertingkat (level-wise). Melalui pendekatan traversal melebar, BFS mampu menemukan jalur terpendek pada graf tak berbobot, menganalisis konektivitas jaringan, serta menjadi dasar bagi berbagai algoritma graf lainnya.
Dengan kompleksitas yang efisien, BFS sangat bermanfaat dalam berbagai bidang, mulai dari pemetaan rute transportasi, analisis jaringan komputer, jejaring sosial, hingga kecerdasan buatan (AI). Oleh karena itu, pemahaman mendalam tentang BFS menjadi penting bagi siapa saja yang ingin menguasai konsep dasar algoritma graf dan penerapannya dalam kehidupan nyata.
