Anda di halaman 1dari 14

LAPORAN

Algoritma Breadth-First Search (BFS)


Disusun untuk Memenuhi Salah Satu Tugas Mata Kuliah Kecerdasan Buatan

Oleh :

1. Dicky Totti Juniferdyaz (2003010019)

2. Muhammad Saepul Anwar (2003010023)

3. Febi Nurmaya Darmawan (2003010028)

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS PERJUANGAN

TASIKMALAYA

2022
DAFTAR ISI

DAFTAR ISI.......................................................................................................... i
BAB I PENDAHULUAN......................................................................................1
A. Latar Belakang..........................................................................................1
B. Rumusan Masalah.....................................................................................2
C. Tujuan.......................................................................................................2
BAB II LANDASAN TEORI..................................................................................3
A. Pembahasan Metode.................................................................................3
B. Pembahasan Problem................................................................................7
BAB III ANALISIS DAN IMPLEMENTASI..........................................................8
BAB IV PENUTUP..............................................................................................11
A. Simpulan.................................................................................................11
B. Saran.......................................................................................................11
DAFTAR PUSTAKA...........................................................................................12
BAB I
PENDAHULUAN
A. Latar Belakang

Dalam matematika dan ilmu komputer , sebuah algoritma pencarian dijelaskan secara
luas adalah sebuah algoritma yang menerima masukan berupa sebuah masalah dan
menghasilkan sebuah solusi untuk masalah tersebut, yang biasanya didapat dari evaluasi
beberapa kemungkinan solusi. Sebagian besar algoritma yang dipelajari oleh ilmuwan
komputer adalah algoritma pencarian. Algoritma adalah prosedur langkah-demi-langkah
untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan
penalaran otomatis. Algoritma adalah metode efektif diekspresikan sebagai rangkaian
terbatas dari instruksi-instruksi yang telah didefinisikan dengan baik untuk menghitung
sebuah fungsi. Dimulai dari sebuah kondisi awal dan input awal (mungkin kosong), instruksi-
instruksi tersebut menjelaskan sebuah komputasi yang, bila dieksekusi, diproses lewat
sejumlah urutan kondisi terbatas yang terdefinisi dengan baik, yang pada akhirnya
menghasilkan "keluaran" dan berhenti di kondisi akhir. Membicarakan algoritma dalam ilmu
komputer, kecerdasan buatan juga merupakan bidang ilmu komputer yang dikhususkan untuk
memecahkan masalah kognitif yang umumnya terkait dengan kecerdasan manusia, seperti
pembelajaran, pemecahan masalah, dan pengenalan pola.

Kecerdasan buatan (AI ) Pada dasarnya adalah suatu pengetahuan yang membuat
komputer dapat meniru kecerdasan manusia sehingga komputer dapat melakukan hal-hal
yang dikerjakan manusia dimana membutuhkan suatu kecerdasan misalkan melakukan
analisa penalaran untuk mengambil suatu kesimpulan atau keputusan atau penerjemahan dari
satu bahasa ke bahasa lain. Di dalam kecerdasan buatan itu sendiri harus mengenali algoritma
pencarian (searching). Searching di dalam AI (Artificial Intelligence) adalah salah satu
metode penyelesaian masalah dengan pencarian solusi pada suatu permasalahan yang
dihadapi. Dalam teknik searching terbagi 2 yaitu DFS dan BFS. Algoritma Depth First
Search (DFS) adalah suatu metode pencarian pada sebuah pohon dengan menelusuri satu
cabang sebuah pohon sampai menemukan solusi. Sedangkan Algoritma Breadth-First Search
(BFS) 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. Dari pengertiannya pun sudah terlihat
jelas perbedaannya.

1
B. Rumusan Masalah

Berdasarkan latar belakang di atas, penulis merumuskan rumusan masalah yaitu:

1. Apa yang dimaksud dengan AI dan metode pengerjaannya?

2. Apa yang dimaksud dengan DFS dan BFS?

3. Bagaimana cara kerja dan penerapan BFS?

4. Bagaimana perbedaan antara DFS dan BFS ?

C. Tujuan

Sejalan dengan rumusan masalah di atas, makalah ini disusun dengan tujuan untuk
mengetahui dan mendeskripsikan :

1. Untuk mengetahui pengertian AI

2. Untuk mengetahui metode DFS dan BFS

3. Untuk mengetahui cara kerja dan penerapan BFS

4. Untuk mengetahui perbedaan DFS dan BFS

5. Memaparkan kasus Arad-Bucharest dan mengimplementasikannya dengan metode BFS

2
BAB II
LANDASAN TEORI
A. Pembahasan Metode

Kecerdasan buatan (AI) Pada dasarnya adalah suatu pengetahuan yang membuat
komputer dapat meniru kecerdasan manusia sehingga komputer dapat melakukan hal-hal
yang dikerjakan manusia dimana membutuhkan suatu kecerdasan; misalkan melakukan
analisa penalaran untuk mengambil suatu kesimpulan atau keputusan atau penerjemahan dari
satu bahasa ke bahasa lain. Searching di dalam AI (Artificial Intelligence) adalah sebuah
metode pencarian guna menemukan data / informasi yang sedang dicari di dalam sebuah
kumpulan data yang memiliki type data sama. Pencarian diperlukan untuk mendapatkan
informasi/data dari kumpulan data yang belum diketahui.pada metode ini terdapat 2 buah
Teknik pencarian, yaitu :

