Google Maps API merupakan aplikasi antarmuka yang dapat diakses lewat javascript agar Google Maps dapat ditampilkan pada halaman web yang sedang
dibangun. Dengan menggunakan Google Maps API dapat menghemat waktu dan biaya untuk membangun aplikasi peta digital yang handal, karena pengguna hanya
fokus pada data-data yang ingin dikostumisasi saja, untuk data peta sudah disediakan oleh Google Maps. Ada 2 cara untuk mengakses data Google Maps, tergantung dari
data yang ingin diambil dan diuraikan dari Google Maps Sirenden Dachi, 2012, yaitu:
1. Mengakses data Google Maps tanpa menggunakan API key. 2. Mengakses data Google Maps menggunakan API key.
3. Pendaftaran API key dilakukan dengan data pendaftaran berupa nama domain
web yang kita bangun.
2.5 Algoritma Floyd-Warshall
Algoritma Warshall dikembangkan oleh R.W. Floyd sehingga matriks merupakan graf berbobot dan bukan lagi matriks Boolean Goodaire, 1998. Algoritma Floyd-
Warshall adalah sebuah algoritma analisis graf untuk mencari bobot minimum dari graf berarah. Dari 4 jenis permasalahan lintasan terpendek, Algoritma Floyd-Warshall
termasuk dalam lintasan terpendek antara semua pasangan simpul atau all pairs shortest path Levitin, 2009. Algoritma ini dapat menghitung bobot positif atau
negatif, tetapi tidak dapat menghitung siklus negatif Sharma Kurana, 2013. Dalam satu kali eksekusi algoritma, akan didapatkan jarak sebagai jumlah bobot
dari lintasan terpendek antar setiap pasang simpul tanpa memperhitungkan informasi mengenai simpul-simpul yang dilaluinya. Algoritma yang juga dikenal dengan nama
Roy-Floyd ini merupakan penerapan strategi dynamic programming. Di sinilah peran pemrograman dinamis yang mencoba untuk memberikan solusi yang memiliki
pemikiran terhadap konsekuensi yang ditimbulkan dari pengambilan keputusan pada suatu tahap. Pemrograman dinamis mampu mengurangi penumerasian keputusan yang
tidak mengarah ke solusi. Prinsip yang dipegang oleh pemrograman dinamis adalah prinsip optimalitas, yaitu jika solusi total optimal, maka bagian solusi sampai suatu
tahap misalnya tahap ke-i juga optimal. Algoritma Floyd-Warshall menyediakan lintasan terpendek antara semua
pasangan simpul dengan hanya dijalankan sekali dan merupakan algoritma paling
cepat Awasthi et al, 2013. Algoritma Floyd-Warshall dapat digunakan secara efektif pada sistem dengan jumlah node yang besar dan mengarahkan pada perbaikan yang
signifikan dalan keefisiensian pada saat dijalankan. Tahapan Algoritma Floyd: 1.
Bentuklah sebuat matriks dari graf yang memiliki bobot. 2.
Isi sesuai hubungan antara vertex satu ke vertex lainnya. 3.
Bandingkan semua vertex dengan rumus ik + kj ij, maka nilai ij diganti dengan nilai ik + kj.
4. Setelah dibandingkan terhadap semua vertex, maka didapatkan hasil terkecil.
Algoritma Floyd:
1. n ⃪ rowsF
2. D0 ⃪ F
3. for k ⃪ 1 to n
4. do for i ⃪ to n
5. do for j ⃪ to n
6. �
⃪ �
−�
, �
−�
+ �
−�
7. return Dn
Running time dari algoritma Floyd ditentukan oleh perulangan for bersarang rangkap
tiga pada baris 3-6. Setiap eksekusi dari baris ke-6 mengambil O1 kali. Sehingga algoritma ini berjalan dalam waktu
Θ n
3
Cormen et al, 1990.
Algoritma Floyd membandingkan semua kemungkinan lintasan pada graf untuk setiap sisi dari semua simpul. Algoritma ini mampu mengerjakan proses
perbandingkan ini sebanyak Θn
3
kali bandingkan dengan kemungkinan jumlah sisi sebanyak Ωn
2
kuadrat jumlah simpul pada graf, dan setiap kombinasi sisi diujikan. Hal tersebut bisa terjadi karena adanya perkiraan pengambilan keputusan
pemilihan lintasan terpendek pada setiap tahap antara dua simpul, hingga perkiraan tersebut diketahui sebagai nilai optimal.
Pencarian lintasan terpendek dengan menggunakan algoritma Floyd dapat dilihat dalam contoh kasus berikut. Diketahui sebuah graf seperti pada Gambar 2.11,
permasalahannya adalah bagaimana menemukan lintasan terpendek antara semua pasangan simpul.
Gambar 2.11 Contoh Graf Boffey, 1982
Langkah-langkah untuk mendapatkan lintasan terpendek antara semua pasangan simpul dengan menggunakan algoritma Floyd:
1. Representasi graf dalam matriks ketetanggaan.
2. Matriks n x n untuk graf dimana n adalah jumlah simpul.
3. Jika i=j maka sisinya bernilai 0, dan jika tidak ada jarak antara i ke j maka
sisinya bernilai ∞. 4.
Jarak terpendek dari A ke B adalah perpotongan antara baris dan kolom.
D =
7 7
6 5
2 3
11 2
ϴ ⃪
4 4
4 4
3 3
3 3
2 2
2 2
1 1
1 1
D
1
=
7 7
6 5
2 3
11 2
ϴ ⃪
4 4
4 4
3 3
3 3
2 2
2 2
1 1
1 1
D
2
=
7
7 6
5 2
3 11
5 2
ϴ ⃪
4 4
4 4
3 3
3 3
2 2
2 2
1 1
1 1
D
3
=
7 7
6 5
2 8
3 10
5 2
ϴ ⃪
4 4
4 4
3 3
3 3
2 2
2 2
1 1
1 1
D
4
=
7 7
6 5
2 11
8 3
14 10
5 2
ϴ ⃪
4 4
4 4
3 3
3 3
2 2
2 2
1 1
1 1
2.6 Penelitian Terdahulu