Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu...
Transcript of Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu...
2
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,
3
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
4
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
5
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.
6
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
Data
Yummly Web Service
Web Service Interface
Mobile App dengan
Phonegap
Server Aplikasi
Database
Data Interface
Mencari Record User HistoryKomputasi Fuzzy
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.
7
Gambar 2. Kurva Variabel Rasa Manis, Asam, dan Asin
Fungsi keanggotaan untuk variabel rasa manis, asam, dan asin adalah
sebagai berikut :
ππ πππππ π₯ = 1;
0,5 β π₯ (0,5 β 0,3) ;0;
π₯ β€ 0,30,3 β€ π₯ β€ 0,5
π₯ β₯ 0,5
πππππππ π₯ =
0; π₯ β 0,3 (0,5 β 0,5) ; 0,7 β π₯ (0,7 β 0,5) ;
π₯ β€ 0,3 ππ‘ππ’π₯ β₯ 0,70,3 β€ π₯ β€ 0,50,5 β€ π₯ β€ 0,7
πππππππ π₯ = 0;
π₯ β 0,5 (0,7 β 0,5) ;1;
π₯ β€ 0,50,5 β€ π₯ β€ 0,7
π₯ β₯ 0,7
Sedangkan representasi dari variabel input tingkat popularitas dan variabel
output tingkat keterpilihan dapat dilihat pada Gambar 3.
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ΞΌ[x]
Rasa
Rendah
Sedang
Tinggi
8
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,4 β π₯ (0,4 β 0,2) ;0;
π₯ β€ 0,20,2 β€ π₯ β€ 0,4
π₯ β₯ 0,4
πππππππ π₯ =
0; π₯ β 0,2 0,4 β 0,2 ;
1; 0,8 β π₯ 0,8 β 0,6 ;
π₯ β€ 0,2 ππ‘ππ’π₯ β₯ 0,80,2 β€ π₯ β€ 0,40,4 β€ π₯ β€ 0,60,8 β€ π₯ β€ 0,6
πππππππ π₯ = 0;
π₯ β 0,6 (0,8 β 0,6) ;1;
π₯ β€ 0,60,6 β€ π₯ β€ 0,8
π₯ β₯ 0,8
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
00,10,20,30,40,50,60,70,80,9
1
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
ΞΌ[x]
Tingkat Popularitas / Keterpilihan
Rendah
Sedang
Tinggi
9
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 Asin Asam Populer Dipilih
Tinggi Tinggi Tinggi Tinggi Sedang
Tinggi Tinggi Tinggi Sedang Sedang
Tinggi Tinggi Tinggi Rendah Rendah
Tinggi Tinggi Sedang Tinggi Sedang
Tinggi Tinggi Sedang 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
10
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.
Gambar 5. Perancangan Use Case
Yummly
Sediakan Data Resep
Cari Resep
Ambil Data Resep
<<extend>>
Komputasi Fuzzy
<<extend>>
<<extend>>
Server AppKelola Profil
User
Lihat Resep
<<extend>>
Kelola Rencana Menu Harian
<<extend>>
Lihat Rencana Menu Harian
<<extend>>
<<include>>
Kelola Database
<<extend>><<extend>>
<<extend>>
<<extend>>
11
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.
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.
StartInput Kriteria
Pencarian
Tampilkan Hasil Pencarian
End
Ambil Data untuk Proses Fuzzy
Terima Input Kriteria Pencarian
Terima Data dari Yummly
Komputasi Proses Fuzzy
Ambil Data Berdasar Kriteria
Web Serv ice YummlyServ er AppAppUser
12
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.
13
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
: User
Search Obj Controller Search
Controller
Yummly WS
Handler
1. Melakukan Pencarian
2. Mengirimkan Tujuan dan Kriteria
3. Mengarahkan ke controller tujuan beserta kriterianya
4. Meminta untuk request data
9. Proses masing-masing hasil pencarian
Fuzzy Web Service
Yummly
Object Relational
Mapping
6. get_membership()
8. Proses Data Membership
10. get_miu
11. Hitung Miu
5. Request data pencarian berdasar kriteria
7. Ambil data membership
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
14
4. Hasil dan Pembahasan
Penelitian ini menghasilkan sebuah aplikasi mobile dengan fitur-fitur seperti
yang terdapat pada Tabel 2.
No. Fitur Penjelasan
1. Login Halaman Login untuk user.
2. Registrasi Jika user belum mempunyai akun, maka dapat
melakukan registrasi terlebih dulu
3. Dashboard 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.
4. Pencarian Halaman ini menampilkan hasil pencarian yang
sebelumnya telah melewati komputasi fuzzy di server
aplikasi
5. Detail Resep Halaman ini menampilkan detail resep makanan. Pada
halaman ini user juga diijinkan untuk menambahkan
resep tersebut pada rencana menu harian.
6. Rencana Menu
Harian
Halaman ini menyediakan fitur untuk mengelola menu
harian yang sebelumnya telah ditambahkan.
7. Profil 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.
15
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
16
(
[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
17
(
[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.
18
No. Fungsi Test Case Hasil yang
Diharapkan
Hasil
Pengujian
1. Login Username dan
password diisikan
dengan benar
User diarahkan
ke halaman
Dashboard
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.
19
6. Pustaka
[1] Cynthia Ewer, Menu Planning : Save Time in The Kitchen,
http://organizedhome.com/kitchen-tips/menu-planning-save-time-kitchen,
Diakses tanggal 20 November 2013
[2] The Official Launch of Yummly Recipe API,
http://blog.yummly.com/blog/labs/the-official-launch-of-the-yummly-recipe-
api/, diakses tanggal 5 Oktober 2013
[3] Galindo, Jose, Angelica Urrutia, dan Mario Piattini, 2006, Fuzzy
Databases : Modeling, Design, and Implementation, London : Idea Group
Publishing
[4] Sprague, Ralph H., Jr., 1980,A Framework For The Development Of
Decision Support System, MIS Quarterly 4 : 1 - 26
[5] 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
[6] Ghatol, Rohit, Yogesh Patel, 2012, Beginning Phonegap : Mobile Web
Framework for Javascript and HTML5, New York : Appress
[7] Mayo Clinic Staff, Menu Planning : Eat Healthier and Spend Less,
http://www.mayoclinic.org/menu-planning/ART-20048199, Diakses tanggal
30 Desember 2013
[8] Suwithi, Ni Wayan, Cecil Erwin Jr. Boham, 2008, Akomodasi Perhotelan
Jilid 2, Jakarta : Direktorat Pembinaan Sekolah Menengah Kejuruan
[9] Susilo, Frans, SJ, 2006, Himpunan & Logika Kabur Serta Aplikasinya,
Yogyakarta : Penerbit Graha Ilmu
[10] Kusumadewi, Sri, Hari Purnomo, 2004, Aplikasi Logika Fuzzy untuk
Pendukung Keputusan, Yogyakarta : Graha Ilmu
[11] Subakti, Irfan, 2002, Sistem Pendukung Keputusan, Institut Teknologi
Sepuluh November Surabaya : Jurusan Teknik Informatika.
[12] 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
[13] Balintfy, Joseph L., 1964, Menu Planning by Computer, Communication of
the ACM 7 : 255 β 259
[14] 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
[15] Pressman, Roger S., 2001, Software Engineering : A Practitionerβs
Approach, New York : McGrawHills