Fuzzy Logic – Logika Fuzzy di RStudio

By | July 28, 2024
2,152 Views

— Fuzzy Logic – Logika Fuzzy — dalam arti makna adalah logika kabur Fuzzy merupakan sebuah istilah yang diartikan sebagai logika kabur yaitu mengaburkan batasan yang bersifat tegas antara 0 dan 1. Sebagai contoh, untuk menyatakan air itu panas atau dingin, amat bersifat relative. Logika fuzzy merupakan suatu cara yang tepat untuk memetakan suatu ruang input ke dalam ruang output. Dalam gambar 1, kotak hitam menyatakan proses yang dilakukan terhadap input supaya menghasilkan output. Contoh lainnya adalah menyatakan berat badan seseorang sangatlah bersifat relatif. Berapakah berat badan yang pasti sehingga dapat dikategorikan menjadi: kurus, sedang, atau gemuk?

Demo Aplikasi Berbasis Fuzzy

Kalian bisa lihat demo nya https://mulkan.shinyapps.io/fuzzy_logic/

Cara Kerja Fuzzy Logic – Logika Fuzzy

Untuk memahami cara kerja logika fuzzy bisa kalian peroleh di

  1. Belajar Algoritma Fuzzy Bagian 1
  2. Belajar Algoritma Fuzzy Bagian 2
  3. Belajar Algoritma Fuzzy Bagian 3

Penjelasan detail diatas mulai dari pengertian fuzzy sampai dengan contoh kasus serta penerapan menggunakan Matlab

Fuzzy Logic – Logika Fuzzy di RStudio

Nah pada contoh diatas menggunakan Matlab, bagi pengguna RStudio gimana? ada koq library yang bisa kalian gunakan salah satunya yang default yaitu Sets. Malahan dengan RStudio untuk menghitung fuzzy logic – logika fuzzy lebih natural. Berdasarkan contoh sebelumnya, kita akan gunakan di RStudio. Yuk  kita coba langsung. Terlebih dahulu import library dan setting semesta pembicara

library(sets)
sets_options("universe",seq(from=0,to=30,by=0.1))

Lanjut dengan variabel fuzzy yaitu

  1. makanan,
  2. pelayanan, dan
  3. rating,

keanggotan fuzzy yaitu

  1. makanan dengan anggota fuzzy: lezat dan tengik
  2. pelayanan dengan anggota fuzzy: jelek, sedang, dan bagus
  3. rating dengan anggota fuzzy: murah, standar, dan mahal
See also  Tensorflow Lite Converter

fungsi nilai keanggotaan yaitu

  1. segitiga dan
  2. trapesium

Kode yang digunakan untuk Fuzzy Logic – Logika Fuzzy di RStudio sebagai berikut

variables = 
set(
    makanan = fuzzy_variable(   tengik=fuzzy_trapezoid(corners=c(-2, 0, 2, 4)),
                                lezat=fuzzy_trapezoid(corners=c(7, 9, 11, 13))),
                               
    pelayanan = fuzzy_partition(
                        varnames=c(jelek=0,sedang=5,bagus=10),
                        FUN= fuzzy_cone,radius=5),
    
    rating = fuzzy_partition(
                        varnames=c(murah=5,standar=15,mahal=25), 
                        FUN= fuzzy_cone,radius=5)
)

Membuat fuzzy rules ditetapkan sebagai berikut:

  1. Jika MAKANAN Tengik, ATAU PELAYANAN Jelek maka Rating Murah
  2. Jika PELAYANAN Sedang, maka Rating Standar
  3. Jika MAKANAN Lezat ATAU PELAYANAN Bagus, maka Rating Mahal
rules = 
set(
    fuzzy_rule(makanan %is% tengik || pelayanan %is% jelek, rating %is% murah ),
    fuzzy_rule(pelayanan %is% sedang, rating %is% standar),
    fuzzy_rule(makanan %is% lezat || pelayanan %is% bagus, rating %is% mahal)
    
)

Langsung saja kita build fuzzy logic di RStudio

system <- fuzzy_system(variables, rules)
print(system)
plot(system) ## plots variables

Kita coba saja jika kita menilai restoran sebagai berikut

MAKANAN = 8

PELAYANAN = 7

## do inference
fi <- fuzzy_inference(system, list(makanan = 8, pelayanan = 7))
## plot resulting fuzzy set
plot(fi)
## defuzzify
gset_defuzzify(fi, "centroid")

hasil centroid 19.71698 atau pembulatan menjadi 20

Bagaimana menurut kalian Fuzzy Logic – Logika Fuzzy di RStudio?

ref: juandes