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
1, 2Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 3Program Studi Ilmu Gizi, Fakultas Kedokteran, Universitas Brawijaya
Email: 1135150207114006@mail.ub.ac.id, 2dian_ilkom@ub.ac.id, 3titis_fahreza.fk@ub.ac.id
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 wmin dan wmax 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 wmin and wmax 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.
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.
Berikut ini adalah langkah yang dilakukan 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 × 𝑇𝐵) − 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
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).
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.,
hitung fitness tiap partikel,𝑃𝑏𝑒𝑠𝑡𝑖,𝑗𝑡 = 𝑥𝑖,𝑗𝑡 , 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
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.
𝐼𝑀𝑇 =1,53 𝑚 × 1,53 𝑚 = 18,796244 𝑘𝑔
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
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
kecepatan awal, menghitung fitness dari setiap
partikel, menentukan 𝑝𝑏𝑒𝑠𝑡, menentukan
𝑔𝑏𝑒𝑠𝑡, memperbaharui kecepatan partikel dan memperbaharui posisi partikel.
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).
∑ 𝑝𝑖𝑛𝑎𝑙𝑡𝑖 = 𝐾𝑎𝑙𝑜𝑟𝑖 + 𝐾𝑎𝑟𝑏𝑜ℎ𝑖𝑑𝑟𝑎𝑡 + 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.
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 3Flowchart 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
206899
jml_partikel, dimensi, itermax, c1, c2, wmin, wmax, gizi[], makanan_pokok[][], sumber_nabati[][],
Perbaharui Posisi Partikel
Hitung Fitness
Tentukan Gbest
iterasi++
iterasi <= itermax Ya
Posisi[][], fitness[], v[][], pbest[], fitnesspbest[] gbest[]
Tentukan Pbest
dihasilkan. Dari Gambar 5 tersebut, juga dapat
dilihat rata-rata nilai 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 mulai
menunjukkan hasil yang konvergen pada partikel ke-100 dengan nilai rata-rata 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 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 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 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
0.4;0.5 0.4;0.6 0.4;0.7 0.4;0.8 0.4;0.9
memenuhi kebutuhan rekomendasi komposisi makanan untuk penderita Hipertensi, dengan batas selisih toleransi yang di dapat dari 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.