Anda di halaman 1dari 9

BAB I

PENDAHULUAN

1.1 Latar Belakang


Dalam 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.
Himpunan semua kemungkinan solusi dari sebuah masalah disebut ruang
pencarian. Algortima pencarian brute-force atau pencarian naif/uninformed
menggunakan metode yang sederhana dan sangat intuitif pada ruang
pencarian, sedangkan algoritma pencarian informed menggunakan heuristik
untuk menerapkan pengetahuan tentang struktur dari ruang pencarian untuk
berusaha mengurangi banyaknya waktu yang dipakai dalam pencarian.
Adapun dalam metode pencarian blind atau buta digunakan karena memang
tidak ada informasi awal yang digunakan dalam proses pencarian. Algoritma
Pencarian ini menggunakan Metode BFS, DFS, dll.

1.2 Batasan Masalah


Makalah ini membahas tentang Algoritma Pencarian hanya pada
Metode Pemecahan Masalah yaitu Breadth-first Search (BFS), Depth-first
Search (DFS) dan Metode Pencarian Heuristik.

1.3 Tujuan
Tujuan dari Pembuatan Makalah ini, antara lain agar :
1. Mahasiswa mampu memahami apa itu DFS, BFS dan Heuristik
2. Mahasiswa mampu membedakan DFS, BFS dan Heuristik
BAB II
PEMBAHASAN

2.1. Breadth-First Search (BFS)


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 berikutnya.
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 pada ras 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.

2.2 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

2.3 Contoh BFS


Berikut ini adalah peta Sebagian daerah Indonesia dengan jarak jalan-jalan
yang menghubungkan kota-kota dalam km.

Adapun jarak kota-kota terhadap kota Bucharest jika ditarik garis lurus
(perkiraan atau h(n)) adalah sebagai berikut :

Kota Estimasi Awal ke


Tujuan

Kupang 2000

Soe 2110

Kefa 2200

Atambua 2230

Toraja 0

Malang 1800

Surabaya 1700
Makasar 500

Ambon 300

Nabire 2300

Permasalahannya adalah untuk mencari jalan terdekat dari kota Kupang


menuju kota Toraja dengan menggunakan metoda Best First Search dan A*.
Heuristik yang digunakan adalah jarak kota-kota terhadap kota Bucharest
jika ditarik garis lurus (perkiraan) 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

perkiraan jarak dari kupang ke toraja bila di tarik garis lurus


Langkah 2

Cabang atau pilihan jalan yang dapat di lalui dari kota kupang menuju toraja
Langkah 3
Memilih Cabang yang memiliki Estimasi jarak terdekat dengan kota
tujuan(toraja). Yaitu makasar, maka kita ambil lagi cabang atau pilihan jalan
yang dapat di lalui dari kota makasar.namun ternyata dari kota makasar
terdapa jalan yang langsung menuju ke toraja, Dari Langkah-langkah di
atas, dengan metode Best First Search didapatkan kota-kota yang harus
dilalui untuk mendapatkan jalan yang paling dekat jaraknya dari Kupang ke
Toraja adalah : Kupang – Makassar – Toraja. Dari peta diatas, panjang
jalan yang dilalui adalah 1300 + 245 = 1545 Km.

2.4 Depth-First search (DFS)


Depth-first search (DFS) adalah proses searching sistematis buta yang
melakukan ekpansi sebuah path (jalur) menuju penyelesaian masalah sebelum
melakukan ekplorasi terhadap path yang lain. Proses searching mengikuti
sebuah path tunggal sampai menemukan goal atau dead end. Apabila proses
searching menemukan dead-end, DFS akan melakukan penelusuran balik ke
node terakhir untuk melihat apakah node tersebut memiliki path cabang yang
belum dieksplorasi. Apabila cabang ditemukan, DFS akan melakukan cabang
tersebut. Apabila sudah tidak ada lagi cabang yang dapat dieksplorasi, DFS
akan kembali ke node parent dan melakukan proses searching terhadap
cabang yang belum dieksplorasi dari node parent sampai menemukan
penyelesaian masalah.
Pencarian dilakukan pada satu node dalam setiap level dari yang paling
kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka
pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus
dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka
pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai
ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses
backtracking (penelusuran balik untuk mendapatkan jalur yang dinginkan).

