chapter iii

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

Upload: indra-lesmana

Post on 17-Dec-2015

5 views

Category:

Documents


0 download

DESCRIPTION

chapter iii

TRANSCRIPT

  • 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