Sistem Rekomendasi Bahan Makanan Bagi Penderita - j

advertisement
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Vol. 1, No. 11, November 2017, hlm. 1406-1415
e-ISSN: 2548-964X
http://j-ptiik.ub.ac.id
Sistem Rekomendasi Bahan Makanan Bagi Penderita Penyakit Jantung
Menggunakan Algoritma Genetika
Elisa Julie Irianti Siahaan1, Imam Cholissodin2, M. Ali Fauzi3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: [email protected], [email protected], [email protected]
Abstrak
Kurangnya kesadaran masyarakat dalam mengatur konsumsi makanan yang sesuai dengan kebutuhan
gizi dapat menyebabkan berbagai penyakit salah satunya adalah penyakit jantung. Penyakit Jantung
merupakan penyakit yang terjadi akibat dari adanya sumbatan kolesterol dan lemak pada arteri kororner.
Mengatur asupan makanan merupakan hal yang sangat penting bagi penderita penyakit jantung untuk
dapat mengurangi sumbatan yang ada. Menyusun bahan makanan untuk diet jantung menjadi hal yang
sulit karena berbeda dengan diet yang lainnya, dimana dalam diet jantung jumlah protein dan lemak
dikurangi. Algoritma genetika dapat menyelesaikan masalah penyusunan bahan makanan dengan proses
komputasi. Data dalam melakukan penelitian adalah data bahan makanan penyusun diet yang terdiri
dari 8 jenis bahan makanan yaitu karbohidrat, protein hewani, protein nabati, sayur, buah, susu, gula
dan minyak. Dalam mengubah bahan makanan menjadi kromosom digunakan representasi kromosom
real code. Metode crossover yang digunakan adalah extended intermediate crossover, untuk metode
mutasi yang digunakan adalah random mutation dan metode seleksi digunakan elitism selection. Dari
hasil pengujian didapatkan nilai parameter algoritma genetika yang optimal, yaitu jumlah populasi
sebesar 280 dengan rata-rata nilai fitness 103,7, nilai Cr dan Mr adalah 0,5 dan 0,5 dengan rata-rata nilai
fitness 103,3 dan untuk jumlah generasi sebesar 100 dengan rata-rata nilai fitness 111,2. Hasil keluaran
dari sistem merupakan rekomendasi bahan makanan dengan 5 kali waktu makan per hari, yaitu makan
pagi, snack, makan siang, snack dan makan malam dengan jumlah hari sesuai pilihan pengguna.
Kata kunci: penyakit jantung, algoritma genetika, bahan makanan diet jantung
Abstract
Lack of public awareness in regulating the consumption of food based on nutrition can cause several
diseases including heart disease. Heart disease is caused from blockage of cholesterol and fat in the
coronary artery. It is very important for people with heart disease to regulate food intake in order to
reduce the blockage. Managing the food for the heart diet is difficult because heart diet is different from
the other diets, because the amount of protein and fat is reduced. Genetic algorithms can solve the
problem of managing food by computation process. The data that are used in this research are diet food
ingredients data that consist of 8 kinds of food ingredients, carbohydrate, animal protein, vegetable
protein, vegetable, fruit, milk, sugar and oil. In converting food into chromosome, chromosome real
code representation is used. The crossover method that is used is extended intermediate crossover, the
mutation method that is used is random mutation and the selection method is elitism selection. From the
results of the testing, the optimal parameter scores of the genetic algorithm are the population number
of 280 with the average fitness score of 103.7, Cr and Mr scores are 0.5 and 0.5 with the average fitness
score of 103.3 and for the generations score is 100 with average fitness score of 111.2. Output of the
system is food ingredients recommendation with 5 times a day meal time, which consists of breakfast,
snack, lunch, snack and dinner with number of days based on user choice.
Keywords: Heart disease, genetic algorithm, heart diet food
Fakultas Ilmu Komputer
Universitas Brawijaya
1406
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
1. PENDAHULUAN
Penyakit jantung adalah penyakit yang
disebabkan karena terjadinya sumbatan pada
arteri koroner. Arteri koroner sendiri merupakan
pembuluh darah khusus yang berfungsi sebagai
jalur jalannya darah ke jantung. Jantung dapat
bergerak normal apabila menerima oksigen dan
nutrisi yang cukup. Oksigen dan nutrisi yang
diperlukan oleh jantung berada dalam darah
yang disalurkan melalui arteri koroner ke
jantung. Sumbatan pada arteri koroner
disebabkan karena adanya pengendapan dari
kolestrol dan lemak, sumbatan ini akan terjadi
secara perlahan-lahan semakin menebalnya
sumbatan akan memperkecil diameter dari arteri
koroner yang menyebabkan jumlah darah yang
diberikan ke jantung kurang (Soeharto, 2004).
Badan Penelitian dan Pengembangan
Kesehatan
(Balitbangkes)
Kementerian
Kesehatan (2014) melakukan suatu penelitian
mengenai penyebab kematian di Indonesia. Data
yang digunakan didapat dari total jumlah
kematian sebanyak 41.590 jiwa sepanjang tahun
2014, dimana setiap kematian diketahui dengan
pasti penyebabnya dengan melakukan autopsi
verbal. Di dapatkan hasil berupa 10 penyebab
kematian di indonesia, peringkat pertama adalah
penyakit stroke dengan persentase 21,1%
kemudian disusul oleh penyakit jantung yang
berada pada nomor 2 sebanyak 12,9% yang
menjadi penyebab kematian laki-laki dan
perempuan di Indonesia. Sebelumnya WHO
(2012) merilis informasi mengenai 10 penyebab
kematian di Indonesia dan penyakit stroke
berada pada urutan nomor 1 dengan persentase
21,2% lalu disusul oleh penyakit jantung dengan
persentase 8,9% atau sebanyak 138,4 ribu
penyebab kematian. Kematian yang disebabkan
oleh penyakit jantung mengalami peningkatan
dari tahun 2000 hingga 2012.
Karena tingginya penyebab kematian yang
disebabkan oleh penyakit jantung pemerintah
memberikan kebijakan untuk mendukung pola
hidup sehat dengan, dikeluarkannya Peraturan
Menteri Kesehatan No. 30 Tahun 2013 tentang
Pencantuman Informasi Kandungan Gula,
Garam dan Lemak serta Pesan Kesehatan untuk
Pangan Olahan dan Pangan Siap Saji, UU
Republik Indonesia No. 36 Tahun 2009 tentang
kesehatan, Peraturan pemerintah No. 109 Tahun
2012 mengenai Pengamanan Bahan yang
Mengandung Zat Adiktif berupa Produk
Tembakau bagi Kesehatan dan Peraturan
Fakultas Ilmu Komputer Universitas Brawijaya
1407
Menteri Kesehatan No. 28 Tahun 2013 tentang
Pencantuman Peringatan Kesehatan dan
Informasi Kesehatan pada Kemasan Produk
Tembakau.
Bagaimana menentukan makanan yang
sehat untuk di konsumsi menjadi hal penting
bagi penderita penyakit jantung. Makanan yang
sehat adalah makanan yang dapat memenuhi
kebutuhan tubuh dari setiap nutrisi yang
dibutuhkan tubuh. Sehingga makanan yang sehat
adalah makanan yang sesuai dengan kebutuhan
tubuh. kita harus mengonsumsi banyak jenis
makanan untuk memenuhi kebutuhan gizi.
Karena dalam tiap makanan mempunyai
kandungan yang berbeda-beda (Wijayati, 2008).
Algoritma genetika pernah digunakan dalam
beberapa penelitian untuk menyusun komposisi
makanan, seperti yang dilakukan oleh Wahid
(2015) yang menggunakan algoritma genetika
untuk mendapatkan komposisi makanan yang
baik bagi penderita penyakit kolesterol. Dalam
penelitiannya Nurbaiti memetakan solusi
kedalam kromosom real code integer,
kromosom yang digunakan mempresentasikan
urutan dari nomor data menu makanan yang
panjang kromosomnya adalah 9. Pada proses
reproduksi di crossover digunakan metode
single point crossover dimana metode ini akan
menentukan satu titik potong dari panjangnya
kromosom dan menggabungkan kromosom yang
berada pada awal hingga sebelum titik potong
dari parent pertama dan menggabungkannya
dengan kromosom setelah dari titik potong
hingga akhir pada parent kedua. Pada proses
mutasi digunakan metode reciprocal exchange
mutation sedangkan metode yang digunakan
untuk proses seleksi adalah elitism. Data bahan
makanan yang digunakan sebanyak 100 data dan
dari hasil pengolahan data menggunakan
algoritma genetika di dapatkan nilai dari ratarata fitness adalah 0,18575847 dengan nilai
parameter Cr sebesar 0,7 dan nilai Mr sebesar
0,3 sehingga dihasilkan solusi yang optimum
dalam menentukan komposisi makanan bagi
penderita kolesterol dengan harga yang minim.
Penelitian yang dilakukan oleh Hamidah
(2016)
dalam
mengoptimasi
makanan
menggunakan hybrid algoritma genetika dan
juga
disempurnakan
dengan
simulated
annealing ditujukan untuk kebutuhan gizi
keluarga. Sebagai inputan yang digunakan
adalah data aktual dari suatu keluarga. Dalam
penelitiannya Hamidah menghitung kebutuhan
gizi keluarga menggunakan tabel porsi makan
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
yang disesuaikan dengan umur dari tiap anggota
keluarga.
Represetasi
kromosom
yang
digunakan
adalah
real
code
dengan
menggunakan angka 1 hingga 55 sebagai gennya
dan merupakan nomor indeks bahan penyusun
makanan. Dalam melakukan proses penguraian
dari kromosom ke solusi digunakan rumus
normalisasi min max hanya di sesuaikan dengan
kasus yang ada. dalam proses algoritma genetika
metode crossover yang digunakan adalah one
cut point crossover dan untuk mutasi
menggunakan insertion mutation. Dengan nilai
popsize sebesar 280, crossover rate 0,6 dan
mutation rate sebesar 0,4 untuk mendapatkan
hasil yang optimal. Dalam perhitungan nilai
fitness menggunakan jumlah dari selisih nilai
gizi, jumlah biaya dan variasi dari makanan.
Sehingga solusi diharapkan dapat mempunyai
nilai gizi yang baik, dengan memperhitungkan
biaya yang dikeluarkan untuk memenuhi
kecukupan gizi namun juga dengan pilihan
makanan yang lebih bervariasi.
Dalam penelitian lainnya yang dilakukan
oleh Penelitiian lain yang dilakukan oleh Wahid
(2015) yang menggunakan algoritma genetika
untuk mendapatkan komposisi makanan yang
baik bagi penderita penyakit kolesterol. Data
bahan makanan yang digunakan sebanyak 100
data dan dari hasil pengolahan data
menggunakan algoritma genetika di dapatkan
nilai dari rata-rata fitness adalah 0,18575847
dengan nilai parameter Cr sebesar 0,7 dan nilai
Mr sebesar 0,3 sehingga dihasilkan solusi yang
optimum dalam menentukan komposisi
makanan bagi penderita kolesterol dengan harga
yang minim.
Sehingga dari permasalahan yang ada dan
berdasarkan kajian dari penelitian sebelumnya
penulis akan menggunakan algoritma genetika
untuk mendapatkan bahan makanan yang
optimal sesuai dengan kebutuhan gizi bagi
penderita penyakit jantung. Dalam penelitian ini
hanya menggunakan algoritma genetika untuk
menyelesaikan masalah karena algoritma
genetika sudah mampu dalam memberikan hasil
yang baik seperti pada penelitian Wahid.
Penelitian
ini
menerapkan
representasi
kromosom real code dan rumus persamaan min
max dalam proses penguraian kromosom
menjadi indeks bahan makanan seperti
penelitian yang dilakukan oleh Hamidah. Dan
dalam
proses
crossover
dan
mutasi
menggunakan extended intermediate crossover
dan random mutation seperti penelitian Fadilah
Fakultas Ilmu Komputer Universitas Brawijaya
1408
untuk mendapatkan offspring lebih beragam dari
induknya.
2. TINJAUAN PUSTAKA
2.1 Penyakit Jantung
Penyakit jantung dikarenakan seringnya
mengkonsumsi makanan yang berlemak tinggi
yang menyebabkan terjadi penebalan plak pada
pembuluh nadi koroner yang membuatnya
menjadi kurang lentur. Disaat pembuluh nadi
koroner mengalami penyumbatan maka jantung
tidak mendapatkan aliran darah yang membawa
oksigen yang menyebabkan kerja jantung
terhenti ini disebut sebagai serangan jantung
koroner (Sulistiani, W,2005). Gambar organ
jantung terdapat pada Gambar 1.
Gambar 1 Jantung
Penyebab dari terkena penyakit jantung
sangat erat kaitannya dengan konsumsi makanan
yang mempunyai gizi seimbang dan juga diet.
Dikarenakan penyakit jantung adalah penyakit
yang bersifat multifactorial sehingga dalam hal
diet dapat menekan faktor primer dan sekunder
dari penyakit jantung (Krisnatih dan Yenrina,
1999).
2.2 Energi
Energi adalah daya atau sumber kemampuan
bekerja. Energi tidak dapat rusak melainkan
energi mengalami perubahan bentuk dari suatu
bentuk tertentu menjadi bentuk yang lainnya.
(Beck, 2000).
BMR (Basal Metabolisme Rate) atau AMB
(Angka Metabolisme Basal) adalah suatu cara
untuk menghitung kebutuhan nilai energi total
dimana terdapat beberapa faktor yang
mempengaruhi seperti jenis kelamin, usia, tinggi
badan dan berat badan. Adapun rumus untuk
menghitung BMR dikemukakan oleh Harris
bennedict terdapat dalam persamaan (1) dan
persamaan (2) (Instalasi Gizi RST dr.Soepraoen
malang, 2016).
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Untuk laki-laki :
BEE = 66+(13,8*W)+(5*H)–(6,8*A)
(1)
Untuk perempuan :
BEE=655+(9,6*W)+(1,85*H)–(4,7*A)
(2)
Keterangan :
BEE = Body Enegry Expenditure
W = Weight atau Berat Badan (Kg)
H = Height atau Tinggi Badan (Cm)
A = Age atau Usia (tahun)
1409
populasi mempunyai tingkat kebugaran yang
berbeda, fungsi dari tingkat kebugaran ini
menyatakan ketahanan dari suatu individu dalam
menjalani proses seleksi alam sehingga individu
dengan nilai kebugaran yang baik yang dapat
bertahan sedangkan yang lainnya mati (Zukhri,
2014) .
3.
PERANCANGAN
Dalam menentukan kebutuhan energi
harian juga digunakan faktor aktivitas seperti
yang terdapat pada Tabel 1.
Tabel 1 Faktor Aktivitas Fisik
aktivitas
sangat
ringan
Ringan
sedang
Berat
gender
laki-laki
perempuan
1,30
1,65
1,76
2,10
1,30
1,55
1,70
2,00
Sehingga untuk menghitung kebutuhan energi
harian digunakan Persamaan (3).
Energi harian= BEE * Faktor Aktivitas
(3)
Dalam membagi energi harian ke kebutuhan
protein digunakan Persamaan (4).
Keb.Protein = (15% *Energi)/4
(4)
Dalam membagi energi harian ke kebutuhan
protein digunakan Persamaan (5).
Keb.Lemak =(20%*Energi)/ 9
(5)
Dalam membagi energi harian ke kebutuhan
protein digunakan Persamaan (6).
Keb.Karbohidrat=(65%*Energi)/4
(6)
2.3 Algoritma Genetika
Algoritma genetika merupakan salah satu
metode
heuristik
atau
metode
yang
dikembangkan berdasarkan proses genetika
yang terjadi secara alami dan juga Teori Evolusi
Darwin dalam proses seleksi di alam. Teori
Evolusi Darwin menyatakan bahwa suatu
individu ada secara acak dan bertambah banyak
dengan
melakukan
proses
reproduksi.
Kumpulan individu ini yang disebut sebagai
populasi. Setiap individu yang berada dalam
Fakultas Ilmu Komputer Universitas Brawijaya
Gambar 2 Diagram Alir Perancangan Sistem
Gambar 2 dijelaskan sebagai berikut:
1. Sistem menerima input dari user berupa
data berat badan, tinggi badan, usia, jenis
kelamin dan jenis aktivitas.
2. Dari input pengguna sistem akan
menghitung total energi harian dari
pengguna
3. Menghitung kebutuhan protein bedasarkan
kebutuhan energi total
4. Menghitung kebutuhan lemak bedasarkan
kebutuhan energi total
5. Menghitung
kebutuhan
karbohidrat
bedasarkan kebutuhan energi total
6. Sistem akan membangun individu awal
sebanyak jumlah dari popsize
7. Proses crossover dilakukan dan akan
menghasilkan offspring atau individu baru.
8. Proses mutasi dilakukan dan akan
menghasilkan offspring atau individu baru.
9. Proses nilai fitness dilakukan untuk
mengetahui kualitas dari tiap individu
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
10. Seleksi dilakukan untuk menentukan
individu mana yang akan masuk dalam
iterasi selanjutnya.
11. Sistem akan memberikan rekomendasi
bahan makanan setelah mendapatkan
individu terbaik yang menjadi solusi.
3.1 Contoh Persoalan
Data dari seorang penderita penyakit jantung
laki-laki adalah sebagai berikut, tinggi badan
180, berat badan 86,usia 60, jenis kelamin lakilaki dan aktivitas sedang. Langkah pertama yang
harus dilakukan adalah mencari berat badan
ideal.
BBI= (180-100)-(10% * (180-100) = 72 kg.
Dari hasil perhitungan berat badan dapat
diketahui bahwa penderita laki-laki mengalami
berat badan yang melebihi berat badan ideal.
Selanjutnya menghitung kebutuhan energi
harian sesuai dengan keadaan berat badan yang
seharusnya atau ideal.
BEE=66+(13,8*86)+(5*180)-(6,8*60)
=1544,4kkal.
Hasil BEE akan dikalikan dengan faktor
aktivitas fisik seperti yang terdapat dalam Tabel
1.
1410
3.2.2 Representasi Kromosom
Representasi kromosom yang digunakan
adalah representasi real code bilangan bulat.
Dimana setiap angka dalam kromosom
merepresentasikan indeks yang terdapat dalam
data daftar bahan makanan. Kromosom untuk 1
hari mempunyai gen sebanyak 26. Jumlah
kromosom didapatkan dari 3waktu makan, yaitu
makan pagi, makan makan siang, dan makan
malam dan 2 waktu snack. Setiap waktu makan
masing-masing terdiri dari 8 bahan penyusun
makanan (karbohidrat, protein hewani, protein
nabati, sayur, buah, gula, lemak dan minyak).
Sedangkan snack hanya terdiri dari 1 bahan
penyusun makanan yaitu buah.
Dalam perhitungan manual 1 kali makan
disusun oleh 4 bahan penyusun (karbohidrat,
protein hewani, protein nabati, minyak) yang
masing-masing diwakili oleh 1 gen dan snack
terdiri dari 1 bahan penyusun makanan (buah)
sehingga untuk 3 kali makan ada 12 gen,
sedangkan untuk 2 kali snack ada 2 gen sehingga
total gen dalam sehari untu perhitungan manual
adalah 14. Dalam perhitungan manual solusi
yang dihasilkan adalah untuk 2 hari rekomendasi
bahan makanan sehingga panjang kromosomnya
adalah 28. Contoh kromosom untuk 1 hari
seperti yang terdapat dalam Tabel 2.
Total energi harian = 1544,40 kkal * 1,76 =
2718,14 kkal/hari.
Dari total energi harian akan dibagikan
kedalam kebutuhan protein, karbohidrat dan
lemak.
Kebutuhan protein=(15/100*2718,14)/4
= 441,70 g
Kebutuhan lemak = ( 20/100 * 2718,14 )/ 9
=60,40 g
Kebutuhan karbohidrat =(60/100*2718,14)
/4 = 407,72 gram
Tabel 2 Kromosom
Snac
k
Makan Pagi
K
1
Snac
k
P
H
2
P
N
3
Makan Siang
L
B
K
4
5
6
P
H
7
P
N
8
L
9
Makan Malam
B
K
10
11
P
H
12
P
N
13
L
14
3.2 Perhitungan Manual Algoritma
Genetika
Keterangan
:
K: Karbohidrat
PH: Protein Hewani
PN: Protein Nabati L: Lemak
B: Buah
3.2.1 Parameter Algoritma Genetika
3.2.3 Inisialisasi Individu awal
Algoritma genetika memiliki beberapa
parameter yang di tentukan secara default untuk
menyelesaikan perhitungan manual Parameter
yang digunakan dala penelitian ini berserta
nilainya adalah PopSize= 3, Cr =0,8, Mr = 0,2,
Jumlah generasi=1.
Sesuai dengan nilai parameter PopSize maka
untuk membangitkan populasi awal akan
dibangkitan 3 individu. Pada setiap individu nilai
gen di acak dari angka 1 sampai 40 secara acak.
Adapun contoh inisialisasi individu awal seperti
pada Tabel 3.
Fakultas Ilmu Komputer Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
1411
Tabel 3 Individu Awal
P
1
P
2
P
3
1
7
2
9
3
7
2
0
1
9
2
6
1
3
7
6
3
6
4
1
9
3
0
2
0
3
7
1
4
3
7
3
0
9
2
1
6
3
9
1
5
3
0
3
7
1
5
1
4
3
4
2
3
8
1
3
3
7
3
5
3
4
8
2
7
6
1
2
5
3
0
4
1
1
4
1
2
3
8
2
4
3
3
1
0
3
7
2
7
1
6
4
2
6
1
3
3
4
3
1
2
8
3
6
3
7
1
2
5
3
5
6
1
7
1
8
9
7
1
7
2
7
2
2
1
7
2
6
1
1
3
3
2
0
1
3
3
3
2
5
1
4
2
7
3
5
3
6
2
6
3.2.4 Crossover
Dalam penelitian ini pada proses crossover
menggunakan metode extended intermediate
crossover. Adapun proses dalam crossover
sebagai berikut:
a. Hitung jumlah offspring untuk crossover.
(crossover)=0,8*3=2,4(dibulatkan) =2
b. Pilih 2 individu secara acak yang akan
dijadikan sebagai induk. Dalam perhitungan
manual yang terpilih sebagai induk adalah
individu ke 1 dan individu ke 3.
c. Tentukan nilai gen menggunakan Persamaan
(7).
C1 = P1 + α ( P2 - P1 )
C2 = P2 + α ( P1 – P2 )
C2
28
36
27
9
25
35
34
6
23
6
11
27
24
27
15
36
30
27
10
14
33
21
28
30
33
23
30
3.2.5 Mutasi
Dalam penelitian proses mutasi menggunakan
metode random mutation. Adapun langkahlangkah dalam melakukan mutasi sebagi berikut:
a. Hitung jumlah offspring untuk mutasi.
Jumlah offspring dari proses mutasi
didapatkan dari perkalian nilai parameter Mr
dengan PopSize.
Offspring (mutasi) = 0,2*3=0,6(dibulatkan)
=1
b. Pilih satu individu secara acak. Individu
yang dipilih dalam proses mutasi adalah
individu P2.
c. Tentukan nilai gen menggunakan rumus.
Metode random mutation memungkinkan
untuk menghasilkan nilai gen yang lebih
bervariasi. dari random mutation dengan
persamaan (8).
x’i = x’i + r ( maxi – mini )
(7)
Dalam perhitungan manual ini nilai α yang
akan dibangkitkan dalam range terkecil 0 dan
terbesar adalah 1. Nilai α dibangkitkan sebanyak
jumlah gen dalam kromosom yaitu 28.
Index ke-1 : α = 0,73
21
(8)
Indeks ke-1 :
x’1 = 23 + 0,04 * ( 40 – 1 ) = 25
sehingga didapatkan child hasil mutasi seperti
pada Tabel 5.
Tabel 5 Hasil Mutasi
C1 = 17 + 0,73 ( 31 – 17) = 27,22
(dibulatkan) 27
C2 = 31 + 0,73 ( 17 - 31 ) = 20,78
C3
(dibulatkan) 21
25
10
3
39
10
29
16
29
3
8
14
18
5
14
40
6
39
7
26
28
37
32
35
15
36
6
12
36
Index ke-2 : α = 0,3
C1 = 29 + 0,3 ( 28 – 29) = 28,7
3.2.6 Nilai Gizi
(dibulatkan) 29
Nilai gizi digunakan sebagai acuan nilai
fitness dikarenakan jika semakin besar nilai
selisih dari kebutuhan kalori, protein, lemak dan
karbohidrat yang dianjurkan ahli gizi maka akan
membuat solusi yang dihasilkan dari algoritma
genetika menjadi semakin buruk. Langkah
pertama adalah melakukan decoding. Dalam
melakukan decoding atau merubah nilai gen
menjadi nilai indeks pada bahan makanan
digunakan metode normalisasi min-max
(Hamidah, 2016). Adapun rumus normalisasi
min max seperi Persamaan (9):
C2 = 28 + 0,3 ( 29 - 28 ) = 28,3
(dibulatkan) 28
Sehingga individu hasil crossover terdapat pada
Tabel 4.
Tabel 4 Hasil Crossover
C1
27
29
37
30
11
26
1
9
17
32
7
15
20
23
31
28
36
37
1
25
35
6
17
18
9
7
17
27
Fakultas Ilmu Komputer Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
V’ =
𝑣−π‘šπ‘–π‘›π΄
π‘šπ‘Žπ‘₯𝐴−π‘šπ‘–π‘›π΄
(11).
∗ (π‘›π‘’π‘€π‘šπ‘Žπ‘₯π΄π‘›π‘’π‘€π‘šπ‘–π‘›π΄ ) +
𝑛𝑒𝑀_π‘šπ‘–π‘›π΄
Keterangan :
V’
V
minA
maxA
new_maxA
normalisasi
new_minA
normalisasi
(9)
= Angka normalisasi
= Angka asli
= Index minimal angka asli
= Index maksimal angka asli
=Index
maksimal
angka
=
index
minimal
angka
Menghitung
selisih
nilai
kalori,
protein,karbohidrat dan lemak dari tiap individu
terhadap nilai kalori, protein,karbohidrat dan
lemak dari perhitungan harian. Nilai konstanta
yang digunakan tergantung pada jumlah hari,
sehingga untuk nilai konstanta (cGizi) pembagi
nilai gizi terdapat pada Tabel 4.6.
Tabel 4.6 Nilai Konstanta Fitness
Jumlah
hari
1
2
3-4
5-7
Konstanta Gizi
100
1500
10000
15000
1412
Konstanta
Harga
1000000
1500000
3000000
10000000
Persamaan untuk menghitung selisih gizi
seperti pada persamaan (10).
Nilai Gizi = cGizi / (|kalori_individu –
(kalori*2)| + |protein_individu – (protein*2)|
+ |karbohidrat_individu – (karbohidrat*2)|
+|lemak_individu – (lemak*2)|) (10)
3.2.7 Nilai variasi
Harga/berat =
π‘π‘’π‘Ÿπ‘Žπ‘‘
1000
* harga/kg (11)
3.2.9 Nilai Fitness
Dalam mendapatkan nilai fitness dari tiap
individu maka nilai gizi, nilai variasi dan juga
nilai harga dijumlahkan. Nilai fitness yang
didapta dari tiap individu menggambarkan
bagaimana kualitas dari suatu individu. Semakin
besar nilai fitness yang dimilii maka semakin
baik juga kualitas dari indiviu tersebut. Untuk
menghitung nilai fitness digunakan persamaan
(12) dengan melihat nilai cHarga dan cGizi pada
Tabel 4.6 sebagai berikut:
F(x) =
𝐢𝑔𝑖𝑧𝑖
π‘›π‘–π‘™π‘Žπ‘–_𝑔𝑖𝑧𝑖
+
πΆβ„Žπ‘Žπ‘Ÿπ‘”π‘Ž
π‘›π‘–π‘™π‘Žπ‘–_β„Žπ‘Žπ‘Ÿπ‘”π‘Ž
+ Variasi
(12)
Nilai Cgizi dan Charga adalah nilai konstanta
untuk menyamakan nilai gizi dan harga tehadap
variasi. Sehingga nilai antara nilai gizi, harga
dan variasi sebanding.
3.2.10 Seleksi
Penelitian ini menggunakan metode seleksi
elitism. selection Sehingga yang dimambil
menjadi solusi adalah individu yang memiliki
nilai fitness tertinggi. individu yang lolos seleksi
sebanyak nilai parameter popsize. Individu yang
lolos seleksi akan menjadi individu awal di
generasi selanjutnya.
4. IMPLEMENTASI
Pada halaman home sistem akan terdapat 3
bagian yaitu bagian untuk memasukkan data diri
pengguna, lalu ada bagian untuk mengatur nilai
parameter algoritma genetika, dan bagian tabel
yang akan menampilkan nilai fitness dari tiap
generasi yang ditampilkan pada Gambar 2.
Nilai variasi dari hasil solusi juga menjadi
acuan nilai fitness, dikarenakan dalam penelitian
ini kita menginginkan solusi yang dihasilkan
memiliki tingkat variasi yang tinggi. Nilai
variasi dihitung dengan cara melihat jumlah gen
yang tidak diulang sepanjang kromosom.
3.2.8 Nilai harga
Nilai harga yang semakin rendah membuat
hasil solusi semakin baik, hal ini karenakan
penderita dapat mengeluarkan dana yang
seminimal mungkin untuk membeli bahan
makanan yang direkomendasikan. Untuk
menghitung nilai harga digunakan persamaan
Fakultas Ilmu Komputer Universitas Brawijaya
Gambar 1 halaman utama
Berikut hasil program saat tombol default
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
atau set baru dijalankan seperti pada Gambar 3.
Gambar 2 halaman utama dijalankan
Selanjutya saat menekan tombol hasil maka
akan membuka jendela baru yang menampilkan
hasil keluaran dari sistem berupa rekomendasi
bahan makanan seperti pada Gambar 4.
1413
itu mengalami penurunan pada nilai popsize ke
340 dan seterusnya tidak mengalami perubahan
yang signifikan dan juga tidak melebihi nilai
fitness pada popsize ke 320. Sehingga untuk nilai
popsize yang optimal adalah 320 dengan ratarata nilai fitness sebesar 138,03. Sehingga dapat
di simpulkan bahwa semakin banyak jumlah
populasi yang digunakan dalam penyelesaian
algoritma genetika maka dapat menghasilkan
nilai fitness yang semakin optimal. Hal ini di
karenakan semakin banyak variasi gen yang
akan dihasilkan membuat semakin banyak
peluang lain untuk mendapatkan nilai fitness
yang lebih baik.
140,00
138,00
136,00
Nilai Fitness
134,00
134,5
134,7
132,00
130,00
136,2
135,1
136,2
137,0
136,6
135,1
138,0
137,7 137,7
137,9
137,2
135,3
133,8
130,8
128,00
126,00
100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400
Popsize
Gambar 4 Pengujian jumlah populasi
5.2 Pengujian dan Analisis Cr dan Mr
Gambar 3 halaman hasil
Pengguna juga dapat mencetak bahan hasil
keluaran sistem ke dalam pdf dengan menekan
tombol cetak.
5. PENGUJIAN
5.1 Pengujian dan Analisis Popsize
Pengujian jumlah populasi atau popsize di
lakukan untuk mengetahui jumlah popsize yang
baik untuk dapat menghasilkan nilai fitness yang
paling optimal. Dalam melakukan pengujian
popsize
digunakan
parameter-parameter
algoritma genetika yang lainnya seperti jumlah
generasi sebesar 10, Cr sebesar 0,8, Mr sebesar
0,2 dan panjang kromosom yang digunakan
dalam pengujian adalah 78 yang didapatkan dari
perhitungan untuk menghasilkan 2 hari
rekomendasi bahan makanan.
Dari Gambar 5 diketahui grafik mengalami
kenaikkan, meskipun terdapat beberapa kali
penurunan nilai. Terdapat kenaikkan nilai fitness
yang signifikan pada nilai posize ke 320 sesudah
Fakultas Ilmu Komputer Universitas Brawijaya
Pengujian Cr dan Mr dilakukan untuk
mengetahui jumlah offspring dari crossover dan
offspring dari mutasi yang dapat menghasilkan
nilai fitness paling optimal. Pengujian dilakukan
terhadap 8 jenis nilai Cr dan Mr yang berkisar
dari 0,1 sampai 0,9. Dalam pengujian Cr dan Mr
parameter popsize yang digunakan adalah 320
sesuai dengan hasil popsize terbaik yang di
dapatkan pada pengujian popsize, jumlah
generasi sebesar 10, dan panjang kromosom
adalah 78 yang didapatkan dari perhitungan
untuk menghasilkan 2 hari rekomendasi bahan
makanan.
Dari Gambar 6 diketahui nilai fitness
mengalami
kenaikkan
seiring
dengan
berkurangnya nilai Cr dan bertambahnya nilai
Mr. Didapatkan nilai fitness tertinggi pada nilai
Cr dan Mr sebesar 0,5 dan 0,5 dengan rata-rata
nilai fitness sebesar 136,3. Setelah itu nilai
fitness mengalami penurunan seiring dengan
berkurangnya nilai Cr dan bertambahnya nilai
Mr. Nilai Cr yang tinggi akan membuat
algoritma genetika mengalami level eksploitasi
yang juga tinggi, hal ini menyebabkan nilai
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
fitness yang dihasilkan akan rendah karena
offspring dari crossover akan lebih cenderung
mirip dengan induknya dan membatasi untuk
melakukan eksplorasi terhadap individu lainnya.
138,0
136,0
Nilai fitness
134,0
136,3
132,0
130,0
124,0
133,3
132,4
130,7
128,0
126,0
134,7
134,2
130,5
127,4
122,0
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
Cr dan Mr
Gambar 5 pengujian Cr dan Mr
5.3 Pengujian dan Analisis Jumlah Generasi
Pengujian terhadap parameter jumlah
generasi di lakukan untuk mengetahui jumlah
generasi terbaik yang dapat menghasilkan solusi
yang paling optimal. Pengujian dilakukan
terhadap 10 jenis nilai Generasi yang berkisar
dari 10 sampai 100 dan untuk tiap generasi
dilakukan pengujian sebanyak 10 kali dan
terhadap nilai fitness yang dihasilkan.
155,0
Nilai fitness
150,0
148,5
145,0
148,1
151,4
148,7
152,6
151,0 151,8 151,2
1414
karena ada kemungkinan nilai fitness yang lebih
baik pada generasi selanjutnya.
6. KESIMPULAN
Beberapa kesimpulan yang didapakan dari
hasil pengujian dan juga analisis pada Sistem
rekomendasi bahan makanan bagi penderita
penyakit jantung menggunakan algoritma
genetika adalah sebagai berikut:
1. Metode
yang
digunakan
dalam
representasi kromosom berupa real code.
Proses crossover menggunakan metode
extended intermediate crossover, metode
mutasi random mutation dan metode
seleksi yang digunakan adalah elitism
selectiom.
2. Nilai parameter algoritma genetika yang
paling optimal untuk jumlah populasi
sebesar 280, nilai Cr dan Mr sebesar 0,5
dan 0,5, dan jumlah generasi sebesar 100.
3. Sistem mampu memenuhi kebutuhan gizi
pasien dengan nilai selisih gizi tidak lebih
dari 10% untuk setiap kandungan kalori,
protein, karbohidrat dan lemak. Total
harga yang diberikan sesuai dengan berat
bahan makanan untuk konsumsi dan
variasai yang dihasilkan baik.
DAFTAR PUSTAKA
145,5 145,9
140,0
135,0 138,2
140,7
130,0
10
20
30
40
50
60
70
80
90
100 110 120
Jumlah Generasi
Gambar 6 Pengujian Generasi
Dari gambar 7 diketahui hasil pengujian dari
jumlah generasi terhadap rata-rata nilai fitness
mengalami
kenaikkan
seiring
dengan
bertambahnya nilai generasi. Didapatkan nilai
terendah berada pada generasi terkecil 10 yaitu
138,2 dan nilai rata-rata fitness tertinggi adalah
152,6 dengan nilai generasi sebesar 90. Setelah
generasi 90 nilai fitness mengalami konvergensi
dimana nilai fitness yang dihasilkan tidak
mengalami kenaikkan yang signifikan hal ini
disebabkan karena pada generasi ke 90 algoritma
genetika sudah mampu mengindikasikkan hasil
solusi yang optimal. Kenaikan nilai generasi
yang semakin besar dan mempengaruhi nilai
fitness yang juga semakin baik disebabkan
Fakultas Ilmu Komputer Universitas Brawijaya
Fadilah, A. N. 2015. Implementasi Analytical
Hierarchy Process (AHP) dan
Algoritma Genatika untuk Rekomendasi
dan Optimasi Pemupukan Berimbang
Tanaman Hortikutural. Malang:
Universitas Brawijaya.
Hamidah, C. 2016. Optimasi Susunan Bahan
Makanan untuk Pemenuhan Gizi
Keluarga Menggunakan Hybrid
Algoritma Genetika dan Simulated
Annealing. Malang: Universitas
Brawijaya.
Kusharto, M. 1992. Prinsip-Prinsip Ilmu Gizi.
Bogor: Kanisius.
Mahmudy, W. F. 2015. Dasar-Dasar Algoritma
Evolusi. Malang: Program Teknologi
Informasi dan Ilmu Komputer
Universitas Brawijaya.
Michalewicz, Z. 1996. Genetic Algorithm and
Data Structures. Evolution . Berlin:
Springer-Verlag.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Negnevitsky, M. 2005. Artifial Intelligence a
Guide to Intelligent System. 2 Harlow.
England: Addison Wesley.
Rianawati, A. 2015. Implementasi Algoritma
Genetika Untuk Optimasi Komposisi
Makanan Bagi Penderita Diabetes
Mellitus. Malang: Universitas
Brawijaya.
Sakawa, M. 2002. Genetic algorithms and fuzzy
multiobjective optimization. New York:
Springer Science+Business Media.
Soeharto, I. 2004. Penyakit Jantung Koroner
dan Serangan Jantung. Jakarta:
Gramedia Pustaka Utama.
Suryanto. 2007. Artificial Intelligence
Searching, Reasonig, Planning dan
Learning. Bandung: Informatika.
Wahid, N. 2015. Optimasi Komposisi Makanan
untuk Penderita Kolestrol
Menggunakan Algoritma Genetika.
Malang: Universitas Brawijaya.
Wijayati, E. 2008. Mengenal Makanan Sehat.
Bogor: Niaga Swadaya.
Yuniasturi, A. 2008. Gizi dan Kesehatan.
Semarang: Graha Ilmu.
Fakultas Ilmu Komputer Universitas Brawijaya
1415
Download