Berdasarkan hasil analisis pada tugas akhir ini, penulis memberikan saran untuk perbaikan dan pengembangan program lebih lanjut antara lain:
1. Program yang dibangun ini belum bisa menerima masukan selain file berformat .xls, .csv dan tabel dari basis data sehingga format dataset tidak bebas. Sistem ini bisa dilengkapi dengan tambahan pembaca data dari format lain contohnya seperti .doc
2. Program yang dibangun ini belum bisa menangani data yang kosong yang berasal dari masukan data berupa file .csv. Sistem ini dapat disempurnakan dengan penanganan data kosong atau missing values pada data dengan format file.csv.
161
DAFTAR PUSTAKA
Baradwaj, Brijesh Kumar & Pal, Saurabh. 2011. Mining Educational Data to Analyze Student‟s Performance Vol. 2 No 6. Hal 63-69.
Fayyad, Usama et al. 1996. From Data Mining to Knowledge Discovery in Databases Vol. 17 No. 3. hal 37-54.
Ghoting, Amol et al. 2006. Fast Mining of Distance-Based Outliers in High-Dimensional Datasets. Hal 609-613.
Han, Jiawei & Kamber, Micheline. 2006. Data Mining: Concepts and Techniques 2nd ed. San Francisco, CA: Morgan Kaufmann Publishers.
Hawakins, Douglas M. 1980. Identification of Outliers. London: Chapman and Hall.
Khannedy, Eko. “Menampilkan JCheckBox Di JTable”.
http://eecchhoo.wordpress.com/2010/07/15/menampilkan-jcheckbox-di-jtable/. (diakses tanggal 10 Mei 2013)
Knorr, Edwin M & Ng., Raymond T. Algorithms for Mining Distance-Based Outliers in Large Datasets. Hal 392-403
MadProgrammer. “How to Adjust JTable Columns to Fit The Longest Content in
Column Cells”. http://stackoverflow.com/questions/13013989/how-to-adjust-jtable-columns-to-fit-the-longest-content-in-column-cells. (diakses tanggal 10 Mei 2013)
Rosa, Paulina Heruningsih Prima, Ridowati Gunawan, Sri Hartati Wijono. The Development of Academic Data Warehouse as a Basis for Decision Making : Case Study at XYZ University. Proceeding of International Conference on Enterprise Information Systems and Applications, Universitas Islam Indonesia, Yogyakarta, Indonesia, 2013.
Tair, Mohammed M. Abu & El-Halees, Alaa M. 2012. Mining Educational Data to Improve Students‟ Performance: A Case Study Vol. 2 No. 2. Hal 140-146
162 LAMPIRAN Lampiran 1 : Tabel Ringkasan Use Case
Tabel Deskripsi Use Case Nomor
Use Case
Nama Use Case Deskripsi Aktor
NL-001 Input data file .xls, .csv atau tabel dari basis data
Use case ini menggambarkan proses input data, dalam bentuk file .xls, .csv atau .tabel dari basis data yang akan digunakan untuk proses deteksi outlier
Pengguna
NL-002 Pencarian outlier Use case ini menggambarkan proses pencarian outlier dalam data yang telah diinputkan
Pengguna
NL-003 Simpan hasil pencarian outlier
Use case ini menggambarkan proses simpan hasil pencarian outlier ke dalam file .txt atau .doc
Pengguna
NL-004 Seleksi atribut Use case ini menggambarkan proses seleksi atribut dari data yang
diinputkan, sehingga atribut yang tidak diperlukan dapat dihapus
Pengguna
NL-005 Distribusi atribut Use case ini menggambarkan proses distribusi atribut serta melihat grafik distribusi atribut dari data yang diinputkan
Pengguna
Lampiran 2 : Skenario Use Case
Nama Use-case Input data file .xls, .csv atau tabel dari basis data
ID Use-case NL-001
Prioritas Tinggi
Pelaku Bisnis Utama Pengguna
Deskripsi Use case ini menggambarkan proses input data
Kondisi Awal Pengguna membuka halaman utama
Urutan Aktivitas Normal
Aksi Aktor Respon Sistem
Step 1: Menekan tombol Pilih File
Step 3 : Memilih data yang akan diinputkan
Step 2: Menampilkan JFileChooser
dalam bentuk file .xls
atau .csv Step 4 : Membaca file yang dipilihh lalu menampilkan data pada tabel data, menampilkan jumlah data dan
menampilkan nama atribut pada tabel atribut. Aktivitas Alternatif Alt-Step 1: Jika pengguna ingin menginputkan data
berupa tabel dalam basis data, maka pengguna menekan tombol Pilih DB.
Alt-Step 3 : Pengguna melakukan login ke basis data dan memilih tabel yang berisi data yang akan
diinputkan.
Kondisi Akhir Data berhasil dibaca lalu ditampilkan pada tabel data di halaman utama beserta jumlah data dan daftar nama atribut dalam data.
Nama Use-case Pencarian Outlier
ID Use-case NL-002
Prioritas Tinggi
Pelaku Bisnis Utama Pengguna
Deskripsi Use case ini menggambarkan proses pencarian outlier Kondisi Awal Pengguna telah membuka file yang berisi data yang
akan diolah Urutan Aktivitas
Normal
Aksi Aktor Respon Sistem
Step 1 : Menekan tombol Submit
Step 3: Memasukkan nilai parameter M dan D lalu menekan tombol Proses
Step 2: Menampilkan halaman utama bagian deteksi outlier dan menampilkan data pada tabel berserta jumlah datanya.
Step 4 : Menampilkan hasil pencarian outlier
Aktivitas Alternatif -
Kondisi Akhir Hasil deteksi outlier dari data pengujian berhasil ditampilkan
Nama Use-case Simpan Hasil Pencarian Outlier
ID Use-case NL-003
Prioritas Normal
Pelaku Bisnis Utama Pengguna
Deskripsi Use case ini menggambarkan proses menyimpan hasil
pencarian outlier
Kondisi Awal Pengguna telah memperoleh hasil pencarian outlier Urutan Aktivitas
Normal
Aksi Aktor Respon Sistem
Step 1 : Menekan tombol Simpan
Step 3 : Memasukkan nama file yang akan disimpan, memilih format file lalu menekan tombol Save
Step 2 : Menampilkan dialog untuk menyimpan file
Step 4 : Menyimpan file hasil pencarian outlier Aktivitas Alternatif -
Kondisi Akhir File hasil pencarian
outlier berhasil disimpan
Nama Use-case Seleksi Atribut
ID Use-case NL-004
Prioritas Normal
Pelaku Bisnis Utama Pengguna
Deskripsi Use case ini menggambarkan proses menyeleksi
atribut dari data yang diinputkan
Kondisi Awal Pengguna telah membuka file yang berisi data yang akan diolah
Urutan Aktivitas Normal
Aksi Aktor Respon Sistem
Step 1 : Memilih nama atribut yang akan dihapus lalu menekan
atribut yang telah dipilh dari tabel data
Aktivitas Alternatif -
Kondisi Akhir Atribut yang dipilih
berhasil dihapus
Nama Use-case Distribusi Atribut
ID Use-case NL-005
Prioritas Normal
Pelaku Bisnis Utama Pengguna
Deskripsi Use case ini menggambarkan proses distribusi atribut dari data
Kondisi Awal Pengguna telah membuka file yang berisi data yang akan diolah
Urutan Aktivitas Normal
Aksi Aktor Respon Sistem
Step 1 : Menekan tombol Distribusi Atribut
Step 3 : Memilih atribut dari daftar atribut
Step 2 : Menampilkan dialog distribusi atribut
Step 4 : Menampilkan detail isi atribut Aktivitas Alternatif Alt-Step 3 : Menekan tombol Lihat Grafik untuk
melihat grafik distribusi atribut Kondisi Akhir Distribusi atribut beserta
grafik berhasil ditampilkan
Lampiran 3 : Diagram Aktivitas
1. Input data file .xls, .csv atau tabel dari basis data.
Pengguna Sistem
Menekan tombol untuk input data
Menampilkan JFileChooser
Memasukkan username, password dan/atau nama
basis data lalu memilih nama tabel
Membaca data yang dipilih lalu menampilkannya pada
tabel data beserta jumlahnya dan daftar
nama atribut Menampilkan dialog
login ke basis data file .xls atau .csv
tabel dari basis data
2. Pencarian outlier
Pengguna Sistem
3. Simpan file hasil pencarian outlier
Pengguna Sistem
Memasukkan nilai parameter D dan M lalu menekan tombol Proses
Menampilkan hasil deteksi outlier
Menekan tombol Simpan Menampilkan dialog untuk menyimpan file
Memasukkan nama file yang akan disimpan, memilih format file lalu
menekan tombol Save
Menyimpan file hasil pencarian outlier Menekan tombol Submit
Menampilkan halaman utama bagian deteksi outlier dan menampilkan
data pada tabel berserta jumlah datanya.
4. Seleksi Atribut
Pengguna Sistem
5. Distribusi Atribut
Pengguna Sistem
Memilih nama atribut lalu menekan tombol Hapus
Menghapus atribut yang telah dipilih dari tabel data
Menekan tombol Distribusi Atribut
Menampilkan dialog distribusi atribut
Menampilkan detail isi atribut
Menampilkan grafik distribusi atribut Memilih nama atribut
dari daftar atribut
Lampiran 4 : Tabel Diagram Kelas Analisis
Tabel Kelas Analisis Input Data File .xls dan .csv No Nama Kelas Tipe Deskripsi
1 HalamanUtama Boundary Kelas ini menyediakan halaman untuk menginputkan data file .xls atau .csv
Tabel Kelas Analisis Input Data Tabel dari Basis Data No Nama Kelas Tipe Deskripsi
1 HalamanUtama Boundary Kelas ini menyediakan halaman untuk menginputkan tabel dari basis data 2 Halaman Pilih DB Boundary Kelas ini menyediakan tampilan untuk
memilih basis data dan memasukkan data untuk login ke basis data tersebut 3 Database Controller Kelas ini befungsi untuk mengirim data
login ke basis data tertentu ke kelas DatabaseConnection
4 DatabaseConnection Entity Kelas ini berfungsi untuk membangun koneksi ke basis data
5 Halaman Pilih Tabel
Boundary Kelas ini berfungsi untuk menyediakan halaman untuk memilih tabel yang berasal dari basis data yang telah terhubung dengan sistem
Tabel Kelas Analisis Pencarian Outlier No Nama Kelas Tipe Deskripsi
1 HalamanUtama Boundary Kelas ini menyediakan halaman deteksi outlier
2 Graph Entity Kelas ini berfungsi untuk menjalankan algoritma Block-based Nested-Loop
3 Vertex Entity Kelas ini berfungsi untuk menyimpan informasi setiap obyek vertex yang terbentuk
4 Block Entity Kelas ini berfungsi untuk menyimpan informasi setiap obyek block yang terbentuk
5 GraphController Controller Kelas ini berfungsi untuk menghubungkan kelas HalamanUtama dan Graph
Tabel Kelas Analisis Simpan Hasil Pencarian Outlier No Nama Kelas Tipe Deskripsi
1 HalamanUtama Boundary Kelas ini menyediakan halaman deteksi outlier yang di dalamnya terdapat tombol untuk menyimpan hasil deteksi outlier.
Tabel Kelas Analisis Seleksi Atribut
No Nama Kelas Tipe Deskripsi
1 HalamanUtama Boundary Kelas ini menyediakan tampilan untuk melakukan seleksi atribut 2 SeleksiAtribut Entity Kelas ini menyediakan
method-method untuk mengelola informasi setiap atribut
3 CheckBoxTableModel Controller Kelas ini menyediakan method-method untuk mengelola fungsi seleksi atau hapus atribut
Tabel Kelas Analisis Distribusi Atribut
No Nama Kelas Tipe Deskripsi
1 HalamanUtama Boundary Kelas ini menyediakan tampilan yang di dalamnya terdapat tombol
untuk masuk ke dialog distribusi atribut
2 HalamanDistribusiAtribut Boundary Kelas ini menyediakan tampilan untuk melihat detail isi setiap atribut serta grafik distrbusi atribut 3. BarChart Entity Kelas ini berisi method untuk
membentuk sebuah grafik distribusi atribut
Lampiran 5 : Diagram Sequence
Gambar Diagram Sequence Input Data File xls atau .csv Pengguna
<<boundary>> HalamanUtama
Menekan tombol Pilih File
pilihFile()
Menekan tombol Submit
Gambar Diagram Sequence Pencarian Outlier
Pengguna
<<boundary>> HalamanUtama Menekan tombol Simpan
simpanHasil() Menampilkan
konfirmasi file berhasil disimpan
Lampiran 6 : Listing program a. Kelas HalamanAwal
b. Kelas HalamanBantuan
public class HalamanAwal extends javax.swing.JFrame { /** Creates new form HalamanAwal */
public HalamanAwal() { initComponents(); }
private void masukButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_masukButtonActionPerformed
// TODO add your handling code here:
HalamanUtama utama = new HalamanUtama(); utama.setVisible(true);
this.dispose();
}//GEN-LAST:event_masukButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel footer1Label;
private javax.swing.JLabel footer2Label;
private javax.swing.JDesktopPane halamanAwalDesktopPane; private javax.swing.JPanel halamanAwalPanel;
private javax.swing.JLabel icon;
private javax.swing.JButton masukButton; private javax.swing.JLabel titleLabel;
// End of variables declaration//GEN-END:variables }
public class HalamanBantuan extends javax.swing.JFrame { /** Creates new form HalamanBantuan */
public HalamanBantuan() { initComponents(); }
private void keluarButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_keluarButtonActionPerformed
// TODO add your handling code here: HalamanBantuan.this.dispose(); }
c. Kelas HalamanMissingValues
private javax.swing.JDesktopPane jDesktopPane1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextArea jTextArea1; private javax.swing.JButton keluarButton;
// End of variables declaration//GEN-END:variables }
public class HalamanMissingValues extends javax.swing.JFrame { DefaultTableModel model;
public HalamanMissingValues(DefaultTableModel tabel) { initComponents();
model=tabel; }
private void yaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_yaButtonActionPerformed
// TODO add your handling code here: String pola = "[0-9.]*";
String pola2 = "[.]*";
for (int i = 0; i < model.getRowCount(); i++) { for (int j = 1; j < model.getColumnCount(); j++) { if (model.getValueAt(i, j)==null || !model.getValueAt(i, j).toString().matches(pola) || model.getValueAt(i, j).toString().matches(pola2)) { model.setValueAt(0, i, j); } } } this.dispose(); }
private void tidakButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tidakButtonActionPerformed
// TODO add your handling code here: this.dispose();
}
private javax.swing.JDesktopPane jDesktopPane1; private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextArea missingValueTArea; private javax.swing.JButton tidakButton;
private javax.swing.JButton yaButton;
d. Kelas HalamanKonfirmasiKeluar
public class HalamanKonfirmasiKeluar extends javax.swing.JFrame { /** Creates new form HalamanKonfirmasiKeluar */
public HalamanKonfirmasiKeluar() { initComponents();
}
private void yaButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_yaButtonActionPerformed
// TODO add your handling code here: System.exit(0);
}
private void tidakButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tidakButtonActionPerformed
// TODO add your handling code here: this.hide();
}
private javax.swing.JDesktopPane jDesktopPane1; private javax.swing.JPanel jPanel1;
private javax.swing.JLabel konfirmasiLabel; private javax.swing.JButton tidakButton; private javax.swing.JButton yaButton;
// End of variables declaration//GEN-END:variables }