• Tidak ada hasil yang ditemukan

BAB VII PENUTUP

7.2. SARAN

Sistem deteksi outlier menggunakan algoritma Influenced Outlierness (INFLO) ini memberikan saran untuk pengembangan sistem di masa mendatang, antara lain :

1. Sistem dapat menerima masukan data dari file selain yang bertipe .xls, .csv, dan juga dari tabel selain database MySQL dan Oracle.

2. Sistem dapat menyimpan hasil deteksi ke dalam file selain yang bertipe .xls, .doc, dan .txt.

3. Sistem dapat melakukan seleksi baris.

4. Sistem dapat melakukan deteksi outlier dengan algoritma influenced outlierness (INFLO) dengan menggunakan pendekatan naïve index-based method dan micro-cluster-index-based method.

5. Sistem dapat menampilkan hasil deteksi ke dalam bentuk yang lebih menarik dan mudah dipahami (misalnya grafik).

137

DAFTAR PUSTAKA

-, Website e-Reporting Ujian Nasional milik Pusat Penilaian Pendidikan

http://118.98.234.22/sekretariat/hasilun/index.php/hasilun

Baskoro, Edy Tri, 2013, Prosedur Operasi Standar Penyelenggaraan Ujian Nasional Sekolah Menengah Pertama/Madrasah Tsanawiyah, Sekolah Menengah Pertama Luar Biasa, Sekolah Menengah Atas/Madrasah Aliyah, Sekolah Menengah Atas Luar Biasa, Sekolah Menengah Kejuruan/Madrasah Aliyah Kejuruan Serta Pendidikan Kesetaraan Program Paket B/Wustha, Program Paket C, Dan Program Paket C Kejuruan Tahun Pelajaran 2013/2014, Badan Standar Nasional Pendidikan, Jakarta

Han, Jiawei & Micheline Kamber, 2006, Data Mining Concepts and Techniques Second Edition, Elsevier

Han, J., Kamber, M., Pei J, 2012, Data Mining Concepts and Techniques Third Edition, Elsevier

Jin, W., Tung, A., Han, J., Wang, W, 2006, Ranking Outliers Using Symmetric Neighborhood Relationship, In Proc. Pacific-AsiaConf. on Knowledge Discovery and Data Mining (PAKDD), Singapore

Kriegel H.-P., Kröger P., Zimek A, 2009, Outlier Detection Techiniques (KDD 2010), 16th ACM SIGKDD Conference on Knowledge Discovery and Data Mining, Washington D.C.

Octaviani, Erlita, 2015, Deteksi Outlier Menggunakan Algoritma Local Outlier Probability (Studi Kasus Data Akademik Mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma), Perpustakaan Universitas Sanata Dharma, Yogyakarta

Peltier Tech, 2011, Excel Box and Whisker Diagrams (Box Plots)

http://peltiertech.com/excel-box-and-whisker-diagrams-box-plots/

Raharjo, Daniel Tomi, 2013, Deteksi Outlier Menggunakan Algoritma Local Outlier Factor (Studi Kasus Data Akademik Mahasiswa TI Universitas Sanata Dharma), Perpustakaan Universitas Sanata Dharma, Yogyakarta Tan, P.N., Steinbach, M., Kumar, V, 2004, Lecture Note for Chapter 1 :

Introduction to Data Mining, Pearson

Tim TI USD, 2012, Struktur Data : Pertemuan 1a SD1 - ADT - 2012Gasal Tim TI USD, 2013, Struktur Data II : Pertemuan 7 SD2- Graph

Vanetti, Marco, 2007, Confusion Matrix Online Calculator

http://www.marcovanetti.com/pages/cfmatrix/

Whitten, J. L., Bentley, L. D., dan Dittman, K. C, 2004, System Analysis and Design Method 6th edition, McGraw-Hill, USA.

