Chapter III
-
Upload
indra-lesmana -
Category
Documents
-
view
5 -
download
0
description
Transcript of Chapter III
-
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 >
Long-Lat >
Hasil Perhitungan
> >
Durasi Dalam Matriks
> Peta Graph
>
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(5)
Lat : (3)
Long :
Map(2)
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.
Map(16)
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)
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)
Lama perjalanan dan panjang perjalanan(17)
Jalan yang dilalui(18)
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 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)
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)
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
= (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 : Lintang radian = 0,06226993
Bujur radian = 1,721632796 Jalan Mesjid : 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 = 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
(, = (, . (, ! (, #. (, #!$%&'(( 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 = 0,474707
- Probabilitas Komulatif = 0,172270 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,10=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,3=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,110=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,10=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
(2,4 )= ,/1 . 0 = -,/-=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 1 3 2 4 6,263 Km
Semut 2 1 2 3 4 4,726 Km
Semut 3 1 3 2 4 6,263 Km
Melakukan pembaruan global feromon menggunakan persamaan (4) (t,v)(1 ). (t,v) +. (t,v)
( t,v )= 4 56789:;< (=, > #=@ =@A
-
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
Kode Program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
function AntColony(mode) { var alfa = 1.0; var beta = 1.0; var rho = 0.5; var asymptoteFactor = 0.01; var pher = new Array(); var nextPher = new Array(); var prob = new Array(); var numAnts = 20; var numWaves = 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 lastNode = 0; var startNode = 0; var numSteps = numActive - 1; var 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[j-k]; 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
-
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