Hello 🙂 , Kali ini saya mau share bagaimana cara mengimplementasikan algoritma dijkstra menggunakan PHP, mysql dan google map.
Sebelumnya saya juga pernah buat tutorial algoritma dijkstra di android, Tapi kayaknya kurang greget kalau cuma buat tutorial di androidnya saja, masa di php ngga? haha 😀
Sebelum masuk ke tutorial, ini penampakan aplikasinya yang sudah jadi :
Untuk membuat aplikasi ini, requirementnya adalah :
1) PHP versi 5.4 ke atas (yang support mysqli dan PDO)
2) Google Maps v3
3) Mysql
So, buat yang versi PHPnya masih 5.3 ke bawah, upgrade dulu ke > 5.4. Kalo gak diupgrade ngga bakalan jalan aplikasi ini.
TUTORIAL
– Mengkonversi Graph ke dalam Peta
Misal saya punya graph seperti ini :
Langkah pertama yang kita lakukan adalah mengkonversi graph tersebut ke dalam peta. Caranya?
Caranya sebagai berikut :
1) Buka graph.latcoding.comDisitu ada beberapa tools :
a) Add Node
Membuat node/simpul
b) Add Line
Membuat edge/jalur
c) Add Destination
Menambahkan tempat yang ingin dituju (misal sekolah, rumah makan, dll)
d) Add Route
Menambahkan rute angkutan umum pada graph
e) Generate SQL
Meng-konversi graph ke format .sql
2) Pertama kita akan buat node/simpul terlebih dulu, klik ‘Add Node’ sampai ada tanda [x], lalu buat node sesuai dengan keinginan Anda. Contohnya saya membuat 4 node :
(*Klik marker untuk melihat nomor node)
Nah gambar di atas kita menamai nodenya mulai dari 0, 1, 2, 3 dst. Kenapa gak pakai huruf saja? misal a, b, c, dst ..? Hm, kalau pakai huruf itu terbatas hanya 24 saja. Lebih baik pakai angka gan, cepat dan praktis.
3) Selanjutnya kita buat jalur, klik ‘Add Jalur’ klik marker nomor 0, lalu mulailah membuat jalur sampai ke marker nomor 1 :
– Lanjutkan buat jalur dari marker nomor 3 sampai ke nomor 1 :
– Lanjutkan buat jalur dari marker nomor 2 sampai ke nomor 1, sehingga jalur sudah terbuat semua seperti ini :
4) Langkah selanjutnya kita buat lokasi tujuan atau destination. Dalam tutorial ini saya membuat lokasi tujuan berupa lokasi SMK atau SMP.
Klik ‘Add Destination’, lalu tentukan lokasinya :
Secara default, nama lokasi tujuan di set mulai dari a, b, c, dst. Untuk merubahnya klik namanya, lalu akan muncul popup, ganti namanya lalu tekan OK.
Setelah diubah :
– Lanjutkan membuat lokasi tujuan :
4) Selanjutnya kita akan buat rute angkot dari graph tersebut.
Klik ‘Add Route’ maka akan muncul kotak inputan :
Nah cara membuat rute angkotnya harus sesuai format, yaitu :
nama_kendaraan=simpul_yang_dilewatiMisalkan saya disini mau membuat rute angkot untuk angkot ‘T01’ dengan rute mulai dari node 0 menuju node 1, lalu dari node 1 ke node 3, dari node 3 balik lagi ke node 1, 1 ke node 0.
Maka dapat ditulis seperti ini :T01=,0-1,1-3,3-1,1-0,Dan saya buat 3 rute angkot seperti ini :
5) Setelah graph selesai dibuat, sekarang tinggal export graph ke .sql.
Klik ‘Generate SQL’, maka file .sql akan terdownload.
Untuk yang mau sample .sqlnya bisa download dari sini**Langkah selanjutnya kita akan import file sqlnya lewat phpmyadmin
– Import .SQL
1) Buat database dengan nama ‘algo_dijkstra’
2) Import file .sql yang barusan Anda download.
Klik tab ‘import’ > lalu choose file sql > save
Lalu akan terbuat 3 tabel, yaitu tabel angkutan_umum, graph, dan sekolah :
Nah, urusan database untuk graph sudah selesai sampai sini, tahap selanjutnya tinggal download project aplikasi dijkstra yang sudah saya buat.– Download dijkstra-algorithm via github
1) Saya sudah buat aplikasi dijkstra-nya di github, silahken download dari sini.
2) Setelah terdownload, lalu ektrak. Akan ada folder ‘dijkstra-algorithm-master‘. Ganti nama foldernya menjadi ‘algo_dijkstra‘ lalu copy folder tersebut ke dalam folder htdocs.
3) Selanjutnya, kita harus setting koneksi ke database dulu. Buka file Koneksi.php, lalu setting sesuai database Anda.
– Test Aplikasi
Sekarang tinggal test aja aplikasinya, buka url :
http://localhost/algo_dijkstra/Cara menggunakannya :
1) Tap pada peta untuk menentukan lokasi Anda
2) Pilih lokasi tujuan Anda.
3) Klik RUN.TUTORIAL VERSI VIDEO
thank you buat postingannya kak^^
saya juga lagi nyari referensi buat tugas terus nemu blog ini. tapi tugas saya lebih simple, hanya menampilkan hasil rute terpendek tanpa peta. nah kira-kira, untuk menyimpan data jaraknya perlu mysql atau tidak? saya lihat dari referensi lain, ada yang langsung memasukkan data jaraknya ke kode phpnya.
Tutorial ini emang khusus buat yg ‘advanced’ gan.
Untuk menyimpan datanya ngga perlu pake mysql, cukup di include di script phpnya saja. Tutorialnya ada di sini http://latcoding.com/2015/09/01/simple-algoritma-dijkstra-dengan-php/