Anda di halaman 1dari 19

IMPLEMENTASI ALGORITMA KUNANG-KUNANG PADA PENJADWALAN

RUTE KUNJUNGAN WISATA (STUDI KASUS : BANDUNG RAYA)

IMPLEMENTATION OF FIREFLY ALGORITHM ON TOURING ROUTE


SCHEDULLING (CASE STUDY : BANDUNG RAYA)
Mohammad Qadrian1, Dr. Z K Abdurahman
Baizal, S.Si., M.Kom2, Yusza Reditya Murti, S.T.,
M.Kom3
1,2,3
Prodi S1 Teknik Informatika, Fakultas Teknik,
Universitas Telkom
1
qadrian@student.telkomuniversity.ac.id, 2baizal@telkomuniveristy.ac.id,
3
yuszaa@telkomuniversity.ac.id

Abstrak
Wisata merupakan salah satu hal yang menjadi tujuan kebanyakan orang untuk refreshing atau
melepas lelah akan aktivitas sehari-hari, dengan banyaknya tempat wisata yang ada di wilayah
Bandung Raya, maka akan sangat sulit untuk menentukan secara manual tempat wisata apa
saja yang sebaiknya kita kunjungi dengan meminimalisasi waktu, biaya, dan hal-hal
lainnya.Seiring dengan perkembangan teknologi, banyak riset-riset yang bertujuan untuk
memudahkan kita dalam berwisata, Seperti penentuan rute wisata di singapura yang
menggunakan Bi-Genetic Algorithm dan Vansteenwegen yang menentukan rute wisata
berdasarkan titik awal dan akhir perjalanan, Namun dari riset atau studi kasus tersebut belum
ada yang menerapkan sebuah penentuan rute wisata yang terjadwal dalam beberapa hari, selain
itu juga belum ada penerapan kriteria-kriteria pendukung yang mempengaruhi kunjungan
wisata seperti Tarif dan Rating. Dalam menentukan rute terbaik formulasi nya di dasari oleh
formulasi kasus TSP, sudah banyak algoritma yang diterapkan,dengan berbagai macam
kompleksitas dan jenis(deterministik dan probabilistik), pada tugas akhir ini akan
diimplementasikan suatu algoritma metaheuristik yaitu algoritma firefly(FA) dalam penentuan
rute terbaik karena algoritma firefly telah terbukti menyelesaikan beberapa studi kasus
mengenai fungsi n-dimensi dengan akurasi yang tepat dan eksekusi yang cepat. Sama dengan
kasus fungsi n-dimensi penerapan algoritma firefly pada penentuan rute wisata di tugas akhir ini
juga menghasilkan akurasi yang baik terutama dengan mengevaluasi kriteria-kriteria
pendukung wisata dan batasan-batasan yang ditentukan.

Kata Kunci: wisata, algoritma, rute, firefly, kriteria.

Abstract
Touring become a purpose for a lot of people to refresh themselves from their fatigue at work and
other daily activities, with many tourist attractions in Bandung Raya area, it will be hard to
manually choose tourist attractions that we want to visit that minimalized time, cost, and etc. Along
with current technology development, there are many research that ease us in Touring, such as
research in singapore that find the best touring route using Bi=Genetic Algorithm, and also someone
called Vaansteenwegen made an implementation of finding the best route based on first point and
last point in touring. However, research and study cases above still not implemented touring route
with a proper schedulling in a proper days, besides that, they still not implement several criteria that
affect the touring itself like cost and rating of tourist attractions. In finding the best touring route the
formulation is based on TSP study cases. There are many algorithms applied with several
complexity and type (deterministic and probabilistic). In this Final Task, a metaheuristic algorithm
called firefly algorithm(FA) will be implemented because firefly algorithm has proven itself with its
accuracy and speed in n-dimension cases. The accuracy in implementation of the algorithm in this
final task is also fairly good while evaluating the the criteria and the constraint that defined.

Keywords: Touring, Algorithm, Route, Firefly, Criteria.


6
1. Pendahuluan

Di zaman sekarang banyak orang-orang yang menyenangi traveling,untuk mendapatkan pengalaman


