Multi-Objective Genetic Algorithm Untuk Penentuan Pelabuhan Perikanan Terbaik Dalam Penyediaan Hasil Tangkapan

MULTI-OBJECTIVE GENETIC ALGORITHM UNTUK
PENENTUAN PELABUHAN PERIKANAN TERBAIK
DALAM PENYEDIAAN HASIL TANGKAPAN

PRIYO PUJI NUGROHO

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2016

PERNYATAAN MENGENAI TESIS DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa tesis berjudul Multi-Objective Genetic
Algorithm untuk Penentuan Pelabuhan Perikanan Terbaik dalam Penyediaan Hasil
Tangkapan 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 tesis ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut

Pertanian Bogor.
Bogor, Januari 2016
Priyo Puji Nugroho
NRP G651120391

RINGKASAN
PRIYO PUJI NUGROHO. Multi-Objective Genetic Algorithm untuk Penentuan
Pelabuhan Perikanan Terbaik dalam Penyediaan Hasil Tangkapan. Dibimbing oleh
HERU SUKOCO dan IIN SOLIHIN.
Dalam perdagangan dan industri perikanan, ketersediaan ikan merupakan
faktor penting karena ikan merupakan bahan baku utama dalam industri perikanan.
Tingginya permintaan ikan dan pasokan yang terbatas menyebabkan industri
perikanan harus mengambil bahan baku dari beberapa pelabuhan. Pemilihan
pelabuhan sebagai penyedia hasil tangkapan dipengaruhi oleh banyak faktor seperti
jarak, biaya pembelian, ketersediaan ikan, keragaman ikan, dan kemudahan
layanan. Faktor-faktor tersebut dapat saling mempengaruhi, sehingga
pengoptimalan pada salah satu faktor saja dapat menyebabkan kerugian yang
diakibatkan oleh faktor yang lain.
Dalam penelitian ini, algoritme genetika digunakan untuk menentukan
kombinasi pelabuhan dan alokasi pembelian ikan pada setiap pelabuhan sehingga

diperoleh biaya pembelian dan jarak terbaik berdasarkan suatu posisi. Algoritme
genetika yang digunakan merupakan salah satu varian algoritme genetika multi
tujuan bernama Non-Dominated Sorting Genetic Algorithm. Algoritme ini
memungkinkan optimasi yang melibatkan beberapa objective.
Representasi individu dalam algoritme genetika yang digunakan terdiri atas
tiga kromosom yang mewakili pelabuhan, spesies ikan, dan jumlah pembelian ikan
pada setiap pelabuhan. Setiap kromosom terdiri dari beberapa gen. Satu gen pada
kromosom pertama mewakili satu pelabuhan, gen pada kromosom kedua mewakili
satu spesies ikan, sedangkan satu gen pada kromosom ketiga mewakili jumlah
pembelian salah satu spesies ikan pada satu pelabuhan. Satu individu mewakili satu
solusi yang merepresentasikan pelabuhan-pelabuhan yang terpilih dan jumlah
pembelian setiap spesies ikan pada masing-masing pelabuhan.
Perhitungan nilai fitness pada kasus ini menggunakan tiga fungsi. Fungsi
pertama menghitung akumulasi jarak yang harus ditempuh untuk mencapai
pelabuhan. Fungsi kedua menghitung biaya yang harus dikeluarkan untuk membeli
ikan yang dibutuhkan. Fungsi ketiga digunakan untuk menentukan apakah
pelabuhan yang terpilih dapat memenuhi seluruh kebutuhan ikan atau tidak. Ketiga
fungsi tersebut saling mempengaruhi sehingga penggunaan algoritme genetika
multi tujuan menjadi pilihan yang tepat karena menghasilkan beberapa solusi yang
mempertimbangkan semua fungsi.

Algoritme genetika dalam penelitian ini menggunakan dua jenis crossover
yaitu PMX crossover dan arithmetic crossover. PMX crossover digunakan pada
kromosom pelabuhan sedangkan arithmetic crossover digunakan pada kromosom
pembelian ikan. Dua jenis mutasi yang merupakan modifikasi dari kedua jenis
crossover tersebut juga digunakan. Penggunaan beberapa jenis crossover dan
mutasi disebabkan oleh setiap kromosom memiliki karakter yang berbeda.
Kromosom pelabuhan berupa skala nominal sehingga pertukaran gen dalam
kromosom ini dapat dilakukan dengan mudah. Akan tetapi, kromosom jumlah
pembelian ikan berupa skala rasio dan memiliki nilai berupa bilangan real, sehingga
pertukaran gen sederhana tidak dapat digunakan pada kromosom ini. Oleh karena
itu, crossover yang diterapkan pada kromosom jumlah pembelian ikan yaitu

arithmetic crossover karena kromosom tersebut memiliki nilai berupa bilangan
real.
Pembuatan generasi baru melalui proses crossover dan mutasi dilakukan terus
menerus hingga termination criteria terpenuhi. Termination criteria kriteria yang
digunakan yaitu ketika jumlah generasi telah mencapai angka tertentu atau
algoritme genetika dinyatakan telah konvergen. Dalam kasus ini, algoritme
genetika dinyatakan konvergen apabila nilai fitness dalam sepuluh generasi tidak
mengalami perbaikan.

Beberapa variasi ukuran populasi, probabilitas crossover dan probabilitas
mutasi dicoba untuk mendapatkan hasil yang terbaik dengan cepat. Percobaan
menunjukkan bahwa ukuran populasi GA yang terbaik adalah 50, nilai terbaik Pc
adalah 1 dan nilai terbaik Pm adalah 0,1 atau 0,2. Percobaan masih memerlukan
waktu eksekusi yang cukup lama, yaitu sekitar 18 hingga 55 detik.
Implementasi algoritme genetika dilakukan dengan membuat sebuah aplikasi
mobile untuk menentukan kombinasi pelabuhan serta jumlah ikan yang sebaiknya
dibeli pada setiap pelabuhan. Pengguna cukup memasukkan kebutuhan ikan yang
diinginkan kemudian sistem menghasilkan beberapa kemungkinan solusi yang
dapat dipilih oleh pengguna. Pemilihan satu dari beberapa solusi terbaik tersebut
diserahkan kepada pengguna karena setiap pengguna memiliki kecenderungan yang
berbeda dalam menentukan objective mana yang lebih diutamakan.
Penelitian ini masih memiliki banyak keterbatasan seperti data yang tidak
aktual, mekanisme pengujian sistem yang belum sempurna dan waktu eksekusi
program yang cukup lama. Dengan demikian, penelitian lanjutan untuk
memperbaiki performa dan akurasi program masih perlu dilakukan. Selain itu
penelitian selanjutnya sebaiknya menggunakan data realtime sehingga sesuai
dengan kondisi di lapangan.
Kata kunci: NSGA II, multi-objective, algoritme genetika, penyediaan hasil
tangkapan, aplikasi mobile