Zaiane, Dr. Osmar R, 2006, Principles of Knowledge Discovery in Data : Outlier Detection, Lecture 7 Week 12

139

LAMPIRAN 1 : DIAGRAM USE CASE

Memasukkan data

Mendeteksi outlier dengan algoritma INFLO Menyimpan hasil ke direktori komputer Menyeleksi atribut <<extends>> <<depends on>> <<depends on>> USER

141

LAMPIRAN 2 : DESKRIPSI USE CASE

ID Use Case

Nama Use Case Deskripsi Aktor

001

Memasukkan data

Use case ini merupakan proses memasukkan data file bertipe .xls atau .csv ataupun data dari tabel di database ke dalam sistem.

User

002

Menyeleksi atribut

Use case ini merupakan proses pemilihan atribut dari data yang terpilih yang akan dideteksi outlier. User 003 Mendeteksi outlier dengan algoritma INFLO

Use case ini merupakan proses deteksi outlier dari data yang sudah terpilih.

User 004 Menyimpan hasil ke direktori komputer

Use case ini merupakan proses penyimpanan hasil deteksi outlier dalam bentuk file dengan tipe ekstensi .doc atau .docx atau .txt.

LAMPIRAN 3 : NARASI USE CASE

Memasukkan Data

Nama Use Case Memasukkan data ID Use Case 001

Aktor User

Deskripsi Use case ini merupakan proses memasukkan data dari beberapa tipe ekstensi file data ataupun dari database ke dalam sistem.

Kondisi Awal User telah masuk ke sistem dan berada pada halaman Preprocessing.

Kondisi Akhir Data yang terpilih tampil dalam tabel data pada halaman Preprocessing.

Typical Course

Aksi Aktor Respon Sistem

Langkah 1a : Menekan tombol "Pilih File" untuk memasukkan file yang berekstensi .xls atau .csv.

Langkah 2a : Menampilkan kotak dialog untuk pemilihan file yang berada di salah satu direktori komputer.

Langkah 3a : Memilih file yang akan dideteksi outlier.

Langkah 4a : Menampilkan data yang terpilih ke tabel data yang ada dalam halaman

Preprocessing.

Alternate Course

Langkah 1b : Menekan tombol “Pilih Database” untuk

melakukan koneksi ke database.

Langkah 2b : Menampikan halaman konfigurasi database.

Langkah 3b : Memilih database MySQL atau Oracle, dan

mengisikan isian username, password, nama database (untuk MySQL), dan URL. Lalu menekan tombol “OK”.

Langkah 4b : Jika isian konfigurasi benar, maka akan menampilkan pesan berhasil terkoneksi ke database dan akan menuju ke langkah 5b. Namun jika isian konfigurasi salah, akan tetap berada dalam halaman konfigurasi database dan mengulang isian konfigurasi. Langkah 5b : Memilih tabel

dalam database yang ingin dimasukkan ke tabel data pada halaman Preprocessing. Lalu menekan tombol “OK”.

Langkah 6b : Menampilkan data tabel yang terpilih pada halaman Preprocessing

143

Menyeleksi Atribut

Nama Use Case Menyeleksi atribut ID Use Case 002

Aktor User

Deskripsi Use case ini merupakan proses pemilihan atribut dari data yang terpilih yang akan dideteksi outlier.

Kondisi Awal Data yang terpilih sudah tampil dalam tabel data di halaman Preprocessing tersebut.

Kondisi Akhir Pemilihan data dan seleksi atribut yang akan dideteksi selesai. Menampilkan halaman Deteksi Outlier.

Typical Course

Aksi Aktor Respon Sistem

Langkah 1a : Memilih atribut yang ingin dihapus dengan mencentang pada atribut yang terpilih.

Langkah 2a : Menekan tombol

“Hapus Atribut”. Langkah 3a : Menghapus atribut yang terpilih dari tabel data. Langkah 4a : Menekan tombol

“Submit”. Langkah 5a : Menampilkan halaman Deteksi Outlier.

