Fakultas Ilmu Komputer
Universitas Brawijaya
1158
Optimasi Komposisi Makanan Bagi Penderita Hipertensi Menggunakan
Metode Particle Swarm Optimization
Ayulianita A Boestari1, Dian Eka Ratnawati2, Titis Sari Kusuma3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
Indonesia menempati urutan ke-2 terbesar di kawasan Asia Tenggara dalam angka kematian yang diakibatkan oleh Hipertensi. Salah satu cara dalam pengobatan penyakit Hipertensi adalah dengan melakukan pengendalian berat badan dan pengurangan kadar garam yang dikonsumsi. Untuk memecahkan masalah tersebut digunakan metode Particle Swarm Optimization (PSO). Tahapan dalam algoritme PSO adalah membangun populasi awal, inisialisasi kecepatan awal, perhitungan fitness, penetuan pbest dan gbest, perubahanan kecepatan dan perubahan posisi. Representasi partikel yang digunakan berupa indeks makanan, dimana setiap partikelnya memiliki jumlah dimensi sebesar 14 yang menunjukkan jumlah fitur yang terdiri dari makan pagi, makanan pelengkap1, makan siang, makanan pelengkap2 dan makan malam. Masing-masing fitur tersebut terdiri makanan pokok, sumber protein nabati, sumber protein hewani dan sayuran serta pelengkap. Parameter PSO yang digunakan dalam pegujian tersebut yaitu: jumlah iterasi sebesar 130, jumlah partikel sebesar 100 dan nilai 𝑤𝑚𝑖𝑛 dan 𝑤𝑚𝑎𝑥 yang digunakan adalah 0,4 dan 0,5. Berdasarkan uji coba dari 4 kasus pasien, dapat dinyatakan bahwa sistem dapat menghasilkan rekomendasi makanan yang dapat memenuhi kecukupan gizi sebesar ±10% dalam batas toleransi yang ditentukan.
Kata Kunci: komposisi makanan, hipertensi, Algoritme Particle Swarm Optimization. Abstract
Indonesia ranks 2nd largest in Southeast Asia in the number of deaths caused by Hypertension. One way to treatment Hypertension disease is to control weight and reduce the amount of salt consumed. To solve the problem used Particle Swarm Optimization (PSO) method. Stages in the PSO algorithm are building the initial population, building initial velocity, fitness calculations, pbest and gbest determinations, velocity and position update. The representation of the particles used is the food index. The number of dimensions used is 14. The number of dimensions indicates the number of features consisting of breakfast, complementary food, lunch, complementary meals and dinner. Each features consisting of staple foods, sources of plant protein, sources of animal protein , vegetable and appendages. PSO parameters used in the test are: the number of iterations used is 130, the number of particles used is 100 and the value of 𝑤𝑚𝑖𝑛and 𝑤𝑚𝑎𝑥 used are 0,4 and 0,5. Based on trials of 4 cases of
patients, it can be stated that the system can produce food recommendations That can fulfill the nutritional adequacy of ± 10% within the specified tolerance limits.
Keywords: food composition, hypertension, Particle Swarm Optimization Algorithm.
1. PENDAHULUAN
Pengaturan pola makan dan jenis makanan yang akan dikonsumsi merupakan faktor yang penting dalam menjaga kesehatan (McCarrison, 2015). Makanan yang menyediakan nutrisi yang tepat, sangat dibutuhkan oleh tubuh. Makanan yang sehat harus berisi setidaknya komponen makronutrisi, yaitu: karbohidrat, lemak, protein.
Berdasarkan survei yang telah dilakukan oleh
Food Consumtion Survey (FCS) (2014),
masyarakat Indonesia mengkonsumsi lebih banyak karbohidrat dalam makanannya (Anonim, 2014). Salah satu penyakit yang timbul karenanya adalah Hipertensi.
Hipertensi atau yang sering dikenal dengan tekanan darah tinggi adalah kondisi dimana banyaknya cairan darah yang harus dipompa oleh jantung, sehingga pembuluh darah secara
terus menerus melakukan penekanan pada dinding arteri (pembuluh darah) (WHO, 2015). Berdasarkan survey yang dilakukan Word
Health Organization (WHO), Indonesia menempati urutan ke-2 terbesar di kawasan Asia Tenggara dalam angka kematian yang diakibatkan oleh Hipertensi, hal tersebut terus mengalami peningkatan dari tahun-tahun sebelumnya (WHO, 2014). Salah satu langkah mengobati penyakit Hipertensi adalah pengendalian berat badan dan pengurangan kadar garam yang dikonsumsi, hasil penelitian yang dilakukan oleh Clinical Trial (2003), membuktikan hal tersebut dapat menurunkan tekanan darah sebesar 5 mm Hg sampai dengan 10 mm Hg (WHO, 2014).
Untuk mengatasi permasalahan tersebut, digunakan metode Particle Swarm Optimization (PSO). PSO adalah salah satu algoritme yang terinspirasi dari tingkah laku segerombolan makhluk hidup. Algoritme PSO memiliki beberapa kelebihan dalam kemudahan implementasi, kecepatan pemilihan solusi dan dalam pengembangannya hanya partikel yang paling optimal yang dapat bertahan sebagai generasi selanjutnya (Qinghai Bai, 2010). Algortima PSO memiliki nilai akurasi yang tinggi, dengan nilai 95% pada permasalahan
image classification (G. Omran et. al, 2004),
serta dapat mengurangi waktu produksi selama 0,000180 menit (Mohankumar et. al, 2011). Pada kasus penelitian PSO lainnya, algoritme PSO dapat memenuhi kebutuhan keluarga sebesar 10% dan menghemat biaya konsumsi sebesar 39.31% (Eliantara et. al, 2016), serta dapat memenuhi gizi atlet sebesar 10% dari 4 kasus yg diujikan (Zilfikri Yulfiandi R. et. al, 2016).
Penelitian ini diharapkan dapat membantu Pasien ataupun ahli gizi dalam merekomendasikan makanan, sehingga dapat membantu pengobatan Pasien, meminimalisasi terjadinya human error serta dapat memberikan hasil komposisi makanan dengan kadar diet yang optimal.
2. DASAR TEORI
2.1. Hipertensi
Hipertensi yang juga dikenal sebagai tekanan darah tinggi adalah suatu kondisi di mana pembuluh darah telah terus-menerus melakukan tekanan. Tekanan tersebut diakibatkan oleh kekuatan darah mendorong
terhadap dinding pembuluh darah (arteri) seperti yang dilakukan oleh jantung. Setiap kali jantung berdetak, jantung akan memompa ke dalam pembuluh dan membawa darah ke seluruh tubuh. Semakin tinggi tekanan, semakin sulit jantung harus memompa (WHO, 2015).
Tekanan darah orang dewasa normal didefinisikan berkisar antara 120 𝑚𝑚 𝐻𝑔 ketika jantung berdetak (sistolik) dan 80 𝑚𝑚 𝐻𝑔 pada saat jantung berelaksasi (diastolik). Ketika tekanan darah sistolik sama dengan atau di atas 140 𝑚𝑚 𝐻𝑔 dan atau tekanan darah diastolik sama dengan atau di atas 90 𝑚𝑚 𝐻𝑔 tekanan darah dianggap tinggi.
Terdapat beberapa faktor, baik lingkungan maupun faktor penyakit lain yang dapat menyebabkan ataupun memperparah Hipertensi. Faktor ini antara lain: Penggunaan tembakau, diet yang tidak sehat, penggunaan alkohol, kurangnya aktivitas fisik, paparan stres yang terus-menerus, obesitas (kelebihan berat badan), tingkat kolesterol yang tinggi dan penyakit diabetes mellitus. Perubahan gaya hidup, seperti berhenti merokok, diet sehat, berolahraga secara teratur dan menghindari penggunaan berbahaya dari alkohol, cukup untuk mengontrol tekanan darah. Selain itu, pengurangan asupan garam, memakan makanan tinggi kalium dan obat-obatan untuk mengontrol tekanan darah, juga dapat membantu mengurangi tekanan darah (JB. Suharjo et. al, 2008). Kadar garam yang dianjurkan kepada Pasien Hipertensi berdasarkan jenisnya adalah sebagai berikut. 1000 − 1200 𝑚𝑔𝑁𝑎 untuk jenis Hipertensi
Prehypertension. Untuk Hypertension Stage 1,
jumlah konsumsi garam yang dianjurkan adalah 600 − 800 𝑚𝑔𝑁𝑎. Sedangkan untuk
Hypertension Stage 2, jumlah konsumsi garam
yang dianjurkan adalah 200 − 400 𝑚𝑔𝑁𝑎. Sedangkan Kebutuhan kalium diperkirakan sebanyak 2000 mg per-harinya (Almatsier, 2004)
Penderita tekanan darah tinggi, dapat juga memiliki gula darah tinggi atau yang dikenal dengan penyakit diabetes, kolesterol tinggi atau kerusakan ginjal, bahkan risiko yang lebih tinggi, seperti serangan jantung dan stroke. Oleh karena itu, sangat penting untuk melakukan pemeriksaan rutin untuk gula darah, kolesterol darah dan albumin urine secara teratur bagi penderita Hipertensi.
2.2. Perhitungan Gizi Pasien
untuk menghitung kalori:
1. Perhitungan IMT (Indeks Massa Tubuh) Formula ini digunakan untuk mengukur berat badan ideal. Perhitungan IMT dapat dilakukan dengan Persamaan (1).
𝐼𝑀𝑇 = 𝐵𝐵/(𝑇𝐵 𝑥 𝑇𝐵) (1)
Pada Persamaan (1), 𝐵𝐵 merupakan berat badan (dalam ukuran 𝑘𝑔), 𝑇𝐵 merupakan tinggi badan (dalam ukuran 𝑚). Setelah itu, dilakukan penetapan jenis berat badan, yaitu: kurus, normal, kegemukan dan obesitas yang masing-masingnya berbeda untuk pria dan wanita. 2. Perhitungan BBI (Berat Badan Ideal)
Perhitungan BBI dilakukan sangat sederhana dengan berdasarkan tinggi badan, perhitungan ini terdapat pada Persamaan (2).
𝐵𝐵𝐼 = (𝑇𝐵 − 100) − (10%×(𝑇𝐵 − 100)) (2)
3. Perhitungan AMB (Angka Metabolisme Basal)
AMB adalah jumlah energi yang dikeluarkan saat sistem pencernaan tidak aktif. Dalam rumus perhitungan AMB untuk pria dan wanita berbeda, untuk lebih rinci rumus perhitungan AMB terdapat pada Persamaan (3) untuk pria dan (4) untuk wanita.
𝐴𝑀𝐵 = 66 + (13,7×𝐵𝐵) + (5×𝑇𝐵) − (6.8 ×
𝑈) (3)
𝐴𝑀𝐵 = 655 + (9,6 ×𝐵𝐵) + (1,8 ×𝑇𝐵) −
(4.7 ×𝑈) (4)
Pada Persamaan (3) dan (4) 𝑈 merupakan umur. Jika pada hasil perhitungan IMT yang terdapat pada Persamaan (3) dan (4) hasilnya tidak termasuk ke dalam kategori berat badan normal, maka nilai 𝐵𝐵 yang digunakan adalah hasil perhitungan BBI, jika sebaliknya, nilai 𝐵𝐵 yang digunakan berat badan asli dari Pasien. 4. Menghitung Total Kalori
Setelah itu, dilakukan perhitungan kalori berdasarkan AMB, tingkat aktifitas dan juga faktor stress. Perhitungan lebih detailnya terdapat pada Persamaan (5).
𝐾𝑎𝑙𝑜𝑟𝑖 = 𝐴𝑀𝐵 ×𝐹𝐴 ×𝐹𝑆 (5)
Pada Persamaan (5), 𝐴𝑀𝐵 merupakan angka hasil AMB, 𝐹𝐴 merupakan faktor aktifitas, 𝐹𝑆 merupakan faktor stress. Setelah itu, dilakukan perhitungan yang terdapat Persamaan (6), (7) dan (8).
𝐾𝑎𝑟𝑏𝑜ℎ𝑖𝑑𝑟𝑎𝑡 (𝐾𝑘𝑎𝑙) = 65% 𝑥 𝐾𝑎𝑙𝑜𝑟𝑖 (6)
𝑃𝑟𝑜𝑡𝑒𝑖𝑛 (𝐾𝑘𝑎𝑙) = 15% 𝑥 𝐾𝑎𝑙𝑜𝑟𝑖 (7)
𝐿𝑒𝑚𝑎𝑘 (𝐾𝑘𝑎𝑙) = 20% 𝑥 𝐾𝑎𝑙𝑜𝑟𝑖 (8)
2.3. Algoritme Particle Swarm Optimization (PSO)
Algoritme PSO diperkenalkan oleh Dr. Eberhart dan Dr. Kennedy pada tahun 1995, merupakan algoritme optimasi yang meniru proses yang terjadi dalam kehidupan populasi burung dan ikan dalam bertahan hidup (Dorigo, M., 2016).
Langkah awal dalam algoritme PSO adalah inisialisasi posisi 𝑥 dan juga kecepatan awal 𝑣. Untuk melakukan inisialisasi posisi awal partikel dibangkitkan secara acak dengan menggunakan 𝑥𝑚𝑖𝑛 yang merupakan batas minimum dari
posisi dan 𝑥𝑚𝑎𝑥 yang merupakan batas
maksimum posisi, bilangan random yang digunakan adalah antara 0 dan 1, untuk penjelasan lebih lanjut terdapat pada Persamaan (9).
𝑥 = 𝑥𝑚𝑖𝑛+ 𝑟𝑎𝑛𝑑[0,1]×(𝑥𝑚𝑎𝑥− 𝑥𝑚𝑖𝑛) (9) Setelah itu, dilakukan inisialisasi kecepatan awal partikel dengan nilai 0. Setelah proses algoritme Particle Swarm Optimazation (PSO) memasuki iterasi ke-1, maka dilakukan perubahan kecepatan. Perubahan kecepatan dihitung menggunakan Persamaan (12).
𝑣𝑖,𝑗𝑡+1= 𝑤. 𝑣𝑖,𝑗𝑡 + 𝑐1. 𝑟1(𝑃𝑏𝑒𝑠𝑡𝑖,𝑗𝑡 − 𝑥𝑖,𝑗𝑡 ) +
𝑐2. 𝑟2(𝐺𝑏𝑒𝑠𝑡𝑔,𝑗𝑡 − 𝑥𝑖,𝑗𝑡 ) (10)
Pada Persamaan (12), 𝑣𝑖,𝑗𝑡 merupakan kecepatan partikel ke-𝑖 pada dimensi ke-𝑗 pada iterasi ke-𝑡. 𝑤 merupakan bobot inertia, 𝑐1, 𝑐2 merupakan
koefisien akselerasi yang memenuhi kondisi c1 + c2 ≤ 4, 𝑟1, 𝑟2 merupakan bilangan acak 𝑅 ∈
𝑟[0,1],𝑥𝑖,𝑗𝑡 merupakan posisi partikel ke-𝑖 pada dimensi ke-𝑗 pada iterasi ke-𝑡, 𝑃𝑏𝑒𝑠𝑡𝑖,𝑗𝑡
merupakan posisi terbaik yang dicapai partikel, sedangkan 𝐺𝑏𝑒𝑠𝑡𝑔,𝑗𝑡 merupakan posisi terbaik
dari seluruh partikel.
Banyak varian pengendali bobot inersia telah diperkenalkan oleh para peneliti, salah satu dengan menggunakan rumus TVIW (Time
Variant Inertia Weight). Perubahan nilai bobot
inersia dilakukan dengan menggunakan rumus pada persamaan (11).
𝑤 = 𝑤𝑚𝑖𝑛+ (𝑤𝑚𝑎𝑥− 𝑤min ) 𝑡𝑚𝑎𝑥− 𝑡𝑖
𝑡𝑚𝑎𝑥 (11)
Pada Persamaan (11), 𝑤𝑚𝑖𝑛 dan
𝑤𝑚𝑎𝑥 merupakan batas minimum dan
maksimum dari bobot inersia, 𝑡𝑚𝑎𝑥 dan
iterasi ke-𝑖.
Dalam implementasi PSO, terkadang ditemukan partikel memiliki kecenderungan untuk keluar dari ruang batas pencarian. Perlu adanya pembatasan kecepatan, sehingga kecepatan tetap berada di dalam batas [𝑣𝑚𝑎𝑥,
𝑣𝑚𝑖𝑛]. Hal tersebut dilakukan dengan
menggunakan Persamaan (12) (Marini & Walczak, 2015).
𝑣𝑚𝑖𝑛𝑗 = −𝑣𝑚𝑎𝑥𝑗
𝑣𝑚𝑎𝑥𝑗 = 𝑘
𝑥𝑚𝑎𝑥𝑗−𝑥𝑚𝑖𝑛𝑗
2 , 𝑘 ∈ (0,1] (12)
Pada persamaan (12), 𝑣𝑚𝑖𝑛𝑗 dan
𝑣𝑚𝑎𝑥𝑗 merupakan kecepatan minimum dan
maksimum partikel pada dimensi ke -𝑗, sedangkan 𝑘 merupakan konstanta (bilangan random ∈(0,1]).
Pendekatan yang diusulkan untuk membatasi kecepatan partikel ke-𝑖 dalam 𝑗 dimensi, berdasarkan pada Persamaan (13) dan (14) (Marini & Walczak, 2015).
jika 𝑣𝑖𝑗𝑡+1> 𝑣
𝑚𝑎𝑥𝑗 maka 𝑣𝑖𝑗𝑡+1= 𝑣𝑚𝑎𝑥𝑗 (13) jika 𝑣𝑖𝑗𝑡+1< −𝑣𝑚𝑎𝑥𝑗 maka 𝑣𝑖𝑗𝑡+1= −𝑣𝑚𝑎𝑥𝑗 (14) Pada Persamaan (13) dan (14) 𝑣𝑖𝑗𝑡+1 merupakan kecepatan partikel ke-𝑖 pada dimensi ke-𝑗 pada iterasi ke-(𝑡 + 1)
Setelah dilakukan pembatasan kecepatan, maka akan dilakukan penalizing untuk mengantisipasi jika kecepatan, menghasilkan posisi partikel baru di luar batas batas ruang pencarian. Penalizing dilakukan dengan menggunakan persamaan (15).
jika 𝑣𝑖𝑗+ 𝑥𝑖𝑗> 𝑥𝑚𝑎𝑥𝑗 atau 𝑣𝑖𝑗+ 𝑥𝑖𝑗 < 𝑥𝑚𝑎𝑥𝑗 maka 𝑣𝑖𝑗= 0, 𝑥𝑖𝑗 = 𝑀𝑎𝑡ℎ. 𝐴𝑏𝑠(𝑥𝑖𝑗) (15)
Seiring dengan berubahnya kecepatan, maka terjadi perubahan posisi patikel. yang dapat di hitung dengan persamaan (16):
𝑥𝑖,𝑗𝑡+1= 𝑥𝑖,𝑗𝑡 + 𝑣𝑖,𝑗𝑡+1 (16)
Berikut adalah Pseudocode algoritme PSO yang terdapat pada Gambar 1 (
Cholissodin I.,
2016
). mulai 𝑡 = 0 inisialisasi partikel(𝑥𝑖,𝑗𝑡 ),kecepatan(𝑣 𝑖,𝑗𝑡 = 0),hitung fitness tiap partikel,
𝑃𝑏𝑒𝑠𝑡𝑖,𝑗𝑡 = 𝑥𝑖,𝑗𝑡 , dan 𝐺𝑏𝑒𝑠𝑡𝑔,𝑗
do
𝑡 = 𝑡 + 1
update kecepatan 𝑣𝑖,𝑗(𝑡)
update posisi 𝑥𝑖,𝑗(𝑡)
hitung fitness tiap partikel
update 𝑃𝑏𝑒𝑠𝑡𝑖,𝑗(𝑡)dan 𝐺𝑏𝑒𝑠𝑡𝑔,𝑗(𝑡)
while (bukan kondisi berhenti) selesai
Gambar 1. Pseudocode PSO 3. METODOLOGI
Pada penelitian ini, dilakukan studi litetur terkait permasalahan yang diangkat, meliputi: Komposisi makanan, Hipertensi, Perhitungan Gizi dan algorima PSO. Untuk data makanan pasien bersumber dari data yang terdapat pada nurtrisurvey dan https://www.fatsecret.co.id. Sedangkan data Pasien yang digunakan dalam penelitian adalah data Pasien penderita Hipertensi di Klinik Aldifarma Tabiang Padang pada bulan Februari 2017. Kandungan gizi makanan yang digunakan adalah kadar kalori, karbohidrat, protein, lemak, natrium dan kalium. Dilakukan perhitungan kadar kalori porsi makan untuk makan pagi, makan siang, makan malam serta makanan pelengkap1 dan pelengkap2. Pada penelitian ini juga dilakukan evaluasi kesamaan makanan untuk makanan pagi, siang dan malam, serta tidak dilakukan evaluasi harga pada makanan. Pada peneitian ini sistem dibangun menggunakan bahasa pemograman Java. 4. PERANCANGAN SISTEM
Perancangan sistem secara keseluruhan dapat dilihat pada Gambar 2.
Pada Gambar 2 dapat dilihat bahwa saat sistem dijalankan Pengguna akan memasukkan data berupa nama, umur, jenis kelamin, berat badan, tinggi badan, tingkat aktifitas dan faktor stress. Setelah itu, akan terdapat masukan berupa parameter PSO, yaitu jumlah iterasi, nilai 𝑤𝑚𝑖𝑛
dan 𝑤𝑚𝑎𝑥. Setelah itu, akan dihitung kebutuhan
gizi dari Pasien. Tahapan selanjutnya adalah melakukan penyimpanan dari basis data ke dalam array berupa nilai gizi dari setiap jenis makanan. Langkah selanjutnya adalah melakukan proses pencarian rekomendasi makanan dengan menggunakan metode PSO. Setelah itu, akan dilakukan perubahan dari kode partikel dengan nama dan kandungan gizi makanan yang sudah tersimpan di basis data. Proses ini dilakukan dengan cara menyamakan kode indeks yang ada pada basis data dengan kode indeks yang dihasilkan algoritme PSO. Sehingga didapatkan hasil keluaran berupa rekomendasi makanan yang dapat dibaca oleh
Pengguna.
Gambar 2 Perancangan Sistem 3.1. Menghitung Kebutuhan Gizi Pasien
Data yang dibutuhkan dalam menghitung kebutuhan gizi Pasien berupa data umur, berat badan dalam ukuran 𝑘𝑔, tinggi badan dalam ukuran 𝑐𝑚, jenis kelamin, tingkat aktifitas, tingkat faktor stress, dan tingkat tekanan darah. Adapun contoh permasalahan yang akan diselesaikan secara manual adalah sebagai berikut. Terdapat Pasien dengan nama Ny. NN dengan umur 41 tahun, memiliki berat badan 44 kg, tinggi badan 153 cm, berjenis kelamin perempuan memiliki pekerjaan PNS dan tekan darah 150/100 mmHg.
Tahapan pertama yang dilakukan adalah melakukan perhitungan IMT. dengan menggunakan Persamaan (1), seperti berikut.
𝐼𝑀𝑇 = 44 𝑘𝑔
1,53 𝑚 ×1,53 𝑚= 18,7962
Berdasarkan hasil yang didapatkan menyatakan Pasien tersebut termasuk kategori berat badan normal. Tahapan selanjutnya adalah melakukan perhitungan AMB. dengan menggunakan Persamaan (4)
𝐴𝑀𝐵 = 655 + (9,6×44 𝑘𝑔) + (1,8×153 𝑐𝑚) − (4,7×41) = 1160
Setelah didapatkan AMB (Angka Metabolisme Basal), tingkat faktor aktifitas dan tingkat faktor stress, maka dihitung total kalori harian dari Pasien. Perhitungan total kalori harian Pasien dilakukan dengan menggunakan rumus yang terdapat pada Persamaan (2.5).
𝑇𝑜𝑡𝑎𝑙 𝐾𝑎𝑙𝑜𝑟𝑖 = 1160×1.55×1.3 = 2337,6015 𝐾𝑘𝑎𝑙
Tahapan selanjutnya adalah melakukan perhitungan karbohidrat, protein dan lemak dengan menggunakan rumus yang terdapat pada Persamaan 2.6 sampai 2.8 secara berurutan.
𝐾𝑎𝑟𝑏𝑜 = 65%×2337.6015 = 1519,44 𝐾𝑘𝑎𝑙 𝑃𝑟𝑜𝑡𝑒𝑖𝑛 = 15%×2337.6015 = 350,64 𝐾𝑘𝑎𝑙 𝐿𝑒𝑚𝑎𝑘 = 20%×2337.6015 =
467,5203 𝐾𝑘𝑎𝑙
Dari perhitungan di atas maka didapatkan kadar karbohidrat sebesar 1519,44 𝐾𝑘𝑎𝑙. Kadar protein sebesar 350,64 𝐾𝑘𝑎𝑙. Kadar lemak sebesar 467,5203 𝐾𝑘𝑎𝑙. Hasilnya dilakukan konversi data ke dalam 𝑔. Dari hasil konversi tersebut, maka nilai kadar karbohidrat yang didapat adalah 379,86 𝑔, kadar protein adalah 87,66 𝑔 dan kadar lemaknya adalah 51,9467 𝑔.
Langkah selanjutnya adalah melakukan perhitungan pembagian porsi makan perharinya dari total kalori yang didapatkan. Contoh perhitungannya dapat dilakukan seperti berikut ini. 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛 𝑃𝑎𝑔𝑖 = 20%×2337,6015 = 467,5203 𝐾𝑘𝑎𝑙 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛 𝑆𝑖𝑎𝑛𝑔 = 30%×2337,6015 = 701,2805 𝐾𝑘𝑎𝑙 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛 𝑀𝑎𝑙𝑎𝑚 = 30%×2337,6015 = 701,2805 𝐾𝑘𝑎𝑙 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛𝑎𝑛 𝑃𝑒𝑙𝑒𝑛𝑔𝑘𝑎𝑝1 = 10%× 2337,6015 = 233,7602 𝐾𝑘𝑎𝑙 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛𝑎𝑛 𝑃𝑒𝑙𝑒𝑛𝑔𝑘𝑎𝑝2 = 10%× 2337,6015 = 233,7602 𝐾𝑘𝑎𝑙
Dari perhitungan di atas maka didapatkan kalori makan pagi sebesar 467,5203 Kkal, kalori pada makanan pelengkap1 sebesar 233,7602 Kkal, kalori pada makan siang sebesar 701,2805 Kkal, kalori pada makanan pelengkap2 sebesar 233,7602 Kkal dan kalori pada makan malam sebesar 701,2805 Kkal.
3.2. Penyelesaian Menggunakan Algoritme PSO
Pada Sub bab ini akan dijelaskan mengenai penyelesaian masalah menggunakan algoritme PSO. Tahapan perhitungannya meliputi membangun populasi awal, inisialisasi kecepatan awal, menghitung fitness dari setiap partikel, menentukan 𝑝𝑏𝑒𝑠𝑡, menentukan 𝑔𝑏𝑒𝑠𝑡, memperbaharui kecepatan partikel dan memperbaharui posisi partikel.
Melakukan Penyimpanan basis data yang berisi gizi dari makanan ke dalam array
Data Pasien, Parameter PSO
Algoritme PSO Mulai
Hitung Kebutuhan gizi Pasien
Proses Perubahan Kode Partikel dengan Nama dan kandungan gizi makanan yang sudah tersimpan di Basis Data
Rekomendasi Komposisi Makanan
Pembangunan populasi awal digunakan untuk menentukan representasi awal posisi dari setiap partikel. Representasi yang digunakan adalah nilai dari indeks setiap jenis makanan yang terdapat pada basis data. Representasi dibangkitkan secara acak dengan menggunakan rumus yang terdapat pada Persamaan (9). Nilai 𝑥𝑚𝑎𝑥 didapatkan dari nilai indeks terbesar pada
masing-masing jenis makanan. Sedangkan nilai 𝑥𝑚𝑖𝑛 didapatkan dari nilai terkecil index pada
masing-masing jenis makanan. Dimensi partikel yang digunakan pada permasalahan ini berjumlah 14. Jumlah dimensi partikel tersebut merupakan jumlah frekuensi makan yang akan dikonsumsi perharinya. Jumlah frekuensi makan yang akan dikonsumsi perharinya sebanyak tiga porsi, yaitu: makan pagi, makan siang, makan malam. Makan pagi dan makan siang berisi masing-masingnya makanan pokok, nabati, hewani, sayuran, dan pelengkap. Sedangkan untuk makan malam hanya berisi makanan pokok, nabati, hewani, sayuran, tanpa adanya makanan pelengkap. Untuk lebih jelasnya, desain representasi partikel awal yang digunakan dapat dilihat pada Tabel 1.
Tabel 1 Representasi Awal Partikel Makan Pagi P1 Makan Siang P2 Makan Malam
Po Na He S P Po Na He S P Po Na He S
j1 j2 j3 j4 j5 j6 j7 j8 j9 j10 j11 j12 j13 j14
xi(t) 0 3 20 13 88 5 0 1 29 56 0 6 11 3
Pada Tabel 1, P1 merupakan makanan pelengkap ke-1, P2 merupakan makanan pelengkap ke-2, Po merupakan makanan pokok, Na merupakan makanan sumber protein nabati, He merupakan makanan sumber protein hewani, S merupakan sayuran dan P merupakan makanan pelengkap. Representasi setiap partikel yang digunakan menunjukkan pembagian makan selama satu hari, yaitu: makan pagi, makan siang dan makan malam. j1 sampai dengan j14 merupakan dimensi dari partikel, dimensi partikel tersebut menunjukkan indeks jenis makanan. Untuk j1, j6 dan j11 merepresentasikan indeks dari makanan pokok. j2, j6 dan j11 merepresentasikan indeks dari makanan sumber protein nabati. j3, j7 dan j12 merepresentasikan indeks dari makanan sumber protein hewani. j4, j9 dan j13 merepresentasikan indeks dari sayuran. Sedangkan j9 dan j14 merepresentasikan indeks dari makanan pelengkap.
Setelah dilakukannya pembangunan populasi awal, langkah selanjutnya adalah
menghitung 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 dari setiap partikel. Perhitungan fitness memerlukan masukan berupa nilai posisi, jumlah partikel, jumlah dimensi, gizi Pasien serta nilai gizi dari makanan pokok, sumber protein nabati, sumber protein hewani, sayuran dan pelengkap. Setelah itu, akan dilakukan perhitungan penalti dari setiap nilai gizi dan porsi dan variasi makanan yang didapatkan. Dari hasil pinalti dan variasi yang telah didapatkan, maka dapat dihitung nilai
fitness-nya. Rumus pehitungan fitness dapat
dilihat pada Persamaan (17).
𝑓𝑖𝑡𝑛𝑒𝑠𝑠 = ( 1
∑ 𝑝𝑖𝑛𝑎𝑙𝑡𝑖 ×𝐶1) + 𝑉𝑎𝑟𝑖𝑎𝑠𝑖 (17) Pada persamaan (17), ∑𝑝𝑖𝑛𝑎𝑙𝑡𝑖 merupakan total pinalti, 𝐶1 merupakan konstanta penyeimbang pinalti porsi makan, yaitu 108, 𝑉𝑎𝑟𝑖𝑎𝑠𝑖 merupakan jumlah banyaknya kombinasi makanan yang berbeda perjenis makanannya.
Proses perhitungan penalti yang dilakukan berupa, total gizi yaitu: kalori, karbohidrat, lemak, protein, garam, kalium dan kalori dari makan pagi, makan siang, makan malam, makanan pelengkap1 dan makanan pelengkap2. Total penalti dan porsi ini, dihitung dengan menggunakan rumus pada Persamaan (18).
∑ 𝑝𝑖𝑛𝑎𝑙𝑡𝑖 = 𝐾𝑎𝑙𝑜𝑟𝑖 + 𝐾𝑎𝑟𝑏𝑜ℎ𝑖𝑑𝑟𝑎𝑡 + 𝑃𝑟𝑜𝑡𝑒𝑖𝑛 + 𝐿𝑒𝑚𝑎𝑘 + 𝐺𝑎𝑟𝑎𝑚 + 𝐾𝑎𝑙𝑖𝑢𝑚 + 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛 𝑃𝑎𝑔𝑖 + 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛𝑎𝑛 𝑃𝑒𝑙𝑒𝑛𝑔𝑘𝑎𝑝1 + 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛 𝑆𝑖𝑎𝑛𝑔 + 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛𝑎𝑛 𝑃𝑒𝑙𝑒𝑛𝑔𝑘𝑎𝑝2 + 𝐾𝑎𝑙𝑜𝑟𝑖 𝑀𝑎𝑘𝑎𝑛 𝑚𝑎𝑙𝑎𝑚 (18)
Hasil pada Persaman (18), didapatkan dari selisih dari hasil gizi dan porsi makan pasien dengan hasil gizi dan porsi rekomendasi makanan hasil algoritme PSO.
Setelah itu akan dilakukan proses penentuan
pbest dan gbest. Hasil pbest didapat dengan cara
membandingkan nilai fitness antara partikel ke-i pada iterasi sekarang dengan iterasi sebelumnya. Nilai fitness yang paling tinggi, maka posisi dari partikelnya akan menjadi pbest. Sedangkan hasil
gbest didapatkan dengan membandingkan nilai fitnesspbest antara partikel ke-i dengan seluruh
partikel. Nilai fitness yang paling tinggi, maka posisi dari partikelnya akan menjadi gbest.
Setelah iterasi ≥1, maka akan dilakukan perbaharuan kecepatan. Setelah itu, hasil kecepatan akan dilakukan proses pembatasan kecepatan dan penalizing. Langkah tersebut dapat dilakukan dengan menggunakan Persamaan (10) sampai (15). Selanjutnya akan
dilakukan perbaharuan posisi dengan menggunakan Persamaan (16). Langkah selanjutnya dilanjutkan menghitung fitness, penetuan pbest dan gbest dan diulangi kembali dengan perbaharuan kecepatan dan posisi sampai dengan batas iterasi maksimum yang ditentukan. Untuk flowchart penggunaan algoritme PSO pada sistem dapat dilihat pada Gambar 3.
Gambar 3 Flowchart Algoritme PSO 5. PENGUJIAN
5.1. Pengujian Jumlah Iterasi
Pengujian banyaknya iterasi dilakukan untuk mengetahui jumlah iterasi yang dapat menghasilkan solusi terbaik. Pengujian jumlah iterasi dilakukan 10 kali untuk masing-masing
jumlah iterasi. Parameter yang digunakan dalam pengujian adalah adalah jumlah partikel sebesar 50 dengan nilai 𝑤𝑚𝑖𝑛 dan 𝑤𝑚𝑎𝑥 sebesar 0,4 dan
0,9. Untuk grafik hasil pengujian jumlah partikel yang terdapat pada Gambar 4.
Gambar 4 Grafik Hasil Pengujian Iterasi Pada Gambar 4, dapat disimpulkan bahwa semakin besar jumlah iterasi yang diujikan, maka semakin besar pula nilai rata-rata fitness yang dihasilkan. Dari Gambar 4 tersebut, juga dapat dilihat rata-rata nilai fitness mulai menunjukkan hasil yang konvergen pada iterasi ke-130, dengan nilai rata-rata fitness sebesar 477756. Hal tersebut dikarenakan hasil nilai rata-rata fitness pada iterasi selanjutnya tidak menujukkan peningkatan yang signifikan. 5.2. Pengujian Jumlah Partikel
Pengujian jumlah partikel dilakukan 10 kali untuk masing-masing jumlah partikel. Parameter yang digunakan pada pengujian ini adalah jumlah iterasi sebesar 50 dengan nilai 𝑤𝑚𝑖𝑛 dan
𝑤𝑚𝑎𝑥 sebesar 0,4 dan 0,9. Untuk grafik
pengujian jumlah partikel yang terdapat pada Gambar 5.
Gambar 5 Grafik Hasil Pengujian Jumlah Partikel Pada Gambar 5, dapat disimpulkan bahwa semakin besar jumlah partikel yang diuji, maka semakin besar pula nilai rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 yang dihasilkan. Dari Gambar 5 tersebut, juga dapat dilihat rata-rata nilai 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 mulai menunjukkan hasil yang konvergen pada partikel ke-100 dengan nilai rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠
206899 275233,8 275318,8 350547,9 423117,8 451668,8 477756,4 477756,7 477756,5 0 100000 200000 300000 400000 500000 600000 10 30 50 70 90 110 130 160 200 R at a -R at a Fi tn e ss Jumlah Iterasi Jumlah Iterasi 298892 328975,5 340938,7 344359,1 367169 391804 451852,1 531034,4 531034,6 531034,3 0 100000 200000 300000 400000 500000 600000 30 40 50 70 60 80 90 100 110 120 R at a -R at a Fi tn e ss Jumlah Partikel Jumlah Partikel Mulai Selesai Ya
jml_partikel, dimensi, itermax, c1, c2, wmin, wmax, gizi[], makanan_pokok[][], sumber_nabati[][], sumber_hewani[][], sayuran[][], pelengkap[][]
Membangun Populasi Awal
Inisialisasi Kecepatan Awal
iterasi = 0
Tidak
iterasi >=1
Perbaharui Kecepatan Partikel
Perbaharui Posisi Partikel
Hitung Fitness
Tentukan Gbest
iterasi++
iterasi <= itermax Ya
Posisi[][], fitness[], v[][], pbest[], fitnesspbest[] gbest[]
Tentukan Pbest
sebesar 531034. Hal tersebut dikarenakan hasil nilai rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 pada partikel selanjutnya tidak menujukkan peningkatan yang signifikan. 5.3. Pengujian Nilai wmin dan wmax
Pada pengujian ini nilai rentang yang digunakan antara 0,4 sampai 0,9. Nilai rentang ini telah terbukti dapat menghasilkan nilai solusi yang mendekati optimum dari beberapa solusi (Shi, Y., et. al., 1999). Parameter yang digunakan adalah jumlah iterasi sebesar 130 dan jumlah partikel sebesar 100. Untuk grafik hasil pengujian nilai 𝑤𝑚𝑖𝑛 dan 𝑤𝑚𝑎𝑥 dapat dilihat
pada Gambar 6.
Gambar 6Grafik Hasil Pengujian Nilai wmin dan
wmax
Pada Gambar 6 dapat disimpulkan bahwa rata-rata nilai fitness terbaik berada pada nilai 0,4 untuk 𝑤𝑚𝑖𝑛 dan 0,5 untuk 𝑤𝑚𝑎𝑥. Alasannya
adalah nilai 𝑤𝑚𝑖𝑛 dan 𝑤𝑚𝑎𝑥 tersebut, memiliki
nilai rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 yang paling tinggi, yaitu sebesar 562490,43.
5.4. Analisa Pengujian Sistem
Pada pengujian ini dilakukan perhitungan selisih antara hasil rekomendasi makanan sistem dengan gizi yang dimiliki oleh pasien. Hal ini digunakan untuk melihat toleransi kesalahan yang dimiliki sistem. Batasan toleransi yang diperbolehkan untuk sistem yaitu sebesar ±10%. Pada pengujian ini, pameter algoritme yang digunakan berdasarkan hasil pengujian yang telah dilakukan sebelumnya, yaitu: jumlah iterasi sebesar 130, jumlah partikel sebesar 100 dengan nilai 𝑤𝑚𝑖𝑛 dan 𝑤𝑚𝑎𝑥 sebesar 0,4 dan
0,5. Jumlah kasus uji yang akan diujikan sebanyak 5 Pasien.
Berikut adalah hasil sistem dari salah satu pasien dengan nama Tn. SA, umur 60 tahun, berat badan 65 kg, tinggi badan 161,9 cm, berjenis kelamin Pria, Memiliki tekanan darah 180/110 mm Hg. Hasil dari sistem dapat dilihat pada Gambar 8.
Gambar 7 Tampilan Sistem
Dari Gambar 8. dapat dilihat Pasien memiliki kebutuhan gizi, yaitu: kalori sebesar 2595,75 𝐾𝑘𝑎𝑙. Karbohidrat sebesar 421,81 𝑔. Protein sebesar 97,34 𝑔. Lemak sebesar 57,68 𝑔. Natrium sebesar 200 𝑚𝑔. Kalium sebesar 2000 𝑚𝑔. Sedangkan Kebutuhan porsi yaitu: makan pagi sebesar 519,15 𝐾𝑘𝑎𝑙. Makanan pelengkap1 dan pelengkap2 masing-masingnya sebesar 259,575 𝐾𝑘𝑎𝑙. Makanan siang dan malam masing-masingnya sebesar 778,725 𝐾𝑘𝑎𝑙.. Hasil persentase selisih makanan dari hasi tersebut dapat dilihat pada Tabel 2.
Tabel 2 Hasil Presentase Selisih Makanan
Gizi Porsi Makan Kalori (Kkal) Karbo (g) Protei n (g) L (g) Na (mg) Kalium {mg} Pagi (Kkal) P1 (Kkal) S (Kkal) P2 (Kkal) M (Kkal) Gizi Pasien 2044,9 332,3 76,7 45,4 1000 2000 409 204,5 644,2 204,5 644,2 Hasil Siste m 2090,2 345 70,2 47,3 1004 1996,7 449,6 198,8 621,85 207,5 612,4 % Selisih Gizi 2,2% 3,82% 8,46% 3,98% 0,4% 0,17% 9,9% 2,8% 3,5% 1,5% 4,9%
Berdasarkan Tabel 2 dapat dilihat bahwa hasil persentase selisih untuk gizi makanan berupa kalori adalah 2,2%. Karbohidrat sebesar 3,82%. Protein sebesar 8,46%. Lemak sebesar 3,98%. Natrium sebesar 0,4%. Kalium sebesar 0,17%. Sedangkan untuk porsi makan, yaitu: Makan pagi sebesar 9,9%. Makanan pelengkap1 sebesar 10%. Makan siang sebesar 2,8%. Makanan pelengkap2 sebesar 3,5%. Makan malam sebesar 1,5%. Dari keseluruhan persentase selisih gizi dan porsi makan dapat ditarik kesimpulan, bahwa rata-rata selisihnya adalah 4,9%, yang mana dapat memenuhi total batas toleransi yang diberikan.
Dari keseluruhan 4 kasus uji yang dilakukan, maka disimpulkan bahwa sistem ini dapat memenuhi kebutuhan rekomendasi komposisi makanan untuk penderita Hipertensi, dengan batas selisih toleransi yang di dapat dari 562490,43 400227,94 508661,79 503784,92 503930,58 0 100000 200000 300000 400000 500000 600000 0.4;0.5 0.4;0.6 0.4;0.7 0.4;0.8 0.4;0.9 R ata -R ata Fi tn e ss
Nilai wmin dan wmax
keseluruhan dapat mencapai ±5%. 6. KESIMPULAN
Berdasarkan hasil pengujian maka didapatkan kesimpulan sebagai berikut:
1. Representasi partikel dilakukan berdasarkan dari indeks dari setiap jenis makanan yang ada pada basis data. Representasi partikel tersebut memiliki jumlah dimensi sebesar 14. Jumlah dimensi partikel tersebut merupakan frekuensi makan yang akan dikonsumsi perharinya. Jumlah frekuensi makan yang akan dikonsumsi perharinya terdiri dari tiga porsi, yaitu: makan pagi, makan siang, makan malam, dimana makan pagi dan makan siang berisi masing-masingnya makanan pokok, nabati, hewani, sayuran, dan pelengkap. Sedangkan untuk makan malam, hanya berisi makanan pokok, nabati, hewani, sayuran, tanpa adanya makanan pelengkap.
2. Berdasarkan pengujian yang telah dilakukan terhadap beberapa parameter algoritme PSO, yaitu: jumlah iterasi, jumlah partikel, nilai 𝑤𝑚𝑖𝑛 dan 𝑤𝑚𝑎𝑥. Didapatkan hasil
parameter berupa jumlah iterasi sebesar 130, dengan hasil rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 didapatkan sebesar 477756,4. Jumlah partikel sebesar 100 partikel, dengan hasil rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 didapatkan sebesar 531034,4. Nilai 𝑤𝑚𝑖𝑛 sebesar 0,4 dan 𝑤𝑚𝑎𝑥
sebesar 0,7, dengan hasil rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 didapatkan sebesar 526490,4.
3. Hasil dari pengujian yang sudah dilakukan dilakukan, menyatakan bahwa sistem dapat memenuhi kebutuhan gizi dan porsi makan Pasien Hipertensi, berdasarkan 1 sampai 4 kasus yang diuji dengan selisih yang rata-rata secara keseluruhan mencapai ±5%, yang mana tidak melebihi batas toleransi yang ditetapkan yaitu ±10%.
REFERENSI
Bai, Q. 2010. Analysis of Particle Swarm
Optimization Algorithm. Computer and
Information Science, Vol.3, No.1. G. Omran, M., P. Engelbrecht, A. & Salman A.
2004. Image Classification Using
Particle Swarm Optimization. Journal of
Electronic Imaging, Ch. 19.
Eliantara, F., Cholissodin, I. & Indriati. 2016.
Optimasi Pemenuhan Kebutuhan Gizi Keluarga Menggunakan Particle
Swarm Optimization. DORO: Repository Jurnal Mahasiswa PTIIK Universitas Brawijaya
Yulfiandi, Zilfikri R., Eka, DIan R., Arwan, A., 2016. Optimasi Komposisi Makanan
Untuk Atlet Endurance Menggunakan Metode Particle Swarm Optimization.
Jurnal Teknologi Informasi dan Ilmu Komputer (JTIIK),Vol.3, No.2, pp. 103-109.
Allhussein, M., Irzata, Syed H., 2015. Improved
Particle Swarm Optimization Based on Velocity Clamping and Particle Penalization. Journal of Computer
Science IEEE.
Dorigo, M., Birattari, M., Li, X., López-Ibáñez, M., Ohkura, K., Pinciroli, C., Stützle, Th. 2016. Swarm Intelligence. 10th International Conference, ANTS 2016, Brussels, Belgium.
Shi, Y., C., Russell, E., 1999. Empirical Study of
Particle Swarm Optimization. Journal of
Evolutionary Computation IEEE, vol. 3, pp. 101–106.
Cholissodin, I., 2016. Dasar-Dasar Algoritma
PSO. Tersedia di
<http://imamcs.lecture.ub.ac.id/>
[Diakses 5 April 2017]
WHO, 2012. Hypertension Meaning and Cause. F. Marini, B. Walczak, 2011. Finding Relevant
Clustering Directions in High-Dimensional Data Using Particle Swarm Optimization, J. Chemometr. 25
366–374. Tersedia di
<https://www.researchgate.net> [Diakses 1 Maret 2017]
Ganesan, Mohankumar.G, Ganesan.K, Ramesh Kumar.K (2011). Optimization of
Machining Parameters In Turning Process Using Genetic Algorithm And Particle Swarm Optimization With Experimental Verfification.
International Journal of Engineering Science and Technology (IJEST), Vol. 3: pp.1091-1102.
Anonim1. 2013. Survei Kesehatan AIA: Pola Hidup Masyarakat Indonesia Terburuk di Asia Pasifik.
Almatsier, S., 2004. Penuntun Diet: Edisi Baru. Jakarta: PT. Ikrar Mandiriabadi