• Tidak ada hasil yang ditemukan

BAB VII PENUTUP

LAMPIRAN 6 ALGORITMA PER METHOD

Nama Method Fungsi Method Algoritma Method

cal_diff(double a, int p, double m[])

Menghitung jarak terdekat

1. Selama indeks ke-i kurang dari p, maka lakukan :

a. Jika nilai a lebih besar m[i], maka nilai diff[i] = a – m[i]. b. Jika nilai a kurang dari m[i], maka nilai diff[i] = m[i] – a. 2. Membuat variabel val = 0, dan temp = diff[0].

3. Selama indeks ke-i kurang dari p, maka lakukan :

a. Jika niali diff[i] kurang dari temp, maka temp = diff[i], dan val = i. 4. Mengembalikan nilai val.

cal_mean(int p, int n, double m[])

Menghitung centroid

1. Selama indeks ke-i kurang dari p, maka lakukan : a. m[i] = 0.

2. Membuat variabel cnt = 0 dan tempM[] sepanjang nilai p. 3. Menghitung nilai centroid tiap klaster.

4. Mengembalikan nilai variabel tempM. check1(int p, int n, HasilCluster[][] tempk) Mengecek keanggotaan tiap cluster terjadi perubahan atau tidak.

1. Perulangan untuk 2 dimensi :

a. Jika kode sekolah dari tempk tidak sama dengan kode sekolah dari k, maka mengembalikan nilai 0.

b. Jika kode sekolah dari tempk dan k memiliki kesamaan maka mengembalikan nilai 1.

ClusterUN(ArrayList<Data Sekolah> listNilai, int p)

Proses clustering atribut nilai Ujian Nasional (UN)

1. Membuat variabel n dengan nilai listNilai.size().

2. Inisialisasi obyek k, dan test dari HasilCluster[] [] sepanjang p dan n.

3. Membuat obyek dari HasilCluster[] [] dengan nama tempk sepanjang p dan n. 4. Inisialisasi atribut mLamaUN, mBaruUN, dan diff sepanjang p.

104

6. Inisialisasi nilai awal centroid (mLamaUN) dari nilai UN. 7. Membuat variabel temp dan flag, masing-masing bernilai 0. 8. Selama flag bernilai 0, maka lakukan :

a. Set nilai awal k dan test dengan nilai -1

b. Cari obyek dengan jarak terdekat menggunakan method cal_diff c. Set kode sekolah dan nilai dari obyek k dengan indeks temp dan index. 9. Hitung centroid baru dengan menggunakan method cal_mean, ditampung

pada variabel mLamaUN

10.Cek keanggotaan klaster dengan menggunakan method check1, ditampung pada variabel flag

11.Jika flag tidak bernilai 1 maka :

a. Set kode sekolah dan nilai dari obyek tempk dengan nilai dari obyek k 12.Sorting hasil cluster dari obyek k.

ClusterIIUN(ArrayList<Dat aSekolah> listNilai, int p)

Proses clustering atribut nilai Indeks Integritas Ujian Nasional (IIUN)

1. Membuat variabel n dengan nilai listNilai.size().

2. Inisialisasi obyek k, dan test dari HasilCluster[] [] sepanjang p dan n.

3. Membuat obyek dari HasilCluster[] [] dengan nama tempk sepanjang p dan n. 4. Inisialisasi atribut mLamaIIUN, mBaruIIUN, dan diff sepanjang p.

5. Inisialisasi atribut count sepanjang n.

6. Inisialisasi nilai awal centroid (mLamaIIUN) dari nilai IIUN. 7. Membuat variabel temp dan flag, masing-masing bernilai 0. 8. Selama flag bernilai 0, maka lakukan :

a. Set nilai awal k dan test dengan nilai -1

b. Cari obyek dengan jarak terdekat menggunakan method cal_diff c. Set kode sekolah dan nilai dari obyek k dengan indeks temp dan index. 9. Hitung centroid baru dengan menggunakan method cal_mean, ditampung

pada variabel mLamaIIUN

10.Cek keanggotaan klaster dengan menggunakan method check1, ditampung pada variabel flag

105

11.Jika flag tidak bernilai 1 maka :

a. Set kode sekolah dan nilai dari obyek tempk dengan nilai dari obyek k 12.Sorting hasil cluster dari obyek k.

ClusterAkreditasi(ArrayList <DataSekolah>, int p)

Proses clustering atribut nilai Akreditasi

1. Membuat variabel n dengan nilai listNilai.size().

2. Inisialisasi obyek k, dan test dari HasilCluster[] [] sepanjang p dan n.

3. Membuat obyek dari HasilCluster[] [] dengan nama tempk sepanjang p dan n. 4. Membuat variabel idx dengan nilai awal 0.

