4.5 Perancangan Sistem
4.5.4 Detail Algoritma Tiap Method Pada Tiap Kelas
4.5.6.1 Detail Algoritma Pada Method di Kelas HalamanUtama
Tabel 4.2 Tabel Kelas HalamanUtama
Nama method Fungsi method Algoritma method
pilihFile() Menampilkan
dialog untuk memilih file .xls
atau .csv
1. Menampilkan dialog Open File
2. Jika file yang pilih berformat
.xls, panggil method
pilihXLS()
3. Jika file yang pilih berformat .csv, panggil method pilihCSV()
4. Jika file yang dipilih selain yang berformat .xls dan .csv,
menampilkan pesan
peringatan pilihXLS(JfileChooser,
String, String, String)
Membaca file dalam format .xls
dan menampilkannya ke dalam tabel data
1. Membuat vector baru dengan nama columnNames dan data 2. Inisialisasi row = 0
3. Selama row <
sheet.getRows(), ke langkah 4, jika tidak ke langkah 11
4. Membuat vector baru dengan nama rows
5. Inisialisasi column = 0 6. Selama column <
sheet.getColumn(), ke langkah 6, jika tidak ke langkah 10
7. Jika row = 0, ke langkah 6, jika tidak ke langkah 7 8. Cell (column, row) dari file
.xls ditambahkan ke vector columnNames. column++, lalu kembali ke langkah 6 9. Cell (column, row) dari file
.xls ditambahkan ke vector rows. column++, lalu kembali ke langkah 6
10.Jika row != 0, maka rows ditambahkan ke vector data. Lalu row++ dan kembali ke langkah 3
11.Mengeset model tabel preprocess dengan nama kolom = vector
columnNames dan data = vector data
12.Inisialisasi nilai i = 0 13.Selama i <
model.getColumnCount(), ke langkah 13, jika tidak ke langkah 19
14.Inisialisasi nilai j = 0 15.Selama j <
model.getRowCount(), ke langkah 15, jika tidak ke
langkah 18
16.Jika i=0 ke langkah 16, jika i!=0 ke langkah 17
17.Jika
model.getValue(j,0).isEmpty( ) = true, i =
model.getColumncount() -1 lalu break, jika false j++ lalu ke langkah 14
18.Jika
model.getValue(j,i).isEmpty() = true atau
model.getValue(j,i).matches (pola) = true atau
model.getValue(j,i). matches (pola2)= true, panggil HalamanMissingValues, i = model.getColumncount() -1 lalu break
Jika false semua, j++ lalu kembali ke langkah 14 19.i++ lalu kembali ke langkah
12
20.Inisialisasi i = 0 21.Selama i <
model.getColumncount() tambahkan nama kolom ke cb_table
pilihCSV(JfileChooser, String, String, String)
Membaca file dalam format .csv
dan menampilkannya ke dalam tabel data
1. Membuat vector baru dengan nama columnNames dan data 2. Membaca baris pertama dari
file .csv
3. Selama masih terdapat cell yg berisi nilai tertentu,
menambahkan setiap nilai cell pada baris pertama ke vector columnNames. Jika tidak ke langkah 4
4. Selama masih ada baris selanjutnya, ke langkah 5 jika tidak ke langkah 6
5. Selama masih terdapat cell yg berisi nilai tertentu,
menambahkan setiap nilai cell ke vector row. Jika tidak, row ditambahkan ke vector data lalu pindah ke baris berikutnya dan kembali ke langkah 4
6. Mengeset model tabel preprocess dengan nama kolom = vector
columnNames dan data = vector data
7. Inisialisasi nilai i = 0 8. Selama i <
model.getColumnCount(), ke langkah 8, jika tidak ke langkah 12
9. Inisialisasi nilai j = 0 10.Selama j <
model.getRowCount(), ke langkah 10, jika tidak ke langkah 11
11.Jika
model.getValue(j,i).isEmpty() = true atau
model.getValue(j,i).matches (pola) = true atau
model.getValue(j,i). matches (pola2)= true, panggil HalamanMissingValues, i = model.getColumncount() -1 lalu break
Jika false semua, j++ lalu kembali ke langkah 9
12.i++ lalu kembali ke langkah 7 13.Inisialisasi i = 0
14. Selama i <
model.getColumncount() tambahkan nama kolom ke cb_table
tampilTabelBasisdata (DatabaseConnection,
String)
Membaca tabel dari basis data dan menampilkannya ke dalam tabel data
1. Mengambil tabel dari basis data dengan memaggil method
displayTable(db.getConnectio n, namaTabel)
2. Membuat vector
columnName dan vector data 3. Inisialisasi i = 1
4. Selama i <= columnCount, ambil nama kolom ke-i dari basis data dan ditambahkan ke columnName
5. Selama rs.next = true kerjakan langkah 6-8
6. Inisialisasi i = 1, buat vector data2
7. Selama i <= columnCount, ambil data pada setiap baris di kolom ke-I dan
ditambahkan ke data2 8. Tambahkan data2 ke dalam
data, kembali ke langkah 5 9. Mengeset model tabel
preprocess dengan nama kolom = vector
columnNames dan data = vector data
10.Inisialisasi nilai i = 0 11.Selama i <
model.getColumnCount(), ke langkah 12, jika tidak ke langkah 18
12.Inisialisasi nilai j = 0 13.Selama j <
model.getRowCount(), ke langkah 14, jika tidak ke langkah 17
14.Jika i=0 ke langkah 15, jika i!=0 ke langkah 16
15.Jika
model.getValue(j,0).isEmpty( ) = true, i =
model.getColumncount() -1 lalu break, jika false j++ lalu ke langkah 13
16.Jika
model.getValue(j,i).isEmpty() = true atau
model.getValue(j,i).matches (pola) = true atau
model.getValue(j,i). matches (pola2)= true,
i = model.getColumncount() -1 lalu break
Jika false semua, j++ lalu kembali ke langkah 13 17.i++ lalu kembali ke langkah
11
18.Inisialisasi i = 0 19.Selama i <
model.getColumncount() tambahkan nama kolom ke cb_table
cekAtribut (String, List<String>)
Mengecek nama-nama atribut yang
akan dihapus berdasarkan tabel
1. Inisialisasi i = 0
2. Selama i < hapus.size ke langkah 3, jika tidak ke
atribut langkah 4
3. Jika hapus.get(i).equals(x), kembalikan nilai true 4. Kembalikan nilai false cekAtribut2
(String, Vector)
Mengecek nama-nama atribut yang tidak dihapus dari
tabel data
1. Inisialisasi i = 0
2. Selama i < kolom.size ke langkah 3, jika tidak ke langkah 4
3. Jika kolom.get(i).equals(x), kembalikan nilai true 4. Kembalikan nilai false updateCellWidth
(JTable)
Mengatur lebar cell pada setiap kolom dari tabel data agar
sesuai dengan ukuran karakter terpanjang 1. Memanggil method adjustRowSizes(t) 2. Inisialisasi i = 0 3. Selama i < t.getColumnCount() panggil method adjustColumnSizes(t,i,2) adjustRowSizes (JTable) Mengatur ukuran baris pada tabel
data 1. Inisialisasi row = 0 2. Selama row < jTable.getRowCount() ke langkah 3 3. maxHeight = 0 4. Inisialisasi column = 0 5. Selama column < 6. jTable.getColumnCount(), bandingkan tinggi baris ke-row, kolom ke-column dengan maxHeight lalu simpan nilai maksimum ke maxHeight
7. Tentukan tinggi baris ke-row dengan memanggil method
jTable.setRowHeight(row, maxheight) lalu kembali ke langkah 2
adjustColumnSizes (JTable)
Mengatur ukuran kolom pada tabel
data
1. Inisialisasi r = 0, lebar nama kolom = width =
comp.getPreferredSize().widt h
2. Selama r <
table.getRowCount, lebar kolom pada baris ke-r = currentWidth lalu ambil nilai maksimum antara width dan currentWidth kemudian disimpan dalam width 3. Menentukan lebar kolom,
col.setWidth(width)
tandaiSemua() Memberi tanda
check pada semua nama atribut pada
tabel atribut
1. Inisialisasi i = 0 2. Selama i <
cb.table.getRowCount, cb_table.setValueAt(true,i,1)
batalTandai() Menghapus tanda
check pada semua nama atribut pada
tabel atribut
1. Inisialisasi i = 0 2. Selama i <
cb.table.getRowCount, cb_table.setValueAt(false,i,1) hapusAtribut() Menghapus atribut
pada tabel data sesuai dengan yang
diberi tanda pada tabel atribut
1. Membuat list bernama hapus_atribut 2. Inisialisasi i = 0 3. Selama i < cb_table.getRowCount, ke langkah 4 4. Jika cb_table.getValueAt(i,1).equa ls(true), tambahkan cb_table.getValueAt(i,0) ke dalam hapus_atribut 5. Membuat vector
6. Inisialisasi i = 0 7. Selama i < cb_table.getRowCount, ke langkah 8 8. Jika method cekAtribut(cb_table.getValue At(i,0), hapus_atribut) mengembalikan nilai false maka
cb_table.getValueAt(i,0) ditambahkan ke
columnNames 9. Inisialisasi i = 0
10.Selama i < row, buat vector rows lalu ke langkah 11 11.Inisialisasi j = 0 12.Selama j < column, ke langkah 13 13.Jika method cekAtribut2(model.getColum nName(j), columnNames) mengembalikan nilai true maka model.getValueAt(i,j) ditambahkan ke rows 14.rows ditambahkan ke data,
kembali ke langkah 7 15.Mengeset model tabel
preprocess dengan nama kolom = vector
columnNames dan data = vector data
distribusiAtribut() Menampilkan distribusi atribut dari data yang ada
di tabel data
1. Membuat list daftarAtribut untuk menampung nama-nama atribut
2. jumlahAtribut =
preprocessTabel.getColumnC ount() – 1
3. Inisialisasi i = 1
4. Selama i < jumlahAtribut, tambahkan nama kolom ke-1 ke dalam daftarAtribut 5. Mengirim daftarAtribut dan
preprocessTabel ke kelas HalamanDistribusiAtribut submitData() Menyalin data tabel
dan jumlah data dari tab Preprocess
ke tab Deteksi outlier
1. Mengambil model dari preprocessTabel,
preprocessTable.getModel(), lalu menyimpannya dalam variabel model
2. Mengeset model
deteksiOutlierTabel = model 3. Berpindah ke tab deteksi
otulier dengan mengeset jTabbedPane1.setSelectedCo mponent(panelDeteksiOutlier ),
jTabbedPane1.setEnabledAt( 1, true)
prosesData() Mengirim data pada tabel data serta nilai
D dan M untuk proses pencarian
outlier
1. Membuat pattern untuk karakter angka dan/atau tanda titik yaitu pola = [0-9.]* 2. Membuat pattern untuk
karakter tanda titik yaitu pola2 = [.]*
3. Jika
jumDataField.getText().equal s(“”), menampilkan pesan bahwa data kosong
4. Jika isi field D dan/atau M lebih dari 0 karakter dan mengandung karakter selain yang ada pada pola dan pola2, tampilkan pesan bahwa nilai M dan D harus berupa bilangan bulat atau desimal
5. Jika isi field D dan/atau M tidak diisi, tampilkan pesan bahwa keduanya harus diisi 6. Jika langkah 3-4 bernilai
false, panggil method tampilHasil()
(deteksiOutlierTabel, m, d, jumDataField.getText(), pathField.getText())
simpanHasil() Menyimpan hasil
deteksi outlier dalam bentuk file
.txt atau .doc
1. Membuka dialog Save File 2. Membaca lokasi
penyimpanan file
fileChooser.getSelectedFile(). getPath() dan disimpan dalam variabel filename
3. Membaca format file yang dipilih
fileChooser.getFileFilter().get Description() dan disimpan dalam variabel extension 4. Jika extension = "Microsoft
Word (*.doc)" maka format file adalah .doc
5. Jika extension = "Text Documents (*.txt)" maka format file adalah .txt
6. Mengambil teks dari text area hasilOutlierTextArea.getText () lalu disimpan dalam hasil_text_area
7. Menampung tiap baris dalam hasil_text_area ke dalam array baca
8. Inisialisasi i = 0
9. Selama i < baca.length, tulis baca ke-I ke dalam file