Cara Kerja Algoritma Dijkstra
Halaman ini akan memvisualisasikan bagaimana Algoritma Dijkstra mencari rute terpendek. Pilih titik awal dan tujuan, lalu klik "Mulai Visualisasi" untuk melihat prosesnya.
Detail Iterasi Algoritma
Lihat bagaimana algoritma memproses setiap node untuk menemukan jalur terpendek.
| Iterasi | Unvisited (Q) | Visited (S) | Current Node (U) | Node State (dist, prev, iter) | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| R1 | R10 | R11 | R12 | R13 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | T1 | T10 | T11 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | ||||
Penjelasan Algoritma Dijkstra
Algoritma Dijkstra adalah sebuah algoritma yang digunakan untuk jalur terpendek antara dua titik (disebut juga "node" atau "vertex") dalam sebuah graf (jaringan). Algoritma ini bekerja pada graf yang memiliki bobot (jarak, biaya, waktu) pada setiap jalur (disebut juga "edge") dan tidak memiliki bobot negatif.
Bagaimana Cara Kerjanya?
Secara sederhana, Dijkstra bekerja seperti ini:
- Inisialisasi: Algoritma dimulai dari titik awal (node sumber) yang Anda pilih. Jarak ke titik awal disetel menjadi nol, dan jarak ke semua titik lain disetel menjadi tak terhingga. Semua titik dianggap "belum dikunjungi".
-
Iterasi Berulang:
- Pada setiap langkah (iterasi), algoritma memilih titik "belum dikunjungi" yang memiliki jarak terpendek yang diketahui dari titik awal. Titik ini menjadi "titik saat ini" (Current Node).
- Titik saat ini kemudian ditandai sebagai "sudah dikunjungi".
- Algoritma kemudian memeriksa semua tetangga dari titik saat ini. Untuk setiap tetangga, ia menghitung jarak total dari titik awal melalui titik saat ini.
- Jika jarak baru ini lebih pendek daripada jarak yang sudah diketahui sebelumnya untuk tetangga tersebut, maka jarak tetangga diperbarui, dan titik saat ini dicatat sebagai "titik sebelumnya" (Predecessor) untuk tetangga tersebut.
- Pengulangan Hingga Tujuan Ditemukan: Langkah 2 diulang sampai titik tujuan Anda ditemukan, atau sampai semua titik yang dapat dijangkau dari titik awal sudah dikunjungi.
Dengan proses ini, algoritma Dijkstra secara bertahap "menyebar" dari titik awal, selalu menemukan jalur terpendek ke setiap titik yang dikunjunginya, hingga akhirnya mencapai tujuan dengan jalur terpendek secara keseluruhan.
Logika Fuzzy untuk Penentuan Rekomendasi
Selain menemukan rute terpendek menggunakan Algoritma Dijkstra, aplikasi ini juga menggunakan Logika Fuzzy untuk menentukan seberapa cocok sebuah toko direkomendasikan kepada pengguna. Logika Fuzzy memungkinkan aplikasi untuk "berpikir" seperti manusia dalam menghadapi informasi yang tidak pasti atau memiliki nilai parsial, seperti "jarak dekat", "rating bagus", atau "stok cukup".
Daripada menggunakan logika biner (ya/tidak, 0/1), Logika Fuzzy mengubah nilai-nilai input (seperti jarak dalam satuan langkah, rating toko, dan total stok barang) menjadi derajat keanggotaan dalam himpunan fuzzy. Misalnya:
- Jarak: Sebuah toko bisa jadi "sangat dekat", "dekat", "sedang", atau "jauh".
- Rating: Sebuah toko bisa memiliki rating "buruk", "biasa", "bagus", atau "sangat bagus".
- Stok: Ketersediaan barang bisa dinilai "kurang", "cukup", atau "banyak".
Setelah nilai-nilai input diubah menjadi derajat keanggotaan fuzzy, aplikasi menggunakan seperangkat aturan fuzzy (IF-THEN rules) untuk mengevaluasi kombinasi dari faktor-faktor ini. Contoh aturan:
- JIKA jarak dekat DAN rating bagus DAN stok banyak, MAKA rekomendasi sangat tinggi.
- JIKA jarak jauh ATAU stok kurang, MAKA rekomendasi rendah.
Hasil dari evaluasi aturan-aturan ini kemudian digabungkan (proses "defuzzifikasi") untuk menghasilkan sebuah skor rekomendasi akhir yang mencerminkan tingkat kecocokan toko secara keseluruhan. Skor inilah yang digunakan untuk mengurutkan dan menampilkan toko-toko terbaik kepada Anda.
Dengan Logika Fuzzy, aplikasi dapat memberikan rekomendasi yang lebih nuansa dan fleksibel, mempertimbangkan berbagai faktor secara bersamaan untuk membantu Anda menemukan toko yang paling sesuai dengan kebutuhan Anda.