Anda di halaman 1dari 20

Fuzzy oh Fuzzy

Unit Dasar Soft Computing


Oleh Riadi Marta Dinata /Adiarray

PENDAHULUAN
"Fuzzy" menggambarkan suatu kondisi atau konsep yang tidak memiliki batasan yang tegas atau
nilai yang pasti. Istilah ini pertama kali diperkenalkan oleh Lotfi A. Zadeh pada tahun 1965.

Contoh:

Definisi Usia Muda adalah jika usia <35, Parubaya 35 sd 60 thn dan Tua jika>60thn; sehingga
misal pada usia 35thn yaitu karena selisih 1 thn saja sudah berakibat pada beda kelompok/level.
Attribut Fuzzy :
Variabel=Umur; Himpunan=Muda, Parubaya, Tua
Semesta Pembicaraan : 0 s/d 100 thn; Doman (Muda jika<35thn dst…)

KPD I /Kecerdasan Buatan


2

Fungsi Keanggotaan/Kurva Fuzzy

Menurut Kusrini[1]. fungsi keanggotaan adalah sebuah representasi grafis dari besarnya
partisipasi masing-masing input.
A. Representasi Linear (Naik, Turun, Segitiga, Trapesium)

B. Representasi Kurva-S(Sigmoid): Pertumbuhan dan Penyusutan


Nilai keanggotaan nol (α),nilai keanggotaan lengkap (γ), dan titik infleksi atau crossover (β)
yaitu titik yang memiliki dominan posisi 50% atau tengah.

The Monotonic Reasoning


Bahwa tingkat keyakinan atau kesimpulan tidak akan berkurang ketika tingkat keyakinan
premis ditingkatkan.
Jika tingkat keanggotaan premis (Antesden) adalah tinggi (misalnya, 0.8), maka tingkat
keanggotaan kesimpulan akan tetap tinggi atau lebih rendah, tetapi tidak akan lebih tinggi. Jika
tingkat keanggotaan premis adalah rendah (misalnya, 0.2), maka tingkat keanggotaan kesimpulan
akan tetap rendah atau lebih tinggi, tetapi tidak akan lebih rendah.

2
3

Operator Zadeh
Menurut Zadeh untuk Operasi Himpunan Fuzzy Logic Controller
Operator And, diperoleh dengan mengambil nilai keanggotaan terkecil antara elemen pada
himpunan-himpunan yang bersangkutan.
Operator OR, diperoleh dengan mengambil nilai keanggotaan terbesar antara elemen pada
himpunan-himpunan yang bersangkutan.
Operator NOT, Operasi dengan operator NOT diperoleh dengan mengurangkan nilai
keanggotaan elemen pada anggota himpunan dengan 1.
Misal Anggota(Muda)=0.6, maka Anggota(Not Muda)=1-0.6=0.4.

Fungsi Implikasi Fuzzy Logic Controller


1.Min (minimum). Fungsi ini akan memotong output himpunan fuzzy.

Dot (product). Fungsi ini akan menskala output himpunan fuzzy

Min Max Studi Kasus (Data Harian):


Permintaan = 1000 5000
Persediaan = 100 600
Produksi = 2000 7000

3
4

Pertanyaan => jika Permintaan 4000/hr dan Persediaan 300/hr, dengan Rule:
+jika Permintaan TURUN, Persediaan BANYAK -> Produksi BERKURANG
+jika Permintaan TURUN, Persediaan SEDIKIT -> Produksi BERKURANG
+jika Permintaan NAIK, Persediaan BANYAK -> Produksi BERTAMBAH
+jika Permintaan NAIK, Persediaan SEDIKIT -> Produksi BERTAMBAH
berapakah produksi hariannya ?

Model Fuzzy Permintaan (NAIK dan TURUN)

M(Turun:4000)=5000-4000/4000=0.25
M(Naik:4000)=4000-1000/4000=0.75

Model Fuzzy Persediaan (BANYAK dan SEDIKIT)

M(Sedikit:300)=600-300/500=0.6
M(Banyak:300)=300-100/500=0.4

Model Fuzzy Produksi (BERTAMBAH dan BERKURANG)

4
5

Mencari Nilai Alpha dan Z dari setiap Aturan Rule:


min[TURUN(0.25) ,BANYAK(0.4)]=0,25 |A1 Berkurang=>(7000-z)/5000=0.25 sehingga z1=5750
min[TURUN(0.25) ,SEDIKIT(0.4)]=0,6 |A2 Berkurang=>(7000-z)/5000=0.25 sehingga z2=5750
min[NAIK(0.75) ,BANYAK(0.4)]=0,4 |A3 Bertambah=>(z-2000)/5000=0.25 sehingga z3=4000
min[NAIK(0.75) ,SEDIKIT(0.4)]=0,6 |A4 Bertambah=>(z-2000)/5000=0.25 sehingga z4=5000

Sehingga yang harus diproduksi sebanyak 4983

A. Fuzzy Tsukamoto
Adalah Sistem Kontrol Fuzzy, sebagai aplikasi praktis dari logika fuzzy dalam pengendalian
sistem; dipelopori oleh Profesor Takagi dan Tsukamoto pada tahun 1985.
Tujuannya adalah untuk mengontrol sistem yang kompleks dengan menggunakan aturan fuzzy
yang dapat digunakan oleh manusia untuk menggambarkan aturan pengendalian dalam bahasa
alami.Fuzzy Tsukamoto menggunakan keluaran yang bersifat fuzzy, dengan nilai tingkat
keanggotaan dalam himpunan tersebut. sehingga keluaran lebih interpretatif dan kurang
eksplisit daripada Fuzzy Sugeno.

5
6

B. Fuzzy Sugeno
Atau Sistem kontrol fuzzy Sugeno; mirip Tsukamoto, dengan aturan "jika... maka...", tetapi
"maka..."-nya adalah fungsi matematis yang dapat menghasilkan nilai numerik berdasarkan
kombinasi masukan. Dikembangkan Profesor Lotfi A. Zadeh dan Profesor Yasuo Sugeno 1985.
Contoh Penerapan Aturan Fuzzy Sugeno:

+jika Permintaan TURUN, Persediaan BANYAK -> Produksi =Permintaan-Persediaan


+jika Permintaan TURUN, Persediaan SEDIKIT -> Produksi = Permintaan
+jika Permintaan NAIK, Persediaan SEDIKIT -> Produksi = 1.25*Permintaan-Persediaan
+jika x adalah RENDAH dan y adalah RENDAH, maka z = 2x + 3y
+jika x adalah RENDAH dan y adalah TINGGI, maka z = 2x - 1.5y
+jika x adalah TINGGI dan y adalah RENDAH, maka z = 3x + 4y
+jika x adalah TINGGI dan y adalah TINGGI, maka z = 4x + 2.5y

C. Fuzzy Mamdani /MinMax


adalah salah satu jenis sistem kontrol fuzzy yang menggabungkan konsep logika fuzzy dengan
aturan-aturan fuzzy untuk mengontrol sistem; dikembangkan Ebrahim Mamdani:1975.
Hal unik pada Mamdani adalah pada Langkah deffuzifikasi /tahap penegasan/ mengubah
himpunan fuzzy menjadi bilangan riil. Input dari proses penegasan ini adalah suatu himpunan
fuzzy yang diperoleh dari komposisi aturan-aturan fuzzy, sedangkan output yang dihasilkan
merupakan suatu bilangan pada domain himpunan fuzzy tersebut.
Beberapa metode defuzzifikasi yang umum digunakan dalam Fuzzy Mamdani melibatkan
penggunaan statistik sederhana seperti rata-rata tertimbang atau nilai tengah dari himpunan
fuzzy keluaran. Antara lain Proses Defuzzifikasi pada Fuzzy Mamdani :

1.Metode Centroid (Center of Gravity):


