## ISSN 2085-4552

## Implementasi Algoritma Rete pada Aplikasi Rekomendasi Makanan Sehat
John Elmer Semaya, Seng Hansun
Program Studi Teknik Informatika, Universitas Multimedia Nusantara, Tangerang, Indonesia john.elmer.semaya@gmail.com, hansun@umn.ac.id
Diterima 22 Oktober 2014

## Disetujui 11 Desember 2014
Abstract —This study discusses about the features on healthy food, especially for people with chronic diseases such as patients with diabetes, obesity, hypertension, heart, liver cirrhosis, ulcers, tuberculosis, lung cancer, gout and kidney. The purpose of this research is to implement the Rete’s algorithm on healthy food recommendation application that everyone who has a less than ideal body weight and who suffers a chronic illness get food recommendations that can help the healing  process.  This  study  involves  an  expert,  the specialist dietician who practices in hospitals. The result of this study is that users can get recommendations tailored healthy foodstuffs with his/her illness.
Index Terms— recommended healthy food, recommendation system, Rete algorithm
I. PENDAHULUAN
Setiap manusia menginginkan hidup damai, sejahtera, dan hampir semua orang berkeinginan berumur panjang. Untuk itu, semua orang rela melakukan apa saja untuk dapat mewujudkannya. Keinginan ini tentunya harus didukung dengan kualitas hidup yang baik sehingga masyarakat dapat meminimalisir risiko terjangkitnya penyakit yang dapat membahayakan kesehatan tubuh ataupun mempercepat proses penyembuhan ketika terjangkit suatu penyakit, diungkapkan oleh Nike dalam “Strategi Komunikasi Pemasaran Gold’s Gym Indonesia Klub Summarecon Mal Serpong Dalam Pencapaian Target Pelanggan Periode 2012” [1]. Salah satu upaya yang dapat dilakukan adalah dengan mengonsumsi makanan sehat yang disesuaikan dengan kondisi tubuh.
Aplikasi rekomendasi makanan sehat dibangun dengan menggunakan rete algorithm karena rete algorithm dapat mempercepat proses rekomendasi makanan sehat dengan menggunakan memori. Rete algorithm diimplementasikan dengan membangun jaringan node . Jaringan node akan melakukan matching process antara rules dengan facts . Jaringan tersebut dirancang agar tidak terlalu banyak melakukan matching process dari satu proses ke proses lain yaitu
dengan cara menyimpan facts yang akan diproses dan akan mengecek facts yang serupa terlebih dahulu untuk diproses dan melakukan perubahan jika sudah tidak ada facts yang tidak serupa [2].
Algoritma rete sudah beberapa kali digunakan pada penelitian-penelitian yang berhubungan dengan pattern matching , artificial intelligence , expert system , decision support system , dan lain-lain. Contohnya pada penelitian yang dilakukan oleh Yan Shvartzshnaider, Maximillian Ott, dan David Levy [3] yang berjudul “Publish/Subscribe On Top Of DHT Using RETE Algorithm”. Pada penelitian tersebut mereka mengusulkan sebuah cara untuk melakukan pattern matching dengan menggunakan algoritma rete melalui jaringan Peer-to-Peer (P2P) terstruktur berbasis Distributed Hash Table (DHT) untuk menyediakan “scalable content-based publish/subscribe service”.
Pada aplikasi rekomendasi makanan sehat, ada beberapa penyakit yang telah direkomendasi oleh Dr. Elia Indrianingsih, SpGK., ahli gizi dari RS Eka Hospital untuk divalidasi sebagai sampel uji coba karena memiliki batasan makanan tertentu dan juga memiliki catatan kasus dengan angka yang cukup besar seperti penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sirosis hepatis (pengerutan hati) dan maag. Beberapa alasan penyakit tersebut dipilih adalah karena:
1.  Menurut catatan WHO, terdapat 8.426.000 prevalensi penyakit diabetes di Indonesia pada tahun 2000 [4].
2.  Menurut KNOEMA, sekitar 6.9% wanita dan 2.5% pria di Indonesia terkena obesitas pada tahun 2008 [5].
3.  Berdasarkan data dari klinik gizi di Puskesmas Mandiraja 1 Kabupaten Banjarnegara Provinsi Jawa Tengah pada Tahun 2011 didapat 55 pasien menderita asam urat dari 199 orang atau 27,6 %.
Sedangkan pada bulan Januari sampaidengan bulan April pada Tahun 2012 didapat 42 dari 71 pasien
menderita asam urat atau 59 % (Pangesti, 2013) [6].
4.  Menurut GBD Compare, penderita penyakit ginjal kronis di atas usia 20 tahun pada tahun 2010 mencapai 0.93% sampai dengan 2.82% [7].
5.  Menurut Ekowati Rahajeng dan Sulistyowati Tuminah dalam artikel penelitian “Prevalensi Hipertensi dan Determinannya di Indonesia” tahun 2009 menyebutkan bahwa ada sekitar 24.2% masyarakat Indonesia yang tercakup oleh tenaga kesehatan dan diantaranya terdapat 32.2% prevalensi berdasarkan pengukuran dan termasuk kasus yang sedang minum obat hipertensi, namun masih ada sekitar 75.8% masyarakat Indonsia yang belum diketahui apakah terdiagnosis penyakit hipertensi [8].
6.  Menurut laporan WHO pada tahun 2012 terdapat 63% kasus baru yang terdeteksi positif terkena tuberculosis [9].
7.  Menurut GLOBOCAN 2012 International Agency for Research on Cancer (IARC) pada wilayah Asia Tenggara, prevalansi kanker paru yang terjadi di Indonesia adalah sekitar 5,81 per 100.000 populasi [10].
8.  Menurut WHO, penderita penyakit jantung di Indonesia pada tahun 2000 sampai tahun 2012 memiliki tingkat kematian di atas 400 per 100.000 [11].
9.  Berdasarkan WHO, tingkat kematian penderita sirosis hepatis di Indonesia pada tahun 2012 adalah 16,6 per 100.000 wanita dan 52,7 per 100.000 pria [12].
10. Pada tahun 2009 diketahui terdapat 30.154 total kasus penderita gastritis atau maag yang terdiri dari 12.758 pasien pria dan 17.396 pasien wanita dengan jumlah 235 pasien yang meninggal [13].

