NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME...

19
ALGORITMA GENET SALLESMAN PROB REKOMENDAS DI DAE Nam Nom Prog Jenja SEKOLAH TINGGI MANA NASKAH PUBLIKASI TIKA UNTUK MENYELESAIKAN TRAVEL BLEM WITH TIME WINDOWS (TSP-TW) PA SI RUTE PERJALANAN WISATA EVENT ERAH ISTIMEWA YOGYAKARTA Disusun Oleh ma : Parisaktiana Fathonah mor Mahasiswa : 12131276 gram Studi : Teknik Informatika ang : Strata 1 AJEMEN INFORMATIKA DAN ILMU KOM EL RAHMA YOGYAKARTA 2017 LLING ADA MPUTER

Transcript of NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME...

Page 1: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

ALGORITMA GENETIKA UNTUK MENYELESAIKAN

SALLESMAN PROBLEM WITH TIME WINDOWS

REKOMENDASI RUTE PERJALANAN WISATA EVENT

DI DAERAH ISTIMEWA YOGYAKARTA

Nama

Nomor Mahasiswa

Program Studi

Jenjang

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

NASKAH PUBLIKASI

ALGORITMA GENETIKA UNTUK MENYELESAIKAN TRAVELLING

SALLESMAN PROBLEM WITH TIME WINDOWS (TSP-TW) PADA

REKOMENDASI RUTE PERJALANAN WISATA EVENT

DI DAERAH ISTIMEWA YOGYAKARTA

Disusun Oleh

Nama : Parisaktiana Fathonah

Nomor Mahasiswa : 12131276

Program Studi : Teknik Informatika

Jenjang : Strata 1

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

EL RAHMA

YOGYAKARTA

2017

TRAVELLING

TW) PADA

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER

Page 2: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

HALAMAN PERSETUJUAN

Page 3: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

3

HALAMAN PENGESAHAN

Page 4: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

PERNYATAAN

Page 5: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

5

ALGORITMA GENETIKA UNTUK MENYELESAIKAN TRAVELLING SALLESMAN PROBLEM WITH TIME WINDOWS (TSP-TW) PADA REKOMENDASI RUTE PERJALANAN WISATA

EVENT DI DAERAH ISTIMEWA YOGYAKARTA

Parisaktiana Fathonah1, Minarwati2

1 Mahasiswa Program Studi Teknik Informatika STMIK El Rahma Yogyakarta, 2 Dosen Program Studi Teknik Informatika STMIK El Rahma Yogyakarta,

e-mail: [email protected], [email protected]

Abstract Event tour is a Travelling Sallesman Problem with Time Windows (TSP-TW). This research

aims to design and apply genetic algorithm model to give recommendation of travel route or event visit in Yogyakarta Special Region by considering opening time and closing time.

The proposed Genetic Algorithm can take both symmetrical and asymmetric distance. The recommendations are given not only consider the distance but also the travel time. The distance and travel time is obtained from Google Maps using the Google Maps API. Genetic algorithm encoding scheme using permutation encoding, parent selection using roulette-wheel selection method, crossover method used is cycle crossover, mutation method using swapmutation and can keep the best individual generated in certain generation not lost during evolution process.

The test results showed the best number of individuals for objects <8 is 30 individuals in one population and for objects ≥ 8 are 50 individuals in one population. Criteria cease if after 57 successive generations the highest unchanged fitness value. Keywords— Genetic Algorithm, Event Jogja, Traveling Salesman Problem, Cycle Crossover.

Abstrak Kunjungan event merupakan permasalahan Travelling Sallesman Problem with Time Windows

(TSP-TW). Penelitian ini bertujuan merancang dan menerapkan model algoritma genetika untuk

memberikan rekomendasi rute perjalanan atau kunjungan event di Daerah Istimewa Yogyakarta

dengan mempertimbangkab waktu buka dan waktu tutup.

Algoritma Genetika yang diusulkan dapat memperhitungkan jarak yang simetris maupun

asimetris. Rekomendasi yang diberikan tidak hanya mempertimbangkan jarak tetapi juga waktu

tempuh. Jarak dan waktu tempuh tersebut didapatkan dari Google Maps menggunakan Google Maps

API. Skema pengkodean algoritma genetika menggunakan permutation encoding, seleksi orang tua

menggunakan metode roulette-wheel selection, metode crossover yang digunakan adalah cycle crossover,

metode mutasi menggunakan swapmutation dan dapat menjaga agar individu terbaik yang dihasilkan

pada generasi tertentu tidak hilang selama proses evolusi.

Hasil pengujian menunjukan bahwa jumlah individu terbaik untuk objek < 8 adalah 30

individu dalam satu populasi dan untuk objek ≥ 8 adalah 50 individu dalam satu populasi. Kriteria

berhenti jika setelah 57 generasi berturut-turut didapatkan nilai fitness tertinggi yang tidak berubah.

Kata Kunci— Algoritma Genetika, Event Jogja, Travelling Salesman Problem, Cycle Crossover

Page 6: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

PENDAHULUAN Transportasi merupakan hal penting dalam aktivitas kehidupan manusia.

Seseorang selalu melakukan perjalanan untuk memenuhi keperluannya. Sebagai kota budaya, Daerah Istimewa Yogyakarta memiliki banyak event yang dilaksanakan pada satu hari yang sama. Hal ini menyebabkan seseorang harus menentukan event mana yang akan dikunjungi dengan mempertimbangkan jarak, waktu tempuh, waktu buka, dan waktu tutup.

