Aplikasi Algoritme Genetika untuk Optimasi Rute Distribusi Minyak Goreng di Kawasan Jakarta

APLIKASI ALGORITME GENETIKA UNTUK OPTIMASI
RUTE DISTRIBUSI MINYAK GORENG
DI KAWASAN JAKARTA

IMADUDIN MUHARROMI

DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2015

PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Aplikasi Algoritme
Genetika Untuk Optimasi Rute Distribusi Minyak Goreng di Kawasan Jakarta
adalah benar karya saya dengan arahan dari komisi pembimbing dan belum
diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber
informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak
diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam
Daftar Pustaka di bagian akhir skripsi ini.

Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut
Pertanian Bogor.
Bogor, April 2015

Imadudin Muharromi
NIM G64100097

ABSTRAK
IMADUDIN MUHARROMI. Aplikasi Algoritme Genetika untuk Optimasi Rute
Distribusi Minyak Goreng di Kawasan Jakarta. Dibimbing oleh HERU SUKOCO
dan YANDRA ARKEMAN.
Masalah distribusi menjadi sebuah tantangan tersendiri bagi sebuah
perusahaan. Efisiensi distribusi menjadi salah satu faktor produksi yang vital
untuk memasarkan produk secara cepat dan murah. Pada penelitian ini akan
digunakan algoritme genetika (AG) untuk proses optimasi penjadwalan distribusi
minyak goreng di kawasan kota Jakarta. Algoritme genetika adalah suatu teknik
pencarian (searching technique) dan teknik optimasi yang cara kerjanya meniru
proses evolusi dan perubahan struktur genetika pada makhluk hidup. Tujuan dari
pembuatan aplikasi ini adalah untuk mengaplikasikan algoritme genetika pada
distribusi minyak goreng berbasis algoritme travelling salesman problem (TSP) di

kota Jakarta. Data yang digunakan berupa latitude dan longitude dari 136 titik
yang dibagi menjadi 15 gugus menggunakan fuzzy clustering kemudian dihitung
jarak dari masing-masing rute menggunakan jarak euclidean. Aplikasi ini
dikembangkan menggunakan bahasa C dan diuji dengan metode blackbox. Dari
pengujian aplikasi ini didapatkan jalur terpendek dari masing-masing gugus
beserta nilai operator yang paling optimal berlaku untuk setiap gugus.
Kata kunci: algoritme genetika, optimasi rute, fuzzy clustering, travelling
salesman problem (TSP)

ABSTRACT
IMADUDIN MUHARROMI. The Application Of Genetic Algorithms for Route
Optimization Distribution Of Cooking Oil in Jakarta Region. Supervised by
HERU SUKOCO and YANDRA ARKEMAN.
The distribution problem becomes a challenge for a company. Distribution
efficiency becomes one of the vital factors of production in order to market the
products quickly and cheaply. In this research, we utilize genetic algorithms to
optimize process scheduling distribution of cooking oil in Jakarta. A genetic
algorithm is a technique of search that mimics the process of evolution and
genetic structure changes in living things. This research aims to apply genetic
algorithms for distribution of cooking oil-based algorithm for travelling salesman

problem (TSP) in Jakarta. The data used are in the form of a latitude and longitude
of 136 points. They are divided into 15 clusters using fuzzy clustering. The path
of each cluster is calculated using the euclidean distance. This application is
developed using the C language and tested with the black box method. We obtain
the shortest path from each cluster along with the most optimal value operator that
applies to each cluster.
Keywords: genetic algorithm, route optimization, fuzzy clustering, travelling
salesman problem (TSP)

APLIKASI ALGORITME GENETIKA UNTUK OPTIMASI
RUTE DISTRIBUSI MINYAK GORENG
DI KAWASAN JAKARTA

IMADUDIN MUHARROMI

Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer
pada
Departemen Ilmu Komputer


DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2015

Penguji: Irman Hermadi, SKom MS PhD

Judul Skripsi : Aplikasi Algoritme Genetika untuk Optimasi Rute Distribusi
Minyak Goreng di Kawasan Jakarta
Nama
: Imadudin Muharromi
NIM
: G64100097

Disetujui oleh

DrEng Heru Sukoco, SSi MT
Pembimbing I


Dr Ir Yandra Arkeman, MEng
Pembimbing II

Diketahui oleh

Dr Ir Agus Buono, MSi MKom
Ketua Departemen

Tanggal Lulus :

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanallahu wata’ala. atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Judul
penelitian yang dilaksanakan sejak bulan Desember 2013 ini ialah Aplikasi
Algoritme Genetika untuk Optimasi Rute Distribusi Minyak Goreng di Kawasan
Jakarta.
Penulis mengucapkan terima kasih yang tak terhingga kepada DrEng Heru
Sukoco, SSi MT dan Dr Ir Yandra Arkeman, MEng selaku pembimbing atas
arahan dan bimbingan selama penelitian dan penyusunan karya ilmiah ini hingga

selesai. Terima kasih kepada Bapak Irman Hermadi, SKom MS PhD selaku
penguji yang telah banyak memberi saran. Terima kasih yang tak terhingga
kepada keluarga tercinta Ayah, Ibu, Adek Faris, dan atas do’a, dukungan, dan
kasih sayang yang selalu diberikan. Terima kasih kepada Sodik, Yuda, Fachrul,
Randa, Fikar, Luqman, dan semua anak lab NCC yang sudah membantu dikala
susah. Terima kasih kepada Rivo, Rake, Marina, Aziz, dan semua teman-teman
Pixels 47 atas semua kebersamaan, kekeluargaan, semangat, canda tawa, dan
motivasinya dan terima kasih kepada Afrilia Mada Yunita Ningrum untuk
semuanya.
Semoga karya ilmiah ini bermanfaat.

Bogor, April 2015
Imadudin Muharromi

DAFTAR ISI
DAFTAR TABEL

