CREATING FIS SUGENO WITH JAVA Praktikum 13 REVIEW

  • Slides: 18
Download presentation
CREATING FIS SUGENO WITH JAVA Praktikum 13

CREATING FIS SUGENO WITH JAVA Praktikum 13

REVIEW FIS Metode Penalaran • Mamdani • Input dan Output berupa himpunen fuzzy •

REVIEW FIS Metode Penalaran • Mamdani • Input dan Output berupa himpunen fuzzy • Penentuan nilai defuzzifikasi dengan center of gravity • Tsukamoto • Input dan Output berupa himpunen fuzzy • Penentuan nilai defuzzifikasi dengan rata-rata terbobot • Sugeno • Input berupa himpunan fuzzy • Output berupa nilai linear • Penentuan nilai defuzzifikasi bisa dengan center of gravity

REVIEW FIS Representasi Kurva Segitiga dan Trapezoidal a b c

REVIEW FIS Representasi Kurva Segitiga dan Trapezoidal a b c

FUZZIFIKASI Fungsi Variabel MF Rentang Sangat kurang mendukung 0 -15 Cukupmendukung Sangat mendukung Jaminan

FUZZIFIKASI Fungsi Variabel MF Rentang Sangat kurang mendukung 0 -15 Cukupmendukung Sangat mendukung Jaminan Sangat kurang mendukung input output Domain [0 0 1 7. 5] [5 7. 5 10 10] [7. 5 15 15] 0 -50000 [0 0 30000 ] [20000 50000 Sangat mendukung 50000] Aset Kelayakan kelompok

