Anda di halaman 1dari 11

Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X

Volume 04, No.2 (2016), hal. 96-106

APLIKASI PENYUSUN MENU MAKANAN


UNTUK PENCEGAHAN HIPERKOLESTEROLEMIA
MENGGUNAKAN ALGORITMA GENETIKA

Riska Ayu Permata[1],Dedi Triyanto[2], Ilhamsyah[3]


[1][2][3]
Jurusan Sistem Komputer, Fakultas MIPA UniversitasTanjungpura
Jl. Ahmad Yani, Pontianak
Telp./Fax.: (0561) 577963
e-mail:
riskaapermata@gmail.com ,dedi.triyanto@siskom.untan.ac.id [2] , ilhamsm99@gmail.com[3]
[1]

Abstrak

Hiperkolesterolemia adalah peninggian kadar kolesterol di dalam darah.


Hiperkolesterolemia dapat ditanggulangi dengan diet. Diet ini dilakukan dengan
menyusun menu makanan gizi seimbang yang disesuaikan dengan kebutuhan kalori
harian pengguna. Penyusunan menu makanan untuk mencegah hiperkolesterolemia
membutuhkan konsultasi dengan ahli gizi. Namun hal ini dinilai kurang efektif karena
memerlukan waktu, energi dan biaya. Penelitian ini membuat aplikasi penyusun menu
makanan dengan menggunakan algoritma genetika. Kebutuhan kalori harian setiap
pengguna berbeda-beda, dipengaruhi oleh berat badan, tinggi badan, umur, jenis
kelamin dan aktivitas yang digunakan sebagai masukan dalam penelitian ini. Kombinasi
menu makanan yang digunakan yaitu makanan yang mengandung karbohidrat, protein
hewani, protein nabati, sayuran dan buah-buahan. Keluaran dari penelitian ini berupa
susunan menu makanan untuk makan pagi, makan siang, dan makan malam selama tujuh
hari. Menu makanan ini berupa nama makanan dan beratnya, berat makanan akan
disesuaikan dengan kebutuhan kalori hariannya. Kalori harian pengguna terbagi
menjadi tujuh yaitu 1500, 1700, 2000, 2200, 2500, 2800 dan 3000 kalori. Pada penelitian
ini metode seleksi yang digunakan yaitu roulette wheel, sedangkan untuk metode
crossover dan metode mutasi dilakukan secara acak.

Kata kunci: Algoritma Genetika, Menu Makanan, Hiperkolesterolemia

1. PENDAHULUAN makanan sehari-hari sesuai dengan gizi


seimbang. Gizi seimbang menganjurkan
Hiperkolesterolemia adalah peninggian
susunan makanan yang menjamin
kadar kolesterol di dalam darah melebihi
keseimbangan zat-zat gizi yang mencegah
200 mg/dl. Kadar kolesterol darah yang
kekurangan maupun kelebihan gizi [3].
tinggi merupakan salah satu faktor resiko
Kurangnya pengetahuan masyarakat dalam
yang paling utama untuk terjadinya
menentukan menu gizi seimbang
penyakit jantung koroner (PJK) [1].
mengharuskan mereka untuk
Tingginya kadar kolesterol dapat
mengkonsultasikan hal tersebut kepada
disebabkan oleh beberapa faktor yang tidak
dokter atau ahli gizi untuk mendapatkan
dapat dirubah dan yang dapat dirubah.
solusinya. Namun hal ini dinilai kurang
Faktor yang tidak dapat dirubah yaitu usia,
efektif karena memerlukan waktu, energi,
jenis kelamin, keturunan, sedangkan faktor
dan biaya. Oleh karena itu diperlukan suatu
yang dapat dirubah yaitu berat badan, pola
teknologi yang dapat mempermudah
makan dan aktivitas [2].
masyarakat dalam menyusun menu gizi
Diet merupakan salah satu cara paling baik
seimbang untuk mencegah
dalam menanggulangi hiperkolesterolemia.
hiperkolesterolemia.
Diet pada prinsipnya mengatur susunan

96
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

2. LANDASAN TEORI dengan random generator, yaitu


