Anda di halaman 1dari 20

FORMULASI PAKAN TERNAK UNGGAS MENGGUNAKAN NONDOMINATED SORTING GENETIC ALGORITHM II

Eko Kurniawan Subha 1), Imam Cholissodin, S.Si., M.Kom. 2),


Edy Santoso, S.Si, M.Kom. 3)
Program Studi Teknik Informatika
Fakultas Ilmu Komputer
Universitas Brawijaya, Malang 65145, Indonesia
email: ekosubha[at]gmail.com 1), imamcs[at]ub.ac.id 2),
edy144[at]ub.ac.id 3)
ABSTRAK
Pakan merupakan salah satu sendi dalam usaha peternakan unggas yang lebih dari 50% biaya
produksi peternakan berasal pakan. Untuk meminimalkan biaya produksi peternakan, salah satu cara yang
dapat digunakan adalah meramu pakan sendiri. Meramu sendiri untuk mendapatkan pakan yang murah
harus memperhatikan kebutuhan nutrisi unggas. Namun seiring perjalanan waktu, terjadi penumpukan
ekstreta yang tidak terurai dengan baik sehingga menimbulkan dampak buruk bagi lingkungan karena
kandungan fosfor dan protein yang tidak dicerna oleh unggas. Masalah ini mendorong peternak untuk
menyusun formula pakan yang murah, ramah lingkungan, namun kebutuhan nutrisi ternak tetap
terpenuhi. Salah satu metode yang dapat digunakan untuk mengoptimasi permasalahan multitujuan adalah
Non-dominated Sorting Genetic Algorithm II (NSGA-II). Dalam penelitian ini, NSGA-II digunakan untuk
mengotimasi formula pakan ternak unggas untuk menghasilkan pakan yang murah, ramah lingkungan,
namun tetap memenuhi kebutuhan nutrisi ternak. Evaluasi fitness digunakan untuk membantu memilih
formula pakan berbaik dari beberapa formula pakan tak terdominasi yang dihasilkan metode NSGA-II.
Berdasarkan hasil pengujian formulasi pakan ternak terbaik diperoleh dengan menggunakan parameter
genetika yaitu, jumlah generasi 50; ukuran populasi 450; probabilitas crossover 0,8; probabilitas mutasi
0,2; indeks distribusi crossover 20; dan indeks distribusi mutasi 50. Dengan parameter optimal ini,
pemenuhan kebutuhan nutrisi ternak mencapai 100% dengan efisiensi biaya mencapai 65,44% (tanpa
menghitung faktor biaya pengolahan bahan pakan menjadi pakan dan aktifitas produksi pakan lainnya).
Kandungan fosfor dan protein dalam pakan sangat kecil, mendekati kebutuhan minimal fosfor dan
protein.
Kata kunci: formulasi pakan ternak unggas, permasalahan optimasi multitujuan, NSGA-II.
ABSTRACK
Feed is one of the factor in a poultry farm businesses which more than 50% of production costs
derived from feed livestock. To minimize the cost of livestock production, one of the ways that can be used
are mix feed ingredient for their own poultry farm. Feed self-mixing to get a less cost feed must pay
attention to the nutritional needs of poultry. But over time, a buildup ekstreta that do not decompose
properly, causing adverse effects to the environment because of the content of phosphorus and protein are
not digested by birds. This problem pushing breeder to formulate less cost feed formula, environmentally
friendly, but the nutritional needs of cattle remain unfulfilled. One method that can be used to optimize
multi-objective problem is Non-dominated Sorting Genetic Algorithm II (NSGA-II). In this study, NSGAII is used to optimize poultry feed formula to produce less cost feed, environmentally friendly, but still
meet the nutritional needs of cattle. Fitness evaluation is used to choose best feed formula from nondominated formula produced NSGA-II. Based on the results of testing the best feed formula obtained by
using genetic parameters, namely, generation number 50, the population size of 450, the probability of
crossover 0.8, mutation probability of 0.2, distribution index crossover 20, and the mutation distribution
index 50. With these optimal parameters, meeting the nutritional needs of cattle reach 100% by the cost
efficiency reached 65.44% (without counting the cost factor feedstuff processing into feed and other feed
production activities). The content of phosphorus and protein in the diet is very small, approaching the
minimum requirement of phosphorus and protein.
Keywords: birds feed formulation, multi-objective optimization problem, NSGA-II.
usaha peternakan yang mendapatkan alokasi
dana terbesar, sehingga hal ini perlu
diperhatikan. Faktor biaya produksi pakan dalam

1. PENDAHULUAN
Pakan merupakan salah satu sendi dalam
1

produksi peternakan ayam maupun itik


menyumbang 60-75% dari total biaya produksi
[1].
Naiknya harga pakan pabrikan mendorong
peternak untuk meramu pakan untuk ternak
mereka. Disisi lain, dengan meramu pakan
sendiri, peternak dapat mengatur tingkat
produktivitas ternak dengan menentukan kualitas
ramuan pakan yang mereka buat dan membantu
peternak untuk lebih mandiri.
Dalam usaha peternakan, hal-hal yang dapat
dilakukan untuk memaksimalkan keuntungan,
yaitu meminimalkan biaya pakan dan
memaksimalkan hasil produksi ternak. Di sisi
lain, pakan dapat memicu peningkatan polusi
yang diakibatkan oleh forsor [2] dan nitrogen
dalam protein [3], [4] dari hasil ekskresi ternak.
Hal ini mendorong formulator pakan untuk
menyusun ramuan pakan yang murah dan ramah
lingkungan. Permasalahan formulasi pakan
ternak unggas yang memiliki lebih dari satu
kriteria atau memiliki lebih dari satu tujuan yang
ingin
dicapai
merupakan
permasalahan
multitujuan (multi-objective problem).
Salah satu metode yang dapat digunakan
untuk mengoptimasi formula pakan unggas
adalah algoritma genetika. Algoritma genetika
merupakan metode optimasi paling populer yang
banyak digunakan di berbagai bidang, yang
sering menghadapi masalah optimasi dengan
model matematika kompleks atau bahkan sulit
dibangun [5]. Contoh aplikasi algoritma genetika
adalah implementasi algoritma genetika untuk
kompresi citra [6]. untuk menyelesaikan
permasalahan satu tujuan, metode yang dapat
digunakan adalah algoritma genetika standar.
Karena formulasi pakan ternak unggas dalam
skripsi ini merupakan permasalahan multitujuan,
maka metode yang akan digunakan adalah versi
algoritma genetika yang mendukung optimasi
multitujuan.
Pada penelitian terdahulu, algoritma
genetika dengan pendekatan weighted-sum
pernah digunakan untuk menyelesaian masalah
optimasi multitujuan pada formulasi komposisi
bahan pakan ikan [7]. Namun, solusi yang
diperoleh melalui pendekatan ini sangat sensitif
terhadap bobot yang digunakan dalam proses
agregasi, menuntut pengambil keputusan untuk
memiliki pengetahuan yang tepat tentang
permasalahan yang ingin diselesaikan [8].
Non-dominated Sorting Genetic Algorithm
II (NSGA-II) merupakan algoritma genetika
berbasis non-domination yang dikembangkan
dengan beberapa fitur baru (dibandingkan
dengan versi sebelumnya, NSGA) seperti
algoritma pengurutan yang lebih baik,
menyertakan elitism, dan tidak membutuhkan
parameter sharing [9]. NSGA-II menjadi salah

satu Multiobjective Evolutionary Algorithm yang


paling populer karena kesederhanaannya,
efektivitas, dan minimumnya keterlibatan
pengguna didalamnya [10].
Dalam penelitian sebelumnya [11], NSGA-II
digunakan untuk mengoptimasi distribusi kapal
perang Angkatan Laut Indonesia dengan hasil:
area partoli pada teritorial laut Armada Kawasan
Timur (ARMATIM) yang bisa dijangkau
meningkat 2% dengan penghematan biaya
operasional sebesar 10%. Penelitian lainnya
dilakukan dalam pemodelan Reactive Power
Market Clearing (RPMC) [12]. Dalam
pemodelan RPMC ini, NSGA-II memberikan
hasil yang baik dan membantu mengambil
keputusan untuk pasar kliring yang lebih baik.
Berdasarkan kebutuhan akan teknologi yang
mampu membantu peternak unggas dalam
penyusun formula pakan, maka dibutuhkan
perangkat lunak, yaitu program aplikasi
formulator pakan ternak unggas menggunakan
NSGA-II.

2. PERMASALAHAN
Berdasarkan uraian pada pendahuluan,
penelitian ini perumusan berkaitan dengan
implementasi NSGA-II untuk menyelesainkan
permasalahan optimasi multitujuan dalam
memformulasikan pakan ternak unggas.

3. TINJAUAN PUSTAKA
3.1. Studi Terkait
Dalam penelitian ini, peneliti melakukan
kajian kajian terhadap beberapa penelitian
sebelumnya. Kajian pertama dilakukan terhadap
penelitian yang dilakukan oleh Wardhani,
Safrizal, dan Chairi [7]. Untuk mengoptimasi
komposisi pakan, mereka menggunakan metode
Multi-objective Genetic Algorithms (MOGA).
Dalam implementasinya, parameter masukan
individu yang digunakan adalah jenis ikan, jenis
kelamin, dan jumlah pakan yang akan dihasilkan.
Skema penyandian bilangan bulat digunakan
dalam penelitian tersebut, dengan metode seleksi
roulette whele, dan one-point crossover. Dengan
jumlah individu = 200; panjang kromosom = 5;
probabilitas crossover = 0,01; probabilitas mutasi
= 0,2; dan jumlah generasi = 5; rata-rata
keberhasilan
penghitungan
pemenuhan
kebutuhan nutrisi ikan mencapai 100% dan
tingkat efisiensi biaya pakan sekitar 46,5%.
Kajian kedua berkaitan denga permasalahan
distribusi kapal perang. Penelitian tersebut
dilakukan oleh Hozairi dkk [11] menggunakan
NSGA-II. Dalam penetitian mereka, NSGA-II
digunakan untuk memaksimalkan area cakupan
patroli daerah maritim dan untuk meminimalkan
biaya operational. Unit kapal yang tersedia
2

sejumlah 27 unit dengan 7 sektor di teritorial laut


Armada Kawasan Timur (ARMATIM). Dengan
100 iterasi, dihasilkan bahwa 23 unit kapal
perang terpilih dalam pendistribusian sedangkan
4 unit lainnya masuk dok. Penelitian mereka
mendapat hasil, yaitu peningkatan area partoli
pada teritorial laut ARMATIM sebesar 2% dan
penghematan biaya operasional sebesar 10%.
Penelitian ketiga dilakukan terhadap
penelitian yang dilakukan oleh Saini dan
Saraswat [12], tentang penyelesaian model
multitujuan Reactive Power Market Clearing
(RPMC) menggunakan NSGA-II. Dalam
penelitian mereka, NSGA-II digunakan untuk
meminimalkan fungsi pembayaran total dan
meminimalkan indeks peningkatan stabilitas
voltase untuk menyertakan perkembangan
stabilitas voltase dalam skema RPMC. Dari
penelitian pemodelan RPMC ini, diperoleh
kesimpulan bahwa NSGA-II memberikan hasil
yang baik dan membantu mengambil keputusan
untuk pasar kliring yang lebih baik.

potensial dengan asam lemak. Dalam tubuh,