traveling yang menyenangkan dibutuhkan suatu pengetahuan akan objek-objek wisata yang akan
dikunjungi. Cara yang terbaik ialah dengan menyewa pemandu wisata atau memesan paket
perjalanan di biro wisata,tentunya hal tersebut dapat mengeluarkan biaya yang cukup besar. Untuk
itulah seiring perkembangan zaman terutama di bidang IT dibutuhkan adanya suatu sistem yang
dapat membantu wisatawan dalam mengatur kunjungan wisata[1, 2].
Sejauh ini sudah ada beberapa penerapan-penerapan teknologi yang membantu dalam
menentukan urutan rute wisata terbaik yang dapat dikunjungi. Pada sebuah penelitian sudah pernah
diterapkan perencanaan rute terbaik dengan memperhitungkan beberapa kriteria seperti berdasarkan
waktu tempuh, jarak, jenis wisata, tingkat keamanan dll[3]. Penelitian ini menggunakan metode
algoritma Bi-Genetic Algorithm. Pada studi kasus ini di implementasikan pada wilayah
Singapura[4], selain itu untuk penerapan yang sedikit berbeda pernah diterapkan yaitu dengan hanya
merekomendasikan wisata nya dengan menggunakan ontology[5, 6, 7].
Pada studi kasus lainya ada penerapan rute wisatanya hanya berdasarkan titik awal dan titik
akhir perjalanan, dimana sistem akan menghasilkan setiap poin-poin objek wisata secara langsung
yang berada diantara range titik awal dan akhir[8] .Di studi kasus ini sistem juga keluaran yang
dihasilkan sudah dipengaruhi oleh konstrain-konstrain tertentu seperti jam makan siang dan jumlah
hari yang diakumulasikan dalam kunjungan wisata.
Oleh sebab itu pada paper ini ingin dibuat suatu peningkatan fungsionalitas dari sistem
penentuan rute wisata yang sudah ada dengan menambahkan penjadwalan secara berkala dari setiap
kunjungan wisata, dengan begitu selain pengguna mendapatkan rute wisata terbaik berdasarkan
tempat-tempat wisata sesuai keinginannya, pengguna tersebut juga dapat mendapatkan penjadwalan
dari satu tempat wisata ke tempat lainya yang ingin dikunjunginya sehingga pengguna tidak perlu
terbebani memikirkan objek wisata yang mana dulu yang ingin dikunjungi dalam sekian rentang
waktu atau hari, selain itu sistem diharapkan dapat memberikan penjadwalan beserta rute wisatanya
dengan memperhatikan beberapa komponen penting lainya yang memenuhi kebutuhan pengguna
seperti dijelaskan sebelumnya, tentunya dalam menentukan penjadwalan beserta rute terbaik juga
dengan memperhatikan konstrain penting dalam tempat wisata itu sendiri yaitu waktu buka dan tutup,
sehingga dalam penjadwalan akhir yang dihasilkan wisatawan dapat mengunjungi masing-masing
tempat wisata tanpa khawatir tempat wisata tersebut akan tutup.
Dari implementasi dan penelitian yang pernah dilakukan sebelumnya diperoleh bahwa dalam
menentukan penjadwalan rute tempuh terbaik antar tempat wisata kasusnya di formulasi berdasarkan
kasus TSP[9, 10, 11] , maka disini akan digunakan algoritma-algoritma yang terkait dengan kasus-
kasus TSP.
Sudah banyak algoritma-algoritma yang diterapkan pada kasus TSP dari yang
deterministik, probalistik, metaheuristik, dll. Untuk saat ini banyak digunakan algoritma
metaheuristik dalam kasus TSP, karena memiliki waktu eksekusi yang cepat dan hasil yang sangat
akurat, Seperti algoritma evolusioner dan turunannya seperti algoritma genetika, Evolutionary
Strategies(ES)[12], dll.Selain juga ada algoritma metaheuristik diluar algoritma evolusioner seperti
yang terkenal Particle Swarm Optimization (PSO)[13], Artificial Bee Colony optimization (ABC)[14],
Cuckoo Search(CS)[15], dan Algoritma Bacterial Foraging (BFA)[16]. Dari hasil sebuah penelitian
didapatkan bahwa untuk akurasi PSO dan algoritma kunang-kunang(FA) dan Algoritma
genetika(GA)[17] memiliki ketepatan yang tidak jauh beda, akan tetapi dalam eksekusi FA jauh
lebih cepat mendapatkan hasil optimal[18] , oleh sebab itu pada kasus kali ini penulis ingin
menerapkan algoritma kunang-kunang dalam proses penentuan rutenya.
Penggunaan algoritma kunang-kunang didasari dengan efisiensi dan kecepatan menemukan
solusi pada kasus optimasi fungsi n dimensi yang diterapkan sebelumnya pada kasus fungsi aufley[19] ,
untuk kompleksitas nya sendiri juga tergolong kecil yaitu O(n2t) dimana n adalah jumlah populasi
dan i adalah jumlah iterasi[20].

7
2. Dasar Teori /Material dan Metodologi/perancangan

2.1 Algoritma Kunang-Kunang(Firefly)

Pada bidang Artificial Intelligence atau kecerdasan buatan ada istilah swarm intelligence/kecerdasan
berkelompok yang diartikan sebagai desain algoritma atau alat pemecahan masalah terdistribusi
yang terinspirasi oleh perilaku sosial kolektif koloni serangga dan koloni binatang. Algoritma
kunang-kunang merupakan salah satu dari swarm intelligence tersebut. Algoritma kunang-
kunang adalah sebuah algoritma metaheuristik yang terinspirasi dari perilaku pancaran cahaya antar
kunang-kunang[19]. Algoritma ini dikembangkan oleh Dr Xin-She Yang di Universitas Cambri- dge
pada tahun 2007. Formulasi umum dari algoritma ini disajikan bersama- sama dengan pemodelan
matematika analisis untuk memecahkan masalah de- ngan tujuan ekuivalen fungsi. Hasilnya
dibandingkan dengan yang diperoleh dengan teknik alternatif lainnya menunjukkan bahwa ia mampu
menghasilkan solusi optimal baik dan benar[19]. Secara khusus, meskipun algoritma kunang-kunang
memiliki banyak kemi- ripan dengan algoritma lain yang didasarkan pada kecerdasan kawanan,
seperti yang terkenal Particle Swarm Optimization (PSO), Artificial Bee Colony opti- mization
(ABC), dan Algoritma Bacterial Foraging (BFA), memang jauh lebih sederhana baik dalam konsep
dan implementasi. Selanjutnya, algoritma ini sangat efisien dan dapat mengungguli algoritma
konvensional lainnya, seperti algoritma genetika, yang mana banyak diterapkan untuk memecahkan
masalah-masalah atau kasus-kasus yang bersifat optimasi, (minimasi ataupun maksimasi) [20]

8
Gambar 2.1: Ilustrasi proses kerja firefly