vi

DAFTAR GAMBAR


vi

DAFTAR LAMPIRAN

vi

DAFTAR TABEL

viii

DAFTAR GAMBAR

viii

PENDAHULUAN

1

Latar Belakang


1

Perumusan Masalah

2

Tujuan Penelitian

2

Manfaat Penelitian

2

Ruang Lingkup Penelitian

2

METODE


2

Analisis permasalahan

3

Penentuan Ruang Lingkup

4

Implementasi

4

Optimasi dengan AG

4

Pengujian


8

HASIL DAN PEMBAHASAN
SIMPULAN DAN SARAN

8
13

Simpulan

13

Saran

14

DAFTAR PUSTAKA

15


LAMPIRAN

16

RIWAYAT HIDUP

21

DAFTAR TABEL
1
2
3
4

Daftar nilai operator dari masing masing skenario
Daftar nilai fitness masing-masing gugus pada skenario 1
Daftar nilai fitness masing-masing gugus pada skenario 2
Daftar nilai fitness masing-masing gugus pada skenario 3

9
9
10
12

DAFTAR GAMBAR
1
2
3
4

Bagan alir metode penelitian
Ilustrasi permasalah TSP pada gugus 13
Bagan alir algoritme genetika
Grafik fitness landscape dari skenario 1

3
3
5
13

PENDAHULUAN
Latar Belakang
Sebuah perusahaan seperti perusahaan minyak tentu memiliki banyak
karyawan dengan banyak proses bisnis di dalamnya. Salah satu prosesnya yaitu
menugaskan kurir untuk mendistribusikan produk dari pabrik menuju pasar untuk
dijual kepada konsumen. Perusahaan yang baik pasti memikirkan bagaimana
caranya agar distribusi sampai dengan cepat dan tidak menghabiskan biaya. Orang
yang bertugas untuk mengatur jalur distribusi tentu mengalami kesulitan dengan
jumlah produk yang harus didistribusikan ke semua pasar mengingat banyak
faktor yang dipertimbangkan seperti kemacetan, lebar jalan, jam kerja, jalur yang
harus dilewati terlebih dahulu dan lain sebagainya. Perusahaan membutuhkan
solusi untuk kasus travelling salesman problem (TSP).
TSP adalah suatu permasalahan klasik dalam kaitannya dengan pengiriman
barang. Pada TSP, optimasi yang diinginkan yaitu ditemukan rute perjalanan
paling pendek untuk melewati sejumlah tempat tujuan dengan jalur tertentu
sehingga setiap tempat tujuan hanya terlewati satu kali dan perjalanan diakhiri
dengan kembali ke tempat awal si pengirim (Baharudin et al. 2012). Terdapat
biaya pada setiap ruas antar kota, maka perumusan TSP yaitu mencari rute dengan
biaya terkecil. Ruang pencarian dari TSP yaitu jumlah permutasi dari n kota. Oleh
karena itu besar ruang pencariannya adalah n!. Pada kasus dengan nilai n sangat
besar, dibutuhkan algoritme yang dapat menemukan solusi efektif dengan waktu
komputasi yang wajar. Banyak metode yang dapat dipakai untuk menyelesaikan
TSP yaitu hill climbing method, ant colony system dan dynamic programming.
Metode lain yang dapat dipakai untuk menyelesaikan TSP adalah algoritme
genetika.
Algoritme genetika (AG) adalah suatu teknik pencarian (searching
technique) dan teknik optimasi yang cara kerjanya meniru proses evolusi dan
perubahan struktur genetika pada makhluk hidup (Arkeman et al. 2012). Prinsip
utama genetika ini diilhami dari proses seleksi alam, yaitu individu-individu
bersaing untuk mempertahankan hidup dan melakukan reproduksi. Individuindividu yang lebih bisa menyesuaikan diri akan terus bertahan dan selanjutnya
melakukan penyilangan dan mutasi selama berulang kali sehingga menghasilkan
individu paling cocok.
AG telah terbukti dapat digunakan untuk menyelesaikan permasalahan
searching dan optimasi yang mempunyai kompleksitas yang tinggi seperti TSP,
penjadwalan flow shop, dan job shop. Solusi TSP adalah jalur yang melewati
semua kota dan jaraknya paling pendek (Basuki 2003). Pada umumnya solusi
yang didapatkan oleh AG semakin baik apabila jumlah populasi yang
dibangkitkan cukup besar dan proses mutasi sering terjadi.
Penelitian ini akan mengaplikasikan AG pada kasus distribusi pengiriman
minyak yang berupa TSP untuk mendefinisikan jalur distribusi minyak goreng ke
dalam 136 pasar yang dibagi menjadi 15 gugus di kawasan Jakarta untuk
mendapatkan jalur terpendek untuk setiap gugus yang ada.

2
Perumusan Masalah
Berdasarkan latar belakang di atas, maka masalah yang akan diteliti adalah
bagaimana menerapkan algoritme genetika ke dalam masalah distribusi minyak
goreng berupa TSP di kawasan Jakarta.
Tujuan Penelitian
Penelitian ini bertujuan untuk menentukan jalur distribusi minyak goreng
serta menentukan nilai dari masing-masing operator algoritme genetika yang
paling optimal untuk penentuan rute distribusi dari 15 gugus.
Manfaat Penelitian
Dengan adanya penelitian ini diharapkan user menentukan solusi untuk
distribusi minyak goreng berupa jalur distribusi khususnya di kawasan Jakarta
sehingga bisa menghemat pengeluaran untuk anggaran distribusi.
Ruang Lingkup Penelitian
Ruang lingkup dalam pengembangan sistem ini adalah sebagai berikut:
1 Data yang digunakan adalah data sekunder
2 Objek yang dijadikan penelitian adalah latitude dan longitude pada
googlemaps
3 Diasumsikan jarak berupa garis lurus yang dihitung dengan rumus euclidean
4 Pengembangan sistem menggunakan bahasa pemrograman C