lemak berfungsi sebagai sumber energi yang
efisien secara langsung dan secara potensial bila
disimpan dalam jaringan adiposa [16].
Kebutuhan ternak akan mineral merupakan
bagian yang tidak terpisahkan dari kepentingan
produksi ternak itu sendiri. Kebutuhan tersebut
menyangkut antara lain untuk perbaikan dan
pertumbuhan jaringan seperti dalam paruh dan
tulang. Salah satu mineral yang dibutuhkan oleh
unggas adalah kalsium dan fosfor.
Kalsium
berperan
penting
dalam
pembentukan tulang. Kalsium juga sangat
penting dalam pengaturan sejumlah besar
aktivitas sel yang vital, fungsi syaraf dan otot,
kerja hormon, pembekuan darah, motilitas
seluler, dan khusus pada ayam petelur berguna
untuk pembentukan kerabang telur [16].
Fosfor berfungsi sebagai pembentuk tulang,
persenyawaan organik, metabolisme energi,
karbohidrat, asam amino dan lemak, transportasi
asam lemak, dan bagian koenzim. Fosfor sebagai
fosfat memainkan peranan penting dalam
struktur dan fungsi semua sel hidup. Namun,
kandungan forfor berlebih dapat penyebabkan
pencemaran lingkungan yang dikeluarkan
melalui proses ekskresi [2].

3.2. Dasar Teori


Pakan dan Nutrisi Pakan Ternak Unggas
Pakan merupakan salah satu faktor penentu
prodiktivitas ternak dalam usaha peternakan
unggas. Produktivitas ternak dapat ditingkatkan
dengan pemberian pakan yang baik. Pakan yang
baik dibuat dengan kombinasi bahan-bahan
pakan yang baik pula. Berdasarkan [1], zat
makanan bahan pakan ternak yang digunakan
dalam penyusunan ransum untuk unggas adalah
Energi Metabolis (EM), Protein Kasar (PK),
Lemak Kasar (LK), Serat Kasar (SK), Kalsium
(Ca), Fosfor (P), Lisin (Lis), dan Metionin (Met).
Nutrisi merupakan proses pemasukan dan
pengolahan zat makanan oleh tubuh; bisa juga
diartikan sebagai makanan bergizi; dan ilmu
tentang gizi [13].
Karbohidrat, lemak, dan protein merupakan
zat-zat makanan yang menjadi sumber energi
[14]. Protein merupakan senyawa organik yang
sebagian besar unsurnya terdiri dari karbon,
hidrogen, oksigen, nitrogen, sulfur, dan fosfor.
Protein memiliki peran penting dalam
pembentukan jaringan tubuh; pembentukan
enzim-enzim dan/atau bagian dari enzim;
reproduksi; dan dalam keadaan kekurangan
energi, protein akan diubah menjadi bentuk
energi [15]. Kandungan nitrogen dalam protein
yang tidak dicerna oleh unggas akan dikeluarkan
melalui proses ekskresi. Penambahan senyawa
nitrogen pada lingkungan dapat merusak
seimbangan alami nitrat dan nitrit yang pada
akhirnya dapat memberikan efek negatif pada
kesehatan manusia dan hewan [4].
Lemak adalah kelompok senyawa heterogen
yang masih berkaitan, baik secara aktual maupun

Formulasi Pakan Ternak Unggas


Lebih dari setengah biaya produksi
peternakan berasal dari pakan. Jika pakan
dikelola dengan baik, maka dapat mengurangi
biaya
produksi
ternak
dan
mampu
memaksimalkan produktivitas ternak. Namun
jika sebaliknya, salah satu atau semua
kemungkinan-kemungkinan berikut dapat terjadi,
yaitu biaya produksi melambung tinggi;
kebutuhan ternak tidak terpenuhi; kualitas pakan
jauh melebihi kebutuhan ternak; dan lingkungan
tercemar oleh fosfor dan protein yang
dikeluarkan melalui proses ekskresi.
Formulasi pakan adalah mencampur bahan
pakan menjadi satu yang seragam dengan
menerapkan pengetahuan tentang gizi, bahan
pakan, dan ternak di dalam pengembangan pakan
yang bergizi untuk memenuhi kebutuhan ternak
[17], [18]. Faktor utama yang harus diperhatikan
agar kualitas dan kuantitas pakan tetap terjaga,
yaitu harga bahan makanan penyusun pakan,
ketersediaan bahan makanan, dan kandungan zat
makanan dalam bahan makanan dan kebutuhan
zat makanan ternak; batasan penggunaan bahan
pakan juga perlu diperhatikan karena bahanbahan tertentu mengandung anti nutrisi [16].
Batasan
penggunaan
bahan
pakan
tergantung pada jenis dan fase/periode
pemeliharaan unggas. Ada beberapa fase dalam
pemeliharaan unggas, yaitu starter (awal),
grower (pertumbuhan), layer (produksi), dan
3

finisher
(akhir).
Pengelompokan
fase
pemeliharaan itu sendiri tergantung pada jenis
unggas dan pengelola peternakan. Dalam fase
pemeliharaan unggas, fase layer merupakan fase
produksi ternak, biasanya untuk unggas petelur,
fase ini merupakan masa-masa bagi ternak untuk
menghasilkan telur [1].
Berkaitan dengan kandungan zat makanan
dalam bahan makanan dan kebutuhan zat
makanan ternak, ada dua poin yang perlu
ditekankan ketika memformulasi pakan. Pertama,
ketika memformulasi pakan, banyak zat makanan
yang perlu diperhitungkan, tidak hanya dalam
hal konsentrasi yang sebenarnya, tetapi juga
dalam hal rasio dengan zat makanan lainnya.
Kedua, saat ini formulasi harus mengejar tidak
hanya tujuan ekonomi, tetapi juga lingkungan
yang berkaitan dengan minimalisasi polusi yang
disebabkan oleh pakan [2].
Dalam memformulasi pakan, peternak
menghitung harga yang akan dikeluarkan dan
kandungan nutrisi yang ada pada pakan. Hal ini
dikakukan
sebelum
mengimplementasikan
formula pakan dalam proses pencampuran bahan
pakan. Harga dan total kandungan setiap zat
makanan dalam pakan digunakan sebagai
indikator pemenuhan kebutuhan zat makanan.
Nilai ini dapat dihitung menggunakan Persamaan
(1) [1].

untuk pemenuhan batasan penggunaan bahan


pakan ke-j. Nilai pai dan pbj didapatkan dengan
mematuhi pola aturan pada Persamaan (4),
Persamaaan (5), dan Persamaaan (6).

bj

(2)

bj
j =1

i=1

j=1

pc t =ubt pm t

(5)

pc t =0

Min/ Maks f m ( x), m=1, 2,..., M ;

kti adalah kriteria ke-i dalam pakan yang akan


dihitung nilai totalnya. kti dapat berupa harga
pakan, kandungan EM, PK, LK, SK, Ca, P, Lis,
dan Met. aij adalah nilai kriteria ke-i dalam bahan
ke-j dan bj adalah proporsi bahan ke-j. n adalah
jumlah bahan yang akan digunakan dalam pakan.
Penaliti adalah nilai yang digunakan sebagai
acuan kualitas pakan atau pemenuhan nutrisi
ternak dalam formula pakan. Penalti digunakan
dalam proses seleksi formula pakan. Semakin
kecil nilai penalti suatu formula pakan, maka
formula pakan tersebut semakin memenuhi
batasan-batasan dalam memformulasikan pakan.
Nilai penalti dapat dihitung menggunakan
Persamaaan (3) [3].
pt=( pa i )+( pb j )

pmt >ub t ,

(6)

Permasalahan Optimasi Multitujuan


Dalam penelitian ini, selain meminimalkan
biaya, tujuan lain yang ingin dicapai adalah
meminimalkan kandungan fosfor dan protein.
Permasalahan semacam ini biasa disebut masalah
multitujuan (multi-objective problem). Aktivitas
atau upaya pencarian solusi masalah multitujuan
disebut optimasi multitujuan (Multi-Objective
Optimization Problem, MOOP).
Secara
umum,
masalah
multitujuan
berkendala dapat dinyatakan dalam model
matematis seperti pada Persamaan (7) [19].

(1)

(4)

pmt adalah nilai pemenuhan kriteria pembatas ket; lbt dan ubt adalah batas minimal dan batas
maksimal kriteria pembatas ke-t yang harus
dipenuhi; dan pct adalah nilai pemenuhan kriteria
pembatas. Dalam konteks kebutuhan nutrisi, pmt
adalah kti; lbt dan ubt adalah Li (batas minimal zat
makanan ke-i dalam pakan) dan Ui (batas
maksimal zat makanan ke-i dalam pakan); dan
pct adalah pai. Sedangkan dalam konteks batasan
penggunaan bahan pakan, pmt adalah bj; lbt dan
ubt adalah rj dan sj (batas minimal dan maksimal
penggunaan bahan pakan ke-j dalam pakan); dan
pct adalah pbj.

j =1

x j=

pc t = pmt lbt

lb t pmt ub t ,

kt i = a ij x j

pmt <lb t ,

(7)

g j ( x)0, j=1,2, ..., J ;


h k ( x)=0, k=1,2,... , K ;
(L)

(U )

xi x i xi , i=1, 2,... ,n .

Pada Persamaan (7), ada M fungsi tujuan f(x) =


(f1(x), f2(x), , fM(x))T. Solusi x merupakan
vektor yang terdiri dari n variabel keputusan: x =
(x1, x2, , xn)T. Fungsi tujuan ini terikat pada J
kendala pertidaksamaan dan K kendala
persamaan. Notasi gj(x) 0 dan hk(x) 0 masingmasing
merupakan
fungsi
kendala
pertidaksamaan dan fungsi kendala persamaan.
Kendala terakhir merupakan batasan variabel,
untuk membatasi masing-masing nilai variabel
keputusan xi antara batas bawah xi(L) dan batas
atas xi(U). Batasan ini merupakan ruang variabel
keputusan
D
(atau
ruang
keputusan).
Terminologi titik (point) dan solusi dapat
digunakan bergantian untuk menunjukkan solusi
vektor x. Solusi yang tidak memenuhi semua
kendala (J + K) dan batasan variabel disebut
solusi infeasible (tidak layak). Sebaliknya, jika

(3)

pt adalah nilai penalti formula pakan; pai


digunakan dalam konteks kebutuhan nutrisi,
yaitu nilai penalti untuk pemenuhan zat makanan
ke-i; dan pbj digunakan dalam konteks batasan
penggunaan bahan pakan, yaitu nilai penalti
4

ada solusi x memenuhi semua kendala dan


batasan variabel, maka solusi x disebut solusi
feasible (layak). Oleh karena itu, dengan adanya
kendala, seluruh ruang variabel keputusan D
tidak perlu feasible. Himpunan semua solusi
feasible disebut feasible region atau ruang
pencarian (search space, S) [19].
Dalam optimasi multitujuan, masing-masing
fungsi tujuan bisa berupa fungsi minimalisasi
atau maksimalisasi. Dalam konteks optimasi,
berdasarkan prinsip dualitas, disarankan agar
mengonversikan masalah maksimalisasi ke
minimalisasi dengan mengalikan fungsi tujuan
dengan -1. Hal ini dilakukan untuk
mempermudah dalam mengatasi fungsi-fungsi
tujuan yang berbeda (minimalisasi dan
maksimalisasi) dalam suatu masalah optimasi
multitujuan (Deb, 2001).

dua solusi memiliki sifat-sifat berikut ini [19]:


