Anda di halaman 1dari 17

JOBSHEET 4: LOGIKA FUZZY

ARTIFICIAL INTELLIGENCE (AI)

Dosen : Dr. Kurnianingsih, S.T.,M.T.


Disusun oleh
Nama : Dwi suci amalia NIM :
4.33.20.1.07

PROGRAM STUDI TEKNOLOGI REKAYASA KOMPUTER


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2021
LATIHAN
1.

 Fuzzifikasi (Tsukamoto) µ[x] Permintaan, terdiri-atas 2 himpunan


fuzzy yaitu BELANDA dan
AMERIKA
Nilai keanggotaan :
µPermintaan Amerika [60000] = (75000 – 60000) / 30000 = 0,5
µPermintaan Belanda [60000] = (60000 – 45000) / 30000 = 0,5 µ[y]
Permintaan, terdiri-atas 2 himpunan fuzzy yaitu NAIK dan TURUN

µPermintaan Turun [8000] = (13000 – 8000) / 13000 = 0,38


µPermintaan Naik [8000] = (8000 – 7000) / 13000 = 0,07

µ[z] Permintaan, terdiri-atas 2 himpunan fuzzy yaitu SEDIKIT dan BANYAK


Pembentukan Rule
• [R1] : IF permintaan TURUN AND persediaan BANYAK THEN produksi
BERKURANG
• [R2] : IF permintaan NAIK AND persediaan SEDIKIT THEN produksi
BERTAMBAH
• [R3] : IF permintaan NAIK AND persediaan BANYAK THEN produksi
BERTAMBAH
• [R4] : IF permintaan TURUN AND persediaan SEDIKIT THEN produksi
BERKURANG

• Inferensi (Tsukamoto) α-predikat1 = µBelanda  Amerika =


min( µBelanda[60000]  Amerika[60000])
= min(0,5 ; 0,5)
= 0,5
Lihat himpunan Sedikit pada grafik keanggotaan variabel frekuensi,
(100000-z)/85000 = 0,5  z1 = 57500 tahu gimbal
α-predikat2 = µBelanda  Turun =
min( µBelanda[60000]  Turun[8000])
= min(0,5 ; 0,38)
= 0,38
Lihat himpunan Sedikit pada grafik keanggotaan variabel frekuensi,
(100000-z)/85000 = 0,38  z2 = 67700 tahu gimbal

α-predikat3 = µAmerika  Naik =


min( µAmerika[60000]  Naik[8000])
= min(0,5 ; 0,07)
= 0,07
Lihat himpunan Banyak pada grafik keanggotaan variabel frekuensi,
(z-15000)/85000 = 0,07  z3 = 20950 tahu gimbal

α-predikat4 = µAmerika  Turun =


min( µAmerika[60000]  Turun[8000])
= min(0,5 ; 0,38)
= 0,38
Lihat himpunan Banyak pada grafik keanggotaan variabel frekuensi,
(z-15000)/85000 = 0,38  z4 = 47300 tahu gimbal

 Defuzzifikasi (Tsukamoto)
z=

z= ,∗
, ∗ , ∗ , ∗ = , = 55576 tahu gimbal
, , , , .

2.
 Fuzzifikasi
Variabel Biaya Produksi, terdiri dari tiga himpunan fuzzy, yaitu
RENDAH, STANDAR dan TINGGI.
Derajat keanggotaan untuk biaya produksi Rp800 per bungkus adalah :

Variabel Permintaan, terdiri dari dua himpunan fuzzy, yaitu TURUN dan
NAIK.

Derajat keanggotaan untuk permintaan 25000 bungkus adalah :

Variabel Produksi, terdiri dari tiga himpunan fuzzy, yaitu BERKURANG,


NORMAL dan BERTAMBAH.
3.
Fuzzifikasi (Sugeno)
µ[x] Permintaan, terdiri-atas 2 himpunan fuzzy yaitu Turun dan Naik

Nilai keanggotaan : µPermintaan Turun [60000] = (75000 –


60000) / 60000 = 0,25
µPermintaan Naik [60000] = (60000 – 55000) / 30000 = 0,08

µ[y] Permintaan, terdiri-atas 2 himpunan fuzzy yaitu Sedikit dan Banyak

µPermintaan Sedikit [8000] = (13000 – 8000) / 6000 = 0,8 µPermintaan


Banyak [8000] = (8000 – 7000) / 6000 = 0,1

Pembentukan Rule (Sugeno)


• [R1] : IF permintaan TURUN AND persediaan BANYAK THEN produksi =
2*permintaan – 110.000
• [R2] : IF permintaan NAIK AND persediaan SEDIKIT THEN produksi =
permintaan + 7000
• [R3] : IF permintaan NAIK AND persediaan BANYAK THEN produksi =
permintaan - persediaan

