PENERAPAN ALGORITMA GENETIKA HIBRIDA DENGAN SKEMA PENCARIAN LOKAL ADAPTIF UNTUK PENYELESAIAN TRAVELING SALESMAN PROBLEM PADA ANDROID

(1)

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

2015


(2)

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.


(3)

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.


(4)

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


(5)

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.


(6)

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 memaparkan gagasan dalam bentuk skripsi ini.


(7)

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


(8)

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.

Hasil pengujian diperoleh bahwa solusi rata-rata HGA menunjukkan dalam 5 pengujian dari 5 sampel (100%) lebih baik dari GA. Waktu komputasi yang dibutuhkan oleh HGA terhitung paling lama dari 5 sampel pengujian TSP. Hasil penelitian menunjukkan bahwa algoritma genetika hibrida dengan skema pencarian lokal lebih efektif dibandingkan algoritma genetika tanpa pencarian lokal dalam menemukan rute perjalanan dengan jarak yang optimal terutama dalam kasus dengan masalah yang kompleks. Akan tetapi beban komputasi algoritma genetika hibrida lebih lama dalam menemukan jarak yang optimal.


(9)

ix

Halaman

HALAMAN JUDUL ... i

PERNYATAAN KEASLIAN TULISAN ... ii

PERSETUJUAN PEMBIMBING ... iii

PENGESAHAN ... iv

MOTTO DAN PERSEMBAHAN ... v

KATA PENGANTAR ... vi

ABSTRAK ... viii

DAFTAR ISI ... ix

DAFTAR TABEL ... xii

DAFTAR GAMBAR ... xiii

DAFTAR LAMPIRAN ... xvi

BAB IPENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 3

1.3 Batasan Masalah... 4

1.4 Tujuan Penelitian ... 5


(10)

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


(11)

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


(12)

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


(13)

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


(14)

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


(15)

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


(16)

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


(17)

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 mengevaluasi satu tur pernanodetik (atau satu miliar tur per detik), maka


(18)

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 kedalam perulangan GA. HGA dengan skema pencarian lokal adaptif telah


(19)

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 menemukan solusi optimal untuk masalah TSP. Kelemahan tersebut dapat


(20)

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


(21)

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


(22)

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 lampiran kelengkapan data.


(23)

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 multistage-based supply chain. Hasil dari penelitian ini menunjukkan bahwa


(24)

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 traveling salesman problem yang berjalan pada sistem operasi Android.


(25)

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 dari pengertian TSP adalah sebagai berikut:


(26)

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 semua jarak antar setiap kota dan penggantinya diminimalkan. Untuk menghitung


(27)

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 untuk menyelesaikan suatu masalah optimasi ditunjukkan Gambar 2.2.


(28)

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: 19). Berikut prosedur kerja algoritma genetika sederhana.


(29)

Procedure: Algoritma Genetika

Input: Permasalahan optimasi, parameter GA Output: Solusi terbaik

Begin

Step1: Algoritma Genetika Step2: Representasi

Pengkodean masalah kedalam kromosom Step3: Inisialisasi Populasi

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 sebagai daftar n kota (Larranaga, et al., 1999).


(30)

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


(31)

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 setiap grup. Adanya pembagaian populasi menjadi grup-grup dengan anggota


(32)

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 titik silang dari kromosom induk. Kemudian gen-gen pada kromosom induk


(33)

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 mutasi dilakukan dengan menukar dua kromosom dalam kumpulan data


(34)

