• Tidak ada hasil yang ditemukan

Laporan Implementasi Logika Fuzzy Pengam

N/A
N/A
Protected

Academic year: 2018

Membagikan "Laporan Implementasi Logika Fuzzy Pengam"

Copied!
21
0
0

Teks penuh

(1)

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

(2)

Daftar Isi

Daftar Isi... 1

1. Pendahuluan... 2

1.1. Deskripsi Sistem... 2

1.2. Tujuan Sistem... 2

1.3. Keunggulan Metode...2

2. Pendahuluan Sistem... 3

2.1. Representasi Data Masukan...3

2.2. Mekanisme Sistem...3

2.3. Representasi Output Sistem...4

3. Analisis dan Implementasi Sistem...5

Contoh Implementasi :... 8

4. Kesimpulan dan Saran...17

5. Referensi... 18

(3)

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

(4)

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

(5)

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.

(6)

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 rumus (x−a) /(b−a), a<x<b, dimana a = 2,75 dan b = 3,25. Sehingga derajat

keanggotaan untuk IPK Bagus = (3.00−2.75) /(3.25−2.75) = 0.5

 Derajat Keanggotaan untuk IPK Cukup dihitung menggunakan rumus −(x−c) /(c−b) dimana c = 3.25 dan b = 2.625. Sehingga derajat keanggotaan

untuk IPK Bagus = −(3.00−3.25)/(3.25−2.625) = 0.4

Misalkan untuk Gaji Orang Tua kita menggunakan fungsi keanggotaan trapesium dengan empat variable linguistic : Kecil, Sedang, Besar dan Sangat Besar. Dengan fungsi maka crisp input Gaji Orang Tua Rp. 10.000.000,- dikonversi ke nilai fuzzy dengan cara:

 Gaji Orang Tua berada pada nilai linguistic Besar dan Sangat Besar

 Derajat Keanggotaan untuk Gaji Orang Tua Besar dihitung menggunakan rumus −(x−d)/(d−c), c<x ≤ d, dimana c = 7.000.000 dan d = 12.000.0000. Sehingga

derajat keanggotaan untuk Gai Orang Tua Besar = −(10.000.000−12.000 .000)/ (12.000.000−7.000 .000) = 0.67

 Derajat Keanggotaan untuk Gaji Orang Tua Besar dihitung menggunakan rumus (x−a) /(b−a), a<x<b dimana a = 7.000.000 dan b = 12.000.000. Sehingga

derajat keanggotaan untuk IPK Bagus =

(7)

Jadi proses fuzzification menghasilkan empat fuzzy input IPK = Bagus (0,5) dan Cukup (0,4), dan Gaji Orang Tua = Besar(0,67) dan Sangat Besar(0,6)

Inference System

Terdapat berbagai macam cara dalam menentukan aturan fuzzy. Misalkan, untuk nilai Kelayakan Beasiswa menggunakan fungsi keanggotaan trapezium dengan dua nilai linguistic : Tinggi dan Rendah.

Dengan aturan :

Dengan definisi aturan fuzzy di atas, maka memiliki 3 x 4 = 12 aturan fuzzy, yaitu

1. IF IPK = Buruk AND Gaji = Kecil THEN NilaiKelayakan = Rendah 2. IF IPK = Buruk AND Gaji = Sedang THEN NilaiKelayakan = Rendah 3. IF IPK = Buruk AND Gaji = Besar THEN NilaiKelayakan = Rendah

4. IF IPK = Buruk AND Gaji = Sangat Besar THEN NilaiKelayakan = Rendah 5. IF IPK = Cukup AND Gaji = Kecil THEN NilaiKelayakan = Tinggi

(8)

8. IF IPK = Cukup AND Gaji = Sangat Besar THEN NilaiKelayakan = Rendah 9. IF IPK = Bagus AND Gaji = Kecil THEN NilaiKelayakan = Tinggi