## II. RETE ALGORITHM
Menurut Ernest J. Friedman-Hill [2], rete algorithm adalah algoritma yang menggunakan rule-based system untuk membandingkan rules atau Left Hand Side (LHS) dengan facts atau Right Hand Side (RHS) untuk mendapatkan hasil yang berdasarkan rules .
Untuk membandingkan LHS dengan RHS, algoritma ini membangun suatu jaringan node . Jaringan tersebut dirancang agar tidak terlalu banyak melakukan matching process dari satu proses ke proses lain, yaitu dengan cara menyimpan facts ke dalam memori kemudian akan diproses dengan matching process . Saat akan melakukan matching process lagi, maka facts sebelumnya akan diperiksa terlebih dahulu.
Jika facts yang sebelumnya merupakan facts yang akan digunakan kembali, maka tidak perlu melakukan matching process tapi langsung memberikan hasil output . Namun jika facts yang sebelumnya bukan facts yang akan digunakan kembali, maka facts tersebut akan digantikan dengan facts baru yang akan digunakan dan melakukan matching process kembali baru menghasilkan output . Penyimpanan facts yang akan digunakan kembali dalam memori, akan menggunakan resource memori lebih banyak untuk performa yang baik.

## III. FOOD RECOMMENDATION AND BMI

## A.  Food Recommendation
Food (makanan) adalah bahan yang muncul secara natural, terbentuk dengan diproses atau dimasak, dikonsumsi oleh manusia sebagai nourishment (gizi) dan untuk kesenangan, menurut H.-D. Belitz, W. Grosch dan P. Schieberle dalam “Food Chemistry 4th Revised and Extended Edition” tahun 2009 [14].
Recommendation (rekomendasi) adalah sebuah saran atau usulan mengenai tindakan yang terbaik, terutama yang diajukan oleh lembaga yang berwenang [15].
Food Recommendation (rekomendasi makanan) adalah sebuah saran atau usulan mengenai makanan yang terbaik untuk dikonsumsi manusia sehingga mendapatkan gizi yang seimbang dan kesenangan yang maksimal.