Dari gambar 2.2 dapat dijabarkan bahwa setiap representasi calon solu- si direpresentasikan sebagai
kunang-kunang yang memiliki intensitas caha- ya yang beragam,setiap kunang-kunang tersebut
disebar secara acak dalam lingkup nilai tertentu sehingga terbentuk sebuah kumpulan populasi kunang-
kunang. Setiap kunang-kunang memiliki jarak pandang yang bermacam yang direpresentasikan sebagai
nilai penyerapan cahayanya, yang dilakukan setiap kunang-kunang adalah melihat sekitar jarak
pandang nya, apabila ia meli- hat kunang-kunang lainya yang lebih terang maka ia akan bergerak
menuju kunang-kunang tersebut, proses ini berlaku untuk setiap kunang-kunang yang ada di ruang solusi
atau populasinya tersebut. Pada akhirnya kunang-kunang akan terkumpul di satu titik yang
merepresentasikan solusi terbaik berdasark- an pergerakan-pergerakan yang dilakukan setiap kunang-
kunang.

Dari penjabaran proses kerja kunang-kunang diatas, proses kerja algoritma firefly dapat didefinisikan
dalam pseudocode berikut :

9
dimana xik adalah komponen ke k dari koordinat spasial xi dari kunang- kunang ke i Pergerakan
dari kunang-kunang i ke kunang-kunang j yang lebih terang di definisikan pada persamaan 2.1 :

rij2
xi  xi   0e ( x j  xi )   (rand  0.5) (2.1)

dimana α adalah parameter untuk randomisasinya dan rand adalah distri- busi random uniform di
rentang[0,1]

2.1.1 Algoritma Kunang-Kunang Diskrit(DFA)

Untuk kasus optimasi yang bersifat kontinu algoritma kunang-kunang biasa dapat digunakan,akan tetapi
ketika menghadapi optimasi yang diskrit seperti TSP algoritma kunang-kunang biasa tidak dapat
digunakan.
Oleh sebab itu muncul satu varian algoritma kunang-kunang untuk mena- ngani kasus tersebut[22].
berikut ini adalah algoritma dari algoritma kunang-kunang diskrit(DFA)

10
Hamming distance digunakan untuk mengukur perbandingan setiap individu dalam menghitung jarak
antar kunang-kunang/individu xi ke xj[25] , setelah itu panjang pergerakan xi menuju xj di definisikan
dengan fungsi random antara
2 dan rij · γg . Pergerakannya didefiniskan dengan fungsi Insertion Function
yang menandakan pergerakan xi ke arah xj sepanjang n

2.2 Travelling Salesman Problem(TSP)

Travelling Salesman Problem(TSP) adalah sebuah permasalahan yang cu- kup terkenal dikalangan
matematikawan dan computer scientist. TSP dapat didefinisikan sebagai permasalahan dimana seorang
travelling salesman yang ingin mengunjungi setiap kota yang ada tepat 1 kali dari n-kota yang ada
dan kembali ke kota awal. TSP digolongkan ke sebuah kelas yang lebih besar yaitu optimasi
kombinatorial[11]. Selain itu TSP juga tergolong permasalahan yang bersifat NP-Complete[9]. TSP dapat
direpresentasikan sebagai graf, di- mana setiap kota direpresentasikan sebagai nodes dan garis atau
jalan yang menghubungkan kedua nodes disebut edge

11
Gambar 2.2: Ilustrasi TSP dengan 6 nodes

2.3 Multi Attribute Utility Theory (MAUT)

Multi Attribute Utilility Theory(MAUT) adalah sebuah bentuk skema eva- luasi yang sering digunakan
dalam penilaian produk yang memiliki banyak attribut penilaian. Dalam MAUT evaluasi keseluruhan
terhadap nilai produk bergantung terhadap masing-masing atribut penilaian yang terdapat dalam
produk, dan akan ada nilai bobot relatif yang mendefinisikan tingkat utilitas dari masing-masing
atribut [24]. Untuk Penilaian keseluruhan didefinisikan dalam persaman 2.2 berikut ini.

n
v( x)   wi vi ( x)
i 1 (2.2)

Dari persamaan 2.2 didefinisikan v(x) adalah evaluasi keseluruhan dari objek, dengan vi (x) adalah
nilai untuk atribut ke i dan wi adalah derajat atau


n
i 1
wi  1
nilai preferensi terhadap masing-masing atribut dengan kondisi

12
3. Metodologi
Travelling salesman problem merupakan kasus kombinatorial, sehingga penyeselesaian masalah
dapat mengacu pada algoritma firefly diskrit[21, 22]. Dalam algoritma firefly, setiap obyek
wisata direpresentasikan sebagai node, dan rute wisata (sirkuit Hamilton)[23] direpresentasikan
dalam bentuk permutasi dari himpunan node. Satu permutasi merupakan satu firefly, seperti
ditunjukkan pada gambar 1.

0 2 1 4 3
Gambar 1 Representasi Firefly

Dalam penelitian ini, terdapat dua atribut untuk setiap firefly, yaitu node dan interval. Setiap
node menyimpan beberapa informasi sebagai berikut:

- Durasi dan Waktu : durasi maksimal di tempat wisata serta waktu buka dan tutup
- Rating : nilai rating (tingkat popularitas) tempat wisata yang didapatkan dari google API
- Tarif : tarif tempat wisata tersebut

Sementara itu, interval merupakan akumulasi waktu untuk setiap kunjungan wisata dari hotel ke
tempat wisata yang pertama, antar setiap obyek wisata, dan obyek wisata terakhir ke hotel.

Constraint yang harus dipertimbangkan dalam penentuan penentuan rute wisata meliputi: 1) jam
buka dan tutup tempat wisata, 2) durasi kunjungan wisatawan rata-rata (informasi ini diperoleh
dari berbagai sumber), dan 3) batasan waktu kunjungan wisata per hari, dalam penelitian ini
diasumsikan jam 8 pagi hingga 8 malam.

Inisiasi Parameter
Inisiasi nilai-nilai parameter algoritma firefly, seperti total populasi, jumlah iterasi, nilai
penyerapan cahaya(γ), dll.

13
Inisiasi Awal Firefly
Pada tahap ini akan dibangkitkan firefly sebanyak jumlah populasi yang telah didefinisikan.
Firefly ini berbentuk permutasi acak dari 0 hingga jumlah node-1, seperti ditunjukkan dalam
gambar 2.

