ini adalah sourcode program python
#Contoh Metode Sugeno
#soal
#Sebuah perusahaan makanan kaleng akan memproduksi makanan jenis ABC.
#Dari data 1 bulan terakhir, permintaan terbesar hingga mencapai 5000 kemasan/hari, dan permintaan terkecil sampai 1000 kemasan/hari.
#Persediaan barang digudang paling banyak sampai 600 kemasan/hari, dan paling sedikit sampai 100 kemasan/hari.
#Dengan segala keterbatasannya, sampai saat ini, perusahaan baru mampu memproduksi barang maksimal 7000 kemasan/hari,
#serta demi efisiensi mesin dan SDM tiap hari diharapkan perusahaan memproduksi paling tidak 2000 kemasan.
#Rule
#Apabila proses produksi perusahaan tersebut menggunakan 4 aturan sebagai berikut:
#1. Rule 1
# IF permintaan TURUN and persediaan BANYAK THEN produksi barang = permintaan - persediaan
#2. Rule 2
# IF permintaan TURUN and persediaan SEDIKIT THEN produksi barang = permintaan
#3. Rule 3
# IF permintaan NAIK and persediaan BANYAK THEN produksi barang = permintaan
#4. Rule 4
# IF permintaan NAIK and persediaan SEDIKIT THEN produksi barang = 1.25*permintaan - persediaan
#Pertanyaan
#Berapa kemasan makanan jenis ABC yang harus diproduksi,
#jika jumlah permintaan sebanyak 3500 kemasan, dan persediaan di gudang masih 300 kemasan ?
#(Gunakan fungsi keanggotaan LINEAR)
#Jawaban
#Ada 3 variabel yang digunakan: PERMINTAAN, PERSEDIAAN, dan PRODUKSI
#1. PERMINTAAN: 1000 – 5000, x = 3500
#2. PERSEDIAAN: 100 - 600, y = 300
#3. PRODUKSI: 2000 – 7000, z = ?
#coding fuzzy sugeno
permintaan = int (input ("Masukkan nilai permintaan = "))
persediaan = int (input ("Nasukkan nilai persediaan = "))
print ()
#Nilai keanggotaan untuk nilai PERMINTAAN
permintaan_turun = (5000 - permintaan) / 4000
permintaan_naik = (permintaan - 1000) / 4000
print ("Hasil permintaan turun = ", permintaan_turun)
print ("Hasil permintaan naik = ", permintaan_naik)
print ()
#Nilai keanggotaan untuk nilai PERSEDIAAN
persediaan_sedikit = (600 - persediaan) / 500
persediaan_banyak = (persediaan - 100) / 500
print ("Hasil persediaan sedikit = ", persediaan_sedikit)
print ("Hasil persediaan banyak = ", persediaan_banyak)
print ()
#hitung rule1 nilai PREDIKAT1 dan Z2
if permintaan_turun > persediaan_banyak:
predikat1 = persediaan_banyak
print ("Nilai Predikat1 adalah = ", predikat1)
else:
predikat1 = permintaan_turun
print ("Nilai Predikat1 adalah = ", predikat1)
z1 = permintaan - persediaan
print ("Hasil Z1 adalah = ", z1)
print ()
#hitung nilai rule2 PREDIKAT2 dan Z2
if permintaan_turun > persediaan_sedikit:
predikat2 = persediaan_sedikit
print ("Nilai Predikat2 adalah = ", predikat2)
else:
predikat2 = permintaan_turun
print ("Nilai Predikat2 adalah = ", predikat2)
z2 = permintaan
print ("Hasil Z2 adalah = ", z2)
print ()
#hitung nilai rule3 PREDIKAT3 dan Z3
if permintaan_naik > persediaan_banyak:
predikat3 = persediaan_banyak
print ("Nilai Predikat3 adalah = ", predikat3)
else:
predikat3 = permintaan_naik
print ("Nilai Predikat3 adalah = ", predikat3)
z3 = permintaan
print ("Hasil Z3 adalah = ", z3)
print ()
#hitung nilai rule4 PREDIKAT4 dan Z4
if permintaan_naik > persediaan_sedikit:
predikat4 = persediaan_sedikit
print ("Nilai Predikat4 adalah = ", predikat4)
else:
predikat4 = permintaan_naik
print ("Nilai Predikat4 adalah = ", predikat4)
z4 = 1.25 * permintaan - persediaan
print ("Hasil Z4 adalah = ", z4)
print ()
#Menghitung Z akhir dengan merata-rata semua Z berbobot
z_kali = ((predikat1 * z1) + (predikat2 * z2) + (predikat3 * z3) + (predikat4 * z4))
z_bagi = predikat1 + predikat2 + predikat3 + predikat4
z_akhir = z_kali / z_bagi
print ("Jadi, jumlah makanan jenis ABC yang harus diproduksi sebanyak",z_akhir,"kemasan")
Tidak ada komentar:
Posting Komentar