METODE
Metode pengembangan yang digunakan pada penelitian ini terdiri dari
beberapa tahapan yaitu analisis permasalahan, penentuan ruang lingkup TSP,
implementasi, optimasi dengan AG dan pengujian.

3
Mulai

Analisis permasalahan

Penentuan ruang lingkup

Implementasi

Optimasi dengan AG

Pengujian
Tidak sesuai

Sesuai
Evaluasi

Selesai

Gambar 1 Bagan alir metode penelitian
Analisis Permasalahan
TSP merupakan sebuah permasalah optimasi yang dapat diterapkan pada
berbagai kegiatan seperti penentuan jalur distribusi. Masalah optimasi TSP
terkenal dan telah menjadi standar untuk mencoba algoritme yang komputasional.
Pokok permasalahan dari TSP adalah seorang salesman harus mengunjungi
sejumlah kota yang diketahui jaraknya satu dengan yang lainnya. Semua kota
yang ada harus dikunjungi oleh salesman tersebut dan kota tersebut hanya boleh
dikunjungi tepat satu kali. Permasalahannya adalah bagaimana salesman tersebut
dapat mengatur rute perjalanannya sehingga jarak yang ditempuhnya merupakan
jarak minimum.

Gambar 2 Ilustrasi permasalahan TSP pada gugus 13

4
Tahapan analisis permasalahan dipecah lagi menjadi beberapa bagian yaitu:
1 Faktor penyebab apa saja yang mempengaruhi kecepatan distribusi diantaranya
kemacetan, tipe jalan, waktu tempuh, biaya perjalanan dan jumlah sumber daya
yang terbatas
2 Komponen apa saja yang terlibat dalam distribusi minyak goreng yaitu
permintaan di setiap titik, jumlah armada pengangkut beserta kapasitas, jarak
tempuh, index kinerja jalan, biaya perjalanan, biaya bongkar muat dan waktu
tempuh
3 Bagaimana memperoleh jalur distribusi secara cepat, akurat dan murah
Penentuan Ruang Lingkup
Tahapan ini meliputi penentuan komponen apa saja yang akan digunakan
meliputi data yang digunakan dan pemilihan metode yang tepat untuk
penyelesaian masalah. Data yang digunakan adalah data sekunder. Dari beberapa
metode yang ada untuk memecahkan masalah TSP seperti hill climbing method,
ant colony system, dynamic programming dan AG, yang dipilih adalah AG.
Implementasi
Pada tahapan ini dilakukan implementasi sesuai dengan faktor-faktor yang
telah ditentukan sebelumnya. Data yang digunakan merupakan data sekunder
berupa latitude dan longitude setiap kota yang diambil dari Google Maps dibagi
ke dalam 15 gugus dengan metode fuzzy clustering (Utami 2014). Selanjutnya
dibuat aplikasi untuk menentukan jalur distribusi minyak goreng menggunakan
AG. Setiap nilai operator telah ditentukan sebelumnya dan dimasukkan ke dalam
3 skenario. Aplikasi dibuat menggunakan bahasa pemrograman C.
Optimasi dengan AG
Algoritme Genetika adalah sebuah tehnik optimasi yang berdasarkan pada
proses evolusi alam. Proses algoritme genetika terdiri dari beberapa langkah, yaitu
inisialisasi populasi, evaluasi, seleksi, persilangan (crossover), dan mutasi.
Pertama-tama, proses inisialisasi populasi adalah suatu proses pengkodean atas
solusi dari permasalahannya. Hasil berbentuk string yang merupakan representasi
dari suatu kromosom. Proses evaluasi adalah proses penjabaran nilai fitness dari
masing masing kromosom. Proses seleksi menentukan kromosom mana yang
tetap tinggal pada generasi berikutnya. Proses crossover akan menghasilkan
kromosom baru yang merupakan pengganti dari kromosom yang hilang sehinga
total kromosom pada satu generasi berjumlah tetap. Proses mutasi memungkinkan
terjadinya kromosom baru secara acak. Prosedur dapat dilihat pada bagan alir
berikut:

5

Pembangkitan
populasi

Mulai

evaluasi

seleksi

mutasi

crossover

Tidak
selesai

Ya

Solusi?

Gambar 3 Bagan alir algoritme genetika
Pembangkitan populasi
Dalam inisialisasi populasi terdapat representasi kromosom dan
pembangkitan populasi. Pada kasus TSP, sebuah kromosom direpresentasikan
sebagai sebuah rute. Sebuah kromosom mempunyai jumlah gen sebanyak jumlah
titik. Sebagai contoh, pada gugus 1 yang mempunyai 10 kota, maka sebuah
kromosom direpresentasikan dengan 10 gen. Pembangkitan populasi dilakukan
dengan cara memberikan nilai random pada setiap gen, kemudian dari nilai
tersebut diurutkan dari yang terkecil ke yang terbesar untuk mendapatkan sebuah
kromosom yang mewakili sebuah rute.
nilai random
gen

= [ 2 48 9 73 21]
=[1 2 3 4 5]

urutkan nilai random
hasil rute

= [ 2 9 21 48 73]
= [ 1 3 5 2 4]

Untuk membentuk populasi pada satu generasi maka pembentukan kromosom
dilakukan sejumlah populasi yang diinginkan. Misal populasi sebanyak 5 maka akan
terbentuk 5 buah kromosom.
Kromosom [1] = [ 1 2 3 4 5 ]
Kromosom [2] = [ 3 4 2 1 5 ]
Kromosom [3] = [ 2 5 1 3 4 ]
Kromosom [4] = [ 2 1 4 5 3 ]
Kromosom [5] = [ 4 2 1 3 5 ]