Alternate Course

Langkah 1b : Menekan tombol “Tandai Semua” untuk menandai semua atribut untuk dihapus. Jika ingin membatalkan penandaan atribut dapat menekan tombol “Batal”.

Langkah 2b : Menekan tombol

“Hapus Atribut”. Langkah 3b : Menghapus seluruh atribut dari tabel data. Langkah 4b : Menekan tombol

Mendeteksi Outlier dengan Algoritma INFLO

Nama Use Case Mendeteksi outlier dengan algoritma INFLO ID Use Case 003

Aktor User

Deskripsi Use case ini merupakan proses deteksi outlier dari data yang sudah terpilih.

Kondisi Awal Berada dalam halaman Deteksi Outlier. Kondisi Akhir User dapat melihat hasil deteksi outlier.

Typical Course

Aksi Aktor Respon Sistem

Langkah 1 : Mengisikan nilai

"k".

Langkah 2 : Menekan tombol “Proses”.

Langkah 3 : Menampilkan hasil deteksi outlier.

Langkah 4 : Mengisikan nilai

batas outlier.

Langkah 5 : Menekan tombol Submit.

Langkah 6 : Menampilkan hasil deteksi outlier yang memiliki nilai minimal sesuai dengan nilai batas yang sudah diisikan oleh user.

Alternate

Course - -

Menyimpan Hasil ke Direktori Komputer

Nama Use Case Menyimpan hasil ke direktori komputer ID Use Case 004

Aktor User

Deskripsi

Use case ini merupakan proses penyimpanan hasil deteksi outlier dalam bentuk file dengan tipe ekstensi .xls (Ms. Excel), .doc (Ms. Word), ataupun .txt (Notepad).

Kondisi Awal Hasil deteksi outlier sudah tampil.

Kondisi Akhir Hasil deteksi outlier sudah tersimpan dalam salah satu direktori di komputer.

145

Langkah 1 : Menekan tombol “Simpan”.

Langkah 2 : Menampilkan kotak dialog pemilihan direktori penyimpanan.

Langkah 3 : Memilih direktori penyimpanan hasil deteksi outlier.

Langkah 4 : Mengisikan nama file untuk penyimpanan. Langkah 5 : Memilih ekstensi penyimpanan file tersebut. Langkah 6 : Menekan tombol OK.

Langkah 7 : Menyimpan hasil deteksi outlier ke dalam file dalam direktori yang terpilih.

Alternate

LAMPIRAN 4 : PROSES UMUM SISTEM

Mulai

File data bertipe .xls

File data bertipe .csv Data tabel dalam

database

Seleksi atribut ? Proses seleksi atribut

Memasukkan nilai “k”

Proses deteksi outlier

Menampilkan hasil deteksi outlier Selesai Ya Tidak

Proses menyimpan hasil deteksi outlier ke direktori

komputer

File hasil deteksi bertipe .xls File hasil deteksi

bertipe .doc File hasil deteksi

147

LAMPIRAN 5 : DIAGRAM AKTIVITAS

1. Diagram Aktivitas 001 – Memasukkan Data

USER SISTEM

Menekan tombol “Pilih Database” Menampilkan halaman konfigurasi database

Memilih database dan mengisikan konfigurasinya (username, password, nama

database untuk MySQL, URL)

Mengecek koneksi database

Benar ?

Menampilkan pesan berhasil koneksi ke database

Menampilkan pesan gagal koneksi ke database

Menekan tombol “OK”.

Ya Tidak

Memilih tabel dalam database yang ingin dimasukkan ke tabel data pada halaman

Preprocessing

Menekan tombol “OK”. Menampilkan data tabel yang terpilih pada halaman Preprocessing

Menekan tombol “Pilih File” Menampilkan kotak dialog file chooser

Memilih file data bertipe .xls atau .xlsx atau .csv

