You are on page 1of 182

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
ekosubha@gmail.com

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.

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............................................................................................................

ABSTRACT..........................................................................................................

vi

DAFTAR TABEL...................................................................................................

DAFTAR GAMBAR..............................................................................................

xii

DAFTAR LAMPIRAN...........................................................................................

xvi

BAB 1 PENDAHULUAN.......................................................................................

1.1 Latar Belakang.....................................................................................

1.2 Rumusan Masalah...............................................................................

1.3 Tujuan..................................................................................................

1.4 Manfaat...............................................................................................

1.5 Batasan Masalah.................................................................................

1.6 Sistematika Pembahasan.....................................................................

BAB 2 LANDASAN KEPUSTAKAAN.....................................................................

2.1 Kajian Pustaka......................................................................................

2.2 Pakan Ternak Unggas...........................................................................

2.2.1 Nutrisi Pakan Ternak Unggas......................................................

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...............

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

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 (Pea, 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 Pea, 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);

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.

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.

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

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

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

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 Pea, 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 Pea, 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)

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

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 tlbt

(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 DellOlmo, 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 ix 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 M1 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]. mI [i1]. 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).
in 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

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+(12u)(1)

1
2
1
jika u>
2

jika u

,
1
nm +1 nm +1

1[2(1u)+2(u0,5)(1)

(2.17)

dengan
min [(xx l),(x ux )]
=
(xu xl )
3. Tahap terakhir adalah menghitung variabel offspring y menggunakan
Persamaan (2.18) (Deb, 2000).
(2.18)

y=x + max
dengan

max=x ux 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 Pea, 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
Pea, 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 jU 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 js j ,

(3.5)

j=1, ... , n

r jb js 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 jU 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

Gambar 3.3 Diagram Alir Subproses Set Batasan Penggunaan Bahan Terpilih,
Bagian 1

33

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 ++

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

Gambar 3.6 Diagram Alir Subproses NSGA-II, Bagian 2

36

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

Gambar 3.7 Diagram Alir Subproses NSGA-II, Bagian 3

37

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

Ya
1

Gambar 3.9 Diagram Alir Subproses Evaluasi Fitness, Bagian 1

38

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<n

Ya

tot_p = tot_p + ps-j

kt[] = menghitung total


kandungan zat makanan

j++

i=0
Tidak

Ya

i<k
Tidak

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<k

Ya

KN = 0
3

Gambar 3.14 Diagram Alir Subproses Menghitung Total Kandungan Zat


Makanan, Bagian 1

42

1
Tidak

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<n
Ya

fx[0] += (harga bahan ke-i * (variable[i] / tot_p))


i++
fx[1] = 0
i=0
Tidak

i<n
Ya

fx[1] += (kandungan fosfor dalam bahan ke-i *


(variable[i] / tot_p))
i++
fx[2] = 0
i=0
Tidak

i<n
Ya

Gambar 3.17 Diagram Alir Subproses Mengevaluasi Fungsi Tujuan, Bagian 2

44

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

cc = 0

c=0
Tidak

c<k
Ya

constraint[c] = pemenuhan zat


makanan
cc++

c++
c=0
Tidak

c<k
Ya

constraint[cc] = pemenuhan bahan

cc++
c++

total = 0
number = 0
i=0

Tidak

Ya

i < (n+k)

Gambar 3.20 Diagram Alir Subproses Mengevaluasi Fungsi Kendala, Bagian 2

46

2
Tidak

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<n
Ya
pemenuhanNutrien +=
(acj * (variable[j]/tot_p))

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

Gambar 3.25 Diagram Alir Subproses Simulated Binary Crossover, Bagian 1

51

1
Tidak

i<n

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

Ya
betaq = (alpha * u) ^
(1 / (nc + 1))

Gambar 3.26 Diagram Alir Subproses Simulated Binary Crossover, Bagian 2


52

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

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

Gambar 3.29 Diagram Alir Subproses Polynomial Mutation, Bagian 1

54

1
x = solution

i=0
Tidak

Ya

i<n

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

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

(xy ^ (nm + 1))

Gambar 3.30 Diagram Alir Subproses Polynomial Mutation, Bagian 2

55

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<n

iDominate[p] =
dominateMe[p] = 0
p ++
p=0
Ya

Tidak
p < (n 1)

q=p+1
Tidak

Ya
q<n

flagDominate =
pembanding penalti

Tidak
flagDominate = 0

Ya

Gambar 3.32 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 1

57

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<n

Tidak

Ya
dominateMe[p] = 0

tambahkan p ke front[0]
rank.p = 0

p ++
i=0

Tidak

Ya

front[i] tidak
kosong

Gambar 3.33 Diagram Alir Subproses Fast Non-dominated Sort, Bagian 2

58

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<i

|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

Ya

Gambar 3.36 Diagram Alir Subproses Pembanding Penalti, Bagian 1

60

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

Gambar 3.39 Diagram Alir Subproses Crowding Distance Assignment, Bagian 1

63

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-(l1)
cd-0 =
cd-(l1) =

j=1
Tidak

Ya
j < (l2)
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)

1000

2860

10,2

0,04

0,16

0,71

0,27

1500

2100

41

4,8

12

0,18

0,33

1,6

0,6

3700

2200

42

1,9

17

0,2

0,2

1,8

0,5

4000

2240

42

0,9

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)

2100

2200

18,5

2,5

15

0,2

0,57

0,64

0,29

2800

3370

8,6

3,9

0,02

0,1

0,2

0,18

250

37

800

3390

8,9

0,03

0,4

0,27

8000

8600

100

10

5000

2650

58

5,5

2,8

1,8

Tabel 3.2 Batas Penggunaan Bahan Pakan untuk Ayam Petelur Starter
Batas
Penggunaan
(%)