2.5 Kelebihan dan Kelemahan DFS


Kelebihan DFS adalah:
1. Pemakain memori hanya sedikit, berbeda jauh dengan BFS yang harus
menyimpan semua node yang pernah dibangkitkan.
2. Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka
DFS akan menemukannya secara cepat.

Kelemahan DFS adalah:


1. Jika pohon yang dibangkitkan mempunyai level yang dalam (tak
terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak
Complete).
2. Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang
berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang
paling baik (Tidak Optimal).

2.6 Cara Kerja DFS


Pencarian rute terpendek dilakukan dengan cara membuat simpul-
simpul yang menjadi titik awal, titik-titik yang akan dilalui dan juga titik
akhir sebagai akhir dari tujuan atau sebagai simpul yang dicari.
Dalam algoritma DFS, simpul yang telah dikunjungi disimpan dalam
suatu tumpukan (stack). Antrian ini digunakan untuk mengacu simpul-simpul
yang akan dikunjungi sesuai urutan tumpukan (masuk terakhir, keluar
pertama) dan mempermudah proses runut-balik jika simpul sudah tidak
mempunyai anak (simpul pada kedalaman maksimal).
Untuk memperjelas cara kerja algoritma DFS beserta tumpukan yang
digunakannya, berikut langkah-langkah algoritma DFS:
1. Masukkan simpul ujung (akar) ke dalam tumpukan
2. Ambil simpul dari tumpukan teratas, 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 tumpukan
5. Jika tumpukan kosong dan setiap simpul sudah dicek, pencarian selesai
dan mengembalikan hasil solusi tidak ditemukan
6. Ulangi pencarian dari langkah kedua

2.7 Contoh DFS

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 :

1. Masukkan simpul root ke dalam tumpukan dengan push.


2. Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan
teratas.
3. Hapus isi stack teratas dengan prosedur pop.
4. Periksa apakah simpul pohon yang disimpan tadi memiliki anak
simpul.
5. Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack.
6. Jika tumpukan kosong berhenti, tapi jika tidak kembali ke langkah
dua.

Jadi, untuk gambar pohon biner di atas urutan langkah dan kondisi stack-
nya setiap iterasi adalah :

Contoh diatas menggunakan prioritas untuk memasukkan anak simpul


dari sebelah kanan terlebih dahulu ke dalam stack. Sehingga, pada iterasi
2 elemen A dihapus lalu memasukkan anak simpulnya yaitu C dulu, baru
B ke dalam stack. Selain itu bisa dilihat stack teratas (yang diwarna biru)
pada tiap iterasi memiliki urutan A – B – D – H – E – I – C – F – G – J –
K – L. Oiya, pada iterasi ke 13 itu kondisi stack sudah kosong karena
ketika simpul J dibangkitkan tidak ada anak simpul yang dimasukkan ke
stack.
BAB III
PENUTUP

3.1. Kesimpulan
Dari pembahasan diatas dapat ditarik kesimpulan yaitu :
1. 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 berikutnya.
2. Depth-first search (DFS) adalah proses searching sistematis buta yang
melakukan ekpansi sebuah path (jalur) menuju penyelesaian masalah
sebelum melakukan ekplorasi terhadap path yang lain.
3. Heuristic search adalah suatu istilah yang berasal dari bahasa Yunani
yang berarti menemukan/menyingkap. Heuristik adalah suatu perbuatan
yang membantu kita menemukan jalan dalam pohon pelacakan yang
menuntut kita kepada suatu solusi masalah. Heuristik dapat diartikan juga
sebagai suatu kaidah yang merupakan metoda/prosedur yang didasarkan
kepada pengalaman dan praktek, syarat, trik atau bantuan lainnya yang
membantu mempersempit dan memfokuskan proses pelacakan kepada
suatu tujuan tertentu.

Anda mungkin juga menyukai