Menampilkan file data yang terpilih ke tabel data di halaman Preprocessing

Memasukkan data dari database ?

Ya Tidak

2. Diagram Aktivitas 002 – Menyeleksi Atribut

USER SISTEM

Menekan tombol “Hapus Atribut” Menghapus atribut yang sudah tercentang dari tabel Seleksi Atribut pada halaman

Preprocessing

Menampilkan halaman Deteksi Outlier

Menekan tombol “Submit”

Tandai semua atribut ?

Menekan tombol “Tandai Semua”

Ya Tidak

Menandai atribut satu per satu

Semua atribut tercentang

Atribut yang ditandai menjadi tercentang

Batal menandai atribut ?

Menekan tombol “Batal”

Menghapus atribut yang sudah ditandai ?

Ya Tidak

Semua centang dibatalkan

Ya

149

3. Diagram Aktivitas 003 – Mendeteksi Outlier dengan Algoritma INFLO

USER SISTEM

Mengisikan nilai “k”

Menampilkan hasil deteksi outlier Menekan tombol “Proses”

Isi nilai batas

outlier ?

Mengisikan “Nilai Batas Outlier”

Menekan tombol “Submit” memiliki nilai minimal sesuai dengan nilai Menampilkan hasil deteksi outlier yang batas yang sudah diisikan

4. Diagram Aktivitas 004 – Menyimpan Hasil

USER SISTEM

Menekan tombol “Simpan” Menampilkan kotak dialog pemilihan direktori penyimpanan

Mengisikan nama file untuk penyimpanan

Memilih ekstensi penyimpanan file tersebut Memilih direktori penyimpanan hasil

deteksi outlier

151

LAMPIRAN 6 : DIAGRAM KELAS ANALISIS

Halaman Awal Halaman Bantuan Halaman Tentang HalamanPreprocess Halaman Database Halaman Tabel KontrolKoneksiDatabase KontrolKoneksiTabel KontrolSeleksiAtribut TableModel ModelSeleksiAtribut Kontrol_INFLO Model Graph Model Vertex Kontrol_INFLO TableModel ModelHasil_INFLO HalamanDeteksi Outlier USER

LAMPIRAN 7 : DIAGRAM SEQUENCE

1. Diagram Sequence 001 – Memasukkan Data “Pilih File”

USER <<view>> HalamanAwal <<view>> HalamanPreprocess <<controller>> KontrolSeleksiAtribut TableModel <<model>> ModelSeleksi Atribut 1. Menekan tombol “Masuk” 2. Menampilkan HalamanPreprocess

3. Menekan tombol “Pilih File” 4. Menampilkan kotak dialog file chooser

5. Memilih file data bertipe .xls atau .csv

6. tombolPilihFileActionPer formed(java.awt.event.A ctionEvent evt) 7. new KontrolSeleksiAtributTa bleModel() 8. setAtribut(dft.getColumnName(a)), setPilih(false) 9. addRow(a, saModel) 13. setModel(saTableModel) 11. Menampilkan data inputan di tableFileInput 10. setModel(dft) 14. Menampilkan atribut dari tableFileInput di tableSeleksiAtribut 12. Menampilkan data inputan di tableFileInput

15. Menampilkan atribut dari tableFileInput di tableSeleksiAtribut

153

2. Diagram Sequence 001 – Memasukkan Data “Pilih Database”

USER <<view>> HalamanAwal <<view>> HalamanPreprocess <<controller>> KontrolSeleksiAt ributTableModel <<model>> ModelSelek siAtribut 1. Menekan tombol “Masuk” 2. Menampilkan HalamanPrepro cess

3. Menekan tombol “Pilih Database”

14. new KontrolSeleksiAtributTableModel() 15. setAtribut(dft.getColumnName(a)),

setPilih(false)