membangkitkan populasi secara acak untuk
2.1 Algoritma Genetika
setiap gen sesuai dengan representasi
Algoritma genetika merupakan suatu kromosom yang digunakan [5].
metode adaptive yang digunakan dalam
3. Nilai fitness
memecahkan pencarian nilai pada masalah
optimasi. Algoritma ini berdasarkan pada Nilai fitness merupakan nilai dari fungsi
proses genetik yang ada pada makhluk tujuan. Tujuan algoritma genetika adalah
hidup, yaitu perkembangan generasi memaksimalkan nilai fitness. Jika mencari
sebuah populasi alami yang mangikuti nilai maksimal, maka nilai fitness adalah
prinsip seleksi alam atau siapa kuat dia nilai dari fungsi itu sendiri. Sedangkan jika
yang akan bertahan [4]. yang dicari nilai minimum, maka nilai
fitness merupakan invers dari nilai fungsi
2.2 Komponen-komponen Utama
itu sendiri [6].
Algoritma Genetika
4. Elitisme
Pada pengimplementasian terdapat 8
komponen utama algoritma genetika yaitu: Elitisme merupakan suatu prosedur untuk
mengambil individu yang memiliki nilai
1. Teknik pengkodean
fitness tertinggi sebanyak satu jika jumlah
Teknik pengkodean merupakan individu dalam suatu populasi adalah ganjil
pengkodean gen dari kromosom. Gen atau dua jika jumlah individu dalam suatu
adalah bagian dari kromosom. Gen dapat populasi adalah genap. Hal ini dilakukan
direpresentasikan berupa sting bit, pohon, agar individu ini tidak mengalami
array bilangan real, daftar aturan, elemen kerusakan (penurunan nilai fitness) selama
permutasi, dan elemen program. Sehingga proses pindah silang dan mutasi [6].
kromosom juga dapat direpresentasikan
5. Seleksi
dengan menggunakan [5]:
Seleksi digunakan untuk memilih dua buah
 String bit: 10011, 01101, dst.
individu yang akan dijadikan orangtua
 Bilangan real: 65.65, -67,98, dst. (parent), setelah dua buah individu yang
 Elemen permutasi: E2, E10, dst akan menjadi induk terpilih selanjutnya
 Daftar aturan : R1, R2, dst. dilakukan pindah silang (crossover) untuk
 Elemen program: pemrograman mendapatkan keturunan yang baru. Metode
genetika seleksi yang sering digunakan yaitu mesin
 Struktur lainnya. roulette (Roulette-Wheel). Dengan
menggunakan mesin roulette (Roulette-
2. Membangkitkan populasi awal Wheel), masing-masing individu akan
menempati potongan lingkaran roda secara
Sebelum membangkitkan populasi awal,
proporsional sesuai dengan nilai
pertama-tama kita harus menentukan
fitnessnya[6].
jumlah individu terlebih dahulu. Ukuran
populasi dipengaruhi oleh masalah yang Pada algoritma genetika terdapat beberapa
akan dipecahkan dan jenis operator metode seleksi yaitu seleksi rangking (rank
genetika yang akan diimplementasikan. based fitness assignment), seleksi roulette
Setelah menentukan ukuran populasi, wheel, stochastic universal sampling,
selanjutnya akan dilakukan inisialisasi seleksi local (local selection), seleksi
terhadap kromosom yang ada pada populasi pemotongan (truncation selection) dan
tersebut secara acak. seleksi turnamen (tournament selection).
Pembangkitan populasi awal dapat Pada skripsi ini metode seleksi yang
dilakukan dengan beberapa cara yaitu digunakan adalah seleksi roulette wheel.
random generator, pendekatan tertentu dan Roulette wheel merupakan metode yang
permutasi gen. Pada skripsi ini paling sederhana.
membangkitkan populasi awal dilakukan

97
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

Cara kerja metode ini yaitu [5]: 7. Mutasi


 Menghitung Total fitness (f) Mutasi berperan untuk menggantikan gen
yang hilang dari populasi akibat proses
f = ∑ fk ; k = 1, 2, ..., n ..…...........(1)
seleksi. Proses seleksi memungkinkan gen
 Menghitung probabilitas fitness (pk) yang tidak muncul pada inisialisasi
masing-masing individu populasi untuk munculnya kembali. Mutasi
pk = fk / Total Fitness …................(2) kromosom anak dilakukan dengan
menambahkan nilai random yang sangat
 Menghitung Probabilitas Komulatif kecil. Peluang mutasi (pm) merupakan
(qk) persentasi dari total gen pada populasi
q1 = p1 yang dimutasi. Peluang mutasi akan
qk = qk-1 + pk ; k = 2, 3, …, n …....(3) menentukan benyaknya jumlah gen baru
yang akan muncul untuk dievaluasi. Jika
 Pilih induk yang akan menjadi peluang mutasi terlalu kecil, maka gen