0 1 3 2 5 6 4
0 1 2 3 6 4 5
2 1 3 0 6 5 4
3 4 0 6 5 2 1
6 3 1 4 5 0 2
Gambar 2 Populasi Firefly dengan jumlah populasi 5

Menghitung Nilai Intensitas Cahaya (I)


Intensitas cahaya merupakan tingkat kecerahan cahaya pada sebuah firefly. Nilai
intensitas cahaya yang lebih besar merepresentasikan nilai solusi yang lebih baik. Dalam metode
lain, intensitas cahaya biasa disebut sebagai nilai fitness. Pada peneltian ini, penentuan nilai
intensitas cahaya dilakukan dengan dua cara, yaitu berdasarkan kriteria tunggal (waktu) dan
multi kriteria (waktu, rating dan tarif). Untuk single criteria, kita mendapatkan nilai intensitas
cahaya berdasarkan nilai fitness melalui persamaan 3.1

I ( f )  cost waktu ( f ) (3.1)

I  f  adalah nilai intensitas cahaya dari satu firefly f. Satu firefly f berupa berupa
Nilai
himpunan node f = (x0, x1,…., xn-1) , sedangkan cost waktu adalah total waktu tempuh untuk setiap
firefly. Nilai cost waktu ini diperoleh dari persamaan (3.2) sebagai berikut,


n2
duration ( xi , xi 1 )
duration (hotel , x0 ) i 0
 duration ( x n1 , hotel )
costWaktu  f   n 1 (3.2)
3

Notasi durasi(a,b) merepresentasikan durasi atau waktu tempuh dari node a ke b yang sudah
dinormalisasi ke dalam range(0..1), sedangkan j adalah panjang firefly atau jumlah node tempat
wisata. Nilai costWaktu diperoleh dari hasil rata-rata penjumlahan akumulasi waktu tempuh dari
titik awal (hotel) melalui node-node tempat wisata dan kembali lagi node hotel.

Nilai intensitas cahaya yang didasari oleh Multi-Kriteria yaitu kriteria waktu, tarif, dan rating
yang diperoleh dari persamaan (3.3) sebagai berikut

cost waktu ( f ) DOI waktu  cost tarif ( f ) DOItarif  cost rating ( f ) DOI rating
I( f )  (3.3)
3

14
Notasi DOI waktu , DOItarif dan DOI rating adalah degree of interest untuk kriteria waktu,
tarif dan rating. Sedikit berbeda dengan perhitungan single criteria, pada multi-criteria, I ( f )
dipengaruhi oleh nilai dari masing-masing kriteria (setelah dinormalisai) dan degree of interest
dari masing-masing kriteria. Nilai cost tarif ( f ) dan cost rating ( f ) diperoleh dari, persamaan
(3.4) dan (3.5)


n 1
tarif ( xi )
cost tarif (f) i 0
(3.4)
n


n 1
rating ( xi )
cost rating (f) i 0
(3.5)
n

cost tarif ( f ) dan cost rating ( f ) diperoleh dari rata-rata tarif dan rating dari setiap node (tempat
wisata). Kedua nilai cost dari rating dan tarif juga dinormalisasi ke range (0..1). Penggunaan
rumus (3.3) diadaptasi dari konsep Multi Atrribute Utility Theory (MAUT)[24]

Validasi Konstrain dan Rekonstruksi Konstrain


Untuk setiap firefly yang ada di populasi, perlu divalidasi sesuai konstrain jam buka dan tutup
dari setiap node dalam firefly. Misal ada sebuah firefly a

3 1 2 4

dengan akumulasi waktu tiap node nya,

08.30 11.45 15.44 19.22

Setiap node di dalam firefly diperiksa kesesuaian jam buka dan tutupnya. Misal setiap node
memiliki jam buka tutup seperti ditunjukkan pada Tabel 3.1.

Tabel 3.1: Jam buka dan tutup Tempat Wisata


Node Jam Buka Jam Tutup
1 08.00 16.30
2 10.30 20.00
3 09.00 18.00
4 06.30 17.00

Karena akumulasi waktu pada node 3 memenuhi konstrain jam buka dan tutup, maka node 3
pada firefly a valid. Untuk memudahkan, node yang valid dan tidak bedakan dengan arsir yang
berbeda sebagai berikut,

3 1 2 4

15
Pemeriksaan dilakukan pada setiap node di firefly a, namun ketika pemeriksaan dilakukan
pada node 4, terdapat kondisi yang tidak memenuhi konstrain. Akumulasi waktu pada node 4
ialah 19.22, sedangkan jam tutup pada node 4 adalah 15.00 sehingga melanggar dengan
konstrain,

3 1 2 4

Setelah ditemukan node yang tidak valid, akan dilakukan rekonstruksi firefly agar memenuhi
constraint. Langkah-langkah dalam tahapan pemeriksaan constraint ditunjukkan dalam algoritma
1.

Algorithm 1. GetInvalid(f) <index[0..sizeof(f)-1], null>


//fungsi untuk memeriksa validitas firefly
Input : Firefly
Output : indeks node yang tidak valid (0..sizeof(f)-1), atau null jika semua node
valid
1: for setiap f[i] di firefly f do
2: if f[i] memenuhi constraint jam buka dan tutup then
3: lanjutkan ke node berikutnya
4: else
5: Return i
6: end if
7: end for
8: Return NULL

Kemudian akan dilanjutkan ke proses rekonstruksi pada algoritma 2

Algorithm 1. GetInvalid(f) <index[0..sizeof(f)-1], null>