16. addRow(a, saModel) 17. setModel(saTableModel) 18. Menampilkan atribut di tableSeleksiAtribut <<view>> HalamanPilih Database <<view>> HalamanPilih Table <<controller>> KontrolPilihData base <<controller>> KontrolPilihTable 4. halmPilihDatabase. setVisible(true) 5. Menampilkan HalamanPilihDatabase 6. Memilih database; Mengisi username, password, dan URL

7. pilihDatabase(Kont rolKoneksiDatabase

conn, String table) 8. isConnected (url + namaDataba se, username, password) 9. isConnect ed(true) 10. Menampilkan HalamanPilihTable 11. Memilih tabel 12. pilihData base(conn , pilihTabe lCombo.g etSelecte dItem().to String())

13. Menampilkan data pada tableFileInput

19. Menampilkan atribut di tableSeleksiAtribut

3. Diagram Sequence 002 – Menyeleksi Atribut USER <<view>> HalamanPreprocess <<controller>> KontrolSeleksiAtributTableModel <<model>> ModelSeleksiAtribut 1. Menandai atribut yang ingin

dihapus 2. Menekan tombol Hapus Atribut 3. tableFileInput.removeColumn (tableColumnAkhir), saTableModel.deleteAtribut() 4. sa.add(seleksi), fireTableDataChanged()

5. Menghapus data atribut dari tabelFileInput, Menghapus baris nama atribut dari tabelSeleksiAtribut

4. Diagram Sequence 003 – Mendeteksi Outlier dengan Algoritma INFLO

USER <<view>> HalamanPreprocess <<controller>> Kontrol_INFLO <<model>> ModelGraph 1. Menekan tombol SUBMIT <<view>> HalamanDeteksi Outlier 2. halmDeteksiOutlier. setVisible(true)

3. Menampilkan Halaman Deteksi Outlier 4. Mengisikan nilai ‘k’ lalu menekan

tombol Proses

5. tfNilaiKKeyRelease d(java.awt.event.Ke

yEvent evt) 6. prosesOutlier() 7. new Kontrol_INFLO 8. kontrolINFLO.inputData(table ProsesAlgoritma) <<model>> ModelVertex <<controller>> Kontrol_INFLOT ableModel <<model>> ModelHasil_INF LO 9. new ModelGraph 10. new ModelVertex 11. cariALL(Integer kDistance) 12. lihatIsi() 13. setHasilINFLO(String label) 15. new ModelHasil_IN FLO() 16. getLabel(), getInflo() 17. getLabel(), getInflo()

18. Menampilkan hasil deteksi outlier pada tabelHasilDeteksi 19. Menampilkan hasil deteksi outlier pada

tabelHasilDeteksi

20. Mengisikan nilai batasan outlier 21. tfNilaiBatasanOutlier KeyReleased(java.awt. event.KeyEvent evt) 14. new Kontrol_INFLOTableModel 22. setHasilINFLOBatasan(String

label, Double batasINFLO)

24. new ModelHasil_IN FLO() 23. new Kontrol_INFLOTableModel 25. getLabel(), getInflo() 26. getLabel(), getInflo()

27. Menampilkan hasil deteksi outlier pada tabelHasilDeteksi 28. Menampilkan hasil deteksi outlier pada

155

5. Diagram Sequence 004 – Menyimpan Hasil

USER

<<view>> HalamanDeteksiOutlier

1. Menekan tombol SIMPAN 2. Menampilkan kotak dialog

penyimpanan

3. Memilih direktori penyimpanan 4. Mengisikan nama file hasil penyimpanan

5. Memilih tipe file hasil penyimpanan 6. Menekan tombol Save

7.

tombolSimpanActionPerformed(java.awt.eve nt.ActionEvent evt)

8. Menampilkan pesan bahwa penyimpanan berhasil

9. Hasil deteksi outlier tersimpan sebagai file di direktori komputer

