BAB 3 ANALIS IS DAN PERANCANGAN
3.1. Analisis Sistem Berjalan 3.1.1. Penyusunan Menu Makanan Dalam penyusunan menu makanan banyak hal yang perlu diperhatikan, terutama jika menu makanan yang disusun untuk seseorang yang mengidap penyakit tertentu seperti penyakit diabetes. Telah banyak variasi menu makanan yang dianjurkan untuk penderita diabetes, namun tidak semua menu makanan tersebut memenuhi kriteria yang diharapkan. Biasanya menu makanan akan dibagi berdasarkan kebutuhan gizi makro yaitu berdasarkan kalori. M enu makanan tersebut umumnya dikelompokkan menjadi sarapan, makan siang, dan makan malam. Penyusunan menu makanan pada penulisan skripsi ini dikhususkan untuk penderita diabetes dan berdasarkan kepada kebutuhan gizi masing–masing penderita diabetes.
3.1.2. Penentuan Gizi Penderita Diabetes Penentuan gizi untuk penderita diabetes sebenarnya tidaklah mudah. Dalam penentuan gizi yang tepat bagi penderita diabetes sebenarnya ada ketentuan tertentu yang harus dipatuhi. Adapun beberapa syarat yang harus dipenuhi di antaranya adalah : 1. Energi cukup sesuai dengan kebutuhan berdasarkan jenis kelamin, usia, aktivitas fisik, berat badan dan tinggi badan. M akanan dibagi dalam 3 porsi
39 besar yaitu makan pagi (20 %), makan siang (30 %), makan malam (25 %), dan 2-3 porsi kecil untuk makanan selingan (masing – masing 10 – 15 %) 2. Protein 10 – 15 % dari total kebutuhan energi. Protein yang digunakan hendaknya yang memiliki nilai cerna tinggi. 3. Lemak sedang 20 – 25 % dari kebutuhan energi total. Dengan komposisi lemak jenuh < 10 % lemak tak jenuh ganda 10 %, sisanya lemak tak jenuh tunggal. Asupan kolestrol dibatasi lebih kecil atau sama dengan 300 mg per hari. 4. Karbohidrat adalah sisa dari kebutuhan energi total yaitu 60 – 70 % 5. Penggunaan gula murni dalam makanan dan minuman tidak diperbolehkan, kecuali jumlahnya sedikit sebagai bumbu. Bila kadar glukosa darah sudah terkendali, penggunaan gula murni 5 % dari kebutuhan energi total. Untuk rumus perhitungan kebutuhan kalori, protein, lemak dan karbohidrat yang dapat digunakan tetap berpedoman pada rumus Harris dan Benedict yang telah dijelaskan dan dipaparkan pada Bab II sebelumnya.
3.2. Analisis Permasalahan Bervariasinya jenis makanan dan kandungan gizi yang berbeda – beda membuat sulitnya menentukan menu makanan yang baik dan memiliki nilai gizi yang mencukupi kebutuhan tubuh. Pada kenyataannya semua orang memerlukan gizi yang cukup dan menu makanan yang bervariasi agar tidak merasa bosan dengan menu makanan yang monoton. Apalagi untuk seseorang yang menderita penyakit diabetes, pemilihan menu makanan yang tepat sangat penting untuk mengendalikan kadar gula dalam darahnya. Dalam pemilihan menu makanan bagi penderita diabetes tetap harus memperhatikan nilai gizi yang dikandung. Permasalahan terletak pada
40 bagaimana menyusun menu makanan supaya dicapai nilai gizi yang optimal dan tentunya tidak memperburuk nilai kadar gula dalam darah si penderita diabetes.
3.3. Usulan Pemecahan Masalah Dari permasalahan yang telah dijabarkan di atas, maka akan dirancang sebuah program aplikasi dengan memanfaatkan kemajuan ilmu komputer penentuan gizi bagi penderita diabetes yang diformulasikan dan dihitung otomatis dengan menggunakan komputer. Adapun algoritma yang bisa dimanfaatkan untuk penentuan gizi tersebut adalah algoritma genetika yang merupakan suatu proses pengoptimalan yang berdasarkan pencarian acak dengan memperhatikan mekanisme seleksi alam dan genetika alam. Dengan program aplikasi yang dirancang ini, diharapkan dapat membantu penderita diabetes untuk menentukan menu makanan harian mereka yang terbagi dalam lima kali makan di mana akan dicapai nilai gizi yang paling optimal berdasarkan faktor yang mempengaruhi kebutuhan kalori dan gizi penderita diabetes.
3.4. Perancangan 3.4.1. Cara Kerja Sistem Sistem aplikasi penentuan kebutuhan gizi bagi penderita diabetes dengan algoritma genetika ini melakukan penentuan jenis–jenis makanan untuk komposisi makanan penderita diabetes yang mengandung zat–zat gizi sesuai dengan yang diperlukan setiap harinya. Hasil yang didapatkan berupa kombinasi menu makanan yang memiliki nilai gizi yang paling optimal atau biasa dikenal dengan istilah nilai fitness yang tinggi.
41 Untuk menjalankan aplikasi penentuan kebutuhan gizi bagi penderita diabetes dengan algoritma genetika ini, pertama–tama user harus menginput data mengenai dirinya, yaitu nama, tinggi badan (cm) , berat badan (kg) , usia (tahun), jenis kelamin, aktivitas dan angka gula darahnya (mg/dL). Setelah input diberikan, sistem akan mengecek kevalidan inputan. Jika inputan valid maka sistem akan menghitung jumlah kebutuhan kalori, protein, lemak dan karbohidrat yang dibutuhkan untuk penderita diabetes secara otomatis. Apabila angka gula darahnya di bawah atau sama dengan 126 mg/dL maka user tidak dapat mengakses halaman berikutnya karena aplikasi ini hanya dikhususkan bagi penderita diabetes. Selanjutnya sistem akan menghitung jumlah kebutuhan kalori untuk tiap waktu makan yaitu sarapan 20 %, selingan pagi 10 %, makan siang 30 %, selingan sore 15 % dan makan malam 20 % dari kebutuhan kalori harian yang telah dihitung. Persentase demikian juga berlaku pada kebutuhan protein, lemak dan karbohidrat. Setelah semua data yang dibutuhkan telah diinput, maka proses algoritma genetika dapat dimulai. Proses genetik yang dilakukan akan dibagi menjadi tiga kali yaitu untuk mencari menu sarapan, makan siang dan makan malam. Proses genetika pada diawali dengan membangkitkan populasi awal yang kemudian dilanjutkan dengan perhitungan nilai fitness dan proses seleksi. Setelah proses seleksi selesai dijalankan, maka akan dilanjutkan dengan proses crossover. Kemudian kromosom–kromosom yang telah dipindah silang (crossover) akan mengalami proses mutasi. Selama nilai optimal belum dicapai, sistem akan terus melakukan proses algoritma genetika.
42 Setelah
proses algoritma
genetika selesai dijalankan, maka akan
ditampilkan hasil kromosom-kromosom yang terbaik. Kromosom terbaik hasil tiga kali proses algoritma genetika akan ditampung pada menu sarapan, makan siang dan makan malam. Untuk menu selingan baik selingan pagi maupun selingan sore, prosesnya tidak melalui algoritma genetik karena pada selingan hanya ditampilkan 1 menu sehingga tidak diperlukan proses pencarian acak. Sistem akan mencari nilai yang paling mendekati nilai kalori untuk selingan. M isalnya saja kebutuhan kalori untuk selingan pagi adalah 189 kkal, maka sistem akan mengecek satu per satu jenis makanan pada tabel makanan selingan dan akan diambil yang paling mendekati angka 189 tersebut. Selanjutnya akan ditampilkan menu makanan untuk penderita diabetes dalam lima kali waktu makan yaitu sarapan, selingan pagi, makan siang, selingan sore dan juga makan malam beserta dengan nilai gizinya setiap menu makanan yang ditampilkan. Flowchart cara kerja sistem dapat dilihat pada Gambar 3.1.
43
M ulai
Input Data Diri No Apakah Inputan Valid ? Yes Hitung Kebutuhan Kalori. Kebutuhan Protein, Kebutuhan Lemak dan Kebutuhan Karbohidrat untuk Penderita Diabetes
Hitung kebutuhan gizi untuk sarapan, selingan pagi, makan siang, selingan sore dan makan malam
Jalankan 3 kali proses Algoritma Genetika untuk sarapan, makan siang dan makan malam
Simpan kromosom terbaik dalam menu sarapan, makan siang dan makan malam
Cek nilai gizi makanan pada tabel selingan dan pilih yang nilai gizinya paling mendekati kebutuhan
Tampilkan menu makanan dalam 5 waktu (sarapan, selingan pagi, makan siang, selingan sore dan makan malam serta nilai gizinya
Selesai Gambar 3.1 Flowchart Cara Kerja S istem
44
3.4.2. Perancangan Algoritma Genetika Proses algoritma genetika dimulai setelah semua inputan yang dibutuhkan telah dimasukkan oleh user dan proses perhitungan nilai gizi pasien untuk 5 waktu telah dilakukan. Algoritma genetika yang dijalankan terbagi dalam tiga kali proses yaitu untuk menu sarapan, makan siang dan makan malam. Pada dasarnya, algoritma genetika yang akan digunakan untuk menyelesaikan masalah penentuan gizi pada penderita diabetes, terdiri dari beberapa langkah yaitu pembangkitan populasi awal, seleksi, rekombinasi dan mutasi. Rancangan algoritma genetika adalah sebagai berikut : a. Random angka untuk masing–masing kromosom di mana setiap angka yang dihasilkan dari proses random mewakili suatu jenis makanan yang ada di dalam database makanan. b. Setelah pembangkitan populasi awal, maka selanjutnya masuk ke proses seleksi yang dilanjutkan proses crossover dan mutasi untuk pembentukan populasi baru. c. Proses pembentukan populasi baru akan terus dilakukan berulang sampai mencapai jumlah generasi yang diinginkan oleh user
3.4.2.1. Pembangkitan Populasi Awal Pembangkitan populasi awal merupakan langkah awal yang harus dilakukan dalam proses algoritma genetika. Proses membangkitkan populasi awal ini dimulai dengan membangkitkan angka random sebanyak jumlah kromosom awal dan jumlah gen dalam kromosom. Setiap angka yang dihasilkan
45 oleh random angka tersebut mewakili suatu jenis makanan yang ada dalam database. Pada aplikasi penentuan kebutuhan gizi pada penderita diabetes dengan algoritma genetika ini, database memiliki data-data yang telah diinput oleh penulis dari sumber yang didapatkan berupa buku. Angka random yang dibangkitkan dalam satu kromosom dapat memiliki nilai random angka yang sama lebih dari satu. Setelah random angka selesai dibangkitkan, sistem akan meghitung jumlah kalori, protein, lemak dan karbohidrat masing-masing kromosom yang telah didapat. Selanjutnya sistem akan mengecek apakah jumlah tersebut melebihi jumlah kebutuhan kalori, protein, lemak dan karbohidrat yang dibutuhkan oleh penderita diabetes. Jika melebihi, sistem akan memberikan nilai nol pada gen yang mengakibatkan kelebihan dalam kromosom tersebut. Secara sistematis proses pembangkitan populasi awal dapat dilihat pada Gambar 3.2.
46
Mulai
Ambil nilai jumlah kromosom awal dan jumlah gen dalam kromosom
Random angka sebanyak jumlah kromosom (JK) dikalikan dengan jumlah gen dalam kromosom (JG)
Hitung total kalori (TK) , total protein (TP), total lemak (TL), dan total karbohidrat (TH) masing – masing kromosom
Bandingkan TK, TP, TL, TH dengan jumlah kalori (JK), jumlah protein (JP), jumlah lemak (JL), dan jumlah karbohidrat (JH) yang dibutuhkan
Gen pada kromosom yang mengakitbatka n kelebihan diberi nilai 0
No Apakah TK ≤ JK & TP ≤ JP & TL ≤ KL & TH ≤ JH ?
Yes
Apakah semua kromosom sudah dihitung TK, TP, TL dan TH?
Yes Hitung nilai fitness masing – masing kromosom
Selesai
Gambar 3.2 Flowchart Pembangkitan Populasi Awal
No
47
3.4.2.2. Perhitungan Nilai Fitness Sebelum masuk pada tahap berikutnya yaitu seleksi, harus dilakukan dahulu perhitungan nilai fitness. Perhitungan nilai fitness didasarkan pada total kalori, total protein, total lemak, dan total hidrat arang pada suatu kromosom, jumlah kalori, jumlah protein, jumlah lemak, dan jumlah hidrat arang yang dibutuhkan pada penderita diabetes serta bobot kalori, bobot protein, bobot lemak dan bobot karbohidrat. Semakin tinggi nilai fitness maka akan semakin baik individu tersebut dan peluang untuk terpilih dalam proses seleksi semakin besar. Nilai fitness ini akan berkisar dari nilai 0 (nol) sampai 1 (satu). Perhitungan nilai fitness akan terus dilakukan sejumlah kromosom yang telah dibangkitkan. Rumus yang digunakan untuk menghitung nilai fitness telah dijabarkan pada Bab 2 sebelumnya. Untuk lebih memahami nilai fitness, dapat dilihat pada Gambar 3.3.
48
Mulai
Inisialisasi total kalori = TK, total protein = TP, total lemak = TL, total karbohidrat = TH ; kebutuhan kalori = KK, kebutuhan protein = KP, kebutuhan lemak = KL, kebutuhan karbohidrat = KH
Apakah TK ≤ KK ; TP ≤ KP ; TL ≤ KL & TH ≤ KH ?
Yes
Fitness kalori (Fk) = TK / KK Fitness protein (Fp) = TP / KP Fitness lemak (Fl) = TL / KL Fitness karbohidrat (Fh) = TH / KH
Berikan nilai bobot kalori = nilai bobot protein = 3 dan nilai bobot lemak = nilai bobot karbohidrat = 1
A = Fk x bobot kalori (bk) B = Fp x bobot protein (bp) C = Fl x bobot lemak (bl) D = Fh x bobot karbohidrat (bkh)
Nilai fitness =
Selesai
Gambar 3.3 Flowchart Perhitungan Nilai Fitness
Total kalori = 0 Total lemak = 0 Total protein = 0 Total karbohidrat = 0
49 3.4.2.3. Seleksi Proses seleksi dalam algoritma genetika yang akan digunakan adalah rank-based fitness selection yaitu seleksi dengan peringkat terbaik. Jadi akan diurutkan kromosom – kromosom sejumlah N dengan nilai fitness tertinggi sampai pada nilai fitness terendah. Selanjutnya berdasarkan persentase seleksi (Ps), akan diambil sejumlah kromosom yang menduduki peringkat atas sebanyak N x Ps. M isalkan saja jika jumlah kromosom adalah 20 buah dengan persentase seleksi adalah 0.8 maka akan diseleksi sebanyak 20 x 0.8 = 16 kromosom yang menduduki posisi teratas berdasarkan nilai fitnessnya. Ranked-based fitness selection secara singkatnya dapat dilihat pada Gambar 3.4.
Mulai
Ambil nilai fitness masing – masing kromosom
Urutkan nilai fitness kromosom dari terbesar
Ambil nilai persentase seleksi (Ps)
Seleksi kromosom sejumlah N x Ps
Selesai
Gambar 3.4. Flowchart Rank-based fitness Selection
3.4.2.4. Crossover Setelah proses seleksi selesai, akan masuk pada proses crossover. Crossover berdasarkan probabilitas atau peluang crossover di mana peluang itu
50 menentukan banyaknya kromosom yang mengalami crossover. M isalkan peluang crossover adalah 0.5. Dari proses seleksi di atas diketahui setelah diseleksi jumlah kromosom adalah 16 kromosom, maka banyaknya kromosom yang akan mengalami crossover adalah 0.5 x 16 = 8 kromosom. M aka akan dipilih secara random induk pertama dan induk kedua dengan syarat kedua induk tidak boleh induk yang sama. Selanjutnya dirandom angka untuk menentukan titik mana dimulainya crossover.
Banyak titik crossover telah ditentukan oleh penulis yaitu 1.
Andaikan nilai random yang didapat adalah 0.3. Titik dimulainya crossover adalah angka random dikalikan dengan panjang kromosom N. Setiap kromosom yang berisi gen dan setiap gen akan direpresentasikan dengan angka biner sepanjang 6 bit.
M isalkan untuk sarapan terdiri dari 2 gen, maka panjang
kromosom adalah 2 x 6 bit = 12 bit. Titik dimulainya crossover adalah 0.3 x 12 = 4.8 dan dibulatkan menjadi 5. Oleh karena itu diperoleh titik dimulainya crossover adalah pada bit ke-6. Jumlah kromosom hasil crossover adalah dua kali jumlah kromosom yang di-crossover. Jika nilai random yang didapatkan melebihi peluang crossover, maka tidak akan terjadi crossover dan nilai induk akan diturunkan pada anaknya (offspring). Proses crossover dapat dilihat pada Gambar 3.5.
51
Mulai
Random angka 0 – 1 sebagai peluang crossover (Pc)
Hitung banyak kromosom yang dicrossover (Pc x Nseleksi)
Random induk pertama dan induk Yes Apakah induk pertama sama dengan induk kedua?
No Random angka 0 – 1 kemudian tampung nilai pada variabel r
Apakah r < Pc ?
No
Yes Lakukan crossover
Induk dan Offspring
Selesai
Gambar 3.5. Flowchart Crossover
Offspring = induk
52
3.4.2.5. Mutasi Setelah selesai proses crossover akan masuk ke dalam proses mutasi yaitu mengganti nilai gen dari 0 ke 1 atau sebaliknya. Yang diperlukan dalam melakukan mutasi adalah peluang mutasi (Pm). M isalkan peluang mutasi (Pm) adalah 0.25. Banyak gen yang akan mengalami mutasi adalah Pm x jumlah kromosom x jumlah gen. Jika jumlah kromosom 16 buah dan jumlah gen adalah 12 (untuk menu sarapan), maka banyak gen yang mengalami mutasi adalah 0.25 x 16 x 12 = 48. Banyak gen total adalah 16 x 12 = 192. Jadi akan dibangkitkan angka random dari 1 – 192 sebanyak banyak gen yang akan mengalami mutasi yaitu 48. Setelah didapatkan angka random n, maka gen yang mengalami mutasi adalah gen ke – n hasil random itu. Setelah itu akan didapatkan populasi baru sejumlah 16 x 2 yaitu 32 kromosom di mana kromosom itu akan dianggap sebagai generasi baru. Generasi baru itu akan dilakukan lagi proses perhitungan fitness sampai pada mutasi kembali sehingga menghasilkan generasi baru lagi. Proses iterasi akan terus berulang sampai generasi maksimum atau pada saat beberapa generasi menghasilkan nilai fitness yang sama berturut2, iterasi akan berhenti Flowchart mutasi akan ditunjukkan pada Gambar 3.6.
53
Random angka 0 – 1 sebagai peluang mutasi (Pm)
Mulai
Ambil nilai jumlah kromosom (N) dan jumlah gen (Ng)
Hitung banyak gen yang mengalami mutasi (Nm) = Pm * N * Ng
Random angka (p) dari 1 – (N*Ng) sebanyak Nm
Mutasi gen ke-p
Selesai
Gambar 3.6. Flowchart Mutasi 3.4.3. Perancangan Layar Rancangan layar menu – menu yang ada pada program aplikasi ini dapat dilihat pada Gambar 3.7. Aplikasi Penentuan Gizi pada Penderita Diabetes dengan Algoritma G enetika Menu Mulai Aplikasi Info
Gambar 3.7 Rancangan Layar Menu Halaman Utama
54 Ada dua submenu utama yang dapat dipilih oleh user dengan mengklik pada tulisan ‘M enu’. Submenu ‘M ulai Aplikasi’ digunakan untuk menjalankan proses algoritma genetika berdasarkan inputan yang telah diisi oleh user. Sedangkan submenu ‘Info’ digunakan untuk menampilkan informasi tentang perancang aplikasi. Gambar 3.8 adalah rancangan layar untuk submenu ’M ulai Aplikasi’. Aplikasi Penentuan Gizi pada Penderita Diabetes dengan Algoritma G enetika Menu
Informasi Pasien Nama
Usia Jenis Kelamin
La ki - la ki
Wanita
Tinggi B adan B erat Badan Aktivitas G ula Darah
Kebutuhan Pasien Kalori Protein
Kembali
Lema k
Hapus Semua
Proses
Karbohidrat
Gambar 3.8 Rancangan Layar S ubmenu Mulai Aplikasi M enu ‘Mulai Aplikasi’ dilengkapi dengan dua informasi utama untuk proses yaitu informasi pasien dan kebutuhan pasien. Pada informasi pasien, semua field akan diisi oleh user dan tidak boleh ada yang kosong. Untuk jenis kelamin
55 fieldnya berupa radio button dengan grupnya berisi laki-laki dan wanita. Untuk aktivitas bertipe combo list. Untuk informasi kebutuhan pasien akan dihitung otomatis oleh sistem apabila semua inputan yang perlu diisi user valid. Apabila tidak valid, sistem akan mengulang dari awal seperti saat menu ‘M ulai Aplikasi’ dipilih. Jika inputan yang diberikan user valid maka sistem akan menampilkan nilai kebutuhan kalori, protein, lemak dan karbohidrat dalam angka. Pada bagian bawah terdapat tiga buah button yaitu ‘Kembali’, ‘Hapus Semua’,
dan
‘Proses’.
Button
‘Kembali’
apabila
diklik
maka
akan
mengembalikan sistem seperti awal program aplikasi dimulai. Button ‘Hapus Semua’ apabila diklik maka sistem akan menghapus semua data yang telah diisi oleh user dan juga semua data yang telah dihitung dan dibaca sistem. Untuk button ‘Proses’ jika diklik maka sistem akan menjalankan proses algoritma genetika dan kemudian akan ditampilkan menu optimasi hasil proses. Untuk rancangan layar submenu ’Info’ akan ditunjukkan pada Gambar 3.9.
Aplikasi Penentuan Gizi pada Penderita Diabetes dengan Algoritma G enetika Menu
PERANCANGAN PROGRAM APLIKASI PENENTUAN KEBUTUHAN GIZI PADA PENDERITA DIABETES DENGAN MENGGUNAKAN ALGORITMA GENETIKA
Dibuat Oleh : Dibimbing Oleh :
Gambar 3.9 Rancangan Layar S ubmenu Info
56
Pada menu ‘Info’ akan ditampilkan nama perancang aplikasi dan informasi lain yang berkaitan dengan perancang aplikasi.