## APLIKASI REKOMENDASI POLA MAKAN BERBASIS iOS
Afan Galih Salman; Yen Lina Prasetio; Bayu Kanigoro; Anggi
Computer Science Department, School of Computer Science, Binus University Jl K.H. Syahdan No.9 Palmerah Jakarta Barat 11480 asalman@binus.edu

## ABSTRACT
The goal for implementing this system is to help users manage and track history about their eat pattern, choose proper food for body’s need, and pick restaurants. Methodology used for this research contains three parts, which is analysis, design, and literature study. In requirement analysis, we do some interview with nutritionist and food provider, analysis iOS user, compare with same kind of application, and identify components that we need. In design method, we use Unified Modelling Language approach, ERD design, and user interface design. The result is a food planning mobile application with iOS platform. This application can help user manage and track their eat pattern, help user choose balanced food that suitable for their body, and inform user where they can get food they plan to eat.
Keywords: analysis, design, food planning, iOS

## ABSTRAK
Aplikasi pola makan berbasis mobile platform ini menjembatani user dalam berkonsultasi dengan ahli gizi mengenai bagaimana melakukan pola makan yang seimbang. Metodologi yang digunakan dalam penelitian ini terdiri dari tiga bagian, yaitu analisis, desain, dan studi pustaka. Analisis kebutuhan user dilakukan melalui kuisioner calon user, wawancara dengan ahli gizi dan rumah makan dan membandingkan dengan aplikasi sejenis, serta identifikasi persyaratan sistem. Metode perancangan menggunakan pendekatan Unified Modelling Language (UML), pembuatan Entity Relationship Diagram (ERD), dan perancangan user interface. Hasil yang dicapai adalah aplikasi pengaturan pola makan berbasis mobile dengan platform iOS. Aplikasi pengaturan pola makan yang dihasilkan dapat membantu user untuk mengatur dan melakukan tracking history pola makan, membantu user dalam melakukan pemilihan makanan seimbang yang sesuai kebutuhan tubuhnya, dan dapat memberikan informasi rumah makan dimana user bisa mendapatkan makanan sesuai rencana yang sudah dibuat.
Kata kunci: aplikasi pola makan, mobile platform, iOS

## PENDAHULUAN
Dewasa ini banyak kalangan yang tidak memiliki pengetahuan yang memadai mengenai pola makan seimbang. Dalam kondisi seperti itu, mereka mengalami kesulitan dalam mengatur pola makan sehari-harinya, baik mengenai apa yang sebaiknya dikonsumsi dan mana yang tidak, maupun hal-hal yang berkaitan dengan jumlah dan keseimbangan nutrisi yang diperoleh dari makanan yang dikonsumsi. Oleh sebab itu, dibutuhkan alat bantu untuk mengatur pola makan yang portabel, mudah dibawa dan digunakan.
Menurut Almatsier (2006, p12), untuk mencapai serta memelihara kesehatan dan status gizi optimal, tubuh perlu mengkonsumsi makanan sehari-hari yang mengandung zat-zat gizi yang seimbang, Bila tubuh dapat mencerna, mengasorbsi, dan memetabolisme zat-zat gizi tersebut secara baik, akan tercapai keadaan gizi seimbang. Tetapi dalam keadaan sakit, melalui modifikasi diet diupayakan agar gizi seimbang tetap tercapai.
Penelitian yang telah dilakukan sebelumnya yang berbasis android hanya fokus pada rekomendasi asupan makanan tanpa melakukan detail hitungan kalori yang dibutuhkan untuk setiap user dan belum dilengkapi lokasi dan menu restoran (Runo, 2011). Penelitian lainnya berbasis desktop, yaitu pengaturan pola makan hanya terbatas bagi orang berusia lanjut (Iglesias et.all, 2010).
Penelitian ini merancang suatu aplikasi mobile device berbasis iOS dengan pengaturan pola makan dan rekomendasi untuk setiap user dilengkapi dengan perhitungan jumlah kalori yang dibutuhkan berdasarkan profil user. Pemilihan platform iOS dikarenakan mudah dikembangkan dan digunakan, selain trend penggunaannya yang semakin tinggi dewasa ini.
Rencana pemecahan masalah yang diusulkan terangkum dalam fitur-fitur dengan fungsi-fungsi sebagai berikut: (1) user Profile: fitur untuk memasukan data-data dari user yang akan digunakan untuk memberikan rekomendasi makanan kepada user; (2) food recommendation : memberi rekomendasi pada user tentang makanan yang dapat dimasukan ke perencanaan pola makan; (3) food planner: berisi daftar makanan yang telah dipilih oleh user dari fitur food recommendation ; (4) map location: memungkinkan user dapat mengetahui lokasi yang menyediakan makanan tertentu di daerah sekitar user berada melalui map lokasi; (5) food history: user bisa melihat kembali data di masa lampau tentang apa saja yang telah dikonsumsi, yang disusun dalam format per tanggal, dan per waktu makan; (6) setting: pada fitur ini user dapat melakukan pengaturan profile dan blacklist makanan; (7) notification: pada fitur ini, user dapat melihat daftar notifikasi yang dipicu dari aksi yang dilakukan oleh stakeholder yang lain. Tujuan yang ingin dicapai dari penelitian ini adalah: (1) membantu user untuk mengatur dan melakukan tracking history pola makan; (2) membantu user dalam pemilihan makanan yang sebaiknya dikonsumsi sesuai kebutuhan tubuhnya; (3) memberikan informasi rumah makan dimana user bisa mendapatkan makanan sesuai rencana yang sudah dibuat. Diharapkan dengan adanya aplikasi ini, user dapat memperbaiki pola makan mereka sehingga pola makan akan lebih teratur.

