Implementasi Kelas HalamanUtama Implementasi Kelas

data.adddata2; } DefaultTableModel model = new DefaultTableModeldata, columnName; dataPreprocessTable.setModelmodel; dataPreprocessTable.setAutoResizeModeJTable.AUTO_RESIZE_OFF; updateCellWidthdataPreprocessTable; dataPreprocessTable.setAutoCreateRowSortertrue; hasilDeteksiTextArea.setTextnull; barisTextField.setText + data.size; atributTextField.setText + columnName.size; pathTextField.setTextTabel : + namaTabel; pathTextField.setEditablefalse; for int i = 0; i model.getColumnCount; i++ { for int j = 0; j model.getRowCount; j++ { if i == 0 { if model.getValueAtj, i == null { JOptionPane.showMessageDialognull, Label data Anda tidak lengkap + \n + Silahkan periksa kembali label data pada tabel basisdata; i = model.getColumnCount - 1; this.dispose; break; } } else { if model.getValueAtj, i == null || model.getValueAtj, i.toString.matches[0-9.] || model.getValueAtj, i.toString.matches[.] { JOptionPane.showMessageDialognull, Data Anda tidak lengkap dan atau terdapat karakter bukan angka + \n + Silahkan periksa kembali data pada tabel basisdata; i = model.getColumnCount - 1; break; } } } } for int i = 0; i model.getColumnCount; i++ { seleksi_atribut = new SeleksiAtribut; seleksi_atribut.setAtributmodel.getColumnNamei; seleksi_atribut.setPilihfalse; cb_table.addi, seleksi_atribut; } seleksiTable.setModelcb_table; TableModel tableModel = dataPreprocessTable.getModel; tableDeteksiOutlier.setModeltableModel; tableDeteksiOutlier.setAutoResizeModeJTable.AUTO_RESIZE_OFF; updateCellWidthtableDeteksiOutlier; int baris = tableModel.getRowCount; jumlahBarisDeteksi.setText + baris; } catch Exception e { } } public HalamanUtamaDatabaseConnection conn, String namaTabel { initComponents; setTitleHalaman Utama; tampilIsiDataBasisdataconn, namaTabel; } public void PilihDB { hapusButton.setEnabledtrue; tandaiSemuaButton.setEnabledtrue; batalTandaiButton.setEnabledtrue; distribusiButton.setEnabledtrue; submitDataButton.setEnabledtrue; pathTextField.setEditablefalse; HalamanPilihDatabase pilih_db = new HalamanPilihDatabase; pilih_db.setVisibletrue; } public void submitData { TableModel tableModel = dataPreprocessTable.getModel; if tableModel.getColumnCount == 0 { JOptionPane.showMessageDialognull, Anda belum memasukkan data ; pathTextField.setTextnull; } else { tableDeteksiOutlier.setModeltableModel; tableDeteksiOutlier.setAutoResizeModeJTable.AUTO_RESIZE_OFF; updateCellWidthtableDeteksiOutlier; int baris = tableModel.getRowCount; jumlahBarisDeteksi.setText + baris; System.out.println + baris; jTabbedPane1.setSelectedComponentdeteksiPanel; jTabbedPane1.setEnabledAt1, true; } } public void distribusiAtribut { ListString daftar_atribut = null; daftar_atribut = new ArrayListString; for int i = 1; i dataPreprocessTable.getColumnCount; i++ { daftar_atribut.adddataPreprocessTable.getColumnNamei; } HalamanDistribusiAtribut grafik = new HalamanDistribusiAtributdaftar_atribut, dataPreprocessTable; grafik.setVisibletrue; } public void pilihFile { JFileChooser fileChooser = new JFileChooser; int returnValue = fileChooser.showOpenDialognull; if returnValue == JFileChooser.APPROVE_OPTION { String nama_file = fileChooser.getSelectedFile.getPath; String[] potong_nama_file = nama_file.split\\.; if potong_nama_file[1].equalsxls { cb_table.removeRow2; File fileExcel = fileChooser.getSelectedFile; Vector columnName = new Vector; Vector data = new Vector; try { Workbook workbook = Workbook.getWorkbookfileExcel; Sheet sheet = workbook.getSheet0; columnName.clear; for int i = 0; i sheet.getColumns; i++ { Cell cell = sheet.getCelli, 0; columnName.addcell.getContents; } data.clear; for int j = 1; j sheet.getRows; j++ { Vector data2 = new Vector; for int i = 0; i sheet.getColumns; i++ { Cell cell = sheet.getCelli, j; data2.addcell.getContents; } data2.add\n; data.adddata2; } } catch Exception e { e.printStackTrace; } DefaultTableModel model = new DefaultTableModeldata, columnName; dataPreprocessTable.setModelmodel; dataPreprocessTable.setAutoResizeModeJTable.AUTO_RESIZE_OFF; updateCellWidthdataPreprocessTable; dataPreprocessTable.setAutoCreateRowSortertrue; barisTextField.setText + data.size; atributTextField.setText + columnName.size; pathTextField.setTextfileExcel.getPath; hasilDeteksiTextArea.setTextnull; hapusButton.setEnabledtrue; distribusiButton.setEnabledtrue; submitDataButton.setEnabledtrue; tandaiSemuaButton.setEnabledtrue; batalTandaiButton.setEnabledtrue; for int i = 0; i model.getColumnCount; i++ { for int j = 0; j model.getRowCount; j++ { if i == 0 { if i == 0 model.getValueAtj, 0.toString.isEmpty { JOptionPane.showMessageDialognull, Label data tidak lengkap + \n + Silahkan lengkapi label data pada file asli; i = model.getColumnCount - 1; this.dispose; HalamanAwal awal = new HalamanAwal; awal.setVisibletrue; break; } } else { if model.getValueAtj, i.toString.isEmpty || model.getValueAtj, i.toString.matches[0-9.] || model.getValueAtj, i.toString.matches[.] { HalamanMissingValues ms = new HalamanMissingValuesthis, rootPaneCheckingEnabled, model; ms.setVisibletrue; i = model.getColumnCount - 1; break; } } } } for int i = 0; i model.getColumnCount; i++ { seleksi_atribut = new SeleksiAtribut; seleksi_atribut.setAtributmodel.getColumnNamei; seleksi_atribut.setPilihfalse; cb_table.addi, seleksi_atribut; } seleksiTable.setModelcb_table; TableModel tableModel = dataPreprocessTable.getModel; tableDeteksiOutlier.setModeltableModel; tableDeteksiOutlier.setAutoResizeModeJTable.AUTO_RESIZE_OFF; updateCellWidthtableDeteksiOutlier; int baris = tableModel.getRowCount; jumlahBarisDeteksi.setText + baris; } else if potong_nama_file[1].equalscsv { cb_table.removeRow2; File fileCsv = fileChooser.getSelectedFile; Vector columnNames = new Vector; Vector data = new Vector; String line; try { BufferedReader br = new BufferedReadernew FileReaderfileCsv; StringTokenizer st = new StringTokenizerbr.readLine, ,; while st.hasMoreTokens { columnNames.addElementst.nextToken; } while line = br.readLine = null { StringTokenizer st2 = new StringTokenizerline, ,; Vector row = new Vector; while st2.hasMoreTokens { row.addElementst2.nextToken; } data.addElementrow; } br.close; DefaultTableModel model = new DefaultTableModeldata, columnNames; dataPreprocessTable.setModelmodel; dataPreprocessTable.setAutoResizeModeJTable.AUTO_RESIZE_OFF; updateCellWidthdataPreprocessTable; dataPreprocessTable.setAutoCreateRowSortertrue; pathTextField.setTextfileCsv.getPath; barisTextField.setText + data.size; atributTextField.setText + columnNames.size; hasilDeteksiTextArea.setTextnull; hapusButton.setEnabledtrue; distribusiButton.setEnabledtrue; submitDataButton.setEnabledtrue; tandaiSemuaButton.setEnabledtrue; batalTandaiButton.setEnabledtrue; for int i = 0; i model.getColumnCount; i++ { for int j = 0; j model.getRowCount; j++ { if model.getValueAtj, i.toString.isEmpty || model.getValueAtj, i.toString.matches[0-9.] || model.getValueAtj, i.toString.matches[.] { JOptionPane.showMessageDialognull, Data Anda tidak lengkap dan atau terdapat karakter bukan angka + \n + Silahkan periksa kembali data pada file asli; i = model.getColumnCount - 1; break; } } } for int i = 0; i model.getColumnCount; i++ { seleksi_atribut = new SeleksiAtribut; seleksi_atribut.setAtributmodel.getColumnNamei; seleksi_atribut.setPilihfalse; cb_table.addi, seleksi_atribut; } seleksiTable.setModelcb_table; TableModel tableModel = dataPreprocessTable.getModel; tableDeteksiOutlier.setModeltableModel; tableDeteksiOutlier.setAutoResizeModeJTable.AUTO_RESIZE_OFF; updateCellWidthtableDeteksiOutlier; int baris = tableModel.getRowCount; jumlahBarisDeteksi.setText + baris; } catch Exception e { } } else { JOptionPane.showMessageDialognull, File yang Anda pilih harus berformat .xls atau .csv; } } } private void updateCellWidthJTable table { adjustJTableRowSizestable; for int i = 0; i table.getColumnCount; i++ { adjustColumnSizestable, i, 2; } } private void adjustJTableRowSizesJTable jTable { for int row = 0; row jTable.getRowCount; row++ { int maxHeight = 0; for int column = 0; column jTable.getColumnCount; column++ { TableCellRenderer cellRenderer = jTable.getCellRendererrow, column; Object valueAt = jTable.getValueAtrow, column; Component tableCellRendererComponent = cellRenderer.getTableCellRendererComponentjTable, valueAt, false, false, row, column; int heightPreferable = tableCellRendererComponent.getPreferredSize.height; maxHeight = Math.maxheightPreferable, maxHeight; } jTable.setRowHeightrow, maxHeight; } } public void adjustColumnSizesJTable table, int column, int margin { DefaultTableColumnModel colModel = DefaultTableColumnModel table.getColumnModel; TableColumn col = colModel.getColumncolumn; int width; TableCellRenderer renderer = col.getHeaderRenderer; if renderer == null { renderer = table.getTableHeader.getDefaultRenderer; } Component comp = renderer.getTableCellRendererComponenttable, col.getHeaderValue, false, false, 0, 0; width = comp.getPreferredSize.width; for int r = 0; r table.getRowCount; r++ { renderer = table.getCellRendererr, column; comp = renderer.getTableCellRendererComponenttable, table.getValueAtr, column, false, false, r, column; int currentWidth = comp.getPreferredSize.width; width = Math.maxwidth, currentWidth; } width += 2 margin; col.setPreferredWidthwidth; col.setWidthwidth; } public void prosesDeteksi { String jumlah_baris = jumlahBarisDeteksi.getText; String path = pathTextField.getText; if nilaiMTF.getText.isEmpty || dminTF.getText.isEmpty { if nilaiMTF.getText.isEmpty { nilaiMTF.setBackgroundColor.red; } if dminTF.getText.isEmpty { dminTF.setBackgroundColor.red; } JOptionPane.showMessageDialognull, Nilai M atau dmin tidak boleh kosong ; } else { if nilaiMTF.getText.isEmpty dminTF.getText.isEmpty { if nilaiMTF.getText.matches[0-9.] || dminTF.getText.matches[0-9.] { Double nilaiM = Double.parseDoublenilaiMTF.getText; Double nilaiD = Double.parseDoubledminTF.getText; TableModel tableModel = tableDeteksiOutlier.getModel; int kolom = tableModel.getColumnCount; int baris = tableModel.getRowCount; ListDouble data_nilai = null; String label = ; Graph_IndexBased g = new Graph_IndexBasedbaris; insert vertex for int i = 0; i baris; i++ { data_nilai = new ArrayListDouble; for int j = 0; j kolom; j++ { if j == 0 { label = String.valueOftableModel.getValueAti, j; } else { data_nilai.addDouble.parseDoubletableModel.getValueAti, j.toString; } } g.addVertexlabel, data_nilai; } insert edge for int i = 0; i baris; i++ { for int j = i + 1; j baris; j++ { if i = j { g.addEdgei, j, g.euclideanDistancei, j; } } } hasilDeteksiTextArea.setTextg.displayOutliernilaiM, nilaiD, jumlah_baris, tableDeteksiOutlier, path; prosesButton.setEnabledfalse; nilaiMTF.setTextnull; dminTF.setTextnull; nilaiMTF.requestFocus; simpanFileButton.setEnabledtrue; } } } } public boolean cek_atribut_hapusString atribut, ListString hapus_atribut { boolean cek = false; for int i = 0; i hapus_atribut.size; i++ { if hapus_atribut.geti.equalsatribut { return cek = true; } } return cek; } public boolean cek_atribut_kolomString atribut, Vector kolom { boolean cek = false; for int i = 0; i kolom.size; i++ { if kolom.geti.equalsatribut { return cek = true; } } return cek; } public void hapusAtribut { TableModel model = dataPreprocessTable.getModel; ListString hapus_seleksi = new ArrayListString; for int i = 0; i cb_table.getRowCount; i++ { if cb_table.getValueAti, 1.equalstrue { hapus_seleksi.addcb_table.getValueAti, 0.toString; } } int kolom = model.getColumnCount; int baris = model.getRowCount; Vector namaKolom = new Vector; Vector isiData = new Vector; for int k = 0; k cb_table.getRowCount; k++ { if cek_atribut_hapuscb_table.getValueAtk, 0.toString, hapus_seleksi { namaKolom.addElementcb_table.getValueAtk, 0; } } for int a = 0; a baris; a++ { Vector satu_baris = new Vector; for int b = 0; b kolom; b++ { if cek_atribut_kolommodel.getColumnNameb.toString, namaKolom { satu_baris.addElementmodel.getValueAta, b; } } isiData.addElementsatu_baris; } DefaultTableModel model_baru = new DefaultTableModelisiData, namaKolom; dataPreprocessTable.setModelmodel_baru; if isiData.isEmpty namaKolom.isEmpty { updateCellWidthdataPreprocessTable; } dataPreprocessTable.setAutoCreateRowSortertrue; barisTextField.setText + isiData.size; atributTextField.setText + namaKolom.size; jumlahBarisDeteksi.setText + isiData.size; cb_table.removeRow; if namaKolom.isEmpty { barisTextField.setTextnull; atributTextField.setTextnull; jumlahBarisDeteksi.setTextnull; submitDataButton.setEnabledfalse; batalTandaiButton.setEnabledfalse; tandaiSemuaButton.setEnabledfalse; hapusButton.setEnabledfalse; distribusiButton.setEnabledfalse; pathTextField.setTextnull; } seleksi_atribut.setPilihfalse; } public void tandaiSemuaAtribut { for int i = 0; i cb_table.getRowCount; i++ { cb_table.setValueAttrue, i, 1; } } public void batalTandaiSemuaAtribut { for int i = 0; i cb_table.getRowCount; i++ { cb_table.setValueAtfalse, i, 1; } } public void simpanFile { JFileChooser fileChooser = new JFileChoosernew FileD:; fileChooser.setFileFilternew FileNameExtensionFilterMicrosoft Word .doc, doc; fileChooser.setFileFilternew FileNameExtensionFilterText Documents .txt, txt; FileOutputStream file_output_stream; int returnValue = fileChooser.showSaveDialogthis; if returnValue == JFileChooser.APPROVE_OPTION { String filename = fileChooser.getSelectedFile.getPath; String extension = fileChooser.getFileFilter.getDescription; File ff = new Filefilename; buat file output stream if extension.equalsMicrosoft Word .doc { ff = new Filefilename + .doc; } else if extension.equalsText Documents .txt { ff = new Filefilename + .txt; } try { file_output_stream = new FileOutputStreamff; } catch FileNotFoundException fe { fe.printStackTrace; return; } try { String hasil_text_area = hasilDeteksiTextArea.getText; String[] potong_isi = hasil_text_area.split\\n; FileWriter outFile = new FileWriterff; PrintWriter out = new PrintWriteroutFile, true; for int i = 0; i potong_isi.length; i++ { out.println + potong_isi[i].toString; } file_output_stream.close; } catch IOException ie { JOptionPane.showMessageDialogthis, Penyimpanan asil Deteksi Outlier Gagal ; } JOptionPane.showMessageDialogthis, Hasil Deteksi Outlier Telah Berhasil Disimpan di + filename; } simpanFileButton.setEnabledfalse; } Variables declaration - do not modify private javax.swing.JLabel DLabel; private javax.swing.JLabel MLabel; private javax.swing.JTextField atributTextField; private javax.swing.JButton bantuanButton; private javax.swing.JTextField barisTextField; private javax.swing.JButton batalTandaiButton; private javax.swing.JTable dataPreprocessTable; private javax.swing.JPanel deteksiPanel; private javax.swing.JButton distribusiButton; private javax.swing.JTextField dminTF; private javax.swing.JButton fileButton; private javax.swing.JButton hapusButton; private javax.swing.JTextArea hasilDeteksiTextArea; private javax.swing.JLabel hasilLabel; private javax.swing.JDesktopPane jDesktopPane1; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane4; private javax.swing.JScrollPane jScrollPane5; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JSeparator jSeparator4; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JLabel judulLabel; private javax.swing.JLabel jumlahAtributLabel; private javax.swing.JTextField jumlahBarisDeteksi; private javax.swing.JLabel jumlahDataLabel; private javax.swing.JLabel jumlahLabel; private javax.swing.JButton keluarButton; private javax.swing.JTextField nilaiMTF; private javax.swing.JLabel pathLabel; private javax.swing.JTextField pathTextField; private javax.swing.JButton pilihDBButton; private javax.swing.JPanel preprocessPanel; private javax.swing.JButton prosesButton; private javax.swing.JLabel prosesLabel; private javax.swing.JLabel seleksiAtributLabel; private javax.swing.JTable seleksiTable; private javax.swing.JButton simpanFileButton; private javax.swing.JButton submitDataButton; private javax.swing.JLabel tabel2Label; private javax.swing.JLabel tabelLabel; private javax.swing.JTable tableDeteksiOutlier; private javax.swing.JButton tandaiSemuaButton; } Listing Program 5.6 Kelas HalamanUtama.java

