4.3 Perancangan Sistem
4.3.7 Rincian Algoritma Setiap Method Pada Tiap Kelas
4.3.7.6 Rincian Algoritma pada Method di Kelas HalamanUtama
Nama method Fungsi method Algoritma method tampilIsiDataBasisdata(Da
tabaseConnection conn, String namaTabel)
Membaca tabel yang dipilih pada basisdata dan menampilkan isi datanya ke dalam tabel data
1. Ambil isi tabel dari basis data dengan melalui method tampilIsiTable(conn.g etConnection(), namaTabel) 2. buat vector baru
columnName dan data 3. Inisialisasi nilai i = 1 4. Selama i <=
columnCount benar, columnName diisi dengan nama kolom ke i yang didapat dari basisdata melalui method
getColumnName 5. Selama rs.next benar
lakukan langkah 6-9 6. buat vector data2 7. Inisialisasi nilai i = 1, 8. Selama i <=
columnCount benar, data2 diisi dengan data pada setiap baris di kolom ke i
9. Tambahkan data2 ke dalam data, lalu kembali ke langkah 5 10.Mengatur model tabel
data nama kolom dari
vector columnNames
dan data dari vector
data 11.Inisialisasi nilai i = 0 12.Selama i < model.getColumnCou nt() benar, lanjutkan ke langkah 13
13.Inisialisasi nilai j = 0 14.Selama j <
model.getRowCount() benar, cek i==0 jika benar lanjut ke langkah 15, jika salah ke langkah 16
15.Jika
model.getValueAt(j, i) == null, tampilkan pesan label data tidak lengkap, i = model.getColumnCou nt() – 1, this.dispose() lalu break; 16.Jika model.getValueAt(j, i) == null atau !model.getValueAt(j, i).toString().matches(" [0-9.]*") atau model.getValueAt(j, i).toString().matches(" [.]*") benar, maka tampilkan pesan data tidak lengkap lalu i = model.getColumnCou nt() – 1 dan break; 17.i++ lalu ke langkah 11 18.insialisasi i=0
19. selama
i<model.getColumnCo unt benar tambahkan nama kolom ke dalam cb_tabel
20.Atur tabel
dataPreprocessTable
pilihDB() Menanggil kelas
HalamanPilihDatab ase
1. Buat objek pilih_db dari kelas Halaman PilihDatabase 2. Objek pilih_db
memanggil method setVisible()
submitData() Memasukan data pada tabel data di
tabbed pane
Preprocess ke tabel data pada tabbed paneDeteksi
Outlier
1. Ambil model dari tabel
preprocess dengan method getModel(), lalu simpan ke variabel tableModel 2. Jika tableModel.getColumn Count() = = 0 maka data belum dimasukkan 3. Jika tidak, isi
tableDeteksiOutlier sesuai tableModel 4. Tampilkan tabel pada
tabel Deteksi pada
tabbed pane Deteksi
Outlier dengan jTabbedPane1.setSelec tedComponent(deteksi Panel) dan jTabbedPane1.setEnab ledAt(1, true); distribusiAtribut() Menampilkan distribusi per atribut berdasar nama kolom pada tabel data
1. Buat List bertipe data String dengan nama daftar_atribut 2. Inisialisasi nilai i=1 3. Selama i<dataPreprocessTable. getColumnCount benar ini daftar_atribut dengan dataPreprocessTable.g etColumnName(i) 4. Mengirim nilai daftar_atribut dan dataPreprocessTable ke HalamanDistribusiAtri but untuk selanjutnya diproses disana
pilihFile() Menampilkan
kotak dialog untuk memilih file .xls atau .csv lalu membaca file tersebut dan
1. Menampilkan kotak dialog Open File
2. nama_file menangkap nama file terpilih 3. potong_nama_file =
menampilkannya ke dalam tabel data
4. Jika
potong_nama_file[1].e quals("xls") lakukan langkah pada algoritma pilih file xls (di bawah tabel method
HalamanTampilTabel) 5. Jika
potong_nama_file[1].e quals("xls")csv
lakukan langkah pada tabel pilih file .csv (di bawah tabel method HalamanTampilTabel) 6. Jika tidak keduanya
(bukan file .xls dan csv yang dipilih) ,
tampilkan pesan peringatan updateCellWidth(JTable) Mengatur ukuran
lebar kolom pada tabel data agar disesuaikan dengan ukuran karakter isi kolom yang paling panjang 1. panggil method adjustJTableRowSizes (table) 2. inisialisasi nilai i = 0 3. selama i < table.getColumnCount () panggil method adjustColumnSizes(t,i, 2) adjustJTableRowSizes (JTable) Mengatur ukuran baris pada tabel data
1. Inisialisasi nilai row = 0 2. Selama row < jTable.getRowCount() lakukan ke langkah 3 3. int maxHeight = 0 4. inisialisasi column = 0 5. Selama column < jTable.getColumnCou nt(), bandingkan tinggi baris ke-row dan kolom ke-column dengan maxHeight lalu masukan ke dalam maxHeight 6. Buat tinggi baris
jTable.setRowHeight( row, maxheight) dan kembali ke langkah 2 adjustColumnSizes(JTable
,int,int)
Mengatur ukuran kolom pada tabel data
1. TableCellRenderer renderer =
col.getHeaderRendere r()
2. Jika renderer = = null maka renderer = table.getTableHeader( ).getDefaultRenderer( ) 3. inisialisasi nilai r = 0 dan width = comp.getPreferredSiz e().width 4. Selama r < table.getRowCount, lebar kolom pada baris ke-r bernilai currentWidth yang diambil dari nilai maksimum antara width dan
currentWidth dan dimasukan dalam nilai width
5. Buat ukuran lebar kolom kolom dengan col.setPreferredWidth (width) lalu
col.setWidth(width) prosesDeteksi() Menerima input M
dan dmin serta data untuk diproses pencarian outlier
nya
1. Jika nilai M atau dmin kosong, lakukan pengisian ulang kedua parameter tersebut 2. Jika nilai M dan dmin
isi, lanjutkan ke langkah 3
3. Jika nilaiMdan dmin cocok dengan pola [0-9.]* lakukan langkah 4 4. Inisialisasi i=0
5. Selama i<baris, lakukan langkah 6-9
6. Buat arraylist dengan nama data_nilai 7. Insialisasi j=0 8. Selama j<kolom
lakukan pengecekan jika j==0 maka label diisi dengan
tableModel.getValueA t(i,j)
Jika tidak tambahkan tableModel.getValueA t(i, j).toString() ke dalam variabel data nilai
9. addVertex(label,data_n ilai)
10.Inisialisasi i=0
11.Selama i<baris lakukan langkah 12-13
12.Inisialisasi j=0 13.Selama j<baris, jika
i!=j lakukan addEdge 14.hasilDeteksiTextArea
diisi dengan hasil deteksi outlier dengan memanggil method displayOutlier pada kelas Graph cek_atribut_hapus(String, List<String>) Mengecek nama atribut yang akan dihapus dari tabel seleksi atribut
1. boolean cek = false 2. inisialisasi nilai i = 0 3. selama i <
hapus_atribut.size() maka ke langkah 4, jika kondisi salah kelangkah 5 4. Jika
hapus_atribut.get(i).eq uals(atribut), maka cek=true
5. kembalikan nilai cek=
false
cek_atribut_kolom(String, Vector)
Mengecek nama atribut yang tidak dihapus dari tabel data
1. boolean cek = false 2. inisialisasi nilai i = 0 3. selama i
<kolom.size() maka ke langkah 4, jika
kondisi salah kelangkah 5 4. Jika
kolom.get(i).equals(at ribut), maka cek=true
5. kembalikan nilai cek = false
hapusAtribut() Menghapus atribut tabel data sesuai atribut yang dipilih pengguna
1. buat list bernama hapus_seleksi 2. inisialisasi nilai i = 0 3. selama i < cb_table.getRowCoun t, lakukan pengecekan langkah ke 4 4. Jika cb_table.getValueAt(i, 1).equals(true), tambah kan nilai cb_table.getValueAt(i, 0) ke dalam atribut hapus_seleksi 5. int kolom= model.getColumnCou nt(); int baris = model.getRowCount() ;
6. buat vector baru namaKolom dan isiData 7. inisialisasi nilai k = 0 8. selama k< cb_table.getRowCoun t, lakukan pengecekan ke langkah 9 9. Jika method cek_atribut_hapus(cb_ table.getValueAt(k,0). toString, hapus_atribut)= =
false maka tambahkan cb_table.getValueAt(k ,0) ke
10.inisialisasi a = 0 11.Selama a< baris, buat
vector baru satu_baris lalu ke langkah 12 12.inisialisasi b = 0 13.Selama b < kolom , lalu lakukan pengecekan ke langkah 14 14.Jika method cek_atribut_kolom(m odel.getColumnName (b).toString, namaKolom) == true maka model.getValueAt(a,b ) ditambahkan ke variabel satu_baris 15.satu_baris ditambahkan pada variabel isiData, lalu kembali ke langkah 8 16.Mengeset model tabel
preprocess dengan nama kolom dengan vector namaKolom dan baris dengan vector isiData
17.Lakukan removeRow pada tabel
seleksiAtribut sesuai nama atribut yang dihapus
batalTandaiSemuaAtribut( )
Menghapus tanda centang pada semua kolom Pilih nama atribut pada tabel seleksi atribut
1. inisialisasi nilai i = 0 2. selama i < cb.table.getRowCount , lakukan cb_table.setValueAt(f alse,i,1)
tandaiSemuaAtribut() Memberi tanda centang pada semua kolom pilih nama atribut pada tabel seleksi atribut
1. inisialisasi i = 0 2. selama i < cb.table.getRowCount , lakukan cb_table.setValueAt(tr ue,i,1)
simpanFile() Menyimpan hasil deteksi outlier
dalam file .txt atau .doc
1. Buka kotak dialog
Save File 2. Baca lokasi penyimpanan file dan disimpan dalam variabel filename 3. Membaca format file yang dipilih pengguna dengan fileChooser.getFile Filter().getDescript ion() lalu ditampung dalam variabel extension 4. Jika extension = “"Microsoft Word (*.doc)" maka format file yang
dipilih “.doc”
5. Jika extension = "Text Documents (*.txt)" maka format file adalah
“.txt”
6. Ambil isi teks pada hasilDeteksiTextAr ea.getText() lalu tampung pada variabel hasil_text_area 7. Potong isi hasil_text_area per baris dengan method split("\\n") 8. Tampung isi baris
dari hasil_text_area ke dalam variabel array potong_isi 9. Selama i < potong_isi.length, ambil nilai potong_isi ke i, konversi ke tipe data String lalu simpan nilai
tersebut
4.3.7.7 Rincian Algoritma pada Method di Kelas HalamanDistribusiAtribut