5. Inisialisasi atribut mBaruAkre, dan diff sepanjang p. 6. Inisialisasi atribut count sepanjang n.

7. Inisialisasi nilai awal centroid (mBaruAkre) dari dengan nilai awal 1, 2, dan 3. 8. Set nilai awal k dan test dengan nilai -1

9. Cari obyek dengan jarak terdekat menggunakan method cal_diff 10.Set kode sekolah dan nilai dari obyek k dengan indeks temp dan index. 11.Sorting hasil cluster dari obyek k.

search(int[] data, int key) Pencarian indeks. 1. Selama indeks ke-i kurang dari data.length, maka lakukan :

a. Jika data dengan indeks ke-i sama dengan key maka mengembalikan nilai indeks ke-i.

b. Jika tidak sama/ tidak ditemukan maka mengembalikan nilai -1. bagiCluster(int b, double

alfa, int beta, int[] jml, int n)

Menentukan klaster besar dan klaster kecil

1. Membuat variabel hasil dan hasil3 dengan nilai awal yaitu 0. 2. Menjumlahkan semua jumlah anggota yang kurang dari b.

3. Membuat variabel hasil2 dengan perhitungan alfa dikalikan n (jumlah data). 4. Jika nilai hasil lebih besar sama dengan hasil2 maka mengembalikan nilai true,

jika tidak, maka lakukan :

a. Inisialisasi variabel hasil3 dengan perhitungan jml berindeks b dibagi dengan jml berindeks b+ 1.

b. Jika hasil3 lebih besar sama dengan beta maka mengembalikan nilai true. 5. Jika tidak memenuhi syarat di atas maka mengembalikan nilai false.

106

ter[][] listData, int idx, double centro, int

jmlAnggota, String

kodeSekolah)

menghitung relative distance

bernilai awal yaitu 0.

2. Jumlahkan semua jarak dari setiap obyek dalam satu klaster ke centroid, ditampung pada variabel total

3. Inisialisasi variabel Mean dengan perhitungan total dibagi jmlAnggota

4. Inisialisasi variabel jarak yang menampung hasil dari perhitungan mencari jarak dari obyek yang ditentukan ke centroid dengan menggunakan method distance

5. Inisialisasi variabel RD dengan perhitungan jarak dibagi Mean 6. Mengembalikan nilai RD. distance(HasilCluster data, double centro) Menghitung jarak satu obyek ke centroid.

1. Membuat variabel diff dengan nilai awal yaitu 0.

2. Jika nilai lebih besar dari centro maka variabel diff menampung besaran dari perhitungan nilai dikurangi centro.

3. Jika nilai lebih kecil dari centro maka variabel diff meanmpung besaran dari perhitungan centro dikurangi nilai.

4. Mengembalikan variabel diff. findIndexCluster(String

kodeSekolah,

HasilCluster[][] hasil, int p)

Mencari

keberadaan suatu

obyek pada

beberapa cluster.

1. Perulangan pada ketiga cluster yang mempunyai kodeSekolah yang sama, jika ditemukan maka mengembalikan nilai klasternya.

2. Jika tidak ditemukan maka mengembalikan nilai -1.

NCBLOF(double relative, int jml) Menghitung derajat outlier pada numerical data.

1. Membuat variabel hasil dengan inisialisasi perhitungan jml dikalikan dengan 1 dibagi relative.

2. Mengembalikan nilai hasil.

MinCj(int newB, String kodeSekolah,

HasilCluster[][] hasil,

Mencari klaster terdekat dari

obyek yang

1. Membuat variabel idex dengan nilai awal yaitu 0.

2. Jika jarak dari satu obyek ke centroid pertama lebih kecil dari jarak satu obyek ke centroid kedua maka variabel idex menampung indeks centroid pertama, jika tidak maka variabel idex menampung indeks centroid kedua.

107

double[] centro, int idx) ditentukan. 3. Mengembalikan nilai idex. Similar(HasilCluster[][]

data, double centro, int idx, String kodeSekolah)

Mencari nilai kemiripan dari satu data ke centroid.

1. Membuat variabel hasil dan jarak, masing-masing bernilai awal yaitu 0.

2. Inisialisasi variabel jarak dengan menampung hasil pencarian besaran jarak dari sebuah data ke centroid yang menggunakan method distance.

3. Inisialisasi variabel hasil dengan perhitungan 1 dikurangi jarak. 4. Mengembalikan nilai hasil.

CBLOFBesar(int

jmlAnggota, double hasil)

Menghitung nilai derajat outlier kategorikal data yang tergolong klaster besar.