1. Depth First Search (DFS)

Depth First Search (DFS) adalah salah satu algoritma penelusuran struktur graf atau
pohon berdasarkan kedalaman. Simpul ditelusuri dari root kemudian ke salah satu simpul
anaknya ( misal nya prioritas penelusuran berdasarkan anak pertama [simpul sebelah kiri] ),
maka penelusuran dilakukan terus melalui simpul anak pertama dari simpul anak pertama
level sebelumnya hingga mencapai level terdalam. Setelah sampai di level terdalam,
penelusuran akan kembali ke 1 level sebelumnya untuk menelusuri simpul anak kedua pada
pohon biner [simpul sebelah kanan] lalu kembali ke langkah sebelumnya dengan menelusuri
simpul anak pertama lagi sampai level terdalam dan seterusnya. Setelah sampai di level
terdalam, penelusuran akan kembali ke 1 level sebelumnya untuk menelusuri simpul anak
kedua pada pohon biner [simpul sebelah kanan] lalu kembali ke langkah sebelumnya dengan
menelusuri simpul anak pertama lagi sampai level terdalam dan seterusnya.

Contoh pohon biner depth first search :

3
Maka, urutan penelusurannya adalah : A – B – D – H – E – I – C – F – G – J – K – L
Dalam implementasinya DFS dapat diselesaikan dengan cara rekursif atau dengan bantuan
struktur data stack. Kita akan membahas dengan cara yang menggunakan stack. Stack yang
digunakan adalah stack yang isi elemennya adalah simpul pohon / tree. Bagaimana cara
kerjanya ? Berikut ini adalah urutan algoritmanya :

• Masukkan simpul root ke dalam tumpukan dengan push.

• Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan teratas.

• Hapus isi stack teratas dengan prosedur pop.

• Periksa apakah simpul pohon yang disimpan tadi memiliki anak simpul.

• Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack

2. Breadth-first search (BFS)

Breadth-first search (BFS) 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 simpul-simpul yang tadi
dikunjungi , demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul
pada arah d dikunjungi lebih dahulu sebelum simpul-simpul pada arah d+1. Algoritma ini
memerlukan sebuah antrian q untuk menyimpan simpul yang telah dikunjungi. Simpul-
simpul 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 telah
dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali. Breadth-first
search (BFS) melakukan proses searching pada semua node yang berada pada level atau
hirarki yang sama terlebih dahulu sebelum melanjutkan proses searching pada node di level

4
berikutnya. Urutan proses searching BFS ditunjukkan dalam Gambar adalah:
A,B,C,D,E,F, ...

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, untuk memperjelas cara kerja algoritma
BFS beserta antrian yang digunakannya, berikut langkah-langkah algoritma BFS:

• Masukkan simpul ujung (akar) ke dalam antrian.

• Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.

• Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan..

• Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul
tersebut (simpul anak) ke dalam antrian.

• Jika antrian kosong dan setiap simpul sudah dicek pencarian selesai dan mengembalikan
hasil solusi tidak ditemukan.

• Ulangi pencarian dari langkah kedua.

Contoh Metode Pencarian BFS (Breadth First Search)

Maka penyelesaiannya adalah:

Gambar (a) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1.

5
Gambar (b) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1

Gambar (c) BFS(1): 1, 2, 3, 4, 5, 6, 7, 8, 9

Contoh Penerapan BFS

Contoh 1:

Selesaikan water jug problem menggunakan BFS dengan aturan berikut :

x = 7 liter y = 5 liter

Initial state = [0,0]. Final state = [x,4] atau [4,y]

Maka penyelesaiannya adalah :

Contoh 2 :

Mencari jarak terdekat dari Arad ke Bucharest

6
Maka penyelesaiannya adalah :

Heuristik yang digunakan adalah jarak kota-kota terhadap kota Bucharest dengan asumsi kota
terhubung yang letaknya paling dekat dengan kota Bucharest adalah jalan yang paling
optimal.

Dengan metode Best First Search didapatkan kota-kota yang harus dilalui untuk mendapatkan
jalan yang paling dekat jaraknya dari Arad ke Bucharest adalah : Arad – Sibiu – Fagaras –
Bucharest. Dari peta di atas, panjang jalan yang dilalui adalah 140+99+211 = 450 km.

Perbedaan Depth First Search Dan Breadth First Search :

Perbedaan cara kerja pada DFS dan BFS adalah, DFS berprioritas pada kedalaman, memulai
dari simpul akar dan berjalan semakin dalam sampai simpul tujuan ditemukan, sedangkan
BFS, dimulai dari akar, akan lebih memilih untuk memeriksa semua tetangga dari simpul
tersebut, kemudian dicek satu-satu mulai dari simpul terdekatnya, seterusnya, sampai
menemukan tujuan. Berikut ini pada gambar 4.1 dapat dilihat perbedaan urutan langkah
masing-masing algoritma.

