BAB II KAJIAN TEORI
Pada bab kajian teori akan dibahas tentang teori graf, algoritma, algoritma semut, dan travelling salesman problem. Teori graf digunakan untuk menerapkan aplikasi rute Trans Jogja. Optimasi digunakan untuk mencari nilai optimal dalam menjalankan algoritma semut. Travelling salesman problem digunakan sebagai salah satu bentuk permasalahan rute terpendek Terminal Giwangan hingga Bantul Kota dengan menggunakan data berupa jarak antar halte. Data yang didapat dimodelkan ke dalam bentuk graf kemudian diselesaikan dengan metode algoritma semut. A. Teori Graf 1. Definisi Graf Suatu graf dapat dipandang sebagai kumpulan titik yang disebut simpul dan segmen garis yang menghubungkan dua simpul yang disebut dengan rusuk. Definisi 2.1 (Mardiyono, 1996:1) Graf G yang dilambangkan dengan πΊ = (π, πΈ) terdiri atas dua himpunan π dan πΈ yang saling asing. π bukan himpunan kosong dengan unsur-unsurnya disebut simpul,
sedangkan
unsur
himpunan
πΈ
disebut
rusuk.
Setiap
rusuk
menghubungkan dua simpul yang disebut simpul-simpul ujung dari rusuk tersebut. Contoh graf pada gambar 2.1 menunjukkan graf G dengan π = {π£1 , π£2 , π£3 , π£4 } dan πΈ = {π1 , π2 , π3 , π4 , π5 , π6 }.
8
πΊ Gambar 2.1 Contoh Graf πΊ 2. Keterhubungan Menurut Chartrand & Zang (2005:13), sebuah graf G dikatakan terhubung jika setiap dua simpul graf G terhubung. Dengan kata lain, graf G dikatakan terhubung jika ada suatu lintasan antara sembarang dua simpul. Graf dapat digunakan sebagai model dari suatu sistem, salah satunya yaitu model sistem rute perjalanan. Gambar 2.2 digunakan sebagai ilustrasi untuk membedakan graf berdasarkan rusuk yang dilalui dan simpul yang dituju dan disinggahi.
π» Gambar 2.2 Contoh Graf π» 9
Berikut akan dijelaskan keterhubungan graf yaitu jalan (walk), jejak (trail), lintasan (path), sikel (cycle), dan sirkuit (circuit). a. Jalan (Walk) Definisi 2.2 (Mardiyono, 1996: 41) Misalkan graf G dengan rusuk π = {π£1, π£2 , π£3 , β¦ , π£π } dan simpul πΈ = {π1, π2 , π3 , β¦ , ππ },
yang
membentuk
barisan
berhingga
π=
{π£1 , π1 , π£2 , π2 , π£3 , π3 , β¦ , π£π , ππ }. Maka, definisi jalan (walk) adalah suatu barisan yang suku-sukunya berupa simpul dan rusuk yang diurutkan secara bergantian sedemikian hingga rusuk ujung ππ adalah simpul π£πβ1 dan π£π . Pada gambar 2.2, contoh
suatu
jalan
(walk)
adalah
barisan
berhingga
π=
{π£1 , π2 , π£5 , π3 , π£4 , π5 , π£6 , π6 , π£5 }. b. Jejak (Trail) Definisi 2.3 (Mardiyono, 1996: 41) Jejak (Trail) adalah walk tanpa rusuk berulang. Pada gambar 2.2, contoh jejak adalah π = {π£1 , π2 , π£5 , π3 , π£4 , π4 , π£2 , π9 , π£6 , π6 , π£5 , π7 , π£3 }. c.
Lintasan (Path)
Definisi 2.4 (Mardiyono, 1996: 41) Lintasan (Path) adalah jejak tanpa simpul berulang. Contoh pada gambar 2.2 ditunjukkan oleh π = {π£1 , π1 , π£4 , π3 , π£5 , π6 , π£6 , π9 , π£2 , π8 , π£3 }.
10
d. Sirkuit (circuit) Definisi 2.5 Sirkuit adalah jalan tertutup (closed walk) dengan rusuk tidak berulang atau dengan kata lain sirkuit adalah jejak (trail) yang tertutup. Contoh sirkuit pada gambar 2.2 adalah π = {π£1 , π2 , π£5 , π6 , π£6 , π9 , π£2 , π8 , π£3 , π7 , π£5 , π3 , π£4 , π1 , π£1 } e.
Lintasan Hamilton
Definisi 2.6 Lintasan Hamilton adalah lintasan yang melalui setiap simpul di dalam graf tepat satu kali. f.
Sirkuit Hamilton
Definisi 2.7 Sirkuit Hamilton adalah graf sirkuit yang mengunjungi tiap simpul pada graf terhubung G tepat satu kali, kecuali simpul awal (yang juga merupakan simpul akhir) dilewati dua kali. Contoh Lintasan Hamilton dan Sirkuit Hamilton sebagai berikut:
G1
G2
G3
Gambar 2.3 Contoh Sirkuit Hamilton dan Lintasan Hamilton
11
Pada
gambar
2.3,
graf
G1
merupakan
contoh
lintasan
Hamilton
π = {π£1 , π£2 , π£3 , π£4 }, graf G2 adalah contoh sirkuit hamilton dengan rute π = {π£4 , π£3 , π£2 , π£1 , π£4 }, sedangkan graf G3 tidak memiliki lintasan Hamilton dan sirkuit Hamilton. 3.
Jenis Graf Graf dapat dibedakan berdasarkan ada tidaknya rusuk ganda, ada tidaknya
loop (gelang), dan ada tidaknya arah (Mardiyono, 1996). Berikut ini dijelaskan beberapa jenis graf, yaitu: a.
Graf Sederhana (Simple Graph)
Definisi 2.8 Graf sederhana adalah graf yang tidak mempunyai rusuk ganda dan tidak mempunyai loop (gelang). Graf sederhana terbagi menjadi beberapa jenis, yaitu: 1) Graf Nol Definisi 2.9 Graf Nol adalah suatu graf yang himpunan rusuknya merupakan himpunan kosong dengan notasi Hn, dengan π = jumlah simpul.
H1
H4
Gambar 2.4 Contoh Graf Nol Pada gambar 2.4, Graf H1 dan H4 masing-masing merupakan graf nol dengan banyak simpul 1 dan 4.
12
2) Graf Lengkap Definisi 2.10 Graf lengkap adalah suatu graf yang setiap pasang simpulnya berikatan. Graf lengkap yang dinotasikan dengan n simpul adalah K n . Semua contoh pada gambar 2.5 dibawah ini adalah graf lengkap dan dinotasikan sebagai K1, K2, K3, dan K4.
Gambar 2.5 Contoh Graf Teratur b. Graf Berarah Definisi 2.11 (Mardiyono, 1996: 10) Graf berarah adalah graf yang setiap rusuk mempunyai arah tertentu. Pada gambar 2.6 graf J1 merupakan contoh graf berarah.
J1 Gambar 2.6 Contoh Graf Berarah
13
c.
Graf Tak Berarah
Definisi 2.12 (Mardiyono, 1996: 10) Graf tak berarah adalah graf yang setiap rusuk tidak mempunyai arah tertentu. Pada gambar 2.7 graf J2 merupakan contoh graf tak berarah.
J2 Gambar 2.7 Contoh Graf Tak Berarah
B. Optimasi Optimasi adalah proses pencarian satu atau lebih penyelesaian layak yang berhubungan dengan nilai-nilai ekstrim dari satu atau lebih nilai objektif pada suatu masalah sampai tidak terdapat solusi ekstrim yang dapat ditemukan. (Intan Berlianty & Miftahol Arifin, 2010: 9). Optimal memiliki definisi yaitu nilai terbaik atau paling menguntungkan (Wikipedia: 2013). Pencarian rute optimal pada penelitian ini adalah pencarian rute terpendek. Metode yang digunakan untuk menyelesaikan masalah pencarian jalur terpendek yaitu metode konvensional dan metode heuristik. 1.
Metode Konvensional Metode konvensional adalah metode yang menggunakan perhitungan
matematis biasa. Metode konvensional dilakukan dengan membandingkan jarak 14
masing-masing antar simpul dan kemudian mencari jarak terpendeknya. Ada beberapa metode konvensional yang biasa digunakan untuk melakukan pencarian jalur terpendek, diantaranya : algoritma Djikstra, Algoritma Bellman-Ford, dan algoritma Floyd-Warshall (Iing Mutakhiroh, Indrato, Taufik Hidayat, 2007). 2.
Metode Heuristik Metode heuristik adalah sub-bidang dari kecerdasan buatan yang digunakan
untuk melakukan pencarian dan penentuan jalur terpendek. (Iing Mutakhiroh, Indrato, Taufik Hidayat, 2007). Ada beberapa algoritma pada metode heuristik yang biasa digunakan dalam permasalahan optimasi, diantaranya algoritma genetika, logika fuzzy, jaringan syaraf tiruan, simulated anneling, algoritma semut, dll. Beberapa Jenis Heuristik Searching (Intan Berlianty dan Miftahol Arifin, 2010:15) adalah: a.
Algoritma Immune
b.
Algoritma Koloni Semut
c.
Algoritma Genetika
d.
Logika Fuzzy
e.
Tabu Search
f.
Generate and test
C. Travelling Salesman Problem (TSP) Permasalahan TSP pada awalnya adalah suatu masalah yang ditemukan pedagang ketika berpergian dan singgah di beberapa kota hingga kembali ke kota semula. Selain masalah sarana transportasi, TSP juga mencakup beberapa masalah
15
lainnya, diantaranya masalah efisiensi pengiriman surat atau barang, layanan delivery service dari suatu tempat makan, dan efisiensi petugas bank yang melakukan pengisian Automatic Teller Machine (ATM) di n kota. Penerapan awal Algoritma Semut adalah pada permasalahan TSP. TSP dipilih menjadi kasus rute terpendek pertama yang diterapkan karena TSP merupakan suatu modifikasi perilaku koloni semut buatan yang dengan mudah diadaptasi ke dalam Algoritma Semut. Selain itu, TSP juga mudah dipahami dan penguraian langkah-langkah algoritma tidak dikaburkan dengan banyak istilah teknis (Marco Dorigo & Gianni Di Caro, 1999:146). TSP didefinisikan sebagai suatu permasalahan dalam mencari rute terpendek dengan membangun sebuah perjalanan yang masing-masing simpul dikunjungi tepat satu kali sampai kembali ke simpul awal. Dengan kata lain, TSP bertujuan mencari rute terpendek sebuah graf menggunakan sirkuit Hamilton. TSP hanya memiliki satu salesman dan depot tunggal sebagai simpul awal. TSP digambarkan sebagai graf lengkap berbobot πΊ = (π, πΈ) dengan π adalah himpunan simpul, sedangkan πΈ adalah himpunan rusuk yang menghubungkan simpul. Setiap rusuk (π, π) β πΈ adalah nilai (jarak) πππ yang merupakan jarak dari kota π ke kota π, dengan (π, π) β π. Pada TSP simetris, yaitu jarak dari kota π ke kota π sama dengan jarak dari π ke kota π, berlaku πππ = πππ untuk semua rusuk (π, π) β πΈ. Misalkan dalam graf lengkap G dengan π buah simpul (π > 2), maka graf tersebut mempunyai
(πβ1)! 2
buah sirkuit hamilton. Pada teorema lain, jika
terdapat graf lengkap G dengan jumlah simpul π > 2 dan n ganjil, maka ada
16
(πβ1)! 2
buah Sirkuit Hamilton saling asing, sedangkan untuk jumlah simpul π > 3
dan n genap terdapat
(πβ1)! 2
buah sirkuit hamilton.
TSP dimodelkan sebagai graf dengan n buah simpul yang mewakili kota-kota yang harus dikunjungi oleh sejumlah m salesman. Misalkan diberikan matriks n x n sebagai berikut.
π₯ππ
1
2
Tabel 2.1 Matriks π₯ππ 3 β¦
1
π₯11
π₯12
π₯13
β¦
2
π₯21
π₯22
π₯23
β¦
3
π₯31
π₯32
π₯33
β¦
β¦
β¦
β¦ π₯π1
n
β¦ π₯π2
π₯1π
π₯3π β¦
π₯π3
N
β¦
β¦ π₯ππ
π₯ππ adalah variabel biner dari kota i ke kota j yang bernilai sebagai berikut. π₯ππ = {
1 , ππππ πππ ππππππππππ ππππ πππ‘π π ππ πππ‘π π 0, ππππ π‘ππππ πππ ππππππππππ ππππ πππ‘π π ππ πππ‘π π
Selanjutnya, semua sel dalam baris dan kolom dijumlahkan satu persatu. 1. Penjumlahan sel baris pertama. βππ=1 π₯ππ ,
untuk π = 1.
2. Penjumlahan sel baris kedua. βππ=1 π₯ππ ,
untuk π = 2.
3. Penjumlahan sel baris ketiga. βππ=1 π₯ππ ,
untuk π = 3.
17
(2.1)
4. Penjumlahan sel dilakukan seterusnya hingga baris ke-n. Berikut ini penjumlahan sel untuk baris ke-n. βππ=1 π₯ππ ,
untuk π = π.
Persamaan-persamaan hasil penjumlahan sel dalam baris diatas dapat diringkas sebagai berikut π
β π₯ππ ,
π’ππ‘π’π π = 1,2,3, β¦ , π
(2.2)
π=1
Kemudian dilanjutkan penjumlahan sel dalam kolom pertama hingga ke-n. 1. Penjumlahan sel kolom pertama. βππ=1 π₯ππ ,
untuk π = 1.
2. Penjumlahan sel kolom kedua. βππ=1 π₯ππ ,
untuk π = 2.
3. Penjumlahan sel kolom ketiga. βππ=1 π₯ππ ,
untuk π = 3.
4. Penjumlahan sel dilakukan seterusnya hingga sel kolom ke-n. Berikut ini penjumlahan untuk sel kolom ke-n. βππ=1 π₯ππ ,
untuk π = π.
Persamaan-persamaan hasil penjumlahan sel dalam kolom diatas dapat diringkas sebagai berikut. π
β π₯ππ ,
π’ππ‘π’π π = 1,2,3, β¦ , π
(2.3)
π=1
Selanjutnya, untuk menjamin masing-masing kota hanya dikunjungi satu kali maka persamaan βππ=1 π₯ππ diberi nilai 1. Variabel πππ dimasukkan dalam 18
persamaan βππ=1 π₯ππ agar dapat diketahui bahwa rute dari i ke j terlewati atau tidak. πππ adalah jarak dari kota i ke kota j. Tujuan akhir TSP adalah mencari rute minimal, sehingga persamaan tersebut menjadi: π
π
π = πππ β β πππ π₯ππ . π’ππ‘π’π π, π = 1,2,3, β¦ , π
(2.4)
π=1 π=1
dengan kendala: βππ=1 π₯ππ = 1
π = 1,2,3,4, β¦ , π
(2.5)
βππ=1 π₯ππ = 1
π = 1,2,3,4, β¦ , π
(2.6)
βππ=1 π₯ππ = 0
π=π
(2.7)
Persamaan (2.5) dan Persamaan (2.6) menjamin bahwa setiap kota hanya dikunjungi sekali oleh salesman, sedangkan persamaan (2.7) menyatakan jika jarak dari dan menuju kota yang sama adalah nol. Sebagai contoh kasus TSP yang telah dibentuk ke dalam suatu graf yang terdiri dari 4 kota dan masing-masing kota terhubung satu sama lain dengan jarak tertentu. Jika kasus TSP dibawa ke dalam bentuk graf, maka diperoleh graf seperti pada gambar 2.8, dengan v1 hingga v4 merupakan kota dan bobot merupakan jarak antar kota.
19
Gambar 2.8 Contoh Kasus TSP Dari gambar 2.8 diketahui bahwa graf tersebut adalah graf berbobot dan tidak berarah. Berdasarkan gambar tersebut, akan ditentukan sirkuit Hamilton terpendek (πΏπππ ) yang harus dilalui seorang salesman dengan mengunjungi setiap kota tepat satu kali dan kembali lagi ke kota asal. Graf lengkap dengan π = 4 simpul seperti yang ditunjukkan pada gambar 2.8 mempunyai
(4β1)! 2
= 3 Sirkuit Hamilton, yaitu:
πΏ1 = (π£1 , π£2 , π£3 , π£4 , π£1 ) dengan panjang rute 6+8+9+9=32. πΏ2 = (π£1 , π£3 , π£4 , π£2 , π£1 ) dengan panjang rute 5 + 9 + 4 + 6 = 24. πΏ2 = (π£1 , π£3 , π£2 , π£4 , π£1 ) dengan panjang rute 9 + 4 + 8 + 5 = 26. Terlihat, sirkuit Hamilton terpendek dari kasus diatas adalah πΏπππ = πΏ2 dengan panjang sirkuit 24. D. Algoritma Kata βalgoritmaβ berasal dari nama matematikawan Persia abad kesembilan, Abu Jaβfar Mohammed Ibn Musa Al-Khowarizmi. Sampai pada tahun 1950, algoritma selalu diasosiasikan dengan Euclidβs Algorithm, yaitu suatu proses yang menjelaskan cara mencari bilangan pembagi terbesar untuk dua buah bilangan 20
(greatest common divisor). Definisi algoritma yaitu
metode langkah demi
langkah dari pemecahan suatu masalah. Pada Kamus Besar Bahasa Indoonesia (KBBI), definisi algoritma adalah suatu urutan logis pengambilan keputusan untuk pemecahan masalah. Algoritma mempunyai peran penting dalam matematika dan ilmu komputer yang didasarkan pada prinsip-prinsip matematika. Solusi masalah bisa dijalankan oleh komputer apabila solusi diubah penjabarannya menjadi serangkaian langkahlangkah yang tepat (Richard, 1998:134). Algoritma mempunyai ciri khas seperti yang dikutip dari Richard (1998:35) sebagai berikut: 1.
Masukan (Input) Algoritma memerlukan masukan untuk diolah. Pada penelitian ini masukan
adalah jarak tiap halte Bus Trans Jogja. 2.
Keluaran (Output) Setiap algoritma memberikan satu atau beberapa hasil keluaran. Pada
penelitian ini keluaran algoritma berupa jarak optimal. 3.
Presisi (Precision) Ciri algoritma selanjutnya adalah setiap langkah dinyatakan secara jelas
(presisi). 4.
Determinism Hasil intermediate dari tiap langkah eksekusi adalah tunggal dan semata-mata
bergantung pada masukan dan hasil dari langkah selanjutnya.\
21
5.
Terhingga (Finiteness) Algoritma berhenti setelah beberapa instruksi terhingga dilaksanakan.
6.
Kebenaran (Correctness) Produksi keluaran dari algoritma bernilai benar. Dengan kata lain, algoritma
secara tepat menyelesaikan masalah. 7.
Umum (Generality) Algoritma berlaku umum pada himpunan data yang dimasukkan (input).
E.
Algoritma Semut Algoritma semut pertama kali dipublikasikan Marco Dorigo tahun 1992
dalam tesisnya yang termasuk algoritma pertama yang bertujuan untuk mencari jalur optimal dalam graf berdasarkan perilaku semut mencari jalur dari sarang ke sumber makanan. Sesuai namanya, algoritma semut terinspirasi oleh observasi perilaku semut sungguhan. Semut merupakan serangga sosial yang hidup secara berkelompok atau berkoloni dan mempertahankan hidup koloni dengan perilakunya yang khas daripada hidup individu. Perilaku serangga sosial dalam mencari makanan telah menarik minat para ilmuwan karena mereka dapat mencapai
strukturisasi
koloni
yang
tinggi
jika
dibandingkan
dengan
kesederhanaan hubungan individu dalam koloni (Intan Berliyanti dan Miftahol Arifin, 2010: 62). Perilaku penting yang diteliti adalah semut dapat menemukan jalur terpendek dalam mencari makanan dan kembali lagi ke sarangnya. Selama perjalanan, semut meninggalkan jejak berupa feromon, yaitu suatu subtansi kimia
22
yang berasal dari kelenjar endokrin dan digunakan makhluk hidup untuk mengenali sesama spesies, individu lain, kelompok, dan untuk membantu proses reproduksi. Feromon yang tertinggal akan memberikan informasi kepada semutsemut selanjutnya yang akan mengikuti jejak feromon semut pertama. Proses peninggalan feromon disebut stigmergy, yaitu proses lingkungan yang dimodifikasi agar semut dapat mengingat jalan pulang ke sarang sekaligus sebagai sarana komunikasi semut dengan koloninya. Semut dapat menemukan jalur terpendek dalam algoritma semut dengan perilaku yang secara alamiah akan menemukan jalur terpendek dari sarang ke sumber makanan lalu kembali ke sarang. Jejak feromon merupakan media yang digunakan untuk berkomunikasi antar individu tentang informasi jalur dan digunakan untuk memutuskan kemana harus pergi. Seekor semut bergerak dengan meninggalkan seumlah feromon (dalam jumlah bervariasi) di tanah, sehingga menandai jalur yang diikuti jejak dari zat tersebut. Semut yang bergerak secara acak dapat mendeteksi jejak feromon diletakkan sebelumnya dan mengikuti jejak dengan probabilitas tinggi, sehingga memperkuat jejak dengan feromon semut itu sendiri. Perilaku kolektif yang muncul adalah bentuk perilaku di mana semakin banyak semut mengikuti sebuah jejak, maka jejak tersebut menjadi menarik untuk diikuti. Proses ini demikian ditandai dengan umpan balik yang positif, dengan probabilitas semut memilih suatu jalur meningkat bersamaan dengan jumlah semut yang memilih jalan yang sama dalam langkah-langkah sebelumnya.
23
Gambar 2.9 berikut adalah ilustrasi bagaimana semut dapat membangun rute optimal dengan diberi hambatan (obstacle).
Gambar 2.9 Jalur Semut dengan Hambatan (Obstacle) Misalkan ada sebuah jalur dari sumber makanan A ke sarang E seperti pada gambar 2.9 a). Tiba-tiba sebuah hambatan datang dan jalur sebelumnya terputus, sehingga pada posisi B semut-semut berjalan dari E menuju A (atau pada posisi D semut berjalan arah sebaliknya) harus memutuskan berbelok ke kanan atau kiri seperti pada gambar 2.9 b). Disini, pilihan jalur dipengaruhi oleh intensitas jejak feromon yang ditinggalkan semut pendahulunya. Tingkat feromon yang lebih tinggi di jalur kanan memberi stimulus yang lebih kuat, sehingga probabilitas lebih tinggi ke arah kanan, yang artinya semut banyak berjalan ke arah kanan. Semut pertama yang mencapai titik B (atau D) memiiliki probabilitas yang sama dalam memilih berbelok ke kiri atau ke kanan karena tidak ada feromon tertinggal pada dua jalur tersebut. Jalur BCD yang lebih pendek dari BHD menyebabkan
24
semut yang memilih jalur BCD akan mencapai D sebelum semut lain yang menempuh jalur BHD. Hasilnya semut selanjutnya yang datang dari ED akan menemukan jejak kuat di jalur DCB yang disebabkan oleh setengah koloni semut secara tidak sengaja melewati hambatan melalui ABCD yang secara otomatis melewati BCD. Pada akhirnya, semut-semut lebih memilih (dalam probabilitas) jalur DCB daripada jalur DHB. Akibatnya, jumlah semut yang melewati jalur BCD meningkat dalam satuan waktu daripada semut yang melewati jalur BHD. Hal ini menyebabkan jumlah feromon pada jalur yang lebih pendek meningkat lebih cepat daripada jalur lainnya. Oleh karena itu, probabilitas tiap semut memilih jalur dengan cepat jalur yang lebih pendek. Hasil akhir adalah dengan cepat, semutsemut memilih jalur yang lebih pendek seperti yang ditunjukkan gambar 2.9 c). Namun, hasil akhir tersebut tidak deterministik, sehingga memungkinkan eksplorasi rute alternatif. Semakin banyak semut yang melewati suatu lintasan, maka semakin banyak jejak feromon yang ditinggalkan. Akibatnya, jejak yang jarang dilewati akan menguap sehingga semut tidak melewati jejak tersebut lagi. 1.
Langkah-langkah dalam Algoritma Semut Beberapa langkah dalam menjalankan Algoritma Semut dijelaskan sebagai
berikut: a.
Inisialisasi harga parameter algoritma dan Feromon Awal Dalam Algoritma Semut, terdapat beberapa parameter yang perlu
diinisialisasikan, yaitu:
25
1) Intensitas jejak feromon antar simpul (πππ ) dan perubahannya (βπππ ) Penetapan nilai feromon awal dimaksudkan agar tiap-tiap ruas memiliki nilai ketertarikan untuk dikunjungi oleh tiap-tiap semut. πππ harus diinisialisasikan sebelum memulai siklus dan digunakan dalam persamaan probabilitas tempat yang akan dikunjungi. Nilai dari semua feromon pada awal perhitungan ditetapkan dengan angka kecil, yaitu 0 β€ πππ β€ 1. Ξπππ adalah perubahan harga intensitas jejak semut. βπππ diinisialisasikan setelah selesai satu siklus dan digunakan untuk memperbaharui intensitas jejak semut serta digunakan untuk menentukan πππ untuk siklus selanjutnya. 2) Banyak simpul (n) termasuk dij (jarak antar simpul) Banyak simpul (n) merupakan jumlah simpul yang akan dikunjungi semut pada tiap siklus. Nilai n ditentukan oleh pengguna. 3) Penentuan simpul awal dan simpul tujuan Semut yang akan melakukan tur harus memulai perjalanan dari simpul awal ke simpul tujuan. Dalam kasus TSP, simpul tujuan merupakan simpul awal. 4) Tetapan siklus-semut (π) π merupakan konstanta yang digunakan dalam persamaan untuk menentukan Ξπππ dengan nilai π β₯ 0. 5) Tetapan pengendali intensitas jejak semut (πΌ) πΌ digunakan pada persamaan probabilitas simpul yang akan dikunjungi dan berfungsi sebagai pengendali intensitas jejak semut. Hal tersebut dimaksudkan untuk menghindari akumulasi feromon yang tidak terbatas pada rusuk tersebut. Akumulasi feromon yang tidak terbatas tidak sesuai logika karena tingkat 26
feromon yang ditinggalkan tidak mungkin bertambah kuat tetapi akan terus berkurang. Nilai parameter Ξ± diberi nilai 0 β€ Ξ± β€ 1. 6) Tetapan pengendali visibilitas (Ξ²) π½ digunakan dalam persamaan probabilitas simpul yang akan dikunjungi dan berfungsi sebagai pengendali visibilitas dengan nilai π½ β₯ 0. Hal tersebut dimaksudkan untuk menghindari akumulasi yang tidak terbatas pada perhitungan visibilitas. 7) Visibilitas antar simpul (πππ ) Visibilitas antar simpul (πππ ) digunakan dalam persamaan probabilitas simpul yang akan dikunjungi. Sebelum memasuki perhitungan probabilitas dalam perhitungan algoritma semut maka terlebih dahulu dilakukan perhitungan awal untuk menghitung visibilitas antar simpul. Visibilitas antar simpul ini bergantung pada jarak antar titik. Nilai πππ diperoleh dari persamaan :
πππ =
1
(2.11)
πππ
dengan :
πππ = jarak dari simpul awal ke simpul tujuan 8) Jumlah semut (π) Jumlah semut (π) merupakan banyak semut yang akan melakukan siklus dalam Algoritma Semut. Nilai m ditentukan oleh pengguna.
27
9) Tetapan penguapan jejak semut (π) Tetapan penguapan jejak semut (π) digunakan untuk memperbaharui intensitas jejak feromon semut (πππ ) untuk siklus selanjutnya dan ditetapkan suatu parameter (π) dengan nilai
0 β₯ π β₯ 1.
10) Jumlah siklus maksimum (ππΆπππ₯) Jumlah siklus maksimum (ππΆπππ₯) bersifat tetap selama algoritma dijalankan, sedangkan πππ akan selalu diperbaharui. πππ diperbaharui pada setiap siklus algoritma mulai dari siklus pertama (NC β 1) sampai tercapai jumlah siklus maksimum (ππΆ = ππΆπππ₯) atau sampai terjadi konvergensi. b. Pengisian kota pertama ke dalam tabu list Setelah inisialisai πππ dilakukan, lalu semut pertama ditempatkan pada simpul pertama dan mulai inisialisasi untuk simpul kedua. Hasil inisialisasi simpul pertama harus diisikan sebagai elemen pertama dalam tabu list. Tabu list digunakan untuk menyimpan simpul-simpul yang telah dilewati. Hasil dari langkah tersebut adalah terisinya elemen pertama setiap semut dengan indeks simpul pertama, yang berarti bahwa setiap π‘πππ’π (π) dapat berisi indeks semua simpul. c.
Penyusunan rute kunjungan Penyusunan rute kunjungan dilakukan oleh koloni semut dari simpul pertama
ke simpul kedua. Kemudian masing-masing semut memilih salah satu simpul dari simpul-simpul yang tidak terdapat pada tabuk sebagai simpul tujuan. Perjalanan koloni semut dilanjutkan terus menerus hingga mencapai simpul tujuan. Jika s menyatakan indeks urutan kunjungan, titik asal dinyatakan sebagai tabuk(s), dan 28
titik-titik lainnya dinyatakan sebagai {N-tabuk}, maka untuk menentukan kota tujun digunakan persamaan probabilitas kota untuk dikunjungi sebagai berikut: πΌ
π½
[πππ ] .[πππ ]
, untuk ππ{π β π‘πππ’ πππ π‘} ππππ = {βππ=1[πππ]πΌ.[πππ]π½ 0 , π’ππ‘π’π π ππππππ¦π
(2.12)
dengan π sebagai simpul awal dan π sebagai simpul tujuan. d. Perhitungan panjang jalur setiap semut, pencarian rute terpendek, dan perhitungan perubahan harga intensitas feromon 1) Perhitungan panjang jalur setiap semut (Lk) Perhitungan panjang tur setiap semut atau πΏπ dilakukan setelah semua semut menyelesaikan satu siklus. Perhitungan ini dilakukan berdasarkan tabuk masingmasing dengan persamaan sebagai berikut
Lπ = ππ‘πππ’ (π),π‘πππ’(1) + βπβ1 π=1 ππ‘πππ’(π ),π‘πππ’(π +1)
(2.13)
dengan βπβ1 π=1 ππ‘πππ’(π ),π‘πππ’(π +1) adalah jarak rusuk dari titik s sampai titik s+1 pada tabu list yang ditempati oleh semut k, dan ππ‘πππ’ (π),π‘πππ’(1) merupakan jarak antara simpul n (akhir) dan simpul pertama (awal) pada tabu list yang ditempati oleh semut k. 2) Pencarian rute terpendek Setelah perhitungan πΏπ tiap semut selesai, akan diperoleh rute terpendek pada setiap iterasi (πΏπππππΆ ). Panjang rute terpendek secara keseluruhan disimbolkan dengan πΏπππ . 3) Perhitungan perubahan harga intensitas feromon antar simpul (βππππ )
29
Koloni semut akan meninggalkan jejak feromon pada lintasan antar simpul yang dilaluinya. Adanya penguapan dan perbedaan jumlah semut yang lewat menyebabkan kemungkinan terjadinya perubahan harga intensitas feromon π antarsimpul. βπππ adalah perubahan intensitas jejak feromon antar simpul dan π
adalah tetapan siklus semut. Persamaan βππππ disajikan sebagai berikut: π βπππ
e.
=
Q L { k
0,
,
jika semut menggunakan (i,j) dalam perjalanannya
(2.14) lainnya
Perhitungan harga intesitas jejak feromon untuk siklus selanjutnya dan
atur ulang harga perubahan jejak feromon antar simpul. 1) Perhitungan harga intesitas jejak feromon untuk siklus selanjutnya Intensitas jejak feromon semut antar simpul pada semua lintasan antar simpul ada kemungkinan berubah karena adanya penguapan dan perbedaan jumlah semut yang melewati. Untuk siklus selanjutnya, semut yang akan melewati lintasan tersebut harga intensitasnya telah berubah. Harga intensitas jejak kaki semut untuk siklus selanjutnya dihitung dengan persamaan: πππ = π . πππ (ππ€ππ) + βπππ
(2.15)
dengan Ο adalah tetapan penguapan jejak semut, πππ adalah intensitas jejak feromon antarsimpul, dan βπππ adalah perubahan intensitas jejak feromon. 2) Atur ulang harga perubahan intensitas jejak feromon antar simpul Perubahan harga intensitas feromon antar simpul untuk siklus selanjutnya perlu diatur kembali agar memiliki nilai sama dengan nol.
30
f.
Pengosongan tabu list Langkah berikutnya adalah pengosongan tabu list. Tabu list dikosongkan dan
langkah b diulangi jika NCmax belum tercapai atau belum terjadi konvergensi (semua semut hanya menemukan satu tur yang sama dengan jarak yang sama pula). Tabu list dikosongkan agar dapat diisi lagi dengan urutan simpul yang baru pada siklus selanjutnya. Langkah algoritma diulang lagi dari pengisian kota pertama ke dalam tabu list dengan parameter intensitas jejak feromon yang telah diperbaharui. Perhitungan
akan
dilanjutkan
hingga
semut
telah
menyelesaikan
perjalanannya mengunjungi tiap-tiap simpul. Hal tersebut akan diulangi hingga NCmax tercapai atau telah mencapai konvergensi.
31
2. Flowchart (diagram alir) Algoritma Semut Berikut disajikan langkah-langkah Algoritma Semut dalam bentuk flowchart: Mulai
Inisialisasi parameter
π , π, Οππ , Ξ±, Ξ², Ο,NCπππ₯
Hitung Probabilitas
Tidak
NCπππ₯ = Siklus + 1
Tempat tujuan tercapai ?
π = semut+1
Ya Hitung jarak dengan cara menjumlahkan semua node yang dilalui semut
Tidak
Banyak semut = m ? Y a
Perbaharui Οππ Tidak
Banyak Siklus = NCπππ₯ ? Ya Hitung jarak jalur terpendek
Selesai
Gambar 2.10 Flowchart Algoritma Semut
32
F. Keadaan Geografis Kabupaten Bantul Keadaan geografis di Kabupaten Bantul berguna untuk mengetahui garis besar tentang daerah yang menjadi obyek penelitian. Penjelasan yang diperlukan antara lain, keadaan alam atau kontur daerah Kabupaten Bantul, kepadatan penduduk, dan profesi masyarakat Bantul. Keadaan alam Kabupaten Bantul terletak di sebelah selatan Provinsi Daerah Istimewa Yogyakarta, berbatasan dengan: Sebelah Utara
: Kota Yogyakarta dan Kab. Sleman
Sebelah Selatan
: Samudera Hindia
Sebelah Timur
: Kab. Gununkidul
Sebelah Barat
: Kab. Kulonprogo
Secara geografis, Kabupaten Bantul terletak antara 07Β° 44' 04" - 08Β° 00' 27" Lintang Selatan dan 110Β° 12' 34" - 110Β° 31' 08" Bujur Timur. Kabupaten Bantul memiliki luas wilayah 506,85 Km2 (15,90% dari Luas wilayah Propinsi DIY) dengan topografi sebagai dataran rendah 40% dan lebih dari separuhnya (60%) daerah perbukitan yang kurang subur. Secara garis besar, wilayah Kab. Bantul terdiri dari : 1) Bagian Barat, adalah daerah landai yang kurang serta perbukitan yang membujur dari Utara ke Selatan seluas 89,86 km2 (17,73 % dari seluruh wilayah). 2) Bagian Tengah, adalah daerah datar dan landai merupakan daerah pertanian yang subur seluas 210.94 km2 (41,62 %). 3) Bagian Timur, adalah daerah yang landai, miring dan terjal yang keadaannya masih lebih baik dari daerah bagian Barat, seluas 206,05 km2 (40,65%).
33
4) Bagian Selatan, adalah sebenarnya merupakan bagian dari daerah bagian Tengah dengan keadaan alamnya yang berpasir dan sedikir berlagun, terbentang di Pantai Selatan dari Kecamatan Srandakan, Sanden dan Kretek. Tata guna lahan di Kabupaten Bantul adalah sebagai berikut : 1. Pekarangan : 18.327,15 Ha (36,16 %) 2. Sawah : 16.823,84 Ha (33,19 %) 3. Tegalan : 7.554,45 Ha (14,90 %) 4. Tanah Hutan : 1.697,80 Ha ( 3,35 %) Kabupaten Bantul dialiri enam sungai yang mengalir sepanjang tahun dengan panjang 114 km2, yaitu : 1. Sungai Oyo : 35,75 km 2. Sungai Opak : 19,00 km 3. Sungai Code : 7,00 km 4. Sungai Winongo : 18,75 km 5. Sungai Bedog : 9,50 km 6. Sungai Progo : 24,00 km Pemerintahan di Kabupaten Bantul terdiri dari 17 Kecamatan, 75 Desa, dan 933 Dusun. Data hasil registrasi penduduk awal tahun 2012 adalah sebagai berikut: 1.
Total penduduk 1.015.465 jiwa dengan total penduduk laki-laki sebanyak
502.762 jiwa (49,52%) dan total penduduk perempuan adalah 512.703 jiwa (50,48%). 2.
Kepala Keluarga (KK) sebanyak 306.515
34
3.
Mutasi penduduk Bantul tahun 2011 terdiri dari kelahiran (L) sebanyak 9.499
(0,94%), kedatangan (D) sejumlah 14.358 (1,41%), kematian (M) sebanyak 4.578 (0,45%), dam kepergian (P) sejumlah 11.350 (1,12%). 4.
Kepadatan penduduk Kab. Bantul sebesar 2.012,93 jiwa/km2.
35