//fungsi untuk memeriksa validitas firefly
Input : Firefly
Output : indeks node yang tidak valid (0..sizeof(f)-1), atau null jika semua node
valid
1: for setiap f[i] di firefly f do
2: if f[i] memenuhi constraint jam buka dan tutup then
3: lanjutkan ke node berikutnya
4: else
5: Return i
6: end if
7: end for
8: Return NULL

Pada pseudocode rekonstruksi firefly diatas dilakukan pembaruan susunan node-node dalam
firefly dengan menukar posisi setiap node yang tidak memenuhi konstrain. Metode ini
adalah salah satu jenis mutasi yang digunakan pada representasi individu/kromosom pada
Algoritma Genetika (GA). Jenis mutasi ini dikenal dengan swapping mutation [15]. Kita
menggunakan jenis mutasi ini, karena representasi individu dalam GA serupa dengan
representasi kunang-kunang untuk kasus permutasi dalam firefly. Misal setelah tahap
rekonstruksi, diperoleh firefly yang telah valid sebagai berikut,

3 1 4 2

16
Proses rekonstruksi firefly ini bdilakukan untuk semua firefly dalam populasi. Untuk kedua
prosedur pengecekan dan rekonstruksinya dapat disederhanakan dalam pseudocode 4 ini

Algorithm 3 Constraint_Validation(f)
// Prosedur gabungan pengecekan konstrain dan rekonstruksi firefly
1: if getInvalid(f)= NULL then
2 Return Firefly f
3: else
4: Reconstruct_Firefly(f)
5: end if

Proses pergerakan kunang-kunang


Setelah populasi awal terbentuk, dilakukan proses pergerakan firefly untuk menghasilkan firefly
terbaik, yang merupakan solusi masalah TSP (rute wisata). Setiap firefly di dalam populasi akan
dibandingkan, Misal dua terdapat 2 firefly a dan b. Jika nilai intensitas cahaya firefly a lebih
besar dari b, maka firefly a berada di posisi yang lebih baik dari b sehingga tidak ada
pergerakan firefly a mendekati b. Namun sebaliknya, jika firefly a lebih kecil, maka firefly a
akan bergerak menuju b, sehingga posisi dari firefly a berubah. Algoritma 2 menunjukkan
langkah-langkah pergerakan firefly.

Algorithm 4 Move Firefly (fa, fb, n) fa’


//fungsi pergerakan firefly
Input : fa, firefly yang akan di cek pergerakannya
fb, firefly yang menjadi pembanding pergerakan fa
n, hamming distance antara fa dan fb
Output : fa’ firefly yang posisinya telah diperbarui

1: nTukar ← Ambil nilai random dalam (0, n-2) sebagai jumlah


pertukaran
yang dilakukan
2: fa’ ← fa
2: while nTukar ≥ 0 do
3: r ← Ambil node secara random pada fa yang posisinya
berbeda dengan fb
4: i ← index node pada fb yang bernilai r
5: i’ ← index node pada fa yang bernilai r
5: swap(fi,fi’)
6: nTukar := nTukar-1
7: end while

setelah iterasi berakhir, ambil firefly dengan intensitas terbaik akumulasikan waktu untuk
setiap node di firefly dan diperiksa apakah melebihi batas waktu dengan asumsi batas waktu
wisata dalam 1 hari ialah hingga pukul 18.00 dengan asumsi node dan akumulasi sebagai berikut

3 1 2 4
Gambar 3 firefly a terbaik sementara

08.30 11.45 15.44 19.22


Gambar 4 akumulasi waktu yang melewati batas

karena node 4 melewati batas waktu wisata maka node tersebut akan dipotong, dan sisa node
yang dipotong(node 4) akan di akumulasikan ke TSP pada hari berikutnya, dan hasil TSP
dan akumulasi waktu akhir adalah

17
3 1 2
Gambar 5 firefly a valid

08.30 11.45 15.44


Gambar 6 akumulasi waktu yang valid

Tahapan diatas dilakukan hingga total hari maksimal 3 atau tidak ada node yang bersisa
seperti pada pseudocode berikut

Algorithm 5 constructSchedule(node_ids) Jadwal


// Prosedurkeseluruhan algoritma firefly dalam menentukan rute dan penjadwalan
kunjungan wisata
Input : himpunan tempat wisata yang ingin dijadwalkan rute terbaiknya(node_ids)
Output : Jadwal rute kunjungan wisata
1: Hari ← 1
2: Jadwal ← {}
3: Inisialisasi populasi awal sesuai node_ids
4: for setiap kunang-kunang f[k] di Populasi Awal do
5: f[k] =Constraint Validation(f[k])
6: end for
7: while Hari ≤ 3 or node_sisa != {} do
8: for setiap kunang-kunang f[i] di kawanan do
9: for setiap kunang-kunang lainya f[j] di kawanan do
10: if I[j] > I[i] then
11: r = HammingDistance(f[i] , f[j])
12: n = Random(2,r • γ)
13: f[i] = MoveFirefly(f[i] , f[j] , n)
14: f[i] = Constraint_Validation(f[i])
15: end if
16: hitung solusi baru dan update intensitas cahayanya
17: end for
18: end for
19: fbest ← f dengan nilai intensitas cahaya(I) terbaik
20: fbest’ ← fbest yang memenuhi constraint waktu kunjungan wisata dalam 1
hari
21: node_sisa ← node_ids – fbest’
22: Jadwal ← Jadwal + fbest’
23: Hari ← Hari + 1
24: end while
25: return Jadwal

Untuk prosedur konstruksi penjadwalan secara keseluruhan digambarkan dengan pseudocode 5