Permasalahan tersebut merupakan kasus Travelling Sallesman Problem (TSP). TSP dapat didefinisikan sebagai suatu kondisi di mana tiap daerah harus dikunjungi tepat satu kali dan kembali lagi ke tempat semula dengan total biaya seminimal mungkin. TSP memiliki ruang masalah yang sangat besar jika diselesaikan dengan kombinatorial[1]. Salah satu bentuk pengembangan TSP yang mempertimbangkan total waktu perjalanan, waktu pengiriman, waktu pelayanan, dan waktu kedatangan adalah Travelling Salesman Problem with Time Windows (TSP-TW)[2].

Algoritma Genetika (AG) merupakan salah satu metode heuristik yang dapat diterapkan pada masalah optimasi TSP[3][4]. Proses pencarian didasarkan pada mekanisme seleksi alamiah dan genetika alamiah[5]. Algoritma genetika memungkinkan digunakan pada masalah optimasi dengan ruang pencarian (search space) yang sangat luas dan kompleks. Properti ini juga memungkinkan algoritma genetika untuk melompat keluar dari daerah optimum local[6]. Pendekatan yang diambil oleh algoritma genetik adalah dengan menggabungkan secara acak berbagai pilihan solusi di dalam suatu populasi untuk mendapatkan generasi terbaik, yaitu pada suatu kondisi dengan nilai fitness yang paling tinggi. Proses tersebut dilakukan secara berulang sehingga dapat mensimulasikan proses evolusi yang semakin baik. Pada akhir proses akan didapatkan solusi terbaik yang akan direpresentasikan sebagai kromosom.

Permasalahan TSP dapat dibagi menjadi dua, yaitu TSP-simetris dan TSP asimetris. Pada TSP-simetris, biaya perjalanan dari lokasi 1 ke lokasi 2 adalah sama dengan biaya perjalanan dari lokasi 2 ke lokasi 1. Sedangkan pada TSP-asimetris, biaya perjalanan dari lokai 1 ke lokasi 2 tidak sama dengan biaya perjalanan dari lokasi 2 ke lokasi 1. Pada kenyataannya, permasalahan perjalanan atau kunjungan bisa merupakan permasalahan TSP simestri ataupun TSP asimetris.

Pemilihan parameter akan sangat mempengaruhi keoptimalan algoritma genetika. Dalam kasus rekomendasi perjalanan, tujuannya tidak hanya meminimalkan jarak tetapi juga waktu tempuh serta waktu buka dan waktu tutup. Karena pada kenyataannya rute yang memiliki jarak jauh belum tentu memiliki waktu tempuh yang lama, sebaliknya rute yang memiliki jarak dekat belum tentu memiliki waktu tempuh yang pendek. Jarak dan waktu tempuh tersebut didapatkan dari Google Maps menggunakan Google Maps API. Google Maps API dapat memberikan jarak terbaik berdasarkan keadaan lalu lintas saat ini dan waktu perjalanan prediktif berdasarkan data waktu historis setiap harinya. Jarak dan waktu yang diberikan memperhatikan kepadatan lalu lintas, jalan satu arah dan dua arah, portal jalan, lampu lalu lintas, dan halangan sejenisnya. Sedangkan, waktu buka dan waktu tutup didapatkan dari situs event-jogja.com. Diharapkan solusi yang dihasilkan algoritma genetika lebih mendekati kondisi sebenarnya.

Algoritma genetika tidak menjamin bahwa individu terbaik akan selalu terpilih karena seleksi dilakukan secara acak. Kalaupun individu terbaik terpilih, mungkin saja individu tersebut akan rusak karena proses pindah silang dan mutasi. Oleh karena itu, perlu dirancang suatu skema pergantian populasi untuk menjaga individu terbaik yang dihasilkan pada generasi tertentu tidak hilang selama evolusi.

Page 7: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

7

METODE PENELITIAN Langkah-langkah yang dilakukan dalam penelitian ini dapat dilihat pada Gambar

1. Berdasarkan diagram alir metodologi penelitian pada Gambar 1 dapat dijelaskan menjadi beberapa tahapan sebagai berikut.

Gambar 1 Metodelogi penelitian

1. Pengumpulan data Data yang digunakan untuk penelitian adalah data lokasi-lokasi event di Provinsi

Daerah Istimewa Yogyakarta yang didapat dari situs event-jogja.com. Data tersebut didapatkan dari Google Maps menggunakan Google Maps API. Data yang diambil antara lain data jarak antarlokasi wisata event, data waktu tempuh antarlokasi event, data koordinat (lintang dan bujur) lokasi event, data alamat lokasi event, data rute antarlokasi event, serta data waktu buka dan waktu tutup event. Google Maps API memberikan jarak terbaik berdasarkan keadaan lalu lintas saat ini dan waktu perjalanan prediktif berdasarkan data waktu historis setiap harinya. Jarak dan waktu yang diberikan memperhatikan kepadatan lalu lintas, jalan satu arah dan dua arah, portal jalan, lampu lalu lintas, dan halangan sejenisnya[7].

Untuk memberikan gambaran tentang cara kerja algoritma genetika, diberikan contoh penyelesaian secara manual dengan menggunakan sampel data yang kecil berupa 7 objek destinasi perjalan. Sampel tersebut terdiri dari 1 objek merupakan lokasi awal dan lokasi akhir perjalanan serta 6 lokasi merupakan destinasi perjalanan.

a. STMIK El Rahma (lokasi awal dan lokasi akhir perjalanan)

b. Jogja City Mall (Pameran Museum Nasional)

c. Jogja Expo Center (Festival Batik Tanah Surga)

d. Stadion Mandala Krida (Pasar Raya Boga Yogyakarta)

Page 8: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

e. IFI-LIP Yogyakarta (Tari Kontemporer “Sadako”)

f. Taman Budaya Yogyakarta (Gelar Seni Tradisi)

g. Lapangan Bintang UMY (Denistry Music Talent 2017).