(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 lingkungan. Gerakan pencarian HC dicari berdasarkan nilai heuristik terbaik. Jika


(35)

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 dihasilkan

If fitness( ) < fitness( ) then ElseIf fitness( ) ≥ fitness( ) then

end End

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 untuk masalah optimasi berkumpul terlalu dini, sehingga menjadi optimal terlalu


(36)

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.


(37)

= 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 yang dirancang untuk mengontrol penggunaan teknik pencarian lokal di


(38)

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


(39)

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 menambahkan markers, poligon dan overlay untuk peta dasar, dan mengubah


(40)

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


(41)

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 ditunjukkan pada Gambar 2.6.


(42)

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 (markerOptions). Contoh penggunaan Markers ditunjukkan pada Gambar 2.7.


(43)

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 penghubung, ditunjukkan pada Gambar 2.8.


(44)

(45)

(46)

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 menyelesaikan traveling salesman problem pada android.


(47)

Mulai

Studi Pustaka

Perhitungan Algoritma Genetika Hibrida dengan Skema Pencarian

Lokal Adaptif

Pengembangan Sistem: - Analisis Software dan Hardware - Desain Sistem

Implementasi

Hasil yang didapatkan optimum?

Pembuatan Laporan

Selesai Ya

Tidak Analisis Permasalahan

Pengujian


(48)

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 Purwokerto -7.427879 109.242443


(49)

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

Kendal Purwokerto Banjarnegera Semarang Batang Batang Semarang Purwokerto Banjarnegera Kendal Banjarnegera Kendal Purwokerto Semarang Batang Batang Semarang Kendal Banjarnegera Purwokerto


(50)

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

3.542 0.282 3.577 0.279 4.239 0.235 2.790 0.358

Elitism

Pada tahap ini kromosom terbaik disimpan untuk menghindari kromosom terbaik yang hilang selama proses crossover dan mutasi. Dari populasi awal


(51)

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 dilakukan proses mutasi.

Mutasi

Gen akan terkena mutasi jika bilangan random r yang dibangkitkan untuk gen yang bersangkutan kurang dari probabilitas mutasi (Pm). Untuk selanjutnya gen/kota yang terpilih akan ditukar letaknya dengan gen/kota lain secara acak yang terdapat pada kromosom yang sama. Hasil proses mutasi terdapat dalam Tabel 3.5.


(52)

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) (-6.906720, 109.732468) (-6.920633, 110.20483)


(53)

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


(54)

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.


(55)

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 3.4.1 Analisis Hardware dan Software


(56)

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.


(57)

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:

Mulai

Database kota (latitude, longitude)

Masukkan kota

Google Server

Markers ditemukan? Interface sistem

Menampilkan pada Maps

Selesai


(58)

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

(markers pada google maps android)

Menghitung Jarak (Fungsi Euclidean)

Menghasilkan populasi awal

Evaluasi (Fungsi Fitness)

Kondisi Berhenti

Scosine ≥ α

Methode Hill Climbing

Seleksi Crossover

Mutasi Elitism

Rute Terbaik Ditampilkan pada Google Maps Android

Ya

Tidak

Ya

Tidak


(59)

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


(60)

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


(61)

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 perjalanan, dimulai dari marker sebagai penanda kota awal dan kota-kota tujuan


(62)

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;

}


(63)

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,

false);

for (int i = 0; i < tournamentSize; i++) {

int randomId = (int) (Math.random() *

pop.populationSize());

tournament.saveTour(i, pop.getTour(randomId)); }

Tour fittest = tournament.getFittest();

return fittest;

}

public static Tour crossover(Tour parent1, Tour parent2) {

Tour child = new Tour();

int startPos = (int)(Math.random()*parent1.tourSize());

int endPos = (int)(Math.random() * parent1.tourSize());

for (int i = 0; i < child.tourSize(); i++) {

if (startPos < endPos && i > startPos && i < endPos) { child.setCity(i, parent1.getCity(i));

}

else if (startPos > endPos) {

if (!(i < startPos && i > endPos)) {

child.setCity(i, parent1.getCity(i)); }

} }

for (int i = 0; i < parent2.tourSize(); i++) {

if (!child.containsCity(parent2.getCity(i))) {

for (int ii = 0; ii < child.tourSize(); ii++) {

if (child.getCity(ii) == null) {

child.setCity(ii, parent2.getCity(i)); break; } } } }

return child;

}


(64)

- Mutasi Swap

c. Algoritma Genetika

private static void mutate(Tour tour) {

for(int tourPos1=0; tourPos1<tour.tourSize(); tourPos1++){

if(Math.random() < mutationRate){

int tourPos2 = (int) (tour.tourSize() * Math.random());

City city1 = tour.getCity(tourPos1);

City city2 = tour.getCity(tourPos2);

// Swap them around

tour.setCity(tourPos2, city1); tour.setCity(tourPos1, city2); }

} }

