Laporan Implementasi Logika Fuzzy Pengam

IMPLEMENTASI LOGIKA FUZZY DALAM PROGRAM
PENGAMBILAN KEPUTUSAN PENERIMA BEASISWA
Diajukan Untuk Memenuhi
Salah Satu Tugas Mata Kuliah Kecerdasan Buatan
Dosen : Nelly Indriani W,S.Si., M.T

Oleh :
10112093 - Ilham Abdul Rahman F
10112146 - Pandega Haqqi Sadieda
10112652 - Imam Nur Arifin
Kelas: AI-3
Kelompok 6 Fuzzy Logic

JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNVERSITAS KOMPUTER INDONESIA
2015

Daftar Isi

Daftar Isi................................................................................................................. 1

1.

2.

3.

Pendahuluan...................................................................................................... 2
1.1.

Deskripsi Sistem........................................................................................... 2

1.2.

Tujuan Sistem.............................................................................................. 2

1.3.

Keunggulan Metode...................................................................................... 2

Pendahuluan Sistem............................................................................................. 3

2.1.

Representasi Data Masukan............................................................................3

2.2.

Mekanisme Sistem......................................................................................... 3

2.3.

Representasi Output Sistem............................................................................ 4

Analisis dan Implementasi Sistem...........................................................................5
Contoh Implementasi :............................................................................................ 8

4.

Kesimpulan dan Saran....................................................................................... 17

5.


Referensi......................................................................................................... 18

6.

Lampiran........................................................................................................ 19

1

1. Pendahuluan
1.1.

Deskripsi Sistem
Beasiswa adalah pemberian berupa bantuan keuangan yang diberikan kepada

seseorang yang bertujuan untuk digunakan demi keberlangsungan pendidikan yang
ditempuh. Keputusan penerima beasiswa dengan mempertimbangkan nilai Indeks Prestasi
Komulatif (IPK), gaji orang tua, dan nilai hasil ujian penerimaan beasiswa. Sistem yang
akan dibuat yaitu pengambilan keputusan penerima beasiswa dengan menggunakan
kecerdasan buatan dari implementasi fuzzy logic. Logika fuzzy/fuzzy logic merupakan

metodologi pemecahan masalah dengan aplikasi atau program dalam pengendali yang
tersimpan dan pemrosesan informasi. Pada saat program dijalankan user memasukkan
nilai IPK seseorang, kemudian dilanjutkan memasukkan nominal gaji orang tua, dan nilai
hasil ujian penerima beasiswa. Setelah itu sistem akan menentukan apakah dapat atau
tidaknya beasiswa dengan mengacu dari peraturan yang telah dibuat sebelumnya.
1.2.

Tujuan Sistem
Sistem yang akan dibuat merupakan suatu bentuk program pengambilan keputusan

penerima beasiswa yang telah ditanamkan kecerdasan buatan agar user dapat membuat
keputusan pasti dari informasi yang ambigu, samar-samar, atau tidak tepat. Keputusan
yang dihasilkan disertai dengan perhitungan yang mengacu pada peraturan penerima
beasiswa, sehingga pengambilan keputusan dapat dipertanggungjawabkan. Hal ini akan
mempermudah user dalam membuat pengambilan keputusan terhadap seseorang yang
telah mengajukan beasiswa.
1.3.

Keunggulan Fuzzy Logic
Fuzzy logic memodelkan perasaan atau intuisi dengan cara merubah nilai crisp


menjadi nilai linguistik dengan fuzzification dan kemudian memasukkannya ke dalam
rule yang dibuat berdasarkan knowledge. Fuzzy logic cocok digunakan pada sebagian
besar permasalahan yang terjadi di dunia nyata. Permasalahan di dunia nyata kebanyakan
bukan biner dan bersifat non linier sehingga fuzzy logic cocok digunakan karena
menggunakan nilai linguistik yang tidak linier. Fuzzy dapat mengekspresikan konsep
yang sulit untuk dirumuskan, seperti misalnya “suhu ruangan yang nyaman”. Pemakaian
fungsi

keanggotaan

memungkinkan

fuzzy

logic

untuk

melakukan


observasi

