BAB 2 TINJAUAN PUSTAKA 2.1. Teori Graf - Implementasi Mobile Tracking Menggunakan Metode Ant Colony Optimization Dan Google Maps Api

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

  [1] cukup ditulis p dan q. Graf dengan order p dan q disebut graf-(p,q).

  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

  [1] bentuk garis atau kurva yang memasangkan dua titik.

  Perhatikan graf G yang memuat himpunan titik V(G) dan himpunan sisi E(G) seperti berikut ini. V(G) = {a,b,c,d,e} E(G) = {(a, b), (a, c), (a, d), (b, d), (b, c), (d, e)} Graf G tersebut secara lebih jelas dapat digambar sebagai berikut.

  a c

  e

2 G : e

  1

  e

  3 e

  e

  4

  6

  e

  b d

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 V(G) = {a, b, c, d, e} E(G) = {(a, b), (a, c), (a, d), (b, d), (b, c), (d, e)}

  Dapat juga ditulis dengan V(G) = {a, b, c, d, e} E(G) = {e

  1 , e 2 , e 3 , e 4 , e 5 , e 6 }

  Dengan e 1 = (a, b) e 2 = (a, c)

  3 =

  e (a, d) e 4 = (b, d) e 5 = (b, c)

  6 =

  e (d, e) Sisi e = (a, b) dikatakan menghubungkan titik a dan b. Jika e = (a, b) adalah sisi graf G, maka a dan b disebut terhubung langsung (adjacent), a dan e serta b dan e disebut terkait langsung (incident), dan titik a dan b disebut ujung dari e. Dua sisi berbeda e

  1 dan e 2 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

  [7] berbobot juga sering dikaitkan dengan istilah graf berlabel.

  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.

  P

9 Q

  6

7 T

  12

  6

9 R S

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 kemudahan bagi sesorang yang senang menggunakan komputer ketika mengkaji

  [1] informasi atau menyelesaikan permasalahan yang melibatkan graf.

  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) = {v

  1 , v 2 , v 3 , v 4 }

  Dan himpunan sisi E(G) = {v

  1 v 2 , v 1 v 4 , v 2 v 3 , v 2 v 4 , v 3 v 4 } Maka, diagram dan matriks keterhubungan graf G sebagai berikut.

  V 1 V 2

  v v v v 1 2 3 4

  v 1

  0 1 0 1

  v 2

  1 0 1 1 =

  v 3

  0 1 0 1

  v 4 V 4 V 3

  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) = {v

  1 ,v 2 , … v p } dan A (G) = [a ij ], 1 ≤ i, j ≤ p adalah matriks keterhubungan dari G,

  maka deg (v i ) =

  Hal yang sama juga berlaku jika menghitung derajat titik melalui kolom, yaitu deg (v i ) =

  Dengan melihat matriks keterhubungan dari graf G dapat diperoleh bahwa a

  11 + a 12 + a 13 + a 14 = 0 + 1 + 0 + 1 = 2 = deg(v 1 ),

  21

  22

  23

  24

  2

  a + a + a + a = 1 + 0 + 1 + 1 = 3 = deg(v ), a

  31 + a 32 + a 33 + a 34 = 0 + 1 + 0 + 1 = 2 = deg(v 3 ), dan

  a

  41 + a 42 + a 43 + a 44 = 1 + 1 + 1 + 0 = 3 = deg(v 4 ).

  Dari diagram terlihat bahwa deg(v

  1 ) = 2,

  2

  deg(v ) = 3, deg(v

  3 ) = 2, dan

  deg(v 4 ) = 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

  [6] membimbing semut lain untuk menemukan sumber makanan.

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

  [11] sebelumnya yang dibangun berulang selama proses pembelajaran.

  Kontribusi utama algoritma ACO adalah yang meniru dari perilaku kolektif seekor semut untuk memperbarui model probabilistik. Kemungkinan memilih 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

  [11] pada peninggalan jejak yang tidak dikunjungi.

  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

  [5] algoritma untuk mencerminkan pengalaman pencarian”.

  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 perjalanannya, mereka meninggalkan jejak berupa zat kimia, yang disebut feromon. 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

  [6] ditunjukkan pada Gambar 2.4 .

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 dijalankan, sedangkan τij akan selalu diperbaharui harganya pada setiap 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.

  , . , ∑ ,! . ,! (1)

  , = '() * ' "#$% &

  Dimana : P k (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.

  • 1

  η (r,s) : (panjang sisi dari simpul r ke simpul s) τ(r,u) : jumlah feromon pada sisi dari simpul r ke simpul u.

  • 1

  η(r,u) : (panjang sisi dari simpul r ke simpul u) J k : himpunan yang berisi simpul – simpul yang telah dikunjungi oleh semut

  

k

  u : simpul yang berada dalam J

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

  [4] yang diberikan oleh persamaan (2).

  3

  4 (2)

  = +max/ 0 , 1 . 2 , 1 '() 6 ≤ 6

  8

5 Dimana : τ(r,u) : jumlah feromon pada sisi dari simpul r ke simpul s.

  • 1

  η(r,u) : (panjang 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

  [4] global (3).

  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 iterasi saat ini. Percobaan telah menunjukkan bahwa perbedaan antara dua skema 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

  [4] persamaan (4).

  (4) 0 , ← 1 − > . 0 , + >. ∆0 , 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

[8] agar Google Maps dapat ditampilkan pada halaman web yang sedang dibangun.

  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

  Developer merumuskan sebuah request URL menggunkanan PHP di remote server Aplikasi PHP membuat request ke Google

  Maps

  N Request Google Maps mengirimkan

  Valid error atau hasil nol Y

  Google Maps mengirimkan data ke user

  menggunakan format data JSON PHP dapat menggunkanan fungsi cURL untuk mengambil dan melakukan pengelolahan data JSON

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 - 122,08379), yang dapat digunakan untuk menempatkan penanda atau posisi peta.

  

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

  [8] geocoding .

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

  [8] beacons dan satelit berbasis GPS.

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).

  ? = @A sin E . sin E + cos E . cos E . cos I − I . J……()

  F F F F Dimana : D : Jarak antar dua titik (km)

  : Posisi titik i(1,2,…n) pada garis lintang dalam derajat E

  : Posisi titik i(1,2,…n) pada garis bujur dalam derajat

  I : Jari-jari bumi (6371 km)

  J 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

  [8] konstanta matematika yaitu 3,14.

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.

  [10] Seperangkat stasiun membuat segmen ground.

Gambar 2.6 Konstelasi Dua Puluh Empat GPS Satelit Dalam Enam Bidang Orbit.

  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

  [10] GPS kemudian menggunakan rentang untuk menghitung posisi pengguna.

  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

  [10] waktu kedatangan relatif terhadap jam bias.

2.4.1 Sumber Kesalahan

  [9]

  Sumber kesalahan dari GPS pada umumnya diakibatkan oleh:

  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 (indoor), dibawah permukaan air atau di bawah tanah.

  2.4.2 Kesalahan pada GPS [9]

  Kesalahan-kesalahan satelite, antara lain:

  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

  [9] memori GPS secara otomatis.