public class GA {

private static final double mutationRate = 0.05;

private static final int tournamentSize = 3;

private static final boolean elitism = true;

public static Population evolvePopulation(Population pop) {

Population newPopulation = new

Population(pop.populationSize(), false);

int elitismOffset = 0;

if (elitism) {

newPopulation.saveTour(0, pop.getFittest()); elitismOffset = 1;

}

for(int i=elitismOffset; i<newPopulation.populationSize();

i++){

Tour parent1 = tournamentSelection(pop);

Tour parent2 = tournamentSelection(pop);

Tour child = crossover(parent1, parent2);

newPopulation.saveTour(i, child); }

for (int i=elitismOffset;i<newPopulation.populationSize();

i++){

mutate(newPopulation.getTour(i));

}

return newPopulation;

} }

Gambar 3.10 Source code order crossover


(65)

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

currentPop.getFittest().getFitness();

Population neighborhoodPop = new

Population(currentPop.populationSize(), false);

int elitismOffset = 0;

if (elitism) {

neighborhoodPop.saveTour(0, currentPop.getFittest()); elitismOffset = 1;

}

for (int i = elitismOffset; i <

currentPop.populationSize(); i++) {

Tour parent1 = tournamentSelection(currentPop);

Tour parent2 = tournamentSelection(currentPop);

Tour child = crossover(parent1, parent2);

neighborhoodPop.saveTour(i, child); }

for (int i = elitismOffset; i <

currentPop.populationSize(); i++) {

mutate(neighborhoodPop.getTour(i));

}

double neighborhoodFitness =

neighborhoodPop.getFittest().getFitness();

if (neighborhoodFitness > currentFitness) {

currentPop = neighborhoodPop;

} else if (neighborhoodFitness <= currentFitness) {

currentPop = currentPop; }

return currentPop;

}

Gambar 3.12 Source code algoritma genetika


(66)

(67)

- Cosine Similarity

- Menghitung Cosine Similarity dalam suatu populasi

public static double Scosine(Population pop) {

double Scosinelm = 0;

double jmlML = 0;

int bil = pop.populationSize();

BigDecimal faktorial = BigDecimal.valueOf(1);

BigDecimal bfaktorial = BigDecimal.valueOf(2);

if (bil > 0) {

for (int i = bil; i > 0; i--) {

faktorial =

faktorial.multiply(BigDecimal.valueOf(i));

} }

int bil2 = bil - 2;

public static double ScosineML(Tour M, Tour L) {

double MdotL = 0;

double jml_u = 0;

double lengthM = 0;

double jml_v = 0;

double lengthL = 0;

for (int i = 0; i < M.tourSize(); i++) {

double x1 = M.getCity(i).getX();

double y1 = M.getCity(i).getY();

double x2 = L.getCity(i).getX();

double y2 = L.getCity(i).getY();

MdotL += (x1*x2)+(y1*y2); // l.m

jml_v += (x1*x1)+(y1*y1); // (m^2)

jml_u += (x2*x2)+(y2*y2); // (l^2)

}

lengthM = Math.sqrt(jml_u); //|m|

lengthL = Math.sqrt(jml_v); //|l|

double ScosineML = MdotL/(lengthM*lengthL);

return ScosineML;

}


(68)

- Fungsi algoritma genetika hibrida

int bil2 = bil - 2;

if (bil2 > 0) {

for (int i = bil2; i > 0; i--) {

bfaktorial =

bfaktorial.multiply(BigDecimal.valueOf(i));

} }

BigDecimal kombinasi = faktorial.divide(bfaktorial);

for (int l = 0; l < pop.populationSize()-1; l++) {

for (int m = l+1; m < pop.populationSize(); m++ ){

Tour M = pop.getTour(m); Tour L = pop.getTour(l);

double temp = ScosineML(M, L);

jmlML += temp; }

}

Scosinelm = jmlML/kombinasi.doubleValue();

return Scosinelm;

}

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


(69)

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


(70)

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, Banjarnegera, Purwokerto, Blora, Boyolali.


(71)

- 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 batas untuk skema pencarian lokal adaptif adalah 0.99997. Untuk setiap sampel


(72)

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 sample TSP dibandingkan satu sama lain.


(73)

(74)

54

BAB IV