SUMMARY
PRIYO PUJI NUGROHO. Multi-Objective Genetic Algorithm for Determination
of The Best Fishing Port in Fish Providing. Supervised by HERU SUKOCO and
IIN SOLIHIN.
In a fishing industry and trading, the availability of fish is an essential factor
because the fish is the main raw material for the industry. High demand for fish and
its limited supply cause the industry requests the fish from several ports. The
selection of the ports as fish provider involving some elements e.g. distance, price,
fish availability, fish variety, and ease of service. The elements affect each other so
that optimizing only one element may cause disadvantages that caused by other
elements.
In this study, Genetic Algorithm was used to determine the port combination
and the allocation of the purchase for each chosen port to get the best price and
distance based on a position. We implement a variant of the multi-objective genetic
algorithm named Non-Dominated Sorting Genetic Algorithm. This algorithm
provides an optimization that involves multiple objectives.
A non-uniform individual representation containing three chromosomes was
used here. The three chromosomes represent fishing ports, fish species, and the
weight of fish should be purchased in each fishing port. In genetic algorithm term,

a chromosome is a set of genes. A single gene in the first chromosome represents a
port, a gene in the second chromosome represents a fish species while a gene in the
third chromosome represents the weight of fish should be purchased in the port. So,
a single individual represents a solution that contains selected ports and the weight
of fish should be purchased at each port.
In this research, the calculation of fitness value implements three functions.
The first function calculates the total distance to reach all the chosen ports. The
second function calculates the total cost to purchase fish. The third function is used
to determine whether the selected ports can fulfill all the needs of the fish. The three
functions affect each other so that the use of the multi-objective genetic algorithm
is appropriate because it produces some solutions that consider all of the functions.
We combine two kinds of crossover namely PMX crossover and arithmetic
crossover. PMX crossover is used for the port chromosome while the arithmetic
crossover is used for fish purchasing chromosome. Similarly, two kinds of mutation
which are the modification of the crossover are implemented here. The use of
several types of crossover and mutation caused by every chromosome has a
different character. The port chromosome contains nominal scale values so that the
exchange of genes in this chromosome can be done easily. However, the fish
purchasing chromosome contains ratio scale values which values are real numbers,
so that a simple gene exchange can not be implemented on this chromosome.

Therefore, the purchasing chromosomes applied an arithmetic crossover because
the chromosome’s values are real numbers.
The creation of the new generation through crossover and mutation process
carried out continuously until the termination criteria are met. The termination
criteria are: when the number of generations has reached a certain number or when

the genetic algorithms have converged. In this case, the genetic algorithm is
considered as converge if the fitness value is not improved in ten generations.
We tested several variations of population size, crossover probability, and
mutation probability to obtain the best output quickly. The experiments show that
the best number of population for the GA is 50, the best value of Pc is 1 and the
best value of Pm is 0.1 or 0.2. The experiments still experienced long execution
time about 18 to 55 seconds.
The implementation of the genetic algorithm is done by creating a mobile
application to determine the combination of the port as well as the number of fish
to be bought on each port. The user simply enters the needs of the fish and then the
system generates several possible solutions that can be selected by the user. The
selection of one of the best solutions can be done by the user because each user has
a different preference to decide which objectives are more dominant.
This study still has many limitations such as the lack of actual data, system

testing mechanisms that should be improved and the long program execution time.
Thus, further research to improve the performance and accuracy of the program
need to be done. The further research should be done by using the real data.
Keywords: NSGA II, multi-objective, genetic algorithm, fish provisioning

© Hak Cipta Milik IPB, Tahun 2016
Hak Cipta Dilindungi Undang-Undang
Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan atau
menyebutkan sumbernya. Pengutipan hanya untuk kepentingan pendidikan,
penelitian, penulisan karya ilmiah, penyusunan laporan, penulisan kritik, atau
tinjauan suatu masalah; dan pengutipan tersebut tidak merugikan kepentingan IPB
Dilarang mengumumkan dan memperbanyak sebagian atau seluruh karya tulis ini
dalam bentuk apa pun tanpa izin IPB

MULTI-OBJECTIVE GENETIC ALGORITHM UNTUK
PENENTUAN PELABUHAN PERIKANAN TERBAIK
DALAM PENYEDIAAN HASIL TANGKAPAN

PRIYO PUJI NUGROHO


Tesis
sebagai salah satu syarat untuk memperoleh gelar
Magister Ilmu Komputer
pada
Program Studi Ilmu Komputer

SEKOLAH PASCASARJANA
INSTITUT PERTANIAN BOGOR
BOGOR
2016

Penguji Luar Komisi pada Ujian Tesis: Irman Hermadi, SKom MS PhD

Judul Tesis : Multi-Objective Genetic Algorithm untuk Penentuan Pelabuhan
Perikanan Terbaik dalam Penyediaan Hasil Tangkapan
Nama
: Priyo Puji Nugroho
NIM
: G651120391


Disetujui oleh
Komisi Pembimbing

Dr Heru Sukoco, SSi MT
Ketua

Dr Iin Solihin, SPi MSi
Anggota

Diketahui oleh

Ketua Program Studi
Ilmu Komputer

Dekan Sekolah Pascasarjana

Dr Wisnu Ananta Kusuma, ST MT

Dr Ir Dahrul Syah, MScAgr


Tanggal Ujian: 30 Oktober 2015

Tanggal Lulus:

PRAKATA
Puji dan syukur penulis panjatkan kepada Allah subhanahu wa ta’ala atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian ialah aplikasi untuk perikanan, dengan judul MultiObjective Genetic Algorithm untuk Penentuan Pelabuhan Perikanan Terbaik dalam
Penyediaan Hasil Tangkapan.
Terima kasih penulis ucapkan kepada Dr Heru Sukoco, SSi MT dan Dr Iin
Solihin, SPi MSi selaku pembimbing. Terima kasih juga disampaikan kepada
Ayahanda Bapak Soenarto Sujud dan Ibunda Djumiati, istri tercinta Fitri Insani, ST
Mkom serta seluruh anggota keluarga atas segala dukungan, do’a, dan kasih
sayangnya. Semoga Allah subhanahu wa ta’ala selalu merahmati kalian. Untuk
ananda Maryam Adzkannisa yang senantiasa menemani dan menghibur ayah
selama menyelesaikan tugas akhir, semoga kelak Allah menjadikanmu anak
sholihah yang cerdas. Terima kasih kepada pengelola pasca sarjana, seluruh dosen
dan staf akademik Ilmu Komputer Institut Pertanian Bogor, teman-teman angkatan
14. Program Studi Ilmu Komputer atas kebersamaan dan bantuannya selama kuliah
dan penyelesaian penelitian ini. Semoga karya ini dapat bermanfaat. Kritik dan
saran sangat penulis harapkan demi kesempurnaan karya ini di kemudian hari.
Semoga karya ilmiah ini bermanfaat.
Bogor, Januari 2016
Priyo Puji Nugroho

DAFTAR ISI
DAFTAR TABEL

xiii

DAFTAR GAMBAR

xiii

DAFTAR LAMPIRAN

xiv

1 PENDAHULUAN
Latar Belakang
Perumusan Masalah
Tujuan Penelitian
Manfaat Penelitian
Ruang Lingkup Penelitian

1
1
2
2
2
2

2 METODE
Analisis Sistem
Perancangan Algoritme Genetika
Perancangan Sistem
Perancangan dan Integrasi Jaringan
Perancangan Arsitektur Aplikasi dan Perangkat Lunak
Perancangan User Interface
Perancangan System Interface
Perancangan dan Integrasi Basis Data
Pembuatan Prototipe
Implementasi
Pengujian Sistem

2
3
3
4
4
5
5
6
6
6
6
6

