Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu...

18
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,

Transcript of Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu...

Page 1: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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,

Page 2: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 3: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 4: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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.

Page 5: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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.

Page 6: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 7: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 8: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 9: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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>>

Page 10: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 11: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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.

Page 12: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 13: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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.

Page 14: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 15: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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

Page 16: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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.

Page 17: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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.

Page 18: Implementasi Logika Fuzzy untuk Pemberian Rekomendasi Menu ...repository.uksw.edu/bitstream/123456789/8763/3/T1_672011611_Full...membantu pengambil keputusan memanfaatkan data dan

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