kandidat crossover dengan cara : yang mungkin berguna tidak akan
Bangkitkan bilangan random r. Jika qk dievaluasi. Sedangkan jika peluang mutasi
≤ r dan qk+1 > r, maka kromosom yang terlalu besar, maka akan banyak gangguan
terpilih sebagai kandidat induk adalah acak sehingga kemiripan anak dari
kromosom (k+1). induknya akan hilang [4].
6. Pindah Silang (Crossover) 8. Penggantian populasi
Pindah silang (crossover) adalah operator Pada pergantian populasi semua individu
algoritma genetika yang melibatkan dua awal dari satu generasi diganti oleh hasil
induk dalam pembentukan kromosom baru. proses pindah silang dan mutasi [6].
Pindah silang akan menghasilkan titik baru
dalam ruang pencarian yang siap diuji. Hal 2.3 Gizi Seimbang
ini tidak selalu dilakukan pada semua Pedoman umum gizi seimbang adalah
individu. Individu akan dipilih secara acak penjabaran lebih lanjut dari pedoman 4
untuk dilakukan crossing dengan Pc antara sehat 5 sempurna sebagai pencegah baik
0,6 s/d 0,95[4]. masalah kekurangan gizi maupun kelebihan
Ada berbagai model crossover yaitu gizi. Gizi seimbang menganjurkan susunan
sebagai berikut : makanan yang menjamin keseimbangan
 Crossover satu titik zat-zat gizi. Untuk mencapai gizi seimbang,
Crossover satu titik dan banyak titik susunan makanan sehari terdiri dari sumber
biasanya digunakan untuk kromosom energi (sumber karbohidrat), sumber zat
dalam biner. Pada crossover satu titik pembangun (sumber protein) dan sumber
ini posisi crossover k (k=1,2,…,N-1) zat pengatur (buah dan sayur). Daftar bahan
dimana N=panjang kromosom makanan penukar dibagi menjadi delapan
diseleksi secara acak. Variable ditukar golongan yaitu bahan makanan sumber
antar kromosom pada titik tersebut karbohidrat, bahan makanan sumber protein
sehingga menghasilkan anak. hewani, bahan makanan sumber protein
nabati, sayuran, buah-buahan, susu, minyak
 Crossover banyak titik dan gula [3].
Pada crossover banyak titik, m posisi Menu makanan dalam satu hari haruslah
penyilangan ki (k=1,2,…,N- memenuhi kebutuhan kalori. Kalori yang
1,i=1,2,…,m) dimana N=panjang dikonsumsi harus sesuai dengan kebutuhan
kromosom yang diseleksi secara acak kalori hariannya. Kebutuhan kalori dibagi
dan tidak boleh ada posisi yang sama menjadi 7 yaitu 1500 kkal, 1700 kkal, 2000
serta diurutkan naik. Selanjutnya kkal, 2200 kkal, 2500 kkal, 2800 kkal dan
variable-variabel antar kromosom pada 3000 kkal. Seseorang dapat menyusun
titik tersebut ditukar untuk menu sehari yang seimbang dengan
menghasilkan anak.

98
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

menggunakan daftar pola yang dapat dilihat 1. Pengkodean Kromosom


pada Tabel 1 [3].
Pengkodean dalam penyusunan menu
makanan dilakukan dengan mengkodekan
Tabel 1 Pola Menu Sehari Berdasarkan
semua komponen ke dalam model genetika
Kandungan Energi
seperti pada gambar 2

3. METODOLOGI PENELITIAN
Metodologi penelitian pada penelitian ini Gambar 2 Skema Model Genetika
yaitu studi literature untuk mencari
Pada model genetika penyusunan menu
referensi dari berbagai sumber, setelah itu
makanan komponen Sumber karbohidrat,
pengumpulan data yang diperlukan dalam
sumber protein hewani, sumber protein
penelitian, data yang telah didapat
nabati, sayuran dan buah-buahan adalah
selanjutnya dianalisis data yang akan
gen. selanjutnya gen tersebut dikodekan
digunakan sebagai input, selanjutnya
sebagai berikut :
dilakukan perancangan untuk
diimplementasikan pada sistem, setelah itu ‘k’ = untuk makanan sumber
dilakukan pengujian untuk melihat apakah karbohidrat
sistem berjalan sesuai dengan tujuan ‘h’ = untuk makanan sumber protein
penelitian. hewani
‘n’ = untuk makanan sumber protein
4. PERANCANGAN SISTEM
nabati
4.1 Perancangan Algoritma Genetika ‘s’ = untuk sayuran
‘b’ = untuk buah-buahan
Pada perancangan algoritma genetika dalam
penelitian ini terdapat enam tahapan yaitu Kromosom merupakan gabungan dari
pengkodean kromosom, pembentukan beberapa gen, gabungan dari beberapa
populasi awal, evaluasi fitness, seleksi, kromosom akan membentuk individu, dan
crossover dan mutasi. Tahapan perancangan beberapa individu yang sama akan
algoritma genetika pada penelitian ini dapat membentuk populasi.
dilihat pada gambar 1.
2. Pembentukan Populasi Awal
Populasi awal terdiri dari 15 gen dalam
setiap kromosom yang terdiri dari 5 gen
untuk makan pagi, 5 gen untuk makan
siang dan 5 gen untuk makan malam. Gen
tersebut merupakan golongan makanan
yang terdiri dari sumber karbohidrat,
sumber protein hewani, sumber protein
nabati, sayuran dan buah-buahan.
Contoh Kromosom :

