Algoritma Dijkstra Implementasi Algoritma Dijkstra Dalam Penentuan Rute Terpendek Berbasis Mobile GIS (Studi Kasus: Universitas Sumatera Utara)

2.2 Algoritma Dijkstra

Algoritma Dijkstra ditemukan oleh seorang berkebangsaan Belanda yang telah menjadi ilmuan komputer yang terdepan dan menghasilkan beberapa algoritma didalam suatu graf yaitu Edsger Wybe Dijkstra. Algoritma Dijkstra menemukan rute terpendek dari sebuah simpul spesifik A menuju simpul spesifik E, jika diteruskan maka akan memberikan rute terpendek dari simpul spesifik A menuju seluruh simpul – simpul didalam sebuah graf [2]. Pseudocode algoritma Dijkstra : Untuk setiap node tetapkan totalJarak[verteks] = HIGH verteksTerselesaikan = kosong verteksBelumTerselesaikan = kosong tambahkan verteksTitikAwal kedalam verteksBelumTerselesaikan totalJarak[verteksTitikAwal] = 0 selama verteksBelumTerselesaikan tidak kosong { verteksEvaluasi = cariVerteksDenganTotalJarakTerkecil verteksBelumTerselesaikan hapus verteksEvaluasi dari verteksBelumTerselesaikan tambahkan verteksEvaluasi ke verteksTerselesaikan evaluasiTetanggaverteksEvaluasi } cariVerteksDenganTotalJarakTerkecilverteksBelumTerselesaikan { temukan verteks dengan jarak terkecil dalam verteksBelumTerselesaikan dan kembalikan } evaluasiTetanggaverteksEvaluasi { untuk setiap verteksTujuan yang dapat dicapai dengan sebuah edge dari verteksEvaluasi dan bukan termasuk verteksTerselesaikan { jarakEdge = cariJarakedgeverteksEvaluasi, verteksTujuan jarakBaru = jarak[verteksEvaluasi] + jarakEdge jika jarak[verteksTujuan] jarakBaru { jarak[verteksTujuan] = jarakBaru tambahkan verteksTujuan ke verteksBelumTerselesaikan } } } Algoritma Dijkstra akan mengunjungi seluruh node yang terdapat dalam suatu kesatuan graf. Satu kesatuan graf ini merupakan data tiap – tiap simpul yang berada dalam graf tersebut dengan menghubungkan nya secara bertetanggaan dengan simpul Universitas Sumatera Utara – simpul yang lain dengan memiliki suatu nilai dalam hal ini jarak dalam hubungan ketetanggaannya. Algoritma ini akan memulai kerjanya setelah mendapatkan inputan simpul awal yang merupakan anggota dari kesatuan graf. Setelah mendapatkan inputan node awal, Algoritma Dijkstra akan memberikan nilai pada masing – masing simpul bernilai tak berhingga atau infinity kecuali simpul awal yang diberi nilai nol. Kemudian algoritma Dijkstra akan mengunjungi setiap simpul yang bertetanggaan dengan simpul awal dan mengambil nilai jarak diantara keduanya. Nilai jarak tersebut akan ditotalkan dengan nilai simpul awal dan kemudian dibandingkan dengan nilai simpul tetangga yang sedang dikunjungi. Apabila nilai yang baru bernilai lebih kecil daripada nilai sebelumnya maka nilai dari simpul tetangga yang sedang dikunjungi tadi akan diubah dengan nilai yang baru. Proses ini dilakukan untuk setiap simpul tetangga yang dimiliki simpul awal. Setelah seluruh simpul tetangga telah memiliki nilai baru yang tentu saja bukan lagi tak berhingga infinity maka simpul awal dapat ditinggalkan dan proses akan kembali berulang untuk simpul yang memiliki nilai paling kecil diantara simpul tetangga. Proses ini akan terus dilakukan sampai seluruh simpul telah dikunjungi. Pada prosesnya algoritma Dijkstra akan memberikan sebuah petunjuk pada masing – masing simpul selain inputan simpul awal yaitu sebuah kode yang menunjukkan bahwa nilai yang dimiliki sebuah simpul merupakan nilai yang paling kecil yang didapat setelah dikunjungi simpul yang lain. Kode ini berisi nama simpul yang akan digunakan dalam menyusun sebuah jalur terpendek ke simpul tersebut yang berasal dari simpul inputan awal. Jika proses yang dilakukan oleh algoritma Dijkstra telah selesai maka kita akan mendapatkan dua hal, yaitu nilai pada masing – masing simpul dan petunjuk pada masing – masing simpul yang merupakan rute terpendek. Dengan dua hasil ini pengguna hanya perlu memberikan inputan simpul akhir maka program akan menunjukkan sebuah rute yang paling pendek untuk menuju inputan simpul akhir dari inputan simpul awal. Universitas Sumatera Utara

2.3 Sistem Informasi Geografis