Data perbandingan jarak ketujuh objek disajikan dalam Tabel 1.

Tabel 1 Data perkalian antara jarak dan waktu tempuh 7 objek

Asal/Tujuan 1 2 3 4 5 6 7 1 0 293.5 101.133 55.918 103.23 36.889 162.341 2 610.619 0 534.099 181.62 101.067 165.066 253.914 3 192.493 355.073 0 33.106 103.699 89.577 477.386 4 69.967 216.179 26.88 0 35.474 30.06 276.205 5 141.989 84.185 136.202 37.157 0 55.743 289.949 6 41.337 154.242 85.226 21.386 37.064 0 147.785 7 233.742 220.668 621.581 238.622 248.385 119.472 0

2. Pengolahan data

Pengolahan data pada penelitian ini bertujuan untuk mencari rute paling optimal menggunakan algoritma genetika. Adapun langkah-langkahnya adalah sebagai berikut.

a. Pengkodean Pada permasalahan perjalanan atau kunjungan, solusi yang ingin dicari adalah

urutan kota yang harus dikunjungi. Satu skema pengkodean yang biasa digunakan adalah setiap individu berisi satu kromosom yang berisi gen-gen yang merepresentasikan nomor urut lokasi wisata event. Skema pengkodean ini dikenal sebagai permutation encoding (pengkodean permutasi)[1].Setiap lokasi wisata direpresentasikan dengan bilangan bulat bertipe integer. Jumlah gen dalam setiap individu adalah sebanyak jumlah lokasi tujuan yang dipilih. Pada penelitian ini tidak dibatasi jumlah lokasi kunjungan, walaupun pada kasus kunjungan wisata sangat jarang ditemukan banyaknya daerah kunjungan lebih dari sepuluh.

Tabel 2. Skema pengkodean

Kode Nama Objek Keterangan 1 STMIK EL-RAHMA Lokasi awal dan akhir 2 Jogja City Mall Pameran Museum Nasional 3 Jogja Expo Center Festival Batik Tanah Surga 4 Stadion Mandala Krida Pasar Raya Boga Yogyakarta 5 IFI-LIP Yogyakarta Tari Kontemporer "Sadako" 6 Taman Budaya Yogyakarta Gelar Seni Tradisi 7 Lapangan Bintang UMY Dentistry Music Talent 2017

b. Inisiasi populasi

Inisiasi adalah membangkitkan sejumlah individu secara acak atau melalui prosedur tertentu. Dengan menggunakan fungsi random akan dipilih suatu individu dengan memilih secara acak antara bilangan 1 sampai dengan jumlah gen hingga terbentuk suatu kromosom[8]. Kromosom yang sudah dibangkitkan akan menjadi sebuah populasi.

Tabel 3 Sepuluh individu yang dihasilkan secara random Individu Keterangan

1-5-4-2-7-6-3-1 STMIK El-Rahma - IFI-LIP Yogyakarta - Stadion Mandala Krida - Jogja City Mall - Lap. Bintang UMY - Taman Budaya Yogyakarta - Jogja Expo Center - STMIK El Rahma

Page 9: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

9

Individu Keterangan

1-7-5-6-4-2-3-1 STMIK El-Rahma – Lap. Bintang UMY - IFI-LIP Yogyakarta - Taman Budaya Yogyakarta - Stadion Mandala Krida - Jogja City Mall - Jogja Expo Center - STMIK El-Rahma

1-7-5-4-6-2-3-1 STMIK El-Rahma - Lapangan Bintang UMY - IFI-LIP Yogyakarta - Stadion Mandala Krida - Taman Budaya Yogyakarta - Jogja City Mall - Jogja Expo Center - STMIK El-Rahma

1-2-5-6-7-3-4-1 STMIK El-Rahma - Jogja City Mall - IFI-LIP Yogyakarta - Taman Budaya Yogyakarta - Lapangan Bintang UMY - Jogja Expo Center - Stadion Mandala Krida - STMIK El-Rahma

1-3-4-7-5-2-6-1 STMIK El-Rahma - Jogja Expo Center - Stadion Mandala Krida - Lapangan Bintang UMY - IFI-LIP Yogyakarta - Jogja City Mall - Taman Budaya Yogyakarta - STMIK El-Rahma

1-7-4-6-3-5-2-1 STMIK El-Rahma - Lapangan Bintang UMY - Stadion Mandala Krida - Taman Budaya Yogyakarta - Jogja Expo Center - IFI-LIP Yogyakarta - Jogja City Mall - STMIK El-Rahma

1-2-3-4-6-5-7-1 STMIK El-Rahma - Jogja City Mall - Jogja Expo Center - Stadion Mandala Krida - Taman Budaya Yogyakarta - IFI-LIP Yogyakarta - Lapangan Bintang UMY - STMIK El-Rahma

1-6-5-2-4-3-7-1 STMIK El-Rahma - Taman Budaya Yogyakarta - IFI-LIP Yogyakarta - Jogja City Mall - Stadion Mandala Krida - Jogja Expo Center - Lapangan Bintang UMY - STMIK El-Rahma

1-2-6-3-7-5-4-1 STMIK El-Rahma - Jogja City Mall - Taman Budaya Yogyakarta - Jogja Expo Center - Lapangan Bintang UMY - IFI-LIP Yogyakarta - Stadion Mandala Krida - STMIK El-Rahma

1-3-4-6-7-2-5-1 STMIK El-Rahma - Jogja Expo Center - Stadion Mandala Krida - Taman Budaya Yogyakarta - Lapangan Bintang UMY - Jogja City Mall - IFI-LIP Yogyakarta - STMIK El-Rahma

c. Seleksi orangtua Setelah terbentuk satu populasi, tahap selanjutnya adalah menghitung nilai fitness

