Saat ini sudah banyak algoritma yang bisa
digunakan untuk menemukan pencarian rute terpendek, dan tidak bisa di pungkiri
Djikstra masih menjadi salah satu yang populer dari sekian banyak algoritma tersebut.
Algortima ini ditemukan oleh Edsger W.
Dikstra dan di publikasi pada tahun 1959 pada sebuah jurnal Numerische
Mathematik yang berjudul “A Note on Two Problems in Connexion with Graphs“[1].
Algoritma ini sering digambarkan sebagai algoritma greedy (tamak). Sebagai
contoh, ada pada buku Algorithmics (Brassard and Bratley [1988, pp. 87-92])
Algoritma Dijkstra,
(dinamai menurut penemunya, seorang ilmuwan komputer, Edsger Dijkstra), adalah
sebuah algoritma rakus (greedy algorithm) yang dipakai dalam memecahkan
permasalahan jarak terpendek (shortest path problem) untuk sebuah graf berarah
(directed graph) dengan bobot-bobot sisi (edge weights) yang bernilai
tak-negatif. Misalnya, bila vertices dari sebuah graf melambangkan kota-kota
dan bobot sisi (edge weights) melambangkan jarak antara kota-kota tersebut,
maka algoritma Dijkstra dapat digunakan untuk menemukan jarak terpendek antara
dua kota.
Djikstra merupakan salah satu varian
bentuk algoritma popular dalam pemecahan persoalan terkait masalah optimasi
pencarian lintasan terpendek sebuah
lintasan yang mempunyai panjang minimum dari verteks a ke z dalam graph
berbobot, bobot tersebut adalah bilangan positif jadi tidak dapat dilalui oleh
node negatif. Namun jika terjadi demikian, maka penyelesaian yang diberikan
adalah infiniti (Tak Hingga). Pada algoritma Dijkstra, node digunakan karena
algoritma Dijkstra menggunakan graph berarah untuk penentuan rute listasan
terpendek. Berikut Pseudo Code dan Flowchart Algoritma Djikstra:
Tujuan
Algoritma Dijkstra
Algoritma ini bertujuan untuk menemukan jalur
terpendek berdasarkan bobot terkecil dari satu titik ke titk lainnya. Misalnya
titik mengambarkan gedung dan garis menggambarkan jalan, maka algoritma
Dijkstra melakukan kalkulasi terhadap semua kemungkinan bobot terkecil dari
setiap titik. Kelemahan algoritma ini adalah semakin banyak titik akan semakin
memakan waktu proses. Jumlah titik menentukan tingkat efektifitas dari
algoritma djikstra.
Urutan
Logika Algoritma Dijkstra:
1. Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya,
lalu set nilai 0 pada node awal dan nilai tak hingga terhadap node lain (yang
belum terisi).
2. Set semua node “Belum terjamah” dan set node awal sebagai “Node
keberangkatan”.
3. Dari node keberangkatan, pertimbangkan node tetangga yang belum
terjamah dan hitung jaraknya dari titik keberangkatan.
4. Setelah selesai mempertimbangkan setiap jarak terhadap node
tetangga, tandai node yang telah terjamah sebagai “Node terjamah”. Node
terjamah tidak akan pernah di cek kembali, jarak yang disimpan adalah jarak
terakhir dan yang paling minimal bobotnya.
5. Set “Node belum terjamah” dengan jarak terkecil (dari node
keberangkatan) sebagai “Node Keberangkatan” selanjutnya dan lanjutkan dengan
kembali ke step 3.
Contoh :
Titik mengambarkan lokasi dan garis
menggambarkan jalan, maka algoritma Dijkstra melakukan kalkulasi terhadap semua
kemungkinan bobot terkecil dari setiap titik. Pertama tentukan titik yang akan
menjadi nomor kode (node) awal, lalu beri bobot jarak pada node pertama ke node
terdekat satu per satu, lalu akan dilakukan pengembangan pencarian dari satu
titik ke titik selanjutnya (tahap demi tahap).
- Node awal 1, Node tujuan 5. Setiap edge yang terhubung antar node telah diberi nilai.
- Dijkstra melakukan kalkulasi terhadap node tetangga yang terhubung langsung dengan node keberangkatan (node 1), dan hasil yang didapat adalah node 2 karena bobot nilai node 2 paling kecil dibandingkan nilai pada node lain, nilai = 7 (0+7).
- Node 2 diset menjadi node keberangkatan dan ditandai sebagi node yang telah terdatangi. Dijkstra melakukan kalkulasi kembali terhadap node-node tetangga yang terhubung langsung dengan node yang telah terdatangi. Dan kalkulasi dijkstra menunjukan bahwa node 3 yang menjadi node keberangkatan selanjutnya karena bobotnya yang paling kecil dari hasil kalkulasi terakhir, nilai 9 (0+9).
- Perhitungan berlanjut dengan node 3 ditandai menjadi node yang telah terjamah. Dari semua node tetangga belum terjamah yang terhubung langsung dengan node terjamah, node selanjutnya yang ditandai menjadi node terjamah adalah node 6 karena nilai bobot yang terkecil, nilai 11 (9+2).
- Node 6 menjadi node terjamah, dijkstra melakukan kalkulasi kembali, dan menemukan bahwa node 5 (node tujuan ) telah tercapai lewat node 6. Jalur terpendeknya adalah 1-3-6-5, dan niilai bobot yang didapat adalah 20 (11+9). Bila node tujuan telah tercapai maka kalkulasi dijkstra dinyatakan selesai.
Semoga Bermanfaat !
Daftar Pustaka
· https://wirasetiawan29.wordpress.com/2015/04/02/tentang-algoritma-dijkstra/
· http://technologies-it.blogspot.co.id/2014/06/pengertian-dan-teori-algoritma-dijkstra.html
Expert picks monday night football rb88 rb88 クイーンカジノ クイーンカジノ 메리트카지노 메리트카지노 1823bet365 Review - Get a €1000 Bonus - BitcoinCasino.in
BalasHapus