HASIL DAN PEMBAHASAN

4.1

Hasil Penelitian

4.1.1 Hasil Sistem TSP pada Android

Setelah aplikasi Algoritma Genetika Hibrida dengan skema pencarian lokal adaptif dalam penyelesaian Travelling Salesman Problem pada Android selesai dibangun, maka tahap selanjutnya adalah tahap uji coba program. Tahap ini pengujian dilakukan dengan menjalankan program Travelling Salesman Problem yang sebagai inputan adalah data sampel case1, case2, case3, case4 dan case5, dengan parameter yang telah ditentukan. Dalam aplikasi yang telah dibuat, terdapat tampilan menu utama sebagai tampilan awal aplikasi.


(75)

Pada tampilan aplikasi pada Gambar 4.1 berfungsi untuk melakukan proses pencarian rute menggunakan algoritma genetika hibrida dengan skema pencarian lokal adaptif dengan beberapa tombol yang fungsinya antara lain:

- Tombol Select berfungsi untuk memasukkan data TSP berupa kabupaten/kota di Jawa Tengah.

Gambar 4.2 Tampilan Halaman Select Kota

Setelah kabupaten/kota selesai dipilih, Google Maps menampilakan data yang dipilih pada Maps yang ditandai dengan Markers.


(76)

Gambar 4.3 Tampilan Halaman Markers Kota

- Tombol Direction berfungsi untuk memilih Program A atau Program B yang digunakan untuk melakukan perhitungan TSP. Hasil perhitungan ditampilkan pada Gambar 4.4.


(77)

Setelah perhitungan selesai dilakukan oleh Algoritma, hasil berupa rute perjalanan ditampilakan kedalam Maps. Seperti pada Gambar 4.5 berikut.

Gambar 4.5 Tampilan Halaman Hasil Perhitungan

Perencanaan rute perjalanan dihasilkan dan ditampilkan, untuk melihat jarak dan waktu komputasi yang diperlukan dapat dilihat dengan tombol RESULT, untuk mengulang kembali sistem digunakan tombol RESET.

- Tombol Login berfungsi untuk masuk kedalam dashboard admin, yang dapat digunakan untuk melakukan penambahan atau mengubah data kabupaten/kota.


(78)

Gambar 4.6 Tampilan Dashboard Admin

- Tombol About berfungsi untuk menampilkan halaman informasi tentang aplikasi yang dikembangkan.

Gambar 4.7 Tampilan Halaman Tentang Aplikasi

4.1.2 Hasil Pengujian

Hasil pengujian aplikasi yang dibangun dengan menggunakan 5 data sample TSP dengan parameter yang telah ditentukan pada setiap sampel. Kemudian dilakukan proses perhitungan sebanyak 20 kali dan didapatkan jarak terbaik, jarak rata-rata dan jarak terburuk.


(1)

107 0.99998 ya 232 0.99998 ya

108 0.99998 ya 233 0.99998 ya

109 0.99998 ya 234 0.99998 ya

110 0.99998 ya 235 0.99998 ya

111 0.99998 ya 236 0.99998 ya

112 0.99998 ya 237 0.99998 ya

113 0.99998 ya 238 0.99998 ya

114 0.99998 ya 239 0.99998 ya

115 0.99998 ya 240 0.99998 ya

116 0.99998 ya 241 0.99998 ya

117 0.99998 ya 242 0.99998 ya

118 0.99998 ya 243 0.99998 ya

119 0.99998 ya 244 0.99998 ya

120 0.99998 ya 245 0.99998 ya

121 0.99998 ya 246 0.99998 ya

122 0.99998 ya 247 0.99998 ya

123 0.99998 ya 248 0.99998 ya

124 0.99998 ya 249 0.99998 ya

125 0.99998 ya 250 0.99998 ya

- Penggunaan Pencarian Lokal pada Case5

Generasi Scosine(P) Pencarian Lokal Generasi Scosine(P) Pencarian Lokal

1 0.99995 tidak 176 0.99998 ya

2 0.99994 tidak 177 0.99998 ya

3 0.99995 tidak 178 0.99998 ya

4 0.99995 tidak 179 0.99998 ya

5 0.99995 tidak 180 0.99998 ya