Bahan
1

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

30

10

60

40

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

0,9

0,6

0,85

0,38

Maksimak (U)

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

10

Total

6,3

3,2

1,9

28,9

1,5

1,8

0,9

28

1,5

5,1

79,1

3,6

0,9

1,1

11,7

7,7

7,2

0,8

27,6

0,8

6,5

67,9

2,1

1,8

23

7,5

5,1

0,9

31,1

2,1

6,3

81,9

5,5

1,3

4,4

13

3,1

9,1

0,8

24,4

0,6

6,5

68,7

0,9

2,9

1,8

27,8

1,9

17,2

0,9

13,4

1,5

6,1

74,4

4,3

2,9

15,1

2,4

1,2

38,7

0,4

6,4

83,4

2,7

3,2

1,9

26,1

8,3

4,3

1,1

24

2,1

6,5

80,2

8,8

4,1

4,2

0,6

0,9

0,4

24

0,2

5,7

50,9

2,7

0,6

21,9

8,8

6,4

1,1

37,4

2,3

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)

2554,2984 0,6036

26,2616

2258,1738 0,634

21,1816

2529,8535 0,6248

24,0515

2397,9622 0,6008

22,8525

3073,9919 0,6018

27,2501

2055,2758 0,6068

22,1598

2707,9177 0,6458

26,3824

1748,723

20,5972

2379,5504 0,614

22,5026

10

2463,578

24,8134

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

10

x1

2,7

0,6

21,9 8,8

6,4

1,1

37,4 2,3

x2

8,8

4,1

4,2

0,6

0,9

0,4

24

5,7

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

10

0,2

5,7

y1

2,5

0,6

21,9 8,7

0,9

0,4

24

y2

4,1

4,2

0,7

6,4

1,1

37,4 2,3

2,1

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

10

0,2

5,7

y1

2,5

0,5

21,9 8,7

0,9

0,4

24

y2

4,1

4,2

0,7

2,7

1,1

37,4 2,3

2,1

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

10

0,2

5,7

2,5

0,5

21,9 8,7

0,9

0,4

24

4,1

4,2

0,7

2,1

2,7

1,1

37,4 2,3

...

...

...

...

...

...

...

...

...

...

...

10

3,6

3,2

4,5

26,1 8,3

9,5

1,1

24

2,1

6,5

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)

6,3

3,2

...

...

11

1,9

28,9 1,5

1,8

0,9

28

1,5

5,1

...

...

...

...

...

...

...

...

2,5

0,5

21,9 8,7

0,9

0,4

24

0,2

5,7

67,8

12

4,1

4,2

0,7

2,1

2,7

1,1

37,4 2,3

70,6

13

3,6

0,9

1,1

11,7 8,7

7,2

0,8

27,6 0,8

6,5

68,9

14

4,3

2,9

15,1 8

2,4

1,2

38,7 0,4

6,4

83,4

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

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

...

2,1

10

Total

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

2554,2984 0,6036

26,2616

...

...

...

...

11

2457,8171 0,6834

26,581

-87,2239

12

1827,9745 0,5682

17,9409

-3,6579

13

2255,8781 0,633

21,1427

14

2055,2758 0,6068

22,1598

15

2336,6873 0,6465

21,8387

-0,0102

16

2321,1111 0,5911

22,1864

-0,1061

17

2176,6055 0,5867

22,1581

-0,609

18

2355,584

0,6153

25,2477

-27,0401

19

2310,3279 0,6599

23,2828

-0,3391

20

2725,0281 0,5959

25,6352

-0,1368

...

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

Sp

np

S1

Tidak saling mendominasi

S2

Tidak saling mendominasi

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

S20

S1

S20 didominasi S1

S2

S20 didominasi S2

S20

Tidak saling mendominasi

S11, S12, S17, S18, S19

14

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=Qq

F1 = {S4, S8}
S4

S8

Sp = {S1, S3, S5, S7, S10,


S11, S12, S15, S16, S17,
S18, S19, S20}
S1

S1

S20

13

S1, S5

S2

S1, S5

S3

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=Qq

12

S1, S5, S6, S13, S14

S7

...

...

...

S20

11

S14

Sp = {S3, S7, S9, S10, S11,


S12, S15, S16, S17, S18,
S19, S20}
S3

S2

...

...

...

S20

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)

4, 8

1, 5, 6, 13, 14

2, 9

81

Tabel 3.14 Individu yang Telah Diurut Berdasarkan Non-domination (Lanjutan)


Front

Anggota Front/Individu (S)

3, 10

15

16

