|:(,u)]
o
.|q(,u)]
ue]
k
(r)
u
[iko s e [
k
(r) (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]
s = _
max||(r, u)]. |n(r, u)]
[
|
S
[iko q q
0
(2)
Dimana :
(r,u) : jumlah feromon pada sisi dari simpul r ke simpul s.
(r,u) : (panjang sisi dari simpul r ke simpul s )
-1
Universitas Sumatera Utara
14
: 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]
(r, s) - (1 -o). (r, s) +o. A(r, s) (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
Universitas Sumatera Utara
15
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]
(r, s) - (1 -p). (r, s) +p. A(r, s) (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
agar Google Maps dapat ditampilkan pada halaman web yang sedang dibangun.
[8]
Universitas Sumatera Utara
16
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 -
122,08379), yang dapat digunakan untuk menempatkan penanda atau posisi peta.
Universitas Sumatera Utara
17
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).
= Acos(sin(z
1
) . sin(z
2
) +cos(z
21
) . cos(z
2
) . cos(
2
-
1
) . R()
Universitas Sumatera Utara
18
Dimana :
D : Jarak antar dua titik (km)
z
1
: Posisi titik i(1,2,n) pada garis lintang dalam derajat
1
: Posisi titik i(1,2,n) pada garis bujur dalam derajat
R : 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]
Gambar 2.6 Konstelasi Dua Puluh Empat GPS Satelit Dalam Enam Bidang Orbit.
Universitas Sumatera Utara
19
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
(indoor), dibawah permukaan air atau di bawah tanah.
Universitas Sumatera Utara
20
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
memori GPS secara otomatis.
[9]
Universitas Sumatera Utara
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Persoalan penentuan jarak terdekat merupakan salah satu permasalahan optimasi. Graf
yang digunakan adalah suatu graf berbobot jarak antar user yang merupakan tempat-
tempat yang akan dilintasi. Untuk meminimumkan waktu atau biaya dalam melintasi
tempat-tempat, diperlukan informasi lintasan yang terpendek yang harus dilalui.
Permasalahan pencarian lintasan yang terpendek antar lokasi dapat diselesaikan
dengan algoritma ACO yang bekerja sebagai penentuan jalur terpendek antar titik,
untuk selanjutnya dapat diterapkan pada pencarian jalur terpendek pada berbagai
lokasi yang ingin diketahui. Contoh kasus yang akan diambil adalah pencarian jalur
terpendek antara titik A dan titik D.
Gambar 3.1 Ilustrasi Jalur Terpendek dengan Jarak
Universitas Sumatera Utara
22
Pada Gambar 3.1 diketahui koordinat pengguna yang digunakan sebagai banyak
kota yang dikunjungi kemudian sistem ini akan mencari jarak terdekat menggunakan
algoritma ant colony optimization (ACO) dalam penentuan jarak terdekatnya.
3.1.1 Analisis Masalah
Untuk mengidentifikasi masalah menggunakan diagram ishikawa (fishbone diagram).
Masalah yang akan diidentifikasi yaitu sebuah perangkat mobile yang memiliki
fasilitas GPS belum digunakan secara maksimal. Bahkan untuk membeli sebuah
perangkat GPS saat ini masih relatif mahal sehingga hanya orang tertentu saja yang
menggunakanya. Dengan adanya fasilitas GPS jarak yang akan ditempuh dapat
dihitung secara komputasi, sehingga waktu yang digunakan akan jauh lebih efektif
daripada perhitungan secara manual. Permasalahan tersebut dapat dilihat melalui
sebuah diagram ishikawa pada Gambar 3.2.
Gambar 3.2 Diagram Ishikawa Untuk Analisis Permasalahan Sistem
3.1.2 Analisis Kebutuhan Sistem
Analisis Kebutuhan Sistem meliputi analisis kebutuhan fungsional sistem dan analisis
kebutuhan non-fungsional sistem.
Penentuan jarak terdekat dari
sebuah koordinat ponsel
Method Machine
Materials Man
Kesulitan dalam
pembuatan peta terbaru
Pencarian jarak terdekat
masih manual
Memiliki keterbatasan
dalam memproses data
Harga perangkat GPS
relatif mahal
Universitas Sumatera Utara
23
3.1.2.1 Kebutuhan Fungsional Sistem
Kebutuhan fungsional yang harus dimiliki oleh aplikasi mobile tracking dalam
penentuan jarak terdekat yaitu :
1. Fasilitas gps sebuah ponsel untuk membaca koordinat.
2. Sistem akan melakukan perhitungan jarak terdekat pada google maps
menggunakan algoritma ant colony optimization.
3. Sistem dapat menampilkan route yang akan dilalui sebagai jarak terdekat.
3.1.2.2 Kebutuhan Non-Fungsional Sistem
Kebutuhan non-fungsional adalah kebutuhan yang harus dipenuhi agar aplikasi yang
dirancang mendapat umpan-balik yang baik dari pengguna aplikasi. Kebutuhan non-
fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut:
a. Performa
Sistem harus mampu melaksanakan setiap tugas secara utuh dalam selang
waktu yang tidak terlalu lama sesuai dengan ukuran data input yang
diberikan.
b. Informasi
Sistem harus mampu menyediakan informasi tentang data-data yang akan
digunakan pada sistem.
c. Ekonomi
Sistem harus dapat bekerja dengan baik tanpa harus mengeluarkan biaya
tambahan dalam penggunaan perangkat keras maupun perangkat lunak.
d. Kontrol
Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang
agar fungsi dan kinerja sistem tetap terjaga dan dapat memberikan hasil
yang sesuai dengan keinginan pengguna.
e. Efisiensi
Sistem harus dirancang sesederhana mungkin agar memudahkan pengguna
dalam menggunakan atau menjalankan aplikasi tersebut.
f. Pelayanan
Universitas Sumatera Utara
24
Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih
kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem
tersebut.
3.1.3 Pemodelan
Pemodelan aplikasi yang dirancang bertujuan untuk menggambarkan semua kondisi
dan bagian-bagian yang berperan dalam sistem yang dirancang. Pemodelan aplikasi
dilakukan dengan membuat use-case diagram, activity diagram, class diagram, dan
sequence diagram.
3.1.3.1 Use-Case Diagram
Untuk menganalisa komponen-komponen yang berperan dalam sistem yang
dirancang, penulis menggunakan use-case diagram agar proses penganalisaan
komponen dapat dilakukan dengan mudah. Use-case diagram sistem pada aplikasi
yang dirancang dapat dilihat pada Gambar 3.3.
Gambar 3.3. Use-Case Diagram Pada Sistem
User
Daftar
Login
Admin
Hitung
Perjalanan
Eksport data
Kordinat Ponsel
Profil User
Data User
<< Extends >>
Long-Lat
<< Extends >>
Hasil Perhitungan
<< include >>
<< Include >>
Durasi Dalam
Matriks
<< include >>
Peta Graph
<< include >>
Universitas Sumatera Utara
25
3.1.3.2 Activity Diagram
Untuk menganalisa aktivitas-aktivitas yang akan berlangsung selama aplikasi
dijalankan diperlukan sebuah activity diagram. Activity diagram sistem pada aplikasi
yang dirancang dapat dilihat pada Gambar 3.4.
Universitas Sumatera Utara
26
Activity diagram
Gambar 3.4. Activity Diagram Pada Sistem
Universitas Sumatera Utara
27
3.1.3.3 Class Diagram
Class diagram untuk sistem yang dirancang dapat dilihat seperti pada Gambar 3.5.
Gambar 3.5. Class Diagram Pada Sistem
3.1.3.4 Sequence Diagram
Sequence diagram untuk sistem yang dirancang dapat dilihat seperti pada Gambar 3.6.
Universitas Sumatera Utara
28
Gambar 3.6. Sequence Diagram Pada Sistem
3.2 Perancangan Sistem
3.2.1 Flowchart Sistem
Flowchart merupakan bagan yang menunjukkan arus pekerjaan secara keseluruhan
dari sistem. Flowchart menjelaskan tentang urutan-urutan dari prosedur yang ada di
dalam sistem dengan menggunakan simbol-simbol.
Flowchart pembuatan aplikasi mobile tracking dapat dilihat seperti pada
Gambar 3.7.
Universitas Sumatera Utara
29
Gambar 3.7. Flowchart Sistem
Universitas Sumatera Utara
30
3.2.2 Pseudocode Algoritma ACO
Pseudocode adalah teknik untuk menuliskan algoritma secara hight-level tanpa
tergantung pada sebuah bahasa pemrograman. Penulisan pseudocode biasanya ditulis
dengan menggunakan bahasa inggris dan diberi tambahan notasi matematika.
Pseudeocode Algoritma ACO ditunjukkan oleh tabel 3.1 dibawah ini:
Tabel 3.1 Pseudocode Algoritma ACO
Baris
Kode
Pseudocode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
ALGORITMA Ant Colony Optimization
{algortima untuk menghitung jarak terpendek menggunakan ACO}
DEKLARASI
alfa,beta,asF:double;
i,j,m,Q:integer;
DESKRIPSI
Set parameter(alfa,beta,asF,m,Q)
while stopping criterion not satisfied do
position each ant in a starting node
repeat
for each ant do
choose next node by applying the state
transition rule
apply local pheromone update
end for
until every ant has built a solution
update best solution
apply global pheromone update
end while
Output (Jarak terpendek)
Universitas Sumatera Utara
31
3.2.3 Perancangan Database
Tabel yang penulis gunakan dalam pembuatan aplikasi mobile tracking yaitu
tb_admin, tb_client dan tb_track. Rincian masing-masing table diuraikan pada
table dibawah ini.
1. Tabel Admin
Tabel admin merupakan table yang digunakan untuk menyimpan account
admin yaitu username dan password sebagai autentikasi untuk masuk ke
menu admin.
Tabel 3.2 Tabel Admin
Field Type
id_admin int(10)
Nama varchar(200)
Username varchar(200)
Password varchar(200)
2. Tabel Client
Tabel Client digunakan untuk menyimpan data user dan melacak
koordinatnya. Dimana setiap kali user melakukan login maka koordinat
pada database selalu diperbaharui
Tabel 3.3 Tabel Client
Field Type
id_client int(10)
Nama varchar(200)
username varchar(200)
password varchar(200)
Universitas Sumatera Utara
32
Field Type
jenis_kelamin enum('Pria', 'Wanita')
no_hp varchar(15)
Alamat varchar(200)
Lat double
Long double
Gambar varchar(120)
id_session varchar(100)
Aktif enum('Y', 'N')
3. Tabel Track
Tabel track digunakan untuk menyimpan semua data perjalanan masing-
masing user.
Table 3.4 Tabel Track
Field Type
id_track int(10)
id_client int(10)
Lat double
Long double
Time datetime
session_login varchar(160)
3.2.4 Perancangan Tampilan
3.2.4.1 Halaman Login
Halaman login merupakan sebagai authentikasi data untuk mengakses halaman utama
aplikasi. Halaman ini digunakan sebagai pembatasan hak akses terhadap fitur-fitur
yang ada di aplikasi. Agar dapat masuk kedalam aplikasi, maka pengguna harus
Universitas Sumatera Utara
33
memiliki username dan password yang sudah terdaftar sebelumnya. Kemudian setelah
pengguna dapat melakukan proses login maka sistem akan mendapatkan koordinat
ponsel kemudian disimpan kedalam database. Tampilan dapat dilihat pada gambar 3.8
Gambar 3.8 Halaman login
Keterangan:
1. Label yang berisi logo aplikasi
2. Label Username.
3. Label File Tujuan.
4. Text box untuk menampilkan input username.
5. Text box untuk menampilkan input password.
6. Tombol untuk memproses input login.
7. Tombol untuk menampilkan dialog pendaftaran.
3.2.4.2 Halaman User
Halaman User adalah halaman yang digunakan sebagai antar-muka user setelah
berhasil melakukan proses login. Halaman ini juga akan menampilkan posisinya
berada berdasarkan koordinat yang diterima. Rancangan halaman user dapat dilihat
seperti pada Gambar 3.7
Mobile Tracking
(1)
Username
(2)
Text Box
(3)
Password
(4)
Text Box
(5)
Login
(6)
daftar
(7)
Universitas Sumatera Utara
34
Gambar 3.9 Halaman User
Keterangan:
1. Label untuk menampilkan text proses pelacakan koordinat ponsel.
2. Label untuk menampilkan map.
3. Label untuk menampilkan alamat latitude dan longitude.
4. Tombol untuk menampilkan form edit profile.
5. Tombol untuk menampilkan form logout.
3.2.4.3 Halaman Admin
Halaman admin adalah halaman yang digunakan sebagai antar-muka admin setelah
berhasil melakukan proses login. Pada halaman ini digunakan untuk melakukan
pelacakan posisi user dan perhitungan jarak terdekatnya. Rancangan halaman admin
dapat dilihat seperti pada Gambar 3.10
Tracking location pocessing...
(1)
YYYY-mm-dd
Edit profile
(4)
LogOut
()
Lat !
(")
Long !
#ap
($)
Universitas Sumatera Utara
35
Gambar 3.10 Halaman Admin
Keterangan:
1. Label untuk menampilkan tujuan.
2. Text box untuk menampilkan input tujuan.
3. Tombol untuk menampilkan form add.
4. Label untuk menampilkan pilih jalur.
5. checkbox untuk menampilkan jalur yang akan dilalui.
6. Label untuk menampilkan eksport.
7. Label untuk menampilkan edit route.
8. Label untuk menampilkan mobile tracking.
9. Tombol untuk menampilkan form perhitungan jalur yang dilewati.
10. Tombol untuk menampilkan data client.
11. Tombol untuk mengulangi proses.
12. Tombol untuk melakukan refresh halaman.
13. Tombol untuk melakukan pengujian javascript.
14. Tombol untuk menampilkan halaman about.
15. Tombol untuk keluar dari halaman login.
16. Label untuk menampilkan maps.
17. Label untuk menampilkan hasil perhitungan.
18. Label untuk menampilkan jalur yang akan dilalui.
#ap
(16)
Tujuan
(1)
Text %ox
(2)
add
(3)
Pilih jalur
(4)
&alking ('alan kaki)
(5)
Bic(cling ()aik sepeda)
*+oid ,ig,-a(s (.indari /alan ra(a)
*+oid toll roads (.indari /alan tol)
Es!ort
(6)
Edit "oute
(#)
$o%ile Tra&ing
(')
Tracking #o%ile
(()
.itung 0er/alanan T10
.itung 0er/alanan * - 2
)ata *lient
(1+)
Ulangi lagi
(11)
"efresh ,alaman
(12)
Pengujian ja-as&ri!t
(13)
.%out
(14)
Logout
(15)
Lama per/alanan dan pan/ang per/alanan
(1#)
'alan (ang dilalui
(1')
Universitas Sumatera Utara
36
3.2.4.4 Halaman Data User
Halaman data user ini merupakan rancangan yang digunakan untuk manajemen data
user yang sudah terdaftar sebagai user, form ini hanya ditampilkan pada menu admin
sebagai manajemen data user.
Gambar 3.11 Halaman Data User
Keterangan:
1. Label untuk menampilkan tujuan.
2. Text box untuk menampilkan input tujuan.
3. Tombol untuk menampilkan form add.
4. Label untuk menampilkan pilih jalur.
5. checkbox untuk menampilkan jalur yang akan dilalui.
6. Label untuk menampilkan eksport.
7. Label untuk menampilkan edit route.
8. Label untuk menampilkan mobile tracking.
9. Tombol untuk menampilkan form perhitungan jalur yang dilewati.
10. Tombol untuk menampilkan data user.
11. Tombol untuk mengulangi proses.
12. Tombol untuk melakukan refresh halaman.
Data User
[16]
Tujuan
(1)
Text %ox
(2)
add
(3)
Pilih jalur
(4)
&alking ('alan kaki)
(5)
Bic(cling ()aik sepeda)
*+oid ,ig,-a(s (.indari /alan ra(a)
*+oid toll roads (.indari /alan tol)
Es!ort
(6)
Edit "oute
(#)
$o%ile Tra&ing
(')
Tracking #o%ile
(()
.itung 0er/alanan T10
.itung 0er/alanan * - 2
)ata *lient
(1+)
Ulangi lagi
(11)
"efresh ,alaman
(12)
Pengujian ja-as&ri!t
(13)
.%out
(14)
Logout
(15)
Universitas Sumatera Utara
37
13. Tombol untuk melakukan pengujian javascript.
14. Tombol untuk menampilkan halaman about.
15. Tombol untuk keluar dari halaman login.
16. Label untuk menampilkan data user.
3.2.4.5 Halaman About
Halaman about berfungsi untuk menampilkan informasi tentang profil penulis. Profil
penulis meliputi biodata penulis serta data akademik. Rancangan about dapat dilihat
seperti pada Gambar 3.12.
Gambar 3.12 Halaman About
Judul Skripsi
Tentang Penulis
Fakultas
Universitas Sumatera Utara
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
4.1.1 Implementasi Algoritma Ant Colony Optimization
Proses yang dilakukan pertama kali adalah yaitu melacak posisi koordinat
sebuah ponsel. Koordinat yang berhasil dilacak kemudian akan disimpan kedalam
database. Data dapat dilihat seperti pada Tabel 4.1.
Tabel 4.1. Koordinat Ponsel Yang Terlacak Oleh Apliaksi Mobile Tracking
ID
NAMA Lat Long
Alamat
1
Donny Sanjaya 3,5855251 98,6312905
Jl. Merpati
2
Ridho Satrya Akbar 3,5678042 98,6422931
Jl. Setia Budi
3
Rajab Sihotang 3,5731014 98,6535551
Jl. Mesjid
4
Chandra Kurniawan 3,5673288 98,6607754
Jl. Jamin Ginting
Jika masing-masing koordinat diatas digambarkan pada tampilan graf maka
dapat kita lihat titik yang akan dilewati dalam pencarian jarak terdekat. Waypoint
menunjukkan lokasi dari suatu tempat, dan dihitung menggunakan latitude (lintang)
dan longitude (bujur). Untuk perhitungan yang lebih tepat dari jarak antara dua tempat
yang jauh, rumus jarak lingkaran besar dapat digunakan. Rumus yang menggunakan
sifat trigonometri dari suatu koordinat termasuk sinus, cosinus, arccosinus dan
perkiraan jari-jari bumi, maka jarak dari suatu tempat dapat dihitung.
Universitas Sumatera Utara
39
Langkah-langkah untuk menghitung jarak antara dua waypoint adalah sebagai
berikut :
Mengkonversi bujur dan lintang dua waypoint dari representasi desimal ke radian
dibagi dengan 180 / , atau 57,29578.
1. Jarak antara Jl. Merpati(1) dan Jl. Setia Budi(2)
Pengukuran lintang dan bujur untuk Jalan Merpati adalah
Lintang 3,5855251, Bujur 98,6312905
Pengukuran bujur dan lintang untuk Jalan Setia Budi adalah
Lintang 3,5678042, Bujur 98,6422931
Bagi dengan 180 / , sehingga diperoleh
Jalan Merpati : Lintang radian = 0,062579218
Bujur radian = 1,721440765
Jalan Setia Budi : Lintang radian = 0,06226993
Bujur radian = 1,721632796
Hitung jarak dua waypoints dengan rumus
= Acos(sin(z
1
) . sin(z
2
) +cos(z
21
) . cos(z
2
) . cos(
2
1
) . R
D = Acos(sin(0,062579218) . sin(0,06226993) +
cos(0,062579218) .cos(0,06226993) .
cos(1,721632796-1,721440765)) . 6371
Maka jarak = 2,318 km
2. Jarak antara Jalan Setia Budi(2) dan Jalan Mesjid(3)
Pengukuran bujur dan lintang untuk Jalan Setia Budi adalah
Lintang 3,5678042, Bujur 98,6422931
Pengukuran lintang dan bujur untuk Jalan Mesjid adalah
Lintang 3,5731014, Bujur 98,6535551
Universitas Sumatera Utara
40
Bagi dengan 180 / , sehingga diperoleh
Jalan Setia Budi : Lintang radian = 0,06226993
Bujur radian = 1,721632796
Jalan Mesjid : Lintang radian = 0,062362384
Bujur radian = 1,721829355
Hitung jarak dua waypoints dengan rumus
= Acos(sin(z
1
) . sin(z
2
) +cos(z
1
) . cos(z
2
) . cos(
2
1
) . R
D = Acos(sin(0,06226993) . sin(0,062362384)+
cos(0,06226993) .cos(0,062362384) .
cos(1,721829355-1,721632796)) . 6371
Maka jarak = 1,382 km
3. Jarak antara Jalan Mesjid(3) dan Jalan Jamin Ginting(4)
Jalan Mesjid : Lintang radian = 0,062362383938
Bujur radian = 1,721829355293
Jalan Jamin Ginting : Lintang radian = 0,062261633061
Bujur radian = 1,721955373301
Maka jarak = 1,027 km
4. Jarak antara Jalan Merpati(1) dan Jalan Jamin Ginting(4)
Jalan Merpati : Lintang radian = 0,062579218408
Bujur radian = 1,721440764716
Jalan Jamin Ginting : Lintang radian = 0,062261633061
Bujur radian = 1,721955373301
Maka jarak = 3,847 km
5. Jarak antara Jalan Setia Budi (2) dan Jalan Jamin Ginting (4)
Jalan Setia Budi : Lintang radian = 0,062269930356
Bujur radian = 1,721632796312
Universitas Sumatera Utara
41
Jalan Jamin Ginting : Lintang radian = 0,062261633061
Bujur radian = 1,721955373301
Maka jarak = 2,052 km
6. Jarak antara Jalan Merpati (1) dan Jalan Mesjid (3)
Jalan Merpati : Lintang radian = 0,062579218408
Bujur radian = 1,721440764716
Jalan Mesjid : Lintang radian = 0,062362383938
Bujur radian = 1,721829355293
Maka jarak = 2,830 km
Tampilan graf dapat dilihat pada Gambar 4.1.
Gambar 4.1 Graf Dengan Empat Vertex
Dari graf diatas, jarak antar kota dapat ditampilkan dimasukan kedalam sebuah tabel.
Kemudian akan dicari route terpendeknya.
Tabel 4.2 Jarak Antar Kota
Kota ke- 1 2 3 4
1 0 2,318 2,830 3,847
2 2,318 0 1,381 2,052
3 2,830 1,381 0 1,027
4 3,847 2,052 1,027 0
1 2
4 3
2,318 km
2,830 km
3,847 km
2,052 km
1,027 km
1,381 km
Universitas Sumatera Utara
42
Berikut ini langkah-langkah perhitungan route terpendek menggunakan algoritma
semut.
Parameterparameter yang digunakan adalah:
Alfa () = 1.00
Beta () = 1.00
Rho () = 0.50
ij awal = 0.01
Maksimum siklus (NCmax) = 1
Tetapan siklus semut (Q) = 1
Banyak semut (m) = 3
Dari jarak kota yang telah diketahui dapat dihitung visibilitas antar kota (ij) = 1/dij
Tabel 4.3 Visibilitas Antar Kota
Kota ke- 1 2 3 4
1 0 0,431406 0,353357 0,259943
2 0,431406 0 0,724113 0,487329
3 0,353357 0,724113 0 0,97371
4 0,259943 0,487329 0,97371 0
Intensitas feromon antar titik (ij) akan diperlihatkan pada table 4.4 dibawah ini :
Tabel 4.4 Feromon Antar Titik
Kota ke- 1 2 3 4
1
0 0,01 0,01 0,01
2 0,01 0 0,01 0,01
3 0,01 0,01 0 0,01
4 0,01 0,01 0,01 0
Nilai dari parameter visibilitas () dan intensitas feromon () ini nantinya akan
digunakan dalam persamaan probabilitas dan merupakan parameter yang
mempengaruhi semut dalam pemilihan titik berikutnya ( aturan transisi).
Universitas Sumatera Utara
43
Mencari titik tujuan berikutnya dengan perhitungan probabilitas :
Siklus ke-1
Semut ke 1:
- Daftar semut 1 ke tujuan
- Probabilitas dari kota 1 ke setiap kota berikutnya dapat dihitung dengan persamaan
P
k
(r, s) = _
|(r, s)]
u
. |q(r, s)]
[
_ |(r, u)]
u
. |q(r, u)]
[
uc]
k
()
u
[(r,u)]
.[(r,u)]
.[(r,u)]
.[(r,u)]
.[(r,u)]
.[(r,u)]
.[(r,u)]