3 HASIL DAN PEMBAHASAN
Analisis Sistem
Aliran Hasil Tangkapan di Pelabuhan Brondong, Lamongan
Aliran Hasil Tangkapan di Pelabuhan Bajomulyo, Juwana, Pati
Aliran Hasil Tangkapan di Pelabuhan Morodemak, Jawa Tengah
Aliran Hasil Tangkapan di Pelabuhan Muara Angke, Jakarta
Kebutuhan Bahan Baku bagi Pedagang dan Industri Perikanan
Data Perikanan pada PIPP
Penentuan Objektif untuk Multi-Objective Genetic Algorithm
Rancangan Algoritme Genetika
Representasi Individu
Inisialisasi Populasi
Fitness Function
Seleksi Individu
Operator Genetik
PMX Crossover
Arithmetic Crossover
Mutasi
Mutasi pada Kromosom Pelabuhan
Mutasi pada Kromosom Pembelian Ikan
Perancangan Termination Criteria

6
6
7
7
8
8
9
9
9
10
10
11
12
13
17
17
18
19
19
19
20

Rancangan Sistem
Perancangan dan Integrasi Jaringan
Perancangan Arsitektur Aplikasi dan Perangkat Lunak
Perancangan User Interface
Perancangan dan Integrasi Basis Data
Perancangan System Interface
Implementasi
Pengujian

21
21
22
25
26
27
27
32

4 SIMPULAN DAN SARAN
Simpulan
Saran

34
34
34

DAFTAR PUSTAKA

35

LAMPIRAN

37

RIWAYAT HIDUP

52

DAFTAR TABEL
1
2
3
4

Entitas tabel pada basis data
Pengaruh variasi ukuran populasi
Pengaruh variasi Pc
Pengaruh variasi Pm

27
33
33
33

DAFTAR GAMBAR
1 Tahapan penelitian
2 Diagram alir algoritma genetika dengan NSGA II
3 Aktivitas yang dilakukan pada tahap perancangan sistem
4 Aliran Hasil Tangkapan di Pelabuhan Brondong
5 Aliran Hasil Tangkapan di Pelabuhan Bajomulyo
6 Aliran Hasil Tangkapan di Pelabuhan Morodemak
7 Aliran Hasil Tangkapan di Pelabuhan Muara Angke
8 Use case diagram petugas pelabuhan pada PIPP
9 Representasi individu pada GA untuk 2 output pelabuhan dan 3 spesies ikan
10 Inisialisasi populasi
11 Contoh salah satu individu hasil inisialisasi populasi
12 Contoh truncating selection, dengan ukuran populasi 10
13 Non-dominated sorting pada NSGA II
14 Perhitungan crowding distance
15 Tournament selection
16 Titik penentu crossover dan mutasi pada sebuah individu
17 Contoh PMX crossover (1)
18 Contoh PMX crossover (2)

3
4
5
7
7
8
8
10
11
11
12
14
15
15
16
17
17
18

19 Contoh arithmetic crossover dengan α = 0.1
20 Contoh mutasi pada kromosom pelabuhan
21 Mutasi pada kromosom pembelian ikan
22 Penentuan nilai konvergen
23 Topologi sistem
24 Context Diagram
25 DFD level 1
26 DFD level 2 untuk Use Case 2
27 Diagram alir algoritme genetika
28 Tampilan depan sistem
29 Tampilan menu aplikasi
30 Tampilan input posisi asal dan jumlah output pelabuhan
31 Tampilan input kebutuhan ikan
32 Tampilan rekomendasi pembelian ikan
33 Entity Relationship Diagram (ERD)
34 System interface pada sistem
35 Hasil perhitungan pada generasi ke-1
36 Hasil perhitungan pada generasi ke-5
37 Hasil perhitungan pada generasi ke-10
38 Hasil perhitungan pada generasi ke-25
39 Hasil perhitungan pada generasi ke-50
40 Hasil perhitungan pada generasi ke-100
41 Instalasi sistem
42 Pengaruh ukuran populasi terhadap perolehan titik konvergen
43 Pengaruh peluang crossover terhadap perolehan titik konvergen
44 Pengaruh peluang mutasi terhadap perolehan titik konvergen

19
19
20
20
21
22
23
24
24
25
25
25
25
26
26
27
28
29
29
30
30
31
32
32
33
34

DAFTAR LAMPIRAN
1 Source Code Pembacaan Variabel pada R
2 Source Code Fungsi-fungsi NSGA II pada R
3 Source Code Program Utama Algoritme Genetika pada R

37
38
50

1

1 PENDAHULUAN
Latar Belakang
Produk perikanan merupakan salah satu produk yang sangat penting di
Indonesia. Hal ini didukung dengan kondisi geografis Indonesia yang berupa
kepulauan dan sebagian besar wilayahnya berupa lautan. Menurut laporan Badan
Pusat Statistik tahun 2012, produksi perikanan tangkap di Indonesia selama satu
dekade terakhir terus mengalami peningkatan. Hingga tahun 2012, hasil perikanan
tangkap mencapai 5.06 juta ton per tahun (BPS 2013).
Distribusi produk perikanan tangkap yang berupa ikan segar maupun ikan
olahan melibatkan beberapa pihak seperti bakul besar/kecil, juragan, pengolah ikan,
pasar ikan, dan eksportir (Murdiyanto 2003; Unep 2009). Untuk memperoleh
produk yang terbaik dalam hal kualitas dan kuantitas, banyak faktor yang perlu
mereka pertimbangkan seperti faktor jarak, harga ikan, pasar, transportasi,
kemudahan layanan, pengawetan dan kualitas ikan pada setiap pelabuhan. Saat ini
para distributor mempertimbangkan faktor-faktor di atas secara intuitif untuk
memilih pelabuhan sehingga hasil pertimbangan sangat bergantung pada
pengalaman dan jaringan yang dimiliki (Darmawan 2006; Malik 2006; Aryadi
2007; Bangun 2010; Tanjung 2012).
Lokasi pembelian ikan juga menambah rumit masalah yang dihadapi. Sebagai
contoh, pembelian pada satu lokasi bisa saja menghemat biaya akan tetapi belum
tentu satu lokasi dapat memenuhi kebutuhan bahan baku ikan yang diinginkan.
Sebaliknya, pemenuhan kebutuhan bahan baku ikan dapat diperoleh dari banyak
pelabuhan namun akan meningkatkan biaya yang harus dikeluarkan. Permasalahan
tersebut menimbulkan kondisi saling berlawanan (conflicting), di mana apabila
salah satu objective ingin dioptimalkan maka objective yang lain menjadi tidak
optimal, demikian juga sebaliknya.
Di sisi lain, teknik untuk mencari optimasi dalam suatu masalah telah banyak
berkembang. Salah satu algoritme optimasi yang dapat digunakan yaitu algoritme
genetika (GA). GA merupakan algoritme optimasi yang mengadopsi teori evolusi
dalam memperoleh solusi terbaik. Algoritme ini banyak digunakan karena
memiliki kelebihan seperti dapat menangani masalah dengan jumlah variabel input
dan output yang besar dalam waktu yang relatif singkat (Zhang and Rockett 2008).
Permasalahan pemilihan pelabuhan yang telah dibahas dapat digolongkan
dalam permasalahan optimasi yang melibatkan beberapa variabel sebagai objective.
Dengan demikian permasalahan ini dapat diselesaikan dengan pendekatan multiobjective genetic algorithm (MOGA). Pemanfaatan MOGA dapat mempermudah
para distributor hasil tangkapan dalam menentukan pelabuhan terbaik dalam
penyediaan hasil tangkapan.
Beberapa kasus pada penelitian sebelumnya yang memanfaatkan GA dan
multi-objective genetic algorithm antara lain optimasi jaringan kabel untuk wind
farm yang mempertimbangkan biaya, energi, dan kehandalan jaringan (Pemberton
et al. 2013), optimasi jaringan air dan selokan yang mempertimbangkan biaya
kerusakan, dan tingkat layanan air (Atef et al. 2012), distribusi tugas dalam
menyelesaikan pekerjaan (Harper et al. 2005), serta pendugaan otomatis sistesis
ucapan (Arajo et al. 2012).