Inferensi (Sugeno)

Permintaan 60000 dan Persediaan 8000

α-predikat1 = µTurun  Banyak


= min( µTurun[60000]  Banyak[60000])
= min(0,25 ; 0,1)
= 0,1
Lihat himpunan Sedikit pada grafik keanggotaan variabel frekuensi,
= 2 *permintaan – 110000
= 2 * 60000 – 110000
= 10000

α-predikat2 = µNaik  µSedikit


= min( µNaik[60000]  Turun[60000])
= min(0,08 ; 0,8)
= 0,08
Lihat himpunan Sedikit pada grafik keanggotaan variabel frekuensi,
= permintaan + 7000
= 60000 + 7000 = 67000 α-predikat3 = µ Naik  µ
Banyak = min( µNaik[60000] 
Banyak[8000])
= min(0,08 ; 0,1)
= 0,08

Lihat himpunan Banyak pada grafik keanggotaan variabel frekuensi,


= permintaan - persediaan
= 60000 – 8000
= 52000
Defuzzifikasi (Sugeno)
z=

z= ,∗

, ∗ ,∗
= = 40461 tahu gimbal
, , , ,
Jobsheet 6

Please accomplish this following problem using Python & Matlab Suatu
perusahaa makanan kaleng setiap harinya rata – rata menerima permintaan sekitar
5500 kaleng, dan dalam 3 bulan terakhir permintaan tertinggi 75000 kaleng.
Makanan kaleng yang masih tersedia di Gudang, setiap harinya rata – rata 7000
kaleng, sedangkan kapasitas Gudang maksimum hanya dapat menampung 13000
kaleng. Apabila sistem produksinya menggunakan aturan fuzzy sebagai berikut:
• [R1] IF Permintaan TURUN And Persediaa BANYAK THEN Produksi
Barang BERKURANG
• [R2] IF Permintaan NAIK And Persediaan SEDIKIT THEN Produksi Barang
BERTAMBAH
• [R3] IF Permintaan NAIK And Persediaan BANYAK THEN Produksi Barang
BERTAMBAH
• [R4] IF Permintaan TURUN And Persediaan SEDIKIT THEN Produksi
Barang BERKURANG
Tentukanlah berapa jumlah barang yang harus diproduksi hari ini, jika permintaan
sebanyak persediaan yang masih ada di Gudang sebanyak 8000 kaleng.
• Source Code
import numpy as np import skfuzzy
as fuzz from skfuzzy import
control as ctrl
permintaan = ctrl.Antecedent(np.arange(0, 75001,
1),
'permintaan') persediaan =
ctrl.Antecedent(np.arange(0, 13001, 1),
'persediaan') produksi = ctrl.Antecedent(np.arange(0, 120001,
1), 'produksi')

permintaan['turun'] = fuzz.gaussmf(permintaan.universe, 0, 55000)


permintaan['naik'] = fuzz.gaussmf(permintaan.universe,
55000,75000)
persediaan['sedikit']=
fuzz.trapmf(persediaan.universe,
[0, 0, 7000, 10000])
persediaan['banyak']= fuzz.trapmf(persediaan.universe,
[10000, 12000, 13000, 13000])

produksi['berkurang'] = fuzz.trapmf(produksi.universe,
[0, 0, 60000, 90000]) produksi['bertambah'] =
fuzz.trapmf(produksi.universe, [90000, 110000,
120000, 120000])

permintaan.view()
persediaan.view() produksi.view()
rule1 = ctrl.Rule(permintaan['turun'] &
persediaan['banyak'], produksi['berkurang'])
rule2 = ctrl.Rule(permintaan['naik'] &
persediaan['sedikit'], produksi['bertambah'])
rule3 = ctrl.Rule(permintaan['naik'] &
persediaan['banyak'], produksi['bertambah'])
rule4 = ctrl.Rule(permintaan['turun'] &
persediaan['sedikit'], produksi['berkurang'])
tipping_ctrl = ctrl.ControlSystem([rule1, rule2,
rule3, rule4]) tipping =
ctrl.ControlSystemSimulation(tipping_ctrl)
tipping.input['permintaan'] =
60000 tipping.input['persediaan'] =
8000

tipping.compute()
print(tipping.output['produksi'])
produksi.view(sim=tipping)
inp = input("Press any
button...")
• Hasil Program

• MATLAB
 Input Permintaan
 Input Persediaan

 Output Produksi
 Rules

 Produksi yang dibutuhkan jika Permintaan = 60000 dan


Persediaan = 8000

Anda mungkin juga menyukai