FORMULASI PAKAN TERNAK UNGGAS MENGGUNAKAN NON-DOMINATED SORTING GENETIC ALGORITHM II SKRIPSI Untuk memenuhi sebagian persyaratan memperoleh gelar Sarjana Komputer Disusun oleh: Eko Kurniawan Subha NIM. 105060801111067
PROGRAM STUDI INFORMATIKA/ILMU KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA MALANG 2016
PENGESAHAN FORMULASI PAKAN TERNAK UNGGAS MENGGUNAKAN NON-DOMINATED SORTING GENETIC ALGORITHM II
SKRIPSI Diajukan untuk memenuhi sebagian persyaratan memperoleh gelar Sarjana Komputer Disusun oleh: Eko Kurniawan Subha NIM. 105060801111067 Skripsi ini telah diuji dan dinyatakan lulus pada 20 Januari 2016 Telah diperiksa dan disetujui oleh: Dosen Pembimbing I
Dosen Pembimbing II
Imam Cholissodin, S.Si., M.Kom. NIK. 850719 16 1 1 0422
Edy Santoso, S.Si., M.Kom. NIP. 19740414 200312 1 004
Mengetahui Ketua Program Studi Informatika/Ilmu Komputer
Drs. Marji, M.T. NIP: 19670801 199203 1 001
ii
PERNYATAAN ORISINALITAS Saya menyatakan dengan sebenar-benarnya bahwa sepanjang pengetahuan saya, di dalam naskah skripsi ini tidak terdapat karya ilmiah yang pernah diajukan oleh orang lain untuk memperoleh gelar akademik di suatu perguruan tinggi dan tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis dikutip dalam naskah ini dan disebutkan dalam sumber kutipan dan daftar pustaka. Apabila ternyata dalam naskah skripsi ini dapat dibuktikan terdapat unsurunsur plagiasi, saya bersedia skripsi ini digugurkan dan gelar akademik yang saya peroleh (sarjana) dibatalkan, serta diproses sesuai dengan peraturan perundangundangan yang berlaku (UU No. 20 Tahun 2003, Pasal 25 ayat 2 dan Pasal 70).
Malang, 8 Januari 2016 Mahasiswa
Eko Kurniawan Subha NIM. 105060801111067
iii
KATA PENGANTAR Alhamdulillah, segala puji dan syukur penulis panjatkan kehadirat Allah subhanahu wata'ala atas berkah dan anugerah-Nya sehingga penulis bisa menyelesaikan skripsi yang berjudul “FORMULASI PAKAN TERNAK UNGGAS MENGGUNAKAN NON-DOMINATED SORTING GENETIC ALGORITHM II”, sebagai salah satu syarat untuk menyelesaikan studi di Program Studi Informatika Fakultas Ilmu Komputer (FILKOM) Universitas Brawijaya. Penulis menyadari bahwa skripsi ini selesai bukan semata-mata upaya penulis sendiri melaikan karena adanya bantuan dari berbagai pihak. Oleh karena itu, penulis mengucapkan terima kasih banyak kepada: 1. Imam Cholissodin, S.Si., M.Kom. dan Edy Santoso, S.Si., M.Kom., selaku dosen pembimbing skripsi yang telah membimbing dan mengarahkan penulis sehingga bisa menyelesaikan skripsi ini. 2. Dr. Ir. Eko Widodo, M.Agr.Sc., selaku pakar dalam penelitian skripsi ini, yaitu tentang formulasi pakan ternak unggas. 3. Ibu dan Bapak yang selalu memberikan dukungan, semangat, dan doa untuk penulis. 4. Drs. Marji, M.T., selaku Ketua Program Studi Informatika/Ilmu Komputer Fakultas Ilmu komputer Universitas Brawijaya. 5. Segenap Dosen yang telah mendidik dan menyampaikan ilmu kepada penulis selama menempuh pendidikan di Universitas Brawijaya. 6. Segenap karyawan Fakultas Ilmu Komputer Universitas Brawijaya yang telah membantu penulis selama mengerjakan skripsi. 7. Teman-teman yang telah memberikan saran dan dorongan kepada penulis selama mengerjakan skripsi. 8. Semua pihak yang telah membantu penulis selama mengerjakan skripsi, yang tidak bisa penulis sebutkan satu per satu. Penulis menyadari bahwa penulisan skripsi ini jauh dari kesempurnaan. Oleh karena itu, penulis mengharapkan masukan berupa saran yang membangun dari semua pihak demi penyempurnaan selanjutnya. Semoga Allah ridho terhadap upaya pengerjaan skripsi ini, mencatatnya sebagai amal ibadah, dan menjadikan skripsi ini bermanfaat kepada semua pihak. Malang, 8 Januari 2016 Penulis
[email protected]
iv
ABSTRAK Eko Kurniawan Subha. 2016. Formulasi Pakan Ternak Unggas Menggunakan Non-dominated Sorting Genetic Algorithm II. Skripsi Program Studi Informatika/Ilmu Komputer, Fakultas Ilmu Komputer Universitas Brawijaya. Pembimbing: Imam Cholissodin, S.Si., M.Kom. dan Edy Santoso, S.Si., M.Kom. Pakan merupakan salah satu sendi dalam usaha peternakan unggas yang di sebagian besar usaha peternakan unggas, biaya pakan mencapai 60-75%. 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. Kandungan fosfor dan nitrogen dalam protein pada pakan yang tidak dicerna oleh unggas akan terbuang bersama ekstreta. Terbuang kedua unsur ini ke lingkungan dapat memberikan dampak negatif pada lingkungan. Penambahan senyawa nitrogen pada lingkungan dapat mengubah keseimbangan alami nitrat dan nitrit yang pada akhirnya dapat menyebabkan efek negatif kesehatan pada manusia dan hewan. 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 solusi (formula pakan) berbaik dari beberapa solusi 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.
v
ABSTRACT Eko Kurniawan Subha. 2016. Bird Feed Formulation Using Non-dominated Sorting Genetic Algorithm II. Minor Thesis of Informatics/Computer Science Study Program, Faculty of Computer Science of Universitas Brawijaya. Advisors: Imam Cholissodin, S.Si., M.Kom. and Edy Santoso, S.Si., M.Kom. Feed is one of the factor in a poultry farm businesses which in most poultry farm reaches 60-75%. 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. The content of phosphorus and nitrogen in the proteins in the feed that is not digested by birds will be wasted together ekstreta. Wasted these two elements into the environment can have a negative impact on the environment. The addition of nitrogen compounds in the environment can alter the natural balance of the nitrate and nitrite, which in turn can cause negative health effects in humans and animals. 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, NSGA-II 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 solution (feed formula) from non-dominated solutions produced by 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.
vi
DAFTAR ISI PENGESAHAN....................................................................................................
ii
PERNYATAAN ORISINALITAS..............................................................................
iii
KATA PENGANTAR.............................................................................................
iv
ABSTRAK............................................................................................................
v
ABSTRACT..........................................................................................................
vi
DAFTAR TABEL...................................................................................................
x
DAFTAR GAMBAR..............................................................................................
xii
DAFTAR LAMPIRAN...........................................................................................
xvi
BAB 1 PENDAHULUAN.......................................................................................
1
1.1 Latar Belakang.....................................................................................
1
1.2 Rumusan Masalah...............................................................................
3
1.3 Tujuan..................................................................................................
3
1.4 Manfaat...............................................................................................
4
1.5 Batasan Masalah.................................................................................
4
1.6 Sistematika Pembahasan.....................................................................
4
BAB 2 LANDASAN KEPUSTAKAAN.....................................................................
5
2.1 Kajian Pustaka......................................................................................
5
2.2 Pakan Ternak Unggas...........................................................................
8
2.2.1 Nutrisi Pakan Ternak Unggas......................................................
9
2.3 Formulasi Pakan Ternak Unggas..........................................................
11
2.4 Permasalahan Optimasi Multitujuan..................................................
14
2.4.1 Dominasi.....................................................................................
16
2.5 Algoritma Genetika.............................................................................
19
2.5.1 Struktur Umum Algoritma Genetika...........................................
19
2.6 Non-dominated Sorting Genetic Algorithm II......................................
21
2.6.1 Operator Genetika......................................................................
25
2.7 Pengambilan Keputusan......................................................................
27
BAB 3 METODE PENELITIAN DAN PERANCANGAN...........................................
28
3.1 Metode Penelitian...............................................................................
28
3.1.1 Studi Literatur.............................................................................
28
3.1.2 Pengumpulan Data.....................................................................
28
vii
3.1.3 Desain dan Perancangan Perangkat Lunak.................................
28
3.1.4 Implementasi..............................................................................
29
3.1.5 Pengujian dan Analisis................................................................
29
3.1.6 Pengambilan Kesimpulan...........................................................
29
3.2 Perancangan........................................................................................
29
3.2.1 Pemodelan Permasalahan..........................................................
29
3.2.2 Pengambilan Keputusan.............................................................
31
3.2.3 Perancangan Perangkat Lunak....................................................
31
3.2.4 Perhitungan Manual...................................................................
68
3.2.5 Perancangan Uji Coba dan Evaluasi............................................
87
BAB 4 IMPLEMENTASI.......................................................................................
91
4.1 Lingkungan Implementasi...................................................................
91
4.1.1 Lingkungan Implementasi Perangkat Keras................................
91
4.1.2 Lingkungan Implementasi Perangkat Lunak...............................
91
4.2 Implementasi Algoritma......................................................................
91
4.2.1 Proses Utama NSGA-II................................................................
92
4.2.2 Pembangkitan Populasi..............................................................
93
4.2.3 Evaluasi Fungsi Tujuan dan Fungsi Kendala................................
94
4.2.4 Binary Tournament Selection......................................................
96
4.2.5 Simulated Binary Crossover........................................................
97
4.2.6 Polymonial Mutation..................................................................
99
4.2.7 Penggabungan Populasi Induk dan Populasi Offspring.............. 100 4.2.8 Fast Non-dominated Sort............................................................ 101 4.2.9 Crowding Distance Assignment.................................................. 103 4.2.10 Pemilihan Solusi Terbaik........................................................... 104 4.3 Implementasi Antarmuka.................................................................... 104 4.3.1 Antarmuka Utama (FanT)........................................................... 104 4.3.2 Antarmuka Gudang Bahan Pakan............................................... 105 4.3.3 Antarmuka Batasan Penggunaan Bahan.................................... 106 4.3.4 Antarmuka Kandang Ternak....................................................... 106 BAB 5 PENGUJIAN DAN ANALISIS..................................................................... 108 5.1 Hasil dan Analisis Pengujian Parameter Genetika............................... 108
viii
5.1.1 Hasil dan Analisis Uji Coba Jumlah Generasi.............................. 108 5.1.2 Hasil dan Analisis Uji Coba Kombinasi Probabilitas Crossover dan Probabilitas Mutasi............................................................. 111 5.1.3 Hasil dan Analisis Uji Coba Ukuran Populasi.............................. 114 5.2 Hasil dan Analisis Efisiensi dan Pemenuhan Kebutuhan Nutrisi Ternak................................................................................................. 117 BAB 6 PENUTUP................................................................................................ 119 6.1 Kesimpulan.......................................................................................... 119 6.2 Saran.................................................................................................... 119 DAFTAR PUSTAKA.............................................................................................. 120 LAMPIRAN......................................................................................................... 124
ix
DAFTAR TABEL Tabel 2.1 Perbedaan Penelitian Sebelumnya dengan Skripsi Penulis...............
6
Tabel 3.1 Kandungan Zat Makanan Bahan Pakan.............................................
68
Tabel 3.2 Batas Penggunaan Bahan Pakan untuk Ayam Petelur Starter...........
69
Tabel 3.3 Kebutuhan Nutrisi Ayam Petelur Starter...........................................
69
Tabel 3.4 Populasi Awal....................................................................................
70
Tabel 3.5 Hasil Evaluasi Fungsi Tujuan dan Fungsi Kendala Populasi Awal.......
72
Tabel 3.6 Kromosom Induk...............................................................................
74
Tabel 3.7 Offspring Hasil Crossover...................................................................
76
Tabel 3.8 Offspring Hasil Mutasi.......................................................................
77
Tabel 3.9 Populasi Offspring.............................................................................
78
Tabel 3.10 Populasi Intermediate.....................................................................
78
Tabel 3.11 Hasil Evaluasi Populasi Intermediate...............................................
79
Tabel 3.12 Pengurutan Individu Berdasarkan Non-domination........................
79
Tabel 3.13 Pencarian Anggota Front Selanjutnya.............................................
80
Tabel 3.14 Individu yang Telah Diurut Berdasarkan Non-domination..............
81
Tabel 3.15 Hasil Pemilihan N Individu Terbaik..................................................
85
Tabel 3.16 Hasil Evaluasi Fitness.......................................................................
87
Tabel 3.17 Skenario Uji Coba Jumlah Generasi.................................................
88
Tabel 3.18 Skenario Uji Coba Kombinasi Probabilitas Crossover dan Probabilitas Mutasi.........................................................................
89
Tabel 3.19 Skenario Uji Coba Ukuran Populasi.................................................
90
Tabel 4.1 Kode Sumber Proses Utama NSGA-II................................................
92
Tabel 4.2 Kode Sumber Pembangkitan Kromosom Individu.............................
94
Tabel 4.3 Kode Sumber Evaluasi Fungsi Tujuan dan Fungsi Kendala................
94
Tabel 4.4 Kode Sumber Binary Tournament Selection......................................
96
Tabel 4.5 Kode Sumber Simulated Binary Crossover........................................
97
Tabel 4.6 Kode Sumber Polynomial Mutation..................................................
99
Tabel 4.7 Kode Sumber Penggabungan Populasi.............................................. 100 Tabel 4.8 Kode Sumber Fast Non-dominated Sort............................................ 101 Tabel 4.9 Kode Sumber Crowding Distance Assignment.................................. 103 Tabel 4.10 Kode Sumber Pemilihan Solusi Terbaik........................................... 104
x
Tabel 5.1 Nilai Rerata Hasil Pengujian Jumlah Generasi................................... 108 Tabel 5.2 Nilai Rerata Hasil Pengujian Kombinasi pc dan pm............................. 111 Tabel 5.3 Nilai Rerata Hasil Pengujian Ukuran Populasi................................... 114 Tabel 5.4 Hasil Formulasi Menggunakan Parameter Genetika Optimal........... 117 Tabel 5.5 Kebutuhan Nutrisi Ayam Petelur Starter dan Kandungan Nutrisi dalam Formula Pakan Hasil Formulasi............................................ 118
xi
DAFTAR GAMBAR Gambar 2.1 Representasi Ruang Variabel Keputusan (kiri) dan Ruang Tujuan (kanan)........................................................................................
15
Gambar 2.2 (a) Himpunan Titik dan (b) Non-dominated Front........................
18
Gambar 2.3 (a) Solusi Pareto-optimal Global dan (b,c) Solusi Pareto-optimal Lokal............................................................................................
18
Gambar 2.4 Mencari Solusi dengan Algoritma Genetika.................................
19
Gambar 2.5 Pseudocode Algoritma Genetika..................................................
20
Gambar 2.6 Pseudocode NSGA-II untuk Selain Generasi Awal........................
22
Gambar 2.7 Pseudocode Fast Non-dominated Sort.........................................
23
Gambar 2.8 Perhitungan Crowding Distance....................................................
24
Gambar 2.9 Pseudocode Crowding Distance Assignment................................
25
Gambar 2.10 Pseudocode Binary Tournament Selection.................................
25
Gambar 3.1 Diagram Alir Metode Penelitian....................................................
28
Gambar 3.2 Diagram Alir Penyelesaian Permasalahan Formulasi Pakan Ternak Unggas Menggunakan NSGA-II.......................................
32
Gambar 3.3 Diagram Alir Subproses Set Batasan Penggunaan Bahan Terpilih, Bagian 1........................................................................
33
Gambar 3.4 Diagram Alir Subproses Set Batasan Penggunaan Bahan Terpilih, Bagian 2........................................................................
34
Gambar 3.5 Diagram Alir Subproses NSGA-II, Bagian 1....................................
35
Gambar 3.6 Diagram Alir Subproses NSGA-II, Bagian 2....................................
36
Gambar 3.7 Diagram Alir Subproses NSGA-II, Bagian 3....................................
37
Gambar 3.8 Diagram Alir Subproses NSGA-II, Bagian 4....................................
38
Gambar 3.9 Diagram Alir Subproses Evaluasi Fitness, Bagian 1.......................
38
Gambar 3.10 Diagram Alir Subproses Evaluasi Fitness, Bagian 2.....................
39
Gambar 3.11 Diagram Alir Subproses Membangkitkan Individu.....................
40
Gambar 3.12 Diagram Alir Subproses Konfirmasi Pemenuhan Nutrisi, Bagian 1......................................................................................
41
Gambar 3.13 Diagram Alir Subproses Konfirmasi Pemenuhan Nutrisi, Bagian 2......................................................................................
42
Gambar 3.14 Diagram Alir Subproses Menghitung Total Kandungan Zat Makanan, Bagian 1.....................................................................
42
Gambar 3.15 Diagram Alir Subproses Menghitung Total Kandungan Zat
xii
Makanan, Bagian 2.....................................................................
43
Gambar 3.16 Diagram Alir Subproses Mengevaluasi Fungsi Tujuan, Bagian 1.
43
Gambar 3.17 Diagram Alir Subproses Mengevaluasi Fungsi Tujuan, Bagian 2.
44
Gambar 3.18 Diagram Alir Subproses Mengevaluasi Fungsi Tujuan, Bagian 3.
45
Gambar 3.19 Diagram Alir Subproses Mengevaluasi Fungsi Kendala, Bagian 1......................................................................................
45
Gambar 3.20 Diagram Alir Subproses Mengevaluasi Fungsi Kendala, Bagian 2......................................................................................
46
Gambar 3.21 Diagram Alir Subproses Mengevaluasi Fungsi Kendala, Bagian 3......................................................................................
47
Gambar 3.22 Diagram Alir Subproses Pemenuhan Zat Makanan....................
48
Gambar 3.23 Diagram Alir Subproses Pemenuhan Bahan...............................
49
Gambar 3.24 Diagram Alir Subproses Binary Tournament Selection...............
50
Gambar 3.25 Diagram Alir Subproses Simulated Binary Crossover, Bagian 1. .
51
Gambar 3.26 Diagram Alir Subproses Simulated Binary Crossover, Bagian 2. .
52
Gambar 3.27 Diagram Alir Subproses Simulated Binary Crossover, Bagian 3. .
53
Gambar 3.28 Diagram Alir Subproses Simulated Binary Crossover, Bagian 4. .
54
Gambar 3.29 Diagram Alir Subproses Polynomial Mutation, Bagian 1............
54
Gambar 3.30 Diagram Alir Subproses Polynomial Mutation, Bagian 2............
55
Gambar 3.31 Diagram Alir Subproses Polynomial Mutation, Bagian 3............
56
Gambar 3.32 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 1......
57
Gambar 3.33 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 2......
58
Gambar 3.34 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 3......
59
Gambar 3.35 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 4......
60
Gambar 3.36 Diagram Alir Subproses Pembanding Penalti, Bagian 1..............
60
Gambar 3.37 Diagram Alir Subproses Pembanding Penalti, Bagian 2..............
61
Gambar 3.38 Diagram Alir Subproses Pembanding Dominasi.........................
62
Gambar 3.39 Diagram Alir Subproses Crowding Distance Assignment, Bagian 1......................................................................................
63
Gambar 3.40 Diagram Alir Subproses Crowding Distance Assignment, Bagian 2......................................................................................
64
Gambar 3.41 Mock Up Antarmuka Utama (FanT)............................................
65
Gambar 3.42 Mock Up Antarmuka Gudang Bahan Pakan................................
66
Gambar 3.43 Mock Up Antarmuka Batasan Penggunaan Bahan.....................
67
xiii
Gambar 3.44 Mock Up Antarmuka Kandang Ternak........................................
67
Gambar 4.1 Antarmuka Utama (FanT).............................................................. 105 Gambar 4.2 Antarmuka Gudang Bahan Pakan................................................. 106 Gambar 4.3 Antarmuka Batasan Penggunaan Bahan....................................... 106 Gambar 4.4 Antarmuka Kandang Ternak.......................................................... 107 Gambar 5.1 Grafik Hasil Pengujian Jumlah Generasi terhadap Fitness............ 109 Gambar 5.2 Grafik Hasil Pengujian Jumlah Generasi terhadap Harga (f1)........ 110 Gambar 5.3 Grafik Hasil Pengujian Jumlah Generasi terhadap Kandungan Fosfor (f2).................................................................................... 110 Gambar 5.4 Grafik Hasil Pengujian Jumlah Generasi terhadap Kandungan Protein (f3)................................................................................... 111 Gambar 5.5 Grafik Hasil Pengujian Jumlah Kombinasi pc dan pm terhadap Fitness......................................................................................... 112 Gambar 5.6 Grafik Hasil Pengujian Kombinasi pc dan pm terhadap Biaya (f1)... 113 Gambar 5.7 Grafik Hasil Pengujian Kombinasi pc dan pm terhadap Kandungan Fosfor (f2)................................................................. 113 Gambar 5.8 Grafik Hasil Pengujian Kombinasi pc dan pm terhadap Kandungan Protein (f3)................................................................ 114 Gambar 5.9 Grafik Hasil Pengujian Ukuran Populasi terhadap Fitness............ 115 Gambar 5.10 Grafik Hasil Pengujian Ukuran Populasi terhadap Biaya (f1)....... 116 Gambar 5.11 Grafik Hasil Pengujian Ukuran Populasi terhadap Kandungan Fosfor (f2).................................................................................... 116 Gambar 5.12 Grafik Hasil Pengujian Ukuran Populasi terhadap Kandungan Protein (f3)................................................................................... 117
xiv
DAFTAR PERSAMAAN Persamaan (2.1)................................................................................................
13
Persamaan (2.2)................................................................................................
13
Persamaan (2.3)................................................................................................
13
Persamaan (2.4)................................................................................................
13
Persamaan (2.5)................................................................................................
13
Persamaan (2.6)................................................................................................
13
Persamaan (2.7)................................................................................................
14
Persamaan (2.8)................................................................................................
14
Persamaan (2.9)................................................................................................
17
Persamaan (2.10)..............................................................................................
17
Persamaan (2.11)..............................................................................................
17
Persamaan (2.12)..............................................................................................
24
Persamaan (2.13)..............................................................................................
24
Persamaan (2.14)..............................................................................................
26
Persamaan (2.15)..............................................................................................
26
Persamaan (2.16)..............................................................................................
26
Persamaan (2.17)..............................................................................................
27
Persamaan (2.18)..............................................................................................
27
Persamaan (2.19)..............................................................................................
27
Persamaan (2.20)..............................................................................................
27
Persamaan (2.21)..............................................................................................
27
Persamaan (2.22)..............................................................................................
27
Persamaan (3.1)................................................................................................
30
Persamaan (3.2)................................................................................................
30
Persamaan (3.3)................................................................................................
30
Persamaan (3.4)................................................................................................
30
Persamaan (3.5)................................................................................................
31
Persamaan (3.6)................................................................................................
31
xv
DAFTAR LAMPIRAN LAMPIRAN A KOMPOSISI BAHAN PAKAN TERNAK UNGGAS............................ 124 LAMPIRAN B BATAS MAKSIMAL PENGGUNAAN BAHAN PAKAN TERNAK AYAM DAN ITIK............................................................................. 126 LAMPIRAN C KEBUTUHAN NUTRISI UNGGAS PEDAGING DAN PETELUR......... 127 LAMPIRAN D TRANSKRIP WAWANCARA DENGAN PAKAR................................ 128 LAMPIRAN E HASIL UJI COBA JUMLAH GENERASI............................................ 130 LAMPIRAN F HASIL UJI COBA KOMBINASI PROBABILITAS CROSSOVER DAN PROBABILITAS MUTASI................................................................ 145 LAMPIRAN G HASIL UJI COBA UKURAN POPULASI........................................... 157
xvi
BAB 1 PENDAHULUAN 1.1 Latar Belakang Pakan merupakan salah satu sendi dalam usaha peternakan yang mendapatkan alokasi dana terbesar. Di sebagian besar usaha peternakan unggas, biaya pakan mencapai 65-75% dari biaya total produksi (Poultry Hub, 2015); dalam usaha peternakan ayam maupun itik, biaya pakan mencapai 60-75% dari biaya total produksi (Widodo, 2010); sedangkan dalam usaha peternakan babi, biaya pakan mencapai 55-70% dari biaya total produksi (Peña, Lara, dan Castrodeza, 2009). Besarnya biaya pakan mejadi faktor penentu utama biaya produksi peternakan yang perlu mendapatkan perhatian khusus. Faktor pakan memiliki peranan penting dalam pencapaian salah satu tujuan usaha peternakan. Pakan yang baik dapat memaksimalkan hasil produksi ternak seperti daging, telur, dan susu. Untuk meningkatkan produktivitas ternak, upaya yang dapat dilakukan adalah memperbaiki kualitas formula pakan. Akan lebih baik jika peternak menggunakan pakan buatan sendiri untuk peternakan mereka seperti yang dilakukan oleh peternakan berskala menengah dan besar. Peternakan berskala menengah dan besar memilih untuk membentuk model peternakan self-mix yang memiliki mini feed mill untuk memproduksi pakan bagi ternak dalam peternakan mereka (Toriq, 2008). Dengan menggunakan pakan buatan sendiri, peternak dapat menentukan tingkat produktivitas yang ingin dicapai dan hal ini dapat membantu peternak agar mandiri. Di sisi lain, peternak harus menanggung resiko kenaikan biaya produksi dengan margin keuntungan yang semakin kecil bahkan mengalami kerugian. Salah satu penyebab kenaikan biaya produksi adalah kenaikan harga pakan. Kenaikan harga pakan sulit dihindari karena harga bahan baku pakan seperti jagung dan bungkil kedelai yang sebagian besar masih mengimpor juga tinggi. Untuk menekan biaya produksi, banyak peternak membuat pakan sendiri. Formulasi pakan adalah penerapan pengetahuan tentang gizi, bahan pakan, dan ternak di dalam pengembangan pakan yang bergizi yang akan diberikan dan dikonsumsi oleh ternak unggas dalam jumlah tertentu, dan cukup memenuhi kebutuhan (Direktorat Pembinaan Sekolah Menengah Kejuruan, 2014). Formulasi pakan juga diartikan sebagai proses mengukur sejumlah bahan baku pakan yang perlu dikombinasikan untuk membentuk campuran tunggal yang seragam (ransum) untuk unggas, yang memasok semua kebutuhan gizi unggas (Poultry Hub, 2015). Dalam usaha peternakan, hal-hal yang dapat dilakukan untuk memaksimalkan keuntungan, yaitu meminimalkan biaya pakan dan memaksimalkan hasil produksi ternak. Penggunaan pakan berkualitas rendah untuk meminimalkan biaya pakan merupakan tindakan yang tidak benar karena pakan yang tidak memiliki nutrisi cukup dapat mengurangi produktivitas ternak. Namun, penggunaan pakan dengan nutrisi berlebih dapat memicu kegemukan berlebih yang sebenarnya tidak diperlukan, terbuangnya zat makanan tertentu (misalnya lisin) secara sia-sia 1
karena tidak bisa disimpan dalam tubuh, bahkan memicu peningkatan polusi yang diakibatkan oleh forsor (Castrodeza, Lara, dan Peña, 2005) dan nitrogen dalam protein (Lampiran D) dari hasil ekskresi ternak. Kandungan fosfor dan nitrogen dalam protein pada pakan yang tidak dicerna oleh unggas akan terbuang bersama ekstreta. Terbuang kedua unsur ini ke lingkungan dapat memberikan dampak negatif pada lingkungan; penambahan senyawa nitrogen pada lingkungan dapat mengubah keseimbangan alami nitrat dan nitrit yang pada akhirnya dapat menyebabkan efek negatif kesehatan pada manusia dan hewan (Amazine, 2013). Realitas formulasi pakan ternak unggas tidak terbatas pada satu tujuan pencapaian. Adanya tuntutan di bidang-bidang yang berhubungan dengan usaha peternakan, memunculkan tujuan baru seperti di bidang lingkungan, yaitu meminimalkan kandungan fosfor dan protein untuk mengurangi polusi 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 menyelesaikan permasalahan optimasi 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 (Mahmudy, 2013). Beberapa contoh aplikasi algoritma genetika dalam beberapa bidang, yaitu algoritma genetika untuk kompresi citra (Ciptayani, Mahmudy, dan Widodo, 2009), penyusunan rute dan jadwal kunjungan wisata (Widodo dan Mahmudy, 2010), optimasi penjadwalan ujian (Mawaddah dan Mahmudy, 2006), dan optimasi penugasan mengajar bagi dosen (Mahmudy, 2006). Algoritma genetika standar sering digunakan untuk menyelesaikan permasalahan optimasi satu tujuan. Karena formulasi pakan ternak unggas dalam skripsi ini merupakan permasalahan multitujuan, maka metode yang akan digunakan adalah versi algoritma genetika yang mendukung optimasi multitujuan. Penyelesaian masalah optimasi multitujuan pernah dilakukan pada formulasi pakan ternak ikan air tawar (Wardani, Safrizal, dan Chairi, 2011). Dalam penelitian tersebut, pendekatan weighted-sum (Multi-Objective Genetic Algorithm, MOGA) digunakan untuk mengoptimasi komposisi bahan pakan ikan. Pendekatan weighted-sum termasuk pendekatan tradisional, yang dilakukan dengan cara memberikan bobot pada masing-masing fungsi tujuan dan menggabungkan semua fungsi tujuan menjadi satu fungsi tujuan. 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 (Srinivas dan Deb, 1994). Non-dominated Sorting Genetic Algorithm II (NSGA-II) merupakan algoritma genetika berbasis non-domination yang diperkenalkan setelah versi sebelumnya (NSGA) mendapatkan kritikan (Deb et al., 2002). NSGA-II dapat membangkitkan solusi yang lebih baik dengan kalkulasi yang sedikit (Hozairi et al., 2014);
2
menggunakan pendekatan elitism; tidak ada parameter niching tambahan (seperti σshare dalam MOGAs, NSGAs, atau NPGAs) (Deb, 2001). NSGA-II menjadi salah satu Multiobjective Evolutionary Algorithm (MOEA) yang paling populer karena kesederhanaannya, efektivitas, dan minimumnya keterlibatan pengguna didalamnya (Ghiasi, Pasini, dan Lessard, 2011). NSGA-II sering digunakan dalam penelitian untuk menyelesaikan masalah optimasi multitujuan, seperti dalam pendistribusian kapal perang angkatan laut Indonesia (Hozairi et al., 2014). Dalam penelitian tersebut, NSGA-II digunakan untuk memaksimalkan area cakupan patroli daerah maritim dan untuk meminimalkan biaya operasional. Hasil optimasi dalam pendistribusian kapal perang menunjukkan bahwa area partoli pada teritorial laut Armada Kawasan Timur (ARMATIM) yang bisa dijangkau meningkat 2% dengan penghematan biaya operasional sebesar 10%. Penelitian lain dilakukan dalam pemodelan Reactive Power Market Clearing (RPMC) (Saini dan Saraswat, 2012). Di dalam pemodelan RPMC ini, NSGA-II digunakan untuk meminimalkan fungsi pembayaran total (TPF) dan meminimalkan indeks peningkatan stabilitas voltase (VSEI). Dari penelitian RPMC ini, diperoleh kesimpulan bahwa NSGA-II memberikan hasil yang baik dan membantu mengambil keputusan untuk pasar kliring yang lebih baik. Berdasarkan kebutuhan akan teknologi yang mampu membantu peternak dalam penyusun formula pakan, maka dibutuhkan perangkat lunak (program aplikasi) yang akan dikembangkan dalam skripsi ini. Program aplikasi yang dikembangkan dalam skripsi ini adalah formulator pakan ternak unggas menggunakan NSGA-II.
1.2 Rumusan Masalah Berdasarkan uraian latar belakang, permasalahan yang akan dijadikan objek penelitian dalam skripsi ini adalah sebagai berikut: 1. Menentukan representasi kromosom untuk menyelesaikan masalah formulasi pakan ternak unggas. 2. Seberapa besar ukuran populasi, probabilitas crossover, probabilitas mutasi, dan jumlah generasi yang optimal untuk menyelesaikan permasalahan formulasi pakan ternak unggas.
1.3 Tujuan Tujuan penelitian dalam skripsi ini adalah sebagai berikut: 1. Untuk membuat program aplikasi formulator pakan ternak unggas menggunakan metode NSGA-II. 2. Untuk mengetahui ukuran populasi, probabilitas crossover, probabilitas mutasi, dan jumlah generasi paling optimal yang dapat digunakan untuk menyelesaikan permasalahan formulasi pakan ternak unggas.
3
1.4 Manfaat Manfaat penelitian ini adalah sebagai berikut: 1. Mempermudah peternak dalam memformulasikan pakan ternak. 2. Memberikan kontribusi dalam memberikan pengetahuan tentang penerapan NSGA-II untuk menyelesaikan permasalahan formulasi pakan ternak unggas.
1.5 Batasan Masalah Penelitian ini dibatasi oleh hal-hal berikut ini: 1. Bahasan dalam penelitian ini difokuskan pada formulasi pakan ayam dan itik. 2. Data komposisi bahan pakan, batasan penggunaan bahan pakan, dan kebutuhan zat makanan unggas yang digunakan dalam penelitian ini berasal dari artikel yang ditulis oleh Widodo (2010).
1.6 Sistematika Pembahasan Sistematika pembahasan dalam skripsi ini adalah sebagai berikut: 1. Bab 1 Pendahuluan Bab ini berisi latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, dan sistematika penulisan. 2. Bab 2 Landasan Kepustakaan Bab ini berisi teori yang berhubungan dengan nutrisi pakan, formulasi pakan, optimasi mutitujuan, algoritma genetika, NSGA-II, dan pengambilan keputusan. 3. Bab 3 Metode Penelitian dan Perancangan Bab ini menjelaskan metode yang digunakan dalam penelitian meliputi studi literatur, metode pengumpulan data, desain dan perancangan perangkat lunak, dan skenario pengujian. 4. Bab 4 Implementasi Bab ini membahas proses implementasi dari perancangan perangkat lunak untuk memformulasikan pakan menggunakan NSGA-II. 5. Bab 5 Pengujian dan Analisis Bab ini memuat proses pengujian dan hasil pengujian terhadap perangkat lunak tentang formulasi pakan ternak unggas dan analisis dari pengujian tersebut. 6. Bab 6 Penutup Bab ini memuat kesimpulan yang diperoleh dari pembuatan dan pengujian perangkat lunak yang dikembangkan dalam memformulasikan pakan ternak unggas dengan NSGA-II dan saran untuk pengembangan selanjutnya.
4
BAB 2 LANDASAN KEPUSTAKAAN Bab ini berisi pembahasan tentang kajian pustaka dan dasar teori yang berhubungan dengan implementasi Non-dominated Sorting Genetic Algorithm II (NSGA-II) dalam formulasi pakan ternak unggas.
2.1 Kajian Pustaka Dalam penulisan skripsi ini, dilakukan kajian terhadap beberapa penelitian sebelumnya. Penelitian tersebut meliputi formulasi pakan dan implementasi NSGA-II. Kajian pertama dilakukan terhadap penelitian yang dilakukan oleh Wardhani, Safrizal, dan Chairi (2011). Dalam penelitian ini, metode Multiobjective Genetic Algorithms (MOGA) digunakan untuk mengoptimasi komposisi bahan pakan ikan. MOGA merupakan algoritma genetika yang menggunakan pendekatan weighted-sum untuk menyelesaikan masalah optimasi multitujuan, yaitu dengan cara memberikan bobot pada masing-masing fungsi tujuan dan menggabungkan semua fungsi tujuan menjadi satu fungsi tujuan. Parameter masukan individu yang digunakan adalah jenis ikan, jenis kelamin, dan jumlah pakan yang akan dihasilkan. Penelitian ini menggunakan skema penyandian bilangan bulat, metode seleksi roulette whele, dan metode 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 dilakukan terhadap penelitian yang dilakukan oleh Hozairi et al. (2014) dalam penyelesaian permasalahan distribusi kapal perang angkatan laut Indonesia menggunakan NSGA-II untuk pengawasan teritorial maritim Indonesia. NSGA-II dipilih oleh peneliti karena metode ini bisa menghasilkan solusi yang lebih baik dengan proses perhitungan yang sedikit, pendekatan elitism, dan penggunaan parameter yang lebih sedikit dibandingkan NSGA. Dalam penelitian tersebut, NSGA-II digunakan untuk memaksimalkan area cakupan patroli daerah maritim dan untuk meminimalkan biaya operasional. Kapal perang angkatan laut yang ada 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. Distribusi ke23 unit kapal (K) yang dioperasikan dalam ke-7 sektor yaitu, sektor 1 (K17 dan K23), sektor 2 (K9, K11, K14, K16, K19, K20, dan K20), sektor 3 (K2, K4, K6, K8, K12, dan K15), sektor 4 (K1 dan k3), sektor 5 (K5, K8, dan K26), sektor 6 (K10 dan K13), dan sektor 7 (K7). Dengan menggunakan NSGA-II, area partoli pada teritorial laut ARMATIM yang bisa dijangkau meningkat 2% dengan penghematan biaya operasional sebesar 10%. Penelitian ketiga dilakukan terhadap penelitian yang dilakukan oleh Saini dan Saraswat (2012), tentang penyelesaian model multitujuan Reactive Power Market Clearing (RPMC) menggunakan NSGA-II. Di dalam RPMC, NSGA-II digunakan untuk meminimalkan fungsi pembayaran total (TPF) untuk layanan 5
pendukung daya reaktif yang disediakan oleh generator dan kondensor synchronous untuk mengatasi pasar daya reaktif. Dalam penelitian ini, NSGA-II juga digunakan untuk meminimalkan indeks peningkatan stabilitas voltase (VSEI) 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. Persamaan dan perbedaan dari ketiga penelitian dengan skripsi yang diajukan berdasarkan studi literatur yang telah dilakukan, dapat dilihat pada Tabel 2.1. Tabel 2.1 Perbedaan Penelitian Sebelumnya dengan Skripsi Penulis Judul Optimasi komposisi bahan pakan ikan air tawar menggunakan metode multiobjective genetic algorithm
Objek
Metode
Keluaran
Masukan
Proses
Hasil Penelitian
Formulasi pakan ikan air tawar
MOGA
Komposisi bahan pakan ikan
- Komposisi bahan pakan
- Inisialisasi populasi
MOGA memberikan hasil yang baik dalam formulasi pakan ikan air tawar dengan jumlah individu = 200; panjang kromosom = 5; pc = 0,01; pm = 0,2; dan generasi maksimal =5
- Perhitungan fitness
- Kebutuhan nutrisi ikan
• Penentuan Pareto optimality
- Jumlah pakan yang akan dibuat
• Tahapan elitism - Seleksi
- Ukuran populasi
- Crossover
- Jumlah generasi
- Mutasi
- Probabilitas crossover
- Replacement - Pengecekan kondisi berhenti
- Probabilitas mutasi - Probabilitas elitism - Panjang kromosom
Implementation of Distribusi kapal perang NSGA-II nondominated sorting angkatan laut genetic algorithm-II Indonesia (NSGA-II) for multiobjective optimization problems on distribution of Indonesian navy warship - Data kapal perang
- Memasukkan data
6
Kombinasi penempatan kapal perang pada setiap sektor operasi patroli laut Indonesia
Area partoli pada teritorial laut
Tabel 2.1 Perbedaan Penelitian Sebelumnya dengan Skripsi Penulis (Lanjutan) Judul
Objek
Metode
Keluaran
Masukan
Proses
Hasil Penelitian
angkatan laut
- Inisialisasi populasi
ARMATIM yang bisa dijangkau meningkat - Evaluasi fungsi tujuan 2% dengan populasi penghematan biaya - Fast non-dominated operasional sebesar sort 10%
- Data area setiap sektor yang akan diamankan - Data pangkalan pendukung setiap sektor
- Seleksi - Crossover
- Data wilayah kerentanan dan kondisi geografis
- Mutasi - Evaluasi fungsi tujuan populasi offsring
- Data biaya operasional dan model penugasan
- Kombinasi populasi induk dan populasi offspring - Fast non-dominated sort - Pemberian nilai crowding distance - Replacement - Pengecekan kondisi berhenti - Memilih satu solusi terbaik
Solving a multiReactive Power objective reactive Market Clearing power market clearing (RPMC) model using NSGA-II - Data sistem daya - Jumlah variabel
NSGA-II
Satu solusiterbaik berupa market clearing
- Memasukkan data sistem daya
NSGA-II memberikan hasil yang superior dibandingkan hasil yang diberikan oleh algoritma genetika berbasis real-coded, dan membantu mengambil keputusan untuk pasar kliring yang lebih baik
- Inisialisasi populasi
- Ukuran populasi
- Perhitungan fitness dan crowding distance
- Jumlah generasi - Probabilitas crossover
- Seleksi
- Probabilitas mutasi
- Crossover - Mutasi - Replacement
7
Tabel 2.1 Perbedaan Penelitian Sebelumnya dengan Skripsi Penulis (Lanjutan) Judul
Objek
Metode
Keluaran
Masukan
Proses
Hasil Penelitian
- Pengecekan kondisi berhenti Usulan: Formulasi pakan ternak unggas menggunakan Nondominated Sorting Genetic Algorithm II
Formulasi pakan ternak unggas
NSGA-II
- Data komposisi bahan pakan
- Memasukkan data komposisi bahan pakan, kebutuhan nutrisi unggas, batasan penggunaan bahan pakan, dan jumlah pakan yang akan dibuat
- Data kebutuhan nutrisi unggas - Data batasan penggunaan bahan pakan - Jumlah pakan yang akan dibuat
Formula pakan ternak unggas
- Inisialisasi populasi - Seleksi
- Jumlah variabel
- Crossover
- Ukuran populasi
- Mutasi
- Jumlah generasi
- Penggabungan populasi induk dan populasi offspring
- Probabilitas crossover - Probabilitas mutasi
- Fast non-dominated sort - Crowding distance - Replacement - Pengecekan kondisi berhenti
Sumber: (Wardani, Safrizal, dan Chairi, 2011; Hozairi et al., 2014; Saini dan Saraswat, 2012)
2.2 Pakan Ternak Unggas Di dalam usaha peternakan unggas, pakan menjadi salah satu faktor penentu produktivitas ternak. Secara teori, pakan yang baik akan meningkatkan produktivitas ternak. Pakan (ransum) yang baik dibuat dengan kombinasi bahanbahan pakan yang baik pula. Ransum dibuat dengan memperhatikan kandungan zat makanan pada bahan pakan penyusunnya. Contoh kandungan zat makanan dari beberapa bahan pakan ternak dapat dilihat pada Lampiran A. Berdasarkan 8
panduan pembuatan pakan ternak ayam dan itik (Widodo, 2010), 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).
2.2.1 Nutrisi Pakan Ternak Unggas Nutrisi diartikan sebagai proses pemasukan dan pengolahan zat makanan oleh tubuh; bisa juga diartikan sebagai makanan bergizi; dan ilmu tentang gizi (Tim Pusat Bahasa Depdiknas, 2008). Anti nutrisi adalah istilah zat-zat makanan yang ada dalam tanaman yang apabila dikonsumsi hewan ataupun manusia menyebabkan kekurangoptimalan fungsi hidup, produksi, dan reproduksi hewan ataupun manusia tersebut. Menurut Anggorodi dalam Syafar (2014), zat makanan yang harus ada dalam ransum adalah energi, protein, lemak, kalsium, fosfor, dan air. 1. Energi Istilah energi berasal dari Yunani, yang terdiri atas kata "en" berarti di dalam dan "ergon" berarti kerja, sehingga energi dapat diartikan sebagai kemampuan untuk dapat melakukan pekerjaan; energi dalam pakan disebut energi biologis (Widodo, n.d.). Energi yang terdapat dalam makanan tidak seluruhnya dapat digunakan oleh tubuh; setidaknya ada empat energi dalam setiap bahan yang digunakan, yaitu energi bruto, energi tercerna, energi termetabolis, dan energi neto (Wahju, 1992). Energi yang digunakan dalam formulasi pakan ternak unggas adalah Energi termetabolis atau energi metabolis (Metabolizable Energy, ME). Energi termetabolis adalah energi kotor dari pakan yang dapat digunakan oleh tubuh. Menurut Wahju (1992), zat-zat makanan yang menjadi sumber energi adalah karbohidrat, lemak, dan protein. Karena ayam tidak mampu mencerna selolosa, hemiselulosa, atau lignin, maka kebutuhan energi ayam harus dipenuhi dengan pemberian dengan kandungan polisakarida yang mudah dicerna (pati), disakarida (sukrosa dan maltosa), monosakarida (glukosa, fruktosa, manosa, dan galaktosa), pentosa dengan jumlah terbatas, lemak, dan protein. 2. Protein Protein berasal dari kata “proteios” yang berarti “pertama” atau “kepentingan primer”. Protein merupakan senyawa organik yang sebagian besar unsurnya terdiri dari karbon, hidrogen, oksigen, nitrogen, sulfur, dan fosfor. Ciri khusus protein adalah adanya kandungan nitrogen. Menurut Rasyaf (2003), manfaat protein adalah untuk membangun dan membentuk jaringan tubuh; membentuk enzim-enzim dan/atau bagian dari enzim; untuk kebutuhan reproduksi; dan dalam keadaan kekurangan energi, protein akan diubah menjadi bentuk energi. Faktor-faktor yang mempengaruhi kebutuhan akan protein adalah umur ayam, tingkat pertumbuhan, iklim, dan penyakit (Rasyaf, 2003). Protein merupakan gabungan asam-asam amino melalui ikatan peptida, yaitu suatu ikatan antara gugus amino (NH 2) dari suatu asam amino dengan gugus
9
karboksil dari asam amino yang lain, dengan membebaskan satu molekul air (H2O). Protein dibentuk dari 22 jenis macam asam amino, tetapi dari ke-22 jenis asam amino tersebut yang berfungsi sebagai penyusun utama protein hanya 20 macam. Dari 20 macam asam amino tersebut ternyata ada sebagian yang dapat disintesis dalam tubuh ternak, sedangkan sebagian lainnya tidak dapat disintesis dalam tubuh unggas sehingga harus didapatkan dari pakan. Asam amino yang harus ada atau harus didapatkan dari pakan disebut asam amino esensial. Asam amino yang termasuk dalam kelompok ini adalah metionin dan fenilalanin. Asam amino yang dapat disintesis dalam tubuh disebut asam amino nonesensial, tetapi apabila esensial untuk metabolisme maka disebut pula sebagai asam amino esensial metabolik. Contohnya adalah alanin, glisin, prolin dan serin. Di samping itu ada pengelompokan asam amino setengah esensial karena asam amino ini hanya dapat disintesis dalam tubuh dalam jumlah yang terbatas dari substrat tertentu. Asam amino yang termasuk dalam kelompok ini adalah tirosin, sistin dan hidroksilisin (Widodo, n.d.). Kandungan nitrogen dalam protein yang tidak dicerna oleh unggas akan dikeluarkan melalui proses ekskresi. Penambahan senyawa nitrogen pada lingkungan dapat mengubah keseimbangan alami nitrat dan nitrit yang pada akhirnya dapat memberikan efek negatif pada kesehatan manusia dan hewan (Amazine, 2013). 3. Lemak Lemak adalah kelompok senyawa heterogen yang masih berkaitan, baik secara aktual maupun potensial dengan asam lemak. Lipid mempunyai sifat umum yang relatif tidak larut dalam air dan larut dalam pelarut nonpolar seperti eter, kloroform dan benzena. Dalam tubuh, lemak berfungsi sebagai sumber energi yang efisien secara langsung dan secara potensial bila disimpan dalam jaringan adiposa. Lemak berfungsi sebagai penyekat panas dalam jaringan subkutan dan sekeliling organ-organ tertentu, dan lipid nonpolar bekerja sebagai penyekat listrik yang memungkinkan perambatan cepat gelombang depolarisasi sepanjang syaraf bermielin (Widodo, n.d.). 4. Mineral Mineral adalah padatan senyawa kimia homogen, nonorganik, yang memiliki bentuk teratur dan terbentuk secara alami (Wikipedia, 2015). Mineral berperan dalam memelihara kondisi ionik dalam tubuh, memelihara keseimbangan asam basa tubuh, memelihara tekanan osmotik cairan tubuh, menjaga kepekaan otot dan syaraf, mengatur transport zat makanan dalam sel, mengatur permeabilitas membran sel dan kofaktor enzim, dan mengatur metabolisme (Widodo, n.d.). 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. Komposisi mineral dari tulang segar adalah kalsium 36%, fosfor 17%, dan magnesium 0,8%. Juga untuk perbaikan dan pertumbuhan bulu, tanduk dan kuku, jaringan lunak, dan sel darah. Kebutuhan akan mineral juga menyangkut kepentingan untuk regulator tubuh seperti proses regulasi dalam bentuk ion,
10
molekul, komponen vitamin, dan pembentukan enzim dan hormon. Selain itu juga untuk kebutuhan produksi seperti produksi telur, daging, susu, dll (Widodo, n.d.). Kalsium erat sekali hubungannya dengan pembentukan tulang. Sumber utama kebutuhan segera tulang baru, terdapat dalam cairan tubuh dan sel. 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 (Widodo, n.d.). 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. Oleh karena itu, kekurangan fosfor akibat defisiensi makanan biasa tidak terjadi. Fosfat terdapat dalam sel-sel sebagai ion bebas pada konsentrasi beberapa miliekuivalen per liter dan juga merupakan bagian penting asam-asam nukleat, nukleotida, dan beberapa protein (Widodo, n.d.). Namun, kandungan forfor berlebih dapat penyebabkan pencemaran lingkungan yang dikeluarkan melalui proses ekskresi (Castrodeza, Lara, dan Peña, 2005).
2.3 Formulasi Pakan Ternak Unggas Pakan merupakan salah satu sendi1 dalam usaha peternakan. Tidak kurang dari 50% dari total biaya produksi usaha peternakan digunakan untuk mengadaan pakan. Bibit dan manajemen yang baik harus didukung oleh pakan yang baik juga, sehingga potensi bibit bisa muncul dan menjadi ternak yang mampu menghasilkan produk yang maksimal. Pakan juga perlu diperhatikan karena memiliki persentase terbesar dalam menentukan biaya produksi ternak; jika 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 nitrogen dalam protein yang dikeluarkan melalui proses ekskresi. Oleh karena itu, peramu pakan perlu memperhatikan formula pakan yang digunakan. Formulasi pakan adalah penerapan pengetahuan tentang gizi, bahan pakan, dan ternak di dalam pengembangan pakan yang bergizi yang akan diberikan dan dikonsumsi oleh ternak unggas dalam jumlah tertentu, dan cukup memenuhi kebutuhan (Direktorat Pembinaan Sekolah Menengah Kejuruan, 2014). Formulasi pakan juga diartikan sebagai proses mengukur sejumlah bahan baku pakan yang perlu dikombinasikan untuk membentuk campuran tunggal yang seragam (ransum) untuk unggas, yang memasok semua kebutuhan gizi unggas (Poultry Hub, 2015). Kedua definisi ini berkaitan dengan manfaat formulasi pakan, yaitu tersalurkannya pengetahuan tentang zat makanan dan bahan makanan dalam pakan (ransum) sehingga keinginan peternak untuk memenuhi kebutuhan gizi 1 Sendi-sendi dalam usaha perternakan adalah bibit, pakan, dan manajemen.
11
ternak terealisasi (Parakkasi, 1998). Ada tiga 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 dalam penyusunan pakan juga perlu diperhatikan karena bahan-bahan tertentu mengandung anti nutrisi (Widodo, n.d.). Contoh kandungan zat makanan dari beberapa bahan pakan, batas maksimal penggunaan beberapa bahan pakan, dan kebutuhan zat makanan ayam dan itik secara berurutan dapat dilihat pada Lampiran A, Lampiran B, dan Lampiran C. 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 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 masamasa bagi ternak untuk menghasilkan telur. Dalam (Widodo, 2010), fase pemeliharaan ayam dan itik dibagi sebagai berikut: 1. Masa pemeliharaan ayam pedaging (broiler) dibagi ke dalam dua fase, yaitu starter (umur 0-3 minggu) dan finisher (umur 3-6 minggu). 2. Masa pemeliharaan ayam petelur (layer) dibagi ke dalam lima fase, yaitu starter (umur 0-8 minggu), grower (8-22 minggu), layer 1 (22-52 minggu), layer 2 (lebih dari 52 minggu), dan fase untuk ayam layer jantan (1 haridipotong). 3. Masa pemeliharaan ayam buras dibagi ke dalam dua fase, yaitu starter (umur 0-3 minggu) dan finisher (umur 3-8 minggu). 4. Masa pemeliharaan itik petelur (layer) dibagi ke dalam tiga fase, yaitu fase 1 (umur 0-2 minggu), fase 2 (umur 2-7 minggu), dan fase layer. 5. Masa pemeliharaan itik pedaging jantan dibagi ke dalam dua fase, yaitu starter (umur 0-3minggu) dan finisher (umur 3-7 minggu). 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 (Castrodeza, Lara, dan Peña, 2005). Self mixing merupakan teknik meramu pakan yang pencampuran bahan pakannya dilakukan sendiri oleh peternak. Self mixing biasanya dilakukan untuk menghemat biaya pakan, walau sebenarnya self mixing memiliki banyak manfaat selain penghematan biaya, seperti keleluasaan dalam menentukan komposisi
12
pakan (pengawasan mutu pakan) dan formulasi pakan bisa dibuat sesuai kebutuhan. Pada dasarnya, ada dua sistem peracikan pakan, yaitu semi self mixing dan total self mixing. Terkadang, peternak memilih untuk mencampur konsentrat buatan pabrik dengan bahan pakan lain, sistem peracikan ini disebut dengan semi self mixing. Bahan pakan yang biasa digunakan dalam semi self mixing adalah jagung dan bekatul. Total self mixing adalah sistem peracikan yang dalam prosesnya, peternak benar-benar mencampur sendiri berbagai macam bahan pakan menjadi ransum (Info Medion, 2013). Dalam memformulasi pakan, peternak menghitung harga yang akan dikeluarkan dan kandungan nutrisi yang ada pada pakan. Hal ini dilakukan 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 (2.1) (Widodo, 2010). n
kt i =∑ a ij x j
(2.1)
j=1
dengan x j=
bj
(2.2)
n
∑ bj j =1
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. Dalam proses seleksi formula pakan, nilai penalti dibutuhkan untuk menentukan kualitas formula. Penalti menyatakan tingkat pemenuhan suatu formula. Semakin kecil nilai penalti suatu formula pakan, maka formula pakan tersebut semakin memenuhi batasan-batasan dalam memformulasikan pakan. Nilai penalti dapat dihitung menggunakan Persamaaan (2.3) (Lampiran D). k
n
i=1
j =1
pt=( ∑ pai )+( ∑ pb j )
(2.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 untuk pemenuhan batasan penggunaan bahan pakan ke-j. Nilai pai dan pbj didapatkan dengan mematuhi pola aturan pada Persamaan (2.4), Persamaaan (2.5), dan Persamaaan (2.6). pm t < lb t ,
pc t= pm t−lbt
(2.4)
pmt > ubt ,
pct =ub t− pmt
(2.5)
lb t≤ pmt ≤ubt ,
(2.6)
pct =0
pmt adalah nilai pemenuhan kriteria pembatas ke-t; lbt dan ubt adalah batas
13
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.
2.4 Permasalahan Optimasi Multitujuan Dalam kehidupan sehari-hari, memiliki beberapa tujuan dalam suatu masalah merupakan hal yang lazim begitu juga dalam permasalahan formulasi pakan ternak unggas. Selain meminimalkan biaya yang dikeluarkan, formulator pakan bisa memiliki tujuan untuk meminimalkan kandungan zat makanan tertentu seperti fosfor. 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 sederhana, masalah optimasi tujuan tunggal dapat dinyatakan dalam model matematis seperti pada Persamaaan (2.7) (Caramia dan Dell’Olmo, 2008). (2.7)
Min/Maks f (x) dengan
x∈ S , S ={x ∈ Rm : g ( x)≥0, h(x )=0} f adalah fungsi tujuan, x adalah variabel keputusan (parameter), dan S adalah himpunan kendala yang harus dipenuhi oleh fungsi tujuan yang juga berarti ruang pencarian. Secara umum, masalah multitujuan berkendala dapat dinyatakan dalam model matematis seperti pada Persamaan (2.8) (Deb, 2001). Min/ Maks f m ( x ),
m=1, 2, ... , M ;
(2.8)
subject to g j (x )≥0,
j=1,2, ... , J ;
hk (x )=0,
k =1,2, ... , K ;
(L)
(U )
x i ≤x i≤x i ,
i=1, 2,... , n .
Berdasarkan Persamaan (2.8), 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 sejumlah J kendala pertidaksamaan dan K kendala persamaan. Notasi gj(x) ≥ 0 dan hk(x) ≥ 0 masing-masing 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
14
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 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) (Deb, 2001). 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 dalam masalah 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). Optimasi tujuan tunggal berbeda dengan optimasi multitujuan. Salah satu perbedaan mencolok antara keduanya adalah bahwa dalam optimasi multitujuan, fungsi tujuan membentuk ruang multidimensi, sebagai tambahan selain adanya ruang variabel keputusan. Ruang tambahan ini disebut objective space (ruang tujuan), Z. Ilustrasi kedua ruang ini dan pemetaan antara keduanya dapat dilihat pada Gambar 2.1. Untuk setiap solusi x dalam ruang variabel keputusan, terdapat titik di ruang tujuan, dilambangkan dengan f(x) = z = (z1, z2, …, zM)T. Pemetaan berlangsung antara vektor solusi berdimensi n dengan vektor tujuan berdimensi M.
Gambar 2.1 Representasi Ruang Variabel Keputusan (kiri) dan Ruang Tujuan (kanan) Sumber: Diadaptasi dari Deb (2001)
15
2.4.1 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 (Deb, 2001): 1. Solusi x(1) tidak lebih buruk dari pada solusi x(2) di semua fungsi tujuan, yang dapat dimodelkan dengan notasi: fj(x(1)) ⋫ fj(x(2)) di semua j = 1, 2, ..., M. 2. Solusi x(1) benar-benar lebih baik dari pada solusi x(2), paling tidak di satu fungsi tujuan, yang dapat dimodelkan dengan notasi: fj(x(1)) ⊲ fj(x(2)) paling tidak di 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 dua solusi memiliki sifat-sifat berikut ini (Deb, 2001): Reflektif: Hubungan dominansi tidak reflektif, karena solusi p tidak mendominasi dirinya sendiri sehingga kondisi kedua dalam definisi dominasi tidak dapat terpenuhi. Simetris: Hubungan dominansi tidak juga simetris, karena p ≼ q tidak berarti q ≼ p. Namun, kebalikannya benar, bahwa jika p mendominasi q, maka q tidak mendominasi p, sehingga hubungan dominansi bersifat asimetris. Antisimetris: Karena hubungan dominansi tidak simetris, maka pasti tidak antisimetris. Transitif: Hubungan dominansi bersifat transitif karena jika p ≼ q dan q ≼ r, maka p ≼ r. Hal penting lainnya yang harus diperhatikan dalam dominansi adalah, jika solusi p tidak mendominasi solusi q, bukan berarti q mendominasi p (Deb, 2001). Hubungan dominansi yang dijelaskan sebelumnya terkadang mengacu pada dominansi “lemah”. Hubungan dominansi dikatakan “lemah” jika solusi x(1)
16
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) benarbenar lebih baik dari pada solusi x(2) di semua M tujuan (Deb, 2001). Dalam masalah optimasi multitujuan minimalisasi dengan m variabel keputusan dan n tujuan dapat dimodelkan secara matematis seperti pada Persamaan (2.9) (Zitzler, Deb, dan Thiele, 2000). Min y =f (x )=(f 1 ( x ) ,... , f n( x));
(2.9)
dengan x=( x 1 ,... , x m )∈X ,
y=( y1 ,... , y n)∈Y , Pada Persamaan (2.9), variabel x adalah vektor keputusan, X adalah ruang parameter, y adalah vektor fungsi tujuan, dan Y adalah ruang fungsi tujuan. Vektor keputusan a ∊ X dikatakan mendominasi (dominansi kuat) vektor b ∊ X (a ≺ b) jika dan hanya jika kondisi pada Persamaan (2.10) terpenuhi. ∀ i∈{1,... , n}: f i (a)≤f i (b) ∧ ∃i ∈{1,. .. , n}: f i (a)< f i (b).
(2.10)
Secara global (optimasi minimalisasi/maksimalisasi), vektor keputusan a ∊ X mendominasi vektor b ∊ X jika dan hanya jika a lebih baik dari pada b di semua fungsi tujuan dan a lebih baik dari pada b paling sedikitnya pada satu fungsi tujuan (Zitzler, Deb, dan Thiele, 2000). Dengan a ∊ X, vektor keputusan a dikatakan solusi yang tidak terdominasi, berhubungan dengan himpunan X' ⊆ X, jika dan hanya jika tidak ada vektor keputusan di X' (anggota solusi yang ada) yang mendominasi a. Secara formal, hal ini dapat dinyatakan dalam model matematis seperti pada Persamaan (2.11) (Zitzler, Deb, dan Thiele, 2000). (2.11)
∄a ' ∈X ' :a ' ≺a
a dikatakan solusi Pareto-optimal jika dan hanya jika a tidak terdominasi dalam X. Dengan himpunan solusi yang ada (atau titik dalam ruang fungsi tujuan), apakah suatu titik mendominasi titik yang lain dapat dilihat pada Gambar 2.2(a). Semua titik yang tidak didominasi oleh anggota lain disebut sebagai “titik tak terdominasi” (non-dominated points), yaitu titik 3, 5, dan 6 (Deb, 2011a). Vektor keputusan Pareto-optimal tidak bisa ditingkatkan di fungsi tujuan manapun tanpa mengorbankan paling tidak di satu tujuan, sehingga menghasilkan trade-off yang terbaik (Deb, 2011a; Zitzler, Deb, dan Thiele, 2000). Pada Gambar 2.2(a), titik 6 mengorbankan tujuan ke-2 untuk mendapatkan trade-off yang baik pada tujuan ke-1. Kumpulan titik yang tidak terdominasi ini membentuk front jika diperhatikan secara bersama dalam ruang fungsi tujuan, sehingga kumpulan titik ini sering divisualisasikan untuk representasi non-domination front seperti pada Gambar 2.2(b) (Deb, 2011a).
17
Gambar 2.2 (a) Himpunan Titik dan (b) Non-dominated Front Sumber: (Deb, 2011a)
Dengan konsep pada Gambar 2.2, akan lebih mudah untuk mendefinisikan solusi Pareto-optimal dalam MOOP. Jika himpunan titik pada Gambar 2.2(a) berisi semua titik dalam ruang pencarian (dengan asumsi tercacahkan), titik yang ada di non-dominated front, secara definisi, tidak didominasi oleh titik lain dalam ruang fungsi tujuan, sehingga titik ini disebut titik Pareto-optimal (atau front Paretooptimal) dan vektor variabel keputusan yang berkaitan disebut solusi Paretooptimal (Deb, 2011a). Seperti halnya dalam optimasi tujuan tunggal, dalam optimasi multitujuan ada solusi optimal lokal dan global, yaitu solusi Pareto-optimal lokal dan solusi Pareto-optimal global. P dikatakan solusi Pareto-optimal lokal jika untuk setiap anggota x dalam himpunan P, tidak ada solusi y (di sekitar x sedemikian hingga ∥ y − x ∥ ∞ ≤ ε, dimana ε adalah bilangan kecil positif) yang mendominasi anggota P. P dikatakan solusi Pareto-optimal global jika tidak ada solusi dalam seluruh ruang pencarian S feasible yang mendominasi anggota P, dengan kata lain, solusi tak terdominasi dari seluruh ruang pencarian S feasible merupakan sulusi Paretooptimal global (Deb, 2011a). Perbedaan antara solusi Pareto-optimal lokal dan solusi Pareto-optimal global dapat diperhatikan pada Gambar 2.3.
Gambar 2.3 (a) Solusi Pareto-optimal Global dan (b,c) Solusi Pareto-optimal Lokal Sumber: Diadaptasi dari Deb (2001)
18
Menurut Deb (2001), ada dua sasaran dalam optimasi multitujuan, yaitu: 1. Menemukan himpunan solusi yang sedekat mungkin dengan front Paretooptimal. 2. Menemukan himpunan solusi yang berbeda sebisa mungkin.
2.5 Algoritma Genetika Algoritma genetika (Genetic Algorithm, GA) merupakan algoritma pencarian dan optimasi meta-heuristic, subkelas dari algoritma evolusi. Algoritma genetika bekerja dengan cara merepresentasikan permasalahan yang dihadapi ke dalam proses evolusi makhluk hidup. Sebagaimana diungkapkan oleh Basuki (2003) tentang proses evolusi pada algoritma genetika, yaitu “Dalam proses evolusi, individu secara terus-menerus mengalami perubahan gen untuk menyesuaikan dengan lingkungan hidupnya. 'Hanya individuindividu yang kuat yang mampu bertahan'. Proses seleksi alamiah ini melibatkan perubahan gen yang terjadi pada individu melalui proses perkembangbiakan. Dalam algoritma genetika ini, proses perkembangbiakan ini menjadi proses dasar yang menjadi perhatian utama, dengan dasar berpikir: 'Bagaimana mendapatkan keturunan yang lebih baik'”. 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 (Mahmudy, 2013). Di bidang ekonomi-bisnis, algoritma genetika digunakan untuk mengoptimasi portofolio saham (Mahmudy dan Rahman, 2011). Algoritma genetika juga bisa digunakan untuk kompresi citra (Ciptayani, Mahmudy, dan Widodo, 2009), penyusunan rute dan jadwal kunjungan wisata (Widodo dan Mahmudy, 2010), optimasi penjadwalan ujian (Mawaddah dan Mahmudy, 2006), dan penugasan mengajar bagi dosen (Mahmudy, 2006).
2.5.1 Struktur Umum Algoritma Genetika Untuk menyelesaikan permasalahan dengan algoritma genetika, masalah akan disandikan menjadi kromosom (individu) yang disusun oleh sejumlah gen (pembawa sifat/variabel). Fungsi fitness digunakan untuk menilai kualitas suatu individu dan menjadi penentu kelayakan untuk dapat bertahan menjadi generasi selanjutnya. Ilustrasi pemecahan masalah dengan algoritma genetika dan dapat dilihat pada Gambar 2.4.
Gambar 2.4 Mencari Solusi dengan Algoritma Genetika Sumber: Diadaptasi dari Mahmudy (2013)
19
Algoritma genetika memiliki populasi yang terdiri dari kumpulan individu, yaitu P(t) pada generasi ke-t dan C(t) yang merupakan individu baru hasil reproduksi individu sebelumnya. Secara umum, alur algoritma genetika dideskripsikan pada Gambar 2.5. begin t ← 0 inisialisasi P(t) evaluasi P(t) while (bukan kondisi berhenti) do reproduksi C(t) dari P(t) evaluasi C(t) seleksi P(t + 1) dari P(t) dan C(t) t ← t + 1 end while end
Gambar 2.5 Pseudocode Algoritma Genetika Sumber: Diadaptasi dari Gen dan Cheng (2000); Mahmudy (2013)
Proses awal algoritma genetika adalah inisialisasi, yaitu penciptaan individuindividu awal secara acak. Tahap selanjutnya adalah evaluasi, yaitu untuk menghitung nilai fitness setiap individu awal. Untuk kelangsungan hidup populasi, maka harus melakukan reproduksi dengan menghasilkan individu baru. Dalam proses reproduksi ada dua operator genetika yaitu crossover (perkawinan silang) dan mutasi. Individu baru akan dievaluasi untuk mengetahui nilai fitnessnya. Setelah itu, akan dilakukan pemilihan individu yang akan ada dalam populasi generasi selanjutnya. Proses reproduksi hingga seleksi akan terus diulang hingga terpenuhinya kondisi yang mengijinkan iterasi ini berhenti. Di dalam algoritma genetika ada beberapa terminologi yang harus dipahami untuk menyelesaikan permasalahan. Berikut ini adalah beberapa terminologi dalam algoritma genetika (Basuki, 2003): 1. Gen (genotype) adalah sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen (kromosom). Dalam algoritma genetika, gen bisa disandikan dalam bilangan biner, float, integer, maupun karakter. 2. Alel (Allele) adalah nilai gen. 3. Kromosom adalah gabungan dari beberapa gen yang membentuk nilai tertentu. 4. Individu adalah suatu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat. 5. Populasi adalah sekumpulan individu yang akan diproses bersama dalam satu siklus evolusi. 6. Generasi adalah satuan siklus evolusi. 7. Fitness adalah kualitas individu yang menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.
20
2.6 Non-dominated Sorting Genetic Algorithm II Non-dominated Sorting Genetic Algorithm II (NSGA-II) merupakan salah satu Multiobjective Evolutionary Algorithm yang mampu menemukan solusi Paretooptimal 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) (Deb et al., 2002). Tahapan penyelesaian permasalahan optimasi menggunakan NSGA-II adalah sebagai berikut (Deb, 2011b; Deb et al., 2002; Mahbub, 2015): 1. Pembangkitan populasi awal. Prosedur NSGA-II dimulai membangkitkan populasi awal/induk (P0) secara acak sejumlah N.
dengan
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. 4. Evaluasi fungsi tujuan. Mengevaluasi nilai fungsi tujuan (dan fungsi kendala jika ada) setiap individu dalam populasi offspring. 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. 7. Crowding distance assignment. Menghitung jarak antara individu dengan individu tetangga. Pseudocode penghitungan crowding distance dapat dilihat pada Gambar 2.9. 8. Penggantian populasi. Memilih N individu terbaik dari populasi intermediate untuk menggantikan populasi induk. Selama proses pemilihan N individu terbaik, setiap individu diberi nilai crowding distance menggunakan prosedur crowding distance assignment sebagaimana dideskripsikan pada Gambar 2.9. Individu yang berada dalam front 1 lebih diutamakan 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-
21
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 generasigenerasi selanjutnya dapat dilihat pada Gambar 2.6. 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. 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 2.6 Pseudocode NSGA-II untuk Selain Generasi Awal Sumber: (Deb et al., 2002)
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. Karena operator ini membutuhan atribut peringkat (front) dan crowding distance masing-masing individu dalam populasi, maka atribut ini dihitung selagi membentuk populasi Pt+1, sebagaimana disebutkan di atas. NSGA-II menggunakan pendekatan fast (elitist) non-domination sort untuk mengurutkan solusi (individu) ke dalam front (Deb et al., 2002). Gambar 2.7 merupakan pseudocode fast non-domination sort. Dalam fast non-domination sort, setiap solusi p akan diberi dua entitas, yaitu np (jumlah solusi yang mendominasi p) dan Sp (himpunan solusi yang didominasi oleh p). Semua solusi dalam front 1 memiliki np nol. Untuk setiap solusi p dengan np = 0, nilai nq setiap solusi q dalam himpunan Sp dikurangi 1. Dengan melakukan ini, jika nq menjadi nol, maka solusi q dimasukkan ke dalam himpunan Q. Anggota himpunan Q berada dalam front selajutnya. Proses ini diulang hingga semua front diketahui. Dalam masalah optimasi berkendala, definisi dominasi dalam NSGA-II dimodifikasi. Solusi i dikatakan mendominasi (constrained-dominate) j jika salah satu dari kondisi berikut benar (Deb et al., 2002): 1. Solusi i feasible dan j tidak. 2. Solusi i dan j tidak feasible, tapi solusi i memiliki nilai penalti yang lebih kecil.
22
3. Solusi i dan j feasible dan solusi i mendominasi solusi j. Selain itu menggunakan pendekatan fast (elitist) non-domination sort, NSGAII menggunakan pendekatan crowded-comparison sebagai pengganti fungsi sharing untuk menghasilkan persebaran solusi yang baik dalam himpunan solusi (Deb et al., 2002). Pendekatan ini tidak membutuhkan parameter dari pengguna untuk memelihara keragaman solusi antar anggota populasi dan memiliki kompleksitas komputasi yang lebih baik. 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 = np + 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
Gambar 2.7 Pseudocode Fast Non-dominated Sort Sumber: Diadaptasi dari Deb et al. (2002)
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 jarak ratarata dua titik lainnya di kedua sisi titik ini untuk setiap fungsi tujuan (Deb et al., 2002). Pada Gambar 2.8, 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 23
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 (2.12).
Gambar 2.8 Perhitungan Crowding Distance Sumber: Diadaptasi dari Deb et al. (2002)
I [i]distance =
I [i+ 1]. m−I [i−1]. m min f max m −f m
(2.12)
Pada Persamaan (2.12), 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 ke-m. 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 2.9. 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 Paretooptimal 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 (2.13) (Deb et al., 2002). i≺n j
if i rank < j rank ∨((i rank= j rank )∧(i distance > j distance ))
24
(2.13)
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 2.9 Pseudocode Crowding Distance Assignment Sumber: Diadaptasi dari Deb et al. (2002)
2.6.1 Operator Genetika Operator genetika yang digunakan dalam NSGA-II untuk pemetaan kromosom riil adalah binary tournament selection, simulated binary crossover, dan polynomial mutation (Deb et al., 2002; Saini dan Saraswat, 2012). Binary tournament selection merupakan jenis seleksi yang memiliki jumlah tournament 2. Tournament adalah himpunan individu yang akan dibandingkan dalam proses seleksi. Individu-individu ini akan dibandingkan sehingga hanya satu individu yang terpilih. Algoritma binary tournament selection dapat dilihat pada Gambar 2.10. input: P ← populasi , k ← ukuran tournament (2, untuk binary) output:p ← individu setelah proses seleksi begin p ← null , N ← |P| for i ← 1 to k do individu ← pop[random(1, N)] if (p = null) or fitness(individu) > fitness(p) then p = individu end if end for return p end
Gambar 2.10 Pseudocode Binary Tournament Selection Sumber: Diadaptasi dari (Blickle dan Thiele, 1995; Deong, 2012)
Penggunaan fitness sebagai pembanding dalam proses seleksi diganti dengan konsep dominasi dalam NSGA-II. Dalam proses seleksi, jika kedua individu p dan q tidak saling mendominasi, maka individu bisa dipilih secara acak (Deb, 2011b; Mahbub, 2015). Pemilihan individu secara acak dapat dilakukan dengan bangkitkan bilangan acak (r) antara 0 dan 1; jika r ≤ 0,5 maka p terpilih sebagai 25
induk; jika r > 0,5 maka q terpilih sebagai induk (Deb, 2011b). Simulated binary crossover (SBX) diajukan oleh Deb dan Agrawal (1995). SBX didesain dengan mengadopsi properti yang dimiliki one-point crossover dalam algoritma genetika binary-coded. Operator SBX menghasilkan offspring y(1) dan y(2) dari dua induk x(1) dan x(2). Prosedur SBX berikut ini digunakan untuk variabel yang memiliki batasan. Operator SBX diterapkan pada individu, variabel demi variabel. Prosedur crossover dilakukan jika random[0,1] ≤ pc. random[0,1] adalah nilai antara 0 dan 1 yang dibangkitkan secara acak. Berikut ini adalah prosedur SBX (Deb, 2000). 1. Membangkitkan nilai acak u antara 0 dan 1. 2. Menghitung nilai parameter β menggunakan Persamaan (2.14).
{(
1 nc +1
(α u) , ̄β= 1 1 n +1 , 2−α u
)
c
1 α 1 jika u> α
jika u⩽
(2.14)
dengan α=2−β−(n +1) 2 (1) l u (2) β=1+ (2) (1) min [( x −x ),(x −x )] 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 (2.15) dan Persamaan (2.16). y (1) =0,5[( x (1 )+ x (2))−β¯|x(2)−x (1)|] y (2) =0,5[( x (1 )+ x (2))+ ¯β|x(2)−x (1)|]
(2.15) (2.16)
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) (Deb, 2000, 2011b). Polynomial mutation digunakan untuk membuat offspring y yang mendekati induk x (Deb dan Goyal, 1996). 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 (Deb, 2000). 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
26
Persamaan (2.17).
{
1 nm+1 nm +1
¯ δ= [2 u+(1−2u)(1−δ)
]
1 2 1 jika u> 2
jika u⩽
, 1 nm +1 nm +1
1−[2(1−u)+2(u−0,5)(1−δ)
]
,
(2.17)
dengan min [(x−x l),(x u−x )] δ= (xu −xl ) 3. Tahap terakhir adalah menghitung variabel offspring y menggunakan Persamaan (2.18) (Deb, 2000). (2.18)
y=x + ¯δ Δ max dengan
Δ max=x u−x l
2.7 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. (2014), pemodelan fitness yang dapat digunakan untuk optimasi minimalisasi dapat dilihat pada Persamaan (2.19) hingga Persamaan (2.22). fitness=fitness1+ fitness 2+fitness 3 dengan 1 ∗0,01 biaya 1 fitness 2= ∗0,01 fosfor 1 fitness 3= ∗0,01 protein
(2.19) (2.20)
fitness 1=
(2.21) (2.22)
fitness 1, fitness 2, dan fitness 3 masing-masing 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 (Hozairi et al., 2014).
27
BAB 3 METODE PENELITIAN DAN PERANCANGAN 3.1 Metode Penelitian Metode penelitian yang digunakan dalam pembuatan program aplikasi formulasi pakan ternak unggas dapat dilihat pada Gambar 3.1. Studi Literatur Pengumpulan Data
Desain dan Perancangan Perangkat Lunak
Implementasi Pengujian dan Analisa Pengambilan Kesimpulan Gambar 3.1 Diagram Alir Metode Penelitian
3.1.1 Studi Literatur Setelah menentukan objek penelitian, tahap selanjutnya adalah melakukan studi literatur, yang berhubungan dengan penelitian. Studi literatur ini dilakukan sebagai dasar teori. Dalam penelitian ini, literatur yang dikaji antara lain kajian penelitian sebelumnya tentang formulasi pakan dan penelitian yang menggunakan metode NSGA-II, dan dasar teori nutrisi pakan ternak unggas, formulasi pakan, masalah optimasi multitujuan, algoritma genetika, dan Nondominated Sorting Genetic Algorithm II (NSGA-II).
3.1.2 Pengumpulan Data Pada tahap ini, peneliti melakukan pengumpulan data yang dibutuhkan dalam pengembangan program aplikasi formulasi pakan ternak unggas. Data yang dikumpulkan adalah data kebutuhan zat makanan ternak (standar pakan), data komposisi bahan pakan ternak, dan data batasan penggunaan bahan pakan ternak.
3.1.3 Desain dan Perancangan Perangkat Lunak Setelah data dikumpulkan, tahap selanjutnya adalah mendesain dan
28
merancang program aplikasi formulasi pakan ternak unggas. Didalamnya juga mencakup pemodelan fungsi tujuan yang ingin dicapai dari formulasi pakan, ke dalam bentuk matematis.
3.1.4 Implementasi Mengimplementasi hasil perancangan menjadi program aplikasi formulasi pakan ternak unggas, menggunakan bahasa pemrograman Java dan Netbeans IDE 8.0.1.
3.1.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 efisiensi 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.
3.1.6 Pengambilan Kesimpulan Pengambilan kesimpulan dilakukan setelah semua tahapan perancangan, implementasi, dan pengujian perangkat lunak telah selesai dilakukan. Kesimpulan diambil dari hasil pengujian dan 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.
3.2 Perancangan Produk akhir dari penelitian ini adalah program aplikasi formulasi pakan ternak unggas, sehingga pada subbab perancangan akan dibagi menjadi beberapa bagian yaitu pengembangan model matematika formulasi pakan ternak unggas, pengambilan keputusan, analisis kebutuhan perangkat lunak dan perancangan perangkat lunak.
3.2.1 Pemodelan Permasalahan Model proses bisnis yang dibatasi oleh rangkaian kendala matematis mendefinisikan kendala yang mungkin ada dari suatu proses bisnis dan juga mendefinisikan kumpulan fungsi tujuan yang diinginkan. 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
29
dioptimasi, yaitu: 1. Tujuan di bidang ekonomi adalah untuk menghasilkan pakan yang murah. Bidang ekonomi merupakan fungsi tujuan pertama (f1) dan utama. Kriteria yang dioptimasi dalam bidang ekonomi adalah harga. Model matematis fungsi tujuan pertama dapat dilihat pada Persamaan (3.1) (Castrodeza, Lara, dan Peña, 2005). n
f 1=∑ c j x j
(3.1)
j=1
cj adalah harga bahan ke-j. 2. Tujuan di bidang ekologi atau lingkungan adalah untuk menghasilkan pakan yang ramah lingkungan. Kriteria yang dioptimasi dalam bidang ekologi adalah kandungan fosfor dan protein. Untuk menghasilkan pakan yang ramah lingkungan, maka kandungan fosfor dan protein perlu diminimalkan dalam lingkup kebutuhan nutrisi unggas. Secara matematis, fungsi tujuan fosfor (f2) dan protein (f3) dapat dilihat pada Persamaan (3.2) (Castrodeza, Lara, dan Peña, 2005) dan Persamaan (3.3). n
f 2 =∑ p j x j
(3.2)
j =1 n
f 3=∑ pr j x j
(3.3)
j=1
pj dan prj adalah kandungan fosfor dalam bahan ke-j dan kandungan protein dalam bahan ke-j. Daerah variasi atau 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 (3.4). n
Li ≤∑ a ij x j≤U i ,
(3.4)
i=1,... , k
j=1
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 (3.5), namun dalam proses komputasi akan menggunakan Persamaaan (3.6) untuk memastikan bahwa proporsi bahan yang dipilih untuk digunakan dalam formulasi tidak bernilai 0.
30
b j≤s j ,
(3.5)
j=1, ... , n
r j≤b j≤s j ,
(3.6)
j=1, ... , n
rj dan sj adalah batas minimal dan maksimal penggunaan bahan pakan ke-j dalam pakan. Maka, formulasi dari permasalahan multitujuan penyusunan pakan ternak unggas dalam penelitian ini adalah sebagai berikut: Min f1, Min f2, Min f3 memenuhi x ∈S n
dengan S = {x = (x1, ..., xn) ∊Rn / Li ≤∑ j=1 a ij x j≤U i , i =1,... , k ; bj ≤ sj, j = 1, ..., n). Selain memodelkan permasalahan formulasi pakan ternak unggas, pada bagian ini juga dijelaskan tentang pengaturan yang berkaitan dengan parameter genetika. Hal ini dilakukan untuk membatasi bahasan yang akan diteliti dalam penelitian ini. Pengaturan yang dimaksud adalah sebagai berikut: 1. Pemetaan kromosom menggunakan bilangan riil karena sesuai dengan topik yang dibahas dalam penelitian ini. Selain itu, pemetaan riil lebih cepat dari pada pemetaan biner karena tidak membutuhkan operasi transformasi ke bilangan desimal (Herrera, Lozano, dan Verdegay, 1998 disitasi dalam Mahmudy, 2013, p.27). 2. Indeks distribusi crossover dan indeks distribusi mutasi yang digunakan dalam penelitian ini adalah 20 (Deb et al., 2002). 3. Metode seleksi, crossover, dan mutasi yang digunakan dalam penelitian ini adalah binary tournament selection, simulated binary crossover, dan polynomial mutation (Deb et al., 2002; Saini dan Saraswat, 2012).
3.2.2 Pengambilan Keputusan Pengambilan keputusan dilakukan untuk memilih satu solusi terbaik dari himpunan solusi tak terdominasi. Metode pengambilan keputusan yang digunakan dalam penelitian ini adalah perbandingan nilai fitness yang digunakan oleh Hozairi dkk (2014). Solusi terbaik adalah solusi yang memiliki nilai fitness terbesar.
3.2.3 Perancangan Perangkat Lunak Perancangan perangkat lunak terdiri dari dua tahap, yaitu perancangan proses dan perancangan antarmuka pengguna. 1. Perancangan Proses Perancangan proses merupakan perancangan tahap atau urutan program aplikasi saat melakukan proses formulasi pakan (ransum) menggunakan NSGA-II. Alur penyelesaian permasalahan formulasi pakan ternak unggas menggunakan NSGA-II dapat dilihat pada Gambar 3.2.
31
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)
set batasan penggunaan bahan terpilih NSGA-II evaluasi fitness
keluaran: formula pakan yang paling optimal
selesai
Gambar 3.2 Diagram Alir Penyelesaian Permasalahan Formulasi Pakan Ternak Unggas Menggunakan NSGA-II Tahapan penyelesaian permasalahan formulasi pakan ternak unggas menggunakan NSGA-II secara garis besar adalah sebagai berikut. 1. Data masukan pengguna. Pada tahap ini, pengguna memasukkan data yang dibutuhkan dalam formulasi pakan ternak unggas. Data yang dimaksud adalah jumlah pakan yang akan dibuat (dalam kg), ternak unggas yang akan dibuatkan pakan, dan bahan pakan yang akan digunakan sebagai penyusun pakan. 2. Setelah pengguna memasukkan data, program aplikasi akan mendeklarasikan variabel untuk parameter genetika yang digunakan dalam NSGA-II kemudian menginisialisasi variabel tersebut. 3. Penentuan batasan penggunaan bahan pakan. Pada tahap ini data aset
32
(daftar bahan pakan, daftar ternak unggas, dan daftar batasan penggunaan bahan pakan) yang dimiliki program aplikasi akan diolah berdasarkan masukan pengguna (bahan pakan dan ternak unggas yang dipilih), sehingga batasan pengguaan bahan pakan yang dipilih dalam memformulasikan pakan untuk ternak unggas yang dipilih dapat diketahui. 4. Tahap selanjutnya adalah melakukan formulasi pakan menggunakan NSGA-II. Tahap ini akan menghasilkan beberapa solusi tak terdominasi. 5. Solusi tak terdominasi yang dihasilkan dari proses NSGA-II, akan dievaluasi nilai fitness-nya sehingga bisa didapatkan satu solusi terbaik sebagai solusi yang paling mendekati optimal. 6. Solusi yang paling mendekati optimal akan ditampilkan kepada pengguna berupa formula pakan ternak unggas yaitu proporsi masing-masing bahan yang dipilih dan kandungan nutrisi dalam pakan tersebut. 1.a. Set Batasan Penggunaan Bahan Pakan Terpilih Subproses Set Batasan Penggunaan Bahan Pakan Terpilih digunakan untuk melakukan pengirisan antara data aset (daftar bahan pakan, daftar ternak unggas, dan daftar batasan penggunaan bahan pakan) yang dimiliki program aplikasi dan masukan pengguna (bahan pakan dan ternak unggas yang dipilih), sehingga diperoleh batasan penggunaan bahan pakan yang dipilih sebagai penyusun pakan. Diagram alir subproses Set Batasan Penggunaan Bahan Pakan Terpilih dapat dilihat pada Gambar 3.3 dan Gambar 3.4. Secara garis besar, pada tahap ini, bahan pakan yang dipilih digunakan untuk mengiris data aset daftar bahan pakan kemudian data hasil irisan ini akan iiris kembali dengan ternak unggas yang dipilih pengguna sehingga diperoleh data batasan penggunaan bahan pakan yang dipilih sebagai penyusun pakan untuk ternak unggas yang dipilih pengguna. set batasan penggunaan bahan terpilih
mulai
DB adalah daftar batasan penggunaan bahan pakan DB_H adalah daftar batasan penggunaan bahan hewan terpilih DB_T adalah daftar batasan penggunaan bahan terpilih untuk hewan terpilih
Tidak
ada ternak yang dipilih
Ya i=0
2
1
Gambar 3.3 Diagram Alir Subproses Set Batasan Penggunaan Bahan Terpilih, Bagian 1
33
1
2 Tidak
Ya
i < |DB| Tidak
field ternak data ke-i dalam DB = ternak terpilih
Ya tambahkan data ke-i dalam DB ke dalam DB_H i ++ i=0
Tidak i < |DB_H|
Ya j=0
Tidak
j < jumlah bahan terpilih Ya
Tidak
field bahan data ke-i dalam DB_H = bahan terpilih ke-j
Ya tambahkan data ke-i dalam DB_H ke dalam DB_T j ++ i ++
return
Gambar 3.4 Diagram Alir Subproses Set Batasan Penggunaan Bahan Terpilih, Bagian 2
34
1.b. Proses Formulasi Pakan Menggunakan NSGA-II Tahap ini merupakan proses penyelesain permasalahan formulasi pakan ternak unggas untuk menghasilkan beberapa solusi tak terdominasi. Secara garis besar, tahap ini terdiri dari pembangkitan populasi awal dan mengevaluasi nilai fungsi tujuan dan fungsi kendalanya; reproduksi yang terdiri dari tahap seleksi induk menggunakan metode binary tournament selection, crossover menggunakan menggunakan metode simulated binary crossover, dan mutasi menggunakan metode polymonial mutation; evaluasi fungsi tujuan dan fungsi kendala offspring; penggubungan populasi induk dan offspring menjadi populasi intermediate; mengurutan populasi intermediate ke dalam front menggunakan metode fast non-dominated sort; dan seleksi individu untuk generasi selanjutnya dan pemberian nilai jarak menggunakan metode crowding distance assignment. Jika memenuhi kendisi berhenti, maka himpunan individu yang ada di dalam front pertama merupakan solusi tak terdominasi, yang pada tahap selanjutnya, solusi terbaik akan di seleksi dari himpunan individu tak terdominasi ini. Subproses NSGA-II dapat dilihat pada Gambar 3.5 hingga Gambar 3.8. NSGA-II
mulai
evaluations = 0 i=0 Tidak
i < popSize
Ya
membangkitkan individu mengevaluasi fungsi tujuan mengevaluasi fungsi kendala
evaluations = ++ menambahkan individu ke populasi i ++
1
Gambar 3.5 Diagram Alir Subproses NSGA-II, Bagian 1
35
1 Tidak
Ya
evaluations < maxEval
i=0 Tidak
i < (popSize/2)
Ya evaluations < maxEval
Tidak
Ya binary tournament selection simulated binary crossover polynomial mutation mengevaluasi fungsi tujuan mengevaluasi fungsi kendala
menambahkan offspring ke populasi offspring evaluations += 2 i ++
mengabungkan populasi offspring dengan populasi fast non-dominated sort 6
2
Gambar 3.6 Diagram Alir Subproses NSGA-II, Bagian 2
36
4
2
remain = popSize index = 0 front = front ke-index Tidak
Ya
remain > 0 dan remain ≥ |front|
crowding distance assignment
memasukkan individu dalam front ke dalam populasi generasi selanjutnya remain = remain - |front| index++ Tidak remain > 0
Ya
front = front ke-index
Tidak
Ya
remain > 0
crowding distance assignment
mengurut individu dalam front berdasarkan crowding distance-nya secara descending 5
3
Gambar 3.7 Diagram Alir Subproses NSGA-II, Bagian 3
37
6
5
3
4
k=0 Tidak k < remain
Ya
memasukkan individu ke-k dalam front ke dalam populasi k++ remain = 0 individu tak terdominasi = individu dalam front pertama populasi return
Gambar 3.8 Diagram Alir Subproses NSGA-II, Bagian 4 1.c. Evaluasi Fitness Untuk mencari solusi terbaik dari beberapa solusi tak terdominasi, setiap solusi tak terdominasi dievaluasi dengan memberikan nilai fitness menggunakan Persamaan (2.19) hingga Persamaaan (2.22). Diagram alir subproses Evaluasi Fitness dapat dilihat pada Gambar 3.9 dan Gambar 3.10. mulai
evaluasi fitness
f1i adalah fungsi tujuan ke-1 dari solutionSet ke-i, f2i adalah fungsi tujuan ke-2 dari solutionSet ke-i, f3i adalah fungsi tujuan ke-3 dari solutionSet ke-i
i=0 Tidak
i < solutionSet.size
3
Ya 1
Gambar 3.9 Diagram Alir Subproses Evaluasi Fitness, Bagian 1
38
2
3
1
2
fitness = 0 fitness1 = 0; fitness2 = 0; fitness3 = 0 fitness1 += (1 / f1i * 0.01) fitness2 += (1 / f2i * 0.01) fitness3 += (1 / f3i * 0.01) fitness += (fitness1 + fitness2 + fitness3) fitness solutionSet ke-i = fitness
i ++
mengurut solutionSet secara descending bestSolution = solutionSet ke-0 return
Gambar 3.10 Diagram Alir Subproses Evaluasi Fitness, Bagian 2
1.d. Membangkitkan Individu Individu dibangkitkan berdasarkan batasan yang ada pada sesi Pemodelan Permasalahan. Secara garis besar, subproses Membangkitkan Individu terdiri dari pembangkitan variabel keputusan secara acak berdasarkan batasan penggunaan bahan pakan, sebanyak bahan pakan yang dipilih untuk digunakan dalam formula pakan dan pemeriksaan pemenuhan terhadap batasan yang ada. Setiap membangkitkan sebuah variabel keputusan, variabel tersebut diperiksa untuk mengetahui pemenuhan terhadap fungsi kendala pemenuhan nutrisi. Jika variabel keputusan memenuhi kendala, maka variabel keputusan tersebut dijadikan indivudu. Tahapan subproses Membangkitkan Individu dapat dilihat pada Gambar 3.11.
39
membangkitkan individu
mulai
numbVars adalah jumlah bahan terpilih variable[] = array[numbVars] confirmed = false Tidak
Ya
!confirmed
i=0 Tidak
i < numbVars
Ya
variable[i] = nilai riil acak antara r dan s
i++ confirmed = konfirmasi pemenuhan nutrisi
jadikan variable[] sebagai kromosom individu return
Gambar 3.11 Diagram Alir Subproses Membangkitkan Individu 1.e. Konfirmasi Pemenuhan Nutrisi Subproses Konfirmasi Pemenuhan Nutrisi digunakan setiap setelah membangkitkan sebuah individu. Subproses ini berfungsi untuk memastikan bahwa individu yang dibangkitkan adalah individu yang feasible. Tahapan umum yang ada dalam subproses Konfirmasi Pemenuhan Nutrisi adalah menghitung total variabel/proporsi bahan suatu solusi dan menghitung kandungan total setiap zat makanan suatu solusi. Jika kandungan total setiap zat makanan
40
memenuhi batasan yang ada pada sesi Pemodelan Permasalahan, maka individu dinyatakan terkonfirmasi. Tahapan dalam subproses Konfirmasi Pemenuhan Nutrisi dapat dilihat pada Gambar 3.12 dan Gambar 3.13. konfirmasi pemenuhan nutrisi
mulai
b_min-i adalah keb. minimal zat makanan ke-i, b_maks-i adalah keb. maksimal zat makanan ke-i, ps-j adalah alel ke-j dalam individu, n adalah panjang kromosom, tot_p adalah total proporsi elel, k adalah jumlah zat makanan dalam bahan, ns adalah jumlah keb. zat makanan yang terpenuhi
ns = 0 tot_p = 0 j=0 Tidak
j
Ya
tot_p = tot_p + ps-j
kt[] = menghitung total kandungan zat makanan
j++
i=0 Tidak
Ya
i
b_min-i ≤ kt[i] ≤ b_maks-i
Ya
ns++ 1
i++ Gambar 3.12 Diagram Alir Subproses Konfirmasi Pemenuhan Nutrisi, Bagian 1
41
1 Tidak
Ya
ns = k
nutrisi terpenuhi = false
nutrisi terpenuhi = true
return
Gambar 3.13 Diagram Alir Subproses Konfirmasi Pemenuhan Nutrisi, Bagian 2 1.f. Menghitung Total Kandungan Zat Makanan Subproses Menghitung Total Kandungan Zat Makanan merupakan bagian dari subproses Konfirmasi Pemenuhan Nutrisi. Subproses ini digunakan untuk menghitung kandungan total setiap zat makanan suatu individu. Proses utama dalam subproses Menghitung Total Kandungan Zat Makanan adalah menghitung kandungan total setiap zat makanan menggunakan Persamaaan (2.12). Tahapan penghitungan kandungan total setiap zat makanan dapat dilihat pada Gambar 3.14 dan Gambar 3.15. menghitung total kandungan zat makanan
mulai
kt[] adalah kandungan total setiap zat makanan dalam pakan, k adalah jumlah zat makanan,
variable[] adalah proporsi bahan dalam pakan, numbVars adalah jumlah bahan terpilih, tot_p adalah total proporsi bahan dalam pakan, aij adalah kandungan zat makanan ke-i dalam bahan ke-j
i=0 Tidak
i
Ya
KN = 0 3
1
Gambar 3.14 Diagram Alir Subproses Menghitung Total Kandungan Zat Makanan, Bagian 1
42
2
3
1 Tidak
2
j < numbVars Ya
KN += ((variable[j] / tot_p) * aij) j++
kt[i] = KN i++
return
Gambar 3.15 Diagram Alir Subproses Menghitung Total Kandungan Zat Makanan, Bagian 2 1.g. Mengevaluasi Fungsi Tujuan Subproses Mengevaluasi Fungsi Tujuan berfungsi untuk menghitung nilai fungsi tujuan kesatu, hingga fungsi tujuan ketiga dari setiap individu. Evaluasi fungsi tujuan dilakukan dengan menggunakan Persamaan (3.1), Persamaan (3.2), dan Persamaan (3.3). Tahapan evaluasi fungsi tujuan dapat dilihat pada Gambar 3.16, Gambar 3.17, dan Gambar 3.18. mengevaluasi fungsi tujuan
mulai fx[] adalah nilai fungsi tujuan, variable[] adalah variabel keputusan, n adalah jumlah variabel keputusan, tot_p adalah total proporsi bahan dalam pakan
fx[] = array[3] variable[] = array[n] 1
Gambar 3.16 Diagram Alir Subproses Mengevaluasi Fungsi Tujuan, Bagian 1
43
1 n
tot_p = ∑ variable [i ] i=0
fx[0] = 0 i=0 Tidak
i
fx[0] += (harga bahan ke-i * (variable[i] / tot_p)) i++ fx[1] = 0 i=0 Tidak
i
fx[1] += (kandungan fosfor dalam bahan ke-i * (variable[i] / tot_p)) i++ fx[2] = 0 i=0 Tidak
i
4
2
3
Gambar 3.17 Diagram Alir Subproses Mengevaluasi Fungsi Tujuan, Bagian 2
44
4
2
3
fx[2] += (kandungan protein dalam bahan ke-i * (variable[i] / tot_p)) i++
nilai fungsi tujuan ke-1 dari individu = fx[0] nilai fungsi tujuan ke-2 dari individu = fx[1] nilai fungsi tujuan ke-3 dari individu = fx[1] return
Gambar 3.18 Diagram Alir Subproses Mengevaluasi Fungsi Tujuan, Bagian 3 1.h. Mengevaluasi Fungsi Kendala Subproses Mengevaluasi Fungsi Kendala digunakan untuk menghitung nilai penalti suatu individu. Evaluasi fungsi kendala dilakukan dengan menggunakan Persamaan (2.3). Tahapan evaluasi fungsi kendala dapat dilihat pada Gambar 3.19, Gambar 3.20, dan Gambar 3.21. mengevaluasi fungsi kendala
mulai constraint[] adalah nilai fungsi kendala, variable[] adalah variabel keputusan, n adalah jumlah variabel keputusan, k adalah jumlah zat makanan constraint[] = array[n+k]
variable[] = array[n] 1
Gambar 3.19 Diagram Alir Subproses Mengevaluasi Fungsi Kendala, Bagian 1
45
1
cc = 0
c=0 Tidak
c
constraint[c] = pemenuhan zat makanan cc++
c++ c=0 Tidak
c
constraint[cc] = pemenuhan bahan
cc++ c++
total = 0 number = 0 i=0
4
Tidak
Ya
i < (n+k)
2
3
Gambar 3.20 Diagram Alir Subproses Mengevaluasi Fungsi Kendala, Bagian 2
46
4
2 Tidak
3
constraint[i] < 0 Ya
total += constraint[i] number++
i++
overallConstraintViolation dari individu = total numberOfViolatedConstraint dari individu = number return
Gambar 3.21 Diagram Alir Subproses Mengevaluasi Fungsi Kendala, Bagian 3 1.i. Pemenuhan Zat Makanan dan Pemenuhan Bahan Pemenuhan Zat Makanan dan Pemenuhan Bahan merupakan subproses yang ada dalam subproses Mengevaluasi Fungsi Kendala. Subproses Pemenuhan Zat Makanan berfungsi untuk menghitung penalti dari sisi kandungan zat makanan individu yang sedang dievaluasi. Jika kandungan zat makanan tidak memenuhi batasan kebutuhan nutrisi ternak unggas yang dipilih, maka penalti dari pemenuhan zat makanan adalah selisih antara kandungan zat makanan dengan kebutuhan nutrisi ternak yang dipilih. Subproses Pemenuhan Bahan berfungsi untuk menghitung penalti dari sisi batasan penggunaan bahan pakan individu yang sedang dievaluasi. Jika proporsi bahan pakan tidak memenuhi batasan penggunaan bahan pakan, maka penalti dari pemenuhan bahan adalah selisih antara proporsi bahan dengan batasan penggunaan bahan pakan untuk ternak yang dipilih. Tahapan penghitungan penalti dari sisi kandungan zat makanan dapat dilihat pada Gambar 3.22. Sedangkan tahapan pengitungan penalti dari sisi batasan pengguaan bahan pakan dapat dilihat pada Gambar 3.23.
47
pemenuhan zat makanan
mulai
variable[] adalah variabel keputusan, nut_c adalah zat makanan yang nilai pemenuhannya ingin diketahui, tot_p adalah total proporsi bahan dalam pakan, acj adalah kandungan nut_c dalam bahan ke-j, n adalah jumlah bahan terpilih, keutuhanMin adalah keb. minimal zat makanan nut_c, keutuhanMaks adalah keb. maksimal zat makanan nut_c
pemenuhanNutrien = 0 j=0 Tidak
j
j++
Tidak
pemenuhanNutrien ≤ kebutuhanMin
Ya
pemenuhamNutrien −= kebutuhanMin
Tidak
pemenuhanNutrien ≥ kebutuhanMin
Ya
pemenuhanNutrien = kebutuhanMaks − pemenuhanNutrien
return
Gambar 3.22 Diagram Alir Subproses Pemenuhan Zat Makanan
48
mulai
pemenuhan bahan
proporsiBahan adalah proporsi bahan yang nilai pemenuhannya ingin diketahui, j adalah indeks bahan yang nilai pemenuhannya ingin diketahui, r adalah batas minimal penggunaan bahan, s adalah maksimal penggunaan bahan pemenuhanBahan = proporsiBahan Tidak
Ya pemenuhanBahan <= r
pemenuhanBahan −= r
Tidak
Ya
pemenuhanBahan >= s
pemenuhanBahan = s − pemenuhanBahan
return
Gambar 3.23 Diagram Alir Subproses Pemenuhan Bahan 1.j. Binary Tournament Selection Subproses Binary Tournament Selection digunakan untuk menyeleksi induk yang akan digunakan dalam proses crossover dan proses mutasi. Individu yang akan terpilih sebagai induk diantara dua individu adalah individu yang mendominasi induvidu lainnya. Jika tidak saling mendominasi, maka individu yang terpilih sebagai induk adalah individu yang memiliki crowding distance lebih besar. Jika crowding distance-nya sama, maka pilih satu individu secara acak diantara dua individu untuk dijadikan induk. Tahapan penyeleksian induk dapat dilihat pada Gambar 3.24.
49
binary tournament selection
mulai
solution1 adalah individu yang dipilih secara acak dari populasi, solution2 adalah individu yang dipilih secara acak dari populasi, parent adalah individu yang terpilih sebagai induk, cd adalah nilai crowding distance
Tidak solution1 ≼ solution2
Tidak
Ya
parent = solution1
solution2 ≼ solution1
Ya
parent = solution2
Tidak
Tidak
Ya
cd.solution1 > cd.solution2
cd.solution2 > cd.solution1
parent = solution1
Ya
parent = solution2
rand = bilangan acak antara 0 dan 1 Tidak
Ya rand < 0,5
parent = solution1
parent = solution2
return
Gambar 3.24 Diagram Alir Subproses Binary Tournament Selection
50
1.k. Simulated Binary Crossover Dalam subproses Simulated Binary Crossover, dua induk akan di-crossover variabel demi variabel. Subproses Simulated Binary Crossover menghasilkan dua offspring dalam satu kali proses crossover. Secara garis besar, simulated binary crossover dapat dilihat pada sesi Operator Genetika. Tahapan subproses Simulated Binary Crossover dapat dilihat pada Gambar 3.25, Gambar 3.26, Gambar 3.27, dan Gambar 3.28. simulated binary crossover
mulai
pc adalah probabilitas crossover, nc adalah indeks distribusi crossover, parent1 dan parent2 adalah induk yang akan diterapkan crossover, offSpring[] adalah anak hasil crossover, ESP adalah nilai minimum yang diijinkan antar bilangan riil, n adalah jumlah variabel keputusan ESP = 1.0e-14 offSpring[] = array[2] offSpring[0] = parent1 offSpring[1] = parent2 r1 = bilangan acak antara 0 dan 1 r2 = bilangan acak antara 0 dan 1 r3 = bilangan acak antara 0 dan 1 r4 = bilangan acak antara 0 dan 1
Tidak
r1 ≤ pc Ya i=0
8
1
Gambar 3.25 Diagram Alir Subproses Simulated Binary Crossover, Bagian 1
51
1 Tidak
i
Ya x1 = parent1.variable[i] x2 = parent2.variable[i]
Tidak
r2 ≤ 0,5
Ya Tidak
Ya
(x1 − x2) > ESP
Tidak
x1 < x2
Ya
y1 = x1
y1 = x1
y2 = x2
y2 = x2
xL = batas bawah parent1.variable[i] xU = batas atas parent1.variable[i]
u = bilangan acak antara 0 dan 1 beta = 1 + (2 / (y2 − y1) * (y1 − xL))
alpha = 2 − (beta ^ (nc + 1)) Tidak
u ≤ (1 / alpha)
betaq = (1 / (2 − alpha * u)) ^ (1 / (nc + 1)) 7
5
4
Ya betaq = (alpha * u) ^ (1 / (nc + 1))
2
6
Gambar 3.26 Diagram Alir Subproses Simulated Binary Crossover, Bagian 2 52
2
c1 = 0,5 * ((y1 + y2) − betaq * (y2 − y1))
beta = 1 + (2 * xU − y2) / (y2 − y1) alpha = 2 − (beta ^ (nc + 1)) Tidak
Ya
u ≤ (1 / alpha)
betaq = (1 / (2 − alpha * u)) ^ (1 / (nc + 1))
betaq = (alpha * u) ^ (1 / (nc + 1))
c2 = 0,5 * ((y1 + y2) + betaq * (y2 − y1))
Tidak
c1 < xL
Ya c1 = xL
Tidak
c2 < xL
Ya c2 = xL
Tidak
c1 > xU
Ya c1 = xU
Tidak
c2 > xU
Ya c2 = xU
offSpring[0].variable[i] = c1 3
Gambar 3.27 Diagram Alir Subproses Simulated Binary Crossover, Bagian 3
53
8
7
5
4
6
3 offSpring[0].variable[i] = c2
offSpring[0].variable[i] = x1 offSpring[1].variable[i] = x2
offSpring[0].variable[i] = x2 offSpring[1].variable[i] = x1 i++ return
Gambar 3.28 Diagram Alir Subproses Simulated Binary Crossover, Bagian 4 1.l. Polynomial Mutation Dalam subproses Polynomial Mutation, offspring hasil dari operator simulated binary crossover akan dimutasi, variabel demi variabel menggunakan operator polynomial mutation. Subproses Polynomial Mutation menghasilkan satu offspring dalam satu kali proses mutasi. Secara garis besar, polymonial mutation dapat dilihat pada sesi Operator Genetika. Tahapan subproses Polynomial Mutation dapat dilihat pada Gambar 3.29, Gambar 3.30, dan Gambar 3.31. polynomial mutation
mulai
pm adalah probabilitas mutasi, nm adalah indeks distribusi mutasi, eta_m adalah nilai default indeks distribusi mutasi, solution adalah induk yang akan dimutasi, x adalah solusi hasil mutasi, n adalah jumlah variabel keputusan
1
Gambar 3.29 Diagram Alir Subproses Polynomial Mutation, Bagian 1
54
1 x = solution
i=0 Tidak
Ya
i
r1 = bilangan acak antara 0 dan 1 Tidak
Ya
r1 ≤ pm
y = x.variable[i]
xL = batas bawah x.variable[i] xU = batas atas x.variable[i] delta1 = (y − xL) / (xU − xL) delta2 = (xU − y) / (xU − xL) u = bilangan acak antara 0 dan 1 mut_pow = 1 / (eta_m + 1) Ya
Tidak
5
u ≤ 0,5
xy = 1 − delta2
xy = 1 − delta1
val = 2 * (1 − u) + 2 * (u − 0,5 ) * (xy ^ (nm + 1))
val = 2 * u + (1 − 2 * u) *
deltaq = 1 − (val − mut_pow)
deltaq = (val − mut_pow) − 1
4
(xy ^ (nm + 1))
2
Gambar 3.30 Diagram Alir Subproses Polynomial Mutation, Bagian 2
55
3
5
4
3
2
y = y + deltaq * (xU − xL)
Tidak
y > xL
Ya y = xL
Tidak
y > xU
Ya y = xU
x.variable[i] = y
i++
return
Gambar 3.31 Diagram Alir Subproses Polynomial Mutation, Bagian 3 1.m. Fast Non-dominated Sort Subproses Fast Non-dominated Sort digunakan untuk mengurut individu dalam populasi ke dalam front-nya. Secara garis besar, subproses Fast Nondominated Sort mengurut individu menggunakan konsep dominasi. Individu yang tidak didominasi oleh individu lainnya berada pada front pertama. Untuk mencari anggota front berikutnya, maka dilakukan pengulangan dan mengurangi np dengan 1; individu yang memiliki np = 0 akan dijadikan anggota front selanjutnya. Uraian lengkap tentang fast non-dominated-sort dapat dilihat pada sesi Nondominated Sorting Genetic Algorithm II. Tahapan subproses Fast Non-dominated Sort dapat dilihat pada Gambar 3.32, Gambar 3.33, Gambar 3.34, dan Gambar 3.35. 1.n. Pembanding Penalti Subproses Pembanding Penalti digunakan untuk membandingkan penalti antara dua individu. Jika individu ke-1 memiliki penalti yang lebih kecil dari pada individu ke-2 (karena dinotasikan dengan bilangan negatif, maka secara komputasi memiliki penalti yang lebih besar), maka subproses Pembanding Penalti akan mengembalikan nilai -1 untuk menyatakan bahwa individu ke-1
56
mendominasi individu ke-2. Tahapan subproses Pembanding Penalti dapat dilihat pada Gambar 3.36 dan Gambar 3.37. fast non-dominated sort
mulai
solutionSet adalah populasi/himpunan individu/solusi, dominateMe[i] berisi jumlah solusi yang mendominasi solusi ke-i, iDominate[k][] berisi daftar indeks solusi yang didominasi solusi ke-k, front[i][] berisi daftar indeks solusi yang ada di front ke-i, n adalah jumlah solusi dalam solutionSet, rank adalah peringkat suatu solusi
p=0 Ya
Tidak
p
iDominate[p] = Ø dominateMe[p] = 0 p ++ p=0 Ya
Tidak p < (n − 1)
q=p+1 Tidak
Ya q
flagDominate = pembanding penalti
Tidak flagDominate = 0
5
4
2
Ya
1
Gambar 3.32 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 1
57
3
5
2
4
1
3
flagDominate = pembanding dominasi
Tidak flagDominate = -1
Ya
tambahkan q ke iDominate[p]
Ya
Tidak flagDominate = 1
dominateMe[q]++
tambahkan p ke iDominate[q] dominateMe[p]++
p ++
p=0 Tidak
Ya p
Tidak
Ya dominateMe[p] = 0
tambahkan p ke front[0] rank.p = 0
p ++ i=0
8
Tidak
Ya
front[i] tidak kosong
6
7
Gambar 3.33 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 2
58
7
6
p=0 Tidak p < front[i].size
Ya ip adalah indeks solusi ke-p dalam front[i]
q=0 Tidak
Ya q < iDominate[ip].size
iq adalah indeks solusi ke-q yang didominasi solusi ip
dominateMe[iq] −= 1
Tidak
Ya dominateMe[iq] = 0
tambahkan iq ke front[i + 1] rank.iq = i +1
q ++ p ++
i++
Gambar 3.34 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 3
59
8 f=0 Tidak
Ya
f
|frontSet[f]| = front[f].size fm = 0 Ya
Tidak
fm < front[f].size
tambahkan solusi ke-fm dalam front[f] ke dalam frontSet[f] fm++ f++
return
Gambar 3.35 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 4
mulai
pembanding penalti
overall1 adalah nilai penalti solusi1, overall2 adalah nilai penalti solusi2
Tidak
overall1 < 0 dan overall2 < 0
2
Ya
1
Gambar 3.36 Diagram Alir Subproses Pembanding Penalti, Bagian 1
60
2
1
Tidak Tidak
Ya overall2 < overall1
flagDominate = 0
Tidak
overall1 < 0 dan overall2 = 0
Ya
overall1 < overall2
flagDominate = 1
flagDominate = -1
Ya
flagDominate = 1
Tidak
overall1 = 0 dan overall2 < 0
flagDominate = 0
Ya
flagDominate = -1
return
Gambar 3.37 Diagram Alir Subproses Pembanding Penalti, Bagian 2 1.o. Pembanding Dominasi Subproses Pembanding Dominasi digunakan untuk membandingkan dominansi antara dua individu. Subproses Pembanding Dominasi juga memanfaatkan fungsi dari subproses Pembanding Penalti untuk menentukan dominansi antara dua individu. Jika kedua individu tidak memiliki penalti atau jika kedua individu memiliki penalti yang sama, maka pengeperiksaan dominansi dilanjutkan dengan menerapkan aturan dominasi yang ada pada sesi 2.4.1 Dominasi. Tahapan subproses Pembanding Dominasi dapat dilihat pada Gambar 3.38.
61
pembanding dominasi
mulai
solution1 adalah solusi pertama yang ingin dibandingkan, solution2 adalah solusi kedua yang ingin dibandingkan, Fi adalah fungsi tujuan ke-i, M adalah jumlah fungsi tujuan fLess = 0, fEqual = 0, fMore = 0
i=0 Tidak
Ya
i<M
value1 = solution1.fi
value2 = solution2.fi
Tidak value1 < value2
Tidak
Ya
value1 > value2
Ya
fLess += 1
fMore += 1
fequal += 1
i ++
Tidak
Tidak
fMore = 0 & fEqual !=M
fLess = 0 & fEqual !=M
Ya
Ya
dominate = -1
dominate = 1
dominate = 0
return
Gambar 3.38 Diagram Alir Subproses Pembanding Dominasi
62
1.p. Crowding Distance Assignment Subproses Crowding Distance Assignment digunakan untuk memberikan nilai jarak antar individu dalam satu front. Penghitungan jarak antar individu ini menggunakan rumus pada Persamaan (2.12). Tahapan subproses Crowding Distance Assignment dapat dilihat pada Gambar 3.39 dan Gambar 3.40. crowding distance assignment
mulai
solutionSet adalah himpunan individu/solusi, front adalah himpunan solusi dalam front, size adalah jumlah solusi dalam solutionSet, cd-i adalah nilai crowding distance solusi ke-i, M adalah jumlah fungsi tujuan, obij adalah nilai fungsi tujuan ke-i dari solusi ke-j
front = solutionSet l = size Tidak
Ya l=0
Tidak
Ya l=1
Tidak
cd-0 = ∞
Ya l=2 cd-0 = ∞
cd-1 = ∞
cd semua individu = 0
2
1
Gambar 3.39 Diagram Alir Subproses Crowding Distance Assignment, Bagian 1
63
1
2
i=0 Ya
Tidak i<M
mengurut individu dalam front berdasarkan fungsi tujuan ke-i secara ascending objMin = nilai fungsi tujuan ke-i dari individu ke-0 objMax = nilai fungsi tujuan ke-i dari individu ke-(l−1) cd-0 = ∞ cd-(l−1) = ∞
j=1 Tidak
Ya j < (l−2) distance = obi(j + 1) − obi(j − 1) distance /= (objMax − objMin)
distance += cd-j
cd-j = distance
j++ i++
return
Gambar 3.40 Diagram Alir Subproses Crowding Distance Assignment, Bagian 2
64
2. Perancangan Antarmuka Pengguna Perancangan antarmuka pengguna bertujuan untuk mewakili gambaran antarmuka dari program aplikasi yang akan dikembangkan. Rancangan antarmuka ini disajikan dalam bentuk mock up. Program aplikasi formulasi pakan ternak unggas memiliki satu antarmuka utama dan beberapa antarmuka pendukung. 2.a. Perancangan Antarmuka FanT Antarmuka FanT merupakan antarmuka utama pada program aplikasi formulasi pakan ternak unggas. Mock up antarmuka FanT dapat dilihat pada Gambar 3.41.
Gambar 3.41 Mock Up Antarmuka Utama (FanT) Antarmuka FanT menjadi induk bagi semua antarmuka yang ada di dalam program aplikasi formulasi pakan ternak unggas. Melalui antarmuka FanT, pengguna bisa mengakses antarmuka pendukung seperti antarmuka Gudang Bahan Pakan, antarmuka Kandang Ternak, dan antarmuka pendukung lainnya. Keterangan mock up antarmuka FanT adalah sebagai berikut: 1. Menu bar (MB). 2. Tool bar (TB). 3. Kotak isian tanggal pembuatan formulasi pakan unggas (T). 4. Kotak pemilihan ternak unggas sasaran (U). 5. Tombol TU untuk menambah data ternak unggas ke dalam daftar data ternak. 6. Kotak isian P untuk menentukan jumlah ransum yang akan dibuat. 7. TH adalah babbed panel untuk menampilkan hasil formulasi seperti, bahan pakan yang dipilih untuk digunakan dalam formulasi, zat makanan dan porsinya yang dibutuhkan oleh ternak unggas sasaran formulasi pakan, dan hasil formulasi.
65
2.b. Perancangan Antarmuka Gudang Bahan Pakan Antarmuka Gudang Bahan Pakan merupakan antarmuka yang digunakan untuk mengelola data bahan pakan yang ada dalam program aplikasi formulasi pakan ternak unggas. Pengelolaan meliputi penambahan, pengubahan, dan penghapusan data bahan pakan dan zat makanan yang dikandung dalam bahan pakan. Mock up antarmuka Gudang Bahan Pakan dapat dilihat pada Gambar 3.42.
Gambar 3.42 Mock Up Antarmuka Gudang Bahan Pakan Keterangan mock up antarmuka Gudang Bahan Pakan adalah sebagai berikut: 1. Menu bar (MB). 2. Tool bar (TB). 3. Tabel TBL_B berisi daftar data bahan pakan. 4. Tabel TBL_Kn berisi informasi kandungan zat makanan dari bahan pakan yang disorot pada TBL_B. 5. Kotak pencarian SB untuk melakukan pencarian bahan pakan (dalam skripsi ini, SB tidak difungsikan). 6. Kotak H dan R untuk menampilkan harga bahan pakan dan referensi (sumber informasi data) bahan pakan yang disorot pada TBL_B. 2.c. Perancangan Antarmuka Batasan Penggunaan Bahan Antarmuka Batasan Penggunaan Bahan merupakan antarmuka yang digunakan untuk mengelola data batasan penggunaan bahan pakan yang ada dalam program aplikasi formulasi pakan ternak unggas. Pengelolaan meliputi penambahan, pengubahan, dan penghapusan data batasan penggunaan bahan pakan. Mock up antarmuka Batasan Penggunaan Bahan dapat dilihat pada Gambar 3.43. Keterangan mock up antarmuka Batasan Penggunaan Bahan adalah sebagai berikut: 1. Menu bar (MB). 2. Tool bar (TB).
66
3. Tabel TBL_BP berisi daftar data batasan penggunaan bahan pakan.
Gambar 3.43 Mock Up Antarmuka Batasan Penggunaan Bahan 2.d. Perancangan Antarmuka Kandang Ternak Antarmuka Kandang Ternak merupakan antarmuka yang digunakan untuk mengelola data ternak yang ada dalam program aplikasi formulasi pakan ternak unggas. Pengelolaan meliputi penambahan, pengubahan, dan penghapusan data ternak. Mock up antarmuka Kandang Ternak dapat dilihat pada Gambar 3.44.
Gambar 3.44 Mock Up Antarmuka Kandang Ternak Keterangan mock up antarmuka Kandang Ternak adalah sebagai berikut: 1. Menu bar (MB). 2. Tool bar (TB). 3. Tabel TBL_T berisi daftar data ternak. 4. Tabel TBL_Kb berisi informasi zat makanan dan porsinya yang dibutuhan oleh ternak unggas, yang disorot pada TBL_T. 5. Kotak pencarian SB untuk melakukan pencarian ternak (dalam skripsi ini, SB tidak difungsikan). 6. Kotak R untuk menampilkan referensi (sumber informasi data) ternak yang disorot pada TBL_T.
67
3.2.4 Perhitungan Manual Perhitungan manual berfungsi untuk memberikan gambaran proses formulasi pakan ternak unggas menggunakan NSGA-II. 1. Penentuan Parameter Formulasi Pakan Ternak Unggas dan Parameter Algoritma Genetika Pada tahap ini dilakukan penentuan nilai parameter yang digunakan formulasi pakan ternak unggas dan algoritma genetika. Dalam perhitungan manual ini, data formulasi pakan ternak unggas yang digunakan, adalah sebagai berikut: • Ransum yang ingin dibuat oleh peternak adalah sebanyak 100 kg untuk ayam petelur (layer) fase starter (umur 0-8 minggu). Berdasarkan Lampiran B dan Lampiran C, batasan penggunaan bahan pakan untuk ayam petelur fase starter dan kebutuhan zat makanannya dapat dilihat pada Tabel 3.2 dan Tabel 3.3. • Bahan pakan yang akan digunakan dalam formulasi adalah sebanyak 10 bahan, 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). Berdasarkan Lampiran A, komposisi zat makanan bahan pakan yang akan digunakan dalam ransum dapat dilihat pada Tabel 3.1. Nilai masing-masing parameter algoritma genetika yang akan digunakan adalah sebagai berikut: • ukuran populasi (popSize) = 10 • probabilitas crossover (pc) = 0,9 • indeks distribusi crossover (nc) = 20 • probabilitas mutasi (pm) = 1/n = 1/10, dengan n adalah jumlah bahan yang digunakan (Deb et al., 2002) • indeks distribusi mutasi (nm)= 20 • jumlah generasi = 2 Tabel 3.1 Kandungan Zat Makanan Bahan Pakan Zat Makanan Bahan Harga
EM PK LK SK Ca P Lis Met (Kkal/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg)
1
1000
2860
10,2
7
3
0,04
0,16
0,71
0,27
2
1500
2100
41
4,8
12
0,18
0,33
1,6
0,6
3
3700
2200
42
1,9
17
0,2
0,2
1,8
0,5
4
4000
2240
42
0,9
6
0,29
0,65
2,9
0,65
68
Tabel 3.1 Kandungan Zat Makanan Bahan Pakan (Lanjutan) Zat Makanan Bahan Harga
EM PK LK SK Ca P Lis Met (Kkal/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg)
5
2100
2200
18,5
2,5
15
0,2
0,57
0,64
0,29
6
2800
3370
8,6
3,9
2
0,02
0,1
0,2
0,18
7
250
0
0
0
0
37
0
0
0
8
800
3390
8,9
4
1
0,03
0,4
0
0,27
9
8000
8600
0
100
0
0
0
0
0
10
5000
2650
58
9
1
5,5
2,8
5
1,8
Tabel 3.2 Batas Penggunaan Bahan Pakan untuk Ayam Petelur Starter Batas Penggunaan (%)
Bahan 1
2
3
4
5
6
7
8
9
10
Minimal (r)
0,1
0,1
0,1
0,1
0,1
0,1
0,1
0,1
0,1
0,1
Maksimal (s)
10
5
5
30
10
60
2
40
5
7
Ketika bahan pakan dipilih untuk digunakan dalam formulasi pakan, proporsi bahan tersebut tidak boleh bernilai 0. Sehingga dalam pengembangan program aplikasi ini, penggunaan minimal bahan pakan yang digunakan adalah 0,1. Tabel 3.3 Kebutuhan Nutrisi Ayam Petelur Starter Zat Makanan Kebutuhan
EM PK LK SK Ca P Lis Met (Kkal/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg)
Minimal (L)
2800
19
4
4
0,9
0,6
0,85
0,38
Maksimak (U)
-
-
6
5
1,1
0,8
-
-
2. Pembangkitan Populasi Awal Pada tahap ini, populasi awal (P0) dibangkitkan secara acak berdasarkan batasan/kendala yang harus dipenuhi. Populasi awal dapat dilihat pada Tabel 3.4. Unit/satuan yang digunakan dalam penyandian kromosom (proporsi bahan pakan) adalah persen.
69
Tabel 3.4 Populasi Awal Individu (S)
Kromosom 8
9
10
Total
1
2
3
4
5
6
7
1
6,3
3,2
1,9
28,9
1,5
1,8
0,9
28
1,5
5,1
79,1
2
3,6
0,9
1,1
11,7
7,7
7,2
0,8
27,6
0,8
6,5
67,9
3
2,1
2
1,8
23
7,5
5,1
0,9
31,1
2,1
6,3
81,9
4
5,5
1,3
4,4
13
3,1
9,1
0,8
24,4
0,6
6,5
68,7
5
0,9
2,9
1,8
27,8
1,9
17,2
0,9
13,4
1,5
6,1
74,4
6
4,3
4
2,9
15,1
8
2,4
1,2
38,7
0,4
6,4
83,4
7
2,7
3,2
1,9
26,1
8,3
4,3
1,1
24
2,1
6,5
80,2
8
8,8
4,1
4,2
0,6
2
0,9
0,4
24
0,2
5,7
50,9
9
2,7
3
0,6
21,9
8,8
6,4
1,1
37,4
2,3
7
91,2
10
4,1
0,4
2,6
12,1
6,2
1,8
0,5
19,7
0,7
6,4
54,5
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 ke-1 (s1 = 10). Batas penggunaan bahan dapat dilihat pada Tabel 3.2. 3. 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.2). Nilai bjv dan total bjv dapat dilihat pada Tabel 3.4. Berikut ini contoh evaluasi fungsi tujuan individu ke-1. Nilai variabel keputusan xjv dihitung hingga variabel ke-10. 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 (3.1), (3.2), dan (3.3). Berikut ini contoh perhitungan nilai fungsi tujuan biaya, kandungan forsor, dan kandungan protein pada individu ke-1 (f1,1, f2,1, dan f3,1). 70
f1,1 = (c1 * x1,1) + ... + (c10 * x10,1) f1,1 = (1000 * 0,07965) + ... + (5000 * 0,06448) f1,1 = 2554,2984 f2,1 = (p1 * x1,1) + ... + (p10 * x10,1) f2,1 = (0,16 * 0,07965) + ... + (2,8 * 0,06448) f2,1 = 0,6036 f3,1 = (pr1 * x1,1) + ... + (pr10 * x10,1) f3,1 = (10,2 * 0,07965) + ... + (58 * 0,06448) f3,1 = 26,2616 Tahap selanjutnya adalah menghitung nilai kendala individu ke-v (pnv) menggunakan Persamaan (2.3). Nilai kendala adalah 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 (2.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). 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 yang ada pada Tabel 3.3. jika ktiv < Liv, maka pmiv = ktiv – Liv jika ktiv > Uiv, maka pmiv = Uiv – ktiv jika Liv ≤ ktiv ≤ Uiv, maka pmiv = 0 Liv ≤ ktiv ≤ Uiv L1,1 ≤ kt1,1 ≤ U1,1 2800 ≤ 2836,3464 ≤ ∞ maka pm1,1 = 0 Nilai pemenuhan nutrisi dihitung untuk setiap nutrisi yang diperhitungkan dalam formulasi pakan sehingga,
71
pnv = pmiv + ... + pmkv pn1 = pm1,1 + ... + pm10,1 pn1 = 0 + ... + 0 pn1 = 0 Hasil penghitungan nilai fungsi tujuan dan nilai kendala masing-masing individu dapat dilihat pada Tabel 3.5. Tabel 3.5 Hasil Evaluasi Fungsi Tujuan dan Fungsi Kendala Populasi Awal Individu (S)
Fungsi Tujuan (f) f1
f2
f3
Kendala (pn)
1
2554,2984 0,6036
26,2616
0
2
2258,1738 0,634
21,1816
0
3
2529,8535 0,6248
24,0515
0
4
2397,9622 0,6008
22,8525
0
5
3073,9919 0,6018
27,2501
0
6
2055,2758 0,6068
22,1598
0
7
2707,9177 0,6458
26,3824
0
8
1748,723
20,5972
0
9
2379,5504 0,614
22,5026
0
10
2463,578
24,8134
0
0,6047
0,7099
4. 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 = popSize. 4.a. 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 2.10. Pemeriksaan
72
dominansi antara individu p dan q dilakukan menggunakan konsep dominasi berkendala (Deb et al., 2002). jika pnp != 0 atau pnq != 0 jika pnp > pnq, maka p mendominasi q jika pnq > pnp, maka q mendominasi p jika lainnya, maka p dan q tidak saling mendominasi jika pnp = 0 dan pnq = 0, maka dom1 = 0 dom2 = 0 untuk setiap fungsi tujuan m jika fm.p < fm.q, maka flag = -1 jika fm.p > fm.q, maka flag = 1 jika lainnya, maka flag = 0 jika flag = -1, maka dom1 = 1 jika flag = 1, maka dom2 = 1 jika dom1 = dom2, maka p dan q tidak saling mendominasi jika dom1 = 1, maka p mendominasi q jika lainnya, maka q mendominasi p Berikut ini contoh pemeriksaan dominansi antara individu ke-1 (S1) dan individu ke-4 (S4). pnp = pnq = 0, maka: f1,1 > f1,4 → flag = 1 flag = 1 → dom2 = 1 f2,1 > f2,4 → flag = 1 flag = 1 → dom2 = 1 f3,1 > f3,4 → flag = 1 flag = 1 → dom2 = 1 dom2 = 1 sehingga, S4 mendominasi S1 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
73
━ 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. Berikut ini contoh seleksi induk (parent1 dan parent2) menggunakan binary tournament selection. 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. Seleksi parent2 • Memilih dua individu secara acak S3 dan S8. • Membandingkan S3 dan S8. ▪ S8 mendominasi S3, maka S9 terpilih. 4.b. 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.6. Batasan alel dapat dilihat pada Tabel 3.2, batas minimal dan batas maksimal penggunaan bahan adalah batas bawah (xL) dan sebagai batas atas (xU) alel. nc = 20 x1 = parent1 = S9 x2 = parent2 = S8 Tabel 3.6 Kromosom Induk Induk
Kromosom 1
2
3
4
5
6
7
8
9
10
x1
2,7
3
0,6
21,9 8,8
6,4
1,1
37,4 2,3
7
x2
8,8
4,1
4,2
0,6
0,9
0,4
24
5,7
2
74
0,2
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. 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,5000005959636186 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 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 β(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 u1 > (1 / α(x2,1)), maka:
75
β(x2,1) = (1 / (2 – α * u1)){1 / (nc + 1)} β(x2,1) = (1 / (2 – 1,99906 * 0,84)) ^ (1 / (20 + 1)) β(x2,1) = 1,05639 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 y2,1 ≥ xL,1 dan y2,1 ≤ xU,1 maka y2,1 = 8,972 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. Random[0,1] = 0,93 Random[0,1] > 0,5 maka: y1,1 = 2,52762 y2,1 = 8,972 Individu pada Tabel 3.7 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 3.7 Offspring Hasil Crossover Kromosom
Offspring
1
2
3
4
5
6
7
8
9
10
0,2
5,7
y1
2,5
3
0,6
21,9 8,7
0,9
0,4
24
y2
9
4,1
4,2
0,7
6,4
1,1
37,4 2,3
2,1
7
4.c. 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). nm = 20 pm = 1 / n = 1/ 10 = 0,1 x = y1 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 76
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 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) mut_pow = 0,04762 δ = {{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 y3 = x3 + δ * (yU – yL) y3 = 0,6 + (-0,02891) * (5 – 0,1) y3 = 0,45835 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 3.8. Berdasarkan Tabel 3.8, terjadi perubahan pada alel ke-3 dari y1 dan alel ke-6 dari y1. Tabel 3.8 Offspring Hasil Mutasi Kromosom
Offspring
1
2
3
4
5
6
7
8
9
10
0,2
5,7
y1
2,5
3
0,5
21,9 8,7
0,9
0,4
24
y2
9
4,1
4,2
0,7
2,7
1,1
37,4 2,3
2,1
7
Setelah proses mutasi selesai, offspring dimasukkan ke dalam populasi offspring (Qt). Contoh populasi offspring hasil reproduksi dapat dilihat pada Tabel 3.9.
77
Tabel 3.9 Populasi Offspring Kromosom
Offspring
1
2
3
4
5
6
7
8
9
10
0,2
5,7
1
2,5
3
0,5
21,9 8,7
0,9
0,4
24
2
9
4,1
4,2
0,7
2,1
2,7
1,1
37,4 2,3
7
...
...
...
...
...
...
...
...
...
...
...
10
3,6
3,2
4,5
26,1 8,3
9,5
1,1
24
2,1
6,5
5. 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 3.10. Tabel 3.10 Populasi Intermediate Kromosom
Individu (S)
1
2
3
1
6,3
3,2
...
...
11
4
6
7
1,9
28,9 1,5
1,8
0,9
28
1,5
5,1
...
...
...
...
...
...
...
...
2,5
3
0,5
21,9 8,7
0,9
0,4
24
0,2
5,7
67,8
12
9
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
4
2,9
15,1 8
2,4
1,2
38,7 0,4
6,4
83,4
15
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
18
4,3
4
2,9
29,9 7,7
2,4
0,9
38,7 0,4
6,4
97,6
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
6,5
88,9
...
8
9
2,1
10
Total
5
79,1
Hasil penghitungan nilai fungsi tujuan dan nilai kendala masing-masing individu dalam populasi intermediate dapat dilihat pada Tabel 3.11.
78
Tabel 3.11 Hasil Evaluasi Populasi Intermediate Fungsi Tujuan (f)
Individu (S)
f1
f2
Kendala (pn)
f3
1
2554,2984 0,6036
26,2616
0
...
...
...
...
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
0
14
2055,2758 0,6068
22,1598
0
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
...
6. Penentuan Peringkat Setiap individu dalam populasi intermediate diberi peringkat atau fitness berdasarkan front-nya. Letak individu dalam front dapat diketahui dengan menggunakan algoritma fast non-dominated sort, sebagaimana dideskripsikan dalam Gambar 2.7. 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 (Deb et al., 2002). Pengurutan individu ke dalam front dapat dilihat pada Tabel 3.12 dan Tabel 3.14. Kolom np menyatakan jumlah solusi yang mendominasi solusi p. Kolom Sp menyatakan himpunan solusi yang didominasi oleh solusi p. Tabel 3.12 Pengurutan Individu Berdasarkan Non-domination p S1
Dominasi
q
Sp
np
S1
Tidak saling mendominasi
Ø
0
S2
Tidak saling mendominasi
Ø
0
…
…
…
…
79
Tabel 3.12 Pengurutan Individu Berdasarkan Non-domination (Lanjutan) q
Dominasi
S20
S1 mendominasi S20
S7, S11, S12, S15, S16, S17, S18, S19, S20
1
…
…
…
…
…
S20
S1
S20 didominasi S1
Ø
1
S2
S20 didominasi S2
Ø
2
…
…
…
…
S20
Tidak saling mendominasi
S11, S12, S17, S18, S19
14
p
Sp
np
Proses pada Tabel 3.12 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 3.13. Pada setiap mengulangan evaluasi front ke-i (Fi), himpunan kosong Q dibuat untuk menyimpan individu dalam front ke-(i + 1). Tabel 3.13 Pencarian Anggota Front Selanjutnya p dalam Fi
Fi 1
q dalam Sp
nq = (nq − 1)
Jika nq = 0 maka Q=Q∪q
F1 = {S4, S8} S4
S8
Sp = {S1, S3, S5, S7, S10, S11, S12, S15, S16, S17, S18, S19, S20} S1
0
S1
…
…
…
S20
13
S1, S5
S2
1
S1, S5
S3
3
S1, S5
...
...
...
Sp = {S2, S3, S6, S7, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20}
80
Tabel 3.13 Pencarian Anggota Front Selanjutnya (Lanjutan) p dalam Fi
Fi
q dalam Sp S20
nq = (nq − 1)
Jika nq = 0 maka Q=Q∪q
12
S1, S5, S6, S13, S14
S7
7
Ø
...
...
...
S20
11
Ø
…
…
…
…
S14
Sp = {S3, S7, S9, S10, S11, S12, S15, S16, S17, S18, S19, S20} S3
1
S2
...
...
...
S20
7
S2, S9
…
…
…
F2 = Q = {S1, S5, S6, S13, S14} 2
F2 = {S1, S5, S6, S13, S14} S1
Sp = {S7, S11, S12, S15, S16, S17, S18, S19, S20}
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 3.14. Tabel 3.14 Individu yang Telah Diurut Berdasarkan Non-domination Front
Anggota Front/Individu (S)
1
4, 8
2
1, 5, 6, 13, 14
3
2, 9
81
Tabel 3.14 Individu yang Telah Diurut Berdasarkan Non-domination (Lanjutan) Front
Anggota Front/Individu (S)
4
3, 10
5
7
6
15
7
16
8
20
9
19
10
17
11
12
12
18
13
11
7. Pemilihan N Individu Tak Terdominasi Tahap selanjutnya adalah memilih N (ukuran populasi, 10) individu terbaik (Pt+1) dari populasi intermediate sebagaimana dideskripsikan pada Gambar 2.6. 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 2.9. 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 (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 (2.13). 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 (∞).
82
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 3.15. 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 d5 d5 d5
= dv + (fm(v+1) – fm(v−1)) / (fmmaks – fmmin) = d5 + (f1,4 – f1,3) / (f1,2 – f1,3) = 0 + (2255,8781 – 2055,2758) / (3073,9919 – 2055,2758) = 0,196916786
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 = ∞ 83
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 = ∞ 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 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
84
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)= ∞ Tabel 3.15 Hasil Pemilihan N Individu Terbaik Individu (S) Front Crowding Distance (d) 4
1
∞
8
1
∞
1
2
1,796803946
5
2
∞
6
2
∞
13
2
∞
14
2
1,708271864
2
3
∞
9
3
∞
3
4
∞
Jika counter generasi < generasi maksimum, 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. 85
8. 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 (2.19). 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 masingmasing fungsi tujuan dari individu ke-4 dan individu ke-8 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 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 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 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 3.16. S4 memiliki fitness terbesar, sehingga individu tak terdominasi yang dipilih sebagai solusi terbaik adalah S4.
86
Tabel 3.16 Hasil Evaluasi Fitness Individu (S)
Fungsi Tujuan (m) f1
f2
f3
Fitness
4
2397,96 0,6008 22,8525
0,017086233
8
1748,72 0,6047 20,5972
0,017028347
Berikut ini adalah contoh untuk menghitung proporsi bahan pakan ke-1 (dalam kg) untuk membuat 100 kg pakan menggunakan solusi (formula pakan) terbaik hasil optimasi menggunakan NSGA-II. Proporsi bahan 1 (kg) = proporsi bahan 1(%) / total proporsi bahan * jumlah ransum Proporsi bahan 1 (kg) = 5,5 / 68,7 * 100 Proporsi bahan 1 (kg) = 8,005822416
3.2.5 Perancangan Uji Coba dan Evaluasi Perancangan uji coba dan evaluasi bertujuan untuk menentukan apa saja yang akan diuji dan dievalasi dari program aplikasi yang akan dikembangkan. Halhal yang akan diuji dari program aplikasi adalah sebagai berikut: 1. Uji coba untuk menentukan jumlah generasi yang optimal untuk formulasi pakan ternak unggas. 2. Uji coba untuk mencari kombinasi probabilitas crossover dan probabilitas mutasi terbaik untuk menyelesaikan permasalahan formulasi pakan ternak unggas. 3. Uji coba untuk menentukan ukuran populasi yang optimal untuk menyelesaikan permasalahan formulasi pakan ternak unggas. 1. Skenario Uji Coba Jumlah Generasi Uji coba jumlah generasi dilakukan untuk mengetahui jumlah generasi yang optimal untuk menyelesaikan permasalahan formulasi pakan ternak unggas. Rancangan uji coba jumlah generasi dapat dilihat pada Tabel 3.17. Percobaan dilakukan sebanyak 10 kali (N) dengan membandingkan nilai rata-rata fungsi solusi tidak terdominasi pada generasi terakhir dan nilai fungsi tujuan solusi terbaik yang terpilih. Parameter algoritma genetika yang digunakan dalam skenario uji coba ini adalah sebagai berikut: • jumlah variabel keputusan (bahan pakan, n) = 10 • ukuran populasi = 50 • probabilitas crossover (pc) = 0,9; distribusi indeks crossover (nc) = 20 • probabilitas mutasi (pm) = 1/n; distribusi indeks mutasi (nm)= 20
87
Tabel 3.17 Skenario Uji Coba Jumlah Generasi Percobaan Jumlah Generasi
1 f1
f2
f3
Rerata
... Fitness
Waktu
...
10 f1
f2
f3
Fitness
Waktu
f1
f2
f3
Fitness
Waktu
50 100 150 200 250 300 350 400 450 500 600 700 800 900 1000
2. Skenario Uji Coba Kombinasi pc dan pm Uji coba kombinasi probabilitas crossover (pc) dan mutasi (pm) dilakukan untuk mengetahui perbandingan keduanya yang terbaik dalam penyelesaian permasalahan formulasi pakan ternak unggas. Rancangan uji coba kombinasi probabilitas crossover dan probabilitas mutasi dapat dilihat pada Tabel 3.18. Percobaan dilakukan sebanyak 10 kali (N). Parameter algoritma genetika yang digunakan dalam skenario uji coba ini adalah sebagai berikut: • jumlah variabel keputusan (bahan pakan, n) = 10 • ukuran populasi = 50; jumlah generasi = 50 • distribusi indeks crossover = 20
88
• distribusi indeks mutasi = 20 Tabel 3.18 Skenario Uji Coba Kombinasi Probabilitas Crossover dan Probabilitas Mutasi Percobaan
Rerata
Kombinasi
1 pc 0
pm
f1 f2 f3
Fitness
... Waktu
...
10 f1
f2
f3
Fitness
Waktu
f1
f2
f3
Fitness
Waktu
1
0,1 0,9 0,2 0,8 0,3 0,7 0,4 0,6 0,5 0,5 0,6 0,4 0,7 0,3 0,8 0,2 0,9 0,1 0,9 1/n 1
0
3. Skenario Uji Coba Ukuran Populasi Uji coba ukuran populasi dilakukan untuk mengetahui ukuran populasi yang optimal dalam penyelesaian permasalahan formulasi pakan ternak unggas. Rancangan uji coba ukuran populasi dapat dilihat pada Tabel 3.19. Percobaan dilakukan sebanyak 10 kali (N). Parameter algoritma genetika yang digunakan dalam skenario uji coba ini adalah sebagai berikut: • jumlah variabel keputusan (bahan pakan, n) = 10 • jumlah generasi = 50 • probabilitas crossover (pc) = 0,9 • distribusi indeks crossover (nc) = 20
89
• probabilitas mutasi (pm) = 1/n • distribusi indeks mutasi (nm)= 20 Tabel 3.19 Skenario Uji Coba Ukuran Populasi Percobaan Ukuran Populasi
1 f1
f2
f3
... Fitness
Waktu
...
Rerarta
10 f1
f2
50 100 150 200 250 300 350 400 450 500
90
f3
Fitness
Waktu
f1
f2
f3
Fitness
Waktu
BAB 4 IMPLEMENTASI Pada bab ini akan dibahas tentang implementasi NSGA-II dalam formulasi pakan ternak unggas. Pembahasan dalam bab ini meliputi spesifikasi lingkungan implementasi dan/atau lingkungan pengembangan program aplikasi formulasi pakan ternak unggas menggunakan NSGA-II, pengimplementasian algoritma, dan pengimplementasian antarmuka.
4.1 Lingkungan Implementasi Spesifikasi lingkungan implementasi dan/atau lingkungan pengembangan program aplikasi formulasi pakan ternak unggas menggunakan NSGA-II terdiri dari dua bagian yaitu spesifikasi lingkungan implementasi perangkat keras dan spesifikasi lingkungan implementasi perangkat lunak.
4.1.1 Lingkungan Implementasi Perangkat Keras Spesifikasi perangkat keras yang digunakan untuk mengembangkan dan menguji program aplikasi formulasi pakan ternak unggas menggunakan NSGA-II adalah sebagai berikut: • Processor
: Intel® Core™ i3 CPU M 380 @ 2.53GHz × 4
• Grafis
: Intel® Ironlake Mobile
• Memori
: 7,6 GiB
• Harddisk
: 483,6 GB
4.1.2 Lingkungan Implementasi Perangkat Lunak Spesifikasi perangkat lunak yang digunakan untuk mengembangkan dan menguji program aplikasi formulasi pakan ternak unggas menggunakan NSGA-II adalah sebagai berikut: • Sistem operasi
: Ubuntu 14.04
• Perangkat Editor
: Netbeans 8.0.1 IDE
• Java
: 1.7.0_91
• Java Runtime
: OpenJDK Runtime Environment (IcedTea 2.6.3)
4.2 Implementasi Algoritma Pada subbab ini akan dijelaskan tentang implementasi algoritma yang digunakan untuk menyelesaikan permasalahan formulasi pakan ternak unggas. Implementasi algoritma yang dimaksud adalah proses utama NSGA-II, pembangkitan populasi, evaluasi fungsi tujuan dan fungsi kendala, binary tournament selection, simulated binary crossover, polynomial mutation, penggabungan populasi induk dengan populasi offspring, pengurutan populasi ke dalam front menggunakan fast non-dominated sort, pemberian nilai jarak pada
91
setiap individu menggunakan crowding distance assignment, dan pemilihan solusi terbaik.
4.2.1 Proses Utama NSGA-II Proses utama NSGA-II dalam penelitian ini terdiri dari pembangkitan populasi secara acak bersadarkan kendala yang harus dipatuhi, evaluasi fungsi tujuan dan fungsi kendala, reproduksi (binary tournament selection, simulated binary crossover, polynomial mutation), evaluasi sungsi tujuan dan fungsi kendala offspring, penggabungan populasi induk dan populasi offspring, pengurutan individu ke dalam front menggunakan fast non-dominated sort, memberikan nilai jarak menggunakan crowding distance assignment, memilihan N individu untuk generasi selanjutnya, dan pemilihan individu tak terdominasi. Implementasi proses utama NSGA-II dapat dilihat pada Tabel 4.1. Tabel 4.1 Kode Sumber Proses Utama NSGA-II 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
public SolutionSet execute(String resultFile) throws Exception, ClassNotFoundException { // buat populasi awal for (int i = 0; i < popSize; i++) { newSolution = new Solution(problem); problem.evaluate(newSolution); problem.evaluateConstraints(newSolution); evaluations++; population.add(newSolution); } // siklus generas while (evaluations < maxEval) { offspringPopulation = new SolutionSet(popSize); Solution[] parents = new Solution[2]; for (int i = 0; i < (popSize / 2); i++) { if (evaluations < maxEval) { //seleksi parents[0] = (Solution) selectionOperator.execute(population); parents[1] = (Solution) selectionOperator.execute(population); // SBX Solution[] offSpring = (Solution[]) crossoverOperator.execute(parents); // polynomial mutation 1 mutationOperator.execute(offSpring[0]); // polynomial mutation 2 mutationOperator.execute(offSpring[1]); problem.evaluate(offSpring[0]); problem.evaluateConstraints(offSpring[0]); problem.evaluate(offSpring[1]); problem.evaluateConstraints(offSpring[1]); offspringPopulation.add(offSpring[0]); offspringPopulation.add(offSpring[1]);
92
Tabel 4.1 Kode Sumber Proses Utama NSGA-II (Lanjutan) 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
evaluations += 2; } } // gabungkan populasi dan offSpring union = ((SolutionSet) population).union(offspringPopulation); // Sorting union, fast non-dominated sort Sorting sorting = new Sorting(union); // front selanjutnya front = sorting.getSubfront(index); // REPLACEMENT, seleksi N individu untuk populasi selanjutnya while ((remain > 0) && (remain >= front.size())) { // hitung crow. dist. dalam front distance.crowdingDistanceAssignment(front, problem.getNumberOfObjectives()); // masukkan indivudu ke dalam populasi selanjutnya for (int k = 0; k < front.size(); k++) { population.add(front.get(k)); } //sisa slot remain = remain - front.size(); // front selanjutnya index++; if (remain > 0) { front = sorting.getSubfront(index); } } if (remain > 0) { distance.crowdingDistanceAssignment(front, problem.getNumberOfObjectives()); front.sortByDistance(); for (int k = 0; k < remain; k++) { population.add(front.get(k)); } remain = 0; } } // EO generation cycle // solusi tak terdominasi, front pertama Sorting sorting = new Sorting(population); return sorting.getSubfront(0); }
Sumber: Diadaptasi dari Nebro dan Durillo (2015)
4.2.2 Pembangkitan Populasi Populasi dibangkitkan secara acak dengan tetap mematuhi kendala yang ada. Populasi dibangkitkan sejumlah popSize menggunakan pengulangan. Pembangkitan individu dilakukan per individu. Implementasi pembangkitan kromosome untuk individu dapat dilihat pada Tabel 4.2.
93
Tabel 4.2 Kode Sumber Pembangkitan Kromosom Individu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
synchronized public Variable[] createVariables() { Variable[] variable = new Variable[problem.getNumberOfVariables()]; Random random = new Random(); boolean confirmed = false; FeedF feedF = (FeedF) problem; while (!confirmed) { for (int i = 0; i < problem.getNumberOfVariables(); i++) { variable[i] = new Variable(problem.getLowerLimit(i), problem.getUpperLimit(i), random); } try { confirmed = satisfied(feedF, variable); } catch (Exception e) { System.out.println(e); } } return variable; }
Sumber: Diadaptasi dari Nebro dan Durillo (2015)
4.2.3 Evaluasi Fungsi Tujuan dan Fungsi Kendala Evaluasi fungsi tujuan dan fungsi kendala digunakan untuk menghitung nilai semua fungsi tujuan dan nilai penalti setiap individu. Evaluasi fungsi tujuan dilakukan dengan menggunakan Persamaan (3.1), Persamaan (3.2), dan Persamaan (3.3), sedangkan fungsi kendala dievaluasi menggunakan Persamaaan (2.3). Implementasi evaluasi fungsi tujuan dan fungsi kendala dapat dilihat pada Tabel 4.3. Tabel 4.3 Kode Sumber Evaluasi Fungsi Tujuan dan Fungsi Kendala 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
private double evaluateF1(double[] proporsiBahan) { double f1 = 0.0; for (int i = 0; i < numberOfVariables; i++) { f1 += (this.DAFTAR_BAHAN_RANSUM.get(i).getHarga() * (proporsiBahan[i] / this.totalProporsi)); } return f1; } private double evaluateF2(double[] proporsiBahan) { double f2 = 0.0; for (int i = 0; i < numberOfVariables; i++) { for (Nutrien nutrien : this.DAFTAR_BAHAN_RANSUM.get(i).getDaftarNutrien().getDaftarNutrien ()) { if (nutrien.getNama().toLowerCase(Locale.ENGLISH).equals("p") ||
94
Tabel 4.3 Kode Sumber Evaluasi Fungsi Tujuan dan Fungsi Kendala (Lanjutan) 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
nutrien.getNama().toLowerCase(Locale.ENGLISH).equals("phosphor") || nutrien.getNama().toLowerCase(Locale.ENGLISH).equals("fosfor") || nutrien.getNama().toLowerCase(Locale.ENGLISH).equals("belerang")) { f2 += (nutrien.getKandungan() * (proporsiBahan[i] / this.totalProporsi)); } } } return f2; } private double evaluateF3(double[] proporsiBahan) { double f3 = 0.0; for (int i = 0; i < numberOfVariables; i++) { for (Nutrien nutrien : this.DAFTAR_BAHAN_RANSUM.get(i).getDaftarNutrien().getDaftarNutrien ()) { if (nutrien.getNama().toLowerCase(Locale.ENGLISH).equals("pk")) { f3 += (nutrien.getKandungan() * (proporsiBahan[i] / this.totalProporsi)); } } } return f3; } private double getIngredientSatisfaction(double proporsiBahan, int j) { double r = this.BATASAN_PENGGUNAAN_BAHAN.get(j).getPenggunaanMin(); double s = this.BATASAN_PENGGUNAAN_BAHAN.get(j).getPenggunaanMaks(); double pemenuhanbahan = proporsiBahan; if (pemenuhanbahan < r || pemenuhanbahan == r) { pemenuhanbahan -= r; return pemenuhanbahan; } if (pemenuhanbahan > s || pemenuhanbahan == s) { pemenuhanbahan = s - pemenuhanbahan; return pemenuhanbahan; } return pemenuhanbahan; } private double getNutrientSatisfaction(double[] proporsiBahan, Nutrien nutrien) { double kebutuhanMin =
95
Tabel 4.3 Kode Sumber Evaluasi Fungsi Tujuan dan Fungsi Kendala (Lanjutan) 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
this.HEWAN_TERNAK.getDaftarKebutuhanNutrien().get(nutrien.getNama() ).getKebutuhanMin(); double kebutuhanMaks = this.HEWAN_TERNAK.getDaftarKebutuhanNutrien().get(nutrien.getNama() ).getKebutuhanMaks(); double pemenuhanNutrien = 0.0; for (int j = 0; j < this.DAFTAR_BAHAN_RANSUM.size(); j++) { BahanPakan bahanPakan = this.DAFTAR_BAHAN_RANSUM.get(j); pemenuhanNutrien += (bahanPakan.getDaftarNutrien().get(nutrien.getNama()).getKandungan( ) * (proporsiBahan[j] / this.totalProporsi)); } if (pemenuhanNutrien < kebutuhanMin || pemenuhanNutrien == kebutuhanMin) { pemenuhanNutrien -= kebutuhanMin; return pemenuhanNutrien; } if (pemenuhanNutrien > kebutuhanMaks || pemenuhanNutrien == kebutuhanMaks) { pemenuhanNutrien = kebutuhanMaks - pemenuhanNutrien; return pemenuhanNutrien; } return pemenuhanNutrien; }
4.2.4 Binary Tournament Selection Binary tournament selection digunakan untuk memilih dua individu dari populasi untuk dijadikan induk dalam proses reproduksi. Implementasi binary tournament selection dapat dilihat pada Tabel 4.4. Tabel 4.4 Kode Sumber Binary Tournament Selection 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
public Object execute(Object object) { SolutionSet population = (SolutionSet) object; if (index == 0) { a = (new PermutationUtility()).intPermutation(population.size()); } Solution solution1, solution2; solution1 = population.get(a[index]); solution2 = population.get(a[index + 1]); index = (index + 2) % population.size(); int flag = dominance.compare(solution1, solution2); Random rand = new Random(); if (flag == -1) {
96
Tabel 4.4 Kode Sumber Binary Tournament Selection (Lanjutan) 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
return solution1; } else if (flag == 1) { return solution2; } else if (solution1.getCrowdingDistance() > solution2.getCrowdingDistance()) { return solution1; } else if (solution2.getCrowdingDistance() > solution1.getCrowdingDistance()) { return solution2; } else if (rand.nextDouble() < 0.5) { return solution1; } else { return solution2; } }
Sumber: Diadaptasi dari Deb (2011b); Nebro dan Durillo (2015)
4.2.5 Simulated Binary Crossover Simulated binary crossover digunakan untuk memproduksi dua offspring. Tahapan simulated binary crossover dapat dilihat pada Gambar 3.25, Gambar 3.26, Gambar 3.27, dan Gambar 3.28. Implementasi simulated binary crossover dapat dilihat pada Tabel 4.5. Tabel 4.5 Kode Sumber Simulated Binary Crossover 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
public Solution[] doCrossover(double probability, Solution parent1, Solution parent2) { Solution[] offSpring = new Solution[2]; offSpring[0] = new Solution(parent1); offSpring[1] = new Solution(parent2); ... ... ... if (r1.nextDouble() <= probability) { for (i = 0; i < numberOfVariables; i++) { x1 = varX1.getValue(i); x2 = varX2.getValue(i); if (r2.nextDouble() <= 0.5) { // cross variable ke-i if (Math.abs(x1 - x2) > EPS) { if (x1 y1 y2 } else y1 y2 }
< = = { = =
x2) { x1; x2; x2; x1;
xL = varX1.getLowerBound(i); xU = varX1.getUpperBound(i); u = r3.nextDouble(); // menghitung alel C1 beta = 1.0 + (2.0 / (y2 - y1) * (y1 - xL));
97
Tabel 4.5 Kode Sumber Simulated Binary Crossover (Lanjutan) 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
alpha = 2.0 - Math.pow(beta, (distributionIndex + 1.0)); if (u <= (1.0 / alpha)) { betaq = Math.pow((alpha * u), (1.0 / (distributionIndex + 1.0))); System.out.println(); } else { betaq = Math.pow((1.0 / (2.0 - alpha * u)), (1.0 / (distributionIndex + 1.0))); } c1 = 0.5 * ((y1 + y2) - betaq * (y2 - y1)); // menghitung alel C2 beta = 1.0 + (2.0 / (y2 - y1) * (xU - y2)); alpha = 2.0 - Math.pow(beta, (distributionIndex + 1.0)); if (u <= (1.0 / alpha)) { betaq = Math.pow((alpha * u), (1.0 / (distributionIndex + 1.0))); } else { betaq = Math.pow((1.0 / (2.0 - alpha * u)), (1.0 / (distributionIndex + 1.0))); } c2 = 0.5 * ((y1 + y2) + betaq * (y2 - y1)); // pastikan variable tetap feasible if (c1 < xL) { c1 = xL; } if (c2 < xL) { c2 = xL; } if (c1 > xU) { c1 = xU; } if (c2 > xU) { c2 = xU; } // eo feasible if (r4.nextDouble() <= 0.5) { if (rounded) { offs1.setValue(i, Maths.round(c2, decimalPlaces)); offs2.setValue(i, Maths.round(c1, decimalPlaces)); } else { offs1.setValue(i, c2); offs2.setValue(i, c1); }
98
Tabel 4.5 Kode Sumber Simulated Binary Crossover (Lanjutan) 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
} else { if (rounded) { offs1.setValue(i, Maths.round(c1, decimalPlaces)); offs2.setValue(i, Maths.round(c2, decimalPlaces)); } else { offs1.setValue(i, c1); offs2.setValue(i, c2); } } } else { if (rounded) { offs1.setValue(i, Maths.round(x1, decimalPlaces)); offs2.setValue(i, Maths.round(x2, decimalPlaces)); } else { offs1.setValue(i, x1); offs2.setValue(i, x2); } } } else { if (rounded) { // opsi switch alel offs1.setValue(i, Maths.round(x1, decimalPlaces)); offs2.setValue(i, Maths.round(x2, decimalPlaces)); } else { offs1.setValue(i, x1); offs2.setValue(i, x2); } } } } return offSpring; }
Sumber: Diadaptasi dari Deb (2011b); Nebro dan Durillo (2015)
4.2.6 Polymonial Mutation Polynomial mutation digunakan untuk mengubah gen offspring hasil crossover. Tahapan Polynomial Mutation dapat dilihat pada Gambar 3.29, Gambar 3.30, dan Gambar 3.31. Implementasi polynomial mutation dapat dilihat pada Tabel 4.6. Tabel 4.6 Kode Sumber Polynomial Mutation 1 2 3 4 5 6
public void doMutation(double probability, Solution solution) { ... ... ... for (int i = 0; i < solution.getNumberOfVariables(); i++) {
99
Tabel 4.6 Kode Sumber Polynomial Mutation (Lanjutan) 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
if (r1.nextDouble() <= probability) { // mutasi variabel ke-i y = x.getValue(i); xL = x.getLowerBound(i); xU = x.getUpperBound(i); delta1 = (y - xL) / (xU - xL); delta2 = (xU - y) / (xU - xL); u = r2.nextDouble(); mut_pow = 1.0 / (distributionIndex + 1.0); if (u <= 0.5) { xy = 1.0 - delta1; val = 2.0 * u + (1.0 - 2.0 * u) * (Math.pow(xy, (distributionIndex + 1.0))); deltaq = Math.pow(val, mut_pow) - 1.0; } else { xy = 1.0 - delta2; val = 2.0 * (1.0 - u) + 2.0 * (u - 0.5) * (Math.pow(xy, (distributionIndex + 1.0))); deltaq = 1.0 - (Math.pow(val, mut_pow)); } y = y + deltaq * (xU - xL); // pastikan tetap feasible if (y < xL) { y = xL; } if (y > xU) { y = xU; } // eo pastikan tetap feasible if (rounded) { x.setValue(i, org.app.utils.Maths.round(y, decimalPlaces)); } else { x.setValue(i, y); } } } }
Sumber: Diadaptasi dari Deb (2011b); Nebro dan Durillo (2015)
4.2.7 Penggabungan Populasi Induk dan Populasi Offspring Populasi induk digabungkan dengan populasi offspring sehingga dihasilkan populasi intermediate/union. Implementasi penggabungan populasi induk dan populasi offspring dapat dilihat pada Tabel 4.7. Tabel 4.7 Kode Sumber Penggabungan Populasi 1 2 3 4 5
public SolutionSet union(SolutionSet solutionSet) { int newSize = this.size() + solutionSet.size(); if (newSize < capacity) { newSize = capacity;
100
Tabel 4.7 Kode Sumber Penggabungan Populasi (Lanjutan) 6 7 8 9 10 11 12 13 14 15 16 17 18 19
} //Create a new population SolutionSet union = new SolutionSet(newSize); for (int i = 0; i < this.size(); i++) { union.add(this.get(i)); } for (int i = this.size(); i < (this.size() + solutionSet.size()); i++) { union.add(solutionSet.get(i - this.size())); } return union; }
Sumber: Diadaptasi dari Nebro dan Durillo (2015)
4.2.8 Fast Non-dominated Sort Fast non-dominated sort berfungsi untuk memasukkan atau mengelompokkan individu dalam populasi ke dalam front. Fast non-dominated sort menggunakan konsep dominasi untuk mengelompokkan individu kedalam front. Implementasi fast non-dominated sort dapat dilihat pada Tabel 4.8. Tabel 4.8 Kode Sumber Fast Non-dominated Sort 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
public Sorting(SolutionSet solutionSet) { this.solutionSet = solutionSet; // dominateMe[i], jumlah solusi yang mendominasi solusi ke-i int[] dominateMe = new int[this.solutionSet.size()]; // np // iDominate[i], berisi indeks solusi yang disominasi oleh solusi ke-i List
[] iDominate = new List[this.solutionSet.size()]; // Sp // front[i], berisi indeks solusi yang ada di front ke-i List[] front = new List[this.solutionSet.size() + 1]; // jumlah front yg dialokasi = jumlah himpunan solusi + 1 int flagDominate; // inisialisasi front, for (int i = 0; i < front.length; i++) { front[i] = new LinkedList<>(); } // inisialisasi Sp dan np for (int p = 0; p < this.solutionSet.size(); p++) { iDominate[p] = new LinkedList<>(); dominateMe[p] = 0; } // setia anggota himpunan solusi for (int p = 0; p < (this.solutionSet.size() - 1); p++) { // cek dominansi for (int q = p + 1; q < this.solutionSet.size(); q++) { flagDominate = constraint.compare(solutionSet.get(p), solutionSet.get(q)); if (flagDominate == 0) {
101
Tabel 4.8 Kode Sumber Fast Non-dominated Sort (Lanjutan) 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
flagDominate = dominance.compare(solutionSet.get(p), solutionSet.get(q)); } if (flagDominate == -1) { iDominate[p].add(q); dominateMe[q]++; } else if (flagDominate == 1) { iDominate[q].add(p); dominateMe[p]++; } } } for (int p = 0; p < this.solutionSet.size(); p++) { // np = 0, maka p masuk ke front pertama if (dominateMe[p] == 0) { front[0].add(p); solutionSet.get(p).setRank(0); } } int i = 0; while (!front[i].isEmpty()) { for (int p = 0; p < front[i].size(); p++) { int ip = (int) front[i].get(p); for (int q = 0; q < iDominate[ip].size(); q++) { int iq = (int) iDominate[ip].get(q); dominateMe[iq] -= 1; if (dominateMe[iq] == 0) { front[i + 1].add(iq); solutionSet.get(iq).setRank(i + 1); } } } i++; } // inisialisasi frontset frontSet = new SolutionSet[i]; // pecah solusi ke dalam front for (int f = 0; f < i; f++) { frontSet[f] = new SolutionSet(front[f].size()); for (int fm = 0; fm < front[f].size(); fm++) { frontSet[f].add(solutionSet.get(((int) front[f].get(fm)))); } } }
Sumber: Diadaptasi dari Nebro dan Durillo (2015)
102
4.2.9 Crowding Distance Assignment Crowding distance assignment digunakan untuk memberikan nilai jarak pada individu, yaitu jarak antar individu dalam satu front. Implementasi crowding distance assignment dapat dilihat pada Tabel 4.9. Tabel 4.9 Kode Sumber Crowding Distance Assignment 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
public void crowdingDistanceAssignment(SolutionSet solutionSet, int M) { int l = solutionSet.size(); if (l == 0) { return; } if (l == 1) { solutionSet.get(0).setCrowdingDistance(Double.POSITIVE_INFINITY); return; } if (l == 2) { solutionSet.get(0).setCrowdingDistance(Double.POSITIVE_INFINITY); solutionSet.get(1).setCrowdingDistance(Double.POSITIVE_INFINITY); return; } SolutionSet front = new SolutionSet(l); for (int i = 0; i < l; i++) { front.add(solutionSet.get(i)); } for (int i = 0; i < l; i++) { solutionSet.get(i).setCrowdingDistance(0.0); } double objMin; double objMax; double distance; for (int i = 0; i < M; i++) { front.sortByObjective(i); objMin = front.get(0).getObjective(i); objMax = front.get(l - 1).getObjective(i); front.get(0).setCrowdingDistance(Double.POSITIVE_INFINITY); front.get(l 1).setCrowdingDistance(Double.POSITIVE_INFINITY); for (int j = 1; j < (l - 2); j++) { distance = (front.get(j + 1).getObjective(i) front.get(j - 1).getObjective(i)); distance /= (objMax - objMin); distance += front.get(j).getCrowdingDistance(); front.get(j).setCrowdingDistance(distance); } } }
Sumber: Diadaptasi dari Nebro dan Durillo (2015)
103
4.2.10 Pemilihan Solusi Terbaik Pemilihan solusi terbaik diantara solusi tak terdominasi dilakukan dengan mengevaluasi nilai fitness setiap solusi tak terdominasi. Solusi terbaik adalah solusi tak terdominasi yang memiliki fitness terbesar. Implementasi pemilihan solusi terbaik dapat dilihat pada Tabel 4.10. Tabel 4.10 Kode Sumber Pemilihan Solusi Terbaik 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
public Solution getBestSolution() { for (int i double double double double
= 0; i < solutionSet.size(); i++) { fitness = 0.0; fitness1 = 0.0; fitness2 = 0.0; fitness3 = 0.0;
fitness1 += (1 / solutionSet.get(i).getObjective(0) * 0.01); fitness2 += (1 / solutionSet.get(i).getObjective(1) * 0.01); fitness3 += (1 / solutionSet.get(i).getObjective(2) * 0.01); fitness += (fitness1 + fitness2 + fitness3); solutionSet.get(i).setDMValue(fitness); } Collections.sort(solutionSet, Collections.reverseOrder(Solution.COMPARE_BY_DM_VALUE)); return solutionSet.get(0); }
4.3 Implementasi Antarmuka Pada subbab ini akan dibahas tentang implementasi antarmuka dari mock up antarmuka yang dijelaskan pada subbab Perancangan. Implementasi antarmuka yang akan dijelaskan dalam subbab ini adalah implementasi antarmuka utama (FanT), antarmuka Gudang Bahan Pakan, antarmuka Batasan Penggunaan Bahan, dan antarmuka Kandang Ternak.
4.3.1 Antarmuka Utama (FanT) Ketika program aplikasi formulasi pakan ternak unggas dioperasikan, antarmuka yang akan muncul adalah antarmuka FanT. Hasil implementasi Antarmuka FanT dapat dilihat pada Gambar 4.1. Antarmuka FanT terdiri dari: 1. Menu bar. Menu bar terdiri dari menu: Berkas, GoTo, Formulasi, Perkakas, dan Bantuan. 2. Tool bar. Tool bar berisi tombol sebagai shortcut untuk mempermudah pengguna dalam menggunakan aplikasi. Pada tool bar, tombol utama yang disediakan adalah tombol untuk masuk ke antarmuka Gudang Bahan Pakan, tombol untuk masuk ke antarmuka Batasan Penggunaan Bahan, dan tombol untuk masuk ke antarmuka Kandang Ternak.
104
3. Kotak pilihan tanggal, untuk memasukkan tanggal pembuatan formula pakan. 4. Kotak pilihan Hewan Ternak, untuk memilih ternak yang akan dibuatkan formulas pakan. 5. Kotak isian jumlah pakan yang akan dibuat (dalam Kg). 6. Tab Bahan Pakan, untuk menampilkan bahan pakan yang dipilih dan kandungan zat makanannya. 7. Tab Kebutuhan Zat Makanan, untuk menampilkan kebutuhan nutrisi ternak unggas yang dipilih. 8. Hasil, untuk menampilkan rincian hasil formulasi pakan ternak unggas.
Gambar 4.1 Antarmuka Utama (FanT)
4.3.2 Antarmuka Gudang Bahan Pakan Antarmuka Gudang Bahan Pakan digunakan untuk memfasilitasi pengelolaan data bahan pakan, yaitu data berupa daftar bahan pakan dan komposisi zat makanan yang dikandungnya. Pada antarmuka Gudang Bahan Pakan, pengguna dapat menghapus mengubah maupun menghapus data bahan pakan dan informasi kandungan zat makanan. Pada antarmuka Gudang Bahan Pakan, tabel sebelah kiri digunakan untuk menampilkan bahan pakan sedangkan tabel lainnya digunakan untuk menampilkan komposisi zat makanan yang dikandung. Untuk memilih bahan pakan yang akan digunakan dalam formulasi pakan, beri tanda centang pada kolom Stok. Untuk menyimpan perubahan data atau menggunakan bahan pakan yang dicentang, tekan icon OK ( ) yang ada pada antarmuka Gudang Bahan Pakan atau tekan tombol CTRL+ENTER pada keyboard. Hasil implementasi antarmuka Gudang Bahan Pakan dapat dilihat pada Gambar 4.2.
105
Gambar 4.2 Antarmuka Gudang Bahan Pakan
4.3.3 Antarmuka Batasan Penggunaan Bahan Antarmuka Batasan Penggunaan Bahan digunakan untuk memfasilitasi pengolahan data batasan penggunaan bahan pakan. Pengguna dapat menambah, mengubah, dan menghapus data batasan penggunaan bahan pakan. Hasil implementasi antarmuka Batasan Penggunaan Bahan dapat dilihat pada Gambar 4.3.
Gambar 4.3 Antarmuka Batasan Penggunaan Bahan
4.3.4 Antarmuka Kandang Ternak Antarmuka Kandang Ternak digunakan untuk mengelola data ternak unggas
106
beserta zat makanan yang dibutuhkan. Pada antarmuka Kandang Ternak, tabel sebelah kiri digunakan untuk menampilkan daftar ternak sedangkan tabel lainnya digunakan untuk menampilkan kebutuhan zat makanan. Untuk menyimpan perubahan data, tekan icon OK ( ) yang ada pada antarmuka Kandang Ternak. Hasil implementasi antarmuka Gudang Bahan Pakan dapat dilihat pada Gambar 4.4.
Gambar 4.4 Antarmuka Kandang Ternak
107
BAB 5 PENGUJIAN DAN ANALISIS Pada bab ini akan dibahas tentang pengujian dan analisis program aplikasi formulasi pakan ternak unggas menggunakan NSGA-II. Pembahasan terdiri dari dua bagian yaitu tentang analisis pengujian parameter genetika dan analisi efisiensi dan pemenuhan kebutuhan nutrisi ternak unggas.
5.1 Hasil dan Analisis Pengujian Parameter Genetika Parameter genetika yang diuji dalam penelitian ini adalah jumlah generasi, kombinasi probabilitas crossover dan probabilitas mutasi, dan ukuran populasi. Pengujian parameter genetika ini digunakan untuk menemukan nilai parameter yang paling optimal untuk menghasilkan formula pakan yang paling mendekati optimal.
5.1.1 Hasil dan Analisis Uji Coba Jumlah Generasi Pengujian jumlah generasi dilakukan untuk mengetahui jumlah generasi yang optimal untuk menyelesaikan permasalahan formulasi pakan ternak unggas. Percobaan dilakukan sebanyak 10 kali dengan membandingkan rerata fitness solusi tak terdominasi. 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. Dari 10 kali percobaan untuk setiap perlakuan jumlah generasi, didapat rerata fungsi tujuan, rerata fitness, dan rerata waktu (dalam mili detik) sebagaimana ditunjukkan pada Tabel 5.1. Rincian pengujian jumlah generasi dapat dilihat pada Lampiran E. Tabel 5.1 Nilai Rerata Hasil Pengujian Jumlah Generasi Generasi
f1
f2
f3
Fitness
Waktu
50
1776,9762861369 0,6001729192 19,0883538415
0,017191393
1128
100
1742,3007692145 0,6006160956 19,0419783042
0,017180502
1114,1
150
1721,1507160767 0,6067619411 19,0366166102
0,0170216798
1204
200
1728,0245522041 0,6066773378 19,0311623088
0,017019685
1304,8
250
1695,406972945
0,6020315186 19,0082843178
0,0171434819
1403,6
300
1707,2431428706 0,6040333038 19,0661418776
0,0170892194
1609,7
108
Tabel 5.1 Nilai Rerata Hasil Pengujian Jumlah Generasi (Lanjutan) Generasi
f1
f2
f3
Fitness
Waktu
350
1767,5570336905 0,6017574556 19,2334208472
0,0171444041
1685
400
1696,4242788291 0,6004751057 19,0134186721
0,017185333
1838,1
450
1682,5710158347 0,6034166331 19,0788119735
0,0171039432
1869,9
500
1703,1490753908 0,6006991844 19,0120855777
0,0171791598
2056,3
600
1707,8008228846 0,6006991844 19,0120855777
0,0171791598
2056,3
700
1693,7912170867 0,6047227439 19,0053990557
0,0170750288
2280,2
800
1742,0341380728 0,6021935185 19,0077945081
0,0171384497
2453,3
900
1735,8237306994 0,601352262
19,0415803994
0,0171605736
2706,7
1000
1693,6239359372 0,6006524287 19,0020454868
0,0171806249
2890,8
0.02 0.02
Rerata Fitness
0.02 0.02 0.02 0.02 0.02 0.02 50 100 150 200 250 300 350 400 450 500 600 700 800 900 1000 Generasi
Gambar 5.1 Grafik Hasil Pengujian Jumlah Generasi terhadap Fitness Berdasarkan Gambar 5.1, fitness terbesar didapat ketika jumlah generasi = 50. Jika diperhatikan pada Gambar 5.2, Gambar 5.3, dan Gambar 5.4, biaya terkecil diperoleh ketika jumlah generasi = 450 (1682,57101583467), kandungan fosfor terkecil diperoleh ketika jumlah generasi = 50 (0,600172919183956), dan kandungan protein terkecil diperoleh ketika jumlah generasi = 1000 (19,0020454868024). Meskipun pada generasi ke-450 menghasilkan biaya terkecil, jumlah generasi ini tidak bisa dikatakan jumlah yang optimal karena fungsi tujuan kandungan fosfor juga berkontribusi dalam menentukan fitness. Oleh karena itu, keputusan diambil tidak hanya dari satu fungsi tujuan, akan tetapi juga memperhatikan fungsi tujuan lainnya. Fitness suatu solusi diperoleh
109
dengan menjumlahkan fitness dari masing-masing fungsi tujuan. Besar kecilnya fitness dipengaruhi oleh nilai fungsi tujuan. Semakin besar nilai fungsi tujuan maka fitness akan semakin kecil dan sebaliknya. Karena pada generasi ke-50 menghasilkan rerata fitness terbesar, maka jumlah generasi 50 merupakan jumlah yang optimal untuk menyelesaikan permasalahan formulasi pakan ternak unggas. 1800 1780 1760
Rerata f1
1740 1720 1700 1680 1660 1640 1620 50 100 150 200 250 300 350 400 450 500 600 700 800 900 1000 Generasi
Gambar 5.2 Grafik Hasil Pengujian Jumlah Generasi terhadap Harga (f1)
0.61 0.61
Rerata f2
0.6 0.6 0.6 0.6 0.6 50 100 150 200 250 300 350 400 450 500 600 700 800 900 1000 Generasi
Gambar 5.3 Grafik Hasil Pengujian Jumlah Generasi terhadap Kandungan Fosfor (f2)
110
19.3 19.25 19.2 19.15 Rerata f3
19.1 19.05 19 18.95 18.9 18.85 50 100 150 200 250 300 350 400 450 500 600 700 800 900 1000 Generasi
Gambar 5.4 Grafik Hasil Pengujian Jumlah Generasi terhadap Kandungan Protein (f3)
5.1.2 Hasil dan Analisis Uji Coba Kombinasi Probabilitas Crossover dan Probabilitas Mutasi 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) = 10. 2. Ukuran populasi = 50; jumlah generasi = 50. 3. Indeks distribusi crossover = 20. 4. Indeks distribusi mutasi = 20. Dari 10 kali percobaan untuk setiap perlakuan kombinasi pc dan pm didapat rerata fungsi tujuan, rerata fitness, dan rerata waktu (dalam mili detik) sebagaimana ditunjukkan pada Tabel 5.2. Rincian pengujian kombinasi pc dan pm dapat dilihat pada Lampiran F. Tabel 5.2 Nilai Rerata Hasil Pengujian Kombinasi pc dan pm pc : pm 0:1
f1
f2
f3
Fitness
Waktu
1760,8538764958
0,6001737805
19,1671085118 0,0171892817
1017,7
0.1 : 0.9 1761,6947448849
0,6000992256
19,3033861323 0,0171877321
925,4
0.2 : 0.8 1815,3127988109
0,6001399774
19,2155360633 0,0171887536
981,5
0.3 : 0.7 1754,9443305782
0,6002902991
19,1185041134 0,0171873977
990
111
Tabel 5.2 Nilai Rerata Hasil Pengujian Kombinasi pc dan pm (Lanjutan) pc : pm
f1
f2
Fitness
f3
Waktu
0,6001010463
19,195414926
0,0171904406
901,9
0.5 : 0.5 1802,0780668758
0,6001959022
19,1639318843 0,0171886428
917,8
0.6 : 0.4 1773,8858686544
0,600111705
19,1340342093 0,0171918889
949,4
0.7 : 0.3 1810,5142100369
0,6000677992
19,1132495792 0,0171935263
936,9
0.8 : 0.2 1693,0313252399
0,6000646279
19,0696222108 0,01719518
975,9
0.9 : 0.1 1822,3633994378
0,6035308536
19,1259433578 0,0171016818
997,5
0.9 : 1/n 1797,4613870044
0,6001022021
19,1152849635 0,0171925619
1027
1:0
0,6027303489
19,8559419316 0,0171045136
968,1
1850,8950164374
1:0
0.9 : 1/n
0.9 : 0.1
0.8 : 0.2
0.7 : 0.3
0.6 : 0.4
0.5 : 0.5
0.4 : 0.6
0.3 : 0.7
0.2 : 0.8
0.1 : 0.9
0.02 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0 0 0 0:1
Rerata Fitness
0.4 : 0.6 1803,0301562066
Kombinasi Pc : Pm
Gambar 5.5 Grafik Hasil Pengujian Jumlah Kombinasi pc dan pm terhadap Fitness Berdasarkan Gambar 5.5, formula pakan terbaik didapatkan dengan menggunakan kombinasi pc dan pm sebesar 0,8 dan 0,2. Berdasarkan Gambar 5.5, fitness terbesar didapat ketika nilai pc = 0,8 dan pm = 0,2. Jika diperhatikan pada Gambar 5.6, Gambar 5.7, dan Gambar 5.8, ketiga fungsi tujuan memiliki nilai terkecil ketika menggunakan kombinasi pc = 0,8 dan pm = 0,2. Nilai yang diperoleh ketika menggunakan kombinasi pc = 0,8 dan pm = 0,2 yaitu, biaya = 1693,0313252399, kandungan fosfor = 0,6000646279, dan kandungan protein = 19,0696222108. Ketiga fungsi tujuan pada kombinasi pc = 0,8 dan pm = 0,2 membuat fitness-nya menjadi yang terbesar. Oleh karena itu, kombinasi pc = 0,8 dan pm = 0,2 merupakan kombinasi yang optimal untuk menyelesaikan
112
permasalahan formulasi pakan ternak unggas. 1900 1850
Rerata f1
1800 1750 1700 1650 1:0
0.9 : 1/n
0.9 : 0.1
0.8 : 0.2
0.7 : 0.3
0.6 : 0.4
0.5 : 0.5
0.4 : 0.6
0.3 : 0.7
0.2 : 0.8
0.1 : 0.9
0:1
1600
Kombinasi Pc : Pm
Gambar 5.6 Grafik Hasil Pengujian Kombinasi pc dan pm terhadap Biaya (f1)
0.6 0.6
Rerata f2
0.6 0.6 0.6 0.6
1:0
0.9 : 1/n
0.9 : 0.1
0.8 : 0.2
0.7 : 0.3
0.6 : 0.4
0.5 : 0.5
0.4 : 0.6
0.3 : 0.7
0.2 : 0.8
0.1 : 0.9
0:1
0.6
Kombinasi Pc : Pm
Gambar 5.7 Grafik Hasil Pengujian Kombinasi pc dan pm terhadap Kandungan Fosfor (f2)
113
25 20
Rerata f3
15 10 5
1:0
0.9 : 1/n
0.9 : 0.1
0.8 : 0.2
0.7 : 0.3
0.6 : 0.4
0.5 : 0.5
0.4 : 0.6
0.3 : 0.7
0.2 : 0.8
0.1 : 0.9
0:1
0
Kombinasi Pc : Pm
Gambar 5.8 Grafik Hasil Pengujian Kombinasi pc dan pm terhadap Kandungan Protein (f3)
5.1.3 Hasil dan Analisis Uji Coba Ukuran Populasi Pengujian terakhir 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. Dari 10 kali percobaan untuk setiap perlakuan ukuran populasi didapat rerata fungsi tujuan, rerata fitness, dan rerata waktu (dalam mili detik) sebagaimana ditunjukkan pada Tabel 5.2. Rincian pengujian ukuran populasi dapat dilihat pada Lampiran G. Tabel 5.3 Nilai Rerata Hasil Pengujian Ukuran Populasi Populasi
f1
f2
f3
Fitness
Waktu
50
1744.064273639
0.6000764402
19.063932566
0.0171948385
923.8
100
1777.9463863744
0.6000494462
19.0670431619
0.0171954158
2063.6
114
Tabel 5.3 Nilai Rerata Hasil Pengujian Ukuran Populasi (Lanjutan) Populasi
f1
f2
Fitness
f3
Waktu
1705.7006025116
0.6000395134
19.0240190858
0.0171971188
2995.4
200
1708.9569131298
0.6000206747
19.0351164372
0.0171972953
4038.2
250
1701.8939164494
0.6000226486
19.0235495167
0.0171975887
5434.5
300
1646.536741907
0.6000238517
19.0301304684
0.0171975665
6901
350
1677.8531976414
0.6000211683
19.0319806127
0.0171974806
8202.7
400
1717.2429450625
0.6000325467
19.0342524339
0.017196962
9937.1
450
1687.9957320415
0.6000142058
19.0162483164
0.0171980768
11588.7
500
1706.427447039
0.6000104224
19.0357827281
0.0171975777
13274.3
Rerata fitness
150
0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 50
100
150
200
250
300
350
400
450
500
Populasi
Gambar 5.9 Grafik Hasil Pengujian Ukuran Populasi terhadap Fitness Berdasarkan Gambar 5.9, fitness terbesar didapat ketika ukuran populasi = 450. Jika diperhatikan pada Gambar 5.10, Gambar 5.11, dan Gambar 5.12, biaya terkecil diperoleh ketika ukuran populasi = 300 (1646,536741907), kandungan fosfor terkecil diperoleh ketika ukuran populasi = 500 (0,600010422440612), dan kandungan protein terkecil diperoleh ketika ukuran populasi = 450 (19,016248316449). Meskipun ketika ukuran populasi = 300 menghasilkan biaya terkecil, ukuran populasi ini tidak bisa dikatakan ukuran yang optimal karena fungsi tujuan kandungan protein juga berkontribusi dalam menentukan fitness. Karena ketika ukuran populasi = 450 menghasilkan rerata fitness terbesar, maka ukuran populasi 450 merupakan ukuran yang optimal untuk menyelesaikan permasalahan formulasi pakan ternak unggas.
115
1800
Rerata f1
1750 1700 1650 1600 1550 50
100
150
200
250
300
350
400
450
500
Populasi
Gambar 5.10 Grafik Hasil Pengujian Ukuran Populasi terhadap Biaya (f1)
0.6 0.6
Rerata f2
0.6 0.6 0.6 0.6 0.6 0.6 50
100
150
200
250
300
350
400
450
500
Populasi
Gambar 5.11 Grafik Hasil Pengujian Ukuran Populasi terhadap Kandungan Fosfor (f2)
116
19.08 19.07 19.06 19.05 Rerata f3
19.04 19.03 19.02 19.01 19 18.99 50
100
150
200
250
300
350
400
450
500
Populasi
Gambar 5.12 Grafik Hasil Pengujian Ukuran Populasi terhadap Kandungan Protein (f3)
5.2 Hasil dan Analisis Efisiensi dan Pemenuhan Kebutuhan Nutrisi Ternak Pada subbab ini akan dibahan efisiensi biaya dan pemenuhan kebutuhan nutrisi ternak dengan parameter genetika optimal yang telah didapatkan dari pengujian pada subbab 5.1. 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. Hasil percobaan menggunakan jumlah generasi, kombinasi pc dan pm, dan ukuran populasi optimal dapat dilihat pada Tabel 5.4 dan Tabel 5.5. Tabel 5.4 Hasil Formulasi Menggunakan Parameter Genetika Optimal Proporsi Bahan 6,3
5
f1
3,7 0,5 8,4 0,5 0,9 35,9 0,1 6,3
117
f2
f2
Waktu
1623,890 0,600014 19,08683 17141 5325444 7929 43195
Tabel 5.5 Kebutuhan Nutrisi Ayam Petelur Starter dan Kandungan Nutrisi dalam Formula Pakan Hasil Formulasi Kebutuhan Nutrisi EM(Kkal/kg) PK (%/kg)
2800 *
19 *
LK (%/kg)
4-6
SK (%/kg)
4-5
Ca (%/kg)
0,9-1,1
P (%/kg)
0,6-0,8
Lis (%/kg)
0,85 *
Met (%/kg)
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 Aritonang (2013), harga konsetrat ayam petelur pada tahun 2010 adalah 4700 rupiah per kg. Dari Tabel 5.4 dan Tabel 5.5, dapat dihitung efisiensi biaya pakan buatan sendiri (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. efisiensi biaya=100 %−(
biaya pakan buatan sendiri ×100 %) biayakonsentrat
efisiensi biaya=100 %−(
1623.8905325444 ×100 %) 4700
efisiensi biaya=65.4491376054 % 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 5.5, pemenuhan kebutuhan nutrisi ternak mencapai 100% dengan kandungan fosfor dan protein yang sangat kecil.
118
BAB 6 PENUTUP 6.1 Kesimpulan 1. Berdasarkan penelitian ini, NSGA-II dapat digunakan untuk menyelesaikan permasalahan formulasi pakan multitujuan. 2. Berdasarkan hasil pengujian, parameter genetika yang digunakan pada NSGAII 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.
6.2 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 yang sama. 3. Pada penelitian ini, formula pakan yang diformulasikan merupakan total selfmixing, sehingga untuk semi self-mixing perlu dilakukan penelitian lebih lanjut agar menghasilkan pakan yang memenuhi kebutuhan nutrisi ternak unggas, murah, dan ramah lingkungan.
119
DAFTAR PUSTAKA Amazine, 2013. Nitrogen (N): Fakta, Sifat, Kegunaan & Efek Kesehatannya. [online] Tersedia di: [Diakses 22 Nov. 2015]. Aritonang, R.D.K., 2013. Kelayakan Usaha Budidaya Petelur (Analisis Biaya manfaat dan BEP pada Keanu Farm, Kendal). S1. Universitas Negeri Semarang. Tersedia di: [Diakses 7 Jan. 2016]. Basuki, A., 2003. Algoritma Genetika Suatu Alternatif Penyelesaian Permasalahan Searching, Optimasi dan Machine Learning. [pdf] Tersedia di: [Diakses 25 Dec. 2014]. Blickle, T. dan Thiele, L., 1995. A Comparison of Selection Schemes used in Genetic Algorithms. [Techical Report] Zurich: Computer Engineering and Networks Lab (TIK), Swiss Federal Institute of Technology (ETH). Tersedia di: [Diakses 27 Oct. 2015]. Caramia, M. dan Dell’Olmo, P., 2008. Chapter 2 Multi-objective Optimization. Dalam: Multi-objective Management in Freight Logistics. [online] London: Springer London. Tersedia di: [Diakses 11 Jun. 2015]. Castrodeza, C., Lara, P., dan Peña, T., 2005. Multicriteria Fractional Model for Feed Formulation: Economic, Nutritional and Environmental Criteria. Agricultural systems, [e-journal] 86(1), pp.76–96. Tersedia di: [Diakses 29 Apr. 2015]. Ciptayani, P.I., Mahmudy, W.F., dan Widodo, A.W., 2009. Penerapan Algoritma Genetika untuk Kompresi Citra Fraktal. Jurnal Ilmu Komputer, [e-journal] 2(1). Tersedia di: [Diakses 8 Jun. 2015]. Deb, K., 2000. An Efficient Constraint Handling Method for Genetic Algorithms. Computer Methods in Applied Mechanics and Engineering, [e-journal] 186(2–4), pp.311–338. Tersedia di: [Diakses 31 Jul. 2015]. Deb, K., 2001. Multi-objective Optimization Using Evolutionary Algorithms. [ebook] John Wiley & Sons. Tersedia di: [Diakses 13 Jun. 2015]. Deb, K., 2011a. Multi-objective Optimisation Using Evolutionary Algorithms: An Introduction. [Techical Report] Kanpur: Department of Mechanical Engineering, Indian Institute of Technology Kanpur, pp.1–24. Tersedia di:
120
[Diakses 11 Jun. 2015]. Deb, K., 2011b. NSGA2 gnuplot (1.1.6). [program komputer] Kanpur Genetic Algorithms Laboratory. Tersedia di: [Diakses 22 Jun. 2015]. Deb, K. dan Agrawal, R.B., 1995. Simulated Binary Crossover for Continuous Search Space. Complex Systems, [e-journal] 9(2), pp.115–148. Tersedia di: [Diakses 21 Jun. 2015]. Deb, K. dan Goyal, M., 1996. A Combined Genetic Adaptive Search (GeneAS) for Engineering Design. Computer Science and Informatics, [e-journal] 26(4), pp.30–45. Tersedia di: [Diakses 27 Oct. 2015]. Deb, K., Pratap, A., Agarwal, S., dan Meyarivan, T., 2002. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, [e-journal] 6(2), pp.182–197. Tersedia di: [Diakses 26 Dec. 2015]. Deong, 2012. Tournament Selection in Genetic Algorithms. [forum diskusi] Jawaban untuk Manolo. Tersedia di: [Diakses 13 Oct. 2015]. Direktorat Pembinaan Sekolah Menengah Kejuruan, 2014. Agribisnis Pakan Ternak Unggas. [e-book] Tersedia di: [Diakses 13 Apr. 2015]. Gen, M. dan Cheng, R., 2000. Genetic Algorithms and Engineering Optimization. John Wiley & Sons. Ghiasi, H., Pasini, D., and Lessard, L., 2011. A Non-Dominated Sorting Hybrid Algorithm for Multi-objective Optimization of Engineering Problems. Engineering Optimization, [e-journal] 43(1), pp.39–59. Tersedia di: [Diakses 16 Jun. 2015]. Hozairi, Artana, K.B., Masroeri, dan Irawan, M.I., 2014. Implementation of Nondominated Sorting Genetic Algorithm-II (NSGA-II) for Multiobjective Optimization Problems On Distribution of Indonesian Navy Warship. Journal of Theoretical and Applied Information Technology, [e-journal] 64(1), pp.274–281. Tersedia di: <www.jatit.org/volumes/Vol64No1/ 32Vol64No1.pdf> [Diakses 14 Nov. 2015].
121
Info Medion, 2013. Review: Mencampur Ransum Sendiri (Self Mixing). [online] Info Medion Online. Tersedia di: [Diakses 12 Apr. 2015]. Mahbub, M.S., 2015. In a Comparison Between NSGA-II and Its Implementation in C Code and JMetal, does NSGA-II Implementation Oppose Against Its Concepts? [Jawaban 3]. [forum diskusi] Jawaban untuk Subha. Tersedia di: [Diakses 9 Dec. 2015]. Mahmudy, W.F., 2006. Penerapan Algoritma Genetika pada Optimasi Model Penugasan. Natural, [e-journal] 10(3), pp.197–207. Tersedia di: [Diakses 26 May 2015]. Mahmudy, W.F., 2013. Algoritma Evolusi. [pdf] Tersedia di: [Diakses 26 May 2015]. Mahmudy, W.F. dan Rahman, M.A., 2011. Optimasi Fungsi Multi-objektif Berkendala Menggunakan Algoritma Genetika Adaptif dengan Pengkodean Real. Kursor, [e-journal] 6(1), pp.19–26. Tersedia di: [Diakses 26 May 2015]. Mawaddah, N.K. dan Mahmudy, W.F., 2006. Optimasi Penjadwalan Ujian Menggunakan Algoritma Genetika. Kursor, [e-journal] 2(2), pp.1–8. Tersedia di: [Diakses 26 May 2015]. Nebro, A.J. dan Durillo, J.J., 2015. jMetal (4.5.2). [program komputer] Tersedia di: [Diakses 11 May 2015]. Parakkasi, A., 1998. Ilmu Nutrisi dan Makanan Ternak Ruminan. Jakarta: UI-Press. Peña, T., Lara, P., dan Castrodeza, C., 2009. Multiobjective Stochastic Programming for Feed Formulation. Journal of the Operational Research Society, [e-journal] 60(12), pp.1738–1748. Tersedia di: [Diakses 26 May 2015]. Poultry Hub, 2015. Feed Formulation. [online] Tersedia di: [Diakses 17 Apr. 2015]. Rasyaf, M., 2003. Beternak Ayam Pedaging. Jakarta: Penebar Swadaya. Saini, A. dan Saraswat, A., 2012. Solving a Multi-objective Reactive Power Market Clearing Model Using NSGA-II. International Journal of Advance Information Technology, [e-journal] 2(3), pp.49–62. Tersedia di:
122
journal/IJAIT/papers/2312ijait04.pdf> [Diakses 15 Jun. 2015]. Srinivas, N., dan Deb, K., 1994. Multiobjective Optimization Using Nondominated Sorting in Genetic Algorithms. Evolutionary Computation, [e-journal] 2(3), pp.221–248. Tersedia di: [Diakses 25 Jun. 2015]. Syafar, A.M., 2014. Kebutuhan Ransum Ayam Broiler Fase Starter dan Finisher. [pdf] Tersedia di: [Diakses 20 May 2015]. Tim Pusat Bahasa Depdiknas, 2008. Kamus Bahasa Indonesia. [pdf] Tersedia di: [Diakses 20 May 2015]. Toriq, A., 2008. Optimasi Formulasi Pakan Ternak Dengan Menggunakan Algoritma Genetik. S1. Universitas Brawijaya. Wahju, J., 1992. Ilmu Nutrisi Unggas. Yogyakarta: Gadjah Mada University Press. Wardani, L.K., Safrizal, M., dan Chairi, A., 2011. Optimasi Komposisi Bahan Pakan Ikan Air Tawar Menggunakan Metode Multi-Objective Genetic Algorithm. Seminar Nasional Aplikasi Teknologi Informasi. [e-journal] Tersedia di: [Diakses 26 May 2015]. Widodo, A.W., dan Mahmudy, W.F., 2010. Penerapan Algoritma Genetika pada Sistem Rekomendasi Wisata Kuliner. Kursor, [e-journal] 5(4), pp.205–211. Tersedia di: [Diakses 26 May 2015]. Widodo, E., 2010. Teori dan Aplikasi Pembuatan Pakan Ternak Ayam dan Itik. Widodo, W., n.d. Nutrisi dan Pakan Unggas Kontekstual. Wikipedia 2015. Mineral. Dalam: Wikipedia bahasa Indonesia, ensiklopedia bebas. [online] Tersedia di: [Diakses 21 May 2015]. Zitzler, E., Deb, K., dan Thiele, L., 2000. Comparison of Multiobjective Evolutionary Algorithms: Empirical Results. Evolutionary Computation, [ejournal] 8(2), pp.173–195. Tersedia di: [Diakses 10 Jun. 2015].
123
LAMPIRAN LAMPIRAN A KOMPOSISI BAHAN PAKAN TERNAK UNGGAS No
Bahan Pakan
Harga EM PK LK SK Ca P Lis Met (Rp)* (Kkal/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg)
1
Bekatul
1000
2860
10,2
7
3
0,04
0,16
0,71
0,27
2
Jagung Kuning
2800
3370
8,6
3,9
2
0,02
0,1
0,2
0,18
3
Menir
800
3390
8,9
4
1
0,03
0,4
0
0,27
4
Pollard
1800
1300
15
4
10
0,14
0,32
0,3
0,17
5
Sorgum
900
3250
10
2,8
2
0,03
0,1
0,2
0,13
6
Tepung Gaplek
300
2970
1,5
0,7
0,9
0,18
0,09
0,03
0,09
7
Tetes Tebu
500
1960
3
0,1
0
0,9
0,1
0
0
8
Bungkil Biji Kapas
1500
2100
41
4,8
12
0,18
0,33
1,6
0,6
9
Bungkil Kedelai
4000
2240
42
0,9
6
0,29
0,65
2,9
0,65
10
Bungkil Kelapa
2100
2200
18,5
2,5
15
0,2
0,57
0,64
0,29
11
Bungkil Wijen
2500
1910
45
5
5
2
0,3
1,3
1,4
12
Bungkil Kacang Tanah
3700
2200
42
1,9
17
0,2
0,2
1,8
0,5
13
Tepung Ikan (Herring)
6500
2640
72
10
1
2
1,5
6,4
2
14
Tepung Ikan Lokal
5000
2650
58
9
1
5,5
2,8
5
1,8
15
Tepung Lamtoro
1500
828
18,9
5,9
16,3
0,05
0
0
0,55
16
Minyak Kelapa
8000
8600
0
100
0
0
0
0
0
17
Tepung Batu
450
0
0
0
0
40
0
0
0
124
No
Bahan Pakan
Harga EM PK LK SK Ca P Lis Met (Rp)* (Kkal/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg)
18
DL Metionin
40000
0
0
0
0
0
0
0
90
19
Garam
200
0
0
0
0
0
0
0
0
20
Kulit Kerang
250
0
0
0
0
37
0
0
0
21
L-lysin HCl
40000
0
0
0
0
0
0
80
0
22
Premix
5000
0
0
0
0
35
0
0
0
Sumber: Diadaptasi dari Widodo (2010)
* Harga bahan berubah sesuai kebijakan pemerintah dan/atau nilai tukar rupiah
125
LAMPIRAN B BATAS MAKSIMAL PENGGUNAAN BAHAN PAKAN TERNAK AYAM DAN ITIK Petelur - Periode
Pedaging - Periode
No
Bahan Pakan
1
Bekatul
10
15
30
10
10
2
Jagung
60
60
70
60
70
3
Menir
40
40
40
40
40
4
Pollard
5
15
30
15
20
5
Sorgum
25
40
40
25
40
6
Tepung Gaplek
8
10
10
8
10
7
Tetes Tebu
2
2
2
2
2
8
Bungkil Biji Kapas
5
5
10
2.5
5
9
Bungkil Kedelai
30
30
40
30
40
10
Bungkil Kelapa
10
15
25
15
15
11
Bungkil Kacang Tanah
5
7.5
15
5
7.5
12
Tepung Ikan
7
8
10
7
10
13
Tepung Lamtoro
5
5
5
5
5
14
Minyak/Lemak
5
6
7
5
7
15
Kulit Kerang
2
3
5
1
3
16
Gandum
10
20
40
10
30
17
Kapur
5
5
5
5
5
18
Limbah Udang
5
5
8
5
5
19
Tepung Bulu
2
5
5
5
5
20
Tepung Daging
7
7
7
7
7
21
Tepung Bekicot
3
3
3
3
3
Starter (%) Grower (%) Layer (%) Starter (%) Finisher (%)
Sumber: Diadaptasi dari Widodo (2010)
126
LAMPIRAN C KEBUTUHAN NUTRISI UNGGAS PEDAGING DAN PETELUR Kebutuhan Zat Makanan Periode (Umur)
No
Jenis Unggas
1
Ayam pedaging Starter (03mg)
2
Ayam petelur
EM * PK * LK SK Ca P Lis * Met * (Kkal/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) (%/kg) 2900
22
5-8
3-5 0,9-1,1 0,7-0,9
1,1
0,5
Finisher (36mg)
3100
20
5-8
3-5 0,9-1,1 0,7-0,9
1
0,38
Starter (08mg)
2800
19
4-6
4-5 0,9-1,1 0,6-0,8
0,85
0,3
Grower (822mg)
2600
16
4-6
5-6 0,9-1,1 0,6-0,8
0,6
0,25
Layer 1 (2252mg)
2650
17
4-6
4-6 3,3-3,8 0,7-0,9
0,73
0,34
Layer 2 (>52mg)
2650
15.5
4-6
4-6 3,5-3,8 0,7-0,9
0,6
0,25
0,85
0,3
3
Ayam petelur jantan
1 hari dipotong
2900
19
5-8
4-5 0,9-1,1 0,6-0,8
4
Itik
(0-2mg)
2900
22
5-8
3-5 0,65 *
0,4 *
0,9
0,4
(2-7mg)
3000
16
5-8
3-5
0,6 *
0,3 *
0,65
0,3
Layer
2900
15
4-5
4-6 2,75 *
0,4 *
0,6
0,27
Starter (03mg)
2800
22
5-8
3-5 0,65 *
0,4 *
0,9
0,4
Finisher (37mg)
2900
16
5-8
3-5
0,3 *
0,65
0,3
Starter (03mg)
2700
18
4-7
3-6 0,9-1,1 0,7-0,9
0,6
0,25
Finisher (38mg)
2800
15
4-7
3-6 0,9-1,1 0,7-0,9
0,6
0,25
5
6
Itik jantan pedaging
Ayam buras
0,6 *
Sumber: Diadaptasi dari Widodo (2010)
* Kebutuhan minimal
127
LAMPIRAN D TRANSKRIP WAWANCARA DENGAN PAKAR Tanggal
: 11 November 2015 – 7 Januari 2016
Tempat wawancara : Fakultas Peternakan Universitas Brawijaya Malang Narasumber
: Dr. Ir. Eko Widodo, M.Agr.Sc.
Pewawancara
: Eko Kurniawan Subha
Topik wawancara
: Formulasi pakan ternak unggas
Dalam memformulasi pakan, ada beberapa hal yang harus diperhatikan, yaitu ternak sasaran, kebutuhan nutrisi ternak, komposisi bahan pakan, dan batasan penggunaan bahan pakan. Dalam memformulasikan pakan, ternak sasaran bukanlah komoditi (seperti: ayam petelur, ayam pedaging, itik petelur, itik pedaging, dan puyuh) akan tetapi periode/umur dari komoditi. Penyusunan pakan berdasarkan periode dilakukan karena kebutuhan nutrisi anakan dan kebutuhan nutrisi indukan berbeda. Kebutuhan nutrisi ternak dapat diketahui dengan mencari informasi standar kebutuhan nutrisi ternak seperti SNI dan NRC. Komposisi nutrisi bahan pakan yang ada di pasar berbeda-beda, tergantung pada varietas, tempat bahan pakan ditanam, dan musim. Batasan penggunaan bahan bahan pakan berfungsi untuk mempermudah penyusun pakan dan menghindari antinutrisi yang ada pada bahan pakan. Dalam memformulasi pakan penyusun pakan mendapatkan toleransi berkaitan dengan penggunaan bahan pakan. Penggunaan bahan pakan boleh lebih dari batasan penggunaan bahan pakan, namun tidak lebih dari 2% dari batasan penggunaan bahan pakan. Jumlah bahan pakan optimal untuk total self-mixing adalah 10-15 bahan. Sedangkan untuk semi self-mixing, bahan-bahan yang biasa digunakan adalah konsentrat, jagung, dan bekatul. Penyusunan pakan sendiri biasanya dilakukan untuk mengurangi biaya produksi peternakan. Jika ingin menyusun pakan yang ramah lingkungan, maka tidak hanya kandungan fosfor yang diminimalisasi, akan tetapi kandungan protein juga perlu diminimalisasi karena kandungan nitrogen dalam pakan yang tidak dicerna akan terbungan ke lingkungan bersama kotoran. Kedunya dapat merusak lingkungan jika tidak terurai dan terjadi penumpukan. Ketika memformulasi pakan, terkadang kandungan nutrisi dalam formula pakan melebihi atau kurang dari kebutuhan nutrisi ternak. Jika disediakan lebih dari satu formula akan, nilai kekurangan atau kelebihan nutrisi ini dapat dijadikan penalti untuk memilih formula yang lebih baik. Nilai penalti ini dapat dihitung menggunakan Persamaaan (1) . k
n
i=1
j =1
pt =( ∑ pai )+( ∑ pb j )
(1)
pt adalah nilai penalti formula pakan; pai digunakan dalam konteks kebutuhan nutrisi, yaitu nilai penalti untuk pemenuhan zat makanan ke-i; dan pbj digunakan
128
dalam konteks batasan penggunaan bahan pakan, yaitu nilai penalti untuk pemenuhan batasan penggunaan bahan pakan ke-j. Nilai pai dan pbj didapatkan dengan mematuhi pola aturan pada Persamaan (2), Persamaaan (3), dan Persamaaan (4). pm t < lb t ,
pc t= pm t−lbt
(2)
pmt > ubt ,
pct =ub t− pmt
(3)
lb t≤ pmt ≤ubt ,
(4)
pct =0
pmt adalah nilai pemenuhan kriteria pembatas ke-t; 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.
129
LAMPIRAN E HASIL UJI COBA JUMLAH GENERASI Generasi: 50 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
130
1
5,3
3,2
2,1
4,7
8,8
4,3
0,9
35,2 0,1
6,3
1803,5966149506
0,6000705219
19,0313117066 0,0171957023 1839
2
7
3,5
2,1
4,4
8,6
2
0,7
33,8 0,9
6,2
1830,8526011561
0,6002456647
19,1419075145 0,0171877214 1204
3
9,6
3,7
3,1
2
8,9
1,6
0,7
32
0,8
6,7
1786,7583212735
0,6001447178
19,0395079595 0,0171934681 1059
4
3,1
1,5
3,7
5,9
8,1
1
0,9
39,3 1,1
5,8
1873,7926136364
0,6000426136
19,0474431818 0,0171958247 1036
5
4,2
2,8
3
3,2
8,5
5,4
0,6
30,9 0,1
6
1869,2426584235
0,600015456
19,2386398764 0,0171913744 1205
6
7,3
2,8
1,8
3
5,9
2,5
0,7
26
0,1
5,3
1765,7942238267
0,6002707581
19,1391696751 0,0171873009 964
7
4,1
2,1
2,7
6,1
8,8
0,9
0,8
37,6 0,4
5,5
1791,5942028986
0,6
19,1550724638 0,0171943032 895
8
9,9
3,8
0,2
5,8
8,3
2
0,9
32,5 0,2
6,2
1739,1833810888
0,6008452722
19,0312320917 0,0171744218 1130
9
5,2
4,2
2,9
3,3
6,4
1,9
0,7
38,5 0,3
6,3
1708,2496413199
0,6000143472
19,0592539455 0,0171968016 1040
10
6,2
4,9
0,1
1,8
6,5
0,8
0,5
24,7 0,1
4,5
1600,6986027944
0,6000798403
19
1776,9762861369
0,6001729192
19,0883538415 0,017191393
Rerata
0,0171970122 908 1128
Generasi: 100 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
131
1
5,6
3,1
0,2
8,5
9,4
0,1
1,1
39,9 0,2
5,5
1716,1005434783
0,6007065217
19,0012228261 0,0171791732 1108
2
4,8
2,7
0,2
6,3
9
3,9
0,9
29,8 0,5
5,3
1879,7318611987
0,6005362776
19,0113564669 0,0171831047 1279
3
4,6
4,7
1,5
2,3
7,3
3,2
0,7
30,9 0,2
5,6
1724,3442622951
0,6000491803
19,0426229508 0,0171962377 1174
4
9,7
3,6
1,2
0,7
4,9
0,2
0,5
20,2 0,1
4,7
1610,807860262
0,6001746725
19,0194323144 0,0171938022 912
5
7,3
2,2
4,4
3,7
7,9
1,3
0,9
37,6 0,3
6,6
1767,5207756233
0,600166205
19,1084487535 0,0171910375 1038
6
7,3
5
3,4
1,1
8,4
1,8
0,8
34,8 0,1
6,6
1678,2106782107
0,60001443
19,2187590188 0,0171925495 1179
7
3,3
3
1,1
4,7
9,5
8,1
0,8
29,9 0,1
6,1
1932,7327327327
0,6014714715
19,0027027027 0,0171573074 1240
8
8,7
2,2
3,9
0,2
5,1
0,5
0,5
25,5 0,1
5,4
1682,6295585413
0,6008637236
19,0007677543 0,0171749464 1166
9
5,3
2,2
3,4
4,4
7,2
0,5
0,7
37,5 0,1
5,7
1713,0597014925
0,6004179104
19,0105970149 0,017186926
10
1,5
2,8
1,6
4,4
7,8
1,1
0,7
32,4 0,1
4,4
1717,8697183099
0,6017605634
19,0038732394 0,0171499349 1023
1742,3007692145
0,6006160956
19,0419783042 0,017180502
Rerata
1022
1114,1
Generasi: 150 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
132
1
7
0,9
3,4
6,6
9,9
0,6
1
39
0,3
6,2
1797,7303070761
0,6014686248
19,0028037383 0,0171577718 974
2
3,7
3,2
2,5
4,5
9,1
0,7
1
37,4 0,2
5,5
1712,2418879056
0,6001474926
19,0143067847 0,0171943307 1033
3
7,5
2,7
2,9
2,9
9,7
0,2
0,9
31,8 0,2
5,7
1714,3410852713
0,6013178295
19,0013953488 0,0171622508 1182
4
9,9
4,9
1,9
4,4
8
0,6
1
39,9 0,1
7
1651,6087516088
0,60001287
19,0572715573 0,017197098
5
2,4
2,5
1,8
3,6
6,3
1,3
0,7
28,9 0,2
4,3
1739,9038461539
0,6005769231
19,0023076923 0,0171826557 1222
6
5,8
4,6
1,4
0,2
6,9
0,4
0,5
32,2 0,1
6,6
1600,936967632
0,6505792164
19,0022146508 0,0159034191 1293
7
8,7
3,7
1,3
5,2
9,2
1,3
0,7
35,7 0,1
6,2
1710,8876560333
0,6000970874
19,0312066574 0,0171952679 1120
8
4,3
4,7
2,3
2,2
5,5
0,2
0,8
35,1 0,2
5,4
1608,7314662274
0,6003953871
19,0217462932 0,0171876211 1266
9
4,8
3,1
1
6,1
9,5
1,1
1
33,1 0,2
5,1
1760,1538461539
0,6000153846
19,2286153846 0,0171919789 1334
10
8,4
0,6
1,3
7,7
9,3
1,6
0,9
32,9 0,9
6,2
1914,9713467049
0,613008596
19,0042979943 0,0168444037 1475
1721,1507160767
0,6067619411
19,0366166102 0,0170216798 1204
Rerata
1141
Generasi: 200 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
133
1
4,4
4,5
0,4
4,7
7,7
2,5
0,9
33,6 0,3
5,5
1730,3100775194
0,6015968992
19,0010852713 0,0171544911 1186
2
7,6
4,8
2,2
1
6,2
0,3
0,5
33,3 0,1
6,2
1597,5080385852
0,6130868167
19,002733119
3
3,8
3,1
4
2,6
7,3
1
0,9
37,3 0,1
5,8
1694,157814871
0,600030349
19,0452200303 0,0171967925 1305
4
5,6
4,9
1,6
4,5
9,5
0,3
1,1
40
6,1
1653,5907859079
0,6000406504
19,0020325203 0,0171978445 1035
5
6,5
4,9
3,7
0,1
5,9
0,1
0,8
38,6 0,1
7
1587,7400295421
0,6185376662
19,0007385524 0,0166997578 1345
6
5,7
3,3
2,1
3,7
5,8
0,1
0,8
31,6 0,6
5,2
1731,0696095076
0,6000339559
19,1517826825 0,0171936449 1369
7
5,2
4,5
0,4
2,3
9,6
2
0,6
31,5 0,1
6,2
1691,3461538462
0,6333974359
19,0014423077 0,016320064
8
9,3
1,7
1,8
2,4
7,6
10,4 0,5
18,1 0,4
6,7
2113,6672325976
0,6000169779
19,0269949066 0,0171964953 1209
9
2,1
2,4
4
2,7
5,7
3,3
0,8
34,6 0,1
5,6
1781,2398042414
0,6000326264
19,0504078303 0,0171962976 1219
10
5,3
4,7
1,2
3,5
7,8
2,2
0,7
33,8 0,2
5,7
1699,6159754224
0,6
19,0291858679 0,0171980589 1454
1728,0245522041
0,6066773378
19,0311623088 0,017019685
Rerata
0,2
0,0168434035 1551
1375
1304,8
Generasi: 250 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
134
1
5,7
4,1
4
0,8
4,6
0,4
0,8
35,7 0,1
6
1610,7717041801
0,6001125402
19,0049839228 0,0171959271 1408
2
4,1
4,9
2,5
2,6
5,9
0,1
0,9
37,7 0,7
5,8
1668,0214723926
0,6005521472
19,0009202454 0,0171836288 1374
3
9,3
2,5
4,5
2,2
6,7
1
0,7
35,5 0,1
6,7
1708,7427745665
0,6000289017
19,0153179191 0,0171976079 1164
4
8,8
4,5
1,3
1,8
8,5
2,9
0,5
27,6 0,2
6
1728,421900161
0,6006119163
19,0062801932 0,0171816138 1395
5
8,1
2
3,1
5,1
9
0,3
1
36,9 0,2
6,2
1739,6383866481
0,6004311544
19,0001390821 0,017186759
6
3,5
2,7
1,7
4,5
9,2
2,4
0,7
31,6 0,1
5
1777,4429967427
0,6
19,0371335505 0,0171975819 1541
7
6,9
3,9
3,9
1
8,4
0,5
0,8
34,9 0,1
6,2
1653,7537537538
0,6002852853
19,0088588589 0,0171908632 1332
8
3,7
2,5
0,9
5
7,9
1,6
0,8
29,3 0,1
4,5
1754,7069271758
0,6008880995
19,0003552398 0,0171740386 1409
9
8,5
4,6
0,3
2,8
9,8
1,2
0,8
29,8 0,1
6,1
1671,71875
0,616625
19,0021875
10
8,9
4,3
1,9
3,8
7,6
0,1
0,8
36,7 0,1
6,3
1640,8510638298
0,6007801418
19,0066666667 0,0171772498 1558
1695,406972945
0,6020315186
19,0082843178 0,0171434819 1403,6
Rerata
0,016749549
1393
1462
Generasi: 300 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
135
1
7,3
2,9
3,3
3,4
7,4
1,6
0,7
36,4 0,1
6,4
1720,5035971223
0,6022014388
19,0011510791 0,0171378353 1873
2
7,8
2,5
3,1
0,7
5,6
0,2
0,6
24,6 0,2
5
1681,3121272366
0,6003976143
19,0043737575 0,0171877715 1469
3
1,8
4,3
3,8
2,7
6,6
1,4
0,9
38,2 0,2
5,7
1703,887195122
0,6000609756
19,3960365854 0,0171864113 1646
4
9,2
2,6
2,2
3
9
4,1
0,8
25,6 0,4
6,2
1877,971473851
0,6
19,1448494453 0,0171943253 1376
5
7,7
3
1,4
3,1
9,6
0,5
0,8
32,1 0,1
6,4
1700,4636785162
0,6305873261
19,0004636785 0,0163904155 1653
6
9,9
4,8
0,1
4
8,6
0,9
0,8
30,9 0,1
5,9
1655,6060606061
0,6009090909
19,0004545455 0,0171737956 1651
7
3,8
4,5
0,7
5,8
8,7
0,5
0,9
39,7 0,1
5,5
1656,6239316239
0,6024501425
19,0005698006 0,0171312203 1549
8
8,7
3
2,8
3,7
8,9
2
0,8
33,5 0,1
6,4
1751,7882689557
0,6
19,1121602289 0,0171956022 1638
9
3,3
5
1,6
3,8
8
1,3
1
38,9 0,1
5,8
1650,1453488372
0,6025872093
19,0007267442 0,017127464
10
4
3,5
3,4
2,7
5,6
0,1
0,7
37,2 0,4
5,6
1674,1297468354
0,6011392405
19,0006329114 0,0171673526 1529
1707,2431428706
0,6040333038
19,0661418776 0,0170892194 1609,7
Rerata
1713
Generasi: 350 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
136
1
1,8
3,9
2,5
3,1
8
4,4
0,9
36,6 0,2
6,2
1782,9142011834
0,6078402367
19,0035502959 0,0169835177 1542
2
9,8
4
4,6
0,1
5,4
0,7
0,8
35,2 0,1
7
1634,8596750369
0,6011964549
19,0038404727 0,0171658241 1716
3
8,8
1,8
2,4
5
7,4
1,7
0,9
32
6
1784,0634441088
0,6
19,0132930514 0,0171982197 2006
4
4,6
4,2
2,3
4
9,5
0,1
0,9
39,8 0,1
5,9
1652,731092437
0,6028991597
19,0021008403 0,0171188299 1777
5
3,5
2,9
1,6
5,7
7,8
0,8
0,9
36,4 0,1
5,1
1710,4166666667
0,6004320988
19,0145061728 0,0171864334 1552
6
7,4
4,9
1,8
4,9
9,2
0,3
1,1
39,9 0,3
6,5
1681,0615989515
0,6
19,1699868938 0,0171942641 1540
7
0,9
2
1
4,9
9,8
0,5
0,8
28,4 0,2
3,7
1766,2835249042
0,6043103448
19,0026819923 0,017079692
8
1,7
1,2
4,4
12,2 7,9
9,4
1
35,2 1
7
2258,024691358
0,6000123457
21,1112345679 0,0171444338 1592
9
4,9
4
2,5
3,9
7,7
1,8
0,7
38,8 0,1
6,1
1694,6808510638
0,6001134752
19,0046808511 0,0171956021 1567
10
8,5
2,2
2,4
4,2
7,9
0,1
0,8
31,8 0,1
5,6
1710,534591195
0,6007704403
19,0083333333 0,0171772242 1759
1767,5570336905
0,6017574556
19,2334208472 0,0171444041 1685
Rerata
0,2
1799
Generasi: 400 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
137
1
5,8
3,2
2,7
3,5
6,2
1
0,7
35,2 0,1
5,7
1685,5694227769
0,6002028081
19,000624025
2
2,2
5
0,8
5,4
8,3
1,2
1
40
0,1
5,4
1658,5014409222
0,6000432277
19,0332853026 0,0171968909 2008
3
9,4
5
0,2
3,2
9,2
0,9
0,7
29,5 0,1
5,7
1648,7480438185
0,6004381847
19,010485133
4
3
4,7
1,6
4,2
8,9
1,4
1
38,7 0,2
5,7
1681,4121037464
0,6013544669
19,0002881844 0,0171613825 1603
5
6,4
2,5
3,6
4,2
8,8
0,2
0,8
38,8 0,1
6,1
1704,1958041958
0,6004895105
19,0072727273 0,0171850625 1925
6
2,4
1,3
4,2
4,9
9,4
1,3
1
39,2 0,1
5,6
1776,3688760807
0,6006628242
19,0020172911 0,0171801646 1849
7
3,4
2,7
0,1
8,3
10
0,1
1
36,5 0,4
4,7
1762,6488095238
0,6
19,0697916667 0,0171967295 1797
8
4,9
3,8
2
5,2
9,9
1,4
1,1
39,4 0,5
6,2
1751,4112903226
0,6010887097
19,0004032258 0,0171684938 1826
9
5,1
4,4
0,8
3,2
6,9
0,4
0,6
30,7 0,1
4,8
1624,2105263158
0,6000175439
19,0024561404 0,0171985839 1891
10
2
5
0,1
4,3
7,6
1,3
0,9
33,3 0,3
4,7
1671,1764705882
0,6004537815
19,0075630252 0,0171861613 1797
1696,4242788291
0,6004751057
19,0134186721 0,017185333
Rerata
0,0171932662 1787
0,0171865945 1898
1838,1
Generasi: 450 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
138
1
7
5
0,6
4,6
8,6
0,1
1
39,5 0,1
6,6
1629,4117647059
0,6165800274
19,002872777
2
2,5
3,5
2,1
4,3
7,4
1,3
0,9
36,7 0,2
5,3
1706,9314641745
0,6018380062
19,0017133956 0,0171478937 1661
3
7,2
4
3,3
1,5
6,3
0,6
0,8
34,3 0,1
6,1
1639,5638629284
0,6005919003
19,0003115265 0,0171826475 1950
4
6,5
5
3,5
0,3
6,9
1,8
0,8
34,9 0,2
6,5
1655,1204819277
0,6002710843
19,0006024096 0,0171914809 1931
5
2,2
2,4
0,1
11,9 9,3
0,8
1,1
39,9 0,3
4,8
1842,5137362637
0,6
19,7428571429 0,0171786063 1938
6
9,9
4,9
1,9
4,1
8,3
0,5
0,9
39,9 0,1
7
1644,5806451613
0,6011225806
19,0043870968 0,017167817
7
4,4
3,9
3,1
2,8
6,3
0,2
0,9
37,5 0,2
5,7
1646,6923076923
0,6000307692
19,0030769231 0,0171981154 1900
8
9,8
4,5
2,2
0,1
6,9
0,1
0,6
26,2 0,1
5,6
1600,1782531194
0,6000178253
19,0294117647 0,0171979232 1667
9
4,7
4,6
3,6
0,2
5,8
2,5
0,8
35,7 0,2
6,7
1678,3950617284
0,6129012346
19,0010802469 0,0168480864 1912
10
9,1
0,8
3,1
7,3
9,4
0,8
0,8
39,6 0,1
6,5
1782,3225806452
0,6008129032
19,0018064516 0,017175993
1682,5710158347
0,6034166331
19,0788119735 0,0171039432 1869,9
Rerata
0,0167508683 1958
1803
1979
Generasi: 500 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
139
1
9,1
2,8
3,2
0,2
5,9
2,3
0,4
24,1 0,2
5,7
1748,6085343228
0,6000556586
19,0063079777 0,0171969807 2180
2
9
3,9
2,2
3,8
7,6
0,1
0,8
35,5 0,1
6,2
1659,3930635838
0,6002745665
19,0854046243 0,0171890302 1967
3
9,7
3
3,2
0,1
4,1
0,6
0,5
24,8 0,1
5,5
1647,1899224806
0,6000775194
19,0168604651 0,0171964337 1938
4
1,5
4,4
0,9
5,5
8,1
0,3
1
38,4 0,6
5
1705,4794520548
0,6005175038
19,0059360731 0,0171843188 2115
5
3,4
3,1
3,2
1,7
6,4
2,6
0,7
31,3 0,1
5,4
1734,4559585492
0,6020725389
19,0001727116 0,0171413708 2118
6
8
0,3
0,9
10,1 9,9
0,6
1,1
36,6 0,1
5,5
1812,6538987688
0,6000957592
19,0006839945 0,0171958207 2071
7
9,9
4,2
0,3
5,1
9,5
0,4
0,7
33,2 0,1
5,9
1671,2121212121
0,6002886003
19,0021645022 0,0171908934 2055
8
3,1
0,5
4,4
3,7
5,2
1,9
0,7
32,8 0,1
5,1
1806,6956521739
0,6
19,0013913043 0,0171984789 2005
9
10
3,8
1
2,4
6,5
0,5
0,6
26
0,1
5,4
1648,3126110124
0,6019360568
19,0008880995 0,0171454183 2040
10
6,7
4,8
0,5
0,6
7,2
0,7
0,6
22,1 0,1
4,5
1597,489539749
0,6016736402
19,0010460251 0,0171528526 2074
1703,1490753908
0,6006991844
19,0120855777 0,0171791598 2056,3
Rerata
Generasi: 600 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
140
1
4
4,6
1
2,3
8,7
2,3
0,8
28,8 0,1
5
1693,5763888889
0,6000347222
19,0112847222 0,0171976103 2338
2
4,7
4,2
3,6
1,7
6,1
5,2
0,9
36,2 0,1
6,9
1766,8821839081
0,6
19,0041666667 0,0171985267 2593
3
9,6
2
2,1
3,3
6,2
0,1
0,5
26,6 0,2
5,2
1718,1899641577
0,6004480287
19,0075268817 0,0171861582 2191
4
6,1
2,9
3,9
1,8
9,3
2
0,9
32,4 0,9
6,3
1835,4135338346
0,6012631579
19,0004511278 0,0171634043 2292
5
7,5
2,6
2,7
5,7
8,4
0,5
1
39,5 0,1
6,3
1714,401076716
0,600013459
19,0114401077 0,0171981248 2161
6
8,7
2,3
3,2
3,9
8,1
2,2
0,8
34,3 0,1
6,5
1764,6219686163
0,6003281027
19,0054208274 0,0171893903 2315
7
4,9
4,8
2,7
2,2
9,2
1,1
0,9
37,8 0,1
6,2
1653,147353362
0,6033190272
19,0022889843 0,0171072801 2302
8
3,4
3,4
1,2
6,7
8,8
0,2
1
40
0,2
5,3
1697,0085470086
0,6002421652
19
9
3,8
4,7
2,4
0,1
8,2
1,1
0,6
36
0,1
6,8
1632,9153605016
0,6415047022
19,0034482759 0,0161206946 2340
10
9,9
4,4
2
0,3
4,9
0,6
0,6
25,6 0,1
5,6
1601,8518518519
0,6000740741
19,007962963
1707,8008228846
0,6047227439
19,0053990557 0,0170750288 2280,2
Rerata
0,0171921511 2101
0,0171969474 2169
Generasi: 700 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
141
1
7
4,3
2,9
0,1
5
0,2
0,5
30,5 0,1
5,7
1589,0763765542
0,6077087034
19,0047957371 0,0169877282 2524
2
3,4
4,4
1,1
5,4
9,9
0,4
1
39,3 0,1
5,4
1662,9261363636
0,6001278409
19,0005681818 0,0171954298 2347
3
1,6
2,3
4,5
3,7
6
2,8
0,9
40
6
1775,9558823529
0,6002941176
19,0308823529 0,0171895932 2358
4
4,1
3,9
2
5,2
8,9
3,1
1
39,9 0,1
6,3
1744,8322147651
0,6000805369
19,0059060403 0,0171963133 2399
5
3,8
2,7
3,9
2,8
6,5
0,5
0,7
36,7 0,1
5,5
1682,9905063291
0,600221519
19,0037974684 0,0171926681 2474
6
5,2
0,7
0,1
7,7
9,5
0,8
0,9
26,2 0,7
4,1
1912,2540250447
0,6000536673
19,0152057245 0,0171963004 2404
7
7
4,3
3,3
0,7
7,6
0,3
0,6
34,7 0,1
6,3
1625,1155624037
0,609183359
19,0001540832 0,0169478838 2457
8
10
4,9
1,2
3
7,9
0,2
0,7
33,3 0,1
6,2
1623,037037037
0,6016296296
19,0094814815 0,0171537364 2350
9
9,1
3,6
2
3,8
7,4
0,3
0,9
33,9 0,2
6,1
1677,9346210996
0,6003268945
19,0046062407 0,0171897391 2612
10
6
4,3
4,2
0,1
5,3
0,4
0,6
35,3 0,4
6,2
1643,7898089172
0,6023089172
19,0025477707 0,0171351047 2608
1693,7912170867
0,6021935185
19,0077945081 0,0171384497 2453,3
Rerata
0,2
Generasi: 800 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
142
1
1,4
2,3
2
1,9
5,5
2,9
0,5
23,3 0,1
3,9
1794,1780821918
0,6000684932
19,0100456621 0,0171963755 2699
2
5,2
4,3
3,1
1,5
6,5
1,3
0,8
34,3 0,3
5,9
1676,4240506329
0,6000158228
19,0101265823 0,0171982277 2612
3
7,5
3,9
2,9
0,7
8,7
0,6
0,5
28,5 0,1
5,5
1664,7707979627
0,6000169779
19,1232597623 0,0171951253 2672
4
5,9
2,8
0,8
4,2
8,4
1,9
0,8
27,2 0,1
4,9
1755,7894736842
0,6023859649
19
0,0171326636 2648
5
7,1
3,9
2,1
1,8
7,1
0,6
0,5
31,3 0,2
5,8
1660,1821192053
0,6105960265
19
0,0169097796 2794
6
5,8
2,6
2,1
5,1
8,7
0,4
0,8
35,2 0,1
5,4
1713,2930513595
0,6
19,0185800604 0,017198305
7
2,4
0,5
0,6
11
9,3
0,2
1,1
36,3 1,2
4,5
1950,4470938897
0,6
19,2253353204 0,0171919407 2608
8
1,7
3,1
2,1
5,1
9,3
5,9
1
35,9 0,4
6,1
1887,2521246459
0,6000141643
19,0218130312 0,0171972842 2744
9
9,1
3,4
4,7
0,3
6,1
0,5
0,7
33,8 0,2
6,6
1663,8379204893
0,6
19,0059633028 0,0171988275 2712
10
7,8
4,8
2,1
0,6
5,9
2,2
0,5
28,9 0,1
5,9
1654,1666666667
0,6004251701
19,0006802721 0,017187207
1742,0341380728
0,601352262
19,0415803994 0,0171605736 2706,7
Rerata
2867
2711
Generasi: 900 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
143
1
5,9
4
3,3
1,3
6,7
1,8
0,6
33,7 0,1
6
1677,1293375394
0,600126183
19,0022082019 0,0171953795 2634
2
4,2
3,7
4,3
1,5
9,3
3,3
0,9
36,6 0,7
6,7
1812,2893258427
0,6005477528
19,0015449438 0,0171832561 2781
3
8,3
2,2
3,8
0,9
7,2
5,8
0,7
25,9 0,1
6,6
1875,0406504065
0,6003739837
19,0024390244 0,0171878662 2986
4
7,5
4,7
2,4
0,3
6
1,2
0,7
28,8 0,1
5,7
1622,0383275261
0,6001045296
19,0041811847 0,0171961286 2806
5
4,8
5
2,4
1,6
8,6
2,1
0,7
34,7 0,2
6
1680,1059001513
0,6010590015
19,0007564297 0,0171695486 3037
6
8,1
4,4
3,7
1
8,7
2
0,9
35,5 0,1
6,9
1685,6241234222
0,6005189341
19,0002805049 0,0171845048 2835
7
9,4
1,7
0,7
5,6
9,6
5
0,7
25,5 0,1
5,9
1899,9221183801
0,6002647975
19,0020249221 0,0171908375 2811
8
2
2,6
3
5
9,3
1
0,9
40
0,1
5,5
1727,0172910663
0,6027233429
19,0007204611 0,0171234462 2855
9
6,5
4,8
1,1
3,1
6,9
4
0,7
32,3 0,1
6,2
1730,2130898021
0,6007914764
19,004870624
10
9,8
3,6
3,4
2,6
6,5
0,1
0,6
36,7 0,1
6,6
1648,8571428571
0,6000142857
19,0014285714 0,0171986109 3262
1735,8237306994
0,6006524287
19,0020454868 0,0171806249 2890,8
Rerata
0,0171766707 2901
Generasi: 1000 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
144
1
7,7
2,4
5
0,7
4,5
2
0,6
32,6 0,1
6,4
1720,6451612903
0,6000645161
19,0020967742 0,0171969442 3061
2
6,6
4,4
4,2
0,8
7
0,3
0,9
37,4 0,3
6,5
1645,1023391813
0,6001169591
19,000877193
3
6,9
4,1
2,2
0,1
4,3
2,2
0,4
25,2 0,1
5,3
1660,2362204724
0,6014370079
19,0005905512 0,0171591678 3490
4
6,2
2,5
1,9
6,8
8,9
0,3
0,9
39,6 0,1
5,8
1718,0136986301
0,6
19,0028767123 0,0171987235 3097
5
7,1
4,8
0,5
3,6
7,1
0,4
0,8
31,2 0,5
5,4
1673,2899022801
0,6001140065
19,007980456
6
3,6
1,1
4,8
2
6
3,1
0,7
30,2 0,7
5,6
1907,0069204152
0,6001557093
19,0079584775 0,0171936818 3205
7
9,9
3,9
2,2
3,5
6,9
0,3
0,8
35,2 0,1
6,4
1652,8901734104
0,6004190751
19,0027456647 0,0171873236 3318
8
6,6
5
2,3
0,1
8,5
0,1
0,7
30,2 0,1
5,6
1592,4831081081
0,6055067568
19,0001689189 0,017047683
9
7,3
3,4
0,2
2,2
5,6
1,1
0,6
20
0,1
4,2
1671,8120805369
0,6000447427
19,0004474273 0,0171977088 3157
10
8,1
4,4
2,8
3,5
7,6
0,1
1
40
0,2
6,7
1648,5215053763
0,6006048387
19,0010752688 0,0171822346 2943
1689,0001109701
0,6008463612
19,0026817444 0,0171754827 3158,2
Rerata
0,0171957886 2997
0,0171955715 3260
3054
LAMPIRAN F HASIL UJI COBA KOMBINASI PROBABILITAS CROSSOVER DAN PROBABILITAS MUTASI Probabilitas Crossover : Probabilitas Mutasi = 0 : 1 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
145
1
0,9
3
0,9
6,9
8
4,7
0,7
33,4 0,1
5
1870,8333333333
0,6004559748
19,4254716981 0,0171741435 875
2
3,1
2,8
2,4
6,8
8,5
1,4
1,1
40
5,9
1848,2876712329
0,6003424658
19,1823287671 0,0171838827 1140
3
8,2
4,7
3,4
1,5
7,5
0,1
0,6
36,9 0,2
6,5
1632,6149425287
0,6000431034
19,0683908046 0,0171960227 877
4
8,9
4,5
0,2
4,3
10
0,5
0,8
30,1 0,8
5,7
1750,3039513678
0,600212766
19,0284194529 0,0171920016 1139
5
5,3
4
2,3
5,3
9,6
2,2
1
39,3 1
6,6
1827,9373368146
0,6000652742
19,1429503916 0,0171927099 1010
6
4,4
4,5
2
5
9,9
1,1
1
39,8 0,5
6,1
1736,3391655451
0,6001615074
19,165679677
0,0171897068 1105
7
7
4,9
2,2
0,1
4,2
1,9
0,6
26,6 0,1
5,5
1633,8983050848
0,6001129944
19,184180791
0,0171909117 1011
8
6,7
2,6
4,4
1,9
6,4
0,1
0,7
34,1 0,3
5,9
1704,5166402536
0,6000475436
19,0885895404 0,0171950861 824
9
9,4
3
0,7
7,8
8,9
0,8
1
34,1 0,8
6,1
1832,6446280992
0,6002341598
19,3484848485 0,0171824577 1093
10
5,8
4,5
3,6
0,3
6,8
3,4
0,6
32,4 0,6
6,5
1771,1627906977
0,6000620155
19,0365891473 0,0171958944 1103
1760,8538764958
0,6001737805
19,1671085118 0,0171892817 1017,7
Rerata
1
Probabilitas Crossover : Probabilitas Mutasi = 0,1 : 0,9 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
146
1
7,2
3,5
2,7
1,9
6,6
0,4
0,6
30,9 0,1
5,5
1653,0303030303
0,6000673401
19,0183501684 0,0171966538 919
2
9,3
3,3
3,5
4,8
6,4
0,6
0,7
38,6 0,3
6,8
1735,868102288
0,6000672948
19,3843876178 0,0171864375 836
3
9
4,6
2,5
0,3
6,6
0,1
0,7
27,4 0,7
5,8
1684,3154246101
0,6000866551
19,0852686308 0,0171941614 963
4
8,4
5
1,6
0,9
6,6
2
0,6
26,3 0,5
5,8
1716,9844020797
0,600017331
19,1585788562 0,0171939688 784
5
2,4
0,9
4,5
5,4
7,6
3,1
0,7
33,6 1,3
5,7
2033,6656441718
0,6001993865
19,5411042945 0,017177789
6
2,8
5
3,2
3,7
8,9
1,7
0,7
37
0,6
5,9
1790,8633093525
0,6000863309
19,7716546763 0,0171756274 1000
7
2,4
2,8
3,3
5,2
9,7
6,9
0,8
39,8 0,2
6,9
1890,2564102564
0,6000897436
19,096025641
0,0171931336 1189
8
2,6
2,7
4,1
3,3
9,6
0,4
0,8
35,3 0,1
5,2
1740,0936037442
0,6000624025
19,420124805
0,01718561
9
8,6
5
3,4
0,7
4,9
0,5
0,7
31,5 0,1
6,2
1628,9772727273
0,6000649351
19,4775974026 0,0171844123 832
10
8,7
4,5
2,3
0,9
6,9
1,2
0,7
27,8 0,8
6
1742,8929765886
0,6002508361
19,0807692308 0,0171895274 788
1761,6947448849
0,6000992256
19,3033861323 0,0171877321 925,4
Rerata
962
981
Probabilitas Crossover : Probabilitas Mutasi = 0,2 : 0,8 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
147
1
6,4
5
0,9
1,6
9,6
1,2
0,7
26,1 0,4
5,1
1700,0877192983
0,6001052632
19,1454385965 0,0171919429 904
2
8,4
4,5
0,9
6,6
9,9
1,2
0,8
39,6 0,1
6,5
1709,6815286624
0,6000254777
19,2113375796 0,017192334
3
8,9
4,9
1,9
0,2
6
0,4
0,6
25,9 0,3
5,5
1622,1611721612
0,6002014652
19,1177655678 0,0171903106 1132
4
5,6
2,7
4,9
2,8
7,2
0,2
0,7
38,7 0,6
6,3
1751,7216642755
0,6001578192
19,1674318508 0,0171897109 942
5
7,6
3,5
3,7
1,4
4,9
3,7
0,6
28,5 0,9
6,5
1883,1973898858
0,6000652529
19,3856443719 0,01718601
6
3,5
1,7
2,4
4,6
9
10,7 0,7
28,6 0,4
6,7
2078,2576866764
0,6001610542
19,0491947291 0,0171919624 821
7
2
2,7
4
4,3
7,4
0,6
0,7
40
5,7
1812,0614035088
0,6000584795
19,1280701754 0,0171933529 961
8
9
1,2
2,4
4,6
9,8
8,7
0,5
24,6 0,5
6,9
2072,2140762463
0,6000293255
19,2120234604 0,0171911852 993
9
6
4,2
4,5
0,6
4,5
1,7
0,7
33,6 0,3
6,3
1706,9711538462
0,6001762821
19,3895833333 0,0171833706 828
10
7,4
3,7
4,3
0,2
5,3
4,5
0,6
29
6,7
1816,7741935484
0,6004193548
19,3488709677 0,0171773563 984
1815,3127988109
0,6001399774
19,2155360633 0,0171887536 981,5
Rerata
1
0,3
1063
1187
Probabilitas Crossover : Probabilitas Mutasi = 0,3 : 0,7 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
148
1
4,4
5
3
0,1
7,2
3,8
0,8
31
0,2
6,1
1725
0,6003733766
19,0853896104 0,0171860597 1060
2
3,7
4,1
4,2
0,9
5,9
1,1
0,6
34,5 0,3
5,7
1690,3278688525
0,6000491803
19,2836065574 0,0171897919 813
3
6,1
4,1
0,7
2
8,5
0,2
0,5
24,6 0,2
4,4
1650,1949317739
0,6002729045
19,0415204678 0,0171903175 966
4
5,7
4,5
2,5
3,7
9,8
4,2
1
36,9 0,8
7
1839,8160315375
0,6001051248
19,1178712221 0,0171922532 865
5
9,6
3,9
1,4
5,2
10
0,7
0,8
35,3 0,1
6,3
1707,0941336971
0,6004502046
19,1761255116 0,01718151
1115
6
6,9
1,8
4,2
2,1
6,1
1,4
0,5
29
0,3
5,6
1796,1139896373
0,6010362694
19,2844559585 0,017162051
984
7
5,7
2,9
1,4
6,9
8,8
0,1
0,9
39,1 0,2
5,6
1713,6173184358
0,6002793296
19,023603352
8
8,4
4,8
4,2
0,7
6,3
0,5
0,7
38,6 0,3
7
1636,7132867133
0,6000559441
19,0023776224 0,0171974726 1127
9
2,8
2
1,3
8,1
9,6
0,1
0,8
39,7 0,2
4,9
1748,345323741
0,6002158273
19,0122302158 0,0171923705 825
10
3
2,2
0,1
6,7
9,9
6,4
0,9
26,5 0,8
5,2
2042,2204213938
0,6000648298
19,1578606159 0,0171917416 1092
1754,9443305782
0,6002902991
19,1185041134 0,0171873977 990
Rerata
0,0171904095 1053
Probabilitas Crossover : Probabilitas Mutasi = 0,4 : 0,6 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
149
1
1,3
0,9
4,1
5,8
8,5
7,4
0,8
33,2 0,3
6,1
2035,8187134503
0,6
19,5340643275 0,0171835049 1002
2
7,9
4,4
3,9
0,5
9,5
2,7
0,9
34,2 0,3
7
1731,0659186536
0,6000841515
19,0060308555 0,017196255
3
3,3
2,6
1,4
5
7,5
0,1
0,7
32,3 0,1
4,4
1693,8153310105
0,6000174216
19,0128919861 0,0171980455 834
4
7,3
5
2,5
0,1
5,4
0,2
0,6
26,5 0,3
5,3
1627,8195488722
0,600018797
19,4272556391 0,0171870285 924
5
3,1
2,4
3,4
5,7
9,6
5,4
0,9
40
0,2
6,7
1869,315245478
0,6000645995
19,1325581395 0,0171928912 831
6
5,5
2,4
4,9
2,4
9,7
0,5
1
36,9 0,3
6,2
1744,5558739255
0,6004441261
19,0954154728 0,017183757
7
8
2,8
0,5
4,9
7,9
0,1
0,7
26,7 0,1
4,7
1708,4219858156
0,600035461
19,1567375887 0,0171935446 1045
8
6,5
2,8
4,7
3,2
7,6
3,3
0,9
37,3 0,3
7
1814,6059782609
0,6000815217
19,2914402174 0,0171882779 724
9
3
1
1,8
4,5
7,8
8,5
0,7
22,9 0,5
5,4
2118,2709447415
0,6001960784
19,0839572193 0,017189943
10
7,3
3,8
2,8
4,5
8,4
0,3
0,8
38,9 0,1
6,3
1686,6120218579
0,600068306
19,2137978142 0,0171911579 912
1803,0301562066
0,6001010463
19,195414926
Rerata
975
888
884
0,0171904406 901,9
Probabilitas Crossover : Probabilitas Mutasi = 0,5 : 0,5 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
150
1
4,6
4,1
2,8
2,1
8,2
2,5
0,8
31,6 0,5
5,8
1781,1111111111
0,6002857143
19,2326984127 0,0171842962 835
2
5,1
4,5
1,6
6
8,3
2,9
0,8
39,9 0,2
6,4
1757,463672391
0,6000264201
19,2935270806 0,0171899314 817
3
5
4,2
2,5
3,8
7,7
2
0,7
37,7 0,5
6,2
1747,5817923186
0,6000711238
19,0978662873 0,0171940321 1001
4
4,5
2,2
1,3
5,4
7,7
0,6
0,7
29,6 0,7
4,6
1823,9965095986
0,60008726
19,1160558464 0,0171928461 992
5
4,8
3,7
4,5
2
5,4
0,1
0,8
39,9 0,2
6,2
1647,0414201183
0,6005473373
19,0699704142 0,0171819329 1002
6
4,2
2,8
1
4,8
9,8
8
0,6
27,6 0,4
6
1989,4171779141
0,6003374233
19,0947852761 0,0171860289 880
7
6,1
3,4
1,9
1,7
6
0,9
0,6
24,7 0,2
4,7
1696,4143426295
0,6002589641
19,2029880478 0,0171861234 959
8
2
3,6
2,2
3,7
9,7
1,6
0,8
33,9 0,9
5,2
1819,3396226415
0,6000314465
19,0616352201 0,0171959037 881
9
5,7
0,6
4,8
0,9
7,3
7,9
0,5
20,2 0,6
6,1
2142,7655677656
0,6001098901
19,3902930403 0,0171840036 824
10
6,9
4,9
3,8
0,2
4,6
1,2
0,6
35,2 0,1
6,4
1615,6494522692
0,6002034429
19,0794992175 0,0171913296 987
1802,0780668758
0,6001959022
19,1639318843 0,0171886428 917,8
Rerata
Probabilitas Crossover : Probabilitas Mutasi = 0,6 : 0,4 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
151
1
4,8
4
2,9
3,9
8,4
0,1
1
39,7 0,7
6,1
1720,1117318436
0,6000139665
19,0216480447 0,0171978091 891
2
8,8
0,7
3,9
7,7
9,8
0,1
1
39,2 0,1
6,4
1806,3063063063
0,6
19,4066924067 0,017187489
3
0,8
2,5
2
5
7,6
2,5
0,8
33,7 0,1
4,7
1781,7420435511
0,6000837521
19,0835845896 0,0171939636 1046
4
1,1
4
1
2,4
4,8
0,8
0,5
25,4 0,6
3,7
1726,072234763
0,6002708804
19,285778781
0,0171834559 883
5
9,2
5
1,7
4,3
8,9
0,1
0,9
39,8 0,1
6,7
1636,5710560626
0,6
19,024380704
0,0171984183 1000
6
2,9
3,5
1,4
2,1
7,4
9,3
0,6
23,9 0,1
5,8
1971,5789473684
0,6002105263
19,0538596491 0,0171907209 951
7
7,5
4,4
2
2,6
8,5
0,2
0,7
31
0,3
5,6
1682,8821656051
0,600111465
19,2638535032 0,0171886201 989
8
3,5
3,7
3,4
2,8
9,2
1,1
0,7
36,4 0,4
5,7
1737,2944693573
0,6002242152
19,1632286996 0,0171880296 903
9
9,9
1,9
0,7
2,1
6,5
9,4
0,4
13,7 0,1
5,9
2076,4822134387
0,6000197628
19,0059288538 0,0171970852 998
10
8,3
4,3
2,5
0,1
6,4
0,1
0,6
27
5,4
1599,8175182482
0,6001824818
19,0313868613 0,0171932978 793
1773,8858686544
0,600111705
19,1340342093 0,0171918889 949,4
Rerata
0,1
1040
Probabilitas Crossover : Probabilitas Mutasi = 0,7 : 0,3 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
152
1
5,8
5
0,6
3,9
9,7
1,2
0,8
32,9 0,7
5,6
1736,7069486405
0,6000302115
19,0413897281 0,0171967573 1015
2
1,4
3,1
2
6,2
9,2
2,6
1
39,6 0,1
5,5
1769,1654879774
0,6000141443
19,0916548798 0,0171957152 964
3
3,7
2,9
3,8
3,3
9,7
3
0,9
36,4 0,8
6,3
1854,8728813559
0,6000423729
19,0600282486 0,0171955391 803
4
1,1
4,5
2
4,9
8,4
5,9
0,8
39,8 0,3
6,4
1827,9352226721
0,6000539811
19,1238866397 0,0171935442 1030
5
7,9
1
3,2
7
9,8
1,5
1
38,3 0,9
6,6
1879,6632124352
0,6
19,0136010363 0,0171979261 972
6
7,2
3,7
2,8
2,2
5,9
0,3
0,6
32,4 0,3
5,7
1671,1947626841
0,6002618658
19,0806873977 0,0171894697 1095
7
2,5
0,9
3,1
1,9
5,6
0,6
0,4
22,1 0,5
3,6
1848,0582524272
0,6000970874
19,0934466019 0,0171931212 980
8
7,9
3,5
3,9
0,9
6,7
2,6
0,6
30,4 0,7
6,5
1806,907378336
0,6000470958
19,1452119309 0,0171932167 853
9
4,6
4,1
4,9
0,1
5,8
1,8
0,7
34,4 0,3
6,2
1710,5723370429
0,6
19,293481717
10
1,1
3
1,6
6,6
9,2
11,1 0,9
35,7 0,1
6,9
2000,0656167979
0,6001312336
19,1891076115 0,0171891509 659
1810,5142100369
0,6000677992
19,1132495792 0,0171935263 936,9
Rerata
0,0171908224 998
Probabilitas Crossover : Probabilitas Mutasi = 0,8 : 0,2 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
153
1
1,6
4,9
1,1
5,3
7,6
1
1
39,7 0,3
5,3
1679,7935103245
0,6001474926
19,1143067847 0,0171916921 1042
2
4,6
3,1
1,8
4,7
7,4
1,7
0,7
33,5 0,2
5,3
1747,380952381
0,600031746
19,1125396825 0,0171947244 849
3
4,6
4
2,5
2,5
8,3
0,7
0,7
34,1 0,1
5,4
1661,2877583466
0,6000317965
19,0330683625 0,0171972043 983
4
8,7
3,8
4
0,7
8,1
3,5
0,6
32,8 0,1
7
1746,0317460318
0,6001154401
19,0448773449 0,0171942635 926
5
3,4
4,4
3,1
3,1
7,9
3,1
0,7
39,9 0,2
6,4
1729,0166204986
0,6000554017
19,0387811634 0,0171961552 1118
6
3,2
2,4
0,5
4
7,4
0,2
0,5
23,7 0,1
3,4
1710,0220264317
0,6000440529
19,0922907489 0,0171950626 849
7
1,3
4,8
1
4,1
7,3
3,9
0,7
34,9 0,4
5,4
1773,4326018809
0,6001253918
19,0699059561 0,0171932095 1044
8
7,7
4,9
2,5
1,1
8,7
0,2
0,7
32,1 0,2
5,9
1632,578125
0,600046875
19,08125
9
9,9
5
2,2
1,5
8,6
0,5
0,7
32,9 0,1
6,4
1626,7699115044
0,6000147493
19,0087020649 0,017198479
10
10
4,9
2,1
0,8
5,5
1,1
0,6
28,8 0,1
6,1
1624
0,6000333333
19,1005
1693,0313252399
0,6000646279
19,0696222108 0,01719518
Rerata
0,0171955646 1052 1146
0,0171954449 750 975,9
Probabilitas Crossover : Probabilitas Mutasi = 0,9 : 0,1 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
154
1
5,3
3,6
2
1,4
7
10,1 0,6
23,9 0,5
6,7
2020,4582651391
0,6000981997
19,0201309329 0,0171946475 1204
2
5,2
2,4
2,3
6,4
9,7
1,1
1,1
39,4 0,1
5,9
1745,3125
0,6000407609
19,0028532609 0,0171975009 1093
3
1,1
1,5
2,4
3,1
9,9
1,9
0,6
30,4 0,7
5,3
1885,9402460457
0,6326713533
19,0012302285 0,0163375787 951
4
7,3
4,5
2,4
4,1
9,6
1,5
0,8
36,3 0,2
6,4
1730,9165526676
0,6
19,3807113543 0,0171884209 875
5
8,3
3,3
0,6
6,4
9,9
0,4
1
33,9 0,6
5,8
1768,5185185185
0,6008547009
19,0692307692 0,0171730182 1031
6
3,7
2,8
4,4
0,7
5
2,6
0,6
31,3 0,2
5,6
1749,5606326889
0,6003690685
19,0680140598 0,0171865752 805
7
2,3
4,9
1,2
2,6
8,8
11,7 0,6
25,3 0,5
6,6
2063,8759689923
0,6000155039
19,4627906977 0,0171848822 918
8
9,3
3,5
3
1,8
7,7
0,4
0,7
31,7 0,1
6,1
1663,6858475894
0,6003421462
19,001244168
9
2,7
3,4
2,2
5,4
8,5
0,7
1
39,6 0,7
5,6
1760,4584527221
0,6008452722
19,0064469914 0,0171750375 867
10
7,9
2,5
3,4
3,7
9,3
3,1
0,8
32,4 0,3
6,5
1834,9070100143
0,6000715308
19,2467811159 0,0171896972 920
1822,3633994378
0,6035308536
19,1259433578 0,0171016818 997,5
Rerata
0,0171894601 1311
Probabilitas Crossover : Probabilitas Mutasi = 0,9 : 1/n* Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
155
1
7,5
1
3,7
5,6
9
0,2
0,9
35,3 0,4
5,9
1808,8489208633
0,6
19,1753956835 0,0171936967 1037
2
2
4,5
3,3
2
5,9
4
0,8
36,5 0,6
6,2
1789,5136778116
0,6001215805
19,0805471125 0,0171929722 993
3
7,5
3,7
1,6
6,2
9,7
0,6
0,9
39,9 0,9
6,5
1776,3225806452
0,6002580645
19,0002580645 0,0171914395 798
4
2,7
1,5
4,3
4,8
7,1
2,1
0,9
38,8 0,2
5,8
1799,3401759531
0,600058651
19,0963343109 0,0171942559 897
5
9,3
2,8
0,8
1,6
5
3,7
0,3
17,2 0,1
4,9
1813,0196936543
0,6002625821
19,0822757112 0,0171889381 919
6
7,3
4,9
0,5
4,1
8
1,1
0,8
33,1 0,2
5,7
1667,5799086758
0,6
19,0442922374 0,0171977551 1290
7
7,1
1,9
4,4
2
8
1,4
0,8
30,7 0,2
5,9
1775,8012820513
0,6000480769
19,1440705128 0,0171933175 1158
8
3,5
3,8
4,5
1,4
7,7
4,5
0,8
36,9 0,9
6,9
1856,6995768688
0,6000423131
19,0276445698 0,0171964284 1026
9
3,7
0,4
2,9
8,1
7,5
0,3
1
35,3 0,4
4,9
1863,7209302326
0,6002170543
19,4703875969 0,0171796056 1117
10
3,9
3,3
4,3
2,9
9,9
1
0,9
39,2 1,2
6,4
1823,7671232877
0,6000136986
19,0316438356 0,01719721
1797,4613870044
0,6001022021
19,1152849635 0,0171925619 1027
Rerata
Keterangan: * n = 10, yaitu jumlah bahan dalam formula
1035
Probabilitas Crossover : Probabilitas Mutasi = 1 : 0 Percobaan
Variabel (Proporsi Bahan Pakan)
1
7,8
4,9
1,5
5,6
2
2,3
4,5
3,9
3
4,2
3,2
4
2,9
5
8,3
f1
f2
f3
Fitness
Waktu
156
4
0,7
36,7 0,5
7
1821,6233766234
0,6002077922
19,4706493506 0,0171799798 1143
17,8 4,9
1,1
1
38,2 0,8
5,6
2163,0461922597
0,6000749064
23,5237203496 0,0170943121 1038
2,6
0,4
7
0,6
0,5
27,2 0,4
5,2
1709,2592592593
0,6237426901
19,0717348928 0,0165624387 993
1,4
1
8,3
9,5
0,7
0,9
30,3 0,6
4,2
1907,6086956522
0,6001003344
19,6090301003 0,0171790914 1262
9,5
4,4
0,4
3,2
7,5
0,9
0,8
28
5,6
1656,4569536424
0,6022682119
19,023013245
6
9,5
3,9
2,7
4,5
9,3
3,1
0,8
31,7 1,1
7
1914,5380434783
0,6000407609
19,6472826087 0,0171797339 884
7
8,5
4,9
0,7
6,1
9,1
2,4
0,9
39,8 0,6
7
1756,6875
0,6003625
19,030125
8
9,7
2,7
4,8
0,9
7,6
1
0,8
31,9 0,8
6,8
1790,8955223881
0,6002985075
19,0529850746 0,0171888149 867
9
4,4
4,7
0,7
12,3 7,5
4,1
1,1
36,3 0,2
6
1958,4087968952
0,6001940492
21,0693402329 0,0171410077 854
10
5,2
3,7
4,9
1,2
2,3
0,7
37,4 1,1
6,9
1830,4258241758
0,6000137363
19,0615384615 0,0171963649 905
1850,8950164374
0,6027303489
19,8559419316 0,0171045136 968,1
9,4
Rerata
0,1
0,0171356141 816
0,0171877785 919
LAMPIRAN G HASIL UJI COBA UKURAN POPULASI Populasi: 50 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
157
1
5,1
3,4
1,9
3,6
7,5
0,5
0,7
31,2 0,2
5
1700,7614213198
0,6000507614
19,1734348562 0,0171926914 893
2
7,8
3,6
3,4
3,8
7,1
1,7
0,8
40
0,1
6,9
1704,1223404255
0,6000398936
19,038962766
3
9,9
3,9
1,2
6,4
10
1,4
0,8
39,2 0,1
6,8
1719,8243412798
0,6001380176
19,0765370138 0,0171928524 1232
4
4,4
3,7
3
2,5
8,6
2,1
0,9
33,6 0,3
5,8
1748,7673343606
0,6000308166
19,1090909091 0,0171948401 928
5
4,7
4,6
1,9
2,5
8,3
6,8
0,8
31,5 0,6
6,7
1883,0409356725
0,6000877193
19,0397660819 0,0171947575 812
6
4,7
2,4
4,4
1,1
4,8
0,3
0,6
31,2 0,2
5,2
1686,8852459016
0,6000910747
19,0892531876 0,0171939202 929
7
4
3
4,8
0,1
4
1,8
0,6
31,8 0,5
5,7
1744,0497335702
0,6002664298
19,053285968
8
9,9
3
0,4
6,7
9,9
2,1
1
32,5 0,7
6,3
1830,3448275862
0,6000275862
19,0074482759 0,0171974734 877
9
7,9
3,5
0,4
5,2
7,9
0,4
0,7
31
0,1
5,2
1684,0288924559
0,6000321027
19,0428571429 0,0171968444 920
10
5,6
4,1
1,6
4,8
9,3
0,1
0,9
37,2 0,8
5,8
1738,8176638177
0,6
19,0086894587 0,0171984929 831
1744,064273639
0,6000764402
19,063932566
Rerata
0,0171966654 897
0,0171898468 919
0,0171948385 923,8
Populasi: 100 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
158
1
10
4,9
0,7
3,9
7,4
0,1
0,9
32,6 0,1
6
1628,6036036036
0,6
19,0990990991 0,0171963918 2390
2
3,7
2,2
4,2
2,7
7,7
5,4
0,6
34,2 0,3
6,4
1877,4480712166
0,6000296736
19,0238872404 0,0171968237 2092
3
4,7
4,7
0,3
4,1
7,7
2,3
0,6
31,9 0,1
5,2
1693,8311688312
0,6001136364
19,0451298701 0,0171944831 1627
4
1,3
3,3
1,7
3,7
6,2
0,5
0,7
30,6 0,5
4,2
1734,6299810247
0,600113852
19,1707779886 0,0171908969 2060
5
2,6
1,7
1,9
6,8
9,8
3
1
35,3 0,3
5,3
1857,459379616
0,6000443131
19,0589364845 0,0171955078 2075
6
1,6
0,7
3,9
2,5
6
4,1
0,6
25,9 0,4
4,7
1958,9285714286
0,6000396825
19,1109126984 0,0171939305 2301
7
8
4,4
2,2
3,4
9,3
1,2
0,9
36,7 0,2
6,5
1688,3928571429
0,6000412088
19
8
9,9
3,8
3,3
2,7
6,4
1,2
0,6
35,6 0,2
6,8
1697,0212765957
0,6000141844
19,1310638298 0,0171948754 2140
9
7,9
4,9
2,2
2,8
8,6
0,2
0,8
36,8 0,2
6,3
1640,0282885431
0,6000424328
19,0271570014 0,0171971501 2055
10
7,7
0,2
2,9
6,6
9,8
4,7
0,7
32,1 0,9
6,5
2003,120665742
0,6000554785
19,0034674064 0,0171963377 1986
1777,9463863744
0,6000494462
19,0670431619 0,0171954158 2063,6
Rerata
0,0171977606 1910
Populasi: 150 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
159
1
5
4,3
1,8
2,8
7,3
0,2
0,8
33,2 0,1
5,2
1627,018121911
0,6
19,0172981878 0,0171986499 2779
2
8,3
4,9
3,8
1,6
9,3
0,2
0,9
40
7
1632,3915900131
0,6000788436
19,029303548
3
8,3
4,6
2,1
3,8
8,1
0,9
0,9
38,4 0,1
6,6
1659,1463414634
0,6000406504
19,0136856369 0,0171975017 2911
4
8,4
5
2,8
1
6,4
0,7
0,7
33,8 0,4
6,4
1647,4847560976
0,6000304878
19,0048780488 0,0171980704 3252
5
6,5
3,8
3,2
1,6
8,1
2,5
0,8
32,6 0,1
6,2
1720,6422018349
0,6000152905
19,0334862385 0,0171974435 2942
6
3,7
1,3
4
2
7,2
9,4
0,5
25,6 0,8
6,5
2121,2295081967
0,6000819672
19,0478688525 0,0171940975 3030
7
8,8
3,6
4,1
0,4
7,8
0,6
0,7
31,9 0,1
6,3
1664,4634525661
0,6000311042
19,0533437014 0,0171966529 3070
8
9,1
4,8
1,5
3,3
6,8
0,4
0,8
34,8 0,1
6,2
1626,6961651917
0,6000147493
19,0233038348 0,0171980754 3076
9
9,3
4,9
3,2
1
6,5
0,2
0,6
35,5 0,2
6,6
1615,4411764706
0,6
19,0129411765 0,0171988145 2856
10
4,8
2,1
1,8
6,8
8,8
0,3
0,9
37,6 0,2
5,3
1742,4927113703
0,6001020408
19,0040816327 0,0171957743 2737
1705,7006025116
0,6000395134
19,0240190858 0,0171971188 2995,4
Rerata
0,1
0,0171961081 3301
Populasi: 200 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
160
1
5,5
4,6
1,5
0,2
6,6
0,1
0,5
24
0,5
4,5
1639,8958333333
0,6
19,0345833333 0,0171981242 4372
2
3,5
4,7
2,5
2,8
8,3
3,4
0,8
36,7 0,7
6,3
1787,8048780488
0,6000286944
19,0218077475 0,0171971755 4114
3
6,2
3,8
2,3
3,9
7
0,3
0,7
37,2 0,1
5,8
1653,5661218425
0,6000148588
19,0044576523 0,0171984938 4143
4
3,9
4
1,5
4,4
7,4
0,4
0,9
35,6 0,3
5,2
1679,4811320755
0,6000314465
19,0308176101 0,0171972109 3876
5
7,5
4,4
3
2
6,6
0,3
0,6
36,1 0,2
6,2
1637,2197309417
0,6000597907
19,0204783259 0,017196863
6
8,6
3,3
2,7
0,1
7
0,4
0,5
23,4 0,5
5,2
1713,829787234
0,6
19,0216634429 0,0171982179 4048
7
9,4
4,1
2,1
3,5
7,4
0,1
0,8
33,9 0,7
6,3
1721,2298682284
0,6
19,0929721816 0,0171962294 3663
8
7,3
4,6
4,2
0,4
8,8
0,6
0,9
35,7 1
6,8
1739,4736842105
0,6000284495
19,0092460882 0,0171976851 4055
9
3,8
3,6
2,2
5
7,8
1,9
0,7
38,5 0,3
5,8
1744,4683908046
0,6000287356
19,0869252874 0,0171955198 4055
10
4,4
3
2,2
4,9
9,6
0,7
0,9
35,9 0,6
5,5
1772,599704579
0,600014771
19,0282127031 0,0171974332 3860
1708,9569131298
0,6000206747
19,0351164372 0,0171972953 4038,2
Rerata
4196
Populasi: 250 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
161
1
6,6
4,3
1,4
1,3
4,9
0,3
0,5
26,4 0,2
4,8
1605,6213017752
0,6000591716
19,0061143984 0,0171973978 5733
2
7,9
3,9
4,5
0,5
7,2
1
0,7
34,8 0,2
6,6
1678,0832095097
0,6
19,0906389302 0,0171964428 5254
3
2,1
4,9
0,4
5,9
9,9
7,5
1,1
37,6 0,3
6,6
1862,0576671035
0,6000131062
19,0302752294 0,0171971515 5224
4
9,9
4,1
2,4
4,4
9,9
0,4
0,8
39,4 0,2
6,9
1686,9897959184
0,6
19,0322704082 0,0171980178 5655
5
4,6
3,7
2,9
1,4
7,9
0,3
0,7
30,9 0,2
5,1
1662,1317157712
0,6
19,0426343154 0,0171978205 5055
6
9,9
4,3
2,1
2,2
7,7
2,6
0,8
30,9 0,5
6,7
1754,6528803545
0,6000295421
19
7
10
4,5
0,4
5,2
9,9
1,6
0,9
33,9 0,6
6,5
1754,3537414966
0,6001088435
19,0111564626 0,0171953508 5180
8
3
3,5
1,7
5,5
10
0,5
1
38,3 0,3
5,3
1718,2344428365
0,6
19,0169319826 0,0171983338 5815
9
4,9
4,9
1,2
3,5
6,5
0,6
0,8
35,3 0,1
5,4
1618,0379746835
0,6000158228
19,0041139241 0,0171986093 5475
10
7,2
4,5
3,2
1
7,9
1,3
0,7
33,8 0,3
6,3
1678,7764350453
0,6
19,0013595166 0,0171989015 5446
1701,8939164494
0,6000226486
19,0235495167 0,0171975887 5434,5
Rerata
0,017197861
5508
Populasi: 300 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
162
1
8,8
4,9
2,3
0,7
6,6
0,4
0,6
30,4 0,1
5,9
1601,4827018122
0,6000329489
19,0273476112 0,017197555
2
7,9
4,6
0,8
1
7,4
0,5
0,6
22,8 0,3
4,8
1646,7455621302
0,6
19,0788954635 0,0171968786 7438
3
9,4
3,5
2,7
2,2
9,9
0,1
0,9
31
6
1676,8237082067
0,6000303951
19,0439209726 0,017196888
4
4,3
4
3,2
2,3
6,7
0,2
0,9
36,4 0,1
5,6
1634,4583987441
0,6000313972
19,0469387755 0,0171969316 6301
5
6,2
4,9
2,9
1,1
5,4
0,4
0,7
34,9 0,1
5,9
1592,56
0,600032
19,01264
6
7,4
4,7
1,4
0,7
6,6
0,3
0,5
25,9 0,2
5
1604,8387096774
0,6000379507
19,0051233397 0,0171980176 7092
7
9,8
2,5
2,1
4,1
8,9
1,1
0,9
30,2 0,3
6
1764,4157814871
0,6000151745
19,0250379363 0,0171975359 7027
8
6
4,5
3,2
1,8
9,5
2,5
0,7
36,2 0,1
6,5
1706,6901408451
0,6
19,044084507
9
8,8
4,9
3,4
0,4
9,5
0,2
0,7
34,5 0,1
6,5
1621,9565217391
0,6
19,0113043478 0,0171988349 7608
10
7,1
4,4
4
1
6,8
0,1
0,6
37,7 0,1
6,4
1615,3958944282
0,600058651
19,0060117302 0,0171973774 6747
1646,536741907
0,6000238517
19,0301304684 0,0171975665 6901
Rerata
0,1
6549
6787
0,0171980229 6893
0,0171976234 6568
Populasi: 350 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
163
1
2,2
3,6
1,7
5,4
8,9
1,2
0,8
38,6 0,4
5,3
1737,4449339207
0,6000440529
19,003671072
0,0171974128 7844
2
2,8
4
2,6
4,1
7,1
3
0,8
38,9 0,5
6,1
1773,2474964235
0,6
19,043204578
0,0171974277 8720
3
7,3
4,8
1,1
2
6,3
0,2
0,6
29,1 0,2
5,2
1608,9788732394
0,6000528169
19,0197183099 0,0171971849 8373
4
6,9
4,3
3,3
1,5
9,9
1,2
0,8
34,6 0,2
6,3
1691,1594202899
0,6000144928
19,0592753623 0,0171968561 7572
5
8,8
4,1
1,9
1,4
7
0,2
0,5
27,7 0,1
5,4
1627,408056042
0,6000175131
19,0439579685 0,0171974259 8783
6
7,6
5
3,4
1,5
5,7
0,1
0,7
38,6 0,3
6,6
1617,0503597122
0,6
19,0067625899 0,0171989793 8309
7
5,5
3
3,2
1,6
6,3
2,8
0,7
29
5,7
1804,2024013722
0,6000171527
19,0399656947 0,0171969439 8252
8
4,8
4,2
1,3
3,6
6,4
0,2
0,6
33,5 0,1
5
1625,7956448911
0,6000335008
19,0155778894 0,0171977716 7926
9
6,2
4,5
0,7
6,2
9,9
0,9
1,1
39,1 0,1
6
1686,8139223561
0,6
19,06854083
10
8,4
3,9
4,3
0,2
4,3
0,1
0,6
34
6,3
1606,4308681672
0,6000321543
19,0191318328 0,0171977849 8050
1677,8531976414
0,6000211683
19,0319806127 0,0171974806 8202,7
Rerata
0,5
0,1
0,017197019
8198
Populasi: 400 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
164
1
10
4,9
1,8
3,3
9,4
0,4
0,8
36,3 0,4
6,7
1675,8108108108
0,6
19,0014864865 0,0171989085 10772
2
8,6
4,9
1,2
1,9
9,1
1,9
0,6
29,2 0,1
5,9
1675,5520504732
0,6000788644
19,015615142
3
8,5
4,3
4,1
0,7
7,1
2
0,9
35,4 0,1
7
1680,0998573467
0,6000142653
19,0329529244 0,017197627
4
9,1
5
1,8
3
9,8
0,2
0,7
35,8 0,3
6,4
1659,0152565881
0,6000277393
19,0327323162 0,0171973345 9962
5
7,3
4,8
3,1
1,2
7,6
2,8
0,7
34,7 0,1
6,7
1692,8260869565
0,600057971
19,0430434783 0,0171960899 9431
6
6,7
4,6
0,9
3,9
7,5
2,4
0,6
32,4 0,6
5,9
1761,3740458015
0,6
19,0609160305 0,0171969778 10313
7
5,6
5
3,3
2,1
9,9
0,9
1
39,8 0,3
6,6
1671,2751677852
0,6000536913
19,017852349
8
1
4,5
2,4
2,3
8,9
6,7
0,9
33,2 0,2
6,1
1845,3927492447
0,6000453172
19,0883685801 0,0171947061 9636
9
8,3
4,4
2,9
0,2
9,9
1,5
0,6
28,6 0,5
6,1
1729,3650793651
0,600047619
19,0420634921 0,0171962797 9067
10
6,7
3,4
3,1
4
9,8
4
0,7
38,6 0,1
7
1781,7183462532
0,6
19,0074935401 0,0171983875 9930
1717,2429450625
0,6000325467
19,0342524339 0,017196962
Rerata
0,0171963281 10466 9721
0,0171969806 10073
9937,1
Populasi: 450 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
165
1
3,2
1,5
2,2
6,3
9,4
1,2
0,9
34,4 0,9
5,1
1879,1858678956
0,6
19,0064516129 0,0171981253 11356
2
6,3
4,5
2,7
1,4
9,4
0,6
0,7
32,9 0,3
5,8
1671,1300309598
0,6000154799
19,0283281734 0,0171977529 11501
3
4,7
4,6
2,7
0,9
6,1
3,9
0,6
30,8 0,7
6,1
1797,2176759411
0,6000327332
19,0188216039 0,0171971165 11825
4
9,2
3,5
4
2,2
7,5
1,1
0,8
36,8 0,5
7
1728,9256198347
0,6000275482
19,0009641873 0,0171979745 12795
5
9,2
4,3
0,2
2,5
7,2
0,2
0,6
24,4 0,1
4,9
1623,8805970149
0,6
19,0264925373 0,0171984077 12156
6
6,2
4,8
2,3
2,3
6,3
0,2
0,7
35,8 0,1
5,8
1604,8837209302
0,6000310078
19,0159689922 0,0171979102 11049
7
3,3
4
2,1
4,8
9,6
0,4
1,1
39,9 0,1
5,6
1672,0028208745
0,6
19,0184767278 0,017198452
8
5,2
4,5
2,4
0,5
5,7
0,5
0,7
28,8 0,3
5,1
1625,9776536313
0,600018622
19,0169459963 0,0171981463 11450
9
7
4,6
3,1
1
5,6
0,4
0,8
33,9 0,1
6
1605,92
0,6
19,0232
10
6
4,8
2,3
0,9
6,6
2,1
0,8
30,5 0,2
5,8
1670,8333333333
0,6000166667
19,0068333333 0,0171983153 11083
1687,9957320415
0,6000142058
19,0162483164 0,0171980768 11588,7
Rerata
11591
0,0171985675 11081
Populasi: 500 Percobaan
Variabel (Proporsi Bahan Pakan)
f1
f2
f3
Fitness
Waktu
166
1
4,9
2,3
1,3
7,9
9,9
3
0,9
38
0,6
6
1863,3021390374
0,600013369
19,0618983957 0,0171962689 13347
2
3,2
0,6
2,2
8,1
9,8
0,8
0,8
37,7 0,4
5
1837,0262390671
0,6000145773
19,0021865889 0,0171979606 13949
3
6,6
3,6
0,3
5,9
9,3
0,4
1
32
0,8
5,3
1780,8282208589
0,6
19,0645705521 0,0171968152 12927
4
7,2
3,9
1,6
3,6
8,6
0,4
0,8
32,9 0,2
5,6
1677,0061728395
0,6000154321
19,0106481481 0,017198222
5
7,6
4,8
1,3
4,3
9,5
0,3
0,9
37,2 0,1
6,1
1648,8904299584
0,6
19,0392510402 0,0171979621 13084
6
6,8
4,9
3,4
0,6
7,1
1,4
0,8
34,6 0,2
6,4
1653,1722054381
0,6000302115
19,0451661631 0,0171969441 13066
7
6,7
4,8
3,2
0,6
5,2
0,9
0,6
33,9 0,3
6,1
1633,2263242376
0,6
19,0078651685 0,0171988875 13319
8
7,3
5
2,4
1,6
9,9
0,2
0,8
34,1 0,1
6
1627,7448071217
0,6000148368
19,0477744807 0,0171973937 14338
9
9,8
3,7
4,6
0,3
5,8
0,9
0,7
34,1 0,3
6,9
1678,4649776453
0,6
19,0192250373 0,0171984083 13191
10
7,1
4,2
3,6
0,3
9,2
0,2
0,6
31,9 0,3
5,9
1664,6129541864
0,6000157978
19,0592417062 0,0171969151 12667
1706,427447039
0,6000104224
19,0357827281 0,0171975777 13274,3
Rerata
12855