Evaluasi
Evaluasi populasi dilakukan dengan cara memberikan nilai fitness dari
masing-masing kromosom. Pada tahap ini setiap kromosom akan dihitung nilai
fitness menggunakan fungsi fitness. Semakin besar nilai fitness suatu kromosom
maka semakin besar pula kemungkinan kromosom tersebut bertahan pada proses
seleksi. Fungsi fitness yang digunakan yaitu:
fitness[i]=∑jarak(start-finish)
fitness[i] : nilai fitness berupa jarak yang dilalui untuk setiap kota tepat satu kali
dari start sampai finish (km)
start
: kota pertama pada jalur TSP
finish : kota terakhir pada jalur TSP

6
Jarak yang dimaksud adalah jarak dari titik awal sampai titik akhir pada
sebuah rute. Pencarian jarak dilakukan dengan perhitungan jarak euclidean
disajikan dalam kode program berikut
int i,j;
double jarak;
City *city1 = (City *)malloc(sizeof(City));
City *city2 = (City *)malloc(sizeof(City));
for (i = 0; i < NUMCITIES - 1; ++i)
{
martix[i][i] = 0.0;
*city1 = data[i];
for (j = i + 1; j < NUMCITIES; ++j)
{
*city2 = data[j];
jarak = sqrt(pow((city1->x - city2->x), 2) + pow((city1->y
- city2->y), 2));
}
}

Seleksi
Proses seleksi adalah proses untuk menghasilkan generasi baru. Generasi
baru dapat terdiri dari kromosom-kromosom induk dan turunan. Metode yang
digunakan dalam proses seleksi bermacam-macam, seperti roulette-wheel, elitism,
sigma scaling, Boltzmann, rank selection, tournament selection, steady-state
selection, dan gabungan dari metode metode tersebut (Hannawati et al. 2002).
Pada penelitian ini, seleksi populasi dilakukan dengan metode seleksi turnamen
dan elitisme. Pada seleksi turnamen, diambil sejumlah kromosom secara random
sesuai dengan nilai tour yang telah ditetapkan sebelumnya. Kemudian dari
kromosom tersebut akan ditandingkan dengan kromosom dari sejumlah nilai tour
yang diambil, dan pemenangnya adalah kromosom dengan nilai fitness yang lebih
baik. Kromosom tersebut yang akan menjadi calon parent yang kemudian
dimasukkan ke dalam mating pool untuk proses crossover. Tournament size yang
digunakan bernilai antara 2 sampai n. Cara yang sama dilakukan lagi untuk
mendapatkan orang tua yang kedua. Untuk nilai elitisme diset 0.1 untuk semua
gugus.
Tournament size = 2
[8 4 7 3 6 2 5 1 9 0]
fitness = (0.3)
[0 1 2 3 4 5 6 7 8 9]
fitness = (0.4)

mating pool
[8 4 7 3 6 2 5 1 9 0]
fitness (0.3)
[6 2 8 4 7 3 5 1 9 0]
fitness (0.2)

[2 5 1 8 4 7 3 6 9 0]
fitness = (0.5)
[6 2 8 4 7 3 5 1 9 0]
fitness = (0.2)

7

Crossover
Crossover adalah operator AG yang utama karena melibatkan dua
kromosom pada suatu waktu dan membentuk individu baru dengan
mengkombinasikan dua bentuk kromosom. Metode crossover untuk permasalahan
AG pada TSP ada beberapa jenis yaitu partially mapped crossover (PMX), cycle
crossover (CX), dan order crossover (OX). Crossover yang dipakai dalam
permasalahan TSP adalah OX dengan pertimbangan bahwa OX bekerja lebih baik
daripada PMX ataupun CX pada implementasi kasus TSP. Pada OX, dipilih
sebuah grup dari gen secara random dari parent 1, kemudian cek pada parent 2,
gen yang termasuk dalam grup dari parent 1 tersebut akan dihilangkan dari parent
2. Jika sudah dihilangkan, maka sisa dari gen yang ada diurutkan lagi, dan grup
gen yang ada pada parent 1 diselipkan ke parent 2 pada posisi yang sama.
Kromosom yang baru ini akan menjadi child 1.
Parent 1: 8 4 7 3 6 2 5 1 9 0
Parent 2: 0 1 2 3 4 5 6 7 8 9
OX
Child 1: 0 4 7 3 6 2 5 1 8 9
Untuk mendapatkan child 2, maka tukar posisi parent 1 dan parent 2 dan
lakukan proses dari awal. Apabila kromosom tidak melewati tahap crossover,
maka gen yang ada tetap sama pada generasi berikutnya. Proses crossover
mempunyai harapan memperoleh nilai fitness yang lebih baik karena
menghasilkan suatu individu baru yang mewarisi sisi baik kedua gen orang tua.
Oleh karena penyilangan adalah operator primer, nilai peluang crossover (Pc)
yang digunakan cukup tinggi (0.6−1.0) (Arkeman et al. 2012). Besarnya
probabilitas yang digunakan dalam pemilihan kromosom ditetapkan senilai
0.7−0.9.
Mutasi
Mutasi adalah operator genetik kedua yang digunakan dalam AG. Proses
mutasi akan memodifikasi nilai gen dari solusi dengan probabilitas mutasi.
Kromosom yang dihasilkan oleh mutasi memiliki kemungkinan bernilai lebih baik
atau lebih buruk dari kromosom sebelumnya. Mutasi harus bernilai kecil karena
mutasi berperan sebagai operator sekunder yang berfungsi untuk memunculkan
gen-gen baru yang diharapkan bisa mempercepat konvergensi nilai fitness dari
populasi AG itu sendiri, apabila peluang mutasi terlalu kecil, maka kemungkinan
gen baru yang muncul juga kecil, sehingga solusi optimum lama didapat. Jika
mutasi terlalu besar, maka akan banyak sekali kromoson yang dimutasi sehingga
hasil AG akan terlalu acak, dan hasil semakin susah konvergen. Proses mutasi
yang dilakukan adalah memilih dua titik secara acak kemudian menukarkan kedua
nilai gen tersebut. Nilai baru ini akan direpresentasikan sebagai sebuah kromosom
yang baru. Oleh karena mutasi adalah operator sekunder, nilai peluang mutasi
(Pm) yang digunakan untuk running program biasanya cukup rendah
(0.001−0.200) (Arkeman et al. 2012), oleh karena itu besar nilai kemungkinan
mutasi yang ditetapkan adalah 0.05−0.20 mengikuti range pada literatur.

