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