Anda di halaman 1dari 6

DEPTH FIRST SEARCH

Algoritma Depth First Search merupakan algoritma pencarian yang mendalam yang diawali dengan
node awal kemudian dilanjutkan dengan hanya melakukan kunjungan pada node anak yang paling kiri
di tingkat selanjutnya.
Depth First Search merupakan algoritma rekursif yang dimanfaatkan dalam menemukan semua
simpul graf maupun tree. Traversal itu sendiri artinya mengunjungi node yang berasal dari sebuah graf
secara keseluruhan.
Depth First Search atau yang disingkat dengan DFS dipelajari pertama kali mulai dari abad ke – 19
oleh seorang matematikawan asal Prancis bernama Prancis Charles Pierre Tremaux yang merupakan
strategi memecahkan suatu labirin.

DFS menjadi salah satu algoritma yang digunakan secara umum untuk melintasi dan mencari
sebuah struktur data graph maupun tree dengan teknik backtracking. Tree itu sendiri merupakan graph
yang terhubung dan tidak ada sirkuit di dalamnya.
Jika sudah menemukan sebuah solusi, tidak perlu lagi proses backtracking atau penelusuran balik
dalam menemukan jalur sesuai dengan yang diharapkan.

Cara Kerja DFS

1. Memulai dari simpul awal : DFS dimulai dari simpul awal tertentu dalam graf. Simpul ini
ditandai sebagai "dikunjungi".
2. Pengecekan tetangga yang belum dikunjungi : Setelah memilih simpul awal, algoritma akan
memeriksa semua tetangga dari simpul tersebut yang belum dikunjungi.
3. Penandaan dan pengulangan : Saat menemukan tetangga yang belum dikunjungi, algoritma
akan menandai tetangga tersebut sebagai "dikunjungi" dan mengulangi proses langkah 2 dari
simpul baru tersebut.
4. Backtracking : Jika tidak ada lagi tetangga yang belum dikunjungi dari simpul saat ini,
algoritma akan kembali ke simpul sebelumnya (proses yang disebut backtracking) dan
mencoba mengeksplorasi tetangga yang belum dikunjungi dari simpul sebelumnya.
5. Penyelesaian : Algoritma akan terus menjelajahi graf menggunakan proses di atas sampai
tidak ada lagi simpul yang dapat dikunjungi.

Kelebihan Depth First Search

 DFS bisa menemukan sebuah solusi tanpa harus memeriksa berbagai ruang pencarian sama
sekali. Hal tersebut sangat menguntungkan terutama ketika banyak solusi yang diterima, DFS
akan menghentikan tepat pada salah satu solusi yang sesuai.
 DFS lebih efisien dan efektif dibanding algoritma lainnya karena ruang pencariannya
memiliki banyak cabang, oleh karena itu tidak diperlukan eksekusi terhadap semua simpul
yang terdapat di level tertentu yang ada pada daftar open.
 DFS hanya membutuhkan memori yang relatif kecil. Hal tersebut dikarenakan node yang ada
pada lintasan yang aktif saja yang akan disimpannya.

Kekurangan Depth First Search

 Tidak memungkinkan ditemukan sebuah tujuan yang sesuai dengan harapan. Melainkan,
hanya akan ada satu solusi pada masing – masing pencarian.
 Adanya peluang tidak ditemukannya sebuah solusi yang optimal yang diperlukan.
 Memungkinkan terjebak pada sebuah jalur pencarian yang tidak diperlukan atau tidak
berguna.

Contoh Depth First Search

Berikut contoh DFS jika dimasukkan dalam studi kasus pencarian jarak terdekat Arad – Bucharest
dan berikut Peta Rumania.

Untuk menyelesaikan kasus yang seperti ini, diperlukan gambaran peta graph yang lebih sederhana.
Kita dapat mengubah Peta Rumania menjadi bentuk peta graph sederhana seperti pada berikut ini.

 Penyelesaian

Algoritma DFS merupakan algoritma pencarian yang memulai dari nodel yang paling awal kemudian
menuju node anak yang paling kiri di tingkatan selanjutnya. Berdasarkan gambar si bawah ini, kita
bisa menggambarkan Tree saat menyelesaikan sebuah kasus menggunakan algoritma DFS.
Pada tree ini, tidak semua kota ditulis, misalnya kota yang terhubung dari node S dan T dengan
lengkap. Oleh karena itu, target B akan menemukan anak paling kiri yang mana pencarian akan
berhenti. Dengan begitu, pohon yang ditengah dan yang kanan tidak akan dilewatinya.
Demikian gambaran dari penyelesaian pencarian kota B dengan menggunakan algoritma Depth First
Search.

 Implementasi
 Penjelasan

Proses pencarian rute dengan menggunakan algoritma ini akan mengerjakan pencarian secara
mendalam yang dimulai dengan node yang paling awal. Kemudian akan berlanjut dengan menelusuri
node anak yang paling kiri di tingkat selanjutnya.
Pada pohon yang sebelumnya, targetnya berada pada anak terdalam yang paling kiri. Dengan itu,
berhasil mendapatkan rute sesuai dengan algoritma DFS yakni A Z O S F R.

 Kesimpulan
Pada studi kasus yang dijelaskan ini, algoritma DFS kurang efisien dengan path – cost 607 KM.
Meskipun demikian, pada kasus yang lain, ada kemungkinan bahwa algoritma Depth First Search bisa
jadi lebih efisien, tergantung kasusnya masing – masing.

DAFTAR PUSTAKA

Bang-Jensen, J., & Gutin, G. (2008). "Digraphs: Theory, Algorithms and Applications."
Springer.

Weiss, M. A. (2013). "Data Structures and Algorithm Analysis in C++." Pearson.

dosenit.com/kuliah-it/depth-first-search
medium.com/@defytamara2610/dfs-depth-first-search-pengertian-kekurangan-kelebihan-dan-
contohnya-2b9b1eee2b3d

Anda mungkin juga menyukai