20

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(v1)) / (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,796803946

13

14

1,708271864

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

2397,96 0,6008 22,8525

0,017086233

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

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

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<Integer>[] iDominate = new
List[this.solutionSet.size()]; // Sp
// front[i], berisi indeks solusi yang ada di front ke-i
List<Integer>[] 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

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

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: <http://www.amazine.co/25989/nitrogen-n-fakta-sifatkegunaan-efek-kesehatannya/> [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: <http://lib.unnes.ac.id/18197/1/7450406053.pdf>
[Diakses 7 Jan. 2016].
Basuki, A., 2003. Algoritma Genetika Suatu Alternatif Penyelesaian Permasalahan
Searching, Optimasi dan Machine Learning. [pdf] Tersedia di:
<http://basuki.lecturer.pens.ac.id/lecture/AlgoritmaGenetika.pdf> [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:
<http://www.tik.ee.ethz.ch/file/6c0e384dceb283cd4301339a895b72b8/TIK
-Report11.pdf> [Diakses 27 Oct. 2015].
Caramia, M. dan DellOlmo, P., 2008. Chapter 2 Multi-objective Optimization.
Dalam: Multi-objective Management in Freight Logistics. [online] London:
Springer London. Tersedia di: <http://link.springer.com/10.1007/978-184800-382-8> [Diakses 11 Jun. 2015].
Castrodeza, C., Lara, P., dan Pea, T., 2005. Multicriteria Fractional Model for Feed
Formulation: Economic, Nutritional and Environmental Criteria. Agricultural
systems,
[e-journal]
86(1),
pp.7696.
Tersedia
di:
<http://www.sciencedirect.com/science/article/pii/S0308521X04001556>
[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: <http://ojs.unud.ac.id/index.php/jik/article/view/2681>
[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(24), pp.311338. Tersedia di: <http://www.sciencedirect.com/science/
article/pii/S0045782599003898> [Diakses 31 Jul. 2015].
Deb, K., 2001. Multi-objective Optimization Using Evolutionary Algorithms. [ebook] John Wiley & Sons. Tersedia di: <https://books.google.co.id/books?
id=OSTn4GSy2uQC> [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.124. Tersedia di:

120

<http://www.iitk.ac.in/kangal/reports.shtml> [Diakses 11 Jun. 2015].


Deb, K., 2011b. NSGA2 gnuplot (1.1.6). [program komputer] Kanpur Genetic
Algorithms Laboratory. Tersedia di: <http://www.iitk.ac.in/kangal/
codes.shtml> [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.115148. Tersedia di:
<http://www.complex-systems.com/abstracts/v09_i02_a02.html> [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.3045.
Tersedia
di:
<http://www.researchgate.net/publication/
2335418_A_Combined_Genetic_Adaptive_Search_%28GeneAS
%29_for_Engineering_Design> [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.182197. Tersedia di:
<http://ieeexplore.ieee.org/xpl/articleDetails.jsp?
arnumber=996017&newsearch=true&queryText=A%20fast%20and
%20elitist%20multiobjective%20genetic%20algorithm:%20NSGA-II>
[Diakses 26 Dec. 2015].
Deong, 2012. Tournament Selection in Genetic Algorithms. [forum diskusi]
Jawaban untuk Manolo. Tersedia di: <http://cstheory.stackexchange.com/
questions/14758/tournament-selection-in-genetic-algorithms/14760#
14760> [Diakses 13 Oct. 2015].
Direktorat Pembinaan Sekolah Menengah Kejuruan, 2014. Agribisnis Pakan
Ternak Unggas. [e-book] Tersedia di: <http://bse.kemdikbud.go.id/
index.php/buku/details/20140916135801> [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.3959. Tersedia di:
<http://mdog.mcgill.ca/paper%20pdf%20to%20upload/A%20Non
%20dominated%20Sorting%20Hybrid%20Algorithm%20for
%20Multiobjective%20Optimization%20of%20Engineering
%20problems.pdf> [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.274281.
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: <https://info.medion.co.id/index.php/
component/content/article/1-tata-laksana/1132-review-mencampurransum-sendiri-self-mixing> [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:
<https://www.researchgate.net/post/In_a_comparison_between_NSGAII_and_its_implementation_in_C_code_and_JMetal_does_NSGAII_implementation_oppose_against_its_concepts> [Diakses 9 Dec. 2015].
Mahmudy, W.F., 2006. Penerapan Algoritma Genetika pada Optimasi Model
Penugasan. Natural, [e-journal] 10(3), pp.197207. Tersedia di:
<http://wayanfm.lecture.ub.ac.id/files/2014/03/200609-Natural-WayanGA-Asignment-Problem.pdf> [Diakses 26 May 2015].
Mahmudy,
W.F.,
2013.
Algoritma
Evolusi.
[pdf]
Tersedia
di:
<http://wayanfm.lecture.ub.ac.id/files/2014/04/2013-Algoritma-EvolusiModul.pdf> [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.1926.
Tersedia
di:
<http://journal.trunojoyo.ac.id/kursor/article/view/102> [Diakses 26 May
2015].
Mawaddah, N.K. dan Mahmudy, W.F., 2006. Optimasi Penjadwalan Ujian
Menggunakan Algoritma Genetika. Kursor, [e-journal] 2(2), pp.18. Tersedia
di:
<http://wayanfm.lecture.ub.ac.id/files/2014/03/200607-Kursor-NiaWayan-GA-Jadwal-Ujian.pdf> [Diakses 26 May 2015].
Nebro, A.J. dan Durillo, J.J., 2015. jMetal (4.5.2). [program komputer] Tersedia di:
<http://jmetal.sourceforge.net> [Diakses 11 May 2015].
Parakkasi, A., 1998. Ilmu Nutrisi dan Makanan Ternak Ruminan. Jakarta: UI-Press.
Pea, T., Lara, P., dan Castrodeza, C., 2009. Multiobjective Stochastic
Programming for Feed Formulation. Journal of the Operational Research
Society,
[e-journal]
60(12),
pp.17381748.
Tersedia
di:
<http://www.palgrave-journals.com/jors/journal/v60/n12/abs/
jors2008106a.html> [Diakses 26 May 2015].
Poultry
Hub,
2015.
Feed
Formulation.
[online]
Tersedia
di:
<http://www.poultryhub.org/nutrition/feed-formulation/> [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.4962. Tersedia di: <http://airccse.org/

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.221248.
Tersedia
di:
<http://www.iitk.ac.in/kangal/papers/
mobjpap.ps.gz> [Diakses 25 Jun. 2015].
Syafar, A.M., 2014. Kebutuhan Ransum Ayam Broiler Fase Starter dan Finisher.
[pdf]
Tersedia
di:
<http://www.academia.edu/7229300/
Kebutuhan_Ransum_Ayam_Broiler_Fase_Starter_dan_Finisher> [Diakses 20
May 2015].
Tim Pusat Bahasa Depdiknas, 2008. Kamus Bahasa Indonesia. [pdf] Tersedia di:
<http://www.buku-e.lipi.go.id/penulis/dend001/1257716174buku.pdf>
[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:
<http://journal.uii.ac.id/index.php/Snati/article/view/2182> [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.205211.
Tersedia di: <http://kursor.trunojoyo.ac.id/wp-content/uploads/2012/03/
vol5_no4_p1.pdf> [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: <https://id.wikipedia.org/w/index.php?
title=Mineral&oldid=8850981> [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.173195. Tersedia di: <http://www.tik.ee.ethz.ch/sop/
publicationListFiles/zdt2000a.pdf> [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)

Bekatul

1000

2860

10,2

0,04

0,16

0,71

0,27

Jagung
Kuning

2800

3370

8,6

3,9

0,02

0,1

0,2

0,18

Menir

800

3390

8,9

0,03

0,4

0,27

Pollard

1800

1300

15

10

0,14

0,32

0,3

0,17

Sorgum

900

3250

10

2,8

0,03

0,1

0,2

0,13

Tepung
Gaplek

300

2970

1,5

0,7

0,9

0,18

0,09

0,03

0,09

Tetes Tebu

500

1960

0,1

0,9

0,1

Bungkil Biji
Kapas

1500

2100

41

4,8

12

0,18

0,33

1,6

0,6

Bungkil
Kedelai

4000

2240

42

0,9

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

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,5

6,4

14

Tepung Ikan
Lokal

5000

2650

58

5,5

2,8

1,8

15

Tepung
Lamtoro

1500

828

18,9

5,9

16,3

0,05

0,55

16

Minyak
Kelapa

8000

8600

100

17

Tepung Batu

450

40

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

90

19

Garam

200

20

Kulit Kerang

250

37

21

L-lysin HCl

40000

80

22

Premix

5000

35

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

Bekatul

10

15

30

10

10

Jagung

60

60

70

60

70

Menir

40

40

40

40

40

Pollard

15

30

15

20

Sorgum

25

40

40

25

40

Tepung Gaplek

10

10

10

Tetes Tebu

Bungkil Biji Kapas

10

2.5

Bungkil Kedelai

30

30

40

30

40

10

Bungkil Kelapa

10

15

25

15

15

11

Bungkil Kacang Tanah

7.5

15

7.5

12

Tepung Ikan

10

10

13

Tepung Lamtoro

14

Minyak/Lemak

15

Kulit Kerang

16

Gandum

10

20

40

10

30

17

Kapur

18

Limbah Udang

19

Tepung Bulu

20

Tepung Daging

21

Tepung Bekicot

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

Ayam pedaging Starter (03mg)

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

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

Ayam petelur
jantan

1 hari dipotong

2900

19

5-8

4-5 0,9-1,1 0,6-0,8

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

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

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 tlbt

(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

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

3,5

2,1

4,4

8,6

0,7

33,8 0,9

6,2

1830,8526011561

0,6002456647

19,1419075145 0,0171877214 1204

9,6

3,7

3,1

8,9

1,6

0,7

32

0,8

6,7

1786,7583212735

0,6001447178

19,0395079595 0,0171934681 1059

3,1

1,5

3,7

5,9

8,1

0,9

39,3 1,1

5,8

1873,7926136364

0,6000426136

19,0474431818 0,0171958247 1036

4,2

2,8

3,2

8,5

5,4

0,6

30,9 0,1

1869,2426584235

0,600015456

19,2386398764 0,0171913744 1205

7,3

2,8

1,8

5,9

2,5

0,7

26

0,1

5,3

1765,7942238267

0,6002707581

19,1391696751 0,0171873009 964

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

9,9

3,8

0,2

5,8

8,3

0,9

32,5 0,2

6,2

1739,1833810888

0,6008452722

19,0312320917 0,0171744218 1130

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

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

4,8

2,7

0,2

6,3

3,9

0,9

29,8 0,5

5,3

1879,7318611987

0,6005362776

19,0113564669 0,0171831047 1279

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

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

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

7,3

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

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,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

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

0,9

3,4

6,6

9,9

0,6

39

0,3

6,2

1797,7303070761

0,6014686248

19,0028037383 0,0171577718 974

3,7

3,2

2,5

4,5

9,1

0,7

37,4 0,2

5,5

1712,2418879056

0,6001474926

19,0143067847 0,0171943307 1033

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

9,9

4,9

1,9

4,4

0,6

39,9 0,1

1651,6087516088

0,60001287

19,0572715573 0,017197098

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

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

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

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

4,8

3,1

6,1

9,5

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

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

7,6

4,8

2,2

6,2

0,3

0,5

33,3 0,1

6,2

1597,5080385852

0,6130868167

19,002733119

3,8

3,1

2,6

7,3

0,9

37,3 0,1

5,8

1694,157814871

0,600030349

19,0452200303 0,0171967925 1305

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

6,5

4,9

3,7

0,1

5,9

0,1

0,8

38,6 0,1

1587,7400295421

0,6185376662

19,0007385524 0,0166997578 1345

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

5,2

4,5

0,4

2,3

9,6

0,6

31,5 0,1

6,2

1691,3461538462

0,6333974359

19,0014423077 0,016320064

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

2,1

2,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

5,7

4,1

0,8

4,6

0,4

0,8

35,7 0,1

1610,7717041801

0,6001125402

19,0049839228 0,0171959271 1408

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

9,3

2,5

4,5

2,2

6,7

0,7

35,5 0,1

6,7

1708,7427745665

0,6000289017

19,0153179191 0,0171976079 1164

8,8

4,5

1,3

1,8

8,5

2,9

0,5

27,6 0,2

1728,421900161

0,6006119163

19,0062801932 0,0171816138 1395

8,1

3,1

5,1

0,3

36,9 0,2

6,2

1739,6383866481

0,6004311544

19,0001390821 0,017186759

3,5

2,7

1,7

4,5

9,2

2,4

0,7

31,6 0,1

1777,4429967427

0,6

19,0371335505 0,0171975819 1541

6,9

3,9

3,9

8,4

0,5

0,8

34,9 0,1

6,2

1653,7537537538

0,6002852853

19,0088588589 0,0171908632 1332

3,7

2,5

0,9

7,9

1,6

0,8

29,3 0,1

4,5

1754,7069271758

0,6008880995

19,0003552398 0,0171740386 1409

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

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

7,8

2,5

3,1

0,7

5,6

0,2

0,6

24,6 0,2

1681,3121272366

0,6003976143

19,0043737575 0,0171877715 1469

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

9,2

2,6

2,2

4,1

0,8

25,6 0,4

6,2

1877,971473851

0,6

19,1448494453 0,0171943253 1376

7,7

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

9,9

4,8

0,1

8,6

0,9

0,8

30,9 0,1

5,9

1655,6060606061

0,6009090909

19,0004545455 0,0171737956 1651

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,7

2,8

3,7

8,9

0,8

33,5 0,1

6,4

1751,7882689557

0,6

19,1121602289 0,0171956022 1638

3,3

1,6

3,8

1,3

38,9 0,1

5,8

1650,1453488372

0,6025872093

19,0007267442 0,017127464

10

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,8

3,9

2,5

3,1

4,4

0,9

36,6 0,2

6,2

1782,9142011834

0,6078402367

19,0035502959 0,0169835177 1542

9,8

4,6

0,1

5,4

0,7

0,8

35,2 0,1

1634,8596750369

0,6011964549

19,0038404727 0,0171658241 1716

8,8

1,8

2,4

7,4

1,7

0,9

32

1784,0634441088

0,6

19,0132930514 0,0171982197 2006

4,6

4,2

2,3

9,5

0,1

0,9

39,8 0,1

5,9

1652,731092437

0,6028991597

19,0021008403 0,0171188299 1777

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

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

0,9

4,9

9,8

0,5

0,8

28,4 0,2

3,7

1766,2835249042

0,6043103448

19,0026819923 0,017079692

1,7

1,2

4,4

12,2 7,9

9,4

35,2 1

2258,024691358

0,6000123457

21,1112345679 0,0171444338 1592

4,9

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

5,8

3,2

2,7

3,5

6,2

0,7

35,2 0,1

5,7

1685,5694227769

0,6002028081

19,000624025

2,2

0,8

5,4

8,3

1,2

40

0,1

5,4

1658,5014409222

0,6000432277

19,0332853026 0,0171968909 2008

9,4

0,2

3,2

9,2

0,9

0,7

29,5 0,1

5,7

1648,7480438185

0,6004381847

19,010485133

4,7

1,6

4,2

8,9

1,4

38,7 0,2

5,7

1681,4121037464

0,6013544669

19,0002881844 0,0171613825 1603

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

2,4

1,3

4,2

4,9

9,4

1,3

39,2 0,1

5,6

1776,3688760807

0,6006628242

19,0020172911 0,0171801646 1849

3,4

2,7

0,1

8,3

10

0,1

36,5 0,4

4,7

1762,6488095238

0,6

19,0697916667 0,0171967295 1797

4,9

3,8

5,2

9,9

1,4

1,1

39,4 0,5

6,2

1751,4112903226

0,6010887097

19,0004032258 0,0171684938 1826

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

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

0,6

4,6

8,6

0,1

39,5 0,1

6,6

1629,4117647059

0,6165800274

19,002872777

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

7,2

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

6,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

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

9,9

4,9

1,9

4,1

8,3

0,5

0,9

39,9 0,1

1644,5806451613

0,6011225806

19,0043870968 0,017167817

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

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

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

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

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

9,7

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

1,5

4,4

0,9

5,5

8,1

0,3

38,4 0,6

1705,4794520548

0,6005175038

19,0059360731 0,0171843188 2115

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

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

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

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

10

3,8

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

4,6

2,3

8,7

2,3

0,8

28,8 0,1

1693,5763888889

0,6000347222

19,0112847222 0,0171976103 2338

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

9,6

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

6,1

2,9

3,9

1,8

9,3

0,9

32,4 0,9

6,3

1835,4135338346

0,6012631579

19,0004511278 0,0171634043 2292

7,5

2,6

2,7

5,7

8,4

0,5

39,5 0,1

6,3

1714,401076716

0,600013459

19,0114401077 0,0171981248 2161

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

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

3,4

3,4

1,2

6,7

8,8

0,2

40

0,2

5,3

1697,0085470086

0,6002421652

19

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

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

4,3

2,9

0,1

0,2

0,5

30,5 0,1

5,7

1589,0763765542

0,6077087034

19,0047957371 0,0169877282 2524

3,4

4,4

1,1

5,4

9,9

0,4

39,3 0,1

5,4

1662,9261363636

0,6001278409

19,0005681818 0,0171954298 2347

1,6

2,3

4,5

3,7

2,8

0,9

40

1775,9558823529

0,6002941176

19,0308823529 0,0171895932 2358

4,1

3,9

5,2

8,9

3,1

39,9 0,1

6,3

1744,8322147651

0,6000805369

19,0059060403 0,0171963133 2399

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

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

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

10

4,9

1,2

7,9

0,2

0,7

33,3 0,1

6,2

1623,037037037

0,6016296296

19,0094814815 0,0171537364 2350

9,1

3,6

3,8

7,4

0,3

0,9

33,9 0,2

6,1

1677,9346210996

0,6003268945

19,0046062407 0,0171897391 2612

10

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,4

2,3

1,9

5,5

2,9

0,5

23,3 0,1

3,9

1794,1780821918

0,6000684932

19,0100456621 0,0171963755 2699

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

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

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

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

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

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

1,7

3,1

2,1

5,1

9,3

5,9

35,9 0,4

6,1

1887,2521246459

0,6000141643

19,0218130312 0,0171972842 2744

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

5,9

3,3

1,3

6,7

1,8

0,6

33,7 0,1

1677,1293375394

0,600126183

19,0022082019 0,0171953795 2634

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

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

7,5

4,7

2,4

0,3

1,2

0,7

28,8 0,1

5,7

1622,0383275261

0,6001045296

19,0041811847 0,0171961286 2806

4,8

2,4

1,6

8,6

2,1

0,7

34,7 0,2

1680,1059001513

0,6010590015

19,0007564297 0,0171695486 3037

8,1

4,4

3,7

8,7

0,9

35,5 0,1

6,9

1685,6241234222

0,6005189341

19,0002805049 0,0171845048 2835

9,4

1,7

0,7

5,6

9,6

0,7

25,5 0,1

5,9

1899,9221183801

0,6002647975

19,0020249221 0,0171908375 2811

2,6

9,3

0,9

40

0,1

5,5

1727,0172910663

0,6027233429

19,0007204611 0,0171234462 2855

6,5

4,8

1,1

3,1

6,9

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

7,7

2,4

0,7

4,5

0,6

32,6 0,1

6,4

1720,6451612903

0,6000645161

19,0020967742 0,0171969442 3061

6,6

4,4

4,2

0,8

0,3

0,9

37,4 0,3

6,5

1645,1023391813

0,6001169591

19,000877193

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

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

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

3,6

1,1

4,8

3,1

0,7

30,2 0,7

5,6

1907,0069204152

0,6001557093

19,0079584775 0,0171936818 3205

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

6,6

2,3

0,1

8,5

0,1

0,7

30,2 0,1

5,6

1592,4831081081

0,6055067568

19,0001689189 0,017047683

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

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

0,9

0,9

6,9

4,7

0,7

33,4 0,1

1870,8333333333

0,6004559748

19,4254716981 0,0171741435 875

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

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

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,3

2,3

5,3

9,6

2,2

39,3 1

6,6

1827,9373368146

0,6000652742

19,1429503916 0,0171927099 1010

4,4

4,5

9,9

1,1

39,8 0,5

6,1

1736,3391655451

0,6001615074

19,165679677

0,0171897068 1105

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

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,4

0,7

7,8

8,9

0,8

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

Probabilitas Crossover : Probabilitas Mutasi = 0,1 : 0,9


Percobaan

Variabel (Proporsi Bahan Pakan)

f1

f2

f3

Fitness

Waktu

146

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

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

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

8,4

1,6

0,9

6,6

0,6

26,3 0,5

5,8

1716,9844020797

0,600017331

19,1585788562 0,0171939688 784

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

2,8

3,2

3,7

8,9

1,7

0,7

37

0,6

5,9

1790,8633093525

0,6000863309

19,7716546763 0,0171756274 1000

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

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

8,6

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

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

6,4

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

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

8,9

4,9

1,9

0,2

0,4

0,6

25,9 0,3

5,5

1622,1611721612

0,6002014652

19,1177655678 0,0171903106 1132

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

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

3,5

1,7

2,4

4,6

10,7 0,7

28,6 0,4

6,7

2078,2576866764

0,6001610542

19,0491947291 0,0171919624 821

2,7

4,3

7,4

0,6

0,7

40

5,7

1812,0614035088

0,6000584795

19,1280701754 0,0171933529 961

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

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

0,3

1063

1187

Probabilitas Crossover : Probabilitas Mutasi = 0,3 : 0,7


Percobaan

Variabel (Proporsi Bahan Pakan)

f1

f2

f3

Fitness

Waktu

148

4,4

0,1

7,2

3,8

0,8

31

0,2

6,1

1725

0,6003733766

19,0853896104 0,0171860597 1060

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

6,1

4,1

0,7

8,5

0,2

0,5

24,6 0,2

4,4

1650,1949317739

0,6002729045

19,0415204678 0,0171903175 966

5,7

4,5

2,5

3,7

9,8

4,2

36,9 0,8

1839,8160315375

0,6001051248

19,1178712221 0,0171922532 865

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,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

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,4

4,8

4,2

0,7

6,3

0,5

0,7

38,6 0,3

1636,7132867133

0,6000559441

19,0023776224 0,0171974726 1127

2,8

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

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,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

7,9

4,4

3,9

0,5

9,5

2,7

0,9

34,2 0,3

1731,0659186536

0,6000841515

19,0060308555 0,017196255

3,3

2,6

1,4

7,5

0,1

0,7

32,3 0,1

4,4

1693,8153310105

0,6000174216

19,0128919861 0,0171980455 834

7,3

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

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

5,5

2,4

4,9

2,4

9,7

0,5

36,9 0,3

6,2

1744,5558739255

0,6004441261

19,0954154728 0,017183757

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

6,5

2,8

4,7

3,2

7,6

3,3

0,9

37,3 0,3

1814,6059782609

0,6000815217

19,2914402174 0,0171882779 724

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

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

5,1

4,5

1,6

8,3

2,9

0,8

39,9 0,2

6,4

1757,463672391

0,6000264201

19,2935270806 0,0171899314 817

4,2

2,5

3,8

7,7

0,7

37,7 0,5

6,2

1747,5817923186

0,6000711238

19,0978662873 0,0171940321 1001

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

4,8

3,7

4,5

5,4

0,1

0,8

39,9 0,2

6,2

1647,0414201183

0,6005473373

19,0699704142 0,0171819329 1002

4,2

2,8

4,8

9,8

0,6

27,6 0,4

1989,4171779141

0,6003374233

19,0947852761 0,0171860289 880

6,1

3,4

1,9

1,7

0,9

0,6

24,7 0,2

4,7

1696,4143426295

0,6002589641

19,2029880478 0,0171861234 959

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

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

4,8

2,9

3,9

8,4

0,1

39,7 0,7

6,1

1720,1117318436

0,6000139665

19,0216480447 0,0171978091 891

8,8

0,7

3,9

7,7

9,8

0,1

39,2 0,1

6,4

1806,3063063063

0,6

19,4066924067 0,017187489

0,8

2,5

7,6

2,5

0,8

33,7 0,1

4,7

1781,7420435511

0,6000837521

19,0835845896 0,0171939636 1046

1,1

2,4

4,8

0,8

0,5

25,4 0,6

3,7

1726,072234763

0,6002708804

19,285778781

0,0171834559 883

9,2

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

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,5

4,4

2,6

8,5

0,2

0,7

31

0,3

5,6

1682,8821656051

0,600111465

19,2638535032 0,0171886201 989

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

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

5,8

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

1,4

3,1

6,2

9,2

2,6

39,6 0,1

5,5

1769,1654879774

0,6000141443

19,0916548798 0,0171957152 964

3,7

2,9

3,8

3,3

9,7

0,9

36,4 0,8

6,3

1854,8728813559

0,6000423729

19,0600282486 0,0171955391 803

1,1

4,5

4,9

8,4

5,9

0,8

39,8 0,3

6,4

1827,9352226721

0,6000539811

19,1238866397 0,0171935442 1030

7,9

3,2

9,8

1,5

38,3 0,9

6,6

1879,6632124352

0,6

19,0136010363 0,0171979261 972

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

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

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

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

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,6

4,9

1,1

5,3

7,6

39,7 0,3

5,3

1679,7935103245

0,6001474926

19,1143067847 0,0171916921 1042

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

4,6

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

8,7

3,8

0,7

8,1

3,5

0,6

32,8 0,1

1746,0317460318

0,6001154401

19,0448773449 0,0171942635 926

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

3,2

2,4

0,5

7,4

0,2

0,5

23,7 0,1

3,4

1710,0220264317

0,6000440529

19,0922907489 0,0171950626 849

1,3

4,8

4,1

7,3

3,9

0,7

34,9 0,4

5,4

1773,4326018809

0,6001253918

19,0699059561 0,0171932095 1044

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

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

5,3

3,6

1,4

10,1 0,6

23,9 0,5

6,7

2020,4582651391

0,6000981997

19,0201309329 0,0171946475 1204

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

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

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

8,3

3,3

0,6

6,4

9,9

0,4

33,9 0,6

5,8

1768,5185185185

0,6008547009

19,0692307692 0,0171730182 1031

3,7

2,8

4,4

0,7

2,6

0,6

31,3 0,2

5,6

1749,5606326889

0,6003690685

19,0680140598 0,0171865752 805

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

9,3

3,5

1,8

7,7

0,4

0,7

31,7 0,1

6,1

1663,6858475894

0,6003421462

19,001244168

2,7

3,4

2,2

5,4

8,5

0,7

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

7,5

3,7

5,6

0,2

0,9

35,3 0,4

5,9

1808,8489208633

0,6

19,1753956835 0,0171936967 1037

4,5

3,3

5,9

0,8

36,5 0,6

6,2

1789,5136778116

0,6001215805

19,0805471125 0,0171929722 993

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

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

9,3

2,8

0,8

1,6

3,7

0,3

17,2 0,1

4,9

1813,0196936543

0,6002625821

19,0822757112 0,0171889381 919

7,3

4,9

0,5

4,1

1,1

0,8

33,1 0,2

5,7

1667,5799086758

0,6

19,0442922374 0,0171977551 1290

7,1

1,9

4,4

1,4

0,8

30,7 0,2

5,9

1775,8012820513

0,6000480769

19,1440705128 0,0171933175 1158

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

3,7

0,4

2,9

8,1

7,5

0,3

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

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)

7,8

4,9

1,5

5,6

2,3

4,5

3,9

4,2

3,2

2,9

8,3

f1

f2

f3

Fitness

Waktu

156

0,7

36,7 0,5

1821,6233766234

0,6002077922

19,4706493506 0,0171799798 1143

17,8 4,9

1,1

38,2 0,8

5,6

2163,0461922597

0,6000749064

23,5237203496 0,0170943121 1038

2,6

0,4

0,6

0,5

27,2 0,4

5,2

1709,2592592593

0,6237426901

19,0717348928 0,0165624387 993

1,4

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

9,5

3,9

2,7

4,5

9,3

3,1

0,8

31,7 1,1

1914,5380434783

0,6000407609

19,6472826087 0,0171797339 884

8,5

4,9

0,7

6,1

9,1

2,4

0,9

39,8 0,6

1756,6875

0,6003625

19,030125

9,7

2,7

4,8

0,9

7,6

0,8

31,9 0,8

6,8

1790,8955223881

0,6002985075

19,0529850746 0,0171888149 867

4,4

4,7

0,7

12,3 7,5

4,1

1,1

36,3 0,2

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

5,1

3,4

1,9

3,6

7,5

0,5

0,7

31,2 0,2

1700,7614213198

0,6000507614

19,1734348562 0,0171926914 893

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

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

3,7

2,5

8,6

2,1

0,9

33,6 0,3

5,8

1748,7673343606

0,6000308166

19,1090909091 0,0171948401 928

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

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

4,8

0,1

1,8

0,6

31,8 0,5

5,7

1744,0497335702

0,6002664298

19,053285968

9,9

0,4

6,7

9,9

2,1

32,5 0,7

6,3

1830,3448275862

0,6000275862

19,0074482759 0,0171974734 877

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

10

4,9

0,7

3,9

7,4

0,1

0,9

32,6 0,1

1628,6036036036

0,6

19,0990990991 0,0171963918 2390

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

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

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

2,6

1,7

1,9

6,8

9,8

35,3 0,3

5,3

1857,459379616

0,6000443131

19,0589364845 0,0171955078 2075

1,6

0,7

3,9

2,5

4,1

0,6

25,9 0,4

4,7

1958,9285714286

0,6000396825

19,1109126984 0,0171939305 2301

4,4

2,2

3,4

9,3

1,2

0,9

36,7 0,2

6,5

1688,3928571429

0,6000412088

19

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

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

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

8,3

4,9

3,8

1,6

9,3

0,2

0,9

40

1632,3915900131

0,6000788436

19,029303548

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

8,4

2,8

6,4

0,7

0,7

33,8 0,4

6,4

1647,4847560976

0,6000304878

19,0048780488 0,0171980704 3252

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

3,7

1,3

7,2

9,4

0,5

25,6 0,8

6,5

2121,2295081967

0,6000819672

19,0478688525 0,0171940975 3030

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

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,3

4,9

3,2

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

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

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

6,2

3,8

2,3

3,9

0,3

0,7

37,2 0,1

5,8

1653,5661218425

0,6000148588

19,0044576523 0,0171984938 4143

3,9

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

7,5

4,4

6,6

0,3

0,6

36,1 0,2

6,2

1637,2197309417

0,6000597907

19,0204783259 0,017196863

8,6

3,3

2,7

0,1

0,4

0,5

23,4 0,5

5,2

1713,829787234

0,6

19,0216634429 0,0171982179 4048

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

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

3,8

3,6

2,2

7,8

1,9

0,7

38,5 0,3

5,8

1744,4683908046

0,6000287356

19,0869252874 0,0171955198 4055

10

4,4

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

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

7,9

3,9

4,5

0,5

7,2

0,7

34,8 0,2

6,6

1678,0832095097

0,6

19,0906389302 0,0171964428 5254

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

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

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

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

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

3,5

1,7

5,5

10

0,5

38,3 0,3

5,3

1718,2344428365

0,6

19,0169319826 0,0171983338 5815

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

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

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

7,9

4,6

0,8

7,4

0,5

0,6

22,8 0,3

4,8

1646,7455621302

0,6

19,0788954635 0,0171968786 7438

9,4

3,5

2,7

2,2

9,9

0,1

0,9

31

1676,8237082067

0,6000303951

19,0439209726 0,017196888

4,3

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

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

7,4

4,7

1,4

0,7

6,6

0,3

0,5

25,9 0,2

1604,8387096774

0,6000379507

19,0051233397 0,0171980176 7092

9,8

2,5

2,1

4,1

8,9

1,1

0,9

30,2 0,3

1764,4157814871

0,6000151745

19,0250379363 0,0171975359 7027

4,5

3,2

1,8

9,5

2,5

0,7

36,2 0,1

6,5

1706,6901408451

0,6

19,044084507

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

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

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,8

2,6

4,1

7,1

0,8

38,9 0,5

6,1

1773,2474964235

0,6

19,043204578

0,0171974277 8720

7,3

4,8

1,1

6,3

0,2

0,6

29,1 0,2

5,2

1608,9788732394

0,6000528169

19,0197183099 0,0171971849 8373

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

8,8

4,1

1,9

1,4

0,2

0,5

27,7 0,1

5,4

1627,408056042

0,6000175131

19,0439579685 0,0171974259 8783

7,6

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

5,5

3,2

1,6

6,3

2,8

0,7

29

5,7

1804,2024013722

0,6000171527

19,0399656947 0,0171969439 8252

4,8

4,2

1,3

3,6

6,4

0,2

0,6

33,5 0,1

1625,7956448911

0,6000335008

19,0155778894 0,0171977716 7926

6,2

4,5

0,7

6,2

9,9

0,9

1,1

39,1 0,1

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

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

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

8,5

4,3

4,1

0,7

7,1

0,9

35,4 0,1

1680,0998573467

0,6000142653

19,0329529244 0,017197627

9,1

1,8

9,8

0,2

0,7

35,8 0,3

6,4

1659,0152565881

0,6000277393

19,0327323162 0,0171973345 9962

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,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

5,6

3,3

2,1

9,9

0,9

39,8 0,3

6,6

1671,2751677852

0,6000536913

19,017852349

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

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

9,8

0,7

38,6 0,1

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

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

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

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

9,2

3,5

2,2

7,5

1,1

0,8

36,8 0,5

1728,9256198347

0,6000275482

19,0009641873 0,0171979745 12795

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,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

3,3

2,1

4,8

9,6

0,4

1,1

39,9 0,1

5,6

1672,0028208745

0,6

19,0184767278 0,017198452

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

4,6

3,1

5,6

0,4

0,8

33,9 0,1

1605,92

0,6

19,0232

10

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

4,9

2,3

1,3

7,9

9,9

0,9

38

0,6

1863,3021390374

0,600013369

19,0618983957 0,0171962689 13347

3,2

0,6

2,2

8,1

9,8

0,8

0,8

37,7 0,4

1837,0262390671

0,6000145773

19,0021865889 0,0171979606 13949

6,6

3,6

0,3

5,9

9,3

0,4

32

0,8

5,3

1780,8282208589

0,6

19,0645705521 0,0171968152 12927

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

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,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

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

7,3

2,4

1,6

9,9

0,2

0,8

34,1 0,1

1627,7448071217

0,6000148368

19,0477744807 0,0171973937 14338

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

You might also like