setiap individu. Oleh karena masalah perjalanan atau kunjungan event adalah permasalahan TSP-TW dan tujuannya adalah meminimalkan total biaya. Sedangkan, nilai fitness didapatkan dari rumus 1 dibagi dengan total biaya. Parameter yang digunakan dalam penelitian ini adalah jarak tempuh dan waktu tempuh serta waktu buka dan waktu tutup event. Sehingga total biaya adalah perkalian antara jarak tempuh dan waktu tempuh ditambah dengan penalti. Penelitian ini mempertimbangkan permasalahan perjalanan atau kunjungan yang bisa merupakan TSP simestri ataupun TSP asimetris. Dalam suatu individu biaya perjalan antara lokasi 1 ke lokasi 2 dengan biaya perjalan antara lokasi 2 ke lokasi 1 bisa sama ataupun berbeda.

Proses penyeleksian yang digunakan dalam penelitian ini adalah roulette-wheel selection[5]. Berikut ini adalah langkah-langkah dari roulette-wheel selection.

1) Menghitung nilai fitness dari masing-masing individu. Biaya 1 = ������� + ������� + ������� + ������� + ������� + ������� + ������� Biaya 1 = 103.23 + 37.157 + 216.179 + 253.914 + 119.472 + 85.226 + 192.493 = 1007.67

������� 1 = 1

����� 1 + ������� 1 =

1

1007.67 + 1629= 0.000379266

Biaya dan nilai fitness untuk 10 individu ditunjukan pada Tabel 4

Tabel 4 Nilai fitness 10 individu DNA Cost Penalti Fitness

1-5-4-2-7-6-3-1 1007.671 1629 0.000379266 1-7-5-6-4-2-3-1 1430.626 1160 0.000386007 1-7-5-4-6-2-3-1 1358.777 677 0.000491213 1-2-5-6-7-3-4-1 1322.749 1093 0.00041395 1-3-4-7-5-2-6-1 949.417 923 0.000534069 1-7-4-6-3-5-2-1 1314.752 467 0.000561245 1-2-3-4-6-5-7-1 1451.52 253 0.000586675 1-6-5-2-4-3-7-1 1077.766 588 0.000600324 1-2-6-3-7-5-4-1 1376.687 145 0.000657165 1-3-4-6-7-2-5-1 775.808 142 0.001089552

Total Fitness 0.005699469

Page 10: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

2) Menghitung total fitness semua individu. 3) Menghitung probabilitas setiap individu tersebut. Nilai fitness setiap individu

diperoleh (langkah 1), kemudian nilai fitness tersebut dijumlah menghasilkan nilai total fitness (langkah 2). Probabilitas dicari dengan membagi nilai fitness masing-masing individu dengan nilai total fitness semua individu. Rumus untuk peluang seleksi didapatkan dengan rumus:

��[�] =��

∑ ������

…………………………(1)

Dengan Ps[i] adalah peluang individu ke-i dan f(i) adalah nilai fitness individu ke-i, i = 1,2,3,4,…,n;

����� =�������

����� �������=

0.000379266

0.005699469= 0.066544

4) Menghitung probabilitas kumulatif q[i] = ∑ Ps���� .

��� ����� = ����� = 0.109 ��� ����� = ����� + ����� = 0.066544 + 0.067727 = 0.134271

Kumulatif probabilitas untuk 10 individu ditunjukan pada Tabel 5.

Tabel 5 Nilai probabilitas dan kumulatif probabilitas 10 individu

No DNA Cost Penalti Fitness Prob Kum.Prob 1 1-5-4-2-7-6-3-1 1007.671 1629 0.000379266 0.066544 0.0665441 2 1-7-5-6-4-2-3-1 1430.626 1160 0.000386007 0.067727 0.134271 3 1-7-5-4-6-2-3-1 1358.777 677 0.000491213 0.086186 0.2204567 4 1-2-5-6-7-3-4-1 1322.749 1093 0.00041395 0.07263 0.2930864 5 1-3-4-7-5-2-6-1 949.417 923 0.000534069 0.093705 0.3867914 6 1-7-4-6-3-5-2-1 1314.752 467 0.000561245 0.098473 0.4852647 7 1-2-3-4-6-5-7-1 1451.52 253 0.000586675 0.102935 0.5881998 8 1-6-5-2-4-3-7-1 1077.766 588 0.000600324 0.10533 0.6935297 9 1-2-6-3-7-5-4-1 1376.687 145 0.000657165 0.115303 0.8088326

10 1-3-4-6-7-2-5-1 775.808 142 0.001089552 0.191167 1 Total Fitness 0.005699469

5) Membangkitkan bilangan random R ∈ (0, 1]], berdasarkan banyaknya populasi pada generasi.

Tabel 6 Bilangan random 10 individu

Bilangan Ke Random Bilangan Ke Random 1 0.718 6 0.943 2 0.254 7 0.453 3 0.377 8 0.988 4 0.567 9 0.143 5 0.065 10 0.573

6) Menentukan individu yang terpilih sebagai induk berdasarkan letak bilangan

random yang dihasilkan, dengan ketentuan jika bilangan acak R[i] kurang dari fitness kumulatif pertama q[1], maka kromosom ke-i diganti dengan kromosom pertama (kromosom pertama sebagai induk). Selain itu, pilih kromosom ke-i sebagai induk dengan syarat q[i-1] < R ≤ q[i] (kromosom yang mempunyai

Page 11: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

11

kumulatif fitness q[i] lebih besar atau sama dengan dari R[i]). Misal R[1] kurang dari q[4] maka kromosom K[1] diganti dengan kromosom K[4] pada populasi awal. Populasi baru setelah dilakukan roulette-wheel selection ditunjukan pada Tabel 7.

