Contoh Soal Logika Fuzzy dan Penyelesaianya dengan Program Bahasa C

Code Fuzzy Bahasa C

#include <stdio.h>
#include <stdlib.h>

double permintaan, persediaan;
double out_r1,out_r2,out_r3,out_r4;
float r1,r2,r3,r4;
double pmta = 500, pmtb = 6000;
double psda = 200, psdb = 800;
double A, B, deff;

float pmt_turun(double a, double b){
if (permintaan <= a){return 1;}
else if (permintaan > a && permintaan < b){return (b - permintaan) / (b - a);}
else if (permintaan >= b) { return 0;}
}

float pmt_naik(double a, double b){
if (permintaan <= a){return 0;}
else if (permintaan > a && permintaan < b){return (permintaan - a) / (b - a);}
else if (permintaan >= b) { return 1;}
}

float prsd_sedikit(double a, double b){
if (persediaan <= a){return 1;}
else if (persediaan > a && persediaan < b){return (b - persediaan) / (b - a);}
else if (persediaan >= b) { return 0;}
}

float prsd_banyak(double a, double b){
if (persediaan <= a){return 0;}
else if (persediaan > a && persediaan < b){return (persediaan - a) / (b - a);}
else if (persediaan >= b) { return 1;}
}

float min(float a, float b){
if (a < b){return a;}
else if (b < a){ return b;}
else {return a;}
}

void rule (double prdsA, double prdsB){
// IF Permintaan TURUN And Persediaan BANYAK
//THEN Produksi Barang BERKURANG;
r1 = min(pmt_turun(pmta,pmtb), prsd_banyak(psda,psdb));
 out_r1= prdsB - ((prdsB - prdsA) * r1) ;
// IF Permintaan TURUN And Persediaan SEDIKIT
//THEN Produksi Barang BERKURANG;
r2 = min(pmt_turun(pmta,pmtb), prsd_sedikit(psda,psdb));
 out_r2 = prdsB - ((prdsB - prdsA) * r2) ;
// IF Permintaan NAIK And Persediaan BANYAK
//THEN Produksi Barang BERTAMBAH;
r3 = min(pmt_naik(pmta,pmtb), prsd_banyak(psda,psdb));
 out_r3 = 3000 + ((prdsB - prdsA) * r3);
// IF Permintaan NAIK And Persediaan SEDIKIT
// Produksi Barang BERTAMBAH;
r4 = min(pmt_naik(pmta,pmtb), prsd_sedikit(psda,psdb));
 out_r4 = 3000 + ((prdsB - prdsA) * r4);

 A = (r1*out_r1) + (r2*out_r2) + (r3*out_r3) + (r4*out_r4);
 B = r1+r1+r3+r4;

 deff = A/B;
}

int main()
{
    printf("Masukan Permintaan :");
    scanf("%lf", &permintaan);
    printf("Masukan Persediaan :");
    scanf("%lf", &persediaan);

    rule (3000, 9000);

    printf("Keanggotaan Pmt_Turun = %lf\n", pmt_turun(pmta, pmtb));
    printf("Keanggotaan Pmt_Naik = %lf\n", pmt_naik(pmta, pmtb));
    printf("Keanggotaan Prsd_Sedikit = %lf\n", prsd_sedikit(psda, psdb));
    printf("Keanggotaan Prsd_Banyak = %lf\n", prsd_banyak(psda, psdb));

    printf("u Rule 1 = %lf\n", r1);
    printf("u Rule 1 = %lf\n", r2);
    printf("u Rule 1 = %lf\n", r3);
    printf("u Rule 1 = %lf\n", r4);

    printf("Out Rule 1 = %lf\n", out_r1);
    printf("Out Rule 1 = %lf\n", out_r2);
    printf("Out Rule 1 = %lf\n", out_r3);
    printf("Out Rule 1 = %lf\n", out_r4);

    printf("\n\n DEFUZZY = %lf", deff);

    return 0;
}

Video Tutorial

chaerul

Recent Posts

Panduan Lengkap: Cara Menyiapkan Klaster Kubernetes pada Ubuntu 22.04 LTS

Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…

1 week ago

AplikasiAkademik.com: Solusi Terbaik untuk Manajemen Sekolah yang Efisien

Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…

7 months ago

Cara Mudah Menginstal OpenVPN Server di Ubuntu 20.04 di Huaweicloud Panduan Langkah demi Langkah

Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…

12 months ago

Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…

1 year ago

Tutorial led blinking lengkap, Wiring & Code

Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…

1 year ago

Tutorial LCD Display Lengkap dengan wiring & code untuk pemula

Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…

1 year ago