Anda di halaman 1dari 43

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

Materials

Man
Memiliki keterbatasan
dalam memproses data

Kesulitan dalam
pembuatan peta terbaru

Penentuan jarak terdekat dari


sebuah koordinat ponsel
Harga perangkat GPS
relatif mahal

Pencarian jarak terdekat


masih manual

Machine

Method

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.

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 nonfungsional 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.
Daftar
<< Extends >>

Data User

Login
Kordinat Ponsel
User

<< Extends >>

Long-Lat

Admin

Profil User
Hasil Perhitungan
Peta Graph

<< include >>


<< include >>

Durasi Dalam
Matriks

<< Include >>

Hitung
Perjalanan

Eksport data
<< include >>

Gambar 3.3. Use-Case Diagram Pada Sistem

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

Pseudocode
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 masingmasing 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

Mobile Tracking(1)

Username(2)
Text Box(3)

Password(4)
Text Box(5)

Login(6)

daftar(7)
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

Universitas Sumatera Utara

34

Tracking location pocessing... (1)


YYYY-mm-dd

Map(2)

Lat : (3)
Long :

Edit profile(4)

LogOut(5)

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

Universitas Sumatera Utara

35

Tujuan(1)

Text box(2)

add(3)

Pilih jalur(4)
Walking (Jalan kaki) (5)
Bicycling (Naik sepeda)
Avoid highways (Hindari jalan raya)
Avoid toll roads (Hindari jalan tol)

Map(16)

Eksport(6)
Edit Route(7)
Mobile Tracking(8)

Tracking Mobile(9)
Hitung Perjalanan TSP
Hitung Perjalanan A - Z
Data Client(10)
Ulangi lagi(11)
Refresh Halaman(12)
Pengujian javascript(13)
About

Lama perjalanan dan panjang perjalanan(17)

(14)

Jalan yang dilalui(18)

Logout(15)

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.

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.

Tujuan(1)

Data User[16]
(2)

Text box

(3)

add

Pilih jalur(4)
Walking (Jalan kaki) (5)
Bicycling (Naik sepeda)
Avoid highways (Hindari jalan raya)
Avoid toll roads (Hindari jalan tol)
Eksport(6)
Edit Route(7)
Mobile Tracking(8)

Tracking Mobile(9)
Hitung Perjalanan TSP
Hitung Perjalanan A - Z
Data Client(10)
Ulangi lagi(11)
Refresh Halaman(12)
Pengujian javascript(13)
About(14)
Logout(15)

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.

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.

Judul Skripsi

Tentang Penulis

Fakultas

Gambar 3.12 Halaman About

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
1
2
3
4

NAMA
Donny Sanjaya
Ridho Satrya Akbar
Rajab Sihotang
Chandra Kurniawan

Lat
3,5855251
3,5678042
3,5731014
3,5673288

Long
98,6312905
98,6422931
98,6535551
98,6607754

Alamat
Jl. Merpati
Jl. Setia Budi
Jl. Mesjid
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 :

Jalan Setia Budi :

Lintang radian

= 0,062579218

Bujur radian

= 1,721440765

Lintang radian

= 0,06226993

Bujur radian

= 1,721632796

Hitung jarak dua waypoints dengan rumus


=

