1. Pendahuluan Perencanaan menu makanan merupakan permasalahan yang penting bagi mereka yang berkecimpung dalam dunia kuliner seperti ibu rumah tangga, pecinta makanan, orang yang memiliki pantangan makanan karena penyakit maupun manager restoran pada sebuah hotel. Merencanakan menu makanan dengan baik akan menghemat waktu belanja, menghemat uang yang dikeluarkan untuk membeli bahan yang tidak perlu, dan juga memudahkan dalam mengontrol nutrisi yang disajikan per harinya dengan melihat bahan-bahan yang digunakan [1]. Perencanaan menu makanan dapat dilakukan secara konvensional dengan mencatat menu yang akan disajikan per harinya. Akan tetapi, perencanaan menu makan secara konvensional memiliki keterbatasan, antara lain jumlah menu yang direncanakan sangat terbatas akibat keterbatasan daftar menu makanan. Hal ini dapat menimbulkan beberapa kendala, misalnya: munculnya kebosanan akibat variasi menu makanan yang sangat terbatas serta sulitnya menyeimbangkan nutrisi makanan dalam perencanaan menu makanan. Keterbatasan perencanaan menu makanan secara konvensional dapat diatasi dengan beberapa cara misalnya dengan memperbanyak koleksi data resep makanan serta membuat metode perekomendasian menu makanan secara otomatis. Kemajuan teknologi informasi saat ini memungkinkan kedua hal tersebut untuk dilakukan. Kumpulan menu makanan dapat dengan mudah ditemukan di internet, misalnya dengan memanfaatkan web service yang disediakan oleh Yummly. Yummly merupakan search engine yang khusus digunakan untuk pencarian resep makanan dari seluruh dunia. Yummly dibuat dengan tujuan menyediakan sebuah sarana untuk penyuka makanan untuk dapat melakukan apa yang mereka suka β memasak, makan, dan berbagi. Pada awal tahun 2013 Yummly membuka Application Programming Interface (API) pencariannya untuk dapat digunakan developer yang ingin mengembangkan aplikasi dengan memanfaatkan search engine Yummly [2]. Pada penelitian ini Yummly dipilih sebagai penyedia data utama resep makanan dikarenakan fitur search engine yang dimilikinya sehingga data resep makanan menjadi sangat banyak dan akan terus bertambah secara otomatis.Sehingga diharapkan resep makanan yang ditampilkan dapat bervariasi. Untuk memberikan rekomendasi terhadap hasil pencarian resep makanan yang akan dipilih oleh pengguna, diperlukan suatu metode penalaran, misalnya logika fuzzy. Berbeda dengan logika klasik yang hanya memiliki dua nilai, benar dan salah, yang dipakai untuk menangani informasi yang tidak lengkap, logika fuzzy mengijinkan adanya nilai diantara benar dan salah. Pada logika klasik informasi dilambangkan kebenarannya dengan menggunakan simbol 0 dan 1, namun logika fuzzy melambangkan informasi dengan interval antara 0 sampai dengan 1. Dengan demikian logika fuzzy bisa disebut juga sebagai perluasan dari logika klasik [3]. Logika fuzzy sering dimanfaatkan untuk sistem pendukung keputusan atau sistem rekomendasi. Logika fuzzy sudah diterapkan dalam berbagai hal, mulai dari bidang matematika itu sendiri, software, sampai pada hardware. Dalam bidang software,
2
salah satu penerapannya adalah pembuatan Decision Support System (Sistem Pendukung Keputusan). Decision Support System (DSS) berfungsi untuk membantu pengambil keputusan memanfaatkan data dan model untuk menentukan keputusan [4]. Dalam penelitian ini, logika fuzzy dipakai untuk membantu memberikan rekomendasi resep makanan berdasarkan kriteria yang telah ditetapkan sebelumnya dengan memanfaatkan web service Yummly sebagai penyedia data utamanya. Aplikasi perencanaan menu makanan yang dibangun dalam penelitian ini memanfaatkan teknologi mobile, supaya pengguna lebih mudah memanfaatkannya. Teknologi mobile merupakan salah satu teknologi yang perkembangannya sangat cepat pada beberapa tahun ini. Diprediksikan, tren ini akan terus meningkat penggunaannya untuk beberapa tahun ke depan [5]. Teknologi yang awalnya banyak digunakan sebagai media komunikasi telah menjelma menjadi teknologi yang dapat digunakan dalam berbagai bidang mulai dari entertainment sampai dengan medis ataupun pada bidang-bidang lain. Bahkan aktivitas sehari-hari yang sederhana yang selama ini dilakukan secara manual pun sekarang sudah banyak beralih dilakukan dengan menggunakan teknologi mobile. Berbagai perusahaan besar pun mulai berlomba-lomba untuk masuk dalam industri mobile ini dengan membangun sistem operasi untuk perangkat mobile, masing-masing dengan kelebihan dan fitur yang berbeda. Seperti Android yang dimiliki Google, iOS yang dimiliki Apple, dan Blackberry. Dengan keberagaman sistem operasi ini tantangan bagi developer adalah membangun aplikasi-aplikasi yang dapat digunakan dan berjalan pada berbagai perangkat mobile dengan sistem operasi yang berbeda. Tantangan ini seakan terjawab dengan munculnya berbagai metode dan framework yang memungkinkan pengembang untuk membangun sebuah aplikasi yang dapat digunakan lintas sistem operasi. Salah satu framework yang menyediakan fungsi tersebut adalah Phonegap. Phonegap merupakan framework yang memanfaatkan fitur Web View yang dipunyai oleh sistem operasi mobile. Dengan Web View pengembang dapat membangun aplikasi menggunakan HTML, CSS, dan Javascript [6]. Selain itu Phonegap juga menyediakan Application Programming Interface (API) untuk mengakses fitur-fitur khusus atau fungsi hardware yang dipunyai perangkat seperti kamera dan sensor gerak. Sehingga dalam penelitian ini akan dihasilkan aplikasi mobile yang membantu untuk mempermudah aktivitas penyusunan menu makanan yang di dalamnya terdapat fitur rekomendasi yang dibantu dengan menggunakan logika fuzzy. 2. Kajian Pustaka Menu berarti hidangan makanan yang disajikan dalam suatu acara makan, baik pagi, siang, maupun malam.[7] Merencanakan menu makanan merupakan cara yang tepat dan baik untuk menjaga nutrisi makanan yang akan dikonsumsi
3
sesuai dengan kebutuhan orang yang akan mengkonsumsi makanan tersebut.[8] Terutama bagi orang yang sedang mengikuti diet tertentu atau orang dengan kebutuhan khusus seperti orang dengan penyakit diabetes. Bahkan bagi orang normal pun, merencanakan menu makanan tetap mempunyai banyak keuntungan, salah satunya adalah penghematan dari sisi biaya, selain nutrisi tetap bisa dikontrol tentunya. Dengan perencanaan menu makanan dapat menghindarkan dari pembelian bahan makanan yang tidak diperlukan sehingga pengeluaran bisa dibatasi. Perencanaan menu makanan yang dilakukan secara rutin juga menghindarkan dari kebosanan terhadap suatu jenis makanan tertentu yang dapat timbul jika makanan tersebut terlalu sering dikonsumsi. Logika Fuzzy diperkenalkan pertama kali oleh Prof. Lotfi A. Zadeh pada tahun 1965 pada artikel ilmiahnya yang berjudul Fuzzy Sets (Himpunan Kabur). Himpunan kabur yang dijelaskan oleh Prof. Zadeh memperluas konsep himpunan klasik, dalam artian bahwa himpunan klasik merupakan kejadian khusus dalam himpunan kabur itu [9]. Dalam teori himpunan klasik, himpunan didefinisikan sebagai koleksi obyek-obyek yang terdefinisi secara tegas. Sedangkan pada himpunan kabur yang diperkenalkan oleh Prof. Zadeh, mendefinisikan himpunan kabur dengan menggunakan membership function (fungsi keanggotaan), yang nilainya berada dalam selang tertutup [0,1]. Jadi anggota dari himpunan kabur merupakan sesuatu yang nilainya berderajat. Logika Fuzzy banyak digunakan untuk proses penalaran (reasoning) dalam memecahkan permasalahan. Salah satu model inferensi yang banyak dipakai adalah model Mamdani. Model inferensi Mamdani diperkenalkan oleh Ebrahim Mamdani pada tahun 1975 [10]. Output dari model inferensi Mamdani ini dihasilkan melalui empat langkah yaitu pembentukan himpunan fuzzy, aplikasi fungsi implikasi, komposisi aturan, dan penegasan (defuzzy). Karena sesuai untuk proses penalaran, logika Fuzzy banyak digunakan dalam DSS (Decision Support System). DSS adalah sebuah sistem yang membantu pengambil keputusan memanfaatkan data dan model untuk menentukan keputusan. Keuntungan menggunakan DSS antara lain : mampu mendukung pencarian solusi dari masalah yang kompleks, respon cepat pada situasi yang tak diharapkan dalam kondisi yang berubah-ubah, meningkatkan kontrol dan manajemen kinerja, keputusannya lebih tepat, dan meningkatkan produktivitas analisis [11]. DSS juga mempunyai beberapa komponen utama yaitu : Data Management, Model Management, Communication, Knowledge Management. Referensi tentang DSS untuk perencanaan menu makanan tidak terlalu banyak. Petot dkk, [12] membuat sistem cerdas untuk perencanaan menu makanan berbasis komputer. Balintfy [13], membuat perencanaan menu makanan berbasis komputer. Dalam penelitian tersebut, pengguna aplikasi tidak diijinkan untuk menentukan apakah rekomendasi tersebut sesuai dengan keinginan serta menggunakan algoritma yang dibangun sendiri oleh penulisnya. Pada penelitian ini dibuat sistem rekomendasi menu makanan menggunakan logika fuzzy. Pada
4
sistem ini, pengguna aplikasi dapat menentukan rekomendasi mana yang akan dipilih, sedangkan data menu makanan diambil dari Yummly sehingga jumlahnya sangat banyak dan berubah secara dinamis. Penggunaan Framework Phonegap memungkinkan aplikasi mobile diimplementasikan pada berbagai sistem operasi. Framework Phonegap memungkinkan developer membangun sebuah aplikasi native dengan menggunakan teknologi web seperti HTML, CSS, dan Javascript. Dengan Phonegap developer tidak harus mempelajari bahasa spesifik untuk platform tertentu. Salah satu penelitian yang memanfaatkan Framework Phonegap adalah penelitian tentang mobile commerce pada perangkat Blackberry [14]. Penelitian tersebut memfokuskan pembuatan aplikasi berbasis Phonegap pada perangkat Blackberry untuk memberikan solusi akan kebutuhan mobile commerce yang sebelumnya hanya dilakukan melalui Blackberry Messenger dengan fitur yang terbatas. Pada penelitian tersebut Phonegap hanya diujikan pada satu sistem operasi saja, sedangkan pada penelitian ini aplikasi akan diujikan pada dua sistem operasi yaitu Android dan Blackberry.
3.
Metode Penelitian Terdapat tahapan-tahapan yang dilakukan dalam penelitian ini, yaitu :
1.
Identifikasi
Pada tahap ini dilakukan identifikasi terhadap permasalahan yang muncul. Setelah masalah dirumuskan, kemudian disusun langkah-langkah yang dilakukan untuk menyelesaikan masalah tersebut, dalam hal ini adalah pembuatan sebuah sistem yang akan memudahkan dalam pencarian resep makanan. 2.
Perancangan Sistem
Sistem yang akan dibuat dirancang menggunakan metode spiral. Metode spiral mengelompokkan proses iterasi yang terjadi pada model Prototyping dengan aspek-aspek dari model Linear Sekuensial yang terkontrol dan sistematis [15]. Terdapat beberapa langkah dalam metode spiral ini, yaitu : Customer Communication, Planning, Risk Analysis, Engineering, Construction and Release, Customer Communication. Sesuai dengan metode spiral yang digunakan dalam penelitian ini, maka langkah pertama yang dikerjakan adalah Customer Communication. Secara praktis langkah ini dapat dikerjakan dengan menganalisa masalah yang akan diberikan solusinya. Dalam hal ini masalah tersebut adalah bagaimana menerapkan logika fuzzy ke dalam aplikasi yang dapat membuat user lebih mudah dalam merencanakan menu makanan harian.
5
Langkah berikutnya adalah perancangan kebutuhan sistem, baik itu kebutuhan software dan hardware, maupun kebutuhan variabel fuzzy, fungsi keanggotaan, dan aturan fuzzy. Aplikasi ini akan dibangun di atas framework Phonegap yang nantinya akan diuji menggunakan perangkat berbasis Android dan Blackberry. Phonegap digunakan untuk membangun user interface dan proses yang berjalan pada perangkat mobile memanfaatkan HTML, CSS, dan Javascript. Dengan menggunakan Phonegap, perancangan user interface dan proses aplikasi yang berjalan pada sisi user hanya dilakukan satu kali untuk diterapkan pada beberapa perangkat yang berbeda sistem operasi.Sedangkan untuk komputasi fuzzy dan penyimpanan data dilakukan oleh server aplikasi yang diakses menggunakan web service. Dengan arsitektur tersebut, proses yang terjadi pada sisi user menjadi cukup minimal sehingga diharapkan aplikasi dapat berjalan dengan lebih ringan. Gambar 1 menjelaskan rancangan arsitektur aplikasi.
Presentation Layer
Business Logic
Yummly Web Service
Mobile App dengan Phonegap
Web Service Interface
Server Aplikasi
Mencari
Komputasi Fuzzy
Record User History
Data Interface
Data
Database
Gambar 1. Arsitektur Aplikasi
Untuk melakukan komputasi fuzzy, ditetapkan beberapa variabel input yaitu : variabel rasa manis, variabel rasa asam, variabel rasa asin, dan tingkat popularitas. Sedangkan untuk output ditetapkan satu variabel yaitu variabel tingkat keterpilihan. Variabel input rasa manis, rasa asam, dan rasa asin dipilih dikarenakan rasa-rasa tersebut merupakan rasa dasar dari makanan yang dapat menjadi pertimbangan user dalam menentukan pilihan resep. Sedangkan variabel tingkat popularitas dipilih supaya user dapat mengikuti tren yang ada terhadap suatu makanan. Variabel rasa asam, rasa asin, dan rasa manis direpresentasikan melalui kurva pada Gambar 2.
6
1 0,9 0,8 0,7 0,6 ΞΌ[x] 0,5 0,4 0,3 0,2 0,1 0
Rendah Sedang Tinggi
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
Rasa Gambar 2. Kurva Variabel Rasa Manis, Asam, dan Asin
Fungsi keanggotaan untuk variabel rasa manis, asam, dan asin adalah sebagai berikut : ππ
πππππ π₯ =
πππππππ π₯ =
πππππππ π₯ =
1; π₯ β€ 0,3 0,5 β π₯ (0,5 β 0,3) ;0,3 β€ π₯ β€ 0,5 π₯ β₯ 0,5 0;
0; π₯ β€ 0,3 ππ‘ππ’π₯ β₯ 0,7 π₯ β 0,3 (0,5 β 0,5) ; 0,3 β€ π₯ β€ 0,5 0,7 β π₯ (0,7 β 0,5) ; 0,5 β€ π₯ β€ 0,7
0; π₯ β€ 0,5 π₯ β 0,5 (0,7 β 0,5) ;0,5 β€ π₯ β€ 0,7 π₯ β₯ 0,7 1;
Sedangkan representasi dari variabel input tingkat popularitas dan variabel output tingkat keterpilihan dapat dilihat pada Gambar 3.
7
1 0,9 0,8 0,7 0,6 ΞΌ[x] 0,5 0,4 0,3 0,2 0,1 0
Rendah Sedang Tinggi
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
Tingkat Popularitas / Keterpilihan
Gambar 3. Kurva Variabel Input Tingkat Popularitas dan Variabel Output Tingkat Keterpilihan
Fungsi keanggotaan untuk variabel input tingkat popularitas dan variabel output tingkat keterpilihan adalah sebagai berikut : ππ
πππππ π₯ =
πππππππ π₯ =
πππππππ π₯ =
1; π₯ β€ 0,2 0,4 β π₯ (0,4 β 0,2) ;0,2 β€ π₯ β€ 0,4 π₯ β₯ 0,4 0;
0; π₯ β€ 0,2 ππ‘ππ’π₯ β₯ 0,8 π₯ β 0,2 0,4 β 0,2 ; 0,2 β€ π₯ β€ 0,4 1; 0,4 β€ π₯ β€ 0,6 0,8 β π₯ 0,8 β 0,6 ; 0,8 β€ π₯ β€ 0,6
0; π₯ β€ 0,6 π₯ β 0,6 (0,8 β 0,6) ;0,6 β€ π₯ β€ 0,8 π₯ β₯ 0,8 1;
Himpunan keanggotaan fuzzy ditetapkan hanya menjadi tiga bagian yaitu rendah, sedang, dan tinggi karena dirasa cukup mewakili untuk pengkategorian rasa, tingkat popularitas, maupun tingkat keterpilihan. Bentuk simetri dari kurva yang dibuat juga berdasar logika umum yang banyak digunakan, di mana nilai sedang diperkirakan berada di tengah rentang dari sebuah nilai. Ini dikarenakan penelitian ini tidak bertujuan untuk melakukan pengujian untuk berbagai bentuk fungsi keanggotaan. Komputasi fuzzy dilakukan dengan metode Mamdani. Dalam metode Mamdani untuk mendapatkan output diperlukan 4 tahapan yaitu : pembentukan
8
himpunan fuzzy, aplikasi fungsi implikasi, komposisi aturan, dan penegasan (defuzzy). Untuk menjalankan tahap aplikasi fungsi implikasi diperlukan aturan-aturan yang telah didefinisikan sebelumnya berdasar variabel input dan output yang sudah ada. Dalam kasus ini terdapat 81 aturan yang didefinisikan. Tabel 1 menunjukkan contoh aturan yang dibuat.
Manis Tinggi Tinggi Tinggi Tinggi Tinggi
Asin Tinggi Tinggi Tinggi Tinggi Tinggi
Asam Tinggi Tinggi Tinggi Sedang Sedang
Populer Tinggi Sedang Rendah Tinggi Sedang
Dipilih Sedang Sedang Rendah Sedang Sedang
Tabel 1. Contoh Aturan Fuzzy
Pada langkah komposisi aturan, penelitian ini akan menggunakan metode Max. Metode Max secara umum dapat dituliskan sebagai berikut : (ππ π π₯π , πππ π₯π ) ππ π π₯π = maxβ‘ dengan : ππ π π₯π = πππππ ππππππππ‘πππ π πππ’π π ππ’π§π§π¦ π πππππ ππ‘π’πππ ππ β π πππ π₯π = πππππ ππππππππ‘πππ ππππ πππ’ππ ππ’π§π§π¦ ππ‘π’πππ ππ β π Sedangkan pada tahap defuzzy digunakan metode Centroid. Pada metode ini, solusi crisp diperoleh dengan cara mengambil titik pusat daerah fuzzy. Metode ini secara umum dapat dituliskan sebagai berikut : π§β=
π§π π§ ππ§
π§ π§
π§β=
π’ππ‘π’π π£πππππππ ππππ‘πππ’
π π§ ππ§
π π =1 π§π π(π§π ) π π =1 π(π§π )
π’ππ‘π’π π£πππππππ πππ ππππ‘
Logika fuzzy dengan metode mamdani secara umum dapat diilustrasikan seperti pada Gambar 4. Masing-masing input dan output dipetakan ke dalam fungsi keanggotaan. Kemudian tiap aturan yang digunakan diproses menggunakan metode min sehingga menghasilkan suatu daerah output (kotak atas). Daerah output dari tiap aturan digabungkan dengan metode max untuk membentuk suatu
9
gabungan daerah output yang baru (kanan bawah). Gabungan daerah output inilah yang kemudian akan diproses pada tahap defuzzy.
Gambar 4. Ilustrasi Logika Fuzzy Metode Mamdani
Pemodelan aplikasi pada penelitian ini menggunakan UML (Unified Modelling Language) yang merupakan bahasa standard untuk memodelkan sebuah software yang akan dibuat. UML terdiri dari notasi-notasi grafis yang menghasilkan model secara visual. Hasil perancangan aplikasi menggunakan UML dapat terlihat sebagai berikut : Use Case merupakan representasi dari interaksi antara user dan sistem. Sebuah Use Case dapat menggambarkan berbagai macam tipe user dan bermacam cara mereka berinteraksi dengan sistem. Dalam Use Case ini, user diasumsikan sudah mendaftarkan diri sehingga dapat mengakses berbagai fitur yang disediakan aplikasi. Use Case untuk aplikasi ini dapat terlihat pada Gambar 5.
Sediakan Data Resep
Cari Resep
Yummly
<<extend>>
<<extend>>
<<extend>> <<extend>>
Lihat Resep <<extend>> Ambil Data Resep <<extend>>
User <
> Lihat Rencana Menu Harian
Kelola Rencana Menu Harian <<extend>> Komputasi Fuzzy <<extend>>
Kelola Profil Server App <<extend>>
<<extend>>
Kelola Database
Gambar 5. Perancangan Use Case
10
Activity Diagram menggambarkan alur aktifitas dan aksi yang terjadi. Dalam UML, Activity Diagram dapat digunakan untuk menggambarkan alur dalam aplikasi maupun alur yang terjadi secara organisasi (dalam dunia nyata). Activity Diagram untuk proses pencarian dapat dilihat dalam Gambar 6. Dari diagram tersebut dapat terlihat bahwa user memasukkan kriteria pencarian terlebih dahulu untuk kemudian aplikasi mengirimkan kriteria pencarian ke server aplikasi untuk kemudian server aplikasi me-request kriteria pencarian tersebut ke Web Service Yummly. Server aplikasi mengambil data-data yang diperlukan untuk proses fuzzy yang dilanjutkan dengan komputasi fuzzy sehingga menghasilkan urutan hasil pencarian berdasar tingkat keterpilihan yang lebih tinggi terlebih dulu. Hasil pencarian yang sudah melewati komputasi fuzzy dikirimkan kembali kepada aplikasi untuk ditampilkan. User
Start
App
Serv er App
Web Serv ice Yummly
Input Kriteria Pencarian
Terima Input Kriteria Pencarian
Ambil Data Berdasar Kriteria
Terima Data dari Yummly
Ambil Data untuk Proses Fuzzy
Tampilkan Hasil Pencarian
Komputasi Proses Fuzzy
End
Gambar 6. Activity Diagram Pencarian Resep Makanan
Class Diagram dalam UML menggambarkan struktur dari sistem dengan menampilkan class, atribut, operasi, dan relasi antarobjek. Class Diagram aplikasi ini dapat terlihat pada Gambar 7.
11
Gambar 7. Class Diagram
Sequence Diagram merupakan diagram yang menggambarkan sebuah proses interaksi satu dengan yang lainnya yang disusun dalam sebuah serial waktu. Sequence Diagram untuk proses pencarian resep makanan dapat terlihat pada Gambar 8. Di sini terlihat secara jelas urutan langkah pengerjaan dari yang terdahulu dikerjakan sampai yang paling akhir.
12
Search Obj
Controller
Search Controller
Yummly WS Handler
Fuzzy
Web Service Yummly
Object Relational Mapping
: User
1. Melakukan Pencarian 2. Mengirimkan Tujuan dan Kriteria 3. Mengarahkan ke controller tujuan beserta kriterianya
4. Meminta untuk request data
5. Request data pencarian berdasar kriteria
7. Ambil data membership
6. get_membership()
8. Proses Data Membership
9. Proses masing-masing hasil pencarian
10. get_miu 11. Hitung Miu
12. Ambil data rules
13. Hitung Miu solusi 14. Hitung Solution Point
15. determine_intersection_point()
16. count_moment()
17. count_area()
18. central_point()
19. sorting
20. Tampilkan hasil pencarian
Gambar 8. Sequence Diagram Pencarian Resep
Selain memanfaatkan data utama yang berasal dari Web Service Yummly, aplikasi juga dirancangkan untuk mempunyai data lain yang digunakan untuk menyimpan data user, rencana menu harian, dan user history. Rancangan database tersebut dapat dilihat pada Gambar 9. Pada gambar tersebut terdapat tabel user_click yang berfungsi untuk menyimpan history tiap view yang dilakukan user terhadap suatu menu makanan. Terdapat juga tabel daily_plan dan daily_plan_item yang berfungsi untuk menyimpan rencana menu harian dari tiap user.
Gambar 9. Rancangan Database
13
4.
Hasil dan Pembahasan
Penelitian ini menghasilkan sebuah aplikasi mobile dengan fitur-fitur seperti yang terdapat pada Tabel 2. No. Fitur 1. Login 2. Registrasi 3.
Dashboard
4.
Pencarian
5.
Detail Resep
6.
Rencana Menu Harian Profil
7.
Penjelasan Halaman Login untuk user. Jika user belum mempunyai akun, maka dapat melakukan registrasi terlebih dulu Halaman utama untuk aplikasi yang dibuat. Di dalamnya terdapat daftar beberapa rencana menu harian yang baru saja dibuat. Pada halaman ini terdapat juga input box untuk kriteria pencarian makanan. Halaman ini menampilkan hasil pencarian yang sebelumnya telah melewati komputasi fuzzy di server aplikasi Halaman ini menampilkan detail resep makanan. Pada halaman ini user juga diijinkan untuk menambahkan resep tersebut pada rencana menu harian. Halaman ini menyediakan fitur untuk mengelola menu harian yang sebelumnya telah ditambahkan. User dapat mengganti password dan nama di sini. Tabel 2. Fitur-fitur aplikasi
Aplikasi ini dibangun di atas framework Phonegap yang salah satu keunggulannya adalah dapat dijalankan di berbagai macam sistem operasi untuk mobile. Sebagai bahan uji, maka pada peneletian ini aplikasi dijalankan pada dua sistem operasi untuk perangkat mobile yang berbeda, yaitu Android dan Blackberry. Gambar 10 menunjukkan hasil aplikasi yang sudah berjalan di Android dan Blackberry.
14
Gambar 10. Tampilan Aplikasi pada Android dan Blackberry
Dengan berjalannya aplikasi pada sistem operasi Android dan Blackberry, maka terbukti bahwa dengan menggunakan Phonegap, aplikasi yang dibuat dapat dipergunakan untuk lintas platform. Ini berdampak pada semakin singkatnya waktu pengerjaan aplikasi, karena semuanya ditulis dengan menggunakan HTML, CSS, dan Javascript dengan sedikit sekali kode yang ditulis dengan menggunakan bahasa pemrograman native dari sistem operasi, dalam hal ini Java. Proses fuzzy terjadi saat user memasukkan kriteria pencarian. Kemudian server aplikasi akan meminta data dari Web Service Yummly sesuai dengan kriteria pencarian. Berikut merupakan hasil data kembalian dari Web Service Yummly : [0] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 0.16666666666667 [salty] => 0.16666666666667 [sweet] => 0.16666666666667 ) [recipeName] => Carrot-Thyme Soup with Cream [id] => Carrot-Thyme-Soup-with-Cream-The-Pioneer-Woman-198175 ) [1] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 0.33333333333333 [salty] => 0.16666666666667 [sweet] => 0.16666666666667 ) [recipeName] => Cream Of Peach Soup [id] => Cream-Of-Peach-Soup-My-Recipes ) [2] => stdClass Object
15
( [flavors] => stdClass Object ( [sour] => 0.16666666666667 [salty] => 0.16666666666667 [sweet] => 0.16666666666667 ) [recipeName] => Asparagus Soup [id] => Asparagus-Soup-Naturally-Ella-46381 ) [3] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 0.66666666666667 [salty] => 0.16666666666667 [sweet] => 0 ) [recipeName] => Potato Leek Soup [id] => Potato-Leek-Soup-Once-Upon-A-Chef-199981 ) [4] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 1 [salty] => 0.66666666666667 [sweet] => 0.66666666666667 ) [recipeName] => Cream of Red Bell Pepper Soup [id] => Cream-Of-Red-Bell-Pepper-Soup-Epicurious ) [5] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 0.16666666666667 [salty] => 0 ) [recipeName] => Chiptole Tomato Soup [id] => Chiptole-Tomato-Soup-Naturally-Ella-46319 ) [6] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 0.33333333333333 [salty] => 0.33333333333333 [sweet] => 0.66666666666667 ) [recipeName] => Black Bean Soup [id] => Black-Bean-Soup-Once-Upon-A-Chef-200036 ) [7] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 0.5 [salty] => 0.16666666666667 [sweet] => 1 ) [recipeName] => Jewish Plum Soup with Sour Cream [id] => Jewish-plum-soup-with-sour-cream-320253 ) [8] => stdClass Object
16
( [flavors] => stdClass Object ( [sour] => 0.16666666666667 [salty] => 0 [sweet] => 0 ) [recipeName] => Italian Chicken Soup [id] => Italian-Chicken-Soup-The-Pioneer-Woman-45779 ) [9] => stdClass Object ( [flavors] => stdClass Object ( [sour] => 0.33333333333333 [salty] => 1 [sweet] => 1 ) [recipeName] => Roasted Tomato Soup [id] => Roasted-Tomato-Soup-I-Adore-Food_-200678 )
Setelah melalui komputasi fuzzy, maka aplikasi akan memberikan nilai tingkat keterpilihan untuk masing-masing hasil pencarian sehingga dari hasil pencarian tersebut akan menghasilkan urutan sebagai berikut : Array ( [Jewish-plum-soup-with-sour-cream-320253] => 3.3333333333333 [Italian-Chicken-Soup-The-Pioneer-Woman-45779] => 3.3333333333333 [Chiptole-Tomato-Soup-Naturally-Ella-46319] => 3.3333333333333 [Carrot-Thyme-Soup-with-Cream-The-Pioneer-Woman-198175] => 3.3333333333333 [Asparagus-Soup-Naturally-Ella-46381] => 3.3333333333333 [Cream-Of-Peach-Soup-My-Recipes] => 3.3333333333333 [Roasted-Tomato-Soup-I-Adore-Food_-200678] => 3.2450980392157 [Black-Bean-Soup-Once-Upon-A-Chef-200036] => 3.025641025641 [Potato-Leek-Soup-Once-Upon-A-Chef-199981] => 2.2439293598234 [Cream-Of-Red-Bell-Pepper-Soup-Epicurious] => 2.0656565656566 )
Hasil ini menunjukkan bahwa setelah melewati komputasi fuzzy maka urutan hasil pencarian dari Web Service Yummly mengalami pergeseran antara satu dengan yang lain sesuai dengan tingkat keterpilihan yang dipunyai oleh masing-masing hasil pencarian. Sampai di sini aplikasi hanya memberikan rekomendasi kepada user. Sedangkan keputusan pemilihan menu makanan untuk dimasukkan ke dalam rencana menu harian tetap ada di tangan user. Selanjutnya aplikasi juga diuji dengan metode blackbox. Metode blackbox berguna untuk menguji jalannya fungsionalitas aplikasi. Tabel 3 menunjukkan hasil dari pengujian dengan metode blackbox.
17
No. 1.
Fungsi
Test Case
Login
Username dan password diisikan dengan benar
Hasil yang Diharapkan User diarahkan ke halaman Dashboard
Hasil Pengujian Berhasil
Username atau password diisikan dengan salah
Muncul notifikasi di halaman login
Berhasil
2.
Pencarian
User memasukkan kriteria pencarian
Muncul hasil pencarian sesuai dengan kriteria pencarian
Berhasil
3.
Detail Resep
User memilih salah satu resep yang didapat dari pencarian
Muncul detail resep yang dipilih
Berhasil
4.
Tambah Rencana Menu Harian
User memasukkan resep yang dipilih ke rencana menu harian
Resep masuk ke rencana menu harian
Berhasil
Tabel 3. Hasil Pengujian dengan Metode Blackbox
5.
Simpulan
Aplikasi perencanaan menu makanan dapat mempermudah akitifitas perencanaan menu makanan dengan adanya fitur-fitur yang tidak bisa dilakukan dengan aktifitas yang konvensional. Logika fuzzy yang digunakan dapat memberikan rekomendasi yang sesuai dengan kriteria pencarian yang dimasukkan user. Berdasarkan hasil perancangan dan pengujian, aplikasi berbasis Phonegap dapat berjalan dengan baik pada sistem operasi yang berbeda, dalam hal ini Android dan Blackberry. Komputasi fuzzy pada kedua sistem operasi tersebut berjalan dengan baik dan menghasilkan hasil yang sama pula untuk kriteria pengujian yang sama. Ini dikarenakan komputasi berjalan di sisi server. Dengan menggunakan Phonegap proses pembuatan aplikasi untuk sistem operasi yang berbeda menjadi lebih singkat. Untuk pengembangan selanjutnya, aplikasi dapat diujikan di beberapa sistem operasi yang lain dan logika fuzzy bisa diterapkan di beberapa bagian lain selain dari fungsi pencarian. Perlu dilakukan pengujian juga untuk berbagai bentuk keanggotaan fuzzy sehingga hasil pengujian menjadi lebih bervariasi. Selain itu performa aplikasi yang berjalan pada sistem operasi yang berbeda juga dapat diamati untuk dilakukan perbaikan, sehingga proses-proses yang berjalan dapat lebih dioptimalisasi.
18
6. [1]
[2]
[3]
[4] [5]
[6] [7]
[8] [9] [10] [11] [12]
[13] [14]
[15]
Pustaka Cynthia Ewer, Menu Planning : Save Time in The Kitchen, http://organizedhome.com/kitchen-tips/menu-planning-save-time-kitchen, Diakses tanggal 20 November 2013 The Official Launch of Yummly Recipe API, http://blog.yummly.com/blog/labs/the-official-launch-of-the-yummly-recipeapi/, diakses tanggal 5 Oktober 2013 Galindo, Jose, Angelica Urrutia, dan Mario Piattini, 2006, Fuzzy Databases : Modeling, Design, and Implementation, London : Idea Group Publishing Sprague, Ralph H., Jr., 1980,A Framework For The Development Of Decision Support System, MIS Quarterly 4 : 1 - 26 Savitz, Eric, 2012, Gartner: Top 10 Strategic Technology Trends For 2013, http://www.gartner.com/it/content/2482500/2482517/june_26_mobile_trend s_njones.pdf. Diakses tanggal 5 Agustus 2013 Ghatol, Rohit, Yogesh Patel, 2012, Beginning Phonegap : Mobile Web Framework for Javascript and HTML5, New York : Appress Mayo Clinic Staff, Menu Planning : Eat Healthier and Spend Less, http://www.mayoclinic.org/menu-planning/ART-20048199, Diakses tanggal 30 Desember 2013 Suwithi, Ni Wayan, Cecil Erwin Jr. Boham, 2008, Akomodasi Perhotelan Jilid 2, Jakarta : Direktorat Pembinaan Sekolah Menengah Kejuruan Susilo, Frans, SJ, 2006, Himpunan & Logika Kabur Serta Aplikasinya, Yogyakarta : Penerbit Graha Ilmu Kusumadewi, Sri, Hari Purnomo, 2004, Aplikasi Logika Fuzzy untuk Pendukung Keputusan, Yogyakarta : Graha Ilmu Subakti, Irfan, 2002, Sistem Pendukung Keputusan, Institut Teknologi Sepuluh November Surabaya : Jurusan Teknik Informatika. Petot, Grace J., Cynthia Marling, Leon Sterling, 1998, An Artificial Intelligence System for Computer-Assisted Menu Planning, Journal of the American Dietetic Association 98 : 1009 β 1014 Balintfy, Joseph L., 1964, Menu Planning by Computer, Communication of the ACM 7 : 255 β 259 Widodo, Wahyu Abriyanto, 2012, Perancangan Aplikasi Mobile Commerce pada Perangkat Blackberry Menggunakan Framework Phonegap (Studi Kasus : Butik Emely Shop Semarang), Universitas Kristen Satya Wacana : Fakultas Teknologi Informasi Pressman, Roger S., 2001, Software Engineering : A Practitionerβs Approach, New York : McGrawHills
19