Untuk pohon pencarian , depth first search membutuhkan memori lebih sedikit. Namun,
depth first search dapat terjebak dalam penelusuran yang lama.

Depth first bagus ketika ada banyak kemungkinan solusi, dan kita hanya menginginkan satu
saja (tidak peduli yang mana itu). Breadth first search mungkin membutuhkan lebih banyak

7
memori, tapi tidak akan pernah terjebak, akan selalu menemukan lintasan terpendek yang
pertama. Algoritma DFS tidak optimal, sedangkan BFS optimal untuk graf tak berbobot.
Kedua algorima ini membentuk pohon merentang yang sangat berguna pada algoritma graf
yang lain.

B. Pembahasan Problem

Pada pembahasan problem ini yaitu membahas kasus pencarian rute tercepat pada peta
Romania atau dikenal sebagai Arad Bucharest menggunakan Metode Breadth First Seacrch
(BFS). Kasus Arad Bucharest adalah pencarian rute tercepat dengan Initial State Arad dan
Goal State Bucharest pada peta Romania menggunakan Metode BFS atau DFS. Kasus ini
dapat diselesaikan dengan menggunakan Binary Tree atau pohon biner. Sebuah pohon biner
(binary tree) adalah sebuah pohon struktur data dimana setiap simpul memiliki paling banyak
dua anak.

BAB III
ANALISIS DAN IMPLEMENTASI
Kasus pencarian jarak terdekat Arad-Bucharest menggunakan metode penyelesaian BFS.
Berikut ini adalah peta Romania dengan jarak jalan-jalan yang menghubungkan kota-kota
dalam km.

Adapun jarak kota-kota terhadap kota Bucharest jika ditarik garis lurus adalah sebagai
berikut:
Arad 366

8
Bucharest 0
Craiova 160
Dobreta 242
Eforie 161
Fagaras 178
Giurgiu 77
Hirsova 151
Iasi 226
Lugoj 244
Mehadia 241
Neamt 234
Oradea 380
Pitesti 98
Rimnicu Vilcea 193
Sibiu 253
Timisoara 329
Urziceni 80
Vaslui 199
Zerind 374

Permasalahannya adalah untuk mencari jalan terdekat dari kota Arad menuju kota Bucharest
dengan menggunakan metoda Best First Search.
Heuristik yang digunakan adalah jarak kota-kota terhadap kota Bucharest jika ditarik garis
lurus yang jaraknya seperti yang tertera di atas dengan asumsi kota terhubung yang letaknya
paling dekat dengan kota Bucharest adalah jalan yang paling optimal.

Diagram pohon langkah-langkah penelusuran dengan metode Best First Search adalah
sebagai berikut :

Langkah 1

Langkah 2

9
Langkah 3

Langkah 4

Dari Langkah-langkah di atas, dengan metode Best First Search didapatkan kota-kota yang
harus dilalui untuk mendapatkan jalan yang paling dekat jaraknya dari Arad ke Bucharest
adalah : Arad – Sibiu – Fagaras – Bucharest. Dari peta di atas, panjang jalan yang dilalui
adalah 140+99+211 = 450 km.

10
BAB IV
PENUTUP
A. Simpulan

Kecerdasan buatan adalah cabang ilmu komputer yang secara khusus ditujukan untuk
mengembangkan perangkat lunak dan perangkat keras yang dapat sepenuhnya meniru
beberapa fungsi otak manusia. Komputer dapat memproses data dalam jumlah besar secara
lebih efisien daripada manusia. Tetapi, seseorang secara naluriah dapat melakukan hal-hal
yang sulit diprogram di komputer, yaitu kemampuan untuk mengidentifikasi (mengenali)
hubungan antara hal-hal tersebut, mengevaluasi kualitas dan menemukan bagian yang
menjelaskan hubungan tersebut. Persamaan dan perbedaan antara konsep kecerdasan buatan
dan komputasi konvensional, dan simbol proses, yang dapat berupa huruf, kata, atau angka
yang digunakan untuk mendeskripsikan objek, proses, dan hubungannya. Objek dapat berupa
orang, objek, ide, pikiran, peristiwa atau fakta. Menggunakan komputer digital untuk
melakukan fungsi.

B. Saran

Dalam hal ini, ketika mempelajari kecerdasan buatan, kita perlu banyak mengetahui
teknik apa saja yang dapat digunakan untuk memecahkan suatu masalah yang kompleks.
Menjadi sangat detail dan memiliki aturan-aturan yang berlaku untuk pendekatan saat kita
berinteraksi dengan komputer.

11
DAFTAR PUSTAKA
[1] Entot Suhatono S.Kom. 2019 "Mengenal Teknologi Informasi"

[2] Kl¨ockner Kerstin. 2005 “Depth- and Breadth-First Processing of Search Result Lists: An Example
Paper in the SIGCHI Style”

12

Anda mungkin juga menyukai