diatas. Pada state 1 dan 3 adalah proses inisialisasi parameter dan populasi awal, kemudian dari
state 4 sampai 6 adalah pemeriksaan constraint jam buka tutup untuk setiap firefly di populasi
awal. Dari state 7 hingga state 23 adalah dimana proses algoritma ini berlangsung, pada state 10
adalah proses penghitungan jarak antar kedua firefly xi dan xj yang dibandingkan dengan
menggunakan hamming distance[25], selanjutkan pada state 11 setelah jaraknya diperoleh
makan akan dicari nilai n dengan randomisasi antara 2 dan jarak yang dikali dengan γ
(2,rij.γ).Setelah itu pada state 12 akan dilakukan pergerakan firefly sesuai nilai n yang diperoleh
sebelumnya, dan pada state 13 dilakukan pemeriksaan constraint kembali agar firefly yang
dihasilkan valid.

4. Pengujian

4.1 Spesifikasi Sistem

18
Hasil dan Pengujian

4.1 Spesifikasi Sistem

Spesifikasi sistem yang digunakan dalam penjadwalan kunjungan tempat wisata di wilayah
Bandung Raya ialah sebagai berikut :

1. Spesifikasi perangkat keras yang digunakan adalah Laptop dengan spesifikasi sebagai
berikut :

• Model : HP-Pavillion G4 2010tx

• Processor : Intel R Core(TM) i7-3612QM CPU @ 2.10GHz

• RAM : 8 Gigabyte

2. Spesifikasi perangkat lunak yang digunakan adalah Laptop dengan spesifikasi sebagai
berikut :

• Sistem Operasi : Windows 7 Ultimate 64-bit

• IDE : Spyder 3.1.2

• Google Chrome Version 59.0.3071.115 (Official Build) (64-bit)

• XAMPP V.3.2.1

Penentuan parameter dilakukan dengan melakukan observasi pada setiap kombinasi


parameter-parameter yang ada beberapa parameter-parameter yang di ujikan pada algoritma
firefly ini antara lain jumlah populasi, jumlah iterasi, dan koefisien penyerapan cahaya , untuk
masing-masing interval nilai yang diujikan ialah sebagai berikut :

• Jumlah Populasi : {25, 50}

• Jumlah Iterasi : {25, 50}

• koefisien penyerapan cahaya : {0.1, 0.2, ...1}

19
Tabel 4.1: Tabel Uji Parameter Untuk Skenario Non-Utility
populasi iterasi gamma running time fitness day total nodes
50 25 0.8 1.708597684 0.784798976 3 11.7
50 25 0.9 2.104220366 0.789618713 3 12.5
50 25 1 2.431839108 0.792356 3 12.8
50 50 0.1 1.663995171 0.772286481 3 11.6
50 50 0.2 1.69699707 0.777680421 3 9.8
50 50 0.3 1.690396762 0.777015699 3 10.7
50 50 0.4 1.72129848 0.778243972 3 10.6
50 50 0.5 1.693596888 0.776602669 3 11.2
50 50 0.6 1.761800814 0.7768666 3 10.9
50 50 0.7 2.266329622 0.785617287 3 13.4
50 50 0.8 3.248785853 0.787529449 3 12.8
50 50 0.9 4.639165354 0.79114006 3 13.1
50 50 1 4.562160969 0.79914003 3 13.4

Dari tabel 4.1 diatas dapat disimpulkan bahwa kombinasi parameter dengan hasil paling
optimum terdapat pada kombinasi 50 populasi, 50 iterasi, 0.7 koefisien penyerapan cahayadan
kombinasi 50 populasi, 50 iterasi, dan 1 koefisien penyerapan cahayadengan menghasilkan
rata-rata total nodes 13.4, Karena dibutuhkan 1 hasil kombinasi parameter yang digunakan pada
pengu- jian sistem, maka dipilih kombinasi parameter 50 populasi, 50 iterasi, dan 1 koefisien
penyerapan cahayakarena nilai fitness nya lebih tinggi walaupun terdapat tradeoff yang cukup
besar dari sisi running time.

4.3 Pengujian Sistem

Berdasarkan hasil pengujian parameter sebelumnya didapatkan kombinasi parameter terbaik


yang dapat digunakan dalam pengujian sistem, ada 3 skenario pengujian yang akan dilakukan. Pada
Pengujian ini fitness yang akan digunakan adalah fitness dengan kriteria waktu yaitu nilai fitness yang
diperoleh dari waktu tempuh pada rute terbaik dan fitness dengan multi kriteria yaitu nilai fitness yang
diperoleah dari waktu, tarif, dan rating. Pada scenario pengujian skenario yang akan dianalisis ialah total
hari ,total node keseluruhan dan running time yang dihasilkan pada rute terbaik yang dihasilkan oleh
algoritma ini .Pengujian di lakukan dengan mengambil parameter terbaik yang telah diujikan di pengujian
parameter sebelumnya yaitu 50 populasi, 50 iterasi, dan 0.7 koefisien penyerapan cahaya

20
4.3.1 Skenario 1 total hari yang dihasilkan berdasarkan masukan jumlah node
Pada skenario ini fitness yang akan digunakan adalah fitness yang bersi- fat non-utility yaitu
nilai fitness yang didapatkan murni dari waktu tempuh pada rute terbaik. Pada skenario ini
sub-skenario yang akan dianalisis ialah total hari dan total node keseluruhan yang dihasilkan
pada rute terbaik yang dihasilkan oleh algoritma ini.

Gambar 4.1: Grafik pengujian total hari

Gambar 4.1 menunjukkan hasil pengujian total waktu(hari) untuk solusi yang dihasilkan sistem
berdasarkan masukan jumlah node, untuk constraint waktu, maupun multi constraint tidak terlihat
perbedaan yang signifikan, da- pat disimpulkan untuk kedua sub skenario yaitu pada kriteria waktu dan
multi kriteria, bahwa hasil penjadwalan akan berada di rentang 1 hari saat masukan jumlah node 2-5,
rentang 2 hari saat masukan jumlah node 6-7 dan sisanya di rentang 3 hari.
4.3.2 Skenario 2 total node pada rute yang dihasilkan berdasarkan masukan
node