## B.  Body Mass Index
Menurut National Health , Lung , and Blood Institute , Indeks Massa Tubuh adalah ukuran lemak tubuh berdasarkan tinggi dan berat badan yang berlaku untuk pria dan wanita dewasa [16].
(1)

## IV. METODOLOGI DAN PERANCANGAN

## A.  Metode Penelitian
Metode penelitian yang digunakan dalam penelitian ini adalah sebagai berikut:
1.  Studi Pustaka
Studi pustaka merupakan pembelajaran terhadap buku, jurnal, artikel, maupun referensi lain, yang tersedia secara online maupun offline , yang berhubungan dengan penelitian yang akan dilakukan.

## ISSN 2085-4552

## 2.  Perancangan dan Implementasi Aplikasi
Perlu diketahui dulu fungsi apa saja yang harus tersedia dalam aplikasi tersebut dan bagaimana tampilannya. Kemudian akan dipilih sebuah bahasa pemrograman yang dapat menyediakan fungsi tersebut, sehingga selanjutnya aplikasi dapat mulai dibangun.
3.  Testing dan Debugging Aplikasi
Serangkaian pengujian terhadap aplikasi agar dapat memastikan setiap fungsi yang dikembangkan dapat berfungsi dengan baik.
4.  Pengumpulan Sampel Data
Teknik pengumpulan sampel data yang digunakan adalah judgment sampling . Rocco J. Perla, EdD dan Lloyd P. Provost, MS dalam artikel yang berjudul “Judgment Sampling: A Health Care Improvement Perspective” tahun 2012 menyatakan “ A judgment sample is a type of nonprobability sample, which is selected on the basis of knowledge of a subject matter expert with knowledge of the process being studied ” [17].
5.  Analisis Sampel Data
Sampel data yang telah dikumpulkan akan diuji coba pada aplikasi untuk menentukan akurasi dan efisiensi rete algorithm .

## B.  Analisis Masalah
Penderita penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sirosis hepatis (pengerutan hati) dan maag diteliti oleh penulis karena jumlah penderita di Indonesia cukup banyak. Jika penderita penyakit tersebut tidak mendapatkan makanan yang sesuai dengan kebutuhannya, maka akan beresiko malnutrisi yang tinggi sehingga kemungkinan terjadinya kekurangan gizi akan semakin tinggi. Dengan terjadinya kekurangan gizi maka dapat mempengaruhi perkembangan penyakit serta gangguan metabolik penyakit-penyakit tersebut.

## C.  Pemecahan Masalah
Berdasarkan masalah yang ditemukan, penulis memberikan sebuah solusi berupa aplikasi dengan kemampuan sebagai berikut:
1.  Memberikan rekomendasi makanan-makanan yang memang diperlukan oleh penderita penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sirosis hepatis (pengerutan hati) dan maag.
2.  Memberikan daftar makanan-makanan yang
memang perlu dihindari oleh penderita penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sirosis hepatis (pengerutan hati) dan maag.
3.  Memberikan cara pengolahan makanan yang baik bagi tubuh penderita penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sirosis hepatis (pengerutan hati) dan maag.