MEMBUAT CLASS LATIHSUGENO public class latihansugeno extends javax. swing. JFrame { public double[] output_rule_kel_2

MEMBUAT CLASS LATIHSUGENO public class latihansugeno extends javax. swing. JFrame { public double[] output_rule_kel_2 = new double[6]; public double[] u_output_kel_2 = new double[6]; public double z_kelompok_2; public double min_result_kelompok; public double u_aset_SM; public double u_aset_SKM; public double u_jaminan_SM; public double u_jaminan_CM; public double u_jaminan_SKM; public double kondisi_aset; public double kondisi_jaminan; public latihansugeno() { init. Components(); }

MEMBUAT CLASS JAMINAN class Jaminan { public double data_jaminan; // Himpunan Sangat Kurang Mendukung

MEMBUAT CLASS JAMINAN class Jaminan { public double data_jaminan; // Himpunan Sangat Kurang Mendukung private double Sangat. Kurang. Mendukung() { if (data_jaminan == 0) { return data_jaminan = 1; } else if ((data_jaminan >= 1) && (data_jaminan < 7. 5)) { return (7. 5 - data_jaminan) / (7. 5 - 1); } else { return 0; } }

// Himpunan Cukup Mendukung private double Cukup. Mendukung() { if ((data_jaminan >= 5) &&

// Himpunan Cukup Mendukung private double Cukup. Mendukung() { if ((data_jaminan >= 5) && (data_jaminan < 7. 5)) { return (data_jaminan - 5) / (7. 5 - 5); } else if (data_jaminan == 7. 5) { return data_jaminan = 1; } else if ((data_jaminan > 7. 5) && (data_jaminan <= 10)) { return (10 - data_jaminan) / (10 - 7. 5); } else { return 0; } } // end of cukup mendukung

private double Sangat. Mendukung() { if ((data_jaminan >= 7. 5) && (data_jaminan <= 15))

private double Sangat. Mendukung() { if ((data_jaminan >= 7. 5) && (data_jaminan <= 15)) { return (data_jaminan - 7. 5) / (15 - 7. 5); } else { return 0; } } // end sangat mendukung } //end class Jaminan

MEMBUAT CLASS ASET class Aset { public double data_aset; // Himpunan Sangat Kurang Mendukung

MEMBUAT CLASS ASET class Aset { public double data_aset; // Himpunan Sangat Kurang Mendukung private double Sangat. Kurang. Mendukung() { if (data_aset == 0) { return data_aset = 1; } else if ((data_aset > 0) && (data_aset <= 30000)) { return (30000 - data_aset) / (30000 - 0); } else { return 0; } }

private double Sangat. Mendukung() { if (data_aset == 50000) { return data_aset = 1;

private double Sangat. Mendukung() { if (data_aset == 50000) { return data_aset = 1; } else if ((data_aset >= 20000) && (data_aset < 50000)) { return (data_aset - 20000) / (50000 - 20000); } else { return 0; } } // end sangat mendukung } //end class Aset

MEMBUAT CLASS KELAYAKAN KELOMPOK class Kelayakan. Kelompok 2 extends latihansugeno { public double[] nilai_kelayakan_kelompok

MEMBUAT CLASS KELAYAKAN KELOMPOK class Kelayakan. Kelompok 2 extends latihansugeno { public double[] nilai_kelayakan_kelompok 2; Kelayakan. Kelompok 2() { nilai_kelayakan_kelompok 2 = new double[6]; nilai_kelayakan_kelompok 2[0] = (104 + 123) / 2; nilai_kelayakan_kelompok 2[1] = (80 + 104) / 2; nilai_kelayakan_kelompok 2[2] = (80 + 104) / 2; nilai_kelayakan_kelompok 2[3] = (44 + 80) / 2; nilai_kelayakan_kelompok 2[4] = (2 + 20) / 2; nilai_kelayakan_kelompok 2[5] = (2 + 20) / 2; } }

MEMBUAT FUNGSI COMPUTE_MF private void Compute_Membership() { Jaminan jaminan = new Jaminan(); Aset aset

MEMBUAT FUNGSI COMPUTE_MF private void Compute_Membership() { Jaminan jaminan = new Jaminan(); Aset aset = new Aset(); jaminan. data_jaminan = kondisi_jaminan; aset. data_aset = kondisi_aset; u_jaminan_SM = jaminan. Sangat. Mendukung(); u_jaminan_CM = jaminan. Cukup. Mendukung(); u_jaminan_SKM = jaminan. Sangat. Kurang. Mendukung(); u_aset_SM = aset. Sangat. Mendukung(); u_aset_SKM = aset. Sangat. Kurang. Mendukung(); }

MEMBUAT FUNGSI CARI_MINIMAL private double Cari_Min 2(double a, double b) { if (a <

MEMBUAT FUNGSI CARI_MINIMAL private double Cari_Min 2(double a, double b) { if (a < b) { min_result_kelompok = a; return min_result_kelompok; } else { min_result_kelompok = b; return min_result_kelompok; } }

MEMBUAT RULE private void apply. Rule_Kelompok_2() { Kelayakan. Kelompok 2 kelompok 2 = new

MEMBUAT RULE private void apply. Rule_Kelompok_2() { Kelayakan. Kelompok 2 kelompok 2 = new Kelayakan. Kelompok 2(); output_rule_kel_2[0] = Cari_Min 2(u_jaminan_SM, u_aset_SM); u_output_kel_2[0] = kelompok 2. nilai_kelayakan_kelompok 2[0]; output_rule_kel_2[1] = Cari_Min 2(u_jaminan_SM, u_aset_SKM); u_output_kel_2[1] = kelompok 2. nilai_kelayakan_kelompok 2[1]; output_rule_kel_2[2] = Cari_Min 2(u_jaminan_CM, u_aset_SM); u_output_kel_2[2] = kelompok 2. nilai_kelayakan_kelompok 2[2]; output_rule_kel_2[3] = Cari_Min 2(u_jaminan_CM, u_aset_SKM); u_output_kel_2[3] = kelompok 2. nilai_kelayakan_kelompok 2[3]; output_rule_kel_2[4] = Cari_Min 2(u_jaminan_SKM, u_aset_SM); u_output_kel_2[4] = kelompok 2. nilai_kelayakan_kelompok 2[4]; output_rule_kel_2[5] = Cari_Min 2(u_jaminan_SKM, u_aset_SKM); u_output_kel_2[5] = kelompok 2. nilai_kelayakan_kelompok 2[5]; }

MEMBUAT FUNGSI COMPUTE_OUTPUT private void Compute_Output_Kelompok_2() { double temp_1 = 0; double temp_2 =

MEMBUAT FUNGSI COMPUTE_OUTPUT private void Compute_Output_Kelompok_2() { double temp_1 = 0; double temp_2 = 0; for (int i = 0; i < 6; i++) { temp_1 += output_rule_kel_2[i] * u_output_kel_2[i]; temp_2 += output_rule_kel_2[i]; } z_kelompok_2 = temp_1 / temp_2; System. out. print("n kelompok"); System. out. print("Out. Put Kel-2 " + z_kelompok_2); txt_evaluasi. set. Text(String. value. Of(z_kelompok_2)); }

private void btn_proses. Action. Performed(java. awt. event. Action. Event evt) { // TODO add

private void btn_proses. Action. Performed(java. awt. event. Action. Event evt) { // TODO add your handling code here: kondisi_jaminan = Double. parse. Double(txt_jaminan. get. Text()); kondisi_aset = Double. parse. Double(txt_aset. get. Text()); Compute_Membership(); apply. Rule_Kelompok_2(); Compute_Output_Kelompok_2(); }

public static void main(String args[]) { java. awt. Event. Queue. invoke. Later(new Runnable() {

public static void main(String args[]) { java. awt. Event. Queue. invoke. Later(new Runnable() { public void run() { new latihansugeno(). set. Visible(true); } }); } private javax. swing. JButton btn_proses; private javax. swing. JLabel j. Label 1; private javax. swing. JLabel j. Label 2; private javax. swing. JLabel j. Label 3; private javax. swing. JLabel j. Label 4; private javax. swing. JLabel j. Label 5; private javax. swing. JLabel j. Label 6; private javax. swing. JLabel j. Label 7; private javax. swing. JFormatted. Text. Field txt_aset; private javax. swing. JText. Field txt_evaluasi; private javax. swing. JFormatted. Text. Field txt_jaminan; // End of variables declaration}

TERIMA KASIH

TERIMA KASIH