obyektif terhadap nilai-nilai yang bersifat subyektif. Selanjutnya fungsi keanggotaan ini
dapat dikombinasikan untuk membuat pengungkapan konsep yang lebih jelas.
2

2. Pendahuluan Sistem
Salah satu aplikasi Logika Fuzzy adalah sebagai alat bantu dalam pengambilan
keputusan. Kasus yang akan kami implementasikan adalah pengambilan keputusan
untuk menentukan mahasiswa yang layak mendapatkan beasiswa. Dengan parameter
yang akan digunakan sebagai pertimbangan adalah IPK dan Gaji Orang Tua,
2.1.

Representasi Data Masukan
Data yang diinput user merupakan IPK dan Gaji Orang Tua.

2.2.

Mekanisme Sistem

Pada saat sistem berjalan proses pertama adalah memasukkan inputan atau
variabel pertimbangan, setelah itu inputan akan dikonversikan ke bentuk fuzzy
input, yang berupa nilai linguistic yang semantiknya ditentukan berdasarkan
fungsi keanggotaan. Selanjutnya inference memperhitungkan semua aturan yang
ada dalam basis pengetahuan. Hasil dari proses inference direpresentasikan oleh
suatu fuzzy set untuk setiap variable bebas. Derajat keanggotaan untuk setiap
nilai variable tidak bebas menyatakan ukuran kompatibilitas terhadap variable
bebas. Kemudian besaran fuzzy yang disajikan dalam bentuk himpunanhinmpunan

fuzzy

keluaran

dengan

fungsi

keanggotaan

diubah


untuk

mendapatkan kembali bentuk tegasnya (crisp). Hal ini diperluakan, sebab dalam
aplikasi nyata yang dibutuhkan adalah nilai tegas (crisp). Proses sistem dapat
dilihat dari gambar di bawah ini.

3

2.3.

Representasi Output Sistem
Saat Sistem dijalankan, output pertama yang muncul merupakan entry data
IPK dan Gaji Orang Tua.

Gambar Entry Data IPK dan Gaji Orang Tua

Kemudain tekan tombol enter, maka akan menampilkan hasil derajat
kelulusan dari setiap aturan dan nilai kelayakan penerima beasiswa.


Gambar Output Hasil Pengujian Fuzzy Logic

4

3. Analisis dan Implementasi Sistem
Fuzzification
Misalkan untuk IPK kita menggunakan fungsi keanggotaan trapesium dengan
tiga variable linguistic : Bagus, Cukup dan Buruk. Dengan fungsi maka crisp input
IPK 3.00 dikonversi ke nilai fuzzy dengan cara:
 IPK 3.00 berada pada nilai linguistic Bagus dan Cukup
 Derajat

Keanggotaan

untuk

IPK

Bagus


dihitung

menggunakan

( x−a) /(b−a), a< x rendah
if(((inRange(ipkBuruk, ipk))==1)&&(inRange(gajiSedang, gaji)==1)){
printf("rule 2:ipk buruk and gaji sedang ->; rendahn");
printf("derajat kelulusan rendah %f\n", min(drjIpk.buruk, drjGaji.sedang));
tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah,
min(drjIpk.buruk, drjGaji.sedang));
}
10

//rule 3:ipk buruk and gaji besar -> rendah
if(((inRange(ipkBuruk, ipk))==1)&&(inRange(gajiBesar, gaji)==1)){
printf("rule 3:ipk buruk and gaji besar ->; rendah\n");
printf("derajat kelulusan rendah %f\n", min(drjIpk.buruk, drjGaji.besar));
tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah,
min(drjIpk.buruk, drjGaji.besar));
}