8
Stopping criteria
Stopping criteria ditentukan untuk menghindari proses komputasi yang
terus menerus berjalan. Stopping criteria yang ditentukan berdasarkan pada
pengaturan pada operator yang telah ditentukan sebelumnya seperti jumlah kota,
jumlah populasi dan jumlah generasi. Apabila program sudah berjalan sesuai
dengan nilai operator yang ditentukan, maka program akan berhenti.
Pengujian
Pengujian berfungsi untuk memastikan bahwa sistem berjalan sesuai dengan
rancangan dan untuk menemukan kesalahan program sebelum digunakan
(Sommerville 2011). Ada tiga metode dalam pengujian sistem, black-box testing,
white-box testing, dan gray-box testing. Sedangkan pengujian yang dilakukan
pada penelitian ini adalah black-box testing. Dalam pengujian ini, penguji tidak
memiliki akses ke source code dan hanya berinteraksi dengan compiler sistem
dengan memberikan nilai masukan berupa jumlah kota beserta nilai latitude dan
longitude untuk kemudian diproses di dalam program. Pengujian dilakukan
dengan memberlakukan 3 skenario untuk membandingkan kelebihan dari masingmasing nilai operator AG.

HASIL DAN PEMBAHASAN
Analisis Permasalahan
Setelah diidenfikasi faktor dan komponen apa saja yang berpengaruh dalam
masalah distribusi minyak goreng di Jakarta dengan AG beserta ketersediaan data,
maka data yang akan diproses dalam AG adalah data sekunder berupa jarak dalam
satuan kilometer pada Google Maps dari 136 kota yang dibagi menjadi 15 gugus
dengan metode fuzzy clustering. Dari masing-masing gugus akan didapatkan
sebuah jalur distribusi sehingga hasil akhir berupa 15 jalur dari masing-masing
gugus.
Penentuan Ruang Lingkup
Data yang digunakan pada penelitian ini berupa latitude dan longitude pada
Google Maps yang dihitung jaraknya menggunakan jarak euclidean. Setelah itu
AG yang digunakan adalah AG single objective dengan fungsi fitness yang telah
ditetapkan pada tahap evaluasi.
Implementasi
Pada tahap ini dilakukan pengkodean algoritme genetika pada kasus TSP
dengan bahasa pemrograman C dengan menggunakan Code::Blocks versi 13.12
sebagai compiler dengan berbagai fitur yang mumpuni. Implementasi ini berupa
pengkodean tahapan algoritme genetika pada kasus TSP sesuai dengan tahap
perancangan yang sudah diidentifikasi tiap tahapannya. Untuk penamaan titik

9
pada data yang akan digunakan, diberlakukan aturan bahwa nama titik diwakili
dengan index berupa angka. Hal ini diberlakukan untuk mempercepat proses
komputasi.
Setelah melakukan penyesuaian parameter, program dapat langsung
dijalankan dengan keluaran sebuah nilai fitness dan jalur distribusi dari data gugus
yang digunakan. Kemudian hasil jalur TSP akan disimpan ke dalam file dengan
format HASIL.txt sesuai dengan proses komputasi terakhir.
Optimasi Dengan AG
Data yang telah ada selanjutnya diolah dalam proses AG dengan nilai
variabel yang telah ditentukan dan selanjutnya dimasukkan ke dalam 3 skenario.
Untuk masing masing variable dari 3 buah skenario nilainya dibuat bervariasi
untuk dibandingkan hasilnya dan dijadikan sebagai acuan agar hasil semakin
konvergen. Skenario dapat dilihat pada Tabel 1.
Tabel 1 Daftar nilai operator dari masing-masing skenario

Skenario
1
2
3

Popsize
10
15
30

Crossover rate
0.7
0.8
0.9

Operator
Mutation rate Tournament size
4
0.05
6
0.10
8
0.20

Pengujian
Deklarasi awal dilakukan pada file genetic.h, jadi untuk setiap perubahan
nilai operator yang ada harus dilakukan pada file tersebut. Selanjutnya dilakukan
pengambilan data untuk setiap skenario pada 15 gugus. Dilakukan komputasi
pada masing-masing gugus pada 3 skenario, dan diambil nilai fitness terkecil dari
hasil komputasi tersebut. Hasil dari pengambilan data disajikan dalam Tabel 2.
Dari Tabel 2 terlihat bahwa pada gugus 1, 2, 4, 5, 6, 14, dan 15 hasil nilai
fitness terkecil terlihat sama, namun pada gugus 3, 7, 8, 9, 10, 11, 12, dan 13
terlihat nilai fitness bervariasi dari skenario 1, 2 dan 3 begitu juga dengan nilainya
yang semakin kecil dari skenario 1 menuju skenario 3. Dari hasil di atas dapat
disimpulkan bahwa skenario 3 mempunyai nilai operator yang paling optimal
untuk semua gugus. Pada setiap nilai fitness yang berbeda, hasil jalur akan
berbeda pula.
Langkah selanjutnya yaitu menentukan pada generasi ke berapa nilai fitness
konvergen. Dari skenario 1 didapatkan bahwa hasil konvergen pada generasi ke11. Skenario 2 hasil konvergen pada generasi ke-10 dan skenario 3 pada generasi
ke-8. Hasil ditunjukkan pada Gambar 4.

10
Tabel 2 Daftar nilai fitness masing-masing gugus pada skenario 1
1
0.080175
0.080175
0.080175
0.080175