1. Mengembalikan nilai perhitungan jmlAnggota dikalikan hasil.

CBLOFKecil(int

jmlAnggota, int newB, String kodeSekolah, HasilCluster[][] hasil, double[] centro, int idx)

Menghitung nilai derajat outlier kategorikal data yang tergolong klaster kecil.

1. Membuat variabel newDis dan CBLOF dengan nilai awal yaitu 0.

2. Jika kodeSekolah dari obyek hasil memiliki kesamaan dengan kodeSekolah maka lakukan :

a. Jika jarak dari satu obyek ke centroid pertama lebih kecil dari jarak satu obyek ke centroid kedua maka variabel newDis menampung jarak ke centroid pertama, jika tidak maka variabel newDis menampung jarak ke centroid kedua.

3. Mengembalikan nilai CBLOF dengan perhitungan jmlAnggota dikalikan newDis.

Normalisasi(double[][] data, int n, int jmlAtribut)

Menghitung normalisasi dari derajat outlier per atribut yang sudah ditemukan.

1. Membuat variabel newdata untuk menampung semua data yang sudah dinormalisasi.

2. Membuat variabel newmax dengan nilai awal yaitu 5, dan newmin dengan nilai awal yaitu 1.

3. Cari nilai max (tertinggi) dari sebuah data per atribut dengan menggunakan method max.

108

method min.

5. Inisialisasi variabel newdata dengan menampung hasil perhitungan (((data – min)/ (max-min)) * (newmax-newmin)) + newmin.

6. Mengembalikan variabel newdata. max(double[][] data, int j,

int n)

Mencari nilai maximal

(tertinggi) per atribut.

1. Membuat variabel max dengan nilai awal yaitu 0.

2. Terjadi perulangan sebanyak jumlah data, selama indeks ke-i kurang dari jumlah data (n) maka lakukan :

a. Jika data lebih besar dari max maka inisialisasi variabel max dengan menampung nilai data tersebut.

3. Mengembalikan variabel max. min(double[][] data, int j,

int n)

Mencari nilai minimal

(terendah) per atribut.

1. Membuat variabel min dengan nilai awal yaitu data dengan indeks ke 0 dan j. 2. Terjadi perulangan sebanyak jumlah data, selama indeks ke-i kurang dari

jumlah data (n) maka lakukan :

a. Jika min lebih besar dari data maka inisialisasi variabel min dengan menampung nilai data tersebut.

3. Mengembalikan variabel min. BobotEntropy(double[][]

data, int jmlAtribut, int k, int n)

Menghitung bobot default per atribut

menggunakan metode Entropy.

1. Membuat variabel w[] dan f[] sepanjang nilai jmlAtribut. 2. Membuat variabel ftotal dengan nilai awal yaitu 0. 3. Selama indeks ke-i kurang dari jmlAtribut maka lakukan:

a. Membuat variabel ln dan entro, masing-masing bernilai awal yaitu 0.

b. Selama indeks ke-j kurang dari jumlah data (n), maka melakukan penjumlahan dengan data * ln data yang ditampung pada variabel ln. c. Inisialisasi variabel entro dengan perhitungan –k * ln.

d. Inisialisasi variabel f dengan perhitungan 1 –entro.

e. Penjumlahan semua nilai f yang ditampung pada variabel ftotal.

4. Proses pembagian sesuai dengan atributnya dengan perhitungan nilai f dibagi ftotal yang ditampung pada variabel w.

109

hasilOF(double[][]

normData, double[] w, int n, int jmlAtribut)

Menghitung derajat outlier final per obyek.

1. Membuat variabel hasilOF[] sepanjang nilai n.

2. Selama indeks ke-i kurang dari jumlah data (n) maka lakukan : a. Membuat variabel of dengan nilai awal yaitu 1.

b. Selama indeks ke-j kurang dari jmlAtribut maka melakukan proses perkalian of dengan normData yang dipangkatkan oleh w, kemudian ditampung pada variabel of.

c. Inisialisasi variabel hasilOF dengan nilai of. 3. Mengembalikan variabel hasilOF.

simpanOF(Jtable jtable) Menyimpan hasil deteksi outlier ke file berbentuk Microsoft Excel dengan ekstensi .xls

1. Membuat obyek frame dari Jframe.

2. Membuat obyek fileChooser dari JfileChooser dengan menggunakan parameter File.

3. SetFileFilter menggunakan obyek fileChooser.

4. Menampilkan kotak dialog pemilihan direktori menggunakan showSaveDialog. 5. Simpan sesuai jumlah kolom dan baris pada tabel.

110

LAMPIRAN 7 : PROSEDUR PENGUJIAN DAN KASUS UJI

Dokumen terkait