PENERAPAN METODE CASE–BASED REASONING UNTUK PREDIKSI DATA NASABAH YANG BERPOTENSI MEMBUKA SIMPANAN DEPOSITO SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Oleh : Sinta Septiawanti 14 5314 029 PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2018 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
241
Embed
PENERAPAN METODE CASE BASED REASONING UNTUK … · 2018-09-06 · PENERAPAN METODE CASE–BASED REASONING UNTUK PREDIKSI DATA NASABAH YANG BERPOTENSI MEMBUKA SIMPANAN DEPOSITO SKRIPSI
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
PENERAPAN METODE CASE–BASED REASONING UNTUK
PREDIKSI DATA NASABAH YANG BERPOTENSI
MEMBUKA SIMPANAN DEPOSITO
SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh :
Sinta Septiawanti
14 5314 029
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
IMPLEMENTATION OF CASE–BASED REASONING
METHOD FOR A POTENTIAL PREDICTION DATA
CUSTOMER TO OPEN DEPOSITS
THESIS
Present as Partial Fulfillment of the Requirement
to Obtain the Sarjana Komputer Degree
in Informatics Engineering Study Program
By :
Sinta Septiawanti
14 5314 029
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2018
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
HALAMAN PERSEMBAHAN
“ Beradalah di antara energi positif,
karena energi negatif cepat sekali menyebar.
Stop asking and start being grateful for everything. ”
Tugas akhir ini saya persembahkan kepada :
Allah Bapa, Putra, Roh Kudus
Bunda Maria
Papa dan Ibu yang terkasih
Keluarga tercinta
Teman–teman seperjuangan Teknik Informatika 2014.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
ABSTRAK
Simpanan deposito merupakan program bank yang disediakan bagi
masyarakat untuk berinvestasi. Untuk itu bank perlu menentukan strategi
pemasaran dan promosi yang efisien dan efektif, sangat penting bagi bank untuk
mengetahui nasabah yang berpotensi membuka simpanan deposito. Oleh karena
permasalahan tersebut, maka dilakukan penelitian untuk memprediksi nasabah
yang memiliki loyalitas dalam membuka simpanan deposito. Penelitian ini
menggunakan teknik data mining dengan menerapkan metode case–based
reasoning. Data yang digunakan pada penelitian ini adalah data publik pada
bagian pemasaran suatu bank di Portugal. Uji akurasi penelitian ini menggunakan
cross validation dan confusion matrix. Dalam penelitian ini dilakukan tiga kali
percobaan dengan memasukkan nilai k=3, k=5, dan k=7. Dari hasil percobaan,
didapatkan akurasi tertinggi sebesar 86,948% yaitu pada k=5. Dengan demikian
dapat disimpulkan bahwa metode case–based reasoning dapat diterapkan untuk
sistem dalam memprediksi nasabah yang berpotensi membuka simpanan deposito.
Kata kunci : prediksi nasabah, deposito, data mining, case–based reasoning.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
ABSTRACT
Deposit is a bank program which is provided for people to invest. Therefore, bank
needs to decide the efficient and effective promotion and marketing strategy. It is
very significant for a bank to understand the potential client to open deposit.
Based on that concern, this research is done to predict the client who has a loyalty
to open deposit. This research used data mining technique with the
implementation of case–based reasoning method. The research’s data is taken
from public data in marketing department of one of the Portugal banks. The test of
the research accuracy used cross validation and confusion matrix. This research
used three times experiments with the following k value is k=3, k=5, and k=7. The
result of the experiment is the highest accuracy of 86,948% on k=5. In conclusion,
case–based reasoning method can be implemented for a system to predict the
potential client to open deposit.
Keyword : prediction of bank customer, deposit, data mining,
case–based reasoning.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI
KARYA ILMIAH UNTUK KEPERLUAN KEPENTINGAN
AKADEMIS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Puji dan syukur penulis haturkan kepada Tuhan Yang Maha Esa karena berkat
rahmat dan karunianya, penulis dapat menyelesaikan tugas akhir ini yang berjudul
“PENERAPAN METODE CASE–BASED REASONING UNTUK PREDIKSI
DATA NASABAH YANG BERPOTENSI MEMBUKA SIMPANAN
DEPOSITO”.
Adapun dalam proses pengerjaan tugas akhir ini terdapat dukungan, motivasi, dan
doa dari berbagai pihak yang membuat selesainya tugas akhir ini. Pada
kesempatan ini pula penulis akan mengucapkan terima kasih kepada :
1. Tuhan Yesus Kristus dan Bunda Maria atas berkat dan karunianya yang
telah memberikan kekuatan, bimbingan, keyakinan dan penyertaannya
kepada penulis.
2. Kedua orang tua penulis, Bapak Robertus Bellarminus Waliman dan Ibu
Fransisca Xaveria Lusia yang sangat memberikan doa restu, dukungan,
juga tak hentinya memberikan perhatian dan nasihat yang memotivasi
penulis.
3. Bapak Sudi Mungkasi, S. Si, M.Math.Sc., Ph.D. selaku Dekan Fakultas
Sains dan Teknologi.
4. Ibu Dr. Anastasia Rita Widiarti selaku Ketua Program Studi Teknik
Informatika.
5. Ibu Paulina Heruningsih Prima S.Si., M.Sc. selaku Dosen Pembimbing
Tugas Akhir yang telah mencurahkan pikiran dan memberikan waktu serta
membimbing penulis.
6. Romo Dr. Cyprianus Kuntoro Adi, S.J. sebagai selayaknya Dosen
Pembimbing Tugas Akhir kedua yang telah membantu penulis dalam
melakukan analisis penelitian ini.
7. Bapak Albertus Agung Hadhiatma, S.T., M.T selaku Dosen Pembimbing
Akademik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
DAFTAR ISI
HALAMAN PERSETUJUAN ............................................................................... iii
HALAMAN PENGESAHAN ................................................................................ iv
HALAMAN PERSEMBAHAN ............................................................................. v
ABSTRAK ............................................................................................................ vii
ABSTRACT ......................................................................................................... viii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPERLUAN KEPENTINGAN AKADEMIS ...................................... ix
KATA PENGANTAR ............................................................................................ x
DAFTAR ISI ......................................................................................................... xii
DAFTAR TABEL ................................................................................................ xvi
DAFTAR GAMBAR ........................................................................................... xix
DAFTAR RUMUS .............................................................................................. xxi
DAFTAR LAMPIRAN ....................................................................................... xxii
BAB I PENDAHULUAN ....................................................................................... 1
1.1. Latar Belakang................................................................................. 1
1.2. Rumusan Masalah ........................................................................... 3
1.3. Batasan Masalah .............................................................................. 3
1.4. Tujuan Penelitian ............................................................................. 4
3. Diagram Sekuen Simpan Hasil Identifikasi Case–Based Reasoning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
103
LAMPIRAN 4 : Algoritma Per–Method
Tabel 4.3 Rincian Algoritma per–Method Kelas HomeControl.java
NAMA METHOD FUNGSI METHOD
ALGORITMA
METHOD
showBeranda()
Method ini digunakan
untuk menampilkan
halaman awal atau
halaman utama
1. Memanggil method
showMain() dari
method getFrame().
showBantuan()
Method ini digunakan
untuk menampilkan
halaman bantuan.
1. Memanggil method
clearDesktop() dari
method getFrame().
2. Dengan memanggil
objek JPanel dengan
nama bantuanPanel.
showTentang()
Method ini digunakan
untuk menampilkan
halaman tentang.
1. Memanggil method
clearDesktop() dari
method getFrame().
2. Dengan memanggil
objek JPanel dengan
nama tentangPanel.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
Tabel 4.4 Rincian Algoritma per–Method Kelas PreprocessControl.java
NAMA METHOD FUNGSI METHOD ALGORITMA METHOD
proses(final
List<DataSet>
dataSetLama, final
List<DataSet>
dataSetBaru)
Method ini digunakan
untuk memanggil
method proses pada
objek cbr dengan data
yang ditampung dari
ArrayList<DataSet>.
1. Mengembalikan nilai
proses yang berisi
dataSetLama dan
dataSetBaru pada
objek cbr.
showItSelf()
Method ini digunakan
untuk menampilkan
mainPanel.
1. Memanggil method
clearDesktop() dari
method getFrame().
2. Dengan memanggil
objek JPanel dengan
nama tentangPanel.
saveConclusion(Hasil
result, String fileLocation)
Method ini digunakan
untuk menyimpan hasil
detail dari identifikasi
case – based reasoning
ke direktori komputer
dalam bentuk file
berekstensi .xls.
1. Mendeklarasikan
fungsi try catch.
2. Didalam fungsi try
dideklarasikan fungsi
untuk membuat cell
ataupun tabel yang
akan muncul pada saat
file disimpan.
3. Dan terdapat
perulangan for, yang
berisi nilai untuk
mengembalikan nilai
atribut–atribut yang
ada pada data.
saveResult(Hasil result, Method ini digunakan 1. Mendeklarasikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
105
String fileLocation) untuk menyimpan hasil
detail dari identifikasi
case – based reasoning
ke direktori komputer
dalam bentuk file
berekstensi .xls.
fungsi try catch.
2. Didalam fungsi try
dideklarasikan fungsi
untuk membuat cell
ataupun tabel yang
akan muncul pada saat
file disimpan.
3. Dan terdapat
perulangan for, yang
berisi nilai untuk
mengembalikan nilai
atribut–atribut yang
ada pada data.
createRow(Sheet sheet, int
rowNum)
Method ini digunakan
untuk membuat baris
baru didalam sheet.
1. Mendeklarasikan
objek Row dengan
nama rows.
2. Jika row sama dengan
null, maka baris akan
ditambahkan pada
sheet.
3. Kemudian
mengembalikan nilai
dari row.
createTable(DataSet
dataSet, HasilDetail
resultDetail, Sheet sheet,
int rowNum, int colNum,
CellStyle headerCellStyle,
CellStyle borderStyle,
CellStyle titleStyle)
Method ini digunakan
untuk membuat tabel
pada file hasil yang
akan disimpan.
1. Membuat objek header
yang akan digunakan
sebagai row pada
Ms.Excel.
2. Membuat objek cell
yang akan digunakan
sebagai cell pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
Ms.Excel.
3. Mendeklarasikan
fungsi if, yaitu jika
nilai tidak sama
dengan null, maka
akan memanggil
method setCellStyle
untuk membuat tabel
pada Ms.Excel.
4. Kemudian
mendeklarasikan
fungsi perulangan for,
untuk menampung
nilai untuk setiap nilai.
5. Selanjutnya adalah
memanggil method
setCellValue, untuk
membuat “JUMLAH”
yang akan digunakan
untuk nilai jumlah
similarity pada
Ms.Excel.
6. Selanjutnya adalah
memanggil method
setCellValue, untuk
membuat
“KEDEKATAN” yang
akan digunakan untuk
nilai kedekatan atribut
pada Ms.Excel.
cellDeveloper(DataSet Method ini digunakan 1. Mendeklarasikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
107
dataSet, HasilDetail
resultDetail, int row, int
col)
untuk menampung nilai
untuk setiap cell.
percabangan switch
case, dengan switch
menggunakan col.
2. Ketika kondisi col
sama dengan 0, maka
akan memangil nilai
array row.
3. Ketika kondisi col
sama dengan 1, maka
akan melakukan
return getAtribut yang
berisi nilai dataSet dan
row.
4. Ketika kondisi col
sama dengan 2, maka
akan melakukan
return getAtribut yang
memanggil method
getDataLama() pada
resultDetail.
5. Ketika kondisi col
sama dengan 3, maka
akan melakukan
return yang berisi nilai
resultDetail.
6. Ketika kondisi col
sama dengan 4, maka
akan melakukan
return getBobot yang
berisi nilai row.
7. Ketika kondisi col
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
108
sama dengan 5, maka
akan melakukan
return getSimilarity
yang berisi nilai
resultDetail.
getSimilarity(HasilDetail
rd, int index)
Method ini digunakan
untuk memanggil nilai
dari similarity untuk
setiap atribut.
1. Membuat atribut rd
bertipe kelas
HasilDetail dan index
bertipe Integer.
2. Kemudian masuk ke
dalam percabangan
switch case, dengan
switch menggunakan
index.
3. Ketika kondisi index
sama dengan 0, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
age.
4. Ketika kondisi index
sama dengan 1, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai job.
5. Ketika kondisi index
sama dengan 2, maka
akan memanggil
method getSimilarity()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
109
dari objek rd untuk
mendapatkan nilai
balance.
6. Ketika kondisi index
sama dengan 3, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
housing.
7. Ketika kondisi index
sama dengan 4, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
loan.
8. Ketika kondisi index
sama dengan 5, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
contact.
9. Ketika kondisi index
sama dengan 6, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
month.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
110
10. Ketika kondisi index
sama dengan 7, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
duration.
11. Ketika kondisi index
sama dengan 8, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
pDays.
12. Ketika kondisi index
sama dengan 9, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
previous.
13. Ketika kondisi index
sama dengan 10, maka
akan memanggil
method getSimilarity()
dari objek rd untuk
mendapatkan nilai
poutcome.
getKedekatan(HasilDetail
rd, int index)
Method ini digunakan
untuk memanggil nilai
dari kedekatan untuk
1. Membuat atribut rd
bertipe kelas
HasilDetail dan index
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
111
setiap atribut. bertipe Integer.
2. Kemudian masuk ke
dalam percabangan
switch case, dengan
switch menggunakan
index.
3. Ketika kondisi index
sama dengan 0, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
age.
4. Ketika kondisi index
sama dengan 1, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai job.
5. Ketika kondisi index
sama dengan 2, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
balance.
6. Ketika kondisi index
sama dengan 3, maka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
112
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
housing.
7. Ketika kondisi index
sama dengan 4, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
loan.
8. Ketika kondisi index
sama dengan 5, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
contact.
9. Ketika kondisi index
sama dengan 6, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
month.
10. Ketika kondisi index
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
113
sama dengan 7, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
duration.
11. Ketika kondisi index
sama dengan 8, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
pDays.
12. Ketika kondisi index
sama dengan 9, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
previous.
13. Ketika kondisi index
sama dengan 10, maka
akan memanggil
method
getKedekatan_attribut(
) dari objek rd untuk
mendapatkan nilai
poutcome.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
114
getBobot(int index)
Method ini digunakan
untuk memanggil nilai
bobot untuk setiap
atribut.
1. Membuat atribut index
bertipe Integer.
2. Kemudian masuk ke
dalam percabangan
switch case, dengan
switch menggunakan
index.
3. Ketika kondisi index
sama dengan 0, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
age.
4. Ketika kondisi index
sama dengan 1, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai job.
5. Ketika kondisi index
sama dengan 2, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
balance.
6. Ketika kondisi index
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
115
sama dengan 3, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
housing.
7. Ketika kondisi index
sama dengan 4, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
loan.
8. Ketika kondisi index
sama dengan 5, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
contact.
9. Ketika kondisi index
sama dengan 6, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
month.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
116
10. Ketika kondisi index
sama dengan 7, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
duration.
11. Ketika kondisi index
sama dengan 8, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
pDays.
12. Ketika kondisi index
sama dengan 9, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
previous.
13. Ketika kondisi index
sama dengan 10, maka
akan memanggil nilai
BOBOT_ATTRIBUT
ES() dari kelas
Interval untuk
mendapatkan nilai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
117
poutcome.
getAttribute(DataSet
dataSet, int index)
1. Membuat atribut
dataSet bertipe kelas
DataSet dan index
bertipe Integer.
2. Kemudian masuk ke
dalam percabangan
switch case, dengan
switch menggunakan
index.
3. Ketika kondisi index
sama dengan 0, maka
akan memanggil
method getAge() dari
objek dataSet.
4. Ketika kondisi index
sama dengan 1, maka
akan memanggil
method getJob() dari
objek dataSet.
5. Ketika kondisi index
sama dengan 2, maka
akan memanggil
method getBalance()
dari objek dataSet.
6. Ketika kondisi index
sama dengan 3, maka
akan memanggil
method getHousing()
dari objek dataSet.
7. Ketika kondisi index
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
118
sama dengan 4, maka
akan memanggil
method getLoan() dari
objek dataSet.
8. Ketika kondisi index
sama dengan 5, maka
akan memanggil
method getContact()
dari objek dataSet.
9. Ketika kondisi index
sama dengan 6, maka
akan memanggil
method getMonth()
dari objek dataSet.
10. Ketika kondisi index
sama dengan 7, maka
akan memanggil
method getDuration()
dari objek dataSet.
11. Ketika kondisi index
sama dengan 8, maka
akan memanggil
method getpDays()
dari objek dataSet.
12. Ketika kondisi index
sama dengan 9, maka
akan memanggil
method getPrevious()
dari objek dataSet.
13. Ketika kondisi index
sama dengan 10, maka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
119
akan memanggil
method
getPoutCome() dari
objek dataSet.
openXLS(File file,
DataSet.KIND kind)
Method ini digunakan
untuk membaca file
excel yang dimasukkan
ke dalam sistem,
kemudian menyimpan
isi dari file .xls ke
dalam ArrayList bertipe
DataSet.
1. Membuat ArrayList
bertipe DataSet
dengan nama dataSets.
2. Membuat objek wb
bertipe Workbook
kemudian memanggil
method getSheetAt
dan isi parameter
dengan file .xls yang
akan diolah yaitu
menggunakan atribut
file.
3. Membuat objek sheet
bertipe Sheet yaitu
untuk menentukan
sheet yang akan diolah
pada file .xls.
4. Kemudian untuk
setiap baris objek
sheet simpan isi pada
setiap barisnya ke
dalam ArrayList.
5. Kemudian
mengembalikan
ArrayList data.
6. Jika data file yang
dimasukan tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
120
sesuai atau bukan .xls
maka akan muncul
pesan “Format Data
Salah! Proses
dibatalkan!”
verifyData(List<String>
data, DataSet.KIND kind)
Method ini digunakan
untuk melakukan
verifikasi file untuk
kasus yang akan
dimasukkan pada saat
preprocessing.
1. Membuat columns
bertipe array.
2. Mendeklarasikan
perulangan for yang
mendeklarasikan
atribut w bertipe
integer.
3. Didalamnya berisi
pendeklarasian if,
yaitu jika w lebih
besar sama dengan
panjang column, maka
akan melakukan
return false.
4. Dan jika data file yang
dimasukan bernilai
array w + 1, maka
akan melakukan
return false.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
121
Tabel 4.5 Rincian Algoritma per–Method Kelas Hasil.java
NAMA METHOD FUNGSI
METHOD ALGORITMA METHOD
getResultSets()
Method ini
digunakan untuk
menampung nilai
dari kelas HasilSet.
1. Mengembalikan nilai
dari resultSets .
Tabel 4.6 Rincian Algoritma per–Method Kelas HasilDetail.java
NAMA METHOD FUNGSI
METHOD
ALGORITMA
METHOD
getSimilarity()
Method ini
digunakan untuk
memanggil nilai dari
similarity dari kelas
NilaiAtribut.
1. Mengembalikan
nilai dari similarity
.
getKedekatan_attribut()
Method ini
digunakan untuk
memanggil nilai dari
kedekatan_attribut
dari kelas
NilaiAtribut.
1. Mengembalikan
nilai dari
kedekatan_attribut
.
jumlahSimilarity()
Method ini
digunakan untuk
menghitung
similarity.
1. Mendeklarasikan
atribut sum dengan
nilai sama dengan
0.
2. Dengan
perhitungan sum
sama dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
122
memanggil nilai
similarity yang
didapat dari
masing–masing
atribut yang sudah
didapat.
3. Kemudian
mengembalian nilai
sum
kedekatan()
Method ini
digunakan untuk
menghitung nilai
kedekatan.
1. Mengembalikan
sekaligus
menghitung nilai
dari kedekatan
dengan memanggil
method
jumlahSimilarity()
dibagi dengan
JUMLAH_BOBOT
yang dipanggil dari
kelas Interval.
Tabel 4.7 Rincian Algoritma per–Method Kelas HasilSet.java
NAMA METHOD FUNGSI
METHOD
ALGORITMA
METHOD
getBest()
Method ini
digunakan untuk
mendapatkan nilai
similarity yang
paling tinggi untuk
1. Mendeklarasikan
fungsi if, yang
didalamnya
melakukan
perulangan for dimana
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
123
kasus lama dan
kasus baru.
jika nilai objek w
sama dengan 0 maka
akan memanggil
method kedekatan() di
method get(w) yang
mana akan
menampilkan nilai
tertinggi yang
didapatkan dengan
memanggil
resultDetail.
2. Dan mengembalikan
nilai dari resultDetail.
getResultDetails() {
Method ini
digunakan untuk
menampung nilai
dari kelas ArrayList
HasilDetail.
1. Mengembalikan nilai
dari resultDetail.
Tabel 4.8 Rincian Algoritma per–Method Kelas Interval.java
NAMA METHOD FUNGSI
METHOD
ALGORITMA
METHOD
BOBOT_AGE(double param)
Method ini
digunakan untuk
merepresentasikan
nilai bobot dari
atribut age.
1. Mendeklarasikan
atribut param
yang bertipe
double.
2. Jika param lebih
besar sama
dengan 0 dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
124
param kurang
dari sama dengan
17, maka akan
mengembalikan
nilai bobot yaitu
0.
3. Jika param lebih
besar sama
dengan 18 dan
param kurang
dari sama dengan
65, maka akan
mengembalikan
nilai bobot yaitu
0,25.
4. Jika param lebih
besar sama
dengan 66 dan
param kurang
dari sama dengan
79, maka akan
mengembalikan
nilai bobot yaitu
0,5.
5. Jika param lebih
besar sama
dengan 80 dan
param kurang
dari sama dengan
99, maka akan
mengembalikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
125
nilai bobot yaitu
0,75
BOBOT_BALANCE(double
param)
Method ini
digunakan untuk
merepresentasikan
nilai bobot atribut
balance.
1. Mendeklarasikan
atribut param
yang bertipe
double.
2. Jika param lebih
besar sama
dengan
-3333 dan param
kurang dari sama
dengan 2390,525,
maka akan
mengembalikan
nilai bobot yaitu
0.
3. Jika param lebih
besar sama
dengan 2391,525
dan param
kurang dari sama
dengan 8095,049,
maka akan
mengembalikan
nilai bobot yaitu
0,8.
4. Jika param lebih
besar sama
dengan 8096,049
dan param
kurang dari sama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
126
dengan 13799,57,
maka akan
mengembalikan
nilai bobot yaitu
0,15.
5. Jika param lebih
besar sama
dengan 13800,57
dan param
kurang dari sama
dengan 19504,1,
maka akan
mengembalikan
nilai bobot yaitu
0,23.
6. Jika param lebih
besar sama
dengan 19505,1
dan param
kurang dari sama
dengan 25208,62,
maka akan
mengembalikan
nilai bobot yaitu
0,31.
7. Jika param lebih
besar sama
dengan 25209,62
dan param
kurang dari sama
dengan 30913,15,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
127
maka akan
mengembalikan
nilai bobot yaitu
0,38.
8. Jika param lebih
besar sama
dengan 30914,15
dan param
kurang dari sama
dengan 36617,67,
maka akan
mengembalikan
nilai bobot yaitu
0,46.
9. Jika param lebih
besar sama
dengan 36618,67
dan param
kurang dari sama
dengan 42322,2,
maka akan
mengembalikan
nilai bobot yaitu
0,54.
10. Jika param lebih
besar sama
dengan 42323,2
dan param
kurang dari sama
dengan 48026,72,
maka akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
128
mengembalikan
nilai bobot yaitu
0,62.
11. Jika param lebih
besar sama
dengan 48027,72
dan param
kurang dari sama
dengan 53731,25,
maka akan
mengembalikan
nilai bobot yaitu
0,69.
12. Jika param lebih
besar sama
dengan 53732,25
dan param
kurang dari sama
dengan 59435,77,
maka akan
mengembalikan
nilai bobot yaitu
0,77.
13. Jika param lebih
besar sama
dengan 59436,77
dan param
kurang dari sama
dengan 65140,29,
maka akan
mengembalikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
129
nilai bobot yaitu
0,85.
14. Jika param lebih
besar sama
dengan 65141,29
dan param
kurang dari sama
dengan 70844,82,
maka akan
mengembalikan
nilai bobot yaitu
0,92.
15. Jika param lebih
besar sama
dengan 70845,82
dan param
kurang dari sama
dengan 76549,34,
maka akan
mengembalikan
nilai bobot yaitu
1.
BOBOT_DURATION(double
param)
Method ini
digunakan untuk
merepresentasikan
nilai bobot atribut
duration.
1. Mendeklarasikan
atribut param
yang bertipe
double.
2. Jika param lebih
besar sama
dengan
4 dan param
kurang dari sama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
130
dengan 467,5535,
maka akan
mengembalikan
nilai bobot yaitu
0,08.
3. Jika param lebih
besar sama
dengan 468,5535
dan param
kurang dari sama
dengan 699,8302,
maka akan
mengembalikan
nilai bobot yaitu
0,17.
4. Jika param lebih
besar sama
dengan 700,8302
dan param
kurang dari sama
dengan 932,1069,
maka akan
mengembalikan
nilai bobot yaitu
0,25.
5. Jika param lebih
besar sama
dengan 933,1069
dan param
kurang dari sama
dengan 1164,384,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
131
maka akan
mengembalikan
nilai bobot yaitu
0,33.
6. Jika param lebih
besar sama
dengan 1165,384
dan param
kurang dari sama
dengan 1396,66,
maka akan
mengembalikan
nilai bobot yaitu
0,42.
7. Jika param lebih
besar sama
dengan 1397,66
dan param
kurang dari sama
dengan 1628,937,
maka akan
mengembalikan
nilai bobot yaitu
0,5.
8. Jika param lebih
besar sama
dengan 1629,937
dan param
kurang dari sama
dengan 1861,214,
maka akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
132
mengembalikan
nilai bobot yaitu
0,58.
9. Jika param lebih
besar sama
dengan 1862,214
dan param
kurang dari sama
dengan 2093,491,
maka akan
mengembalikan
nilai bobot yaitu
0,67.
10. Jika param lebih
besar sama
dengan 2094,491
dan param
kurang dari sama
dengan 2325,767,
maka akan
mengembalikan
nilai bobot yaitu
0,75.
11. Jika param lebih
besar sama
dengan 2326,767
dan param
kurang dari sama
dengan 2558,044,
maka akan
mengembalikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
133
nilai bobot yaitu
0,83.
12. Jika param lebih
besar sama
dengan 2559,044
dan param
kurang dari sama
dengan 2790,321,
maka akan
mengembalikan
nilai bobot yaitu
0,92.
13. Jika param lebih
besar sama
dengan 2791,321
dan param
kurang dari sama
dengan 3022,598,
maka akan
mengembalikan
nilai bobot yaitu
1.
BOBOT_PDAYS(double
param)
Method ini
digunakan untuk
merepresentasikan
nilai bobot atribut
duration.
1. Mendeklarasikan
atribut param
yang bertipe
double.
2. Jika param lebih
besar sama
dengan
-1 dan param
kurang dari sama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
134
dengan 65,75714,
maka akan
mengembalikan
nilai bobot yaitu
0.
3. Jika param lebih
besar sama
dengan 66,75714
dan param
kurang dari sama
dengan 133,5143,
maka akan
mengembalikan
nilai bobot yaitu
0,08.
4. Jika param lebih
besar sama
dengan 134,5143
dan param
kurang dari sama
dengan 201,2714,
maka akan
mengembalikan
nilai bobot yaitu
0,17.
5. Jika param lebih
besar sama
dengan 202,2714
dan param
kurang dari sama
dengan 269,0285,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
135
maka akan
mengembalikan
nilai bobot yaitu
0,25.
6. Jika param lebih
besar sama
dengan 270,0285
dan param
kurang dari sama
dengan 336,7857,
maka akan
mengembalikan
nilai bobot yaitu
0,33.
7. Jika param lebih
besar sama
dengan 337,7857
dan param
kurang dari sama
dengan 404,5428,
maka akan
mengembalikan
nilai bobot yaitu
0,42.
8. Jika param lebih
besar sama
dengan 405,5428
dan param
kurang dari sama
dengan 472,3,
maka akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
136
mengembalikan
nilai bobot yaitu
0,5.
9. Jika param lebih
besar sama
dengan 473,3 dan
param kurang
dari sama dengan
540,0571, maka
akan
mengembalikan
nilai bobot yaitu
0,58.
10. Jika param lebih
besar sama
dengan 541,0571
dan param
kurang dari sama
dengan 607,8142,
maka akan
mengembalikan
nilai bobot yaitu
0,67.
11. Jika param lebih
besar sama
dengan 608,8142
dan param
kurang dari sama
dengan 675,5714,
maka akan
mengembalikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
137
nilai bobot yaitu
0,75.
12. Jika param lebih
besar sama
dengan 676,5714
dan param
kurang dari sama
dengan 743,3285,
maka akan
mengembalikan
nilai bobot yaitu
0,83.
13. Jika param lebih
besar sama
dengan 744,3285
dan param
kurang dari sama
dengan 811,0856,
maka akan
mengembalikan
nilai bobot yaitu
0,92.
14. Jika param lebih
besar sama
dengan 812,0856
dan param
kurang dari sama
dengan 878,8428,
maka akan
mengembalikan
nilai bobot yaitu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
138
1.
BOBOT_PREVIOUS(double
param)
Method ini
digunakan untuk
merepresentasikan
nilai bobot atribut
previous.
1. Mendeklarasikan
atribut param
yang bertipe
double.
2. Jika param lebih
besar sama
dengan
0 dan param
kurang dari sama
dengan 1,913909,
maka akan
mengembalikan
nilai bobot yaitu
0.
3. Jika param lebih
besar sama
dengan
2,913909 dan
param kurang
dari sama dengan
4,827817, maka
akan
mengembalikan
nilai bobot yaitu
0,13.
4. Jika param lebih
besar sama
dengan
5,827817 dan
param kurang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
139
dari sama dengan
7,741726, maka
akan
mengembalikan
nilai bobot yaitu
0,25.
5. Jika param lebih
besar sama
dengan
8,741726 dan
param kurang
dari sama dengan
10,65563, maka
akan
mengembalikan
nilai bobot yaitu
0,38.
6. Jika param lebih
besar sama
dengan
11,65563 dan
param kurang
dari sama dengan
13,56954, maka
akan
mengembalikan
nilai bobot yaitu
0,5.
7. Jika param lebih
besar sama
dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
140
14.56954 dan
param kurang
dari sama dengan
16.48345, maka
akan
mengembalikan
nilai bobot yaitu
0,63.
8. Jika param lebih
besar sama
dengan
17,48345 dan
param kurang
dari sama dengan
19,39736, maka
akan
mengembalikan
nilai bobot yaitu
0,75.
9. Jika param lebih
besar sama
dengan
20,39736 dan
param kurang
dari sama dengan
22,31127, maka
akan
mengembalikan
nilai bobot yaitu
0,88.
10. Jika param lebih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
141
besar sama
dengan
23,31127 dan
param kurang
dari sama dengan
25,22518, maka
akan
mengembalikan
nilai bobot yaitu
1.
Tabel 4.9 Rincian Algoritma per–Method Kelas XLSFilter.java
NAMA METHOD FUNGSI
METHOD ALGORITMA METHOD
accept(File f)
Method ini
digunakan untuk
membuat agar
supaya file yang
dimasukan hanya
dapat file bertipe
.xls.
1. Mendeklarasikan
atribut f yang bertipe
kelas File.
2. Jika nama file yang
dimasukan berekstensi
.xls maka akan
mengembalikan nilai
true.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
142
Tabel 4.10 Rincian Algoritma per–Method Kelas CBR.java
NAMA METHOD FUNGSI
METHOD
ALGORITMA
METHOD
proses(final
List<DataSet>
dataSetLama, final
List<DataSet>
dataSetBaru)
Method ini
digunakan pada
saat melakukan
proses
preprocessing
data.
1. Mendeklarasikan
DataSet yang berupa
arrayList.
2. Membuat objek result
dengan parameter
dataSetLama dan
dataSetBaru yang
diambil dari kelas
Hasil.
3. Mendeklarasikan
perulangan for, yang
membuat objek w
bertipe integer.
4. Didalamnya
melakukan
mendeklarasikan
fungsi try catch.
5. Didalamnya terdapat
fungsi perulangan for,
yang mana jika
variabel e bernilai
sama dengan 0 dan
bernilai kurang dari
dataSetLama.size()
maka akan
meamanggil
menghitung
kedekatan dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
143
memanggil method
hitungKedekatan()
dengan mendapatkan
nilai interval dulu
untuk setiap atribut.
6. Lalu menghitung
similarity dengan
memanggil method
hitungSimilarity()
untuk masing masing
atribut.
7. Dan akan memanggil
method add yang
berisi resultDetail dari
getResultDetail() pada
kelas resultSet().
hitungKedekatan(double
x, double y)
Method ini
digunakan untuk
menghitung nilai
kedekatan.
1. Mengembalikan
sekaligus menghitung
nilai dari kedekatan
dengan memanggil
method to pada kelas
Round dengan
perhitungan
kedekatan
didalamnya.
hitungSimiliarity(double
s, double w)
Method ini
digunakan untuk
menghitung
similarity.
1. Mengembalikan
sekaligus menghitung
nilai dari similarity
dengan memanggil
method to pada kelas
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
144
Round dengan
perhitungan similarity
didalamnya.
hitungSimiliarity(double[]
s, double[] w)
Method ini
digunakan untuk
menghitung
similarity
1. Mendeklarasikan
variabel s dan w yang
bertipe array double.
2. Jika panjang s tidak
sama dengan w maka
akan mengembalikan
nilai 0.
3. Lalu mendeklarasikan
fungsi perulangan for,
yang berisi rumus
untuk menghitung
similarity yaitu
mengalikan s dengan
w yang berisi array[i].
Tabel 4.11 Rincian Algoritma per–Method Kelas HalamanHome.java
NAMA METHOD FUNGSI
METHOD ALGORITMA METHOD
view() Method ini
digunakan untuk
memanggil method
openTarget() untuk
menampilkan
halaman home atau
halaman awal
beserta gambar.
1. Mendeklarasikan
fungsi if, yaitu jika file
yang dimasukkan ada
dan merupakan target
maka akan memanggil
method openTarget
yang berisi gambar
logo pada halaman
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
145
home atau halaman
awal.
openTarget(File
reference, int width,
int heigh)
Method ini
digunakan untuk
memanggil gambar
atau icon logo yang
ada pada halaman
awal.
1. Mendeklarasikan
fungsi try catch
2. Gambar akan
dipanggil dengan
objek targetImg pada
Bufferedmage.
Tabel 4.12 Rincian Algoritma per–Method Kelas HalamanPreprocess.java
NAMA METHOD FUNGSI
METHOD
ALGORITMA
METHOD
prosesData()
Method ini
digunakan pada
saat tombol
Identifikasi CBR.
1. Mendeklarasikan
fungsi if, jika gambar
atau icon tidak sama
dengan null, maka
akan menampilkan
pesan dialog
“Silahkan tunggu..
Sistem sedang
memproses data.”
Dan akan memanggil
method
initTableResult() dan
method
initTableConclusion(
) dan membuat
method setVisible
bernilai true.
saveResult(File dir) Method ini 1. Mendeklarasikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
146
digunakan pada
saat tombol
Simpan Hasil
Identifikasi CBR
pada halaman
hasil dijalankan.
path untuk
memanggil method
getAbsolutePath()
yang digunakan
untuk meletakkan
file yang akan
disimpan pada
direktori komputer.
2. Kemudian
menjalankan
JoptinePane untuk
menampilkan pesan
dialog “Silahkan
tunggu.. Sistem
sedang memproses
data.”
3. Lalu menjalankan
method setVisible()
yang bernilai true.
saveConclusion(File dir)
Method ini
digunakan pada
saat tombol
Simpan Hasil
Identifikasi CBR
pada halaman
hasil detail
dijalankan.
1. Mendeklarasikan
path untuk
memanggil method
getAbsolutePath()
yang digunakan
untuk meletakkan
file yang akan
disimpan pada
direktori komputer.
2. Kemudian
menjalankan
JoptinePane untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
147
menampilkan pesan
dialog “Silahkan
tunggu.. Sistem
sedang memproses
data.”
3. Lalu menjalankan
method setVisible()
yang bernilai true.
initTableResult()
Method ini
digunakan untuk
membuat tab
Hasil pada saat
preprocessing
selesai.
1. Mendeklarasikan
method method yang
sudah ada pada Java
untuk memanggil
panelResult yang
sudah dibuat.
2. Ketika tab Hasil
muncul, maka
tombol “Simpan
Hasil Identifikasi
CBR” akan muncul.
3. Didalamnya terdapat
fungsi if, yang akan
dijalankan pada saat
user melakukan klik
tombol Simpan Hasil
Identifikasi CBR,
yaitu jika hasil tidak
sama dengan null,
maka akan
menjalankan
saveResult untuk
meletakkan file ke
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
148
direktori komputer.
initTableConclusion()
Method ini
digunakan untuk
membuat tab
Hasil Detail pada
saat
preprocessing
selesai.
1. Mendeklarasikan
method method yang
sudah ada pada Java
untuk memanggil
panelConclusion
yang sudah dibuat.
2. Ketika tab Hasil
Detail muncul, maka
tombol “Simpan
Hasil Identifikasi
CBR” akan muncul.
3. Didalamnya terdapat
fungsi if, yang akan
dijalankan pada saat
user melakukan klik
tombol Simpan Hasil
Identifikasi CBR,
yaitu jika hasil tidak
sama dengan null,
maka akan
menjalankan
saveResult untuk
meletakkan file ke
direktori komputer.
initTableDataSetLama()
Method ini
digunakan untuk
membuat tab Data
Set Lama pada
saat
1. Mendeklarasikan
method method yang
sudah ada pada Java
untuk memanggil
tabPane yang sudah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
149
preprocessing
selesai.
dibuat.
2. Memanggil
setModel pada
TabelDataSet_Adapt
er pada objek
tableDataSetLama
untuk membuat tabel
pada tab Data Set
Lama.
initTableDataSetBaru()
Method ini
digunakan untuk
membuat tab Data
Set Baru pada saat
preprocessing
selesai.
1. Mendeklarasikan
method method yang
sudah ada pada Java
untuk memanggil
tabPane yang sudah
dibuat.
2. Memanggil
setModel pada
TabelDataSet_Adapt
er pada objek
tableDataSetBaru
untuk membuat tabel
pada tab Data Set
Baru.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
150
Tabel 4.13 Rincian Algoritma per–Method Kelas
TabelDataset_Adapter.java
NAMA METHOD FUNGSI METHOD ALGORITMA
METHOD
getColumnClass(int
columnIndex)
Method ini
digunakan untuk
menampilkan value
pada kolom tanpa
mendeklarasikan di
setiap baris kolom.
1. Mengembalikan
nilai class pada
kolom.
getColumnName(int
column)
Method ini
digunakan untuk
mendapatkan label
kolom dari tabel.
1. Mengembalikan
nilai dari atribut
column yang
merupakan
ArrayList
COLUMNS.
getRowCount()
Method ini
digunakan untuk
mendapatkan jumlah
baris dari sebuah
tabel.
1. Mengembalikan
jumlah baris yaitu
dari jumlah
ArrayList dataSet.
getColumnCount()
Method ini
digunakan untuk
mendapatkan jumlah
kolom dari tabel.
1. Mengembalikan
jumlah kolom.
getValueAt(final int
rowIndex, final int
columnIndex)
Method ini
digunakan untuk
mendapatkan value
pada baris dan kolom
1. Membuat objek
bertipe DataSet
dengan nama
dataSets.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
151
tertentu. 2. Objek dataSets
sama dengan
ArrayList data index
ke rowIndex.
3. Kemudian masuk ke
dalam percabangan
switch case, dengan
switch
menggunakan
columnIndex.
4. Ketika kondisi
columnIndex sama
dengan 0, maka
akan
mengembalikan
method getName()
dari objek dataSets.
5. Ketika kondisi
columnIndex sama
dengan 1, maka
akan
mengembalikan
method getAge()
dari objek dataSets.
6. Ketika kondisi
columnIndex sama
dengan 2, maka
akan
mengembalikan
method getJob()
dari objek dataSets.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
152
7. Ketika kondisi
columnIndex sama
dengan 3, maka
akan
mengembalikan
method
getBalance() dari
objek dataSets.
8. Ketika kondisi
columnIndex sama
dengan 4, maka
akan
mengembalikan
method
getHousing() dari
objek dataSets.
9. Ketika kondisi
columnIndex sama
dengan 5, maka
akan
mengembalikan
method getLoan()
dari objek dataSets.
10. Ketika kondisi
columnIndex sama
dengan 6, maka
akan
mengembalikan
method getContact()
dari objek dataSets.
11. Ketika kondisi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
153
columnIndex sama
dengan 7, maka
akan
mengembalikan
method getMonth()
dari objek dataSets.
12. Ketika kondisi
columnIndex sama
dengan 8, maka
akan
mengembalikan
method
getDuration() dari
objek dataSets.
13. Ketika kondisi
columnIndex sama
dengan 9, maka
akan
mengembalikan
method getpDays()
dari objek dataSets.
14. Ketika kondisi
columnIndex sama
dengan 10, maka
akan
mengembalikan
method
getPrevious() dari
objek dataSets.
15. Ketika kondisi
columnIndex sama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
154
dengan 11, maka
akan
mengembalikan
method
getPoutCome() dari
objek dataSets.
16. Ketika kondisi
columnIndex sama
dengan 12, maka
akan
mengembalikan
method getYN()
dari objek dataSets.
isCellEditable(int
rowIndex, int
columnIndex)
Method ini
digunakan untuk
melakukan
pengecekan apakah
sel pada baris dan
kolom tersebut dapat
diubah langung
melalui jTabel.
1. Mengembalikan
nilai return false,
dimana berisi nilai
boolean.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
155
Tabel 4.14 Rincian Algoritma per–Method Kelas
TabelHasilDetail_Adapter.java
NAMA METHOD FUNGSI METHOD ALGORITMA
METHOD
getColumnClass(int
columnIndex)
Method ini
digunakan untuk
menampilkan value
pada kolom tanpa
mendeklarasikan di
setiap baris kolom.
1. Mengembalikan
nilai class pada
kolom.
getColumnName(int
column)
Method ini
digunakan untuk
mendapatkan label
kolom dari tabel.
1. Mengembalikan
nilai dari atribut
column yang
merupakan
ArrayList
COLUMNS.
getRowCount()
Method ini
digunakan untuk
mendapatkan jumlah
baris dari sebuah
tabel.
1. Mengembalikan
jumlah baris yaitu
dari jumlah
ArrayList dataSet.
getColumnCount()
Method ini
digunakan untuk
mendapatkan jumlah
kolom dari tabel.
1. Mengembalikan
jumlah kolom.
getValueAt(final int
rowIndex, final int
columnIndex)
Method ini
digunakan untuk
mendapatkan value
1. Membuat objek
bertipe Hasil dengan
nama result.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
156
pada baris dan kolom
tertentu.
2. Membuat objek
bertipe JTable
dengan nama table
yang ditetapkan
nilai baris yaitu
(rowIndex, 170)
3. Membuat objek
bertipe double
dengan nama bobot
dan
mendeklarasikan
dengan nilai 0.
4. Jika nilai dari
columnIndex lebih
besar dari 0 dan
nilai columnIndex
kurang dari nilai
pada Interval maka
akan memanggil
nilai dari bobot
atribut tersebut.
5. Kemudian masuk ke
dalam percabangan
switch case, dengan
switch
menggunakan
columnIndex.
6. Ketika kondisi
columnIndex sama
dengan 0, maka
akan memanggil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
157
method getName()
dari objek result.
7. Ketika kondisi
columnIndex sama
dengan 0, maka
akan
mengembalikan
method getName()
dari objek dataSets.
8. Ketika kondisi
columnIndex sama
dengan 1, maka
akan memanggil
method getAge()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
9. Ketika kondisi
columnIndex sama
dengan 2, maka
akan memanggil
method getJob()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
158
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
10. Ketika kondisi
columnIndex sama
dengan 3, maka
akan memanggil
method
getBalance() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
11. Ketika kondisi
columnIndex sama
dengan 4, maka
akan memanggil
method
getHousing() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
159
objek result untuk
mendapatkan
similarity.
12. Ketika kondisi
columnIndex sama
dengan 5, maka
akan memanggil
method getLoan()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
13. Ketika kondisi
columnIndex sama
dengan 6, maka
akan memanggil
method getContact()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
160
14. Ketika kondisi
columnIndex sama
dengan 7, maka
akan memanggil
method getMonth()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
15. Ketika kondisi
columnIndex sama
dengan 8, maka
akan memanggil
method
getDuration() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
16. Ketika kondisi
columnIndex sama
dengan 9, maka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
161
akan memanggil
method
getHousing() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getpDays() dari
objek result untuk
mendapatkan
similarity.
17. Ketika kondisi
columnIndex sama
dengan 10, maka
akan memanggil
method
getPrevious() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
18. Ketika kondisi
columnIndex sama
dengan 11, maka
akan memanggil
method
getPoutcome() dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
162
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
19. Ketika kondisi
columnIndex sama
dengan 12, maka
akan memanggil
method
jumlahSimilarity()
dari objek result
untuk mendapatkan
nilai untuk
Similarity dan
memanggil method
getYN() dari objek
result untuk
mendapatkan hasil.
isCellEditable(int
rowIndex, int
columnIndex)
Method ini
digunakan untuk
melakukan
pengecekan apakah
sel pada baris dan
kolom tersebut dapat
diubah langung
melalui jTabel.
1. Mengembalikan
nilai return false,
dimana berisi nilai
boolean.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
163
Tabel 4.15 Rincian Algoritma per–Method Kelas
TabelHasilKesimpulan.java
NAMA METHOD FUNGSI METHOD ALGORITMA
METHOD
getColumnClass(int
columnIndex)
Method ini
digunakan untuk
menampilkan value
pada kolom tanpa
mendeklarasikan di
setiap baris kolom.
1. Mengembalikan
nilai class pada
kolom.
getColumnName(int
column)
Method ini
digunakan untuk
mendapatkan label
kolom dari tabel.
1. Mengembalikan
nilai dari atribut
column yang
merupakan
ArrayList
COLUMNS.
getRowCount()
Method ini
digunakan untuk
mendapatkan jumlah
baris dari sebuah
tabel.
1. Mengembalikan
jumlah baris yaitu
dari jumlah
ArrayList dataSet.
getColumnCount()
Method ini
digunakan untuk
mendapatkan jumlah
kolom dari tabel.
1. Mengembalikan
jumlah kolom.
getValueAt(final int
rowIndex, final int
columnIndex)
Method ini
digunakan untuk
mendapatkan value
pada baris dan kolom
tertentu.
1. Membuat objek
bertipe Hasil dengan
nama result.
2. Membuat objek
bertipe JTable
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
164
dengan nama table
yang ditetapkan
nilai baris yaitu
(rowIndex, 40)
3. Membuat objek
bertipe double
dengan nama bobot
dan
mendeklarasikan
dengan nilai 0.
4. Jika nilai dari
columnIndex lebih
besar dari 0 dan
nilai columnIndex
kurang dari nilai
pada Interval maka
akan memanggil
nilai dari bobot
atribut tersebut.
5. Ketika kondisi
columnIndex sama
dengan 0, maka
akan
mengembalikan
method getName()
dari objek result.
6. Ketika kondisi
columnIndex sama
dengan 1, maka
akan
mengembalikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
165
method getAge()
dari objek result.
7. Ketika kondisi
columnIndex sama
dengan 2, maka
akan
mengembalikan
method getJob()
dari objek result.
8. Ketika kondisi
columnIndex sama
dengan 3, maka
akan
mengembalikan
method
getBalance() dari
objek result.
9. Ketika kondisi
columnIndex sama
dengan 4, maka
akan
mengembalikan
method
getHousing() dari
objek result.
10. Ketika kondisi
columnIndex sama
dengan 5, maka
akan
mengembalikan
method getLoan()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
166
dari objek result.
11. Ketika kondisi
columnIndex sama
dengan 6, maka
akan
mengembalikan
method getContact()
dari objek result.
12. Ketika kondisi
columnIndex sama
dengan 7, maka
akan
mengembalikan
method getMonth()
dari objek result.
13. Ketika kondisi
columnIndex sama
dengan 8, maka
akan
mengembalikan
method
getDuration() dari
objek result.
14. Ketika kondisi
columnIndex sama
dengan 9, maka
akan
mengembalikan
method getpDays()
dari objek result.
15. Ketika kondisi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
167
columnIndex sama
dengan 10, maka
akan
mengembalikan
method
getPrevious() dari
objek result.
16. Ketika kondisi
columnIndex sama
dengan 11, maka
akan
mengembalikan
method
getPoutCome() dari
objek result.
17. Ketika kondisi
columnIndex sama
dengan 12, maka
akan
mengembalikan
method getYN()
dari objek result.
isCellEditable(int
rowIndex, int
columnIndex)
Method ini
digunakan untuk
melakukan
pengecekan apakah
sel pada baris dan
kolom tersebut dapat
diubah langung
melalui jTabel.
1. Mengembalikan
nilai return false,
dimana berisi nilai
boolean.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
168
Tabel 4.16 Rincian Algoritma per–Method Kelas
TabelHasilKesimpulan_Adapter.java
NAMA METHOD FUNGSI METHOD ALGORITMA
METHOD
getColumnClass(int
columnIndex)
Method ini
digunakan untuk
menampilkan value
pada kolom tanpa
mendeklarasikan di
setiap baris kolom.
1. Mengembalikan
nilai class pada
kolom.
getColumnName(int
column)
Method ini
digunakan untuk
mendapatkan label
kolom dari tabel.
1. Mengembalikan
nilai dari atribut
column yang
merupakan
ArrayList
COLUMNS.
getRowCount()
Method ini
digunakan untuk
mendapatkan jumlah
baris dari sebuah
tabel.
1. Mengembalikan
jumlah baris yaitu
dari jumlah
ArrayList dataSet.
getColumnCount()
Method ini
digunakan untuk
mendapatkan jumlah
kolom dari tabel.
1. Mengembalikan
jumlah kolom.
getValueAt(final int
rowIndex, final int
columnIndex)
Method ini
digunakan untuk
mendapatkan value
pada baris dan kolom
tertentu.
1. Membuat objek
bertipe Hasil dengan
nama result.
2. Membuat objek
bertipe JTable
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
169
dengan nama table
yang ditetapkan
nilai baris yaitu
(rowIndex, 40)
3. Membuat objek
bertipe double
dengan nama bobot
dan
mendeklarasikan
dengan nilai 0.
4. Jika nilai dari
columnIndex lebih
besar dari 0 dan
nilai columnIndex
kurang dari nilai
pada Interval maka
akan memanggil
nilai dari bobot
atribut tersebut.
5. Ketika kondisi
columnIndex sama
dengan 0, maka
akan
mengembalikan
method getName()
dari objek result.
6. Ketika kondisi
columnIndex sama
dengan 1, maka
akan
mengembalikan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
170
method getAge()
dari objek result.
7. Ketika kondisi
columnIndex sama
dengan 2, maka
akan
mengembalikan
method getJob()
dari objek result.
8. Ketika kondisi
columnIndex sama
dengan 3, maka
akan
mengembalikan
method
getBalance() dari
objek result.
9. Ketika kondisi
columnIndex sama
dengan 4, maka
akan
mengembalikan
method
getHousing() dari
objek result.
10. Ketika kondisi
columnIndex sama
dengan 5, maka
akan
mengembalikan
method getLoan()
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
171
dari objek result.
11. Ketika kondisi
columnIndex sama
dengan 6, maka
akan
mengembalikan
method getContact()
dari objek result.
12. Ketika kondisi
columnIndex sama
dengan 7, maka
akan
mengembalikan
method getMonth()
dari objek result.
13. Ketika kondisi
columnIndex sama
dengan 8, maka
akan
mengembalikan
method
getDuration() dari
objek result.
14. Ketika kondisi
columnIndex sama
dengan 9, maka
akan
mengembalikan
method getpDays()
dari objek result.
15. Ketika kondisi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
172
columnIndex sama
dengan 10, maka
akan
mengembalikan
method
getPrevious() dari
objek result.
16. Ketika kondisi
columnIndex sama
dengan 11, maka
akan
mengembalikan
method
getPoutCome() dari
objek result.
17. Ketika kondisi
columnIndex sama
dengan 12, maka
akan
mengembalikan
method getYN()
dari objek result.
isCellEditable(int
rowIndex, int
columnIndex)
Method ini
digunakan untuk
melakukan
pengecekan apakah
sel pada baris dan
kolom tersebut dapat
diubah langung
melalui jTabel.
1. Mengembalikan
nilai return false,
dimana berisi nilai
boolean.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
173
Tabel 4.17 Rincian Algoritma per–Method Kelas TabelHasil_Adapter.java
NAMA METHOD FUNGSI METHOD ALGORITMA
METHOD
getColumnClass(int
columnIndex)
Method ini
digunakan untuk
menampilkan value
pada kolom tanpa
mendeklarasikan di
setiap baris kolom.
1. Mengembalikan
nilai class pada
kolom.
getColumnName(int
column)
Method ini
digunakan untuk
mendapatkan label
kolom dari tabel.
1. Mengembalikan
nilai dari atribut
column yang
merupakan
ArrayList
COLUMNS.
getRowCount()
Method ini
digunakan untuk
mendapatkan jumlah
baris dari sebuah
tabel.
1. Mengembalikan
jumlah baris yaitu
dari jumlah
ArrayList dataSet.
getColumnCount()
Method ini
digunakan untuk
mendapatkan jumlah
kolom dari tabel.
1. Mengembalikan
jumlah kolom.
getValueAt(final int
rowIndex, final int
columnIndex)
Method ini
digunakan untuk
mendapatkan value
pada baris dan kolom
tertentu.
1. Membuat objek
bertipe Hasil dengan
nama result.
2. Membuat objek
bertipe JTable
dengan nama table
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
174
yang ditetapkan
nilai baris yaitu
(rowIndex, 170)
3. Membuat objek
bertipe double
dengan nama bobot
dan
mendeklarasikan
dengan nilai 0.
4. Jika nilai dari
columnIndex lebih
besar dari 0 dan
nilai columnIndex
kurang dari nilai
pada Interval maka
akan memanggil
nilai dari bobot
atribut tersebut.
5. Kemudian masuk ke
dalam percabangan
switch case, dengan
switch
menggunakan
columnIndex.
6. Ketika kondisi
columnIndex sama
dengan 0, maka
akan memanggil
method getName()
dari objek result.
7. Ketika kondisi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
175
columnIndex sama
dengan 0, maka
akan
mengembalikan
method getName()
dari objek dataSets.
8. Ketika kondisi
columnIndex sama
dengan 1, maka
akan memanggil
method getAge()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
9. Ketika kondisi
columnIndex sama
dengan 2, maka
akan memanggil
method getJob()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
176
objek result untuk
mendapatkan
similarity.
10. Ketika kondisi
columnIndex sama
dengan 3, maka
akan memanggil
method
getBalance() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
11. Ketika kondisi
columnIndex sama
dengan 4, maka
akan memanggil
method
getHousing() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
177
12. Ketika kondisi
columnIndex sama
dengan 5, maka
akan memanggil
method getLoan()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
13. Ketika kondisi
columnIndex sama
dengan 6, maka
akan memanggil
method getContact()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
14. Ketika kondisi
columnIndex sama
dengan 7, maka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
178
akan memanggil
method getMonth()
dari objek result
untuk mendapatkan
nilai untuk NB, NL,
dan memanggil
method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
15. Ketika kondisi
columnIndex sama
dengan 8, maka
akan memanggil
method
getDuration() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
16. Ketika kondisi
columnIndex sama
dengan 9, maka
akan memanggil
method
getHousing() dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
179
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getpDays() dari
objek result untuk
mendapatkan
similarity.
17. Ketika kondisi
columnIndex sama
dengan 10, maka
akan memanggil
method
getPrevious() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
18. Ketika kondisi
columnIndex sama
dengan 11, maka
akan memanggil
method
getPoutcome() dari
objek result untuk
mendapatkan nilai
untuk NB, NL, dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
180
memanggil method
getSimilarity() dari
objek result untuk
mendapatkan
similarity.
19. Ketika kondisi
columnIndex sama
dengan 12, maka
akan memanggil
method
jumlahSimilarity()
dari objek result
untuk mendapatkan
nilai untuk
Similarity dan
memanggil method
getYN() dari objek
result untuk
mendapatkan hasil.
isCellEditable(int
rowIndex, int
columnIndex)
Method ini
digunakan untuk
melakukan
pengecekan apakah
sel pada baris dan
kolom tersebut dapat
diubah langung
melalui jTabel.
1. Mengembalikan
nilai return false,
dimana berisi nilai
boolean.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
181
LAMPIRAN 5 : Source Code Program
1. Source Code Program untuk kelas HasilDetail.java
public class HasilDetail { private final DataSet dataLama; private final NilaiAtribut kedekatan_attribut = new NilaiAtribut(); private final NilaiAtribut similarity = new NilaiAtribut(); public HasilDetail(DataSet dataLama) { this.dataLama = dataLama; } public NilaiAtribut getSimilarity() { return similarity; } public NilaiAtribut getKedekatan_attribut() { return kedekatan_attribut; } public DataSet getDataLama() { return dataLama; } public double jumlahSimilarity() { double sum = 0; sum += similarity.age; sum += similarity.job; sum += similarity.balance; sum += similarity.housing; sum += similarity.loan; sum += similarity.contact; sum += similarity.month; sum += similarity.duration; sum += similarity.pDays; sum += similarity.previous; sum += similarity.poutCome; return sum; } public double kedekatan() { return Round.to(jumlahSimilarity() / Interval.JUMLAH_BOBOT, 2); } }
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
182
2. Source Code Program untuk kelas CBR.java
public class CBR { public final static boolean DEBUG = false; public Hasil proses(final List<DataSet> dataSetLama, final List<DataSet> dataSetBaru) { Hasil result = new Hasil(dataSetLama, dataSetBaru); System.out.println("CBR dataset sebanyak :" + dataSetLama.size()); for (int w = 0; w < dataSetBaru.size(); w++) { try { HasilSet resultSet = new HasilSet(dataSetBaru.get(w)); for (int e = 0; e < dataSetLama.size(); e++) { HasilDetail resultDetail = new HasilDetail(dataSetLama.get(e)); resultDetail.getKedekatan_attribut().age = hitungKedekatan(Interval.BOBOT_AGE(resultSet.getDataSet().getAge()), Interval.BOBOT_AGE(resultDetail.getDataLama().getAge())); resultDetail.getSimilarity().age = hitungSimiliarity(resultDetail.getKedekatan_attribut().age, Interval.BOBOT_ATTRIBUTES.get("Age")); resultDetail.getKedekatan_attribut().job = hitungKedekatan(Interval.BOBOT_JOB.get(resultSet.getDataSet().getJob()), Interval.BOBOT_JOB.get(resultDetail.getDataLama().getJob())); resultDetail.getSimilarity().job = hitungSimiliarity(resultDetail.getKedekatan_attribut().job, Interval.BOBOT_ATTRIBUTES.get("Job")); resultDetail.getKedekatan_attribut().balance = hitungKedekatan(Interval.BOBOT_BALANCE(resultSet.getDataSet().getBalance()), Interval.BOBOT_BALANCE(resultDetail.getDataLama().getBalance())); resultDetail.getSimilarity().balance = hitungSimiliarity(resultDetail.getKedekatan_attribut().balance, Interval.BOBOT_ATTRIBUTES.get("Balance")); resultDetail.getKedekatan_attribut().housing = hitungKedekatan(Interval.BOBOT_HOUSING.get(resultSet.getDataSet().getHousing()),