4.3.8 Diagram Sequence
Menurut Whitten dan Bentley 2007, secara grafikal, Sequence Diagram
merupakan diagram yang menggambarkan bagaimana obyek berinteraksi satu sama lain melalui pesan dalam
eksekusi usecase atau operasi. Diagram ini mengilustrasikan bagaimana pesan dikirim dan diterima antara obyek dan urutan
yang seperti apa. Diagram ini lebih detail dalam penggambaran aliran data, termasuk data yang dikirim ataupun diterima.
Berikut ini merupakan sequence diagram yang terdapat dalam
proses perancangan
sistem perancangan
outlier menggunakan algoritma Local Outlier Probability LoOP :
1. Diagram Sequence Input Data File Excel .xls dan .csv 2. Diagram Sequence Input Data Tabel Basis Data
3. Diagram Sequence Deteksi Outlier 4. Diagram Sequence Simpan Hasil Outlier
5. Diagram Sequence Seleksi Atribut Untuk penjelasan masing-masing diagram sequence dapat
dilihat pada lampiran 7 yang terdapat dalam tugas akhir ini.
4.3.9 Diagram Kelas Desain
Diagram kelas desain menunjukkan daftar kelas yang digunakan dalam sistem. Diagram kelas ini memuat semua kelas
yang digunakan untuk menjalankan semua fungsi pada sistem serta hubungan apa saja yang terbentuk di antara kelas tersebut.
Hubungan yang terbentuk bisa berupa associations, aggregation atau composition. Diagram kelas desain dapat dilihat pada lampiran
8 dalam tugas akhir ini. Untuk penjelasan tentang rincian atribut dan method yang
terdapat dalam masing-masing kelas, dapat dilihat pada lampiran 9 dalam tugas akhir ini.
4.3.10 Rincian Algoritma Setiap Method
1. Rincian Algoritma pada Method dalam kelas koneksiDB
Nama method Fungsi method
Algoritma method
koneksiSQL String, String,
String Mendapatkan
nilai username,
password, dan
url dari inputan
pengguna lalu
inputan tersebut untuk login ke
basisdata SQL 1. Deklarasi atribut baru jdbcURL
bertipe static String, user bertipe static String, password bertipe
static String dan conn bertipe Connection.
2. Membuat koneksi basis data SQL ke dalam method yang bernama
setConnDriverManager.getConn ectionurl,
user, passw.
Parameter tersebut
dicocokan dengan
nilai dari
inputan pengguna
dalam form
login koneksi database.
3. Jika inputan benar sesuai, maka sistem berhasil terkoneksi dengan
basisdata SQL lalu mencetak pada output “koneksi berhasil”.
4. Jika tidak sesuai, maka sistem akan mencetak pesan error.
5. Mengembalikan nilai getConn. isConnected
String, String, String
Melakukan pengecekan
apakah sistem
sudah terkoneksi dengan basis data
SQL 1. Cek
apabila parameter
pada method
koneksiSQLurl, user,
passw tidak sama dengan null
atau dalam kata lain terisi, maka kembalikan nilai true.
2. Jika tidak, maka kembalikan nilai false.
koneksiOrcl String, String,
String Mendapatkan
nilai parameter
url, user,
dan passw
yang didapat
dari inputan pengguna
ketika melakukan login
untuk koneksi
ke basisdata oracle
1. Membuat koneksi basisdata oracle menggunakan
method setConnDriverManager.getConn
ectionurl, user, passw. 2. Parameter
tersebut dicocokan
dengan nilai
dari inputan
pengguna dalam
form login
koneksi database. 3. Jika inputan benar sesuai, maka
sistem berhasil terkoneksi dengan basisdata SQL lalu mencetak pada
output “koneksi berhasil”. 4. Jika tidak sesuai, maka sistem
akan mencetak pesan error. 5. Mengembalikan nilai getConn.
isConnectedO racle String,
String, String Melakukan
pengecekan apakah
sistem sudah terkoneksi
dengan basis data Oracle
1. Cek apabila
parameter pada
method koneksiOrclurl,
user, passw
tidak sama dengan null atau dalam kata lain terisi, maka
kembalikan nilai true. 2. Jika tidak, maka kembalikan nilai
false. getClose
Memutuskan koneksi
basis data
1. Cek apakah
sistem masih
terkoneksi dengan basis data. menjalankan
method isConnected .
2. Jika ya, maka tutup koneksi lalu beri nilai atribut conn menjadi
null. Lalu kembalikan nilai true. 3. Jika tidak, maka kembalikan nilai
false.
2. Rincian Algoritma pada Method dalam kelas DBControl
Nama method Fungsi method
Algoritma method
displayTableO racleConnecti
on Menampilkan
daftar tabel yang ada pada basis
data Oracle
sesuai login
pengguna 1. Deklarasi
query untuk
menampilkan daftar tabel, yaitu : Select
table_name from
user_tables; 2. Mengeksekusi query.
3. Mengembalikan nilai result yang berisi tabel yang ada pada basis
data Oracle. displayTable
MySql Connection
Menampilkan daftar tabel yang
ada pada basis data SQL sesuai
login pengguna
1. Deklarasi query
untuk menampilkan daftar tabel, yaitu :
Show_tables; 2. Mengeksekusi query.
3. Mengembalikan nilai result yang berisi tabel yang ada pada basis
data Oracle. selectTable
Connection, String
Menampilkan isi data tabel yang
dipilih pengguna 1. Mendeklarasikan query untuk
menampilkan isi tabel : Select from table;
2. Mengeksekusi query 3. Mengembalikan nilai result yang
berarti menampilkan semua data dari tabel yang diinputkan oleh
pengguna.
3. Rincian Algoritma pada Method dalam kelas GraphNew
Nama method Fungsi method
Algoritma method
addVertex String,
ListDouble Membuat vertex
untuk membentuk suatu
graf 4. Membaca nilai parameter dari
method addVertex
yaitu parameter label bertipe String
dan parameter
nilai bertipe
ListDouble. 5. Membuat vertex baru dengan
parameter label dan nilai sesuai dengan inputan jumlahVertex
addEdge int, int, double
Membuat edge
pada vertex
dalam graf 1. Membaca nilai dari parameter
awal bertipe
integer, akhir
bertipe integer, dan nilai bertipe double.
2. Inisialisasi parameter nilai sama dengan matriks[awal][akhir] =
matriks[akhir][awal]. cariJarak int,
int Mencari
jarak setiap
obyek dengan
perhitungan rumus Euclidean
distance 1. Membuat variabel baru bernama
a dan b dengan tipe ArrayList Double.
2. Inisialisasi nilai ArrayList a sebagai
ArrayList yang
menyimpan nilai obyek awal. 3. Inisialisasi nilai ArrayList b
sebagai ArrayList
yang menyimpan nilai obyek tujuan.
4. Inisialisasi nilai atribut total bertipe Double bernilai 0.0;
5. Selama i = 0 dan I tidak lebih dari ukuran a, maka lakukan total
= total + Math.powa.geti –
b.geti,2 6. Kembalikan nilai akar dari total.
inputData jTable
Menginputkan data yang ada
dalam jTable ke dalam
matriks dalam graf
1. Selama i = 0 dan tidak lebih dari jumlah
baris jTable,
maka lakukan langkah 2 sampai 5.
2. Membuat variabel baru bernama label.
3. Membuat variabel baru bernama listNilai bertipe array list Double.
4. Selama j = 0 dan j tidak lebih dari jumlah kolom jTable, maka
lakukan langkah di bawah ini : a. Cek apakah j bernilai 0, jika
ya, maka lakukan b. b. Cek apakah value pada jTable
bernilai kosong atau “ ”, jika ya, maka set label = “ ”. jika
tidak, maka set label sama dengan data yang ada di
dalam baris dan kolom tabel tersebut.
c. Jika tidak, maka lakukan langkah d.
d. Cek apakah value pada jTable bernilai kosong atau “ ”. jika
ya, maka set label = “ ”. jika
tidak, maka cek apakah data tersebut
merupakan data
numeric? Jika
ya, maka
masukkan data pada baris i,j
ke dalam arraylist nilai.jika data bukan numeric maka
masukkan nilai 0,0 ke dalam arraylist nilai.
5. Panggil method
addVertex dengan
inputan label
dan listNilai.
6. Selama I = 0 dan I tidak lebih dari jumlah baris dari jTable
lakukan langkah dibawah ini : a. Selama j = i+1 dan j tidak
lebih dari jumlah baris jTable, maka lakukan b.
b. Cek apakah nilai I tidak sama dengan j. jika iya, maka
jalankan method
addEdge dengan
memasukkan parameter I, j, dan hasil
perhitungan dari
method cariJaraki,j.
Kdistance int, int
Mencari nilai
Kdistance dari
setiap obyek
sesuai dengan
inputan k 1. Selama i = 0 dan i tidak lebih
dari panjang array vertexList, maka set semua flagKunjungan
menjadi false. 2. Membuat variabel array bernama
a bertipe Double. 3. Inisialisasi array a bernilai array
yang panjangnya sesuai dengan jangkauan k yang diinputkan
pengguna. 4. Membuat
variabel kDistance
bertipe double. 5. Membuat variabel temp1 bertipe
double. 6. Jika indeks == -1 maka cetak
“Data tidak ada” 7. Selama t=0 dan t tidak lebih dari
panjang array a, maka lakukan : a. Selama i=0 dan I tidak lebih
dari panjang
arraylist vertexlist, maka lakukan b
b. Cek apakah matriks[indeks][i] tidak sama dengan -1, tidak
sama dengan
dan flagkunjungan bernilai false,
maka lakukan c. c. Cek jika matriks[indeks][i]
kurang dari nilai temp1, maka inisialisasi nilai temp1 adalah
nilai dari matriks[indeks][i]. d. Set nilai array a[t] sama
dengan temp1. e. Menjalankan method search2
dengan parameter
temp1, indeks.
8. Selama i=0 dan I kurang dari panjang array a, maka cek
apakah nilai kDistance kurang dari array a[i], jika ya maka set
nilai kDistance sama dengan nilai array a[i].
9. Kembalikan nilai kDistance.
cariNeighborh ood Double,
int Mencari tetangga
yang memiliki
jarak kurang dari sama
dengan kdistance
1. Membuat ArrayList
bertipe String bernama a.
2. Jika indeks sama dengan -1, maka cetak “Tidak ada data”.
3. Selama i=0 dan I kurang dari panjang array list vertexlist,
maka lakukan langkah berikut : a. Cek apakah matriks[indeks][i]
tidak sama dengan -1, dan tidak sama dengan 0. Jika ya,
lakukan b. b. Cek apakah matriks[indeks][i]
kurang dari KdistanceI, getk +1. Jika yang maka lakukan
c. c. Tambahkan
vertexlist[i].getLabel pada arraylist a.
4. Kembalikan nilai a. setKdistance
String, int Mengatur
variabel kDistance dalam
vertex 1. Membuat variabel baru bernama
index bertipe integer lalu di set bernilai searchlabel.
2. Set variabel kDistance pada vertexlist[index][i]
dengan inputan parameter index dan
jangkauan. setNeighborH
ood String Mengeset
variabel neighborhood
dalam vertex 1. Membuat variabel baru bernama
indeks bertipe integer lalu di set bernilai searchlabel.
2. Set variabel neighborhood pada
vertexlist[indeks] dengan inputan parameter
vertexList[indeks].getAnggotaNe ighborHood, indeks
Search String
Mencari posisi
indeks dalam
verteksList 1. Selama i=0 dan i kurang dari
panjang array list vertexList, maka lakukan 2.
2. Jika label bernilai sama dengan label dalam vertexList[i] maka
kembalikan nilai i. 3. Kembalikan nilai -1 dimana
artinya tidak terdapat data dalam vertexList.
Search2 Double, int
Mencari vertexList
dan mengubah
flagkunjungan menjadi true
1. Selama i=0 dan i kurang dari panjang array list vertexlist,
maka lakukan 2. 2. Jika nilai dari matriks[indeks][i]
sama dengan nilai jarak, maka atur flag kunjungan menjadi true.
4. Rincian Algoritma
pada Method
dalam kelas
CheckBoxTableModel
Nama method Fungsi method
Algoritma method
Add int,
seleksiAtribut Menambah data
ke dalam format tabel
CheckBoxTable Model
1. Deklarasi atribut bernama list yang
bertipe ArrayList
SeleksiAtribut. 2. Menambahkan ke dalam list
dengan inputan paramener int dan seleksiAtribut.
3. Menambahkan nilai
field_m
sebagai data di index ke a ke dalam list.
removeRow Menghapus semua
atribut yang
telah dihapus
ketika melakukan
seleksi atribut di tabel seleksi
1. Membuat ArrayList
bertipe seleksiAtribut bernama s.
2. Selama seleksi list terpenuhi, maka cek terhadap atribut yang
akan dihapus tersebut telah terpilih. Jika seleksi.getPilih
== true, maka nilai seleksi ditambahkan pada ArrayList s.
3. Set nilai list menjadi s.
5. Rincian Algoritma pada Method dalam kelas HalamanUtama
Nama method Fungsi method
Algoritma method
pilihFile 1. Menampilkan
JFileChooser untuk memilih
file excel bertipe .xls dan .csv
2. Membaca file lalu
menampilkan ke dalam tabel data
preprocessing 1. Menampilkan JFileChooser open
file 2. Mendapatkan
nilai atribut
nama_file yang dipilih 3. Deklarasi array bertipe String
bernama potong_nama_file
untuk memberi nama file dengan pemisah “\\”
4. Jika potong_nama_file[1].equals“xls
”, maka lakukan langkah di
bawah ini : a. Membuat
vector baru
bernama columnName. b. Membuat
vector baru
bernama data. c. Membuat obyek baru yang
bernama workbook
yang berisi getWorkbookfileExcel
d. Membuat obyek
bernama sheet yang berisi getSheet0.
e. Menghapus columnName f. Selama i=0 dan i tidak lebih
dari kolom dalam sheet, maka lakukan g dan h.
g. Membuat cell baru dengan isi sheet.getCelli,0.
h. Menambahkan konten pada cell ke dalam columnName.
i. Menghapus data j. Selama j=0 dan j tidak lebih
dari cheet.getRows , maka lakukan langkah k
– m. k. Membuat
vector baru
bernama data2. l. Selama i=0 dan i tidak lebih
dari sheet.getColumns maka cell diisi dengan cell pada
baris ke i pada kolom ke j lalu cell.getContents dimasukkan
ke data2. m. Menambahkan data2 kedalam
data. n. Membuat DefaultTableModel
bernama model dengan isi baris berisi data dan kolom
berisi columnName. o. Atur tabel preprocess menjadi
seperti model. p. Cetak data.size ke dalam
text field jumlah data. q. Cetak columnName.size ke
dalam text
field jumlah
atribut. r. Cetak fileExcel.getPath ke
dalam text file path data. s. Selama i=0 dan i kurang dari
model.getColumnCount maka
setAtribut pada
seleksiAtribut menjadi
model.getColumnNamei lalu setPilihfalse lalu atur tabel
checkbox menjadi baris berisi i
dan kolom
berisi seleksiAtribut.
t. Atur tabel seleksi atribut menjadi tabel check box.
5. Jika potong_nama_file.equals
“csv” maka lakukan seperti langkah 4.
6. Jika tidak keduanya, tampilkan pesan eror.
pilihDb koneksiDB,
String Memanggil kelas
HalamanPilihDB untuk
menghubungkan sistem dengan
1. Membuat obyek baru bernama dc dari kelas DBControl.
2. Membuat variabel bernama rset bertipe ResultSet.
3. Membuat obyek bernama rsmd
database dan
mengambil data dari tabel
database bertipe
ResultMetaData lalu
menginisialisasi dengan
nilai rset.getMetaData .
4. Deklarasi variabel baru bernama columnCount bertipe int yang
berisi nilai
rsmd.getColumnCount . 5. Membuat
vector bernama
headers dan data. 6. Menghapus header.
7. Selama i=0 dan I tidak lebih dari sama dengan jumlah kolom,
maka tambahkan pada header rsmd.getColumnName .
8. Hapus data. 9. Selama
rset.next, lakukan
langkah di bawah ini : a. Membuat
vector baru
bernama d. b. Selama i=1 dan I kurang dari
sama dengan columnCount, maka tambahkan rset pada d.
c. Tambahkan d pada data. 10. Membuat tabel model bernama
model atur nilai baris adalah data dan nilai kolom adalah headers.
11. Setmodel tabel data preprocess. 12. Selama i=0 dan I kurang dari
model.getColumnCount lakukan langkah 13
– 16. 13. Membuat
obyek dari
kelas
seleksiAtribut bernama
seleksi_atribut. 14. Set
atribut menjadil
model.getColumnNamei. 15. setPilihfalse
16. tambahkan I, selekci_atribut pada tabel_checkbox.
17. Set model tabel seleksi atribut menjadi tabel checkbox.
18. Membuat obyek baru bernama model pada kelas TableModel
lalu inisialisasikan dengan nilai tabel_DataPreprocess.getModel
19. Cetak jumlah data 20. Cetak jumlah atribut
submitData Memasukkan
data dari tabel preprocess ke
tabel deteksi outlier
1. Membuat obyek baru bernama tableModel di kelas TableModel
lalu diatur sebagai model dari tabel preprocess.
2. Jika jumlah
kolom pada
tableModel adalah 0, maka cetak “Anda belum memasukkan data
”. lalu atur textfield pathData
adalah null. 3. Jika tidak, lakukan langkah 4
– 4. atur
tabel deteksi
menjadi setModeltableModel.
5. Deklarasi variabel bernama baris bertipe int dengan inisialisasi
tableModel.getRowCount . 6. Cetak jumlah baris deteksi.
hapusAtribut Menghapus atribut yang ada
pada tabel data preprocess untuk
proses seleksi atribut
1. Selama i=0 dan I tidak lebih dari nilai
tabel_SeleksiAtribut.getRowCou nt , maka lakukan langkah 2-
2. Cek apakah
tabel_SeleksiAtribut.getValueAt i,1 samadengan true. Jika ya
lakukan langkah di bawah ini : a. Selama j=0 dan j kurang dari
jumlah kolom tabel seleksi atribut, maka lakukan b-f.
b. Cek apakah tabel seleksi atribut berisi nama kolom
dari tabel data preprocess. Jika ya lakukan langkah c-f.
c. Membuat obyek baru bernama tcol di kelas TableColumn
dengan inisialisasi
nilai tabel_dataPreprocess.getColu
mnModel.getColumnj. d. Membuat obyek baru bernama
tcol2 di kelas TableColumn dengan
inisialisasi nilai
tabel_deteksiOutlier.getColu mnModel.getColumnj.
e. Hapus kolom tcol pada tabel data preprocess
f. Hapus kolom tcol2 pada tabel deteksi outlier.
3. Hapus baris tabel checkbox. prosesDeteksi
Melakukan 1. Cek apakah text field k kosong,
pemanggilan pada kelas
GraphNew untuk menampilkan
hasil perhitungan jika ya, cetak “Nilai k tidak boleh
kosong”. Jika tidak, lakukan
langkah 2. 2. Cek apakah text field k tidak
berisi numeric positif. Jika ya, cetak “Nilai k tidak boleh berisi
huruf atau angka negative”. Jika
tidak lakukan langkah 3. 3. Cek apakah text field lamda
kosong, jika ya, cetak “Nilai lamda tidak boleh kosong”. Jika
tidak, lakukan langkah 2. 4. Cek apakah text field lamda tidak
berisi numeric positif. Jika ya, cetak “Nilai lamda tidak boleh
berisi huruf
atau angka
negative”. Jika tidak lakukan langkah 3.
5. Cek apakah text field k dan text field
lamda berisi
numeric positif. Jika ya, lakukan langkah
6- 6. Deklarasi variabel baru bernama
k dan lamda. 7. Cek apakah nilai k dan lamda
lebih dari 0. Jika ya lakukan langkah 8. Jika tidak munculkan
pesan error. 8. Membuat obyek bernama graph
di kelas GraphNew. 9. Memanggil method input data ke
dalam tabel_deteksiOutlier. 10. setk agar sesuai dengan inputan
pengguna. 11. SetLamda agra sesuai dengan
inputan pengguna. 12. Memanggil method tampilJarak
untuk menampilkan
hasil perhitungan jarak.
13. Memanggil method
tampilNeighbor untuk
menampilkan obyek
yang menjadi tetangga obyek tersebut.
14. Memanggil method caristdev untuk
menampilkan hasil
perhitungan standard deviasi. 15. Memanggil method caripdist
untuk menampilkan
hasil perhitungan
probabilistic distance.
16. Memanggil method jumlahpdist untuk
menampilkan hasil
perhitungan probabilistic LOF, agregat PLOF dan nilai LoOP.
17. Mencetak jumlah outlier. 18. Mencetak lama deteksi outlier.
batasOutlier Untuk membatasi
nilai derajad LOOP
1. Cek apakah text field batas outlier
kosong, maka cetak “Nilai batas outlier tidak boleh
kosong”. Jika tidak lakukan
langkah 2. 2. Cek apakah text field batas
outlier berisi
data numeric
positif. Jika ya, lakukan langkah 3 -
. jika tidak tampilkan “Nilai batas
outlier tidak
boleh mengandung karakter huruf”
3. Atur model pada tabel deteksi dengan
memanggil method
setDataLoop2 dengan parameter kolom tabel deteksi dan nilai
batas outlier. 4. Mengurutkan data hasil outlier.
5. Cetak jumlah hasil outlier. simpanLoOP Menyimpan hasil
outlier ke dalam
file bertipe doc xls atau txt
1. Menampilkan filechooser untuk lokasi penyimpanan file hasil
outlier .
2. Mengatur file filter agar hanya bisa disimpan dalam tipe file
doc, xls, dan txt. 3. Deklarasi
variabel bernama
file_output_stream bertipe
FileOutputStream. 4. Deklarasi
variabel bernama
returnValue bertipe int dengan inisialisasi
fileChooser menampilkan
kotak dialog
simpan. 5. Cek apakah returnValue ==
JFileChooser.APPROVE_OPTI ON. Jika ya lakukan langkah 6
– 14.
6. Membuat variabel
bernama
filename bertipe String berisi path data yang di pilih.
7. Membuat variabel ext berisi filter terhadap tipe file.
8. Cek apakah ext berisi Microsoft Excel
.xls. jika ya lakukan langkah 9 - 12.
9. Membuat variabel bernama ff bertipe File.
10. Inisialisasi ff sama dengan file baru dengan nama file diikuti .xls
11. Menampilkan output ff. 12. Mengirimkan isi data tabel hasil
outlier 13. Cek apakah ext berisi Microsoft
Word .doc jika ya lakukan seperti langkah 9-12. Jika tidak
lakukan langkah 14. 14. Cek apakah ext bertipe .txt, jika
ya lakukan seperti langkah 9-12. 15.
Cetak “Hasil deteksi berhasil disimpan”
6. Rincian Algoritma pada Method dalam kelas HalamanPilihDB
Nama method Fungsi method
Algoritma method
pilihDatabase Menampilkan basisdata yang
tersedia dan memberikan
akses kepada 1. Cek jika combo box pilih
koneksi adalah indeks ke 0 yaitu mysql, maka lakukan
langkah 2 – 4.
2. Jika textfield
username,
pengguna untuk login
ke basisdata yang dipilih
pengguna password, dbname, atau url
kosong, maka
lakukan pengisian kembali.
3. Jika textfield
username, password, dbname, dan url
diisi dengan benar, maka berhasil login ke basisdata
yang dipilih, yaitu mysql. 4. Menampilkan pesan berhasil
terkoneksi lalu menampilkan form halaman pilih tabel.
5. jika combo box pilih koneksi adalah indeks ke 1, yaitu
oracle, maka lakukan langkah 6 -7
6. Jika textfield
username, password, dbname atau url
kosong, maka
lakukan pengisian kembali.
7. Jika textfield
username, password, dbname, dan url
diisi dengan benar, maka berhasil login ke basisdata
yang dipilih, yaitu oracle. 8. Menampilkan pesan berhasil
terkoneksi lalu menampilkan form halaman pilih tabel.
7. Rincian Algoritma
pada Method
dalam kelas
HalamanPilihTabel
Nama method Fungsi method
Algoritma method
tampilDaftarTabel kodensiDB,
String Menampilkan daftar
tabel dalam basis data yang dipilih
pengguna 1. Membuat obyek baru di kelas
DBControl bernama dbc. 2. Membuat
obyek ResultSet
bernama rset. 3. Jika basisdata oracle, maka
tampilkan daftar tabel dalam oracle dengan menggunakan
method displayTableOraclekoneksi.ge
tConn 4. Jika basisdata mysql, maka
tampilkan daftar tabel yang ada dalam basis data mysql
dengan memanggil method displayTableMysqlkoneksi.ge
tConn
4.4 Perancangan Struktur Data