Anda di halaman 1dari 6

Nama : I Gusti Nyoman Anton Surya Diputra

NIM : 1915051027
Kelas : B
QUIZ Pengantar Kecerdasan Buatan Ganjil 2021/2022

Buatlah sebuah sistem Fuzzy untuk permasalahan Berikut:


Suatu perusahaan produksi menghasilkan jenis produk makanan. Permintaan terbesar adalah
6000 produk dan Permintaan terkecil adalah 2000 produk. Persediaan di gudang paling besar
adalah 800 dan paling kecil adalah 100. Produksi maksimum barang maksimum adalah 8000
produk dan paling kecil adalah 2000 produk. Rule yang digunakan adalah:

[R1] IF Permintaan TURUN And Persediaan SEDIKIT


THEN Produksi Barang BERKURANG;
[R2] IF Permintaan NAIK And Persediaan BANYAK
THEN Produksi Barang BERTAMBAH;
[R3] IF Permintaan NAIK And Persediaan SEDIKIT
THEN Produksi Barang BERTAMBAH;
[R4] IF Permintaan TURUN And Persediaan BANYAK
THEN Produksi Barang BERKURANG;
Jawab:
(a) Kode program sistem Fuzzy (menggunakan library Skfuzzy)
"""
@author: I Gusti Nyoman Anton Surya Diputra
         (1915051027)
         PTI 5 B
"""

import numpy as np
import skfuzzy as fuzz
from skfuzzy import control as ctrl

#Definisikan input (Antecedent) 
permintaan=ctrl.Antecedent(np.arange(2000,6001,1),'Permintaan')
persediaan=ctrl.Antecedent(np.arange(100, 801,1),'Persediaan')
produksi=ctrl.Consequent(np.arange(2000,8001,1), 'Produksi')

#permintaan.automf(2)
#permintaan.view()

#Permintaan
permintaan['turun']=fuzz.trimf(permintaan.universe,[2000,2000,6000])
permintaan['naik']=fuzz.trimf(permintaan.universe,[2000,6000,6000])

permintaan.view()

#Persediaan
persediaan['sedikit']=fuzz.trimf(persediaan.universe,[100,100,800])
persediaan['banyak']=fuzz.trimf(persediaan.universe,[100,800,800])

persediaan.view()

#Produksi
produksi['berkurang']=fuzz.trimf(produksi.universe, [2000,2000,8000])
produksi['bertambah']=fuzz.trimf(produksi.universe, [2000,8000,8000])

produksi.view()

#Rule 
rule1=ctrl.Rule(permintaan['turun']&persediaan['sedikit'],produksi['berkurang'])
rule2=ctrl.Rule(permintaan['naik']&persediaan['sedikit'],produksi['bertambah'])
rule3=ctrl.Rule(permintaan['turun']&persediaan['banyak'],produksi['berkurang'])
rule4=ctrl.Rule(permintaan['naik']&persediaan['banyak'],produksi['bertambah'])

tipping_ctrl=ctrl.ControlSystem([rule1,rule2,rule3,rule4])

tipping=ctrl.ControlSystemSimulation(tipping_ctrl)

#Ujicoba
nilaiPermintaan=4500
nilaiPersediaan=200

tipping.input['Permintaan'] = nilaiPermintaan
tipping.input['Persediaan'] = nilaiPersediaan

tipping.compute()

print('Persediaan',nilaiPermintaan,' dan Persediaan =',nilaiPersediaan, ' adalah = ', tipping.output['
Produksi'],'%' )

(b) Screenshoot Grafik Fungsi Keanggotaan


1. Permintaan

Gambar 1. Grafik Keanggotaan Permintaan


2. Persediaan

Gambar 2. Grafik Keanggotaan Persediaan

3. Produksi

Gambar 3. Grafik Keanggotaan Produksi


(c) Screenshoot hasil running Program

Gambar 4. Workspace Spyder

Gambar 5. Running Program


(d) Berapakan jumlah produksi jika Permintaan adalah 4500 dan Persediaan adalah 200 ?
Ketika penulis mencoba menginput permintaan 4500 dan persediaan 200, maka hasil yang
ditampilkan yaitu 5367.187499999996 %.

Gambar 6. Hasil Inputan

Anda mungkin juga menyukai