3. Mencari Nilai Fitness


Untuk mencari nilai fitness digunakan nilai
berat makanan yang telah diinputkan
Gambar 1 Diagram alir algoritma genetika dimana nilai tersebut diasumsikan sebagai

99
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

bobot makanan. Pencarian nilai fitness Keterangan :


bertujuan untuk menentukan baik tidaknya TB = Tinggi badan
suatu individu. Penentuan nilai fitness
2. Kebutuhan Basal (KB)
berdasarkan fungsi fitness yang
didefinisikan sendiri. Untuk skripsi ini Kebutuhan Basal (KB) adalah kebutuhan
penentuan nilai fitness adalah sebagai kalori dalam sehari yang dipengaruhi oleh
berikut : jenis kelamin. Kebutuhan basal laki-laki
dan perempuan berbeda. Laki-laki memiliki
Nilai fitness = Total bobot makanan ...(4)
kebutuhan basal yang lebih besar daripada
Contoh pencarian nilai fitness:
perempuan. Persamaan untuk mencari
Kromosom [1] = k1h1n1s1b1 k2h2n2s2b2
kebutuhan basal (KB) yaitu:
k3h3n3s3b3
Fitness [1] =100+50+25+200+75+200 KB Perempuan = BBI x 25 kkal……….(6)
+25+100+200+75+400 KB Laki-laki = BBI x 30 kkal……….(7)
+60 +50+200+50 3. Aktivitas Fisik (AF)
=1810
Persamaan untuk menghitung aktivitas
4. Seleksi fisik:
Setelah menghitung nilai fitness, AF = % x KB…................……………..(8)
selanjutnya dilakukan perhitungan nilai
total fitness, probabilitas fitness dan Aktivitas fisik dikelompokkan menjadi tiga
probabilitas komulatifnya. Kemudian yaitu aktivitas ringan, sedang dan berat.
dibangkitkan bilangan acak roulette wheel Semakin berat aktivitas makan kebutuhan
dan dibandingkan dengan nilai probabilitas kalori akan semakin besar. Pengelompokan
komulatif. Hasil perbandingan tersebut aktivitas yaitu sebagai berikut :
akan menghasilkan populasi baru.  Aktivitas ringan : aktivitas kantor
5. Crossover tanpa olah raga dan aktivitas fisik yang
tidak menguras tenaga. Kebutuhan
Crossover dilakukan dengan cara kalori aktivitas ringan adalah 20% dari
menyilangkan dua kromosom yang akan kebutuhan basal (KB).
menghasilkan kromosom baru. Kromosom
baru ini diharapkan lebih baik dari  Aktivitas sedang : bekerja harus naik
kromosom induk. turun tangga, aktivitas kantor dengan
olah raga dan pekerjaan rumah tangga.
6. Mutasi Kebutuhan kalori aktivitas sedang
Mutasi merupakan proses pertukaran gen adalah 30% dari kebutuhan basal (KB).
yang dilakukan dengan cara memilih  Aktivitas berat : pekerjaan
kromosom yang akan ditukar secara acak, lapangan dan kuli bangunan.
setelah itu menentukan gen yang akan Kebutuhan kalori aktivitas berat adalah
ditukar pada kromosom tersebut. 50% dari kebutuhan basal (KB).
4.2 Perancangan Penyusun Menu 4. Umur (U)
Makanan
Persamaan untuk menghitung umur :
Penyusunan makanan dilakukan
berdasarkan kebutuhan kalori pengguna U = % x KB…............………………….(9)
dalam satu hari. Untuk menentukan Umur dikelompokkan menjadi empat yaitu:
kebutuhan kalori diperlukan tahap-tahap
perhitungan sebagai berikut :  Umur kurang dari 40 tahun. Kebutuhan
kalori adalah 0% dari kebutuhan basal
1. Berat Badan Ideal (BBI) (KB).
Persamaan untuk menghitung berat badan
ideal yaitu:  Umur 40 tahun s/d 59 tahun.
Kebutuhan kalori adalah 5% dari
BBI = 0,9 x (TB –100)………....(5) kebutuhan basal (KB).

100
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

 Umur 60 tahun s/d 69 tahun. dari sumber karbohidrat tersebut seperti


Kebutuhan kalori adalah 10% dari pada tabel 3. Tabel data sumber
kebutuhan basal (KB). karbohidrat terdiri dari 5 data.
 Umur lebih dari 69 tahun. Kebutuhan