2
0.138559
0.138559
0.138559
0.138559

Gugus
3
0.119550
0.119550
0.118562
0.115503

4
0.084926
0.084926
0.084926
0.084926

5
0.083232
0.083232
0.083232
0.083232

9
10

0.080175
0.080175
0.080175
0.080175
0.080175
0.080175

0.138559
0.138559
0.138559
0.138559
0.138559
0.138559

0.115503
0.115503
0.115503
0.115503
0.115503
0.115503

0.084926
0.084926
0.084926
0.084926
0.084926
0.084926

0.083232
0.083232
0.083232
0.083232
0.083232
0.083232

Varian

0

0

0.032533

0

0

Rataan

0.080175

0.138559

0.084926

0.083232

6
0.089099

7
0.100981

0.116618
Gugus
8
0.066818

9
0.072304

10
0.159571

0.089099
0.089099
0.089099
0.089099
0.089099
0.089099

0.100981
0.100981
0.100981
0.100981
0.100981
0.100472

0.066818
0.066818
0.066818
0.066818
0.066376
0.066376

0.072304
0.072304
0.072304
0.072304
0.072304
0.072304

0.157966
0.148784
0.148784
0.148736
0.148736
0.148736

0.089099
0.089099
0.089099

0.100472
0.100472
0.100472

0.066376
0.061676
0.061676

0.071391
0.071391
0.071391

0.148736
0.148736
0.148736

Varian

0

0.244963

0.008303

0.014617

0.012455

Rataan

0.089099

0.100777

0.065657

0.07203

0.150752

Generasi
1
2
3
4
5
6
7
8

Generasi
1
2
3
4
5
6
7
8
9
10

Gugus

Generasi
11
0.080404
0.080404
0.078631
0.078631
0.078631
0.078631

12
0.091007
0.091007
0.091007
0.091007
0.091007
0.091007

13
0.170838
0.170838
0.170838
0.170838
0.170838
0.170838

14
0.063177
0.063177
0.063177
0.063177
0.063177
0.063177

15
0.627198
0.627198
0.627198
0.627198
0.627198
0.627198

0.078631
0.078631
0.078631
0.078631

0.091007
0.091007
0.091007
0.091007

0.170838
0.170838
0.170838
0.170838

0.063177
0.063177
0.063177
0.063177

0.627198
0.627198
0.627198
0.627198

Varian

0

0

0

0

0

Rataan

0.078986

0.091007

0.170838

0.063177

0.627198

1
2
3
4
5
6
7
8
9
10

11
Tabel 3 Daftar nilai fitness masing-masing gugus pada skenario 2

1

1
0.080175

2
0.138559

Gugus
3
0.119550

4
0.084926

5
0.083232

2

0.080175

0.138559

0.119550

0.084926

0.083232

3

0.080175

0.138559

0.119550

0.084926

0.083232

4

0.080175

0.138559

0.116097

0.084926

0.083232

5

0.080175

0.136293

0.115503

0.084926

0.083232

6

0.080175

0.136293

0.115503

0.084926

0.083232

7

0.080175

0.136293

0.114456

0.084926

0.083232

8

0.080175

0.136293

0.114456

0.084926

0.083232

9

0.080175

0.136293

0.114456

0.084926

0.083232

10

0.080175

0.136293

0.114456

0.084926

0.083232

Varian

0

0

0.018796

0

0

Rataan

0.080175

0.137199

0.084926

0.083232

1

6
0.089099

7
0.100981

0.116358
Gugus
8
0.066818

9
0.072304

10
0.159571

2

0.089099

0.100472

0.066818

0.072304

0.159323

3

0.089099

0.100472

0.066818

0.072304

0.149689

4

0.089099

0.100472

0.066818

0.072304

0.147311

5

0.089099

0.100472

0.066818

0.071615

0.147311

6

0.089099

0.100472

0.064670

0.071391

0.147311

7

0.089099

0.100472

0.064670

0.071391

0.147311

8

0.089099

0.100472

0.061676

0.071391

0.147311

9

0.089099

0.100472

0.061676

0.071391

0.147311

10

0.089099

0.100472

0.061676

0.071391

0.147311

Varian

0

0.358909

0.008649

0.083261

0.012455

Rataan

0.089099

0.100523

0.071779

0.149976

1

11
0.080404

12
0.089967

0.064846
Gugus
13
0.170838

14
0.063177

15
0.627198

2

0.080404

0.089011

0.170838

0.063177

0.627198

3

0.078631

0.087455

0.170838

0.063177

0.627198

4

0.078631

0.085603

0.170838

0.063177

0.627198

5

0.078631

0.085603

0.170838

0.063177

0.627198

6

0.078631

0.085603

0.170838

0.063177

0.627198

7

0.078631

0.085603

0.170838

0.063177

0.627198

8

0.078631

0.085603

0.170838

0.063177

0.627198

9

0.078631

0.085603

0.170838

0.063177

0.627198

10

0.078631

0.085603

0.170838

0.063177

0.627198

Varian

0.003806

0.358909

0

0

0

Rataan

0.078986

0.086565

0.170838

0.063177

0.627198

Generasi

Generasi

generasi

12
Tabel 4 Daftar nilai fitness masing-masing gugus pada skenario 3

1

1
0.080175

2
0.138559

Gugus
3
0.119550

4
0.084926

5
0.083232

2

0.080175

0.138559

0.119550

0.084926

0.083232

3

0.080175

0.138559

0.118502

0.084926

0.083232

4

0.080175

0.138559

0.115503

0.084926

0.083232

5

0.080175

0.138559

0.114456

0.084926

0.083232

6

0.080175

0.138559

0.114456

0.084926

0.083232

7

0.080175

0.138559

0.114456

0.084926

0.083232

8

0.080175

0.138559

0.114456

0.084926

0.083232

9