Tabel 7 Populasi baru setelah dilakukan roulette-wheel selection

No Individu Individu Terpilih No Individu Individu Terpilih 1 1-2-6-3-7-5-4-1 Kromosom 9 6 1-3-4-6-7-2-5-1 Kromosom 10 2 1-2-5-6-7-3-4-1 Kromosom 4 7 1-7-4-6-3-5-2-1 Kromosom 6 3 1-3-4-7-5-2-6-1 Kromosom 5 8 1-3-4-6-7-2-5-1 Kromosom 10 4 1-2-3-4-6-5-7-1 Kromosom 7 9 1-7-5-4-6-2-3-1 Kromosom 3 5 1-5-4-2-7-6-3-1 Kromosom 1 10 1-2-3-4-6-5-7-1 Kromosom 7

d. Reproduksi Pada penelitian ini menggunakan cycle crossover sebagai metode crossover untuk

representasi permutasi. Metode ini mengkopi kromosom–kromosom dari satu induk dan memilih kromosom-kromosom yang lain dari induk yang lain dengan pola cycle[5]. Jumlah anak yang dihasilkan adalah sama dengan jumlah orang tua yang melakukan crossover. Untuk mengetahui suatu pasangan orang tua mengalami crossover atau tidak maka perlu digenerate bilangan random untuk setiap pasang orang tua dalam mating pool. Jika random < Pc , maka pasangan orang tua tersebut mengalami crossover. Jika random > Pc, pasangan orang tua tidak mengalami crossover.

Tabel 8 Random untuk lima pasang individu

Pasangan Individu Random Crossover

1 1-2-6-3-7-5-4-1

0.865 Tidak 1-2-5-6-7-3-4-1

2 1-3-4-7-5-2-6-1

0.217 Ya 1-2-3-4-6-5-7-1

3 1-5-4-2-7-6-3-1

0.421 Tidak 1-3-4-6-7-2-5-1

4 1-7-4-6-3-5-2-1

0.154 Ya 1-3-4-6-7-2-5-1

5 1-7-5-4-6-2-3-1

0.632 Tidak 1-2-3-4-6-5-7-1

Pc = 0.35 Proses crossover untuk pasangan kedua dengan cycle crossover adalah sebagai berikut.

1) Menentukan pasangan kromosom yang melakukan crossover.

2) Menemukan pola cycle (asumsi: pola dimulai dari posisi 2).

Pola cycle 7 3 7

Induk 7

Induk 8

Page 12: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

3) Gen-gen yang terkena cycle nilainya tetap tidak berubah.

4) Tukarkan gen-gen yang tidak terkena cycle dari satu induk ke induk lainya. Dengan begitu diperoleh dua keturunan baru.

Populasi baru yang dihasilkan dari crossover dapat dilihat pada Tabel 9.

Tabel 9 Populasi baru setelah dilakukan crossover

No Individu No Individu 1 1-2-6-3-7-5-4-1 6 1-3-4-6-7-2-5-1 2 1-2-5-6-7-3-4-1 7 1-7-4-6-3-2-5-1 3 1-3-4-7-5-2-6-1 8 1-3-5-4-7-6-2-1 4 1-2-3-4-6-5-7-1 9 1-7-5-4-6-2-3-1 5 1-5-4-2-7-6-3-1 10 1-2-3-4-6-5-7-1

Proses selanjutnya adalah mutasi. Pada penelitian ini, menggunakan skema mutasi

swap mutation. Mutasi diterapkan dengan probabilitas yang sangat kecil berdasarkan probabilitas mutasi (pm). Proses mutasi dilakukan dengan cara membangkitkan bilangan random untuk setiap individu dalam mating pool. Jika random < Pm , maka individu tersebut mengalami mutasi Jika random > Pm, individu tidak mengalami mutasi.

Tabel 10 Random untuk sepuluh individu

No Individu Random Mutasi No Individu Random Mutasi 1 1-2-6-3-7-5-4-1 0.225 Tidak 6 1-3-4-6-7-2-5-1 0.630 Tidak 2 1-2-5-6-7-3-4-1 0.387 Tidak 7 1-7-4-6-3-2-5-1 0.884 Tidak 3 1-3-4-7-5-2-6-1 0.062 Ya 8 1-3-5-4-7-6-2-1 0.115 Ya 4 1-2-3-4-6-5-7-1 0.189 Tidak 9 1-7-5-4-6-2-3-1 0.394 Tidak 5 1-5-4-2-7-6-3-1 0.782 Tidak 10 1-2-3-4-6-5-7-1 0.498 Tidak

Pm = 0.15 Proses mutasi untuk individu kedua dengan swapmutation adalah sebagai berikut.

1) Generate random pertama antara 2 hingga 7 (random 1 = 6). 2) Generete random 2 antara 2 hingga 7, kecuali bilangan yang sudah diambil

(random 2 = 4). 3) Nilai pada index ke-6 ditukar dengan nilai pada index ke-4.

Induk 7

Induk 8

Induk 7

Induk 8

Page 13: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

13

Gambar 2 Proses mutasi individu ketiga

e. Elitisme Untuk menjaga agar individu bernilai fitness tertinggi tidak hilang selama evolusi,

perlu dibuat skema elitisme. Skema elitisme pada penelitian ini mengikut langkah-langkah sebagai berikut.

1) Cari individu terbaik dari populasi setiap satu generasi. 2) Jika proses tersebut merupakan generasi pertama, buat kopi individu terbaik

tersebut. 3) Selain generasi pertama, bandingkan nilai fitness individu terbaik tersebut dengan