Tabel 3 Data Sumber Karbohidrat
kalori adalah 20% dari kebutuhan
kode_k Nama Sumber Berat Kalori
basal (KB). Karbohidrat ( gr ) ( kkal )
5. Total Kalori k1 Nasi 100 175
k2 Nasi Tim 200 175
Total kalori didapatkan dengan
menjumlahkan kebutuhan basal (KB) dan k3 Bubur beras 400 175
Aktivitas fisik (AF). Lalu hasil dari k4 Kentang 200 175
penjumlahan tersebut dikurang dengan k5 Roti Putih 80 175
Umur (U).
Total Kalori = KB+AF–U…............…(10) 2. Data Sumber Protein Hewani
Hasil total kalori yang didapat disesuaikan
Pada tabel data sumber protein hewani
dengan kebutuhan kalori perhari seperti
berisi kode inisial, nama, berat dan jumlah
pada Tabel 2.
kalori dari sumber protein hewani seperti
Tabel 2 Data Kalori pada tabel 4. Tabel data sumber protein
Kalori Karbo P. hewani P.Nabati Sayur Buah hewani terdiri dari 10 data.
NO Menu
perhari 175 Kkal 95 Kkal 80 Kkal 50 Kkal 40 Kkal
1 1500 Pagi
Siang
1
1
1
1
1
1 1
1
1
Tabel 4 Data Sumber protein hewani
Malam 1 1 1 1 1 kd_h Nama Sumber Berat Kalori
2 1700 Pagi 1 1 1 1
Siang 2 1 1 1 1 Protein Hewani ( gr ) ( kkal )
3 2000
Malam
Pagi
1
1
1
1
1
1
1 1
1
h1 Daging Sapi 50 95
Siang 2 1 1 1 1 h2 Daging Ayam 25 95
Malam 2 1 1 1 1
4 2200 Pagi 2 1 1 0,5 1 h3 Telur Ayam 60 95
Siang 2 1 1 1 1
Malam 2 1 1 1 1 h4 Ikan Teri 25 95
5 2500 Pagi 2 1 1 0,5 1
Siang 3 1 1 1 1 h5 Ikan Patin 50 95
Malam 2 1 1 1
6 2800 Pagi 2 1 1 0,5 1 h6 Ikan Bawal 50 95
Siang 3 2 1 1 1
Malam 3 1 1 1 h7 Ikan Bandeng 50 95
7 >3000 Pagi 3 1 1 0,5 1
Siang 3 2 1 1 1 h8 Ikan Kembung 50 95
Malam 3 1 1 1
Ket: angka menunjukkan jumlah porsi makan h9 Ikan Tenggiri 50 95
h10 Ikan Tongkol 50 95
4.3 Penetapan Masukan
Masukan yang digunakan dalam aplikasi ini 3. Data Sumber Protein Nabati
adalah data makanan dengan berat makanan Pada tabel data sumber protein nabati berisi
dan jumlah kalorinya. Data makanan kode inisial, nama, berat dan jumlah kalori
tersebut dibagi menjadi lima jenis yaitu data dari sumber protein nabati seperti pada
sumber karbohidrat, data sumber protein tabel 5 yang terdiri dari 3 data.
hewani, data sumber protein nabati, data
sayuran dan data buah-buahan. Pada Tabel Tabel 5 Data protein nabati
kd_n Nama Sumber Berat Kalori
3 s/d Tabel 7 merupakan masukan data
Protein Nabati ( gr ) ( kkal )
makanan yang berupa kode_inisial
n1 Kacang Hijau 25 80
makanan, nama makanan, berat makanan
n2 Tahu 100 80
dan kalori makanan. Kode inisial pada data
makanan berbeda-beda disesuaikan dengan n3 Tempe 50 80
jenis makanannya. Sumber makanan yang
digunakan yaitu sebagai berikut: 4. Data Sayuran
1. Data Sumber Karbohidrat Tabel data sayuran berisi kode inisial,
nama, berat dan jumlah kalori dari sayuran.
Pada tabel data sumber karbohidrat berisi seperti pada tabel 6 yang terdiri dari 7 data.
kode inisial, nama, berat dan jumlah kalori

101
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

Tabel 6 Data sayuran 1. Inisialisasi kromosom