2

Pada penelitian ini, MOGA diimplementasikan pada aplikasi mobile. Hal ini
dilakukan karena pemanfaatan aplikasi mobile saat ini tidak hanya menjadi media
komunikasi, akan tetapi mulai digunakan sebagai perangkat yang mendukung
kegiatan pertanian (Ye et al. 2010; The World Bank 2011; Brugger 2011; Qiang et
al. 2011; Kimbahune et al. 2013).
Perumusan Masalah
Permasalahan yang dibahas pada penelitian ini yaitu bagaimana para
distributor produk perikanan tangkap menentukan pelabuhan perikanan sebagai
tempat pembelian ikan. Terdapat beberapa faktor yang dapat mempengaruhi
pemilihan pelabuhan yang tepat dalam penyediaan hasil tangkapan. Dengan
demikian, diperlukan suatu cara untuk menentukan solusi pelabuhan terbaik dengan
mempertimbangkan beberapa faktor yang berpengaruh.
Tujuan Penelitian
Penelitian ini bertujuan untuk:
1 Mengembangkan aplikasi mobile untuk memberikan rekomendasi pelabuhan
terbaik dalam penyediaan hasil tangkapan dengan menggunakan multi-objective
genetic algorithm.
2 Mengetahui proses bisnis yang terjadi pada pelabuhan perikanan.
Manfaat Penelitian
Hasil penelitian ini diharapkan dapat memberikan kemudahan bagi para
pedagang dan industri perikanan dalam menentukan pelabuhan yang menyediakan
produk perikanan. Lebih jauh lagi, apabila distributor memperoleh harga yang
murah, maka diharapkan para konsumen juga memperoleh harga hasil tangkapan
yang lebih murah.
Ruang Lingkup Penelitian
Dalam penelitian ini, algoritme yang digunakan untuk menentukan pelabuhan
terbaik adalah multi-objective genetic algorithm. Aplikasi mobile yang
dikembangkan berbasis Android. Studi kasus penelitian ini dilakukan di pelabuhan
Brondong, Juwana, Demak, dan Muara Angke.

2 METODE
Metode penelitian yang digunakan dalam penelitian ini dapat dilihat pada
Gambar 1. Penelitian dibagi menjadi 4 tahapan utama, yaitu analisis sistem,
perancangan algoritme genetika, perancangan sistem, dan implementasi.
Perancangan sistem terdiri dari perancangan user interface, jaringan, basis data,
arsitektur aplikasi, dan system interface (Satzinger et al. 2011).

3

Analisis Sistem






Pada tahap analisis sistem, terdapat beberapa hal yang dilakukan, yaitu:
Memperoleh informasi mengenai segala sesuatu yang dapat dilakukan oleh
sistem
Mendefinisikan kebutuhan sistem sehingga sistem dapat bekerja dengan baik
Membuat prioritas terhadap kebutuhan sistem
Memastikan apakah sistem yang dikembangkan sudah sesuai dengan kebutuhan
Melakukan evaluasi terhadap beberapa kemungkinan solusi untuk
menyelesaikan masalah yang ada.

Mulai

Analisis sistem

Perancangan algoritme genetika untuk penentuan pelabuhan
Representasi
individu

Inisialisasi
populasi

Fitness
function

Seleksi

operator
genetik

Termination
criteria

Perancangan sistem
Perancangan
jaringan

Perancangan
aplikasi

Perancangan
user interface

Perancangan
system interface

Perancangan
basis data

Implementasi

Selesai

Gambar 1 Tahapan penelitian
Perancangan Algoritme Genetika
Pada tahap ini, dibuat suatu algoritma yang digunakan untuk menyelesaikan
masalah pencarian pelabuhan terbaik sebagai penyedia ikan. Algoritma yang
digunakan adalah algoritma genetika, dengan demikian beberapa hal yang perlu
dilakukan pada tahap ini yaitu:
 Penentuan representasi individu
 Penentuan inisialisasi populasi

4

 Penentuan fitness function
 Penentuan metode seleksi individu pada suatu populasi
 Penentuan operator genetik yang akan digunakan
 Penentuan termination kriteria
Diagram alir algoritme genetika yang digunakan dapat dilihat pada Gambar 2
Start

Population
Initialization

Evaluation

Mutation

Crossover

No

is
terminated?

Selection

Non-Dominated
Sorting
Yes
Tournament
Selection

Finish

Gambar 2 Diagram alir algoritma genetika dengan NSGA II

NSGA II merupakan salah satu variasi Multi-Objective Genetic Algorithm
(MOGA). Algoritme ini mempertimbangkan apakah setiap nilai fitness pada satu
kromosom dapat mendominasi nilai fitness kromosom yang lain. Secara umum
NSGA berjalan seperti GA pada umumnya, akan tetapi ada penambahan fungsi
Non-Dominated Sorting pada tahap seleksi individu.
Perancangan Sistem
Dalam membangun sebuah sistem, terdapat beberapa hal yang perlu
dipersiapkan seperti pada Gambar 3 (Satzinger et al. 2011).
Perancangan dan Integrasi Jaringan
Sistem yang diusulkan terdiri dari berbagai perangkat seperti server aplikasi,
perangkat mobile, dan server basis data. Selain itu, sistem juga berinteraksi dengan
suatu jaringan internet dan sistem lain berupa basis data perikanan yang disediakan
oleh PIPP. Dengan demikian, pada tahap ini dilakukan pembuatan topologi jaringan
untuk menghubungkan semua perangkat yang dibutuhkan menjadi satu kesatuan
sistem.

5

Perancangan Arsitektur Aplikasi dan Perangkat Lunak
Tahap ini menentukan bagaimana setiap aktivitas pada sistem ditangani oleh
pengguna atau komputer. Dengan kata lain pada tahap ini ditentukan bagaimana
logika sistem bekerja. Selain itu komponen-komponen dan modul program juga
ditentukan pada bagian ini. Untuk mempermudah pembuatan arsitektur aplikasi
tersebut, maka perlu dibuat Use Case Diagram, Data Flow Diagram, dan Squence
Diagram.

Perancangan user interface
menghasilkan form, laporan,
serta kontrol input dan output

Perancangan
basis data
menentukan
struktur basis
data yang
digunakan

Perancangan jaringan menentukan
hardware dan middleware yang
menghubungkan seluruh sistem

Perancangan aplikasi
menggambarkan program
komputer dan modul-modul
yang digunakan

Perancangan System interface
menentukan interaksi suatu
sistem terhadap sistem lain

Sistem yang
dibangun

Gambar 3 Aktivitas yang dilakukan pada tahap perancangan sistem
Perancangan User Interface
User interface merupakan bagian yang penting dalam suatu sistem karena
menentukan bagaimana seorang pengguna dapat berinteraksi dengan sistem.
Dalam kasus ini sistem yang dibangun berupa aplikasi mobile, dengan demikian
pengguna berinteraksi dengan sistem melalui tampilan grafis pada suatu perangkat
mobile. Pada tahap ini, suatu interface yang interaktif dan mudah dibuat untuk
memenuhi kebutuhan interaksi antara pengguna dan sistem.

6

Perancangan System Interface
Sistem yang dibangun melibatkan data perikanan yang dimiliki oleh PIPP.
Untuk menghubungkan sistem internal dengan sistem eksternal (PIPP) diperlukan
sebuah system interface. System interface menentukan bagaimana sebuah sistem
dapat berinteraksi dengan sistem lainnya.
Perancangan dan Integrasi Basis Data
Pada tahap ini, ditentukan bagaimana semua informasi yang diperlukan oleh
sistem disimpan. Informasi yang ada pada system ini disimpan dalam bentuk basis
data relasional. Berikut ini merupakan langkah-langkah yang dilakukan dalam
melakukan desain basis data relasional:
1 Pembuatan tabel untuk setiap entitas.
2 Pemilihan satu primary key pada setiap tabel.
3 Penentuan foreign keys untuk merepresentasikan one-to-many relationship.
4 Pembuatan tabel untuk merepresentasikan many-to-many relationships.
5 Penentuan batasan referential integrity.
6 Melakukan evaluasi terhadap kualitas skema.
7 Menentukan tipe data yang sesuai.
Pembuatan Prototipe
Prototype dibuat untuk menguji apakah desain sistem telah sesuai dengan
kebutuhan sistem. Selain itu protoype juga berguna untuk meyakinkan apakah user
interface yang telah dirancang sudah sesuai dengan perilaku pengguna. Basis data,
rancangan jaringan, dan lingkungan program juga dapat diuji melalui pembuatan
prototype.
Implementasi
Pada tahap ini, hal-hal yang dilakukan yaitu: pembuatan komponen software,
verifikasi dan pengujian sistem, konversi data, pembuatan dokumen, serta instalasi
sistem.
Pengujian Sistem
Uji coba algoritme dilakukan untuk menentukan nilai Peluang Crossover
(Pc), Peluang Mutasi (Pm), pembobotan parameter, dan validasi hasil. Masingmasing variabel tersebut divariasikan pada beberapa nilai untuk memperoleh
algoritme yang memberikan hasil optimal dan valid. Validasi dilakukan bersama
pakar pelabuhan di Fakultas Perikanan IPB.

3 HASIL DAN PEMBAHASAN
Analisis Sistem
Pada tahap ini, ditentukan beberapa variabel yang menjadi penentu pemilihan
suatu pelabuhan dalam penyediaan hasil tangkapan. Selain itu perlu diketahui aliran

7

ikan sebagai hasil tangkapan yang terjadi dari pihak nelayan hingga ikan mencapai
konsumen. Berikut ini ditampilkan beberapa aliran hasil tangkapan yang terjadi di
tiga pelabuhan, yaitu pelabuhan Brondong, Bajomulyo, dan Morodemak.
Aliran Hasil Tangkapan di Pelabuhan Brondong, Lamongan
Distribusi hasil perikanan tangkap di Pelabuhan Brondong dapat dilihat pada
Gambar 4. Sebagian besar hasil tangkapan didistribusikan dalam bentuk ikan segar
dan selebihnya dipasarkan dalam bentuk produk olahan. Pendaratan ikan berupa
ikan segar sekitar 59,18% dan ikan segar yang dijadikan olahan sebesar 40,82%.
Bentuk olahan ikan antara lain olahan pindang, asin (kering), panggang, dan fillet.
Ikan segar dari pelabuhan Brondong dipasarkan ke berbagai kota di Jawa dan Bali.
Jawa Timur

Pedagang Ikan Segar

Jawa Tengah
Jawa Barat

Nelayan

Jakarta

Pelabuhan

Pindang
Bali
Asin/ Kering
Pengolah
Panggang
Fillet

Gambar 4 Aliran Hasil Tangkapan di Pelabuhan Brondong

Aliran Hasil Tangkapan di Pelabuhan Bajomulyo, Juwana, Pati
Distribusi hasil perikanan tangkap di Pelabuhan Bajomulyo dapat dilihat pada
Gambar 5. Ikan sebagai hasil tangkapan nelayan dikumpulkan di pelabuhan.
Selanjutnya hasil tangkapan tersebut disalurkan ke pedagang melalui mekanisme
lelang. Padagang terdiri dari pedagang di pasar local di wilayah Pati dan pedagang
di pasar luar kota seperti Jakarta, Bandung, Surabaya dan Banyuwangi. Jumlah ikan
yang disalurkan ke pasar lokal sekitar 40%, sedangkan ke pasar di luar kota sekitar
60%.
Pedagang Lokal

Lelang

Bandung
Pasar Daerah

Nelayan

Pelabuhan

Jakarta

Surabaya
Banyuwangi

Gambar 5 Aliran Hasil Tangkapan di Pelabuhan Bajomulyo

8

Aliran Hasil Tangkapan di Pelabuhan Morodemak, Jawa Tengah
Distribusi hasil perikanan tangkap di Pelabuhan Morodemak dapat dilihat
pada Gambar 6. Pada pelabuhan Morodemak, hasil tangkapan nelayan
dikumpulkan ke pelabuhan. Hasil tangkapan tersebut disalurkan kepada para
pengumpul ikan melalui mekanisme lelang. Selanjutnya ikan disalurkan ke
pengolah ikan, pabrik, dan para pedagang. Sebagian pedagang menyalurkan ikan
ke kota lain seperti Semarang, Cilacap, Kudus, dan Jakarta.
Pengolah
Pengumpul ikan
Pabrik

Nelayan

Semarang

Cilacap

Pelabuhan

Pedagang
Kudus
Jakarta

Gambar 6 Aliran Hasil Tangkapan di Pelabuhan Morodemak

Aliran Hasil Tangkapan di Pelabuhan Muara Angke, Jakarta
Distribusi hasil perikanan tangkap di Pelabuhan Muara Angke dapat dilihat
pada Gambar 7. Penanganan hasil tangkapan pada pelabuhan ini terdiri dari tiga
tahap, yaitu pendaratan ikan, penyimpanan, dan pengangkutan ke daerah tujuan.
Nelayan

Pelabuhan

Sortir

Pelelangan

Penyimpanan (storage)

Ekspor

Penjualan & Pengangkutan

Perusahaan Perikanan

Pasar

Gambar 7 Aliran Hasil Tangkapan di Pelabuhan Muara Angke

Ikan yang diperoleh nelayan dari laut didaratkan di pelabuhan di tiga lokasi,
yaitu di dermaga timur untuk kapal long line, dermaga barat untuk kapal gill net,
dan TPI untuk kapal-kapal tradisional. Sebagian langsung disortir di atas kapal
ketika hendak diturunkan ke pelabuhan. Setelah disortir, sebagian ikan dilelang di
TPI dan berdasarkan kapal yang mendaratkannya. Khusus ikan tuna, pendaratan
ikan dilakukan di lokasi khusus yang disebut dengan Tuna Landing Centre (TLC)
dan tidak dilelang.
Ikan yang mendarat di TLC serta ikan yang tidak habis dilelang disimpan di
dalam cold storage. Cold storage berfungsi untuk menjaga kualitas hasil tangkapan
sebelum maupun sesudah diolah serta sebelum dipasarkan. Beberapa ikan yang

9