Hubungan dominansi yang dijelaskan
sebelumnya terkadang mengacu pada dominansi
lemah. Hubungan dominansi dikatakan
lemah jika solusi x(1) mendominasi solusi x(2),
paling tidak di satu fungsi tujuan hingga M-1
tujuan. Hubungan dominansi solusi x(1) dan
solusi x(2) dikatakan kuat atau solusi x(1)
dikatakan benar-benar mendominasi solusi x(2)
(x(1) x(2)), jika solusi x(1) benar-benar lebih baik
dari pada solusi x(2) di semua M tujuan [19].
NSGA-II
Non-dominated Sorting Genetic Algorithm II
(NSGA-II) merupakan salah satu Multiobjective
Evolutionary
Algorithm
yang
mampu
menemukan solusi Pareto-optimal sebanyak
mungkin. NSGA-II merupakan algoritma
genetika dengan pendekatan dominasi yang
dikembangkan oleh Deb dkk. NSGA-II memiliki
algoritma pengurutan yang lebih baik,
menyertakan elitism, dan tidak membutuhkan
parameter sharing (share); yang tidak dimiliki
oleh versi sebelumnya (NSGA) [9].
Tahapan
penyelesaian
permasalahan
optimasi menggunakan NSGA-II adalah sebagai
berikut [9], [20], [21]:
1. Pembangkitan populasi awal. Prosedur
NSGA-II dimulai dengan membangkitkan
populasi awal/induk (P0) secara acak.
2. Evaluasi fungsi tujuan. Mengevaluasi nilai
fungsi tujuan (dan fungsi kendala jika ada)
setiap individu dalam populasi awal.
3. Reproduksi. Menerapkan proses seleksi
induk, simulated binary crossover, dan
polymonial mutation hingga diperoleh N
offspring (N, ukuran populasi awal).
4. Evaluasi fungsi tujuan. Mengevaluasi nilai
fungsi tujuan (dan fungsi kendala jika ada)
setiap individu dalam populasi awal.
5. Kombinasi
populasi.
Menggabungkan
populasi generasi saat ini/induk (Pt) dengan
populasi offspring (Qt). Populasi gabungan
ini bisa juga disebut populasi intermediate
(Rt)
6. Non-domination sorting. Setiap individu
dalam
populasi
intermediate
diurut
berdasarkan non-domination. Pseudocode
pengurutan individu berdasarkan dominasi
dapat dilihat pada Gambar 2.
7. Crowding distance assignment. Menghitung
jarak antara individu dengan individu
tetangga.
Pseudocode
penghitungan
crowding distance dapat dilihat pada Gambar
4.
8. Penggantian populasi. Memilih N individu
terbaik dari populasi intermediate untuk
menggantikan populasi induk. Selama proses
pemilihan N individu terbaik, setiap individu

Dominasi
Dalam optimasi multitujuan, tujuan yang
diinginkan sering bersaing antara tujuan yang
satu dengan yang lainnya. Oleh karena itu, dalam
optimasi
multitujuan,
solusi
optimal
didefinisikan dalam terminologi solusi tak
terdominasi (Non-dominated Solutions).
Ruang pencarian multitujuan menggunakan
konsep dominasi dalam arti bahwa dua solusi
berhubungan satu sama lain dengan dua
kemungkinan, yaitu salah satu dari solusi
tersebut mendominasi solusi yang lain atau tidak
mendominasi. Misal ada sejumlah M fungsi
tujuan. Untuk menangani fungsi tujuan
minimalisasi dan maksimalisasi, operator
digunakan antara dua solusi i dan j, yaitu i j
untuk menyatakan bahwa solusi i lebih baik dari
pada solusi j pada tujuan tertentu. Demikian
pula, i j memiliki arti, solusi i lebih buruk dari
pada solusi j pada tujuan tertentu. Solusi x(1)
dikatakan mendominasi solusi x(2) lainnya (x(1)
x(2)) jika kedua kondisi berikut bernilai benar,
yaitu [19]:
1. Solusi x(1) tidak lebih buruk dari pada solusi
x(2) di semua fungsi tujuan, atau fj(x(1))
fj(x(2)) untuk semua j = 1, 2, ..., M.
2. Solusi x(1) benar-benar lebih baik dari pada
solusi x(2), paling tidak di satu fungsi tujuan,
atau fj(x(1)) fj(x(2)) paling tidak satu fungsi
tujuan j {1, 2, ..., M}.
Jika solusi x(1) mendominasi solusi x(2), maka
dapat dikatakan bahwa solusi x(1) lebih unggul
dari pada solusi x(2).
Definisi dominasi di atas menyatakan
hubungan dominansi antara dua solusi. Ada tiga
kemungkinan yang bisa terjadi dalam dominansi
antara solusi 1 dan solusi 2, yaitu (i) solusi 1
mendominasi solusi 2, (ii) solusi 1 didominasi
oleh solusi 2, atau (iii) solusi 1 dan solusi 2 tidak
saling mendominasi. Hubungan dominansi antara
5

diberi nilai crowding distance menggunakan


prosedur crowding distance assignment
sebagaimana dideskripsikan pada Gambar 4.
Individu yang berada dalam front 1 lebih
ditekankan dari pada individu lainnya yang
berada dalam front lain. Jika ukuran front 1
kurang dari N, maka semua individu dalam
front 1 dipilih sebagai anggota populasi baru
(Pt+1). Sisa anggota populasi Pt+1 dipilih dari
anggota front selanjutnya berdasarkan
peringkatnya. Sehingga individu dari front 2
dipilih, diikuti oleh front 3, dst. Prosedur ini
dilanjutkan hingga tidak ada lagi himpunan
individu bisa ditampung. Misal front l adalah
himpunan non-domination terakhir yang bisa
ditampung. Secara umum, jumlah individu di
front 1 hingga front l akan lebih besar dari
ukuran populasi. Untuk memilih N anggota
populasi secara tepat, maka perlu mengurut
front terakhir l menggunakan operator
crowded-comparison (n) secara descending
dan pilih individu terbaik yang dibutuhkan
untuk mengisi slot populasi. Operator
crowded-comparison dapat dilihat pada
Persamaan (2.13). Populasi baru (Pt+1)
digunakan dalam generasi berikutnya dan
diproses untuk membentuk offspring Qt+1.
Proses NSGA-II untuk generasi-generasi
selanjutnya dapat dilihat pada Gambar 1.
9. Pemeriksaan kondisi berhenti. Melanjutkan
iterasi ke tahap reproduksi selama tidak
memenuhi kondisi berhenti.
10. Solusi Pareto-optimal. Himpunan individu
dalam front 1 merupakan himpunan solusi
terbaik yang bisa digunakan dalam proses
selanjutnya untuk memilih satu solusi terbaik.

non-domination sort dapat dilipat pada Gambar


2.
Dalam masalah optimasi berkendala, definisi
dominasi dalam NSGA-II dimodifikasi. Solusi i
dikatakan mendominasi (constrained-dominate) j
jika salah satu dari kondisi berikut benar [9]:
1. Solusi i feasible dan j tidak.
2. Solusi i dan j tidak feasible, tapi solusi i
memiliki nilai penalti yang lebih kecil.
3. Solusi i dan j feasible dan solusi i
mendominasi solusi j.
Selain itu menggunakan pendekatan fast
non-domination sort, NSGA-II menggunakan
pendekatan
crowded-comparison
sebagai
pengganti fungsi sharing untuk menghasilkan
persebaran solusi yang baik dalam himpunan
solusi [9].
input: P populasi
output: F (I1, I2,, IN) himpunan
non-dominated set
begin
for each p P
Sp =
np = 0
for each q P
if(p q) then
Sp = Sp {q}
else if(q p) then
np = n p + 1
end if
end for
if(np = 0) then
prank = 1
F1 = F1 {p}
end if
end for
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}
end if
end for
end for
i = i + 1
Fi = Q
end while
return F
end

Rt = Pt Qt
F = fast-non-dominated-sort(Rt)
Pt+1 = and i = 1
until |Pt+1|+|Fi| N
crowding-distance-assignment(Fi)
Pt+1 = Pt+1 Fi
i = i + 1
sort(Fi n)
Pt+1 = Pt+1 Fi[1:(N-|Pt+1|)]
Qt+1 = make-new-pop(Pt+1)
t = t + 1
Gambar 1. Pseudocode NSGA-II Generasi t + 1
Sumber: [9]

Perlu diperhatikan bahwa operator seleksi


yang digunakan dalam NSGA-II adalah binary
tournament selection namun setelah tahap
reproduksi populasi awal, kriteria penyeleksian
yang digunakan dalam tahap reproduksi generasi
selajutnya adalah operator crowded-comparison.
NSGA-II menggunakan pendekatan fast (elitist)
non-domination sort untuk mengurutkan solusi
(individu) ke dalam front [9]. Pseudocode fast

Gambar 2. Pseudocode Fast Non-dominated Sort


Sumber: Diadaptasi dari [9]

Pendekatan
crowded-comparison
membutuhkan metrik kepadatan solusi yang
melingkupi solusi tertentu dalam populasi. Untuk
mendapatkan kepadatan solusi yang melingkupi
solusi tertentu dalam populasi, perlu dihitung
6

jarak rata-rata dua titik lainnya di kedua sisi titik


ini untuk setiap fungsi tujuan [9]. Pada Gambar
3, titik hitam adalah solusi-solusi yang berada
pada front yang sama. Crowding distance solusi
ke-i dalam front-nya adalah rata-rata panjang sisi
cuboid. Dalam komputasi crowding distance,
populasi diurut berdasarkan masing-masing nilai
fungsi tujuan secara ascending. Setelah itu, untuk
setiap fungsi tujuan, solusi dengan nilai fungsi
terkecil dan solusi dengan nilai fungsi terbesar
diberi jarak tanpa batas (). Jarak solusi lainnya
dihitung menggunakan Persamaan (8).

input: I non-dominated set


output: Idist non-dominated set
dengan atribut crowding distance
begin
l = |I|
for each i, set I[i]distance = 0
for each objective m
I = sort(I,m)
I[1]distance = I[l]distance =
for i = 2 to (l 1)
I[i]distance = I[i]distance
+(I[i+1].m I[i-1].m)
/(fmmax fmmin)
end for
end for
end for
return Idist
end
Gambar 4. Pseudocode Crowding Distance
Assignment
Sumber: Diadaptasi dari [9]

Operator Genetika
Operator genetika yang digunakan dalam
NSGA-II untuk penelitian ini adalah binary
tournament
selection,
simulated
binary
crossover, dan polynomial mutation [12].
Algoritma binary tournament selection
dapat dilihat pada Gambar 5.

Gambar 3. Penghitungan Crowding


Distance
Sumber: Diadaptasi dari [9]

I [i]distance =

I [ i+1]. m I [i1] . m
max
min
f m f m

Input: P populasi , k ukuran


tournament (2, untuk binary)
output: p individu setelah proses
seleksi

(8)

Pada Persamaan (8), parameter I[i].m adalah


nilai fungsi tujuan ke-m dari solusi ke-i dalam
himpunan I. Sedangkan parameter fmmax dan fmmin
nilai maksimum dan minimum fungsi tujuan kem. Perhitungan ini dilanjutkan dengan fungsi
tujuan lainnya. Nilai crowding distance total
adalah jumlah jarak solusi untuk masing-masing
fungsi tujuan. Algoritma perhitungan crowding
distance dapat dilihat pada Gambar 4.
Dengan semua anggota populasi dalam
himpunan I memiliki metrik jarak, pengguna
dapat membandingkan dua solusi berdasarkan
tingkat kedekatannya dengan solusi lainnya.
Sebuah solusi dengan nilai jarak yang lebih kecil,
dalam arti tertentu, lebih dekat terhadap solusi
lain. Inilah yang sebenarnya dibandingkan dalam
pendekatan
crowded-comparison.
Operator
crowded-comparison (n) memandu proses
seleksi dalam berbagai tahapan algoritma menuju
front Pareto-optimal yang menyebar secara
seragam. Misal setiap individu i dalam populasi
memiliki atribut fitness/non-domination rank
(irank) dan crowding distance (idistance), maka
definisi n dapat dilihat pada Persamaan (9) [9].
in j