nilai fitness indvidu terbaik (hasil kopi) sebelumnya. Jika nilai fitness individu terbaik lebih dari nilai fitness hasil kopi, buat kopinya untuk menggantikan individu terbaik pada proses sebelumnya. Individu hasil proses elitisme akan menjadi salah satu individu baru pada generasi

selanjutnya.

Tabel 11 Nilai fittness dan probabilitas setiap individu setelah satu generasi

DNA Cost Penalti Fitness Prob Kum.Prob Roulette 1-2-6-3-7-5-4-1 1356 145 0.000666223 0.113877 0.113877 11.38768 1-2-5-6-7-3-4-1 1365 897 0.000442087 0.075565 0.189442 18.94422 1-3-4-2-5-7-6-1 890 908 0.000556174 0.095066 0.284508 28.45084 1-2-3-4-6-5-7-1 1475 253 0.000578704 0.098917 0.383426 38.34256 1-5-4-2-7-6-3-1 980 1176 0.000463822 0.079281 0.462706 46.27063 1-3-4-6-7-2-5-1 790 142 0.001072961 0.1834 0.646106 64.61065 1-7-4-6-3-2-5-1 1118 407 0.000655738 0.112085 0.758191 75.81911 1-3-7-4-5-6-2-1 1660 770 0.000411523 0.070341 0.828532 82.85322 1-7-5-4-6-2-3-1 1368 988 0.000424448 0.072551 0.901083 90.10827 1-2-3-4-6-5-7-1 1475 253 0.000578704 0.098917 1 100

Total Fitness 0.005850382

f. Seleksi survivor Seleksi survivor akan menggantikan N individu dari pada satu generasi digantikan

sekaligus oleh N individu baru, dengan rincian: 1) satu individu adalah individu terbaik dari proses elitisme, dan 2) sejumlah N-1 individu dihasilkan dari proses random.

Sejumlah N individu tersebut harus unik, artinya tidak ada individu yang sama dalam satu populasi.

g. Kriteria berhenti Iterasi berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai

fitness tertinggi yang tidak berubah. Jika pada suatu generasi telah terlihat bahwa terdapat nilai fitness terkecil yang tidak berubah, sehingga apabila perhitungan dilanjutkan hingga generasi ke-N maka diyakinkan bahwa nilai fitness yang terendah tetap tidak akan berubah.

Page 14: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

3. Pembuatan perangkat lunak Perangkat lunak dibuat untuk memudahkan pengguna mendapatkan rekomendasi

rute perjalanan atau kunjungan. Tahapan pengembangan sistem mengikuti model System Development Life Cycle (SDLC) yang merupakan metodologi umum dalam pengembangan sistem yang menandai kemajuan usaha analisis dan desain. Langkah-langkah yang dilakukan dalam pengembangan sistem menggunakan metode SDLC[9]. a. Analisis kebutuhan sistem

Untuk mempermudah sistem analis menentukan keseluruhan requirement secara lengkap, maka analis membagi kebutuhan sistem ke dalam 2 jenis. Jenis pertama adalah Kebutuhan Fungsional (Functional requirement). Kebutuhan fungsional adalah jenis kebutuhan yang berisi proses-proses apa saja yang nantinya dilakukan oleh sistem. Kebutuhan fungsional perangkat lunak adalah sebagai berikut.

Tabel 12 Kebutuhan fungsional perangkat lunak

Kebutuhan fungsional juga berisi informasi apa saja yang harus ada dan dihasilkan

oleh sistem. Jenis kedua adalah Kebutuhan Nonfungsional (Nonfunctional Requirements). Kebutuhan Nonfungsional terdiri dari kebutuhan hardware, software, dan kebutuhan keamanan. b. Desain sistem

Pada tahapan desain ada beberapa dokumen yang akan dibuat, meliputi pemodelan proses (process modeling) dan desain antarmuka.

Gambar 3 Use case sistem

Users

input lokasi awal dan waktu berangkat

mendapat rekomendasi rute

melihat rute dalam peta

mendapat estimasi waktu dan jarak terbaik

pilih lokasi tujuan

input event

No. Requirement Nama Requirement SPO-01 Perangkat lunak dapat menerima input lokasi awal dan lokasi tujuan, serta

waktu berangkat dari user SPO-02 Perangkat lunak mampu mendapatkan jarak tempuh dan waktu tempuh

terbaik antara lokasi dengan bantuan google maps api. SPO-03 Perangkat lunak mampu memberikan rekomendasi rute perjalanan

terbaik menggunakan model algoritma genetika yang sudah dikembangkan.

SPO-04 Perangkat lunak mampu menampilkan rute perjalanan terbaik dalam peta dengan bantuan google maps.

SPO-05 Perangkat lunak dapat memberikan estimasi waktu dan jarak perjalanan terbaik keseluruhan rute ataupun setiap rute yang dikunjungi.

Page 15: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

15

c. Implementasi Tahap ini merupakan tahap dimana pemrogram menulis program dengan bahasa

pemrograman yang telah diplih berdasarkan model yang telah dibuat. Bahasa pemograman yang digunakan untuk mengimplementasikan adalah PHP yang diintegrasikan dengan API dari Google Maps. Untuk mempermudah dan mempercepat pengkodean dengan menggunakan bahasa pemograman PHP, digunakan framework CodeIgniter.

HASIL DAN PEMBAHASAN

1. Hasil dan analisis pengujian generasi Pengujian generasi adalah pengujian untuk mencari nilai threshold optimal sebagai

kriteria berhenti. Pengujian ini menggunakan metode seleksi elitisme, banyaknya individu dalam satu populasi adalah 30 dan nilai kombinasi Probabilitas Crossover (Pc) dan Probabilitas Mutasi (Pm) masing-masing adalah 0.35 dan 0.15. Jumlah gen yang digunakan 4 hingga 8 gen, dengan 5 kali percobaan setiap gen. Jumlah generasi awal adalah 200 generasi. Setiap kali percobaan dicatat maksimum interval perubahan nilai fitness sebagai threshold.