LAMPIRAN 8 : DIAGRAM KELAS DESAIN <<view>> HalamanAwal <<view>> HalamanTentang <<view>> HalamanBantuan <<view>> HalamanPreprocess <<view>> HalamanDeteksiOutlier <<view>> HalamanDatabase <<view>> HalamanTabel <<controller>> KontrolKoneksiDatabase <<controller>> KontrolSeleksiAtribut TableModel <<model>> ModelSeleksiAtribut <<controller>> Kontrol_INFLO <<controller>> Kontrol_INFLO TableModel <<model>> ModelHasil_INFLO <<model>> ModelGraph <<model>> ModelVertex <<controller>> KontrolKoneksiTable

157

LAMPIRAN 9 : DIAGRAM KELAS

<<controller>> KontrolKoneksiDatabase - url : String - username : String - password : String - conn : Connection + KontrolKoneksiDatabase() <<constructor>> + getUrl() : String + setUrl(String) : void + getUsername() : String + setUsername(String) : void + getPassword() : String + setPassword(String) : void + getConn() : Connection + setConn(Connection) : void

+ koneksiMySQL(String, String, String) : Connection + isConnectedMySQL(String, String, String) : Boolean + koneksiOracle(String, String, String) : Connection + isConnectedOracle(String, String, String) : Boolean

<<controller>> KontrolKoneksiTable - st : Statement - rs : ResultSet - query : String + displayTableMySQL(Connection) : ResultSet + displayTableOracle(Connection) : ResultSet + selectTable(Connection, String) : ResultSet

<<controller>>

KontrolSeleksiAtributTableModel - atribut : List<ModelSeleksiAtribut> - column : String[]

- seleksiAtribut : ModelSeleksiAtribut + KontrolSeleksiAtributTableModel() <<constructor>> + deleteAtribut() : void + getRowCount() : int + getColumnCount() : int + getColumnName(int) : String + getValueAt(int, int) : Object + setValueAt(Object, int, int) : void + idCellEditable(int, int) : boolean + getColumnClass(int) : Class

+ addRow(int, ModelSeleksiAtribut) : void

<<controller>> Kontrol_INFLO - graph : ModelGraph - vertexList[] : ModelVertex - edge[][] : Double + Kontrol_INFLO() + Kontrol_INFLO(int) <<constructor>> + inputData(JTable) : void

+ cariJarakEcludian(Integer, Integer) : void + cariLabel(String) : int

+ cariJarak(Double, Integer) : void

+ cariKDistance(Integer, Integer) : Double + setKDistance(String, Integer) : void + cariNN(Double, Integer) : List<String> + setNN(String) : void + cariAnggotaNN(Integer) : List<String> + setAnggotaNN(String) : void + cariRNN(Integer) : List<String> + setRNN(String) : void + cariIS(Integer) : List<String> + setIS(String) : void + cariDensity(Double) : Double + setDensity(String, Double) : void

+ cariRankingNNList(Double, Integer) : List<Integer> + setRankingNNList(String) : void

159

+ cariJarakNNList(Double, Integer) : List<Integer> + setJarakNNList(String) : void

+ cariKDistanceList(Integer, List<String>) : List<Double> + setKDistanceList(String) : void

+ cariDensityList(Integer, List<String>) : List<Double> + setDensityList(String) : void

+ cariAverageDensity(List<Double>) : Double + setAverageDensity(String) : void

+ cariINFLO(Double, Double) : Double + setINFLO(String) : void + cariALL(Integer) : void + lihatJarak() : void + lihatIsi() : void + lihatINFLO() : String + setHasilINFLO(String) : Kontrol_INFLOTableModel

+ setHasilINFLOBatasan(String, Double) : Kontrol_INFLOTableModel

<<controller>> Kontrol_INFLOTableModel - hasilINFLO : List<ModelHasil_INFLO> - label : String + Kontrol_INFLOTableModel(List<ModelHasil_INFLO, String) <<constructor>> + getRowCount() : int + getColumnCount() : int + getColumnName(int) : String + getValueAt(int, int) : Object + setValueAt(Object, int, int) : void