kd_s Nama Sayuran Berat Kalori Inisialisasi kromosom merupakan
( gr ) ( kkal ) pembentukan populasi awal dari masukan
s1 Kangkung 200 50 yang dilakukan secara acak yang
s2 Sawi 200 50 ditunjukkan pada kode program 1.
s3 Selada 200 50
Kode program 1 Inisialisasi kromosom
s4 Buncis 100 50
s5 Brokoli 200 50 Private Sub MyProsesKromosomAwal(Angka, Generasi As Integer)
'Cari Kromosom Awal
x=0
s6 Wortel 100 50 Select Case Generasi
s7 Bayam 100 50 Case 1:
'MyProsesKromosom
Rs1Open "SELECT COUNT(*) FROM tinisialawal"
If Rs1.RecordCount > 0 Then
5. Data Buah-buahan x = Rs1.Fields(0).Value + 1
End If
Pada tabel data buah-buahan berisi kode,
nama, berat dan jumlah kalori dari buah- 2. Evaluasi
buahan seperti pada tabel 7 yang terdiri dari Evaluasi merupakan perhitungan nilai
11 data. fitness setelah populasi awal terbentuk.
Tabel 7 Data buah-buahan Nilai fitness akan diperoleh dengan
kd_b Nama Berat Kalori menjumlahkan nilai kalori makanan pada
Buah-buahan ( gr ) ( kkal ) setiap kromosom dengan kode program 2.
b1 Apel 75 40
Kode program 2 evaluasi
b2 Anggur 75 40
Kd = Kd1 & " . " & Kd2 & " . " & Kd3
b3 Mangga 50 40 db.Execute "UPDATE thasilmutasi SET kode = '" & Kd & "',
jmlfitness = gram1 + gram2 + gram3 + gram4 + gram5 + gram6 +
b4 Nanas 75 40 gram7 + gram8 + gram9 + gram10 + gram11 + gram12 + gram13 +
b5 Pepaya 100 40 gram14 + gram15 WHERE ID = " & Rs1!id

b6 Pir 100 40
b7 Jeruk Pontianak 100 40 3. Seleksi
b8 Pisang 75 40 Proses seleksi pada penelitian ini pertama-
b9 Semangka 150 40 tama dilakukan pencarian nilai probabilitas
b10 Sirsak 50 40 seperti pada kode program 3.
b11 Sawo 50 40 Kode program 3 Mencari probabilitas
'Mencari Probabilitas
Tot = 0
4.4 Penetapan Keluaran ProgressBar1.Value = 50
Rs4Open "SELECT SUM(jmlfitness2) FROM tkromosomawal"
Keluran dari aplikasi ini adalah daftar If Rs4.RecordCount > 0 Then
Tot = Rs4.Fields(0).Value
menu makan pagi, siang dan malam untuk End If
tujuh hari. Daftar menu makanan tersebut
berupa nama makanan dan jumlahnya Setelah didapat nilai probabilitas
dalam gram yang telah disesuaikan dengan selanjutnya akan dicari nilai probabilitas
kebutuhan kalori pengguna dalam satu komulatifnya seperti pada kode program 4.
hari.
Kode program 4 probabilitas Komulatif
'Mencari Probabilitas Komulatif
5. IMPLEMENTASI DAN Rs6Open "SELECT id,jmlprobalitas FROM tkromosomawal"
If Rs6.RecordCount > 0 Then
PEMBAHASAN Tot3 = 0
Rs6.MoveFirst
5.1 Implementasi Algoritma Genetika While Not Rs6.EOF
ProgressBar1.Value = 0
Implementasi algoritma genetika Tot3 = Tot3 + Rs6!jmlprobalitas
merupakan penerapan perancangan ProgressBar1.Value = 30
If CBool(InStr(Tot3, ",")) Then
algoritma genetika menggunakan Visual Str2 = Trim(Replace(Str(Tot3), ",", "."))
Else
Basic 6.0. Implementasi algoritma genetika Str2 = Trim(Str(Tot3))
End If
ini dilakukan dengan 5 tahapan yaitu:

102
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