6 0.99996 tidak 181 0.99998 ya

7 0.99996 tidak 182 0.99997 ya

8 0.99996 tidak 183 0.99997 ya

9 0.99996 tidak 184 0.99998 ya

10 0.99996 tidak 185 0.99997 ya

11 0.99996 tidak 186 0.99997 ya

12 0.99996 tidak 187 0.99997 ya

13 0.99996 tidak 188 0.99998 ya

14 0.99996 tidak 189 0.99999 ya

15 0.99998 ya 190 0.99999 ya

16 0.99996 tidak 191 0.99998 ya

17 0.99996 tidak 192 0.99998 ya


(2)

19 0.99996 tidak 194 0.99998 ya

20 0.99996 tidak 195 0.99998 ya

21 0.99997 ya 196 0.99998 ya

22 0.99997 ya 197 0.99999 ya

23 0.99997 ya 198 0.99998 ya

24 0.99997 ya 199 0.99998 ya

25 0.99997 ya 200 0.99998 ya

26 0.99997 ya 201 0.99998 ya

27 0.99997 ya 202 0.99998 ya

28 0.99997 ya 203 0.99998 ya

29 0.99997 ya 204 0.99998 ya

30 0.99997 ya 205 0.99999 ya

31 0.99997 ya 206 0.99998 ya

32 0.99997 ya 207 0.99997 ya

33 0.99997 ya 208 0.99997 ya

34 0.99997 ya 209 0.99998 ya

35 0.99997 ya 210 0.99997 ya

36 0.99997 ya 211 0.99998 ya

37 0.99997 ya 212 0.99998 ya

38 0.99998 ya 213 0.99998 ya

39 0.99998 ya 214 0.99998 ya

40 0.99998 ya 215 0.99998 ya

41 0.99998 ya 216 0.99998 ya

42 0.99998 ya 217 0.99998 ya

43 0.99997 ya 218 0.99998 ya

44 0.99997 ya 219 0.99998 ya

45 0.99997 ya 220 0.99998 ya

46 0.99998 ya 221 0.99998 ya

47 0.99998 ya 222 0.99998 ya

48 0.99998 ya 223 0.99999 ya

49 0.99998 ya 224 0.99999 ya

50 0.99998 ya 225 0.99998 ya

51 0.99997 ya 226 0.99997 ya

52 0.99998 ya 227 0.99997 ya

53 0.99998 ya 228 0.99997 ya

54 0.99998 ya 229 0.99997 ya

55 0.99998 ya 230 0.99997 ya

56 0.99998 ya 231 0.99998 ya

57 0.99998 ya 232 0.99998 ya

58 0.99998 ya 233 0.99998 ya


(3)

60 0.99999 ya 235 0.99998 ya

61 0.99998 ya 236 0.99998 ya

62 0.99998 ya 237 0.99998 ya

63 0.99998 ya 238 0.99998 ya

64 0.99998 ya 239 0.99998 ya

65 0.99998 ya 240 0.99998 ya

66 0.99998 ya 241 0.99998 ya

67 0.99998 ya 242 0.99998 ya

68 0.99998 ya 243 0.99998 ya

69 0.99998 ya 244 0.99998 ya

70 0.99997 ya 245 0.99997 ya

71 0.99998 ya 246 0.99998 ya

72 0.99998 ya 247 0.99998 ya

73 0.99998 ya 248 0.99998 ya

74 0.99999 ya 249 0.99998 ya

75 0.99999 ya 250 0.99998 ya

76 0.99999 ya 251 0.99998 ya

77 0.99999 ya 252 0.99998 ya

78 0.99998 ya 253 0.99998 ya

79 0.99998 ya 254 0.99998 ya

80 0.99998 ya 255 0.99998 ya

81 0.99999 ya 256 0.99997 ya

82 0.99999 ya 257 0.99998 ya

83 0.99999 ya 258 0.99998 ya

84 0.99998 ya 259 0.99998 ya

85 0.99998 ya 260 0.99998 ya

86 0.99998 ya 261 0.99999 ya

87 0.99998 ya 262 0.99999 ya

88 0.99998 ya 263 0.99998 ya

89 0.99998 ya 264 0.99999 ya

