1. representasi linier naik
2. representasi linier turun
3. representasi segitiga
4. representasi trapesium
Untuk pemrograman ini diasumsikan bahwa bentuk fungsi keanggotaan nya adalah trapesium. Dengan mengubah nilai-nilainya pada program maka dapat menghasilkan bentuk lainnya. Sehingga program lebih fleksible tanpa harus mendefinisikan untuk masing-masing bentuk fungsi nya. Ilustrasi nya adalah sebagai berikut:
![]() |
Gambar 1 fungsi keanggotaan Trapesium |
untuk memasukan nilai a, b, c, d seperti pada gambar, maka nilai disimpan pada sebuah array.
formatnya : float nama_fungsi[ ]={a,b,c,d};
dan untuk hasil perhitungan derajat keanggotaannya kita simpan dalam array juga. Misalkan terdapat 3 fungsi keanggotaansuhu: “DINGIN”,” HANGAT”, “PANAS”
kita simpan kedalam array dengan nama “suhu” dengan tipe data float maka:
float suhu[3]; // suhu[0]=derajat keanggotaan dingin
//suhu[1]= derajat keanggotaan hangat
//suhu[2]=derajat keanggotaan panas
float dingin[ ]={a,b,c,d};
Untuk mengambil nilai a,b,c,d dari fungsi keanggotaan “dingin” adalah sebagai berikut:
dingin[0]; //untuk nilai a
dingin[1]; //untuk nilai b
dingin[2]; //untuk nilai c
dingin[3]; //untuk nilai d
misalkan untuk fungsi keanggotaan “dingin”:
float dingin[ ] ={10,15,20,25};
untuk bentuk segitiga hanya akan ada 3 nilai, karena nilai b akan sama dengan nilai c. contohnya:
float dingin[ ]={10,15,15,20}
sedangkan untuk representasi linier turun dan linier naik adalah sebgai berikut:
linier turun: float dingin[ ]={10,10,10,15};
linier naik: float dingin[ ]={15,20,20,20};
setelah memasukan nilainya maka kita dapat menghitung derajat keangottan nya. Rumus untuk mencari derajat keanggotaan dari fungsi keanggotaan trapesium seperti terlihat pada gambar 1 adalah sebagai berikut:
dimana μ[x] adalah derajat keanggotaan dan x adalah nilai yang dicari derajat keanggotaannya.
sehingga jika diterjemahkan kea dalam algoritma program menajadi:
if((a<=x)and(x<=b)){
if(a!=b){ux=(x-a)/(b-a);}
}else if ((b<=x)and(x<=c)){ux=1;}
else if((c<=x)and(x<=d)){
if(c!=d){ux=(d-x)/(d-c);}}
else if((a=b)and(x<=b)){ ux=1;}
else if((c=d)and(x>=c)){ux=1;}
else{ux=0;}
algoritma di atas dapat dibuat sebagai sebuah fungsi program untuk mencari derajat keanggotaan. misal kita kasih nama fungsi tersebut sebagai “derajatkeanggotaan();”.
Sehingga kita hanya perlu mengubah parameter x, a, b, c, dand saja kemudian memanggil fungsi nya misalkan:
x=25;
a= dingin[0];
b=dingin[1];
c=dingin[2];
d=dingin[3];
derajatkeanggotaan();
suhu[0]=ux; //memasukan nilai derajat keanggotaan suhu[0] (dingin) dengan derajat keanggotaan hasil perhitungan
Sekian postingan kali ini selanjutnya kita mencoba membuat rule base nya.