if irank < jrank


((irank = jrank )(idistance > jdistance ))

begin
p null , N |P|
for i 1 to k do
ind pop[random(1, N)]
if (p = null) or fitness(ind) >
fitness(p) then
p = individu
end if
end for
return p
end
Gambar 5. Pseudocode Binary Tournament Selection
Sumber: Diadaptasi dari [22], [23]

Penggunaan fitness sebagai pembanding


dalam proses seleksi diganti dengan konsep
dominansi dalam NSGA-II. Dalam proses
seleksi, jika kedua individu p dan q tidak saling
mendominasi, maka individu bisa dipilih secara
acak [21].
Simulated binary crossover (SBX) diajukan
oleh Deb dan Agrawal [24]. SBX didesain
dengan mengadopsi properti yang dimiliki onepoint crossover dalam binary-coded GA.
Operator SBX menghasilkan offspring y(1) dan
y(2) dari dua induk x(1) dan x(2). Prosedur SBX

(9)

berikut ini digunakan untuk variabel yang


memiliki batasan. Operator SBX diterapkan pada
individu, variabel demi variabel. Prosedur
crossover dilakukan jika random[0,1]
probabilitas crossover. random[0,1] adalah nilai
antara 0 dan 1 yang dibangkitkan secara acak.
Berikut ini adalah prosedur SBX [25].
1. Membangkitkan nilai acak u antara 0 dan 1.
2. Menghitung nilai parameter menggunakan
Persamaan (10).

