Anda di halaman 1dari 6

Breadth Search First (BFS) 

/ Depth Search First (DFS) 

DISUSUN OLEH :
1. SANDRO WILLY
NPM : 20110031
2. RAHMAD
NPM : 20110061
3. M.PRAYOGI
NPM : 20110087
4. M.RIZKY
NPM : 20110037
Pengertian

Breadth Search First (BFS) 


Breadth First Search adalah suatu metode yang melakukan pencarian secara
melebar yang mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul
kemudian mengunjungi semua simpul yang bertetangga dengan simpul tersebut
dahulu. Selanjutnya, simpul yang belum dikunjungi dan bertetangga dengan
simpul-simpul yang tadi dikunjungi, demikian seterusnya. Jika graf berbentuk
pohon graf berakar, maka semua simpul pada aras d dikunjungi lebih dahulu
sebelum simpul-simpul pada aras d+1.

Depth Search First (DFS) 


Algoritma Depth First Search (DFS) adalah suatu metode pencarian pada sebuah
pohon dengan menelusuri satu cabang sebuah pohon sampai menemukan solusi.
Pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri dan
dilanjutkan pada node sebelah kanan. Jika solusi ditemukan maka tidak diperlukan
proses backtracking yaitu penelusuran balik untuk mendapatkan jalur yang
diinginkan. Pada metode DFS pemakaian memori tidak banyak karena hanya node-
node pada lintasan yang akktif saja yang disimpan. Selain itu, jika solusi yang
dicari berada pada level yang dalam dan paling kiri, maka DFS akan
menemukannya secara cepat.
Berikut ini adalah 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.

Berikut ini adalah algoritma DFS :


1. Masukkan Initial State pada Tumpukan.
2. Periksa apakah ada data di tumpukan.
3. Jika tidak, maka solusi tidak ditemukan, dan proses berhenti.
4. Jika ya, Ambil state pada tumpukan paling atas.
5. Bandingkan State tersebut apakah sama dengan Goal State
Jika sama, maka solusi ditemukan dan proses berakhir.
6. Jika tidak, ekspansikan state tersebut.
7. Masukkan seluruh state hasil ekspansi ke dalam tumpukan.
8. Kembali ke langkah 2.
CONTOH
➝Pada suatu hari ada seorang petani yang mempunyai seekor kambing dan
srigala.Pada saat itu ia baru saja panen sayuran. Karena membutuhkan uang,
petani tersebut hendak menjual kambing, serigala, dan sayurannya ke pasar Johar.
Untuk sampai di pasar Johar, ia harus menyeberangi sebuah sungai.
➝Permasalahannya adalah di sungai itu hanya tersedia satu perahu saja yang bisa
memuat petani dan satu penumpang lainnya (kambing, srigala, atau sayuran).
Jika ditinggalkan oleh petani tersebut, maka sayuran akan dimakan oleh kambing
dan kambing akan dimakan oleh serigala.
DESKRIPSI:
P = Petani
Sy = Sayuran
K = Kambing
Sg = Serigala

RUANG KEADAAN
Untuk daerah asal dan daerah seberang digambarkan = (P, Sy, K, Sg)
KEADAAN AWAL
Daerah Asal = (P, Sy, K, Sg)
Daerah seberang = (0, 0, 0, 0)
TUJUAN
Daerah Asal = (0, 0, 0, 0)
Daerah seberang = (P, Sy, K, Sg)
Metode Penyelesaian dengan BFS (Breadth First Search)

Metode Penyelesaian Dengan DFS (Depth First Search)


Keterangan :

Pada Gambar 4.2 terlihat bahwa, pada keadaan awal, lintasan terpilih adalah ABCD (=19).
Pada level pertama, hill climbing akan mengunjungi BACD (=17), BACD memiliki nilai
heuristic lebih kecil dibandingkan dengan ABCD (17<19), sehingga BACD menjadi pilihan
selanjutnya dengan operator tukar 1,2.
Pada level kedua, hill climbing akan mengunjungi ABCD. Karena operator tukar 1,2 sudah
digunakan oleh BACD, maka dipilih metode yang lain yaitu BCAD (=15). Karena nilai
heuristic BCAD lebih kecil disbanding dengan BACD (15<17), maka node BCAD akan
menjadi pilihan selanjutnya dengan operator tukar 2,3.
Kemudian hill climbing akan mengunjungi CBAD ( =20). Karena nilai heuristic CBAD lebih
besar jika dbandingkan dengan dengan BCAD (20>17). Maka dipilih nide lain.
Pencarian menuju ke node BACD, karena operator tukar 2,3 sudah pernah digunakan oleh
BCAD, maka dipilih node lain.
Kunjungan berikutnya ke node BCAD (=18) . Nilai ini pun masih lebih besar dari nilai
heuristic BCAD sehingga dipilih node lain.
Node yang dikunjungi berikutnya adalah DCAB (=19). Nilai heuristic DCAB ternyata juga
lebih besar disbanding dengan BCAD, sehingga pencarian dilanjutkan di node lainnya yaitu
BDAC (=14). Nilai heuristic ini sudah lebih kecil daripada nilai heuristic node BCAD
(14<15), maka sekarang node ini yang akan di eksplorasi.
Pencarian pertama ditemukan node DBAC (=21), yang lebih besar daripada nilai BDAC.
Nilai heuristic yang lebih kecil diperoleh pada node BDCA (=13). Sehingga node BDCA ini
akan dieksplorasi.
Pencarian pertama sudah mendapatkan node dengan niali heuristic yang lebih kecil, yaitu
DBCA (=12) inilah lintasan terpendek yang kita cari (Solusi).

Anda mungkin juga menyukai