0.080175

0.138559

0.114456

0.084926

0.083232

10

0.080175

0.138559

0.114456

0.084926

0.083232

Varian

0
0.080175

0
0.138559

0.041694
0.115984

0
0.084926

0
0.083232

generasi

Rataan

1

6
0.089099

Gugus
7
8
0.100981 0.066818

9
0.071615

10
0.148736

2

0.089099

0.100981 0.061676

0.071615

0.145934

3

0.089099

0.100981 0.061676

0.071615

0.145934

4

0.089099

0.100981 0.061676

0.071391

0.145934

5

0.089099

0.100981 0.061676

0.071391

0.145934

6

0.089099

0.100981 0.061676

0.071391

0.145934

7

0.089099

0.100981 0.061676

0.071391

0.145934

8

0.089099

0.100981 0.061676

0.071391

0.145934

9

0.089099

0.100981 0.061676

0.071391

0.145934

10

0.089099

0.100981 0.061676

0.071391

0.145934

Varian

0

0

0.007265

0.055507

0

Rataan

0.089099

0.100981

0.062190

0.071458

0.146214

Generasi

Gugus

generasi
1

11
0.080404

12
0.085603

13
0.168404

14
0.063177

15
0.627198

2

0.080404

0.085603

0.168404

0.063177

0.627198

3

0.078631

0.085603

0.168404

0.063177

0.627198

4

0.078631

0.085603

0.168404

0.063177

0.627198

5

0.078631

0.085603

0.168404

0.063177

0.627198

6

0.078631

0.085603

0.168404

0.063177

0.627198

7

0.078631

0.085603

0.168404

0.063177

0.627198

8

0.078631

0.085603

0.168404

0.063177

0.627198

9

0.078631

0.085603

0.168404

0.063177

0.627198

10

0.078631

0.085603

0.168404

0.063177

0.627198

Varian

0.004613
0.078986

0
0.085603

0
0.168404

0
0.063177

0
0.627198

Rataan

13

klaster 14

1,8

klaster 13
1,6

klaster 12

1,4

klaster 11
klaster 10

Nilai Fitness

1,2

klaster 9
1

klaster 8

0,8

klaster 7
klaster 6

0,6
klaster 5
0,4

klaster 4
klaster 3

0,2

klaster 2
0
1

2

3

4

5

6

7

8

9

10

klaster 1

Generasi

Gambar 4 Grafik fitness landscape dari skenario 1
Dari hasil di atas gugus 15 dihilangkan dengan alasan bahwa gugus 15
mempunyai nilai fitness yang jauh lebih besar daripada 14 gugus lainnya dan
hasilnya sudah konvergen menuju satu titik dari generasi awal. Dari percobaan
ketiga skenario di atas dapat disimpulkan bahwa nilai operator yang dipakai pada
skenario 3 mempunyai nilai operator yang lebih baik daripada skenario 1 dan
skenario 2 karena nilai fitness lebih cepat konvergen pada gugus.

SIMPULAN DAN SARAN
Simpulan
Nilai masing-masing operator yaitu popsize, crossover rate, mutation rate
dan tournament size pada skenario 3 mempunyai nilai yang lebih baik
dibandingkan 2 skenario lainnya dibuktikan dengan nilai fitness yang lebih cepat
konvergen pada skenario 3 yaitu generasi ke−8, maka nilai operator yang dipakai
selanjutnya adalah popsize = 30, crossover rate = 0.9, mutation rate = 0.2, dan
tournament size = 8 untuk menghasilkan nilai fitness yang paling cepat konvergen
dan jarak dari jalur TSP yang paling pendek untuk masing-masing jalur dari 15
gugus. Melihat hasil dari ketiga skenario, masih diperlukan pengembangan lebih
lanjut di antaranya dengan penambahan parameter input dan perbaikan

14
pengkodean AG, sehingga sistem dapat digunakan pada kondisi sebenarnya di
lapangan.
Saran
Penelitian ini dapat terus dikembangkan, dengan menambahkan parameter
lain yang mendukung dan bisa menjadi masukan dalam proses penentuan jalur
distribusi agar lebih sesuai dengan kondisi lapangan. Parameter-parameter
tersebut di antaranya indeks kinerja jalan, biaya distribusi, volume pengangkutam,
kebijakan pemerintah, dan jumlah permintaan. Selain penambahan parameter,
diharapkan penambahan interface pada aplikasi untuk memudahkan user untuk
mencari jalur distribusi terpendek.

15

DAFTAR PUSTAKA
Arkeman. Y, H Gunawan, Kudang BS. 2012. Algoritme Genetika. Bogor (ID):
IPB Pr.
Baharudin. A, Ary MS, Baskoro AP. 2012. Travelling Salesman Problem
Menggunakan Algoritme Genetika Via GPS Berbasis Android. Surabaya
(ID): Institut Teknologi Sepuluh November (ITS).
Basuki. 2003. Algoritme genetika: suatu alternatif penyelesaian permasalahan
searching, optimasi, dan machine learning. Surabaya (ID): Politeknik
Elektronika Negeri Surabaya – ITS.
Hannawati A, Thiang, Eleazar. 2002. Pencarian rute optimum menggunakan
algoritme genetika. Jurnal Teknik Elektro. 2(2):78-83.
Sommerville I. 2011. Software Engineering. 9th ed . Boston (US): Pearson
Education.
Utami TP. 2014. Design of grouping traditional market distribution using fuzzy
clustering and design of routing of packaging cooking oil from distribution
center to traditional market using travelling salesperson problem – genetic
algorithm in Indonesia (case Jakarta). Di dalam: Yandra Arkeman, Dr.
M.Eng, editor. 2nd International Conference on Adaptive and Intelligent
Agroindustry (ICAIA). 2013 Sep 16–17. IPB International Convention
Center Bogor, Indonesia. Bogor (ID): Departement of Agroindustrial
Technology, Faculty of Agricultural Engineering and Technology Bogor
Agricultural University. hlm 35-39.