//rule 4:ipk buruk and gaji sangar besar -> rendah
if(((inRange(ipkBuruk, ipk))==1)&&(inRange(gajiSangatBesar, gaji)==1)){
printf("rule 4:ipk buruk and gaji sangar besar ->; rendah\n");
printf("derajat kelulusan rendah %f\n", min(drjIpk.buruk,
drjGaji.sangatBesar));
tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah,
min(drjIpk.buruk, drjGaji.sangatBesar));
}
//rule 5:ipk cukup and gaji kecil -> tinggi
if(((inRange(ipkCukup, ipk))==1)&&(inRange(gajiKecil, gaji)==1)){
printf("rule 5:ipk cukup and gaji kecil -> tinggi\n");
printf("derajat kelulusan tinggi %f\n", min(drjIpk.cukup, drjGaji.kecil));
tempNilaiKelulusan.tinggi = max(tempNilaiKelulusan.tinggi,
min(drjIpk.cukup, drjGaji.kecil));
}
//rule 6:ipk cukup and gaji sedang -> rendah
if(((inRange(ipkCukup, ipk))==1)&&(inRange(gajiSedang, gaji)==1)){
printf("rule 6:ipk cukup and gaji sedang -> rendah\n");
printf("derajat kelulusan rendah %f\n", min(drjIpk.cukup, drjGaji.sedang));
tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah,
min(drjIpk.cukup, drjGaji.sedang));
}

11

//rule 7:ipk cukup and gaji besar -> rendah
if(((inRange(ipkCukup, ipk))==1)&&(inRange(gajiBesar, gaji)==1)){
printf("rule 7:ipk cukup and gaji besar -> rendah\n");
printf("derajat kelulusan rendah %f\n", min(drjIpk.cukup, drjGaji.besar));
tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah,
min(drjIpk.cukup, drjGaji.besar));
}
//rule 8:ipk cukup and gaji sangat besar -> rendah
if(((inRange(ipkCukup, ipk))==1)&&(inRange(gajiSangatBesar, gaji)==1)){
printf("rule 8:ipk cukup and gaji sangat besar -> rendah\n");
printf("derajat kelulusan rendah %f\n", min(drjIpk.cukup,
drjGaji.sangatBesar));
tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah,
min(drjIpk.cukup, drjGaji.sangatBesar));
}
//rule 9:ipk bagus and gaji kecil -> tinggi
if(((inRange(ipkBagus, ipk))==1)&&(inRange(gajiKecil, gaji)==1)){
printf("rule 9:ipk bagus and gaji kecil -> tinggi\n");
printf("derajat kelulusan tinggi %f\n", min(drjIpk.bagus, drjGaji.kecil));
tempNilaiKelulusan.tinggi = max(tempNilaiKelulusan.tinggi,
min(drjIpk.bagus, drjGaji.kecil));
}
//rule 10:ipk bagus and gaji sedang -> tinggi
if(((inRange(ipkBagus, ipk))==1)&&(inRange(gajiSedang, gaji)==1)){
printf("rule 10:ipk bagus and gaji sedang -> tinggi\n");
printf("derajat kelulusan tinggi %f\n", min(drjIpk.bagus, drjGaji.sedang));
tempNilaiKelulusan.tinggi = max(tempNilaiKelulusan.tinggi,
min(drjIpk.bagus, drjGaji.sedang));
}
//rule 11:ipk bagus and gaji besar -> tinggi
12

if(((inRange(ipkBagus, ipk))==1)&&(inRange(gajiBesar, gaji)==1)){
printf("rule 11:ipk bagus and gaji besar -> tinggi\n");
printf("derajat kelulusan tinggi %f\n", min(drjIpk.bagus, drjGaji.besar));
tempNilaiKelulusan.tinggi = max(tempNilaiKelulusan.tinggi,
min(drjIpk.bagus, drjGaji.besar));
}
//rule 12:ipk bagus and gaji sangat besar -> rendah
if(((inRange(ipkBagus, ipk))==1)&&(inRange(gajiSangatBesar, gaji)==1)){
printf("rule 12:ipk bagus and gaji sangat besar -> rendah\n");
printf("derajat kelulusan rendah %f\n", min(drjIpk.bagus,
drjGaji.sangatBesar));
tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah,
min(drjIpk.bagus, drjGaji.sangatBesar));
}
return tempNilaiKelulusan;
}
 Fungsi Keanggotaan Segitiga
float fungsiKeanggotaanSegitiga(float a, float b, float c, float x)
{
float derajatKeanggotaan;
if ((x>a)&&(xb)&&(xa)&&(x=b)&&(xc)&&(x