Anda di halaman 1dari 10

BREADTH FIRST SEARCH (BFS)

Breadth-first search adalah algoritma yang melakukan pencarian secara


melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu
simpul kemudian mengunjungi semua simpul yang bertetangga dengan simpul
tersebut terlebih dahulu. Selanjutnya, simpul yang belum dikunjungi dan
bertetangga dengan simpulsimpul yang tadi dikunjungi , demikian seterusnya.
Jika graf berbentuk pohon berakar, maka semua simpul pada aras d dikunjungi
lebih dahulu sebelum simpul-simpul pad aras d+1.
Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul
yang telah dikunjungi. Simpulsimpul ini diperlukan sebagai acuan untuk
mengunjungi simpul-simpul yang bertetanggaan dengannya. Tiap simpul yang
telah dikunjungu masuk ke dalam antrian hanya satu kali. Algoritma ini juga
membutuhkan table Boolean untuk menyimpan simpul yang te lah dikunjungi
sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.

CARA KERJA ALGORITMA BFS


Dalam algoritma BFS, simpul anak yang telah dikunjungi disimpan dalam
suatu antrian. Antrian ini digunakan untuk mengacu simpul-simpul yang
bertetangga dengannya yang akan dikunjungi kemudian sesuai urutan
pengantrian.
Untuk memperjelas cara kerja algoritma BFS beserta antrian yang
digunakannya, berikut langkah-langkah algoritma BFS:
1. Masukkan simpul ujung (akar) ke dalam antrian
2. Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi
3. Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga
dengan simpul tersebut (simpul anak) ke dalam antrian
5. Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan
mengembalikan hasil solusi tidak ditemukan
6. Ulangi pencarian dari langkah kedua
Contoh pengaplikasian metode Breadth First Search
(BFS)

Node 0 sebagai node awal. Pertama, kita enqueue ke barisan visited dan semua
barisan yang adjacent ke barisan queue.

Selanjutnya, kita ambil salah satu node untuk di proses kit ambil contoh 1. Kita
tandai node tersebut sebagai visited dengan menghapus dari barisan queue dan letakkan
node yang adjacent di barisan queue (2 dan 3 sudah ada di barisan queue). Karena 0
sudah di kunjungi (visited,) kita hiraukan.

Selanjutnya, kita dequeue node 2 dan tandai sebagai visited. Lalu, node 4 yang
ber adjcanet dengan node 2, kita tambahkan ke barisan queue.
Selanjutnya, kita dequeue 3 dari barisan queue dan tandai sebagai visited. Node
3 hanya memiliki 1 node yang adjacent yaitu node 0 ,yang sebelumnya telah dikunjungi.
Karena itu, kita hiraukan.

Sekarang, hanya node 4 yang terdapat di barisan queue. Node yang ber adjacent
dengan node 4, yaitu node 2 telah dikunjungi, karena itu kita hiraukan. Sekarang kita
tandai node 4 sebagai visited.

Selanjutnya, semua barisan yang terdapat di barisan visited adalah breadth-first


traversal dari graph yang diberikan.

Jika kita observasi graph yang diberikan dan sequence perjalanannya, kita bisa
lihat bahwa untuk algoritma BFS , kita harus melintasi graph breadth-wise dan
melanjutkan ke tahap berikutnya.
Graph traversal
Graph traversal artinya menelusuri setiap vertex (verteks) dan edge (tepi)
satu kali dalam urutan yang tetap. Saat menggunakan algoritme graf tertentu,
Anda harus memastikan semua verteks dalam graf ditelusuri hanya sekali.
Urutan penelusuran verteks amat sangat penting dan urutan tersebut harus
dirancang berdasar pada algoritme atau persoalan yang ingin diselesaikan.
Dalam hal ini, penting bagi Anda untuk melacak verteks mana yang sudah
ditelusuri. dan cara paling mudah untuk melacaknya adalah dengan menandai
verteks.

Program
Penjelasan

Jumlah Vertecs

Pointer untuk aray yang tertampung dalam daftar node yang ber adjacent
Konstruktor

Edge dari vertecs v ke w

Sequence perjalanan BFS dimulai dari s sebagai node awal

Menambahkan w ke daftar v

Diawali bahwa tidak ada vertice yang di kunjungi

Antrian untuk menahan Sequence Perjalanan BFS

Menandai node sekarang sebagai visited (telah dikunjungi) dan di enqueue

Iterator ‘i’ / menghitung untuk mendapatkan semua vertecs yang beradjacent

Mendapatkan semua vertecs yang ber adjacent dan diproses satu persatu jika belum dikunjungi
Program utama

Membuat graph
DEPTH FIRST SEARCH (DFS)

Tidak seperti BFS dimana menjelajahi node secara luas, algoritma DFS
menjelajahi node secara mendalam. DFS menggunakan struktur data stack
(tumpukan) untuk menyimpan node yang sedang dijelajahi. Edge yang
mengarahkan kita ke node yang belum dijelajahi disebut ' discovery edges'
sedangkan edge yang mengarah ke node yang sudah dikunjungi disebut ' block
edges'.

CARA KERJA ALGORITMA BFS


1. Masukkan node akar atau node awal dari graph pada stack.
2. Keluarkan item teratas dari stack dan tambahkan ke daftar visited list.
3. Temukan semua node yang berdekatan dari node yang ditandai dikunjungi
dan tambahkan yang belum dikunjungi, ke stack.
4. Ulangi langkah 2 dan 3 sampai stack kosong.
Program

Anda mungkin juga menyukai