4.3.3 Diagram Sequence
Berikut merupakan Diagram Sequence yang terdapat pada sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor:
1. Diagram Sequence Input Data File yang Berekstensi .xls 2. Diagram Sequence Input Data File yang Berekstensi .csv
3. Diagram Sequence Input Data File dari Tabel pada Database 4. Diagram Sequence Proses Deteksi Outlier
5. Diagram Sequence Simpan Hasil Deteksi Outlier 6. Diagram Sequence Seleksi Atribut
Penjelasan dari masing-masing diagram sequence akan di jelaskan pada bagian lampiran 4.
4.3.4 Diagram Kelas Desain
Diagram kelas desain merupakan diagram yang menunjukan daftar tiap- tiap kelas yang nantinya akan di gunakan dalam pembuatan sistem deteksi outlier
menggunakan algoritma Connectivity-based Outlier Factor. Diagram kelas ini memuat semua kelas beserta dengan atribut-atributnya.
Boundary HomePage
Boundary Home
Boundary Halaman PilihFile
Boundary Halaman
PilihDataBase Boundary
Halaman PilihTabel
Controller DataControl
Entity KoneksiDataBase
Controller SeleksiAtributContr
ol Entity
CheckBoxTableMod el
entity Graph
entity Vertex
entity CofTableModel
entity DatCof
Boundary Halaman About
Boundary Halaman Help
Boundary Halaman
Prepocessing Boundary
Halaman Deteksi Outlier
memanggil memanggil
memanggil
memanggil
memanggil
memanggil memiliki
memanggil
memanggil memanggil
memanggil
memanggil memanggil
memanggil memanggil
memanggil 1
1 1
1
1 1
1 1
1
1 1
1 1
1
1
1 1...
1... 1...
Gambar 4.3 Diagram Kelas Desain Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor.
Penjelasan mengenai masing-masing kelas beserta dengan atribut dan method
yang di gunakan akan di jelaskan pada lampiran 5.
4.3.5 Rincian Algoritma Setiap Method pada Tiap Kelas
1. Rincian Algoritma pada Setiap Method pada kelas KoneksiDataBase
Nama Method Fungsi
Method Algoritma Method
getDBConnectionOracleStri ng, String, String
Mendapatka n nilai dari
username ,
password ,
dan url dari 1. Membuat
obyek dari
OracleDataSource. 2. Mengeset nilai url
ke dalam obyek
hasil inputan user
untuk melakukan
koneksi ke database
Oracle .
yang telah di buat. 3. Mengambil
nilai userId
dan password
4. Jika benar, maka mengembalikan
nilai connection
dan berhasil
terkoneksi dengan database
Oracle. getDBConnectionSqlString,
String, String Mendapatka
n nilai dari username
, password
, dan url dari
hasil inputan user
untuk melakukan
koneksi ke database
MySql.
1. Membuat koneksi ke database MySql
dengan mengeset
nilai connection
dengan parameter
url ,
userid ,
dan password
. 2. Jika benar, maka
mengembalikan nilai connection
dan berhasil
terkoneksi dengan
database MySql.
isConnectedSqlString, String, String
Melakukan pengecekan
apakah sistem
sudah terkoneksi
dengan 1. Memanggil
method getDBConnectio
nSql dengan
parameter inputan
user ,
password ,
dan
database MySql.
url yang telah di
masukan oleh
user 2. Apabila
nilai parameter
tersebut tidak
kosong, maka
akan mengembalikan
nilai true. 3. Apabila
nilai parameter
kosong, maka
akan mengembalikan
nilai false. isConnectedOracleString,
String, String Melakukan
pengecekan apakah
sistem sudah
terkoneksi dengan
database
Oracle.
1. Memanggil
method getDBConnection
Oracle dengan
parameter inputan user
, password
, dan url yang telah
di masukan oleh user
2. Apabila nilai
parameter tersebut
tidak kosong,
maka akan
mengembalikan
nilai true. 3. Apabila
nilai parameter
kosong, maka
akan mengembalikan
nilai false. close
Di gunakan untuk
memutus koneksi
database dengan
sistem. 1. Memanggil
method getConn, apabila
sudah tidak terhubung
maka panggil
method close
untuk menutup
koneksi.
2. Rincian Algoritma pada Setiap Method pada kelas Graph
Nama Method Fungsi
Method Algoritma Method
addVertexString, ListDouble
Membuat sebuah
vertex untuk
membentuk graph
. 1. Membaca parameter
label dan nilai. 2. Mendeklarasikan
sebuah vertex baru dengan memasukan
nilai label dan nilai ke dalam vertex.
addEdgeint, int, Double Mengisi
tiap-tiap nilai edge
pada vertex 1.
Membaca nilai
parameter start, end, dan weight.
2. Memasukan nilai dari
yang telah di buat.
parameter ke
dalam variabel adjMat untuk
mengisi nilai edge. calculateEcluidianDistanc
eint, int Menghitun
g jarak dari edge
1.Membaca parameter
array1 dan array2. 2. Membuat obyek x
dan obyek y untuk menampung nilai dari
array1 dan array2. 3. Mengeset nilai sum =
0.0. 4. Selama nilai i kurang
dari jumlah data x, maka akan di lakukan
perhitungan sum = sum + Math.powx.geti -
y.geti, 2.0. 5. Mengembalikan nilai
sum. show
Menampilk an sebuah
graph yang
telah di
buat. 1. Selama nilai i kurang
dari panjang vertexList, maka akan
ditampilkan label dari vertex tersebut.
2. Selama nilai i kurang dari panjang adjMat,
maka akan di
tampilkan perhitungan
jarak Euclidian Distance
.
inputData Menginputk
an data dari 1. Selama i kurang dari
jumlah baris pada tabel,
Jtable ke
dalam matrix
dalam graph
. maka di buat obyek
listNilai bertipe
ArrayList. 2. Selama j kurang dari
jumlah kolom pada tabel, dan j sama dengan 0
maka akan
dilakukan pengesetan
label ke
dalam tabel 3. Apabila tidak maka
memasukan nilai
ke dalam listNilai.
4. Memanggil method addVertex
untuk membuat vertex
5. Selama i kurang dari jumlah baris pada tabel,
dan selama j sama dengan 1+i dan j kurang dari
jumlah baris pada tabel, maka akan di lakukan
pengecekan apabila
i tidak sama dengan j maka
memanggil method
addEdge untuk mengisi nilai edge dengan jarak
EcluidianDistance pada
method calculateEcluidianDistanc
e. SearchString
Method untuk
mencari 1. Untuk i = 0 dan i
kurang dari
panjang vertexList
maka akan
posisi indeks pada
vertexLisr dilakukan pengecekan:
a. Jika label sama dengan nilai
label pada
vertexList[i], maka
mengembalikan nilai i. b. Mengembalikan nilai -1
Search2Double, int Method
untuk mencari
vertexList tertentu dan
mengubah nilai
wasVisited menjadi
true. 1. Untuk i = 0 dan i
kurang dari
panjang vertexList
maka akan
dilakukan pengecekan: a.
Jika adjMat
pada index,i sama dengan jarak
maka set
atribut wasVisitedP menjadi true.
cariKDistanceint, int Method
untuk mencari
kDistance pada
masing- masing
obyek. 1. Untuk i = 0 dan i
kurang dari
panjang vertexList maka set atribut
wasVisitedP menjadi
false. 2. Membuat obyek a
bertipe Double. 3. Menginisialisasi nilai
kDistance = 0.0 4. Membuat atribut temp1
bertipe Double. 5. Apabila nilai index
sama dengan -1, berarti graph
tidak terhubung. 6. Untuk j = 0, dan nilai j
kurang dari panjang a, untuk i = 0 dan nilai i
kurang dari
panjang vertexList
maka di
lakukan pengecekan: a.
Jika adjMat
index, i
tidak sama dengan -1,
0, dan
isWasVisited =
false. b. Jika adjMat
index, o kurang dari temp1 maka
nilai temp1
= adjMat index,i
7. Set nilai a = temp1. 8. Memasukan parameter
temp1 dan index ke dalam method
. 9. Untuk i = 0 dan i
kurang dari panjang a akan
dilakukan pengecekan:
a. Jika kDistance kurang dari a[i],
maka nilai
kDistance = a[i] 10. Mengembalikan nilai
kDistance. setKDistanceString, int
Mengeset variabel
kDistance ke dalam vertex
1. Membaca parameter label dan jangkauan.
2. Membuat
variabel index dan di inisialisasi ke
dalam method Search
dengan parameter label. 3. Mengeset kDistance
dengan memanggil
method cariKDistance.
calculateCofint Menginputk
an nilai pada variabel
COF dalam vertex
1. Membaca parameter minPts
2. Untuk nilai i = 0 dan i kurang
dari panjang
vertexList, maka mengeset nilai kDistance .
3. Untuk nilai i = 0 dan i kurang
dari panjang
vertexList, maka mengeset nilai nkp.
4. Untuk nilai i = 0 dan i kurang
dari panjang
vertexList, maka mengeset nilai sbnPath.
cariNkpDouble, int Method
untuk mencari
masing- masing nkp
pada setiap obyek
1. Membaca parameter kDistance dan index
2. Membuat variabel x bertipe ArrayList String
3. Jika index sama dengan -1, maka graph tidak
terhubung 4. Untuk i = 0 dan i
kurang dari
panjang vertexList
maka di
lakukan pengecekan: a.
Jika adjMat
index, i
tidak sama dengan -1
dan 0, dan jika adjMat
index,i kurang dari sama
dengan kDistance b.
Maka memasukan nilai
vertexList[i].getL abelP ke dalam x.
5. Mengembalikan nilai x. setNkpString
Mengeset variabel nkp
ke dalam
vertex 1. Membaca parameter
label. 2. Membuat atribut index
dan di inisialisasikan ke dalam
method Searchlabel
3.Mengeset nilai
nkp dengan method cariNkp
cariLabelString Method
untuk mencari
label pada
vertexList 1. Membaca parameter
label. 2. Untuk i = 0 dan i
kurang dari
panjang vertexList
maka akan
dilakukan pengecekan: a.
Jika vertexList[i].getL
abelP sama
dengan label pada parameter, maka
mengembalikan nilai i.
4. Mengembalikan nilai - 1.
cariSbnPathDouble, int Method
untuk mencari
sbnPath pada
masing- masing
obyek 1. Membaca parameter
kDistance dan index 2. Membuat variabel x
bertipe ArrayList String 3. Jika index sama dengan
-1, maka graph tidak terhubung
4. Untuk i = 0 dan i kurang
dari panjang
vertexList maka
di lakukan pengecekan:
a. Jika
adjMat index,
i tidak
sama dengan -1 dan 0, dan jika
adjMatt index,i
kurang dari sama dengan kDistance
b. Maka
memasukan nilai vertexList[i].getL
abelP ke dalam x. c.
Melakukan sorting untuk nilai
x.
5. Mengembalikan nilai x.
setSbnPathString Mengeset
nilai sbnPath ke
dalam vertex
1. Membaca parameter label.
2. Membuat atribut index dan di inisialisasikan ke
dalam method
Searchlabel Mengeset
nilai nkp
dengan method
cariSbnPath
displayAllint Menampilka
n semua
hasil perhitungan
COF 1. Membaca parameter r.
2. Untuk i = 0 dan i kurang
dari panjang
vertexList maka
akan ditampilkan:
a. Memanggil dan menampilkan nilai
labelP b. Memanggil dan
menampilkan nilai kDistance
c. Memanggil dan menampilkan nilai
nkp d.
Menghitung dan menampilkan
jumlah nkp e. Memanggil dan
menampilkan nilai sbnPath
f. Membuat
atribut hasil1
dengan tipe data ArrayList
g. Membuat dan menginisialisasi
atribut awal = 0 h. Membuat dan
menginisialisasi atribut akhir= 1
i. Ketika
nilai
awal kurang dari ukuran sbnPath di
kurangi 1
dan akhir kurang dari
ukuran sbnPath
maka: j. Mencetak nilai
awal k. Mencetak nilai
akhir. l.
Menghitung selisih dari akhir
di kurangi awal dan
memasukan ke dalam variabel
hasil1. m.
Menginisialisasi awal = awal di
tambah 1 n.
Menginisialisasi akhir=
akhirdi tambah 1
3. Untuk j = 0 dan j kurang dari hasil1, maka
mencetak nilai j. 4.
Membuat variabel
jumlah1 bertipe
data ArrayListString
5. Menginisialisasi nilai sum = 0.0
6. Untuk j = 0 dan j
kurang dari hasil, maka memasukan nilai sum.
7. Mencetak nilai sum. 8. Mengeset nilai sum ke
dalam acDist. 9. Untuk ia = 0 dan ia
kurang dari vertexList, maka:
a. Mencetak nilai labelP.
b. Menginisialisasi
nilai jumlah = 0.0. c. Untuk i = 0 dan
i kurang dari nkp maka memanggil
method cariLabel untuk nkp
d. Menjumlah
acDist untuk nkp. e.
Mengeset jumlah
ke acDistTetangga.
10. Untuk ib = 0 dan ib kurang
dari vertexList
maka: a.
Membuat variabel nkp dan
memasukan nilai nkp.
b. Melakukan
perhitungan cof, c. Mengeset nilai
cof. d. Jika nilai cof lebih dari
1 maka outlier. setDataCofString
Mengeset nilai dataCof
ke dalam
tabel 1. Membaca parameter
label 2. Membuat variabel dlf
dengan tipe data ArrayList 3. Untuk i = 0 dan i
kurang dari
vertexList maka:
a. Jika cof lebih besar dari 1 maka
memasukan nilai cof dan atributnya
ke dalam tabel model
4. Membuat variabel dm bertipe
data CofTableModel
dengan parameter dlf dan label
5. Mengembalikan nilai dm.
setDataCofBatasString, Double
Mengeset nilai
dataCofBata s ke dalam
tabel
1. Membaca parameter label dan batasCof
2. Membuat
variabel dataCofL dengan tipe data
ArrayList 3. Untuk i = 0 dan i
kurang dari
vertexList maka:
a. Jika cof lebih besar
dari batasCof
maka
memasukan nilai cof dan atributnya
ke dalam tabel model
4. Membuat variabel dm bertipe
data CofTableModel
dengan parameter dataCofL dan
label 5. Mengembalikan nilai
dm.
3. Rincian
Algoritma pada
Setiap Method
pada kelas
CheckBoxTableModel
Nama Method Fungsi
Method Algoritma Method
addRowint, SeleksiAtributControl
Menambahka n row atau
baris ke
dalam tabel
atribut 1. Membaca parameter a dan
field_m 2. Menambahkan nilai a dan
field_m ke
dalam variabel
listSeleksi removeRow
Menghapus row
atau baris dari
tabel
atribut
1. Membuat
atributseleksi dengan
tipe data
ArrayListSeleksiAtributControl 2. Untuk seleksiA : listSeleksi
maka: a. Jika seleksiA.getPilih
= true
maka nilai
seleksiA di tambahkan ke dalam seleksi.
3. Nilai listSeleksi = seleksi
4. Rincian Algoritma pada Setiap Method pada kelas DataControl
Nama Method Fungsi Method
Algoritma Method
tampilTabelMySqlConnection Menampilkan tabel dari database
MySql 1.
Membaca parameter con
2. Membuat
variabel stmt
bertipe Statement 3.
Membuat variabel
rset bertipe ResultSet
4. Membuat
variabel query
bertipe String 5. Mengisikan nilai
query =
show tables
6. Mengeksekusi
query 7.
Menampilkan hasil query
tampilTabelOracleConnection Menampilkan tabel dari database
Oracle
1. Membaca
parameter con 2.
Membuat variabel
stmt bertipe Statement
3. Membuat
variabel rset
bertipe ResultSet 4.
Membuat variabel
query bertipe String
5. Mengisikan nilai
query =
“select table_name
from user_tables
” 6.
Mengeksekusi query
7. Menampilkan
hasil query
selectTableConnection, String Menampilkan tabel
1. Membaca
parameter con dan table
2. Membuat
variabel stmt
bertipe Statement 3.
Membuat variabel
rset bertipe ResultSet
4. Membuat
variabel query
bertipe String 5. Mengisikan nilai
query = select
from” + table 6.
Mengeksekusi query
7. Menampilkan
hasil query
5. Rincian Algoritma pada Setiap Method pada kelas Home
Nama Method Fungsi
Method Algoritma Method
calculateCof Method
untuk melakukan
1.Membuat variabel time1 yang bertipe long.
2.Melakukan pengecekan
proses pendeteksia
n outlier. jika nilai min pts dan r
kosong maka: a. Jika min pts
kosong maka
akan di tampilkan pesan error
b. Jika r kosong maka
akan di
tampilkan pesan error
. 3.Melakukan pengecekan
jika nilai min pts dan r tidak kosong maka:
a. Membuat
variabel min pts dan r yang bertipe
int .
b. Memasukan
nilai min pts dari text
field ke dalam variabel min pts
yang telah dibuat c.
Memasukan nilai r dari text
field ke dalam
variabel r yang telah dibuat
d. Membuat
obyek graph dari kelas Graph.
e. Memanggil
method input data
dan memasukan
data ke
dalam tabel
dataPrepocessing 2
f. Memanggil
method calculateCOF
yang berparameter
minPts. g.
Memanggil method
show h.
Memanggil method
displayAll yang
berparameter r. i. Mengeset hasil
perhitungan outlier
ke dalam tabelHasil.
j. Mengurutkan
arrayList dari
tabelHasil. 4.Membuat variabel time2
yang bertipe long. 5.Mengeset jumlah outlier
ke dalam
text field
jumlahOutlierField. 6.Mengeset lama deteksi
outlier ke dalam text field
lamaDeteksiField. hapusButton
Method 1.Selama i = 0 dan i
untuk menghapus
atribut yang di pilih oleh
pengguna. kurang dari jumlah baris
dari tabelSeleksi 2.Akan
di lakukan
pengecekan jika
tabelSeleksi.getValueAti, 1. equalstrue maka
a. Selama j = 0 dan j kurang dari
jumlah kolom dari dataPrepocessTab
le b.
Membuat atribut
tableColumn1 yang
bertipe TableColumn dan
di isikan
dari dataPrepocessTab
le c.
Membuat atribut
tableColumn2 yang
bertipe TableColumn dan
di isikan
dari dataPrepocessing
2. d.
Memanggil method
removeColumn untuk
tableColumn1. e.
Memanggil
method removeColumn
untuk tableColumn2.
3. Memanggil
method removeRow.
okBatasOutlier Method
untuk memasukan
hasil deteksi outlier
yang telah di beri
batasan ke
dalam tabel hasil deteksi
1. Jika
batas outlier
kosong, maka akan di tampilkan pesan error.
2. Jika
batas outlier
nilainya 0-9 maka a.
Mengeset dataCOFBatas ke
dalam tabelHasil, b.
Membuat variabel list yang
bertipe ArrayList c.
Memanggil method
sort untuk melakukan
pengurutan list. 3.Jika nilai batas outlier
tidak berupa angka, maka akan menampilkan pesan
error 4.
Mengeset jumlah
outlier ke dalam textField
jumlahOutlierField dari
jumlah baris
dari tabelHasil.
pilihDatabaseKoneksiDatabas e, String
Method untuk
memilih 1. Membaca parameter
koneksiDb dan table 2. Membuat variabel dc
database yang akan di
gunakan yang bertipe DataControl
3. Membuat variabel rset yang bertipe ResultSet.
4. Memanggil
method getConn
pada kelas
KoneksiDatabase. 5.
Memangil method
getMetaData 6.
Membuat variabel
coloumnCount yang
bertipe int. 7.
Membuat variabel
headers dan data yang bertipe Vector
8. Selama i = 1 dan i kurang dari sama dengan
coloumnCount maka
menambahkan columnName ke dalam
headers. 9.
Mengeset nilai
dataPrepocessTable dan
data Prepocessing2. 10.
Membuat variabel
checkBoxT yang bertipe CheckBoxTableModel
11. Memasukan
nilai checkBoxT
ke dalam
tabelSeleksi. 12. Mengeset nilai jumlah
data ke dalam text field jumlahDataField
dari jumlah baris pada tabel
dataPrepocessTable. 13.Mengeset nilai jumlah
data ke dalam text field jumlahData2Field
dari jumlah baris pada tabel
dataPrepocessing2. pilihFile
Method untuk
memilih file yang akan di
gunakan 1.
Membuat atribut
fileChooser yang bertipe JFileChooser.
2. Mengeset
nilai fileChooser menjadi true.
3. Membuat
atribut namaFile yang bertipe
String dan mengisikan dengan
method getSelectedFile.getPath
4. Memotong namaFile dan memasukan ke dalam
atribut nama yang bertipe String[]
5. Jika
nama[1].equalsxls maka:
a. Menampilkan file yang bertipe .xls ke dalam tabel
data. 6.
Jika nama[1].equalscsv
maka: a. Menampilkan file yang
bertipe .csv ke dalam tabel data.
7. Apabila selain file .xls dan .csv maka akan di
tampilkan pesan error. 8. Mengeset nilai jumlah
data ke dalam text field jumlahDataField
dari jumlah baris pada tabel
dataPrepocessTable. 9.Mengeset nilai jumlah
data ke dalam text field jumlahData2Field
dari jumlah baris pada tabel
dataPrepocessing2. saveCof
Method untuk
menyimpan hasil
perhitungan deteksi
outlier ke
dalam file
yang berekstensi
tertentu. 1.
Membuat atribut
fileChooser yang bertipe JFileChooser
dan mengeset
ke dalam
directory E:
2. Mengeset
nama ekstensi file .xls, .doc, dan
.txt 3. Jika memilih .xls maka
a. Memanggil nilai dari tabelHasil
dan memasukan
ke dalam
variabel excel
yang bertipe FileWriter.
b. Memberikan
pesan error
jika data gagal disimpan.
4. Jika memilih .doc maka a. Memanggil nilai dari
tabelHasil dan
memasukan ke
dalam variabel bfw yang bertipe
BufferedWriter b.
Memberikan pesan
error jika data gagal
disimpan. 5. Jika memilih .txt maka
a. Memanggil nilai dari tabelHasil
dan memasukan
ke dalam
variabel bfw yang bertipe BufferedWriter
b. Memberikan
pesan error
jika data gagal disimpan.
6. Jika data berhasil di simpan pada path atau
direktori tertentu, maka akan menampilkan pesan
sukses. tandaiButton
Method untuk
menandai atribut yang
ingin di
hapus 1. Selama i = 0, dan i
kurang dari jumlah baris tabelSeleksi, maka:
2. Mengeset tabelSeleksi dengan
method setValueAttrue, i, 1
batalButton Method
untuk membatalka
n atribut
yang telah
ditandai 1. Selama i = 0, dan i
kurang dari jumlah baris tabelSeleksi, maka:
2. Mengeset tabelSeleksi dengan
method setValueAtfalse, i, 1
6.4 Perancangan Struktur Data