Anda di halaman 1dari 4

BREADTH FIRST SEARCH (BFS)

KECERDASAN ARTIFISIAL INTELEGEN UNTUK SAINS DATA

Dosen pengampu : Galih Hermawan S.kom, M.T.

Disusun oleh:
Refansya Dzaky F – 10121128

FAKULTAS TEKNIK DAN ILMU KOMPUTER


PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS KOMPUTER INDONESIA
2023
ALGORITMA BREADTH FIRST SEARCH (BFS)

Breadth First Search (BFS) adalah algoritma yang digunakan untuk membuat grafik data
dan mencari atau melintasi struktur tree/graph. Algoritma ini secara efisien mengunjungi dan
menandai semua node kunci dalam graph dengan cara yang akurat.

Cara kerja Breadth First Search (BFS) Queue adalah struktur data abstrak yang mengikuti
prinsip First-In-First-Out (FIFO) yang mana data yang dimasukkan terlebih dahulu akan diakses
lebih dulu. Struktur data ini terbuka di kedua ujungnya, di mana satu ujung selalu digunakan
untuk memasukkan data (enqueue) dan ujung lainnya digunakan untuk menghapus data
(dequeue).
Langkah-langkah:
1. Pada baris pertama, kita mengimpor deque dari modul collections. deque adalah struktur data
antrian yang akan digunakan untuk mengimplementasikan antrian dalam BFS.
2. Fungsi bfs(graph, start) didefinisikan untuk menjalankan algoritma BFS. Fungsi ini
mengambil dua parameter, yaitu graph yang mewakili graf dalam bentuk daftar keberlanjutan
(adjacency list), dan start yang merupakan simpul awal untuk memulai pencarian BFS.
3. Di dalam fungsi bfs, kita membuat dua variabel. Variabel visited adalah himpunan (set) yang
akan menyimpan simpul-simpul yang sudah dikunjungi. Variabel queue adalah antrian
(deque) yang awalnya berisi simpul awal.
4. Kita memulai loop while yang akan berjalan selama antrian tidak kosong. Pada setiap iterasi,
kita mengambil simpul pertama dari antrian menggunakan metode popleft() dari deque.
5. Selanjutnya, simpul yang diambil tersebut dicetak (atau dapat diganti dengan operasi apa pun
yang diinginkan pada simpul tersebut).
6. Kemudian, kita periksa apakah simpul tersebut belum dikunjungi. Jika simpul tersebut belum
dikunjungi, kita menambahkannya ke dalam himpunan visited dan memperluas antrian
dengan simpul-simpul tetangga yang belum dikunjungi. Operasi extend() digunakan untuk
menambahkan elemen-elemen baru ke antrian.
7. Setelah loop while selesai, pencarian BFS selesai dan semua simpul telah dikunjungi.
8. Pada contoh penggunaan di akhir kode, kita mendefinisikan graf sebagai adjacency list dalam
variabel graph. Setiap simpul pada graf direpresentasikan sebagai kunci dalam kamus
(dictionary), dan nilai setiap kunci adalah himpunan (set) simpul-simpul tetangga.
9. Terakhir, kita memanggil fungsi bfs(graph, 'A') untuk memulai pencarian BFS dari simpul 'A'.
Anda dapat mengganti simpul awal dengan simpul mana pun yang diinginkan sesuai dengan
struktur graf yang diberikan.

Kelebihan Breadth First Search (BFS) adalah adalah tidak akan menemui jalan buntu dan
jika ada satu solusi maka Breadth First Search akan menemukannya, dan jika ada lebih dari satu
solusi minimum akan ditemukan.

Kekurangan Bread First Search (BFS) adalah kendala memori karena algoritma BFS
menyimpan semua node dari level saat ini untuk melanjutkan ke level berikutnya.

SOURCE CODE
BREADTH FIRST SEARCH (BFS)

from collections import deque


def bfs(graph, start):
visited = set()
queue = deque([start])
while queue:
vertex = queue.popleft()
print(vertex)
if vertex not in visited:
visited.add(vertex)
queue.extend(graph[vertex] - visited)

graph = {
'A': {'B', 'C'},
'B': {'A', 'D', 'E'},
'C': {'A', 'F'},
'D': {'B'},
'E': {'B', 'F'},
'F': {'C', 'E'}
}

# Start BFS from vertex 'A'


bfs(graph, 'A')

Anda mungkin juga menyukai