Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
PENERAPAN ALGORITMA ANT COLONY OPTIMIZATION DALAM
MENYELESAIKAN TRAVELING SALESMAN PROBLEM
(Studi Kasus: PT Wahana Prestasi Logistik)
Skripsi
Oleh:
Trivaldi Rahardja
1111091000038
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2018 M / 1438 H
ii
PENERAPAN ALGORITMA ANT COLONY OPTIMIZATION DALAM
MENYELESAIKAN TRAVELING SALESMAN PROBLEM
(Studi Kasus: PT Wahana Prestasi Logistik)
Skripsi
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Komputer
Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta
Oleh :
Trivaldi Rahardja
1111091000038
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2018 M / 1438 H
iii
iv
v
vi
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI
UNTUK KEPENTINGAN AKADEMIS
Sebagai civitas akademik UIN Syarif Hidaytaullah Jakarta, saya yang bertanda
tangan di bawah ini:
Nama : Trivaldi Rahardja
NPM : 1111091000038
Program Studi : Teknik Informatika
Fakultas : Sains Dan Teknologi
Jenis Karya : Skripsi
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada
Universitas Islam Negeri Syarif Hidayatullah Jakarta Hak Bebas Royalti
Noneksklusif (Non-exclusive Royalty Free Right) atas karya ilmiah yang berjudul:
PENERAPAN ALGORITMA ANT COLONY OPTIMIZATION
DALAM MENYELESAIKAN TRAVELING SALESMAN PROBLEM
(STUDI KASUS: PT WAHANA PRESTASI LOGISTIK)
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non
Eksklusif ini Universitas Islam Negeri Syarif Hidayatullah Jakarta berhak
menyimpan, mengalih media/formatkan, mengelola dalam bentuk pangkalan data
(database), merawat, dan mempublikasikan tugas akhir saya selama tetap
mencantumkan nama saya sebagai penulis/pencipta dan sebagai pemilik Hak Cipta.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di : Jakarta
Pada tanggal : 25 Juni 2018
Yang menyatakan
(Trivaldi Rahardja)
vii
KATA PENGANTAR
Assalamu’alaikum Wr. Wb.
Segala puji dan syukur penulis panjatkan kehadirat Allah SWT atas segala
karunia, rahmat, kekuatan dan segala petunjuk serta kemudahan sehingga penulis
dapat menyelesaikan penulisan skripsi ini dengan sebaik-baiknya. Shalawat serta
salam tak lupa penulis haturkan kepada junjungan kita Nabi besar Muhammad SAW,
para sahabat, keluarga serta muslimin dan muslimat, semoga kita mendapatkan
syafa’at-Nya di akhirat kelak Amiin.
Skripsi ini berjudul “Penerapan Algoritma Ant Colony Optimization Dalam
Menyelesaikan Traveling Salesman Problem (Studi Kasus: PT Wahana Prestasi
Logistik)”, yang disusun untuk memenuhi salah satu syarat dalam menyelesaikan
program S1 pada Program Studi Teknik Informatika di Universitas Islam Negeri
Syarif Hidayatullah Jakarta.
Penulis menyadari bahwa skripsi ini tidak dapat terselesaikan tanpa bantuan
dari pihak lain. Oleh karena itu, izinkanlah penulis mengucapkan “terimakasih”
kepada semua pihak yang telah membantu dalam penulisan skripsi ini, terutama
kepada:
1. Kedua Orang Tua Penulis yang tidak henti-hentinya selalu memberikan
semangat dan dukungan baik dalam bentuk do’a, materi serta kasih sayang
yang melimpah.
2. Bapak DR. Agus Salim, M.Si, selaku Dekan Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta.
3. Ibu Arini, ST. MT. Selaku Ketua Program Studi Teknik Informatika, dan
Bapak Feri Fahrianto, M.Sc. selaku Sekretaris Program Studi Teknik
Informatika, Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta.
4. Bapak Hendra Bayu Suseno, M.Kom, dan Bapak Andrew Fiade, M.Kom,
selaku Dosen Pembimbing yang telah memberikan banyak nasihat, saran, dan
bimbingan yang bermanfaat kepada penulis selama penyusunan skripsi ini.
viii
5. Seluruh Dosen di Program Studi Teknik Informatika UIN Syarif Hidayatullah
Jakarta yang telah memberikan ilmu, pengalaman, bantuan, dan kerjasama
yang sangat berharga bagi penulis.
6. Bapak Novel Zulham selaku General Marketing Operasional PT Wahana
Prestasi Logistik yang selalu membimbing penulis dalam melakukan
penelitian di kantor perusahaan.
7. Seluruh sahabat sahabati PMII Komisariat Fakultas Sains dan Teknologi
yang penulis cintai, dan Faiz Nur Faiqoh yang selalu memberikan semangat
dan support selama ini untuk mengerjakan skripsi.
8. Seluruh teman-teman Program Studi Teknik Informatika Fakultas Sains dan
Teknologi UIN Syarif Hidayatullah.
9. Semua pihak yang secara langsung maupun tidak langsung membantu penulis
dalam menyelesaikan skripsi ini.
Semoga kebaikan dan bantuan yang sudah diberikan kepada penulis kiranya
dicatat sebagai amal baik oleh Allah SWT. Penulis menyadari bahwa skripsi ini jauh
dari kata sempurna, oleh karena itu penulis sangat mengharapkan kritik dan saran
yang bersifat membangun dari pembaca ke alamat email
Akhir kata, semoga skripsi ini dapat memberi manfaat bagi semua. Amiin
Amiin ya Robbal ‘alamiin.
Wassalamu’alaikum Wr. Wb.
Jakarta, 25 Juni 2018
Penulis
Trivaldi Rahardja
1111091000038
ix
TSP, Algoritma ACO, Rute Terpendek, Metode Heuristic,
RAD, Blackbox Testing.
Penerapan Algoritma Ant Colony Optimization Dalam
Menyelesaikan Traveling Salesman Problem (Studi Kasus: PT
Wahana Prestasi Logistik)
Penulis : Trivaldi Rahardja
Program Studi : Teknik Informatika
Judul :
ABSTRAK
Traveling Salesman Problem (TSP) adalah permasalahan yang dihadapi oleh
seorang salesman yang berangkat dari kota asalnya, berusaha menemukan rute
paling pendek ke semua kota pelanggan, lalu kembali ke kota asal, dengan syarat
semua kota hanya dikunjungi satu kali (Hardianto, 2013). TSP dapat diselesaikan
dengan metode heuristik yang menggunakan perhitungan kecerdasan buatan dalam
melakukan pencarian dan optimasi, salah satu contohnya adalah algoritma Ant
Colony Optimization (ACO) (Ridwan, Karima, 2015). Permasalahan TSP sering
dijumpai pada perusahaan ekspedisi termasuk PT Wahana Prestasi Logistik.
Berdasarkan hasil kuesioner terhadap 12 kurir yang beroperasi di wilayah Kecamatan
Ciputat pada perusahan tersebut, didapat 10 atau 83,3% responden mengalami
kesulitan dalam menentukan rute terpendek. Menurut Bapak Novel Zulham selaku
General Manager Operasional perusahaan, solusi dari permasalahan tersebut ialah
dengan membuat aplikasi yang dapat menemukan rute terpendek pada perjalanan
pengiriman paket kurir. Dalam mengembangkan aplikasi ini, peneliti menggunakan
metode Rapid Application Development (RAD), dan pengujiannya menggunakan
Blackbox Testing. Hasil dari aplikasi ini ialah mampu mencari rute pengiriman
dengan jarak terpendek dari 34 lokasi berbeda berbasis android dengan
menggunakan algoritma ACO.
Kata Kunci :
x
DAFTAR ISI
HALAMAN PERSETUJUAN .................................................................................... iii
PERNYATAAN ORISINALITAS ............................................................................. iv
HALAMAN PENGESAHAN ..................................................................................... v
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI SKRIPSI ................... v
KATA PENGANTAR ............................................................................................... vii
ABSTRAK .................................................................................................................. ix
DAFTAR ISI ................................................................................................................ x
DAFTAR GAMBAR ................................................................................................. xv
DAFTAR TABEL .................................................................................................... xvii
BAB 1 PENDAHULUAN ........................................................................................... 1
1.1. Latar Belakang Masalah ................................................................................ 1
1.2. Rumusan Masalah ......................................................................................... 3
1.3. Batasan Masalah ............................................................................................ 3
1.3.1. Metode ................................................................................................... 3
1.3.2. Tools ....................................................................................................... 4
1.3.3. Proses ..................................................................................................... 4
2.1. Tujuan Penelitian ........................................................................................... 4
2.2. Manfaat Penelitian ......................................................................................... 4
2.2.1. Bagi Peneliti ........................................................................................... 4
2.2.2. Bagi Universitas ..................................................................................... 5
2.2.3. Bagi Pengguna ....................................................................................... 5
2.3. Metodologi Penelitian ................................................................................... 5
xi
2.3.1. Metode Pengumpulan Data .................................................................... 5
2.3.2. Metode Pengembangan Sistem .............................................................. 6
2.3.3. Metode Pengujian .................................................................................. 6
2.4. Sistematika Penulisan .................................................................................... 6
BAB II TINJAUAN PUSTAKA & LANDASAN TEORI .......................................... 8
2.1. Traveling Salesman Problem (TSP) .............................................................. 8
2.1.1. Definisi TSP ........................................................................................... 8
2.1.2. Metode Konvensional ............................................................................ 9
2.1.3. Metode Heuristik ................................................................................... 9
2.2. Ant Colony Optimization (ACO) ................................................................. 10
2.2.1. Definisi ACO ........................................................................................ 10
2.2.2. Langkah-langkah kerja algoritma ACO ............................................... 11
2.2.3. Pseudo Code Algoritma ACO .............................................................. 14
2.3. Graf .............................................................................................................. 14
2.3.1. Definisi Graf ........................................................................................ 14
2.3.2. Graf Hamilton ...................................................................................... 15
2.4. Android ........................................................................................................ 16
2.4.1. Definisi Android .................................................................................. 16
2.4.2. Fitur Android ....................................................................................... 18
2.5. Java .............................................................................................................. 23
2.5.1. Pengertian Java .................................................................................... 23
2.5.2. Karakteristik Java ................................................................................. 23
2.6. Google Map ................................................................................................. 24
2.7. Android Studio ............................................................................................ 25
2.8. JSON ........................................................................................................... 26
xii
2.9. SQLite ......................................................................................................... 26
2.10. Application Program Interface (API) ...................................................... 27
2.11. Rapid Application Development (RAD) .................................................. 28
2.12. Flowchart ................................................................................................. 30
2.12.1. Definisi Flowchart ........................................................................... 30
2.12.2. Kelebihan Flowchart ........................................................................ 30
2.12.3. Kekurangan Flowchart ..................................................................... 31
2.12.4. Simbol-simbol Flowchart ................................................................ 31
2.13. Metode Pengumpulan Data...................................................................... 32
2.13.1. Pengertian Metode Pengumpulan Data ............................................ 32
2.13.2. Studi Pustaka .................................................................................... 32
2.13.3. Wawancara ....................................................................................... 32
2.13.4. Kuesioner ......................................................................................... 34
2.14. Pengujian Perangkat Lunak ..................................................................... 36
2.14.1. Definisi Pengujian ............................................................................ 36
2.14.2. Sasaran-saran Pengujian ................................................................... 36
2.14.3. Blackbox Testing .............................................................................. 37
2.15. Studi Literatur Sejenis ............................................................................. 38
BAB III METODOLOGI PENELITIAN .................................................................. 41
3.1. Metode Pengumpulan Data ......................................................................... 41
3.1.1. Studi Pustaka ........................................................................................ 41
3.1.2. Studi Lapangan .................................................................................... 41
3.2. Metode Pengembangan Sistem ................................................................... 43
3.2.1. Tahap Perencanaan Syarat ................................................................... 43
3.2.2. Tahap Workshop Desain ...................................................................... 43
xiii
3.2.3. Tahap Implementasi ............................................................................. 44
3.3. Kerangka Berpikir Penelitian ...................................................................... 45
BAB IV ANALISIS, PERANCANGAN, IMPLEMENTASI DAN PENGUJIAN
SISTEM ..................................................................................................................... 46
4.1. Tahap Pengumpulan Data ........................................................................... 46
4.1.1. Studi Pustaka ........................................................................................ 46
4.1.2. Studi Lapangan .................................................................................... 46
4.2. Tahap Perencanaan Syarat........................................................................... 52
4.2.1. Analisis Masalah .................................................................................. 52
4.2.2. Penyelesaian Masalah .......................................................................... 52
4.2.3. Analisis Kebutuhan .............................................................................. 52
4.2.4. Analisis Fitur ........................................................................................ 53
4.2.5. Analisis Algoritma ACO ...................................................................... 54
4.3. Tahap Workshop Desain ............................................................................. 62
4.3.1. Desain Sistem dan Proses .................................................................... 63
4.3.2. Perancangan Basisdata ......................................................................... 64
4.3.3. Perancangan User Interface ................................................................. 67
4.3.4. Pengkodean .......................................................................................... 70
4.4. Tahap Implementasi .................................................................................... 80
4.4.1. Blackbox Testing .................................................................................. 80
BAB V HASIL DAN PEMBAHASAN .................................................................... 83
5.1. Hasil ............................................................................................................ 83
5.1.1. Hasil Tampilan Aplikasi ...................................................................... 83
5.1.2. Hasil Proses Algoritma ACO dengan 34 Lokasi .................................. 86
5.2. Pembahasan ................................................................................................. 91
xiv
5.2.1. Perangkat Pengembangan Sistem ........................................................ 91
5.2.2. Penetapan Parameter Algortima ACO.................................................. 91
5.2.3. Perbandingan Algoritma ACO Dengan Metode Konvensional ........... 93
BAB VI PENUTUP ................................................................................................... 97
6.1. Kesimpulan .................................................................................................. 97
6.2. Saran ............................................................................................................ 97
DAFTAR PUSTAKA ................................................................................................ 99
LAMPIRAN ............................................................................................................. 101
xv
DAFTAR GAMBAR
Gambar 1.1 Hasil Kuesioner Pertanyaan 4 .................................................................. 3
Gambar 2.1 Ilustrasi Masalah TSP ............................................................................... 9
Gambar 2. 2 (a) Semut melewati setiap jalur dengan probabilitas sama, (b)Seiring
berjalannya waktu, rute terpendek akan lebih menguatkan, (c), Semua semut
melewati rute terpendek. ............................................................................................ 11
Gambar 2. 3 Contoh Graf ........................................................................................... 15
Gambar 2.4 (a) Graf tak-berarah semi-Hamilton, (b) Graf tak-berarah Hamilton, (c)
Graf berarah semi-Hamilton, (d) Graf berarah Hamilton .......................................... 16
Gambar 2. 5 Logo Android ........................................................................................ 18
Gambar 2. 6 Layar notifikasi Android yang diakses dengan menggeser layar (swipe)
dari bagian atas layar.................................................................................................. 20
Gambar 2. 7 Google Play Android............................................................................. 22
Gambar 2. 8 Google Map ........................................................................................... 25
Gambar 2. 9 Model RAD ........................................................................................... 29
Gambar 3.1 Kerangka Berfikir Penelitian.................................................................. 45
Gambar 4.1 Flowchart Algoritma ACO ..................................................................... 55
Gambar 4.2 Desain Sistem dan Proses....................................................................... 63
Gambar 4.3 User Interface Halaman Login ............................................................... 67
Gambar 4.4 User Interface Halaman Register ........................................................... 67
Gambar 4. 5 User Interface Halaman Menu Utama .................................................. 68
Gambar 4. 6 User interface Halaman Lihat Surat Jalan ............................................ 68
Gambar 4. 7 User Interface Halaman Rute Pengiriman Berbentuk List ................... 69
Gambar 4. 8 User Interface Halaman Rute Pengiriman Berbentuk Maps ................ 69
Gambar 5. 1 Hasil Tampilan Halaman Login ............................................................ 83
Gambar 5. 2 Hasil Tampilan Halaman Register ........................................................ 84
Gambar 5. 3 Hasil Tampilan Halaman Menu Utama................................................. 84
Gambar 5. 4 Hasil Tampilan Halaman Lihat Surat Jalan .......................................... 85
Gambar 5. 5 Hasil Tampilan Halaman Rute Pengiriman Berbentuik List ................. 85
xvi
Gambar 5. 6 Hasil Tampilan Halaman Rute Pengiriman Berbentuk Maps ............... 86
Gambar 5.7 Rute Terpendek 10 Lokasi ..................................................................... 96
xvii
DAFTAR TABEL
Tabel 2.5 Simbol-simbol Pada Flowchart (Sumber: Kadir, 2013) ............................ 31
Tabel 2.6 Studi Literatur Sejenis ............................................................................... 39
Tabel 4.1 Pertanyaan Kuesioner ................................................................................ 47
Tabel 4.2 Hasil Kuesioner Pertanyaan 1 .................................................................... 48
Tabel 4.3 Hasil Kuesioner Pertanyaan 2 .................................................................... 49
Tabel 4.4 Hasil Kuesioner Pertanyaan 3 .................................................................... 50
Tabel 4.5 Hasil Kuesioner Pertanyaan 4 .................................................................... 50
Tabel 4.6 Hasil Kuesioner Pertanyaan 5 .................................................................... 51
Tabel 4.7 Hasil Kuesioner Pertanyaan 6 .................................................................... 51
Tabel 4.8 Analisis Fitur .............................................................................................. 53
Tabel 4.9 Lokasi Alamat Pengiriman ........................................................................ 56
Tabel 4.10 Jarak Antar-Lokasi /edge ......................................................................... 57
Tabel 4. 11 Banyak Semut Pada Satu Lokasi ............................................................ 58
Tabel 4.12 Rute Kunjungan Setiap Semut Beserta Total Jaraknya ........................... 59
Tabel 4.13 Intensitas pheromone Pada Setiap edge Antar-Lokasi............................. 61
Tabel 4.20 Basisdata Surat Jalan ............................................................................... 65
Tabel 4.21 Basisdata Item .......................................................................................... 65
Tabel 4.22 Basisdata Best Rute .................................................................................. 66
Tabel 4.23 Pengujian Aplikasi ................................................................................... 80
Tabel 5. 1 Hasil Tampilan Aplikasi ........................................................................... 83
Tabel 5. 2 Alamat 34 Lokasi Beserta Koordinat ........................................................ 86
Tabel 5. 3 Lintasan Rute Pengiriman Terpendek Dengan 34 Lokasi ........................ 91
Tabel 5.4 Hasil Uji Coba Parameter α dan β ............................................................. 92
Tabel 5.5 Hasil Uji Coba Parameter ants, α dan β ..................................................... 93
Tabel 5.6 Besaran Parameter yang Digunakan Dalam Proses Algoritma ACO ......... 93
Tabel 5. 7 Perbandingan Algoritma ACO Dengan Metode Konvensional ................ 95
1
BAB 1
PENDAHULUAN
1.1. Latar Belakang Masalah
Traveling Salesman Problem (TSP) adalah permasalahan yang dihadapi oleh
seorang salesman yang berangkat dari kota asalnya, berusaha menemukan rute
paling pendek yang dapat ditempuh ke semua kota pelanggan dan kemudian kembali
ke kota asal, dengan syarat semua kota pelanggan hanya boleh dikunjungi satu kali
dalam tiap tournya (Hardianto, 2013).
TSP dapat diselesaikan dengan metode heuristik yang menggunakan
perhitungan kecerdasan buatan dalam melakukan pencarian dan optimasi, salah satu
contohnya adalah algoritma semut atau Ant Colony Optimization (ACO). Dari
berberapa algoritma yang telah dikembangkan untuk menyelesaikan persoalan jalur
terpendek, penulis memilih algoritma semut dikarenakan memiliki keunikan
tersendiri, yaitu terinspirasi dari tingkah laku semut di dunia nyata saat proses
pencarian sumber makanan dari sarangnya (Ridwan, Karima, 2015).
Salah satu bidang yang sering menghadapi permasalahan TSP ialah
perusahaan pengiriman barang. Menurut Johar (2016), perusahaan jasa pengiriman
barang adalah perusahaan yang bergerak dibidang layanan pengiriman barang. Salah
satu perusahaan ekspedisi yang menawarkan jasa pengiriman barang kepada
konsumen akhir ialah PT Wahana Prestasi Logistik.
Berdasarkan hasil wawancara yang telah penulis lakukan dengan bapak
Novel Zulham selaku General Manager PT Wahana Prestasi Logistik yang telah
penulis lakukan pada tanggal 22 November 2017, beliau menyatakan bahwa kurir
belum memiliki suatu rumus untuk menemukan rute terpendek saat melakukan
pengirimanan paket ke setiap alamat yang dituju. Hal ini tentu saja dapat merugikan
baik perusahaan maupun kurir tersebut. Kerugiannya ialah waktu yang ditempuh
menjadi lebih lama, tenaga yang dikerahkan lebih banyak, dan biaya dikeluarkan
lebih besar.
2
Selain wawancara, penulis juga mengumpulkan data melalui kuesioner yang
disebarkan kepada kurir PT Wahana Prestasi Logistik yang telah penulis lakukan
pada tanggal 22 November 2017, dengan metode proporsional sampling. Dari hasil
kuesioner yang telah dilakukan terhadap 12 responden, sebanyak 9 orang atau 75%
responden mengalami kesulitan dalam menentukan rute yang paling optimal dalam
melakukan pengiriman paket.
Bapak Novel Zulham mengungkapkan bahwa permasalahan tersebut dapat
diatasi dengan adanya aplikasi yang dapat menentukan rute perjalanan kurir ke setiap
lokasi pengiriman yang dituju dengan jarak paling pendek. Hal itu serupa dengan
hasil kuesioner yang menyatakan bahwa 11 orang atau 91,7% responden tertarik
dengan adanya sistem yang dapat mencari rute pengiriman paket yang paling optimal
atau terpendek ke setiap lokasi yang dituju.
Berdasarkan kuesioner yang telah penulis lakukan terkait dengan sistem
operasi yang digunakan oleh kurir PT Wahana Prestasi Logitsik, hasilnya
menyatakan bahwa 8 orang atau 66,7% responden menggunakan android, 3 orang
atau 25% responden menggunakan Blackberry, dan 1 orang atau 8,3% responden
menggunakan Symbian. Adapun hasil kuesioner tersebut dapat dilihat pada gambar
sebagai berikut:
3
Gambar 1.1 Hasil Kuesioner Pertanyaan 4
Berdasarkan permasalahan diatas, penulis memutuskan untuk melakukan
penelitian dengan menggunakan judul “Penerapan Algoritma Ant Colony
Optimization Dalam Menyelesaikan Traveling Salesman Problem (Studi Kasus:
PT Wahana Prestasi Logistik)”.
1.2. Rumusan Masalah
Sesuai dengan latar belakang diatas, penulis telah merumuskan masalah
dalam penelitian ini, yaitu Bagaimana menerapkan algoritma ACO dalam
menyelesaikan TSP?
1.3. Batasan Masalah
Agar tidak menyimpang dari rumusan masalah, maka penulis membatasi
masalah dalam penelitian ini, yaitu sebagai berikut:
1.3.1. Metode
1. Metode pengumpulan data yang digunakan adalah studi literatur
sejenis, studi pustaka, kuesioner, dan wawancara.
66.70%8.30%
25%
Sistem Operasi
Android
BlackBerry
Symbian
4
2. Metode pengembangan sistem menggunakan RAD (Rapid Application
Development), dengan 3 tahap yaitu perencanaan syarat, workshop
desain dan implementasi.
3. Metode pengujian sistem menggunakan blackbox testing.
1.3.2. Tools
1. Aplikasi ini dibangun menggunakan bahasa pemograman Java
Android, basisdata menggunakan SQLite, serta tools development
menggunakan Android Studio.
2. Aplikasi ini dapat berjalan pada smartphone dengan sistem operasi
Android minimal Jelly Bean (versi 4.1).
3. Aplikasi ini menggunakan PT Wahana Prestasi Logstik API untuk
menyimpan data secara online.
4. Aplikasi ini menggunakan Google Maps API untuk mencari koordinat
(longitude, langitude) suatu alamat, dan untuk menggambar peta pada
halaman rute pengiriman.
1.3.3. Proses
1. Algoritma yang digunakan untuk melakukan pencarian rute terpendek
ialah ACO (Ant Colony Optimization).
2. Pengguna (user) aplikasi ini ialah kurir PT Wahana Prestasi Logistik
yang beoperasi di wilayah kecamatan Ciputat.
2.1. Tujuan Penelitian
Tujuan pada penelitian ini yaitu menerapkan algoritma Ant Colony
Optimization (ACO) dalam menyelesaikan Traveling Salesman Problem (TSP).
2.2. Manfaat Penelitian
Sesuai dengan permasalahan dan tujuan penelitian yang telah disebutkan di
atas, maka manfaat penelitian yang dapat dirumuskan adalah sebagai berikut:
2.2.1. Bagi Peneliti
1. Menerapkan ilmu yang telah didapat selama kuliah.
5
2. Untuk memenuhi salah satu syarat dalam menempuh gelar Strata Satu
(S1) program studi Teknik Informatika Fakultas Sains dan Teknologi
Universitas Islam Negeri Syarif Hidayatullah Jakarta.
2.2.2. Bagi Universitas
1. Sebagai bahan referensi yang dapat digunakan untuk penelitian
selanjutnya.
2. Mengetahui kemampuan mahasiswa dalam menerapkan ilmunya dan
sebagai bahan evaluasi.
2.2.3. Bagi Pengguna
1. Memudahkan pengguna dalam menemukan rute terpendek
pengiriman barang.
2. Memudahkan pengguna dalam mencari lokasi yang dituju.
2.3. Metodologi Penelitian
Metodologi penelitian yang digunakan dan diterapkan dalam penulisan tugas
akhir ini meliputi:
2.3.1. Metode Pengumpulan Data
Untuk mendapatkan data-data serta informasi yang diperlukan dalam
perancangan aplikasi, peneliti menggunakan dua metode pengumpulan data,
yaitu :
1. Studi Pustaka
Penulis melakukan studi pustaka terkait dengan hal-hal yang
bekaitan dengan penelitian ini. Studi pustaka dilakukan dengan
berbagai literatur sejenis, membaca buku-buku referensi, jurnal
ilmiah, dan situs internet yang dibutuhkan dalam penelitian.
2. Studi Lapangan
Penulis melakukan studi lapangan dengan metode wawancara
dan kuesioner. Wawancara dilakukan kepada Bapak Novel Zulham
selaku General Manager Operasional PT Wahana Prestasi Logistik,
6
lalu kuesioner diajukan kepada kurir PT Wahana Prestasi Logistik
yang beroperasi di wilayah kecamatan ciputat selaku pengguna akhir
aplikasi ini.
2.3.2. Metode Pengembangan Sistem
Metode Pengembangan sistem yang penulis gunakan adalah Rapid
Application Development (RAD) dengan tahap sebagai berikut:
1. Perencanaan syarat (Requirements planning).
2. Workshop desain (Workshop design).
3. Implementasi (Implementation).
2.3.3. Metode Pengujian
Pada penelitian ini penulis untuk melakukan pengujian jalannya
sistem menggunakan pengujian blackbox testing.
2.4. Sistematika Penulisan
Dalam penyusunan skripsi ini, penulis membagi pembahasan kedalam enam
bab pokok pembahasan yang secara singkat dijelaskan sebagai berikut:
BAB I PENDAHULUAN
Pada bab ini diuraikan mengenai latar belakang, rumusan
masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metode penelitian dan sistematika penulisan.
BAB II TINJAUAN PUSTAKA & LANDASAN TEORI
Pada bab ini diuraikan mengenai beberapa teori yang
digunakan guna mendukung penelitian ini.
BAB III METODOLOGI PENELITIAN
7
Pada bab ini diuraikan mengenai metode pengumpulan data,
metode pengembangan sistem dan kerangka berpikir
penelitian.
BAB IV ANALISIS, PERANCANGAN, IMPLEMENTASI DAN
PENGUJIAN SISTEM
Pada bab ini berisi analisis mengenai kebutuhan sistem,
implementasi, dan hasil pengujianya.
BAB V HASIL DAN PEMBAHASAN
Pada bab ini diuraikan mengenai hasil dan pembahasan yang
didapat dari penelitian yang dilakukan penulis.
BAB VI PENUTUP
Pada bab ini diuraikan mengenai kesimpulan penelitian dan
saran yang dapat digunakan untuk pengembangan penelitian
selanjutnya.
8 Uin Syarif Hidayatullah Jakarta
BAB II
TINJAUAN PUSTAKA & LANDASAN TEORI
2.1. Traveling Salesman Problem (TSP)
2.1.1. Definisi TSP
Travelling Salesman Problem (TSP) adalah permasalahan yang dihadapi oleh
seorang salesman yang berangkat dari kota asalnya, berusaha menemukan rute
paling pendek ke semua kota pelanggan, lalu kembali ke kota asal, dengan syarat
semua kota hanya dikunjungi satu kali (Hardianto, 2013).
Setiap perjalanan tersebut, dapat dipresentasikan kedalam sebuah graf G =
(V, E) dimana setiap tujuan, termasuk asalnya, merupakan sebuah verteks, dan jika
ada rute yang menghubungkan dua tujuan berbeda, maka batas antar kedua simpul
tersebut disebut dengan edge. Permasalahan TSP dapat terpecahkan jika ada rute
terpendek yang mengunjungi masing-masing tujuan hanya satu kali hingga kembali
ke asal (Hal ini disebut dengan lintasan Hamiltonian dan akan dijelaskan pada bab
2.3.2).
Meskipun kita semua bukanlah seorang penjual keliling, masalah ini menarik
minat bagi mereka yang ingin mengoptimalkan rute, baik dengan
mempertimbangkan jarak, biaya, maupun waktu. Jika seseorang memiliki empat
orang di mobil mereka untuk mengantar mereka masing-masing rumah, kemudian
secara otomatis mencoba memikirkan jarak terpendek yang mungkin. Dalam hal ini,
jarak diminimalkan. Jika seseorang bepergian ke berbagai bagian kota menggunakan
sistem transportasi umum, maka meminimalkan jarak mungkin bukan tujuan, tetapi
meminimalkan biaya (Brucato, 2013).
Menurut Joshi (2017), penjelasan mengenai TSP berawal dari masalah yang
dihadapi banyak orang. Contohnya sangat sederhana: seorang pedagang keliling
harus melakukan perjalanan ke setiap kota di suatu daerah, mengunjungi setiap kota
9
Uin Syarif Hidayatullah Jakarta
hanya sekali, lalu berkahir di kota yang sama dimana dia memulai perjalanannya.
Berikut merupakan ilustrasi TSP:
Gambar 2.1 Ilustrasi Masalah TSP (Sumber: Joshi, 2017)
Menurut Hardianto (2013) Secara umum, penyelesaian masalah pencarian
jalur terpendek dapat dilakukan dengan menggunakan dua metode, yaitu metode
konvensiomal diterapkan dengan perhitungan matematis biasa, sedangkan metode
heuristik diterapkan dengan menentukan basis pengetahuan dan perhitungannya.
2.1.2. Metode Konvensional
Metode konvensional adalah metode yang menggunakan perhitungan
matematis biasa. Ada berberapa metode konvensional yang biasa digunakan untuk
melakukan pencarian jalur terpendek, diantaranya: algoritma djikstraa, algoritma
Floyd-Warshall, algoritma Greedy dan algoritma Bellman-Ford (Hardianto, 2013).
2.1.3. Metode Heuristik
Metode Heuristik adalah sub bidang dari kecerdasan buatan yang digunakan
untuk melakukan pencarian dan optimasi. Ada berberapa algoritma pada metode
heurisik yang biasa digunakan dalam permasalahan optimasi, diantaranya algoritma
genetika, algoritma koloni semut, logika fuzzy, jaringan syaraf tiruan, dan lain-lain
(Hardianto, 2013). Algoritma yang akan dibahas dalam penelitian ini adalah
algoritma heuristik dengan metode Ant Colony System (ACO).
10
Uin Syarif Hidayatullah Jakarta
2.2. Ant Colony Optimization (ACO)
2.2.1. Definisi ACO
Metaheuristik adalah generasi baru dari algoritma heuristik. Metode ini telah
dikembangkan secara luas dan digunakan untuk meningkatkan kompleksitas masalah
kombinatorial. Salah satu dari banyak algoritma metaheuristik adalah ACO yang
mengingatkan pada perilaku semut dalam menemukan rute terpendek dari sarang
semut ke sumber makanan. Algoritma ACO awalnya dikembangkan oleh Dorigo
pada tahun 1996 untuk memecahkan persoalan TSP dengan mempertimbangkan
pedagang keliling sebagai semut buatan (Ramadhani, Hertono, Handari, 2016).
Di dunia nyata, semut memilih jalur ke sumber makanan secara acak.
Pergerakan semut juga dipengaruhi oleh intensitas jejak kaki semut atau feromon
yang terkandung pada jalur yang akan dilewati. Untuk menyelesaikan TSP
menggunakan algoritma ACO, seorang pedagang keliling diwakili oleh semut buatan
yang akan melakukan perjalanan sampai kembali ke titik asal. Proses pencarian
solusi TSP dengan menggunakan algoritma ACO terdiri dari tiga proses utama:
inisialisasi parameter, probabilitas transisi, dan pembaruan feromon (Ramadhani,
Hertono, Handari, 2016).
Menurut Ali, Kar (2018), sebuah fenomena luar biasa yang diamati di alam
adalah jejak yang hampir sempurna diikuti oleh semut saat mencari makan.
Sementara semut buta, antrian yang mereka bentuk dipatuhi oleh semua semut di
dalam gerombolan hampir sempurna. Para ilmuwan menemukan bahwa semut dapat
mencapai prestasi ini dengan memanfaatkan zat kimia yang disebut feromon yang
disekresikan semut ini. Gambar 2.2 menggambarkan fenomena semut mencari
makanan. Semut pemimpin pertama-tama mengeksplorasi semua jalur yang tersedia
ke sumber makanan, yang melibatkan probabilitas yang sama yang ditugaskan untuk
semua jalur awalnya. Semut pengikut mengendus feromon yang disekresikan oleh
semut di depan mereka dan mengikuti jejak. Karena semut membutuhkan waktu
lebih lama untuk melintasi jarak yang lebih jauh, semut yang lebih sedikit dapat
melintasi waktu unit yang lebih panjang. Oleh karena itu, jejak di jalur yang lebih
panjang dimulai menyusut seiring berjalannya waktu, karena tingkat deposisi
11
Uin Syarif Hidayatullah Jakarta
feromon lebih rendah. Hal Ini menyiratkan dua hal. Satu, semut mulai terakumulasi
pada jalur yang lebih pendek (lebih menguntungkan). Dua, jalur yang lebih panjang
(kurang menguntungkan) mengakibatkan semut lebih menjadi sedikit dengan seiring
berjalannya waktu, hingga tidak ada semut lagi yang mengunjungi jalan ini.
Berdasarkan fenomena di atas, ACO cukup baik untuk memecahkan berbagai
masalah seperti memilih rute yang efisien untuk kendaraan, jadwal kegiatan lantai,
mengatur hidroelektrik Generasi, analisis pengelompokan, penjadwalan kursus,
optimalisasi waktu sinyal lalu lintas dan manajemen aset perkerasan.
Gambar 2. 2 (a) Semut melewati setiap jalur dengan probabilitas sama, (b)Seiring berjalannya waktu,
rute terpendek akan lebih menguatkan, (c), Semua semut melewati rute terpendek. (Sumber: Ali, Kar,
2018)
2.2.2. Langkah-langkah kerja algoritma ACO
Menurut Ramadhani, Hertono, Handari (2016), dalam algoritma semut
diperlukan berberapa variabel dan langkah-langkah untuk menentukan jalur
terpendek, yaitu:
2.2.2.1. Inisialisasi Parameter
Proses pencarian solusi TSP dimulai dengan inisialisasi parameter
yang di-inisialisasi ialah sebagai berikut:
• Intensitas pheromone antar kota dan perubahaannya τ𝑖𝑗
• Banyak kota (n) termasuk x dan y (koordinat) atau 𝑑𝑖𝑗
• Tetapan siklus semut (Q)
• Tetapan pengendali intensitas pheromone (α)
• Tetapan pengendali visibilitas (invers dari jarak) (β)
• Visibilitas antar kota (ƞ𝑖𝑗)
12
Uin Syarif Hidayatullah Jakarta
• Jumlah semut (m)
• Tetapan penguapan jejak semut atau Pheromone (p)
Setelah inisialisasi τ𝑖𝑗 dilakukan, kemudian m semut ditempatkan
pada kota pertama yang ditentukan secara acak sebagai titik awal.
2.2.2.2. Penyusunan Kunjungan Setiap Semut ke Setiap Kota.
Koloni semut yang sudah terdistribusi ke kota pertama akan mulai
melakukan perjalanan dari kota pertama sebagai kota asal dan salah satu kota-
kota lainnya sebagai kota tujuan. Kemudian dari kota kedua, masing-masing
koloni semut akan melanjutkan perjalanan dengan memilih salah satu dari
kota-kota yang tidak terdapat pada 𝑡𝑎𝑏𝑢𝒌 sebagai kota tujuan selanjutnya.
Perjalan koloni semut berlangsung hingga melewati semua kota yang
tersedia. Jika ѕ menyatakan indek urutan kunjungan, kota asal dinyatakan
sebagai 𝑡𝑎𝑏𝑢𝒌(𝑠) dan kota-kota lainnya dinyatakan sebagai {N-𝑡𝑎𝑏𝑢𝒌},
maka untuk menentukan kota selanjutnya digunakan persamaan probabilitas
kota transisi sebagai berikut,
𝑃𝑖𝑗𝑘 =
[τ𝑖𝑗]𝛼
. [ƞ𝑖𝑗]𝛽
∑[τ𝑖𝑘]𝛼 . [ƞ𝑖𝑘]𝛽
Dimana 𝑃𝑖𝑗𝑘 merupakan probabilitas dari semut k pada tiitk i untuk
menuju ke titik j. τ𝑖𝑗 adalah jumlah Pheromone yang terdapat pada edge
antara titik i dan titik j. ƞ𝑖𝑗 adalah visibilitas dari titik i menuju titik j dengan
rumus 1
𝑑𝑖𝑗 , dimana 𝑑𝑖𝑗 = √(x𝑖 − x𝑗)
2+ (y𝑖 − 𝑦𝑗)
2 dengan syarat apabila
jarak dari titik i menuju titik j belum didefinisikan sebelumnya. α adalah
sebuah parameter yang mengontrol bobot relatif dari Pheromone dan β adalah
parameter pengendali jarak dengan aturan α > 0 dan β > 0.
2.2.2.3. Perolehan Harga Setalah Kunjungan
1. Perolehan panjang jalur setiap semut.
13
Uin Syarif Hidayatullah Jakarta
Perhitungan panjang jalur tertutup atau L𝑘 setiap semut dilakukan
setelah satu siklus diselesaikan oleh semua semut. Disebut jalur tertutup
dikarenakan titik awal dan titik akhir perjalanan ialah sama. Perhitungan
dilakukan berdasarkan 𝑡𝑎𝑏𝑢𝑘 masing-masing.
2. Perolehan jalur terpendek
Setelah L𝑘 setiap semut dihitung, akan diperoleh harga minimal
panjang jalur tertutup setiap siklus atau L𝑚𝑖𝑛𝑁𝐶 dan harga minimal
panjang jalur tertutup secara keseluruhan atau L𝑚𝑖𝑛 .
3. Perhitungan perubahan harga intensitas jejak kaki semut antar kota.
Koloni semut akan meninggalkan jejak-jejak kaki pada rute antar kota
yang dilaluinya. Adanya penguapan dan perbedaan jumlah semut yang
lewat, menyebabkan kemungkinan terjadinya perubahan harga intensitas
jejak kaki semut antar kota. Persamaan perubahannya adalah:
𝛥Ʈ𝑖𝑗 = ∑ 𝛥
𝑚
𝑘=1
Ʈ𝑖𝑗𝑘
Dengan 𝛥 Ʈ𝑖𝑗𝑘 adalah perubahan harga intensitas pheromone antar kota
setiap semut yang dihitung berdasarkan perrsamaan:
𝛥 Ʈ𝑖𝑗𝑘 =
𝑄
L𝑘
untuk (i,j) ϵ kota asal dan kota tujuan dalam 𝑡𝑎𝑏𝑢𝑘
2.2.2.4. Perubahan nilai Pheromone.
Harga intensitas jejak kaki semut antar kota pada semua rute antar
kota ada kemungkinan berubah karena adanya penguapan dan perbedaan
jumlah semut yang melewati. Untuk siklus selanjutnya, semut yang akan
melewati rute tersebut harga intensitasnya telah berubah. Harga intensitas
jejak kaki semut antar kota untuk siklus selanjutnya dihitung dengan
persamaan:
Ʈ𝑖𝑗 = ƿ . Ʈ𝑖𝑗 + 𝛥Ʈ𝑖𝑗
14
Uin Syarif Hidayatullah Jakarta
2.2.3. Pseudo Code Algoritma ACO
Menurut Ramadhani, Hertono, Handari (2016), berikut merupakan
pseudo code algoritma ACO dalam menyelesaikan permasalahan TSP:
inisialisasi kota, koordinat, kota sebagai depot, parameter ACO dan TSP
menyusun rute kunjungan setiap semut ke setiap depot
while proses belum memenuhi kriteria pemberhentian, lakukan
for setiap depot, lakukan
for setiap pedagang keliling pada depot, lakukan
proses probabilitas transisi hingga kembali ke depot
end for
end for
hitung total jarak perjalanan pedagang keliling
for setiap sisi, lakukan
ubah nilai Pheromone
end for
end while
return rute terpendek yang ditemukan
2.3. Graf
2.3.1. Definisi Graf
Menurut Perdana (2018), Secara sederhana graf didefinisikan sebagai
kumpulan titik yang dihubungkan oleh garis. Secara matematis, graf adalah pasangan
himpunan (V, E) dimana V adalah himpunan tak kosong yang memiliki elemen
disebut simpul (vertice) dan E adalah kumpulan dari dua elemen subsets V yang
disebut busur (edges).
Simpul direpresentasikan dengan titik dan busur yang hubungkan oleh garis.
Gambar berikut merupakan contoh graf (V, E) dimana:
V = {A,B,C,D,E,F,G,H,I}, dan
15
Uin Syarif Hidayatullah Jakarta
E = {{A,B}, {A,C}, {B,D}, {C,D}, {C,E}, {E,F}, {E,G}, {H,I}}.
Gambar 2. 3 Contoh Graf (Sumber: Perdana, 2018)
Sebuah busur selalu memiliki dua endpoint, misalnya busur {H,I} memiliki
endpoint H dan I. Graf biasanya digunakan untuk memodelkan objek-objek diskrit
dan hubungan antar objek-objek tersebut.
2.3.2. Graf Hamilton
Lintasan dan Sirkuit Hamilton Pada graf G = (V, E), lintasan Hamilton
(Hamiltonian path) merupakan suatu lintasan sederhana yang melewati semua
simpul di G tepat satu kali. Sedangkan dalam graf G = (V, E) sirkuit Hamilton
(Hamiltonian circuit) merupakan suatu sirkuit sederhana yang melewati semua
simpul di G tepat satu kali. Graf yang mempunyai lintasan Hamilton dinamakan
dengan graf semi-Hamilton (semiHamiltonian graph), sedangkan graf yang
mempunyai sirkuit Hamilton disebut dengan graf Hamilton (Hamiltonian graph).
Contoh lintasan hamilton dapat diamati pada graf tak-berarah Gambar 3.6(a)
dan graf berararah Gambar 3.6(c). Salah satu lintasan Hamilton pada graf tak-berarah
Gambar 3.6(a) adalah: A-B-C-E-D. Sedangkan salah satu lintasan Hamilton pada
graf berarah Gambar 3.6(c) adalah: A-B-D-C.
Contoh sirkuit hamilton dapat diamati pada graf tak-berarah Gambar 3.6(b)
dan graf berararah Gambar 3.6(d). Salah satu sirkuit Hamilton pada graf tak-berarah
Gambar 3.6(b) adalah: A-B-D-C-A. Sedangkan salah satu sirkuit Hamilton pada graf
berarah Gambar 3.6(d) adalah: A-B-C-D-A
16
Uin Syarif Hidayatullah Jakarta
Gambar 2.4 (a) Graf tak-berarah semi-Hamilton, (b) Graf tak-berarah Hamilton, (c) Graf berarah
semi-Hamilton, (d) Graf berarah Hamilton (Sumber: Perdana, 2018)
Hingga saat ini belum ada teorema yang menyatakan syarat perlu dan syarat
cukup yang sederhana untuk menentukan suatu graf memiliki lintasan/ sirkuit
Hamilton. Akan tetapi, terdapat beberapa teorema umum tentang keberadaan
lintasan/ sirkuit Hamilton dengan menggunakan beberapa syarat cukup (bukan syarat
perlu), yaitu:
• Teorema Dirac. Jika G adalah graf sederhana dengan n buah simpul (n≥3)
sedemikian sehingga derajat setiap simpul paling sedikit n/2 (yaitu, d(v) ≥ n/2
untuk setiap simpul v di G), maka G adalah graf Hamilton.
• Teorema Ore. Jika G adalah graf sederhana dengan n buah simpul (n≥3)
sedemikian sehingga d(v) + d(u) ≥ n untuk setiap pasang simpul tidak
bertetangga u dan v, maka G adalah graf Hamilton.
• Setiap graf lengkap adalah graf Hamilton.
• Di dalam graf lengkap G dengan n buah simpul (n≥3) terdapat sebanyak (n-
1)!/2 sirkuit Hamilton.
• Di dalam graf lengkap G dengan n buah simpul (n≥3 dan n gasal), terdapat
(n-1)/2 sirkuit Hamilton yang saling lepas (tidak ada sisi yang beririsan). Jika
n genap dan n≥4, maka di dalam G terdapat (n-2)/2 sirkuit Hamilton yang
saling lepas.
2.4. Android
2.4.1. Definisi Android
Menurut Wikipedia (2018), Android adalah sistem operasi berbasis Linux
yang dirancang untuk perangkat bergerak layar sentuh seperti telepon pintar dan
17
Uin Syarif Hidayatullah Jakarta
komputer tablet. Android awalnya dikembangkan oleh Android, Inc., dengan
dukungan finansial dari Google, yang kemudian membelinya pada tahun 2005.
Sistem operasi ini dirilis secara resmi pada tahun 2007, bersamaan dengan
didirikannya Open Handset Alliance, konsorsium dari perusahaan-perusahaan
perangkat keras, perangkat lunak, dan telekomunikasi yang bertujuan untuk
memajukan standar terbuka perangkat seluler. Ponsel Android pertama mulai dijual
pada bulan Oktober 2008.
Antarmuka pengguna Android umumnya berupa manipulasi langsung,
menggunakan gerakan sentuh yang serupa dengan tindakan nyata, misalnya
menggeser, mengetuk, dan mencubit untuk memanipulasi objek di layar, serta papan
ketik virtual untuk menulis teks. Selain perangkat layar sentuh, Google juga telah
mengembangkan Android TV untuk televisi, Android Auto untuk mobil, dan
Android Wear untuk jam tangan, masing-masingnya memiliki antarmuka pengguna
yang berbeda. Varian Android juga digunakan pada komputer jinjing, konsol
permainan, kamera digital, dan peralatan elektronik lainnya.
Android adalah sistem operasi dengan sumber terbuka, dan Google merilis
kodenya di bawah Lisensi Apache. Kode dengan sumber terbuka dan lisensi
perizinan pada Android memungkinkan perangkat lunak untuk dimodifikasi secara
bebas dan didistribusikan oleh para pembuat perangkat, operator nirkabel, dan
pengembang aplikasi. Selain itu, Android memiliki sejumlah besar komunitas
pengembang aplikasi (apps) yang memperluas fungsionalitas perangkat, umumnya
ditulis dalam versi kustomisasi bahasa pemrograman Java. Pada bulan Oktober 2013,
ada lebih dari satu juta aplikasi yang tersedia untuk Android, dan sekitar 50 miliar
aplikasi telah diunduh dari Google Play, toko aplikasi utama Android. Sebuah survei
pada bulan April-Mei 2013 menemukan bahwa Android adalah platform paling
populer bagi para pengembang, digunakan oleh 71% pengembang aplikasi bergerak.
Di Google I/O 2014, Google melaporkan terdapat lebih dari satu miliar pengguna
aktif bulanan Android, meningkat dari 583 juta pada bulan Juni 2013.
Faktor-faktor di atas telah memberikan kontribusi terhadap perkembangan
Android, menjadikannya sebagai sistem operasi telepon pintar yang paling banyak
digunakan di dunia, mengalahkan Symbian pada tahun 2010. Android juga menjadi
18
Uin Syarif Hidayatullah Jakarta
pilihan bagi perusahaan teknologi yang menginginkan sistem operasi berbiaya
rendah, bisa dikustomisasi, dan ringan untuk perangkat berteknologi tinggi tanpa
harus mengembangkannya dari awal. Sifat Android yang terbuka juga telah
mendorong munculnya sejumlah besar komunitas pengembang aplikasi untuk
menggunakan kode sumber terbuka sebagai dasar proyek pembuatan aplikasi,
dengan menambahkan fitur-fitur baru bagi pengguna tingkat lanjut atau
mengoperasikan Android pada perangkat yang secara resmi dirilis dengan
menggunakan sistem operasi lain.
Pada November 2013, Android menguasai pangsa pasar telepon pintar global,
yang dipimpin oleh produk-produk Samsung, dengan persentase 64% pada bulan
Maret 2013. Pada Juli 2013, terdapat 11.868 perangkat Android berbeda dengan
beragam versi. Keberhasilan sistem operasi ini juga menjadikannya sebagai target
ligitasi paten "perang telepon pintar" antar perusahaan-perusahaan teknologi. Hingga
bulan Mei 2013, total 900 juta perangkat Android telah diaktifkan di seluruh dunia,
dan 48 miliar aplikasi telah dipasang dari Google Play.
Berikut merupakan logo Android:
Gambar 2. 5 Logo Android (Sumber: Wikipedia, 2018)
2.4.2. Fitur Android
Adapun beberapa fitur – fitur menurut Wikipedia (2018) yang tersedia di
Android adalah sebagai berikut ini:
2.4.2.1. Antarmuka
Antarmuka pengguna pada Android didasarkan pada manipulasi
langsung, menggunakan masukan sentuh yang serupa dengan tindakan di
dunia nyata, misalnya menggesek (swiping), mengetuk (tapping), dan
mencubit (pinching), untuk memanipulasi objek di layar. Masukan pengguna
19
Uin Syarif Hidayatullah Jakarta
direspon dengan cepat dan juga tersedia antarmuka sentuh layaknya
permukaan air, seringkali menggunakan kemampuan getaran perangkat untuk
memberikan umpan balik haptik kepada pengguna. Perangkat keras internal
seperti akselerometer, giroskop, dan sensor proksimitas digunakan oleh
beberapa aplikasi untuk merespon tindakan pengguna, misalnya untuk
menyesuaikan posisi layar dari potret ke lanskap, tergantung pada bagaimana
perangkat diposisikan, atau memungkinkan pengguna untuk mengarahkan
kendaraan saat bermain balapan dengan memutar perangkat sebagai simulasi
kendali setir.
Ketika dihidupkan, perangkat Android akan memuat pada layar depan
(homescreen), yakni navigasi utama dan pusat informasi pada perangkat,
serupa dengan desktop pada komputer pribadi. Layar depan Android biasanya
terdiri dari ikon aplikasi dan widget; ikon aplikasi berfungsi untuk
menjalankan aplikasi terkait, sedangkan widget menampilkan konten secara
langsung dan terbarui otomatis, misalnya prakiraan cuaca, kotak masuk surel
pengguna, atau menampilkan tiker berita secara langsung dari layar depan.
Layar depan bisa terdiri dari beberapa halaman, pengguna dapat menggeser
bolak balik antara satu halaman ke halaman lainnya, yang memungkinkan
pengguna Android untuk mengatur tampilan perangkat sesuai dengan selera
mereka. Beberapa aplikasi pihak ketiga yang tersedia di Google Play dan di
toko aplikasi lainnya secara ekstensif mampu mengatur kembali tema layar
depan Android, dan bahkan bisa meniru tampilan sistem operasi lain,
misalnya Windows Phone. Kebanyakan produsen telepon seluler dan
operator nirkabel menyesuaikan tampilan perangkat Android buatan mereka
untuk membedakannya dari pesaing mereka.
Di bagian atas layar terdapat status bar, yang menampilkan informasi
tentang perangkat dan konektivitasnya. Status bar ini bisa "ditarik" ke bawah
untuk membuka layar notifikasi yang menampilkan informasi penting atau
pembaruan aplikasi, misalnya surel diterima atau SMS masuk, dengan cara
tidak mengganggu kegiatan pengguna pada perangkat. Pada versi awal
Android, layar notifikasi ini bisa digunakan untuk membuka aplikasi yang
20
Uin Syarif Hidayatullah Jakarta
relevan, namun setelah diperbarui, fungsi ini semakin disempurnakan,
misalnya kemampuan untuk memanggil kembali nomor telepon dari
notifikasi panggilan tak terjawab tanpa harus membuka aplikasi utama.
Notifikasi ini akan tetap ada sampai pengguna melihatnya, atau dihapus dan
di nonaktifkan oleh pengguna. Berikut merupakan gambar layar notifikasi
Android:
Gambar 2. 6 Layar notifikasi Android yang diakses dengan menggeser layar (swipe) dari bagian atas
layar (Sumber: Wikipedia, 2018)
2.4.2.2. Aplikasi
Android memungkinkan penggunanya untuk memasang aplikasi
pihak ketiga, baik yang diperoleh dari toko aplikasi seperti Google Play,
Amazon Appstore, ataupun dengan mengunduh dan memasang berkas APK
dari situs pihak ketiga. Di Google Play, pengguna bisa menjelajah,
mengunduh, dan memperbarui aplikasi yang diterbitkan oleh Google dan
pengembang pihak ketiga, sesuai dengan persyaratan kompatibilitas Google.
Google Play akan menyaring daftar aplikasi yang tersedia berdasarkan
21
Uin Syarif Hidayatullah Jakarta
kompatibilitasnya dengan perangkat pengguna, dan pengembang dapat
membatasi aplikasi ciptaan mereka bagi operator atau negara tertentu untuk
alasan bisnis. Pembelian aplikasi yang tidak sesuai dengan keinginan
pengguna dapat dikembalikan dalam waktu 15 menit setelah pengunduhan.
Beberapa operator seluler juga menawarkan tagihan langsung untuk
pembelian aplikasi di Google Play dengan cara menambahkan harga
pembelian aplikasi pada tagihan bulanan pengguna. Pada bulan September
2012, ada lebih dari 675.000 aplikasi yang tersedia untuk Android, dan
perkiraan jumlah aplikasi yang diunduh dari Play Store adalah 25 miliar.
Aplikasi Android dikembangkan dalam bahasa pemrograman Java
dengan menggunakan kit pengembangan perangkat lunak Android (SDK).
SDK ini terdiri dari seperangkat perkakas pengembangan, termasuk
debugger, perpustakaan perangkat lunak, emulator handset yang berbasis
QEMU, dokumentasi, kode sampel, dan tutorial. Didukung secara resmi oleh
lingkungan pengembangan terpadu (IDE) Eclipse, yang menggunakan plugin
Android Development Tools (ADT). Perkakas pengembangan lain yang
tersedia di antaranya adalah Native Development Kit untuk aplikasi atau
ekstensi dalam C atau C++, Google App Inventor, lingkungan visual untuk
pemrogram pemula, dan berbagai kerangka kerja aplikasi web seluler lintas
platform. Beikut merupakan gambar Google Play Android:
22
Uin Syarif Hidayatullah Jakarta
Gambar 2. 7 Google Play Android (Sumber: Wikipedia, 2018)
2.4.2.3. Pengelolaan Memori
Karena perangkat Android umumnya bertenaga baterai, Android
dirancang untuk mengelola memori (RAM) guna menjaga konsumsi daya
minimal, berbeda dengan sistem operasi desktop yang bisa terhubung pada
sumber daya listrik tak terbatas. Ketika sebuah aplikasi Android tidak lagi
digunakan, sistem secara otomatis akan menangguhkannya (suspend) dalam
memori – secara teknis aplikasi tersebut masih "terbuka", namun dengan
ditangguhkan, aplikasi tidak akan mengkonsumsi sumber daya (misalnya
daya baterai atau daya pemrosesan), dan akan "diam" di latar belakang
hingga aplikasi tersebut digunakan kembali. Cara ini memiliki manfaat
ganda, tidak hanya meningkatkan respon perangkat Android karena aplikasi
tidak perlu ditutup dan dibuka kembali dari awal setiap saat, tetapi juga
memastikan bahwa aplikasi yang berjalan di latar belakang tidak
menghabiskan daya secara sia-sia.
23
Uin Syarif Hidayatullah Jakarta
Android mengelola aplikasi yang tersimpan di memori secara
otomatis: ketika memori lemah, sistem akan menonaktifkan aplikasi dan
proses yang tidak aktif untuk sementara waktu, aplikasi akan dinonaktifkan
dalam urutan terbalik, dimulai dari yang terakhir digunakan. Proses ini tidak
terlihat oleh pengguna, jadi pengguna tidak perlu mengelola memori atau
menonaktifkan aplikasi secara manual. Namun, kebingungan pengguna atas
pengelolaan memori pada Android telah menyebabkan munculnya beberapa
aplikasi task killer pihak ketiga yang populer di Google Play.
2.5. Java
2.5.1. Pengertian Java
Menurut Mary (2017) Pemrograman Java merupakan bahasa pemrograman
tingkat tinggi berorientasi objek yang bisa dijalankan diberbagai sistem operasi
(Multiplatform), yang diperkenalkan oleh Sun Microsystems sekitar tahun 1995.
Sebagai sebuah bahasa pemograman, Java dapat membuat seluruh bentuk
aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa
pemograman konvensional yang lain.
2.5.2. Karakteristik Java
• Sederhana.
• Berorientasi objek.
• Dapat didistribusikan dengan mudah.
• Intepreter.
• Robust.
• Aman.
• Architecture Neutral.
• Portable.
• Permormance.
• Multithreaded.
• Dinamis.
24
Uin Syarif Hidayatullah Jakarta
2.6. Google Map
Menurut Firando (2014) Google Maps adalah peta online atau membuka
peta secara online, dapat dilakukan secara mudah melalui layanan gratis dari
Google. Bahkan layanan ini menyediakan API (Application Programming
Interface) yang memungkinkan developer lain untuk memanfaatkan aplikasi ini
di aplikasi buatannya. Tampilan Google Map pun dapat dipilih, berdasarkan foto
asli atau peta gambar rute saja.
Google Map adalah layanan gratis yang diberikan oleh Google dan
sangat popular. Google Map adalah suatu peta dunia yang dapat kita gunakan
untuk melihat suatu daerah. Dengan kata lain, Google Map merupakan suatu
peta yang dapat dilihat dengan menggunakan suatu browser. Kita dapat
menambahkan fitur Google Map dalam web yang telah kita buat atau pada blog
kita yang berbayar maupun gratis sekalipun dengan Google Map API.
Google Map API adalah suatu library yang berbentuk JavaScript. Cara
membuat Google Map untuk ditampilkan pada suatu web atau blog sangat
mudah hanya dengan membutuhkan pengetahuan mengenai HTML serta
JavaScript, serta koneksi Internet yang sangat stabil. Dengan menggunakan
Google Map API, kita dapat menghemat waktu dan biaya untuk membangun
aplikasi peta digital yang handal, sehingga kita dapat fokus hanya pada data-data
yang akan ditampilkan. Dengan kata lain, kita hanya membuat suatu data
sedangkan peta yang akan ditampilkan adalah milik Google sehingga kita tidak
dipusingkan dengan mambuat peta suatu lokasi, bahkan dunia. Berikut merupakan
gambar Google Map yang diakses menggunakan website:
25
Uin Syarif Hidayatullah Jakarta
Gambar 2. 8 Google Map (Sumber: Firando, 2014)
Pada Google Map API terdapat 4 jenis pilihan model peta yang disediakan
oleh Google, diantaranya adalah:
• ROADMAP, untuk menampilkan peta biasa 2 dimensi.
• SATELLITE, untuk menampilkan foto satelit.
• TERRAIN, untuk menunjukkan relief fisik permukaan bumi dan
menunjukkan seberapa tingginya suatu lokasi, contohnya akan menunjukkan
gunung dan sungai.
• HYBRID, akan menunjukkan foto satelit yang diatasnya tergambar pula apa
yang tampil pada ROADMAP (nama jalan dan kota).
2.7. Android Studio
Android Studio adalah Integrated Development Environment (IDE) resmi
untuk pengembangan aplikasi Android, berdasarkan IntelliJ IDEA. IntelliJ IDEA
menawarkan beberapa keunggulan pada Android Studio, seperti:
• Sistem dibangun oleh gradle yang bersifat fleksibel.
• Dapat menghasilkan beberapa jenis varian dan generasi apk.
• Template diperluas untuk Google.
• Menyediakan layanan dan berbagai jenis perangkat.
• Layout editor memiliki banyak fitur pilihan.
26
Uin Syarif Hidayatullah Jakarta
• Tersedia fitur Lint untuk mengoptimalkan kinerja, kegunaan, kompatibilitas,
serta masalah lainnya.
• Tersedia fitur Built-in untuk memudahkan pengembang aplikasi dalam
mengintegrasikan Google Cloud Messaging and App Engine
(http://developer.android.com, 2015).
2.8. JSON
Menurut Firando (2014) JSON (javaScript Object Notation) adalah format
pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah
diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan
bagian dari Bahasa Pemograman Javascript, Standar ECMA-262 Edisi ke-3 –
Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa
pemograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh
programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python, dll.
Oleh karena itu sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa
pertukaran-data.
JSON terbuat dari dua struktur:
• Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan
sebagai objek (object), rekaman (record), struktur (struct), kamus
(dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau
associative array.
• Daftar nilai terurutkan (ordered list of values). Pada kebanyakan bahasa, hal
ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan
(sequence).
2.9. SQLite
Menurut Ramadani, Tammam, Setyo, dkk (2017) SQLite merupakan sebuah
sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki
ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan
proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp.
27
Uin Syarif Hidayatullah Jakarta
SQLite ini adalah mesin database SQL yang tertanam pada sistem yang kita
gunakan. Tidak seperti pada paradigma client-server umumnya, Inti SQLite bukanlah
sebuah sistem yang mandiri yang berkomunikasi dengan sebuah program, melainkan
sebagai bagian integral dari sebuah program secara keseluruhan.
Sehingga protokol komunikasi utama yang digunakan adalah melalui
pemanggilan API secara langsung melalui bahasa pemrograman. Mekanisme seperti
ini tentunya membawa keuntungan karena dapat mereduksi overhead, latency times,
dan secara keseluruhan lebih sederhana. Seluruh elemen basisdata (definisi data,
tabel, indeks, dan data) disimpan sebagai sebuah file. Kesederhanaan dari sisi disain
tersebut bisa diraih dengan cara mengunci keseluruhan file basis data pada saat
sebuah transaksi dimulai.
SQLite dapat digunakan di Windows Phone, Android, iPhone, PHP, Firefox,
Chrome dan lain – lain yang dapat dilihat di: http://www.sqlite.org/famous.html.
Pada browser, biasanya SQLite ini digunakan untuk menyimpan kongfigurasi seperti
history, bookmark, dan cache, sedangkan pada mobile, penggunaan SQLite ini
sangat banyak seperti kontak, database tabel dsb.
SQLite adalah produk public domain. Artinya tidak punya lisensi, anda boleh
mengambil binary atau source codenya secara free / gratis. Berikut merupakan tipe
data yang didukung SQLite :
• Numeric ( integer , float , double),
• Text ( Char , varchar , text )
• DATETIME
• BLOB
2.10. Application Program Interface (API)
API merupakan serangkaian instruksi dan standar pemrograman untuk
mengakses aplikasi atau layanan berbasis web. Sebuah perusahaan software atau
penyedia layanan berbasis web merilis API mereka kepada publik. Dengannya,
pengembang lain dapat mendesain aplikasi yang memanfaatkan layanan mereka.
API memungkinkan sebuah aplikasi berkomunikasi dengan aplikasi lain di
Internet melalui serangkaian panggilan (call). Sebuah API, berdasarkan definisinya,
28
Uin Syarif Hidayatullah Jakarta
adalah sesuatu yang mendefinisikan cara dua entitas untuk berkomunikasi. Entitas di
sini adalah sebuah software yang nyata berbeda (dalam layanan) dengan software
lain.
Dengan API, panggilan-panggilan yang bolak-balik antar aplikasi diatur
melalui web service. Web service adalah kumpulan standar teknis dan protokol,
termasuk XML (Extensible Markup Language), bahasa umum yang digunakan oleh
aplikasi-aplikasi tersebut selama berkomunikasi di Internet.
Dengan demikian, API adalah standar komunikasi yang dibuka oleh
perusahaan software, agar dapat dimanfaatkan oleh pengembang pihak ketiga untuk
mendesain aplikasi yang memanfaatkan layanan mereka dengan mudah (Wulandari,
2013).
2.11. Rapid Application Development (RAD)
Rapid Application Development (RAD) merupakan salah satu metode dalam
pengembangan sistem (System Development Life Cycle), dimana metode ini dapat
digunakan untuk menyelesaikan adanya keterlambatan dalam permasalahan sistem
yang pengolahan datanya masih bersifat konvensional. Model RAD ini sesuai untuk
menghasilkan sistem pereangkat lunak dengan kebutuhan perangkat lunak dengan
waktu yang pendek. Model RAD membagi tim pengembang menjadi berberapa tim
untuk mengerjakan berberapa komponen masing-masing tim pengerjaan dapat
dilakukan secara paralel. berikut gambar model RAD:
29
Uin Syarif Hidayatullah Jakarta
Gambar 2. 9 Model RAD (Sumber: Hidayati, 2018)
Berikut merupakan penjelasan mengenai model RAD:
1. Pemodelan Bisnis
Pemodelan bisnis ini merupakan pemodelan yang digunakan untuk
memodelkan fungsi bisnisnya, seperti apa saja yang berhubungan dengan
proses bisnis, informasi apa saja yang harus dihasilkan dan siapa yang
membuatnya, serta bagaimana alur dan proses informasi tersebut.
2. Pemodelan Data
Dalam pemodelan data ini, dapat ditentukan data-data yang
dibutuhkan dari pemodelan bisnisnya, menentukan atribut dan relasi dengan
data-data yang lain.
30
Uin Syarif Hidayatullah Jakarta
3. Pemodelan Proses
Pemodelan proses ini merupakan tahapan dalam menerapkan fungsi
bisnis yang sudah didefinisikan sebelumnya, terutama yang berkaitan dengan
data.
4. Pemodelan Aplikasi
Dalam tahapan ini, aplikasi program yang sudah dibuat berdasarkan
pemodelan data dan proses siap diimplementasikan.
5. Pengujian dan Pergantian
Setelah tahapan pemodelan aplikasi, maka perlu dilakukan pengujian
terhadap komponen-komponen yang dibuat. Apabila pengujian ini dapat
dilakukan dengan baik, maka tim pengembang komponen dapat menuju ke
pengembangan komponen berikutnya.
Secara normal, seandainya pengembangan sistem membutuhkan waktu
sebanyak 180 hari, maka dengan adanya metode RAD ini, waktu tersebut dapat
dipersingkat menjadi 30-90 hari untuk menyelesaikan sistem perangkat lunak
tersebut. Keterlibatan pengguna dalam proses analisa dan perancangan sistemnya,
sangat diperlukan dalam model RAD. Dengan demikian dapat memnuhi kebutuhan
pengguna dengan baik dan secara nyata akan dapat meningkatkan tingkat kepuasan
pengguna sistem (Hidayati, 2018).
2.12. Flowchart
2.12.1. Definisi Flowchart
Menurut Kadir (2013), flowchart adalah bentuk penyajian grafis yang
menggambarkan solusi langkah demi langkah terhadap suatu permasalahan.
Flowchart tidak hanya dipakai untuk menggambarkan operasi yang sederhana, tetapi
juga dapat digunakan untuk menangani persoalan yang kompleks.
2.12.2. Kelebihan Flowchart
• Merupakan metode komunikasi yang andal, hanya menggunakan sedikit
simbol yang mudah dipahami oleh siapa saja.
31
Uin Syarif Hidayatullah Jakarta
• Bentuknya mnecerminkan keadaaan yang sesungguhnya. Misalnya, secara
visual dapat menggambarkan pengulangan atau pencabangan.
• Keesalahan-kesalahan dapat terdeteksi secara visual (misalnya ada langkah
yang belum diarahkan ke langkah lain).
2.12.3. Kekurangan Flowchart
• Jika logika kompleks, flowchart menjadi rumit dan menyita tempat.
• Membosankan kalau simbol-simbol di flowchart harus digambar secara
manual. Namun, ini teratasi kalau program penggambar flowchart digunakan.
2.12.4. Simbol-simbol Flowchart
Tabel 2.1 Simbol-simbol Pada Flowchart (Sumber: Kadir, 2013)
Simbol Nama Fungsi
Terminator Permulaan/akhir program
Garis Alir Arah aliran program
Preparation Proses inisialisasi/ pembagian
harga awal
Proses Proses perhitungan/proses
pengolahan data
Input/output Data Proses input/output data,
parameter, informasi
Predefined
Process
Permulaan sub program/proses
menjalankan sub program
Decision Perbandingan pernyataan,
memberikan pilihan untuk langkah
selanjutnya
Onpage
Connector
Penghubung bagian-bagian
flowchart yang berada pada satu
halaman
32
Uin Syarif Hidayatullah Jakarta
Simbol Nama Fungsi
Offpage
Connector
Penghubung bagian-bagian
flowchart yang berada pada
halaman berbeda
2.13. Metode Pengumpulan Data
2.13.1. Pengertian Metode Pengumpulan Data
Metode pengumpulan data adalah berbagai cara yang digunakan untuk
mengumpulkan data, mengambil, atau menjaring data penelitian (Suwartono, 2014).
2.13.2. Studi Pustaka
Studi pustaka merupakan usaha-usaha yang dilakukan oleh peneliti untuk
mendapatkan berbagai informasi, sesuai dengan topik yang sedang diteliti yaitu
dengan cara menggali berbagai informasi yang bersumber dari buku-buku ilmiah,
laporan penelitian, karangan-karangan ilmiah, tesis dan disertasi, peraturan-
peraturan, dan sumber lainnya baik secara tertulis maupun dari media elektronoik.
Kegunaan dari studi pustaka ini adalah untuk menjelaskan variabel yang menjadi
topik dalam penelitian (Fitrianti, 2016).
2.13.3. Wawancara
2.13.3.1. Pengertian Wawancara
Menurut Suwartono (2014), wawancara adalah cara menjaring
informasi atau data melalui interaksi verbal/lisan. Wawancara memungkinkan
peneliti untuk menyusup kedalam “alam” pikiran orang lain, tepatnya hal-hal
yang berhubungan dengan perasaan, pikiran, pengalaman, pendapat, dan
lainnya yang tidak dapat diamati.
Sedangkan menurut Winarno (2018), wawancara adalah sebuah dialog
yang dilakukan oleh pewawancara untuk memperoleh informasi dari orang
yang diwawancarai. Wawancara digunakan oleh peneliti untuk menilai
keadaan seseorang, misalnya untuk mencari data tentang variabel latar
33
Uin Syarif Hidayatullah Jakarta
belakang murid, orang tua, pendidikan, perhatian, maupun sikap terhadap
sesuatu.
Secara fisik, wawancara dapat dibedakan atas wawancara terstruktur
dan wawancara tidak terstruktur. Pada umumnya wawancara terstruktur di
luat negeri telah dibuat terstandar. Wawancara terstruktur terdiri dari
serentetan pertanyaan di mana pewawancara tinggal memberikan tanda check
() pada pilihan jawaban yang telah disiapkan, wawancara terstandar ini
kadang-kadang disembunyikan oleh pewawancara akan tetapi tidak pula yang
diperlihatkan kepada responden, bahkan respondenlah yang dipersilahkan
memberikan tanda. Dalam keadaan terakhir, maka wawancara ini tidak
ubahnya sebagai kuesioner saja.
Bila ditinjau dari pelaksanaannya, maka wawancara dibedakan atas:
1. Wawancara bebas, dimana pewawancara bebas menanyakan apa
saja, tetapi juga mengingat akan data apa yang akan
dikumpulkan. Penulis menggunakan wawancara jenis ini.
2. Dalam pelaksanaannya, pewawancara tidak membawa pedoman
apa yang akan ditanyakan. Kebaikan metode ini adalah bahwa
responden tidak menyadari sepenuhnya bahwa iia sedang
diwawancarai. Dengan demikian, suasananya akan menjadi lebih
santai karena hanya omong-omong biasa. Kelemahan
penggunaan teknik ini adalah arah pertanyaan kadang-kadang
kurang terkendali.
3. Wawancara terpimpin, yaitu wawancara yang dilakukan oleh
pewawancara dengan membawa sederetan pertanyaan lengkap
dan terperinci seperti yang dimaksud dalam wawancara
terstruktur.
4. Wawancara bebas terpimpin, yaitu kombinasi antara wawancara
bebas dan wawancara terpimpin (Winarno, 2018).
34
Uin Syarif Hidayatullah Jakarta
2.13.4. Kuesioner
2.13.4.1. Pengertian Kuesioner
Menurut Winarno (2018), kuesioner adalah sejumlah pertanyaan
tertulis yang digunakan untuk memperoleh informasi dari responden tentang
sesuatu yang akan diteliti. Secara umum, angket atau kuesioner digunakan
untuk mengungkap data yang berkaitan dengan data pribadi responden,
pendapat atau informasi lain yang berkaitan dengan masalah penelitian.
Teknik pengambilan sampel yang penulis gunakan dalam penelitian
ini adalah simple random sampling atau sampling acak sederhana. Menurut
Gayatri (2018), sampling acak sederhana ialah pemilihan sampel yang
dilakukan dengan cara acak, dimana setiap elemen memiliki peluang yang
sama untuk dipilih dari populisasi.
Secara garis besar, kuesioner dapat dibedakan atas berberapa jenis,
antara lain:
1. Berdasarkan cara menjawab:
• Kuesioner terbuka, yaitu jika memberi kesempatan kepada
responden untuk menjawab dengan kalimatnya sendiri. Penulis
menggunakan jenis kuesioner ini.
• Kuesioner tertutup, yaitu jika sudah disediakan jawabannya
sehingga responden tinggal memilih.
2. Berdasarkan jawaban yang diberikan:
• Kuesioner langsung, yaitu jika responden menjawab tentang
dirinya .Penulis menggunakan kuesioner jenis ini.
• Kuesioner tidak langsung, yaitu jika responden menjawab tentang
orang lain.
3. Berdasarkan bentuknya:
• Kuesioner pilihan ganda, jika yang dimaksud adalah sama dengan
kuesioner tertutup.
• Kuesioner isian, yang dimaksud adalah kuesioner terbuka. Penulis
menggunakan kuesioner jenis ini.
35
Uin Syarif Hidayatullah Jakarta
• Check list (sebuah daftar), di mana responden tinggal
membubuhkan tanda check () pada kolom yang sesuai.
• Rating-scale (skala bertingkat), yaitu sebuah pernyataan diikuti
oleh kolom-kolom yang menunjukkan tingkat-tingkatan misalnya
mulai dari sangat setuju sampai ke sangat tidak setuju.
2.13.4.2. Keuntungan Kuesioner
• Tidak memerlukan hadirnya peneliti.
• Dapat dibagikan secara serentak kepada banyak responden.
• Dapat dijawab oleh responden menurut kecepatannya masing-masing,
dan menurut waktu senggang responden.
• Dapat dibuat anonim sehingga responden bebas jujur dan tidak malu-
malu menjawab.
• Dapat dibuat terstandar sehingga bagi semua responden dapat diberi
pertanyaan yang benar-benar sama.
2.13.4.3. Kelemahan Kuesioner
• Responden sering tidak teliti dalam menjawab sehingga ada
pertanyaan yang terlewati tidak dijawab, padahal sukar diulangi
diberikan kembali kepadanya.
• Seringkali sukar dicari validitasnya.
• Walaupun dibuat anonim, kadang-kadang responden dengan sengaja
memberikan jawaban yang tidak betul atau tidak jujur.
• Seringkali tidak kembali, terutama jika dikirim lewat pos. Menurut
penelitian, angket yang dikirim lewat pos angka pengembaliannya
sangat rendah, hanya sekitar 20%.
• Waktu pengembaliannya tidak bersama-sama, bahkan kadang-kadang
ada yang terlalu lama sehingga terlambat.
36
Uin Syarif Hidayatullah Jakarta
Untuk mengatasi kelemahan-kelemahan angket atau kuesioner
terutama terkait dengan validitas data dan kejujuran pengisi data, maka perlu
disederhanakan dengan cara peneliti melakukan cross check antara jawaban
responden dengan data yang diperoleh melalu metode lain (Winarno, 2018).
2.14. Pengujian Perangkat Lunak
2.14.1. Definisi Pengujian
Menurut Karmilasari (2018), pengujian perangkat lunak adalah elemen kritis
dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari
spesifikasi, desain dan pengkodean. Pengujian menyajikan anomali yang menarik
bagi perekayasa perangkat lunak. Pada proses perangkat lunak, perekayasa pertama-
tama berusaha membangun perangkat lunak dari konsep abstrak ke implementasi
yang dapat dilihat, baru dilakukan pengujian. Perekayasa menciptakan sederetan test
case yang dimaksudkan untuk “membongkar” perangkat lunak yang sudah dibangun.
Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat
lunak yang dapat dianggap (paling tidak secara psikologis) sebagai hal yang
destruktif daripada konstruktif.
2.14.2. Sasaran-saran Pengujian
Berberapa sasaran pengujian diantaranya:
• Pengujian adalah proses eksekusi suatu program dengan maksud menemukan
kesalahan.
• Test case yang baik adalah memiliki probabilitas tinggi untuk menemukan
kesalahan yang belum pernah ditemukan sebelumnya.
• Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan
yang belum pernah ditemukan sebelumnya.
Sasaran tersebut mengimplikasikan adanya perubahan titik pandang yang
dramatis. Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang
menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada
kesalahan yang ditemukan. Sasarannya adalah mendesain pengujian yang secara
37
Uin Syarif Hidayatullah Jakarta
sistematis mengungkap kelas kesalahan yang berbeda dan melakkukannya dengan
jumlah waktu dan usaha minimum.
Bila pengujian dilakukan secara sukses (sesuai dengan sasaran tersebut),
maka akan ditemukan kesalahan di dalam perangkat lunak. Sebagai keuntungan
sekunder, pengujian menunjukkan bahwa fungsi perangkat lunak bekerja sesuai
dengan spesifikasi dan bahwa persyaratan kinerja telah dipenuhi. Sebagai tambahan,
data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang
baik mengenai reliabilitas perangkat lunak dan beberapa menunjukkan kualitas
perangkat lunak secara keseluruhan.
2.14.3. Blackbox Testing
Menurut Karmilasari (2018), Pengujian blackbox berfokus pada persyaratan
fungsional perangkat lunak. Dengan demikian, pengujian blackbox memungkinkan
perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang
sepenuhnya menggunakan semua peryaratan fungsional untuk suatu program.
Pengujian blackbox bukan merupakan alternatif dari teknik whitebox tetapi
merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap
kelas kesalahan daripada metode whitebox.
Pengujian blackbox berusaha menemukan kesalahan dalam kategori sebagai
berikut:
• Fungsi-fungsi yang tidak benar atau hilang.
• Kesalahan interface.
• Kesalahan dalam struktur data atau akses database eksternal.
• Kesalahan kinerja.
• Inisialisasi dan kesalahan terminasi.
Tidak seperti pengujian whitebox yang dilakukan pada awal proses pengujian,
pengujian blackbox cenderung diaplikasikan selama tahap akhir pengujian. Karena
pengujian blackbox memperhatikan struktur kontrol, maka perhatian berfokus pada
domain informasi.
38
Uin Syarif Hidayatullah Jakarta
2.15. Studi Literatur Sejenis
Studi literatur merupakan mencari secara literatur, melokalisasi, dan
menganalisis dokumen yang berhubungan dengan masalah yang akan kita teliti.
Adapun tujuan yang dilakukan studi literatur yaitu sebagai berikut:
• Mencari teori atau hasil penelitian yang akan digunakan sebagai sandaran
atau tempat berpijak. Misalnya bila permasalahan kita mengenai siswa
terhadap matematika, maka teori atau hasil penelitian yang akan digunakan
sebagai landasan adalah mengenai sikap atau faktor yang dapat
mempengaruhi sikap.
• Dengan telah dilakukannya studi literatur, peneliti dapat melihat seberapa
jauh hasil penelitian yang telah ditemukan orang lain yang berhubungan
dengan masalah yang akan kita teliti.
• Studi literatur bertujuan melihat strategi, prosedur, dan alat-alat ukur
(instrumen) yang sudah terbukti berhasil atau tidak (gagal) baik dalam
penelitian yang serupa atau berhubungan dengan penelitian yang akan kita
lakukan.
• Studi literatur dapat membantu peneliti dalam mengartikan atau
menterjemahkan hasil penelitian (E. M. Sangadji & Sopiah, 2013).
39
Uin Syarif Hidayatullah Jakarta
Pada penelitian ini, peneliti mengumpulkan tiga penelitian sejenis yang
kemudian dijadikan perbandingan untuk diketahui kelebihan dan kekurangannya.
Berikut merupakan studi literatur sejenis yang penulis gunakan sebagai rujukan
dalam penulisan:
Tabel 2.2 Studi Literatur Sejenis
No Peneliti Judul Kelebihan Kekurangan
1. Anang Hanafi
Universitas
Brawijaya
Malang
2018
Penyelesaian
Multiple
Traveling
Salesman
Problem (M-TSP)
Dengan
Menggunakan
Algoritma
Genetika
Berhasil menerapkan
algoritma genetika
dalam
menyelesaikan
Traveling Salesman
Problem
Hanya melakukan perhitungan
dan belum dikembangkan ke
versi mobile sehingga lebih
praktis dalam penggunaannya
2. Olief Ilmandira
Ratu Farisi
Universitas Nurul
Jadid
Probolinggo
2017
Penerapan
Traveling
Salesman
Problem pada
Penyebaran
Brosur
Penerimaan
Mahasiswa Baru
Sekolah Tinggi
Teknologi Nurul
Jadid
Menggunakan
Ant Colony
Optimization
Berhasil menerapkan
algoritma koloni
semut serta
menjelaskan
bagaimana
menetapkan nilai
parameter yang
digunakan
Hanya melakukan
implementasi dan perhitungan
tanpa perancangan
40
Uin Syarif Hidayatullah Jakarta
No Peneliti Judul Kelebihan Kekurangan
3. Himmawati Puji
Lestari
Kampus
Karangmalang
Yogyakarta
2014
Penerapan
Algoritma Koloni
Semut untuk
Optimasi Rute
Distribusi
Pengangkutan
Sampah di kota
Yogyakarta
Informasi yang dimuat
dari hasil optimasi
dengan menerapkan
algoritma koloni
semut sangat
lengkap
Tidak menjelaskan bagaimana
menetapkan nilai parameter
yang digunakan dalam
algoritma koloni semut
41 Uin Syarif Hidayatullah Jakarta
BAB III
METODOLOGI PENELITIAN
Bab ini akan membahas tentang metode penelitian yang penulis gunakan
dalam menyusun skripsi ini. Metode penelitian yang digunakan terbagi menjadi dua
yaitu metode pengumpulan data dan metode pengembangan sistem. Penjelasan lebih
lanjutnya adalah sebagai berikut:
3.1. Metode Pengumpulan Data
Dalam menyusun sebuah penelitian dibutuhkan data dan informasi yang
menjadi bahan materi serta pembahasan. Metode pengumpulan data yang digunakan
dalam melakukan penelitian ini yaitu:
3.1.1. Studi Pustaka
Pada tahapan pengumpulan data dengan cara studi pustaka, penulis mencari
referensi-referensi yang relevan dengan objek yang akan diteliti. Pencarian referensi
dilakukan di toko buku, perpustakaan, dan secara online melalui internet. Setelah
mendapatkan referensi-referensi yang relevan, selanjutnya penulis mencari
informasi-informasi lain yang dibutuhkan dalam penelitian. Seperti informasi yang
digunakan dalam penyusunan latar belakang, landasan teori, metodologi penelitian
serta pengembangan aplikasinya secara langsung. Selain literatur sejenis, buku-buku,
situs internet, penulis juga mengumpulkan jurnal-jurnal ilmiah yang dijadikan acuan
dalam perancangan serta pembuatan sistem. Jumlah studi pustaka yang telah penulis
gunakan dalam penelitian ini ialah sebanyak 21, terdiri dari 4 buku, 10 jurnal, dan 7
website. Daftar studi pustaka yang penulis gunakan dapat dilihat pada bab Daftar
Pustaka.
3.1.2. Studi Lapangan
Penulis melakukan studi lapangan dengan dua metode, yaitu wawancara dan
kuesioner.
42
Uin Syarif Hidayatullah Jakarta
3.1.2.1. Wawancara
Penulis telah melakukan wawancara dengan narasumber Bapak Novel
Zulham selaku General Manager Operasional PT Wahana Prestasi Logistik.
Wawancara ini dilakukan pada tanggal 22 November 2017, dan berlokasi di
kantor PT Wahana Prestasi Logistik Rempoa, Ciputat. Penulis melakukan
wawancara untuk memperoleh dan mengumpulkan data yang dibutuhkan
antara lain permasalahan yg dialami oleh tim operasional khususnya kurir
dalam upaya mencari rute terpendek pengiriman paket. Belum ada sistem
yang memudahkan para kurir untuk menemukan rute terpendek mereka
sehingga kurir diharuskan memilih sendiri rute nya dan mengakibatkan dapat
terjadi pemborosan waktu, biaya, dan tenaga. Hasil Wawancara dapat dilihat
pada lampiran 3.
3.1.2.2. Kuesioner
Peneliti membuat kuesioner yang berisi pertanyaan-pertanyaan untuk
memastikan latar belakang dari pembuatan penelitian ini yaitu untuk
mendapatkan presentase dari responden yang kesulitan dalam menemukan
rute paling pendek pada pengiriman paket ke setiap alamat tujuan, lalu
presentase minat mereka terhadap dibuatnya aplikasi pencarian rute terpendek
ini. Data-data tersebut penulis gunakan untuk memperkuat latar belakang
penelitian ini.
Responden dari kuesioner ini ditujukan kepada para kurir PT Wahana
Prestasi Logistik sebagai pengguna akhir aplikasi yang akan penulis bangun.
Kuesioner ini dilakukan pada tanggal 22 November 2017, dan berlokasi di
kantor PT Wahana Prestasi Logistik Rempoa, Ciputat. Dari hasil penyebaran
kuesioner didapat data seluruh kurir yang beroperasi di wilayah Kecamatan
Ciputat sejumlah 12 kurir sebagai responden. Hasil kuesioner dapat dilihat
pada lampiran 2.
43
Uin Syarif Hidayatullah Jakarta
3.2. Metode Pengembangan Sistem
Penulis memilih model RAD karena tahapanya terstruktur, pengembangan
perangkat lunak dapat dilakukan dalam waktu yang cepat dan alasan utama
penggunaan RAD karena adalah pengembangan ini akan bekerja dengan baik bila
diterapkan pada aplikasi yang berskala kecil. RAD memiliki tiga fase utama dalam
pengembangan sistem, yaitu:
3.2.1. Tahap Perencanaan Syarat
Pada tahap perencanaan syarat-syarat dilakukan pengidentifikasian tujuan
sistem atau aplikasi yang akan dirancang serta untuk mengidentifikasi kebutuhan
kurir PT Wahana Prestasi Logistik dan merancangnya ke dalam sebuah sistem.
Dalam tahap ini dilakukan beberapa hal antara lain:
3.2.1.1. Analisis Masalah
Mengidentifikasi masalah yang menjadi alasan penulis membuat
aplikasi ini.
3.2.1.2. Penyelesaian Masalah
Penyelesaian dari permasalahan yang sudah dijelaskan.
3.2.1.3. Analisis Kebutuhan
Menjelaskan Kebutuhan apa saja yang dibutuhkan dalam membuat
aplikasi.
3.2.1.4. Analisis Fitur
Menjelaskan fitur-fitur yang digunakan dalam aplikasi ini.
3.2.1.5. Analisis Algoritma ACO
Menjelaskan mengenai algoritma yang dipakai untuk mencari rute
terpendek yaitu algoritma ant colony optimization (ACO).
3.2.2. Tahap Workshop Desain
Tahap perancangan atau workshop desain adalah tahap perancangan sistem.
Pada tahap ini dilakukan proses desain sistem dan perbaikan apabila masih terdapat
44
Uin Syarif Hidayatullah Jakarta
ketidaksesuaian desain antara pengguna dan perancang sistem. Tahap perancangan
sistem terdiri dari 5 tahap, antara lain:
3.2.2.1. Tahap Desain Sistem dan Proses
Pada tahap ini penulus akan menjelaskan mengenai alur penggunaan
sistem, dan proses apa saja yang berjalan dalam sistem.
3.2.2.2. Tahap Perancangan Basisdata
Pada tahap ini penulis melakukan perancangan basisdata pada sistem.
Perancangan basisdata sistem meliputi tabel-tabel yang digunakan dalam
pengolahan data dan diimplementasikan pada sistem.
3.2.2.3. Tahap Perancangan User Interface
Desain antarmuka berfungsi sebagai media komunikasi antara sistem
dengan user. Desain antarmuka dirancang sebagai gambaran sistem yang
akan dibuat. Desain antarmuka ini penulis buat dengan menggunakan tools
Balsamic Mockup 3.
3.2.2.4. Pengkodean
Untuk tahap pengkodean (coding), bahasa pemrograman yang
digunakan adalah java dengan menggunakan tools Android Studio.
3.2.3. Tahap Implementasi
Pada tahap ini penulis menjelaskan tentang hasil implementasi aplikasi serta
melakukan pengujian terhadap aplikasi yang dibangun. Metode pengujian sistem
yang penulis gunakan adalah blackbox testing yang berfokus pada pesyaratan
fungsional perangkat lunak. Hal yang tidak kalah penting adalah aplikasi harus
berjalan dengan baik di lingkungan user yaitu kurir PT Wahana Prestasi Logistik
sehingga user dapat merasakan kemudahan serta manfaat dari aplikasi ini.
45
Uin Syarif Hidayatullah Jakarta
3.3. Kerangka Berpikir Penelitian
Berdasarkan penjabaran metode diatas, maka penulis membuat kerangka
berpikir dalam penelitian ini sebagai berikut:
Gambar 3.1 Kerangka Berfikir Penelitian
46
Uin Syarif Hidayatullah Jakarta
BAB IV
ANALISIS, PERANCANGAN, IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1. Tahap Pengumpulan Data
Dalam penelitian ini, penulis menggunakan dua metode pengumpulan data,
yaitu studi pustaka dan studi lapangan.
4.1.1. Studi Pustaka
Penulis menggunakan beberapa sumber sebagai bahan studi pustaka,
diantaranya adalah buku-buku, jurnal ilmiah, situs internet, dan literatur sejenis yang
berhubungan dengan penelitian ini. Studi literatur sejenis dapat dilihat pada bab 2.16.
Jumlah studi pustaka yang telah penulis gunakan dalam penelitian ini ialah sebanyak
21, terdiri dari 4 buku, 10 jurnal, dan 7 website. Daftar studi pustaka yang penulis
gunakan dapat dilihat pada bab Daftar Pustaka.
4.1.2. Studi Lapangan
Studi lapangan dilakukan dengan dua metode, yaitu wawancara dan
kuesioner.
4.1.2.1. Wawancara
Penulis melakukan wawancara kepada 1 narasumber, yaitu Pak Novel
Zulham selaku General Manager Operasional PT Wahana Prestasi Logistik.
General Manager Operasional membawahi berberapa divisi yang ada,
diantaranya ialah: kurir yang mengantarkan paket ke alamat penerima, supir
yang mengantarkan paket dari agen atau kantor menuju ke kantor lain, dan
tim sorting barang yang melakukan penyortiran barang sesuai dengan
wialyah alamat yang dituju.
Wawancara dilakukan seputar pertanyaan mengenai permasalahan
pencarian rute terpendek. Berdasarkan diskusi tersebut diketahui secara rinci
mengenai alur kerja kurir dalam melakukan pengiriman paket. Menurut Pak
Novel, tim kurir akan sangat terbantu bila ada aplikasi yang dapat
47
Uin Syarif Hidayatullah Jakarta
menemukan rute terpendek perjalanan mereka saat mengantarkan paket ke
setiap alamat atau lokasi yang dituju, dikarenakan banyaknya paket yang
harus mereka antar setiap harinya. Jadi akan menghemat waktu, tenaga, dan
biaya dengan adanya aplikasi ini. Hasil wawancara tersebut dapat dilihat pada
lampiran.
4.1.2.2. Kuesioner
Responden yang mengisi kuesioner ini adalah kurir PT Wahana
Prestasi Logistik. Kuesioner ini dilakukan pada tanggal 22 November 2017,
dan berlokasi di kantor PT Wahana Prestasi Logistik Rempoa, Ciputat. Dari
hasil penyebaran kuesioner didapatkan data sebanyak 12 kurir yang menjadi
responden dalam penelitian ini. Tabel dibawah ini merupakan berberapa
pertanyaan yang ada dalam kuesioner:
Tabel 4.1 Pertanyaan Kuesioner
No. Indikator Pertanyaan Tujuan
1
Traveling
Salesman
Problem
Berapa banyak paket yang
Anda kirim dalam 1 hari?
Mengetahui berapa banyak
paket yang dikirim oleh
setiap kurir
2 Bagaimana Anda menentukan
rute pengiriman paket ke setiap
alamat yang dituju?
Mengetahui cara kurir
menentukan rute pengiriman
sebelum adanya aplikasi
yang akan dibangun
3 Apakah Anda mengalami
kesulitan dalam menentukan
rute terpendek pengiriman
paket?
Mengetahui seberapa
banyak kurir yang merasa
kesulitan dalam menentukan
rute pengiriman.
4 Sistem
Operasi
Sistem Operasi apa yang
digunakan pada smartphone
Anda?
Mengetahui sistem operasi
yang kurir gunakan pada
smartphone mereka.
48
Uin Syarif Hidayatullah Jakarta
No. Indikator Pertanyaan Tujuan
5
Aplikasi
Pencarian
Lintasan
Terpendek
Apakah Anda pernah
menggunakan aplikasi yang
dapat mencari rute terpendek?
Mengetahui seberapa
banyak kurir yang pernah
menggunakan aplikasi
pencarian rute terpendek.
6
Menurut Anda, apakah penting
dan berguna jika ada sebuah
aplikasi pada smartphone Anda
yang mampu menemukan rute
terpendek dari setiap lokasi
yang dituju?
Mengetahui ketertarikan
kurir mengenai aplikasi
pencarian rute terpendek
yang akan dibangun.
Pertanyaan tersebut disebar untuk membuktikan dan menyelesaikan
permasalahan yang diangkat dalam penelitian ini, yaitu tentang kesulitan
dalam menentukan rute pengiriman terpendek. Berikut hasil kuesioner dari 6
pertanyaan diatas.
1. Hasil Kuesioner Pertanyaan 1
Berikut merupakan hasil kuesioner pertanyaan 1, “Berapa
banyak paket yang Anda kirim dalam 1 hari?”:
Tabel 4.2 Hasil Kuesioner Pertanyaan 1
No. Jumlah Paket yang Dikirim
dalam 1 Hari
1 28
2 31
3 26
4 34
5 53
6 24
7 20
8 52
49
Uin Syarif Hidayatullah Jakarta
No. Jumlah Paket yang Dikirim
dalam 1 Hari
9 22
10 40
11 32
12 29
Jumlah 396
Rata-rata 33
2. Hasil Kuesioner Pertanyaan 2
Berikut merupakan hasil kuesioner pertanyaan 2, “Bagaimana
Anda menentukan rute pengiriman paket ke setiap alamat yang
dituju?:
Tabel 4.3 Hasil Kuesioner Pertanyaan 2
No. Cara Menentukan Lintasan Pengiriman Paket Responden
n %
1 Dari terdekat hingga ke yang terjauh 7 orang 58,3 %
2 Alamat yang diketahui akan lebih
diutamakan 2 orang 16,67 %
3 Tidak tentu 3 orang 25 %
Jumlah 12 orang 100 %
50
Uin Syarif Hidayatullah Jakarta
3. Hasil Kuesioner Pertanyaan 3
Berikut merupakan hasil kuesioner pertanyaan 3, “Apakah
Anda mengalami kesulitan dalam menentukan rute terpendek
pengiriman paket?:
Tabel 4.4 Hasil Kuesioner Pertanyaan 3
No. Sulit dalam Menemukan Lintasan Terpendek Responden
n %
1 Ya 10 orang 83,3 %
2 Tidak 2 orang 16,7 %
Jumlah 12 orang 100 %
4. Hasil Kuesioner Pertanyaan 4
Berikut meurpakan hasil kuesioner pertanyaan 4, “Sistem
Operasi apa yang digunakan pada smartphone Anda?”:
Tabel 4.5 Hasil Kuesioner Pertanyaan 4
No. Sistem Operasi yang digunakan Responden
n %
1 Android 8 orang 66,7 %
2 Blackberry 1 orang 8,3 %
3 Symbian 3 orang 25 %
Jumlah 12 orang 100 %
51
Uin Syarif Hidayatullah Jakarta
5. Hasil Kuesioner Pertanyaan 5
Berikut merupakan hasil kuesioner pertanyaan 5, “Apakah
Anda pernah menggunakan aplikasi yang dapat mencari rute
terpendek?”:
Tabel 4.6 Hasil Kuesioner Pertanyaan 5
No. Pernah Menggunakan Aplikasi yang Dapat
Menemukan Lintasan Terpendek
Responden
n %
1 Ya 2 orang 16,7 %
2 Tidak 10 orang 83,3 %
Jumlah 12 orang 100 %
6. Hasil Kuesioner Pertanyaan 6
Berikut merupakan hasil kuesioner pertanyaan 6, “Menurut
Anda, apakah penting dan berguna jika ada sebuah aplikasi pada
smartphone Anda yang mampu menemukan rute terpendek dari setiap
lokasi yang dituju?”:
Tabel 4.7 Hasil Kuesioner Pertanyaan 6
No.
Ketertarikan Menggunakan Aplikasi yang
Dapat Menemukan Lintasan Terpendek dari
Setiap Lokasi yang Dituju
Responden
n %
1 Ya 11 orang 91,7 %
2 Tidak 1 orang 8,3 %
Jumlah 12 orang 100 %
52
Uin Syarif Hidayatullah Jakarta
4.2. Tahap Perencanaan Syarat
4.2.1. Analisis Masalah
Dari hasil kuesioner yang penulis lakukan sebelumnya, dapat disimpulkan
bahwa 9 dari 12 atau sama dengan 75 % responden memiliki kesulitan dalam
menemukan rute terpendek pengiriman paket ke setiap alamat atau lokasi yang
dituju.
Pak Novel menyarankan bahwa kesulitan dapat diatasi dengan aplikasi yang
dapat mencari rute terpendek perjalanan kurir wahana saat mengantarkan paket ke
setiap alamat atau lokasi yang dituju. Hal ini sesuai dengan data kuesioner yang
menyatakan bahwa 11 dari 12 atau sama dengan 91,7 % responden menyatakan
tertarik dengan adanya aplikasi yang akan dibangun. Manfaat dari aplikasi ini ialah
semoga dapat mempermudah semua kurir PT . Wahana Prestasi Logistik untuk
mencari rute terpdendek pengiriman barang. Karena dengan menemukan rute
terpendek maka akan menghemat biaya, waktu, serta tenaga yang dikerahkan oleh
setiap kurir saat mengirimkan paket.
4.2.2. Penyelesaian Masalah
Penyelesaian dari masalah diatas adalah dengan membangun sebuah aplikasi
yang dapat menemukan rute terpendek perjalanan kurir saat mengantarkan barang ke
setiap alamat atau lokasi yang dituju. Aplikasi tersebut dapat menampilkan sebuah
map dengan menyertakan setiap titik lokasi alamat penerima yang disebut marker
berserta lokasi nya saat ini lalu di pada setiap titik lokasi tersebut terhubung oleh
garis sebagai acuan kurir untuk menetapkan urutan lokasi pengiriman
4.2.3. Analisis Kebutuhan
Tahap ini ditujukan untuk mengidentifikasi semua kebutuhan sistem yang
akan dibangun. Kebutuhan sistem terbagi dalam 2, yaitu data sampel paket yang
akan dikirim dan user kurir. Data sampel paket yang digunakan dalam penelitian ini
terdiri dari 33 paket dengan alamat atau lokasi yang berbeda. Sampel paket ini
disesuaikan dengan jumlah rata-rata paket yang di kirim oleh kurir setiap harinya
berdasarkan hasil kuesioner pertanyaan 1, lalu 1 user kurir sebagai uji coba.
53
Uin Syarif Hidayatullah Jakarta
Proses menemukan rute terpendek perjalanan kurir PT Wahana Prestasi
logistik ini ialah dengan menggunakan algoritma Ant Colony Optimization (ACO)
dikarenakan perhitungannya relatif lebih singkat dibandingkan dengan metode
konvensional.
Sebelum membuat aplikasi ini, penulis mencoba membuat rancangan sistem
terlebih dahulu agar saat aplikasi ini dibuat dapat berjalan dengan lebih baik.
Aplikasi ini akan dibuat berbasis smartphone android. Sistem operasi android dipilih
karena berdasarkan kuesioner yang telah dilakukan, terdapat 8 dari 12 responden
atau setara dengan 66,7 % dari total responden menggunakan Sistem Operasi
Android pada smartphone nya.
Pada pemakaian database, penulis menggunakan basisdata SQLite. Pemilihan
basisdata ini dikarenakan bisa disimpan secara offline atau lokal didalam Android.
4.2.4. Analisis Fitur
Dari penjelasan masalah yang sudah ada, didapatkan fitur yang akan
digunakan dalam aplikasi. Fitur-fitur dari aplikasi ini adalah login kurir, register,
lihat surat jalan, lihat rute, dan logout. Untuk lebih jelasnya akan dijelaskan dalam
tabel dibawah ini.
Tabel 4.8 Analisis Fitur
No Fitur Keterangan
1 Login Fitur ini berfungsi untuk membuat kurir
masuk ke dalam menu utama
2 Register Fitur ini berfungsi untuk mendaftarkan
user kurir yang belum terdaftar.
3 Lihat Surat Jalan Fitur ini berfungsi untuk menampilkan
surat jalan yang telah diinput
4
Lihat Rute
Pengiriman
Berbentuk Maps
Fitur ini berfungsi untuk menampilkan
rute pengiriman barang hasil dari
pencarian rute terpendek dalam bentuk
maps
54
Uin Syarif Hidayatullah Jakarta
No Fitur Keterangan
5
Lihat Rute
Pengiriman
Berbentuk List
Fitur ini berfungsi untuk menampilkan
rute pengiriman barang hasil dari
pencarian rute terpendek dalam bentuk list
/ daftar
6
Mengulang Proses
Pencarian Rute
Terpendek
Fitur ini berfungsi untuk mengulang
kembali proses pencarian rute terpendek
yang telah tersimpan dalam basisdata local
sebelumnya
7 Logout Fitur ini berfungsi untuk membuat kurir
keluar dari menu utama
4.2.5. Analisis Algoritma ACO
Pada sub bab ini penulis akan menganalisis algoritma ACO yang digunakan
untuk menyelesaikan TSP pada sistem ini.
55
Uin Syarif Hidayatullah Jakarta
4.2.5.1. Flowchart Algoritma ACO Untuk Menyelesaikan TSP
Berikut merupakan flowchart algoritma ACO yang penulis terapkan
untuk menyelesaikan TSP pada sistem ini:
Gambar 4.1 Flowchart Algoritma ACO
4.2.5.2. Perhitungan Algoritma ACO
Untuk menjelaskan cara kerja algoritma ACO yang diterapkan untuk
menyelesaikan TSP pada sistem yang penulis bangun, berikut akan diberikan
56
Uin Syarif Hidayatullah Jakarta
contoh kasus TSP dari 10 lokasi berbeda. Penentuan jumlah lokasi ini penulis
gunakan agar lebih mudah dalam memahaminya.
1. Mendefinisikan Lokasi
Pada sistem yang penulis bangun, untuk mendapat koordinat dari
lokasi alamat pengiriman, penulis menggunakan salah satu fungsi
google maps API yaitu geocode(). Dengan menggunakan fungsi ini,
sistem dapat mendapatkan koordinat latitude dan longitude dari suatu
alamat. Untuk hasil lokasi alamat beserta koordinatnya dapat dilihat
pada tabel berikut:
Tabel 4.9 Lokasi Alamat Pengiriman
Id
Lokasi Alamat
Koordinat
Latitude Longitude
0 PT. Wahana Prestasi Logistik -6.290973 106.758483
1 Depok, sawangan, jawa barat -6.4085961 106.76474
2 Pondok indah jakarta -6.2656714 106.78314
3 Srengseng jakarta barat -6.20427 106.75295
4 Jalan Medan Merdeka Selatan
No. 8-9 Blok B Lt. 3,
RT.11/RW.2, Gambir,
RT.11/RW.2, Gambir, Kota
Jakarta Pusat, Daerah Khusus
Ibukota Jakarta 10110
-6.18157 106.82838
5 Kantor Walikota Jakarta Timur -6.21406 106.94425
6 Jalan Prapanca Raya kebayoran
baru
-6.24887 106.80701
7 Kebon Bawang Tanjung Priok -6.11946 106.89011
8 Jalan Raya Kembangan No.2
jakarta barat
-6.18447 106.73656
57
Uin Syarif Hidayatullah Jakarta
Id
Lokasi Alamat
Koordinat
Latitude Longitude
9 Jalan Tanah Abang I No.1,
Petojo Selatan, Gambir
-6.172455 106.82057
2. Mencari Jarak Antar-Lokasi / edge
Dari koordinat tersebut dicari jarak masing-masing lokasi dengan
menggunakan fungsi distanceTo(). Untuk hasilnya dapat dilihat dalam
bentuk matriks 10x10 dengan satuan jarak kilometer pada tabel
berikut:
Tabel 4.10 Jarak Antar-Lokasi /edge
Id
Lokasi 0 1 2 3 4 5 6 7 8 9
0 0.0 13.02 13.02 9.60 14.35 9.60 22.24 23.91 12.02 14.79
1 13.02 0.0 15.93 22.63 26.07 18.27 29.27 34.85 24.98 26.83
2 13.02 15.93 0.0 7.56 10.56 3.22 18.71 20.04 10.35 11.10
3 9.60 22.63 7.56 0.0 8.71 7.75 21.19 17.84 2.84 8.26
4 14.35 26.07 10.56 8.71 0.0 7.80 13.31 9.68 10.16 1.32
5 9.60 18.27 3.22 7.75 7.80 0.0 15.66 17.01 10.56 8.58
6 22.24 29.27 18.71 21.19 13.31 15.66 0.0 2.05 23.21 14.44
7 23.91 34.85 20.04 17.84 9.68 17.01 2.05 0.0 18.45 9.67
8 12.02 24.98 10.35 2.84 10.16 10.56 23.21 18.45 0.0 9.39
9 14.79 26.83 11.10 8.26 1.32 8.58 14.44 9.67 9.39 0.0
3. Menetapkan Parameter
Terdapat berberapa parameter yang perlu didefinisikan diawal
sebelum menjalankan algoritma ini, diantaranya ialah:
• Banyak kota beserta koordinat. Sudah dijelaskan pada langkah
1
58
Uin Syarif Hidayatullah Jakarta
• Jarak masing-masing kota. Sudah dijelaskan pada langkah 2
• Jumlah semut (ants) = jumlah kota x 3 = 30
• Jumlah siklus / generasi semut (generation) = jumlah kota x 3
= 30
• Penguapan (evap) = 0.5
• Pengendali intensitas jejak pheromone (α) / alpha = 2
• Pengendali visibilitas jarak (β) / beta = 7
Untuk menentukan besaran paramater, penulis telah melakukan uji
coba, hasilnya dapat dilihat pada bab 5.2.2.
4. Menempatkan Setiap Semut Pada Lokasi Secara Acak
Setiap semut akan ditempatkan pada lokasi secara acak dengan
menggunakan fungsi android random().
Tabel 4. 11 Banyak Semut Pada Satu Lokasi
Id
Lokasi Banyak semut
0 97
1 74
2 88
3 102
4 92
5 84
6 91
7 92
8 100
9 80
Jumlah 900
5. Penyusunan Rute Kunjungan Semut ke Setiap Lokasi Kemudian
Hitung Panjang Jalurnya
59
Uin Syarif Hidayatullah Jakarta
Seperti yang telah dijelaskan sebelumnya, dalam memilih rute
kunjungan, semut memilih lokasi selanjutnya menggunakan
persamaan probabilities / keiinginan sebagai berikut:
𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡𝑖𝑒𝑠 = 𝑝ℎ𝑒𝑟𝑜𝑚𝑜𝑛𝑒𝛼 . 𝑖𝑛𝑣𝑒𝑟𝑠 𝑗𝑎𝑟𝑎𝑘𝛽
∑(𝑝ℎ𝑒𝑟𝑜𝑚𝑜𝑛𝑒 lokal𝛼 . 𝑖𝑛𝑣𝑒𝑟𝑠 𝑗𝑎𝑟𝑎𝑘 𝑙𝑜𝑘𝑎𝑙𝛽)
Pengertian dari lokal pada persamaan diatas ialah jumlah nilai
pada lokasi yang belum dikunjungi. Jadi, pheromone lokal ialah
jumlah pheromone pada setiap sisi antar lokasi yang belum
dikunjungi oleh semut tersebut, begitu pula dengan invers jarak lokal,
yakni invers dari total jarak pada setiap sisi antar lokasi yang belum
dikunjungi.
Semakin tinggi nilai hasil probabilites maka semakin besar pula
kemungkinan lokasi tersebut menjadi tujuan rute semut selanjutnya.
Kemudian program akan meng-generate bilangan bertipe double
menggunakan fungsi random(). Bila probabilites tersebut melebihi
bilangan hasil generate, maka semut akan berpindah ke lokasi
terpilih, bila tidak, program akan mencari kota lain dan melakukan hal
yang sama hingga semut mendapatkan lokasi dengan probabilites-nya
melebihi bilangan hasil generate.
Berikut hasil rute kunjungan semut beserta total panjang rute yang
dilewatinya pada siklus pertama:
Tabel 4.12 Rute Kunjungan Setiap Semut Beserta Total Jaraknya
Id
Semut Rute Total Jarak (km)
0 2 - 5 - 3 - 8 - 9 - 4 - 7 - 6 - 0 - 1 - 2 97.5
1 2 - 5 - 0 - 3 - 8 - 9 - 4 - 7 - 6 - 1 - 2 100.46
2 0 - 2 - 5 - 3 - 8 - 4 - 9 - 7 - 6 - 1 - 0 93.26
3 4 - 9 - 7 - 6 - 5 - 2 - 0 - 3 - 8 - 1 - 4 109.37
4 9 - 4 - 7 - 2 - 5 - 0 - 3 - 8 - 1 - 6 - 9 122.54
60
Uin Syarif Hidayatullah Jakarta
Id
Semut Rute Total Jarak (km)
5 9 - 4 - 5 - 2 - 0 - 3 - 8 - 7 - 6 - 1 - 9 115.35
6 2 - 0 - 5 - 3 - 8 - 4 - 9 - 7 - 6 - 1 - 2 100.05
7 5 - 2 - 0 - 9 - 4 - 3 - 8 - 7 - 6 - 1 - 5 112.88
8 4 - 9 - 5 - 2 - 0 - 3 - 8 - 7 - 6 - 1 - 4 115.36
9 2 - 5 - 3 - 8 - 4 - 9 - 7 - 6 - 0 - 1 - 2 98.26
10 5 - 2 - 0 - 3 - 8 - 9 - 4 - 7 - 6 - 1 - 5 99.6
11 2 - 5 - 4 - 9 - 8 - 3 - 0 - 1 - 7 - 6 - 2 112.86
12 2 - 5 - 3 - 8 - 4 - 9 - 7 - 6 - 0 - 1 - 2 98.26
13 3 - 8 - 9 - 4 - 5 - 2 - 0 - 1 - 6 - 7 - 3 100.71
14 4 - 9 - 7 - 3 - 8 - 2 - 5 - 0 - 1 - 6 - 4 108
15 9 - 4 - 5 - 2 - 0 - 3 - 8 - 7 - 6 - 1 - 9 115.35
16 5 - 2 - 0 - 3 - 8 - 4 - 9 - 7 - 6 - 1 - 5 100.36
17 4 - 9 - 3 - 8 - 5 - 2 - 0 - 1 - 6 - 7 - 4 94.19
18 2 - 5 - 4 - 9 - 7 - 6 - 0 - 3 - 8 - 1 - 2 109.71
19 2 - 5 - 9 - 4 - 3 - 8 - 0 - 1 - 7 - 6 - 2 115.38
20 2 - 0 - 5 - 3 - 8 - 9 - 4 - 7 - 6 - 1 - 2 99.29
21 5 - 2 - 0 - 4 - 9 - 7 - 6 - 1 - 3 - 8 - 5 109.87
22 2 - 5 - 0 - 3 - 8 - 9 - 4 - 7 - 6 - 1 - 2 100.46
23 4 - 9 - 5 - 2 - 0 - 3 - 8 - 7 - 6 - 1 - 4 115.36
24 9 - 4 - 8 - 3 - 2 - 5 - 0 - 1 - 6 - 7 - 9 96.28
25 2 - 5 - 0 - 3 - 8 - 9 - 4 - 7 - 6 - 1 - 2 100.46
26 9 - 4 - 3 - 8 - 5 - 2 - 0 - 1 - 6 - 7 - 9 94.62
27 0 - 2 - 5 - 4 - 9 - 7 - 6 - 8 - 3 - 1 - 0 99.72
28 8 - 3 - 9 - 4 - 5 - 2 - 0 - 1 - 6 - 7 - 8 100.2
29 4 - 9 - 3 - 8 - 5 - 2 - 0 - 1 - 6 - 7 - 4 94.19
Berdasarkan hasil kunjungan setiap semut dalam siklus pertama
tersebut, maka didapat hasil kunjungan semut dengan total jarak
terpendek yaitu semut dengan id = 2, rute kunjungan = 0 - 2 - 5 - 3 - 8
61
Uin Syarif Hidayatullah Jakarta
- 4 - 9 - 7 - 6 - 1 - 0, dan total jarak sebesar 93.26 km. Hasil tersebut
kemudian disimpan kedalam tabu list sebagai hasil terbaik sementara.
6. Merubah Intensitas Jejak Kaki Semut / Pheromone
Setelah setiap semut menyelesaikan satu siklus, selanjutnya ialah
mengubah intensitas pheromone pada setiap sisi antar lokasi. Untuk
pheromone dari setiap sisi antar lokasi yang dilalui oleh semut,
dihitung dengan persamaan:
𝑝ℎ𝑒𝑟𝑜𝑚𝑜𝑛𝑒 = ƿ. 𝑝ℎ𝑒𝑟𝑜𝑚𝑜𝑛𝑒 + 𝑖𝑛𝑣𝑒𝑟𝑠 𝑡𝑜𝑡𝑎𝑙 𝑗𝑎𝑟𝑎𝑘 𝑠𝑖𝑘𝑙𝑢𝑠
Lalu untuk pheromone dari setiap sisi antar lokasi yang tidak
dilalui oleh semut, dihitung dengan persamaan:
𝑝ℎ𝑒𝑟𝑜𝑚𝑜𝑛𝑒 = ƿ . 𝑝ℎ𝑒𝑟𝑜𝑚𝑜𝑛𝑒
Untuk hasil perubahan pheromone pada siklus pertama dapat
dilihat dalam bentuk matriks 10x10 pada tabel berikut:
Tabel 4.13 Intensitas pheromone Pada Setiap edge Antar-Lokasi
Id
Lokasi 0 1 2 3 4 5 6 7 8 9
0 0.0 0.0194 0.0192 0.0188 0.0174 0.0183 0.0197 0.0180 0.0181 0.0178
1 0.0194 0.0 0.0195 0.0188 0.0174 0.0196 0.0187 0.0187 0.0180 0.0173
2 0.0192 0.0195 0.0 0.0189 0.0166 0.0194 0.0177 0.0180 0.0201 0.0171
3 0.0188 0.0188 0.0189 0.0 0.0192 0.0196 0.0190 0.0191 0.0194 0.0188
4 0.0174 0.0174 0.0166 0.0192 0.0 0.0190 0.0190 0.0189 0.020 0.0194
5 0.0183 0.0196 0.0194 0.0196 0.0190 0.0 0.0178 0.0174 0.0190 0.0174
6 0.0197 0.0187 0.0177 0.0190 0.0190 0.0178 0.0 0.0196 0.0158 0.0186
7 0.0180 0.0187 0.0180 0.0191 0.0189 0.0174 0.0196 0.0 0.0175 0.0196
8 0.0181 0.0180 0.0201 0.0194 0.020 0.0190 0.0158 0.0175 0.0 0.0197
9 0.0178 0.0173 0.0171 0.0188 0.0194 0.0174 0.0186 0.0196 0.0197 0.0
7. Mengulang Langkah 4 Sesuai Banyaknya Generasi / Siklus
62
Uin Syarif Hidayatullah Jakarta
Setelah setiap semut menyelesaikan siklus pertama, lalu
menghitung panjang rute, kemudian mengubah nilai pheromone,
langkah selanjutnya ialah mengulang kembali ke langkah 4 sampai
mencapai jumlah siklus / generasi yaitu 30 perulangan.
Setelah semut telah mencapai siklus terakhir, maka program akan
menemukan rute dengan total jarak terpendek yang telah dilewati oleh
semut dan tersimpan didalam tabu list. Berikut merupakan hasil
pencarian rute terpendek dengan 10 lokasi:
• Rute : 0 -> 2 -> 5 -> 3 -> 8 -> 9 -> 4 -> 7 -> 6 -> 1 -> 0
• Total jarak : 92.50 km
• Untuk hasil tampilannya pada aplikasi, dapat dilihat pada
gambar 5.13
4.3. Tahap Workshop Desain
Dalam fase workshop desain ini, penulis menggunakan jenis pemodelan
Unified Modeling Language (UML) untuk menggambarkan pemodelan program
yang akan dibuat. Penulis menggunakan empat model diagram yaitu use case
diagram, activity diagram, sequence diagram, dan class diagram.
63
Uin Syarif Hidayatullah Jakarta
4.3.1. Desain Sistem dan Proses
Gambar 4.2 Desain Sistem dan Proses
Gambar diatas menjelaskan semua proses yang ada di aplikasi sekaligus
menu-menu yang ada. Terdapat tujuh menu utama dalam aplikasi ini, yaitu:
4.3.1.1. Login
Merupakan hal pertama yang harus dilakukan oleh user untuk dapat
masuk ke dalam menu utama aplikasi ini. Bila user belum memiliki akun,
user dapat masuk ke menu utama dengan melakukan register. Setelah user
melakukan login atau register maka sistem akan memulai sesi yang berfungsi
untuk menyimpan informasi akun user.
4.3.1.2. Resgister
Merupakan proses pendaftaran akun baru oleh user yang belum
memiliki akun untuk dapat masuk ke dalam menu utama aplikasi ini.
64
Uin Syarif Hidayatullah Jakarta
4.3.1.3. Lihat Surat Jalan
Merupakan proses yang berfungsi untuk menampilkan daftar surat
jalan yang telah ada. Surat jalan ialah kumpulan paket-paket barang yang
harus dikirim oleh kurir.
4.3.1.4. Lihat Rute Pengiriman Berbentuk Maps
Merupakan fungsi utama dari aplikasi ini, yaitu menampilkan rute
pengiriman hasil pencarian rute terpendek dari setiap alamat tujuan
pengiriman barang yang telah diproses dengan algoritma ACO. Setelah rute
terpendek ditemukan maka aplikasi akan menampilkan hasilnya dalam
bentuk Maps.
4.3.1.5. Lihat Rute Pengiriman Berbentuk List
Sama seperti menu Lihat Rute Pengiriman Berbentuk Maps, hanya
saja menu ini menampilkan rute pengiriman dalam bentuk list atau daftar.
4.3.1.6. Mengulang Proses Pencarian Rute Terpendek
Merupakan proses yang berfungsi untuk melakukan pencarian ulang
rute terpendek menggunakan algoritma ACO.
4.3.1.7. Logout
Merupakan proses yang berfungsi untuk menghapus sesi yang
sebelumnya dibuat oleh proses login maupun register. Setelah sesi dihapus,
maka untuk dapat masuk ke dalam menu utama user diharuskan untuk
melakukan login atau register kembali.
4.3.2. Perancangan Basisdata
Aplikasi ini memerlukan sebuah basisdata yg disimpan secara offlline atau
lokal untuk menjalankan fungsinya. Perancangan basisdata pada aplikasi ini
menggunakan 3 tabel, yaitu aco_item, aco_sj, aco_best_rute. Basisdata ini disimpan
pada device Android dengan menggunakan SQLite.
65
Uin Syarif Hidayatullah Jakarta
4.3.2.1. Basisdata Surat Jalan
Tabel basisdata surat jalan berfungsi untuk menyimpan data surat
jalan yang telah terdaftar untuk user.
Tabel 4.14 Basisdata Surat Jalan
No Nama Field Tipe Data Keterangan
1 aco_id int (PK) id aco
2 aco_sj_id int (Unique) id surat jalan
3 aco_sj_no text nomor surat jalan
4 aco_jumlah_barang text jumlah barang
5 aco_tanggal_kirim text tanggal kirim
6 aco_best_distance text total jarak rute terpendek
7 aco_created_at text waktu data terbuat
8 aco_updated_at text waktu terakhir data diubah
4.3.2.2. Basisdata Item
Tabel basisdata item berfungsi untuk menyimpan data barang (item)
yang terdapat pada surat jalan.
Tabel 4.15 Basisdata Item
No Nama Field Tipe Data Keterangan
1 aco_item_id int (PK) id aco_item
2 aco_item_sj_id int id item
3 aco_item_no int nomor urutan barang
4 nama_barang text nama barang
5 nama_pengirim text nama pengirim
6 nama_penerima text nama penerima
7 alamat_penerima text alamat penerima
8 jumlah_barang text jumlah barang
9 Longitude text koordinat longitude alamat
penerima
66
Uin Syarif Hidayatullah Jakarta
No Nama Field Tipe Data Keterangan
10 Latitude text Koordinat latitude alamat
penerima
4.3.2.3. Basisdata Best Rute
Tabel basisdata best rute berfungsi untuk menyimpan urutan lokasi
pengiriman sebagai rute terpendek hasil dari proses algoritma ACO.
Tabel 4.16 Basisdata Best Rute
No Nama Field Tipe Data Keterangan
1 aco_best_rute_id int (PK) id rute terbaik
2 aco_best_rute_sj_id int id surat jalan
3 aco_best_rute_rute_n
o
int nomor urutan item
4 aco_best_rute_item_n
o
int nomor item sesuai dengan surat
jalan
67
Uin Syarif Hidayatullah Jakarta
4.3.3. Perancangan User Interface
Berikut merupakan rancangan tampilan yang penulis buat dengan
menggunakan tools balsamic mockup 3.5:
Keterangan Gambar
Berikut merupakan user interface
halaman login. Halaman login
merupakan halaman yang pertama kali
dilihat oleh user saat membuka aplikasi.
Gambar 4.3 User Interface Halaman Login
Berikut merupakan user interface
halaman Register. Halaman register
merupakan halaman saat user menekan
tombol register pada halaman login.
Gambar 4.4 User Interface Halaman Register
68
Uin Syarif Hidayatullah Jakarta
Keterangan Gambar
Berikut merupakan user interface
halaman menu utama. Halaman menu
utama merupakan halaman yang dilihat
oleh user saat berhasil melakukan login
maupun register.
Gambar 4. 5 User Interface Halaman Menu
Utama
Berikut merupakan user interface
halaman lihat surat jalan. Halaman lihat
surat jalan merupakan halaman yang
dilihat oleh user saat memilih menu lihat
surat jalan pada halaman menu utama.
Gambar 4. 6 User interface Halaman Lihat Surat
Jalan
69
Uin Syarif Hidayatullah Jakarta
Keterangan Gambar
Berikut merupakan user interface
halaman rute pengiriman berbentuk list.
Halaman rute pengiriman berbentuk list
merupakan tampilian rute pengiriman
berbentuk list yang dapat diakses oleh
user setelah memilih surat jalan dengan
bentuk list pada halaman lihat surat jalan.
Gambar 4. 7 User Interface Halaman Rute
Pengiriman Berbentuk List
Berikut merupakan user interface
halaman rute pengiriman berbentuk
maps. Halaman ini dapat diakses oleh
user setelah memilih surat jalan dengan
bentuk maps pada halaman lihat surat
jalan
Gambar 4. 8 User Interface Halaman Rute
Pengiriman Berbentuk Maps
70
Uin Syarif Hidayatullah Jakarta
4.3.4. Pengkodean
Untuk tahap pengkodean (coding), bahasa pemrograman yang digunakan
adalah java dengan menggunakan tools Android Studio.
4.3.4.1. Login
Berikut merupakan code yang digunakan untuk menjalankan fungsi
login. Nama fungsi utama untuk melakukan login ialah checkLogin() dengan
paramater yang digunakan nik dan password kurir. Didalam fungsi ini
terdapat dialog yang berfungsi untuk menampilkan pop up “Logging in” saat
program melakukan request API login untuk memvalidasi akun user. API
login ini menggunakan paramater nik dan password yang diisi oleh user lalu
mengirimnya dengan method POST. Hasil request API login ini dikirim
dalam bentuk JSON.
Bila berhasil maka program akan menyimpan sesi lalu pindah
halaman ke menu utama dengan menggunakan fungsi intent dan menutup pop
up, bila login gagal maka sistem akan menampilkan pesan kesalahan dengan
menggunakan fungsi Toast.makeText().
private void checkLogin(final String nik, final String password) {
String tag_string_req = "req_login";
pDialog.setMessage("Logging in ...");
showDialog();
StringRequest strReq = new StringRequest(Method.POST,
AppConfig.URL_LOGIN, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
JSONObject user = jObj.getJSONObject("user");
String id_kurir = user.getString("id");
String name = user.getString("name");
session.setKurir(id_kurir, nik, name);
session.setLogin(true);
hideDialog();
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
startActivity(intent);
finish();
71
Uin Syarif Hidayatullah Jakarta
} else {
hideDialog();
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),errorMsg,
Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
hideDialog();
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Json error: " +
e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hideDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("nik", nik);
params.put("password", password);
return params;
}
};
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
4.3.4.2. Register
Berikut merupakan code yang digunakan untuk menjalankan fungsi
register. Nama fungsi utama untuk melakukan register ialah registerUser()
dengan paramater yang digunakan name, nik, dan password kurir. Didalam
fungsi ini terdapat dialog yang berfungsi untuk menampilkan pop up
“Registering” saat program melakukan request API register untuk
mendaftarkan akun user. API register ini menggunakan paramater name, nik
dan password yang diisi oleh user lalu mengirimnya dengan method POST.
Hasil request API register ini dikirim dalam bentuk JSON.
72
Uin Syarif Hidayatullah Jakarta
Bila berhasil maka program akan menyimpan sesi lalu pindah
halaman ke menu utama dengan menggunakan fungsi intent dan menutup pop
up, bila register gagal maka sistem akan menampilkan pesan kesalahan
dengan menggunakan fungsi Toast.makeText().
private void registerUser(final String name,final String nik,final String password) {
String tag_string_req = "req_register";
pDialog.setMessage("Registering ...");
showDialog();
StringRequest strReq = new
StringRequest(Method.POST,AppConfig.URL_REGISTER,new
Response.Listener<String>() {
@Override
public void onResponse(String response) {
hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
JSONObject user = jObj.getJSONObject("user");
String name = user.getString("name");
String nik = user.getString("email");
String id_kurir = user.getString("id_kurir");
session.setKurir(id_kurir, nik, name);
session.setLogin(true);
Toast.makeText(getApplicationContext(), "User successfully
registered.!", Toast.LENGTH_LONG).show();
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
startActivity(intent);
finish();
} else {
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),errorMsg,
Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hideDialog();
73
Uin Syarif Hidayatullah Jakarta
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("nik", nik);
params.put("password", password);
return params;
}
};
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
4.3.4.3. Lihat Surat Jalan
Berikut merupakan code yang digunakan untuk menjalankan fungsi
lihat surat jalan.. Didalamn fungsi ini terdapat API get surat jalan
menggunakan paramater id user yang tersimpan didalam sesi dengan method
POST. Hasil request API get surat jalan ini dikirim dalam bentuk JSON. API
get surat jalan ini berfungsi untuk mengambil data surat jalan yang telah
tersimpan dalam API lalu menampilkan hasilnya dalam bentuk list dengan
menggunakan fungsi list.setAdapter(). Hasil surat jalan ini ditampilkan
dengan urutan id surat jalan terkecil hingga terbesar dengan menggunakan
fungsi compare().
StringRequest SuratJalanReq = new
StringRequest(Method.POST,AppConfig.URL_GET_SURAT_JALAN,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
JSONArray jArr = null;
try { jArr = new JSONArray(response); } catch (JSONException e) {
e.printStackTrace();
}
if (jArr != null) {
for (int i = 0; i < jArr.length(); i++) {
try {
JSONObject obj = jArr.getJSONObject(i);
GetSuratJalanModel wp = new GetSuratJalanModel(
obj.getString("nomor"),
obj.getString("tanggal_kirim"),
74
Uin Syarif Hidayatullah Jakarta
obj.getString("nama_kurir"),
obj.getInt("id_kurir"),
obj.getInt("id"),
obj.getInt("jumlah_barang")
);
arraylist.add(wp);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Collections.sort(arraylist, new Comparator<GetSuratJalanModel>() {
@Override
public int compare(GetSuratJalanModel lhs, GetSuratJalanModel
rhs) {
return rhs.getIdSJ().compareTo(lhs.getIdSJ());
}
});
adapter = new GetSuratJalanAdapter(GetSuratJalan.this, arraylist);
list.setAdapter(adapter);
hidePDialog();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
hidePDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("id_kurir", session.getIdKurir());
return params;
}
};
AppController.getInstance().addToRequestQueue(SuratJalanReq,
"get_surat_jalan");
}
4.3.4.4. Lihat Rute Pengiriman Berbentuk Maps
Berikut merupakan code yang digunakan untuk menjalankan fungsi
lihat rute pengiriman berbentuk maps. Nama fungsi utamanya ialah
showMap() yang merupakan library Google Maps. Didalam fungsi ini
terdapat fungsi getPaketSJ() yang berfungsi untuk melakukan request detail
75
Uin Syarif Hidayatullah Jakarta
lokasi yang terdapat pada surat jalan dengan mengirim id surat jalan dalam
method POST. Lokasi yang ditangkap berupa bentuk JSON. Setelah sistem
mendapat semua lokasi yang tersedia, selanjutnya sistem akan mencari geo
lokasinya yang berupa longitude dan latitude dengan fungsi
geocoder.getFromLocationName(). Setelah geo lokasi-nya didapat, kemudian
sistem akan menjalankan algoritma ACO dengan menggunakan fungsi
runTSP().
Didalam fungsi runTSP() terdapat pemanggilan fungsi dari class
TravelingSalesman untuk mengeksekusi algoritma ACO dengan
menggunakan parameter ants yaitu jumlah semut, gen yaitu jumlah siklus
semut, evap yaitu nilai penguapan jejak kaki semut, alpha yaitu nilai
pengendali jejak kaki semut, dan beta sebagai nilai pengendali jarak. Setelah
algoritma berhasil mendapatkan rute terpendek, maka sistem akan
menampilkan garis penghubung sebagai rute dengan menggunakan fungsi
routeVertice.add().
private void showMap(){
mapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(GetRuteSJ.this);
} private void getPaketSJ(){
StringRequest strReq = new StringRequest(Request.Method.POST,
AppConfig.URL_GET_RUTE_SJ, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
JSONArray jArr = null;
try {jArr = new JSONArray(response); } catch (JSONException e) {
e.printStackTrace();
}if (jArr != null) {
for (int i = 0; i < jArr.length(); i++) {
try {
JSONObject obj = jArr.getJSONObject(i);
GetRuteSJModel wp = new GetRuteSJModel(
obj.getString("nama_kurir"),
obj.getString("sj_created_at"),
obj.getString("nomor"),
obj.getString("tanggal_kirim"),
obj.getString("nama_barang"),
obj.getString("alamat_penerima"),
76
Uin Syarif Hidayatullah Jakarta
obj.getString("nama_penerima"),
obj.getString("nama_pengirim"),
obj.getString("jumlah_barang"),
obj.getInt("id_surat_jalan"),
obj.getInt("id_kurir")
);
arraylist.add(wp);
List<Address> addresses = null;
try {
addresses =
geocoder.getFromLocationName(obj.getString("alamat_penerima"), 1);
}
} catch (IOException e) {e.printStackTrace();}
} catch (JSONException e) { e.printStackTrace(); }}
runTSP();
showMap();
} }
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hidePDialog(); } }) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("sj_id", sj_intent[0]);
return params;
}};
AppController.getInstance().addToRequestQueue(strReq, "get_rute_sj");
}
private void runTSP(){
mst = setM.main(routeArray);
int ants = routeArray.size()*3
int gen = routeArray.size()*3;
double evap = 0.5;
int alpha = 2;
int beta = 7;
TravelingSalesman travelingSalesman = new TravelingSalesman(ants, gen,
evap, alpha, beta, mst, routeArray);
travelingSalesman.run(this);
for (int i = 0; i < best_route.length; i++) {
routeVertice.add(routeArray.get(best_route[i]));
};
}
77
Uin Syarif Hidayatullah Jakarta
4.3.4.5. Lihat Rute Pengiriman Berbentuk List
Berikut merupakan code yang digunakan untuk menjalankan fungsi
lihat rute pengiriman berbentuk maps. Nama fungsi utamanya ialah
showList(). Didalam fungsi ini terdapat fungsi getPaketSJ() yang berfungsi
untuk melakukan request detail lokasi yang terdapat pada surat jalan dengan
mengirim id surat jalan dalam method POST. Lokasi yang ditangkap berupa
bentuk JSON. Setelah sistem mendapat semua lokasi yang tersedia,
selanjutnya sistem akan mencari geo lokasinya yang berupa longitude dan
latitude dengan fungsi geocoder.getFromLocationName(). Setelah geo lokasi-
nya didapat, kemudian sistem akan menjalankan algoritma ACO dengan
menggunakan fungsi runTSP().
Didalam fungsi runTSP() terdapat pemanggilan fungsi dari class
TravelingSalesman untuk mengeksekusi algoritma ACO dengan
menggunakan parameter ants yaitu jumlah semut, gen yaitu jumlah siklus
semut, evap yaitu nilai penguapan jejak kaki semut, alpha yaitu nilai
pengendali jejak kaki semut, dan beta sebagai nilai pengendali jarak. Setelah
algoritma berhasil mendapatkan rute terpendek, maka sistem akan
menampilkan garis penghubung sebagai rute dengan menggunakan fungsi
routeVertice.add().
public void showList(){
GetRuteSJAdapter adapter = new GetRuteSJAdapter(GetRuteSJList.this,
finallist);
ListView list = (ListView) findViewById(R.id.list_rute_sj);
list.setAdapter(adapter);
hidePDialog();
}
private void getPaketSJ(){
StringRequest strReq = new StringRequest(Request.Method.POST,
AppConfig.URL_GET_RUTE_SJ, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
JSONArray jArr = null;
try { jArr = new JSONArray(response); } catch (JSONException e) {
e.printStackTrace();
} if (jArr != null) {
for (int i = 0; i < jArr.length(); i++) {
try {
78
Uin Syarif Hidayatullah Jakarta
JSONObject obj = jArr.getJSONObject(i);
GetRuteSJModel wp = new GetRuteSJModel(
obj.getString("nama_kurir"),
obj.getString("sj_created_at"),
obj.getString("nomor"),
obj.getString("tanggal_kirim"),
obj.getString("nama_barang"),
obj.getString("alamat_penerima"),
obj.getString("nama_penerima"),
obj.getString("nama_pengirim"),
obj.getString("jumlah_barang"),
obj.getInt("id_surat_jalan"),
obj.getInt("id_kurir")
);
arraylist.add(wp);
List<Address> addresses = null;
try {
addresses =
geocoder.getFromLocationName(obj.getString("alamat_penerima"), 1);
} } catch (IOException e) {
e.printStackTrace();}
} catch (JSONException e) { e.printStackTrace();}}
for (int i=0; i < address_arr.size(); i++) {
LatLng ll = new LatLng(address_arr.get(i).get(0).getLatitude(),
address_arr.get(i).get(0).getLongitude());
routeArray.add(ll);}
runTSP();
showList();
}}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hidePDialog();
}}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("sj_id", sj_intent[0]);
return params;
} };
AppController.getInstance().addToRequestQueue(strReq, "get_rute_sj");}
private void runTSP(){
mst = setM.main(routeArray);
int ants = routeArray.size()*3;
79
Uin Syarif Hidayatullah Jakarta
int gen = routeArray.size()*3;
double evap = 0.5;
int alpha = 2;.
int beta = 7;
TravelingSalesman travelingSalesman = new TravelingSalesman(ants, gen,
evap, alpha, beta, mst, routeArray);
travelingSalesman.run(this); }
5.3.5.6. Mengulang Proses Pencarian Rute Terpendek
Fungsi ini merupakan fungsi yang berada dalam 1 class bersama
dengan fungsi lihat rute pengiriman berbentuk List. Nama fungsi utama
dalam melakukan mengulang proses pencarian rute terpendek ialah
onRefresh(). Ketika user melakukan swipe (menggeser layar dari atas
kebawah) maka sistem akan mengeksekusi fungsi onRefresh dimana fungsi
ini akan menjalankan ulang fungsi showList().
swipeRefreshLayout.setOnRefreshListener(this);
@Override
public void onRefresh() {
intent.putExtra("refresh_aco", true);
finish();
startActivity(intent);
}
5.3.5.7. Logout
Berikut merupakan code yang digunakan untuk melakukan logout.
Nama fungsi utamanya ialah logoutUser(). Ketika user menekan tombol
logout pada menu utama, maka sistem akan menjalankan fungsi ini lalu
menghapus sesi dengan menggunakan fungsi session.setLogin(false),
kemudian pindah ke halaman login dengan menggunakan fungsi intent().
private void logoutUser() {
session.setLogin(false);
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}
80
Uin Syarif Hidayatullah Jakarta
4.4. Tahap Implementasi
4.4.1. Blackbox Testing
Pada tahap ini akan dilakukan pengujian aplikasi. Pengujian ini dilakukan
untuk memastikan bahwa program dapat berjalan dengan baik saat digunakan. Dari
setiap tes yang dilakukan tidak menutup kemungkinan terdapat kesalahan dari
aplikasi yang sudah di tes, namun dengan dilakukannya pengujian ini setidaknya
dapat meminimalisir kesalahan yang ada pada aplikasi. Penulis menggunakan
blackbox testing dalam melakukan pengujian ini.
Tabel 4. 17 Pengujian Aplikasi
No Pengujian Fitur /
Menu Hasil yang diharapkan Hasil Pengujian
1
Tampilan halaman
login untuk
melakukan login
User dapat melihat tampilan
halaman login lalu
melakukan login
Berhasil
2
Tampilan halaman
register untuk
mendaftarkan user
baru
User dapat melihat tampilan
halaman register lalu
mendaftarkan akun barunya
(register).
Berhasil
3
Tampilan halaman
menu utama
User dapat melihat halaman
menu utama setelah
melakukan proses login
ataupun register
Berhasil
4
Tampilan halaman
surat jalan untuk
melihat informasi
surat jalan
User dapat melihat tampilan
halaman surat jalan serta
informasi surat jalan yang
telah terinput untuknya.
Berhasil
5
Tampilan halaman
rute pengiriman
berbentuk maps
untuk melihat rute
terpendek surat
jalan dengan
bentuk maps
User dapat melihat
informasi rute pengiriman
berbentuk maps dengan
marker yang dihubungkan
oleh garis lurus sebagai
penanda rute terpendek. Berhasil
81
Uin Syarif Hidayatullah Jakarta
No Pengujian Fitur /
Menu Hasil yang diharapkan Hasil Pengujian
6
Tampilan halaman
rute pengiriman
berbentuk list
untuk melihat rute
terpendek surat
jalan dengan
bentuk list
User dapat melihat
informasi rute pengiriman
berbentuk list / daftar
dengan urutan nomor lokasi
tujuan sesuai dengan rute
terpendek.
Berhasil
7
Fungsi mengulang
proses pencarian
rute terpendek
untuk mencari
hasil algoritma
pencarian rute
terpendek yang
lebih optimal.
User dapat mengulang
kembali proses pencarian
rute terpendek yang telah
dilakukan dan disimpan
kedalam basisdata untuk
mencari hasil algoritma
yang lebih optimal.
Berhasil
8
Tombol Logout
untuk menghapus
sesi login dan
keluar dari menu
utama menuju ke
halaman login
User dapat menghapus sesi
login dengan menekan
tombol logout pada halaman
menu utama kemudian
sistem menampilkan
halaman login
Berhasil
9
Tampilan
progress dialog
saat sistem
menjalankan
proses hingga
membuat user
menunggu
User dapat melihat tampilan
progress dialog saat sistem
menjalankan proses maupun
fungsi hingga membuat user
menunggu
Berhasil
10
Pesan gagal saat
user gagal
melakukan login
User dapat melihat pesan
yang ditampilan oleh sistem
saat gagal melakukan login
Berhasil
11
Pesan gagal saat
user gagal
melakukan
register
User dapat melihat pesan
yang ditampilan oleh sistem
saat gagal melakukan
register Berhasil
82
Uin Syarif Hidayatullah Jakarta
No Pengujian Fitur /
Menu Hasil yang diharapkan Hasil Pengujian
12
User dapat
melihat direksi
untuk mengetahui
rute dari lokasi
user menuju
lokasi pengiriman
User dapat melihat direksi
atau arah untuk dapat
menuju lokasi pengiriman
pada halaman rute
pengiriman berbentuk maps
Berhasil
13
User dapat
menggeser peta
dan melakukan
zoom in maupun
zoom out untuk
memposisikan
peta
User dapat menggeser peta
dan melakukan zoom in
maupun zoom out untuk
memposisikan peta pada
halaman rute pengiriman
berbentuk maps
Berhasil
14
User dapat
menggeser daftar
rute pengiriman
untuk melihat
detail lokasi
pengiriman pada
nomor urut yang
berada dibawah
User dapat menggeser daftar
rute pengiriman dengan
melakukan swipe kebawah
untuk melihat detail lokasi
pengiriman pada nomor urut
yang belum tampil pada
halaman rute pengiriman
berbentuk list
Berhasil
83
BAB V
HASIL DAN PEMBAHASAN
5.1. Hasil
5.1.1. Hasil Tampilan Aplikasi
Tabel 5. 1 Hasil Tampilan Aplikasi
Keterangan Gambar
Berikut merupakan hasil tampilan
halaman login. Halaman login
merupakan halaman yang pertama kali
dilihat oleh user saat membuka aplikasi.
Gambar 5. 1 Hasil Tampilan Halaman Login
84
Keterangan Gambar
Berikut merupakan hasil tampilan
halaman register. Halaman register
merupakan halaman saat user menekan
tombol register pada halaman login.
Gambar 5. 2 Hasil Tampilan Halaman Register
Berikut merupakan Hasil tampilan
halaman menu utama. Halaman menu
utama merupakan halaman yang dilihat
oleh user saat berhasil melakukan login
maupun register.
Gambar 5. 3 Hasil Tampilan Halaman Menu
Utama
85
Keterangan Gambar
Berikut merupakan hasil tampilan
halaman lihat surat jalan. Halaman lihat
surat jalan merupakan halaman yang
dilihat oleh user saat memilih menu lihat
surat jalan pada halaman menu utama.
Gambar 5. 4 Hasil Tampilan Halaman Lihat Surat
Jalan
Berikut merupakan hasil tampilan
halaman rute pengiriman berbentuk list.
Halaman rute pengiriman berbentuk list
merupakan tampilian rute pengiriman
berbentuk list yang dapat diakses oleh
user setelah memilih surat jalan dengan
bentuk list pada halaman lihat surat jalan.
Gambar 5. 5 Hasil Tampilan Halaman Rute
Pengiriman Berbentuik List
86
Keterangan Gambar
Berikut merupakan user interface
halaman rute pengiriman berbentuk
maps. Halaman ini dapat diakses oleh
user setelah memilih surat jalan dengan
bentuk maps pada halaman lihat surat
jalan.
Gambar 5. 6 Hasil Tampilan Halaman Rute
Pengiriman Berbentuk Maps
5.1.2. Hasil Proses Algoritma ACO dengan 34 Lokasi
Berdasarkan data 33 alamat pengiriman yang didapat dari PT Wahana
Prestasi Logistik, penulis telah mengimplementasikan algoritma ACO untuk
melakukan pencarian rute terpendek dari 33 lokasi tersebut ditambah 1 lokasi awal
yaitu alamat PT Wahana Prestasi Logistik Rempoa. Berikut merupakan 34 lokasi
yang didapat penulis beserta longitude dan latitude-nya dengan menggunakan fungsi
Google Maps geocode():
Tabel 5. 2 Alamat 34 Lokasi Beserta Koordinat
Id Alamat Koordinat
Longitude Latitude
0 PT Wahana Prestasi Logistik -6.290973 106.758483
1
Jl. Lestari Pisangan Ciputat
Tim. Kota Tangerang Selatan
Banten 15419
-6.320615 106.760968
87
Id Alamat Koordinat
Longitude Latitude
2
Jl. Legoso Raya No.80a,
Pisangan, Ciputat Tim., Kota
Tangerang Selatan, Banten
15419
-6.316703 106.753654
3
Jl. Legoso Raya 16-36 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.315913 106.753792
4
JL.MURISALIM NO.27A
RT.006/02 KEL.PISANGAN,
KEC.CIPUTAT TIMUR,
TANGERANG SELATAN
-6.319242 106.75590
5
Jl. H. Muri Salim II 49-52
Pisangan Ciputat Tim. Kota
Tangerang Selatan Banten
15419
-6.318785 106.756842
6
Jl Boyong (Gg Boyong) no
8 RT 2 RW 2 Pisangan, Ciputat
Timur, Tangerang Selatan
15419
-6.320352 106.755685
7 JL.H MURI SALIM II NO.45 A
CIPUTAT TIMUR, TANGSEL
-6.318836 106.757053
8
Jl. H. Muri Salim II No.50
Pisangan Ciputat Tim. Kota
Tangerang Selatan Banten
15419
-6.318865 106.756658
88
Id Alamat Koordinat
Longitude Latitude
9
Jl. Legoso Raya No.41,
Pisangan, Ciputat Tim., Kota
Tangerang Selatan, Banten
15419
-6.319974 106.754548
10
Jl. Puri Intan No.46 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.312643 106.758182
11
Gg. Baping 26-57 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.321985 106.758148
12
Jl. Tarumanegara Cireundeu
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.316167 106.763984
13
Jl. Legoso Raya 125 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.321478 106.75509
14
Jl. Legoso Raya 9-15 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.322140 106.75589
15
Jl. Nurul Huda No.115 Cemp.
Putih Ciputat Tim. Kota
Tangerang Selatan
Banten 15412
-6.305727 106.75375
16
Jl. Ir H. Juanda No.40A Cemp.
Putih Ciputat Tim. Kota
Tangerang Selatan
Banten 15412
-6.311689 106.753514
89
Id Alamat Koordinat
Longitude Latitude
17
Jl. Lurah Disah No.23 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.3215219 106.754172
18.
Jl. Legoso Raya, Pisangan,
Ciputat Tim., Kota Tangerang
Selatan, Banten 15419
-6.32284680 106.756937
19
: JALAN LEGOSO RAYA
NO.36 RT003 RW01 CIPUTAT
TIMUR KOTA TANGERANG
SELATAN BANTEN
-6.30850700 106.7565242
20
Jl. Dahu Pisangan Ciputat Tim.
Kota Tangerang Selatan Banten
15419
-6.3183811 106.7537722
21
Jl. Semanggi II 2 Cemp. Putih
Ciputat Tim. Kota Tangerang
Selatan Banten 15412
-6.3096067 106.7550756
22
Jl. Ir H. Juanda No.40, Cemp.
Putih, Ciputat Tim., Kota
Tangerang Selatan,
Banten 15412
-6.311782 106.753445
23
Jl.Ciputat Molek V no.54a.
Pisangan, Ciputat Timur, Kota
Tangerang Selatan, Banten
15419
-6.314470 106.753157
24
Jl. H. Koweng No.54 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.3154756 106.752773
90
Id Alamat Koordinat
Longitude Latitude
25
Jl. Pondok Hijau Raya Blok A2
No.18 Pisangan Ciputat Tim.
Kota Tangerang Selatan Banten
15419
-6.31794 106.7512069
26 Jl. Pondok Hijau Raya Kota
Tangerang Selatan Banten
-6.3189492 106.75110330000001
27
Jl. Hijau Lestari Raya Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.3188059 106.7515736
28
Jalan Batan 35 Pisangan Ciputat
Tim. Kota Tangerang Selatan
Banten 15419
-6.311889 106.756091
29
Jl. H. Limun 39-36 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.308994 106.757534
30
Jl. H. Limun No.26A Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.308377 106.75723
31
Jl. Kertamukti Gg. H.Asen
Saimin Pisangan Ciputat Tim.
Kota Tangerang Selatan Banten
15419
-6.3064288 106.75859
32
jl legoso raya no 1 rt 001/01
pisangan, ciputat timur,
tangerang selatan 15419
-6.3232168 106.758126
33
Jl. Lurah Disah No.9 Pisangan
Ciputat Tim. Kota Tangerang
Selatan Banten 15419
-6.321488 106.754167
91
Kemudian, berikut merupakan hasil lintasan rute pengiriman terpendek
dengan total jarak 10.18 km dan lama waktu eksekusi algoritma 59 detik:
Tabel 5. 3 Lintasan Rute Pengiriman Terpendek Dengan 34 Lokasi
0 -31 - 30 -29 - 21 - 19 - 28 - 10 - 12 - 1 - 32 - 11 - 18 - 14 - 13 - 33 - 17 - 9 - 6 - 8 - 5
- 7 - 4 - 25 - 27 - 26 - 20 - 2 - 3 - 24 - 23 - 22 - 16 - 15 - 0
Hasil tampilan rute pengiriman terpenden dengan 34 lokasi dapat dilihat pada
gambar 5.8.
5.2. Pembahasan
5.2.1. Perangkat Pengembangan Sistem
Berikut ini adalah spesifikasi perangkat keras dan perangkat lunak yang telah
penulis gunakan untuk dapat membuat aplikasi ini.
5.2.1.1. Perangkat Keras
• laptop Lenovo T440s, Intel® Core(TM) i5-4300 (4 CPUs), 2.5GHz,
8192MB RAM, DirectX 12, Intel® HD Graphics Family 2160MB
• Smartphone Samung Galaxy J3 Pro, CPU type Quad-Core, CPU
speed 1.4GHz, RAM 2GB, internal memory 16GB.
5.2.1.2. Perangkat Lunak
• Windows 10 64-bit sebagai sistem operasi laptop.
• Android Studio 3.1.2 untuk membuat logika program.
• SQLite DB Browser 3.10 untuk mengelola basisdata.
• Android Nougat 7.0 sebagai sistem operasi android perangkat
pengujian.
5.2.2. Penetapan Parameter Algortima ACO
Agar proses algoritma mendapatkan hasil yang paling optimal, pengaruh
besar paramater yang digunakan sangat penting. Untuk itu, dalam menentukan nilai α
(alpha) dan β (beta), penulis melakukan uji coba dengan beragam nilai paramater α
dan β dengan ketentuan 0 < α < 4, dan 1 < β < 8. Setiap nilai dilakukan sebanyak tiga
kali, dengan nilai ants dan gens sebesar 34. Angka 34 ini penulis gunakan
92
berdasarkan hasil kuesioner rata-rata jumlah pengiriman yang dilakukan oleh kurir
PT Wahana Prestasi Logistik dalam satu hari yaitu 33 pengiriman ditambah 1 lokasi
awal. Lalu nilai p (pengendali penguapan pheromone) sebesar 0.5. Berikut
merupakan hasil uji coba parameter nilai α dan β dengan 3 kali pengujian:
Tabel 5.4 Hasil Uji Coba Parameter α dan β
jumlah
lokasi
ants,
generations α β
Pengujian
1 (km)
Pengujian
2
(km)
Pengujian 3
(km)
Rata-rata
(km)
34 34 1 3 11.68 11.44 11.33 11.49
34 34 1 4 10.97 10.83 10.91 10.90
34 34 1 5 10.71 10.59 11.00 10.77
34 34 1 6 10.96 10.77 10.87 10.87
34 34 1 7 10.61 10.83 10.92 10.79
34 34 2 2 11.49 12.55 12.41 12.15
34 34 2 4 10.92 10.92 11.04 10.96
34 34 2 5 10.67 10.88 11.05 10.87
34 34 2 6 10.64 10.65 10.58 10.63
34 34 2 7 10.73 10.75 10.61 10.69
34 34 3 7 10.80 10.80 10.90 10.83
Berdasarkan hasil uji coba tersebut, terdapat 3 kandidat nilai α dan β dengan
nilai rata-rata yang paling optimal, diantaranya ialah 1 dan 5, 2 dan 6, serta 2 dan 7.
Selanjutnya, untuk lebih mengoptimalkan hasil proses dari algoritma ACO, penulis
akan melakukan uji coba dengan menggunakan parameter ants dan generations
sebesar 2 kali lipat dan 3 kali lipat dari besaran yang dipakai sebelumnya, yaitu 34
ants dan generations menjadi 68 dan 102, dengan menggunakan besar parameter α
dan β dari 3 kandidat terbaik sebelumnya. Berikut merupakan hasil uji coba
parameter nilai ants, α dan β dengan 3 kali pengujian:
93
Tabel 5.5 Hasil Uji Coba Parameter ants, α dan β
Jumlah
lokasi ants generations α β
Pengujian
1 (km)
Pengujian
2
(km)
Pengujian
3
(km)
Rata-
rata
(km)
34 68 68 1 5 10,78 10.72 10.65 10.71
34 68 68 2 6 10.31 10.48 10.71 10.50
34 68 68 2 7 10.83 10.82 10.56 10.74
34 102 102 1 5 10.59 10.71 10.06 10.45
34 102 102 2 6 10.51 10.65 10.75 10.64
34 102 102 2 7 10.78 10.37 10.18 10.44
Berdasarkan hasil uji coba tersebut, didapatkan besar paramter ants,
generations, α, dan β yang paling optimal dengan 34 lokasi ialah berturut-turut
sebesar 34, 102, 2, dan 7. Maka, penulis menetapkan besaran parameter yang
digunakan dalam proses algoritma ACO ialah sebagai berikut:
Tabel 5.6 Besaran Parameter yang Digunakan Dalam Proses Algoritma ACO
Variabel Nilai
α (alpha) 2
β (beta) 7
p (pengendali penguapan pheromone) 0,5
Ants (jumlah semut) 3 𝑥 𝑗𝑢𝑚𝑙𝑎ℎ 𝑙𝑜𝑘𝑎𝑠𝑖
Generations (jumlah siklus semut) 3 𝑥 𝑗𝑢𝑚𝑙𝑎ℎ 𝑙𝑜𝑘𝑎𝑠𝑖
5.2.3. Perbandingan Algoritma ACO Dengan Metode Konvensional
Untuk menguji tingkat akurasi dari hasil proses pencarian rute terpendek oleh
algoritma ACO, maka penulis membandingkan hasilnya dengan perhitungan TSP
menggunakan permutasi yaitu dengan cara membangkitkan semua kemungkinan
solusi yang ada. Motode ini penulis gunakan sebagai perbandingan dikarenakan
tingkat akurasi mencapai 100%, permutasi membangkitkan semua kemungkinan
solusi yang ada, lalu mencari lintasan yang memiliki total jarak terpendek. Dalam
94
menjalankan permutasi, penulis membuat program berbasis java Android dengan
menggunakan source code berikut:
public class Konvensional {
private static int mst_length, k_length;
private static Float[][] mst = new Float[99][99];
private static Float best;
private static int p;
private static void permutation(int[] a, int n) {
if (n == 1) {
p++;
Float eval = 0.0f;
List<String> perm = new ArrayList<>();
List<Float> edge = new ArrayList<>();
for (int k = 0; k < mst_length; k++) {
perm.add(String.valueOf(a[k]));
if (k>0){
eval += mst[a[k-1]][a[k]];
edge.add(mst[a[k-1]][a[k]]);
if (k == (mst_length-1)) {
eval += mst[a[0]][a[k]];
edge.add(mst[a[0]][a[k]]);
}
}
}
if (eval < best)
best = eval;
Log.d("BESTEVAL", "EVAL : "+eval.toString()+", BEST : " + best.toString());
return;
}
for (int i = 0; i < n; i++) {
swap(a, i, n-1);
permutation(a, n-1);
swap(a, i, n-1);
}
}
private static void swap(int[] a, int i, int j) {
int c = a[i];
a[i] = a[j];
a[j] = c;
}
public Konvensional(Float[][] mst1, int l) {
p =0;
mst = mst1;
mst_length = l;
best = 999999.0f;
int a[] = new int[99];
for (int i = 0; i < mst_length; i++) {
a[i] = i;
}
permutation(a, mst_length);
}
}
95
Selanjutnya, penulis akan menggunakan 10 sampel lokasi yang diambil
secara acak untuk membandingkan algoritma ACO dengan metode konvensional.
Jumlah sampel lokasi ini penulis ambil dikarenakan bila lebih dari 10 sampel lokasi,
maka proses eksekusi program dengan menggunakan permutasi akan memakan
waktu yang cukup lama dan membuat aplikasi pada alat pengembang menjadi force
close. Sampel lokasi yang penulis gunakan untuk uji coba dapat dilihat pada tabel
4.9. Berikut merupakan tabel perbandingan penyelesaian TSP menggunakan
algoritma ACO dan konvensional hasil pengujian yang telah penulis lakukan:
Tabel 5. 7 Perbandingan Algoritma ACO Dengan Metode Konvensional
Indikator ACO Konvensional
total iterasi (jumlah lokasi x (jumlah lokasi − 1)) +
(𝑎𝑛𝑡𝑠) x (𝑔𝑒𝑛𝑒𝑟𝑎𝑡𝑖𝑜𝑛𝑠) x (jumlah lokasi −
1)
(jumlah lokasi)!
total iterasi pada
10 lokasi
(10 𝑥 (10 − 1)) +
(10 𝑥 3) 𝑥 (10 𝑥 3) 𝑥 (10 − 1) = 8,190
10! = 3,628,800
lama waktu
proses pada 10
lokasi
0.1 detik 341 detik
jarak terpendek 92.50 km 92.50 km
lintasan
terpendek
0 - 2 - 5 - 3 - 8 - 9 - 4 - 7 - 6 - 1 - 0 [0,2,5,3,8,9,4,7,6,1]
96
Berdasarkan hasil uji coba tersebut, didapatkan hasil jarak terpendek dan
lintasan terpendek yang sama, tetapi dengan lama waktu proses yang berbeda.
Berikut merupakan hasil tampilan rute terpendek dengan 10 lokasi:
Gambar 5.7 Rute Terpendek 10 Lokasi
97 Uin Syarif Hidayatullah Jakarta
BAB VI
PENUTUP
6.1. Kesimpulan
Penerapan algoritma Ant Colony Optimization (ACO) bertujuan
menyelesaikan Traveling Salesman Problem (TSP) terkait dengan pencarian rute
pengiriman terpendek di PT Wahana Prestasi Logistik berbasis sistem operasi
Android. Penelitian dilakukan dengan metode wawancara, kemudian kuesioner,
hingga melakukan pengujian terhadap aplikasi. Selanjutnya, dapat diambil sejumlah
kesimpulan sebagai berikut:
• Aplikasi yang dibangun sudah berjalan pada perangkat Android dan bisa
mengakses data surat jalan yang berada di PT Wahana Prestasi Logstik API,
serta berhasil menunjukkan rute pengiriman terpendek dalam bentuk maps
maupun list.
• Algoritma Ant Colony Optimization (ACO) mampu mencari rute terpendek
dari 34 lokasi berbeda dengan total jarak 10.18 kilometer dan lama waktu
eksekusi algoritma selama 59 detik.
• Aplikasi pencari rute pengiriman terpendek ini sudah bisa menampilkan
berberapa fitur yaitu login, logout, lihat surat jalan, lihat rute pengiriman
berbentuk maps, lihat rute pengiriman berbentuk list, mengulang proses
pencarian rute terpendek, dan melakukan register.
6.2. Saran
Berdasarkan kekurangan serta keterbatasan ilmu yang dimiliki oleh penulis
dalam mengembangkan aplikasi ini, maka ada beberapa hal yang penulis sarankan
dalam pengembangan aplikasi selanjutnya, yaitu:
98
Uin Syarif Hidayatullah Jakarta
• Pada pengembangan aplikasi selanjutnya diharapkan dapat dioperasikan tidak
hanya pada smartphone android saja, melainkan juga bisa dioperasikan pada
platform lain.
• Sistem yang dibuat untuk melakukan update database masih statis (belum
dinamis) sehingga membutuhkan admin panel untuk dapat mengelola
database yang terdapat pada PT Wahana Prestasi Logistik API.
• Pada pengembangan aplikasi selanjutnya diharapkan dapat membandingkan
algoritma yang dipakai dengan metode heuristik lainnya dalam melakukan
pencarian atau optimasi rute terpendek, seperti algoritma genetika, logika
fuzzy, atau jaringan syaraf tiruan.
99
Uin Syarif Hidayatullah Jakarta
DAFTAR PUSTAKA
Abdul Aziz, Wiharto, Bayu W. (2013). Pemanfaatan Web Service Moodle berbasis
Rest-Json untuk Membangun Moodle Online Learning Extension berbasis
Android. Surakarta: Universitas Sebelas Maret.
Achmad Ridwan, Aisyatul Karima, S.Kom, MCS (2015), Perbandingan Algoritma
Djikstra dan Algoritma Ant Colony Optimation dalam Traveling Salesman
Problem (TSP) Pada Kota Semarang. Semarang: Universitas Dian
Nuswantoro.
Aldio Firando (2014). Pemanfaatan Teknologi GPS dan Kompas Dalam
Pembangunan Aplikasi Friend Finder Berbasis Mobile Pada Platform
Android. Bandung: Perpustakaan UNIKOM.
Artha Johar (2016). Mengenal Perusahaan Jasa Pengiriman Barang (Online).
(http://www.arthanugraha.com/mengenal-perusahaan-jasa-pengiriman-
barang), diakses pada tanggal 18 Januari 2018.
Corinne Brucato (2013). The Traveling Salesman Problem. University of Pittsburgh.
Dewi Gayatri (2018). Teknik Pengambilan Sampel (Online).
(http://staff.ui.ac.id/system/files/users/dewi_g/material/teknikpengambilansa
mpel.pdf), diakses pada tanggal 27 Juni 2018.
Farnanda Herda Perdana (2018). Modul Ajar Teori Graf dan Otomata (Online).
(https://edoc.site/modul-tgo-pdf-free.html), diakses pada tanggal 15 Juni
2018.
Hardianto (2013), Implementasi Algoritma Heuristik untuk Optimasi Rute Terpendek
Bontang.: Sekolah Tinggi Teknologi Bontang.
Hasnain Ali, Arpan Kumar Kar (2018), Discriminant Analysis using Ant Colony
Optimization – An Intra Algorithm Exploration. Procedia Computer Science:
International Conference on Computational Inteligence and Data Science
(ICCIDS).
Kairanbay Magzhan, Hajar Mat Jani. (2013). A Review And Evaluations Of Shortest
Path Algorithms. International Journal of Scientific & Tecknology Research.
100
Uin Syarif Hidayatullah Jakarta
Karmilasari (2018). Testing & Implementation Sistem (Online).
(http://karmila.staff.gunadarma.ac.id/Downloads/folder/0.18), diakses pada
tanggal 17 Juni 2018.
M. E. Winarno (2018). Metode Penelitian Dalam Pendidikan Jasmani. Malang:
Penerbit Universitas Negeri Malang.
Nila Wulandari (2013). Rancang Bangun Aplikasi Multi Bahasa. Perpustakaan
UNIKOM.
N. D. Ramadani, K. B. Tammam, A. B. Setyo, A. A. B. Pratama, M. C. Firmansyah,
E. Faizah (2017). Pertemuan 9, Android Database SQLitep (Online).
(http://hirupmotekar.com/2017/12/28/pertemuan-9-android-database-sqlite/),
diakses pada tanggal 17 Juni 2018.
Nur Hidayati (2018). Penggunaan Rapid Application Development Dalam Rancang
Bangun Program Simpan Pinjam Pada Koperasi. Jakarta: AMIK BSI.
Sangadji, Etta M., Sopiah. 2013. Perilaku Konsumen – Pendekatan Praktis disertai
Himpunan Jurnal Penelitian. Yogyakarta: Penerbit Andi.
Suwartono. (2014). Dasar-dasar Metodologi Penelitian. Yogyakarta: Penerbit Andi.
Thomsom Mary, M.Kom (2017). Modul Bahasa Pemrograman Java.Padang: STKIP
PGRI.
T. Ramadhani, G. F. Hertono, dan B.D. Handari (2016). An Ant Colony Optimization
Algorithm for Solving the Fixed Destination Multi-depot Multiple Traveling
Salesman Problem with Non-rando Parameters. Depok: Universitas
Indonesia.
Vaidehi Joshi, 2017. The Trials and Tribulations of the Traveling Salesman (Online).
(https://medium.com/basecs/the-trials-and-tribulations-of-the-traveling-
salesman-56048d6709d), diakses pada tanggal 15 Juni 2018.
Wahana Logistik. (2017). Tentang Kami | PT Wahana Prestasi Logistik (Online).
(http://wahana.com/), diakses pada tanggal 3 Januari 2018.
Wikipedia (2018). Android Sistem Operasi (Online).
(https://id.wikipedia.org/wiki/Android_sistem_operasi), diakses pada tanggal
16 Juni 2018.
101
Uin Syarif Hidayatullah Jakarta
LAMPIRAN
1. Responden Kuesioner
No. Nama NIK Wilayah
1. Erika Butar 55151060 Ciputat
2. Agus Setiawan 55153577 Ciputat
3. Cipta Yuana 55160816 Ciputat
4. Afri Susiyanto 55161870 Ciputat
5. Ihsan Hakim Noor 55171627 Ciputat
6. Rio Abadi 55171935 Ciputat
7. Darmawan 55172641 Ciputat
8. Angga Adi Saputra 55172670 Ciputat
9. Muhammad Ali Akbar 69161896 Ciputat
10. Arpan Asri 69162097 Ciputat
11. Rio Chandra Yaniolizza 69162619 Ciputat
12. Nanang Triyanto 69162620 Ciputat
102
Uin Syarif Hidayatullah Jakarta
2. Hasil Kuesioner
2831
26
34
53
2420
52
22
40
3229
0
10
20
30
40
50
60
1 2 3 4 5 6 7 8 9 10 11 12
Jumlah Paket
Jumlah Paket
58.33%16.67%
25%
Cara Menentukan Lintasan Pengiriman Paket
Dari terdekat hingga ke yangterjauh
Alamat yang diketahui akanlebih diutamakan
Tidak tentu
103
Uin Syarif Hidayatullah Jakarta
83.30%
16.70%
Kesulitan dalam Menemukan LintasanTerpendek
Ya Tidak
16.70%
83.30%
Penggunaan Aplikasi Sejenis
Ya Tidak
104
Uin Syarif Hidayatullah Jakarta
66.70%8.30%
25%
Sistem Operasi
Android
BlackBerry
Symbian
91.70%
8.30%
Tertarik dengan Aplikasi
Ya Tidak
105
Uin Syarif Hidayatullah Jakarta
3. Hasil Wawancara
No. Pertanyaan Jawaban Narasumber
1. Profil Narasumber
Novel Zulham,
General Manager Operasional PT
Wahana Prestasi Logistik
2. Bagaimana prosedur yang harus dilakukan
oleh kurir untuk melakukan pengiriman paket
Pertama kurir datang ke kantor
untuk mengambil surat jalan serta
paket yang akan kirim pada hari
tersebut, lalu kurir mengirim paket
ke setiap lokasi tujuan pengiriman,
setelah itu kurir kembali ke kantor
untuk melaporkan hasilnya
3.
Apakah ada rumus tertentu yang dimiliki oleh
kurir untuk menentukan rute atau rute
perjalanan saat mengirim paket?
Sampai saat ini belum ada, itu
diserahkan sepenuhnya kepada
kurir
4.
Menurut Anda, faktor apa saja yang menjadi
acuan kurir untuk menentukan rute perjalanan
saat mengirim paket?
Memilih lokasi yang terdekat
terlebih dahulu
5.
Menrut Anda, apakah penting untuk
menemukan rute terpendek saat kurir
mengirim paket?
Penting, agar kurir bisa menghemat
waktu yang ditempuh, tenaga yang
dikerahkan serta biaya yang
dikeluarkan saat melakukan
perjalanan pengiriman paket
6.
Apakah perlu dibuatkan suatu sistem yang
dapat menemukan rute atau rute terpendek
pengiriman paket oleh kurir?
Perlu, akan bermanfaat untuk kurir,
perusahaan kami akan mendukung
pembuatan sistem tesebut
7. Bagaimana pendapat Anda bila sisterm
tersebut nantinya ada
Kurir akan dimudahkan dalam
pemilihan rute pengiriman paket,
mereka akan terbantu.
106
Uin Syarif Hidayatullah Jakarta
4. Permohonan Riset
107
Uin Syarif Hidayatullah Jakarta
5. SK Penelitian
108
Uin Syarif Hidayatullah Jakarta
6. Pernyataan Wawancara
109
Uin Syarif Hidayatullah Jakarta
7. Blackbox Testing
110
Uin Syarif Hidayatullah Jakarta