{(

1
jika u >

1
n c+1

jika u

( u) ,

=
1
1
n +1
,
2 u

dengan
min [(xx l ), (x u x)]
=
( x ux l )
3. Tahap terakhir adalah menghitung variabel
offspring y menggunakan Persamaan (14).
(14)
y= x+ max
dengan
u
l
max =x x
Pengambilan Keputusan
Ketika dihadapkan dengan beberapa pilihan,
ketidakjelasan penilaian pengambil keputusan,
menjadi penyebab ketidakjelasan tujuan yang
ingin dicapai dalam permasalahan optimasi
multitujuan. Oleh karena itu, diperlukan
parameter yang bisa digunakan untuk
menentukan kualitas individu. Parameter yang
biasa digunakan adalah fitness. Berasarkan
penelitian yang dilakukan oleh Hozairi et al.
[11], pemodelan fitness yang dapat digunakan
digunakan untuk optimasi minimalisasi dapat
dilihat pada Persamaan (15) hingga Persamaan
(18).

(10)

dengan
(n +1)
=2
=1+ (2) 2 (1) min[(x (1) x l ),( xu x(2) )]
y y
c

x1 dan xu adalah batas bawah dan batas atas


variabel. Operator SBX menggunakan indek
distribusi crossover (nc) bernilai nonnegatif.
Semakin kecil nilai nc maka solusi yang
dihasilkan akan semakin berbeda dengan
induk. Semakin besar nilai nc maka solusi
yang dihasilkan akan semakin sama dengan
induk.
3. Menghitung variabel offspring y(1) dan y(2)
menggunakan Persamaan (11) dan Persamaan
(12).
(1)

(1)

( 2)

(2)

(1)

y =0,5[ (x +x ) |x x |]
(2)
(1)
(2)
|x(2) x(1)|]
y =0,5 [(x +x )+

fitness=fitness 1+fitness2+ fitness3


dengan
1
fitness 1=
0,01
biaya
1
fitness 2=
0,01
fosfor
1
fitness 3=
0,01
protein

(11)
(12)

Untuk menangani banyak variabel keputusan,


setiap variabel dipilih dengan probabilitas
0,5. Dengan begini, setengah variabel
keputusan di-crossover. Pada operator SBX
ini diasumsikan bahwa x(1) < x(2).

1
2
1
1
n +1 n +1 jika u>
1[2(1u)+2(u0,5)(1) ] ,
2
1

jika u

(16)
(17)
(18)

fitness 1, fitness 2, dan fitness 3 masingmasing adalah nilai fitness untuk fungsi tujuan
ke-1 (biaya), fungsi tujuan ke-2 (kandungan
fosfor), dan fungsi tujuan ke-3 (kandungan
protein). Solusi terbaik adalah solusi yang
memiliki fitness terbesar [11].

Polynomial mutation digunakan untuk


membuat offspring y yang mendekati induk x
[26]. Prosedur polynomial mutation berikut ini
digunakan untuk variabel yang memiliki batas
bawah (xl) dan batas atas (xu), diterapkan pada
individu, variabel demi variabel. Berikut ini
adalah prosedur polynomial mutation [25].
1. Membangkitkan nilai acak u antara 0 dan 1.
2. Menghitung nilai parameter menggunakan
distribusi probabilitas polinomial dengan nm
(indeks distribusi mutasi), sebagaimana
ditunjukkan pada Persamaan (13).
n + 1 n +1
,
= [2u+(12 u)(1) ]

(15)

4. METODE PENELITIAN
Metode penelitian yang digunakan dalam
penelitian ini pada dilihat pada Gambar 6.

(13)

analisis terhadap program aplikasi yang


dibangun. Tahap terakhir dari penulisan
adalah saran yang dimaksudkan untuk
memperbaiki
kesalahan-kesalahan yang
terjadi dan menyempurnakan penulisan serta
untuk memberikan pertimbangan atas
pengembangan perangkat lunak selanjutnya.

Studi Literatur

Pengumpulan Data

Desain dan Perancangan


Perangkat Lunak

Model Permasalahan
Tujuan dari formulasi pakan dalam
penelitian ini adalah untuk menyusun pakan
ternak unggas yang less cost (murah), ramah
lingkungan, dan memenuhi kebutuhan nutrisi
ternak unggas. Misal x = (x1, ..., xn) dimana, xj, j
= 1, ..., n merupakan variabel keputusan bahan
ke-j dalam pakan dan n adalah jumlah bahan
pakan yang digunakan dalam formulasi.
Untuk mencapai tujuan formulasi pakan, ada
beberapa kriteria yang dioptimasi, yaitu:
1. Biaya merupakan fungsi tujuan pertama (f1)
dan utama. Model matematis fungsi tujuan
pertama dapat dilihat pada Persamaan (19)
[2].

Implementasi

Pengujian dan Analisa

Pengambilan Kesimpulan
Gambar 6. Diagram Alir Metode Penelitian

Tahapan dalam penelitian ini adalah sebagai


berikut:
1. Studi literatur. Studi literatur ini dilakukan
sebagai dasar teori untuk melakukan
penelitian ini.
2. Pengumpulan data. Data yang dikumpulkan
adalah data kebutuhan zat makanan ternak
(standar pakan), data komposisi bahan pakan
ternak, dan data batasan penggunaan bahan
pakan ternak.
3. Desain dan perancangan perangkat lunak.
Tahap ini berisi aktifitas mendesain dan
merancang program aplikasi formulasi pakan
ternak unggas. Didalamnya juga mencakup
pemodelan fungsi tujuan yang ingin dicapai
dari formulasi pakan, ke dalam bentuk
matematis.
4. Implementasi.
Mengimplementasi
hasil
perancangan menjadi program aplikasi
formulasi pakan ternak unggas, menggunakan
bahasa pemrograman Java.
5. Pengujian dan analisis. Melakukan pengujian
dan analisis hasil pengujian untuk
mengetahui akurasi dan pemenuhan tujuan
penyusun pakan. Pengujian dilakukan untuk
mengetahui dampak perubahan parameter
algoritma genetika terhadap hasil formulasi
pakan. Perhitungan akurasi dilakukan dengan
perhitungan manual atau keputusan manual
berdasarkan data kebutuhan zat makanan
ternak unggas (standar pakan), data
komposisi bahan pakan ternak, dan data
batasan penggunaan bahan pakan ternak.
6. Pengambilan
kesimpulan.
Pengambilan
kesimpulan dilakukan setelah semua tahapan
perancangan, implementasi, dan pengujian
perangkat lunak telah selesai dilakukan.
Kesimpulan diambil dari hasil pengujian dan

f 1= c j x j

(19)

j =1

cj adalah harga bahan ke-j.


2. Pakan ramah lingkungan. Untuk mencapai
tujuan ini, maka perlu memilimalisasi
kandungan fosfor dan protein dalam pakan.
Secara matematis, fungsi tujuan fosfor (f2)
dan protein (f3) dapat dilihat pada Persamaan
(20) [2] dan Persamaan (21).
n

f 2= p j x j

(20)

j=1
n

f 3= pr j x j

(21)

j=1

pj dan prj adalah kandungan fosfor dalam


bahan ke-j dan kandungan protein dalam
bahan ke-j.
Variabel keputusan x dan proporsi bahan (b)
diikat oleh dua jenis kendala/batasan yang harus
dipenuhi, yaitu:
1. Kendala untuk memastikan kandungan nutrisi
pada pakan memenuhi kebutuhan nutrisi
ternak unggas, dengan kata lain kendala ini
digunakan untuk mencapai tujuan pemenuhan
kebutuhan nutrisi ternak unggas. Kendala ini
mendefinisikan jumlah minimal dan/atau
maksimal dari zat makanan seperti energi
metabolis, protein, serat, dll. Pemodelan
kendala ini dapat dilihat pada Persamaaan
(22).
n

L i a ij x j U i ,
j =1

i =1,... , k

(22)

mutasi), penggabungan populasi evaluasi


fungsi tujuan dan fungsi kendala individu
dalam populasi gabungan, fast nondominated sort, dan pemilihan N individu tak
terdominasi.
2. Evaluasi fitness. Proses ini merupakan tahap
pengambilan
keputusan
sehingga
menghasilkan formulasi pakan unggas yang
paling optimal.

Li adalah batas minimal zat makanan ke-i


dalam pakan, Ui adalah batas maksimal zat
makanan ke-i dalam pakan, dan k adalah
jumlah zat makanan yang dipertimbangkan.
2. Kendala yang membatasi proporsi bahan
pakan dalam pakan. Kendala yang digunakan
untuk membatasi proporsi bahan pakan dapat
dilihat pada Persamaaan (23).
j=1, ... , n

(23)

4.1. Proses Genetika dengan NSGA-II

rj dan sj adalah batas minimal dan maksimal


penggunaan bahan pakan ke-j dalam pakan.

Membangkitkan populasi awal


Contoh representasi kromosom formulasi
pakan ternak unggas menggunakan 10 bahan
pakan pada dilihat pada Tabel 1.

Proses Penyelesaian Masalah


Diagram alir proses penyelesaian masalah
formulasi pakan ternak unggas menggunakan
NSGA-II dapat dilihat pada Gambar 7.

Individu

Tabel 1. Representasi Kromosom

mulai

masukan: bahan pakan terpilih,


ternak terpilih,
jumlah ransum,

popSize adalah ukuran populasi,


maxGen adalah jumlah generasi maksimal,
Pc adalah probabilitas crossover,
Pm adalah probabilitas mutasi,
IDc adalah indeks distribusi crossover,
IDm adalah indeks distribusi mutasi
maxEval = popSize * (maxGen + 1)

Kromosom
1

10

Total

r j b j s j ,

6,3 3,2 1,9 28,9 1,5 1,8 0,9 28 1,5 5,1 79,1

3,6 0,9 1,1 11,7 7,7 7,2 0,8 27,6 0,8 6,5 67,9

2,1

5,5 1,3 4,4 13 3,1 9,1 0,8 24,4 0,6 6,5 68,7

0,9 2,9 1,8 27,8 1,9 17,2 0,9 13,4 1,5 6,1 74,4

4,3

2,7 3,2 1,9 26,1 8,3 4,3 1,1 24 2,1 6,5 80,2

8,8 4,1 4,2 0,6

2,7

10

4,1 0,4 2,6 12,1 6,2 1,8 0,5 19,7 0,7 6,4 54,5

1,8 23 7,5 5,1 0,9 31,1 2,1 6,3 81,9

2,9 15,1 8

2,4 1,2 38,7 0,4 6,4 83,4

0,9 0,4 24 0,2 5,7 50,9

0,6 21,9 8,8 6,4 1,1 37,4 2,3

7 91,2

Setiap
gen
dalam
kromosom
merepresentasikan bahan pakan dalam formula
pakan. Alel ke-j pada individu ke-v (atau,
proporsi bahan ke-j pada individu ke-v), bjv
dibangkitkan secara acak antara rj dan sj, yaitu
batas minimal dan batas maksimal penggunaan
bahan pakan ke-j. Misal alel ke-1 pada individu
ke-1
(b11
=
6,3)
diperoleh
dengan
membangkitkan bilangan acak antara batas
minimal penggunaan bahan pakan ke-1 (r1 = 0,1)
dan batas maksimal penggunaan bahan pakan ke1 (s1 = 10).

set batasan penggunaan


bahan terpilih
NSGA-II
evaluasi fitness

keluaran: formula pakan yang


paling optimal

Evaluasi Fungsi Tujuan dan Fungsi


Kendala
Tahap selanjutnya adalah mengevaluasi
fungsi tujuan setiap individu, fmv(x). Dimana
fmv(x) adalah fungsi tujuan ke-m pada individu
ke-v. Evaluasi fungsi tujuan setiap individu
dimulai dengan menghitung nilai variabel
keputusan bahan menggunakan Persamaan (2).
Nilai bjv dapat dilihat pada Tabel 1. Total bjv
tidapat dengan menjumlahkan alel yang ada pada
individu ke-j. Berikut ini contoh evaluasi fungsi

selesai
Gambar 7. Penyelesaian Formulasi Pakan Ternak
Unggas Menggunakan NSGA-II

Berdasarkan Gambar 7, penyelesaian


masalah formulasi pakan ternak unggas terdiri
dari dua proses utama yaitu:
1. NSGA-II. Dalam proses ini terdiri dari tahap
pembangkitan populasi awal, evaluasi fungsi
tujuan dan fungsi kendala individu dalam
populasi awal, reproduksi (seleksi, crossover,
10

tujuan individu ke-1. Nilai variabel keputusan xjv


dihitung hingga variabel ke-10.

jika Liv ktiv Uiv, maka pmiv = 0


Liv ktiv Uiv
L1,1 kt1,1 U1,1
2800 2836,3464
maka pm1,1 = 0

x1,1 = (6,3 / 79,1) = 0,07965


...
x10,1 = (5,1 / 79,1) = 0,06448
Nilai fungsi tujuan ke-m pada individu ke-v (fmv),
dapat dihitung menggunakan Persamaan (19),
(20), dan (21). Berikut ini contoh perhitungan
nilai fungsi tujuan biaya, kandungan forsor, dan
kandungan protein pada individu ke-1 (f1,1, f2,1,
dan f3,1).

Nilai pemenuhan nutrisi dihitung untuk setiap


nutrisi yang diperhitungkan dalam formulasi
pakan sehingga nilai penalti individu ke-v (pnv)
dapat dihitung sebagai berikut:
pnv = pmiv + ... + pmkv
pn1 = pm1,1 + ... + pm10,1
pn1 = 0 + ... + 0
pn1 = 0

f1,1 = (c1 * x1,1) + ... + (c10 * x10,1)


f1,1 = (1000 * 0,07965) + ... + (5000 * 0,06448)
f1,1 = 2554,2984

Hasil penghitungan nilai fungsi tujuan dan nilai


kendala masing-masing individu dapat dilihat
pada Tabel 2.

f2,1 = (p1 * x1,1) + ... + (p10 * x10,1)


f2,1 = (0,16 * 0,07965) + ... + (2,8 * 0,06448)
f2,1 = 0,6036

Tabel 2. Hasil Evaluasi Fungsi Tujuan dan Fungsi


Kendala Populasi Awal

f3,1 = (pr1 * x1,1) + ... + (pr10 * x10,1)


f3,1 = (10,2 * 0,07965) + ... + (58 * 0,06448)
f3,1 = 26,2616
c1, c2, , c10 adalah harga bahan ke-1, bahan ke2, , bahan ke-10.
Tahap selanjutnya adalah menghitung nilai
kendala individu ke-v (pnv), yaitu nilai yang
menyatakan pemenuhan kebutuhan nutrisi
ternak. Jika nilai kendala/penalti = 0, maka
kebutuhan nutrisi ternak terpenuhi. Penalti
didapat dengan menjumlahkan semua nilai
pemenuhan zat makanan ternak pada individu
terkait, pmiv (dari i = 1 hingga k, dimana k
adalah jumlah zat makanan). Sebelum
menghitung nilai pmiv, perlu dilakukan
penghitungan total kandungan setiap zat
makanan
pada
individu
terkait
(ktiv)
menggunakan Persamaan (1). Berikut ini contoh
menghitung nilai penalti individu ke-1 (pn1),
diawali dengan menghitung kandungan total
setiap zat makanan dalam individu ke-1 (kt1,1).

Individu

f1

f2

f3

pn

2554,2984

0,6036

26,2616

2258,1738

0,634

21,1816

Reproduksi
Reproduksi digunakan untuk membentuk
populasi offspring (Qt). Reproduksi terdiri dari
proses seleksi induk, crossover, dan mutasi.
Metode seleksi yang digunakan dalam penelitian
ini adalah binary tournament selection yang
berdasarkan pada crowded-comparison operator,
sedangkan metode crossover dan mutasi yang
digunakan adalah simulated binary crossover dan
polynomial mutation. Pembentukan populasi
offspring dilakukan dengan mengulang proses
seleksi induk, crossover, dan mutasi hingga
populasi offspring berukuran N terbentuk,
dimana N adalah ukuran populasi.
1. Seleksi Induk
Memilih dua induk (parent1 dan parent2)
yang masing-masing dipilih dari dua individu
(solution1 dan solution2) yang secara acak
dipilih dari populasi individu. Pemilihan induk
dari
dua
individu
terpilih
dilakukan
menggunakan binary tournament selection yang
dideskripsikan dalam Gambar 5. Pemeriksaan
dominansi antara individu p dan q dilakukan
menggunakan konsep dominasi berkendala [9].
Berikut ini contoh pemeriksaan dominansi
antara individu ke-1 (S1) dan individu ke-4 (S4).

kt1,1 = (a1,1 * x1) + ... + (a1,10 * x10)


kt1,1 = (2860 * 0,07965) + ... + (2650 *
0,06448)
kt1,1 = 2836,3464
Kandungan total zat makanan ke-1 (EM)
dalam individu ke-1 adalah 2836,3464.
Penghitungan kandungan total dilakukan untuk
setiap zat makanan yang diperhitungkan dalam
formulasi pakan. Setelah kandungan total setiap
zat makanan dihitung, tahap selanjutnya adalah
menghitung pemenuhan zat makanan ternak pmiv
dengan membandingkan kandungan zat makan
dengan kebutuhan hewan ternak sasaran.

pnp = pnq = 0, maka:


f1,1 > f1,4 flag = 1
flag = 1 dom2 = 1
f2,1 > f2,4 flag = 1
flag = 1 dom2 = 1

jika ktiv < Liv, maka pmiv = ktiv Liv


jika ktiv > Uiv, maka pmiv = Uiv ktiv
11

f3,1 > f3,4 flag = 1


flag = 1 dom2 = 1

Induk

dom2 = 1 sehingga, S4 mendominasi S1

x2

Kromosom
1

8,8 4,1 4,2 0,6

5
2

0,9 0,4

8
24

10

0,2 5,7

Alur Seleksi Induk


Memilih dua individu (solution1 dan
solution2) secara acak dari populasi.
Membandingkan solution1 dan solution2
berdasarkan dominansi dan nilai crowding
distance (d).
Jika solution1 mendominasi solution2,
maka solution1 terpilih.
Jika solution2 mendominasi solution1,
maka solution2 terpilih.
Jika solution1 dan solution2 tidak saling
mendominasi, maka
jika d(solution1) > d(solution2), maka
solution1 terpilih.
jika d(solution2) > d(solution1), maka
solution2 terpilih.
Jika d(solution1) = d(solution2), maka
bangkitkan nilai acak (rand) antara 0
dan 1.
jika rand < 0,5, maka solution1
terpilih.
jika rand 0,5, maka solution2
terpilih.

Proses berikut ini diulang untuk alel ke-i


hingga alel ke-n (jumlah alel) untuk mencari alel
ke-i offspring ke-1 (y1,i) dan alel ke-i offspring
ke-2 (y2,i). Jika alel x1,i > x2,i maka alel x1,i dan x2,i
saling ditukar. Berikut ini contoh menghitung
alel ke-1 untuk offspring ke-1 dan offspring ke-2.

Berikut ini contoh seleksi induk (parent1)


menggunakan binary tournament selection.

u1 > (1 / (x1,1)), maka:


(x1,1) = (1 / (2 * u1)){1 / (nc + 1)}
(x1,1) = (1 / (2 1,999998 * 0,84)) ^ (1 / (20
+ 1))
(x1,1) = 1,05652

u1 = Random[0,1] = 0,84
x1,1 = 2,7; x2,1 = 8,8
x1,1 < x2,1 maka:
x1,1 = 2,7
x2,1 = 8,8
= 1 + (2 / (x2 x1) * min [(x1 xL), (xU x2)])
= 2 -(nc + 1)
(x1,1) = 1 + (2 / (x2,1 x1,1) * (x1,1 xL,1))
(x1,1) = 1 + (2 / (8,8 2,7) * (2,7 0,1))
(x1,1) = 1,85246
(x1,1) = 2 1,85246 -(20 + 1)
(x1,1) = 2 2,3838516326616497E-6
(x1,1) = 1,999998
1 / (x1,1) = 1 / 1,999998 = 0,5000005959

Seleksi parent1
Memilih dua individu secara acak, misal S5
dan S9.
Membandingkan S5 dan S9.
S5 dan S9 tidak saling mendominasi dan
d(S5) = d(S9), maka
rand = 0,55; maka S9 terpilih.

y1,1 = 0,5 * ( x1,1 + x2,1) * (x2,1 x1,1)


y1,1 = 0,5 * ((2,7 + 8,8) 1,05652 * (8,8 2,7))
y1,1 = 2,52762
y1,1 xL,1 dan y1,1 xU,1
maka y1,1 = 2,52762

2. Crossover
Crossover induk menggunakan simulated
binary crossover untuk membentuk offspring
baru. Berikut ini adalah contoh implementasi
SBX pada induk S9 dan S8. Alel induk dapat
dilihat pada Tabel 3. Batasan alel dapat dilihat
pada Tabel 3, batas minimal dan batas maksimal
penggunaan bahan adalah batas bawah (xL) dan
sebagai batas atas (xU) alel.

(x2,1) = 1 + (2 / (x2,1 x1,1) * (xU,1 x2,1))


(x2,1) = 1 + (2 / (8,8 2,7) * (10 8,8))
(x2,1) = 1,39344
(x2,1) = 2 1,39344 -(20 + 1)
(x2,1) = 2 9,421696174053203E-4
(x2,1) = 1,99906
1 / (x2,1) = 1 / 1,99906 = 0,50024

nc = 20
x1 = parent1 = S9
x2 = parent2 = S8

u1 > (1 / (x2,1)), maka:


(x2,1) = (1 / (2 * u1)){1 / (nc + 1)}
(x2,1) = (1 / (2 1,99906 * 0,84)) ^ (1 / (20 +
1))
(x2,1) = 1,05639

Tabel 3. Kromosom Induk


Induk
x1

Kromosom
1

2,7

0,6 21,9 8,8 6,4 1,1 37,4 2,3

y2,1 = 0,5 * (x1,1 + x2,1) + * ( x2,1 x1,1)


y2,1 = 0,5 * ((2,7 + 8,8) + 1,05639 * (8,8 2,7))
y2,1 = 8,972

10
7

12

mut_pow = 0,04762

y2,1 xL,1 dan y2,1 xU,1


maka y2,1 = 8,972

= {{2 * u3 + (1 2 * u3) * ((1 ) ^ (nm +


1))} ^ mut_pow} 1
= {{2 * 0,24326 + (1 2 * 0,24326) * ((1
0,80081) ^ (20 + 1))} ^
0,04762} 1
= -0,02891

Jika alel yi < xL, maka yi = xL. Jika alel yi >


xU, maka yi = xU. Tahap selanjutnya adalah
membangkitkan bilangan Random[0,1], yaitu
bilangan acak antara 0 dan 1, sebagai penentu
persilangan alel yi. Jika Random[0,1] 0,5, maka
alel y1,i dan y2,i saling ditukar.

y3 = x3 + * (yU yL)
y3 = 0,6 + (-0,02891) * (5 0,1)
y3 = 0,45835

Random[0,1] = 0,93
Random[0,1] > 0,5
maka:
y1,1 = 2,52762
y2,1 = 8,972

Proses ini diulang untuk setiap alel x


(offspring dari proses crossover, y1 dan y2). Hasil
mutasi pada offspring dari proses crossover, y1
dan y2 dapat dilihat pada Tabel 5.

Individu pada Tabel 4 merupakan dua buah


offspring setelah proses SBX diterapkan pada
setiap alel induk. Sebelum offspring y1 dan y2
dimasukkan ke dalam popolasi offspring,
keduanya perlu mendapatkan perlakuan operator
mutasi.

Tabel 5. Offspring Hasil Mutasi

Tabel 4. Offspring Hasil Crossover


Kromosom
1

y1

2,5

y2

2,5

y2

10

0,5 21,9 8,7 0,9 0,4 24 0,2 5,7

4,1 4,2 0,7 2,1 2,7 1,1 37,4 2,3

Setelah proses mutasi selesai, offspring


dimasukkan ke dalam populasi offspring (Qt).
Contoh populasi offspring hasil reproduksi dapat
dilihat pada Tabel 6.

10

0,6 21,9 8,7 0,9 0,4 24 0,2 5,7

4,1 4,2 0,7 2,1 6,4 1,1 37,4 2,3

y1

Tabel 6. Populasi Offspring

3. Mutasi
Melakukan mutasi pada offspring baru
menggunakan polynomial mutation. Berikut ini
adalah
contoh
implementasi
polynomial
mutation pada induk x (offspring hasil proses
crossover, y1 dan y2).

Kromosom

Offspring

nm = 20
pm = 1 / n = 1/ 10 = 0,1
x = y1

2,5

10

4,1 4,2 0,7 2,1 2,7 1,1 37,4 2,3

...

...

...

...

10

3,6 3,2 4,5 26,1 8,3 9,5 1,1 24 2,1 6,5

0,5 21,9 8,7 0,9 0,4 24 0,2 5,7

...

...

...

...

...

...

...

Penggabungan Populasi dan Evaluasi


Memasukkan populasi induk (Pt) dan
populasi offspring (Qt) ke dalam populasi
intermediate (Rt), kemudian mengevaluasi nilai
fungsi tujuan dan fungsi kendala seperti pada
tahap ketiga. Contoh populasi intermediate dapat
dilihat pada Tabel 7.

Random[0,1] adalah bilangan acak antara 0


dan 1, sebagai penentu mutasi pada alel yi. Jika
Random[0,1] probabilitas mutasi (pm), maka
alel xi akan dimutasi. Berikut ini adalah contoh
mutasi pada alel ke-3 induk x (x adalah y1).
rand = Random[0,1] = 0,05634
rand pm, maka lakukan mutasi
x3 = 0,6
xL = 0,1
xU = 5

Individu

Tabel 7. Populasi Intermediate

u3 = Random[0,1] = 0,24326
u3 0,5 maka:
= (x3 xL) / (xU xL)
= (0,6 0,1) / (5 0,1)
= 0,10204
mut_pow = 1 / (nm + 1)
mut_pow = 1 / (20 + 1)
13

Kromosom
1

10

Total

Offspring

Kromosom

Offspring

6,3 3,2 1,9 28,9 1,5 1,8 0,9 28 1,5 5,1 79,1

...

...

...

...

11

2,5

0,5 21,9 8,7 0,9 0,4 24 0,2 5,7 67,8

12

...

...

...

...

...

...

4,1 4,2 0,7 2,1 2,7 1,1 37,4 2,3

...

7 70,6

13

3,6 0,9 1,1 11,7 8,7 7,2 0,8 27,6 0,8 6,5 68,9

14

4,3

2,9 15,1 8

2,4 1,2 38,7 0,4 6,4 83,4

10

Total

Individu

Kromosom

Dominasi

Sp

np

mendominasi

3,6 0,9 1,1 11,7 7,9 7,2 0,8 24,1 0,8 6,5 64,6

16

5,5 1,3 4,4 13 2,9 9,1 0,8 27,9 0,6 6,5 72

17

6,3 3,2 1,9 13,6 1,8 1,8 1,2 29 1,5 5,1 65,4

S20 S1 mendominasi S20 S7, S11, S12, S15, S16, S17,


S18, S19, S20

18

4,3

19

5,5 1,3 1,9 13 3,1 3,9 0,8 24,4 0,6 6,5 61

20

3,6 3,2 4,5 26,1 8,3 9,5 1,1 24 2,1 6,5 88,9

15

2,9 29,9 7,7 2,4 0,9 38,7 0,4 6,4 97,6

Hasil penghitungan nilai fungsi tujuan dan nilai


kendala masing-masing individu dalam populasi
intermediate dapat dilihat pada Tabel 8.

f1

f2

f3

pn

2554,2984

0,6036

26,2616

...

...

...

...

...

11

2457,8171

0,6834

26,581

-87,2239

12

1827,9745

0,5682

17,9409

-3,6579

13

2255,8781

0,633

21,1427

14

2055,2758

0,6068

22,1598

15

2336,6873

0,6465

21,8387

-0,0102

16

2321,1111

0,5911

22,1864

-0,1061

17

2176,6055

0,5867

22,1581

-0,609

18

2355,584

0,6153

25,2477

-27,0401

19

2310,3279

0,6599

23,2828

-0,3391

20

2725,0281

0,5959

25,6352

-0,1368

S1

S1
S2

Dominasi

Sp

Tidak saling
mendominasi

Tidak saling

S20 S1

S20 didominasi S1

S2

S20 didominasi S2

S20 Tidak saling


mendominasi

S11, S12, S17, S18, S19

14

Fi
1

p dalam Fi

nq =
(nq - 1)

Jika nq = 0
maka
Q=Qq

S1

S1

S20

13

S1, S5

S2

S1, S5

S3

S1, S5

...

...

...

S20

12

S1, S5, S6,


S13, S14

S7

...

...

...

q dalam Sp

F1 = {S4, S8}
S4

S8

Sp = {S1, S3,
S5, S7, S10, S11,
S12, S15, S16,
S17, S18, S19,
S20}

Sp = {S2, S3,
S6, S7, S9, S10,
S11, S12, S13,
S14, S15, S16,
S17, S18, S19,
S20}

F2 = Q = {S1, S5,
S6, S13, S14}
2

Tabel 9. Pengurutan Individu Berdasarkan Nondomination


q

Tabel 10. Pencarian Anggota Front Selanjutnya

Penentuan Peringkat
Setiap individu dalam populasi intermediate
diberi peringkat atau fitness berdasarkan frontnya. Letak individu dalam front dapat diketahui
dengan menggunakan algoritma fast nondominated sort, sebagaimana dideskripsikan
dalam Gambar 2. Individu dalam front pertama
diberi nilai fitness 1, individu dalam front kedua
diberi nilai fitness 2, dst. Pemeriksaan dominansi
antara individu p dan q dilakukan menggunakan
konsep dominasi berkendala [9]. Pengurutan
individu ke dalam front dapat dilihat pada Tabel
9 dan Tabel 10. Kolom np menyatakan jumlah
solusi yang mendominasi solusi p. Kolom Sp
menyatakan himpunan solusi yang didominasi
oleh solusi p.

Proses pada Tabel 9 dilakukan untuk setiap


individu p dalam populasi. Jika np = 0, maka
individu tersebut berada pada front pertama.
Tahap selanjutnya adalah menginisialisasi front
counter = 1 (i = 1), kemuadian mencari anggota
front selanjutnya, seperti pada Tabel 10. Pada
setiap mengulangan evaluasi front ke-i (Fi),
himpunan kosong Q dibuat untuk menyimpan
individu dalam front ke-(i + 1).

Tabel 8. Hasil Evaluasi Fungsi Tujuan dan Fungsi


Kendala Populasi Intermediate
Individu

F2 = {S1, S5, S6,


S13, S14}
S1

np
0
0

14

Sp = {S7, S11,
S12, S15, S16,
S17, S18, S19,
S20}

Fi

p dalam Fi

q dalam Sp

nq =
(nq - 1)

Jika nq = 0
maka
Q=Qq

S20

11

S14

Sp = {S3, S7,
S9, S10, S11, S12,
S15, S16, S17,
S18, S19, S20}
S3

S2

...

...

...

S20

S2, S9

(jumlah individu = 5) dan front 3 (jumlah


individu = 2) juga di masukkan ke dalam Pt+1
sehingga jumlah individu terbaik sekarang
adalah 9. Ada 1 slot kosong dalam populasi
individu terbaik dan front 4 adalah himpunan
non-domination terakhir yang bisa ditampung.
Untuk memilih satu individu dari front 4, maka
individu didalamnya harus diurut menggunakan
operator crowded-comparison (n) secara
descending kemudian pilih satu individu yang
memiliki crowding distance (d) terbesar.
Operator crowded-comparison dapat dilihat pada
Persamaan (9). Berikut ini contoh untuk
menghitung crowding distance individu dalam
front 4 (individu ke-3 dan individu ke-10).
Selanjutnya dalam contoh perhitungan crowding
distance, penamaan individu adalah sesuai urutan
individu. Misal individu ke-3 dan individu ke-10
menjadi S1 dan S2.
1. Jumlah individu dalam front 4 2, maka
crowding distance individu yang ada di front
4 adalah tak terbatas ().
d1 = d2 =
Individu yang akan dipilih untuk mengisi 1
slot kosong dalam populasi Pt+1 adalah S1
(individu ke-3) karena meskipun memiliki
crowding distance (d) yang sama, S1 berada
pada urutan pertama dalam front 4. Hasil
pemilihan N individu terbaik dapat dilihat
pada Tabel 12.
2. Misal, jumlah individu dalam front > 2
(seperti pada front 2; S1, S5, S6, S13, dan S14),
maka langkah yang harus dilakukan adalah
sebagai berikut:
a. Menginisialisasi crowding distance setiap
individu dalam front 2 dengan nilai 0.
d1 = d2 = d3 = d4 = d5 = 0
b. Mengurut individu berdasarkan nilai
fungsi tujuan ke-1 secara ascending.
f1,3 = 2055,2758 (f minimal)
f1,5 = 2055,2758
f1,4 = 2255,8781
f1,1 = 2554,2984
f1,2 = 3073,9919 (f maksimal)
c. Menginisialisasi
crowding
distance
individu yang ada pada urutan ke-1 dan
terakhir dengan nilai tak terbatas ().
d3 = d2 =
d. Menghitung crowding distance individu
yang ada pada urutan ke-2 hingga ke-4
(d5, d4, d1). Berikut ini adalah contoh
menghitung crowding distance individu
dalam front 2.
dv = dv + (fm(v+1) fm(v-1)) / (fmmaks fmmin)
d5 = d5 + (f1,4 f1,3) / (f1,2 f1,3)
d5 = 0 + (2255,8781 2055,2758) /
(3073,9919 2055,2758)

F3 = Q = {S2, S9}

Pencarian anggota front selanjutnya, front


ke-(i + 1) dilakukan selama front ke-i tidak
kosong. Hasil pengurutan individu dalam
populasi intermediate dapat dilihat pada Tabel
11.
Tabel 11. Individu yang Telah Diurut Berdasarkan
Non-domination
Front

Anggota Front / (Individu)

4, 8

1, 5, 6, 13, 14

2, 9

3, 10

15

16

20

19

10

17

11

12

12

18

13

11

Pemilihan N Individu Tak Terdominasi


Tahap selanjutnya adalah memilih N (ukuran
populasi, 10) individu terbaik (Pt+1) dari populasi
intermediate sebagaimana dideskripsikan pada
Gambar 1. Berikut ini adalah contoh pemilihan
10 individu terbaik.
Sebelum individu terpilih dimasukkan ke
dalam populasi individu terbaik, mereka harus
terlebih dahulu diberi nilai crowding distance (d)
menggunakan prosedur crowding distance
assignment. Prosedur crowding distance
assignment yang dapat dilihat pada Gambar 4.
Jumlah individu dalam front 1 adalah 2 yaitu
kurang dari N (ukuran populasi, 10), maka semua
individu dalam front 1 dimasukkan ke dalam
populasi individu terbaik. Individu dalam front 2
15

d5 = 0,196916786

d4 =
h. Mengurut individu berdasarkan nilai
fungsi tujuan ke-3 secara ascending.
f3,4 = 21,1427 (f minimal)
f3,3 = 22,1598
f3,5 = 22,1598
f3,1 = 26,2616
f3,2 = 27,2501 (f maksimal)
i. Menginisialisasi
crowding
distance
individu ke-1 dan individu terakhir
dengan nilai tak terbatas ().
d4 = d2 =
j. Menghitung crowding distance individu
yang ada pada urutan ke-2 hingga ke-4
(d3, d5, d1). Berikut ini adalah contoh
menghitung crowding distance individu
ke-1 dalam front.
d3 = d3 + (f3,5 f3,4) / (f3,2 f3,4)
d3 = + (22,1598 21,1427) / (27,2501
21,1427)
d3 =
d5 = d5 + (f3,1 f3,3) / (f3,2 f3,4)
d5 = 1,036660376 + (26,2616 22,1598) /
(27,2501 21,1427)
d5 = 1,708271864
d1 = d1 + (f3,2 f3,5) / (f3,2 f3,4)
d1 = 0,963339624 + (27,2501 22,1598) /
(27,2501 21,1427)
d1 = 1,796803946
Nilai d untuk anggota front 2 adalah
sebagai berikut:
d4 (S13) =
d3 (S6) =
d5 (S14) = 1,708271864
d1 (S1) = 1,796803946
d2 (S5)=

d4 = d4 + (f1,1 f1,5) / (f1,2 f1,3)


d4 = 0 + (2554,2984 2055,2758) /
(3073,9919 2055,2758)
d4 = 0,489854435
d1 = d1 + (f1,2 f1,4) / (f1,2 f1,3)
d1 = 0 + (3073,9919 2255,8781) /
(3073,9919 2055,2758)
d1 = 0,803083214
Nilai d sementara untuk anggota front 2
adalah sebagai berikut:
d3 =
d5 = 0,196916786
d4 = 0,489854435
d1 = 0,803083214
d2 =
e. Mengurut individu berdasarkan nilai
fungsi tujuan ke-2 secara ascending.
f2,2 = 0,6018 (f minimal)
f2,1 = 0,6036
f2,3 = 0,6068
f2,5 = 0,6068
f2,4 = 0,633 (f maksimal)
f. Menginisialisasi
crowding
distance
individu ke-1 dan individu terakhir
dengan nilai tak terbatas ().
d2 = d4 =
g. Menghitung crowding distance individu
yang ada pada urutan ke-2 hingga ke-4
(d1, d3, d5). Berikut ini adalah contoh
menghitung crowding distance individu
ke-1 dalam front.
d1 = d1 + (f2,3 f2,2) / (f2,4 f2,2)
d1 = 0,803083214 + (0,6068 0,6018) /
(0,633 0,6018)
d1 = 0,963339624
d3 = d3 + (f2,5 f2,1) / (f2,4 f2,2)
d3 = + (0,6068 0,6036) / (0,633
0,6018)
d3 =

Tabel 12. Hasil Pemilihan N Individu Terbaik


Individu (S)

d5 = d5 + (f2,4 f2,4) / (f2,4 f2,2)


d5 = 0,196916786 + (0,633 0,6068) /
(0,633 0,6018)
d5 = 1,036660376
Nilai d sementara untuk anggota front 2
adalah sebagai berikut:
d2 =
d1 = 0,963339624
d3 =
d5 = 1,036660376

Front

Crowding Distance (d)

1,796803946

13

14

1,708271864

Jika counter generasi < generasi maksimum,


16

maka N individu terbaik akan menjadi induk


pada generasi selanjutnya sehingga siklus
pencarian individu terbaik akan diulang ke tahap
reproduksi. Jika tidak, maka individu-individu
yang berada dalam front pertama merupakan
individu tak terdominasi, yaitu S4 dan S8.

sehingga individu tak terdominasi yang dipilih


sebagai solusi terbaik adalah S4.
Tabel 13. Hasil Evaluasi Fitness
Individu
(S)

4.2. Memilih Solusi Terbaik


Tahap terakhir adalah memilih satu solusi
terbaik diantara himpunan individu tak
terdominasi dengan membandingkan nilai fitness
setiap individu tak terdominasi menggunakan
Persamaan (15) hingga Persamaan (18). Solusi
terbaik akan dipilih dari individu tak terdominasi
yang ada dalam front pertama, yaitu S4 dan S8.
Berikut ini contoh evaluasi nilai fitness individu
ke-4 dan individu ke-8. Nilai masing-masing
fungsi tujuan dari individu ke-4 dan individu ke8 dapat dilihat pada Tabel 3.5.
1. Menghitung fitness individu ke-4.
fitness1 = (1 / f1,4 ) * 0,01
fitness1 = (1 / 2397,96) * 0,01
fitness1 = 0,00000417

Fungsi Tujuan (m)


f1

f2

f3

Fitness

2397,96

0,6008

22,8525

0,017086233

1748,72

0,6047

20,5972

0,017028347

5. HASIL DAN PEMBAHASAN


Dalam penelitian ini, pengujian dilakukan
terhadap pengaruh parameter genetika terhadap
tujuan dari optimasi pakan yang dihasilkan.
Pengujian meliputi pengujian jumlah generasi,
pengujian kombinasi probabilitas crossover dan
probabilitas mutasi, pengujian ukuran populasi,
dan pengujian efisiensi.
Pengujian jumlah generasi dilakukan untuk
mengetahui jumlah generasi yang optimal untuk
menyelesaikan permasalahan formulasi pakan
ternak unggas. Percobaan dilakukan sebanyak 10
kali dengan membandingkan nilai fitness solusi
terbaik. Parameter algoritma genetika yang
digunakan dalam pengujian ini adalah sebagai
berikut:
1. Jumlah variabel keputusan (bahan pakan, n) =
10.
2. Ukuran populasi = 50.
3. Probabilitas crossover (pc) = 0,9; indeks
distribusi crossover (nc) = 20.
4. Probabilitas mutasi (pm) = 1/n; indeks
distribusi mutasi (nm)= 20.

fitness2 = (1 / f2,4 ) * 0,01


fitness2 = (1 / 0,6008) * 0,01
fitness2 = 0,016644474
fitness3 = (1 / f3,4 ) * 0,01
fitness3 = (1 / 22,8525 ) * 0,01
fitness3 = 0,000437589
fitness = fitness1 + fitness2 + fitness3
fitness = 0,00000417 + 0,016644474 +
0,000437589
fitness = 0,017086233

Hasil pengujian jumlah generasi optimal


dapat dilihat pada Gambar 8. Berdasarkan
Gambar 8, formula pakan ternak unggas terbaik
diperoleh pada generasi ke-50.

2. Menghitung fitness individu ke-8


fitness1 = (1 / f1,8 ) * 0,01
fitness1 = (1 / 1748,72) * 0,01
fitness1 = 0,000005718
fitness2 = (1 / f2,8 ) * 0,01
fitness2 = (1 / 0,6047) * 0,01
fitness2 = 0,016537126
fitness3 = (1 / f3,8 ) * 0,01
fitness3 = (1 / 20,5972) * 0,01
fitness3 = 0,000485503

Gambar 8. Hasil Pengujian Jumlah Generasi

Pengujian kombinasi probabilitas crossover


(pc) dan mutasi (pm) dilakukan untuk mengetahui
perbandingan keduanya yang terbaik dalam
penyelesaian permasalahan formulasi pakan
ternak unggas. Percobaan dilakukan sebanyak 10
kali. Parameter algoritma genetika yang
digunakan untuk menguji kombinasi pc dan pm
adalah sebagai berikut:
1. Jumlah variabel keputusan (bahan pakan, n) =

fitness = fitness1 + fitness2 + fitness3


fitness = 0,000005718 + 0,016537126 +
0,000485503
fitness = 0,017028347
Hasil evaluasi fitness untuk setiap anggota
himpunan individu tak terdominasi dapat dilihat
pada Tabel 13. S4 memiliki fitness terbesar,
17

10.
2. Ukuran populasi = 50; jumlah generasi = 50.
3. Indeks distribusi crossover = 20.
4. Indeks distribusi mutasi = 20.

optimal dapat dilihat pada Gambar 10. Gambar


10 menunjukkan bahwa formula terbaik
diperoleh ketika jumlah populasi 450.

Hasil pengujian kombinasi pc dan pm dapat


dilihat pada Gambar 9. Berdasarkan Gambar 9,
formula pakan terbaik didapatkan jika kombinasi
pc dan pm yang digunakan adalah 0,8 dan 0,2.

Gambar 10. Hasil Pengujian Ukuran Populasi

Pengujian terakhir adalah pengujian efisiensi


biaya dan pemenuhan kebutuhan nutrisi ternak
dengan parameter genetika optimal. Parameter
yang akan digunakan dalam pembahan ini adalah
sebagai berikut:
1. Jumlah bahan pakan = 10, yaitu bekatul (1),
bungkil biji kapas (2), bungkil kacang tanah
(3), bungkil kedelai (4), bungkil kelapa (5),
jagung kuning (6), kulit kerang (7), menir (8),
minyak kelapa (9), dan tepung ikan lokal
(10).
2. Jumlah pakan = 1 kg; ternak unggas adalah
ayam petelur (layer) fase starter.
3. Jumlah generasi = 50.
4. Ukuran populasi = 450.
5. Probabilitas crossover (pc) = 0,8; indeks
distribusi crossover (nc) = 20.
6. Probabilitas mutasi (pm) = 0,2 indeks
distribusi mutasi (nm) = 20.

Gambar 9. Hasil Pengujian Kombinasi pc dan pm

Pengujian ketiga adalah pengujian terhadap


ukuran populasi. Pengujian ukuran populasi
dilakukan untuk mengetahui ukuran populasi
yang optimal dalam penyelesaian permasalahan
formulasi pakan ternak unggas. Percobaan
dilakukan sebanyak 10 kali dengan parameter
algoritma genetika yang digunakan dalam
pengujian adalah sebagai berikut:
1. Jumlah variabel keputusan (bahan pakan, n) =
10.
2. Jumlah generasi = 50.
3. Probabilitas crossover (pc) = 0,9.
4. Indeks distribusi crossover (nc) = 20.
5. Probabilitas mutasi (pm) = 1/n.
6. Indeks distribusi mutasi (nm) = 20.

Hasil percobaan menggunakan jumlah


generasi, kombinasi pc dan pm, dan ukuran
populasi optimal dapat dilihat pada Tabel 14 dan
Tabel 15.

Hasil pengujian penentuan ukuran populasi

Tabel 14 Hasil Formulasi Menggunakan Parameter Genetika Optimal

Proporsi Bahan

6,3

f1
f2
f2
Waktu
1623,890 0,600014 19,08683 17141
3,7 0,5 8,4 0,5 0,9 35,9 0,1 6,3
5325444 7929
43195

Tabel 15 Kebutuhan Nutrisi Ayam Petelur Starter dan Kandungan Nutrisi dalam Formula Pakan Hasil
Formulasi

Kebutuhan Nutrisi
EM(Kkal/kg)

2800 *

PK (%/kg)

LK (%/kg)

SK (%/kg)

Ca (%/kg)

P (%/kg)

Lis (%/kg)

Met (%/kg)

19 *

4-6
4-5
0,9-1,1
0,6-0,8
0,85 *
0,3 *
Kandungan Nutrisi dalam Formula Pakan Hasil Formuasi
2917,14497 19,086834 4,5684911 4,6449704 1,0762426 0,6000147 0,8514644 0,4502218
04142
3195
243
142
036
929
97
935
Keterangan:
* Kebutuhan minimal
Berdasarkan penelitian [27], harga konsetrat
ayam petelur pada tahun 2010 adalah 4700

rupiah per kg. Dari Tabel 14 dan Tabel 15, dapat


dihitung efisiensi biaya pakan buatan sendiri
18

(tanpa menghitung faktor biaya pengolahan


bahan pakan menjadi pakan dan aktifitas
produksi pakan lainnya) menggunakan program
aplikasi formulasi pakan ternak unggas.
Perhitungan efisiensi biaya pakan ternak adalah
sebagai berikut.

yang sama.
3. Pada penelitian ini, formula pakan yang
diformulasikan merupakan total self-mixing,
sehingga untuk semi self-mixing perlu
dilakukan penelitian lebih lanjut agar
menghasilkan pakan yang memenuhi
kebutuhan nutrisi ternak unggas, murah, dan
ramah lingkungan.

biaya pakan buatan sendiri


100 %)
biaya konsentrat
1623.8905325444
efisiensi biaya=100 %(
100 %)
4700
efisiensi biaya=65.4491376054 %
efisiensi biaya=100 %(

7. DAFTAR PUSTAKA
[1] E. Widodo, Teori dan Aplikasi Pembuatan
Pakan Ternak Ayam dan Itik. 2010.
[2] C. Castrodeza, P. Lara, and T. Pea,
Multicriteria Fractional Model for Feed
Formulation: Economic, Nutritional and
Environmental Criteria, Agric. Syst., vol.
86, no. 1, pp. 7696, 2005.
[3] E. Widodo, Formulasi Pakan Ternak
Unggas, 22 November 2015.
[4] Amazine, Nitrogen (N): Fakta, Sifat,
Kegunaan & Efek Kesehatannya, 13-Jul2013.
[Online].
Tersedia:
http://www.amazine.co/25989/nitrogen-nfakta-sifat-kegunaan-efek-kesehatannya/.
[Diakses: 22 November 2015].
[5] W. F. Mahmudy, Algoritma Evolusi.
Program Teknologi Informasi dan Ilmu
Komputer, Universitas Brawijaya, Malang,
2013.
[6] P. I. Ciptayani, W. F. Mahmudy, and A. W.
Widodo, Penerapan Algoritma Genetika
untuk Kompresi Citra Fraktal, J. Ilmu
Komput., vol. 2, no. 1, 2009.
[7] L. K. Wardani, M. Safrizal, and A. Chairi,
Optimasi Komposisi Bahan Pakan Ikan Air
Tawar Menggunakan Metode MultiObjective Genetic Algorithm, Semin. Nas.
Apl. Teknol. Inf., Juni 2011.
[8] N. Srinivas and K. Deb, Multiobjective
Optimization Using Nondominated Sorting
in Genetic Algorithms, Evol. Comput., vol.
2, no. 3, pp. 221248, 1994.
[9] K. Deb, A. Pratap, S. Agarwal, and T.
Meyarivan,
A
Fast
and
Elitist
Multiobjective Genetic Algorithm: NSGAII, IEEE Trans. Evol. Comput., vol. 6, no.
2, pp. 182197, April 2002.
[10] H. Ghiasi, D. Pasini, and L. Lessard, A
Non-Dominated Sorting Hybrid Algorithm
for Multi-objective Optimization of
Engineering Problems, Eng. Optim., vol.
43, no. 1, pp. 3959, 2011.
[11] Hozairi, K. B. Artana, Masroeri, and M. I.
Irawan, Implementation of Nondominated
Sorting Genetic Algorithm-II (NSGA-II) for
Multiobjective Optimization Problems On
Distribution of Indonesian Navy Warship,

Tingkat efisiensi biaya pakan (tanpa


menghitung faktor biaya pengolahan bahan
pakan menjadi pakan dan aktifitas produksi
pakan lainnya) dari program aplikasi formulasi
pakan ternak unggas yang dikembangkan dalam
penelitian
ini
adalah
sekitar
65,44%.
Berdasarkan Tabel 15, pemenuhan kebutuhan
nutrisi ternak mencapai 100% dengan kandungan
fosfor dan protein yang sangat kecil.

6. KESIMPULAN DAN SARAN


Kesimpulan
1. Berdasarkan penelitian ini, NSGA-II dapat
digunakan untuk menyelesaikan masalah
formulasi pakan multitujuan.
2. Berdasarkan hasil pengujian, parameter
genetika yang digunakan pada NSGA-II
untuk menyelesaikan permasalahan formulasi
pakan ternak unggas menggunakan 10 bahan
pakan yaitu, jumlah generasi 50; ukuran
populasi 450; probabilitas crossover 0,8;
probabilitas mutasi 0,2; indeks distribusi
crossover 20; dan indeks distribusi mutasi 20.
3. Dengan NSGA-II dan penggunaan fungsi
kendala yang membatasi kebutuhan nutrisi
ternak unggas, pemenuhan kebutuhan nutrisi
ternak mencapai 100% dengan efisiensi biaya
mencapai 65,44% (tanpa menghitung faktor
biaya pengolahan bahan pakan menjadi pakan
dan aktifitas produksi pakan lainnya).
4. Kandungan fosfor dan protein dalam pakan
sangat kecil, mendekati kebutuhan minimal
fosfor dan protein.
Saran
1. Perlu dilakukan penelitian lebih lanjut
terhadap permasalahan optimasi multitujuan
formula pakan ternak unggas, yang
memungkinkan memunculkan tujuan-tujuan
baru dalam memformulasi pakan.
2. Data harga bahan pakan yang digunakan
dalam penelitian ini adalah data per April
2010 sedangkan data harga konsentrat per
Juli 2010. Karena harga bahan pakan dan
konsentrat
fluktuatif,
maka
untuk
meningkatkan akurasi efisiensi harga maka
perlu
dilakukan
pengujian
ulang
menggunakan data pada bulan dan tahun
19

J. Theor. Appl. Inf. Technol., vol. 64, no. 1,


pp. 274281, 2014.
[12] A. Saini and A. Saraswat, Solving a Multiobjective Reactive Power Market Clearing
Model Using NSGA-II, Int. J. Adv. Inf.
Technol., vol. 2, no. 3, pp. 4962, 2012.
[13] Tim Pusat Bahasa Depdiknas, Kamus
Bahasa
Indonesia,
Pusat
Bahasa
Departemen Pendidikan Nasional, Jakarta,
2008.
[14] J. Wahju, Ilmu Nutrisi Unggas. Yogyakarta:
Gadjah Mada University Press, 1992.
[15] M. Rasyaf, Beternak Ayam Pedaging.
Jakarta: Penebar Swadaya, 2003.
[16] W. Widodo, Nutrisi dan Pakan Unggas
Kontekstual. .
[17] Direktorat Pembinaan Sekolah Menengah
Kejuruan, Agribisnis Pakan Ternak
Unggas. Direktorat Pembinaan Sekolah
Menengah Kejuruan, 2014.
[18] Poultry Hub, Feed Formulation. [Online].
Tersedia:
http://www.poultryhub.org/
nutrition/feed-formulation/.
[Diakses:
17April 2015].
[19] K. Deb, Multi-objective Optimization Using
Evolutionary Algorithms. John Wiley &
Sons, 2001.
[20] K. Deb, NSGA2 gnuplot. Kanpur Genetic
Algorithms Laboratory, 2011.
[21] M. S. Mahbub, In a Comparison Between
NSGA-II and Its Implementation in C Code
and JMetal, does NSGA-II Implementation
Oppose Against Its Concepts? Tersedia:
https://www.researchgate.net/post/In_a_com

parison_between_NSGAII_and_its_implementation_in_C_code_and
_Jmetal_does_NSGAII_implementation_oppose_against_its_con
cepts. [Diakses: 02 Desember 2015].
[22] T. Blickle and L. Thiele, A Comparison of
Selection Schemes used in Genetic
Algorithms, Computer Engineering and
Networks Lab (TIK), Swiss Federal Institute
of Technology (ETH), Zurich, Techical
Report 11, Desember 1995.
[23] Deong, Tournament Selection in Genetic
Algorithms.
Tersedia:
http://cstheory.stackexchange.com/questions
/14758/tournament-selection-in-geneticalgorithms/14760#14760. [Diakses: 17 April
2015].
[24] K. Deb and R. B. Agrawal, Simulated
Binary Crossover for Continuous Search
Space, Complex Syst., vol. 9, no. 2, pp.
115148, 1995.
[25] K. Deb, An Efficient Constraint Handling
Method for Genetic Algorithms, Comput.
Methods Appl. Mech. Eng., vol. 186, no. 2
4, pp. 311338, Juni 2000.
[26] K. Deb and M. Goyal, A Combined
Genetic Adaptive Search (GeneAS) for
Engineering Design, Comput. Sci. Inform.,
vol. 26, no. 4, pp. 3045, 1996.
[27] R. D. K. Aritonang, Kelayakan Usaha
Budidaya Petelur (Analisis Biaya manfaat
dan BEP pada Keanu Farm, Kendal), S1,
Universitas Negeri Semarang, Semarang,
2013.

20

Anda mungkin juga menyukai