a. Data yang dipilih dalam bentuk tabel data, jumlah data
b. Daftar nama atribut
2. Proses deteksi
outlier
menampilkan : a.
Outlier
beserta daftar nilai untuk setiap atribut b.
Jumlah data c.
Jumlah
outlier
d. Lama deteksi
outlier
4.3 Perancangan Struktur Data
Sistem Pendeteksi
Outlier
Menggunakan Algoritma
Block-based Nested- Loop
ini menggunakan struktur data berupa
graph
. Pemilihan penggunaan struktur data
graph
karena dapat membantu penyimpanan data dengan banyak atribut serta untuk menghubungkan satu data dengan data lainnya. Setiap data
akan dianggap sebagai
vertex
. Setiap
vertex
memiliki label serta nilai. Nilai setiap vertex disimpan dalam bentuk
list
karena setiap
vertex
dapat memiliki lebih dari satu atribut.
Penggunaan algoritma
Block-based Nested-Loop
mengharuskan adanya pembentukan blok-blok data untuk membantu proses
load
data ke memori. Setiap blok berisi sekumpulan
vertex
yang jumlahnya disesuaikan dengan perhitungan blok. Setiap blok memiliki nomor blok, isi blok, jumlah anggota, sisa dan status
first array
. Nomor blok digunakan untuk membantu pertukaran blok selama proses deteksi
outlier
berlangsung. Saat pembagian
vertex
ke dalam sejumlah blok, ada kemungkinan terdapat sisa
vertex
karena jumlah data tidak habis dibagi
dengan jumlah blok. Sisa
vertex
ini akan dimasukkan ke blok tertentu. Karena tidak ada aturan khusus mengenai penempatan
vertex
sisa tersebut, peneliti menetapkan untuk memasukkannya ke dalam blok dengan nomor urut terakhir.
Status
first array
bertipe
boolean
dan digunakan sebagai penanda bahwa sebuah blok sudah pernah menjadi
first array
. Status ini diperlukan sebab sesuai dengan aturan dalam algoritma
Block-based Nested-Loop
, sebuah blok hanya dapat sekali menjadi
first array
. Ilustrasi struktur data yang digunakan oleh sistem ini dapat dilihat pada gambar di bawah ini.
Nama Atribut 1 Atribut 2 Atribut 3 A
. . . . . . . .
. . . . B
. . . . . . . .
. . . . C
. . . . . . . .
. . . . D
. . . . . . . .
. . . . E
. . . . . . . .
. . . . F
. . . . . . . .
. . . . G
. . . . . . . .
. . . . H
. . . . . . . .
. . . .
Index 1
2 3
4 5
6 7
0 -1 -1 -1 -1 -1 -1 -1 1
-1 0 -1 -1 -1 -1 -1 -1 2
-1 -1 0 -1 -1 -1 -1 -1 3
-1 -1 -1 0 -1 -1 -1 -1 4
-1 -1 -1 -1 0 -1 -1 -1 5
-1 -1 -1 -1 -1 0 -1 -1 6
-1 -1 -1 -1 -1 -1 0 -1
7 -1 -1 -1 -1 -1 -1 -1 0
Buat Graph 8 Input data sejumlah 8 baris
dengan 3 atribut
- Dibentuk matriks jarak
edge
. Karena data berjumlah 8 maka
dibentuk matriks 8x8. Untuk pertemuan indeks yang sama
akan diberi nilai 0 dan pertemuan indeks yang berbeda akan diberi
nilai -1. -
Dibentuk vertex
kosong sebanyak 8 buah
A
Vertex[0] = Label „A‟
List nilai
StatusUnmarked = true
StatusNon
Outlier
=false index
. .
. .
. .
. .
.
H
Vertex[7] = Label „H‟
List nilai
StatusUnmarked = true
StatusNon
Outlier
=false Insert
Vertex
Hitung jumlah blok dan pembagian
vertex
ke dalam blok
Diasumsikan pada contoh kasus ini, diperoleh : jumlah blok = 3
data per blok = 2 sisa = 2
sisa lalu dimasukkan ke blok terakhir A
B
C D
E F
G H
Blok 1
Blok 2 Blok 3
Insert edge
dan pencarian
outlier
First Array Second Array
Blok 1
Blok 2 Blok 1
Blok 1 Blok 3
dan
dan Status
first array
blok 1 harus
false
baru dimasukkan ke First Array
Untuk tiap vertex dalam blok 1 : -jumlah tetangga = M
-status unmarked = true -status nonoutlier = false
Setiap
vertex
yang berada dalam blok 1 dihitung
euclidean distance
dan jumlah tetangganya
Karena status
first array
blok 1 = true, maka blok 1 tidak dimasukkan lagi ke
first array
. Hal ini menandakan seluruh blok telah dicek
outlier
nya. Kemudian proses Status first array blok 1 = true
First Array Second Array
Blok 3
Blok 1 Blok 3
Blok 3 Blok 2
dan
dan Status
first array
blok 3 harus
false
baru dimasukkan ke First Array
Untuk tiap vertex dalam blok 3 : -jumlah tetangga = M
-status unmarked = true -status nonoutlier = false
Setiap
vertex
yang berada dalam blok 3 dihitung
euclidean distance
dan jumlah tetangganya
Status first array blok 3 = true
Status first array blok 2 = true First Array
Second Array Blok 2
Blok 3 Blok 2
Blok 2 Blok 1
dan
dan Status
first array
blok 2 harus
false
baru dimasukkan ke First Array
Untuk tiap vertex dalam blok 2 : -jumlah tetangga = M
-status unmarked = true -status nonoutlier = false
Setiap
vertex
yang berada dalam blok 2 dihitung
euclidean distance
dan jumlah tetangganya
pencarian
outlier
selesai. Lalu setiap
vertex
yang memiliki status
non outlier
=
false
akan ditampilkan sebagai
outlier
.
4.4 Diagram Use Case