Tabel 13 Pengujian generasi

Percobaan Ke Threshold

4 5 6 7 8 1 12 24 38 22 44 2 13 26 30 29 53 3 14 28 43 34 58 4 12 24 55 57 31 5 13 29 44 46 45

Maksimum 14 29 55 57 45 Tabel 13 menunjukan nilai jangkauan terjauh perubahan nilai fitness adalah 57.

Nilai tersebut akan menjadi threshold optimal sebagai kriteria berhenti. Jadi setelah 57 generasi berturut-turut didapatkan nilai fitness tertinggi yang tidak berubah maka iterasi akan dihentikan dan nilai fitness terakhir akan dijadikan solusi optimal.

2. Hasil dan analisis pengujian populasi Tujuan pengujian populasi adalah untuk mencari banyaknya individu dalam satu

populasi untuk satu generasi. Nilai kombinasi Probabilitas Crossover (Pc) dan Probabilitas Mutasi (Pm) masing-masing adalah 0.35 dan 0.15. Populasi yang ditentukan adalah 30, 50, 80, 100, 130, 150, 180, dan 210. Setiap objek dalam individu direpresentasikan dalam gen. Jumlah objek atau gen yang akan diuji 5 hingga 10 gen. Jika setelah 57 generasi berturut-turut didapatkan nilai fitness tertinggi yang tidak berubah maka iterasi akan dihentikan dan nilai fitness terakhir akan dijadikan solusi optimal.

Page 16: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

Gambar 4 Grafik nilai fitness terhadap populasi

Gambar 4 menunjukan grafik nilai fitness terhadap populasi. Jumlah objek atau gen lebih kecil 8 (gen < 8), nilai fitness tertinggi diperoleh saat jumlah individu 30. Karena setelah 30 individu tidak ada perubahan yang signifikan terhadap nilai fitness, jumlah individu optimal untuk jumlah gen atau objek lebih kecil 8 adalah 30 individu pada setiap populasi. Jumlah gen atau objek lebih besar atau sama dengan 8 (gen ≥ 8), nilai fitness tertinggi didapat dengan 50 individu. Karena setelah 50 individu tidak ada perubahan yang signifikan terhadap nilai fitness, jumlah individu optimal untuk jumlah gen atau objek lebih besar atau sama dengan 8 adalah 50 individu pada setiap populasi.

3. Hasil dan analisis pengujian probabilitas crossover dan probabilitas mutasi Pengujian kombinasi Pc dan Pm ditentukan nilai Pc dan Pm dengan kelipatan 0.15

pada nilai 0 sampai 0.4 dimana jumlah Pc dan Pm adalah 0.4. Pada pengujian penelitian ini, jumlah gen yang dipakai adalah 8 dan jumlah populasi yang dipakai adalah 50 populasi. Jika setelah 57 generasi berturut-turut didapatkan nilai fitness tertinggi yang tidak berubah maka iterasi akan dihentikan dan nilai fitness terakhir akan dijadikan solusi optimal. Setiap percobaan diulang 5 kali kemudian diambil nilai rata-ratanya.

Dari gambar 5 didapatkan bahwa rata-rata nilai fitness terbaik adalah 0.00089047. Semua kombinasi Pc dan Pm dapat digunakan, kecuali kombinasi {0.1; 0.3} dan {0.2; 0.2} dengan rata-rata nilai fitness-nya adalah 0.000874126.

0.0000000

0.0002000

0.0004000

0.0006000

0.0008000

0.0010000

0.0012000

0.0014000

0.0016000

30 50 80 100 130 150 180 210

Fitn

ess

Nilai Fitness Terhadap Populasi

4 Gen

5 Gen

6 Gen

7 Gen

8 Gen

Page 17: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

17

Gambar 5 Grafik pengaruh kombinasi probabilitas crossover dan probabilitas mutasi terhadap nilai

fitness

4. Hasil dan analisis pengujian rute yang direkomendasikan Algoritma genetika sarat akan kebolehjadian (probabilitas) sehingga berbagai

macam kemungkinan bisa berpengaruh dalam menghasilkan solusi. Pengujian solusi untuk melihat keandalan dan konsistensi solusi yang dihasilkan oleh algoritma genetika yang diterapkan pada sistem untuk memberikan rekomendasi perjalanan berdasarkan waktu buka dan waktu tutup event. Algoritma genetika yang dirancang harus konsisten memberikan solusi yang optimal ataupun mendekati optimal. Pengujian dilakukan dalam dua skenario, skenario pertama untuk mendapatkan nilai fitness terbaik, skenario kedua untuk menguji keandalan dan solusi dari algoritma genetika yang dikembangkan. Jumlah objek atau gen yang akan diuji 4 hingga 8 gen. Skenario pengujiannya adalah sebagai berikut : Skenario 1 : Jumlah populasi 300, kombinasi nilai Pc dan Pm masing-masing adalah 0.5 dan 0.5, jumlah generasi sebagai kriteria berhenti adalah 500 generasi. Setiap percobaan diulang 5 kali kemudian dicatat generasi saat nilai fitness terbaik, estimasi jarak (kilometer), dan estimasi waktu (menit) untuk satu nilai fitness terbaik. Skenario 2 : Jumlah populasi 50, kombinasi nilai Pc dan Pm masing-masing adalah 0.35 dan 0.05. Jika setelah 57 generasi berturut-turut didapatkan nilai fitness tertinggi yang tidak berubah maka iterasi akan dihentikan dan nilai fitness terakhir akan dijadikan solusi optimal. Setiap percobaan diulang 5 kali kemudian dicatat jumlah generasi, estimasi jarak (kilometer), dan estimasi waktu (menit) untuk setiap nilai fitness. Grafik konsistensi nilai fitness terhadap jumlah gen pada 5 kali percobaan dapat dilihat pada gambar 6. Nilai fitness konsisten dan menunjukan hasil yang optimal untuk jumlah objek atau gen < 8. Sistem dapat memberikan rekomendasi rute dengan biaya (jarak dan waktu) yang paling murah. Nilai fitness pada jumlah gen 8 terdapat variasi, walaupun demikian selisih variasi dengan nilai fitness terbaik sangat kecil. Sehingga, rute yang disarankan mendekati optimal dan menjadi rute alternatif. Perbedaan nilai fitness juga terjadi karena parameter biaya merupakan kombinasi antara jarak dan waktu perjalanan. Waktu yang diberikan memperhatikan kepadatan lalu lintas dan merupakan waktu perjalanan prediktif berdasarkan data waktu historis setiap harinya, sehingga nilainya bisa berbeda setiap waktunya.