5.3.7 Implementasi Kelas HalamanDistribusiAtribut

Berikut merupakan implementasi dari atribut dan method pada kelas HalamanDistribusi.java yang dibuat sesuai dengan perancangannya. Kelas ini memiiki method tampilAtribut , lihatGrafik dan pilihAtributComboBox berkaitan dengan fungsi lihat grafik distribusi per atribut. public class HalamanDistribusiAtribut extends javax.swing.JFrame { JTable model; private int count = 0; public HalamanDistribusiAtributListString daftarAtribut, JTable tabel { initComponents; setResizablefalse; tampilAtributdaftarAtribut,tabel; } public void tampilAtributListString daftarAtribut, JTable tabel { model = tabel; for int i = 1; i tabel.getColumnCount; i++ { atributComboBox.addItemtabel.getColumnNamei; } } public void pilihAtributComboBox { String pilih_combo = atributComboBox.getSelectedItem.toString; ListString isiData = new ArrayListString; String[][] data1 = null; String[] nama_kolom = new String[2]; for int i = 1; i model.getColumnCount; i++ { if pilih_combo.equalsIgnoreCasemodel.getColumnNamei.toString { nama_kolom[0] = model.getColumnNamei.toString; nama_kolom[1] = Jumlah Data; for int j = 0; j model.getRowCount; j++ { isiData.addmodel.getValueAtj, i.toString; } HashSet hashSet = new HashSetisiData; Creating HashSet which does not allows duplicates isiData.clear; Clearing arraylist1 isiData = new ArrayListhashSet; Assigning Hashset back with no duplicates to arraylist1 data1 = new String[isiData.size][2]; System.out.println + isiData.toString; for int k = 0; k isiData.size; k++ { for int l = 0; l model.getRowCount; l++ { if isiData.getk.equalsIgnoreCasemodel.getValueAtl, i.toString { setCountcount + 1; } } data1[k][0] = isiData.getk.toString; data1[k][1] = String.valueOfgetCount; setCount0; } } DefaultTableModel tabel_grafik = new DefaultTableModeldata1, nama_kolom; tabelGrafik.setModeltabel_grafik; tabelGrafik.setAutoCreateRowSortertrue; } } private void atributComboBoxActionPerformedjava.awt.event.ActionEvent evt { TODO add your handling code here: pilihAtributComboBox; } public void lihatGrafik { String data[][]; String jumlah_data[][]; int jumlah[][]; int row = tabelGrafik.getRowCount; int column = tabelGrafik.getColumnCount; data = new String[row][column]; jumlah_data = new String[row][column]; jumlah = new int[row][column]; for int i = 0; i row; i++ { data[i][0] = tabelGrafik.getValueAti, 0.toString;

Dokumen yang terkait

Deteksi outlier menggunakan Algoritma Local Correlation Integral (LOCI) : studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma.

0 0 258

Deteksi outlier menggunakan Algoritma Local Outlier Probability : studi kasus data akademik mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma.

0 5 265

Deteksi outlier menggunakan Algoritma Connectivity Based Outlier Factor : studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma.

0 4 252

Deteksi Outlier menggunakan algoritma Block-Based Nested-Loop : studi kasus data akademik mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma.

0 2 202

Deteksi outlier menggunakan algoritma Naive Nested Loop (studi kasus : data akademik mahasiswa program studi PS Universitas XYZ).

0 0 4

Deteksi outlier menggunakan Algoritma Connectivity Based Outlier Factor studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma

1 8 250

Deteksi outlier menggunakan Algoritma Local Outlier Probability studi kasus data akademik mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma

1 9 263

Deteksi Outlier menggunakan algoritma Block Based Nested Loop studi kasus data akademik mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma

0 1 200

Deteksi outlier menggunakan Algoritma Local Correlation Integral (LOCI) studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma

0 4 256

Deteksi Outlier menggunakan algoritma Naive Nested Loop : studi kasus data akademik mahasiswa Program Studi Teknik Informatika, Universitas Sanata Dharma, Yogyakarta - USD Repository

0 0 234