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 History
Komputasi 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,3 0,3
0,5 0,5
� =
0; − 0,3 0,5 − 0,5
; 0,7 − 0,7 − 0,5
; 0,3
0,7 0,3
0,5 0,5
0,7
� =
0; − 0,5 0,7 − 0,5
; 1;
0,5 0,5
0,7 0,7
Sedangkan representasi dari variabel input tingkat popularitas dan variabel output tingkat keterpilihan dapat dilihat pada Gambar 3.
0,1 0,2
0,3 0,4
0,5 0,6
0,7 0,8
0,9 1
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,2 0,2
0,4 0,4
� =
0; − 0,2 0,4 − 0,2
; 1;
0,8 − 0,8 − 0,6 ;
0,2 0,8
0,2 0,4
0,4 0,6
0,8 0,6
� =
0; − 0,6 0,8 − 0,6
; 1;
0,6 0,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
0,1 0,2
0,3 0,4
0,5 0,6
0,7 0,8
0,9 1
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 App Kelola 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.
Start Input 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 Yummly Serv er App
App User
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