## METODE
Metodologi  yang  digunakan dalam penelitian ini terdiri dari tiga bagian, yaitu analisis, desain, dan studi pustaka. Analisis kebutuhan user dilakukan melalui kuisioner calon user, wawancara dengan ahli gizi dan rumah makan dan membandingkan dengan aplikasi sejenis, serta identifikasi persyaratan sistem. Metode perancangan menggunakan pendekatan Unified Modelling Language (UML), pembuatan Entity Relationship Diagram (ERD), dan perancangan user interface.

## HASIL DAN PEMBAHASAN

## Analisis Kebutuhan User

## Angka Kecukupan Gizi yang Dianjurkan dan Angka Kebutuhan Gizi
Menurut Almatsier (2006, p14), Angka Kecukupan Gizi yang Dianjurkan (AKG) adalah tingkat konsumsi zat-zat gizi esesnsial yang dinilai cukup untuk memenuhi kebutuhan gizi hampir semua orang sehat di suatu negara. AKG untuk Indonesia didasarkan atas patokan berat badan untuk masing-masing kelompok umur, gender, dan aktifitas fisik yang sudah ditetapkan secara berkala melalui sensus penduduk. AKG digunakan sebagai standar untuk mencapai status gizi optimal bagi penduduk dalam hal penyediaan pangan secara nasional dan regional serta penilaian kecukupan gizi penduduk golongan masyarakat tertentu yang diperoleh dari konsumsi makanannya.
Angka Kebutuhan Gizi adalah banyaknya zat-zat gizi yang dibutuhkan seseorang untuk mencapai dan mempertahankan status gizi adekuat. Angka Kebutuhan Gizi berbeda dengan AKG, dimana pada AKG adalah kecukupan zat gizi untuk rata-rata penduduk.

## Cara Menentukan Kebutuhan Zat Gizi dalam Keadaan Sehat Energi
Komponen utama yang menentukan kebutuhan energi adalah Angka Metabolisme Basal (AMB) atau Basal Metabolic Rate (BMR) dan aktifitas fisik. Komponen lain adalah pengaruh termis makanan atau Spesific Dynamic Action of Food (SDA). Karena jumlahnya relative kecil, komponen SDA dapat diabaikan. AMB dipengaruhi oleh umur, gender, berat badan, dan tinggi badan. Untuk menentukan AMB ada beberapa cara, antara lain:
(1) menggunakan Rumus Harris Benedict (1919)
Laki-laki = 66 + (13,7x BB) + (5 x TB) - (6,8 X U) Perempuan = 655 + (9,6 x BB) + (1,8 X TB) ± (4,7 X U) Di mana: BB = berat barat dalam kg TB = tinggi badan dalam cm U = umur dalam tahun
(2) cara FAO/WHO/UNU
Cara ini memperhatikan umur, gender, dan berat badan (Tabel 1).

## Tabel 1.
Rumus FAO/WHO/UNU untuk menentukan AMB
Kelompok Umur AMB (kkal/hari) Laki-laki Perempuan 0 – 3 3 – 10 10 – 18 18 – 30 30 – 60 ≥ 60 60,9 B*) – 54 22,7 B + 495 17,5 B + 651 15,3 B + 679 11,6 B + 879 13,5 B + 487 61,0 B – 51 22,5 B + 499 12,2 B + 749 14,7 B + 496 8,7 B + 826 10,5 B + 596
Sumber: FAO/WHO/UNU (1985) *) Berat Badan
Cara menentukan kebutuhan energi berdasarkan aktifitas fisik. Aktifitas fisik dapat dibagi menjadi 4 golongan, yaitu sangat ringan, ringan, sedang, dan berat. Kebutuhan energi untuk berbagai aktifitas fisik dapat dinyatakan dengan kelipatan AMB yang ditunjukan sesuai Tabel 2 berikut.