Setelah itu dilakukan seleksi roulete wheel ditunjukkan pada kode program7. Hasil dari
dengan membangkitkan nilai secara acak proses mutasi ini akan menghasilkan
yang ditunjukkan pada kode program 5. kromosom baru.
Kode program 5 Proses seleksi roulete Kode program 7 Proses mutasi
wheel
Private Sub MyProsesMutasi(Angka As Integer, Pm As Double)
'Seleksi Roulete Wheel 'hapus data tabel random3
Rs1Open "SELECT * FROM trandomangka ORDER BY ID ASC" db.Execute "DELETE FROM trandomangka3"
If (Rs1.RecordCount > 0) Then x = Angka * 15
Tot = 0 y = Round(Pm * x)
Rs1.MoveFirst Awal = 0
While Not Rs1.EOF p=x+1
ProgressBar1.Value = 0 For i = 1 To y
Tot = Rs1!nilai Ada = True
If CBool(InStr(Tot, ",")) Then While Ada
Str2 = Trim(Replace(Str(Tot), ",", ".")) Awal = Round(Rnd() * p)
Else If (Awal >= 1) And (Awal <= x) Then
Str2 = Trim(Str(Tot)) Rs1Open "SELECT * FROM trandomangka3 WHERE acak = " &
End If Awal
If (Rs1.RecordCount <= 0) Then
Ada = False
End If
End If
Setelah didapatkan nilai acak roulete wheel
selanjutnya nilai tersebut dibandingkan 5.2 Implementasi Antarmuka
dengan nilai probabilitas komulatif,
dimana kromosom yang terpilih adalah Implementasi antarmuka terdiri dari :
kromosom yang memiliki nilai probabilitas 1. Tampilan Data Karbohidrat
komulatif lebih besar dari nilai acak
roulete wheel. Kromosom yang terpilih Menu data karbohidrat digunakan untuk
akan menjadi kromosom baru yang menginputkan data karbohidrat yang
selanjutnya akan di crossover. berupa kode karbohidrat, nama
karbohidrat, berat dan kalori. Data tersebut
4. Crossover dapat di tambah, di simpan, di hapus dan di
Proses crossover dilakukan pada dua refresh seperti pada gambar 3. Untuk
kromosom untuk menghasilkan kromosom keluar dapat mengklik tanda silang atau
baru. Pemilihan kromosom yang akan di klik keluar.
crossover dilakukan secara acak seperti
pada kode program 6. Kromosom hasil
crossover menghasilkan kromosom baru
yang akan dimutasi.
Kode program 6 Proses crossover
Private Sub MyProsesCrossOver(Angka As Integer, Pc As Double)
Acak1 = 0
For i = 1 To Angka
Acak1 = Rnd()
If CBool(InStr(Acak1, ",")) Then
Str2 = Trim(Replace(Str(Acak1), ",", "."))
Else
Str2 = Trim(Str(Acak1))
End If
db.Execute "UPDATE trandomangka SET nilai2 = " & Str2 & " WHERE ID
="&i
Next i
Gambar 3 Tampilan data karbohidrat
2. Tampilan Data Protein Hewani
5. Mutasi Menu data protein hewani digunakan untuk
Proses mutasi ini dilakukan dengan menginputkan data protein hewani yang
memilih kromosom-kromosom yang akan berupa kode protein hewani, nama protein
dimutasi secara acak, kemudian hewani, berat dan kalori. Data tersebut
menentukan titik-titik mutasi pada dapat di tambah, di simpan, di hapus dan di
kromosom secara acak juga. Proses ini refresh seperti pada gambar 4. Untuk
dilakukan dengan menukar dua kromosom keluar dapat mengklik tanda silang atau
yang telah dipilih secara acak yang klik keluar.

103
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

5. Tampilan Data Buah-buahan


Menu data protein hewani digunakan untuk
menginputkan data buah-buahan yang
berupa kode buah, nama buah, berat dan
kalori. Data tersebut dapat di tambah, di
simpan, di hapus dan di refresh seperti pada
gambar 7.

Gambar 4 Tampilan data protein hewani


3. Tampilan Data Protein Nabati
Menu data protein hewani digunakan untuk
menginputkan data protein nabati yang
berupa kode, nama, berat dan kalori. Data
tersebut dapat di tambah, di simpan, di
hapus dan di refresh seperti pada gambar 5.
Gambar 7 Tampilan data buah-buahan
6. Tampilan Data Pengguna
Untuk masuk ke tampilan data pengguna,
pengguna harus melakukan login terlebih
dahulu. Setelah itu pengguna memilih
menu algoritma genetika pada tampilan
menu utama. Tampilan data pengguna
dapat dilihat pada gambar 8.

Gambar 5 Tampilan Data Protein Nabati


4. Tampilan Data Sayuran
Menu data protein hewani digunakan untuk
menginputkan data sayuran yang berupa
kode, nama, berat dan kalori. Data tersebut
dapat di tambah, di simpan, di hapus dan di
refresh seperti pada gambar 6.
Gambar 8 Tampilan data pengguna
Setelah mengisi data nama pengguna,
umur, jenis kelamin, berat badan, tinggi
badan dan aktivitas pada tampilan data
pengguna, selanjutnya isi nilai populasi,
peluang crossover (Pc), peluang mutasi
(Pm) dan jumlah generasi. Setelah semua
data terisi selanjutnya klik proses algoritma
genetika. Maka akan muncul tampilan data
pengguna setelah melakukan proses
algoritma genetika dan mendapatkan
generasi terbaik seperti pada gambar 9.
Gambar 6 Tampilan data sayuran

104
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

didapatkan tiga data yang memiliki


hasil sama, tiga data terdapat selisih 0,5
dan satu data terdapat selisih 0,25. Hal
ini disebabkan pada sistem diterapkan
sistem pembulatan nilai kalori. Data
menu makanan hasil keluaran sistem
antara satu pengguna dengan pengguna
lainnya berbeda-beda. Hal ini
dikarenakan proses algoritma genetika.