90 0.99998 ya 265 0.99998 ya

91 0.99998 ya 266 0.99998 ya

92 0.99998 ya 267 0.99998 ya

93 0.99998 ya 268 0.99998 ya

94 0.99998 ya 269 0.99998 ya

95 0.99998 ya 270 0.99998 ya

96 0.99998 ya 271 0.99998 ya

97 0.99998 ya 272 0.99998 ya

98 0.99998 ya 273 0.99998 ya

99 0.99998 ya 274 0.99999 ya


(4)

101 0.99998 ya 276 0.99999 ya

102 0.99998 ya 277 0.99998 ya

103 0.99998 ya 278 0.99998 ya

104 0.99998 ya 279 0.99999 ya

105 0.99998 ya 280 0.99998 ya

106 0.99998 ya 281 0.99999 ya

107 0.99999 ya 282 0.99998 ya

108 0.99999 ya 283 0.99998 ya

109 0.99999 ya 284 0.99999 ya

110 0.99999 ya 285 0.99999 ya

111 0.99998 ya 286 0.99998 ya

112 0.99998 ya 287 0.99998 ya

113 0.99999 ya 288 0.99999 ya

114 0.99998 ya 289 0.99999 ya

115 0.99998 ya 290 0.99998 ya

116 0.99999 ya 291 0.99998 ya

117 0.99999 ya 292 0.99999 ya

118 0.99998 ya 293 0.99998 ya

119 0.99997 ya 294 0.99999 ya

120 0.99998 ya 295 0.99998 ya

121 0.99998 ya 296 0.99998 ya

122 0.99998 ya 297 0.99998 ya

123 0.99998 ya 298 0.99999 ya

124 0.99998 ya 299 0.99998 ya

125 0.99998 ya 300 0.99999 ya

126 0.99998 ya 301 0.99998 ya

127 0.99998 ya 302 0.99998 ya

128 0.99998 ya 303 0.99998 ya

129 0.99998 ya 304 0.99998 ya

130 0.99998 ya 305 0.99998 ya

131 0.99998 ya 306 0.99998 ya

132 0.99998 ya 307 0.99998 ya

133 0.99998 ya 308 0.99998 ya

134 0.99997 ya 309 0.99998 ya

135 0.99997 ya 310 0.99998 ya

136 0.99998 ya 311 0.99998 ya

137 0.99998 ya 312 0.99998 ya

138 0.99998 ya 313 0.99998 ya

139 0.99998 ya 314 0.99998 ya

140 0.99998 ya 315 0.99998 ya


(5)

142 0.99998 ya 317 0.99998 ya

143 0.99998 ya 318 0.99998 ya

144 0.99998 ya 319 0.99998 ya

145 0.99998 ya 320 0.99998 ya

146 0.99998 ya 321 0.99998 ya

147 0.99998 ya 322 0.99998 ya

148 0.99998 ya 323 0.99998 ya

149 0.99997 ya 324 0.99998 ya

150 0.99998 ya 325 0.99998 ya

151 0.99998 ya 326 0.99998 ya

152 0.99998 ya 327 0.99998 ya

153 0.99998 ya 328 0.99998 ya

154 0.99998 ya 329 0.99998 ya

155 0.99998 ya 330 0.99998 ya

156 0.99998 ya 331 0.99998 ya

157 0.99998 ya 332 0.99998 ya

158 0.99998 ya 333 0.99998 ya

159 0.99998 ya 334 0.99998 ya

160 0.99998 ya 335 0.99998 ya

161 0.99998 ya 336 0.99998 ya

162 0.99998 ya 337 0.99998 ya

163 0.99998 ya 338 0.99998 ya

164 0.99998 ya 339 0.99998 ya

165 0.99997 ya 340 0.99998 ya

166 0.99997 ya 341 0.99998 ya

167 0.99998 ya 342 0.99998 ya

168 0.99999 ya 343 0.99998 ya

169 0.99999 ya 344 0.99998 ya

170 0.99998 ya 345 0.99998 ya

171 0.99998 ya 346 0.99998 ya

172 0.99998 ya 347 0.99998 ya

173 0.99997 ya 348 0.99998 ya

174 0.99997 ya 349 0.99998 ya


(6)