10. IF IPK = Bagus AND Gaji = Sedang THEN NilaiKelayakan = Tinggi 11. IF IPK = Bagus AND Gaji = Besar THEN NilaiKelayakan = Tinggi

12. IF IPK = Bagus AND Gaji = Sangat Besar THEN NilaiKelayakan = Rendah

Dari empat data fuzzy input yang didapatkan sebelumnya : Bagus (0,5), Cukup (0,4), Besar(0,67) dan Sangat Besar(0,6), maka aturan yang dapat digunakan adalah

 IF IPK is Bagus AND Gaji is Besar THEN NilaiKelayakan is Tinggi

 IF IPK is Bagus AND Gaji is Sangat Besar THEN NilaiKelayakan is Rendah

 IF IPK is Cukup AND Gaji is Besar THEN NilaiKelayakan is Rendah

 IF IPK is Cukup AND Gaji is Sangat Besar THEN NilaiKelayakan is Rendah

Dari empat aturan fuzzy dan empat fuzzy input tersebut, maka proses inference yang terjadi adalah :

Gunakan aturan conjungtion (^) dengan memilih derajat keanggotaan minimum dari nilai-nilai linguistic yang dihubungkan oleh ^ dan lakukan Clipping pada fungsi keanggotaan trapezium untuk Nilai Kelayakan. Sehingga diperoleh :

 IF IPK is Bagus(0,5) AND Gaji is Besar(0,67) THEN NilaiKelayakan is Tinggi(0,5)

 IF IPK is Bagus(0,5) AND Gaji is Sangat Besar(0,6) THEN NilaiKelayakan is Rendah(0,5)

 IF IPK is Cukup(0,4) AND Gaji is Besar(0,67) THEN NilaiKelayakan is Rendah(0,4)

 IF IPK is Cukup(0,4) AND Gaji is Sangat Besar(0,6) THEN NilaiKelayakan is Rendah(0,4)

(9)

Defuzzification

Proses composition dari dua fuzzy set, NilaiKelayakan is Tinggi(0,5) dan NilaiKelayakan is Rendah(0,5), menghasilkan satu fuzzy set tunggal yang ditunjukan dalam gambar berikut :

Dengan menggunakan Centroid method untuk proses defeuzzyfication untuk mendapatkan nilai crisp. Untuk memudahkan perhitungan, bisa menentukan titik sembarang para area kotak, misalkan 30, 35, 40, 45, 50, 65, 75, 80, 85 dan 90. Dengan titik-titik tersebut, diperoleh hasil berikut :

y∗¿(30+35+0.5+0.540+45+50+0.5 )0.5+(65+75+80+85+90)0.5

+0.5+0.5+0.5+0.5+0.5+0.5+0.5 =

100+197.5

5 =297.55 =59.5

Jadi dengan menggunakan model Mamdani, untuk Nilai Kelayakan IPK 3.00 dan Gaji Orang Tua Rp.10.000.000,-, maka nilaiKelayakan sebesar 59.5

Contoh Implementasi :

(10)
(11)

float tinggi;

 Fungsi untuk aturan Fuzzy

nilaiKelulusan fuzzyRule(float ipk, derajatIpk drjIpk, float gaji ,derajatGaji drjGaji) {

//rule 1:ipk buruk and gaji kecil -> rendah nilaiKelulusan tempNilaiKelulusan;

if(((inRange(ipkBuruk, ipk))==1)&&(inRange(gajiKecil, gaji)==1)){ printf("rule 1:ipk buruk and gaji kecil ->; rendahn");

printf("derajat kelulusan rendah %f\n", min(drjIpk.buruk, drjGaji.kecil)); tempNilaiKelulusan.rendah = max(tempNilaiKelulusan.rendah, min(drjIpk.buruk, drjGaji.kecil));

}

//rule 2:ipk buruk and gaji sedang -> 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));

(12)

//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");

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));

(13)

//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");

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));