6. KESIMPULAN DAN SARAN


Gambar 5.9 Tampilan data pengguna
setelah proses 5.1 Kesimpulan
7. Tampilan Daftar Menu Makanan 1. Setelah dilakukan pengujian data
kalori 1500 didapatkan hasil
Setelah proses algoritma genetika
selanjutnya klik daftar menu makanan pencarian manual 1539 dan hasil
harian. Maka akan muncul tampilan daftar sistem 1539, pengujian data kalori
menu makanan seperti pada gambar 5.10. 1700 didapatkan hasil pencarian
Daftar menu makanan ini berisi daftar menu manual 1755 dan hasil sistem 1755,
makanan serta beratnya untuk tujuh hari. pengujian data kalori 2000
didapatkan hasil pencarian manual
2048 dan hasil sistem 2048,
pengujian data kalori 2200
didapatkan hasil pencarian manual
2281.5 dan hasil sistem 2282,
pengujian data kalori 2500
didapatkan hasil pencarian manual
2531.25 dan hasil sistem 2531,
pengujian data kalori 2800
Gambar 10 Tampilan daftar menu
didapatkan hasil pencarian manual
makanan
2983.5 dan hasil sistem 2984 dan
1.2 Pengujian Aplikasi pengujian data kalori 3000
Setelah dilakukan pengujian didapatkan didapatkan hasil pencarian manual
hasil sebagai berikut: 3037.5 dan hasil sistem 3038.
Setelah dilakukan pencarian manual
Tabel 8 Hasil Pengujian
No Data Kalori Hasil Hasil Selisih
dan pencarian sistem didapatkan
Sistem Manual nilai error antara pencarian manual
1 Data kalori 1500 1539 1539 0 dan pencarian sistem sebesar 0,008
2 Data kalori 1700 1755 1755 0 %.
3 Data kalori 2000 2048 2048 0
4 Data kalori 2200 2282 2281,5 0,5 2. Hasil pengujian untuk daftar menu
5 Data kalori 2500 2531 2531,25 0,25 makanan yaitu makanan yang
6 Data kalori 2800 2984 2983,5 0,5
7 Data kalori 3000 3038 3037,5 0,5
dihasilkan bervariasi untuk protein
nabati, protein hewani, sayuran dan
buah-buahan sedangkan
Pada tabel 5.8 Setelah dilakukan
karbohidrat bubur beras terpilih
pengujian untuk data kalori 1500, 1700,
lebih dari 10 keluaran hal ini
2000, 2200, 2500, 2800 dan 3000
dipengaruhi generasi terbaik yang
didapatkan bahwa dari tujuh data pada
terpilih sebagai output oleh
pencarian sistem dan pencarian manual
pencarian algoritma genetika.

105
Jurnal Coding Sistem Komputer Untan ISSN: 2338-493X
Volume 04, No.2 (2016), hal. 96-106

Dengan menerapkan proses [4.] Entin. (2011). Kecerdasan Buatan.


algoritma genetika menghasilkan Institut Teknologi Sepuluh November.
kombinasi menu untuk makan pagi, Surabaya.http://lecturer.eepis.its.edu/
siang dan malam dengan jumlah entin/ Kecerdasan Buatan/ Buku/ Bab
kalori disesuaikan dengan jumlah Algoritma Genetika.pdf. diakses pada
tanggal 16 November 2012.
kalori harian. [5.] Kusumadewi, Sri. (2003). Artificial
5.2 Saran Intelligence (Teknik dan Aplikasinya).
Yogyakarta: Graha Ilmu.
Saran untuk penelitian selanjutnya [6.] Sutojo, T dkk. (2011). Kecerdasan
dapat membatasi keluaran makanan Buatan. Yokyakarta: Andi.
dalam satu minggu sehingga satu jenis
makanan tidak keluar lebih dari lima
kali. Penelitian selanjutnya juga dapat
menambahkan menu untuk penderita
jantung koroner, ginjal maupun
penyakit komplikasi.
DAFTAR PUSTAKA
[1.] Bahri, Anwar T. (2004). Manfaat Diet
Pada Penanggulangan
Hiperkolesterolemi. Universitas
Sumatra Utara. Fakultas Kedokteran.
Medan. http://repositary.usu.ac.id/
handle/123456789/3482 diakses pada
tanggal 16 Januari 2015.
[2.] Kingham, Karen. (2009). Makan
Hidup dengan Kolesterol Tinggi. Devri
Barnadiputera. (alih bahasa).
Prinandita Adhika dan Lemeda
Simarmata. (ed). Jakarta: Erlangga.
[3.] Almatsier, Sunita. (2001). Prinsip
Dasar Ilmu Gizi. Jakarta:Gramedia
Pustaka Utama.

106

Anda mungkin juga menyukai