Tujuan
Mahasiswa diharapkan dapat:
Mahasiswa mengenal Reasoning Fuzzy bagian kedua
Mahasiswa dapat mengetahui dan mengenal contoh studi kasus yang dapat
diselesaikan dengan metode Reasoning Fuzzy bagian kedua
Mahasiswa mampu menerapkan metode Reasoning Fuzzy bagian kedua
menggunakan bahasa Python
Ringkasan Materi
Logika fuzzy merupakan pengembangan dari logika primitif yang hanya mengenal
keadaan, yaitu “ya” atau “tidak”. Dengan adanya logika fuzzy, dapat mengenal peubah-
peubah linguistik seperti “agak besar”, “besar”, “sangat besar”, dan sebagainya.Dengan
demikian, aplikasi logika fuzzi akan menyebabkan sistem lebih adaptif. Dalam membangun
sebuah sistem Fuzzy dikenal beberapa metode penalaran, antara lain: metode Tsukomoto,
metode Mamdani dan metode Sugeno.
Metode Fuzzy Mamdani merupakan salah satu bagian dari Fuzzy Inference System
yang berguna untuk penarikan kesimpulan atau suatu keputusan terbaik dalam permasalahan
yang tidak pasti. Metode Fuzzy Mamdani diperkenalkan oleh Ebrahim Mamdani pada tahun
1975. Metode Fuzzy Mamdani dalam prosesnya menggunakan kaedah-kaedah linguistik dan
memiliki algoritma fuzzy yang dapat dianalisis secara matematika, sehingga lebih mudah
dipahami.
Proses pengambilan keputusan dengan menggunakan Metode Fuzzy Mamdani untuk
memperoleh keputusan yang terbaik, dilakukan dengan melalui beberapa tahapan, yaitu
pembentukan himpunan fuzzy; aplikasi fungsi implikasi; komposisi aturan; defuzzifikasi.
Kelebihan pada Metode Fuzzy Mamdani adalah lebih spesifik, artinya dalam prosesnya
Metode Fuzzy Mamdani lebih memperhatikan kondisi yang akan terjadi untuk setiap daerah
fuzzynya, sehingga menghasilkan hasil keputusan yang lebih akurat. Selain itu juga, metode
ini lebih cocok apabila input diterima dari manusia, sehingga lebih diterima oleh banyak pihak.
Adapun kelemahan dari Metode Fuzzy Mamdani adalah metode ini hanya dapat digunakan
untuk data dalam bentuk kuantitatif saja, tidak dapat dipergunakan untuk data yang
berbentuk kualitatif.
Metode Fuzzy Mamdani merupakan metode dalam penarikan kesimpulan yang paling
mudah dimengerti oleh manusia, karena paling sesuai dengan naluri manusia. Sehingga
dengan menggunakan Metode Fuzzy Mamdani akan menghasilkan keputus an terbaik untuk
suatu permasalahan. Dibandingkan dengan metode lain dari Fuzzy Inference System, yaitu
Metode Sugeno, metode tersebut tidak melalui proses komposisi aturan dan defuzzifikasi
dengan Metode Centroid. Proses tersebut berguna untuk mengetahui nilai output dari pusat
daerah fuzzy. Selain itu, Metode Fuzzy Mamdani lebih memperhatikan kondisi setiap daerah
fuzzynya, sehingga menghasilkan hasil yang lebih akurat. Pada Metode Fuzzy Mamdani
output yang dihasilan berupa suatu nilai pada domain himpunan fuzzy yang dikategorikan ke
dalam komponen linguistik, sedangkan pada Metode Sugeno output yang dihasilkan berupa
fungsi linear atau konstanta. Kelemahan dari output berupa fungsi linear atau konstanta
adalah nilai output yang dihasilkan harus sesuai dengan nilai yang telah ditentukan, hal ini
timbul masalah apabila nilai output tidak sesuai dengan kriteria yang telah ditentukan. Output
ini dapat dikatakan benar apabila dapat menyajikan output yang ditentukan oleh antesenden.
Metode Mamdani sering juga dikenal dengan nama Metode Max-Min. Untuk
mendapatkan output, diperlukan empat tahapan:
1. Pembentukan Himpunan Fuzzy
2. Aplikasi Fungsi Implikasi
3. Komponen Aturan
4. Penegasan (defuzzy)
Diketahui bahwa jumlah permintaan konsumen adalah 4000 botol, maka diperoleh nilai
keanggotannya adalah:
Persediaan (botol/hari)
Gambar 2. Fungsi Keanggotaan Variabel Persediaan
Dengan fungsi keanggotaan sebagai berikut:
Diketahui bahwa jumlah persediaan di gudang adalah 300 botol, maka diperoleh nilai
keanggotannya adalah:
dimana, banyaknya n ditentukan berdasarkan jumlah dari variabel input fuzzy yang
digunakan. Suatu proposisi ini digunakan untuk pembentukan keputusan atau menghasilkan
output dari proposisi yang telah ditentukan. Penentuan proposisi ini dibentuk berdasarka n
kriteria-kriteria yang telah ditentukan dengan penilaian yang sesuai dengan objek, dan
berdasarkan fakta yang diketahui. Setelah terbentuknya proposisi, selanjutnya adalah
menentukan nilai keanggotaan berdasarkan aturan fuzzy yang telah dibentuk mengguna kan
fungsi implikasi Min. Pada fungsi implikasi Min, digunakan operator AND (interseksi).
Nilai keanggotaan sebagai hasil dari operasi dua himpunan atau lebih pada fungsi
implikasi Min didefinisikan sebagai berikut:
Berdasarkan ilustrasi kasus, proses selanjutnya akan menentukan aplikasi fungsi implikasinya,
terdapat 4 aturan fungsi implikasi pada Metode Fuzzy Mamdani, yaitu:
[R1] IF Permintaan Turun AND Persediaan Banyak THEN Produksi Barang Berkurang.
[R2] IF Permintaan Turun AND Persediaan Sedikit THEN Produksi Barang Berkurang.
[R3] IF Permintaan Naik AND Persediaan Banyak THEN Produksi Barang Bertambah.
[R4] IF Permintaan Naik AND Persediaan Sedikit THEN Produksi Barang Bertambah.
Selanjutnya yang dilakukan yaitu menenentukan nilai keanggotaan berdasarkan aturan fuzzy
yang telah dibentuk.
[R1] IF Permintaan Turun AND Persediaan Banyak THEN Produksi Barang Berkurang.
Gambar 4. Aplikasi Fungsi Implikasi R1
[R2] IF Permintaan Turun AND Persediaan Sedikit THEN Produksi Barang Berkurang.
[R3] IF Permintaan Naik AND Persediaan Banyak THEN Produksi Barang Bertambah.
Gambar 6. Aplikasi Fungsi Implikasi R3
[R4] IF Permintaan Naik AND Persediaan Sedikit THEN Produksi Barang Bertambah.
dengan 𝜇𝑠𝑓 (𝑥𝑖 ) menyatakan nilai keanggotaan solusi fuzzy sampai aturan ke-i, 𝜇𝑘𝑓 (𝑥𝑖 )
1.4 Defuzzifikasi
Tahap terakhir dari prosedur Metode Fuzzy Mamdani adalah proses defuzzifikasi.
Proses defuzzifikasi dipergunakan untuk menafsirkan nilai keanggotaan fuzzy menjadi
keputusan tertentu atau bilangan real. Hal ini berarti mengembalikan nilai besaran fuzzy
menjadi nilai crisp (bilangan real), dan mengubah fuzzy output menjadi nilai crisp berdasarkan
fungsi keanggotaan yang telah ditentukan. Proses defuzzifikasi ini perlu dilakukan, karena
keputusan fuzzy atau output adalah tetap variabel linguistik dan variabel linguistik ini
membutuhkan untuk dikonversi ke dalam variabel crisp.
Input dari langkah defuzzifikasi adalah himpunan fuzzy yang diperoleh dari komposisi
aturan fuzzy, sedangkan output, suatu bilangan pada domain himpunan fuzzy tersebut. Oleh
karena itu, apabila diketahui suatu himpunan fuzzy dalam suatu range tertentu, maka harus
dapat diperoleh suatu nilai crisp (bilangan real) tertentu sebagai output atau hasil
keputusannya. Metode yang dipergunakan dalam proses defuzzifikasi ini adalah defuzzifikasi
dengan Metode Centroid (titik pusat). Metode ini memperhatikan kondisi setiap daerah
fuzzynya, sehingga menghasilkan hasil yang lebih akurat. Metode centroid yaitu suatu metode
dimana semua daerah fuzzy dari hasil komposisi aturan digabungkan dengan tujuan untuk
membentuk hasil yang optimal dan mengambil titik pusat daerah fuzzy. Prosedur defuzzifikasi
dengan menggunakan Metode Centroid, yaitu menentukan moment (integral dari masing-
masing fungsi keanggotaan dari komposisi aturan), menentukan luas, dan menentukan titik
pusat.
Proses dalam menentukan titik pusat daerah fuzzy dilakukan dengan menggunakan
perumusan:
dengan z* menyatakan nilai hasil defuzzifikasi /titik pusat daerah fuzzy, 𝜇(𝑧) menyatakan
nilai keanggotaan, dan ∫𝑧 𝜇(𝑧)𝑧 𝑑𝑧 menyatakan momen untuk semua daerah hasil komposisi
aturan.
Luas untuk setiap daerah hasil komposisi aturan dapat diperoleh dengan cara mencari
luas berdasarkan bentuk dari masing-masing daerah hasil komposisi aturannya, atau dapat
pula dengan menggunakan integral, yaitu ∫𝑧 𝜇(𝑧) 𝑑𝑧 . Nilai dari z* merupakan nilai hasil dari
proses defuzzifikasi, nilai ini merupakan hasil dari keputusan akhir, dan disesuaikan dengan
variabel linguistik dari himpunan fuzzy yang telah ditentukan pada proses awal, yaitu
pembentukan himpunan fuzzy.
Ilustrasi Proses Defuzzifikasi:
Misalkan terdapat tiga daerah fuzzy dari hasil proses komposisi aturan, yaitu Daerah Fuzzy I,
Daerah Fuzzy II, dan Daerah Fuzzy III. Dari ketiga daerah fuzzy tersebut digabungkan dan
digunakan proses defuzzifikasi agar menghasilkan nilai dari keputusan akhir, sebagai berikut:
Untuk Momen 2
Untuk Momen 3
Untuk Luas 2
Untuk Luas 3
Jadi, jumlah botol minuman A yang harus diproduksi adalah sebanyak 4248 botol .
Praktikum
1. Percobaan 1: Penerapan Metode Fuzzy Mamdani dengan bahasa Python
Sebelum masuk kepada fungsi utama dari kode program, kita dapat membuat terlebih
dahulu beberapa fungsi yang nantinya dapat kita manfaatkan dalam program kita.
Fungsi ke-1:
Fungsi ke-2:
Fungsi ke-3:
Fungsi ke-4:
Fungsi ke-5:
Fungsi ke-6:
Fungsi ke-7:
Terdapat tiga buah variabel input untuk studi kasus yang diambil pada jobsheet kali ini.
Variabel input berupa target temperatur, temperatur sekarang dan temperatur
sebelumnya. Ketiga variabel tersebut menjadi komponen dari variabel global, yang
dimasukkan ke dalam fungsi utama dari program.
Berikut ini diberikan fungsi yang mendefinisikan aturan (rule) dari metode kita:
Setelah itu diberikan pula baris kode yang berisi beberapa fungsi yang berhubungan
dengan pengujian Fuzzy rule sebagai berikut:
Tidak ketinggalan diberikan pula kode yang digunakan sebagai fungsi defuzzifikasi
sehingga kita akan memperoleh output dengan angka yang nyata (tidak fuzzy lagi). Serta
kode yang memanggil fungsi utama dari program kita:
Ilustrasi Kasus:
Suatu perusahaan makanan kaleng akan memproduksi makanan jenis ABC. Dari data
1 bulan terakhir, permintaan terbesar mencapai 5000 kemasan/hari, dan permintaan terkecil
mencapai 1000 kemasan/hari. Persediaan barang digudang terbanyak mencapai 600
kemasan/hari, dan terkecil pernah mencapai 100 kemasan/hari. Dengan segala
keterbatasannya perusahaan sampai saat ini baru mampu memproduksi brang maksimum
7000 kemasan/hari, untuk efisiensi mesin dan SDm tiap hari diharapkan perusahaan
memproduksi paling tidak 2000 kemasan. Berapa kemasan makanan jenis ABC yang harus
diprosuksi, jika jumlah permintaan sebanyak 4000 kemasan, dan persediaan di gudang masih
300 kemasan, apabilla proses produksi perusahaan tersebut menggunakan 4 aturan fuzzy
sebagai berikut:
[R1] IF permintaan TURUN And Persediaan BANYAK, THEN Produksi Barang BERKURANG;
[R2] IF permintaan TURUN And Persediaan SEDIKIT, THEN Produksi Barang BERKURANG;
[R3] IF permintaan NAIK And Persediaan BANYAK, THEN Produksi Barang BERTAMBAH;
[R4] IF permintaan TURUN And Persediaan SEDIKIT, THEN Produksi Barang BERTAMBAH;
Solusi:
Ada 3 variable fuzzy yang akan dimodelkan, yaitu:
1. Permintaan terdiri atas 2 himpunan fuzzy, yaitu NAIK dan TURUN
µPmtTURUN [x] = {(1, x ≤ 1000), ((5000-x)/4000, 1000 ≤ x ≤ 5000), (0, x ≥ 5000)}
µPmtNAIK [x] = {(0, x ≤ 1000), ((x -1000)/4000, 1000 ≤ x ≤ 5000), (1, x ≥ 5000)}
Nilai Keanggotaan :
µPmtTURUN (4000) = (5000-4000)/4000 = 0.25
µPmtTURUN (4000) = (4000-1000)/4000 = 0.75
2. Persediaan, terdiri atas 2 himpunan fuzzy, yaitu SEDIKIT dan BANYAK
Nilai keanggotaan:
µPmtSEDIKIT[y] = {(1, y ≤ 1000), ((600 – y)/500, 100 ≤ y ≤ 600), (0, y ≥ 600)}
µPmtBANYAK [y] = {(0, y ≤ 1000), ((y-1000)/500, 100≤ y ≤ 600), (1, y ≥ 600)}
Nilai Keanggotaan :
µPmtSEDIKIT(300) = (600-300)/500 = 0.26
µPmtBANYAK (300) = (300-100)/500 = 0.4
3. Produksi barang, terdiri atas 2 himpunan fuzzy, yaitu: BERKURANG dan BERTAMBAH
Nilai keanggotaan:
µPmtBERKURANG[z] = {(1, z ≤ 2000), ((7000 – z)/5000, 2000 ≤ z≤ 7000), (0, z ≥ 7000)}
µPmtBERTAMBAH[z] = {(0, z ≤ 2000), ((z-2000)/5000, 2000≤ z ≤ 7000), (1, z ≥ 7000)}
Sekarang kita cari nilai z untuk setiap aturan dengan menggunakan fungsi MIN pada aplikasi
fungsi implikasinya:
[R1] IF permintaan TURUN And Persediaan BANYAK THEN Produksi Barang BERKURANG;
α-predikat1 = µPmtTURUN | µPmtBAYAK
α-predikat1 = min ( µPmtTURUN , µPmtBANYAK )
α-predikat1 = min (0.25; 0,4)
α-predikat1 = 0.25
lihat himpunan Produksi Barang Berkurang
(7000-z)/5000=0.25 -> z1= 5750
[R2] IF permintaan TURUN And Persediaan SEDIKIT THEN Produksi Barang BERKURANG;
α-predikat2 = µPmtTURUN | µPmtSEDIKIT
α-predikat2 = min ( µPmtTURUN , µPmtSEDIKIT)
α-predikat2 = min (0.25; 0,6)
α-predikat2 = 0.25
lihat himpunan Produksi Barang Berkurang
(7000-z)/5000=0.25 -> z2= 5750
[R3] IF permintaan NAIK And Persediaan BANYAK THEN Produksi Barang BERTAMBAH;
α-predikat3 = µPmtNAIK | µPmtBANYAK
α-predikat3 = min ( µPmtNAIK , µPmtBANYAK)
α-predikat3 = min (0.75; 0,4)
α-predikat3 = 0.4
lihat himpunan Produksi Barang Bertambah
(z-2000)/5000=0.4 -> z3= 4000
[R4] IF permintaan TURUN And Persediaan SEDIKIT THEN Produksi Barang BERTAMBAH;
α-predikat4 = µPmtTURUN | µPmtSEDIKIT
α-predikat4 = min ( µPmtTURUN , µPmtSEDIKIT )
α-predikat4 = min (0.75; 0,6)
α-predikat4 = 0.6
lihat himpunan Produksi Barang Bertambah
(z-2000)/5000=0.6 -> z4= 5000
Praktikum
2. Percobaah 2: Penerapan Metode Fuzzy Tsukamoto dengan bahasa Python
Terdapat dua buah variable input untuk studi kasus yang diambil pada jobsheet
kali ini. Variabel input berupa kualitas kecepatan (velocity) dan jarak (distance)
yang akan menentukan output berupa saran rem (brake).
Untuk dapat membuat program fuzzy dengan Python diperlukan beberapa import
library sebagai berikut:
Tahap selanjutnya adalah generate variabel global. Untuk variabel input velocity
berada pada rentang subjektif antara 0 sampai 85.5. Kemudian variable input
distance berada pada rentang subjektif antara 0 sampai dengan 90.5. sedangkan
untuk variabel output brake berada pada rentang subjektif antara 0 sampai 360.5
sesuai dengan kode berikut ini:
Terdapat beberapa rule dalam implementasi fuzzy studi kasus jobsheet ini. Rule tersebut
dideklarasikan dalam kode berikut ini:
Berdasarkan aktivasi dari setiap fungsi keanggotaan yang telah diketahui. Maka aktivasi
semua output tersebut harus digabungkan, untuk mendapatkan output sesuai dengan
angka yang nyata (tidak fuzzy lagi). Sehingga diperlukan proses Deffuzyfikasi yang
menyesuaikan dengan rule yang ada. Kode berikut digunakan untuk menampilkan hasil
serta grafik yang berhubungan dengan studi kasus ini:
Pertanyaan
1) Jelaskan dengan detil tentang kode program pada Percobaan 2 diatas. Kemudian jelaskan
pula nilai input berupa velocity dan distance, serta hasil outputnya.
2) Lakukan kembali Percobaan 2 dengan input velocity dan distance yang berbeda, serta
jelaskan pula hasil output yang diperoleh.
3) Jelaskan dengan detil tentang kode program mengenai visualisasi pada Percobaan 2 di
atas!
TUGAS
1) Selain metode Fuzzy Mamdani dan Tsukamoto, terdapat pula metode Fuzzy Sugeno.
Tugas anda adalah mencari perbedaan dari ketiga metode tersebut. Setelah itu berikan
contoh penerapan kasus yang menggunakan metode Fuzzy Sugeno dengan bahasa
Pemrograman Python. Jelaskan nilai input dan output dari contoh kasus yang anda
berikan tersebut!
Daftar Pustaka
1. http://repository.upi.edu/26232/6/S_MAT_1201755_Chapter3.pdf
2. https://logikapagi.wordpress.com/2015/11/15/27/
3. https://github.com/xxvvanda/Fuzzy-Logic-In-
Indonesian/blob/master/fuzzy%20original.py
4. https://gist.github.com/ryangmolina/e1c87509b6919ac8aaf3eceb315d3e5e
5. Using Fuzzy Logic, Toward Intelligent System, Jun Yan dkk,1993, Prentice Hall.
Fundamental of Neural Networks, Laurene Fauset, 1994, Prentice Hall.