Gambar 4.2: Grafik pengujian total node pada rute


21
Gambar 4.2 menunjukkan hasil pengujian total node pada rute untuk so- lusi yang
dihasilkan sistem berdasarkan masukan jumlah node, untuk kriteria waktu, maupun multi
constraint tidak terlihat perbedaan yang signifikan, de- ngan kesamaan jumlah node yang
dimasukkan oleh pengguna dan total node pada rute untuk jumlah masukan node 2 sampai
8, untuk jumlah masukan node lebih dari 8, pada kedua skenario total node pada rute yang
dihasilkan berada di rata-rata 11 hingga 14, jika mengacu kepada Gambar 4.1, pada
pengujian sebelumnya, bahwa untuk jumlah masukan node lebih dari 8, jumlah waktu atau
rentang hari yang dihasilkan adalah 3. Dapat disimpulkan bahwa untuk kedua
skenario(kriteria waktu dan Multi-kriteria) saat jumlah masukkan lebih dari 8,total node
pada rute yang dihasilkan akan selalu bera- da di rentang 11- 14 karena pada kondisi tersebut
rentang hari yang dihasilkan sudah mencapai batas maksimal yaitu 3 hari.

4.3.3 Skenario 3 running time berdasarkan masukan node

Gambar 4.3: Grafik pengujian running time

Gambar 4.3 menunjukkan hasil pengujian running time untuk solusi yang dihasilkan
sistem berdasarkan masukan jumlah node, terdapat perbedaan un- tuk Constraint Waktu dan
Multi Constraint, Pada kriteria Waktu Running Time terlama mencapai 6 detik yaitu pada
jumlah masukan node 26, sedangk- an pada Multi Constraint hanya 4 detik yaitu pada jumlah
masukan node 18. Dapat ditarik kesimpulan dengan Multi kriteria running timenya lebih
cepat, hal ini disebabkan dengan beragamnya atribut yang mempengaruhi nilai fit- ness, maka
ruang solusi yang dihasilkan juga lebih besar dan beragam sehingga algoritma firefly dapat
lebih cepat menemukan solusi terbaik.

22
4. Kesimpulan

Kesimpulan
Dari hasil pengujian parameter terlihat jelas, layaknya algoritma-algoritma optimasi lainnya iterasi menjadi salah satu
tolak ukur untuk hasil yang lebih optimal, selain itu sesuai dengan algoritma-algoritma yang memiliki populasi lainya
seperti Algoritma Genetika(GA), populasi itu sendiri juga menambah ukuran ruang solusi yang dapat dihasilkan oleh
algoritma tersebut. Algoritma firefly memiliki kompleksitas O(n2t) dimana n adalah jumlah populasi dan t adalah
jumlah iterasi. Dari hal tersebut dapat dilihat bahwa jumlah populasi yang berlebihan juga kurang baik karena
kompleksitasnya adalah kuadratik, dan berdampak ke waktu eksekusinya sendiri. Untuk parameter γ atau nilai
koefisien penyerapan cahaya dapat disimpulkan bahwa diangka 0.6 hingga 1 menghasilkan hasil yang optimal, akan
tetapi lebih dianjurkan untuk menggunakan nilai γ di sekitar 0.6 dan 0.7 agar pergerakan firefly sendiri dapat dibatasi,
selain untuk mengurangi pergerakan yang dirasa tidak perlu(pergerakan untuk jarak yang jauh) pembatasan pergerakan
juga mengurangi waktu eksekusi nya.

Dari hasil pengujian sistem terlihat bahwa pada jumlah masukan node tertentu total node pada rute mulai stagnan dan
tidak meningkat lagi(terkadang tidak stabil), hal ini mengacu kepada jumlah hari yang dibatasi, sehingga ketika
mencapai batas tertentu maka berapapun masukan node nya akan menghasilkan rata-rata total node pada rute yang
hampir sama. Untuk Running time mengacu kepada pengujian total node. Ketika mencapai keluaran total node yang
mulai stagnan dan tidak meningkat juga(terkadang tidak stabil).

Algoritma Firefly memiliki ruang solusi yang luas, karena memiliki representasi yang serupa dengan Algoritma
Genetika, dan parameternya dapat diuji lebih lanjut sesuai dengan kasus yang diberikan, akan tetapi karena pengaruh
nilai random dan inisiasi random pada setiap individu atau firefly, menyebabkan hasil yang kurang stabil jika dilakukan
pada iterasi yang sedikit, sehingga disarankan menggunakan kombinasi populasi dan iterasi yang besar. Akan tetapi
karena dari pengaruh populasi terhadap kompleksitas yang bersifat kuadratik, maka akan memberikan tradeoff yang
cukup besar juga jiga populasi dan iterasi ukurannya diperbesar juga.

Dari segi kasus rute wisata dengan berbagai constraint, pengecekan constraint pada algoritma firefly yang digunakan
pada studi kasus ini masih kurang optimal, dikarenakan pengecekan dilakukan setelah representasi tsp terbentuk,
keuntungannya dalam menghasilkan firefly yang memenuhi constraint akan sangat baik karena dengan pertukaran
acak akan tetapi worst casenya adalah ketika constraint waktu buka yang terlalu telat atau waktu tutup yang terlalu awal
menyebabkan representasi tsp yang dibutuhkan akan lebih sedikit kombinasinya sehingga dapat menambah running
time dari algoritma firefly sendiri