## Tabel 2
Cara Menaksir Kebutuhan Energi Menurut Aktifitas dengan Menggunakan  Kelipatan AMB
Aktifitas Jenis Kelamin Laki-laki Perempuan Sangat Ringan Ringan Sedang Berat 1,30 1,65 1,76 2,10 1,30 1,55 1,70 2,00

## Protein, Lemak, dan Karbohidrat
Kebutuhan protein tubuh yaitu 10-15 % dari kebutuhan energi total. Bila dalam kebutuhan energi dalam sehari adalah 2450 kkal, energi yang berasal dari protein hendaknya sebesar 245-368 kkal atau 61-92 gram protein. Sementara kebutuhan lemak tubuh adalah 10-25 % dari kebutuhan energi total. Bila dalam  kebutuhan energi dalam sehari adalah 2450 kkal, energi yang berasal dari lemak hendaknya sebesar 245-613 kkal 27-68 gr lemak. Sedangkan kebutuhan karbohidrat tubuh yaitu 60-75% dari kebutuhan energi total, atau sisa dari kebutuhan energi yang telah dikurangi dengan energi yang berasal dari protein dan lemak. Bila kebutuhan energi dalam sehari adalah 2450 kkal, energi yang berasal dari karbohidrat hendaknya sebesar 1470 – 1838 kkal atau 368-460 gram karbohidrat.

## Vitamin dan Mineral
Kebutuhan vitamin dan mineral dapat diambil dari Angka Kecukupan Gizi yang dianjurkan karena angka-angka tersebut diperhitungkan untuk sebagian besar penduduk. Tetapi karena sebagian besar vitamin dan mineral rusak selama penyimpanan dan pengolahan makanan, sebaiknya kebutuhan ditetapkan lebih besar daripada AKG.

## Faktor Berat Badan
Kebutuhan energi pada AMB diperhitungkan menurut berat badan normal atau ideal. Cara menetapkan berat badan ideal yang sederhana dapat menggunakan rumus Brocca, yaitu:
Berat Badan Ideal (kg) = (Tinggi Badan dalam cm - 100) – 10%
Berat badan ideal tergantung pada besar kerangka dan komposisi tubuh, yaitu otot dan lemak. Seseorang yang mempunyai kerangka badan atau komposisi otot yang lebih besar mempunyai berat badan ideal yang lebih besar. Begitu pula sebaliknya. Oleh sebab itu, pada rumus berat badan diatas diberi kelonggaran 10%. Cara lain untuk menilai berat badan adalah dengan menggunakan Indeks Massa Tubuh.

## Indeks Masa Tubuh
Index Masa Tubuh (IMT) adalah sebuah cara untuk memperkirakan jumlah lemak dalam tubuh. Cara perhitungannya adalah dengan membagi berat tubuh (Kg) dengan tinggi badan (m 2 ) (Better Health Channel, 2010).
Pada akhirnya diambil kesimpulan, batas ambang IMT untuk Indonesia adalah sebagai berikut (Tabel 3):

## Tabel 3
Batas Ambang IMT Seseorang
Kategori IMT Kurus Kekurangan berat badan tingkat berat < 17,0 Kekurangan berat badan tingkat ringan 17,0 – 18,4 Normal 18,5 – 25,0 Gemuk Kelebihan berat badan tingkat ringan 25,1 – 27,0 Kelebihan berat badan tingkat berat > 27,0

## Perancangan
Berikut beberapa rancangan diagram yang dibuat (Gambar 1 – 3).

## Arsitektur Client - Server pada Front End
Pada perangkat iOS sebagai Front End sistem, hubungan client-server ditunjukan seperti Gambar 4. Pada saat user iOS sebagai client mengirimkan permintaan, server akan memproses permintaan tersebut dan mengirimkan hasilnya kepada client. Setelah itu user dapat melihat hasil dari permintaannya tersebut dari perangkat iOS .

## Arsitektur Client - Server pada Back End
Semua aktifitas yang terjadi pada back end membutuhkan adanya koneksi yang menghubungkan antara client dengan server . User Back End pada sistem ini adalah administrator , food provider, dan nutritionist. Prinsip kerjanya tetap sama. Pada saat user back end mengirimkan permintaan, server akan memproses permintaan tersebut dan mengirimkan hasilnya. Hasil dari permintaan tersebut akan dilihat user pada halaman web back end. Berikut arsitekturnya (Gambar 5).

## Implementasi dan Evaluasi

## Petunjuk Pengoperasian Sistem pada Front End
Pada saat masuk aplikasi, user akan langsung dibawa ke halaman pembuka aplikasi. Pada halaman ini, user bisa memilih untuk melihat tutorial dulu atau langsung masuk ke halaman utama dari aplikasi (Gambar 6). Halaman menu utama yang akan user masuki setelah tutorial adalah menu profile (Gambar 7) . Di menu ini user harus mengisi data-data yang diminta, antara lain nama, alamat, nomor telepon, umur, jenis kelamin, tinggi badan (dalam cm), berat badan (dalam kg), dan tingkat aktifitasnya. Data-data yang diisi dalam profile ini yang akan digunakan untuk menghitung jumlah kebutuhan kalori dan gizi yang dibutuhkan user. Pada menu ini terdapat fitur info yang dapat membantu user mengetahui dirinya termasuk dalam kategori tingkat aktifitas yang mana (Gambar 8).
Gambar 1 . Rancangan use case diagram.
Gambar 2. Class diagram aplikasi front end.
Gambar 3 . Class diagram aplikasi back end.
Gambar 4 . Arsitektur client - server pada front end.
Gambar 5. Arsitektur client - server pada back end.
Gambar 6 . Halaman pembuka aplikasi pada user iPhone. Gambar 7 . Halaman User Profiling untuk user
iPhone.
Gambar 8 . Halaman Activity Info Profile untuk user iPhone.
Halaman settings terdiri dari lima sub menu , antara lain edit profile, edit blacklist, synchronize, dan tutorial. Sub menu profile digunakan untuk melihat profile yang kita telah kita buat. Sub menu blacklist untuk melihat daftar komposisi makanan yang kita tidak boleh konsumsi atau pantang.  Sementara synchronize digunakan untuk menarik data pada web service. Tutorial digunakan untuk kembali membuka halaman tutorial . Dan Notification untuk membuka daftar notifikasi.
Pada menu food recommendation (Gambar 9) , akan muncul daftar makanan yang direkomendasikan sistem ke user. Menu makanan yang tersedia berasal dari rumah makan yang mendaftarkan menunya ke sistem. Rekomendasi makanan yang muncul berdasarkan profile user dan blacklist. Informasi yang ditampilkan di menu makan antara lain jumlah kalori, lemak, karbohidrat, dan protein yang terkandung pada makanan tersebut. Di bagian atas dari menu ini dapat dilihat jumlah kebutuhan kalori perwaktu makan, kebutuhan kalori perhari, kebutuhan protein, dan kebutuhan lemak dari user . Rekomendasi makanan dibagi menjadi 5 waktu makan, sarapan, snack, makan siang, snack,
dan makan malam. User dapat memilih daftar makanan yang ada di rekomendasi makanan per waktu makan dengan menekan icon plan . Untuk lebih jelasnya bisa dilihat di Gambar 10.
Gambar 9 . Halaman Food Recommendation untuk user iPhone. Gambar 10 . Halaman Food Plan untuk user iPhone.
Pada menu food plan, user dapat melihat menu makanan yang sudah dipilihnya pada menu food recommendation. Dengan melakukan check list menu makanan pada food plan, menu makanan tersebut akan masuk food realization yang menyatakan bahwa menu makanan tersebut sudah dikonsumsi user. Dengan menggunakan food realization, maka jumlah kalori, lemak, dan protein yang tercapai akan bertambah sesuai jumlah yang ada di makanan tersebut. Menu makanan sudah direalisasi juga akan disimpan sehingga kedepannya user dapat melakukan tracking melalui menu history.
Setelah memilih rekomendasi makanan, user juga dapat melihat posisi rumah makan yang menyediakan makanan pada food plan melalui menu map yang terintegrasi dengan google map. Menu map ini akan menampilkan posisi rumah makan sesuai waktu makan yang dipilih user. Dari menu map ini juga user dapat melihat nama rumah makan, alamat, dan nomor teleponnya.
Pada menu history, user dapat melihat semua makanan yang sudah dikonsumsinya dalam jangka waktu 1 bulan terakhir. Menu makanan yang masuk kedalam history adalah menu makanan yang sudah dilakukan food realization pada menu food plan. Untuk melihat history, user masuk ke menu history dan memilih hari yang ingin dilihat pola makannya.

