Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Abstrak
Pencarian rute terpendek (shortest path problem) adalah permasalahan untuk
mencari rute minimum dari titik (node) awal ke titik (node) tujuan. Salah satu
algoritma yang dapat digunakan untuk menyelesaikan masalah pencarian rute
terpendek adalah Algoritma Genetika. Algoritma genetika digunakan untuk
mencari rute terpendek yang akan dilalui oleh petugas pemadam kebakaran di
wilayah Kota Pontianak dengan memperhatikan kondisi jalan yaitu waktu
kemacetan dan panjang ruas jalan. Pencarian rute terpendek dilakukan
berdasarkan titik awal, titik tujuan dan waktu keberangkatan. Pada penelitian
ini, metode seleksi yang digunakan adalah roulette wheel dan elitisme. Metode
crossover yang digunakan yaitu Partially Mapped Crossover (PMX) dengan
probabilitas crossover 0,6 dan probabilitas mutasi 0,01. Berdasarkan hasil
penelitian, rute terpendek merupakan rute tercepat tetapi jarak terpendek tidak
berarti rute terpendek karena memperhitungkan faktor nilai bobot kemacetan
jalan.
Kata Kunci: Algoritma Genetika, Shortest Path Problem, Crossover, Mutasi
19
Jurnal Coding Sistem Komputer Universitas Tanjungpura
Volume 02 No. 1 (2014), hal 19 – 25
ISSN : 2338-493x
Yaitu proses membangkitkan sejumlah seleksi induk yang akan digunakan ada
individu secara acak atau melalui lah roulette wheel selection dan elitisme.
prosedur tertentu.
Algoritma seleksi Roulette Wheel:
b. Fungsi Evaluasi 1. Hitung total fitness (f):
Fungsi evaluasi merupakan tahapan Total fitness = ∑ fk ; k= 1, 2, ...n
memberikan nilai dengan menghitung 2. Hitung probabilitas fitness (pk) tiap
nilai fitness setiap kromosom. Pada individu:
masalah optimasi, jika solusi yang dicari pk = fitness(i) / total_Fitness
adalah memaksimalkan sebuah fungsi h 3. Hitung probabilitas komulatif (qk):
(dikenal sebagai masalah maksimasi), q1 = p1
maka nilai fitness yang digunakan qk = qk-1 + pk ; k= 2,3,
adalah nilai dari fungsi h tersebut, f = h 4. Pilih induk yang akan di crossover
(dimana f adalah nilai fitness). Tetapi dengan cara:
jika masalahnya adalah meminimalkan Bangkitkan bilangan random r. Jika qk<
fungsi h (masalah minimasi), maka r dan qk+1 > r, maka pilih kromosom ke
fungsi h tidak bisa digunakan secara (k+1) sebagai pilihan induk.
langsung. Hal ini disebabkan adanya
aturan bahwa individu yang memiliki d. Kawin Silang (Crossover)
nilai fitness tinggi lebih mampu ber- Crossover adalah proses kawin silang
tahan hidup pada generasi berikutnya. yang melibatkan dua induk untuk
Oleh karena itu, nilai fitness yang bisa membentuk kromosom baru. Crossover
digunakan adalah f = 1/h, artinya tidak selalu dilakukan pada semua
semakin kecil nilai h, semakin besar kromosom yang ada, kromosom dipilih
nilai f. Pada masalah-masalah tertentu h secara acak untuk dilakukan crossing
bisa bernilai 0, yang mengakibatkan f dengan probabilitas crossover antara 0,6
dapat bernilai tak hingga. Untuk sampai 0,95. Crossover dilakukan
mengatasinya, h perlu ditambah sebuah dengan harapan kromosom-kromosom
bilangan yang dianggap sangat kecil baru yang terbentuk dapat lebih baik
sehingga nilai fitnessnya menjadi: dari kromosom lama.
(Suyanto, 2005)
1
e. Mutasi
f ..................(1) Proses mutasi bertujuan untuk
( a h)
dengan: mengubah salah satu atau beberapa gen
f = nilai fitness dalam satu kromosom. Parameter yang
a= bilangan yang dianggap sangat kecil sangat penting dalam mutasi adalah
dan bervariasi sesuai dengan masalah probabilitas mutasi. Probabilitas mutasi
yang akan diselesaikan. menunjukkan persentase dari jumlah to-
tal gen dalam satu populasi yang akan
Pada penelitian ini, h merupakan nilai mengalami mutasi. Umumnya, proba-
panjang ruas jalan berdasarkan nilai bilitas mutasi diberi nilai yang kecil
kemacetan setiap rute. sebab, jika terlalu besar akan terlalu ba-
Sehingga, h dihitung dengan rumus: nyak gangguan acak, sehingga anak ke-
n
h x i yi ..............(2) hilangan sifat induknya (Kusumadewi,
i 1 2003).
dengan:
h = nilaifungsievaluasi 3. PERANCANGAN SISTEM
xi= panjangruasjalan 3.1 Perancangan Algoritma Genetika
yi= nilaibobot kemacetanjalan
Pada penelitian ini perancangan algo-
c. Seleksi ritma genetika berisikan masukan, pro-
Seleksi merupakan metode untuk men- ses dan keluaran.
dapatkan calon induk yang baik. Metode
3.1.1 Masukan
20
Jurnal Coding Sistem Komputer Universitas Tanjungpura
Volume 02 No. 1 (2014), hal 19 – 25
ISSN : 2338-493x
3.1.2 Keluaran
Keluaran yang diperoleh yaitu rute
Tabel 1SpesifikasiAlgoritmaGenetika terpendek.
Parameter Awal Nilai dan Metode 3.2 Perancangan Aplikasi
Titik awal 4 titik awal
Titik tujuan 49 titik tujuan Sistem pencarian rute terpendek dimulai
Jumlah node
53
ketika user memasukan titik awal, titik
keseluruhan tujuan dan waktu keberangkatan pada
Panjang kromosom
16 aplikasi. Setelah menekan tombol “cari
maksimum
Metode seleksi yang 1.Seleksi Roulette rute” maka proses algoritma genetika
digunakan Wheel akan bekerja. Proses algoritma genetika
21
Jurnal Coding Sistem Komputer Universitas Tanjungpura
Volume 02 No. 1 (2014), hal 19 – 25
ISSN : 2338-493x
dimulai dari pembentukan populasi awal oleh user. Untuk membangkitkan popu-
berisi sejumlah kromosom yang menjadi lasi awal dibuat matriks dua dimensi
pilihan rute alternatif, kemudian proses yang akan membentuk rute jalan.
evaluasi yaitu perhitungan nilai evaluasi Berikut data matriks inisialiasi rute jalan
kromosom dan nilai fitness. Selanjutnya awal.
tahapan seleksi nilai fitness untuk meng-
hasilkan kromosom baru dengan nilai $tempRute = “”;
fitness terbaik. Kromosom baru yang $rute[1][4] = 4;
dihasilkan akan dilanjutkan ke tahapan $rute[1][5] = 5;
crossover dan mutasi. Proses ini akan $rute[1][6] = 6;
terus berlangsung sampai kriteria peng- $rute[1][15] = 15;
hentian iterasi tercapai dan dihasilkan $rute[2][7] = 7;
rute terpendek. $rute[2][8] = 8;
$rute[2][10] = 10;
3.3 Perancangan Antarmuka $rute[3][4] = 4;
Perancangan antarmuka dibuat pada $rute[3][7] = 7;
tampilan web browser dengan program ........
PHP. Aplikasi ini memiliki satu buah
form utama, pada form utama ini user
akan memasukan titik awal, titik tujuan b. Evaluasi
dan waktu keberangkatan yang dibu- Pada tahap evaluasi mencari nilai
tuhkan untuk menjalankan sistem. Tam- evaluasi dan nilai fitness setiap kro-
pilan utama sistem ditunjukkan pada mosom. Nilai evaluasi menghitung pan-
Gambar 2 berikut. jang ruas jalan dan nilai kemacetan
berdasarkan waktu keberangkatan. Pada
program rumus evaluasi dan fitness
dituliskan sebagai berikut:
c. Seleksi
Proses seleksi yaitu membandingkan
nilai probabilitas komulatif dengan nilai
random roulette whell kemudian dipilih
nilai probabilitas komulatif yang lebih
Gambar 2 Tampilan Utama Aplikasi besar untuk dijadikan kromosom baru
4. IMPLEMENTASI DAN sebagai hasil seleksi. Proses seleksi
PENGUJIAN dituliskan sebagai berikut:
4.1 Implementasi
//membandingkannilaikomu-
Perangkat lunak yang dibangun pada latifdengannilai roulette wheel
penelitian ini diimplementasikan meng- if(($arrKomulatif[($j-
gunakan program PHP. Adapun imple- 1)]<$arrRandomRW[$i])and
mentasi algoritma genetika yang dila- ($arrRandomRW[$i]
kukan terdapat 6 tahapan, yaitu sebagai <$arrKomulatif[($j)]))
berikut:
c. Crossover
a. Inisialisasi Kromosom Proses crossover membangkitkan bila-
Pada tahap inisialisasi membangkitkan ngan random sebanyak jumlah kro-
populasi awal secara random berdasar- mosom dalam satu populasi, kemudian
kan masukan titik awal dan titik tujuan membandingkannya dengan probabilitas
22
Jurnal Coding Sistem Komputer Universitas Tanjungpura
Volume 02 No. 1 (2014), hal 19 – 25
ISSN : 2338-493x
crossover dan dipilih bilangan random acak sebanyak jumlah gen keseluruhan
yang lebih kecil dari 0,6. Kromosom dan dipilih bilangan acak yang lebih
yang terpilih akan mengalami crossover kecil dari probabilitas mutasi 0,01.
dengan metode partially mapped cross- Kemudian nilai dari gen yang terpilih
over, yaitu menentukan dua posisi akan saling ditukarkan. Hasil mutasi
substring kromosom pada aturan acak. akan terbentuk populasi baru. Setiap
Kemudian menukarkan dua bagian populasi baru hasil mutasi, akan
substring induk untuk menghasilkan digunakan sebagai populasi awal untuk
anak. Selanjutnya, mengecek kromosom generasi berikutnya.
ke-2 ada yang sama atau tidak, jika ada
yang sama maka gen akan ditukarkan. Pada program proses mutasi dituliskan
Hasil crossover akan terbentuk populasi sebagai berikut:
baru untuk proses selanjutnya, yaitu
proses mutasi. // menghitung jumlah gen
$jlhseluruh += $jlhdatarute;
Pada program proses crossover //menghitung jumlah gen yang akan
dituliskan sebagai berikut: mengalami mutasi
//perulangan sebanyak $jlhRute $jlhgendimutasi =
for($i=0;$i<$jlhRute;$i++){$arrCO[] = ceil($probMutasi*$jlhseluruh);
nilacak(); //bilangan acak
//membandingkan dengan Probabilitas $arrRandomSeluruh[]= nilacak();
crossover if($arrRandomSeluruh[$i]<=
if($arrCO[$i]<= $probCrossover){ $probMutasi){
//menukarkan nilai gen yang terpilih
// menentukan dua posisi substring
$tempTukar = $genTukar1;
kromosom pada aturan acak
$jlhSubAcak = rand (2, $batas-2); $arrTukar1[$indeksTukar1] =
$awalIndSubAcak = rand(1, ($batas-1- $genTukar2;
$jlhSubAcak)); $arrTukar2[$indeksTukar2] =
$akhirIndSubAcak= $awalIndSubAcak+ $tempTukar;
($jlhSubAcak-1);
//menukarkan dua bagian substring induk
untuk menghasilkan anak e. Penghentian Iterasi
$subA[] = $arrRuteA[$i]; Proses algoritma genetika akan berhenti
$subB[] = $arrRuteB[$i]; setelah mencapai batas maksimum yaitu 1000
$temp = $arrRuteA[$i]; iterasi. Proses penghentian iterasi pada
$arrRuteA[$i] = $arrRuteB[$i]; program ditunjukan sebagai berikut:
$arrRuteB[$i] = $temp;
// mengecek kromo-som ke-2 ada yang //batasmaksimumiterasi
sama atau tidak, for($turunan=1;$turunan<=1000;$turunan
$sama = array(); ++){
for($i=0;$i<(count($arrRuteB));$i++){
for($j=($i+1);$j<(count($arrRuteB));$j++)
4.2 Pengujian
{
1. Pengujian pertama dari titik awal 1 yang
if($arrRuteB[$i]== $arrRuteB[$j]){ berada di Jl. A.Yani, ketitik tujuan 42 yang
$sama[] = $j berada di Jl. Kom. Yos. Sudarso. Hasil
pengujian ditunjukan Tabel 2 berikut.
d. Mutasi
Proses mutasi dimulai dengan meng- Tabel 2. Hasil Pengujian
hitung jumlah gen keseluruhan dalam
satu populasi. Kemudian menghitung
jumlah gen yang akan mengalami mu-
tasi. Selanjutnya, membuat bilangan
23
Jurnal Coding Sistem Komputer Universitas Tanjungpura
Volume 02 No. 1 (2014), hal 19 – 25
ISSN : 2338-493x
24
Jurnal Coding Sistem Komputer Universitas Tanjungpura
Volume 02 No. 1 (2014), hal 19 – 25
ISSN : 2338-493x
waktu tersebut nilai bobot kemacetan ja- [2] Suyanto. (2005). Algoritma Genetika
lan macet yaitu dalam keadaan lalu dalam Matlab.Yogyakarta: Andi
lintas sangat padat. Offset .
DAFTAR PUSTAKA
[1] Kusumadewi, Sri. (2003). Artificial
Intilligence. Yogyakarta: Graha
Ilmu.
25