(sin(

. sin(

+ cos(

. cos(

. cos(

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 :

Jalan Mesjid :

Lintang radian

= 0,06226993

Bujur radian

= 1,721632796

Lintang radian

= 0,062362384

Bujur radian

= 1,721829355

Hitung jarak dua waypoints dengan rumus


=

(sin(

. sin(

+ cos(

. cos(

. cos(

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


Bujur radian

= 0,062261633061
= 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


Bujur radian

= 0,062261633061
= 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


Bujur radian

= 0,062261633061
= 1,721955373301

Maka jarak = 2,052 km

6. Jarak antara Jalan Merpati (1) dan Jalan Mesjid (3)


Jalan Merpati :

Jalan Mesjid :

Lintang radian

= 0,062579218408

Bujur radian

= 1,721440764716

Lintang radian

= 0,062362383938

Bujur radian

= 1,721829355293

Maka jarak = 2,830 km


Tampilan graf dapat dilihat pada Gambar 4.1.

2,318 km

1,381 km
2,052 km

2,830 km
3,847 km

4
1,027 km

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-

2,318

2,830

3,847

2,318

1,381

2,052

2,830

1,381

1,027

3,847

2,052

1,027

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-

0,431406

0,353357

0,259943

0,431406

0,724113

0,487329

0,353357

0,724113

0,97371

0,259943

0,487329

0,97371

Intensitas feromon antar titik (ij) akan diperlihatkan pada table 4.4 dibawah ini :
Tabel 4.4 Feromon Antar Titik
Kota ke-

0,01

0,01

0,01

0,01

0,01

0,01

0,01

0,01

0,01

0,01

0,01

0,01

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
( ,

( ,

$%&' ((

. ( , !
( , # . ( , #
0

[(r,u)].[(r,u)] = (0.01*0) + (0.01*0,431406) + (0.01*0,353357) + (0.01*0,259943)


= 0,01045
dengan demikian dapat dihitung probabilitas dari kota 1 menuju setiap kota =
Kota 1 = 0.00
Kota 2 = (0.01)1.00 . (0,431406)1.00 / 0,01045 = 0,412829
Kota 3 = (0.01)1.00 . (0,353357)1.00/ 0,01045 = 0,338141
Kota 4 = (0.01)1.00 . (0,259943)1.00/ 0,01045 = 0.248749

- Probabilitas Komulatif = 0,000

0,413 0,751 1,000

- Bilangan Random = 0.679


- Memeriksa qk-1 < r qk Kota yang dipilih adalah 3
- Daftar semut = 1 3
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)
( t,v )= *
(1,3 )=

++ .,

,-./ . 0

,.

=0,088

(1,3) (10,50 ).(0,01)+(0,088)


(1,3) 0,093
Menghitung probabilitas dari titik 3 ke titik berikutnya:
( ,

( ,

$%&' ((

. ( , !
( , # . ( , #
0

[(r,u)].[(r,u)] = (0.01*0,353357) + (0.01*0,724113) + (0.01*0,97371)


= 0,0205118

Universitas Sumatera Utara

44

Kota 1 = (0.01)1.00 . (0, 353357)1.00 / 0,0205118 = 0,172270


Kota 2 = (0.01)1.00 . (0,724113)1.00 / 0,0205118 = 0,353023
Kota 3 = 0
Kota 4 = (0.01)1.00 . (0, 97371)1.00/ 0,0205118

- Probabilitas Komulatif = 0,172270

= 0,474707

0,525292758 0,525292758 1,000

- Bilangan Random = 0.479


- Memeriksa qk-1 < r qk Kota yang dipilih adalah 2
- Daftar semut = 1 3 2
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)
( t,v )=

*++ .,

(3,2 )=

,.- . 0

= 1,1 0=0,1810

(3,2) (10,50 ).(0,01)+(0,1810)


(3,2) 0,186

Titik tujuan selanjutnya hanya ke titik 4


- Daftar semut = 1 3 2 4
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)
( t,v )= *
(2,4 )=

++ .,

,/1 . 0

= -,

/-

=0,1218

(2,4) (10,50 ).(0,01)+( 0,1218)


(2,4) 0,1268

Semut ke 2:
- Daftar semut 1 ke tujuan
- Probabilitas dari kota 1 ke setiap kota berikutnya dapat dihitung dengan persamaan
( ,

( ,

$%&' ((

. ( , !
( , # . ( , #
0

Universitas Sumatera Utara

45

[(r,u)].[(r,u)] = (0.01*0) + (0.01*0,431406) + (0.01*0,353357) + (0.01*0,259943)


= 0,01045
dengan demikian dapat dihitung probabilitas dari kota 1 menuju setiap kota =
Kota 1 = 0.00
Kota 2 = 0,412829
Kota 3 = 0,338141
Kota 4 = 0.248749
- Probabilitas Komulatif = 0,000

0,413 0,751 1,000

- Bilangan Random = 0.497


- Memeriksa qk-1 < r qk Kota yang dipilih adalah 2
- Daftar semut = 1 2
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)
( t,v )= *
(1,2 )=

++ .,

,. - . 0

= 2,

=0,1078

(1,2) (10,50 ).(0,01)+(0,1078)


(1,2) 0,1128
Menghitung probabilitas dari titik 2 ke titik berikutnya:
( ,

( ,

$%&' ((

. ( , !
( , # . ( , #
0

[(r,u)].[(r,u)] = (0.01*0,431406) + (0.01*0) + (0.01*0,724113) + (0.01*0,487329)


= 0,01643
Kota 1 = (0.01)1.00 . (0,431406)1.00 / 0,01643 = 0,0087
Kota 2 = 0.00
Kota 3 = (0.01)1.00 . (0,724113)1.00 / 0,01643 = 0,5926
Kota 4 = (0.01)1.00 . (0,487329)1.00 / 0,01643 = 0.3988
- Probabilitas Komulatif = 0,263

0,263 0,703 1,000

- Bilangan Random = 0.598


- Memeriksa qk-1 < r qk Kota yang dipilih adalah 3
- Daftar semut = 1 2 3
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)

Universitas Sumatera Utara

46

( t,v )= *
(2,3 )=

++ .,

, .- . 0

= 0,11 0=0,21966

(2,3) (10,50 ).(0,01)+(0,21966)


(2,3) 0,2247
Titik tujuan selanjutnya hanya ke titik 4
- Daftar semut = 1 2 3 4
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)
( t,v )= *
(3,4 )=

++ .,

,/ 3 . 0

= 0,

/-

=0,2434

(3,4) (10,50 ).(0,01)+( 0,2434)


(3,4) 0,2484

Semut ke 3:
- Daftar semut 1 ke tujuan
- Probabilitas dari kota 1 ke setiap kota berikutnya dapat dihitung dengan persamaan
( ,

( ,

$%&' ((

. ( , !
( , # . ( , #
0

[(r,u)].[(r,u)] = (0.01*0) + (0.01*0,431406) + (0.01*0,353357) + (0.01*0,259943)


= 0,01045
dengan demikian dapat dihitung probabilitas dari kota 1 menuju setiap kota =
Kota 1 = 0.00
Kota 2 = 0,412829
Kota 3 = 0,338141
Kota 4 = 0.248749
- Probabilitas Komulatif = 0,000

0,413 0,751 1,000

- Bilangan Random = 0.721


- Memeriksa qk-1 < r qk Kota yang dipilih adalah 3
- Daftar semut = 1 3
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)

Universitas Sumatera Utara

47

( t,v )= *
(1,3 )=

++ .,

,-./ . 0

,.

=0,088

(1,3) (10,50 ).(0,01)+(0,088)


(1,3) 0,093

Menghitung probabilitas dari titik 3 ke titik berikutnya:


( ,

( ,

$%&' ((

. ( , !
( , # . ( , #
0

[(r,u)].[(r,u)] = (0.01*0,353357) + (0.01*0,724113) + (0.01*0,97371)


= 0,0205118
Kota 1 = 0,172270
Kota 2 = 0,353023
Kota 3 = 0
Kota 4 = 0,474707

- Probabilitas Komulatif = 0,172270 0,525292758 0,525292758 1,000


- Bilangan Random = 0.519
- Memeriksa qk-1 < r qk Kota yang dipilih adalah 2
- Daftar semut = 1 3 2
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)
( t,v )= *
(3,2 )=

++ .,

,.- . 0

= 1,1 0=0,1810

(3,2) (10,50 ).(0,01)+(0,1810)


(3,2) 0,186
Titik tujuan selanjutnya hanya ke titik 4
- Daftar semut = 1 3 2 4
- Melakukan pembaruan lokal feromon menggunakan persamaan (3):
(t,v) (1 ). (t,v)+ (t,v)
( t,v )= *

++ .,

Universitas Sumatera Utara

48

,/1 . 0

(2,4 )=

= -,

/-

=0,1218

(2,4) (10,50 ).(0,01)+( 0,1218)


(2,4) 0,1268

Hasil rute semut pada siklus 1 adalah rute:


Hasil pencarian dari siklus pertama seperti yang terlihat pada tabel 4.5 berikut:

Tabel 4.5 Hasil Siklus I Algoritma Semut


Semut

Route

Panjang

Semut 1

1324

6,263 Km

Semut 2

1234

4,726 Km

Semut 3

1324

6,263 Km

Melakukan pembaruan global feromon menggunakan persamaan (4)


(t,v)(1 ). (t,v) +. (t,v)
( t,v )= 4

567 8 9:;< (=, >


0

#=@ =@ A<:;

Melakukan pembaruan global untuk rute terbaik pada siklus I:

Rute terbaik adalah 1 2 3 4 dengan panjang 567 = 4,726 FG, sehingga diperoleh

( t,v )=

0,3 H

= 0,2116

(t,v)(1 ). (t,v) +. (t,v)

(1,2)(10,1 ).( 0,1128) +(0,1).( 0,2116)


(1,2)0,12268

(2,3)(10,1 ).( 0,2247) +(0,1).( 0,2116)


(2,3) 0,22339

(3,4)(10,1 ).( 0,248) +(0,1).( 0,2116)


(3,4) 0,24436

Melakukan pembaruan global untuk rute lainnya:


(t,v)(1 ). (t,v) +. (t,v)
(t,v) = 0
(1,3)(1 0,1) (0,093) +(0,1).(0)
(1,3)0,0837

Universitas Sumatera Utara

49

(2,4)(1 0,1) (0,126) +(0,1).(0)


(2,4)0,1143

Intensitas feromon pada setiap titik setelah diperbaharui (ij hasil dari siklus I) akan
ditunjukkan oleh tabel 4.6 di bawah ini.

Tabel 4.6 Feromon Antar Titik Pada Graf


1
2
3
4

1
0,12268
0,0837
0

2
0,12268
0,22339
0,1143

3
0,0837
0,22339
0,24436

4
0
0,1143
0,24436
-

Dari tabel diatas terlihat bahwa terjadi perubahan nilai feromon. Untuk titik
yang sering dikunjungi oleh semut terjadi penambahan intensitas feromon, sedangkan
pada titik yang jarang dikunjungi semut terjadi pengurangan nilai intensitas feromon
(evaporasi). Nilai intensitas feromon yang baru inilah yang akan digunakan untuk
melakukan perhitungan pada siklus berikutnya.

Untuk melakukan perhitungan perjalanan, kemudian melakukan pencarian


jalur terdekat, penulis melakukannya dengan cara mengimplementasikan kode
program yang dapat dilihat seperti pada Tabel 4.7.

Tabel 4.7. Kode Program Untuk Penentuan Route Terpendek


Baris
Kode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Kode Program
function AntColony(mode)
var alfa
var beta
var rho
var asymptoteFactor
var pher
var nextPher
var prob
var numAnts
var numWaves

{
=
=
=
=
=
=
=
=
=

1.0;
1.0;
0.5;
0.01;
new Array();
new Array();
new Array();
20;
20;

for (var i = 0; i < numActive; ++i) {


pher[i] = new Array();
nextPher[i] = new Array();
}

Universitas Sumatera Utara

50

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

for (var i = 0; i < numActive; ++i) {


for (var j = 0; j < numActive; ++j) {
pher[i][j] = 1;
nextPher[i][j] = 0.0;
}
}
var
var
var
var

lastNode = 0;
startNode = 0;
numSteps = numActive - 1;
numValidDests = numActive;

if (mode == 1) {
lastNode = numActive - 1;
numSteps = numActive - 2;
numValidDests = numActive - 1;
}
for (var wave = 0; wave < numWaves; ++wave) {
for (var ant = 0; ant < numAnts; ++ant) {
var curr = startNode;
var currDist = 0;
for (var i = 0; i < numActive; ++i) {
visited[i] = false;
}
currPath[0] = curr;
for (var step = 0; step < numSteps;
++step) {
visited[curr] = true;
var cumProb = 0.0;
for (var next = 1; next <
numValidDests; ++next) {
if (!visited[next]) {
prob[next] =
Math.pow(pher[curr][next], alfa) * Math.pow(dur[curr][next],
0.0 - beta);
cumProb += prob[next];
}
}
var guess = Math.random() * cumProb;
var nextI = -1;
for (var next = 1; next <
numValidDests; ++next) {
if (!visited[next]) {
nextI = next;
guess -= prob[next];
if (guess < 0) {
nextI = next;
break;
}
}
}
currDist += dur[curr][nextI];
currPath[step+1] = nextI;
curr = nextI;
}
currPath[numSteps+1] = lastNode;
currDist += dur[curr][lastNode];
// k2-rewire:

Universitas Sumatera Utara

51

77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136

var lastStep = numActive;


if (mode == 1) {
lastStep = numActive - 1;
}
var changed = true;
var i = 0;
while (changed) {
changed = false;
for (; i < lastStep - 2 && !changed;
++i) {
var cost =
dur[currPath[i+1]][currPath[i+2]];
var revCost =
dur[currPath[i+2]][currPath[i+1]];
var iCost =
dur[currPath[i]][currPath[i+1]];
var tmp, nowCost, newCost;
for (var j = i+2; j < lastStep
&& !changed; ++j) {
nowCost = cost + iCost +
dur[currPath[j]][currPath[j+1]];
newCost = revCost +
dur[currPath[i]][currPath[j]]
+
dur[currPath[i+1]][currPath[j+1]];
if (nowCost > newCost) {
currDist += newCost - nowCost;
// Reverse the detached road
segment.
for (var k = 0; k <
Math.floor((j-i)/2); ++k) {
tmp = currPath[i+1+k];
currPath[i+1+k] = currPath[jk];
currPath[j-k] = tmp;
}
changed = true;
--i;
}
cost +=
dur[currPath[j]][currPath[j+1]];
revCost +=
dur[currPath[j+1]][currPath[j]];
}
}
}
if (currDist < bestTrip) {
bestPath = currPath;
bestTrip = currDist;
}
for (var i = 0; i <= numSteps; ++i) {
nextPher[currPath[i]][currPath[i+1]]
+= (bestTrip - asymptoteFactor * bestTrip) / (numAnts *
(currDist - asymptoteFactor * bestTrip));
}
}
for (var i = 0; i < numActive; ++i) {

Universitas Sumatera Utara

52

137
138
139
140
141
142
143
144

for (var j = 0; j < numActive; ++j) {


pher[i][j] = pher[i][j] * (1.0 - rho) + rho
* nextPher[i][j];
nextPher[i][j] = 0.0;
}
}
}
}

Keterangan:
1. Baris 1 s/d 144: Blok Algoritma Ant Colony Optimization dalam penentuan
route terpendek .

Sebagai contoh, beberapa koordinat ponsel yang digunakan dapat dilihat pada
Gambar 4.1, kemudian dihitung menggunakan algortima ACO untuk menhgasilkan
rute perjalanan tercepat, output yang dihasilkan dapat dilihat seperti pada Gambar 4.2.

Gambar 4.2 Posisi Koordinat Dalam Google Maps

Universitas Sumatera Utara

53

Gambar 4.3 Route Perjalanan

Pada tampilan Export merupakan hasil perhitungan jarak terdekat antar kota
sesuai urutan pada menu export to csv, merupakan durasi perjalanan masing-masing
kota yang ditampilkan dalam matrix. Tampilan Export dapat dilihat pada Gambar 4.4.

Gambar 4.4 Export

4.2. Pengujian Sistem

Perangkat lunak yang dirancang memerlukan pengujian data dengan melakukan


pengujian dari sisi user untuk mendapatkan koordinat ponsel dan menentukan jarak

Universitas Sumatera Utara

54

terdekatnya. Hal tersebut betujuan untuk mengetahui bagaimana kinerja aplikasi


secara garis besar sebelum aplikasi dijalankan.

4.2.1 Pengujian Aplikasi User

Untuk melakukan pengujian aplikasi yang dirancang, saat aplikasi ini pertama kali
dijalankan, akan muncul sebuah form login. Form login digunakan sebagai autentikasi
untuk masuk ke menu utama user, tampilan dapat dilihat pada Gambar 4.5.

Gambar 4.5 Login

Jika belum terdaftar di aplikasi, user dapat mendaftarkan ke dengan menekan tombol
daftar, kemudian user harus mengisi data pada form pendaftaran seperti Gambar 4.6.

Gambar 4.6 Pendaftaran

Universitas Sumatera Utara

55

Setelah data sudah terisi dengan benar maka, data akan diverifikasi oleh admin agar
user dapat melakukan login, tampilan setelah melakukan pendaftaran dilihat pada
gambar 4.7.

Gambar 4.7 Pemberitahuan Aktifasi

Setelah mengisikan username dan password pada form login, aplikasi akan
melakukan authentikasi data kemudian akan diarahkan pada tampilan utama, dapat
dilihat pada gambar 4.8

Gambar 4.8 Halaman User

Universitas Sumatera Utara

56

Menu yang tersedia pada aplikasi user hanya edit profile dan logout. Untuk
melakukan perubahan data dapat dilihat pada gambar 4.9.

Gambar 4.9. Halaman Perubahan Data User

4.2.2 Pengujian Aplikasi Admin

Untuk masuk ke tampilan utama admin terlebih dahulu akan melakukan pengisian
username dan password sebagai autentikasi untuk masuk ke admin, tampilan login
admin dapat dilihat pada Gambar 4.10.

Gambar 4.10 Login Admin

Universitas Sumatera Utara

57

Apabila proses login admin berhasil maka, akan diarahkan pada bagian menu utama
dmin. Tampilan dapat dilihat pada gambar 4.11.

Gambar 4.11 Halaman Admin

Untuk melacak posisi user, pilih tombol lacak user maka peta akan menampilkan
posisi user berdasarkan koordinat yang sudah tersimpan didatabase sebelumnya.
Tampilan dapat dilihat pada gambar 4.12.

Gambar 4.12 Hasil Tracking Koordinat User

Universitas Sumatera Utara

58

Setelah posisi user sudah dilacak, kemudian dapat dilakukan perhitungan untuk
penentuan jarak terdekat. untuk melihat hasil perhitungan perjalanan dapat dilihat
pada gambar 4.13

Gambar 4.13 Hasil Perhitungan


Route awal untuk melalui semua titik yaitu 1->2->3->4->5->6->7->8. Hasil dapat
dilihat pada Gambar 4.14.

Gambar 4.14 Urutan Titik Sebelum Perhitungan

Universitas Sumatera Utara

59

Untuk melihat route tercepat yang harus dilalui setelah perhitungan dengan
menggunakan algoritma ACO untuk yaitu 1->4->6->7->2->3->5->8. Hasil dapat
dilihat pada Gambar 4.15.

Gambar 4.15 Urutan Titik Setelah Perhitungan.

Menekan tombol durasi dalam matrix untuk memulai melihat hasil perhitungan yang
disajikan dalam sebuah matrix. tampilan dapat dilihat seperti pada Gambar 4.16.

Gambar 4.16 Hasil Perhitungan Dalam Matrix.

Universitas Sumatera Utara

60

4.2.3 Pengujian Sistem Dengan 3 Buah Koordinat

Pengujian dengan 3 buah koordinat adalah pengujian dalam melakukan proses


penentuan jarak antar pengguna sejumlah 3 tempat dengan lokasi titik dapat
ditentukan melalui tombol. Pengujian pemasukan data dengan 3 tempat dapat dilihat
pada Gambar 4.17.

Gambar 4.17 Pengujian 3 buah Koordinat

4.2.4 Fungsi Fitur One Way Trip

Setelah titik lokasi yang ingin dituju telah diinputkan pada layar maka user dapat
memilih fitur pencarian. Fitur one way trip akan mencari rute terpendek dimana lokasi
yang pertama diinputkan adalah lokasi awal dan lokasi terakhir menjadi lokasi tujuan.
Ujicoba dilakukan dengan 3 node. Hasilnya sebagai berikut :

Universitas Sumatera Utara

61

Gambar 4.18 Fitur Oneway Trip dan Directions

Selain itu fitur ini bisa ditempuh dengan jalan (by walking). Hasilnya sebagai berikut:

Gambar 4.19 Fitur Oneway Trip by Walking dan Directions

Dari Gambar diatas dapat dilihat jarak tempuh total dan rute yang ditempuh dari fitur
one way trip by walking lebih kecil dibandingkan fitur one way trip by driving hal ini
disebabkan berbedanya akses jalan yang dapat ditempuh oleh keduanya.

Universitas Sumatera Utara

BAB 5

KESIMPULAN DAN SARAN

5.1

Kesimpulan

Dari penelitian tentang penentuan jalur terpendek menggunakan algoritma Ant Colony
Optimization, dapat diambil kesimpulan sebagai berikut:

1. Aplikasi mobile tracking dalam penentuan jarak terdekat dengan dukungan


Sistem Informasi Geografis ini dapat menunjukkan rute terpendek antara
ponsel.

2. Kecepatan menampilkan suatu rute pada map tergantung pada jumlah kota
yang diinputkan, provider dan kestabilan koneksi internet.

5.2

Saran

Adapun saran yang dapat penulis berikan untuk mengembangkan penelitian ini adalah
sebagai berikut:

Universitas Sumatera Utara

63

1. Diharapkan pengembangan pada aplikasi ini supaya memiliki fitur yang lebih
banyak dan lebih menarik. Contohnya fitur untuk melacak truk pengiriman
barang, melacak sebuah lokasi toko, restoran dan tempat-tempat lainya.

2. Diharapkan pengembangan pada aplikasi ini menggunakan platform yang


berbeda (android, iOS, dll) untuk melacak koordinat ponsel.

Universitas Sumatera Utara

Anda mungkin juga menyukai