## D.  Perancangan Aplikasi
Rancangan aplikasi rekomendasi makanan sehat hanya terdiri dari satu proses saja, yaitu proses pattern- matching antara rules dan facts untuk mendapatkan hasil berupa rekomendasi makanan sehat, serta daftar makanan yang perlu dihindari. Facts yang dipersiapkan untuk pattern-matching adalah usia, jenis kelamin, tinggi badan, berat badan dan penyakit. Rules yang dipersiapkan untuk pattern-matching adalah setiap aturan yang sudah dipersiapkan untuk memberikan hasil yang sudah ditentukan berdasarkan facts yang akan dimasukkan oleh pengguna. Namun untuk mempermudah pengguna dalam mencari rekomendasi makanan sehat yang sesuai maka disediakan beberapa halaman yang bertujuan agar pengguna mengetahui tentang aplikasi rekomendasi makanan sehat, mengetahui tentang penyakit yang dapat dikurangi komplikasinya dengan makanan pada halaman daftar penyakit, dan bahkan dapat mencari rekomendasi makanan sehat seperti yang terlihat pada gambar 1.
Gambar 1. Diagram Umum Aplikasi Rekomendasi Makanan Sehat

## V. IMPLEMENTASI DAN PENGUJIAN
Sistem diimplementasikan pada aplikasi web dengan menggunakan bahasa server-side scripting PHP. Setelah itu aplikasi web dimasukan ke dalam sebuah web server dan melakukan pengujian sistem.

## A.  Pengujian Aplikasi
Aplikasi rekomendasi makanan sehat dapat diakses dengan menggunakan web browser dari lokasi hosting . Pada pengujian ini, aplikasi rekomendasi makanan sehat hosting di localhost .
Ketika pengguna menggunakan aplikasi rekomendasi makanan makan pengguna perlu memasukkan data seperti jenis kelamin, usia, tinggi badan, berat badan dan penyakit seperti pada gambar 2.
Gambar 2. Halaman Rekomendasi Makanan Sehat Setelah pengguna memasukkan data-data tersebut maka pengguna akan dialihkan ke halaman lain, yaitu halaman yang telah memproses data-data tersebut menjadi hasil yang diperlukan seperti pada gambar 3.
Gambar 3. Hasil Rekomendasi Makanan Sehat

## B.  Proses Pengujian
Proses pengujian yang dilakukan adalah menguji algoritma rete dalam memberikan rekomendasi makanan sehat bagi penderita penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sinosis hepatis (pengerutan hati), maag.
Seperti yang dijelaskan sebelumnya bahwa algoritma rete merupakan pattern-matching antara rules dengan facts . Oleh sebab itu pada aplikasi ini akan melakukan pattern-matching antara rules dengan facts seperti pada gambar 4.
Gambar 4. Proses Pattern-Matching
Pada gambar 4 dijelaskan bagaimana suatu rules melakukan pattern-matching dengan facts yang ada. Kemudian jika kondisinya sesuai, maka hasil perbandingannya akan disimpan dalam memori yang nantinya akan digunakan sebagai hasil yang akan ditampilkan kembali ke pengguna.