biasanya masuk ke cold storage yaitu tuna, marlin, meka, cakalang, cumi-cumi, dan
kerapu.
Pengangkutan hasil tangkapan di Muara Angke terbagi menjadi
pengangkutan melalui darat dan pengangkutan melalui laut. Pengangkutan melalui
darat menggunakan transportasi mobil pick up/ colt, mobil berpendingin yang
dilengkapi freezer, dan truk kontainer. Sementara itu, pengangkutan melalui laut
dilakukan melalui kapal kargo. Mobil pick up/ colt biasanya digunakan untuk
mengangkut ikan dari lokasi pendaratan atau pelelangan ke cold storage dan tempat
penjualan ikan di sekitar pelabuhan. Mobil berpendingin digunakan untuk
mengirim ikan ke lokasi yang lebih jauh seperti wilayah Jakarta dan luar Jakarta.
Mobil berpendingin juga bisa digunakan untuk mengirimkan ikan menuju kargo di
pelabuhan Tanjung Priok dan bandara Soekarno Hatta untuk diekspor.
Kebutuhan Bahan Baku bagi Pedagang dan Industri Perikanan
Berdasarkan beberapa referensi (Murdiyanto 2003; Darmawan 2006; Bangun
2010; Tanjung 2012) dan hasil pengamatan pada empat pelabuhan di atas, hasil
tangkapan nelayan melewati beberapa proses seperti lelang, pengolahan,
pengiriman / transportasi dan penjualan. Lingkup penjualan ikan pada setiap
pelabuhan berbeda-beda, sebagian ikan dijual di pasar lokal maupun pasar di kota
yang berbeda. Beberapa penjual besar juga melakukan penjualan lintas provinsi dan
expor.
Dari sudut pandang pedagang dan industri pengolahan ikan, hasil tangkapan
dapat diperoleh dari beberapa pelabuhan sekaligus. Hal ini disebabkan karena
terkadang kebutuhan ikan satu industri tidak dapat dipenuhi dari satu pelabuhan
saja, akan tetapi harus dipenuhi dari beberapa pelabuhan.
Pemilihan pelabuhan sebagai lokasi pembelian ikan ditentukan oleh beberapa
faktor, seperti: aksesibilitas pelabuhan, ketersediaan ikan, harga ikan, kemudahan
layanan, dan kualitas ikan. Aksesibilitas ikan menunjukkan kemudahan untuk
mencapai lokasi pelabuhan. Aksesibilitas bisa dilihat dari jarak antara pelabuhan
dengan pedagang atau industri pengolahan ikan serta kemudahan untuk mencapai
pelabuhan tersebut, misalnya kondisi infrastruktur jalan dan transportasi yang
tersedia. Ketersediaan ikan dapat berupa jumlah produksi ikan yang tercatat di
pelabuhan serta keragaman ikan yang diperoleh. Kualitas ikan dapat ditentukan dari
ukuran ikan, lama berlayar, dan lamanya ikan disimpan.
Data Perikanan pada PIPP
Di sebagian pelabuhan, terutama Pelabuhan Perikanan Samudera dan
Pelabuhan Perikanan Nusantara seperti Pelabuhan Brondong, terdapat petugas
pelabuhan yang memiliki tugas untuk memasukkan harga dan produksi ikan harian
di setiap pelabuhan ke dalam Pusat Informasi Pelabuhan Perikanan (PIPP). PIPP
merupakan sistem informasi perikanan yang disediakan oleh Kementerian Kelautan
dan Perikanan. Dengan kata lain, saat ini data perkiraan harga dan produksi ikan
setiap pelabuhan telah tersedia pada sistem PIPP. Data PIPP yang dikelola oleh
petugas pelabuhan dapat dilihat pada Gambar 8.
Penentuan Objektif untuk Multi-Objective Genetic Algorithm
Pada sub bab terdahulu telah disampaikan bahwa banyak faktor yang
menentukan pemilihan pelabuhan untuk dijadikan sebagai penyedia hasil

10

tangkapan. Data harga dan persediaan ikan dapat diperoleh dari PIPP. Jarak dapat
diketahui berdasarkan koordinat. Data mengenai kemudahan layanan dan
infrastruktur pelabuhan banyak tertulis dalam karya-karya ilmiah dan laporan
tahunan di pelabuhan maupun kementrian perikanan. Akan tetapi data tersebut
cukup sulit diukur karena tidak ada standar yang dapat digunakan untuk
menentukan layanan dan infrastruktur di suatu pelabuhan dapat dikatakan baik atau
tidak.
Dengan mempertimbangkan ketersediaan data di atas, sistem yang dibangun
dalam penelitian ini hanya menggunakan 3 objektif sebagai penentu pelabuhan
perikanan, yaitu jarak, harga, dan ketersediaan ikan.

Gambar 8 Use case diagram petugas pelabuhan pada PIPP

Rancangan Algoritme Genetika
Representasi Individu
Setiap individu dalam populasi terdiri atas beberapa gen. Gen-gen tersebut
dimasukkan ke dalam tiga kelompok kromosom, yaitu kromosom pelabuhan,
kromosom komoditas/ jenis ikan dan kromosom alokasi pembelian komoditas.
Secara detail, contoh representasi individu dapat dilihat pada Gambar 9.
Susunan gen pada representasi individu sebagai berikut: p1, p2, ... pi, s1, s2, ... sj, a1,1,
a1,2, ..., ai,1, ai,2 …, ai, j-1, ai,j. Sejumlah gen pelabuhan P diletakkan pada bagian
depan individu, dengan P = {p1, p2, ... pi}, dengan i merupakan jumlah pelabuhan
maksimal yang diinginkan. Selanjutnya sejumlah gen J disusun berurutan setelah
gen pelabuhan P. S = {s1, s2, ... sj} dengan k merupakan banyaknya jenis komoditas
yang dibutuhkan, sedangkan jk berupa integer yang merepresentasikan ID jenis

11

komoditas yang dibutuhkan. Di sebelah kanan kromosom komoditas J, sejumlah
gen A = {a1,1, a1,2, ... ai, j-1, ai,j} dengan jumlah i × j merupakan alokasi pembelian
komoditas dengan jenis jk pada pelabuhan pi. Jumlah alokasi pembelian suatu
komoditas pada seluruh pelabuhan harus sesuai dengan kebutuhan komoditas.
 Jumlah output pelabuhan yang diinginkan (P) = 2
 Jumlah spesies yang dibutuhkan (S) = 3
 Alokasi Pembelian = 2 × 3 = 6
 Panjang Kromosom: P + S + (P x S)
Gen tunggal
p1

p2

Kromosom
pelabuhan

s1

s2

s3

p1,s1

p1,s2

p1,s3

Pembelian pada p1

Kromosom
spesies ikan

p2,s1

p2,s2

p2,s3

Pembelian pada p2

Kromosom pembelian
Individu tunggal

Gambar 9 Representasi individu pada GA untuk 2 output pelabuhan
dan 3 spesies ikan

Inisialisasi Populasi
Populasi awal dibuat dengan memberikan nilai acak pada gen pelabuhan, gen
spesies ikan, dan gen alokasi pembelian sesuai dengan batasan yang telah
ditentukan pada representasi individu. Gen pelabuhan (P) diisi dengan ID
pelabuhan secara acak. Gen spesies bersifat statik, karena jenis ikan ditentukan di
awal bersama dengan penentuan volume kebutuhan ikan dan tidak akan berubah
selama proses rekombinasi. Alokasi pembelian ikan dibuat secara acak dengan
syarat total pembelian suatu spesies ikan sesuai dengan jumlah kebutuhan spesies
tersebut. Gambar 10 menunjukkan proses inisialisasi, sedangkan Gambar 11
merupakan contoh individu hasil inisialisasi populasi.
p1

p2

Kromosom
pelabuhan,
diisi dengan
ID pelabuhan
acak

s1

s2

s3

Kromosom
spesies ikan,
disesuaikan
dengan
kebutuhan

p1,s1

p1,s2

p1,s3

Pembelian pada p1

p2,s1

p2,s2

p2,s3

Pembelian pada p2

Kromosom pembelian ikan, diisi
dengan jumlah spesies ikan yang
akan dibeli pada pelabuhan tertentu.

Individu tunggal

Gambar 10 Inisialisasi populasi

12

300 kg

Pelabuhan lain
dengan ID 19

100 kg
1

3

19

PPS Jakarta

2

5

4

20

111

120

80

89

180

200 kg

Gambar 11 Contoh salah satu individu hasil inisialisasi populasi

Fitness Function
Terdapat tiga objektif yang digunakan dalam penelitian ini, yaitu biaya yang
harus dikeluarkan untuk membeli ikan, jarak untuk mencapai lokasi pembelian ikan
(pelabuhan), dan persediaan ikan. Nilai fitness pada objektif pertama (biaya)
diperoleh dengan membaca alokasi volume pembelian ikan di setiap pelabuhan.
Perhitungan harga ikan ditentukan dengan formula berikut:




=1

=1

∑ ∑ min

,

,

,

× ℎ,

dengan:
ai,j = banyaknya pembelian komoditas j di pelabuhan i,
bi,j = persediaan pembelian komoditas j di pelabuhan i,
hi,j = harga komoditas j di pelabuhan I, dan
p = jumlah pelabuhan.
Nilai fitness pada objektif kedua yaitu jumlah seluruh jarak antara pengguna
atau titik asal dengan pelabuhan-pelabuhan terpilih. Formula berikut digunakan
untuk menghitung total jarak untuk mencapai seluruh pelabuhan:


∑�
=1

dengan:
Li = jarak antara pengguna (titik asal) dengan pelabuhan ke-i, dan
p = jumlah output pelabuhan yang diinginkan.
Pendekatan yang digunakan untuk menghitung jarak yaitu menggunakan
formula Haversine (Bullock 2007; Jovanović et al. 2015). Haversine merupakan
formula yang menghitung jarak antara dua titik yang berada pada permukaan bola
berukuran besar tanpa mempertimbangkan lintasan atau jalan yang dilalui. Dalam
hal ini bola tersebut adalah bumi. Jarak haversine tidak merepresentasikan jarak
yang harus ditempuh pengguna, tetapi pendekatan ini dapat digunakan untuk
memperkirakan perbandingan jarak yang dihasilkan oleh setiap individu. Formula
Haversine juga lebih sederhana dari algoritme pencarian jarak lainnya seperti
Dijkstra dan A* yang mempertimbangkan lintasan yang dilalui. Dengan demikian,

13

Haversine cukup sesuai apabila digunakan dalam algoritme genetika yang
menerapkan iterasi yang berulang.
Pencarian jarak antara dua lokasi A dan B dengan menggunakan formula
Haversine memerlukan input berupa koordinat kedua lokasi tersebut. Berikut ini
merupakan formula Haversine:
cos θ = sin φA sin φB + cos φA cos φB cos ∆L
dengan:
φA = posisi lintang titik A (°)
LA = posisi bujur titik A (°)
φB = posisi lintang titik B (°)
LB = posisi bujur titik B (°)
∆L = LA − LB
Jika θ telah diketahui, maka jarak antara A dan B dapat dihitung:
D=Rθ
dengan:
D = jarak (km)
R = jari-jari bumi ( 6378.14 km )
Nilai fitness ketiga yaitu ketersediaan ikan pada pelabuhanse terpilih. Fitness
ketiga ini digunakan untuk menilai apakah persediaan ikan di pelabuhan dapat
mencukupi pembelian ikan oleh pembeli. Ketersediaan ikan ditentukan dengan
menghitung kekurangan spesies ikan terhadap pembelian ikan tersebut pada sebuah
pelabuhan seperti pada formula berikut:




=1

=1

�= ∑ ∑

,

− min

,

,

dengan:
S = selisih (kekurangan) komoditas i pada pelabuhan j,
p = jumlah pelabuhan,
s = jumlah spesies,
, = pembelian spesies i di pelabuhan j, dan
, = persediaan spesies i di pelabuhan j.

,

Formula di atas menghitung kekurangan persediaan spesies ikan tertentu
terhadap banyaknya ikan yang akan dibeli pada pelabuhan tersebut. Dengan
demikian nilai S yang diharapkan adalah mendekati nol karena nilai nol pada S
menunjukkan bahwa pembelian spesies tertentu pada pelabuhan tersebut dapat
terpenuhi.
Seleksi Individu
Terdapat dua jenis seleksi individu yang digunakan, yaitu truncating selection
dan tournament selection. Pada truncating selection, individu-individu diurutkan
berdasarkan objektif ketersediaan ikan. Individu yang dapat menghasilkan solusi
yang memenuhi seluruh kebutuhan pengguna ( nilai S-nya bernilai nol) diletakkan
di posisi paling atas dan individu yang tidak memenuhi kebutuhan pengguna
diletakkan di bagian yang paling bawah. Setelah individu diurutkan, selanjutnya

14

dipilih individu yang objektif ketersediaannya terpenuhi. Jika jumlah individu yang
terpilih kurang dari ukuran populasi, maka dipilih kembali individu-individu
lainnya berdasarkan urutan yang telah terbentuk. Contoh truncating selection
dengan ukuran populasi 10 dapat dilihat pada Gambar 12.
Individu 1, S = 0
Individu 2, S = 0
Individu 3, S = 0

Individu dengan objektif ketersediaan
terbaik (nilai S = 0) dipilih untuk
dimasukkan ke populasi baru.

Individu 4, S = 0
Individu 5, S = 3
Individu 6, S = 5
Individu 7, S = 11
Individu 8, S = 17
Individu 9, S = 17
Individu 10, S = 20

Karena ukuran populasi yang
diharapkan 10, individu yang terpilih
belum mencapai 10, maka individuindividu berikutnya diambil berdasarkan
nilai objektif ketersediaan ikannya untuk
dimasukkan ke dalam populasi baru.
Dengan demikian jumlah individu yang
terpilih memenuhi ukuran populasi yang
diinginkan.

Individu 11, S = 21
...
...
Gambar 12 Contoh truncating selection, dengan ukuran populasi 10

Sebelum tournament selection dapat dilakukan, individu-individu pada
populasi perlu diurutkan terlebih dahulu untuk mengetahui apakah satu individu
dinyatakan baik atau tidak berdasarkan objektif biaya dan jarak. Metode sorting
yang digunakan yaitu non-dominated sorting. Metode ini dapat mengurutkan
individu berdasarkan dua atau beberapa objektif sekaligus. Hasil dari nondominated sorting yaitu individu-individu yang telah dikelompokkan dalam
beberapa front F1, F2, F3, dan seterusnya seperti pada Gambar 13. Satu front dapat
berisi satu atau lebih individu. Pada gambar tersebut, F1, F2, F3, dan seterusnya
adalah lapisan-lapisan yang terbentuk. F1 berisi individu-individu yang
memberikan solusi terbaik berdasarkan biaya dan jarak.
Algoritme yang digunakan untuk membentuk front pada populasi P adalah:
for each p ϵ P
Sp = Ø
np = 0
for each q ϵ P
if ( p ≺ q ) then
Sp = Sp ∪ {q}
else if ( q ≺ p ) then
np = np + 1
if np = 0 then
prank = 1

