Program Fuzzy Logic Untuk Menghitung Kelayakan Penerima Beasiswa menggunakan JAVA

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,


Ok karena soalnya terlalu panjang silahkan kalian baca sendiri dan download disini. CMIIW


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




        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



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 








9. seperti biasa terima kasih 

Program Fuzzy Logic Untuk Menghitung Kelayakan Penerima Beasiswa menggunakan JAVA Program Fuzzy Logic Untuk Menghitung Kelayakan Penerima Beasiswa menggunakan JAVA Reviewed by nur on February 02, 2016 Rating: 5

No comments:

Powered by Blogger.