## C.  Hasil Pengujian
Hasil dari pattern-matching antara rules dengan facts yang terjadi adalah rekomendasi makanan yang baik bagi penderita penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sirosis hepatis (pengerutan hati) dan maag seperti pada tabel 1. Namun untuk menyatakan hasil penelitian ini baik perlu uji coba dari ahli pakar langsung. Proses uji coba yang dilakukan adalah ahli pakar adalah menuliskan rekomendasi makanan dan makanan yang perlu dibatasi atau dihindari pada tabel. Setelah itu ahli pakar membandingkannya dengan hasil yang dikeluarkan dari aplikasi rekomendasi makanan sehat dan menuliskan persentase kesesuaian. Tingkat kesesuaian aplikasi rekomendasi makanan sehat adalah 85.45%. Tabel 1. Tabel Hasil Validasi Aplikasi Rekomendasi Makanan Sehat Penyakit Rekomendasi Hindari % Sukses Diabetes Karbohidrat kompleks, Sayuran, Buah, Kacang-kacangan Gula Sederhana, Karbohidrat Sederhana 60 Hipertensi Rendah Garam, Rendah Lemak Tinggi Garam, Makanan di asinkan, olahan, kalengan 90 Obesitas Karbohidrat kompleks, Sayur dan Buah, Rendah Kalori Makanan yang digoreng, Daging Berlemak, Kalengan dan olahan, Tinggi kalori 90 Asam Urat Karbohidrat, Rendah Lemak, Sayuran selain dihindari Jeroan, Seafood (kecuali ikan), kacang-kacangan dibatasi, sayuran tertentu 80 Jantung diluar yang dihindari Tinggi Lemak, Kolestrol seperti Jeroan, daging berlemak, tinggi garam 90 Sirosis Hepatis Karbohidart Sederhana, Sumber Protein Rendah Lemak, Sayuran Rendah Serat, Buah Makanan sumber lemak seperti Minyak, Minyak hewani, Santan, Dagin berlemak, Seafood (kecuali ikan), Tinggi Garam 90 Ginjal Rendah Protein, Rendah Lemak, Rendah Garam asupan tinggi protein, tinggi asam urat, tinggi garam, tinggi kalium sesuai hasil laboratorium 80 TBC Tinggi kalori dengan jumlah protein yang tinggi Makanan Berminyak, Maknaan Digoreng 90 Gastritis (Maag) Bentuk/Konsistensi Lunak, Karbohidrat Sederhana, Serat rendah sampai sedang, Bumbu tidak tajam, Sumber protein tidak berlemak Karbohidrat Kompleks, Sayur berserat tinggi, buah asam dan serat tinggi, bumbu tajam, Makanan berlemak, Minuman bersoda, the pekat, kopi, coklat 90 Kanker Paru Makanan yang dapat di cerna, Buah dan sayur, Rendah lemak, Rendah Garam Makanan Berlemak, Makanan Olahan, Makanan Kalengan 90 Diabetes + Ginjal Kombinasi Diabetes dan Ginjal Kombinasi Diabetes dan Ginjal 90

## ISSN 2085-4552

## VI. SIMPULAN
Simpulan dari penelitian yang telah dilakukan adalah algoritma rete dapat diimplementasikan dan menghasilkan rekomendasi makanan-makanan sehat bagi penderita penyakit diabetes, obesitas, asam urat, ginjal, hipertensi, tuberkulosis (tbc), kanker paru, jantung, sinosis hepatis (pengerutan hati) dan maag. Hasil rekomendasi makanan sehatpun dapat keluar lebih cepat karena data sebelumnya yang disimpan dalam memori sesuai dengan tujuan penulis dalam menggunakan algoritma rete.
Ada beberapa hal yang penulis temui dalam penelitian ini adalah seperti yang dijabarkan sebagai berikut:
1.  Jika menggunakan algoritma rete pada aplikasi yang memerlukan sumber daya yang cukup tinggi, maka memori yang akan digunakan akan sangat tinggi bahkan jika berlebihan maka memori tidak dapat di- reserve . Sewaktu penulis ingin menjabarkan lebih detil rekomendasi makanan berdasarkan sumber karbohidrat, protein, sayuran, buah, lemak dan bumbu, ketika akan melakukan reserve memori, perintah tersebut ditolak sehingga tidak dapat dilakukan. Padahal jika hal tersebut dilakukan, maka rules yang pernah dijalankan tidak perlu menjalankan hal tersebut kembali karena hasilnya sudah ada di dalam memori.
2.  Untuk menyimpan data dalam memori dengan menggunakan PHP, penulis menggunakan perintah shmop_write untuk menulis data ke memori dan menggunakan shmop_read untuk membaca dari memori. Namun, jika menggunakan XAMPP environment maka pengaturan shmop harus dibuka terlebih dahulu, jika tidak maka, tidak dapat digunakan.
Dari penelitian yang dilakukan, terdapat beberapa saran yang dapat diberikan, seperti menggunakan metode tambahan yang dapat menambah akurasi dari rete algorithm seperti collaborative  filtering , dan sebagainya.
D afTar p UsTaKa
[1]  Yunandika, Nike Putri. 2013. “Strategi Komunikasi Pemasaran Gold’s Gym Indonesia Klub Summarecon Mal Serpong Dalam Pencapaian Target Pelanggan Periode 2012”. Skripsi. Tangerang Selatan: Universitas Multimedia Nusantara.
[2]  Friedman-Hill, Ernest J. 2008. “The Rete Algorithm”. Dalam http://www.jessrules.com/docs/71/rete.html. Diakses pada tanggal 21 Juli 2014.
[3]  Shvartzshnaider, Yan, Maximilian Ott dan David Levy. 2010. “Publish/Subscribe On Top of DHT Using RETE Algorithm”. FIS’10 Proceedings of the Third future internet conference on Future internet, September 2010, pp. 20-29.
[4]  WHO. 2000. “Prevalence of diabetes in the WHO South- East Asia Region”. Dalam http://www.who.int/diabetes/facts/ world_figures/en/index5.html. Diakses pada 23 Juli 2014.
[5]  KNOEMA. 2008. “Indonesia – Adult obesity prevalence, male”. Dalam http://knoema.com/atlas/Indonesia/Adult- obesity-prevalence-male. Diakses pada 22 Juli 2014.
[6]  Pangesti, Rina Asri. 2013. “FAKTOR-FAKTOR YANG MEMPENGARUHI KEPATUHAN DIET PADA PENDERITA ASAM URAT DI PUSKESMAS MANDIRAJA 1 KABUPATEN BANJARNEGARA PROVINSI JAWA TENGAH”. Skripsi. Purwokerto: Universitas Muhammadiyah
Purwokerto.
[7]  GBD Compare. 2010. “Institute for Health Metrics and Evaluation”. Dalam http://vizhub.healthdata.org/gbd- compare/. Diakses pada 22 Juli 2014.
[8]  Rahajeng, Ekowati dan Sulistyowati Tuminah. 2009. “Prevalensi Hipertensi dan Determinannya di Indonesia”. Maj Kedokt Indon, Vol. 59, No. 12, Desember 2009.
[9] WHO. 2012. “Tuberculosis Country Profiles”. Dalam http:// www.who.int/tb/country/data/profiles/en/.  Diakses  pada  23 Juli 2014.
[10]  GLOBOCAN. 2012. “GLOBOCAN 2012: Estimated Cancer Incidence, Mortality and Prevalence Worldwide in 2012”. Dalam http://globocan.iarc.fr/Pages/Map.aspx. Diakses pada 23 Juli 2014.
[11]  WHO. 2014. “Noncommunicable Disease (NCD) Country Profiles”.  Dalam  http://www.who.int/nmh/countries/en/. Diakses pada 23 Juli 2014.
[12]  WHO. 2012. “Global Information System on Alcohol and Health (GISAH)”. Dalam http://gamapserver.who.int/gho/ interactive_charts/gisah/death_rates_cirrhosis/atlas.html. Diakses pada 24 Juli 2014.
[13] Kemenkes RI. 2009. Buku Profil Kesehatan Indonesia 2009. Ditjen Bina Yanmedik. Kemenkes RI. Jakarta.
[14]  Heimburger, Douglas C. dan Jamy D. Ard. 2006. Handbook of Clinical Nutrition Fourth Edition. United States of America: Mosby Inc.
[15] Oxford  Dictionaries.  2014.  “Definition  of  recommendation in English”. Dalam http://www.oxforddictionaries.com/ definition/english/recommendation.  Diakses  pada  24  Juli 2014.
[16]  NIH. Tanpa Tahun. “Calculate Your Body Mass Index”. Dalam http://www.nhlbi.nih.gov/health/educational/lose_wt/ BMI/bmicalc.htm. Diakses pada 24 Juli 2014.
[17]  Perla, Rocco J. dan Lloyd P. Provost. 2012. “Judgment Sampling: A Health Care Improvement Perspective”. Q Manage Healthcare, Vol. 21, No. 3, pp. 169-175.