16
Lampiran 1 Daftar kota pada masing-masing gugus
Gugus
Gugus 1

Indeks
1
2
3
4
5
6
7
8
9
10

Nama Titik
Cawang
Batu Ampar
Cililitan
Dukuh
Gedong
Kebon Pala
Kramat Jati
Makassar
Pinang Ranti
Rambutan

Gugus 2

1
2
3
4
5
6
7
8
9
10
11

Cipinang
Jati
Jatinegara Kaum
Kayu Putih
Klender
Malaka Jaya
Pondok Kopi
Pulogadung
Pulogebang
Rawamangun
Utan Kayu Utara

Gugus 3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Serdang
Cempaka Baru
Cempaka Putih Barat
Galur
Gunung Sahari Selatan
Johar Baru
Kampung Rawa
Kartini
Kemayoran
Rawasari
Senen
Sumur Batu
Sunter Jaya
Tanah Tinggi
Tanjung Priok

17
Lampiran 1 Daftar kota pada masing-masing gugus
Gugus
Gugus 4

Indeks
1
2
3
4
5
6
7
8

Nama Titik
Joglo
Kelapa Dua
Duri Kepa
Kebon Jeruk
Kedoya Utara
Kembangan Selatan
Meruya Selatan
Rawa Buaya

Gugus 5

1
2
3
4
5
6
7
8
9
10
11
12

Bali Mester
Bukit Duri
Cipinang Besar Utara
Cipinang Muara
Kampung Melayu
Kayumanis
Kebon Manggis
Manggarai Selatan
Pal Meriam
Pondok Bambu
Rawa Bunga
Tebet

Gugus 6

1
2
3
4
5
6
7
8
9
10

Duri Utara
Glodok
Grogol
Jelambar
Jembatan Lima
Pejagalan
Penjaringan
Pinangsia
Pluit
Tambora

Gugus 7

1
2
3
4
5
6

Cibubur
Cijantung
Cilangkap
Cipayung
Ciracas
Munjul

18
Lampiran 1 Daftar kota pada masing-masing gugus
Gugus
Gugus 7

Indeks
7
8

Nama Titik
Pekayon
Setu

Gugus 8

1
2
3
4
5
6
7

Jati Padang
Kampung Tengah
Lenteng Agung
Pasar Minggu
Pejaten Timur
Ragunan
Tanjung Barat

Gugus 9

1
2
3
4
5
6
7
8
9
10

Paseban
Cikini
Gondangdia
Karet
Kebon Sirih
Kenari
Kwitang
Pasar Manggis
Pegangsaan Dua
Wijaya Kusuma

Gugus 10

1
2
3
4
5
6
7
8
9
10
11
12

Cipete Utara
Cipulir
Gandaria Utara
Grogol Selatan
Kebayoran Lama Selatan
Kramat Pela
Lebakbulus
Melawai
Petukangan Selatan
Pondok Labu
Pulo
Senayan

Gugus 11

1
2
3
4

Ancol
Gambir
Karanganyar
Kebon Kelapa

19
Lampiran 1 Daftar kota pada masing-masing gugus
Gugus
Gugus 11

Indeks
5
6
7
8
9
10

Nama Titik
Mangga Besar
Mangga Dua Selatan
Pademangan Timur
Pasar Baru
Petojo Selatan
Tamansari

Gugus 12

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Bendungan Hilir
Harapan Mulia
Kampung Bali
Karendang
Karet Tengsin
Kebon Kacang
Kebon Melati
Kemanggisan
Kotabambu Selatan
Palmerah
Petamburan
Slipi
Tanjung Duren Utara
Tomang

Gugus 13

1
2
3
4
5
6
7

Cakung Timur
Cilincing
Klapa Gading Timur
Marunda
Rorotan
Semper Timur
Tugu Utara

Gugus 14

1
2
3
4
5
6
7
8
1

Cikoko
Durentiga
Kalibata
Mampang Prapatan
Pancoran
Pela Mampang
Rawa Badak
Tegal Parang
Cengkareng Timur

20
Lampiran 1 Daftar kota pada masing-masing gugus
Gugus
Gugus 14

Gugus 15

Indeks
2
3
4
5
6
7
8
9

Nama Titik
Duri Kosambi
Kalideres
Kamal
Kamal Muara
Kapuk
Pondok Pinang
Selong
Tegal Alur

21

RIWAYAT HIDUP
Penulis dilahirkan di Desa Suruh, Kabupaten Semarang pada tanggal 13 Juli
1992 dari ayah bernama Abdul Fatah dan ibu bernama Yuli Afifah. Penulis
merupakan anak pertama dari 2 bersaudara. Pada tahun 2010, penulis
menamatkan pendidikan di SMA Negeri 1 Kota Salatiga. Penulis lulus seleksi
masuk Institut Pertanian Bogor (IPB) pada tahun 2010 melalui jalur Undangan
Seleksi Masuk IPB (USMI) di Departemen Ilmu Komputer, Fakultas Matematika
dan Ilmu Pengetahuan Alam.
Selama mengikuti perkuliahan, penulis aktif di berbagai kegiatan
kepanitiaan seperti IT Today 2011 dan 2012, SPIRIT FMIPA 2012, dan
Canvasing IPB 2011 dan 2013. Penulis menjabat sebagai ketua komunitas
Networking and Security di bawah Himpunan Mahasiswa Ilmu Komputer
(Himalkom) IPB tahun 2012-2013, juga sebagai ketua Organisasi Mahasiswa
Daerah (OMDA) Patra Atlas Semarang tahun 2012-2014. Penulis melaksanakan
kegiatan Praktik Kerja Lapangan di Kementerian Perdagangan Republik
Indonesia pada bulan Juli 2013 dan di Ilmu Komputer IPB Agustus – Desember
2014.