DENGAN SKEMA PENCARIAN LOKAL ADAPTIF
UNTUK PENYELESAIAN
TRAVELING SALESMAN
PROBLEM
PADA ANDROID
Skripsi
diajukan sebagai salah satu syarat untuk memproleh gelar Sarjana Pendidikan Program Studi Pendidikan Teknik Informatika dan Komputer
Oleh
Teguh Narwadi NIM.5302411080
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI SEMARANG
ii
Dengan ini saya menyatakan bahwa:
1. Skripsi ini, adalah asli dan belum pernah diajukan untuk mendapatkan gelar akademik (sarjana, magister, dan/atau doktor), baik di Universitas Negeri Semarang (UNNES) maupun di perguruan tinggi lain.
2. Karya tulis ini adalah murni gagasan, rumusan, dan penelitian saya sendiri
tanpa bantuan pihak lain, kecuali arahan Pembimbing dan masukan Tim Penguji.
3. Dalam karya tulis ini tidak terdapat karya atau pendapat yang telah ditulis
atau dipublikasikan orang lain, kecuali secara tertulis dengan jelas dicantumkan sebagai acuan dalam naskah dengan disebutkan nama pengarang dan dicantumkan dalam daftar pustaka.
4. Pernyataan ini saya buat dengan sesungguhnya dan apabila dikemudian
hari terdapat penyimpangan dan ketidakbenaran dalam pernyataan ini, maka saya bersedia menerima sanksi akademik berupa pencabutan gelar yang telah diperoleh karena karya ini, serta sanksi lainnya sesuai dengan norma yang berlaku di perguruan tinggi ini.
iii
Nama : Teguh Narwadi
NIM : 5302411080
Program Studi : S – 1 Pendidikan Teknik Informatika dan Komputer
Judul Skripsi : Penerapan Algoritma Genetika Hibrida Dengan Skema Pencarian
Lokal Adaptif Untuk Penyelesaian Traveling Salesman Problem
Pada Android
Skripsi ini telah disetujui oleh pembimbing untuk diajukan ke sidang panitia ujian
skripsi Program Studi S-1 Pendidikan Teknik Informatika dan Komputer Jurusan
Teknik Elektro FT. UNNES.
iv
Skripsi dengan judul Penerapan Algoritma Genetika Hibrida Dengan
Skema Pencarian Lokal Adaptif Untuk Penyelesaian Traveling Salesman Problem
pada Android telah dipertahankan di depan sidang Panitia Ujian Skripsi Fakultas Teknik UNNES pada tanggal Oktober 2015.
Oleh
Nama : Teguh Narwadi
NIM : 5302411080
v
Motto:
Sesuatu yang belum dikerjakan, seringkali tampak mustahil, kita baru
yakin kalau kita melakukannya dengan baik. (Evelyn Underhill)
Jangan biarkan opini orang-orang menghalangimu dari suara hatimu. Dan
yang paling penting, milikilah keberanian untuk mengikuti nurani dan
intuisimu. (Steve Jobs)
Jangan kecewa apabila hasil yang diperoleh tidak seperti yang diharapkan,
percaya bahwa semuanya adalah kesuksesan, bukan kegagalan. (Thomas
Alva Edison)
Persembahan:
Tuhan Yang Maha Esa
Bapak, Ibu, Adik, beserta keluarga tercinta
yang tak henti-hentinya memberikan doa, semangat, dan
dukungan.
Teman-teman seperjuangan Pendidikan Teknik Informatika
dan Komputer angkatan 2011.
vi
Segala puji dan syukur penulis ucapkan kehadirat Allah SWT dan
mengharapkan ridho yang telah melimpahkan rahmat-Nya sehingga dapat
diselesaikan penyusunan skripsi yang berjudul “Penerapan Algoritma Genetika
Hibrida Dengan Adaptasi Skema Pencarian Lokal Untuk Traveling Salesman
Problem Pada Android”. Skripsi ini disusun sebagai salah satu persyaratan meraih
gelar Sarjana Pendidikan pada Program Studi Pendidikan Teknik Informatika dan
Komputer Universitas Negeri Semarang.
Dalam penyusunan skripsi ini tidak bisa lepas dari dukungan berbagai
pihak. Oleh sebab itu pada kesempatan ini ingin diberikan rasa hormat dan ucapan
terima kasih kepada,
1. Prof. Dr. Fathur Rokhman, M.Hum., Rektor Universitas Negeri Semarang
yang telah memberikan kesempatan kepada saya untuk belajar di Universitas
Negeri Semarang.
2. Dr. Nur Qudus, M.T., Dekan Fakultas Teknik Universitas Negeri Semarang
yang telah memberikan ijin untuk melaksanakan penelitian.
3. Drs. Suryono, M.T., Ketua Jurusan Teknik Elektro Fakultas Teknik
Universitas Negeri Semarang yang telah memberikan kesempatan untuk
vii
5. Dr. Ir. Subiyanto, ST, MT, Dosen pembimbing yang telah memberikan
bimbingan, pengarahan, saran, dan motivasi kepada saya dalam penyusunan
skripsi ini.
6. Segenap dosen jurusan Teknik Elektro Fakultas Teknik Universitas Negeri
Semarang yang telah banyak membekali ilmu pengetahuan.
7. Teman-teman mahasiswa PTIK UNNES angkatan 2011 yang saling
memberikan semangat dan perhatian.
8. Semua pihak yang telah membantu dalam penyusunan skripsi ini.
Penulis hanya bisa memanjatkan doa semoga semua pihak yang telah
membantu penulis dalam penyusunan skripsi ini mendapatkan pahala dari Allah
SWT. Penulis berharap semoga skripsi ini bermanfaat bagi semua pihak
khususnya bagi penulis sendiri dan masyarakat serta pembaca pada umumnya.
Semarang, Oktober 2015
viii
Narwadi, Teguh. 2015. Penerapan Algoritma Genetika Hibrida Dengan
Skema Pencarian Lokal Adaptif Untuk Penyelesaian Traveling Salesman Problem pada Android. Skripsi, Jurusan Teknik Elektro, Program Studi Pendidikan Teknik Informatika dan Komputer, Fakultas Teknik, Universitas Negeri Semarang. Dr. Ir. Subiyanto S.T., M.T.
Kata Kunci: Traveling Salesman Problem, Algoritma Genetika Hibrida, Pencarian Lokal, Kesamaan Koefisien.
Algoritma genetika (GA) merupakan teknik pencarian berbasis populasi yang digunakan untuk menemukan perkiraan solusi terbaik dalam masalah
optimasi seperti mendapatkan jarak optimal dalam kasus traveling salesman
problem (TSP). Dimana permasalahan utama TSP adalah menemukan rute dengan jarak minimal. Namun terdapat kelemahan dari GA yaitu ketika terjebak pada optimal lokal dan tidak mampu melepaskan diri, sehingga kinerjanya terus memburuk. Salah satu metode perbaikan kelemahan tersebut dengan algoritma genetika hibrida dengan skema pencarian lokal adaptif (HGA). Dalam penelitian ini menyajikan pengaplikasian dari HGA untuk menyelesaian TSP secara efektif. Aplikasi ini dikembangkan pada android karena android saat ini telah banyak digunakan oleh sebagian besar masyarakat dunia dan bersifat mobile.
Penggunaan teknik pencarian lokal digunakan untuk mencari solusi terbaik dari populasi. Jika ditemukan solusi yang lebih baik maka solusi GA diganti dengan solusi yang lebih baik. Untuk mengefektifkan penggunaan pencarian lokal digunakan skema pencarian lokal yang dapat secara otomatis mengontrol penggunaan teknik pencarian lokal kedalam GA sehingga pencarian lokal menjadi adaptif. Solusi terbaik yang dihasilkan oleh algoritma ditampilkan kedalam Google Maps pada Android. Dalam pengujian, untuk menguji efektivitas HGA dengan skema pencarian lokal adaptif dibandingkan dengan GA tanpa pencarian lokal dengan 5 sample kabupaten/kota di Jawa Tengah dengan jumlah kota yang berbeda. Setiap sampel TSP dilakukan simulasi sebanyak 10 kali menggunakan parameter yang telah ditentukan.
ix
Halaman
HALAMAN JUDUL ... i
PERNYATAAN KEASLIAN TULISAN ... ii
PERSETUJUAN PEMBIMBING ... iii
PENGESAHAN ... iv
MOTTO DAN PERSEMBAHAN ... v
x
2.1 Penelitian Terdahulu ... 7
2.2 Landasan Teori ... 9
2.2.1 Traveling Salesman Problem ... 9
2.2.2 Algoritma Genetika ... 11
2.2.3 Pencarian Lokal ... 18
2.2.4 Skema Pencarian Lokal Adaptif... 19
2.2.5 Algoritma Genetika Hibrida ... 21
2.2.6 Android ... 23
BAB IIIMETODE PENELITIAN... 28
3.1 Studi Pustaka ... 28
3.2 Analisis Permasalahan ... 28
3.3 Mapping HGA dengan skema pencarian lokal adaptif pada TSP ... 30
3.3.1 Algoritma Genetika untuk menyelesaikan TSP ... 30
3.3.2 Algoritma Genetika Hibrida Dengan Skema Pencarian Lokal Adaptif untuk menyelesaikan TSP ... 34
3.4 Tahap Pengembangan Sistem ... 37
3.4.1 Analisis Hardware dan Software ... 37
xi
3.5.2 Pengkodean ... 44
3.6 Pengujian ... 51
BAB IVHASIL DAN PEMBAHASAN ... 54
4.1 Hasil Penelitian ... 54
4.1.1 Hasil Sistem TSP pada Android ... 54
4.1.2 Hasil Pengujian ... 58
4.2 Pembahasan ... 64
4.2.1 Perbandingan Hasil Pengujian ... 64
4.2.2 Analisis Hasil Pengujian ... 67
4.2.3 Analisis Penggunaan Pencarian Lokal dalam HGA ... 75
4.2.4 Komparasi dengan penelitian lain... 79
4.2.5 Hambatan Penelitian ... 80
BAB VPENUTUP ... 82
5.1 Simpulan ... 82
5.2 Saran ... 82
DAFTAR PUSTAKA ... 83
xii
Tabel 3.1 Sampel 5 Kota ... 30
Tabel 3.2 Jarak Antar Kota ... 31
Tabel 3.3 Populasi Awal ... 31
Tabel 3.4 Inverse fungsi objektif ke fungsi fitness ... 32
Tabel 3.5 Populasi Baru ... 34
Tabel 3.6 Individu baru yang dihasilkan ... 36
Tabel 3.7 Daftar Kabupaten/Kota di Jawa Tengah ... 51
Tabel 4.1 Hasil percobaan data case1... 59
Tabel 4.2 Hasil percobaan data case2... 60
Tabel 4.3 Hasil percobaan data case3... 61
Tabel 4.4 Hasil percobaan data case4... 62
Tabel 4.5 Hasil percobaan data case5... 63
Tabel 4.6 Perbandingan Hasil Pengujian Jarak ... 64
xiii
Halaman
Gambar 2.1 Posisi kota-kota yang akan dilewati ... 10
Gambar 2.2 Kerangka Kerja Algoritma Genetika (Zukhri, 2014) ... 12
Gambar 2.3 Proses Seleksi Turnamen ... 16
Gambar 2.4 Proses order crossover ... 17
Gambar 2.5 Proses Exchange Crossover ... 18
Gambar 2.6 Tampilan Awal Peta ... 26
Gambar 2.7 Contoh Penggunaan Markers ... 27
Gambar 2.8 Contoh Penggunaan Polyline ... 28
Gambar 3.1 Desain Penelitian dan Pengambangan HGA ... 29
Gambar 3.2 Permintaan marker pada Google Maps ... 39
Gambar 3.3 Alur proses sistem yang berjalan ... 40
Gambar 3.4 Tampilan Dashbord Admin ... 41
Gambar 3.5 Tampilan Halaman Awal User ... 41
Gambar 3.6 Tampilan Halaman Input Kota ... 42
Gambar 3.7 Tampilan Halaman Hasil Perhitungan Algoritma ... 42
xiv
Gambar 3.11 Source code swap mutasi ... 46
Gambar 3.12 Source code algoritma genetika ... 47
Gambar 3.13 Source code hill climbing ... 47
Gambar 3.14 Source code cosine similarity ... 49
Gambar 3.15 Source code cosine similarity dalam populasi ... 50
Gambar 3.16 Source code fungsi HGA ... 50
Gambar 4.1 Tampilan Halaman Utama Aplikasi ... 54
Gambar 4.2 Tampilan Halaman Select Kota ... 55
Gambar 4.3 Tampilan Halaman Markers Kota ... 56
Gambar 4.4 Tampilan Halaman Pilih Algoritma ... 56
Gambar 4.5 Tampilan Halaman Hasil Perhitungan ... 57
Gambar 4.6 Tampilan Dashboard Admin ... 58
Gambar 4.7 Tampilan Halaman Tentang Aplikasi ... 58
Gambar 4.8 Grafik Jarak Perjalanan pada Case1 ... 67
Gambar 4.9 Grafik Jarak Perjalanan pada Case2 ... 68
Gambar 4.10 Grafik Jarak Perjalanan pada Case3 ... 69
xv
Gambar 4.14 Grafik Waktu Komputasi pada Case2 ... 72
Gambar 4.15 Grafik Waktu Komputasi pada Case3 ... 73
Gambar 4.16 Grafik Waktu Komputasi pada Case4 ... 74
Gambar 4.17 Grafik Waktu Komputasi pada Case5 ... 74
Gambar 4.18 Presentase Pencarian Lokal dalam HGA pada Case1... 76
Gambar 4.19 Presentase Pencarian Lokal dalam HGA pada Case2... 76
Gambar 4.20 Presentase Pencarian Lokal dalam HGA pada Case3... 77
Gambar 4.21 Presentase Pencarian Lokal dalam HGA pada Case4... 78
xvi
Halaman
Lampiran 1. Hasi Sistem Algoritma Penyelesaian TSP ... 85
Lampiran 2. Hasil Rute Perjalanan Optimal Menggunakan HGA ... 87
Lampiran 3. Grafik Nilai Fitness HGA ... 88
Lampiran 4. Hasil Penggunaan Pencarian Lokal ... 89
1
BAB I
PENDAHULUAN
1.1
Latar Belakang Masalah
Traveling Salesman Problem (TSP) adalah masalah klasik optimasi
kombinatorial dan telah diaplikasikan dalam planning, scheduling, sequencing
dan vehicle routing problem (Rafsanjani, et al., 2015). TSP merupakan
permasalahan rute perjalanan untuk mengunjungi banyak kota dan setiap kota
dikunjungi satu kali, dimulai dan diakhiri pada kota yang sama dimana jarak
perjalanan minimal (Bryant, 2000). Dalam teori kompleksitas komputasi, TSP
termasuk dalam kelas masalah NP-hard (non-deterministic polynomial-time
hard), dengan demikian, bahwa tidak ada algoritma yang menjamin untuk
mendapatkan rute yang optimal dalam waktu singkat (Berninger, 2014).
Satu metode yang pasti akan menemukan solusi optimal dari TSP adalah
penghitungan menyeluruh dan evaluasi. Prosedur ini dimulai dengan
membangkitkan kemungkinan semua perjalanan dan mengevaluasinya sesuai
panjang perjalanan. Perjalanan dengan panjang terkecil dipilih sebagai yang
terbaik, dan dijamin akan optimal (Homaifar, et al., 1992). Dalam penelitian yang
dilakukan oleh Adullah Homaifar (1992) jika mampu mengidentifikasi dan
diperlukan hampir sepuluh juta tahun (jumlah kemungkinan tur = 3.2 × )
untuk mengevaluasi semua tur pada 25 kota TSP.
Untuk dapat menghasilkan solusi optimal dalam waktu yang singkat pada
TSP diperlukan sebuah metode heuristik. Beberapa metode heuristik yang biasa
digunakan untuk menyelesaikan TSP adalah Simulated Annealing, Tabu Search,
Ant Colony Optimization, Artificial Immune System, dan Genetic Algorithm
(Zukhri, 2014: 10). Genetic Algorithm/ Algoritma Genetika (GA) merupakan
teknik pencarian berbasis populasi yang digunakan untuk menemukan perkiraan
solusi terbaik dalam masalah optimasi menggunakan operator genetik (Reese,
2009). GA dapat menjadi alternatif untuk menyelesaikan TSP, karena telah
terbukti lebih efisien dalam menemukan solusi optimal atau mendekati optimal
(Chang, et al., 2010; Changdar, et al., 2013; Gupta dan Panwar, 2013).
Terdapat kelemahan besar didalam GA bahwa ketika terjebak pada lokal
optimum, kinerja GA terus memburuk dan tidak ada cara untuk melepaskan diri
(Yun, et al., 2009). Oleh karena itu, GA terkadang tidak mampu menemukan
solusi optimal untuk masalah TSP. Salah satu metode untuk mengatasi kelemahan
tersebut adalah hibridisasi dengan teknik pencarian lokal. Teknik ini dapat
meningkatkan performa dari GA dengan dengan memasukkan individu baru
terbaik ke dalam perulangan GA (Zhao, et al, 2009; Ahmed, 2013; Wang, 2014).
Penelitian ini menyajikan pengaplikasian dari hibridisasi GA dengan
menggunakan skema pencarian lokal adaptif untuk menyelesaikan TSP. Skema
pencarian lokal tersebut dapat mengontorol penggunaan teknik pencarian lokal
terbukti efektif dibandingkan dengan GA tanpa pencarian lokal dalam
menyelesaikan permasalahan optimasi seperti TSP (Yun, et al., 2009; Rafsanjani, et
al., 2015).
Kebutuhan aplikasi untuk menentukan rencana perjalanan dengan rute yang
optimal dibutuhkan banyak perusahaan pada saat ini. Sebagai contoh, pada
perusahaan jasa pengiriman barang seperti JNE, TIKI, dan POS Indonesia, dimana
seorang kurir/ salesman harus mengirimkan barang kepada konsumen dengan
tempat tujuan yang berbeda-beda. Tujuan dari perusahaan tersebut adalah untuk
mendapatkan keuntungan yang maksimal sehingga aplikasi yang mampu
memandu para kurir dan menentukan rute perjalanan yang optimal (dengan jarak
yang minimal) dibutuhkan untuk mencapai tujuan tersebut. Aplikasi tersebut
dikembangkan pada android karena android merupakan sistem operasi yang
paling banyak digunakan diseluruh dunia berdasarkan installed base dari semua
sistem operasi pada tahun 2015 (Manjoo, 2015). Selain itu android bersifat mobile
yang tentunya mudah untuk dibawa dan telah terintegrasi dengan Google Maps.
Dalam penelitian ini, penulis mengangkat judul Penerapan Algoritma Genetika
Dengan Skema Teknik Pencarian Lokal Adaptif untuk Penyelesaian
Traveling Salesman Problem pada Android.
1.2
Rumusan Masalah
Berdasarkan latar belakang di atas, kelemahan GA ketika terjebak dapat
keadaan optimal lokal, yang mengakibatkan GA terkadang tidak mampu
ditingkatkan menggunakan HGA dengan skema pencarian lokal adaptif, yang
secara otomatis dapat mengontrol penggunaan teknik pencarian lokal kedalam GA
secara efektif. Sehingga dapat dirumuskan masalah, bagaimanakah menerapkan
Algoritma Genetika Hibrida dengan Skema Pencarian Lokal Adaptif secara efektif
dalam menyelesaikan Traveling Salesman Problem pada Android.
1.3
Batasan Masalah
Berdasarkan masalah diatas maka dalam penelitian ini, permasalahan
dibatasi sebagai berikut:
a. Rute perjalanan yang digunakan dalam lingkup antar kota-kota di provinsi
Jawa Tengah.
b. Data jarak perjalanan diperoleh dari penghitungan jarak antar dua kota,
menggunakan fungsi jarak.
c. Penentuan rute optimum, dimana penjumlahan jarak-jarak semua kota yang
dikunjungi paling kecil/ terpendek berarti rute yang paling optimal.
d. Perencanaan perjalanan kota-kota yang akan dikunjungi ditampilkan
menggunakan Markers dalam Google Maps Android.
e. Hasil keluaran sistem menggambarkan rute optimum dari kota-kota yang
dikunjungi digambarkan dengan polyline.
f. Dalam perencanaan perjalanan tidak memperhatikan kota awal dan kota
1.4
Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mewujudkan Algoritma Genetika
Hibrida dengan Skema Pencarian Lokal Adaptif efektif dalam menyelesaikan
Traveling Salesman Problem.
1.5
Manfaat Penelitian
Penelitian ini dapat memberikan manfaat sebagai berikut:
a. Penelitian ini diharapkan dapat membantu meningkatkan efektifitas
algoritma genetika dalam menyelesaikan traveling salesman problem.
b. Penelitian ini diharapkan dapat menghasilkan aplikasi dalam menyelesaikan
traveling salesman problem yang berjalan pada sistem operasi android.
1.6
Sistematika Penulisan
Sistematika penulisan terdiri dari tiga bagian, yaitu bagian awal, bagian isi
dan bagian akhir.
1. Bagian awal
Bagian awal skripsi terdiri dari halaman judul, halaman persetujuan,
halaman pengesahan, halaman moto dan persembahan, prakata, daftar isi, daftar
tabel, daftar gambar dan daftar lampiran.
2. Bagian isi
Bab I : Pendahuluan
Bagian pendahuluan berisi tentang latar belakang, rumusan masalah,
tujuan dan manfaat penelitian dan sistematika penulisan.
Bab II : Tinjauan Pustaka
Bagian tinjauan pustaka berisi tentang penelitian terdahulu dan landasan
teoritis yang dikemukakan tentang teori-teori yang mendukung
penelitian.
Bab III : Metode Penelitian
Bagian metode penelitian berisi tentang jenis penelitian, prosedur
penelitian, rancangan dan pengembangan sistem, implementasi dan
pengujian sistem
Bab IV : Hasil dan Pembahasan
Bagian ini berisi hasil penelitian dan pembahasan penelitian.
Bab V : Kesimpulan dan Saran
Bagian ini berisi tentang kesimpulan penelitian dan saran.
3. Bagian akhir
Bagian akhir skripsi terdiri dari daftar pustaka dari jurnal, buku dan
kepustakaan lain yang digunakan sebagai acuan dalam skripsi serta terdiri dari
7
BAB II
TINJAUAN PUSTAKA
2.1
Penelitian Terdahulu
Penelitian mengenai algoritma genetika hibrida untuk penyelesaian
traveling salesman problem sudah ada penelitian sebelumnya, diantaranya oleh
Feng-Gen Zhao, Jiang-Sheng Sun, Su-Jian Li, Wei-Min Liu (2009) dalam
penelitiannya yang berjudul A Hybrid Genetic Algorithm for the Traveling
Salesman Problem with Pickup and Delivery. Dalam penelitian ini untuk
menyelesaikan permasalahan traveling salesman problem digunakan algoritma
genetika hibrida. Hibridisasi yang dilakukan hanya menambahkan teknik
pencarian lokal kedalam algoritma genetika untuk mempercepat laju konvergen.
Hasil yang diperoleh membuktikan bahwa algoritma genetika hibrida mampu
mengungguli algoritma tabu search dalam akurasi hasil jarak.
Penelitian yang dilakukan oleh YoungSu Yun, Chiung Moon dan Dacho
Kim (2009) dengan judul penelitian Hybrid genetic algorithm with adaptive local
search scheme for solving multistage-based supply chain problems. Dalam
penelitian ini terdapat skema pencarian lokal untuk mengontrol penggunaan
teknik pencarian lokal kedalam algoritma genetika sehingga algoritma yang
dibangun lebih efisien. Algoritma tersebut diterapkan pada permasalahan
algoritma genetika hibrida mampu mengungguli algoritma genetika tanpa
pencarian lokal dalam menyelesaikan multistage-based supply chain problems.
Penelitian lain yang dilakukan oleh Marjan Kuchaki Rafsanjani, Sadegh
Eskandari dan Arsham Borumand Saeid (2015) dengan judul penelitian A
similarity-based mechanism to control genetic algorithm and local search
hybridization to solve traveling salesman problem. Penelitian ini dalam prosesnya
menggunakan mekanisme berbasis kesamaan untuk mengontrol penggunaan
pencarian lokal kedalam perulangan algoritma genetika. Hasil yang didapatkan
menunjukkan bahwa algoritma genetika hibrida mampu menemukan panjang rute
yang optimal disemua percobaan dibandingkan dengan algoritma genetika tanpa
pencarian lokal.
Dalam penelitian Anupriya dan Mansi Saxena (2013) dengan judul An
Android Application for Google Map Navigation System Implementing Traveling
Salesman Problem, dalam penelitian tersebut menggunakan algoritma genetika
sederhana yang diimplementasikan pada google maps yang berjalan pada sistem
operasi android. Hasil yang diperoleh bahwa implementasi algoritma genetika
untuk menyelesaikan traveling salesman problem mampu dibangun di sistem
operasi Android. Berdasarkan uraian diatas, penulis menerapkan algoritma
genetika hibrida dengan skema pencarian lokal adaptif untuk menyelesaikan
2.2
Landasan Teori
2.2.1 Traveling Salesman Problem
Traveling Salesman Problem (TSP) merupakan salah satu masalah yang
paling popular dalam optimasi kombinatorial dan telah diaplikasikan dalam
perencanaan, penjadwalan, sequencing dan vehicle routing problems (Rafsanjani,
et al., 2015).
a. Deskripsi Umum
Travelling Salesmen Problem (TSP) termasuk ke dalam kelas NP hard yang
pada umumnya menggunakan pendekatan heuristik untuk mencari solusinya.
Permasalahan utama dari TSP adalah bagaimana seorang salesman dapat
menentukan rute perjalananannya untuk mengunjungi sejumlah kota yang
diketahui jarak satu kota dengan kota lainnya sehingga jarak yang ditempuh
merupakan jarak minimum dimana salesmen hanya dapat mengunjungi kota
tersebut tepat satu kali (Bryant, 2000).
Persoalan yang dihadapi TSP adalah bagaimana merencanakan total jarak
yang minimum. Untuk menyelesaikan persoalan tersebut, tidak mudah dilakukan
karena terdapat ruang pencarian dari sekumpulan permutasi sejumlah kota. Maka
TSP kemudian dikenal dengan persoalan Non Polinomial. Gambaran sederhana
Gambar 2.1 Posisi kota-kota yang akan dilewati
Persoalan TSP dapat dipecahkan dengan mengenumerasi , dengan n
adalah jumlah kota dan kemudian memilih rute dengan panjang terpendek. Posisi
kota dengan jumlah 4 kota (a, b, c, d) seperti ditunjukkan pada gambar 2.1
tersebut memiliki rute yang dapat dilalui, yaitu:
R1 = (a, b, c, d, a) atau (a, d, c, b, a) dengan panjang rute 10 + 12 + 8 + 15 = 45
R2 = (a, c, d, b, a) atau (a, b, d, c, a) dengan panjang rute 12 + 5 + 9 + 15 = 41
R3 = (a, c, b, d, a) atau (a, d, b, c, a) dengan panjang rute 10 + 5 + 9 + 8 = 32
Jadi, rute terpendek adalah R3 = (a, c, b, d, a) atau (a, d, b, c, a) dengan
panjang rute 10 + 5 + 9 + 8 = 32. Ini adalah solusi persoalan TSP untuk gambar
2.1
b. Fungsi Objektif
Fungsi objektif merupakan fungsi tujuan dari permasalahan, dalam TSP
tujuan utama adalah mendapatkan jarak minimal dari sebuah perjalanan. Secara
matematis, TSP dapat didefinisikan sebagai kumpulan dari n kota { , ,… },
dan permutasi ,..., !, tujuannya adalah untuk memilih sehingga jumlah
jarak antar kota digunakan fungsi objektif TSP pada persamaan 2.1 (Fajardo
dan Oppus, 2010).
Jika jarak tempuh antar kota , kota pertama adalah dan
merupakan kota terakhir dalam setiap perjalanan dan koordinat kota
dari seluruh kota , dimana salesman akan mengunjungi semua kota, kemudian
total jarak dalam semua perjalanan (f). Fungsi untuk menghitung jarak dalam
seluruh perjalanan dinyatakan dalam persamaan 2.2 (Davendra, 2010).
2.2.2 Algoritma Genetika
Algoritma genetika merupakan suatu metode heuristik yang dikembangkan
berdasarkan prinsip genetika dan proses seleksi alamiah Teori Evolusi Darwin.
Dalam algoritma genetika proses pencarian penyelesaian atau proses terpilihnya
sebuah penyelesaian berlangsung sama seperti terpilihnya suatu individu untuk
bertahan hidup dalam proses evolusi (Zukhri, 2014: 10).
a. Struktur Umum
Kerangka kerja yang biasa digunakan dalam penerapan algoritma genetika
Permasalahan optimasi yang diselesaikan dengan algoritma genetika perlu
dikodekan ke dalam kromosom. Hal ini disebabkan dalam proses komputasi yang
sebenarnya, kromosom-kromosom itulah yang diproses menggunakan
operator-operator genetika seperti seleksi, penyilangan, dan mutasi.
Gambar 2.2 Kerangka Kerja Algoritma Genetika (Zukhri, 2014)
Dalam algoritma genetika, pemrosesan kromosom-kromosom sebagai
sebuah populasi oleh operator genetika terjadi secara berulang. Pada mulanya
populasi awal dibangkitkan secara acak. Selanjutnya, operator-operator genetika
menggabungkan informasi genetis untuk membentuk populasi generasi
berikutnya. Pada generasi berikutnya, nilai fitness kromosom sebagai representasi
dari penyelesaian masalah diharapkan bertambah semakin bagus (Zukhri, 2014:
Procedure: Algoritma Genetika
Input: Permasalahan optimasi, parameter GA
Output: Solusi terbaik
Menghasilkan populasi secara acak sebanyak jumlah populasi
Step4: Operator Genetika
Step4.1: Seleksi
Memilih dua orang tua menggunakan metode seleksi
Step4.2: Crossover
Menyilangkan dua orangtua yang dipilih menggunakan metode crossover
Step4.3: Mutasi
Menukar gen anak yang dihasilkan menggunakan metode mutasi
Step5: Kondisi Berhenti
Kondisi berhenti telah ditetapkan menggunakan jumlah generasi. Jika jumlah generasi terpenuhi maka proses perulangan berhenti
End
b. Representasi
Hal pertama yang harus dilakukan dalam algoritma genetika adalah
bagaimana solusi dari masalah direpresentasikan sebagai kumpulan kromosom.
Representasi meliputi pengkodean gen dari kromosom. Gen merupakan bagian
dari kromosom, dimana satu gen mewakili satu variabel. Gen dapat
direpresentasikan dalam bentuk: string bit, array bilangan real, path/jalur, elemen
permutasi, dan lain-lain (Kusumadewi, 2003:280). Representasi path merupakan
representasi paling nyata dari perjalanan dalam TSP, solusi direpresentasikan
Misalkan dalam kasus TSP, biasanya kromosom tersusun dari indeks setiap
kota. Jika banyaknya kota adalah 9, maka kromosom terdiri dari 9 gen. Setiap gen
dapat berisi bilangan bulat yang merupakan indeks dari kota-kota tersebut. Misal
P Є {Pati, Kudus, Grobogan, Solo, Semarang, Demak, Jepara, Rembang,
Boyolali}, maka kromosom dapat dikodekan sebagai kombinasi bilangan 1
sampai 9. Jika kesembilan kota diindeks dengan urutan seperti itu, maka
kromosom
1 2 3 4 5 6 7 8 9
Mempresentasikan rute,
Pati–Kudus–Grobogan–Solo–Semarang–Demak–Jepara–Rembang–Boyolali.
c. Inisialisasi Populasi
Inisialisasi populasi merupakan proses pembentukan populasi awal dari
kromosom sebanyak ukuran populasi (UkPop). Ukuran populasi mempengaruhi
kinerja algoritma genetika jika masalahnya menjadi lebih sulit maka ukuran
populasi harus meningkatkan (Reese, 2009). Mengingat setiap kromosom
menyatakan urutan kota yang harus dikunjungi oleh salesman, maka representasi
kromosom yang paling sederhana untuk menyatakan penyelesaian TSP adalah
dalam bentuk permutasi dari indeks kota dan dapat dinyatakan sebagai vector v
berikut:
vi = [g1, g2, … , gN],
Populasi awal dibentuk secara acak. Hal ini berarti bahwa penyelesaian
yang dihasilkan oleh algoritma genetika pada generasi pertama didapat dari
penjumlahan jarak antar kota yang didekode dari bilangan kromosom v1, v2, … ,
vUkPop (Zukhri, 2014).
d. Proses Evaluasi
Proses evaluasi merupakan proses untuk menghitung nilai fitness yang
menyatakan tingkat kualitas kromosom. Dalam masalah TSP, fungsi fitness tidak
dapat didefinisikan secara langsung dari fungsi objektif karena TSP merupakan
masalah pencarian nilai minimum (Zukhri, 2014). Oleh karena itu, fungsi fitness
harus dipetakan dari fungsi objektifnya, dengan persamaan 3.
eval(v )=
Dimana eval(v) merupakan fungsi fitness dan f (v) adalah fungsi objektif TSP.
e. Proses Seleksi
Seleksi merupakan operator dalam algoritma genetika yang bertujuan untuk
memilih kromosom yang tetap bertahan dalam populasi untuk mengalami proses
penyilangan. Salah satunya adalah Seleksi Turnamen, Dalam seleksi ini,
kromosom-kromosom dalam suatu populasi dibagi menjadi beberapa grup secara
acak. Setiap grup harus beranggotakan paling tidak dua kromosom. Seleksi
dilakukan dengan mempertahankan kromosom dengan nilai fitness tertinggi pada
yang lebih kecil, menyebabkan komputasi dalam model seleksi ini lebih ringan
dibandingakan dengan model seleksi peringkat (Zukhri, 2014: 43).
Pada metode seleksi dengan turnamen ini, akan ditetapkan suatu nilai
turnamen untuk individu-individu yang dipilih secara random dari suatu populasi.
Individu-individu yang terbaik dalam kelompok ini akan diseleksi sebagai induk.
Parameter yang digunakan pada metode ini adalah ukuran turnamen yang bernilai
antara 2 sampai N jumlah individu dalam suatu populasi (Kusumadewi, 2003:
289). Seleksi turnamen lebih efisien dan sederhana dalam implementasi
dibandingkan metode seleksi yang lain (Razali dan Geraghty, 2011). Pada gambar
2.3 ditunjukkan proses seleksi turnamen dengan N=3.
Gambar 2.3 Proses Seleksi Turnamen
f. Crossover
Crosover atau penyilangan merupakan operator dalam algoritma genetika
yang bertujuan untuk melahirkan kromosom baru yang mewarisi sifat-sifat
induknya (Zukhri, 2014:43). Salah satu metode crossover adalah Order
Crossover, pada order crossover (OX) untuk menghasilkan keturunan dipilih dua
pertama yang berada diantara titik penyilangan digantikan oleh gen-gen pada
induk kedua. OX tepat digunakan untuk representasi path / permutasi, karena OX
bukan merupakan masalah permutasi melingkar (Liu, et al., 2014). Dalam gambar
2.8 akan dijelaskan proses dari OX (Berninger, 2014).
Gambar 2.4 Proses order crossover
g. Mutasi
Fungsi mutasi adalah untuk menambah keragaman dalam populasi dan
mencegah kromosom jatuh ke dalam minimum lokal (Wang, 2014). Salah satu
metode mutasi adalah Mutasi Exchange Dalam metode mutasi exchange, proses
(Berninger, 2014). Untuk lebih jalasnya dapat dilihat ilustrasi metode mutasi ini
dalam gambar 2.12.
Gambar 2.5 Proses Exchange Crossover
h. Elitisme
Karena seleksi dilakukan secara random, maka tidak ada jaminan bahwa
suatu individu bernilai fitness tertinggi akan selalu terpilih. Atau bahkan dapat
rusak (nilai fitnessnya menurun) karena proses pindah-silang dan proses mutasi.
Untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama
proses evolusi, maka perlu dibuat satu atau beberapa kopinya. Prosedur ini sering
dikenal sebagai elitisme (Suyanto, 2005).
2.2.3 Pencarian Lokal
Pencarian lokal merupakan metode optimasi klasik yang menghasilkan
solusi optimal lokal dengan mengeksplorasi lingkungan dari solusi awal yang
diberikan. Penggunaan teknik pencarian lokal telah terbukti berguna dalam
memecahkan masalah kombinatorial. Untuk teknik pencarian lokal, Hill Climbing
yang disarankan oleh Michalewicz (1994) digunakan dalam penelitian ini. Hill
Climbing (HC) merupakan algoritma pencarian untuk solusi yang lebih baik di
menemukan solusi yang lebih baik, perubahan solusi saat ini dengan solusi baru.
Jika solusi baru tidak lebih baik dari solusi saat ini maka algoritma berhenti dan
menyimpan solusi optimal lokal saat ini. Metode ini dapat menjamin sifat yang
diinginkan dari teknik pencarian lokal untuk hibridisasi dengan GA (Yun, 2006).
Prosedur HC adalah sebagai berikut:
Procedure: Perulangan metode hill climbing
Begin
Pilih individu terbaik dari populasi sekarang menggunakan nilai fitness
Hasilkan individu secara acak sebanyak ukuran populasi dari lingkungan
Pilih individu dengan nilai fitness terbaik dari individu yang baru
2.2.4 Skema Pencarian Lokal Adaptif
Konsep dasar dari penerapan skema pencarian lokal adaptif ke dalam GA
adalah mempertimbangkan apakah GA konvergen ke solusi optimal global atau
optimal lokal. Ketika GA konvergen ke solusi optimal global, solusi yang
dihasilkan terus meningkat. Namun, ketika GA konvergen ke solusi optimal lokal,
kinerja GA terus memburuk (Yun, et al., 2009). Dalam situasi ini GA terjebak
dalam kondisi optimum lokal, dimana sulit bagi GA menghindari konvergensi
dini untuk solusi optimal lokal. Istilah konvergensi dini berarti bahwa populasi
awal. Dalam hal ini, keturunan yang dihasilkan dari orang tua menggunakan
bantuan operator genetik tidak lebih unggul dibandingkan orang tua mereka.
Kelemahan tersebut dapat ditingkatkan dengan teknik pencarian lokal yang dapat
mencari di sekitar area konvergensi di perulangan GA dan memasukkan individu
baru dengan nilai fitness yang lebih tinggi kedalam perulangan GA (Yun, 2006;
Yun et al, 2009).
Berdasarkan konsep tersebut di atas, skema pencarian lokal adaptif
diusulkan dalam penelitian ini. Skema pencarian lokal adaptif yang diusulkan
adalah dengan menggunakan similarity coefficient method (SCM). Untuk
informasi tentang SCM yang digunakan dalam skema pencarian lokal adaptif,
penulis merujuk pada penelitian yang dilakukan oleh Rafsanjani, et al., 2015.
SCM menggunakan kesamaan koefisien untuk mengukur kesamaan dua individu.
Dalam penelitian ini metode kesamaan koefisien yang digunakan adalah cosine
similarity, sebagai metode cosinus tepat untuk mengukur kesamaan yang ada antar
individu berbasis prioritas dalam populasi GA untuk traveling salesman problem
karena urutan traveling tidak berubah dengan skala individu.
Cosine similarity merupakan ukuran kesamaan antara dua vektor dari hasil
kali yang mengukur cosinus dari sudut yang dihasilkan. Untuk menghitung
Cosine similarity antara dua individu dan
dari populasi, di hitung menggunakan persamaan 2.4.
= vektor dot produk dari l dan m, dihitung dengan
= panjang dari vector l, dihitung dengan
= panjang dari vector m, dihitung dengan
Untuk menghitung rata-rata cosine similarity untuk semua individu dari
populasi GA, dihitung menggunakan persamaan 5 (Rafsanjani, et al., 2015).
dimana,
P = Populasi dari GA
|P| = Ukuran opulasi
Penggunaan teknik pencarian lokal ke GA diatur oleh kondisi berikut ini:
2.2.5 Algoritma Genetika Hibrida
Dalam algoritma genetika hibrida (HGA) penulis menggabungkan algoritma
genetika dengan pencarian lokal menggunakan skema pencarian lokal adaptif
perulangan GA. Skema pencarian lokal adaptif yang digunkan adalah metode
kesamaan koefisien. Ketika GA terus konvergen maka kesamaan antara individu
dalam populasi menjadi lebih tinggi. Menyebabkan nilai fitness antara individu
menjadi mirip satu sama lain dan keragaman dari populasi berkurang, yang
pastinya kinerja GA akan memburuk.
Oleh karena itu, alternatif yang dapat digunakan untuk meningkatkan
kinerja GA adalah menambahkan individu baru ke dalam populasi GA dengan
menggunakan metode pencarian lokal hill climbing. Individu-individu baru tidak
harus memiliki kesamaan yang sama dengan populasi saat ini dan juga menjaga
nilai fitness tinggi tertentu yang mirip dengan kesamaan populasi.
Individu-individu yang dihasilkan dari metode pencarian lokal dapat mencari di sekitar area
konvergensi menggunakan perulangan GA. Untuk prosedur dari HGA dalam
menyelesaikan TSP adalah sebagai berikut:
Algoritma: HGA untuk Traveling Salesman Problem
Input: Data kota-kota TSP
Output: Rute perjalanan terbaik
Begin
Step1: Algoritma Genetika
Step1.1: Representasi
Pengkodean masalah menggunakan path representasi
Step1.2: Inisialisasi populasi
Menghasilkan populasi secara acak sebanyak jumlah populasi
Step1.3: Evaluasi
Evaluasi populasi sekarang dengan fungsi fitness kemudian salin individu terbaik menggunakan elitism
Step1.4: Operator genetika
Step1.4.1: Seleksi
Menghasilkan dua orangtua menggunakan seleksi turnamen
Pindah silang dua orangtua yang dipilih menggunakan order crossover
Step1.4.3: Mutasi
Tukar gen anak yang dihasilkan menggunakan mutasi exchange
Step1.5: Kondisi berhenti
Kondisi berhenti telah ditetapkan menggunakan jumlah generasi. Jika jumlah generasi terpenuhi maka proses perulangan akan berhenti
Step2: Pencarian lokal
Terapkan teknik pencarian lokal jika kondisi pada skema pencarian lokal adaptif telah terpenuhi. Lanjutkan ke Step 1.3
End
2.2.6 Android
Dalam pembahasan ini dirujuk dari website resmi Developer Android
(2015). Android menyediakan framework aplikasi yang memungkinkan untuk
membangun aplikasi dan game yang inovatif untuk perangkat mobile dalam
bahasa pemrograman Java. Android telah terintegrasi dengan Google API yang
memungkinkan developer untuk membangun aplikasi menggunakan berbagai API
Android yang disediakan oleh Google diantaranya Google Maps API Android V2.
a. Google Maps API Android V2
Google Maps Android API merupakan layanan dari Google yang berfungsi
untuk mengintegrasikan peta pada aplikasi yang dibangun berdasarkan pada
Google Maps data. API secara otomatis menangani akses ke Google Maps server
seperti data download, dan tampilan peta. Fungsi lain dari API yaitu dapat
pandangan user dari peta ke area tertentu. API memberikan informasi tambahan
untuk lokasi pada peta, dan memungkinkan untuk menambahkan grafis pada peta:
- Menambahkan ikon untuk menentukan posisi tertentu pada peta (Markers).
- Menambahkan segmen garis (Polyline).
- Menambahkan segmen tertutup (Poligon).
- Menambahkan grafik bitmap ke posisi tertentu di peta (Ground Overlays).
- Menambahkan gambar yang ditampilkan diatas peta (Tile Overlays).
Google Maps Android API tidak terdapat dalam platform Android, tetapi
tersedia pada perangkat dengan Google Play Store yang berjalan pada Android 2.2
atau lebih tinggi, melalui Google Play Services.
b. Integrasi Google Maps Android
Untuk mengintegrasikan Google Maps ke dalam aplikasi, perlu menginstal
Google Play services libraries pada framework ADT. Kemudian untuk
mendapatkan akses Google Maps API, diperlukan Android API key dan
menambahkan kedalam aplikasi yang dibangun. Untuk mendapatkan API key
harus dihasilkan dengan menggunakan SHA1 fingerprint dari komputer
developer, berikut perintah yang harus dijalankan:
keytool -list -v -keystore
"%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey
Daftarkan SHA1 fingerprint di Google APIs Console untuk mendapatkan
API key dan dapat mengakses Google Maps Android V2. Dalam
AndroidManifest.xml, tambahkan API key seperti baris kode berikut:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="API_KEY"/>
Menentukan izin kebutuhan aplikasi, dengan menambahkan
<uses-permission> elemen sebagai sub dari <manifest> elemen dalam
AndroidManifest.xml. Tambahkan izin berikut untuk menggunakan Google Maps
Android API:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Setelah beberapa pengaturan, tampilan peta pada Aplikasi Android
Gambar 2.6 Tampilan Awal Peta
c. Markers
Markers mengidentifikasi lokasi pada peta. Markers default menggunakan
ikon standar yang umum untuk Google Maps. Dengan API dapat untuk mengubah
warna, gambar atau anchor point ikon. Markers adalah objek dari jenis Marker,
dan ditambahkan ke peta dengan metode GoogleMap.addMarker
Gambar 2.7 Contoh Penggunaan Markers
Pada aplikasi yang dibangun marker digunakan untuk penanda lokasi awal
sebagai kota keberangkatan dan kota-kota tujuan dari salesman. Markers menjadi
sebuah penanda perjalanan akan dimulai dari mana dan berakhir ke kota awal
perjalanan dimulai.
d. Polyline
Polyline mendefinisikan satu set segmen garis yang terhubung pada peta.
Sebuah objek Polyline terdiri dari satu set lokasi LatLng, dan menciptakan
serangkaian segmen garis yang menghubungkan lokasi-lokasi dalam urutan.
Untuk membuat Polyline, pertama buat objek dengan PolylineOptions dan
menambah titik dari LatLng. Segmen garis yang ditarik dari titik-titik sesuai
dengan urutan yang sesuai ke objek PolylineOptions. Untuk menambah titik ke
objek PolylineOptions, panggilan PolylineOptions.add(). Contoh penggunaan
polyline dengan garis berwarna merah dan ditandai dengan marker sebagai titik
28
BAB III
METODE PENELITIAN
3.1
Studi Pustaka
Studi pustaka yang dilakukan dalam penelitian ini dengan cara membaca
literatur yang berkaitan dengan algoritma genetika, skema pencarian lokal adaptif,
hill climbing dan traveling salesman problem dari jurnal, paper dan buku yang
berkaitan. Langkah-langkah penelitian secara keseluruhan dalam penelitian ini
disajikan pada gambar 3.1.
3.2
Analisis Permasalahan
Analisis masalah merupakan tahapan setelah melakukan studi pustaka.
Analisis Permasalahan dilakukan untuk mengetahui sistem yang sudah ada
sebelumnya dalam penyelesaian traveling salesman problem. Algoritma genetika
telah banyak diteliti untuk menyelesaikan traveling salesman problem, disini
penulis menerapkan skema pencarian lokal adaptif untuk hibridisasi algoritma
genetika yang diimplementasikan pada android. Di Indonesia belum ada peneliti
yang menerapkan algoritma genetika dengan skema pencarian lokal adaptif untuk
Mulai
3.3 Mapping HGA dengan skema pencarian lokal adaptif pada TSP
Ada 2 program yang dikembangkan dalam skripsi ini. Salah satu program
adalah algoritma genetika sederhana untuk penyelesaian TSP dan satu program
adalah algoritma genetika hibrida dengan skema pencarian lokal adaptif untuk
penyelesaian TSP. Kedua program tersebut diterapkan pada sistem Android
menggunakan software ADT-Bundle dengan Bahasa pemrograman Java.
3.3.1 Algoritma Genetika untuk menyelesaikan TSP
Algoritma genetika telah dijelaskan pada bagian teori, proses operasi
algoritma genetika diulangi dalam perulangan generasi. Langkah pertama dalam
GA yaitu merepresentasikan masalah kedalam kromosom / rute dan
membangkitkan populasi secara acak, sehingga terdapat banyak rute dengan
panjang yang berbeda. Sebuah rute akan disilangkan dengan rute yang lain dan
dilakukan proses mutasi. Setelah proses mutasi selesai didapatkan rute terbaik
yang disimpulkan sebagai penyelesaian TSP. Tabel merupakan sampel TSP
dengan 5 kota tujuan.
Tabel 3.1 Sampel 5 Kota
Kota Latitude Longitude
Kendal -6.920633 110.20483
Semarang -6.990155 110.422515
Batang -6.906720 109.732468
Banjarnegera -7.399196 109.688866
Untuk menghitung jarak antar dua kota digunakan fungsi Eucidean pada
Persamaan 1, sehingga jarak antar kota ditunjukkan pada tabel 3.2.
Tabel 3.2 Jarak Antar Kota
Jarak Kendal Semarang Batang Banjarnegera Purwokerto
Kendal 0 0.228 0.472 0.703 1.087
Semarang 0.228 0 0.695 0.839 1.258
Batang 0.472 0.695 0 0.494 0.715
Banjarnegera 0.703 0.839 0.494 0 0.447
Purwokerto 1.087 1.258 0.715 0.447 0
Pembentukan populasi awal
Pembentukan populasi awal dibentuk secara acak dari kromosom sebanyak
jumlah populasi, pada penyelesaian yang dihasilkan oleh algoritma genetika pada
generasi pertama didapat dari penjumlahan jarak semua kota yang dikunjungi oleh
salesman menggunakan persamaan 2.2. Pembentukan populasi awal dengan 4
populasi, ditunjukkan pada Tabel 3.3.
Tabel 3.3 Populasi Awal
Kromosome Representasi Path
Evaluasi
Proses evaluasi dilakukan dengan fungsi fitness, kromosom dengan nilai
fitness tertinggi merupakan kromosom terbaik. Dalam permasalahan TSP fungsi
fitness tidak dapat didefinisikan secara langsung dari fungsi objektif karena TSP
merupakan masalah pencarian nilai minimum. Oleh karena itu fungsi fitness
merupakan kebalikan (inverse) dari fungsi objektif, sehingga,
Semakin kecil fungsi objektif maka semakin besar fungsi fitness, dalam
permasalahan TSP untuk meminimalkan jarak maka perlu memaksimalkan fungsi
fitnessnya. Hasil pemetaan fungsi objektif ke fungsi fitness dari populasi awal
terlihat pada Tabel 3.4.
Tabel 3.4 Inverse fungsi objektif ke fungsi fitness
Kromosom
Pada tahap ini kromosom terbaik disimpan untuk menghindari kromosom
terbaik yang hilang selama proses crossover dan mutasi. Dari populasi awal
merupakan kromosom terbaik dengan nilai fitness terbesar. Selanjutnya ada 3
kromosom yang akan dihasilkan melalui proses crossover dan mutasi.
Seleksi
Proses seleksi memilih dua orang tua dari populasi menggunakan seleksi
turnamen. Dalam seleksi turnamen memilih kromosom dalam populasi secara
acak sebanyak ukuran turnamen, kemudian dari kromosom tersebut dipilih satu
yang terbaik. Ukuran turnamen adalah 3, kromosom acak dari populasi adalah
kemudian pilih yang terbaik dari kromosom acak menggunakan metode
evaluasi. Jadi kromosom merupakan yang terbaik dan dijadikan sebagai
parent1. Untuk mendapatkan parent2 dilakukan prosedur seleksi yang sama
seperti mendapatkan parent1.
Crossover
Hasil dari seleksi kemudian dipindah silang menggunakan order crossover.
Setelah operator penyilangan, kromosom-kromosom hasil penyilangan akan
Tabel 3.5 Populasi Baru
Kromosom Representasi Path
Semarang Kendal Banjarnegera Purwokerto Batang 2.790
Semarang Kendal Banjarnegera Purwokerto Batang 2.790
Purwokerto Semarang Batang Kendal Banjarnegera 3.577
Semarang Banjarnegera Batang Purwokerto Kendal 3.366
3.3.2 Algoritma Genetika Hibrida Dengan Skema Pencarian Lokal Adaptif
untuk menyelesaikan TSP
Dalam HGA terdapat penambahan teknik pencarian lokal kedalam algoritma
genetika yang dikontrol dengan skema pencarian lokal. Untuk menentukan teknik
pencarian lokal digunakan didalam GA atau tidak diperlukan perhitungan
kesamaan antara individu didalam populasi menggunakan Persamaan 2.5. Sebagai
contoh menghitung kesamaan kromosom dan kromosom .
= Semarang Kendal Banjarnegera Purwokerto Batang
= Purwokerto Semarang Batang Kendal Banjarnegera
Koordinat kromosom dan adalah sebagai berikut,
= {(-6.990155, 110.422515) (-6.920633, 110.20483)
(-7.399196, 109.688866) (-7.427879, 109.242443)
(-6.906720, 109.732468)}
= {(-7.427879, 109.242443) (-6.990155, 110.422515)
(-7.399196, 109.688866)}
Dalam menghitung kesamaan antar individu dapat dihitung dengan persamaan
2.4. Untuk vektor,
dan
Maka,
Sehingga perhitungan kesamaan cosine menjadi seperti berikut:
= 60597.74
Untuk menghitung kesamaan antar individu dalam suatu populasi dapat
dihitung dengan persamaan 2.5, hasil perhitungan adalah sebagai berikut.
Kondisi dimana teknik pencarian lokal digunakan didalam algoritma
genetika adalah , jadi sehingga kondisi
tersebut terpenuhi untuk menerapkan teknik pencarian lokal.
Langkah yang harus dikerjakan untuk teknik pencarian lokal menggunakan
metode hill climbing yang diusulkan oleh Michalewicz adalah memilih individu
terbaik dari populasi yang dihasilkan oleh GA.
= Semarang Kendal Banjarnegera Purwokerto Batang
Kemudian hasilkan individu secara acak sebanyak ukuran populasi dari
individu terbaik, dengan menggunakan operator genetika, proses yang dilakukan
sama seperti menghasilkan populasi baru pada algoritma genetika.
Kromosom Representasi Path
Batang Semarang Kendal Banjarnegera Purwokerto 2.790
Batang Semarang Kendal Banjarnegera Purwokerto 2.790
Banjarnegera Semarang Kendal Batang Purwokerto 2.703
Batang Semarang Kendal Banjarnegera Purwokerto 2.790
Pilih individu terbaik dari populasi yang baru dihasilkan menggunakan
fungsi fitness
= Banjarnegera Semarang Kendal Batang Purwokerto
Selanjutnya bandingkan fitness = 0.358 dengan fitness = 0.369,
sehingga fitness( ) < fitness( ), kemudian substitusikan individu terbaik dari
GA
= Semarang Kendal Banjarnegera Purwokerto Batang
dengan individu terbaik populasi yang baru
= Banjarnegera Semarang Kendal Batang Purwokerto
Berdasarkan perhitungan dari algoritma genetika hibrida dengan skema
pencarian lokal adaptif didapatkan jarak terbaik dengan panjang 2.703 dengan rute
perjalanan yaitu Banjarnegera → Semarang → Kendal → Batang → Purwokerto.
3.4 Tahap Pengembangan Sistem
Dibutuhkan perangkat keras dan perangkat lunak dengan spesifikasi tertentu
untuk menunjang dalam pembuatan sistem. Berikut spesifikasi minimum
perangkat keras dan perangkat lunak yang dibutuhkan untuk mengimplentasikan
racangan pengembangan sistem dalam penelitian ini.
a. Perangkat Keras
Minimum spesifikasi perangkat keras yang digunakan dalam implementasi
sistem adalah:
- Prosesor Dual Core+, Harddisk Space 25 GB, Ram 2 GB.
- Smartphone Single Core+, 512 GB RAM.
b. Perangkat Lunak
Perangkat lunak yang digunakan dalam implementasi sistem adalah sebagai
berikut:
- Windows 7/8/Vista (32/64-bit) sebagai sistem operasi laptop.
- Terinstal Java Developer Kit (JDK) 7.
- ADT Bundle sebagai software pemrograman java.
- Android 4.0 (IceCreamSandwich) sebagai sistem operasi smartphone.
Desain sistem meliputi alur proses sistem yang berupa flowchart sistem dan
desain interface yang meliputi desain antarmuka user dan desain antarmuka
admin.
a. Desain alur proses sistem
Dalam aplikasi ini, fungsi google maps adalah untuk mendapatkan dan
menampilkan marker dari lokasi geografi (latitude dan longitude) pada Maps
sebagai tempat tujuan dari salesman. Berikut rancangan alur sistem untuk
menampilkan marker:
Proses berjalannya sistem terdiri dari permintaan Markers sebagai penanda
lokasi tujuan salesman, kemudian proses penghitungan rute terbaik menggunakan
algoritma genetika hibrida dengan skema pencarian lokal adaptif. Berikut
rancangan perhitungan rute optima menggunakan algoritma yang dibangun:
Masukan Lokasi
b. Desain perencangan interface
Desain perancangan antarmuka meliputi desain tampilan dashboard admin,
desain tampilan user. Berikut desain interface sistem yang dikembangkan:
Dashboard Tambah
No Kota Latitude Longitude
Hybrid Optimization Select Direction Login About
Google Maps
Gambar 3.4 Tampilan Dashbord Admin
Select Finish
Semarang
Kendal
Batang
Banjarnegara
Purwokerto
Blora
Pati
Kudus
Hybrid Optimization Reset Result Evolusi
Petunjuk Arah Google Maps
Gambar 3.6 Tampilan Halaman Input Kota
3.5 Implementasi
3.5.1 Integrasi Google Maps
Untuk menampilkan peta diperlukan untuk menambahkan baris kode
berikut pada layout dan java file, baris kode untuk main_activity.xml sebagai
berikut:
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map"
tools:context=".MapsActivity"
android:name="com.google.android.gms.maps.SupportMapFragment"
/>
Baris kode untuk java file yang terdapat pada MainActivity.java adalah
sebagai berikut:
public class MapsActivity extends FragmentActivity { @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map); }
Pada aplikasi yang dikembangkan polyline digunakan untuk panduan
oleh salesman, kemudian dilakukan perhitungan menggunakan algoritma genetika
hibrida dengan skema pencarian lokal adaptif untuk pengoptimalan sebuah
perjalanan. Setelah perhitungan selesai, ditampilkan pada Google Maps dengan
nomor urutan Marker dengan garis merah sebagai penanda perjalanan. Baris kode
berikut digunakan untuk menampilkan polyline.
PolylineOptions rectOptions = new PolylineOptions() .add(new LatLng(37.35, -122.0))
.add(new LatLng(37.45, -122.0)) .add(new LatLng(37.45, -122.2))
.add(new LatLng(37.35, -122.0));
Polyline polyline = myMap.addPolyline(rectOptions);
3.5.2 Pengkodean
Sistem simulasi penyelesaian TSP menggunakan HGA dengan skema
pencarian lokal adaptif diimplementasikan dalam bahasa pemrograman java.
Berikut ini akan disajikan beberapa potongan source code yang berhubungan
dalam proses HGA untuk menyelesaikan TSP.
a. Fungsi Objektif TSP
public double distanceTo(City city){
int xDistance = Math.abs(getX() - city.getX());
int yDistance = Math.abs(getY() - city.getY());
double distance = Math.sqrt((xDistance*xDistance) +
(yDistance*yDistance));
return distance;
}
b. Operator genetika
Pada operator genetika terdapat tiga operator yang digunakan dalam
penelitian yaitu seleksi, crossover dan mutasi.
- Seleksi Turnamen
- Order Crossover
private static Tour tournamentSelection(Population pop) {
Population tournament = new Population(tournamentSize,
public static Tour crossover(Tour parent1, Tour parent2) {
Tour child = new Tour();
- Mutasi Swap
c. Algoritma Genetika
private static void mutate(Tour tour) {
for(int tourPos1=0; tourPos1<tour.tourSize(); tourPos1++){
if(Math.random() < mutationRate){
public static Population evolvePopulation(Population pop) {
Population newPopulation = new
for(int i=elitismOffset; i<newPopulation.populationSize();
i++){
for (int i=elitismOffset;i<newPopulation.populationSize();
i++){
Gambar 3.10 Source code order crossover
d. Algoritma Genetika Hibrida dengan Skema Pencarian Lokal Adaptif
Dalam algoritma genetika hibrida terdapat beberapa tambahan seperti
metode hill climbing dan penghitungan cosine similarity.
- Hill Climbing
public static Population hillClimbing(Population newPopulation) {
Population currentPop = newPopulation;
double neighborhoodFitness =
neighborhoodPop.getFittest().getFitness();
Gambar 3.12 Source code algoritma genetika
- Cosine Similarity
- Menghitung Cosine Similarity dalam suatu populasi
public static double Scosine(Population pop) {
double Scosinelm = 0;
public static double ScosineML(Tour M, Tour L) {
double MdotL = 0;
- Fungsi algoritma genetika hibrida
int bil2 = bil - 2;
BigDecimal kombinasi = faktorial.divide(bfaktorial);
for (int l = 0; l < pop.populationSize()-1; l++) {
protected void generateHGA() {
Population hga_pop = new Population(int_popsize, true);
hga_pop = hGA.evolvePopulation(hga_pop);
double hga_temp_distance = hga_pop.getFittest().getDistance();
for (int i = 0; i < int_gen; i++) {
hga_pop = hGA.evolvePopulation(hga_pop);
ScosineP = hGA.Scosine(hga_pop);
TourManager.scosine.add(String.valueOf(ScosineP));
// Not convergen
if (ScosineP < alpha) {
hga_temp_distance = hga_pop.getFittest().getDistance(); }
// Convergen
else if (ScosineP >= alpha) {
hga_pop = hGA.hillClimbing(hga_pop);
hga_temp_distance = hga_pop.getFittest().getDistance(); }
hga_distance = String.valueOf(hga_temp_distance);
} }
Gambar 3.15 Source code cosine similarity dalam populasi
3.6
Pengujian
Untuk menguji efektifitas algoritma genetika hibrida (HGA) dengan skema
pencarian lokal adaptif dibandingkan dengan algoritma genetika (GA) tanpa
pencarian lokal dalam menemukan panjang rute terpendek permasalahan traveling
salesman. Langkah-langkah dari strategi pengujian adalah sebagai berikut:
a. Data Pengujian
Sampel data untuk TSP dari kabupaten/kota di Jawa Tengah, Indonesia.
Data berupa lokasi geografis didapatkan dari https://maps.google.co.id. Berikut
daftar kabupaten/kota di Jawa Tengah.
Tabel 3.7 Daftar Kabupaten/Kota di Jawa Tengah
No. City Latitude Longitude
1 Semarang -6.990155 110.422515
2 Kendal -6.920633 110.20483
3 Batang -6.906720 109.732468
4 Banjarnegera -7.399196 109.688866
5 Purwokerto -7.427879 109.242443
6 Blora -6.970731 111.421695
7 Boyolali -7.538509 110.611589
8 Brebes -6.875365 109.053143
9 Cilacap -7.727205 109.009361
10 Demak -6.894602 110.638154
11 Purwodadi -7.083219 110.913327
12 Jepara -6.590626 110.667318
13 Karanganyar -7.597301 110.950577
15 Klaten -7.705463 110.600388
16 Kudus -6.808916 110.842946
17 Magelang -7.476794 110.218917
18 Pati -6.753899 111.042784
19 Kajen -7.027724 109.590379
20 Pemalang -6.879946 109.380047
21 Purbalingga -7.389535 109.363185
22 Purworejo -7.713033 110.009351
23 Rembang -6.705611 111.348445
24 Ungaran -7.127487 110.403562
25 Sragen -7.427645 111.023387
26 Sukoharjo -7.683752 110.846919
27 Slawi -6.974607 109.139532
28 Temanggung -7.316753 110.178341
29 Wonogiri -7.813768 110.926073
30 Wonosobo -7.358785 109.902953
31 Kota Salatiga -7.320499 110.498854
32 Kota Surakarta -7.581987 110.826337
33 Kota Tegal -6.867419 109.137794
34 Kota Pekalongan -6.890554 109.676231
35 Mungkid -7.561907 110.256464
Dalam pengujian ini 5 sampel TSP diambil dengan jumlah kota yang berbeda,
meliputi:
- Case1 dengan jumlah kota 7 meliputi Semarang, Kendal, Batang,
- Case2 dengan jumlah kota 14 meliputi Semarang, Kendal, Batang,
Banjarnegera, Purwokerto, Blora, Boyolali, Brebes, Cilacap, Demak,
Purwodadi, Jepara, Karanganyar, Kebumen.
- Case3 dengan jumlah kota 20 meliputi Semarang, Kendal, Batang,
Banjarnegera, Purwokerto, Blora, Boyolali, Brebes, Cilacap, Demak,
Purwodadi, Jepara, Karanganyar, Kebumen, Klaten, Kudus, Magelang, Pati,
Kajen, Pemalang.
- Case4 dengan jumlah kota 25 meliputi Semarang, Kendal, Batang,
Banjarnegera, Purwokerto, Blora, Boyolali, Brebes, Cilacap, Demak,
Purwodadi, Jepara, Karanganyar, Kebumen, Klaten, Kudus, Magelang, Pati,
Kajen, Pemalang, Purbalingga, Purworejo, Rembang, Ungaran, Sragen.
- Case5 dengan jumlah kota 35 meliputi Semarang, Kendal, Batang,
Banjarnegera, Purwokerto, Blora, Boyolali, Brebes, Cilacap, Demak,
Purwodadi, Jepara, Karanganyar, Kebumen, Klaten, Kudus, Magelang, Pati,
Kajen, Pemalang, Purbalingga, Purworejo, Rembang, Ungaran, Sragen,
Sukoharjo, Slawi, Temanggung, Wonogiri, Wonosobo, Kota Salatiga, Kota
Surakarta, Kota Tegal, Kota Pekalongan, Mungkid.
b. Parameter Algoritma
Parameter yang digunakan untuk algoritma genetika hibrida dengan skema
pencarian lokal dan algoritma genetika tanpa pencarian lokal berada dalam
kondisi yang sama yaitu probabilitas mutasi 0.05, ukuran turnamen 3 dan nilai
TSP dilakukan uji 10 kali, dengan jumlah populasi 7, 14, 20, 25, 35 dan jumlah
generasi 70, 140, 200, 250, 350 pada masing-masing sample TSP.
c. Perbandingan hasil optimasi
Dari 10 percobaan yang dilakukan didapatkan hasil yang berupa jarak
terbaik, jarak rata-rata dan jarak terburuk. Hasil percobaan yang dihasilkan oleh
algoritma genetika hibrida dan algoritma genetika tanpa pencarian lokal dari 5