DAFTAR PUSTAKA
Almatsier, S. (Editor). 2004. Penuntun Diet. PT. Gramedia Pustaka Utama: Jakarta.
Andrade, Alessandro Vivas, Errico, Luciano de, Aquino, Andre L. L., Assis, Luciana
Pereira de and Barbosa, & Carlos H.N.R. 2008. Analysis of selection and
crossover methods used by genetic algorithm-based heuristic to solve the LSP
allocation problem in MPLS networks under capacity contraints. International
Conference on Engineering Optimization, pp. 1-9.
Badan Penelitian dan Pengembangan Kesehatan. 2007. Riset Kesehatan Dasar
(RISKESDAS 2007). Kementrian Kesehatan Republik Indonesia, Jakarta.
Baker, K. R. 1974. Introduction to Sequencing and Scheduling. New York : John
Wiley & Sons, Inc.
Davis, L. 1991. Handbook of Genetic Algorithm. New York : Van Nostrand Reinhold.
Eiben, A.E. & Smith, J.E. 2007. Introduction to Evolutionary Computing Genetic
Algorithms. Springer : New York
Firmansyah, E.R., Ahmad, S.S., & Agustin, N.H. 2012. Algoritma Genetika. Mata
Kuliah Kecerdasan Buatan.
Hadisaputro, S., & Setyawan, H. 2007. Epidemiologi dan faktor-faktor risiko terjadi
diabetes mellitus tipe 2. Dalam : Darmono, dkk, editors. Naskah Lengkap
Diabetes mellitus Ditinjau dari Berbagai Aspek Penyakit dalam dalam rangka
Purna Tugas Prof Dr.dr.RJ Djokomoeljanto. Badan Penerbit Universitas
Diponegoro Semarang: p.133-153.
Husain, W., Wei, L.J., Cheng, S.L., & Zakaria, N. 2011. Application of data mining
techniques in a personalized diet recommendation system for cancer patients.
IEEE Colloquium on Humanities, Science and Engineering Research
Indrianingsih,Y. 2010. Algoritma genetika untuk menyelesaikan masalah optimasi
fungsi berkendala dengan pengkodean bilangan bulat. Skripsi. Sekolah Tinggi
Teknologi Adisutjipto.
Kushardiana, R. 2013. Penetuan Komposisi Menu Makanan untuk Penderita Diabetes
Mellitus Menggunakan Algoritma Genetika. Skripsi. Universitas Brawijaya.
Kusumadewi, S. & Purnomo, H., 2005. Penyelesaian Masalah Optimasi dengan
Teknik-Teknik Heuristik. Yogyakarta : Graha Ilmu.
Mendes, J. M. 2013. A comparative study of crossover operators for genetic
algorithms to solve the job shop scheduling problem. Journal of School of
Engineering-Polytechnic of Porto, vol 7(7): 164-173
Perkeni (Persatuan Endokrinologi Indonesia). 2011. Konsensus Pengelolaan dan
Pencegahan Diabetes Melitus Tipe 2 di Indonesia Tahun 2011.
Phanich, M., Pholkul, P., & Phimoltares, S. 2010. Food recommendation system using
clustering analysis for diabetic patients. International Conference on
Information Science and Applications (ICISA) pp.1–8.
Picek, S. J., Domagoj, & Gloub, M. 2013. On the recombination operator in the
real-code genetic algorithms. IEEE Congress on Evolutionary Computation, pp.
3103-3110
Puspaningrum, W. A., Djunaidy, A. & Vinarti, R. A. 2014. Penjadwalan mata kuliah
menggunakan algoritma genetika di jurusan sistem infiormasi ITS. Jurnal
Teknik POMITS, vol 2 : 127-133
Satriyanto, E. 2009. Algoritma Genetika. (Online)
http://lecturer.eepisits.edu/~kangedi/materi%20kuliah/Kecerdasan%20Buatan
Bab%207%20Algoritma%20Genetika.pdf (20 November 2015).
Soegondo, S., Soewondo, P., & Imam, S.2009. Penatalaksanaan Diabetes Melitus
Terpadu, Edisi Kedua. Jakarta : Balai Penerbit FKUI.
Tias, R. A., Rahman, M. A. & Dewi, C. Implementasi algoritma genetika untuk
optimasi 0/1 multi-dimensional knapsack problem dalam penentuan menu
BAB 3
ANALISIS DAN PERANCANGAN
Pada bab ini akan dibahas mengenai analisis dan perancangan sistem. Pada tahap
analisis akan dilakukan analisis terhadap data yang digunakan menggunakan
algoritma genetika (genetic algorithm) untuk menjadwalkan menu makanan bagi
penderita diabetes mellitus. Pada tahap perancangan akan dibahas mengenai
perancangan use case diagram, flowchart user, database, serta tampilan antarmuka
sistem.
3.1. Arsitektur Umum
Pada penelitian ini terdiri dari beberapa langkah yang diawali dari pengumpulan data
nutrisi makanan dan data pasien. Selanjutnya dilakukan proses perhitungan kebutuhan
pasien dengan menggunakan persamaan Harris-Benedict yang kemudian akan
dilanjutkan dengan proses penentuan jenis diet penderita. Proses selanjutnya adalah
penerapan algoritma genetika untuk menjadwalkan menu makanan yang diawa li
dengan membangkitkan individu awal secara acak. Tahap selanjutnya adalah
menghitung nilai fitness untuk menentukan individu- individu yang terbaik. Tahap
selanjutnya adalah seleksi yang berguna untuk memilih beberapa individu terbaik
untuk dilakukan proses crossover. Tahap selanjutnya adalah melakukan crossover
untuk mengawinkan beberapa individu antar kromosom yang terbaik untuk
menghasilkan individu yang baru. Tahap selanjutnya adalah proses mutasi untuk
menggantikan gen yang hilang dan menghasilkan kromosom yang baru. Output yang
diperoleh dari proses ini berupa jadwal menu makanan dalam satu minggi bagi
secara terperinci pada bagian-bagian selanjutnya. Adapun arsitektur umum dari sistem
yang akan dibangun dapat dilihat pada Gambar 3.1.
3.2. Data yang Digunakan
Data yang digunakan dalam penelitian ini terdiri dari dua jenis data, yaitu data pasien
diabetes mellitus dan data nutrisi makanan. Data pasien digunakan untuk mengetahui
jumlah kalori yang dibutuhkan oleh pasien untuk menentukan jenis diet yang
diberikan kepada pasien diabetes mellitus. Parameter data pasien yang digunakan
adalah nama, umur, jenis kelamin, berat badan, tinggi badan, tingkat aktivitas, dan
alergi. Data ini akan digunakan untuk melakukan perhitungan kalori pasien dengan
menggunakan persamaan Haris-Benedict. Contoh data pasien beserta nilai
parameternya yang dibutuhkan dalam penelitian ini dapat dilihat pada Tabel 3.1
Tabel 3.1. Parameter Pasien
dikembangkan oleh Usman Sikumbang dari Poltekkes Padang. Nutrisurvey
merupakan sebuah software yang dibuat oleh Jurgen Erhadt dan Reiner Gross yang
berguna untuk menganalisis zat gizi makanan dari menu atau survey konsumsi. Data
nutrisi makanan digunakan untuk menghasilkan sebuah menu makanan yang sesuai
dengan kebutuhan kalori pasien. Parameter-parameter nutrisi makanan yang
digunakan pada penelitian ini adalah kode makanan, nama makanan, jenis makanan
(makanan pokok, lauk pauk, sayuran, buah-buahan, dan pelengkap), kandungan energi
(kkal), protein (gr), lemak (gr), dan karbohidrat (gr). Contoh data nutrisi makanan
beserta parameternya yang dibutuhkan pada penelitian ini dapat dilihat pada Tabel
Tabel 3.2. Parameter Nutrisi Makanan
seseorang yang disebabkan oleh peningkatan kadar glukosa darah akibat penurunan
insulin yang progresif dilatarbelakangi oleh resistensi insulin (Soegondo et al, 2009).
Penyakit diabetes mellitus dapat dikontrol dengan cara memperhatikan, menjaga, dan
juga mengatur pola hidup yang sehat dan seimbang, terutama dalam hal konsumsi
makanan sehari- hari. Bagi penderita diabetes mellitus sangat penting untuk
memperhatikan dan mengetahui makanan yang dapat dikonsumsinya beserta
ukurannya. Selain itu angka kecukupan gizi atau nutrisi yang dibutuhkan oleh
penderita diabetes mellitus juga turut mempengaruhi proses penyembuhan pasien.
Perhitungan kalori bagi penderita pasien diabetes diperoleh dari perhitungan
flow perhitungan kalori yang dibutuhkan oleh pasien diabetes mellitus dalam sehari
dapat dilihat pada Gambar 3.2.
Gambar 3.2. Flowchart Perhitungan Kebutuhan Kalori Pasien
start
Input data pasien (tinggi badan, berat badan, usia, jenis kelamin, dan tingkat
aktivitas)
Hitung berat badan ideal (BBI)
Hitung kalori basal (KB)
Hitung koreksi faktor aktivitas
Hitung koreksi faktor usia
Hitung indeks masa tubuh (IMT)
Hitung total kalori pasien
stop Total Kalori
Berikut akan dijelaskan contoh penerapan proses perhitungan kebutuhan kalori
berdasarkan data seorang pasien penderita penyakit diabetes mellitus seperti Tabel
3.3.
Tabel 3.3. Data Pasien Diabetes Mellitus Data Pasien
Nama Novita
Jenis Kelamin Perempuan
Usia 43 tahun
Berat Badan 60 kg
Tinggi Badan 165 cm
Tingkat Aktivitas Ringan (bekerja di kantor)
Alergi -
3.3.1. Hitung Berat Badan Ideal (BBI)
Perhitungan berat badan ideal meliputi tinggi badan dan berat badan pasien yang telah
diinput dengan menggunakan rumus ((TB-100) x 1kg) x 90%) untuk pasien wanita dengan tinggi badan ≥ 150 cm. Maka berat badan ideal dari pasien tersebut adalah
Berat Badan Ideal = ((TB-100) x 1 kg) x 90%)
Berat Badan Ideal = ((165 – 100) x 1 kg) x 90 %
Berat Badan Ideal = (65 x 1 kg) x 90%
Berat Badan Ideal = 58.5 kkal
3.3.2. Hitung Kalori Basal
Perhitungan kalori basal meliputi data mengenai jenis kelamin pasien dengan
menggunakan rumus (Berat Badan Ideal x 25 kkal) untuk jenis kelamin pasien diatas.
Kalori Basal = BBI x 25 kkal
Kalori Basal = 58.5 kkal x 25 kkal
Kalori Basal = 1462.5 kkal
3.3.3. Hitung Koreksi Faktor Aktivitas
Perhitungan koreksi faktor usia meliputi data mengenai usia pasien dengan
menggunakan rumus (Kalori Basal x 10%) untuk usia pasien diatas. Maka koreksi
faktor aktivitas pasien tersebut adalah
Koreksi faktor aktivitas = Kalori Basal x 10%
Koreksi faktor aktivitas = 1462.5 kkal x 10%
Koreksi faktor aktivitas = 146.25 kkal
3.3.4. Hitung Koreksi Faktor Usia
Perhitungan koreksi faktor usia meliputi data mengenai usia pasien dengan
menggunakan rumus (Kalori Basal x 5%) untuk usia pasien diatas. Maka koreksi
faktor aktivitas pasien tersebut adalah
Koreksi faktor usia = Kalori Basal x 5%
Koreksi faktor usia = 1462.5 kkal x 5%
Koreksi faktor usia = 73.125 kkal
3.3.5. Hitung Indeks Masa Tubuh (IMT)
Perhitungan IMT pasien dilakukan untuk mengecek status berat badan pasien diabetes
Indeks Masa Tubuh = Berat Badan/(Tinggi Badan2) x 100 %
Indeks Masa Tubuh = (60kg / (1.65 m)2) x 100%
Indeks Masa Tubuh = (60 kg / 2.7225 m2) x 100%
Indeks Masa Tubuh = 22
Status indeks masa tubuh pasien diatas dalam keadaan normal karena rentang
IMT antara 18-25 sehingga tidak diberikan perubahan kebutuhan kalori.
3.3.6.Hitung Total Kebutuhan Kalori
Setelah dilakukan perhitungan diatas, maka akan dihitung total kebutuhan kalori yang
dibutuhkan pasien dalam satu hari untuk mencukupi kebutuhan nutrisinya dengan
rumus sebagai berikut
Total Kalori = Kalori Basal + Faktor Aktivitas – Faktor Usia
Total Kalori = 1462.5 + 146.25 – 73.125
Total Kalori = 1535.625 kkal
3.4. Penentuan Jenis Diet Penderita Diabetes Mellitus
Diet untuk penyakit diabetes mellitus (DM) dikelompokkan berdasarkan jumlah kalori
yang dibutuhkan per hari dari hasil perhitungan berat badan, tinggi badan, usia,
tingkat aktivitas, dan jenis kelamin. Adapun klasifikasi diet diabetes mellitus beserta
kandungan nutrisi berdasarkan jenis diet dapat dilihat pada Tabel 2.2.
Sebelum masuk ke dalam tahapan algoritma genetika, akan ditentukan terlebih
dahulu kelompok jenis diet dari penderita diabetes mellitus berdasarkan perhitungan
total kebutuhan kalori yang telah dihitung dengan persamaan Haris-Benedict.
Berdasarkan nilai kalori dari kelompok jenis diet yang ditentukan tersebut, maka akan
diabetes mellitus. Contoh kasus dari pasien dengan data diri yang dapat dilihat pada
Tabel 3.3 menunjukkan bahwa pasien tersebut berada pada kelompok jenis diet
diabetes ketiga atau diet 1500 kkal. Dengan data tersebut maka total kalori 1500 kkal
akan digunakan untuk dibangun model algoritma genetika.
3.5. Model Algoritma Genetika
3.5.1. Struktur Algoritma Genetika
Algoritma genetika memiliki struktur umum sebagai berikut :
Individu
Individu adalah istilah pada teknik pencarian yang dilakukan sekaligus juga dapat
didefenisikan sebagai sejumlah solusi yang mungkin dihasilkan. Struktur individu
yang akan dibangun pada penelitian ini d idefeniskan seperti Gambar 3.3.
Gambar 3.3. Struktur Individu
Pada penelitian ini satu individu yang dibangun akan terdiri dari 3
kromosom untuk kromosom makan pagi, kromosom makan siang, dan kromosom
makan malam. Satu individu terdiri dari 15 gen yang akan menampung total
kalori dari setiap jenis makanan, yaitu makanan pokok, lauk pauk, sayuran,
buah-buahan, dan pelengkap.
Kromosom
Dari satu individu yang dibangun tersebut akan dibagi menjadi 3 kromosom yaitu
kromosom untuk makan pagi, siang, dan malam. Setiap kromosom akan berisi dua
nilai, yaitu total kalori dan nilai fungsi fitness. Total kalori merupakan jumlah
kalori dari seluruh jenis makanan dalam satu kromosom untuk jadwal menu
nilai fungsi fitness. Nilai fungsi fitness merupakan nilai untuk mengevaluasi
optimal atau tidaknya algoritma genetika yang diimplementasikan. Pada penelitian
ini fungsi fitness yang digunakan adalah fungsi fitness minimum. Oleh sebab itu,
semakin rendah nilai fungsi fitness maka semakin optimal solusi menu makanan
yang diperoleh. Struktur kromosom yang akan dibangun dapat dilihat seperti
Gambar 3.4.
Gambar 3.4. Struktur Kromosom
Genotype (Gen)
Gen berisi sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti
tertentu dalam satu kesatuan gen yang dinamakan kromosom. Nilai yang terdapat
dalam satu gen disebut dengan allele. Pada penelitian ini terdiri dari 15 gen,
dimana setiap gen akan berisi nilai kalori setiap jenis makanan (makanan pokok,
lauk pauk, sayuran, buah-buahan, dan pelengkap). Stuktur gen yang akan
dibangun dapat dilihat pada Gambar 3.5.
Gambar 3.5. Struktur Genotype (Gen)
Individu
Individu gen
3.5.2. Inisialisasi Individu Awal
Tahap ini merupakan tahapan awal dalam proses algoritma genetika. Pada tahap
inisialiasi dilakukan proses pembangkitan individu awal yaitu pembangkitan sejumlah
individu secara acak. Ukuran untuk populasi tergantung pada masalah yang akan
diselesaikan dan jenis operator genetika yang akan diimplementasikan. Pada
penelitian ini, data populasi awal yang akan dibangkitkan merupakan data menu
makanan yang diperoleh dari database makanan. Semakin besar ukuran populasi awal
yang dibangkitkan, maka semakin besar p ula variasi menu makanan yang akan
dihasilkan dengan menggunakan algoritma genetika. Flowchart dari tahap inisialisasi
individu awal dapat dilihat pada Gambar 3.6.
Gambar 3.6. Flowchart Tahapan Inisialisasi Individu Awal
Adapun langkah- langkah dalam tahap inisialisasi individu awal adalah sebagai
berikut :
1. Normalisasi Menu Makanan
Sebelum menu makanan dibangkitkan sebagai individu awal dalam tahap
inisialisasi individu awal, diperlukan proses normalisasi menu makanan terlebih start
Normalisasi Menu Makanan
Random Menu Makanan
Masukkan nilai kalori menu makanan ke dalam kromosom
dahulu. Hal ini dilakukan agar menu makanan yang terpilih pada saat proses
random menu makanan sudah sesuai dengan kebutuhan sistem. Proses normalisasi
makanan memiliki tiga tahapan, yaitu :
a. Pembagian Total Kalori Pasien
Total kalori pasien yang dihasilkan dari perhitungan kebutuhan kalori pasien
sebelumnya akan dibagi 3 (tiga) yang disesuaikan dengan jumlah kromosom,
yaitu kromosom untuk makan pagi, siang, dan malam. Hal ini dilakukan agar
penjadwalan menu makanan yang dihasilkan tetap memperhatikan
keseimbangan total kalori untuk menu makan pagi, siang, dan malam. Cara
pembagian total kalori pasien dapat didefenisikan dengan persamaan 3.1.
(3.1)
Contoh kasus pasien bernama Novita dengan penyakit diabetes mellitus
yang memiliki data seperti pada Tabel 3.3. Pasien tersebut memiliki total
kebutuhan kalori yang masuk pada kelompok jenis diet ketiga tau jenis diet
1500 kkal untuk satu hari yang diperoleh dari perhitungan total kalori yang
dilakukan sebelumnya. Nilai dari total kalori tersebut akan dibagi 3 (tiga)
untuk setiap kromosom makan pagi, siang, dan malam. Sehingga untuk setiap
jadwal makan, kebutuhan kalori yang diperlukan pasien tersebut adalah
sebagai berikut :
b. Menghitung jumlah kalori untuk setiap jenis makanan
Setelah perhitungan total kalori pasien per kromosom dilakukan, maka proses
selanjutnya adalah menghitung jumlah kalori setiap jenis makanan. Satu
kromosom memiliki 5 (lima) gen yang berisikan kalori dari setiap jenis
makanan, yaitu makanan pokok, lauk pauk, sayuran, buah-buahan, dan
pelengkap. Setiap jenis makanan memiliki bobot masing- masing, yaitu untuk
buah-buahan sebesar 15%, dan makanan pelengkap sebesar 20% untuk setiap
satu kromosom jadwal makan. Cara perhitungan jumlah kalori tiap jenis
makanan dapat didefenisikan dengan perhitungan sebagai berikut :
Contoh kasus dari pasien bernama Novita, diperoleh total kalori pasien
per kromosom adalah 500 kkal untuk setiap jawal makan pasien. Dari data
tersebut maka akan dihitung bobot masing- masing jenis makanan seperti :
Makanan pokok (kkal) = 45% x 500 kkal
= 225 kkal
Lauk pauk (kkal) = 20% x 500 kkal
= 100 kkal
Sayuran (kkal) = 15% x 500 kkal
= 75 kkal
Buah-buahan (kkal) = 15% x 500 kkal
= 75 kkal
Makanan pelengkap (kkal) = 20% x 500 kkal
= 100 kkal
c. Menghitung berat tiap makanan dalam satuan 100 gram.
Setiap menu makanan yang terdapat dalam database makanan dinyatakan
menu makanan yang memiliki kalori yang melebihi jumlah kalori yang
dibutuhkan untuk jenis makanan tersebut. Sehingga diperlukan suatu
persamaan untuk mengatasi hal tersebut agar tetap memberikan jumlah kalori
dan berat yang sesuai dengan total kalori kebutuhan pasien diabetes mellitus
seperti pada persamaan 3.2.
(3.2)
Contoh kasus dari data pasien bernama Novita memiliki total
kebutuhan kalori sebesar 1500 kkal dalam satu hari, total kebutuhan kalori
untuk jadwal makan pagi, siang, dan malam untuk tiap jenis makanan adalah
makanan pokok sebesar 225 kkal, lauk pauk sebesar 100 kkal, sayuran sebesar
75 kkal, buah-buahan sebesar 75 kkal, dan makanan pelengkap sebesar 100
kkal.
Sebelum melakukan random menu makanan berdasarkan data kalori
per jadwal makan, diperlukan perhitungan untuk menormalisasikan kalori dan
berat dari tiap menu makanan di database makanan agar jumlah kalori dan
berat sesuai dengan total kalori kebutuhan pasien. Contoh data menu makanan
yang terdapat pada database dalam satuan 100 gram dapat dilihat pada Tabel
3.4.
Tabel 3.4. Menu Makanan dari Database
Dari data tersebut, sistem akan melakukan perhitungan bagi menu
makanan yang memiliki kalori yang lebih banyak dari kalori tiap jenis
makanan yang diperlukan pasien untuk setiap jadwal makan. Pasien tersebut
membutuhkan kalori untuk makanan pokok sebesar 225 kkal, lauk pauk
sebesar 100 kkal, sayuran sebesar 75 kkal, buah-buahan sebesar 75 kkal, dan
makanan pelengkap sebesar 100 kkal. Dari data tersebut dapat dilihat bahwa
jenis makanan nasi putih, ikan goreng, sayur sop, jeruk memiliki jumlah kalori
yang lebih tinggi dibandingkan jumlah kalori yang dibutuhkan pasien.
Sedangkan untuk jenis makanan pelengkap yaitu jus tomat tidak memerlukan
perhitungan ulang untuk menormalisasikan berat makanan. Perhitungan yang
dilakukan untuk normalisasi kalori makanan tersebut adalah
Makanan pokok (nasi putih) =
x 100 gram
= 41,36 gram
Lauk pauk (ikan goreng) =
x 100 gram
= 14,3 gram
Sayuran (sop sayur) =
x 100 gram
= 17,24 gram
Buah-buahan (jeruk) =
x 100 gram
= 17,99 gram
Berdasarkan perhitungan normalisasi berat makanan diatas, maka diperoleh
Tabel 3.5. Hasil Normalisasi Berat Menu Makanan Baru
2. Random Menu Makanan
Setelah proses normalisasi menu makanan di database makanan telah selesai
dilakukan maka proses selanjutnya adalah memilih secara acak 15 (lima belas)
menu makanan sebagai individu awal untuk tahap inisialisasi individu awal. Hasil
dari proses random menu makanan adalah 15 (lima belas) menu makanan yang
telah ternormalisasi yang sesuai dengan kebutuhan pasien.
3. Masukkan nilai kalori menu makanan ke dalam kromosom
Setelah proses random menu makanan dilakukan, tahap akhir yang dilakukan
adalah memasukkan 15 (lima belas) menu makanan yang terpilih ke dalam 3 (tiga)
kromosom sesuai dengan pembagiannya yaitu kromosom untuk makan pagi,
siang, dan malam. Masing- masing kromosom akan memiliki 5 (lima) gen yang
berisi nilai kalori untuk makanan pokok, lauk pauk, sayuran, buah-buahan, dan
makanan pelengkap.
3.5.3. Evaluasi Nilai Fungsi Fitness
Setelah proses inisialisasi individu awal dilakukan, tahap selanjutnya yang dilakukan
adalah mengevaluasi nilai fungsi fitness. Nilai fitness adalah nilai yang menyatakan
baik atau tidaknya solusi (individ u) yang diperoleh. Nilai fitness dapat dijadikan
sebagai acuan dalam mencapai nilai optimal dalam algoritma genetika. Pada
penelitian ini, algoritma genetika yang digunakan bertujuan mencari individu dengan
nilai fitness yang paling minimum. Untuk menghitung nilai fitness setiap individu
dapat dilakukan dengan menggunakan persamaan 3.3.
Fitness = |Total kalori pasien – Total kalori menu makanan satu hari| (3.3)
Sedangkan untuk menghitung nilai fitness rata-rata setiap generasi dapat
dilakukan dengan menggunakan persamaan 3.4.
dimana :
ak = nilai fitness setiap individu
k = individu dalam satu minggu, dimulai dari 1 hingga 7
Contoh kasus pada pasien diabetes mellitus yang bernama Novita memiliki
kebutuhan kalori sebesar 1500 kkal dalam satu hari. Pada saat tahap inisialisasi
individu yang dilakukan menghasilkan menu makanan seperti Tab el 3.6.
Tabel 3.6. Menu Makanan Hasil Inisialisasi Populasi Awal
Tipe Makanan Sarapan Makan Siang Makan Malam
Makanan pokok Lontong (225
kkal)
Ketupat (84 kkal) Nasi tim wortel
Tabel 3.6. Menu Makanan Hasil Inisialisasi Populasi Awal (lanjutan)
Tipe Makanan Sarapan Makan Siang Makan Malam
Sayuran Tumis bayam dan
Sebelum menghitung nilai fitness, pertama sekali yang dilakukan adalah
menghitung total kalori menu makanan dalam satu hari dengan menjumlahkan jumlah
kalori per menu makanan, yaitu
225 + 100 + 75 + +75 + 100 + 84 + 100 + 75 + 75 + 100 + 225 + 100 + 33 + 75 + 100
= 1542 kkal
Dari perhitungan tersebut diperoleh bahwa total kalori menu makanan dalam
satu hari adalah sebesar 1680 kkal. Dengan menggunakan data tersebut dapat dihitung
nilai fitness menggunakan persamaan 2.
Nilai fitness = | 1500 kkal – 1542 kkal |
= 42
3.5.4. Seleksi
Tahap seleksi berhubungan erat dengan nilai fitness yang diperoleh oleh setiap
individu. Seleksi dilakukan untuk memilih individu mana saja yang akan dipilih untuk
proses kawin silang dan mutasi. Tahap seleksi dilakukan untuk memperoleh calon
parent yang baik. Semakin tinggi nilai fitness suatu individu, maka semakin tinggi
kemungkinan terpilihnya individu tersebut.
Penelitian ini menggunakan metode Rank Based Fitness Assignment untuk
melakukan tahap seleksi individu yang akan terpilih pada saat kawin sila ng. Pada
dari yang terkecil hingga terbesar. Fungsi metode ini adalah untuk menyeragamkan
skala untuk seluruh individu dalam populasi agar dapat memiliki peluang terpilih
untuk proses kawin silang. Ilustrasi metode Rank Based Fitness Assignment dapat
dilihat pada Gambar 3.7.
Individu Nilai Fitness Individu Nilai Fitness
1 90 4 40
Gambar 3.7. Ilustrasi Menggunakan Rank Based Fitness Assignment
3.5.5. Crossover
Setelah tahap seleksi dilakukan, maka tahap selanjutnya adalah melakukan proses
crossover (kawin silang) antar individu atau parent yang terpilih. Untuk menentukan
berapa banyak parent yang terpilih maka diperlukan nilai persentase crossover,
dimana nilainya telah ditetapkan sebesar 0,1. Dengan menggunakan nilai tersebut,
maka dapat dihitung berapa parent yang akan dilakukan crossover.
Individu- individu yang terpilih merupakan individu- individu yang memiliki
nilai fungsi fitness yang terbaik. Setelah menentukan berapa individu yang akan
digunakan, proses selanjutnya adalah menentukan titik potong gen yang akan
mengalami proses crossover antar individu terpilih. Titik potong gen ditentukan
dengan cara melakukan random.
Penelitian ini menggunakan metode two point crossover untuk melakukan
proses crossover. Two point crossover hampir sama dengan one point crossover.
Letak perbedaannya adalah terdapat 2 (dua) cut point yang dibangkitkan secara acak
Adapun langkah- langkah dari metode two point crossover adalah sebagai
berikut :
1. Masukkan parent atau individu yang terpilih untuk di crossover
2. Tentukan bilangan random sebanyak 2 (dua) cut point sebagai titik potong antara
0 sampai sepanjang kromosom pada masing- masing parent atau individu.
3. Untuk setiap gen pada kromosom parent, lakukan
a. Untuk indeks awal yang lebih kecil dibandingkan dengan indeks akhir, lakukan
Untuk gen yang terletak sebelum indeks awal dan setelah indeks akhir, salin kembali nilai gen dari parent pertama untuk diberikan pada anakan
(offspring)
Jika gen berada di antara indeks awal dan indeks akhir, maka gen pada
offspring akan berisi gen dari parent kedua.
b. Untuk indeks awal yang lebih besar dibandingkan dengan indeks akhir, lakukan
Proses crossover akan dimulai dari indeks awal ke indeks akhir.
Jika gen berada sebelum indeks awal dan setelah indeks akhir salin kembali nilai gen dari parent pertama untuk diberikan pada anakan (offspring)
Jika gen berada di antara indeks awal dan indeks akhir, maka gen pada offspring akan berisi gen dari parent kedua.
Contoh kasus terdapat 20 jumlah individu awal yang telah ditentukan. Nilai
persentase crossover untuk menentukan berapa jumlah kromosom yang akan
dilakukan diberikan sebesar 0,1. Oleh sebab itu, banyak individu yang akan dilakukan
crossover adalah
Banyak individu (parent) = 0,1 x jumlah individu
= 0,1 x 20
= 2 individu
Dari perhitungan tersebut diperoleh banyak individu yang akan dikawin silang
akan dilakukan crossover antar individu sebanyak 2 (dua) cut point secara random.
Ilustrasi 2 (dua) individu yang akan dilakukan crossover dengan menggunakan
metode two point crossover dapat dilihat pada Gambar 3.8 dan Gambar 3.9.
Kondisi : Jika indeks awal < indeks akhir (indeks awal : 5; indeks akhir :10), maka :
Parent 1 :
Parent 2 :
Offspring :
Gambar 3.8. Ilustrasi Proses Crossover Kondisi Pertama
23 12 76 7 10 22 12 7 7 10 21 12 7 7 10
22 13 75 7 10 21 12 7 7 10 24 12 7 7 10
Two point crossover
23 12 76 7 10 21 12 7 7 10 24 12 7 7 10
Hasil gen yang di-crossover Indeks
awal
Indeks akhir
Indeks awal Kondisi : Jika indeks awal > indeks akhir (indeks awal 13; indeks akhir 2)
Parent 1:
Parent 2 :
Parent 1:
Parent 2 :
Offspring :
Gambar 3.9. Ilustrasi Proses Crossover Kondisi Kedua
23 12 76 7 10 22 12 7 7 10 21 12 7 7 10
22 13 75 7 10 21 12 7 7 10 24 12 7 7 10
22 13 75 7 10 21 12 7 7 10 24 12 7 7 10
23 12 76 7 10 22 12 7 7 10 21 12 7 7 10
22 13 75 7 10 22 12 7 7 10 21 12 7 7 10
Two point crossover Indeks gen ya ng di -crossover
3.5.6. Mutasi
Proses mutasi dilakukan setelah proses crossover selesai. Proses mutasi bertujuan
untuk mengubah anak (offspring) baru dengan mengubah 1 menjadi 0 atau 0 menjadi
1. Mutasi dimaksudkan untuk mencegah hasil pencarian yang mengarah pada keadaan
local optima di dalam suatu area pencarian. Pada penelitian ini menggunakan metode
random mutation untuk melakukan proses mutasi gen. Hal yang pertama dilakukan
adalah menghitung berapa banyak jumlah gen yang akan dilakukan proses mutasi
berdasarkan perhitungan nilai dari Probabilitas Mutasi (Pm) dan jumlah total gen.
Perhitungan berapa banyak gen yang akan dilakukan mutasi dapat dihitung dengan
menggunakan persamaan 3.5.
Jumlah gen yang dimutasi = Pm x jumlah populasi x jumlah gen (3.5)
Dari persamaan 3.4 akan diperoleh berapa jumlah gen yang akan dilakukan
proses mutasi. Setelah itu akan dilakukan random posisi untuk menentukan posisi gen
yang akan dimutasi. Gen yang terpilih akan dilakukan mutasi dengan tipe gen yang
sama yang berada pada kromosom sebelahnya. Adapun langkah- langkah proses
random mutation adalah sebagai berikut :
1. Tentukan banyak gen yang akan dilakukan mutasi
2. Tentukan bilangan random sebagai letak posisi gen yang akan dilakukan
mutasi antara 0 sampai sepanjang kromosom invidu.
3. Lakukan mutasi dengan cara mengganti nilai gen pada indeks yang terpilih
a. Jika indeks yang terpilih berada pada kro mosom 1 (satu) atau 2 (dua) maka
nilainya akan digantikan dengan gen yang memiliki tipe yang sama, yang
berada pada kromosom disebelah kanannya.
b. Jika indeks yang terpilih berada pada kromosom 3 (tiga) maka nilainya
akan digantikan dengan gen yang memiliki tipe yang sama, yang berada
pada kromosom sebelumnya.
Contoh kasus input individu awal yang diberikan sebesar 20 individu dan nilai
probabilitas mutasi ditentukan sebesar 0,1. Namun jumlah individu akan bertambah
menjadi 21 karena sebelumnya telah dilakukan proses crossover pada generasi
pertama. Berdasarkan persamaan 3.4 dapat dihitung jumlah gen yang akan dilakukan
Jumlah gen yang dimutasi = 0,1 x 21 x 15
= 31,5
= 31 gen
Berdasarkan perhitungan data diatas maka akan dilakukan mutasi sebanyak 31
gen dimana posisi gen pada setiap proses akan ditentukan secara random. Misal posisi
gen yang akan dimutasi pada proses pertama terdapat pada indeks 6 dari hasil random
posisi gen. Gen pada indeks ke 6 (enam) akan dimutasi ke gen dengan tipe yang sama
(lauk pauk) pada kromosom sebelahnya yaitu gen pada indeks ke 11 (sebelas).
Ilustrasi dari proses mutasi dapat dilihat pada Gambar 3.10.
Proses I :
Individu awal
Individu akhir
Gambar 3.10. Ilustrasi Proses Mutasi
Proses algoritma genetika akan terus berulang sesuai dengan jumlah individu
awal dan generasi yang diberikan. Hasil dari seluruh proses algoritma genetika adalah
jadwal menu makanan yang merupakan tujuh individu terbaik dengan nilai fitness
terendah. Menu makanan akan ditampilkan dalam satu minggu atau 7 (tujuh) hari
untuk menu makan pagi, siang, dan malam. Setiap jadwal makan akan terdiri dari 5
jenis makanan, yaitu makanan pokok, lauk pauk, sayuran, buah-buahan, dan makanan
pelengkap.
220 130 75 75 102 220 127 77 76 102 240 126 77 7 101
220 130 75 75 102 220 126 77 76 102 240 127 77 7 101
3.6. Perancangan Sistem
3.6.1. Flowchart Sistem
Proses user merupakan sebuah alur atau tahapan yang akan dilakukan oleh user untuk
menggunakan aplikasi penjadwalan menu makanan bagi pendertia diabetes mellitus.
Adapun flowchart tahapan yang dilakukan oleh user pada sistem dapat dilihat pada
Gambar 3.11.
start
Isi data diri
Hasil perhitungan kalori
Hasil penentuan jenis diet
Hasil penjadwalan menu makanan Isi pilihan individu
awal dan generasi awal
Simpan data?
YA
stop
Simpan data dan jadwal menu makanan ke data
pasien
TIDAK
Cetak grafik dan proses GA
Adapun penjelasan dari Gambar 3.11 adalah sebagai berikut :
Pertama sekali user akan masuk ke halaman pengisian data diri seperti nama, usia, jenis kelamin, berat badan, tinggi badan, tingkat aktivitas, dan alergi.
Setelah itu akan ditampilkan informasi berupa kalori yang dibutuhka n penderita diabetes mellitus dan jenis diet yang akan digunakan.
Untuk melakukan proses penjadwalan menu makanan, user harus memilih berapa jumlah individu awal dan generasi awal terlebih dahulu.
Setelah itu user akan menekan tombol next agar system dapat melakuka n penyusunan jadwal makanan.
Sistem akan menampilkan output yaitu berupa hasil penjadwalan menu makanan untuk makan pagi, siang, dan malam dalam 7 (tujuh) hari.
User juga dapat melihat grafik hubungan generasi dengan nilai fitness serta
melihat bagaimana proses algoritma berjalan.
User juga dapat memilih untuk menyimpan data jadwal menu makana n
dengan menekan tombol finish atau tidak. Jika user memilih untuk simpa n
data, maka data jadwal makanan akan disimpan pada data pasien.
3.6.2. Perancangan Database
Perancangan database pada sistem ini digunakan untuk menyimpan data dan
informasi yang berhubungan dengan proses penjadwalan menu makanan bagi
penderita diabetes mellitus. Penjelasan mengenai table-tabel yang terdapat pada
database yang dirancang adalah sebagai berikut :
1. Tabel table_makanan, berfungsi sebagai tempat penyimpanan data-data yang
berhubungan dengan menu makanan dan juga kandungan nutrisi dari setiap menu
makanan. Adapun contoh data pada tabel tabel_makanan dapat dilihat pada
Gambar 3.12. Data pada Tabel Menu Makanan
2. Tabel jenis_diet, berfungsi sebagai tempat penyimpan data-data yang berhubungan
dengan jenis diet penderita diabetes mellitus dan jumlah kalori serta kandungan
nutrisi yang diperlukan untuk setiap jenis diet. Data pada tabel ini akan digunakan
pada saat proses penentuan jenis diet setelah berdasarkan perhitungan total kalori
penderita diabetes mellitus. Adalpun contoh data jenis diet pada database dapat
dilihat pada Gambar 3.13.
3. Tabel menu, berfungsi sebagai tempat penyimpanan daftar jadwal menu makanan
dari hasil proses penjadwalan beserta informasi seperti kalori dan berat makanan
yang dikonsumsi penderita diabetes mellitus. Adapun contoh dari tabel menu
dapat dilihat pada Gambar 3.14.
Gambar 3.14. Data pada Tabel Jadwal Makanan
4. Tabel pasien, berfungsi sebagai tempat penyimpanan data diri penderita diabetes
mellitus. Adapun contoh dari tabel pasien dapat dilihat pada Gambar 3.15.
3.6.3. Racangan Tampilan Antarmuka
Tampilan antarmuka merupakan sebuah desain awal dari antarmuka sistem yang akan
dibangun pada penelitian ini.
Rancangan Halaman Utama
Gambar 3.16. Rancangan Tampilan Halaman Utama
Keterangan :
a. Menu “Apa itu DM?” merupakan menu untuk masuk ke halaman yang berisi
penjelasan tentang penyakit diabetes mellitus.
b. Menu “Galeri” merupakan menu untuk masuk ke halaman galeri yang berisi
foto-foto singkat tentang diabetes mellitus.
c. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman pengisian
data diri pasien untuk menjadwalkan menu makanan pasien.
d. Tombol “Find Out More” merupakan tombol yang juga dapat mengakses
halaman yang berisi penjelasan tentang penyakit diabetes mellitus.
Buat Jadwal Galeri
Apa itu DM?
DIABETES MELLITUS DIET
DM diet
FIND OUT MORE
a b c
Rancangan Halaman Info Diabetes Mellitus
Gambar 3.17. Rancangan Tampilan Halaman Info Diabetes Mellitus
Keterangan :
a. Menu “Apa itu DM?” merupakan menu untuk masuk ke halaman yang berisi
penjelasan tentang penyakit diabetes mellitus.
b. Menu “Galeri” merupakan menu untuk masuk ke halaman galeri yang berisi
foto-foto singkat tentang diabetes mellitus.
c. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman pengisian
data diri pasien untuk menjadwalkan menu makanan pasien.
d. Tombol “Find More” merupakan tombol untuk mengakses internet yaitu
masuk ke halaman www.wikipedia.com untuk mengetahui lebih detail
mengenai penyakit diabetes mellitus.
Buat Jadwal Galeri
Apa itu DM? DM diet
Apa itu Diabetes Mellitus?
DM atau disebut Diabetes Mellitus ………..
FIND MORE!
a b c
Rancangan Halaman Galeri
Gambar 3.18. Rancangan Tampilan Halaman Galeri
Keterangan :
a. Menu “Apa itu DM?” merupakan menu untuk masuk ke halaman yang berisi
penjelasan tentang penyakit diabetes mellitus.
b. Menu “Galeri” merupakan menu untuk masuk ke halaman galeri yang berisi
foto-foto singkat tentang diabetes mellitus.
c. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman pengisian
data diri pasien untuk menjadwalkan menu makanan pasien.
d. Form untuk menampilkan foto- foto seputar penyakit diabetes mellitus. Buat Jadwal Galeri
Apa itu DM? DM diet
a b c
Photo 1
Photo 2
Photo 3
Rancangan Halaman Buat Jadwal
Gambar 3.19. Rancangan Tampilan Halaman Buat Jadwal
Keterangan :
a. Menu “Beranda” merupakan menu untuk masuk kembali ke halaman utama
atau beranda.
b. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman buat jadwal
untuk mengisi data-data pasien.
c. Menu “Data Pasien” merupakan menu untuk masuk ke halaman penyimpanan
data-data pasien dan menu makanan pasien yang telah terjadwal.
d. Menu “Apa itu DM?” merupakan menu untuk masuk kembali ke halaman
e. Form data pasien yang memungkinkan user untuk mengisikan data-data pasien
diabetes mellitus untuk diproses ke tahap selanjutnya.
f. Tombol “Previous” merupakan tombol untuk kembali ke halaman
sebelumnya.
g. Tombol “Next” merupakan tombol untuk masuk ke proses dimana hasilnya
akan ditampilkan pada halaman data diet pasien yang berisi info berat badam
Halaman Tampilan Data Diet Pasien
Keterangan :
a. Menu “Beranda” merupakan menu untuk masuk kembali ke halaman utama
atau beranda.
b. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman buat jadwal
untuk mengisi data-data pasien.
c. Menu “Data Pasien” merupakan menu untuk masuk ke halaman penyimpanan
data-data pasien dan menu makanan pasien yang telah terjadwal.
d. Menu “Apa itu DM?” merupakan menu untuk masuk kembali ke halaman
yang berisikan info lebih detail mengenai penyakit diabetes mellitus.
e. Form data diet pasien yang memungkinkan user untuk melihat data diri, berat
badan ideal, kalori basal, koreksi faktor aktivitas, koreksi faktor usia, dan total
kebutuhan kalori pasien diabetes mellitus dalam satu hari.
f. Tabel daftar diet pasien memungkinkan user untuk melihat dan mengetahui
jenis diet yang akan dikonsumsi pasien dan juga menampilkan berapa
kandungan nutrisi yang boleh dikonsumsi pasien dalam satu hari berdasarkan
jenis diet pasien.
g. Field jumlah individu awal merupakan field untuk memberikan nilai individu
awal untuk masuk ke tahap algoritma genetika.
h. Field jumlah generasi merupakan field untuk memberikan nilai generasi untuk
masuk ke tahap algoritma genetika.
i. Tombol “Previous” merupakan tombol untuk kembali ke halaman
sebelumnya.
j. Tombol “Next” merupakan tombol untuk masuk ke proses dimana hasilnya
akan ditampilkan pada halaman output yang merupakan halaman untuk
Halaman Tampilan Output
v
Gambar 3.21. Rancangan Tampilan Halaman Output
Keterangan :
a. Menu “Beranda” merupakan menu untuk masuk kembali ke halaman utama
atau beranda.
b. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman buat jadwal
untuk mengisi data-data pasien.
c. Menu “Data Pasien” merupakan menu untuk masuk ke halaman penyimpanan
data-data pasien dan menu makanan pasien yang telah terjadwal.
d. Menu “Apa itu DM?” merupakan menu untuk masuk kembali ke halaman
yang berisikan info lebih detail mengenai penyakit diabetes mellitus. a
Hari Sarapan Makan Siang Makan Malam
PREVIOUS FINISH
a b c d
e
e. Form penjadwalan menu pasien yang memungkinakn user untu melihat daftar
menu seperi makanan pokok, lauk pauk, sayuran, buah-buahan, dan pelengkap
untuk makan pagi, siang, dan malam yang dapat dikonsumsi pasien.
f. Tombol “Previous” merupakan tombol untuk kembali ke halaman
sebelumnya.
g. Tombol “Finish” merupakan tombol untuk menyimpan informasi pasien yang
telah diproses ke halaman data pasien.
Halaman Tampilan Log Proses Algoritma Genetika
Gambar 3.22. Rancangan Tampilan Log Proses Algortima Genetika
Keterangan :
a. Menu “Beranda” merupakan menu untuk masuk kembali ke halaman utama
atau beranda.
b. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman buat jadwal
untuk mengisi data-data pasien. a
DM DIet
Apa itu DM? Data Pasien
Buat Jadwal Beranda
a b c d
Proses Algoritma Genetika
Tampilan Daftar Proses Algoritma Genetika
c. Menu “Data Pasien” merupakan menu untuk masuk ke halaman penyimpanan
data-data pasien dan menu makanan pasien yang telah terjadwal.
d. Menu “Apa itu DM?” merupakan menu untuk masuk kembali ke halaman
yang berisikan info lebih detail mengenai penyakit diabetes mellitus.
e. Tampilan daftar log algoritma genetika yang memungkinkan user untuk
melihat proses algoritma genetika berjalan mulai dari inisialisasi individu,
crossover, dan mutasi.
Halaman Tampilan Grafik
Gambar 3.23. Rancangan Tampilan Halaman Grafik
Keteragan :
a. Menu “Beranda” merupakan menu untuk masuk kembali ke halaman utama
atau beranda.
b. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman buat jadwal
untuk mengisi data-data pasien. a
DM DIet
Apa itu DM? Data Pasien
Buat Jadwal Beranda
a b c d
Grafik
c. Menu “Data Pasien” merupakan menu untuk masuk ke halaman penyimpanan
data-data pasien dan menu makanan pasien yang telah terjadwal.
d. Menu “Apa itu DM?” merupakan menu untuk masuk kembali ke halaman
yang berisikan info lebih detail mengenai penyakit diabetes mellitus.
e. Tampilan grafik hubungan generasi dengan fitness yang memungkinkan user
untuk melihat bagaiamana perbandingan antara nilai fitness dengan generasi.
Rancangan Tampilan Data Pasien
Gambar 3.24. Rancangan Tampilan Data Pasien
Keteragan :
a. Menu “Beranda” merupakan menu untuk masuk kembali ke halaman utama
atau beranda. a
DM DIet
Apa itu DM? Data Pasien
Buat Jadwal Beranda
a b c d
Data Pasien
b. Menu “Buat Jadwal” merupakan menu untuk masuk ke halaman buat jadwal
untuk mengisi data-data pasien.
c. Menu “Data Pasien” merupakan menu untuk masuk ke halaman penyimpanan
data-data pasien dan menu makanan pasien yang telah terjadwal.
d. Menu “Apa itu DM?” merupakan menu untuk masuk kembali ke halaman
yang berisikan info lebih detail mengenai penyakit diabetes mellitus.
e. Tabel daftar data pasien yang memungkinkan user untuk melihat kembali
jadwal menu makanan yang telah disimpan. Selain itu user juga dapat
BAB 4
IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dibahas hasil yang diperoleh dari implementasi algoritma Genetika
(Genetic Algorithm) dalam menjadwalkan menu makanan bagi penderita penyakit
diabetes mellitus dan pengujian sistem sesuai dengan analisis dan perancangan yang
telah dibahas pada Bab 3.
4.1.Implementasi Sistem
Pada tahap implementasi sistem, algoritma genetika akan diimplementasikan ke dalam
sistem menggunakan bahasa pemrograman PHP sesuai dengan perancangan yang
telah dilakukan.
4.1.1. Spesifikasi Perangkat Keras dan Perangkat Lunak
Spesifikasi perangkat keras dan perangkat lunak yang digunakan pada pembangunan
sistem ini adalah sebagai berikut :
1. Processor Intel Core i5-3337U CPU @ 1.80GHz.
2. Sistem Operasi Windows 8 Single Language 64-bit.
3. Memory 4.00 GB RAM DDR3.
4. Kapasitas harddisk 750 GB.
5. Notepad++.
4.1.2. Implementasi Perancangan Antarmuka
Adapun implementasi perancangan antarmuka pada sistem yang telah dibangun
adalah sebagai berikut.
Halaman Utama atau Beranda
Halaman ini merupakan halaman awal pada saat aplikasi dijalankan pertama sekali.
Pada halaman ini juga terdapat halaman info diabetes dan juga galeri dengan
menggunakan fasilitas scroll. Halaman utama dapat dilihat pada Gambar 4.1.
Gambar 4.1. Halaman utama
Halaman Info Diabetes
Halaman info diabetes merupakan halaman yang menampilkan info- info mengenai
penyakit diabetes mellitus. Selain itu tersedia fasilitas ‘Find More’ untuk mencari
langsung info diabetes dengan fasilitas akses internet langsung. Tampilan halaman
Gambar 4.2. Halaman Info Diabetes
Halaman Galeri
Halaman galeri merupakan halaman yang menampilan beberapa gambar-gambar
mengenai penyakit diabetes mellitus. Tampilan halaman galeri dapat dilihat pada
Gambar 4.3
Halaman Pengisian Form Data Pasien
Sebelum melakukan optimasi penjadwalan menu makanan, user terlebih dahulu harus
mengisi data diri pada halaman pengisian form data pasien. Halaman ini merupakan
halaman untuk menampung data-data pasien seperti nama, jenis kelamin, usia, berat
badan, tinggi badan, tingkat aktivitas, dan alergi. Kemudian data pasien diabetes
mellitus akan disimpan untuk diproses pada perhitungan keb utuhan kalori dan
penentuan jenis diet dengan menekan to mbol next. Tampilan bagian pengisian form
data pasien dapat dilihat pada Gambar 4.4.
Gambar 4.4. Halaman Pengisian Data Pasien
Data yang diperoleh dari halaman form pengisian data pasien diabetes mellitus
akan diproses untuk menghitung berapa jumlah kalori yang dibutuhkan pasien dalam
Halaman Info Data Diet Pasien
Halaman ini merupakan halaman untuk menampilkan data yang telah di-input oleh
pasien, hasil perhitungan jumlah kalori yang dibutuhkan pasien dalam satu hari, dan
jenis diet yang dibutuhkan pasien. Tampilan dari halaman info data diet pasien dapat
dilihat pada Gambar 4.5.
Selain itu, pada halaman ini pengguna juga dapat memilih jumlah individu
awal dan jumlah generasi untuk memulai proses penjadwalan dengan algoritma
genetika. Setelah itu tekan tombol next untuk memulai proses algoritma genetika.
Tampilan dari pemilihan individu awal dan generasi dapat dilihat pada Gambar 4.6.
Halaman Hasil Penjadwalan
Halaman ini merupakan halaman untuk menampilkan jadwal menu makanan selama 1
(satu) minggu. Tampilan halaman hasil penjadwalan dapat dilihat pada gambar 4.7.
Jadwal menu makanan yang ditampilkan ada lah jadwal untuk makan pagi,
siang, dan malam. Dimana setiap jadwal makanan akan ditampilkan jenis makanannya
seperti makanan pokok, lauk pauk, sayuran, buah-buahan, dan makanan pelengkap.
Tampilan penjadwalan menu makanan untuk satu hari dapat dilihat pada Gambar 4.8.
Gambar 4.8. Tampilan Jadwal Satu Hari
Hasil penjadwalan menu makanan pada Gambar 4.8. dapat disimpan dengan
menekan tombol finish. Informasi tersebut akan disimpan pada halaman data pasien.
Halaman Data Pasien
Halaman ini merupakan halaman yang menyimpan hasil penjadwalan menu makanan.
Sehingga pada saat pengguna ingin melihat kembali hasil penjadwalan, pengguna
dapat melihat pada halaman data pasien. Selain itu, pengguna juga dapat melakukan
hapus data pada halaman ini. Tampilan data pasien dapat dilihat pada Gambar 4.9.
Pada halaman penjadwalan juga terdapat menu untuk memilih lihat grafik dan
log. Di halaman tersebut dapat dilihat bagaimana hubungan antara generasi dengan
nilai fitness dan log hasil proses genetika algoritma.
Halaman Tampilan Grafik
Halaman ini merupakan halaman untuk menampilkan bagaimana hubungan antara
jumlah generasi dengan nilai fungsi fitness. Tampilan grafik dapat dilihat pada gambar
4.10.
Gambar 4.10.Tampilan Halaman Grafik
Halaman Tampilan Log Proses Algoritma Genetika
Halaman ini merupakan halaman untuk menampilkan bagaimana proses dari
algoritma genetika berjalan. Pada halaman ini akan ditampilkan hasil inisialisasi
individu awal, hasil crossover, dan hasil proses mutasi dari proses algoritma genetika.
Gambar 4.11. Tampilan Log Proses Algoritma Genetika
4.2.Pengujian Kinerja Sistem
Pengujian kinerja sistem dilakukan untuk mengetahui bagaimana kinerja sistem dari
algoritma genetika dalam menghasilkan penjadwalan menu makanan bagi penderita
diabetes mellitus.
Pengujian kinerja sistem pada penelitian ini menggunakan data dari pasien
diabetes mellitus yang sudah dihitung besar kalorinya pada Bab 3. Kemudian data
tersebut akan dilakukan percobaan untuk melihat hubungan antara individu, generasi,
dan nilai fitness. Percobaan dilakukan sebanyak 12 (dua belas) kali dengan jumlah
individu dan jumlah generasi yang berbeda untuk setiap percobaan. Untuk percobaan
penjadwalan menu makanan penderita diabetes mellitus yang pertama dilakukan
dengan jumlah individu awal 10 dan jumlah generasi 50 dapat dilihat pada Gambar
4.12.
Pada percobaan dengan individu awal sebesar 10 dan generasi sebesar 50
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 57.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-18 dan nilai
tersebut tidak berubah hingga generasi yang ke-50. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 26 hingga 50 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus
dengan yang kedua diberikan jumlah individu awal 10 dan jumlah generasi 70 dapat
dilihat pada Gambar 4.13.
Gambar 4.13. Grafik Percobaan degan Individu 10 dan Generasi 70
Pada percobaan dengan individu awal sebesar 10 dan generasi sebesar 70
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 36.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-32 dan nilai
tersebut tidak berubah hingga generasi yang ke-70. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 32 hingga 70 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
ketiga dengan jumlah individu awal 10 dan jumlah generasi 100 dapat dilihat pada
Gambar 4.14. Grafik Percobaan dengan Individu 10 dan Generasi 100
Pada percobaan dengan individu awal sebesar 10 dan generasi sebesar 100
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 31.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-14 dan nilai
tersebut tidak berubah hingga generasi yang ke-100. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 14 hingga 100 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
keempat akan ditingkatkan jumlah individu yang diberikan, yaitu dengan jumlah
individu awal 20 dan jumlah generasi 50 dapat dilihat pada Gambar 4.15.
Pada percobaan dengan individu awal sebesar 20 dan generasi sebesar 50
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 31.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-22 dan nilai
tersebut tidak berubah hingga generasi yang ke-50. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 22 hingga 50 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
kelima dilakukan dengan jumlah individu awal 20 dan jumlah generasi 70 dapat
dilihat pada Gambar 4.16.
Gambar 4.16. Grafik Percobaan dengan Individu 20 dan Generasi 70
Pada percobaan dengan individu awal sebesar 20 dan generasi sebesar 70
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 31.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-14 dan nilai
tersebut tidak berubah hingga generasi yang ke-70. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 14 hingga 70 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
keenam dilakukan dengan jumlah individu awal 20 dan jumlah generasi 100 dapat
.
Gambar 4.17. Grafik Percobaan dengan Individu 20 dan Generasi 100
Pada percobaan dengan individu awal sebesar 20 dan generasi sebesar 100
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 23.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-20 dan nilai
tersebut tidak berubah hingga generasi yang ke-100. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 20 hingga 100 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
ketujuh dilakukan dengan menaikkan kembali jumlah individu awal. Jumlah individu
awal yang diberikan adalah 30 dan jumlah generasi 50 dapat dilihat pada Gambar
4.18.
Pada percobaan dengan individu awal sebesar 30 dan generasi sebesar 50
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 16.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-18 dan nilai
tersebut tidak berubah hingga generasi yang ke-50. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 18 hingga 50 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
kedelapan dilakukan dengan jumlah individu awal 30 dan jumlah generasi 70 dapat
dilihat pada Gambar 4.19.
Gambar 4.19. Grafik Percobaan dengan Individu 30 dan Generasi 70
Pada percobaan dengan individu awal sebesar 30 dan generasi sebesar 70
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 15.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-26 dan nilai
tersebut tidak berubah hingga generasi yang ke-70. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 26 hingga 70 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
kesembilan dilakukan dengan jumlah individu awal 30 dan jumlah generasi 100 dapat
Gambar 4.20. Grafik Percobaan dengan Individu 30 dan Generasi 100.
Pada percobaan dengan individu awal sebesar 30 dan generasi sebesar 100
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 8.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-16 dan nilai
tersebut tidak berubah hingga generasi yang ke-100. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 16 hingga 100 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
kesepuluh dilakukan dengan jumlah individu awal 40 dan jumlah generasi 50 dapat
dilihat pada Gambar 4.21.
Pada percobaan dengan individu awal sebesar 40 dan generasi sebesar 50
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 4.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-10 dan nilai
tersebut tidak berubah hingga generasi yang ke-50. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 10 hingga 50 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
kesebelas dilakukan dengan jumlah individu awal 40 dan jumlah generasi 70 dapat
dilihat pada Gambar 4.22.
Gambar 4.22. Grafik Percobaan dengan Individu 40 dan Generasi 70.
Pada percobaan dengan individu awal sebesar 40 dan generasi sebesar 70
diperoleh bahwa nilai fitness rata-rata yang paling minimum adalah 2.0. Nilai fitness
rata-rata yang paling minimum tersebut berada pada generasi yang ke-18 dan nilai
tersebut tidak berubah hingga generasi yang ke-70. Hal ini dikarenakan nilai fitness
rata-rata pada generasi dari 18 hingga 70 sudah merupakan nilai yang paling
minimum.
Untuk percobaan penjadwalan menu makanan penderita diabetes mellitus yang
kedua belas dilakukan dengan jumlah individu awal 40 dan jumlah generasi 100 dapat
Gambar 4.23. Grafik Percobaan dengan Individu 40 dan Generasi 100
Hasil pengujian kinerja sistem sebanyak dua belas kali dengan memberikan
jumlah individu awal dan jumlah generasi yang berbeda untuk setiap percobaannya
dapat dilihat pada Tabel 4.1.
Tabel 4.1. Hasil Nilai Fitness tiap Generasi pada Setiap Jumlah Individu Jumlah Individu
Awal
Jumlah generasi Nilai fitness rata-rata terbaik
10
50 57.0
70 36.0
100 31.0
20
50 31.0
70 31.0
100 23.0
30
50 16.0
70 15.0
Tabel 4.1. Hasil Nilai Fitness tiap Generasi pada Setiap Jumlah Individu (lanjutan)
Jumlah Individu Awal
Jumlah generasi Nilai fitness rata-rata terbaik
40
50 4.0
70 2.0
100 0.0
Berdasarkan Tabel 4.1. dapat digambarkan hubungan antara jumlah individu,
jumlah generasi, dan nilai fitness rata-rata seperti pada Gambar 4.24.
Gambar 4.24. Grafik Hubungan Individu, Generasi, dan Fitness
Berdasarkan gambar 4.24, dapat dilihat bahwa jumlah dari individu awal dan
generasi mempengaruhi nilai fungsi fitness. Semakin besar jumlah individu awal yang
diberikan maka semakin besar ukuran populasi dimana akan semakin banyak individu
yang dihasilkan. Dengan semakin banyak individu yang dihasilkan, maka semakin
besar juga kemungkinan perubahan nilai fitness mendekati nilai fitness yang terbaik.
Berdasarkan Gambar 4.24. juga dapat dilihat bahwa semakin besar jumlah generasi
dengan nilai fitness mendekati 0 atau sama dengan 0. Individu yang terbaik dapat
BAB 5
KESIMPULAN DAN SARAN
Bab ini membahas tentang kesimpulan dari penerapan metode yang diajukan untuk
menjadwalkan menu makanan bagi penderita diabetes mellitus serta saran-saran
pengembangan yang dapat digunakan untuk penelitian selanjutnya.
5.1.Kesimpulan
Adapun kesimpulan yang diperoleh berdasarkan pengujian sistem penjadwalan menu
makanan bagi penderita diabetes mellitus menggunakan algoritma genetika adalah
sebagai berikut.
1. Algoritma genetika dapat diimplementasikan untuk mencari solusi optimal dalam
hal penentuan jadwal menu makanan bagi penderita diabetes mellitus.
2. Optimalisasi penjadwalan menu makanan bagi penderita diabetes mellitus telah
memenuhi fungsi objektif permasalahan yaitu menjadwalkan menu makanan
dengan cukup baik.
3. Penerapan algoritma genetika untuk penyelesaian masalah optimasi memiliki
kelemahan yaitu metode ini masih bersifat probabilistik. Hal ini terjadi karena
disebabkan oleh tahapan inisialisasi individu awal yang dilakukan secara random.
4. Semakin besar nilai individu awal yang diberikan maka semakin besar ukuran
populasi. Dengan semakin besar ukuran populasi maka semakin banyak individu
yang dihasilkan. Dengan semakin banyak individu yang dihasilkan, maka semakin
5. Semakin besar jumlah generasi yang diberikan, maka semakin besar peluang
untuk memperoleh individu yang terbaik dengan nilai fitness mendekati 0 atau
sama dengan 0.
5.2.Saran
Berikut adalah saran-saran yang dapat diberikan dari penelitian ini untuk dapat
dipergunakan pada penelitian selanjutnya.
1. Untuk pengembangan selanjutnya disarankan dapat lebih memperkaya data
makanan yang diperoleh untuk menjadwalkan menu makanan sehingga menu
makanan dapat lebih bervariasi dan lebih tepat.
2. Untuk penelitian selanjutnya dapat memperoleh sumber data makanan dari sumber
yang lain yang lebih lengkap dan tepat.
3. Untuk penelitian selanjutnya diharapkan lebih mengoptimalkan fungsi alergi
supaya menu makanan yang ditampilkan lebih spesifik, seperti menu makanan
yang mengandung bahan tertentu yang menjadi alergi penderita tidak perlu
ditampilkan pada hasil penjadwalan.
4. Penelitian selanjutnya diharapkan dapat menambahkan parameter-parameter
lainnya untuk perhitungan kebutuhan kalori pasien seperti tingkat stress metabolik.
5. Pada penelitian selanjutnya, penjadwalan menu makanan dapat ditujukan pada