0.000865

0.00087

0.000875

0.00088

0.000885

0.00089

0.000895

Kombinasi Pc dan Pm

fitness

Page 18: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

IJCCS Vol. x, No. x, July 201x : first_page – end_page

Gambar 6 Grafik konsistensi nilai fitness terhadap jumlah gen

KESIMPULAN

Berdasarkan penelitian dan hasil pengujian yang telah dilakukan, maka dapat disimpulkan bahwa.

1. Penelitian ini menghasilkan model dan aplikasi algoritma genetika menggunakan

parameter jarak dan waktu tempuh, serta mempertimbangkan biaya perjalanan

simetris maupun asimetris waktu buka dan waktu tutup yang diterapkan untuk

memberikan rekomendasi rute perjalanan kunjungan event di Daerah Istimewa

Yogyakarta.

2. Hasil pengujian menunjukan bahwa jumlah individu terbaik untuk objek < 8

adalah 30 individu dalam satu populasi dan untuk objek ≥ 8 adalah 50 individu

dalam satu populasi. Kriteria berhenti jika setelah 57 generasi berturut-turut

didapatkan nilai fitness tertinggi yang tidak berubah dan kombinasi probabilitas

crossover dan probabilitas mutasi yang paling optimal adalah {0; 0.4}, {0.05; 0.35},

{0.15; 0.25}, {0.25; 0.15}, {0.3; 0.1}, {0.35; 0.05}, dan {0.4; 0}.

SARAN Sesuai dengan hasil pengujian menunjukkan terdapat beberapa kekurangan hasil

penelitian ini. Oleh karena itu, dapat disarankan beberapa hal untuk penelitian lebih lanjut.

1. Aplikasi dikembangkan berbasis android dan tampilanya lebih user friendly.

2. Proses komputasi algoritma genetika bisa menggunakan parallel processing agar

dapat mempercepat proses pencarian solusi.

4 Gen 5 Gen 6 Gen 7 Gen 8 Gen

Best Fitness 0.00143480 0.00121070 0.00130548 0.00096618 0.00083403

Percobaan 1 0.00143472 0.00121065 0.00130548 0.00096618 0.00083403

Percobaan 2 0.00143472 0.00121065 0.00130548 0.00096618 0.00083403

Percobaan 3 0.00143472 0.00121065 0.00130548 0.00096618 0.00083403

Percobaan 4 0.00143472 0.00121065 0.00130548 0.00096618 0.00083056

Percobaan 5 0.00143472 0.00121065 0.00130548 0.00096618 0.00083403

0.00000000

0.00020000

0.00040000

0.00060000

0.00080000

0.00100000

0.00120000

0.00140000

0.00160000N

ilai

fitness

Nilai Fitness Terhadap Jumlah Gen

Page 19: NASKAH PUBLIKASI SALLESMAN PROBLEM WITH TIME …jurnal.stmikelrahma.ac.id/assets/file/Parisaktiana... · EL RAHMA YOGYAKARTA 2017. IJCCS Vol. x, No. x, July 201x : first_page –

19

DAFTAR PUSTAKA

[1]Suyanto, 2011, Artificial Intelligence, Revisi edisi, Bandung: Informatika. [2]Gambardella, L. M., Taillard, E., dan Agazzi, G., 1999, A Multiple Ant Colony System

for Vehicle Routing Problems with Time Windows, New Ideas in Optimization. [3]Priandani, D. N., dan Mahmudy, W. F., 2015, Optimasi Travelling Salesman Problem

with Time Windows (Tsp-Tw) Pada Penjadwalan Paket Rute Wisata Di Pulau Bali Menggunakan Algoritma Genetika, Seminar Nasional Sistem Informasi Indonesia.

[4]Santoso, H., 2016, “Algoritma Genetika untuk Memberikan Rekomendasi Rute Perjalanan Multidestinasi di Daerah Istimewa Yogyakarta”, Skripsi, STMIK El Rahma Yogyakarta.

[5]Goldberg, D. E., 1989, Genetic Algorithms in Search Optimization and Machine Learning, Addison-Wesley, Reading, MA.

[6]Gen, M. dan Cheng R., 1997, Genetic Algorithms and Engineering Design, New York: John Wiley & Sons.

[7]Developers, G., 2014, Google Maps API, https://developers.google.com/maps/ documentation/, 12 Maret 2017 jam 13:00 WIB.

[8]Kusumadewi, S., (2003), Artificial Intelligence (Teknik dan Aplikasinya), Yogyakarta: Graha Ilmu.

[9]Fatta, H., 2007, Analisis dan Perancangan Sistem Informasi, Yogyakarta: Penerbit Andi.