BAB 2
TINJAUAN PUSTAKA
2.1. Teori Graf
2.1.1 Definisi Graf
Graf G adalah pasangan (V(G),E(G)) dengan (V(G)) adalah himpunan tidak kosong
dan berhingga dari objek-objek yang disebut titik, (E(G)) adalah himpunan (mungkin
kosong) pasangan tak berurutan dari titik- titik berbeda di (V(G)) yang disebut sisi.
Banyaknya unsur di V(G) disebut order dari G dan dilambangkan dengan p(G), dan
banyaknya unsur di E(G) disebut ukuran dari G dan dilambangkan dengan q(G). Jika
graf yang dibicarakan hanya graf G, maka order dan ukuran dari G masing-masing
cukup ditulis p dan q. Graf dengan order p dan q disebut graf-(p,q).[1]
Nama “Graf” diberikan karena graf dapat disajikan secara grafik atau gambar,
dan justru dengan bentuk gambar inilah sifat-sifat graf dapat dikenali secara detail.
Titik disajikan dalam bentuk noktah atau lingkaran kecil dan sisi disajikan dalam
bentuk garis atau kurva yang memasangkan dua titik. [1]
Perhatikan graf G yang memuat himpunan titik V(G) dan himpunan sisi E(G)
seperti berikut ini.
V(G) = {a,b,c,d,e}
Graf G tersebut secara lebih jelas dapat digambar sebagai berikut.
Gambar 2.1 Graf G
Graf G mempunyai 5 titik sehingga order G adalah p = 5. Graf G mempunyai 6 sisi
sehingga ukuran graf G adalah 6.
Graf G dengan himpunan titik dan sisi masing-masing
berbeda e1 dan e2 disebut terhubung langsung (adjacent), jika terkait langsung pada
satu titik yang sama. Untuk selanjutnya, sisi e = (a, b) akan ditulis e = ab.
2.1.2 Graf Berbobot
Graf berbobot adalah graf yang setiap sisinya diberi sebuah nilai atau bobot. Bobot
pada setiap sisi graf dapat berbeda-beda bergantung pada masalah yang dimodelkan.
Bobot dapat menyatakan jarak antara dua buah kota, biaya perjalanan antara dua buah
kota, waktu tempuh antara dua buah kota, waktu tempuh pesan antara simpul
komunikasi dengan simpul komunikasi lainya, ongkos produksi dan sebagainya. Graf
berbobot juga sering dikaitkan dengan istilah graf berlabel.[7]
Untuk membuat label, masing-masing vertex diberi sebuah label dan setiap
edge diberikan sebuah nilai atau bobot. Tampilan graf berlabel dapat dilihat pada
Gambar 2.2.
Gambar 2.2 Graf Berbobot
2.1.3 Representasi Graf Pada Komputer
Meskipun menggambar merupakan cara yang mudah untuk menjelaskan suatu graf,
cara ini tentunya mempunyai kelemahan ketika akan menyimpan data tentang graf
dalam komputer, atau ketika akan mengkaji sifat-sifat sutau graf melalui hitungan
matematis. Merepresentasikan graf dalam bentuk matriks akan memberikan
P Q
R S
T 6
9
12 7
9
V1 V2
kemudahan bagi sesorang yang senang menggunakan komputer ketika mengkaji
informasi atau menyelesaikan permasalahan yang melibatkan graf.[1]
Matriks keterhubungan suatu graf G adalah matriks simetri dengan unsur 0 dan
1 dan memuat nilai 0 pada diagonal utamanya. Hal ini karena graf tidak memuat lup
dan tidak memuat sisi parallel.
Perhatikan contoh berikut. Misalkan graf G dengan himpunan titik
V(G) = {v1, v2, v3, v4} Dan himpunan sisi
E(G) = {v1v2, v1v4, v2v3, v2v4, v3v4 }
Maka, diagram dan matriks keterhubungan graf G sebagai berikut.
=
0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0
Gambar 2.3 Diagram dan Matriks Keterhubungan Graf G
Derajat suatu simpul deg(v) adalah banyaknya ruas yang menghubungkan suatu
simpul. Secara umum, jika graf G dengan order p (p ≥ 1) dengan himpunan titik V(G)
= {v1,v2, … vp} dan A (G) = [aij], 1 ≤ i, j ≤ p adalah matriks keterhubungan dari G,
maka
deg (vi) = ∑
Hal yang sama juga berlaku jika menghitung derajat titik melalui kolom, yaitu
Dengan melihat matriks keterhubungan dari graf G dapat diperoleh bahwa
a11 + a12 + a13 + a14 = 0 + 1 + 0 + 1 = 2 = deg(v1),
a21 + a22 + a23 + a24 = 1 + 0 + 1 + 1 = 3 = deg(v2),
a31 + a32 + a33 + a34 = 0 + 1 + 0 + 1 = 2 = deg(v3), dan
a41 + a42 + a43 + a44 = 1 + 1 + 1 + 0 = 3 = deg(v4).
Dari diagram terlihat bahwa
deg(v1) = 2,
deg(v2) = 3,
deg(v3) = 2, dan
deg(v4) = 3.
2.2 Algoritma Ant Colony Optimization
Algoritma semut (Ant Colony) yang terinspirasi oleh tingkah laku semut dalam suatu
koloni. Semut mampu menemukan jalur terpendek dari sumber makanan ke sarang
mereka tanpa menggunakan isyarat visual dengan memanfaatkan informasi feromon.
Sambil berjalan, semut meninggalkan jejak feromon di tanah, dan feromon ini akan
membimbing semut lain untuk menemukan sumber makanan. [6]
2.2.1 Ant Colony Optimization
Ant Colony Optimization (ACO) melakukan pendekatan menggunakan model
probabilistik untuk membangun kombinasi baru. Dalam pendekatannya, model
probabilistik berkembang selama proses pencarian dengan mengacu pada kombinasi
sebelumnya yang dibangun berulang selama proses pembelajaran.[11]
Kontribusi utama algoritma ACO adalah yang meniru dari perilaku kolektif
komponen tergantung pada kualitas feromon yang merepresentasikan perjalanan
koloni semut. Jumlah feromon berkembang dengan menggabungkan dua mekanisme.
mekanisme pertama adalah langkah meletakkan feromon. Jejak feromon berhubungan
dengan kombinasi terbaik yang memungkinan untuk memilih jalur tersebut.
Mekanisme kedua adalah penguapan feromon. Jejak feromon akan semakin menurun
pada peninggalan jejak yang tidak dikunjungi. [11]
Marco Dorigo (1992) menyatakan “Ant Colony Optimization (ACO) adalah
pendekatan metaheuristik baru yang diusulkan untuk memecahkan masalah optimasi
kombinatorial yang sulit. Sumber inspirasi dari ACO adalah jejak feromon peletakan
dan mengikuti perilaku semut nyata yang menggunakan feromon sebagai media
komunikasi. Dalam analogi dengan contoh biologi, ACO didasarkan pada komunikasi
tidak langsung dari koloni agen sederhana, disebut (buatan) semut, dimediasi oleh
(buatan) jejak feromon. Jalan feromon di ACO berfungsi sebagai penyampai
informasi numerik yang semut gunakan untuk probabilistik membangun solusi untuk
masalah yang sedang diselesaikan dan dimana semut beradaptasi selama eksekusi
algoritma untuk mencerminkan pengalaman pencarian”.[5]
Perilaku semut yang cukup menarik adalah ketika mereka mencari makan, di
mana mereka dapat menemukan jalur terpendek antara sumber makanan dan sarang
mereka. Semut sampai pada titik keputusan di mana mereka harus memutuskan
apakah akan belok kiri atau kanan. Karena mereka tidak memiliki petunjuk yang
merupakan pilihan terbaik, mereka memilih acak. Hal ini dapat diharapkan bahwa
rata-rata, setengah dari semut memutuskan untuk berbelok ke kiri dan yang lainnya
berbelok ke kanan. Hal ini terjadi baik untuk semut bergerak dari kiri ke kanan (L)
dan untuk mereka yang pindah dari kanan ke kiri (R). Ketika berjalan dari sumber
makanan ke sarang dan sebaliknya, semut meletakkan suatu zat (yang disebut
feromon) di sepanjang jalur yang mereka lalui. Ketika zat tersebut disekresikan
sebagai isyarat seekor semut, maka semut yang lain dapat mengenalinya. Ketika
mencari makan, pada awalnya semut akan berkeliling di daerah sekitar sarangnya
secara acak. Begitu mengetahui ada makanan, semut akan menganalisa kualitas dan
kuantitas makanan tersebut dan membawa beberapa bagian ke sarangnya. Dalam
Feromon ini akan membimbing semut lain untuk menemukan sumber makanan.
Jumlah feromon yang ditinggalkan oleh semut bergantung pada jumlah makanan yang
ditemukan. Semakin banyak makanan yang didapat, semakin banyak pula jumlah
feromon yang ditinggalkan. Sehingga semakin banyak semut yang melewati suatu
jalur, semakin kuat pula jejak feromon yang terkumpul di jalur tersebut. Cara semut
memanfaatkan feromon untuk menemukan jalur terpendek antara dua titik
ditunjukkan pada Gambar 2.4[6].
Gambar 2.4 Mekanisme Pergerakan Koloni Semut.
Inisialisasi parameter-parameter algoritma.
1. Intensitas jejak semut antar kota dan perubahannya (τij).
2. Banyak kota (n) termasuk koordinat (x,y)atau jarak antar kota (dij) serta
kota berangkat dan kota tujuan.
3. Tetapan siklus-semut (Q).
4. Tetapan pengendali intensitas jejak semut(α), nilai α≥ 0.
5. Tetapan pengendali visibilitas (β), nilai β≥ 0.
6. Visibilitas antar kota = 1/dij (ηij).
7. Banyak semut (m).
8. Tetapan penguapan jejak semut (ρ) , nilai ρ harus > 0 dan < 1 untuk
mencegah jejak pheromone yang tak terhingga.
9. Jumlah siklus maksimum (NCmax) bersifat tetap selama algoritma
siklus algoritma mulai dari siklus pertama (NC=1) sampai tercapai jumlah
siklus maksimum(NC=NCmax) atau sampai terjadi konvergensi.
Aturan transisi digunakan oleh sistem semut, disebut sebagai random-proportional
rule diberikan oleh persamaan (1), yang memberikan probabilitas semut k di kota r
memilih untuk pindah ke kota s.
, =
∑"#$% & , ,! .. , ,!0
'() * '
(1)
Dimana :
Pk(r, s) : Probabilitas semut k memilih untuk berpindah dari kota r ke kota s τ(r,s) : jumlah feromon pada sisi dari simpul r ke simpul s.
η (r,s) : (panjang sisi dari simpul r ke simpul s)-1
τ(r,u) : jumlah feromon pada sisi dari simpul r ke simpul u.
η(r,u) : (panjang sisi dari simpul r ke simpul u)-1
Jk : himpunan yang berisi simpul – simpul yang telah dikunjungi oleh
semut
u : simpul yang berada dalam Jk
2.2.1.1 Aturan Transisi Status
Dalam ACS (Ant Colony System) aturan transisi status adalah sebagai berikut: semut
diposisikan pada node r memilih kota s untuk berpindah dengan menerapkan aturan
yang diberikan oleh persamaan (2).[4]
= +max/ 0 , 1 . 2 , 1 34
5 '() 6 ≤ 68 (2)
Dimana :
τ(r,u) : jumlah feromon pada sisi dari simpul r ke simpul s.
β : parameter perbandingan jumlah feromon relatif terhadap jarak
(merupakan parameter yang telah ditentukan sebelumnya)
q : bilangan random
q0 : parameter perbandingan terhadap simpul yang belum ditemuinya
S : simpul berikutnya yang dipilih berdasarkan persamaan (1).
2.2.1.2 Aturan Pembaruan Feromone Global
Dalam ACS hanya semut terbaik secara global (yaitu, perjalanan semut yang
terpendek dari awal sebuah jejak) yang diperbolehkan untuk meninggalkan feromon.
Pilihan ini, bersama-sama dengan penggunaan aturan pseudo-random-proportional,
dimaksudkan untuk membuat pencarian yang lebih terarah. Semut mencari di
lingkungan pada tour terbaik ditemukan sampai akhir iterasi algoritma. Pembaharuan
feromon global dilakukan setelah semua semut telah menyelesaikan tour mereka.
Tingkat feromon diperbarui dengan menerapkan aturan memperbarui persamaan
global (3).[4]
0 , ← 1 − ; . 0 , + ;. ∆0 , (3)
Dimana:
τ(r,s) : nilai feromon akhir setelah mengalami pembaruan
α : tetapan pengendali feromon.
Δτ : perubahan intensitas feromon.
Seperti halnya dalam sistem semut, pembaharuan feromon global dimaksudkan untuk
menyediakan sejumlah besar feromon untuk kunjungan terpendek. Persamaan. (3)
menyatakan bahwa hanya sebuah edge tour terbaik secara global akan menerima
penguatan. Jenis lain aturan pembaharuan feromon global, yang disebut iteration-best,
sebagai lawan di atas yang disebut global-best. Dalam persamaan (3). Juga, dengan
iterasi-terbaik edge yang menerima penguatan adalah yang termasuk tour terbaik dari
minimal, dengan preferensi sedikit untuk global terbaik, karena yang digunakan dalam
percobaan berikutnya.
2.2.1.3 Aturan Pembaruan Feromone Lokal
Ketika membangun solusi (yaitu, tour) sebuah TSP, semut mengunjungi edge dan
mengubah tingkat feromon mereka dengan menerapkan aturan memperbarui lokal
persamaan (4).[4]
0 , ← 1 − > . 0 , + >. ∆0 , (4)
dimana:
τ(r,s) : jumlah feromon pada sisi dari simpul r ke simpul s
ρ : tetapan penguapan feromon.
Δτ : perubahan intensitas feromon.
Peran aturan memperbarui lokal ACS adalah untuk mengacak tour, sehingga kota-kota
di awal tour seekor semut dapat dieksplorasi selanjutnya oleh tour semut lain. Dengan
kata lain, efek dari pembaruan feromon lokal adalah untuk membuat edge berubah
secara dinamis. setiap kali semut menggunakan edge ini menjadi sedikit kurang
diinginkan (karena kehilangan beberapa feromon nya). Dengan cara ini semut akan
membuat lebih baik menggunakan informasi feromon. tanpa pembaruan feromon
lokal semua semut akan mencari di lingkungan yang terbatas pada tour terbaik
sebelumnya.
2.3 Google Maps API
Google Maps API merupakan aplikasi antarmuka yang dapat diakses lewat javascript
Developer merumuskan sebuah request URL menggunkanan PHP di remote server
Aplikasi PHP membuat request ke Google Maps
Request Valid
Google Maps mengirimkan data ke user menggunakan format data JSON
Google Maps mengirimkan
error atau hasil nol
PHP dapat menggunkanan fungsi cURL untuk mengambil dan melakukan pengelolahan data JSON
Y
N
Ada 2 cara untuk mengakses data Google Maps, tergantung dari data yang
ingin diambil dan diuraikan dari Google Maps.
1. Mengakses data Google Maps tanpa menggunakanAPI key.
2. Mengakses data Google Maps menggunakan API key.
Pendaftaran API key dilakukan dengan data pendaftaran berupa nama domain web
yang kita bangun.
2.3.1 Request URL Google Map
Gambar 2.5 Flowchart Request URL Google Maps
2.3.2 Geocoding
Geocoding adalah proses mengubah alamat (seperti “1600 Amphitheatre Parkway,
Mountain View, CA”) ke koordinat geografis (lintang 37,423021 dan bujur
Geocoding API Google menyediagakn cara langsung untuk mengakses geocoder
melalui HTTP. Selain itu, layanan ini memungkinkan kita untuk melakukan operasi
sebaliknya (berubah koordinat menjadi alamat), proses ini dikenal sebagai reverse
geocoding.[8]
2.3.3 Waypoint
Waypoint adalah titik referensi dalam ruang fisik yang digunakan untuk tujuan
navigasi. Waypoint merupakan koordinat yang mengidentifikasi titik dalam ruang
fisik. Koordinat yang digunakan dapat bervariasi tergantung pada aplikasi. Untuk
navigasi darat koordinat berupa bujur dan lintang, sedangkan untuk navigasi udara
juga mencakup ketinggian. Waypoint biasanya digunakan untuk sistem navigasi pada
GPS dan jenis-jenis tertentu dari radio navigasi. Waypoint yang terletak di permukaan
bumi biasanya didefinisikan dalam dua dimensi (misalnya, bujur dan lintang),
sedangkan yang digunakan dalam atmosfer bumi atau di luar angkasa didefinisikan
dalam setidaknya tiga dimensi atau empat jika waktu merupakan salah satu koordinat
untuk beberapa titik yang berada di luar bumi. Waypoint ini digunakan untuk
membantu menentukan jalur routing yang tak terlihat untuk navigasi. Misalnya,
artificial airways " highways in the sky" yang diciptakan khusus untuk keperluan
navigasi udara dan hanya terdiri dari serangkaian waypoint abstrak di langit dimana
pilot menavigasi airways ini dirancang untuk memudahkan kontrol lalu lintas udara
dan routing lalu lintas antara lokasi pada saat bepergian. Waypoints abstrak semacam
ini telah dibuat praktis dengan teknologi navigasi modern, seperti land-based radio
beacons dan satelit berbasis GPS.[8]
2.3.3.1 Perhitungan Jarak Antara Dua Waypoints
Untuk melakukan perhitungan jarak antara dua waypoints pada Google Maps
menggunakan persamaan hukum kosinus koordinat bola (spherical law of cosines).
Dimana :
D : Jarak antar dua titik (km)
E : Posisi titik i(1,2,…n) pada garis lintang dalam derajat
I : Posisi titik i(1,2,…n) pada garis bujur dalam derajat
J : Jari-jari bumi (6371 km)
Karena untuk menggunakan persamaan ini nilai lintang dan bujur harus dalam radian,
sedangkan data masukan dari pengguna dalam derajat, maka terlebih dahulu
mengubah nilai derajat menjadi radian dengan membagi dengan 180 / π . π adalah
konstanta matematika yaitu 3,14.[8]
2.4 GPS
Rancangan terbaru dari GPS dikembangkan dari sebuah prototype pada akhir 1960.
Rancangan ini berdasarkan pada rasi dua puluh empat satelit buatan manusia yang
mengorbit bumi setiap dua belas jam pada ketinggian 20.000 km dari permukaan laut.
Secara kolektif, ini berdasarkan konstelasi membentuk Segmen angkasa, seperti yang
ditunjukkan pada Gambar 2. setiap satelit terus mengirimkan pesan posisi, dengan
ketepatan waktu antara semua komponen sistem dan antar satelit. Waktu tersebut
dikelola oleh pemantauan transmisi satelit di lima stasiun darat yang dapat mengirim
pembaharuan ke satelit ketika penyimpangan yang tidak diinginkan terdeteksi.
Seperangkat stasiun membuat segmen ground.[10]
Segmen ketiga adalah pengguna segmen peralatan yaitu terdiri dari apa yang telah
menjadi berbagai jenis penerima GPS yang dirancang untuk memanfaatkan sinyal
berbasis ruang untuk posisi akurat dan penentuan waktu. semua penerima tersebut
beroperasi pada prinsip yang sama yaitu estimasi waktu kedatangan sinyal dari
sedikitnya empat satelit terpisah, kemudian untuk mengetahui transmisi waktu dan
kecepatan cahaya untuk memperkirakan jarak antara pengguna dan satelit. Penerima
GPS kemudian menggunakan rentang untuk menghitung posisi pengguna.[10]
Setiap sinyal GPS dirancang untuk membawa waktu yang tertera memungkinkan
penerima untuk mengetahui kapan sinyal meninggalkan satelit GPS. Sebuah peralatan
penerima yang dilengkapi dengan baik kemudian dapat mengukur ketika sinyal
menjangkau pengguna. Jika jam satelit dan jam pengguna secara sempurna
disinkronkan, jarak antara mereka dapat dihitung sebagai waktu tunda dikalikan
dengan kecepatan cahaya. Namun, meskipun jam GPS semua sangat tepat dan
disinkronkan dengan satu sama lain, jam pengguna juga dapat memiliki bias relatif
yang tidak diketahui terhadap waktu sistem GPS. Istilah pseudorange digunakan
untuk mengenali bahwa pengguna hanya dapat memperkirakan setiap sinyal GPS
waktu kedatangan relatif terhadap jam bias.[10]
2.4.1 Sumber Kesalahan
Sumber kesalahan dari GPS pada umumnya diakibatkan oleh:[9]
a. Ionosphere and troposphere delays, signal satelite lambat dalam menembus
atmosfer. Pada GPS yang baru telah dilengkapi oleh perhitungan rata-rata
delays (waktu tunda) untuk mengoreksi kesalahan yang terjadi.
b. Signal multipath, Kesalahan yang terjadi akibat signal dipantulkan oleh gedung
atau batuan besar, sebelum mencapai receiver.
c. Penerimaan satelite yang terganggu akibat gedung, interferensi gelombang
elektro magnetik, blok signal, sehingga GPS tidak bekerja dalam rumah
2.4.2 Kesalahan pada GPS
Kesalahan-kesalahan satelite, antara lain:[9] a. Receiver clock errors,
b. Orbital Error,
c. Satellite geometry/shading dan
d. Intentional degradation of the satellite signal.
2.4.3 Tracking
Tracking dalam per-istilahan GPS adalah melakukan kuisisi data koordinat secara
otomatis berdasarkan jalur yang kita lalui dan data tersebut disimpan dalam kartu