Pada postingan sebelumnya kita telah membahas tentang
bagaimana caranya menginputkan library fuzzy logic kedalam neatbeans. Jadi,
saya tidak harus mengulang dari awal lah ya.
singkat cerita, karena tidak ingin banyak berbasa basi baik kita mulai saja
dengan soal ilustrasi berikut ini,
Baik para hadirin pembaca blog yang jumlah pengunjungnya tidak seberapa ini, terima kasih karena telah menyempatkan mampir.
Langkah awal yang pertama kali harus dilakukan adalah
1. Buka neatbeans dan buat project baru, atau kita
bisa memakai project yang pada postingan
“Menginputkan library Fuzzy Logic kedalam Neatbeans” yaitu project Fauziah.java
2. Jika sudah, diamkan saja projectnya tunggu
sampai matang
3. Langkah ketiga lupakan langkah kedua, dan
buka >> NOTEPAD karena kita akan
membuat file Fuzzy Control Language yang digunakan untuk memasukan ilustrasi
dan aturan/rule pada program perhitungannya
FUNCTION_BLOCK beasiswa
// Define input variables
VAR_INPUT
NilaiRaport
: REAL;
gajiorangtua
: REAL;
END_VAR
// Define output variable
VAR_OUTPUT
kelayakan
: REAL;
END_VAR
FUZZIFY NilaiRaport
TERM
buruk := (0, 1) (30, 1) (50, 0) ;
TERM
cukup := (40, 0) (60, 1) (65, 0);
TERM
baik := (60, 0) (70, 1) (80, 0);
TERM sangatbaik := (80, 0) (90, 1) (100, 0);
END_FUZZIFY
FUZZIFY gajiorangtua
TERM
rendah := (0, 1) (3, 1) (5, 0) ;
TERM
tinggi := (3, 0) (7, 1) (12, 0);
TERM
sangattinggi := (10, 0) (12, 1) (14, 0);
END_FUZZIFY
DEFUZZIFY kelayakan
TERM
rendah := (0, 1) (0.4, 0) ;
TERM
tinggi := (0.1, 0) (0.5, 1) (0.9, 0);
TERM
sangattinggi := (0.6, 0) (1, 1) (1.4, 0);
METHOD
: COG; // Use 'Center Of Gravity' defuzzification method
DEFAULT
:= 0; // Default value is 0 (if no
rule activates defuzzifier)
END_DEFUZZIFY
// Inference rules
RULEBLOCK No1
AND
: MIN; // Use 'min' for 'and'
ACT
: MIN; // Use 'min' activation
method
ACCU
: MAX; // Use 'max' accumulation
method
RULE
1 : IF NilaiRaport IS buruk AND gajiorangtua IS rendah THEN kelayakan IS
rendah;
RULE
2 : IF NilaiRaport IS buruk AND gajiorangtua IS tinggi THEN kelayakan IS
rendah;
RULE
3 : IF NilaiRaport IS buruk AND gajiorangtua IS sangattinggi THEN kelayakan IS
rendah;
RULE
4 : IF NilaiRaport IS cukup AND gajiorangtua IS rendah THEN kelayakan IS
tinggi;
RULE 5 : IF
NilaiRaport IS cukup AND gajiorangtua IS tinggi THEN kelayakan IS rendah;
RULE
6 : IF NilaiRaport IS cukup AND gajiorangtua IS sangattinggi THEN kelayakan IS
rendah;
RULE
7 : IF NilaiRaport IS baik AND gajiorangtua IS rendah THEN kelayakan IS
sangattinggi;
RULE
8 : IF NilaiRaport IS baik AND gajiorangtua IS tinggi THEN kelayakan IS tinggi;
RULE
9 : IF NilaiRaport IS baik AND gajiorangtua IS sangattinggi THEN kelayakan IS
rendah;
RULE
10 : IF NilaiRaport IS sangatbaik AND gajiorangtua IS rendah THEN kelayakan IS
sangattinggi;
RULE
11 : IF NilaiRaport IS sangatbaik AND gajiorangtua IS tinggi THEN kelayakan IS
tinggi;
RULE
12 : IF NilaiRaport IS sangatbaik AND gajiorangtua IS sangattinggi THEN
kelayakan IS rendah;
END_RULEBLOCK
END_FUNCTION_BLOCK
4. Simpan
filenya dengan format beasiswa.fcl Jika sudah pindahkan file fclnya kedalam
folder project Fauziah, baca lagi postingan ini
5. Balik lagi ke project neatbeansnya, dan tuliskan program dibawah ini
5. Balik lagi ke project neatbeansnya, dan tuliskan program dibawah ini
String filename =
"fcl/beasiswa.fcl";
FIS
fis = FIS.load(filename, true);
if(fis
== null) {
System.out.println("Loading
file error");
return;
}
JFuzzyChart.get().chart(fis);
int
NilaiRaport ;
int gajiorangtua;
Scanner s;
s = new Scanner (System.in);
//Nilai input
System.out.print
("Masukkan Nilai Raport : " );
NilaiRaport = s.nextInt();
System.out.print("masukkan
Gaji Orang Tua : ");
gajiorangtua = s.nextInt();
fis.setVariable("NilaiRaport",
NilaiRaport);
fis.setVariable("gajiorangtua",
gajiorangtua);
fis.evaluate();
Variable
kelayakan = fis.getVariable("kelayakan");
JFuzzyChart.get().chart(kelayakan,
kelayakan.getDefuzzifier(), true);
System.out.println(fis.getVariable("kelayakan").getLatestDefuzzifiedValue()); }
}
6. Jika
semua amunisi telah terpasang saatnya “RUN” programnya. Dan tada hasilnya akan
seperti ini
9. seperti biasa terima kasih
7. Karena program ini memberikan inputan berupa
command dari user, sesuai dengan di contoh soal, masukkan nilai raport dan gaji
orang tua. Misal 45 dan 3
8. Hasilnya akhirnya seperti ini
Program Fuzzy Logic Untuk Menghitung Kelayakan Penerima Beasiswa menggunakan JAVA
Reviewed by nur
on
February 02, 2016
Rating:
No comments: