55
BAB V IMPLEMENTASI, HASIL, DAN PEMBAHASAN
5.1 Implementasi Algoritma Sistem Inferensi Fuzzy Metode Tsukamoto
Perhitungan untuk menentukan besarnya bantuan dana pembangunan rumah tidak layak huni yang akan diterima kepala keluarga terdapat 3 tahapan,
yaitu : perhitungan derajat keanggotaan variabel masukan kerusakan rumah dan kondisi ekonomi , mekanisme inferensi fuzzy, dan unit defuzifikasi.
Berikut penjelasan lebih lanjut :
5.1.1 Perhitungan Derajat Keanggotaan
Berikut ini penjelasan lebih lanjut mengenai perhitungan derajat keanggotaan tiap himpunan fuzzy dari variabel kerusakan rumah dan
kondisi ekonomi dari kasus yang diambil dari survei terhadap rumah seorang Kepala Keluarga bernama Asmoro Bayu Nurprasetyo dengan
penghasilan Rp 700.000,00 per-bulan. Dan memiliki rumah dengan kondisi seperti gambar berikut,
Kondisi Nilai
1 2
3 4
Atap Dinding
Lantai
a. Perhitungan Persentase Kerusakan Rumah
Perhitungan persentase kerusakan rumah harus ditentukan dengan menghitung dari nilai bobot yang telah ditentukan. Berikut
formula untuk menentuka persentase kerusakn rumah : K =
∑ ∑ ∑
x 100
Keterangan : K = Persentase kerusakan rumah
n = nilai k = kondisi
maka diperoleh perhitungan seperti dibawah ini : K =
= 0,67 x 100 = 67 Jadi persentase kerusakan rumah adalah 67 .
b. Perhitungan
µ
RusakRingan
[y] Perhitungan derajat keanggotaan himpunan fuzzy
“rusak ringan” menggunakan pendekatan fungsi keanggotaan linear turun.
Perhitungan derajat keanggotaan ini, diimplementasi dalam function
bernama “ FuncRusakringan”.
Kerusakan Rumah Persen Gambar 5. 1 Fungsi Keanggotaan Rusak Ringan
Batas bawah 0 dan batas atas 50 himpunan fuzzy “ rusak
ringan” diambil dari tabel “ batashimpunan”. Listing program adalah :
select batasbawah
,batastengah, batasatas
from batashimpunan where himpunanfuzzy = rusakringan;
Jika kerusakan rumah berada diantara 0 sampai 50 maka nilai keanggotaan “rusak ringan” adalah 50-y 50-0.
Listing programnya adalah
if kerusakan = bawah kerusakan = atas { myuRusakRingan
= double
Math.roundatas -
kerusakan atas - bawah bulat bulat; if myuRusakRingan = 0 {
myuRusakRingan = 0; }
}
Jika kerusakan rumah lebih besar 50 maka µ
RusakRingan
[y] = 0. Karena nilai kerusakan rumah sebesar 67 maka nilai kerusakan tersebut diatas batas atas yaitu sebesar 50 . Listing
programnya sebagai berikut :
if kerusakan = atas { myuRusakRingan = 0;
}
maka menjadi :
if 67 = 50 { myuRusakRingan = 0;
}
Jadi nilai myuRusakRingan adalah 0. Function “FuncRusakringan” akan memberikan nilai balik berupa
nulai dari myuRusakRingan. c.
Perhitungan
µ
RusakSedang
[y] Perhitungan derajat keanggotaan himpunan fuzzy
“rusak sedang” menggunakan pendekatan fungsi keanggotaan segitiga.
Perhitungan derajat keanggotaan ini, diimplementasi dalam function
bernama “ FuncRusakSedang”.
Kerusakan Rumah Persen Gambar 5. 2 Fungsi Keanggotaan Rusak Sedang
Batas bawah 0, batas tengah 50 dan batas atas 100 himpunan fuzzy
“rusak sedang” diambil dari tabel “ batashimpunan”. Berikut Listing programnya :
select batasbawah,
batastengah, batasatas
from batashimpunan where himpunanfuzzy = rusakringan;
Jika kerusakan rumah berada diantara 0 sampai 50 antara batas bawah dan batas tengah fungsi keanggotaan rusak sedang,
maka nilai k enaggotaan “rusak sedang”
µ
RusakSedang
[y] adalah y-0 50-0. Berikut listing programnya :
if kerusakan2 = bawah2 kerusakan2 = tengah2 { myuRusakSedang = double Math.roundkerusakan2 -
bawah2tengah2 - bawah2 bulat bulat; }
Jika kerusakan rumah berada diantara 50 sampai 100 antara batas tengah dan batas atas fungsi keanggotaan rusak sedang,
maka nilai keanggotaan “rusak sedang”
µ
RusakSedang
[y] adalah
100-y 100-50. Karena nilai kerusakan rumah sebesar 67 maka nilai kerusakan tersebut berada diantara batas tengah yaitu
sebesar 50 dan batas atas yaitu 100 . Berikut adalah listing programnya:
if kerusakan2 = tengah2 kerusakan2 = atas2 { myuRusakSedang = double Math.roundatas2 -
kerusakan2 atas2 - tengah2 bulat bulat; }
Maka menjadi :
if 67 = 50 67 = 100 { myuRusakSedang = double Math.round100 - 67
67 - 100 bulat bulat; }
Jadi nilai myuRusakSedang adalah 0,66. Function “FuncRusakSedang” akan memberikan nilai balik berupa
nulai dari myuRusakSedang. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
d. Perhitungan
µ
RusakBerat
[y] Perhitungan derajat keanggotaan himpunan fuzzy
“rusak berat” menggunakan pendekatan fungsi keanggotaan linear naik.
Perhitungan derajat keanggotaan ini, diimplementasi dalam function
bernama “ FuncRusakBerat”.
Kerusakan Rumah Persen Gambar 5. 3 Fungsi Keanggotaan Rusak Berat
Batas bawah 50, batas tengah 100 dan batas atas 100 himpunan fuzzy
“rusak berat” diambil dari tabel “ batashimpunan”. Berikut Listing programnya :
select batasbawah,
batastengah, batasatas
from batashimpunan where himpunanfuzzy = rusakberat;
Jika kerusakan rumah berada diantara 50 sampai 100 antara batas bawah dan batas tengah fungsi kenaggotaan rusak berat,
maka nilai kena ggotaan “rusak berat”
µ
RusakBerat
[y] adalah y- 50 100-50. Karena nilai kerusakan rumah sebesar 67 maka
nilai kerusakan tersebut berada diantara batas bawah yaitu sebesar 50 dan batas tengah yaitu 100. Berikut listing programnya :
if kerusakan3 = bawah3 kerusakan3 = tengah3 { myuRusakBerat = double Math.roundkerusakan3 -
bawah3 tengah3 - bawah3 bulat bulat; }
Maka menjadi : PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
if 67 = 50 67 = 100 { myuRusakBerat = double Math.round67 - 50
100 - 50 bulat bulat; }
Jadi nilai myuRusakBerat adalah 0,34. Jika kerusakan rumah lebih besar 100 batas atas maka nilai
keanggotaan “rusak berat”
µ
RusakBerat
[y] =1. Berikut adalah listing programnya:
if kerusakan3 = atas3 { myuRusakBerat = 1;
}
Function “FuncRusakBerat” akan memberikan nilai balik berupa nulai dari myuRusakBerat.
e. Perhitungan
µ
Miskin
[x] Perhitungan derajat keanggotaan himpunan fuzzy
“miskin” menggunakan pendekatan fungsi keanggotaan linear turun.
Perhitungan derajat keanggotaan ini, diimplementasi dalam function
bernama “ FuncMiskin”.
Kondisi Ekonomi rupiah Gambar 5. 4 Fungsi Keanggotaan Miskin
Batas bawah 0 ribu batas tengah 500 ribu dan batas atas 1500 ribu himpunan fuzzy
“ Miskin ” diambil dari tabel “ batashimpunan”. Listing program adalah :
select batasbawah,batastengah,batasatas
from batashimpunan where himpunanfuzzy = miskin;
Jika penghasilan berada diantara 500 ribu sampai 1500 ribu antara batas tengah dan batas atas
maka nilai keanggotaan “Miskin” adalah 1500-x 1500-500. Karena nilai penghasilan sebesar
700000 maka nilai penghasilan tersebut berada diantara batas tengah yaitu sebesar 500000 dan batas atas yaitu 1000000. Listing
programnya adalah
if kondisi4 = tengah4 kondisi4 = atas4 { myuMiskin = double Math.roundatas4 - kondisi4
atas4 - tengah4 bulat bulat; }
Maka menjadi :
if 700000 = 500000 700000 = 1000000 { myuMiskin = double Math.round1000000 - 700000
1000000 - 500000 bulat bulat; }
Jadi nilai myuMiskin adalah 0,8. Jika penghasilan berada diantara 0 ribu dan 500 ribu antara batas
bawah dan batas tengah maka
µ
Miskin
[x]
=
1. Listing programnya sebagai berikut :
if kondisi4 = bawah4 kondisi4 = tengah4 { myuMiskin = 1;
}
Jika penghasilan tiap bulan lebih besar 1,5 juta maka
µ
Miskin
[x] =
.
Berikut listing programnya :
if kondisi4 = atas4 { myuMiskin = 0;
}
Function “FuncMiskin” akan memberikan nilai balik berupa nulai dari myuMiskin.
f. Perhitungan
µ
Menengah
[x] Perhitungan derajat keanggotaan himpunan fuzzy
“menengah” menggunakan pendekatan fungsi keanggotaan segitiga. Perhitungan
derajat keanggotaan ini, diimplementasi dalam function bernama “
FuncMiskin”.
Kondisi Ekonomi rupiah Gambar 5. 5 Fungsi Keanggotaan Menengah
Batas bawah 500 ribu batas tengah 1500 ribu dan batas atas 2500 ribu himpunan fuzzy
“ Menengah ” diambil dari tabel “ batashimpunan”. Listing program adalah :
select batasbawah,batastengah,batasatas
from batashimpunan where himpunanfuzzy = menengah;
Jika penghasilan berada diantara 500 ribu sampai 1500 ribu antara batas bawah dan batas tengah maka nilai keanggotaan
“Menengah” adalah x-500 1500-500. Karena nilai penghasilan sebesar 700000 maka nilai penghasilan tersebut berada diantara
batas awah yaitu sebesar 500000 dan batas tengah yaitu 1500000. Listing programnya adalah
if kondisi5 = bawah5 kondisi5 = tengah5 { myuMenengah = double Math.roundkondisi5 -
bawah5 tengah5 - bawah5 bulat bulat; }
Maka menjadi :
if 700000 = 500000 700000 = 1500000 { myuMenengah
= double
Math.round700000 -
500000 1500000 - 500000 bulat bulat; }
Jadi nilai myuMenengah adalah 0,2. Jika penghasilan berada diantara 1500 ribu dan 2500 ribu antara
batas tengah dan batas batas atas maka
µ
Menengah
[x]
adalah 2500-x 2500-1500. Listing programnya sebagai berikut :
if kondisi5 = tengah5 kondisi5 = atas5 { myuMenengah
= double
Math.roundatas5 -
kondisi5 atas5 - tengah5 bulat bulat; }
Function “FuncMenengah” akan memberikan nilai balik berupa nulai dari myuMenengah.
g. Perhitungan
µ
Kaya
[x] Perhitungan derajat keanggotaan himpunan fuzzy
“kaya” menggunakan pendekatan fungsi keanggotaan linear naik.
Perhitungan derajat keanggotaan ini, diimplementasi dalam function
bernama “ FuncKaya”.
Kondisi Ekonomi rupiah Gambar 5. 6 Fungsi Keanggotaan Kaya
Batas bawah 1500 ribu batas tengah 2500 ribu dan batas atas 2500 ribu himpunan fuzzy
“ kaya ” diambil dari tabel “ batashimpunan”. Listing program adalah :
select batasbawah,
batastengah, batasatas
from batashimpunan where himpunanfuzzy = kaya;
Jika penghasilan berada diantara 1500 ribu sampai 2500 ribuantara batas bawah dan batas tengah maka nilai keanggotaan
“Kaya” adalah x-1500 2500-1500. Listing programnya adalah
if kondisi6 = bawah6 kondisi6 = tengah6 { myuKaya = double Math.roundkondisi6 - bawah6
tengah6 - bawah6 bulat bulat; }
Jika penghasilan berada lebih besar 2500 ribu dari batas atas maka
µ
Kaya
[x]
=
1. Listing programnya sebagai berikut :
if kondisi6 = atas6 { myuKaya = 1;
}
Jika penghasilan berada diantara 0 dengan 1500 ribu, maka
µ
Kaya
[x]
=
0. Karena nilai penghasilan 700000 maka myuKaya adalah 0. Function “FuncKaya” akan memberikan nilai balik berupa nulai
dari myuKaya.
5.1.2 Mekanisme Inferensi Fuzzy