# Jika p mendominasi q
# Masukkan q dalam himpunan solusi yang didominasi oleh p
# Naikkan counter dominasi untuk p
# p termasuk dalam front pertama

15

F1 = F1 ∪ {p}
i=1
while Fi ≠ Ø
Q=Ø
for each p ϵ Fi
for each q ϵ Sp
nq = nq + 1
if nq = 0 then
qrank = I + 1
Q = Q ∪ {q}
i=i+1
Fi = Q

# Inisialisasi front counter
# Digunakan untuk menyimpan anggota front berikutnya

# q termasuk dalam front berikutnya

Non-dominated
sorting

F1
F2

Pengurutan individu –
individu dalam satu front
dilakukan berdasarkan
crowding distance

F3
F4
F5
F6
Populasi yang
belum terurut

Populasi yang telah
dikelompokkan dalam
beberapa front

Hasil sorting

Gambar 13 Non-dominated sorting pada NSGA II

Jarak

Setelah front terbentuk, individu-individu dalam front yang sama diurutkan
berdasarkan crowding distance (CD). CD merupakan tingkat kedekatan satu
individu terhadap individu-individu tetangganya di dalam satu front. CD juga dapat
digunakan untuk menunjukkan sebaran solusi pada sebuah front. Nilai CD yang
kecil dapat menyatakan bahwa individu tersebut kurang baik karena menandakan
bahwa individu tersebut dekat dengan individu yang lain. Bila banyak individu
yang berdekatan, berarti kemungkinan terpilihnya optimum lokal menjadi besar,
padahal hasil yang diharapkan adalah optimum global yang mencakup seluruh
populasi. Sebaliknya, semakin besar nilai CD, berarti individu tersebut semakin
baik.

Biaya pembelian

Gambar 14 Perhitungan crowding distance

16

Ilustrasi mengenai crowding distance dapat dilihat pada Gambar 14.
Algoritme yang digunakan untuk menentukan crowding distance pada front yang
memiliki himpunan individu I adalah:
# Jumlah solusi (individu) di dalam I
# Inisialisasi jarak (distance)
# Urutkan berdasarkan setiap nilai objektif
# Setiap titik tepi selalu terpilih
# Untuk lainnya

CD dihitung untuk setiap objektif. CD akumulasi untuk seluruh objektif diperoleh
dengan cara menjumlahkan seluruh CD dari setiap objektif yang telah
dinormalisasi.
Tourname
nt

Populasi hasil
non-dominated
sorting

Pool
Pemilihan T
individu secara acak
untuk dibandingkan

Penentuan satu individu
terbaik dari T individu
untuk dimasukkan ke
dalam pool

Belum

Apakah pool
sudah penuh?
Sudah

Pool
Hasil tournament
selection

Gambar 15 Tournament selection

Populasi yang telah diurutkan dengan non-dominated sudah dapat digunakan
sebagai input untuk tournament selection. Tournament selection memerlukan dua
parameter, yaitu ukuran tournament (T) dan ukuran polo. Ukuran pool pada NSGA
II disamakan dengan ukuran populasi. Tournament selection dilakukan dengan
memilih sejumlah T individu dari populasi secara acak dan memilih satu individu
terbaik dari individu yang terpilih untuk disimpan ke dalam pool sebagai populasi
baru. Proses ini akan dilakukan terus menerus hingga ukuran populasi/pool yang

17

diinginkan terpenuhi. Gambar 15 menunjukkan langkah-langkah yang dilakukan
pada tournament selection.
Operator Genetik
Sebagaimana algoritme genetika pada umumnya, terdapat 2 operator genetik
yang digunakan, yaitu crossover dan mutasi. Seperti pada Gambar 16, crossover
maupun mutasi diawali dengan penentuan titik-titik crossover / mutasi pada
kromosom pelabuhan dan spesies ikan. Titik-titik tersebut menentukan gen mana
saja yang akan mengalami perubahan nilai.
Crossover memerlukan dua individu yang akan dijadikan sebagai induk
crossover. Pemilihan induk crossover dilakukan secara acak. Terdapat 2
kemungkinan crossover, yaitu 1) PMX Crossover, dan 2) Arithmetic Crossover.
3

19

2

Kromosom
pelabuhan

4

5

150

Kromosom
spesies ikan

200

100

150

200

700

Kromosom pembelian ikan

penentu crossover dan mutasi

Gambar 16 Titik penentu crossover dan mutasi pada sebuah individu

PMX Crossover
PMX crossover terjadi pada kromosom pelabuhan. Crossover ini dilakukan
dengan menukarkan pelabuhan pada pasangan individu induk. Gambar 17
menunjukkan salah satu contoh PMX crossover yang terjadi pada gen pertama.
2

19

2

4

5

100

50

500

200

350

300

3

19

2

4

5

150

200

100

150

200

700

3

19

2

4

5

100

50

500

200

350

300

2

19

2

4

5

150

200

100

150

200

700

Gambar 17 Contoh PMX crossover (1)

PMX crossover dapat menghindari terjadinya munculnya pelabuhan yang
sama dalam satu kromosom. Jika penukaran gen mengakibatkan munculnya
pelabuhan yang sama pada satu individu, maka PMX crossover menukar gen
tersebut dengan pasangan gen lain yang memiliki pelabuhan yang sama. Contoh ini
dapat dilihat pada Gambar 18.

18

4

11

2

4

5

100

50

500

200

350

300

8

4

2

4

5

150

200

100

150

200

700

8

11

2

4

5

100

50

500

200

350

300

4

4

2

4

5

150

200

100

150

200

700

Gen pelabuhan 4 kembar, sehingga dicari pasangan
gen yang nilainya 4 pada individu kedua

8

11

2

4

5

100

50

500

200

350

300

11

4

2

4

5

150

200

100

150

200

700

Gambar 18 Contoh PMX crossover (2)

Pada contoh tersebut apabila gen pertama mengalami crossover, maka
mengakibatkan salah satu turunan memiliki pelabuhan yang kembar, yaitu
pelabuhan dengan kode 4. Hal ini dapat mengakibatkan kesalahan saat perhitungan
fitness dilakukan. Untuk menghindari hal tersebut, gen yang kembar harus diganti
dengan pasangan pelabuhan yang sama pada individu kedua. Dalam hal ini
pasangan pelabuhan 4 pada individu kedua adalah 11, sehingga kode 11 digunakan
untuk mengganti gen yang kembar tadi. Seandainya setelah gen tersebut diganti
ternyata masih menghasilkan gen pelabuhan yang kembar, maka perlu dicari lagi
pasangan gen pelabuhan dengan kode 11 pada individu kedua dan seterusnya.
Arithmetic Crossover
Arithmetic crossover terjadi pada kromosom pembelian ikan, akan tetapi
dipengaruhi oleh kromosom spesies. Crossover ini dilakukan dengan merombak
jumlah pembelian suatu spesies ikan pada pelabuhan tertentu.