Saran
Implementasi Algoritma Firefly pada tugas akhir ini dalam penerapannya pada penentuan rute dan penjadwalan
kunjungan wisata masih terbatas untuk beberapa kriteria dan constraint saja. Diharapkan kedepannya dapat
dikembangkan lebih luas lagi ruang lingkup constraint dan kriterianya seperti menambahkan tempat wisata yang
bersifat khusus seperti Kuliner dan Wisata Malam, Selain itu batasan hari yang sebelumnya hanya 3 hari dapat
dikembangkan menjadi n-hari, Dan dimungkingkan juga untuk mempertimbangkan traffic dan cuaca.

Untuk penerapan algoritma firefly ke studi kasus TSP memang sudah banyak ditemukan, akan tetapi untuk menangani
konstrain atau kriteria tertentu sangat jarang ditemukan, Karena pada struktur nya sendiri sulit untuk diterapkan, pada
tugas akhir ini juga penanganan terhadap constraint dan kriteria juga ditangani dengan fungsi atau prosedur yang
bersifat kondisional dan kompleksitasnya juga kurang baik. Apabila diterapkan kepada Data yang lebih banyak dan
beragam terutama untuk tempat wisata dengan jarak yang berjauhan, dengan implementasi yang sekarang tentunya
akan kurang efektif. Diharapkan kedepannya dapat dilakukan riset lebih lanjut untuk studi kasus seperti ini dengan
tidak hanya menggunakan algoritma firefly saja, mungkin bisa dengan algoritma lain seperti algoritma-algoritma
clustering yang dapat membantu memfilter data-data tempat wisata berdasarkan constraint atau kriteria tertentu
sebelum data-data tempat wisata tersebut diproses oleh algoritma firefly

23
Daftar Pustaka:

[1] Stamboulis Y, Skayannis P. Innovation strategies and technology for experience-based tourism. Tourism
management. 2003;24(1):35–43.
[2] Ahmed ZU. The need for the identification of the constituents of a destination’s tourist image: A promotion
segmentation perspective. Journal of Professional Services Marketing. 1996;14(1):37–60.
[3] Hashim Z, Ismail WR. Applications of Travelling Salesman Problem in Optimizing Tourist Destinations
Visit in Langkawi. In: Regional Conference on Science, Technology and Social Sciences (RCSTSS 2014); 2016. p.
265–273.
[4] Huang B, Yao L, Raguraman K. Bi-level GA and GIS for multi-objective TSP route planning. Transportation
planning and technology. 2006;29(2):105–124.
[5] Moreno A, Valls A, Isern D, Marin L, Borràs J. Sigtur/e-destination: ontology-based personalized
recommendation of tourism and leisure activities. vol. 26. Elsevier; 2013. p. 633–651.
[6] Ricci F, Rokach L, Shapira B. Introduction to recommender systems handbook. Springer; 2011. .
[7] Jannach D, Zanker M, Jessenitschnig M, Seidler O. Developing a conversational travel advisor with
ADVISOR SUITE. Springer; 2007. p. 43–52.
[8] Vansteenwegen P, Souffriau W, Berghe GV, Van Oudheusden D. The city trip planner: an expert system for
tourists. Expert Systems with Applications. 2011;38(6):6540–6546.
[9] Papadimitriou CH. The Euclidean travelling salesman problem is NP-complete. Theoretical computer
science. 1977;4(3):237–244.
[10] Bellman R. Dynamic programming treatment of the travelling salesman problem. Journal of the ACM
(JACM). 1962;9(1):61–63.
[11] Hoffman KL, Padberg M, Rinaldi G. Traveling salesman problem. In: Encyclopedia of operations research
and management science. Springer; 2013. p. 1573–1578.
[12] Beyer HG, Schwefel HP. Evolution strategies–A comprehensive introduction. Natural computing.
2002;1(1):3–52.
[13] Kennedy J. Particle swarm optimization. In: Encyclopedia of machine learning. Springer; 2011. p. 760–766.
[14] Karaboga D, Basturk B. A powerful and efficient algorithm for numerical function optimization: artificial
bee colony (ABC) algorithm. Journal of global optimization. 2007;39(3):459–471.
[15] Ouaarab A, Ahiod B, Yang XS. Discrete cuckoo search algorithm for the travelling salesman problem.
Neural Computing and Applications. 2014;24(7-8):1659–1669.
[16] Brabazon A, O’Neill M, McGarraghy S. Bacterial foraging algorithms. In: Natural computing
algorithms. Springer; 2015. p. 187–199.
[17] Holland JH. Genetic algorithms. Scientific american. 1992;267(1):66–72.
[18] Lohrer MF. A comparison between the firefly algorithm and particle swarm optimization; 2013. .
[19] Yang XS. Firefly algorithm, stochastic test functions and design optimisation. vol. 2. Inderscience
Publishers; 2010. p. 78–84.
[20] Yang XS, He X. Firefly algorithm: recent advances and applications. vol. 1. Inderscience Publishers Ltd;
2013. p. 36–50.
[21] Kota L, Jármai K, et al. Preliminary Studies On The Fixed Destination Mmtsp Solved By Discrete Firefly
Algorithm. vol. 7. University of Miskolc, Department of Material Handling and Logistics; 2013. p. 95–102.
[22] Osaba E, Yang XS, Diaz F, Onieva E, Masegosa AD, Perallos A. A discrete firefly algorithm to solve a rich
vehicle routing problem modelling a newspaper distribution system with recycling policy. Springer; 2016. p. 1–14.
[23] Karp RM. Reducibility among combinatorial problems. In: Complexity of computer computations. Springer;
1972. p. 85–103.
[24] Schäfer R. Rules for using multi-attribute utility theory for estimating a user’s interests. In: Ninth
Workshop Adaptivität und Benutzermodellierung in Interaktiven Softwaresystemen; 2001. p. 8–10.
[25] Hamming RW. Error detecting and error correcting codes. Bell Labs Technical Journal. 1950;29(2):147–160.

24

Anda mungkin juga menyukai