menghitung titik tengah himpunan fuzzy keluaran. Nilai keluaran yang dihasilkan adalah pusat
massa atau titik tengah dari area yang tercakup dalam himpunan fuzzy keluaran.

6
7

Pada case di atas dan dengan menggunakan metode centroid, diperoleh ilustrasi sbb:

Dari Luas Area1,Area2 dan Area2; kita cari dahulu nilai batas:

7
8

Hitung Momentum:

Artinya butuh produksi sebanyak 4247,74

2.Metode Rata-rata Tertimbang (Weighted Average):


mengambil rata-rata tertimbang dari nilai keluaran fuzzy. Nilai keluaran dihitung dengan cara
mengalikan setiap tingkat keanggotaan dengan nilai representatif yang sesuai untuk setiap
himpunan fuzzy, kemudian menjumlahkan semua hasilnya.

3.Metode Nilai Tengah (Middle of Maximum):


mengambil nilai tengah dari nilai maksimum tingkat keanggotaan dalam himpunan fuzzy
keluaran. Ini berarti nilai keluaran adalah nilai tengah dari daerah di mana tingkat keanggotaan
paling tinggi.

8
9

D. Fuzzy Tahani / Database


Adalah istilah yang mengacu pada basis data atau sistem manajemen basis data (DBMS) yang
telah diperluas atau ditingkatkan dengan fitur-fitur yang mendukung logika fuzzy.
1. Fuzzy database memungkinkan penanganan data secara alami karena mengikuti pikiran manusia.
2. Digunakannya fuzzy logic dalam melakukan pencarian data sehingga menghasilkan data yang sistematis.
3. Menyediakan lingkungan basis data untuk menangani data yang masih samar.

Query Umum:
Select * from tb_karyawan where gaji >’2000000’

Contoh query Tahani:


SELECT * FROM tb_karyawan where usia=’Muda’ or gaji=’Rendah’
akan diperoleh nilai gabungan yang tertinggi (OR)=0.22 | 0.12 => 0.22
SELECT * FROM tb_karyawan where usia=’Muda’ and gaji=’Rendah’
akan diperoleh nilai gabungan yang terendah(OR)=0.22 | 0.12 => 0.12

9
10

Praktek Fuzzy Matlab

Pada Command Window Matlab ketik “Fuzzy”, maka akan muncul sbb:

Desain untuk sensor1 (Misal Sensor Suhu)

10
11

Desain Untuk Sensor2 (Misal Sensor Kelembapan)

11
12

Desain Output

12
13

Lalu Desain Rule:

13
14

Lalu Export to File, beri nama (misal) myfis.fis:

Tes Hasilnya:
suhu=25;
lembab=55;
fis = readfis('myfis.fis');
out = evalfis([suhu,lembab],fis);

14
15

ps=['Jika suhu =' num2str(suhu) ' dan lembab=' num2str(lembab) ' maka hasilnya
adalah=' num2str(out)];
disp(ps);

Konvert Matlab to Bahasa C

15
16

http://www.makeproto.com/projects/fuzzy/matlab_arduino_FIST/index.php

Setelah itu download hasilnya

16
17

17
18

Setelah hasilnya didownload, lalu diextract

File sudah siap digunakan….


void loop(){

g_fisInput[0] = analogRead(A1);
g_fisInput[1] = analogRead(A0);
g_fisOutput[0] = 0;

fis_evaluate();

// Set output vlaue: output1


analogWrite(2 , g_fisOutput[0]);

Serial.println(g_fisInput[0]);
Serial.println(g_fisInput[1]);
Serial.println( g_fisOutput[0]);
delay(1000);

Cek hasil di:


https://wokwi.com/projects/375536116617559041

18
19

Lanjutkan pada Mapping


https://www.arduino.cc/reference/en/language/functions/math/map/

Dari FIle yang diberi…silakan pilih file-import from file, untuk menjalankan…….

Terimakasih…….Tetap semangat belajar…..

19
20

20

Anda mungkin juga menyukai