Fuzzy Logic dengan Menggunakan MATLAB
description
Transcript of Fuzzy Logic dengan Menggunakan MATLAB
![Page 1: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/1.jpg)
1
Fuzzy Logic dengan Menggunakan MATLAB
Bahan Kuliah IF4058 Topik Khusus IF
Teknik Informatika – STEI ITB
Oleh: Rinaldi Munir
![Page 2: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/2.jpg)
2
• Sumber untuk bahan kuliah ini: “Belajar Cepat Fuzzy Logic menggunakan
MATLAB”Oleh: Agus NabaPenerbit ANDI
![Page 3: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/3.jpg)
3
Fuzzy Logic Toolbox
• MATLAB menyediakan kakas untuk membuat sistem inferensi fuzzy (FIS) bernama Fuzzy Logic Toolbox (FLT).
• FLT memiliki 5 jenis GUI untuk merancang FIS:1. FIS Editor2. Membership Function Editor3. Rule Editor4. Rule Viewer5. Surface viewer
![Page 4: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/4.jpg)
4
Contoh Studi Kasus• Pelayan restoran sering mendapat uang tip (bonus) dari
pelanggan yang makan di sana. Besar uang tip bergantung pada dua kriteria, yaitu kualitas pelayanan dan kualitas makanan. Jika pelanggan merasa puas dengan pelayanan dan makanan di restoran, pelanggan tidak akan segan memberi bonus yang besar kepada pelayan. Sebaliknya jika pelayanan kurang memuaskan atau makanan kurang enak, pelanggan mungkin memberikan uang bonus yang kecil atau tidak ada sama sekali. Batasan tentang “kualitas pelayanan”, “kualitas makanan”, dan berapa besar uang tip tidaklah jelas, oleh karena itu bersifat fuzzy. Rancanlah sebuah FIS untuk masalah ini.
![Page 5: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/5.jpg)
5
Memulai FLT• Ketikkan
fuzzypada prompt MATLAB, maka akan muncul FIS Editor berikut:
![Page 6: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/6.jpg)
6
• Variabel linguistik adalah pelayanan, makanan, dan bonus.• Dari FIS editor, pilih File Add Variable Input
![Page 7: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/7.jpg)
7
• Klik gambar Input1, ganti namanya menjadi “pelayanan” pada kotak Current Variable, lalu tekan Enter.
• Untuk gambar Input2, ganti namanya menjadi “makanan”• Untuk gambar Output, ganti namanya menjadi “bonus”
Hasil:
![Page 8: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/8.jpg)
8
• Simpan FIS ke memori dengan memilih:File Export To Workspace
dan pada field Workspace Variable isikan nama fisbonus, lalu tekan OK.
• Untuk menyimpan ke memori, pilih: File Export To Disk
dan simpan dengan nama fisbonus.
![Page 9: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/9.jpg)
9
Hasil:
![Page 10: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/10.jpg)
10
Membership Function Editor• Dari FIS editor, pilih: Edit Membership Functions
![Page 11: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/11.jpg)
11
• Ada tiga variabel FIS di sudut kiri atas, yaitu pelayanan, makanan, dan bonus.
• Pelayanan memilik tiga terma, yaitu mengecewakan, bagus, dan memuaskan.
• Klik variabel FIS pelayanan, lalu klik kurva mf1, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: mengecewakan– Range: [0 10}– Display Range: [0 10]– Type: gaussmf– Params: nilai default yang terdiri dari standard deviasi dan
mean (bisa diubah)
![Page 12: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/12.jpg)
12
• Klik kurva mf2, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: bagus– Range: [0 10}– Display Range: [0 10]– Type: gaussmf– Params: nilai default yang terdiri dari standard deviasi dan mean (bisa
diubah)
• Klik kurva mf3, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: memuaskan– Range: [0 10}– Display Range: [0 10]– Type: gaussmf– Params: nilai default yang terdiri dari standard deviasi dan mean (bisa
diubah)
![Page 13: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/13.jpg)
13
• Hasil:
![Page 14: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/14.jpg)
14
• Makanan memiliki terma hambar dan enak.• Klik variabel makanan, lalu klik mf2• Hapus mf2 dari Edit Remove Selected MF• Ubah Range manjadi [0 10} dan Display Range
menjadi [0 10]• Klik kurva mf1, kemudian isikan/ganti parameter-
parameter berikut pada setiap field:– Nama: hambar– Range: [0 10}– Display Range: [0 10]– Type: trimf– Params: [-4 0 7]
![Page 15: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/15.jpg)
15
• Klik kurva mf1, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: enak– Range: [0 10]– Display Range: [0 10]– Type: trimf– Params: [3 10 14]
![Page 16: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/16.jpg)
16
• Hasil:
![Page 17: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/17.jpg)
17
• Bonus memiliki terma sedikit, sedang, dan banyak.• Klik kurva mf1, kemudian isikan/ganti parameter-
parameter berikut pada setiap field:– Nama: sedikit– Range: [0 30]– Display Range: [0 30]– Type: trimf– Params: [0 5 10]
![Page 18: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/18.jpg)
18
• Klik kurva mf2, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: sedang– Range: [0 30]– Display Range: [0 30]– Type: trimf– Params: [10 15 20]
• Klik kurva mf3, kemudian isikan/ganti parameter-parameter berikut pada setiap field:– Nama: banyak– Range: [0 30]– Display Range: [0 30]– Type: trimf– Params: [20 25 30]
![Page 19: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/19.jpg)
19
• Hasil:
![Page 20: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/20.jpg)
20
Rule Editor• Dari FIS editor, pilih: Edit Rules
![Page 21: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/21.jpg)
21
Menyisipkan kaidah IF-THEN pertama:IF (pelayanan is mengecewakan) or (makanan is hambar) THEN bonus is sedikit
• Di bawah variabel pelayanan pilih mengecewakan• Di bawah variabel makanan pilih hambar• Di bawah variabel bonus pilih sedikit• Isi bobot Weight dengan 1• Klik Add Rule
![Page 22: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/22.jpg)
22
Menyisipkan kaidah IF-THEN pertama:IF (pelayanan is bagus) THEN bonus is sedang
• Di bawah variabel pelayanan pilih bagus• Di bawah variabel makanan pilih none• Di bawah variabel bonus pilih banyak• Isi bobot Weight dengan 1• Klik Add Rule
![Page 23: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/23.jpg)
23
Menyisipkan kaidah IF-THEN pertama:IF (pelayanan is memuaskan) or (makanan is enak) THEN bonus is banya
• Di bawah variabel pelayanan pilih memuaskan• Di bawah variabel makanan pilih enak• Di bawah variabel bonus pilih banyak• Isi bobot Weight dengan 1• Klik Add Rule
![Page 24: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/24.jpg)
24
• Hasil:
![Page 25: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/25.jpg)
25
Rule Viewer• Rule viewer menampilkan proses inferensi di dalam FIS.
![Page 26: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/26.jpg)
26
Surface Viewer• Surface Viewer menampilkan keluaran FIS dalam plot 3-D
![Page 27: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/27.jpg)
27
Fungsi-Fungsi Penampil FIS
Tiga perintah:1. plotfis2. plotmf3. Gensurf
Ubah terlebih dahulu current directory ke direktori kerja
![Page 28: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/28.jpg)
28
1. Plotfis• Dari prompt MATLAB, ketikkan perintah-perintah berikut:
>> a = readfis(‘fisbonus’);>> plotfis(a)
![Page 29: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/29.jpg)
29
2. Plotmf>> plotmf(a, ‘input’, 1)
![Page 30: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/30.jpg)
30
>> plotmf(a, ‘input’, 2)
![Page 31: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/31.jpg)
31
>> plotmf(a, ‘output’, 1)
![Page 32: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/32.jpg)
32
3. Gensurf>> gensurf(a)
![Page 33: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/33.jpg)
33
Membangun FIS Tipe Sugeno
• Dari FIS editor, pilih File New FIS Sugeno
![Page 34: Fuzzy Logic dengan Menggunakan MATLAB](https://reader033.fdocuments.net/reader033/viewer/2022061503/568165ad550346895dd898bc/html5/thumbnails/34.jpg)
34
Konversi FIS Mamdani FIS Sugeno
>> fisbonus =readfis('fisbonus');>> sgnfisbonus=mam2sug(fisbonus)
Respon MATLAB:name: 'fisbonus'
type: 'sugeno' andMethod: 'min' orMethod: 'max' defuzzMethod: 'wtaver' impMethod: 'min' aggMethod: 'max' input: [1x2 struct] output: [1x1 struct] rule: [1x3 struct]