(14)

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) {

(15)

{

return derajatKeanggotaan; }

 Fungsi Keanggotaan Trapesium

float fungsiKeanggotaanTrapesium(float a, float b, float c, float d,float x) {

float derajatKeanggotaan; if ((x>a)&&(x<b))

(16)

}

 Fungsi Derajat Keanggotaan IPK

derajatIpk derajatKeanggotaanIPK(float ipk)

/*printf(&quot;derajat buruk %f n&quot;, drjIpk.buruk); printf(&quot;derajat cukup %f n&quot;, drjIpk.cukup); printf(&quot;derajat bagus %f n&quot;, drjIpk.bagus); */

return drjIpk; }

 Fungsi Derajat Keanggotaan Gaji Orang Tua

derajatGaji derajatKeanggotaanGaji(float gaji){ derajatGaji drjGaji;

(17)

/*printf(&quot;derajat kecil %f n&quot;, drjGaji.kecil); printf(&quot;derajat sedang %f n&quot;, drjGaji.sedang); printf(&quot;derajat besar %f n&quot;, drjGaji.besar);

printf(&quot;derajat sangatBesar %f n&quot;, drjGaji.sangatBesar); */

(18)

4. Kesimpulan dan Saran Kesimpulan:

1. Pengambilan keputusan penerima beasiswa dari implementasi fuzzy logic memberikan keputusan pasti, dengan mengacu pada peraturan penerimaan beasiswa dengan Indeks Prestasi Komulatif(IPK), gaji orang tua, dan nilai dari hasil ujian penerimaan beasiswa sebagai parameter masukannya.

2. Batas – batas nilai linguistik akan sangat berpengaruh terhadap akurasi dari fuzzy logic

Saran:

1. Pencarian solusi dengan mengimplementasi dari fuzzy logic tidak selalu menghasilkan solusi terbaik, karena sering ditemukan kesulitan dalam menentukan preferensi atau parameter agar output yang dihasilkan akurat.

(19)

5. Referensi

Nugroho, Anto Satriyo. 2003. Pengantar Softcomputing. Modul Kuliah Umum

IlmuKomputer.com. http://asnugroho.net/papers/ikcsc.pdf [diakses 8 Januari 2016 00.43 WIB]

(20)

6. Lampiran

1. Screenshoot antarmuka

(21)

3. Screenshoot hasil

Gambar

Gambar Entry Data IPK dan Gaji Orang Tua

Referensi

Dokumen terkait

Penelitian Tugas Akhir ini menganalisa data radiasi sinar matahari di desa Muara Langon serta data total beban listrik dan kebutuhan energi listrik untuk

akhirsetiapsiklus yang mencakup pengetahuan (C1), pemahaman (C2), aplikasi (C3), analisis (C4), sintesis (C5) dan evaluasi (C6). 2) Pemberiankuis yang

bahwa Retribusi Izin Gangguan sebagaimana diatur dalam Peraturan Daerah Kabupaten Karawang Nomor 5 Tahun 1999 tentang Retribusi Izin Gangguan, sudah tidak sesuai

Whilst the paper covers the major areas impacted by people factors in a development team and even mention communication complexity and impact of team size, the authors do

“You didn’t mean to do it, did you, Sam?” Frank picked up the ball, sliding back into the seat, his voice gentle, his eyes level. “I know how it is. Sometimes you love a woman so

Dokumentasi Kegiatan Pelatihan Pembuatan Susu Jagung dan Es Jagung Campur pada Siswa SMA Excellent PP Nurul Ikhlas Tanah Datar. Gambar 1 Foto bersama para instruktur di depan

Oleh karena itu untuk meningkatkan hasil belajar dan aktivitas siswa maka perlu dilakukan pembenahan proses pembelajaran yang dilakukan guru salah satunya yaitu

Dalam kajian ini, dua set soal selidik telah dibina dimana satu set soal selidik adalah untuk menguji kecerdasan pelbagai dikalangan kanak-kanak prasekolah manakala satu set lagi