## Petunjuk Pengoperasian Sistem pada Back End
Pada saat pertama kali user menjalankan aplikasi back end melalui web browser , user akan langsung masuk ke halaman login (Gambar 11). Di halaman ini, user bisa masuk ke halaman user register untuk mendaftar sebagai food provider atau nutritionist dan halaman forgot password untuk user yang lupa password nya ketika melakukan login (Gambar 12) . Untuk melakukan login, user harus memasukan UserName, password, dan memilih roles nya dalam sistem, baik sebagai administrator atau food provider atau nutritionist.
Gambar 11 . Halaman Login.
Gambar 12 . Halaman User Registration untuk Food Provider.
Untuk mendaftar sebagai nutritionist (Gambar 13) , user cukup mengubah dropdown list Register dari food provider ke nutritionist. Untuk mendaftar sebagai food provider¸user harus mengisi field-field yang ada dengan benar, baik di bagian User Registration, maupun bagian Restaurant Information. Sementara untuk mendaftar sebagai nutritionist, user juga perlu mengisi field-field yang ada dengan benar. Setelah itu user melakukan submit dan menunggu administrator melakukan user approval agar user terdaftar di dalam sistem ini .
Untuk user dengan roles sebagai Food Provider, saat selesai login dia akan langsung di- redirect ke halaman Profile (Gambar 14) yang berisi informasi-informasi tentang dirinya dan restoran yang ia daftarkan. Informasi-informasi itu antara lain seperti username, real name, address, email, phone, restaurant name, restaurant phone, restaurant address, dan restaurant email. Food Provider dapat mengubah isi profile dengan menekan button edit yang ada di bagian bawah. Di halaman ini, Food Provider dapat memperbaharui data-data profile . Pertama-tama, dia harus mengisi data-data mana saja yang ingin dia perbaharui. Setelah selesai, dia tinggal menekan button submit yang ada di paling bawah untuk menyelesaikan pembaharuan pada profile nya. Setelah selesai, Food Provider akan kembali ke halaman profile.
Untuk user dengan roles sebagai Nutritionist, saat selesai login dia akan langsung di- redirect ke halaman Profile yang berisi informasi-informasi tentang Nutritionist itu sendiri (Gambar 15). Informasi-informasi itu antara lain seperti username, real name, address, email, dan phone number. Nutritionist dapat mengubah isi dari profile dengan menekan button edit . Jika menekan button edit, maka Nutritionist akan berpindah ke halaman edit profile. Di halaman ini, Nutritionist dapat memperbaharui data-data pada profile . Pertama-tama, dia harus mengisi data-data mana saja yang ingin dia perbaharui. Setelah selesai, dia tinggal menekan button submit yang ada di paling bawah untuk menyelesaikan pembaharuan pada profile nya.
Gambar 13 . Halaman User Registration untuk Nutritionist.
Gambar 14 . Halaman Profile pada Food Provider.
Nutritionist juga dapat memberikan penilaian gizi pada menu makanan yang dipilih pada halaman Unscored Menu. Penilaian yang diberikan berdasarkan jenis bahan yang digunakan dan jumlahnya. Hal-hal yang dinilai antara lain jumlah energinya, karbohidrat, protein, kalsium, lemak yang terkandung dalam bahan tersebut. Besarnya angka penilaian yang diberikan adalah minimal nol.
Halaman Notification (Gambar 16) pada Nutritionist akan menampilkan daftar notifikasi. Notifikasi yang muncul memberitahukan jika ada user yang sudah di-approve oleh Administrator, baik user dari food provider maupun nutritionist dan ada menu baru yang ditambahkan oleh Food Provider. Dengan adanya notifikasi, diharapkan dapat memudahkan Nutritionist jika harus memberi penilaian gizi pada menu baru yang terdaftar ke dalam sistem.
Gambar 15 . Halaman Update Profile pada Nutritionist.
Gambar 16 . Halaman Notification untuk Nutritionist.

## PENUTUP
Aplikas pola makan berbasis iOS dapat membantu user untuk mengatur, melakukan tracking history pola makan, melakukan pemilihan makanan seimbang yang sesuai kebutuhan tubuhnya. Aplikasi ini juga memberikan informasi posisi rumah makan dimana user bisa mendapatkan makanan sesuai rencana yang sudah dibuat.

## DAFTAR PUSTAKA
Iglesias et. al. (2010). Food manager: A cooking, eating and appliance controlling support system for the elderly. PETRA’10 , June 23 – 25, 2010, Samos, Greece.
Runo. (2011) .FoodDroid: A Food Recommendation App for University Canteens . Skripsi tidak diterbitkan. Computer Engineering and Networks Laboratory, ETH Zurich, Zürich, Swiss.