Anda di halaman 1dari 9

BACKTRACKING

PERNGERTIAN
BACKTRACKING
PENGERTIAN
BACKTRACKING
Backtracking adalah algoritma yang
Back : Kembali
berbasis pada Depth First Search
Track : Jalur (DFS) untuk mencari solusi persoalan
Tracking : Mengikuti Jalur lebih cepat dan runut balik yang
merupakan perbaikan dari algoritma
Backtracking : Runut-balik
bruteforce.
ALGORITMA
BACKTRACKING
1 2 3 4
Membentuk lintasan dari Jika lintasan yang diperluas Jika pembentukan lintasan Bila tidak ada lagi simpul
akar ke daun (mengikuti
yang sedang dibentuk tidak berakhir dengan simpul mati, anak yang dibangkitkan,
metode DFS).
mengarah ke solusi, maka maka proses pencarian maka pencarian solusi
- Simpul-simpul yang sudah simpul-E tersebut “dibunuh” diteruskan dengan dilanjutkan dengan
dilahirkan dinamakan
sehingga menjadi simpul membangkitkan simpul anak melakukan runut-balik
simpul hidup (live node).
mati (dead node). Simpul lainnya. (backtracking) ke simpul
- Simpul hidup yang sedang yang sudah mati ini tidak hidup terdekat. Selanjutnya
diperluas dinamakan akan diperluas lagi. simpul ini menjadi simpul
simpul-E (expand node).
yang terbaru.
CONTOH ALGORTITMA BACKTRACKING
1. Pada Gambar diatas simpul akar adalah A dan simpul tujuan adalah G.

2. Pencarian dimulai dari memeriksa simpul anak dari simpul A yaitu adalah

simpul B dan C.

3. Lalu simpul B dipilih karena menuju pada simpul tujuan.

4. Lalu diperiksa simpul anak dari simpul B yaitu D dan E.

5. Simpul D lalu dipilih Karena mengarah pada simpul tujuan.

6. Lalu diperiksa simpul anak dari D yaitu F dan G.

7. Lalu simpul F diperiksa, karena simpul F adalah simpul daun maka

diperiksa apakah simpul F merupakan tujuan dan karena F bukan tujuan

maka pencarian dilakukan dengan backtrack ke simpul D lalu memilih

simpul anak lain dari simpul D.

8. Simpul G lalu dipilih dan diperiksa apakah simpul G merupakan tujuan,

karena simpul G merupakan simpul tujuan pencarian selesai.


KELEBIHAN KEKURANGAN

• Kerelevanannya untuk diterapkan • Hanya bisa diaplikasikan terbatas pada


dalam kehidupan sehari-hari tipe permasalahan yang memiliki solusi
dibandingkan dengan algoritma runut- yang dapat dicari secara sistematis dan
balik (bruteforce). bertahap. Terdapat masalah-masalah
yang tidak bisa diselesaikan dengan
• Dapat bekerja jauh lebih cepat dari menggunakan backtracking, misalnya
brute force karena jumlah kandidat menemukan suatu nilai yang diminta
solusi yang dapat dibuang dengan pada tabel yang tidak terurut.
backtracking cukup besar.
CONTOH PENERAPAN DALAM JAVA
CONTOH PENERAPAN DALAM JAVA
SEKIAN
&
TERIMAKASIH
CREDITS: This presentation template was created by Slidesgo, including icons
by Flaticon, and infographics & images by Freepik

Anda mungkin juga menyukai