<<model>> ModelGraph - vertexlist[] : ModelVertex - edge[][] : Double - jmlhVertex : Integer - value : Double + ModelGraph(Integer) <<constructor>> + getVertexList() : ModelVertex[]

+ setVertexList(ModelVertex[]) : void + getEdge() : Double[][]

+ setEdge(Double[][]) : void

+ addVertex(String, List<Double>) : void + addEdge(int, int, Double) : void

<<model>> ModelHasil_INFLO - ranking : Integer - label : String - inflo : Double + ModelHasil_INFLO() <<constructor>> + getRanking() : Integer + setRanking(Integer) : void + getLabel() : String + setLabel(String) : void + getInflo() : Double + setInflo(Double) : void <<model>> ModelSeleksiAtribut - atribut : String - pilih : Boolean + ModelSeleksiAtribut + ModelSeleksiAtribut(String, Boolean) <<constructor>> + getAtribut() : String + setAtribut(String) : void + getPilih() : Boolean + setPilih(Boolean) : void <<model>> ModelVertex - label : String - nilai : List<Double> - jarak : Double

161 - jarakEuclidean : List<Double> - flagKunjungan : Boolean - ranking_nn : List<Integer> - nn : List<String> - anggotaNN : List<String> - jarak_nn : List<Double> - rnn : List<String> - is : List<String> - kDistanceDouble : Double - kDistance : List<Double> - densityDouble : Double - density : List<Double> - averageDensity : Double - inflo : Double + ModelVertex(String, List<Double>) <<constructor>> + getLabel() : String + setLabel(String) : void + getNilai() : List<Double> + setNilai(List<Double>) : void + getJarak() : Double + setJarak(Double) : void + getJarakEuclidean() : List<Double> + setJarakEuclidean(List<Double>) : void + getFlagKunjungan() : Boolean + setFlagKunjungan(Boolean) : void + getRanking_nn() : List<Integer> + setRanking_nn(List<Integer>) : void + getNn() : List<String> + setNn(List<String>) : void + getAnggotaNN() : List<String> + setAnggotaNN(List<String>) : void + getJarak_nn() : List<Double> + setJarak_nn(List<Double>) : void + getRnn() : List<String> + setRnn(List<String>) : void + getIs() : List<String> + setIs(List<String>) : void + getKDistanceDouble() : Double + setKDistanceDouble(Double) : void

+ getKDistance() : List<Double> + setKDistance(List<Double>) : void + getDensityDouble() : Double + setDensityDouble(Double) : void + getDensity() : List<Double> + setDensity(List<Double>) : void + getAverageDensity() : Double + setAverageDensity(Double) : void + getInflo() : Double + setInflo(Double) : void

163

LAMPIRAN 10 : LISTING PROGRAM

1. Listing Program – ModelGraph.java

package model; import java.util.List; /**

*

* @author Renia

* Refrensi : Kuliah Praktikum Struktur Data II Tanggal 02-Mei-2013 *

*/

public class ModelGraph {

private ModelVertex vertexList[]; private Double edge[][];

private Integer jmlhVertex = 0;

public ModelGraph(Integer maxVertex) { vertexList = new ModelVertex[maxVertex]; edge = new Double[maxVertex][maxVertex]; for (int i = 0; i < vertexList.length; i++) { for (int j = 0; j < vertexList.length; j++) { if (i == j) { edge[i][j] = 0.0; } else { edge[i][j] = -1.0; } } } }

public ModelVertex[] getVertexList() { return vertexList;

}

public void setVertexList(ModelVertex[] vertexList) { this.vertexList = vertexList;

public Double[][] getEdge() { return edge;

}

public void setEdge(Double[][] edge) { this.edge = edge;

}

public void addVertex(String label, List<Double> nilai) { vertexList[jmlhVertex++] = new ModelVertex(label, nilai); }

public void addEdge(int x, int y, Double nilai) { edge[x][y] = edge[y][x] = nilai;

} }

2. Listing Program – ModelHasil_INFLO.java

package model; /**

*

* @author Renia */

public class ModelHasil_INFLO { private Integer ranking;

private String label; private Double inflo;

public ModelHasil_INFLO() { }

public Integer getRanking() { return ranking;

}

public void setRanking(Integer ranking) { this.ranking = ranking;

}

165

return label; }

public void setLabel(String label) { this.label = label;

}

public Double getInflo() { return inflo;

}

public void setInflo(Double inflo) { this.inflo = inflo;

} }

3. Listing Program – ModelSeleksiAtribut.java

package model; /**

*

* @author Renia */

public class ModelSeleksiAtribut { private String atribut;

private Boolean pilih;

public ModelSeleksiAtribut(){

}

public ModelSeleksiAtribut(String atribut, Boolean pilih) { atribut = this.atribut;

pilih = new Boolean(pilih); }

public String getAtribut() { return atribut;

}

this.atribut = atribut; }

public Boolean getPilih() { return pilih;

}

public void setPilih(Boolean pilih) { this.pilih = pilih;

} }

4. Listing Program – ModelVertex.java

package model; import java.util.List; /** * * @author Renia */

public class ModelVertex {

private String label;

private List<Double> nilai; private Double jarak;

private List<Double> jarakEuclidean; private Boolean flagKunjungan = false; private List<Integer> ranking_nn; private List<String> nn;

private List<String> anggotaNN; private List<Double> jarak_nn; private List<String> rnn; private List<String> is;

private Double kDistanceDouble; private List<Double> kDistance; private Double densityDouble; private List<Double> density; private Double averageDensity; private Double inflo;

167

setLabel(label); setNilai(nilai); }

public String getLabel() { return label;

}

public void setLabel(String label) { this.label = label;

}

public List<Double> getNilai() { return nilai;

}

public void setNilai(List<Double> nilai) { this.nilai = nilai;

}

public Double getJarak() { return jarak;

}

public void setJarak(Double jarak) { this.jarak = jarak;

}

public List<Double> getJarakEuclidean() { return jarakEuclidean;

}

public void setJarakEuclidean(List<Double> jarakEuclidean) { this.jarakEuclidean = jarakEuclidean;

}

public Boolean getFlagKunjungan() { return flagKunjungan;

}

public void setFlagKunjungan(Boolean flagKunjungan) { this.flagKunjungan = flagKunjungan;

}

public List<Integer> getRanking_nn() { return ranking_nn;

}

public void setRanking_nn(List<Integer> ranking_nn) { this.ranking_nn = ranking_nn;

}

public List<String> getNn() { return nn;

}

public void setNn(List<String> nn) { this.nn = nn;

}

public List<String> getAnggotaNN() { return anggotaNN;

}

public void setAnggotaNN(List<String> anggotaNN) { this.anggotaNN = anggotaNN;

}

public List<Double> getJarak_nn() { return jarak_nn;

}

public void setJarak_nn(List<Double> jarak_nn) { this.jarak_nn = jarak_nn;

}

public List<String> getRnn() { return rnn;

}

public void setRnn(List<String> rnn) { this.rnn = rnn;

}

public List<String> getIs() { return is;

}

public void setIs(List<String> is) { this.is = is;

169

public Double getkDistanceDouble() { return kDistanceDouble;

}

public void setkDistanceDouble(Double kDistanceDouble) { this.kDistanceDouble = kDistanceDouble;

}

public List<Double> getkDistance() { return kDistance;

}

public void setkDistance(List<Double> kDistance) { this.kDistance = kDistance;

}

public Double getDensityDouble() { return densityDouble;

}

public void setDensityDouble(Double densityDouble) { this.densityDouble = densityDouble;

}

public List<Double> getDensity() {

Dokumen terkait