deteksi outlier menggunakan algoritma local

advertisement
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL CORRELATION INTEGRAL
(STUDI KASUS: DATA AKADEMIK MAHASISWA
TEKNIK INFORMATIKA UNIVERSITAS SANATA
DHARMA)
Skripsi
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer (S.Kom)
Program Studi Teknik Informatika
Disusun Oleh:
Felisitas Brillianti
105314013
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2014
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
OUTLIER DETECTION USING
LOCAL CORRELATION INTEGRAL ALGORITHM
(STUDY CASE: ACADEMIC DATA OF STUDENTS OF
INFORMATICS ENGINEERING STUDY PROGRAM
SANATA DHARMA UNIVERSITY)
A Thesis
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Komputer Degree (S.Kom)
In Informatics Engineering Study Program
By:
Felisitas Brillianti
105314013
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2014
i
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
iii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSEMBAHAN
“Bagi manusia hal ini tidak mungkin,
tetapi bagi Allah segala sesuatu mungkin”
(Matius 19:26)
~NO PAIN NO GAIN~
Terimakasih untuk doa, dukungan, dan semangat serta
bantuan yang kalian berikan baik disaat suka maupun duka
iv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah saya sebutkan dalam
kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 14 Januari 2015
Penulis
Felisitas Brillianti
v
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRAK
Data mining (penambangan data) adalah suatu proses untuk menemukan
suatu pengetahuan atau informasi yang berguna dari data berskala besar. Sering
juga disebut sebagai bagian proses KDD (Knowledge Discovery in Databases)
(Santosa, 2007).
Deteksi outlier merupakan salah satu bidang penelitian yang penting dalam
mendeteksi perilaku yang tidak normal seperti deteksi mahasiswa yang nilai tes
masuk universitasnya bagus tetapi pada saat kuliah mahasiswa tersebut mendapat
nilai rendah.
Penelitian ini menggunakan algoritma Local Correlation Integral dengan
teknik density-based. Data diambil dari data akademik Mahasiswa Program Studi
Teknik Informatika Universitas Sanata Dharma angkatan 2007 dan 2008 yang
meliputi nilai tes masuk dan nilai IPS semester 1-4.
Algoritma Local Correlation Integral (LOCI) merupakan salah satu
algoritma yang memiliki kemampuan untuk mendeteksi outlier dalam sekumpulan
data. Mendeteksi outlier dilakukan untuk menemukan data yang tidak konsisten
dengan data lainnya. Data dianggap tidak konsisten (outlier) apabila data tersebut
tidak memiliki tingkat kemiripan dengan data lainnya (Han & Kamber, 2006).
Algoritma Local Correlation Integral (LOCI) dapat diimplementasikan pada
sekumpulan data numerik untuk mendeteksi adanya outlier dengan pendekatan
density-based.
Hasil dari penelitian ini adalah sebuah perangkat lunak yang dapat
digunakan untuk mendeteksi outlier. Pengujian terhadap sistem ini meliputi tiga
metode pengujian, yaitu pengujian Blackbox, pengujian efek perubahan nilai atribut
terhadap hasil deteksi outlier, dan pengujian reviewer dan validitas pengguna.
Hasil pengujian dari ketiga jenis data tersebut dapat disimpulkan bahwa
sistem pendeteksi outlier ini dapat menghasilkan output yang sesuai dengan yang
diharapkan oleh pengguna.
Kata kunci: Penambangan Data, Local Correlation Integral, deteksi outlier.
vi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRACT
Mining data is a process to discover a useful knowledge or information from
grand data. It is often said as part of the KDD (Knowledge Discovery in Databases)
process. (Santosa, 2007)
The outlier detection is one of the important researches in detecting the
abnormal behavior namely detecting the students who have good marks in the
university entrance test but after they join in the lecturing they get low marks.
This research uses the Local Correlation Integral algorithm in density-based
technique. The data is taken from the academic data of the students of Sanata
Dharma University, in Informatics Engineering Study Program, year 2007 and 2008
consisting the marks of the entrance test and the marks of Social Study semester 1
– 4.
The Local Correlation Integral Algorithm (LOCI) is one the algorithms that
has ability to detect outlier in a group of data. Detecting outlier is done to discover
the inconsistent data with the other data. Data is considered inconsistent (outlier) if
the data do not have the grade of similarity to the other data (Han & Kamber, 2006).
The Local Correlation Integral (LOCI) algorithm can be implemented in a group of
numeric data to detect the existence of the outlier with density-based approach.
The result of this research is a set of software which can be used to detect
outlier. The test of this system comprises 3 testing methods, namely The Blackbox
testing, the testing of the change of attribute value toward the result of outlier
detecting, and the testing of reviewer and the validity of the user.
The test results of the three types of data we can conclude that this outlier
detection system can generate output as expected by the user.
Keywords: data mining, Local Correlation Integral, outlier detection.
vii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma
Nama
: Felisitas Brillianti
Nomor Mahasiswa
: 105314013
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul:
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL CORRELATION INTEGRAL
(STUDI KASUS: DATA AKADEMIK MAHASISWA TEKNIK
INFORMATIKA UNIVERSITAS SANATA DHARMA)
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya
memberikan kepada Perpustakaan Sanata Dharma hak untuk menyimpan,
mengalihkan dalam bentuk media lain, mengelolanya di internet atau media lain
untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun
memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai
penulis.
Demikian pernyataan ini saya buat dengan sebenarnya
Dibuat di Yogyakarta
Pada tanggal: 14 Januari 2015
Yang menyatakan,
(Felisitas Brillianti)
viii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yesus Kristus, atas segala berkat dan karunia
sehingga penulis dapat menyelesaikan penelitian tugas akhir dengan judul “Deteksi
Outlier Menggunakan Algoritma Local Correlation Integral (Studi Kasus: Data
Akademik Mahasiswa Teknik Informatika Universitas Sanata Dharma)” dengan
baik. Tugas ini ditulis sebagai salah satu syarat memperoleh gelar sarjana komputer
program studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas
Sanata Dharma.
Penelitian ini tidak dapat berjalan dengan baik tanpa adanya dukungan,
semangat, motivasi dan bantuan dalam bentuk apapun yang telah diberikan oleh
banyak pihak. Untuk itu penulis mengucapkan terimakasih yang sebesar-besarnya
kepada:
1.
Tuhan Yesus Kristus, Bunda Maria, dan Santa Felisitas yang telah
memberikan anugerah sehingga penulis dapat menyelesaikan tugas akhir
ini.
2.
Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas
Sains dan Teknologi.
3.
Ibu Ridowati Gunawan, S.Kom., M.T. selaku Ketua Program Studi
Teknik Informatika dan dosen pembimbing yang telah dengan sabar
membimbing dan memberikan kesabaran, waktu, kebaikan, dan
motivasi.
4.
Bapak Albertus Agung Hadhiatma, M.T. dan Ibu Sri Hartati Wijono
S.Si., M.Kom. selaku dosen penguji atas kritik dan saran yang telah
diberikan.
5.
Ibu Agnes Maria Polina S.Kom., M.Sc. selaku Dosen Pembimbing
Akademik.
6.
Seluruh dosen yang mendidik dan memberikan ilmu pengetahuan
berharga selama penulis belajar di Universitas Sanata Dharma
Yogyakarta.
ix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7.
Pihak sekretariat dan laboran yang turut membantu penulis dalam
menyelesaikan tugas akhir ini.
8.
Kedua orang tua tercinta Drs. Gregorius Suwarto dan Bernardia
Kristiyanti. Terimakasih untuk setiap doa, kasih sayang, perhatian, dan
dukungan yang selalu diberikan kepada saya.
9.
Kedua saudara teryoi Stefanus Dandy dan Andreas Handyanta.
Terimakasih untuk dukungan yang selalu diberikan kepada saya.
10. Ari Auditianto S.T, Daniel Tomi Raharjo S.Kom, Agustinus Dwi Budi D
S.Kom dan Valentinus Fetha Eka Saputra. Super big thanks untuk segala
bantuan yang selalu diberikan kepada saya.
11. Kedua rekan kerja skripsi ini, Yustina Ayu Ruwidati dan Erlita
Octaviani. Terimakasih telah saling berbagi ilmu serta suka duka dari
awal hingga akhir penyelesaian skripsi ini.
12. Verena Pratita Adji, Fidelis Asterina Surya Prasetya, Ria Riska
Topurmera, Hevea Forestta Perangin Angin, Novia Hillary Panjaitan,
dan Ajeng Arsita Ambarwati. Terimakasih untuk persahabatan serta
dukungan kalian.
13. Benedictus Resta Viandri, Martinus Betty Praditya, Afra Raras Santika,
Rosalia Megasari, dan Christina Mega Citraningtyas terimakasih untuk
hura-huranya.
14. Lufy, Mintul†, dan Ucek terimakasih atas kebersamaannya saat suka
maupun duka.
15. Seluruh teman-teman kuliah Teknik Informatika 2010 (HMPS),
terimakasih untuk kebersamaan kita selama menjalani masa perkuliahan.
16. Pihak-pihak lain yang telah membantu penulis dalam menyelesaikan
tugas akhir ini, yang tidak dapat disebutkan satu per satu.
x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Penelitian tugas akhir ini masih memiliki banyak kekurangan. Untuk itu
penulis sangat membutuhkan kritik dan saran untuk perbaikan dimasa yang akan
datang. Semoga penelitian tugas akhir ini dapat membawa manfaat bagi semua
pihak.
Yogyakarta, 14 Januari 2015
Felisitas Brillianti
xi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR ISI
Halaman Judul
Halaman Judul (Bahasa Inggris) .............................................................
i
Halaman Persetujuan ...............................................................................
ii
Halaman Pengesahan ..............................................................................
iii
Halaman Persembahan ............................................................................
iv
Halaman Pernyataan................................................................................
v
Abstrak
................................................................................
vi
Abstract
................................................................................
vii
Halaman Persetujuan Publikasi Karya Ilmiah.........................................
viii
Kata Pengantar
................................................................................
ix
Daftar Isi
................................................................................
xii
BAB I
PENDAHULUAN ................................................................
1
1.1
Latar Belakang Masalah .......................................................
1
1.2
Rumusan Masalah ................................................................
2
1.3
Batasan Masalah ...................................................................
3
1.4
Tujuan Penelitian..................................................................
3
1.5
Manfaat Penelitian................................................................
3
1.6
Metodologi Penelitian ..........................................................
3
1.7
Sistematika Penulisan...........................................................
4
LANDASAN TEORI ...........................................................
6
Data Mining..........................................................................
6
2.1.1
Pengertian Data Mining .........................................
6
2.1.2
Fungsi Data Mining ...............................................
9
BAB II
2.1
2.2
Outlier Detection ..................................................................
10
2.2.1
Pengertian Outlier ..................................................
10
2.2.2
Jenis Pendekatan Outlier ........................................
11
2.2.2.1 Statistik Based ..........................................
11
2.2.2.2 Distance Based ........................................
11
2.2.2.3 Density Based ..........................................
12
xii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.2.2.4 Deviation Based .......................................
13
Algoritma Local Correlation Integral (LOCI) ....................
13
2.3.1
Multi-Granuality Deviation Factor (MDEF) .........
13
2.3.2
Metode Local Correlation Integral (LOCI)...........
16
2.4
Contoh Jalannya Algoritma ...................................
19
METODOLOGI PENELITIAN ...........................................
25
3.1
Data yang Dibutuhkan ..........................................................
25
3.2
Pengolahan Data .................................................................
25
3.2.1
Penggabungan Data (Data Integration) ..................
25
3.2.2
Seleksi Data (Data Selection) ................................
26
3.2.3
Transformasi Data (Data Transformation) .............
27
3.2.4
Penambangan Data (Data Mining) .........................
32
3.2.5
Evaluasi Pola (Pattern Evaluation) ........................
33
3.2.6
Presentasi Pengetahuan (Knowledge Presentation)
33
BAB IV
ANALISA DAN PERANCANGAN SISTEM ....................
35
4.1
Identifikasi Sistem ................................................................
35
4.1.1
Diagram Use Case .................................................
36
4.1.2
Narasi Use Case .....................................................
37
Perancangan Sistem Secara Umum ......................................
37
4.2.1
Input Sistem ...........................................................
37
4.2.2
Proses Sistem .........................................................
39
4.2.3
Output Sistem.........................................................
40
Perancangan Sistem..............................................................
40
4.3.1
Diagram Aktivitas ..................................................
40
4.3.2
Diagram Kelas Analisis .........................................
41
4.3.3
Diagram Sequence .................................................
43
4.3.4
Diagram Kelas Desain ...........................................
43
4.3.5
Rincian Algoritma Setiap Method Pada Tiap Kelas
44
2.3
BAB III
4.2
4.3
4.4
Perancangan Struktur Data ...................................................
65
4.4.1
Graf
.................................................................
65
4.4.2
Matriks Dua Dimensi .............................................
66
xiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5
Perancangan Antarmuka ......................................................
67
4.5.1
Tampilan Halaman Awal .......................................
67
4.5.2
Tampilan Halaman Utama .....................................
67
4.5.3
Tampilan Halaman Bantuan...................................
70
4.5.4
Tampilan Halaman Tentang ...................................
71
4.5.5
Tampilan Menu Keluar ..........................................
72
4.5.6
Tampilan Halaman Pilih File .................................
72
4.5.7
Tampilan Halaman Pilih Database .........................
73
4.5.8
Tampilan Halaman Pilih Tabel ..............................
74
IMPLEMENTASI SISTEM .................................................
75
Impelementasi Antarmuka ...................................................
75
5.1.1
Implementasi Halaman Awal .................................
75
5.1.2
Implementasi Halaman Utama ...............................
76
5.1.3
Implementasi Halaman Pilih Database ..................
80
5.1.4
Implementasi Halaman Tampil Tabel ....................
81
5.1.5
Implementasi Halaman Bantuan ............................
83
5.1.6
Implementasi Halaman Tentang ............................
83
5.1.7
Implementasi Halaman Konfirmasi Keluar ...........
84
5.1.8
Implementasi Pengecekan Masukan ......................
85
Implementasi Struktur Data .................................................
88
5.2.1
Implementasi Kelas Graph.java .............................
88
5.2.2
Implementasi Kelas Verteks.java ...........................
89
5.3
Implementasi Kelas ..............................................................
90
BAB VI
PENGUJIAN DAN ANALISA PENGUJIAN .....................
91
6.1
Rencana Pengujian ...............................................................
91
6.1.1
Hasil Pengujian Blackbox ......................................
93
6.1.1.1 Pengujian Input Data ...............................
93
6.1.1.2 Pengujian Koneksi Database ...................
94
6.1.1.3 Pengujian Halaman Pilih Tabel ...............
96
6.1.1.4 Pengujian Seleksi Atribut ........................
96
6.1.1.5 Pengujian Deteksi Outlier ........................
97
BAB V
5.1
5.2
xiv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.1.1.6 Pengujian Simpan Hasil Deteksi Outlier .
99
6.1.2
Kesimpulan Hasil Pengujian Blacbox ....................
100
6.1.3
Hasil Pengujian Efek Perubahan Nilai Atribut Penambangan
Data
.................................................................
100
6.1.3.1 Pengujian Dengan Data Mahasiswa Teknik
Informatika Angkatan 2007 dan 2008 Jalur Tes
Tertulis .....................................................
100
6.1.3.2 Pengujian Dengan Data Mahasiswa Teknik
Informatika Angkatan 2007 dan 2008 Jalur Prestasi
.................................................................
101
6.1.3.3 Pengujian Dengan Data Mahasiswa Teknik
Informatika Angkatan 2007 dan 2008 Jalur Tes
Tertulis dan Jalur Prestasi ........................
6.1.4
6.1.5
101
Kesimpulan Hasil Pengujian Efek Perubahan Nilai Atribut
Penambangan Data .................................................
102
Hasil Pengujian Review dan Validitas Pengguna ..
102
6.1.5.1 Perbandingan Perhitungan Manual dan Hasil Sistem
.................................................................
102
6.1.5.2 Kesimpulan Hasil Perbandingan Perhitungan
Manual dengan Perhitungan Sistem ........
104
6.1.5.3 Hasil Deteksi dari Sistem untuk Pengujian Review
dan Validitas oleh Pengguna....................
104
6.1.5.4 Kesimpulan Hasil Pengujian Review dan Validitas
oleh Pengguna ..........................................
107
Kelebihan dan Kekurangan Sistem ......................................
112
6.2.1
Kelebihan Sistem ...................................................
112
6.2.2
Kekurangan Sistem ................................................
112
BAB VIII KESIMPULAN DAN SARAN ............................................
113
6.2
7.1
Kesimpulan
.................................................................
113
7.2
Saran
.................................................................
113
.................................................................
114
DAFTAR PUSTAKA
xv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 1
Diagram Use Case .................................................
115
LAMPIRAN 2
Deskripsi Use Case ................................................
116
LAMPIRAN 3
Narasi Use Case .....................................................
118
LAMPIRAN 4
Diagram Proses Umum Sistem ..............................
126
LAMPIRAN 5
Diagram Aktivitas ..................................................
127
LAMPIRAN 6
Diagram Kelas Analisis .........................................
132
LAMPIRAN 7
Diagram Sequence..................................................
133
LAMPIRAN 8
Diagram Kelas Desain ...........................................
138
LAMPIRAN 9
Diagram Kelas........................................................
139
LAMPIRAN 10
Listing Program......................................................
152
LAMPIRAN 11
Outlier Plot .............................................................
230
LAMPIRAN 12
Data Nilai Mahasiswa Angkatan 2007 dan 2008 ...
236
xvi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR GAMBAR
Gambar 2.1
Proses KDD
Gambar 2.2
Dataset dengan Outlier ....................................................
10
Gambar 2.3
Definisi dari n dan nΜ‚ ........................................................
14
Gambar 3.1
Database “gudangdata” ...................................................
26
Gambar 3.2
Isi tabel “fact_lengkap” ...................................................
27
Gambar 4.1
Ilustrasi Struktur Data Graf .............................................
65
Gambar 4.2
Tampilan Halaman Utama ...............................................
67
Gambar 4.3
Tampilan Halaman Utama Tab Preprosesing ..................
68
Gambar 4.4
Tampilan Halaman Utama Tab Deteksi Outlier ..............
69
Gambar 4.5
Tampilan Halaman Bantuan ............................................
70
Gambar 4.6
Tampilan Halaman Tentang ............................................
71
Gambar 4.7
Tampilan Menu Keluar....................................................
72
Gambar 4.8
Tampilan Halaman Pilih File...........................................
72
Gambar 4.9
Tampilan Halaman Pilih Database ..................................
73
Gambar 4.10 Tampilan Halaman Pilih Tabel ........................................
74
Gambar 5.1
Antarmuka Halaman Awal ..............................................
76
Gambar 5.2
Kotak Dialog saat memilih File.......................................
77
Gambar 5.3
Antarmuka Halaman Utama (data file .xls tertampil) .....
78
Gambar 5.4
Kotak Seleksi Atribut ......................................................
78
Gambar 5.5
Proses Deteksi Outlier .....................................................
79
Gambar 5.6
Tampilan Hasil Outlier ....................................................
79
Gambar 5.7
Tampilan Save Dialog .....................................................
79
Gambar 5.8
Pesan Ketika Proses Penyimpanan Hasil Outlier Berhasil Dilakukan
Gambar 5.9
.................................................................
7
.........................................................................................
80
Antarmuka Halaman Pilih Database ...............................
80
Gambar 5.10 Antarmuka Halaman Pilih Database (Setelah Pengguna memilih
Database ..........................................................................
81
Gambar 5.11 Pesan Koneksi Berhasil ...................................................
81
Gambar 5.12 Antarmuka Halaman Tampil Tabel .................................
82
xvii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 5.13 Hasil Input Data dari Database ........................................
82
Gambar 5.14 Antarmuka Halaman Bantuan .........................................
83
Gambar 5.15 Antarmuka Halaman Tentang..........................................
84
Gambar 5.16 Antarmuka Halaman Konfirmasi Keluar.........................
84
Gambar 5.17 Error Handling (1) ...........................................................
85
Gambar 5.18 Error Handling (2) ...........................................................
85
Gambar 5.19 Error Handling (3) ...........................................................
86
Gambar 5.20 Error Handling (4) ...........................................................
86
Gambar 5.21 Error Handling (5) ...........................................................
86
Gambar 5.22 Error Handling (6) ...........................................................
87
Gambar 5.23 Error Handling (7) ...........................................................
87
Gambar 5.24 Error Handling (8) ...........................................................
87
Gambar 2.25 Error Handling (9) ...........................................................
88
Gambar 2.26 Error Handling (10) .........................................................
88
xviii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR TABEL
Tabel 2.1 Simbol dan Definisi..............................................................
15
Tabel 2.2 Data 13 Mahasiswa ..............................................................
19
Tabel 2.3 Jumlah r-neighbors dari pi ...................................................
20
Tabel 2.4 Jumlah r-neighbors dari pi.................................................
21
Tabel 3.1 Contoh atribut sebelum dinormalisasi ..................................
28
Tabel 3.2 Contoh atribut setelah dinormalisasi ....................................
29
Tabel 3.3 Contoh atribut sebelum dinormalisasi ..................................
31
Tabel 3.4 Contoh atribut setelah dinormalisasi ....................................
32
Tabel 4.1 Tabel Keterangan Diagram Analisis ....................................
41
Tabel 4.2 Ilustrasi Struktur Data Matriks Dua Dimensi .......................
66
Tabel 4.3 Ilustrasi Struktur Data Matriks Dia Dimensi Setelah Dilakukan
Perhitungan Jarak antar Vertex .............................................
66
Tabel 5.1 Tabel Implementasi Kelas ....................................................
90
Tabel 6.1 Tabel Rencana Pengujian .....................................................
92
Tabel 6.2 Tabel Pengujian Input Data ..................................................
93
Tabel 6.3 Tabel Pengujian Koneksi Database ......................................
94
Tabel 6.4 Tabel Pengujian Halaman Tampil Tabel ..............................
96
Tabel 6.5 Tabel Pengujian Seleksi Atribut...........................................
96
Tabel 6.6 Tabel Pengujian Deteksi Outlier ..........................................
97
Tabel 6.7 Tabel Pengujian Simpan Hasil Deteksi Outlier....................
99
Tabel 6.8 Tabel Jumlah Outlier Mahasiswa Teknik Informatika Angkatan 2007
dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai Radius yang
berubah-ubah dan Nilai Alpha = 0.5 ....................................
100
Tabel 6.9 Tabel Jumlah Outlier Mahasiswa Teknik Informatika Angkatan 2007
dan 2008 Jalur Prestasi Semester 1 dengan Nilai Radius yang berubahubah dan Nilai Alpha = 0.5 ..................................................
101
Tabel 6.10 Tabel Jumlah Outlier Mahasiswa Teknik Informatika Angkatan 2007
dan 2008 Jalur Tes Tertulis dan Prestasi Semester 1 dengan Nilai
Radius yang berubah-ubah dan Nilai Alpha = 0.5 ...............
xix
101
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 6.11 Tabel Data Set untuk Perbandingan Manual dan Sistem .....
103
Tabel 6.12 Tabel Perbandingan Hasil Deteksi Outlier Mahasiswa Angkatan 2007
Jalur Tes ...............................................................................
104
Tabel 6.13 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Tes Tertulis 105
Tabel 6.14 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Prestasi...
106
Tabel 6.15 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Test dan Prestasi
..............................................................................................
xx
106
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB I
PENDAHULUAN
1.1
Latar Belakang Masalah
Di era globalisasi pendidikan merupakan salah satu kebutuhan manusia
sehingga tidak dapat dipisahkan dari kehidupan sehari-hari. Penelitian dalam
bidang pendidikan menggunakan teknik penambangan data yang telah banyak
dilakukan saat ini. Penambangan data dalam bidang pendidikan berguna
untuk mengembangkan sebuah metode untuk menemukan keunikan dari
sebuah data yang berasal dari sistem pendidikan tersebut, dan menggunakan
metode tersebut untuk lebih memahami mahasiswa, sehingga dapat dibuat
sistem yang sesuai.
Deteksi outlier merupakan salah satu bidang penelitian yang penting
dalam mendeteksi perilaku yang tidak normal seperti deteksi nilai mahasiswa
yang nilai tes masuk universitasnya bagus tetapi pada saat kuliah mahasiswa
tersebut mendapat nilai yang rendah bahkan di keluarkan. Bermacam-macam
metode telah dikembangkan baik berdasarkan teknik seperti distance-based,
clustering-based, dan density-based.
Universitas merupakan sebuah lembaga yang dirancang untuk
pengajaran mahasiswa dibawah pengawasan dosen. Universitas Sanata
Dharma merupakan sebuah lembaga pendidikan yang memiliki banyak data.
Nilai akademik mahasiswa merupakan salah satu dari data yang di miliki
Universitas Sanata Dharma. Nilai tersebut meliputi nilai tes masuk (PMB) dan
nilai pada setiap semester. Untuk dapat menjadi mahasiswa Universitas
Sanata Dharma, seorang calon mahasiswa harus mengikuti tes masuk. Dengan
nilai tes masuk tersebut seseorang akan ditentukan apakah dapat menjadi
mahasiswa atau tidak.
Setiap semester IV akan dilakukan evaluasi sisip program. Mahasiswa
yang nilainya tidak mencapai batas tuntas akan di keluarkan (DO), tetapi jika
1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2
mahasiswa tersebut nilainya diatas batas tuntas maka mahasiswa tersebut
dipertahankan dan dapat melanjutkan ke semester V.
Dalam penambangan data teknik untuk mengenali outlier dikenal
dengan istilah Deteksi Outlier. Sebuah sumber data atau dataset pada
umumnya mempunyai nilai-nilai pada setiap obyek yang tidak terlalu berbeda
jauh dengan obyek lain. Akan tetapi terkadang pada data tersebut juga
ditemukan obyek-obyek yang mempunyai nilai atau sifat atau karakteristik
yang berbeda dibandingkan dengan obyek pada umumnya.
Deteksi oulier adalah suatu teknik untuk mencari obyek dimana obyek
tersebut mempunyai perilaku yang berbeda dibandingkan obyek-obyek pada
umumnya. Teknik data mining dapat digunakan untuk mendeteksi adanya
suatu outlier pada sebuah dataset. Teknik data mining yang digunakan adalah
Clustering-based, Distance-based dan Density-based.
Algoritma Local Correlation Integral (LOCI) merupakan salah satu
algoritma yang memiliki kemampuan untuk mendeteksi outlier dalam
sekumpulan data. Mendeteksi outlier dilakukan untuk menemukan data yang
tidak konsisten dengan data lainnya. Data dianggap tidak konsisten (outlier)
apabila data tersebut tidak memiliki tingkat kemiripan yang sesuai dengan
data lainnya (Han & Kamber, 2006). Algoritma Local Correlation Integral
(LOCI) dapat diimplementasikan pada sekumpulan data numerik untuk
mendeteksi adanya outlier dengan pendekatan density-based.
1.2
Rumusan Masalah
Berdasarkan latar belakang diatas, rumusan masalah dari penelitian ini
adalah
1. Bagaimana algoritma Local Correlation Integral (LOCI) dapat
mendeteksi outlier dari data nilai akademik mahasiswa?
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1.3
3
Batasan Masalah
Batasan masalah pada penelitian ini adalah:
1. Algoritma yang dipakai adalah algoritma Local Correlation Integral
(LOCI) dengan pendekatan density-based.
2. Data yang digunakan adalah data akademik mahasiswa Teknik
Informatika Universitas Sanata Dharma Yogyakarta tahun angkatan 20072008.
1.4
Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk menerapkan algoritma Local
Correlation Integral (LOCI) ke dalam sebuah sistem untuk mendeteksi
outlier dari data akademik mahasiswa Teknik Informatika Universitas Sanata
Dharma Yogyakarta.
1.5
Manfaat Penelitian
Manfaat dari penelitian ini adalah sebagai berikut:
1. Menambah wawasan tentang Algoritma Local Correlation Integral dalam
mendeteksi outlier.
2. Membantu pihak program studi dalam mendeteksi outlier pada data
akademik mahasiswa.
1.6
Metodologi Penelitian
Metodologi yang digunakan dalam penelitian ini adalah metode KDD
(Knowledge Discovery in Database).
1. Pembersihan Data (Data Cleaning).
Proses membersihkan data yang tidak konsisten atau yang mengganggu.
Proses Data Cleanning mencakup antara lain membuang duplikasi data,
memeriksa data yang tidak konsisten, dan memperbaiki kesalahan pada
data.
2. Penggabungan Data (Data Integration)
Proses menggabungkan data dari berbagai sumber.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4
3. Seleksi Data (Data Selection)
Proses menyeleksi data yang relevan. Data yang tidak sesuai akan
dihilangkan.
4. Transformasi Data (Data Transformation)
Data yang sudah di seleksi selanjutnya di transformasikan ke dalam
bentuk yang sesuai untuk ditambang.
5. Penambangan Data (Data Mining)
Proses mengekstrak informasi atau pengetahuan dari data dalam jumlah
yang besar. Dalam penelitian ini, metode yang digunakan adalah metode
analisis outlier dengan menggunakan pendekatan density based.
Algoritma yang digunakan adalah Local Correlation Integral (LOCI).
6. Evaluasi Pola (Pattern Evaluation)
Proses mengidentifikasi apakah pola atau informasi yang ditemykan
sesuai fakta atau hipotesa yang ada sebelumnya.
7. Presentasi Pengetahuan (Knowledge Presentation)
Proses merepresentasikan pola kepada pengguna ke dalam bentuk yang
mudah dimengerti.
1.7
Sistematika Penulisan
Dalam penyusunan proposal tugas akhir ini penulis membagi dalam
beberapa bab yaitu:
BAB I
PENDAHULUAN
Bab ini berisi tentang latar belakang secara umum, rumusan
masalah, batasan masalah, tujuan penelitian, manfaat penelitian,
metodologi penelitian, dan sistematika penelitian secara
keseluruhan.
BAB II
LANDASAN TEORI
Bab ini berisi tentang landasan teori dalam menyelesaikan
penelitian ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB III
5
METODOLOGI PENELITIAN
Bab ini berisi tentang metode yang digunakan untuk
menyelesaikan tugas akhir ini, yaitu menggunakan metode
Knowledge Discovery in Database (KDD).
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang identifikasi sistem, perancangan sistem
secara umum, perancangan sistem, perancangan struktur data,
dan perancangan antarmuka yang akan dibuat.
BAB V
IMPLEMENTASI SISTEM
Bab ini berisi tentang implementasi sistem deteksi outlier
menggunakan algoritma Local Correlation Integral yang terdiri
dari
implementasi
antarmuka,
implementasi
pengecekan
masukan, implementasi struktur data dan implementasi kelas
serta analisis dari masing-masing tampilan program.
BAB VI
PENGUJIAN DAN ANALISIS PENGUJIAN
Bab ini berisi tentang tahap pengembangan sistem pendeteksi
outlier menggunakan algorotma Local Correlation Integral yaitu
pengujian blackbox beserta kesimpulannya dan juga pengujian
review dan validitas pengguna beserta kesimpulannya.
BAB VII
KESIMPULAN DAN SARAN
Bab ini berisi tentang kesimpulan dan saran dari penulis tugas
akhir mengenai penelitian yang dilakukan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB II
LANDASAN TEORI
2.1
Data Mining
2.1.1 Pengertian Data Mining
Data mining adalah suatu istilah yang digunakan untuk
menemukan pengetahuan yang tersembunyi di dalam database. Data
mining merupakan proses semi otomatik yang menggunakan teknik
statistik, matematika, kecerdasan buatan, dan machine learning untuk
mengekstraksi dan mengidentifikasi informasi pengetahuan potensial
dan berguna yang bermanfaat yang tersimpan didalam database besar.
(Turban et al, 2005).
Teknik data mining digunakan untuk memeriksa basis data
berukuran besar sebagai cara untuk menemukan pola yang baru dan
berguna. Tidak semua pekerjaan pencarian informasi dinyatakan
sebagai data mining.
Beberapa pengertian data mining dari beberapa referensi:
1.
Data mining adalah mencocokkan data dalam suatu model untuk
menemukan informasi yang tersembunyi dalam basis data
(Dunham, 2002)
2.
Data mining merupakan proses menemukan pola-pola didalam
data, dimana proses penemuan tersebut dilakukan secaa otomatis
atau semi otomatis dan pola-pola yang ditemukan harus
bermanfaat (Fayyad, Piatetsky-Shapiro, & Smyth, 1996)
3.
Data mining atau Knowledge Discovery in Database (KDD)
adalah pengambilan informasi yang tersembunyi, dimana
informasi tersebut sebelumnya tidak dikenal dan berpotensi
bermafaat. Proses ini meliputi sejumlah pendekatan teknik yang
6
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7
berbeda, seperti clustering, data summarization, learning
clasification rules (Dunham, 2002)
Data mining adalah sebuah bagian yang sangat penting dalam
proses KDD (Knowledge Discovery in Database). Knowledge
Discovery in Databases (KDD) merupakan sekumpulan proses untuk
menentukan pengetahuan yang bermanfaat dari data.
Gambar 2.1 adalah proses KDD menurut Jiawei Han dan
Micheline Kamber:
Gambar 2.1 Proses KDD
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8
Proses KDD terdiri dari langkah-langkah dibawah ini:
1.
Pembersihan Data (Data Cleaning).
Proses membersihkan data yang tidak konsisten atau yang
mengganggu. Proses Data Cleanning mencakup antara lain
membuang duplikasi data, memeriksa data yang tidak konsisten,
dan memperbaiki kesalahan pada data.
2.
Penggabungan Data (Data Integration)
Proses menggabungkan data dari berbagai sumber.
3.
Seleksi Data (Data Selection).
Proses menyeleksi data yang relevan. Data yang tidak sesuai akan
dihilangkan.
4.
Transformasi Data (Data Transformation)
Data yang sudah di seleksi selanjutnya di transformasikan ke
dalam bentuk yang sesuai untuk ditambang.
5.
Penambangan Data (Data Mining)
Proses mengekstrak informasi atau pengetahuan dari data dalam
jumlah yang besar. Dalam penelitian ini, metode yang digunakan
adalah metode analisis outlier dengan menggunakan pendekatan
density based. Algoritma yang digunakan adalah Local
Correlation Integral (LOCI).
6.
Evaluasi Pola (Pattern Evaluation)
Proses mengidentifikasi apakah pola atau informasi yang
ditemukan sesuai fakta atau hipotesa yang ada sebelumnya.
7.
Presentasi Pengetahuan (Knowledge Presentation)
Proses merepresentasikan pola kepada pengguna ke dalam bentuk
yang mudah dimengerti.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9
2.1.2 Fungsi Data Mining
Berikut fungsionalitas dan tipe data pola yang dapat ditemukan
dengan data mining (Han & Kamber, 2006)
a. Deskripsi konsep: Karakterisasi dan diskriminasi.
Generalisasi, rangkuman, dan karaktiristik data kontras. Data
dapat diasosiasikan dengan suatu kelas atau konsep.
b.
Analis Asosiasi (korelasi dan hubungan sebab akibat)
Analisis asosiasi adalah pencarian aturan-aturan asosiasi yang
menunjukkan kondisi-kondisi nilai atribut yang sering terjadi
bersama-sama dalam sekumpulan data. Biasanya digunakan
untuk menganalisa data transaksi.
c.
Klasifikasi dan Prediksi
Klasifikasi adalah proses menemukan model (fungsi) yang
menjelaskan dan membedakan kelas-kelas atau konsep, dengan
tujuan agar model yang diperoleh dapat digunakan untuk
memprediksikan kelas atau objek yang memiliki label kelas tidak
diketahui. Model yang diturunkan didasarkan pada analisis dari
training data (yaitu objek data yang memiliki label kelas yang
diketahui).
d.
Analisis Cluster (analisis pengelompokan)
Tidak seperti klasifikasi dan prediksi, yang menganalisis objek
data yang diberi label kelas, clustering menganalisis objek data
dimana label kelas tidak diketahui. Clustering dapat digunakan
untuk menentukan label kelas yang tidak diketahui dengan cara
mengelompokkan data untuk membentuk kelas baru. Prinsip
dalam clustering adalah memaksimalkan kemiripan intra-class
dan meminimumkan kemiripan interclass.
e.
Analisis Outlier
Outlier merupakan objek data yang tidak mengikuti perilaku
umum dari data, outlier dapat dianggap sebagai noise atau
pengecualian. Analisis data outlier dinamakan outlier mining.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
Teknik ini berguna dalam fraud detection dan rare events
analysis.
f.
Analisis Trend dan Evolusi
Analisis evolusi data menjelaskan dan memodelkan trend dari
objek yang memiliki perilaku yang berubah setiap waktu. Teknik
ini dapat meliputi karakterisasi, diskriminasi, asosiasi, klasifikasi,
atau clustering dari data yang berkaitan dengan waktu.
2.2
Outlier Detection
2.2.1 Pengertian Outlier
Outlier adalah sehimpunan data yang dianggap memiliki sifat
yang berbeda dibandingkan dengan kebanyakan data lainnya. (Han &
Kamber, 2006) Analis outlier dikenal juga dengan analisis anomali atau
deteksi anomali (Atastina). Deteksi outlier adalah suatu teknik untuk
mencari obyek yang mempunyai perilaku yang berbeda dari obyekobyek lain. Teknik data mining dapat digunakan untuk mendeteksi
adanya suatu anomali pada sebuah dataset. Dataset dengan outlier
dipaparkan pada gambar 2.2
Gambar 2.2 Dataset dengan Outlier
Outlier biasanya dianggap sebagai objek atau data yang
jumlahnya sangat kecil jika dibandingkan dengan data normal lainnya,
misalnya probabilitas kemunculannya satu dari seribu data, tetapi bila
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11
menjadi seribu jika data sudah berjumlah satu juta. Dengan demikian,
deteksi outlier pada data yang menyimpang merupakan pekerjaan yang
penting untuk berbagai keperluan dalam data mining (Prasetyo).
Beberapa metode yang dapat digunakan untuk pendeteksian
outlier adalah Statistik Based, Distance Based, Density Based, dan
Deviation Based.
2.2.2 Jenis Pendekatan Outlier
2.2.2.1 Statistik Based
Cara yang paling sederhana adalah cara statistik. Perlu
dilakukan perhitungan rata-rata dan standar deviasi. Kemudian
berdasarkan nilai tersebut dibuat fungsi threshold berpotensi
untuk dinyatakan sebagai outlier.
Kelebihan dan kekurangan Statistik Based:
1. Jika pengetahuan data cukup (jenis distribusi data dan jenis
uji yang diperlukan), maka pendekatan statistik akan sangat
efektif).
2. Umumnya sulit menemukan fungsi distribusi dan jenis uji
yang tepat untuk data.
3. Kebanyakan uji hanya cocok untuk single atribut.
4. Sulit untuk menentukan fungsi distribusi dan uji yang tepat
untuk data berdimensi tinggi.
2.2.2.2 Distance Based
Sebuah metode pencarian outlier yang populer dengan
menghitung jarak pada obyek tetangga terdekat (nearest
neighbor). Dalam pendekatan ini, satu obyek melihat obyekobyek local neihgborhood yang didefinisikan dengan knearest neighbor. Jika ketertetanggan antar obyek relatif dekat
maka dikatakan obyek tersebut normal, akan tetapi jika
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12
ketertetanggan antar obyek relatif sangat jauh maka dikatakan
obyek tersebut tidak normal (Hendriyadi, 2009).
Kelebihan dan kekurangan Distance Based:
1. Pendekatannya cukup sederhana.
2. Basisdata yang besar akan memakan biaya yang besar.
3. Sangat tergantung pada nilai parameter yang dipilih.
4. Waktu proses mendeteksi outlier dan hasil deteksi kurang
akurat dibandingkan dengan metode Density-Based
(Hendriyadi, 2009)
2.2.2.3 Density Based
Metode
density-based
tidak
secara
eksplisit
mengklasifikasikan sebuah obyek adalah outlier atau bukan,
akan tetapi lebih kepada pemberian nilai kepada obyek sebagai
derajat kekuatan, obyek tersebut dapat dikategorikan sebagai
outlier. Ukuran derajat kekuatan ini adalah local outlier factor
(LOF). Pendekatan untuk pencarian outlier ini hanya
membutuhkan satu parameter yaitu MinPts, dimana MinPts
adalah jumlah tetangga terdekat yang digunakan untuk
mendefinisikan local neighborhood suatu obyek. MinPts
diasumsikan sebagai jangkauan dari nilai MinPtsLB dan
MinPtsUB. Nilai MinPtsLB dan MinPtsUB disarankan
bernilai 10 dan 20. Akhirnya semua obyek dalam dataset
dihitung nilai LOFnya (Hendriyadi, 2009).
Kelebihan dan kekurangan Density Based:
1. Dapat digunakan untuk data yang kepadatannya berbeda.
2. Namun pemilihan parameter juga menjadi satu penentuan
yang kuat dalam menentukan nilai kepadatan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13
3. Tanpa LOF objek yang berada pada cluster yang berbeda
dapat dianggap outlier juga.
2.2.2.4 Deviation Based
Metode deviation based tidak menggunakan pengujian
statistik ataupun perbandingan jarak untuk mengidentifikasi
sebuah outlier. Sebaliknya metode ini mengidentifikasi sebuah
outlier dengan memeriksa karakteristik utama dari obyek
dalam sebuah kumpulan. Obyek yang memiliki karakteristik
diluar karakteristik utama maka akan dianggap sebagai oulier
(Han & Kamber, 2006).
2.3
Algoritma Local Correlation Integral (LOCI)
2.3.1 Multi-Granularity Deviation Factor (MDEF)
Multi-granuality deviation factor (MDEF), adalah ukuran untuk
mengukur outlier-ness suatu objek pada lingkungannya (neighborhood)
(Peter Cabens, 1998). Sedangkan 𝑀𝐷𝐸𝐹 adalah normalisasi standar
deviasi dari MDEF.
Untuk setiap objek pi, r dan  mendefinisikan Multi-granulality
deviation factor (MDEF) pada radius r sebagai berikut:
𝑀𝐷𝐸𝐹(𝑝𝑖, π‘Ÿ, π‘Ž) =
𝑛̂(𝑝𝑖 , π‘Ÿ, ) − 𝑛(𝑝𝑖 , ο‘π‘Ÿ)
𝑛(𝑝𝑖 , ο‘π‘Ÿ)
=1−
𝑛̂(𝑝𝑖 , π‘Ÿ, )
𝑛̂(𝑝𝑖 , , π‘Ÿ)
r-neighborhood untuk object pi selalu mengandung pi. Ini berarti
𝑛̂(𝑝𝑖 , π‘Ÿ, ) > 0 sehingga kuantitas diatas selalu di definisikan. Untuk
perhitungan
lebih
cepat
dari
MDEF,
kadang-kadang
harus
memperkirakan 𝑛(𝑝𝑖 , ο‘π‘Ÿ) dan 𝑛̂(𝑝𝑖 , π‘Ÿ, ).
r-neighborhood adalah neighborhood pada radius r, dimana
masing-masing 𝑛(𝑝, ο‘π‘Ÿ) diperkirakan. Sampling neighborhood (atau r-
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
14
neighborhood) adalah neighborhood radius r, dimana mengumpulkan
sample 𝑛(𝑝, ο‘π‘Ÿ) untuk memperkirakan 𝑛̂(𝑝𝑖 , π‘Ÿ, ).
Ide pokok deteksi outlier bergantung pada standar deviasi dari
jumlah r-neighborhood atas neighborhood dari pi.
𝑀𝐷𝐸𝐹 (𝑝𝑖 , π‘Ÿ, 𝛼) =
𝑛̂ (𝑝𝑖 , π‘Ÿ, )
𝑛(𝑝𝑖 , π‘Ÿ, )
Gambar 2.3 Definisi dari n dan nΜ‚
Definisi dari n dan nΜ‚ dipaparkan pada gambar 2.3. Ilustrasi untuk
definisi dari n dan nΜ‚ misalnya 𝑛(𝑝𝑖 , π‘Ÿ) = 4, 𝑛(𝑝𝑖 , ο‘π‘Ÿ) = 1, 𝑛(𝑝1 , ο‘π‘Ÿ) =
6, dan 𝑛̂(𝑝𝑖 , π‘Ÿ, ) =
(1+6+5+1)
4
= 3.25
Dimana:
1. 𝑛(𝑝𝑖 , π‘Ÿ) merupakan jumlah r-neighbors dari pi.
2. 𝑛(𝑝𝑖 , ο‘π‘Ÿ) merupakan jumlah r-neighbors dari pi.
3. 𝑛̂(𝑝𝑖 , π‘Ÿ, ) merupakan rata-rata dari 𝑛(𝑝, ο‘π‘Ÿ) pada r-neighbors dari
pi (Spiros Papadimitriou, 2003).
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15
Setiap objek dapat dikatakan sebagai outlier dengan berdasarkan
formula berikut:
𝑀𝐷𝐸𝐹(𝑝𝑖 , π‘Ÿ, ) > π‘˜ο³ 𝑀𝐷𝐸𝐹 (𝑝𝑖 , π‘Ÿ, 𝛼)
Tabel 2.1 merupakan tabel yang berisi simbol yang digunakan algoritma
Local Correlation Integral untuk mendeteksi outlier.
Tabel 2.1 Simbol dan Definisi
Simbol

Definisi
Kumpulan Objek P = {p1,….,pi…..pN}.
𝑝𝑖
N
Jumlah data (|P| ο‚Ί N).
𝑑(𝑝𝑖 , 𝑝𝑗 )
Jarak antara pi dan pj.
𝑛(𝑝𝑖 , π‘Ÿ)
Jumlah r-neighbors dari pi.
𝑛(𝑝𝑖 , ο‘π‘Ÿ)
Jumlah r-neighbors dari pi.
nΜ‚(𝑝𝑖 , π‘Ÿ,)
Rata-rata dari 𝑛(𝑝, ο‘π‘Ÿ) pada r-neighbors dari pi,
nΜ‚(𝑝𝑖 , π‘Ÿ,) ο‚Ί
nΜ‚ (𝑝𝑖 , π‘Ÿ,)
∑π‘οƒŽπ‘(𝑝𝑖 ,π‘Ÿ) 𝑛(𝑝, ο‘π‘Ÿ)
𝑛(𝑝𝑖 , π‘Ÿ)
Standar deviasi dari 𝑛(𝑝, ο‘π‘Ÿ) pada r-neighbors.
∑π‘οƒŽπ‘(𝑝𝑖 ,π‘Ÿ)(𝑛(𝑝, ο‘π‘Ÿ) − nΜ‚(𝑝𝑖 , π‘Ÿ, ))2
𝑛(𝑝𝑖 , π‘Ÿ)
nΜ‚ (𝑝𝑖 , π‘Ÿ,) ο‚Ί √
𝑀𝐷𝐸𝐹(𝑝𝑖 , π‘Ÿ, )
Multi-granuality deviation factor untuk pi pada radius r.
𝑀𝐷𝐸𝐹 (𝑝𝑖 , π‘Ÿ, 𝛼)
Standar deviasi multi-granuality deviation factor.
π‘˜ο³
𝑀𝐷𝐸𝐹(𝑝𝑖 , π‘Ÿ, ) > π‘˜ο³ 𝑀𝐷𝐸𝐹 (𝑝𝑖 , π‘Ÿ, 𝛼)
π‘˜ο³ = 3
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
16
2.3.2 Metode Local Correlation Integral (LOCI)
Penelitian ini menggunakan algoritma Local Correlation Integral
(LOCI), ide utama dari LOCI adalah menandai objek sebagai outlier
jika di kepadatan lokal (local density) antara neighboors cukup besar.
Untuk mendeteksi bahwa relative deviasi dari average local
neighborhood density diperoleh. Penyimpangan ini disebut multigranularity-deviation factor (MDEF). Algoritma LOCI dalam
mendeteksi outlier menghitung nilai MDEF dan nilai MDEF untuk
semua objek. Kemudian LOCI akan menandai suatu objek sebagai
outlier jika nilai nilai MDEF lebih besar tiga kali lipat dari nilai MDEF
untuk radius yang sama (Peter Cabens, 1998). Algoritma ini diusulkan
dalam (Spiros Papadimitriou, 2003). Algoritma LOCI tidak mempunyai
parameter penting seperti k.
Objek yang dinyatakan sebagai outlier adalah objek yang
memiliki nilai MDEF mendekati 1. Tujuannya adalah untuk ditandai
sebagai outlier jika rasio diantara MDEF dan MDEF melebihi
konstanta yang diusulkan menjadi 3 (Amer, 2011)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
17
Langkah –langkah untuk menemukan outlier dideskripsikan sebagai
berikut:
1.
Menentukan jarak antar objek.
Untuk menentukan jarak antar objek menggunakan rumus
euclidean distance.
𝑛̂
√∑(π‘‹π‘Ž − 𝑋𝑏 )2
π‘Ž=1
2.
Menghitung jumlah r-neighbors dari pi.
Jumlah tetangga yang jaraknya kurang dari sama dengan r.
3.
Menghitung jumlah r-neighbors dari pi.
Jumlah tetangga yang jaraknya kurang dari sama dengan r.
4.
Menghitung rata-rata dari n(p, r) pada r-neighbors dari pi.
nΜ‚(𝑝𝑖 , π‘Ÿ,) ο‚Ί
5.
∑π‘οƒŽπ‘(𝑝𝑖 ,π‘Ÿ) 𝑛(𝑝, ο‘π‘Ÿ)
𝑛(𝑝𝑖 , π‘Ÿ)
Menghitung standar deviasi dari n(p, r) pada r-neighbors.
∑π‘οƒŽπ‘(𝑝𝑖 ,π‘Ÿ)(𝑛(𝑝, ο‘π‘Ÿ) − nΜ‚(𝑝𝑖 , π‘Ÿ, ))2
𝑛(𝑝𝑖 , π‘Ÿ)
nΜ‚ (𝑝𝑖 , π‘Ÿ,) ο‚Ί √
6.
Menghitung Multy-granuality deviation factor untuk pi pada
radius r.
𝑀𝐷𝐸𝐹(𝑝𝑖, π‘Ÿ, π‘Ž) =
7.
𝑛̂(𝑝𝑖 , π‘Ÿ, ) − 𝑛(𝑝𝑖 , ο‘π‘Ÿ)
𝑛(𝑝𝑖 , ο‘π‘Ÿ)
=1−
𝑛̂(𝑝𝑖 , π‘Ÿ, )
𝑛̂(𝑝𝑖 , , π‘Ÿ)
Menghitung standar deviasi Multy-granuality deviation factor.
𝑀𝐷𝐸𝐹 (𝑝𝑖 , π‘Ÿ, 𝛼) =
𝑛̂ (𝑝𝑖 , π‘Ÿ, )
𝑛(𝑝𝑖 , π‘Ÿ, )
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8.
18
Menghitung LOCI.
𝑀𝐷𝐸𝐹(𝑝𝑖 , π‘Ÿ, ) > π‘˜ο³ 𝑀𝐷𝐸𝐹 (𝑝𝑖 , π‘Ÿ, 𝛼)
Outlier memiliki nilai MDEF mendekati 1. Tujuannya adalah
sebagai outlier jika rasio antara MDEF dan MDEF melebihi konstanta
yang diusulkan dalam publikasi asli menjadi 3. Berikut adalah
implementasi dari algoritma Local Correlation Integral:
// Pre-processing
Foreach pi οƒŽ 
Perform a range-search
For Ni = {p οƒŽ  | d(pi, p) ≤ rmax}
From Ni, construct a sorted list Di
Of the critical and -critical distances of pi
// Post-processing
Foreach pi οƒŽ :
For each radius r οƒŽ Di (ascending):
Update n(pi, r) and nΜ‚(pi, r, )
From n and nΜ‚, compute
MDEF(pi, r, α) and MDEF(pi, r, α)
If MDEF(pi, r, α) > 3MDEF(pi, r, α)
flag pi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.4
19
Contoh Jalannya Algoritma
Misalnya sebuah database memiliki sebuah objek dan dilambangkan
sebagai P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, dan P13. Dari objek
tersebut memiliki atribut nilai ips1, nil11, nil12, nil13, nil14, dan nil15. Tabel
2.2 merupakan tabel yang berisi data nilai dari 13 mahasiswa.
Tabel 2.2 Data 13 Mahasiswa
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
IPS 1
2.94
1.72
2.56
2.44
2.94
1.89
4.00
1.44
3.72
1.72
3.28
2.89
2.89
NIL11 NIL12
2.80
2.00
1.20
0.80
2.40
1.60
2.00
2.00
2.40
1.60
2.40
2.00
2.40
2.40
4.00
2.00
3.20
2.40
2.80
2.40
2.80
2.40
2.40
2.00
2.00
2.00
NIL13
2.00
3.20
2.00
2.40
2.40
2.40
1.60
3.60
2.40
3.20
2.80
2.00
3.20
NIL14
2.00
1.20
2.80
2.00
1.20
2.40
1.60
2.40
2.80
3.20
2.40
2.80
2.00
NIL15
1.60
0.40
2.00
2.00
2.80
2.80
2.80
2.80
2.00
0.80
2.40
2.00
2.80
1. Menghitung jumlah r-neighbors dari pi.
Maka untuk contoh diatas langkah untuk menghitung jumlah r-neighbors
dari obyek P2 adalah sebagai berikut. Diasumsikan nilai r = 6. Kemudian
tandai yang jaraknya kurang dari sama dengan r.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
20
Tabel 2.3 merupakan tabel yang berisi tentang jumlah r-neighbors dari
ke-13 obyek.
Tabel 2.3 Jumlah r-neighbors dari pi
Object
r-neighbors
n(pi,r)
P1
P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13
13
P2
P2,P1,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13
13
P3
P3,P1,P2,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13
13
P4
P4,P1,P2,P3,P5,P6,P7,P8,P9,P10,P11,P12,P13
13
P5
P5,P1,P2,P3,P4,P6,P7,P8,P9,P10,P11,P12,P13
13
P6
P6,P1,P2,P3,P4,P5,P7,P8,P9,P10,P11,P12,P13
13
P7
P7,P1,P2,P3,P4,P5,P6,P8,P9,P10,P11,P12,P13
13
P8
P8,P1,P2,P3,P4,P5,P6,P7,P9,P10,P11,P12,P13
13
P9
P9,P1,P2,P3,P4,P5,P6,P7,P8,P10,P11,P12,P13
13
P10
P10,P1,P2,P3,P4,P5,P6,P7,P8,P9,P11,P12,P13
13
P11
P11,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P12,P13
13
P12
P12,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P13
13
P13
P13,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12
13
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
21
2. Menghitung jumlah r-neighbors dari pi.
Selanjutnya mencari r-neighbors dari objek P2 adalah sebagai berikut:
a. Nilai  = 0.5.
b. Nilai r = 3.
c. Maka 𝑛(𝑝, ο‘π‘Ÿ) atau jumlah ar-neighbors dari objek pi.
Tabel 2.4 merupakan tabel yang berisi tentang jumlah r-neighbors
dari ke-13 obyek.
Tabel 2.4 Jumlah r-neighbors dari pi.
r-neighbors
Object
n(p,r)
P1
P1,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13
12
P2
P2,P4
2
P3
P3,P1,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13
12
P4
P4,P1,P2,P3,P5,P6,P7,P8,P9,P10,P11,P12,P13
13
P5
P5,P1,P3,P4,P6,P7,P8,P9,P11,P12,P13
11
P6
P6,P1,P3,P4,P5,P7,P8,P9,P10,P11,P12,P13
12
P7
P7,P1,P3,P4,P5,P6,P9,P11,P12,P13
10
P8
P8,P1,P3,P4,P5,P6,P9,P10,P11,P12,P13
11
P9
P9,P1,P3,P4,P5,P6,P7,P8,P10,P11,P12,P13
12
P10
P10,P1,P3,P4,P6,P8,P9,P11,P12,P13
10
P11
P11,P1,P3,P4,P5,P6,P7,P8,P9,P10,P12,P13
12
P12
P12,P1,P3,P4,P5,P6,P7,P8,P9,P10,P11,P13
12
P13
P13,P4,P5,P6,P11
12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
22
3. Menghitung rata-rata dari n(p,r) pada r-neighbors dari pi.
Selanjutnya adalah menghitung rata-rata dari 𝑛(𝑝, ο‘π‘Ÿ) pada keseluruhan
objek p pada r-neighborhood dari p.
4. Menghitung standar deviasi dari n(p,r) pada r-neighbors.
Setelah menghitung rata-rata 𝑛(𝑝, ο‘π‘Ÿ) langkah selanjutnya adalah
menghitung standar deviasi 𝑛(𝑝, ο‘π‘Ÿ) pada r-neighbors.
5. Menghitung nilai MDEF untuk pi pada radius r.
MDEF dari sebuah objek dimana kepadatan lingkungannya cocok
dengan rata rata local neighbourhood density akan bernilai 0.
Kebalikannya MDEF dari outlier akan bernilai jauh dari 0
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
23
6. Menghitung standar deviasi MDEF.
Dimana 𝑀𝐷𝐸𝐹 (𝑝𝑖 , π‘Ÿ, 𝛼) =
𝑛̂ (𝑝𝑖 ,π‘Ÿ,)
,
𝑛̂(𝑝𝑖 ,π‘Ÿ,)
yaitu normalisasi deviasi
𝑛̂ (𝑝𝑖 , π‘Ÿ, ) dari 𝑛(𝑝𝑖 , ο‘π‘Ÿ) untuk π‘οƒŽπ‘(𝑝𝑖, π‘Ÿ).
7. Menghitung kMDEF.
Pada tahap selanjutnya adalah membuktikan apakah objek tersebut
merupakan outlier atau bukan, dengan cara nilai MDEF dikalikan dengan
nilai π‘˜ο³ , diasumsikan nilai π‘˜ο³ = 3.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
24
8. Local Correlation Integral
Jika nilai 𝑀𝐷𝐸𝐹 > π‘˜ο³ 𝑀𝐷𝐸𝐹 maka objek tersebut merupakan outlier,
jika 𝑀𝐷𝐸𝐹 < π‘˜ο³ 𝑀𝐷𝐸𝐹 maka objek tersebut bukan termasuk outlier.
Dari perhitungan di atas, objek P2 memiliki nilai 𝑀𝐷𝐸𝐹 > π‘˜ο³ 𝑀𝐷𝐸𝐹 .
Maka dapat disimpulkan bahwa objek P2 termasuk outlier.
Yang menjadi outlier di Semester 1 adalah mahasiswa ke 2, pada Semester 2
yang menjadi outlier adalah mahasiswa ke 2, pada Semester 3 yang menjadi outlier
adalah mahasiswa ke 2, dan pada Semester 4 yang menjadi outlier adalah
mahasiswa ke 2.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB III
METODOLOGI PENELITIAN
Pada bab ini berisi mengenai metode penambangan data yang digunakan yaitu
metode Knowledge Discovery in Database (KDD) yang dikemukakan oleh Jiawei
Han dan Kamber.
3.1
Data yang Dibutuhkan
Pada penelitian ini data yang digunakan adalah data akademik
mahasiswa yang meliputi nilai indeks prestasi semester dari semester satu
sampai semester empat dan nilai tes masuk mahasiswa program studi Teknik
Informatika fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta tahun angkatan 2007 dan 2008. Data tersebut diperoleh dari
Gudang Data akademik mahasiwa Universitas Sanata Dharma hasil penelitian
Rosa, dkk (2011). Data ini berupa script query yang berisi gudang data
dengan format .sql kemudian data tersebut diolah.
Data yang digunakan dalam penelitian ini adalah data nilai hasil tes
masuk mahasiswa melalui jalur tes tertulis dan jalur prestasi. Dan juga data
nilai indeks prestasi mahasiswa dari semester satu sampai dengan semester
empat.
3.2
Pengolahan Data
Berikut adalah tahapan yang dilakukan dalam pengolahan data:
3.2.1 Penggabungan Data (Data Integration)
Pada tahap ini mengekstrak skrip .sql tersebut di dalam
SQLyog. Setelah skrip tersebut di eksrak akan menghasilkan sebuah
database bernama “gudangdata” yang terdiri dari dim_angkatan, dim,
dim_daftarsmu,
dim_fakultas,
dim_jeniskel,
dim_kabupaten,
dim_prodi, dim_prodifaks, dim_statuses, dan fact_lengkap2. Gambar
3.2 merupakan isi database “gudangdata”.
25
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
26
Gambar 3.1 Database “gudangdata”
3.2.2
Seleksi Data (Data Selection)
Pada tahap ini merupakan proses menyeleksi data yang relevan.
Data yang tidak sesuai akan dihilangkan. Data dipilih dan diseleksi
yang sesuai untuk dilakukan perhitungan, dimana data yang tidak
relevan akan dibuang dari penelitian. Data yang digunakan terdapat
pada tabel ‘fact_lengkap2’ karena dalam tabel tersebut terdapat nilai
hasil seleksi tes masuk mahasiswa dan terdapat nilai indeks prestasi
mahasiswa dari semester satu sampai dengan semester 4. Data yang
dipakai adalah kolom ips1, ips2, ips3, ips3, ips4, nil11, nil12, nil13,
nil14, nil15, dan final.
Kemudian menyeleksi kembali baris tersebut untuk mengambil
data baris dengan sk_prodi = 27. Baris dengan sk_prodi = 27
merupakan data mahasiswa Teknik Informatika. Gambar 3.2
merupakan isi dari tabel “fact_lengkap”.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
27
Gambar 3.2 Isi tabel “fact_lengkap”.
3.2.3
Transformasi Data (Data Transformation)
Tahap ini merupakan tahap untuk mentransformasikan data ke
dalam bentuk yang sesuai untuk ditambang. Pada tahap ini, data yang
akan di transformasi adalah atribut ips1, ips2, ips3, dan ips4 yang
memiliki range nilai antara 0 sampai dengan 4.00. Untuk atribut nil11,
nil12, nil13, nil14, dan nil15 memiliki range nilai antara 0 sampai
dengan 10. Sedangkan nilai final memiliki range nilai antara 0 sampai
dengan 100.
Data mentah perlu dilakukan proses transfiormasi untuk
meningkatkan performanya. Salah satu cara transformasi yang
digunakan adalah dengan cara melakukan normalisasi.
Untuk melakukan transformasi menggunakan rumus min-max
normalization:
𝑣′ =
𝑣 − π‘šπ‘–π‘›π΄
(new_π‘šπ‘Žπ‘₯𝐴 − 𝑛𝑒𝑀_π‘šπ‘–π‘›π΄ ) + 𝑛𝑒𝑀_π‘šπ‘–π‘›π΄
π‘šπ‘Žπ‘₯𝐴 − π‘šπ‘–π‘›π΄
Dimana 𝑣 ′ adalah nilai yang sudah dinormalisasi, v adalah nilai
lama yang belom di normalisasi, minA adalah nilai minimum dari
atribut a, maxA adalah nilai maksimum dari atribut a, newminA nilai
minimum baru dari atribut a, dan newmaxA adalah nilai maksimum
baru dari atribut a.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1.
28
Normalisasi atribut nil11, nil12, nil13, nil14, dan nil15
Pada tahap ini dilakukan normalisasi untuk menyamakan
jangkauan nilai terhadap atribut ips1, ips2, ips3, dan ips4.
Misalnya nil11 akan dinormalisasi, nil11 adalah 8.00,
kemudian dilakukan proses normalisasi. Tabel 3.1 merupakan
tabel yang berisi data atribut nill11, nil12, nil13, nil14, dan nil15
yang belum di normalisasi.
Dimana:

minA = 0

maxA = 10

new_minA = 0

new_maxA = 4

v = 8.00
𝑣′ =
(8 − 0)
(4 − 0) + 0 = 0,8 ∗ 4 + 0 = 3,20
(10 − 0)
Tabel 3.1 Contoh atribut nil11, nil12, nil13, nil14, dan nil15
sebelum di normalisasi
No
Ips1
Nil11
Nil12
Nil13
Nil14
Nil15
1
3.72
8.00
6.00
6.00
7.00
5.00
2
2.89
6.00
5.00
5.00
7.00
5.00
3
2.56
6.00
4.00
5.00
7.00
5.00
4
3.28
7.00
6.00
7.00
6.00
6.00
5
1.89
6.00
5.00
6.00
6.00
7.00
6
1.44
10.00
5.00
9.00
6.00
7.00
7
4.00
6.00
6.00
4.00
4.00
7.00
8
1.72
3.00
2.00
8.00
3.00
1.00
9
2.89
5.00
5.00
8.00
5.00
7.00
10
2.94
7.00
5.00
5.00
5.00
4.00
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
29
11
2.94
6.00
4.00
6.00
3.00
7.00
12
2.44
5.00
5.00
6.00
5.00
5.00
13
1.72
7.00
6.00
8.00
8.00
2.00
Nilai lama yang belum dinormalisasi yaitu 8.00 dikurangi
nilai minimum dari atribut a, dimana nil11 mempunyai jarak
antara 0-10. Nilai maksimum dari atribut a yaitu 10 dikurangi
nilai minimum dari atribut a yaitu 0. Kemudian hasil dari
pengurangan nilai yang belum dinormalisasi dengan nilai
minimum dari atribut a akan dibagi dengan hasil pengurangan
nilai maksimum dari atribut a dan nilai minimum dari atribut a.
Langkah selanjutnya adalah nilai maksimum baru dari atribut a
dikurangi dengan nilai minimum baru dari atribut a.
Kemudian hasil pembagian nilai yang belum dinormalisasi
dengan nilai minimum dari atribut a akan dibagi dengan hasil nilai
maksimum dari atribut a dan nilai minimum dari atribut a akan
dikalikan dengan hasil pengurangan nilai maksimum baru dari
atribut a dengan nilai minimum baru dari atribut a. Dari hasil
perkalian tersebut kan dikurangi dengan nilai minimum baru dari
atribut a. Maka hasil penjumlahan tersebut akan menghasilkan
nilai yang sudah dinormalisasi. Tabel 3.2 merupakan tabel yang
berisi data atribut nill11, nil12, nil13, nil14, dan nil15 setelah di
normalisasi.
Tabel 3.2 Contoh atribut nil11, nil12, nil13, nil14, dan nil15
setelah di normalisasi
No
Ips1
Nil11
Nil12
Nil13
Nil14
Nil15
1
3.72
3.20
2.40
2.40
2.80
2.00
2
2.89
2.40
2.00
2.00
2.80
2.00
3
2.56
2.40
1.60
2.00
2.80
2.00
4
3.28
2.80
2.40
2.80
2.40
2.40
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
5
1.89
2.40
2.00
2.40
2.40
2.80
6
1.44
4.00
2.00
3.60
2.40
2.80
7
4.00
2.40
2.40
1.60
1.60
2.80
8
1.72
1.20
0.80
3.20
1.20
0.40
9
2.89
2.00
2.00
3.20
2.00
2.80
10
2.94
2.80
2.00
2.00
2.00
1.60
11
2.94
2.40
1.60
2.40
1.20
2.80
12
2.44
2.00
2.00
2.40
2.00
2.00
13
1.72
2.80
2.40
3.20
3.20
0.80
30
Normalisasi nilai atribut final
Pada tahap ini dilakukan normalisasi untuk atribut final.
Misalnya nilai final akan dinormalisasi, nilai final adalah 67.80,
kemudian dilakukan proses normalisasi. Tabel 3.3 merupakan
tabel yang berisi data atribut nill11, nil12, nil13, nil14, dan nil15
yang belum di normalisasi.
Dimana:

minA = 0

maxA = 100

new_minA = 0

new_maxA = 4

v = 67.80
𝑣′ =
(67.80−0)
(100−0)
(4 − 0) + 0 = 0,678 ∗ 4 + 0 = 2,712
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
31
Tabel 3.3 Contoh atribut nil11, nil12, nil13, nil14, dan nil15
sebelum di normalisasi
No
Ips1
Ips2
Ips3
Ips4
Final
1
2.06
2.32
2.91
3.00
67.80
2
2.72
2.50
2.96
2.38
67.75
3
3.33
3.48
3.78
3.48
69.41
4
2.39
3.00
2.43
2.82
71.60
5
2.11
2.71
2.43
2.45
73.75
6
3.00
2.96
2.61
3.29
67.57
7
3.72
3.56
3.43
3.67
78.67
8
3.44
3.04
2.88
3.48
71.33
9
2.17
2.70
3.09
3.63
72.00
10
3.89
3.75
3.00
3.62
77.00
11
2.89
3.68
2.88
3.76
72.99
12
3.11
3.08
2.78
3.48
68.17
13
2.00
2.00
2.29
3.00
77.10
Nilai lama yang belum dinormalisasi yaitu 67,80 dikurangi
nilai minimum dari atribut a, dimana nilai final mempunyai jarak
antara 0-100. Nilai maksimum dari atribut a yaitu 100 dikurangi
dengan nilai minimum dari atribut a yaitu 0. Kemudian hasil dari
pengurangan nilai yang belum dinormalisasi dengan nilai
minimum dari atribut a akan dibagi dengan hasil pengurangan
nilai maksimum dari atribut a dan nilai minimum dari atribut a.
Langkah selanjutnya adalah nilai maksimum baru dari atribut a di
kurangi dengan nilai minimum baru dari atribut a.
Kemudian hasil pembagian nilai yang belum dinormalisasi
dengan nilai minimum dari atribut a akan dibagi dengan hasil nilai
maksimum dari atribut a dan nilai minimum dari atribut a akan
dikalikan dengan hasil pengurangan nilai maksimum baru dari
atribut a dengan nilai minimum baru dari atribut a. Dari hasil
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
32
perkalian tersebut akan dikurangi dengan nilai minimum baru
dari atribut a. Maka hasil penjumlahan tersebut akan
menghasilkan nilai yang sudah dinormalisasi. Tabel 3.4
merupakan tabel yang berisi data atribut nill11, nil12, nil13,
nil14, dan nil15 yang belum di normalisasi.
Tabel 3.4 Contoh atribut nil11, nil12, nil13, nil14, dan nil15
setelah di normalisasi
No
Ips1
Ips2
Ips3
Ips4
Final
Normalisasi
1
2.06
2.32
2.91
3.00
2.712
2
2.72
2.50
2.96
2.38
2.710
3
3.33
3.48
3.78
3.48
2.776
4
2.39
3.00
2.43
2.82
2.864
5
2.11
2.71
2.43
2.45
2.950
6
3.00
2.96
2.61
3.29
2.703
7
3.72
3.56
3.43
3.67
3.147
8
3.44
3.04
2.88
3.48
2.853
9
2.17
2.70
3.09
3.63
2.880
10
3.89
3.75
3.00
3.62
3.080
11
2.89
3.68
2.88
3.76
2.920
12
3.11
3.08
2.78
3.48
2.727
13
2.00
2.00
2.29
3.00
3.084
3.2.4 Penambangan Data (Data Mining)
Data mining merupakan proses mengekstrak informasi atau
pengetahuan dari data dalam jumlah yang besar. Dalam penelitian ini,
metode yang digunakan adalah metode analisis outlier dengan
menggunakan pendekatan density based. Algoritma yang digunakan
adalah Local Correlation Integral (LOCI). Data yang digunakan
adalah data akademik mahasiswa Program Studi Teknik Informatika
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
33
di Universitas Sanata Dharma angkatan 2007 dan 2008 dari semester
satu sampai dengan semester empat.
Pada tahap ini terdapat beberapa variabel yang digunakan,
antara lain:
1.
Variabel Input
Variabel input yang digunakan terdiri dari nil11, nil12, nil13,
nil14, nil15, dan nilai final. Dan terdiri dari nilai per semester
yaitu nilai ips1, ips2, ips3, dan ips4.
2.
Variabel output
Variabel output yang digunakan adalah data mahasiswa yang
menjadi outlier dari hasil perhitungan dengan algoritma Local
Correlation Integral dari data nilai hasil seleksi masuk dan nilai
mahasiswa dari semester satu sampai dengan semester 4.
Keluaran ini berupa nomor urut mahasiswa, MDEF, KMDEF,
jumlah outlier, dan lama deteksi outlier.
3.2.5
Evaluasi Pola (Pattern Evaluation)
Evaluasi pola merupakan proses mengidentifikasi apakah pola
atau informasi yang ditemukan sesuai fakta atau hipotesa yang ada
sebelumnya. Luaran yang diperoleh berupa data-data outlier
menggunakan algoritma Local Correlation Integral dan akan diuji
kebenarannya oleh pemilik data apakah hipotesa outlier yang mereka
miliki sama dengan hasil yang diperoleh sistem.
3.2.6
Presentasi Pengetahuan (Knowledge Presentation)
Knowledge presentation merupakan proses merepresentasikan
pola kepada pengguna ke dalam bentuk yang mudah dimengerti.
Dengan adanya sistem ini, diharapkan dapat membantu pihak
Universitas Sanata Dharma dalam mendeteksi outlier melalui hasil tes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
34
masuk baik melalui jalur tes tertulis maupun jalur prestasi dan nilai
per semester dari semester 1 sampai dengan semester 4.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang identifikasi sistem, perancangan sistem secara umum,
perancangan sistem, perancangan struktur data, dan perancangan antarmuka yang
akan dibuat.
4.1
Identifikasi Sistem
Universitas Sanata Dharma melakukan penerimaan mahasiswa baru
setiap tahunnya. Seleksi penerimaan mahasiswa baru dibagi menjadi dua
jalur, yaitu jalur prestasi dan jalur tes. Syarat untuk calon mahasiswa yang
mengikuti jalur prestasi adalah melampirkan nilai akademik SMA/sederajat
kelas XI semester 1 dan 2, yang kemudian nilai-nilai tersebut akan dirata-rata
dan menjadi nilai final. Calon mahasiswa yang mengikuti jalur tes diwajibkan
mengikuti tes tertulis. Tes tertulis memiliki 5 komponen nilai yaitu nilai
penalaran numerik, nilai penalaran verbal, nilai hubungan ruang, nilai bahasa
Inggris, dan nilai kemampuan numerik. Calon mahasiswa yang mengikuti tes
akan memiliki lima komponen tes tersebut, kelima komponen nilai tersebut
akan dirata-rata dan akan menjadi nilai final.
Mahasiswa yang diterima di Universitas Sanata Dharma setiap
semesternya akan dilakukan evaluasi untuk mengetahui tingkat pemahaman
setiap mahasiswa, dan pada akhir semester setiap mahasiswa akan
memperoleh nilai hasil belajar selama satu semester yang disebut Indeks
Prestasi Semester (IPS).
Mahasiswa yang nilai tes masuk universitasnya tinggi belum tentu
memiliki Indeks Prestasi Semester yang tinggi, dan mahasiswa yang nilai tes
masuk universitasnya rendah belum tentu memiliki Indeks Prestasi Semester
yang rendah. Mahasiswa dengan data yang unik ini disebut sebagai outlier.
Deteksi outlier merupakan salah satu bidang penelitian yang penting
dalam topik data mining. Deteksi outlier bermanfaat untuk mendeteksi
35
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
36
perilaku yang tidak normal, salah satunya adalah mendeteksi nilai mahasiswa
yang nilai tes masuk universitasnya bagus tetapi pada saat kuliah mahasiswa
tersebut mendapatkan nilai yang rendah.
Dalam tugas akhir ini akan dijelaskan bagaimana proses mendeteksi
outlier
dan
proses
pembuatan
aplikasi
untuk
mendeteksi
outlier
menggunakan algoritma Local Correlation Integral (LOCI). Algoritma LOCI
merupakan salah satu algoritma yang memiliki kemampuan untuk
mendeteksi outlier dalam sekumpulan data. Algoritma LOCI dapat
diimplementasikan pada sekumpulan data numerik untuk mendeteksi adanya
outlier dengan pendekatan density-based.
Dalam penelitian ini data yang digunakan adalah data yang bertipe file
(.xls) dan file (.csv) dan dari Basis Data, hasil output akan disimpan kedalam
file Text Documents (.txt), Ms. Word (.doc), dan Ms. Excel (.xls).
4.1.1
Diagram Use Case
Dalam sebuah sistem akan selalu ada interaksi, di mana interaksi
tersebut menggambarkan proses jalannya sistem tersebut dan fungsi
dari sistem tersebut. Untuk menggambarkan interaksi tersebut, tugas
akhir ini menggunakan diagram use case. Diagram use case digunakan
untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem
dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.
Diagram use case menjelaskan secara sederhana fungsi sistem dari
sudut pandang user.
Diagram use case yang digunakan adalah dapat dilihat pada
bagian lampiran 1.
Di dalam diagram use case akan ada 1 pengguna yang akan
menjalankan fungsi dari sistem. Terdapat tiga fungsi utama yang
dapat dijalankan oleh pengguna yaitu fungsi input data dari database,
data yang berformat .xls, .csv, fungsi untuk mendeteksi outlier, dan
fungsi untuk menyimpan hasil deteksi outlier. Sistem tersebut juga
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
37
memiliki fungsi seleksi atribut untuk menseleksi atribut yang tidak
diikutsertakan dalam deteksi outlier.
Deskripsi use case dapat dilihat pada bagian lampiran 2.
4.1.2
Narasi Use Case
Untuk mengetahui detail Narasi Use Case secara keseluruhan
dapat dilihat pada bagian lampiran 3.
4.2
Perancangan Sistem Secara Umum
4.2.1 Input Sistem
Sistem yang dibangun dapat menerima masukan berupa data
yang bertipe file excel (.xls) dan (.csv) atau data dalam tabel yang
terdapat dalam basis data.
Sistem ini membutuhkan masukan untuk memproses pencarian
outlier yaitu:
1.
Radius atau r
Radius adalah sebuah parameter yang digunakan untuk
mendefinisikan r-neighborhood suatu obyek.
2.
Alpha atau 
Alpha adalah sebuah parameter skala yang digunakan untuk
mendefinisikan r-neighborhood suatu obyek.
3.
Konstanta atau k
Konstanta adalah sebuah parameter yang digunakan untuk
mendefinisikan konstanta.
Penelitian ini menggunakan data akademik mahasiswa Program
Studi Teknik Informatika Universitas Sanata Dharma Yogyakarta.
Data yang digunakan adalah nilai penerimaan mahasiswa baru melalui
tes tertulis dan jalur prestasi. Atribut yang digunakan dapat dilihat
pada tabel di bawah ini:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
38
a. Data Hasil Seleksi Masuk Jalur Tes
No
1
Nama
Penjelasan
Atribut
Nomor urut
Nilai
Atribut ini merupakan nomor 1 - 126
untuk
menunjukkan
obyek
mahasiswa.
2
Nil11
Atribut
ini
merupakan
nilai 0.00 - 4.00
merupakan
nilai 0.00 - 4.00
merupakan
nilai 0.00 - 4.00
merupakan
nilai 0.00 - 4.00
merupakan
nilai 0.00 - 4.00
komponen 1.
3
Nil12
Atribut
ini
komponen 2.
4
Nil13
Atribut
ini
komponen 3.
5
Nil14
Atribut
ini
komponen 4.
6
Nil15
Atribut
ini
komponen 5.
7
Final
Atribut ini merupakan nilai rata- 0.00-4.00
rata
rapor
siswa
pada
saat
SMA/sederajat.
b. Data Hasil Seleksi Masuk Jalur Prestasi
No
Nama
Penjelasan
Atribut
Nilai
Atribut ini merupakan nomor 1 - 126
1
Nomor urut
untuk
menunjukkan
obyek
mahasiswa.
2
Final
Atribut ini merupakan nilai rata- 0.00-4.00
rata
rapor
siswa
SMA/sederajat.
pada
saat
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
39
c. Data Indeks Prestasi Semester
No
Nama
Penjelasan
Atribut
Nilai
Atribut ini merupakan nomor 1 - 126
1
Nomor urut
untuk
menunjukkan
obyek
mahasiswa.
2
Ips1
Atribut ini merupakan Indeks 0.00-4.00
Prestasi Semester 1.
4
Ips2
Atribut ini merupakan Indeks 0.00-4.00
Prestasi Semester 2.
5
Ips3
Atribut ini merupakan Indeks 0.00-4.00
Prestasi Semester 3.
6
Ips4
Atribut ini merupakan Indeks 0.00-4.00
Prestasi Semester 4.
4.2.2 Proses Sistem
Tahap-tahap dalam proses sistem adalah sebagai berikut:
1.
Pengambilan Data
Pada tahap pengambilan data, sistem akan mengambil data
sesuai dengan pilihan user. Data tersebut berupa file .xls dan .csv
atau mengambil data dari tabel yang terdapat didalam database.
Kemudian data yang dipilih oleh user tersebut akan ditampilkan
di dalam sistem, kemudian data tersebut diseleksi oleh user,
yaitu menyeleksi atribut mana saja yang akan digunakan.
2.
Perhitungan Jarak Obyek Data
Tahap selanjutnya adalah tahap untuk menghitung jarak obyek
data
dengan
rumus
euclidean
distance.
Atribut
yang
dimasukkan ke dalam perhitungan data disesuaikan dengan
pilihan user. Sehingga diketahui jarak setiap obyek.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
40
Pencarian Outlier Bersadarkan Parameter r ,  , dan k
Tahap selanjutnya adalah mencari outlier menggunakan
algoritma Local Correlation Integral. Pada tahap ini sistem
akan menerima inputan berupa parameter r, parameter tersebut
untuk mencari r-neighborhood suatu obyek. Inputan kedua
berupa parameter , dengan parameter  untuk mencari rneighborhood suatu obyek. Inputan ketiga berupa parameter k
yang digunakan sebagai konstanta.
Diagram proses umum sistem menggunakan algoritma Local
Correlation Integral dapat dilihat pada lampiran 4.
4.2.3 Output Sistem
Sistem yang dibuat akan menghasilkan data yang dinyatakan
sebagai outlier. Hasil keluaran dari sistem tersebut adalah sebagai
berikut:
4.3
1.
Hasil outlier untuk setiap data beserta nilai atribut yang dimiliki.
2.
Jumlah data.
3.
Jumlah outlier.
4.
Lama deteksi outlier.
Perancangan Sistem
4.3.1 Diagram Aktivitas
Diagram aktivitas berfungsi untuk menggambarkan aliran
fungsionalitas sistem. Diagram aktivitas juga dapat digunakan untuk
menunjukkan alur kerja, dan untuk menjelaskan aktivitas yang terjadi
di dalam sebuah use case.
1.
Diagram Aktivitas Input Data dari File .xls atau .csv.
2.
Diagram Aktivitas Input Data dari Tabel Database.
3.
Diagram Aktivitas Deteksi Outlier.
4.
Diagram Aktivitas Simpan Hasil Deteksi Outlier.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.
41
Diagram Aktivitas Seleksi Atribut.
Untuk detail dari diagram aktivitas per use case dapat dilihat di
lampiran 5.
4.3.2 Diagram Kelas Analisis
Diagram kelas analisis dapat dilihat pada lampiran 6.
Keterangan diagram analisis dipaparkan pada tabel 4.1.
Tabel 4.1 Tabel Keterangan Diagram Analisis
No
1
Nama Kelas
DatabaseController
Jenis
Entity
Keterangan
Kelas ini digunakan untuk
menampilkan data dari tabel
database
Oracle
maupun
mySQL berdasarkan tabel
yang dipilih pengguna.
2
Graph
Controller
Kelas ini digunakan untuk
membuat graph dan edge
setiap verrteks. Dan untuk
proses perhitungan outlier
menggunakan
algoritma
Local Correlation Integral.
3
Seleksi Atribut
Entity
Kelas ini digunakan untuk
melakukan
atribut,
proses
dan
seleksi
menyimpan
atribut yang digunakan untuk
proses deteksi.
4
Verteks
Entity
Kelas ini digunakan untuk
membentuk sebuah verteks,
dalam kelas ini juga terdapat
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
42
atribut yang digunakan untuk
proses deteksi outlier.
5
CheckBoxTableModel
Entity
Kelas ini digunakan untuk
membentuk dan mengatur
seleksi
atribut
menjadi
sebuah tabel model.
6
DataLoci
Entity
Kelas ini digunakan untuk
menyimpan data hasil outlier.
7
KoneksiDataBase
Controller
Kelas ini digunakan untuk
melakukan koneksi antara
sistem dengan database.
8
LociTabelModel
Entity
Kelas ini digunakan untuk
menampilkan DataLoci ke
dalam tabel model.
9
HalamanAwal
Boundary
Kelas ini berisi tampilan awal
yang
digunakan
untuk
menghubungkan ke halaman
utama.
10
HalamanBantuan
Boundary
Kelas ini berisi tampilan
informasi
atau
petunjuk
penggunaan sistem.
11
HalamanPilihDatabase
Boundary
Kelas ini berisi tampilan
untuk memilih database yang
digunakan
untuk
proses
deteksi outlier.
12
HalamanPilihFile
Boundary
Kelas ini berisi tampilan
untuk memilih file yang
digunakan
untuk
deteksi outlier.
proses
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13
HalamanPilihTabel
Boundary
43
Kelas ini berisi tampilan
untuk memilih tabel basisdata
yang akan digunakan untuk
proses deteksi outlier.
14
HalamanTentang
Boundary
Kelas ini berisi tampilan
informasi tentang sistem.
15
HalamaUtama
Boundary
Kelas
ini
berisi
tentang
tampilan halaman utama dari
sistem yang terdiri dari proses
input data, seleksi tabel, dan
deteksi outlier.
4.3.3 Diagram Sequence
Diagram Sequence digunakan untuk menggambarkan perilaku
pada setiap skenario dan digunakan untuk memberikan gambaran
detail dari setiap diagram use case.
1.
Diagram Sequence Input Data dari File .xls atau .csv.
2.
Diagram Sequence Input Data dari Tabel Basisdata.
3.
Diagram Sequence Deteksi Outlier.
4.
Diagram Sequence Simpan Hasil Deteksi Outlier.
5.
Diagram Sequence Seleksi Atribut.
Untuk penjelasan rinci dari masing-masing diagram sequence
dapat dilihat pada lampiran 7.
4.3.4 Diagram Kelas Desain
Diagram kelas desain adalah diagram yang berisi kelas yang akan
digunakan untuk pembuatan sistem. Diagram Kelas Desain memuat
semua kelas untuk menjalankan semua fungsi pada sistem dapat
dilihat pada lampiran 8. Untuk rincian atribut dan method untuk
masing-masing diagram kelas dapat dilihat pada lampiran 9.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
44
4.3.5 Rincian Algoritma Setiap Method Pada Tiap Kelas
1.
Rincian
Algoritma
pada
Method
di
Kelas
DatabaseController.
Nama Method
Fungsi Method
Algoritma Method
tampilTabelOracle(Co
Menampilkan
nnection conn)
seluruh daftar tabel
daftar tabel dari basisdata Oracle
yang
dengan sintaks: select table_name
ada
1. Membuat kueri untuk menampilkan
di
database Oracle.
from user_tables user_tables.
2. Mengeksekusi kueri.
3. Mengembalikan nilai rset yang berisi
daftar tabel yang ada pada basisdata
Oracle.
tampilTabelMYSql
Menampilkan
(Connection conn)
seluruh dartar tabel
daftar tabel dari basisdata MySQL
yang
dengan sintaks: show tables.
ada
1. Membuat kueri untuk menampilkan
di
database mySQL.
2. Mengeksekusi kueri.
3. Mengembalikan nilai rset yang berisi
daftar tabel yang ada pada basisdata
mySQL.
selectTable(Connectio
n
conn,
namaTable)
Menampilkan
String tabel
isi
1. Membuat kueri untuk menampilkan
berdasarkan
daftar tabel dari basisdata MySQL
tabel yang dipilih.
dengan sintaks: select * from +
namaTable.
2. Mengeksekusi kueri.
3. Mengembalikan nilai rset yang berisi
daftar tabel yang sesuai dengan
parameter “namaTable” pada kueri.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
Nama Method
45
Rincian Algoritma pada Method di Kelas KoneksiDatabase.
Fungsi Method
Algoritma Method
KoneksiDataBaseSQL Melakukan koneksi 1. Membuat koneksi basis data SQL ke
(String url, String user, ke
String password)
Database
MySQL.
dalam
method
connection
=
DriverManager.getConnection(url,
user, password). Parameter tersebut
dicocokkan dengan nilai dari inputan
pengguna pada login ke dalam
database.
2. Jika inputan benar maka kan muncul
pesan Koneksi Berhasil”.
3. JIka tidak maka akan muncul pesan
error.
4. Mengembalikan connection.
KoneksiDataBaseOrac Melakukan koneksi 1. Membuat koneksi basis data Oracle
le(String url, String ke Database Oracle
ke dalam method connection =
user, String password)
DriverManager.getConnection(url,
user, password). Parameter tersebut
dicocokkan dengan nilai dari inputan
pengguna pada login ke dalam
database.
2. Jika inputan benar maka kan muncul
pesan Koneksi Berhasil”.
3. JIka tidak maka akan muncul pesan
error.
4. Mengembalikan connection.
OracleConnected(Stri
ng
url,
username,
password)
Mengecek
String sistem
String terhubung
apakah 1. Jika
parameter
pada
method
sudah
KoneksiDataBaseOracle(String url,
dengan
String user, String password) terisi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
database
Oracle
atau belum.
46
maka akan mengembalikan nilai
true.
2. Jika
tidak,
maka
akan
mengembalikan nilai false.
SQLConnected(String
Mengecek
apakah 1. Jika
url, String username, sistem
String password)
terhubung
database
sudah
parameter
pada
method
KoneksiDataBaseSQL(String
url,
dengan
String user, String password) terisi
MySQL
maka akan mengembalikan nilai
atau belum.
true.
2. Jika
tidak,
maka
akan
mengembalikan nilai false.
getClosed()
Memutuskan
koneksi basis data.
1. Mengecek apakah sistem masih
terhubung ke database, maka akan
memanggil method Connected().
2. Jika ya maka tutup koneksi dan
mengembalikan nilai true.
3. Jika tidak maka mengembalikan nilai
false.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
Nama Method
addVertex(String
47
Rincian Algrotima pada Method di Kelas Graph.
Fungsi Method
Membuat
label,
List<Double> untuk
nilai)
graph.
vertex
membentuk
Algoritma Method
1. Membaca parameter berupa label
dan list nilai.
2. Membuat vertex baru dengan label
dan nilai yang diinputkan melalui
parameter.
addEdge(int awal, int Mengisi nilai edge
akhir, Double nilai)
pada vertex.
1. Membaca parameter berupa awal,
akhir, dan nilai.
2. Mengisi
nilai
jarak
kedalam
edge[awal][akhir]
dan
edge[akhir][awal].
inputData(JTable
Menginputkan data
1. Selama i = 0 dan i tidak lebih dari
jTableData)
dari Jtable ke dalam
jumlah baris dalam jTable maka
matrix dalam graph.
lakukan langkah dibawah ini maka
membuat variable label bertipe
String dan listNilai yang bertipe
arrayList Double.
2. Selama j = 0 dan j tidak lebih dari
jumlah baris dalam jTable. Jika j =
0 maka set label = data yang ada
dalam
baris
dan
kolom
tabel
tersebut.
3. Selama j != 0 maka cek data tersebut
merupakan data numerik, jika ya
maka masukkan data pada baris (i,
j), dan jika tidak maka masukkan
nilai 0.0 ke dalam arrayList nilai.
4. Memanggil nilai addVertex dengan
inputan label dan list Nilai.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
48
5. Selama i = 0 dan i tidak lebih dari
jumlah baris pada jTable, selama j =
i + 1 dan j tidak lebih dari jumlah
baris dari jTable, dan jika i tidak
sama dengan j maka panggil method
addEdge dan memasukkan inputan j
dan j kemudian menghitung jarak
berdasarkan
Distance
rumus
Ecludiian
dengan
memanggil
method cariJarakEcludian.
cariJarakEcludian (int Menghitung
indexAwal,
int dengan
indexTujuan)
jarak
1. Membaca nilai parameter input
rumus
method yaitu nilai awal dan nilai
Euclidean Distance.
akhir.
2. Membuat dua buah list yaitu a dan
b.
a
merupakan
indexAwal
dan
vertexList
b
merupakan
vertexList indexAkhir.
3. Mengisi
vertexList[awal].getNilai
da vertexList[akhir].getNilai.
4. Selama i < a.size() maka lakukan
perhitungan
total
=
total
+
Math.pow((a.get(i) - b.get(i)), 2);
5. Mengembalikan Math.sqrt(total).
tampilJarakEuclidean(
Untuk menampilkan
)
perhitungan
jarak
1. Jika i = 0 dan I kurang dari jumlah
baris
vertexList
maka
akan
dengan
menampilkan vertexList[i] dengan
menggunakan rumus
memanggil method getLabel().
Euclidean Distance.
2. Jika i = 0 dan i kurang dari jumlah
baris
adjMat
maka
akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
49
menampilkan vertexList[i] dengan
memanggil method getLabel().
3. Jika j = 0 dan j kurang dari jumlah
baris
vertexList
maka
akan
menampilkan adjMat[i][j].
cariRNeighborhood(D
Untuk
mencari
ouble radius, int indeks RNeighborhood.
1. Membuat ArrayList dengan nama a.
2. Selama i = 0 dan i kurang dari
jumlah baris vertexList, cek apakah
adjMat[indeks][i]
!=
-1,
dan
adjMat[indeks][i] != 0, lalu cek
apakah
adjMat[indeks[i]
kurang
dari sama dengan radius. Jika ya
maka tambahkan vertexList[i] ke
dalam array a.
3. Mengembalikan a.
cariAnggotaRNeighbo
Untuk
mencari
1. Set semua wasVisited dari semua
r(int indeks, Double anggota RNeighbor.
radius)
obyek (vertex) menjadi false.
2. Membuat
variabel
AnggotaRNeighbor bertipe Double,
temp1
bertipe
Double,
dan
anggotaNpir yang bertipe int.
3.
Selama i = 0 dan i tidak lebih dari
jumlah
baris
vertexList,
adjMAt[indeks][i]
!=
-1
dan
dan
wasVisited == false, jika ya maka
cek
apakah
adjMat[indeks][i]
kurang dari sama dengan radius,
jika ya maka set adjMat[indeks][i]
ke dalam variabel temp1.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
50
4. Memanggil variabel anggotaNpir
untuk menampung npir[i].
5. Set AnggotaRNeighbor = temp1.
6. Kemudian ubah wasVisited dari
arrayList
menjadi
true
dengan
memanggil method Search2 dengan
inputan (temp1, indeks).
7. Mengembalikan
AnggotaRNeighbor.
setAnggotaRNeighbor
Untuk
mengeset
1. Membuat variabel indeks dengan
(String label, Double anggotaRNeighbor
memanggil method Search dengan
radius)
parameter label.
ke dalam vertex.
2. Memanggil method setrNeighbors
pada
vertexList[indeks]
inputan
hasil
dengan
dari
cariRNeighborhood dengan inputan
vertexList[indeks].getAnggotaRNei
ghbor(), index.
setRNeighborhood(Str
Untuk
mengeset 1. Membuat variabel indeks dengan
ing label)
variable
memanggil method Seacrh dengan
RNeighborhood ke
parameter label.
dalam vertex.
2. Memanggil
setAnggotaRNeighbors
method
pada
vertexList[indeks] dengan inputan
hasil
dari
cariAnggotaRNeighborhood dengan
parameter indeks dan radius.
setNpir()
Untuk
npir.
mengeset
1. Membuat variabel x.
2. Selama i = 0 dan i tidak lebih dari
jumlah baris adjMat, jika j = 0 dan j
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
51
tidak lebih dari jumlah barus
vertexList, maka akan di cek apakah
adjmat[i][j] tidak kurang dari sama
dengan radius, jika ya maka x = x +
1. Mengeset rneighbors[i][j] = j.
3. Mengeset npir[i] = x;
4. Mengesey nilai x = 0;
tampilRNeighbor()
Untuk menampilkan
1. Membuat variabel rn.
anggota
2. Selama i = 0 dan i tidak lebih dari
npir
dan
n(pi, r)
jumlah barus adjMat, dan jika j = 0
dan j tidak lebih dari jumlah baris j,
cek apakah adjMat[i][j] tidak lebih
dari sama dengan radius, jika ya
maka rn = rn + 1 dan menampilkan
anggota npir dengan memanggil
adjMat[i][j].
3. Menampilkan
n(pi,r)
dengan
memanggil atribut rn.
4. Mengeset niali rn = 0;
cariARNeighborhood
(Double
indeks)
radius,
Untuk
mencari
int anggota
ARneighbor.
1. Membuat ArrayList dengan nama a.
2. Selama i = 0 dan i kurang dari
jumlah baris vertexList, cek apakah
adjMat[indeks][i]
!=
-1,
dan
adjMat[indeks][i] != 0, lalu cek
apakah adjMat[indeks[i] kurang
dari sama dengan alpha * radius.
Jika
ya
maka
tambahkan
vertexList[i] ke dalam array a.
3. Mengembalikan a.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
cariAnggotaARNeigh
Untuk
mencari
1. Set semua wasVisited dari semua
bor(int indeks, Double anggota
radius)
52
obyek (vertex) menjadi false.
ARneighbor.
2. Membuat
variabel
AnggotaARNeighbor
bertipe
Double, temp2 bertipe Double, dan
anggotaNpar yang bertipe int.
3.
Selama i = 0 dan i tidak lebih dari
jumlah
baris
vertexList,
adjMAt[indeks][i]
!=
-1
dan
dan
wasVisited == false, jika ya maka
cek
apakah
adjMat[indeks][i]
kurang dari sama dengan alpha *
radius,
jika
ya
maka
set
adjMat[indeks][i] ke dalam variabel
temp2.
4. Memanggil variabel anggotaNpar
untuk menampung npar[i].
5. Set AnggotaARNeighbor = temp2.
6. Kemudian ubah wasVisited dari
arrayList
menjadi
true
dengan
memanggil method Search2 dengan
inputan (temp2, indeks).
7. Mengembalikan
AnggotaARNeighbor.
setAnggotaARNeighb
Untuk
mengeset
1. Membuat variabel indeks dengan
or(String label, Double anggotaARNeighbor
memanggil method Seacrh dengan
radius)
parameter label.
ke dalam vertex.
2. Memanggil method setrNeighbors
pada
vertexList[indeks]
inputan
dengan
hasil
dari
cariARNeighborhood
dengan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
53
inputan
vertexList[indeks].getAnggotaAR
Neighbor(), index.
setARNeighborhood(
Untuk
mengeset
String label)
variable
memanggil method Search dengan
ARNeighborhood ke
parameter label.
dalam vertex.
1. Membuat variabel indeks dengan
2. Memanggil
method
setAnggotaARNeighbors
pada
vertexList[indeks] dengan inputan
hasil
dari
cariAnggotaARNeighborhood
dengan
parameter
indeks
dan
radius.
setNpar()
Untuk
mengeset
npar.
1. Membuat variabel x.
2. Selama i = 0 dan i tidak lebih dari
jumlah baris adjMat, jika j = 0 dan j
tidak lebih dari jumlah barus
vertexList, maka akan di cek apakah
adjmat[i][j] tidak kurang dari sama
dengan alpha * radius jika ya maka
x
=
x
+
1.
Mengeset
arneighbors[i][j] = j.
3. Mengeset npar[i] = x;
4. Mengesey nilai x = 0;
tampilARNeighbor()
Untuk menampilkan
1. Membuat variabel arn.
anggota npar dan
2. Selama i = 0 dan i tidak lebih dari
n(pa, r)
jumlah barus adjMat, dan jika j = 0
dan j tidak lebih dari jumlah baris j,
cek apakah adjMat[i][j] tidak lebih
dari sama dengan radius, jika ya
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
maka
arn
=
arn
+
54
1
dan
menampilkan anggota npar dengan
memanggil adjMat[i][j].
3. Menampilkan
n(pa,r)
dengan
memanggil atribut arn.
4. Mengeset niali arn = 0;
setJumlahAnggota()
Untuk
mengeset
jumlah anggota.
1. Membuat variabel x dan y dengan
tipe int.
2. Selama i = 0 dan i kurang dari
jumlah baris adjMat, dan selama j =
0 dan j kurang dari jumlah baris
vertexList, jika ya maka cek apakah
adjMat[i][j]
kurang
dari
sama
dengan radius, jika ya x = x + 1 dan
set rneighbors[i][j] = j.
3. Jika tidak set rneighbors[i][j] =
max.
4. Cek apakah adjmat[i][j] kurang dari
sama dengan alpha * radius, jika ya
maka
y =
y + 1 dan set
arneighbors[i][j] = j.
5. Set npir[i] = x.
6. Set npar[i] = y.
7. Set nilai x = 0.
8. Set nilai y = 0.
cariLoci()
Untuk
outlier.
mencari
1. Membuat
variabel
jml_npar,
jml_npar2, avgNpira, stdevNpira,
mdef, omdef, komdef dengan tipe
Double.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2. Memanggil
55
method
setJumlahAnggota().
3. Mengecek apakah rneighbor[i][j]
tidak sama dengan max. jika ya
maka jml_npar = jml_npar +
npar[j]. npar[j] digunakan untuk
menyimpan nilai rneighbors yang
kurang dari max.
4. Menghitung rata-rata npar dengan
rumus avgNpira = jml_npar /
npir[i].
5. Menampilkan
memanggil
avgNpira
hasil
dengan
perhitungan
avgNpira.
6. Mengecek apakah rneighbor[i][j]
tidak sama dengan max. jika ya
maka ekseksui rumus jml_npar2 =
jml_npar2 + Math.pow((npar[j] avgNpira), 2).
7. Menghitung standar deviasi npira
dengan
memanggil
rumus
stdevNpira = Math.sqrt(jml_npar2 /
npir[i]).
8. Menampilkan stdevNpira dengan
memanggil
hasil
perhitungan
stdevNpira.
9. Menghitung nilai mdef dengan
rumus mdef = 1 - (npar[i] /
avgNpira).
10. Menampilkan nilai mdef dengan
memanggil hasil perhitungan mdef.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11. Mengeset
mdef
56
kedalam
vertexList[i] dengan memanggil
method setMdef.
12. Menghitung omdef dengan rumus
omdef = stdevNpira / avgNpira.
13. Menampilkan nilai omdef dengan
memanggil
hasil
perhitungan
omdef.
14. Mengeset
omdef
kedalam
vertexList[i] dengan memanggil
method setOmdef.
15. Menghitung komdef dengan rumus
komdef = konstanta * omdef.
16. Menampilkan nilai komdef dengan
memanggil
hasil
perhitungan
komdef.
17. Mengeset
komdef
kedalam
vertexList[i] dengan memanggil
method setKomdef.
18. Jika nilai mdef lebih besar dari
komdef
maka
akan
dianggap
sebagai outlier, jika tidak maka
bukan outlier.
19. Mengeset jml_npar = 0.0;
20. Mengeset jml_npar2 = 0.0;
21. Mengeset nilai mdef = 0.0.
22. Mengeset nilai omdef = 0.0.
23. Mengeset nilai komdef = 0.0.
setDataLoci(String
Untuk
label)
tabel
mengeset
HasilDeteksiOutlier
1. Membuat ArrayList dengan nama
dlc yang bertipe List<DataLoci>.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
agar hasil deteksi
outlier
dapat
di
tampilkan ke dalam
tabel.
57
2. Membuat atribut dl dengan tipe
DataLoci.
3. Mengecek apakah nilai Mdef lebih
besar dari nilai Komdef dengan cara
memanggil method getMdef() dan
getKomdef().
4. Jika ya, membuat obyek baru
dengan nama dl untuk mengeset
label, mdef, dan komdef dengan
memanggil
method
getLabel(),
getMdef(), dan getKomdef().
5. Menambahkan obyek dl kedalam
List<DataLoci>.
6. Membuat
obyek
dari
LociTabelModel dengan nama ltm.
7. Mengembalikan ltm.
4.
Rincian
Algrotima
pada
Method
di
Kelas
CheckBoxTableModel.
Nama Method
add(int
Fungsi Method
Algoritma Method
a, Menambah data ke 1. Membaca parameter a dan field_m.
SeleksiAtribut
dalam
2. Menambahkan nilai field_m sebagai
field_m)
CheckBoxTableMode.
removeRow()
Menghapus
data di index ke-a ke dalam list.
atribut 1. Membuat
yang di hapus dari
tabel seleksi atribut.
ArrayList
bertipe
SeleksiAtribut dengan nama sa.
2. Selama select kurang dari list maka
di cek apakah atribut tersebut telah
dipilih. Jika ya maka nilai select
ditambahkan pada ArrayList sa.
3. Mengeset list = sa.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.
58
Rincian Algrotima pada Method di Kelas HalamanUtama.
Nama Method
pilihFile()
Fungsi Method
Algoritma Method
Untuk memilih file
1. Menampilkan kotak dialog Open
bertipe .xls atau .csv.
File.
2. namaFile menangkap nama file
terpilih.
3. Cut_namaFile
=
namaFile.split("\\.")
4. Jika cut_namafile adalah .xls
maka jalankan langkah pada tabel
pilih .xls
5. Jika cut_namafile adalah .csv
maka jalankan langkah pada tabel
pilih .csv
6. Jika buka .xls dan .csv maka
menampilkan pesan peringatan.
pilihDataBase(Koneks
Untuk
iDataBase kdb, String data
table)
memasukkan
dari
basisdata.
tabel
1. Mengambil isi tabel dari basis data
melalui
method
selectTable
(kdb.getConnection(), table).
2. Membuat
vector
baru
columnName dan data.
3. Selama i = 1, dan i kurang dari
sama dengan columnCount maka
columnName diisi dengan nama
kolom ke i yang didapat dari
basisdata
melalui
getColumnName.
method
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
59
4. Selama rset.next benar maka buat
vector data2 diisi dengan baris di
kolom ke i.
5. Tambahkan data2 ke dalam data.
6. Selama i = 1 dan i kurang dari
sama dengan columnCount maka
data2 diisi dengan data pada setiap
baris di kolom ke i.
7. Tambahkan data2 ke dalam data.
8. Selama i = 0 dan i kurang dari
model.getColumnCount, membuat
obyek seleksiAtribut kemudian
memanggil
method
setAtribut
untuk memanggil columnName.
9. Memanggil setPilih(false).
10. Menambahkan
seleksiAtribut
kedalam cexboxtable.
11. Atur tabel dataPreprocessTable.
hapusAtribut()
Menghapus
atribut
tabel
data
sesuai
atribut
yang dipilih
pengguna.
1. Selama i = 0 dan i kurang dari
jumlah baris seleksiTable.
2. Jika
seleksiTable.getValueAt(i,
1).equals(true) maka cek apakah
nilai ke i dari seleksiTable berisi
nama
kolom
pada
dataPreprocessTable.
3. Membuat variabel tcol1 dengan
inisialisasi
nilai
dataPreprocessTable.getColumnM
odel().getColumn(j).
4. Membuat variabel tcol 2 dengan
inisialisasi
nilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
60
dataOutlierTable.getColumnMode
l().getColumn(j).
5. Hapus
kolom
pada
dataPreprocessTable.
6. Hapus
kolom
pada
dataOutlierTable.
7. Hapus baris pada cekboxtable.
submitData()
Memasukkan
data
1. Membuat
varaibel
tableModel
pada tabel data pada
dengan mengambil model dari
tab Preprocessing dan
tabel dataPreprocessTable.
tab Deteksi Outlier.
2. Mengeset
dataOutlierTable
dengan tablemodel.
3. Mengeset
dataOutlierTable.setAutoCreateR
owSorter(true).
4. Menampilkan tabel pada tabel
Deteksi pada tabbed pane Deteksi
Outlier
dengan
jTabbedPane1.setSelectedCompo
nent(deteksiPanel)
dan
jTabbedPane1.setEnabledAt(1,
true);
prosesDeteksi()
Menerima input radius
1. Jika nilai radius kosong akan
dan alpha untuk proses
menampilkan pesan “Nilai radius
deteksi outlier.
tidak boleh kosong!”, lakukan
pengisian
ulang
parameter
tersebut.
2. Jika nilai alpha kosong akan
menampilkan pesan “Nilai alpha
tidak boleh kosong!”, lakukan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
pengisian
ulang
61
parameter
tersebut.
3. Jika nilai konstanta kosong akan
menampilkan
pesan
“Nilai
konstanta tidak boleh kosong!”,
lakukan pengisian ulang parameter
tersebut.
4. Membuat variabel t1 bertipe long.
5. Jika nilai radius, alpha, dan
konstanta terisi, maka cek apakah
nilai radius lebih besar dari 0, nilai
alpha lebih besar dari 0, nilai alpha
kurang dari sama dengan 1, dan
nilai konstanta bilangan bulat
positif lebih besar dari 0.
6. Jika tidak akan menampilkan
pesan “Nilai radius harus bilangan
real" + "\n" + "nilai alpha antara 01 + "\n" + "dan nilai konstanta
harus bilangan bulat positif > 0".
7. Jika ya buat obyek baru dengan
nama
graph
jumlah
dan
memanggil
baris
pada
dataOutlierTable.
8. Mengeset radius.
9. Mengeset alpha.
10. Mengeset konstanta.
11. Memanggil method inputData ke
dalam dataOutlierTable.
12. Memanggil
tampilJarakEuclidean().
method
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13. Memanggil
62
method
tampilRNeighbor().
14. Memanggil
method
tampilARNeighbor().
15. Memanggil method cariLoci().
16. Mengeset
HasilOutlierTable
dengan mengeset model untuk
setDataLoci(dataOutlierTable.get
ColumnName(0)).
17. Membuat variabel t2 bertipe long.
18. Menghitung waktu proses deteksi
dengan
rumus
((t2
-
t1)
*
java.lang.Math.pow(10, -9) dan
menampilkan
pada
lamaDeteksiTextField.
simpanLoci()
Untuk
menyimpan
hasil deteksi outlier ke
1. Membuat obyek fileChooser.
2. Membaca lokasi penyimpanan file
dalam file .xls, .doc,
dan
disimpan
atau .txt.
filename.
dalam
variabel
3. Membaca format file yang dipilih
pengguna
dengan
fileChooser.getFileFilter().getDes
cription() kemudian ditampung
dalam variabel ext.
4. Jika ext = Microsoft Excel (*.xls)"
maka format yang dipilih adalah
.xls.
5. Membuat variabel model dengan
memanggil
model
HasilOutlierTable.
pada
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
63
6. Membuat obyek excel yang bertipe
FileWriter.
7. Jika i = 0 dan i kurang dari jumlah
kolom, maka memanggil method
write
yang
berisi
model.getColumnName(i).
8. Jika i = 0 dan i kurang dari jumlah
baris, jika j = 0 dan j kurang dari
jumlah kolom, maka memanggil
method
write
yang
berisi
model.getValueAt(i, j).toString().
9. Excel.close().
10. Jika ext = Microsoft Word (*.doc)"
maka format yang dipilih adalah
.doc.
11. Membuat obyek bfw yang bertipe
BufferedWriter.
12. Jika i = 0 dan i kurang dari jumlah
kolom, HasilOutlierTable maka
memanggil method write yang
berisi
HasilOutlierTable.getColumnNam
e(i).
13. Jika i = 0 dan i kurang dari jumlah
baris HasilOutlierTable, jika j = 0
dan j kurang dari jumlah kolom
HasilOutlierTable,
maka
memanggil method write yang
berisi
HasilOutlierTable.getValueAt(i,
j).toString().
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
64
14. bfw.close();
15. Jika ext = "Text Documents
(*.txt)" maka format yang dipilih
adalah .txt.
16. Membuat obyek bfw yang bertipe
BufferedWriter.
17. Jika i = 0 dan i kurang dari jumlah
kolom, HasilOutlierTable maka
memanggil method write yang
berisi
HasilOutlierTable.getColumnNam
e(i).
18. Jika i = 0 dan i kurang dari jumlah
baris HasilOutlierTable, jika j = 0
dan j kurang dari jumlah kolom
HasilOutlierTable,
maka
memanggil method write yang
berisi
HasilOutlierTable.getValueAt(i,
j).toString().
19. bfw.close();
20. Jika proses simpan gagal akan
menampilkan
pesan
“Penyimpanan Gagal”.
21. Jika proses simpan berhasil akan
mnampilkan pesan “Hasil Deteksi
Outlier Telah Berhasil Disimpan”.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.4
65
Perancangan Struktur Data
Untuk mengembangkan sebuah sistem atau aplikasi diperlukan adanya
perancangan struktur data. Konsep struktur data yang digunakan adalah
konsep Graf tak berarah dengan menggunakan struktur data matriks dua
dimensi. Dengan menggunakan graf akan mempermudah dalam memetakan
obyek data dan jarak sebuah obyek dengan obyek yang lainnya. Jarak masingmasing obyek data dinyatakan dalam edge dan nilai edge dari satu vertex ke
vertex lain, kemudian akan disimpan dalam bentuk matriks dua dimensi.
4.4.1 Graf
Graf merupakan sebuah kumpulan vertex (simpul-simpul) yang
saling terhubung melalui sebuah edge (garis). Yang dinyatakan
sebagai vertex adalah obyek data yang akan dicari outliernya. Vertex
tersebut mengandung list yang akan digunakan untuk menyimpan
nilai atribut sebuah obyek data. Kemudian akan dihitung jarak antar
objek data, jarak tersebut dinyatakan sebagai edge.
Yang dimaksud dengan obyek adalah obyek Mahasiswa, yang
dimaksud dengan vertex adalah list nilai mahasiswa. Kemudian untuk
edge merupakan jarak dari nilai mahasiswa satu dengan lainnya.
Ilustrasi graph dipapakan pada gambar 4.1.
Gambar 4.1 Ilustrasi Struktur Data Graf
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
66
4.4.2 Matriks Dua Dimensi
Pertama-tama, edge untuk setiap obyek data mahasiswa masih
belum ada sehingga dinyatakan dengan nilai -1. Kemudian jarak
obyek data terhadap dirinya sendiri dinyatakan dengan nilai 0.
Ilustrasi struktur data matriks dua dimensi dipaparkan pada tabel 4.2.
Tabel 4.2 Ilustrasi Struktur Data Matriks Dua Dimensi
Mahasiswa[1] Mahasiswa[2] Mahasiswa[3]
Mahasiswa[1]
0
-1
-1
Mahasiswa[2]
-1
0
-1
Mahasiswa[3]
-1
-1
0
Setelah dilakukan perhitungan jarak antar objek, maka jarak
objek -1 diubah sesuai dengan jarak antar obyek setelah dilakukan
perhitungan jarak dengan menggunakan rumus jarak Eucludian
Distance. Untuk jarak obyek data terhadap dirinya sendiri tetap
bernilai 0. Ilustrasi struktur data matriks dua dimensi setelah
dilakukan perhitungan jarak dan vertex dipaparkan pada tabel 4.3.
Tabel 4.3 Ilustrasi Struktur Data Matriks Dua Dimensi
Setelah Dilakukan Perhitungan Jarak antar Vertex
Mahasiswa[1] Mahasiswa[2] Mahasiswa[3]
Mahasiswa[1]
0
2.58
3.21
Mahasiswa[2]
2.58
0
1.05
Mahasiswa[3]
3.21
1.05
0
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5
67
Perancangan Antarmuka
4.5.1
Tampilan Halaman Awal
Halaman awal adalah tampilan pertama saat sistem dijalankan.
Pada halaman ini terdapat button Masuk. Jika user menekan button
tersebut, maka sistem akan menampilkan halamn selanjutnya, yaitu
halaman utama.
SISTEM PENDETEKSI OUTLIER
MASUK
Universitas Sanata Dharma Yogyakarta
Copyright © 2014
Gambar 4.2 Tampilan Halaman Utama
4.5.2
Tampilan Halaman Utama
Pada halaman ini proses pendeteksian outlier dilakukan. Pada
halaman utama terdapat dua tab, yaitu tab untuk melakukan
preposesing dan tab untuk mendeteksi outlier. Pada tab preposesing
terdapat fungsi untuk memilih file mana yang akan digunakan dan
database mana yang akan digunakan. Terdapat pula fungsi untuk
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
68
menyeleksi atribut, pada fungsi ini user dapat menyeleksi atribut mana
saja yang akan dipakai.
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL CORRELATION INTEGRAL
Preprosessing
Deteksi Outlier
Pilih Database
Pilih File
Tentang
Bantuan
Atribut 2
Atribut 1
Atribut 3
Atribut 4
Seleksi Atribut
Jumlah Data
Atribut
Atribut 1
Atribut 2
Tandai Semua
Batal
Hapus
Keluar
Submit
Batal
Gambar 4.3 Tampilan Halaman Utama Tab Preprosesing
Kemudian tab yang kedua adalah tab deteksi outlier, pada tab
deteksi outlier user memasukkan nilai radius, alpha, dan konstanta
kemudian melakukan proses deteksi outlier dengan menekan button
Proses. Kemudian pada hasilnya akan ditampilkan pada tabel hasil
deteksi outlier. User juga dapat menyimpan hasil perhitungan didalam
sebuah file yang berbentuk word, excel, dan txt.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL CORRELATION INTEGRAL
Preprosessing
Deteksi Outlier
Proses Algoritma Local Correlation Integral
radius
alpha
Proses
konstanta
Tentang
Atribut 1
Atribut 2
Atribut 3
Atribut 4
Bantuan
Jumlah Data
Hasil Deteksi Outlier
No Mahasiswa
MDEF
KOMDEF
Keluar
Simpan
Hapus
Gambar 4.4 Tampilan Halaman Utama Tab Deteksi Outlier
69
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.3
70
Tampilan Halaman Bantuan
Halaman bantuan berisi petunjuk-petunjuk penggunaan sistem
untuk mendeteksi outlier dengan menggunakan algoritma Local
Correlation Integral mulai dari tahap preprosesing data sampai
dengan proses deteksi outlier.
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL CORRELATION INTEGRAL
Petunjuk Penggunaan
A. Petunjuk Preprosessing Data
B. Petunjuk Proses Deteksi Outlier
Kembali
Gambar 4.5 Tampilan Halaman Bantuan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.4
71
Tampilan Halaman Tentang
Halaman tentang berisi nama sistem, serta nama pembuat sistem
tersebut.
SISTEM PENDETEKSI OUTLIER
PENGEMBANGAN ALAT BANTU
DETEKSI OUTLIER MENGGUNAKAN
ALGORITMA LOCAL CORRELATION INTEGRAL
Dibuat oleh:
FELISITAS BRILLIANTI
105314013
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2014
Kembali
Gambar 4.6 Tampilan Halaman Tentang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.5
72
Tampilan Menu Keluar
Pada halaman menu keluar, user dihadapkan pada dua button,
yaitu button YA dan button TIDAK. Jika user menekan button
TIDAK, maka sistem akan kembali pada halaman utama, jika user
menekan button YA maka sistem akan keluar.
Apakah anda ingin keluar dari sistem?
YA
TIDAK
Gambar 4.7 Tampilan Menu Keluar
4.5.6
Tampilan Halaman Pilih File
Pada halaman pilih file, user dapat memilih file mana yang
akan digunakan untuk proses deteksi.
Look In:
File Name:
Files of type:
OPEN
Gambar 4.8 Tampilan Halaman Pilih File
CANCEL
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.7
73
Tampilan Halaman Pilih Database
Pada halaman pilih database terdapat fungsi untuk memilih
database mana yang akan digunakan. Kemudian user diminta untuk
memasukkan username, password, database name, dan URL.
PILIH KONEKSI DATABASE
Username
Password
Database Name
Url
OK
BATAL
Gambar 4.9 Tampilan Halaman Pilih Database
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.8
74
Tampilan Halaman Pilih Tabel
Pada halaman pilih tabel, user dapat memilih tabel mana yang
akan digunakan. Tabel tersebut berada dalam database. Kemudian
setelah menekan button OK maka isi tabel tersebut akan ditampilkan
ke halaman utama.
PILIH TABEL
OK
BATAL
Gambar 4.10 Tampilan Halaman Pilih Tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB V
IMPLEMENTASI SISTEM
Bab ini berisi tentang implementasi Sistem Deteksi Outlier yang
menggunakan Algoritma Local Correlation Integral. Implementasi sistem ini
dilakukan dengan menggunakan NetBeans IDE 6.9.1 pada komputer dengan
spesifikasi processor Inter Core 2 Duo 2.2 GHz, RAM 2.00 GB, dan hardisk 320
GB. Sistem ini dibuat sesuai dengan perancangan sistem yang dibuat pada bab
sebelumnya. Dan sistem ini dibuat dengan menggunakan bahasa pemrograman
Java.
5.1
Implementasi Antarmuka
Sistem Pendeteksi Outlier menggunakan Algoritma Local Correlation
Integral telah selesai dibuat menjadi sebuah aplikasi. Berikut ini adalah
tampilan antarmuka dari Sistem Pendeteksian Outlier menggunakan
Algoritma Local Correlation Integral.
5.1.1 Implementasi Halaman Awal
Halaman awal adalah tampilan yang pertama kali keluar pada
saat sistem dijalankan. Pada halaman ini terdapat tombol ‘Masuk’.
Jika pengguna ingin masuk kedalam sistem Pendeteksi Outlier
menggunakan Algoritma Local Correlation Integral, maka pengguna
harus menekan tombol ‘Masuk’.
75
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
76
Gambar 5.1 Antarmuka Halaman Awal
5.1.2 Implementasi Halaman Utama
Halaman utama akan muncul setelah pengguna menekan tombol
‘Masuk’. Pada halaman utama ini terdapat dua Tabbed Pane yaitu tab
Preprosessing dan tab Deteksi Outlier. Pada halaman utama ini juga
terdapat tombol ‘Bantuan’, tombol ‘Tentang’, dan tombol ‘Keluar’ di
sebelah kiri halaman utama. Halaman utama ini merupakan fungsi inti
dari sistem.
Pada tab Preprosessing terdapat tombol ‘Pilih File’, tombol
‘Pilih Database’, tombol ‘Tandai’, tombol ‘Tandai Semua’, tombol
‘Batal’, tabel ‘dataPreprocessTable’, tabel ‘dataOutlierTable’, dan
terdapat text field ‘jumlahDataSeleksiTextField’ dan text field
‘pilihFileTextField’.
Pada tab Deteksi Outlier terdapat tombol ‘Proses’, tombol
‘Simpan’, dan tombol ‘Hapus’, text field ‘radiusTextField’,
‘alphaTextField’,
‘jumlahDataOutlierTextField’,
dan
‘jumlahOutlierTextField’. Terdapat juga tabel ‘dataOutlierTable’ dan
‘HasilOutlierTable’.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
77
Jika pengguna ingin mengolah data berformat .xls atau .csv
maka pengguna menekan tombol ‘Pilih File’ untuk mencari data yang
akan diolah seperti dibawah ini.
Gambar 5.2 Kotak Dialog saat memilih File
Setelah memilih file kemudian pengguna menekan tombol
‘Open’. Setelah menekan tombol ‘Open’ maka data tersebut akan
ditampilkan dalam tabel seperti tampak pada antarmuka di bawah ini:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
78
Gambar 5.3 Antarmuka Halaman Utama (data file .xls tertampil)
Kemudian pengguna melakukan seleksi atribut untuk memilih
atribut mana yang akan di gunakan untuk proses deteksi dengan cara
memilih 1 atau lebih atribut yang akan dihapus.
Gambar 5.4 Kotak Seleksi Atribut
Selanjutnya
pengguna
meneka
tombol
‘Hapus’
untuk
menghapus atribut yang tidak digunakan untuk proses deteksi.
Kemudian sistem akan menampilkan tab Deteksi Outlier. Kemudian
pada tab Deteksi Outlier pengguna menginputkan nilai radius, alpha,
dan konstanta.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
79
Gambar 5.5 Proses Deteksi Outlier
Setelah pengguna menginputkan nilai radius, alpha, dan
konstanta pengguna menekan tombol ‘Proses’.
Gambar 5.6 Tampilan Hasil Outlier
Selanjutnya pengguna dapat menyimpan hasil outlier dengan
menekan tombol ‘Simpan’. Hasil outlier dapat disimpan dengan
format .doc, .xls, dan .txt.
Gambar 5.7 Tampilan Save Dialog
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
80
Setelah selesai menyimpan, jika file berhasil disimpan akan
muncul pesan “Hasil Deteksi Outlier Telah Berhasil Disimpan di
E:\Hasil Outlier”.
Gambar 5.8 Pesan Ketika Proses Penyimpanan Hasil Outlier
Berhasil Dilakukan
5.1.3 Implementasi Halaman Pilih Database
Halaman Pilih Database adalah halaman yang digunakan untuk
input data dari database. Halaman pilih database muncul ketika
pengguna menekan tombol ‘Pilih Database’ pada tab Preprosessing.
Gambar 5.9 Antarmuka Halaman Pilih Database
Pada halaman Pilih Database pengguna memilih koneksi
Database ‘MySQL’ atau ‘Oralce’. Kemudian pengguna memasukkan
Username, Password, Database Name, dan URL.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
81
Gambar 5.10 Antarmuka Halaman Pilih Database (Setelah
Pengguna memilih Database)
Selanjutnya pengguna menekan tombol ‘OK’, jika username,
password, nama database, dan URL yang dimasukkan benar maka
akan muncul pesan “Koneksi Berhasil”.
Gambar 5.11 Pesan Koneksi Berhasil
5.1.4 Implementasi Halaman Tampil Tabel
Halaman Tampil Tabel akan muncul setelah pengguna berhasil
terhubung atau login ke database. Kemudian pengguna memilih tabel
yang akan di deteksi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
82
Gambar 5.12 Antarmuka Halaman Tampil Tabel
Setelah menekan tombol ‘OK’ sistem akan menampilkan data
pada tabel di Halaman Utama tab Preprosessing.
Gambar 5.13 Hasil Input Data dari Database
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
83
5.1.5 Implementasi Halaman Bantuan
Halaman ini berisi tentang informasi tentang bagaimana sistem
ini digunakan. Halaman ini dapat muncul ketika pengguna menekan
tombol ‘Bantuan’ pada halaman utama.
Gambar 5.14 Antarmuka Halaman Bantuan
5.1.6 Implementasi Halaman Tentang
Halaman ini berisi tentang informasi sistem yang telah di buat,
yaitu pengembangan alat bantu Deteksi Outlier Menggunakan
Algoritma Local Correlation Integral.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
84
Gambar 5.15 Antarmuka Halaman Tentang
5.1.7 Impelementasi Halaman Konfirmasi Keluar
Halaman Konfirmasi Keluar ditampilkan pada saat pengguna
menekan tombol ‘Keluar’. Jika pengguna menekan tombol ‘OK’
maka akan keluar dari sistem, tetapi jika pengguna menekan tombol
‘TIDAK’ maka sistem akan kembali ke halaman utama.
Gambar 5.16 Antarmuka Halaman Konfirmasi Keluar
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
85
5.1.8 Implementasi Pengecekan Masukan
Sistem pendeteksi outlier menggunakan algoritma Local
Correlation Integral menyediakan fungsi error handling untuk
mengatasi kesalahan pengguna pada waktu melakukan input ke sistem
pendeteksi outlier.
1. Pada saat menginputkan file yang bukan bertipe .xls atau .csv
sistem akan menampilkan pesan “File yang Anda pilih harus
berformat .xls atau .csv”.
Gambar 5.17 Error Handling (1)
2. Pada saat pengguna tidak memasukkan Username, Password,
Nama Database, atau URL pada saat akan login database untuk
menginput data, maka sistem akan menampilkan pesan
“Username, Password, Nama Database, dan URL tidak boleh
kosong!”.
Gambar 5.18 Error Handling (2)
3. Pada saat pengguna salah memasukkan Username, Password,
Nama Database, atau URL pada saat akan login database untuk
menginput data, maka sistem akan menampilkan pesan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
86
“Username, Password, Nama Database, dan URL yang anda
masukkan”.
Gambar 5.19 Error Handling (3)
4.
Pada saat pengguna menekan tombol ‘Proses’ tetapi pengguna
tidak menginputkan nilai radius. Maka sistem akan menampilkan
pesan “Nilai radius tidak boleh kosong!”.
Gambar 5.20 Error Handling (4)
5.
Pada saat pengguna menekan tombol ‘Proses’ tetapi pengguna
tidak menginputkan nilai alpha. Maka sistem akan menampilkan
pesan “Nilai alpha tidak boleh kosong!”.
Gambar 5.21 Error Handling (5)
6.
Pada saat pengguna menekan tombol ‘Proses’ tetapi pengguna
tidak
menginputkan
nilai
konstanta.
Maka
sistem
menampilkan pesan “Nilai konstanta tidak boleh kosong!”.
akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
87
Gambar 5.22 Error Handling (6)
7.
Pada saat pengguna menekan tombol ‘Proses’ tetapi pengguna
menginputkan nilai radius bukan bilangan real atau pengguna
tidak menginputkan nilai alpha dengan bilangan real antara 0-1.
Maka sistem akan menampilkan pesan “Nilai radius harus
bilangan real, nilai alpha antara 0-1 dan nilai konstanta harus
bilangan bulat positif > 0”.
Gambar 5.23 Error Handling (7)
8. Pada saat pengguna menginputkan nilai radius berupa huruf dan
angka negatif.
Gambar 5.24 Error Handling (8)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
88
9. Pada saat pengguna menginputkan nilai alpha berupa huruf dan
angka negatif.
Gambar 5.25 Error Handling (9)
10. Pada saat pengguna menginputkan nilai konstanta berupa huruf
dan angka negatif.
Gambar 5.26 Error Handling (10)
5.2
Implementasi Struktur Data
Tahap ini berisi tentang implementasi struktur data Sistem ini
menggunakan konsep graph dengan matriks dua dimensi.
5.2.1
Implementasi kelas Graph.java
Graph berfungsi untuk membentuk graph dan untuk
membentuk verteks dari setiap obyek data. Dalam graph juga
terdapat edge yang berfungsi untuk menghubungkan verteks.
Method graph ini menggunakan sebuah parameter yaitu maxVertex.
Parameter maxVertex berfungsi sebagai ukuran maksimum dari
verteks. Method addVertex berfungsi untuk membuat sebuah
verteks. Dalam method ini menggunakan dua parameter yaitu label
dan nilai. Setiap obyek merupakan verteks. Kemudian untuk
memasukkan nilai edge antar obyek, nilai edge diinputkan melalui
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
method addEdge. Nilai edge adalah nilai jarak yang dihitung
menggunakan rumus Euclidean Distance.
5.2.2
Implementasi kelas Verteks.java
Kelas Verteks merupakan kelas yang menyimpan setiap obyek
data ke dalam verteks. Dalam kelas ini terdapat beberapa atribut
yang berfungsi untuk menghitung dan melakukan proses deteksi
outlier pada setiap obyek data.
Atribut yang pertama adalah label. Atribut ini berfungsi untuk
menyimpan label pada setiap obyek. Atribut yang kedua adalah nilai,
atribut ini berfungsi untuk menyimpan nilai dari setiap obyek.
Atribut ketiga adalah wasVisited yang berfungsi untuk menandai
suatu obyek yang memiliki jarak kurang dari sama dengan radius.
Atribut yang keempat adalah jumlah_rNeighbors yang berfungsi
untuk menyimpan jumlah rNeighbors. Atribut yang kelima adalah
jumlah_arNeighbors yang berfungsi untuk menyimpan jumlah
arNeighbors. Atribut keenam adalah rNeighbor yang berfungsi
untuk menyimpan rNeighbors. Atribut ketujuh adalah arNeighbor
yang berfungsi untuk menyimpan arNeighbors. Atribut kedelapan
adalah avgNpira yang berfungsi untuk menyimpan avgNpira.
Atribut kedelapan adalah stdevNpira yang berfungsi untuk
menyimpan stdevNpira. Atribut kesembilan adalah mdef yang
berfungsi untuk menyimpan mdef. Atribut kesepuluh adalah koMdef
yang berfungsi untuk menyimpan avgNpira. Atribut kesebelas
adalah AnggotaRNeighbor yang berfungsi untuk menyimpan
AnggotaRNeighbor.
AnggotaARNeighbor
AnggotaARNeighbor.
Atribut
yang
keduabelas
berfungsi
untuk
adalah
menyimpan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.3
90
Implementasi Kelas
Tahap ini berisi tentang implementasi kelas yang digunakan dalam
pembuatan sistem. Method yang digunakan adalah method yang memiliki
fungsi utama dalam sistem. Tabel 5.1 merupakan tabel yang berisi
implementasi setiap kelas.
Impelementasi setiap kelas dapat dilihat pada lampiran 10.
Tabel 5.1 Tabel Impementasi Kelas
No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nama Kelas
Graph
Verteks
DataLoci
DatabaseController
SeleksiAtribut
CheckBoxTableModel
KoneksiDataBase
LociTabelModel
HalamanAwal
HalamanBantuan
HalamanPilihDatabase
HalamanPilihFile
HalamanPilihTabel
HalamanTentang
HalamanUtama
Nama File Fisik
Graph.java
Verteks.java
DataLoci.java
DatabaseController.java
SeleksiAtribut.java
CheckBoxTableModel.java
KoneksiDataBase.java
LociTabelModel.java
HalamanAwal.form
HalamanBantuan.form
HalamanPilihDatabase.form
HalamanPilihFile.form
HalamanPilihTabel.form
HalamanTentang.form
HalamanUtama.form
Nama File Executable
Graph.class
Verteks.class
DataLoci.class
DatabaseController.class
SeleksiAtribut.class
CheckBoxTableModel.class
KoneksiDataBase.class
LociTabelModel.class
HalamanAwal.class
HalamanBantuan.class
HalamanPilihDatabase.class
HalamanPilihFile.class
HalamanPilihTabel.class
HalamanTentang.class
HalamanUtama.class
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VI
PENGUJIAN DAN ANALISIS PENGUJIAN
Bab ini berisi tentang tahap pengembangan sistem pendeteksi outlier
menggunakan algoritma Local Correlation Integral yaitu pengujian sistem. Di
bawah ini merupakan tahap-tahap pengujian terhadap sistem.
6.1
Rencana Pengujian
Pengujian terhadap sistem ini meliputi tiga metode pengujian, yaitu
pengujian Blackbox, pengujian efek perubahan nilai atribut terhadap hasil
deteksi outlier, dan pengujian reviewer dan validitas pengguna. Metode
pengujian dengan Blackbox adalah pengujian untuk mengetahui apakah
semua fungsi perangkat lunak telah berjalan semestinya sesuai dengan
kebutuhan
fungsional
yang
telah
didefinisikan.
Metode
Blackbox
memungkinkan perekayasa perangkat lunak mendapatkan serangkaian
kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional
untuk suatu program. Metode Blackbox dilakukan untuk menguji apakah
perangkat lunak berfungsi dengan benar. Pengujian efek perubahan nilai
atribut terhadap hasil deteksi outlier dilakukan dengan cara mengubah nilai
parameter yang dimiliki algoritma Local Correlation Integral yaitu nilai
radius. Pengujian review dan validasi oleh pengguna dilakukan dengan
membandingkan hasil deteksi outlier yang diperoleh melalui sistem dengan
hasil deteksi outlier yang dilakukan oleh pengguna dalam hal ini Kepala
Program Studi Teknik Informatika Universitas Sanata Dharma.
Berikut ini merupakan tabel rencana pengujian Blackbox yang akan
dilakukan pada masing-masing kelas uji. Rencana pengujian dipaparkan pada
tabel 6.1.
91
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 6.1 Tabel Rencana Pengujian
Kelas Uji
DatabaseConnection
Butir Uji
Koneksi
ke
Jenis Pengujian
dalam Blackbox
database (MySql dan
Oracle).
HalamanUtama
Menampilkan data file Blackbox
dalam extensi .xls
Menampilkan data file Blackbox
dengan extensi .csv
Menampilkan
data Blackbox
dari tabel basisdata.
Melakukan
seleksi Blackbox
atribut
Menampilkan
hasil Blackbox
deteksi outlier.
HalamanPilihDatabase
Menampilkan
pilihDatabase
form Blackbox
untuk
masuk ke basis data
sesuai dengan pilihan
pengguna.
HalamanPilihTabel
Menampilkan
tabel
daftar Blackbox
dari database
sesuai
pengguna.
pilihan
92
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
93
6.1.1 Hasil Pengujian Blackbox
6.1.1.1 Pengujian Input Data
Tabel
6.2
merupakan
hasil
pengujian
pada
kelas
HalamanUtama.
Tabel 6.2 Tabel Pengujian Input Data
Kasus Dan Hasil Uji (Data Benar)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Memasukkan
data
dari
Data tertampil ke Data
file dalam tabel.
Kesimpulan
tertampil Diterima
ke dalam tabel.
berekstensi .xls
Memasukkan
data
dari
Data tertampil ke Data
file dalam tabel.
tertampil Diterima
ke dalam tabel.
berekstensi .csv
Memasukkan
Data tertampil ke Data
data dari tabel dalam tabel.
tertampil Diterima
ke dalam tabel.
basisdata.
Menyeleksi
Atribut
atribut
tidak digunakan tidak digunakan
terhapus
Melakukan
yang Atribut
dari terhapus
tabel.
tabel.
Menghasilkan
Hasil
proses
deteksi output
outlier
deteksi
menggunakan
atribut terkait.
yang Diterima
dari
deteksi Diterima
hasil outlier berhasil
beserta ditampilkan.
algoritma Local
Correlation
Integral.
Kasus Dan Hasil Uji (Data Salah)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Input
data Menampilkan
dengan
Pesan
94
Kesimpulan
Diterima
extensi pesan peringatan peringatan
selain .xls atau “File yang anda berhasil
.csv
pilih
harus ditampilkan.
berformat
.xls
atau .csv”.
6.1.1.2
Pengujian Koneksi Database
Tabel 6.3 merupakan hasil pengujian pada kelas
KoneksiDatabase.
Tabel 6.3 Tabel Pengujian Koneksi Database
Kasus Dan Hasil Uji (Data Benar)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Memasukkan
Menampilkan
username,
pesan “Koneksi ditampilkan.
password,
url, ke
Pesan
Kesimpulan
berhasil Diterima
Database
dan
nama MySQL
database
benar Berhasil”.
(mySQL)
Memasukkan
Menampilkan
username,
pesan “Koneksi ditampilkan.
password,
url, ke
Database
dan
nama Oracle Berhasil”.
database
benar
(Oracle)
Pesan
berhasil Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Kasus Dan Hasil Uji (Data Salah)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Input username, Menampilkan
Pesan
Kesimpulan
Diterima
password, nama pesan peringatan peringatan
database, dan url “Username,
berhasil
ada yang kosong Password, Nama ditampilkan.
(mySQL).
Database,
dan
URL tidak boleh
kosong!”.
Input username, Menampilkan
Pesan
Diterima
password, nama pesan peringatan peringatan
database, dan url “Username,
berhasil
ada yang salah Password, Nama ditampilkan.
(mySQL).
Database,
dan
URL yang anda
masukkan
salah”.
Input username, Menampilkan
Pesan
Diterima
password, nama pesan peringatan peringatan
database, dan url “Username,
berhasil
ada yang kosong Password, Nama ditampilkan.
(Oracle).
Database,
dan
URL tidak boleh
kosong!”.
Input username, Menampilkan
Pesan
password, nama pesan peringatan peringatan
database, dan url “Username,
berhasil
ada yang salah Password, Nama ditampilkan.
(Oracle).
Database,
dan
Diterima
95
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
96
URL yang anda
masukkan
salah”.
6.1.1.3
Pengujian Halaman Pilih Tabel
Tabel
6.4
merupakan
hasil
pengujian
kelas
HalamanPilihTabel.
Tabel 6.4 Tabel Pengujian Halaman Tampil Tabel
Kasus Dan Hasil Uji (Data Benar)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Membuka
Menampilkan
HalamanPilihTabel
daftar
yang
dari
Daftar
Kesimpulan
tabel Diterima
tabel berhasil
berasal ditampilkan.
basisdata
yang
dipilih
pengguna.
6.1.14
Pengujian Seleksi Atribut
Tabel 6.5 merupakan hasil pengujian untuk fungsi
SeleksiAtribut.
Tabel 6.5 Tabel Pengujian Seleksi Atribut
Kasus Dan Hasil Uji (Data Benar)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Kesimpulan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Memilih
salah Atribut
yang Atribut berhasil Diterima
satu atau lebih dipilih terhapus.
dihapus
atribut
tabel.
akan
97
yang
dari
dihapus.
Kemudian
pengguna
menekan tombol
“Hapus”.
Menekan
Semua
atribut Semua
atribut Diterima
tombol “Hapus dihapus.
berhasil dihapus
Semua”.
dari tabel.
Menekan
Atribut
yang Semua
tombol “Batal”
ditandai menjadi dalam
tidak ditandai.
6.1.1.5
atribut Diterima
tabel
tidak ditandai.
Pengujian Deteksi Outlier
Tabel 6.6 merupakan hasil pengujian untuk fungsi
SeleksiAtribut pada kelas HalamanUtama.
Tabel 6.6 Tabel Pengujian Deteksi Outlier
Kasus Dan Hasil Uji (Data Benar)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Menginputkan
Hasil
parameter radius outlier
deteksi Hasil
deteksi Diterima
beserta outlier
beserta
berupa bilangan atributnya.
real dan alpha
berupa bilangan
real antara 0-1.
Kesimpulan
atributnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Kasus Dan Hasil Uji (Data Salah)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Input parameter Menampilkan
Pesan
Kesimpulan
Diterima
radius ada yang pesan peringatan peringatan
“Nilai
kosong
radius berhasil
tidak
boleh ditampilkan.
kosong!”.
Input parameter Menampilkan
Pesan
Diterima
alpha ada yang pesan peringatan peringatan
kosong
“Nilai
alpha berhasil
tidak
boleh ditampilkan.
kosong!”.
Input parameter Menampilkan
konstanta
Pesan
Diterima
ada pesan peringatan peringatan
yang kosong
“Nilai konstanta berhasil
tidak
boleh ditampilkan.
kosong!”.
Input parameter Menampilkan
Pesan
radius, alpha ada pesan peringatan peringatan
yang
bukan “Nilai
bilangan real dan harus
konstanta
yang
bilangan
positif > 0.
radius berhasil
bilangan ditampilkan.
ada real, nilai alpha
bukan antara 0-1 dan
bulat nilai
harus
kontsanta
bilangan
bulat positif >
0”.
Diterima
98
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
99
6.1.1.6 Pengujian Simpan Hasil Deteksi Outlier
Tabel 6.7 merupakan hasil pengujian untuk fungsi simpan
hasil deteksi outlier pada kelas HalamanUtama.
Tabel 6.7 Tabel Pengujian Simpan Hasil Deteksi Outlier
Kasus Dan Hasil Uji (Data Benar)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
diperoleh
Kesimpulan
Menekan
File tersimpan di File tersimpan di Diterima
tombol
lokasi yang telah lokasi yang telah
“Simpan” (.doc) di
pilih
pengguna
oleh di
pilih
oleh
dan pengguna
dan
berekstensi .doc
berekstensi .doc
Menekan
File tersimpan di File tersimpan di Diterima
tombol
lokasi yang telah lokasi yang telah
“Simpan” (.xls)
di
pilih
pengguna
oleh di
pilih
oleh
dan pengguna
dan
berekstensi .xls
berekstensi .xls
Menekan
File tersimpan di File tersimpan di Diterima
tombol
lokasi yang telah lokasi yang telah
“Simpan” (.txt)
di
pilih
pengguna
oleh di
pilih
oleh
dan pengguna
dan
berekstensi .txt
berekstensi .txt
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
100
6.1.2 Kesimpulan Hasil Pengujian Blackbox
Berdasarkan pengujian terhadap setiap fungsi sistem dengan
kasus uji seperti diatas, dapat disimpulkan bahwa Sistem Deteksi
Outlier Menggunakan Algoritma Local Correlation Integral ini dapat
menangani kesalahan (error handling) terhadap fungsi yang tidak
berjalan sesuai aturan dan dapat menghasilkan output yang sesuai
dengan yang diharapkan oleh pengguna.
6.1.3 Hasil Pengujian Efek Perubahan Nilai Atribut Penambangan
Data
Pengujian terhadapat Sistem Deteksi Outlier menggunakan
Algoritma Local Correlation Integral dapat dilakukan dengan
mengubah nilai input parameter radius. Berikut adalah tabel hasil
deteksi outlier mahasiswa angkatan 2007 dan 2008.
6.1.3.1 Pengujian Dengan Data Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes Tertulis.
Hasil pengujian dengan menggunakan data angakatan 2007
dan 2008 untuk jalur tes tertulis dipaparkan pada tabel 6.8.
Tabel 6.8 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan
Nilai Radius dan Konstanta yang berubah-ubah dan Nilai Alpha
= 0.5
k=1
k=2
k=3
r = 4.0
26, 28, 33, 36, 58, 72
26, 28, 36
-
r = 4.5
26, 28, 33, 36, 58, 69, 72
26, 28, 33
28
r = 5.0
26, 28, 33, 36, 58, 69, 72
26, 28, 33
28
r = 5.5
26, 28, 33, 36, 58
26, 28
28
r = 6.0
26, 28, 33, 58
28
28
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
101
6.1.3.2 Pengujian Dengan Data Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes Prestasi.
Hasil pengujian dengan menggunakan data angakatan 2007
dan 2008 untuk jalur prestasi dipaparkan pada tabel 6.9.
Tabel 6.9 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan nilai
radius dan konstanta yang berubah-ubah dan nilai alpha = 0.5
k=1
k=2
k=3
r = 3.0
10, 15, 16, 76, 79, 124
10, 15, 16, 76, 124
76
r = 3.5
15, 76, 124
76, 124
76
r = 4.0
76, 124
76, 124
76
r = 4.5
76, 124
76
76
r = 5.0
76
76
76
6.1.3.3 Pengujian Dengan Data Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Test Tertulis dan Jalur
Prestasi.
Hasil pengujian dengan menggunakan data angakatan 2007
dan 2008 untuk jalur tes tertulis dan jalur prestasi dipaparkan
pada tabel 6.10.
Tabel 6.10 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Test Tertulis dan Prestasi Semester 1
dengan nilai radius dan konstanta yang berubah-ubah dan nilai alpha =
0.5
r = 3.0
k=1
k=2
k=3
7, 10, 15, 16, 26, 27, 28,
10, 16, 26, 27,
28, 76
33, 36, 58, 68, 69, 76, 124
28, 36, 68, 76,
124
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
r = 3.5
7, 10, 16, 26, 27, 28, 36,
102
26, 28, 36, 76
28, 76
28, 76
28, 76
28, 76
28, 76
28, 76
28, 76
68, 69, 76, 124
r = 4.0
10, 16, 26, 27, 28, 36, 68,
69, 76, 124
r = 4.5
7, 10, 16, 19, 20, 21, 26,
27, 28, 36, 68, 69, 76, 124
r = 5.0
6.1.4
10, 16, 26, 27, 28, 36, 76
Kesimpulan Hasil Pengujian Efek Perubahan Nilai Atribut
Penambangan Data.
Dari percobaan dengan melakukan perubahan nilai radius dan
konstanta maka dapat disimpulkan bahwa:
1.
Jika nilai parameter radius tetap dan konstanta bertambah, maka
outlier yang dihasilkan akan semakin berkurang. Nilai radius
mempengaruhi jumlah outlier.
2.
Jika nilai parameter radius bertambah dan kosntanta tetap, maka
jumlah outlier yang didapatkan akan semakin berkurang. Nilai
konstanta mempengaruhi jumlah outlier.
3.
Nilai parameter radius sangat mempengaruhi besarnya nilai
MDEF, semakin kecil nilai parameter radius maka nilai MDEF
akan semakin mendekati 1.
6.1.5 Hasil Pengujian Review dan Validitas Pengguna
6.1.5.1 Perbandingan Perhitungan Manual dan Hasil Sistem
Dataset yang digunakan untuk proses deteksi adalah
data akademik mahasiswa Program Studi Teknik Informatika
angkatan 2007 yang diterima melalui jalur tes tertulis.
Atribut yang digunakan adalah data ips1, ips2, ips3, ips4,
nil11, nil12, nil13, nil14, dan nil15. Data tersebut akan diolah
dan dihitung secara manual menggunakan Microsoft Excel
untuk mendeteksi outlier dengan menggunakan algoritma
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
103
Local Correlation Integral. Hasil perhitungan manual
tersebut dibandingkan hasilnya dengan hasil perhitungan dari
Sistem Deteksi Outlier Menggunakan Algoritma Local
Correlation Integral.
Berikut adalah hasil perbandingan deteksi outlier dari
data 13 mahasiswa angkatan 2007 yang mengikuti jalur tes
tertulis menggunakan perhitungan manual dan perhitungan
sistem. Tabel 6.11 merupakan tabel yang berisi data 13
mahasiswa beserta atribut ips1, ips2, ips3, ips4, nill11, nil12,
nil13, nil14 dan nil15.
Tabel 6.11 Tabel Data Set untuk Perbandingan Manual dan Sistem
No
Alias
ips1 ips2 ips3 ips4 nil11 nil12 nil13 nil14 nil15
P1
2.94 3.27 2.96 2.81 2.80
2.00
2.00
2.00
1.60
P2
1.72 1.65 1.53 1.68 1.20
0.80
3.20
1.20
0.40
P3
2.56 2.77 2.52 3.13 2.40
1.60
2.00
2.80
2.00
P4
2.44 2.63 2.00 2.67 2.00
2.00
2.40
2.00
2.00
P5
2.94 2.59 1.55 2.35 2.40
1.60
2.40
1.20
2.80
P6
1.89 2.20 2.21 1.95 2.40
2.00
2.40
2.40
2.80
P7
4.00 3.52 3.43 3.70 2.40
2.40
1.60
1.60
2.80
P8
1.44 2.42 2.53 1.96 4.00
2.00
3.60
2.40
2.80
P9
3.72 3.48 3.36 3.65 3.20
2.40
2.40
2.80
2.00
P10
1.72 2.65 2.43 2.24 2.80
2.40
3.20
3.20
0.80
P11
3.28 2.75 2.90 3.00 2.80
2.40
2.80
2.40
2.40
P12
2.89 3.21 3.33 3.36 2.40
2.00
2.00
2.80
2.00
P13
2.89 3.18 3.04 2.95 2.00
2.00
3.20
2.00
2.80
Di bawah ini merupakan tabel 6.12 yang berisi hasil
perbandingan perhitungan secara manual dan perhitungan dengan
sistem.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
104
Tabel 6.12 Tabel Perbandingan Hasil Deteksi Outlier
Mahasiswa Angkatan 2007 Jalur Tes
Input
Parameter
Hasil Outlier
Semester
Hitung
(r, , dan k)
Sistem
Manual
1
P2
P2
r = 6;  =
2
P2
P2
0.5; k = 3
3
P2
P2
4
P2
P2
6.1.5.2 Kesimpulan Hasil Perbandingan Perhitungan Manual
dengan Perhitungan Sistem.
Dari hasil perbandingan perhitungan manual dengan
perhitungan sistem untuk data mahasiswa program studi
Teknik Informatika angkatan 2007 melalui jalur tes tertulis
dengan pendeteksian outlier yang dilakukan menghasilkan
hasil outlier dari perhitungan manual dan perhitungan sistem
yang sama. Maka dapat disimpulkan bahwa Sistem Deteksi
Outlier Menggunakan Algoritma Local Correlation Integral
dapat menghasilkan output sesuai dengan yang diharapkan
seperti pada perhitungan manual.
6.1.5.3 Hasil Deteksi dari Sistem untuk Pengujian Review dan
Validitas oleh Pengguna
Pengujian ini dilakukan untuk mengetahui bahwa hasil
deteksi outlier adalah benar, oleh karena itu perlu dilakukan
analisis oleh Kepala Program Studi (Kaprodi) Teknik
Informatika.
Analisis
ini
dilakukan
untuk
mempertimbangkan apakah kumpulan nilai yang dimiliki
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
105
oleh mahasiswa yang dinyatakan sebagai outlier tersebut
memang berbeda dari mahasiswa lain.
Berikut ini merupakan hasil outlier yang diperoleh
sistem untuk tiga macam dataset, detail data dapat dilihat di
lampiran 6.
1.
Hasil deteksi outlier mahasiswa angkatan 2007-2008
jalur test tertulis dengan jumlah data 54 mahasiswa,
atribut yang digunakan adalah ips1, ips2, ips3, ips4,
nil11, nil12, nil13, nil14, dan nil15. Parameter yang
digunakan radius = 6.0, alpha = 0.5, dan konstanta = 3.
Tabel 6.13 merupakan tabel hasil perhitungan sistem
mahasiswa angkatan 2007-2008 untuk jalur tes tertulis.
Tabel 6.13 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Tes Tertulis
Sem
Nomor
Urut
ips1
ips2
ips3
ips4 nil11 nil12 nil13 nil14 nil15
1
28
1.72
-
-
-
1.20
0.80
3.20
1.20
0.40
2
28
-
1.65
-
-
1.20
0.80
3.20
1.20
0.40
3
28
-
-
1.53
-
1.20
0.80
3.20
1.20
0.40
74
-
-
0.19
-
3.20
2.00
3.60
3.20
1.60
28
-
-
-
1.68
1.20
0.80
3.20
1.20
0.40
67
-
-
-
0.00
2.80
2.00
1.20
1.60
1.60
4
2.
Hasil deteksi outlier mahasiswa angkatan 2007-2008
jalur prestasi dengan jumlah data 72 mahasiswa, atribut
yang digunakan adalah ips1, ips2, ips3, ips4, dan nilai
final. Parameter yang digunakan radius = 3.0, alpha =
0.5, dan konstanta = 3.
Tabel 6.14 merupakan tabel hasil perhitungan sistem
mahasiswa angkatan 2007-2008 untuk jalur prestasi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
106
Tabel 6.14 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur
Prestasi
Sem
Nomor
ips1
ips2
ips3
ips4
final
1
76
0.85
-
-
-
2.85
2
17
-
0.32
-
-
2.72
124
-
0.44
-
-
2.90
3
-
-
3.78
-
2.78
17
-
-
0.69
-
2.72
107
-
-
3.76
-
3.33
88
-
-
-
0.94
2.89
94
-
-
-
1.20
2.77
122
-
-
-
1.47
3.05
3
4
3.
Urut
Hasil deteksi outlier mahasiswa angkatan 2007-2008
jalur test tertulis dan prestasi dengan jumlah data 126
mahasiswa, atribut yang digunakan adalah ips1, ips2,
ips3, ips4, dan nilai final. Parameter yang digunakan
radius = 3.5, alpha = 0.5, dan konstanta = 3.
Tabel 6.15 merupakan tabel hasil perhitungan sistem
mahasiswa angkatan 2007-2008 untuk jalur tes tertulis.
Tabel 6.15 Tabel Hasil Perhitungan Sistem 2007-2008
Jalur Tes dan Prestasi
Sem
1
2
Nomor
Urut
ips1 ips2 ips3 ips4 final
Jalur
Tes
28
1.72
-
-
-
1.12
Tes
76
0.85
-
-
-
2.85
Prestasi
17
-
0.32
-
-
2.72
Prestasi
28
-
1.65
-
-
1.12
Tes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3
4
68
-
1.00
-
-
2.00
Tes
124
-
0.44
-
-
2.90
Prestasi
17
-
-
0.69
-
2.72
Prestasi
28
-
-
1.53
-
1.12
Tes
50
-
-
0.59
-
2.56
Tes
74
-
-
0.19
-
2.56
Tes
46
-
-
-
0.31
2.76
Tes
47
-
-
-
0.05
2.40
Tes
67
-
-
-
0.00
2.04
Tes
68
-
-
-
0.00
2.00
Tes
107
6.1.5.4 Kesimpulan Hasil Pengujian Review dan Validitas oleh
Pengguna.
1.
Dari pengujian data akademik mahasiswa 2007-2008
jalur tes tertulis didapat hasil sebagai berikut:
a.
Pada semester 1 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 28. Mahasiswa dengan nomor urut 28
dinyatakan sebagai outlier karena mahasiswa
tersebut memiliki nilai ips1 dan nilai tes masuk yang
rendah juga.
b.
Pada semester 2 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 28. Mahasiswa dengan nomor urut 28 masih
tetap dinyatakan sebagai outlier karena mahasiswa
tersebut memiliki nilai ips2 dan nilai tes masuk yang
rendah juga.
c.
Pada semester 3 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 28 dan 74. Mahasiswa dengan nomor urut 28
masih tetap dinyatakan sebagai outlier karena
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
108
mahasiswa tersebut memiliki nilai ips3 dan nilai tes
masuk yang rendah juga. Mahasiswa dengan nomor
urut
74
dinyatakan
sebagai
outlier
karena
mahasiswa tersebut memiliki nilai ips3 yang sangat
rendah dan nilai tes masuk tinggi.
d.
Pada semester 4 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 28 dan 67. Mahasiswa dengan nomor urut 28
dari semester 1 sampai semester 4 dinyatakan
sebagai outlier karena mahasiswa tersebut memiliki
nilai ips4 dan nilai tes masuk yang rendah juga.
Mahasiswa dengan nomor urut 67 dinyatakan
sebagai outlier karena memiliki nilai ips 4 yang
sangat rendah yaitu 0.00 dan memiliki nilai test
masuk yang rendah.
2.
Dari pengujian data akademik mahasiswa 2007-2008
jalur prestasi didapat hasil sebagai berikut:
a.
Pada semester 1 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 76. Mahasiswa dengan nomor urut 76
dinyatakan sebagai outlier karena mahasiswa
tersebut memiliki nilai ips 1 sangat rendah dan nilai
tes masuk yang berada di tengah-tengah.
b.
Pada semester 2 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 17 dan 124. Mahasiswa dengan nomor urut 17
dinyatakan sebagai outlier karena mahasiswa
tersebut memiliki nilai ips 2 yang sangat rendah dan
memiliki nilai tes masuk yang rendah dibanding
dengan mahasiswa lain. Mahasiswa dengan nomor
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
109
urut 124 dinyatakan sebagai outlier karena memiliki
nilai ips 2 yang sangat rendah dan memiliki nilai tes
masuk yang berada di tengah-tengah.
c.
Pada semester 3 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 3, 17, dan 107. Mahasiswa dengan nomor urut
3 dinyatakan sebagai outlier karena mahasiswa
tersebut memiliki nilai ips 3 yang sangat tinggi
tetapi nilai tes masuk rendah. Mahasiswa dengan
nomor urut 17 pada semester 2 dinyatakan sebagai
outlier dan pada semester 3 masih tetap dinyatakan
sebagai outlier karena mahasiswa tersebut memiliki
nilai ips 3 yang sangat rendah dan memiliki nilai tes
masuk yang rendah dibanding dengan mahasiswa
lain. Mahasiswa dengan nomor urut 107 dinyatakan
sebagai outlier karena memiliki nilai ips 3 yang
sangat tinggi dan memiliki nilai tes masuk yang
sangat tinggi.
d.
Pada semester 4 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 88, 94, dan 122. Mahasiswa dengan nomor urut
88 dinyatakan sebagai outlier karena mahasiswa
tersebut memiliki nilai ips 4 yang sangat rendah dan
memiliki nilai test masuk yang berada di tengahtengah. Mahasiwa dengan nomor urut 94 dinyatakan
sebagai outlier karena mahasiswa tersebut memiliki
nilai ips 4 yang rendah dan memiliki nilai tes masuk
yang rendah dibanding dengan mahasiswa lain.
Mahasiswa
dengan
nomor
mahasiswa
122
dinyatakan sebagai outlier karena mahasiswa
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
110
tersebut memiliki nilai ips 4 yang rendah tetapi
memiliki nilai tes masuk yang tinggi.
3.
Dari pengujian data akademik mahasiswa 2007-2008
jalur tes tertulis dan prestasi didapat hasil sebagai
berikut:
a.
Pada semester 1 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 28 dan 76. Mahasiswa dengan nomor urut 28
dinyatakan sebagai outlier karena mahasiswa
tersebut
memiliki
nilai
ips1
yang
rendah.
Mahasiswa dengan nomor urut 76 dinyatakan
sebagai outlier karena mahasiswa tersebut memiliki
nilai ips 1 yang sangat rendah.
b.
Pada semester 2 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 17, 28, 68, dan 124. Mahasiswa dengan nomor
urut
17
dinyatakan
sebagai
outlier
karena
mahasiswa tersebut memiliki nilai ips 2 yang sangat
rendah. Mahasiswa dengan nomor urut 28 pada
semester 2 masih dinyatakan sebagai outlier karena
mahasiswa tersebut memiliki nilai ips2 rendah.
Mahasiswa dengan nomor urut 68 dinyatakan
sebagai outlier karena mahasiswa tersebut memiliki
nilai ips 2 yang rendah. Mahasiswa dengan nomor
urut 124 dinyatakan sebagai outlier karena memiliki
nilai ips 2 yang sangat rendah.
c.
Pada semester 3 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 17, 28, 50 dan 74. Mahasiswa dengan nomor
urut
17
dinyatakan
sebagai
outlier
karena
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
111
mahasiswa tersebut memiliki nilai ips 3 yang sangat
rendah. Mahasiswa dengan nomor urut 28 masih
dinyatakan sebagai outlier karena mahasiswa
tersebut
memiliki
nilai
ips3
yang
rendah.
Mahasiswa dengan nomor urut 50 dinyatakan
sebagai outlier karena mahasiswa tersebut memiliki
nilai ips 3 yang sangat rendah. Mahasiswa dengan
nomor urut 74 dinyatakan sebagai outlier karena
memiliki nilai ips 3 yang sangat rendah.
d.
Pada semester 4 mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor
urut 46, 47, 67, dan 68. Mahasiswa dengan nomor
urut 46 dinyatakan sebagai outlier karena memiliki
nilai ips 4 yang sangat rendah. Mahasiswa dengan
nomor urut 47 dinyatakan sebagai outlier karena
memiliki nilai ips 4 yang sangat rendah. Mahasiswa
dengan nomor urut 67 dinyatakan sebagai outlier
karena memiliki nilai ips 4 yang sangat rendah yaitu
0.00. Mahasiswa dengan nomor urut 68 dinyatakan
sebagai outlier karena memiliki nilai ips 4 yang
sangat rendah yaitu 0.00.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.2
112
Kelebihan dan Kekurangan Sistem
Sistem Deteksi Outlier Menggunakan Algoritma Local Correlation
Integral memiliki kelebihan dan kekurangan sebagai berikut:
6.2.1 Kelebihan Sistem
Kelebihan dari Sistem Deteksi Outlier Menggunakan Algoritma Local
Correlation Integral adalah sebagai berikut:
1.
Sistem ini mampu membaca input data dengan format .xls dan
.csv
2.
Sistem ini mampu membaca input data yang berasal dari database
Oracle dan mySQL.
3.
Sistem ini mampu menyeleksi atribut pada data yang diinputkan
oleh pengguna.
4.
Sistem ini mampu menyimpan hasil outlier dengan format .doc,
.xls, dan .txt
6.2.2 Kekurangan Sistem
Kekurangan dari Sistem Deteksi Outlier Menggunakan Algoritma
Local Correlation Integral adalah sebagai berikut:
1. Sistem ini tidak mampu membaca inputan data dengan format
selain .xls dan .csv
2. Sistem ini tidak dapat menyeleksi baris pada data yang diinputkan
oleh pengguna.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VII
KESIMPULAN DAN SARAN
7.1
Kesimpulan
Dari hasil penelitian tentang Deteksi Outlier Menggunakan Algoritma
Local Correlation Integral dengan studi kasus data mahasiswa Program Studi
Teknik Informatika Universitas Sanata Dharma Yogyakarta angkatan 2007
dan 2008 maka dapat ditarik kesimpulan sebagai berikut:
1.
Sistem Deteksi Outlier Menggunakan Algoritma Local Correlation
Integral telah berhasil dibangun menjadi aplikasi yang dapat
mendeteksi outlier pada sekumpulan data numerik.
7.2
2.
Nilai radius sangat berpengaruh terhadap hasil deteksi outlier.
3.
Nilai konstanta sangat berpengaruh terhadap hasil deteksi outlier.
Saran
Dari hasil analisis pada tugas akhir ini, penulis memberikan saran untuk
perbaikan dan pengembangan program lebih lanjut antara lain:
1.
Sistem ini seharusnya dilengkapi dengan fungsi tambahan agar dapat
menerima inputan selain file dengan format .xls dan .csv.
2.
Sistem ini seharusnya dilengkapi dengan fungsi tambahan agar dapat
melakukan seleksi pada baris.
113
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
114
DAFTAR PUSTAKA
Amer, Mennatallah. 2011. Comparison of Unsupervised anomaly Detection
Teqniques. Germany.
Atastina, Imelda. Analisis Outlier. CS 4333-Data Mining.
Dunham, H. Margareth (2002), Data Mining: Introductory and Advanced, Prentice
Hall.
Fayyad, U., Piatetsky-Shapiro, G. dan Smyth, P. (1996), From Data Mining to
Knowledge Discovery in Databases, AAAI and The MIT Pres, 37-53.
Handriyadi, Dedy., M. Arif Bijaksana, Ir. Mtech, Erwin Budi Setiawan, MT (2009),
Analisis Perbandingan Clustering-Based, Distance-Based, dan DensityBased dalam Mendeteksi Outlier.
Han, J., & Kamber, M. (2006). Data Mining Concept and Techniques. San
Fransisco: Elsevier.
Peter Cabens, Pablo Hadjinian, Rolf Stadler, Jaap Verhees, dan Alesandro Zanasi,
1998, Discovering Data Mining: from Concept to Implementation,
Prentice Hall, New Jersey, USA.
Prasetyo, Eko. Data Mining - Konsep dan Aplikasi menggunakan MATLAB.
Yogyakarta: Penerbit Andi.
Spiros Papadimitriou, Hiroyuki Kitagawa, Phillip B. Gibbons, and Christos
Faloutsos. Loci: Fast outlier detection using the local correlation integral.
Data Engineer-ing, International Conference on, 0:315, 2003.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 1
Diagram Use Case
Input data file .xls, .csv,
atau tabel database
<<extends>>
<<depends on>>
Seleksi Atribut
Deteksi Outlier
Pengguna
<<depends on>>
Simpan Hasil Deteksi
Outlier
115
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
116
LAMPIRAN 2
Deskripsi Use Case
Nomor
Nama Use Case
Deskripsi
Aktor
Use Case
001
Input data file .xls, Use case input data file .xls, .csv Pengguna
.csv,
atau
tabel atau
basisdata
tabel
basisdata
ini
menggambarkan proses dimana
pengguna memilih data dengan file
berformat .xls, .csv, atau tabel dari
database. Setelah memilih file atau
tabel mana yang akan diinputkan,
sistem akan menampilkan data
tersebut ke dalam tabel untuk
proses deteksi.
002
Deteksi outlier
Use
case
deteksi
outlier Pengguna
menggambarkan tentang proses
pencarian outlier pada data yang
telah di masukkan oleh pengguna.
003
Simpan
deteksi outlier
hasil Use case simpan hasil deteksi Pengguna
outlier
menggambarkan
proses
penyimpanan hasil deteksi outlier.
Dimana
pengguna
dapat
menyimpan hasil deteksi outlier ke
dalam file dengan format .xls, .doc,
dan .txt.
004
Seleksi atribut
Use
case
menggambarkan
seleksi
proses
atribut Pengguna
seleksi
atribut, dimana pengguna dapate
memilih atribut mana yang akan di
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
gunakan untuk proses deteksi, dan
atribut mana yang akan di hapus.
117
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
118
LAMPIRAN 3
Narasi Use Case
Use case menggambarkan interaksi antara sistem dan pengguna atau sistem
eksternal. Use case menggambarkan siapa yang akan menggunakan sistem dan
dengan cara bagaimana pengguna berinteraksi dengan sistem. Narasi use case
digunakan untuk menggambarkan langkah-langkah dalam interaksi sistem dengan
penggunanya.
1.
Narasi Use Case Input data dari file .xls, .csv atau tabel basisdata.
Nama Use Case
Input data dari file .xls, .csv atau
tabel basisdata
ID Use Case
Jenis Use Case
Kebutuhan
001
Operasional
Prioritas
Pelaku Utama
Pengguna
Pelaku Lain yang Terlibat
-
Pihak Lain yang
-
Berkepentingan
Deskripsi
Use case input data file .xls, .csv atau tabel basisdata ini
menggambarkan proses dimana pengguna memilih data
dengan file berformat .xls, .csv, atau tabel dari database.
Setelah memilih file atau tabel mana yang akan
diinputkan, sistem akan menampilkan data tersebut ke
dalam tabel untuk proses deteksi.
Kondisi Awal
Pengguna masuk ke sistem dan berada Halaman Utama
tab Preprosessing.
Urutan Aktivitas Normal
Aksi Aktor
Langkah
1:
Pengguna
menekan tombol ‘Pilih File’
untuk memilih file yang
Respon Sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
akan
digunakan
proses
deteksi
119
untuk
dengan
format .xls atau .csv.
Langkah
2:
Sistem
menampilkan
File
Chooser
atau
kotak
dialog untuk memilih
file.
Langkah
3:
Pengguna
memilih file .xls atau .csv
kemudian menekan tombol
‘Open’.
Langkah
4:
Sistem
menampilkan data yang
telah di pilih pada tabel
‘dataPreprocessTable’ di
Halaman
Utama
tab
Preprosessing.
Aktivitas Alternnatif
Aksi Aktor
Langkah
1:
menekan
tombol
Respon Sistem
Pengguna
‘Pilih
Database’ untuk memilih
file yang akan digunakan
untuk proses deteksi dari
tabel database.
Langkah
2:
Sistem
menampilkan Halaman
Pilih Database.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Langkah
3:
120
Pengguna
memilih database yang akan
di ambil datanya.
Langkah
4:
memasukkan
Pengguna
username,
password, nama database,
dan URL.
Langkah
5:
Pengguna
menekan tombol ‘OK’.
Langkah
6:
Sistem
menampilkan
doalog
bahwa koneksi berhasil.
Langkah
7:
Pengguna
menekan tombol ‘OK’.
Langkah
8:
Sistem
menampilkan Halaman
Pilih Tabel.
Langkah
9:
Pengguna
memilih tabel yang akan
digunakan
untuk
proses
deteksi.
Langkah
10:
Pengguna
menekan tombol ‘OK’.
Langkah
11:
Sistem
menampilkan data yang
telah di pilih di tabel
‘dataPreprocessTable’
dan menampilkan atribut
data
di
tabel
‘selekssiTabel’ pada tab
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
121
Preprosessing
dan
menampilkan di tabel
‘dataOutlierTable’ pada
tab Deteksi Outlier.
Kondisi Akhir
Data yang telah dipilih akan tampil pada tabel
‘dataPreprocessTable’ yang terdapat pada Halaman
Utama.
2.
Narasi Use Case Deteksi Outlier.
Nama Use Case
Deteksi Outlier
ID Use Case
002
Jenis Use Case
Kebutuhan
Operasional
Prioritas
Pelaku Utama
Pengguna
Pelaku Lain yang Terlibat
-
Pihak Lain yang
-
Berkepentingan
Deskripsi
Use case deteksi outlier menggambarkan tentang proses
pencarian outlier pada data yang telah di masukkan oleh
pengguna.
Kondisi Awal
Pengguna telah melakukan seleksi atribut pada tab
Preprosessing dan telah menekan tombol ‘Submit’.
Pengguna berada pada tab Preprosessing.
Urutan Aktivitas Normal
Aksi Aktor
Langkah
1:
Pengguna
menginputkan nilai radius,
alpha, dan konstanta.
Langkah
2:
Pengguan
menekan tombol ‘Proses’.
Respon Sistem
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Langkah
3:
122
Sistem
melakukan
proses
pencarian
outlier
berdasarkan
Local
algoritma
Correlation
Integral.
Langkah
4:
Sistem
menampilkan
hasil
outlier kedalam tabel
‘HasilOutlierTable’
pada tab Deteksi Outlier.
Aktivitas Alternatif
-
Kondisi Akhir
Pengguna
dapat
melihat
hasil
deteksi
outlier
menggunakan algoritma Local Correlation Integral
pada tabel ‘HasilOutlierTable’.
3.
Narasi Use Case Simpan Hasil Deteksi Outlier.
Nama Use Case
Simpan Hasil Deteksi Outlier
ID Use Case
003
Jenis Use Case
Kebutuhan
Operasional
Prioritas
Pelaku Utama
Pengguna
Pelaku Lain yang Terlibat
-
Pihak Lain yang
-
Berkepentingan
Deskripsi
Use case simpan hasil deteksi outlier menggambarkan
proses penyimpanan hasil deteksi outlier. Dimana
pengguna dapat menyimpan hasil deteksi outlier ke
dalam file dengan format .xls, .doc, dan .txt.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Kondisi Awal
123
Pengguna berada pada tab Deteksi Outlier. Sistem
menampilkan
hasil
deteksi
outlier
pada
tabel
‘HasilDeteksiTable’.
Urutan Aktivitas Normal
Aksi Aktor
Langkah
1:
Respon Sistem
Pengguna
menekan tombol ‘Simpan’.
Langkah
2:
Sistem
menampilkan
kotak
dialog penyimpanan file.
Langkah
3:
memilih
Pengguna
lokasi
penyimpanan file.
Langkah
4:
Pengguna
memasukkan nama file.
Langkah
5:
Pengguna
memilih extensi file data.
Langkah
6:
Pengguna
menekan tombol ‘Save’.
Langkah
7:
Sistem
menyimpan hasil deteksi
outlier sesuai dengan
nama file, format file,
dan lokasi penyimpanan
file.
Langkah
8:
Sistem
menampilkan
doalog
bahwa
hasil
deteksi
outlier
telah
berhasil
disimpan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Langkah
9:
124
Pengguna
menekan tombol ‘OK’.
Aktivitas Alternatif
-
Kondisi Akhir
Hasil
deteksi
outlier
tersimpan dalam format file
berekstensi tertentu sesuai
dengan pilihan pengguna.
4.
Narasi Use Case Seleksi Atribut.
Nama Use Case
Seleksi Atribut
ID Use Case
004
Jenis Use Case
Kebutuhan
Operasional
Prioritas
Pelaku Utama
Pengguna
Pelaku Lain yang Terlibat
-
Pihak Lain yang
-
Berkepentingan
Deskripsi
Use case seleksi atribut menggambarkan proses seleksi
atribut, dimana pengguna dapat memilih atribut mana
yang akan di gunakan untuk proses deteksi, dan atribut
mana yang akan di hapus.
Kondisi Awal
Pengguna berada pada tab Preprosessing pada Halaman
Utama. Sistem menampilkan data pada tabel di
Halaman Utama.
Urutan Aktivitas Normal
Aksi Aktor
Respon Sistem
Langkah
1:
Sistem
menampilkan
daftar
atribut
pada
‘seleksiTable’.
tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Langkah
2:
125
Pengguna
menandai atribut yang akan
dihapus dari tabel.
Langkah
3:
Pengguna
menekan tombol ‘Hapus’.
Langkah
4:
Sistem
menghapus atribut yang
dipilih
beserta
data
dalam tabel data yang
berada
di
Halaman
Utama.
Aktivitas Alternatif
-
Kondisi Akhir
Atribut yang dipilih berhasil di hapus dari tabel.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 4
Diagram Proses Umum Sistem
STAR
Data File .csv
Data File .xls
Data Basisdata
Pilih Seleksi
Tabel
Tidak
Input radius,
alpha, dan
konstanta
Proses Deteksi
Hasil Deteksi
Outlier
END
Ya
Proses Seleksi
126
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 5
Diagram Aktivitas
1.
Diagram Aktivitas Memilih File .xls atau .csv
Pengguna
Sistem
Menekan tombol pilih file
Menampilkan halaman
jFileChooser
Memilih file .xls atau .csv
Menampilkan data ke
dalam tabel
127
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
Diagram Aktivitas Input Data dari Tabel Database.
Sistem
Pengguna
Menekan tombol pilih
database
Menampilkan halaman
pilih database
Memilih database
(Oracle atau mySQL)
Pilih
Oracle
Memasukkan
username, password,
nama database, dan
URL
Ya
Tidak
Menekan tombol OK
Memasukkan
username, password,
nama database, dan
URL
Menekan tombol OK
Tidak
Menekan tombol OK
Koneksi Berhasil
Ya
Menekan tombol OK
Menampilkan kotak
dialog koneksi berhasil
Memilih tabel
Menampilkan halaman
pilih tabel
Menekan tombol OK
Menampilkan data ke
dalam tabel
128
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
129
Diagram Aktivitas Deteksi Outlier.
Pengguna
Sistem
Memasukkan nilai radius,
alpha, dan konstanta
Menekan tombol Proses
Melakukan proses deteksi
outlier
Menampilkan hasil deteksi
outlier ke dalam tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.
130
Diagram Aktivitas Simpan Hasil Deteksi Outlier.
Pengguna
Menekan tombol Simpan
Sistem
Menampilkan kotak dialog
penyimpanan file
Memilih lokasi
penyimpanan file
Memasukkan nama file
Memilih extensi file data
Menekan tombol Save
Menyimpan hasil outlier
Menekan tombol OK
Menampilkan dialog hasil
outlier berhasil disimpan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.
131
Diagram Aktivitas Seleksi Atribut.
Pengguna
Sistem
Menandai atribut yang
akan dihapus dari tabel
Menampilkan daftar atribut
pada tabel seleksi atribut
Menekan tombol Hapus
Menghapus atribut beserta
data pada tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
132
LAMPIRAN 6
Diagram Kelas Analisis
HalamanPilihFile
HalamanAwal
KoneksiDataBase
HalamanPilihTabel
Halaman Utama
HalamanPilihDatabase
DatabaseController
Pengguna
CheckBoxTableModel
HalamanBantuan
HalamanTentang
SeleksiAtribut
Graph
Verteks
LociTableModel
DataLoci
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
133
LAMPIRAN 7
Diagram Sequence
1.
Diagram Sequence Memilih File .xls atau .csv
Pengguna
<<boundary>>
HalamanUtama
<<entity>>
ChecBoxTableModel
1. Tekan tombol Pilih File
2. Tampil jFileChooser
3. Memilih file .xls atau .csv
4. pilihFile()
5. new
CheckBoxTableModel
6. setAtribut(), getAtribut(), setPilih(), getPilih()
7. setPilih(false)
8. add(column, seleksiAtribut)
9. Menampilkan data ke tabel
dataPreprocessTable
10. Menampilkan data ke tabel seleksiTable
<<entity>>
SeleksiAtribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
Pengguna
134
Diagram Sequence Input Data dari Tabel Database.
<<boundary>>
HalamanUtama
<<boundary>>
HalamanPilihDatabase
<<controller>>
DatabaseController
<<entity>>
KoneksiDataBase
1. Menekan tombol Pilih
2. db.setVisible(true)
3. Menampilkan HalamanPilihDatabase
4. Memilih konksi database, mengisi username,
password, database name, dan URL.
5. pilihDatabase()
6. selectTable(kdb.getConnection(), table)
7. isConncectedSQL(),
IsConnectedOracle()
8. Connected()
9. showTable()
10. Menampilkan HalamanPilihTable
11. Memilih tabel
12. selectTable()
13. Menampilkan tabel data preprosesing
14. new CheckBoxTableModel()
15. setAtribut(model.getColumnName(i)
16. setPilih(false)
17. add(column, seleksiAtribut)
18. Menampilkan data
pada tab Preprosessing
19. Menampilkan data pada tabelSeleksi
<<boundary>>
HalamanPilihTabel
<<entity>>
CheckBoxTableModel
<<entity>>
SeleksiAtribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
135
Diagram Sequence Deteksi Outlier.
Pengguna
<<boundary>>
HalamanUtama
<<controller>>
Graph
<<entity>>
Vertex
<<entity>>
LociTableModel
1. Menginputkan radius
2. Menginputkan alpha
3. Menginputkan konstanta
4. Menekan tombol Proses
5. inputData(jTable)
6. new graph()
7. new vertex()
8. setRadius(radius)
9. setAlpha(alpha)
10. setKonstanta(konstanta)
11. cariLoci()
12.setDataLoci
13. setLabel, setMdef, setKomdef
14. setValueAt, getValueAt
15. tableModel
16. Menampilkan hasil
deteksi outlier
<<entity>>
DataLoci
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.
Diagram Sequence Simpan Hasil Deteksi Outlier.
Pengguna
<<boundary>>
HalamanUtama
1. Menekan tombol Simpan
2. Menampilkan Save Dialog
3. Memilih lokasi penyimpanan
4. Mengisi nama file
5. Memilih tipe file
6. Menekan tombol Save
7. simpanLoci()
8. Menampilkan pesan file
berhasil disimpan
136
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.
137
Diagram Sequence Seleksi Atribut.
Pengguna
<<boundary>>
HalamanUtama
<<entity>>
ChecBoxController
1. Memilih atribut
2. Menekan tombol Hapus
3. hapusAtribut()
3. removeRow()
4. getPilih()
4. Menghapus atribut yang di pilih
<<entity>>
SeleksiAtribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
138
LAMPIRAN 8
Diagram Kelas Desain
memanggil 1
<<boundary>>
HalamanAwal
1
<<boundary>>
HalamanPilihFile
memanggil
1
<<boundary>>
HalamanUtama
1
1
<<boundary>>
1
1
HalamanPilihDatabase
memanggil
memanggil
1
memanggil
memanggil
1
*
<<controller>>
DatabaseController
1
1
memanggil
<<boundary>>
HalamanPilihTable
<<entity>>
KoneksiDatabase
1
1 *
<<entity>>
CheckBoxTableModel
memanggil
<<entity>>
SeleksiAtribut
memiliki
1
memanggil
<<controller>>
Graph
1
1
*
<<entity>>
Verteks
memanggil
1
1
memanggil
1
memanggil
<<boundary>>
HalamanBantuan
<<boundary>>
HalamanTentang
*
<<entity>>
LociTableModel
1
1
memanggil
<<entity>>
DataLoci
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
139
LAMPIRAN 9
Diagram Kelas
Berikut ini merupakan rincian dan method untuk masing-masing diagram kelas:
<<entity>>
DatabaseConnection
+ selectTable(Connection conn, String namaTable): ResultSet
+ tampilTabelMYSql(Connection conn): ResultSet
+ tampilTabelOracle(Connection conn): ResultSet
<<controller>>
Graph
- adjMat
: Double[][]
- alpha
: Double
- arneighbors
: int[][]
- konstanta
: int
- max
: int
- npar
: int [][]
- npir
: int[][]
- radius
: Double
- rneighbors
: int[][]
- size
: int
- vertexList
: Verteks[]
+ Graph(int maxVertex)
: Konstruktor
+ Search(String label)
: int
+ Search2(String label)
: void
+ addEdge(int awal, int akhir, Double nilai)
: void
+ addVertex(String label, List<Double> nilai)
: void
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
+ cariARNeighborhood(Double radius, int indeks)
: void
+ cariAnggotaARNeighbor(int indeks, Double radius)
: List<String>
+ cariAnggotaRNeighbor(int indeks, Double radius)
: Double
+ cariJarakEcludian(int indexAwal, int indexTujuan)
: Double
+ cariLoci()
: Double
+ cariRNeighborhood(Double radius, int indeks)
: void
+ getAdjMat()
: List<String>
+ getAlpha()
: Double
+ getKonstanta()
: int
+ getRadius()
: Double
+ getSize()
: Double
+ getVertexList()
: int
+ inputData(JTable jTableData)
: Verteks[][]
+ jumlahARNeighbors()
: void
+ jumlahRNeighbors()
: void
+ setARNeighborhood(String label)
: void
+ setAdjMat(Double[][] adjMat)
: void
+ setAlpha(Double alpha)
: void
+ setAnggotaArNeighbor(String label, Double radius)
: void
+ setAnggotaRNeighbor(String label, Double radius)
: void
+ setDataLoci(String label)
: LociTabelModel
+ setJumlahAnggota()
: void
+ setKonstanta(int konstanta)
: void
+ setNpar()
: void
+ setNpir()
: void
+ setRNeighborhood
: void
+ setRadius(Double radius)
: void
+ setVertexList(Vertex[] verteList)
: void
+ tampilARNeighbor()
: void
+ tampilJarakEcludien()
: void
+ tampilRNeighbor()
: void
140
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<entity>>
Seleksi Atribut
- atribut
: String
- pilih
: Boolean
+ SeleksiAtribut()
: Konstruktor
+ SeleksiAtribut(String atribut, Boolean pilih)
: Konstruktor
+ getAtribut()
: String
+ getPilih()
: Boolean
+ setAtribut(String atribut)
: void
+ setPilih(Boolean pilih)
: void
<<entity>>
Verteks
- AnggotaARNeighbor
: Double
- AnggotaRNeighbor
: Double
- arNeighbor
: List<String>
- avgNpira
: Double
- jumlah_arNeighbors
: int
- jumlah_rNeighbors
: int
- komdef
: Double
- label
: String
- mdef
: Double
- nilai
: List<Double>
- omdef
: Double
- rNeighbors
: List<String>
- stdevNpira
: Double
- wasVisited
: boolean
+ Verteks(String label, List<Double> nilai)
: Konstruktor
141
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
+ getAnggotaARNeighbor()
: Double
+ getAnggotaRNeighbor()
: Double
+ getArNeighbors()
: List<String>
+ getAvgpira()
: Double
+ getJumlah_arNeighbors()
: int
+ getJumlah_rNeighbors()
: int
+ getKomdef()
: Double
+ getLabel()
: String
+ getMdef()
: Double
+ getNilai()
: List<Double>
+ getOmdef()
: Double
+ getStdevNpira()
: Double
+ getrNeighbors
: List<String>
+ isWasVisited
: boolean
+ setAnggotaARNeighbor(Double AnggotaARNeighbor)
: void
+ setAnggotaRNeighbor(Double AnggotaRNeighbor)
: void
+ setArNeighbors(List<String> arNeighbors)
: List<String>
+ setAvgNpira(Double avgNpira)
: void
+ setJumlah_arNeighbors(int jumlah_arNeighbors)
: void
+ setJumlah_rNeighbors(int jumlah_rNeighbors)
: void
+ setKomdef(Double komdef)
: void
+ setLabel(String label)
: void
+ setMdef(Double mdef)
: void
+ setNilai(List<Double> nilai)
: void
+ setOmdef(Double omdef)
: void
+ setStdevNpira(Double stdevNpira)
: void
+ setWasVisited(booelan wasVisited)
: void
+ setrNeighbors(List<String>rNeighbors)
: List<String>
142
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
143
<<entity>>
CheckBoxTableModel
- column
: String[]
- list
: List<SeleksiAtribut>
- seleksi
: SeleksiAtribut
+ CheckBoxTableModel()
: Konstruktor
+ add(int a, SeleksiAtribut field_m)
: void
+ getColumnClass(int columnIndex)
: Class
+ getColumnCount()
: int
+ getColumnName(int col)
: String
+ getRowCount()
: int
+ getValueAt(int rowIndex, int columnIndex)
: Object
+ isCellEditable(int row, int column)
: boolean
+ removeRow()
: void
+ setValueAt(Object value, int rowIndex, int columnIndex)
: void
<<entity>>
DataLoci
- komdef
: Double
- label
: String
- mdef
: Double
+ getKomdef()
: Double
+ getLabel()
: String
+ gekMdef()
: Double
+ setKomdef(Double komdef)
: void
+ setLabel(String label)
: void
+ setMdef(Double mdef)
: void
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
144
<<controller>>
KoneksiDatabase
- connection
: Connection
- jdbcURL
: String
- password
: String
- user
: String
+ KoneksiDataBase()
: Konstruktor
+ Connected()
: boolean
+ KoneksiDataBaseOracle(String, String, String)
: Connection
+ KoneksiDataBaseSQL(String, String, String)
: Connection
+ OracleConnected(String, String, String)
: boolean
+ SQLConnected(String, String, String)
: boolean
+ getClosed()
: boolean
+ getConnection()
: Connection
+ getJdbcURL()
: String
+ getPassword()
: String
+ getUser()
: String
+ setConn(Connection connection)
: void
+ setJdbcURL(String jdbcURL)
: void
+ setPassword(String password)
: void
+ setUser(String user)
: void
<<entity>>
LociTabelModel
- dlo
: List<DataLoci>
- label
: String
+ LociTabelModel(List<DataLoci> dlo, String label)
: Konstruktor
+ getColumnCount()
: int
+ getColumnName(int column)
: String
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
+ getRowCount()
: int
+ getValueAr(int rowIndex, int columnIndex)
: Object
+ isCellEditable(int row, in col)
: Boolean
+ setValueAt(Objecy val, int rowIndex, int columnIndex)
: void
<<boundary>>
HalamanAwal
- jLabel1
: JLabel
- jLabel2
: JLabel
- jLabel3
: JLabel
- jLabel4
: JLabel
- jLabel5
: JLabel
- jLabel6
: JLabel
- jPanel1
: JLabel
- masukButton
: JButton
+ HalamanAwal()
: Konstruktor
+ masukButtonActionPerformed(ActionEvent evt)
: void
<<boundary>>
HalamanBantuan
- bantuanButton
: JButton
- jLabel12
: JLabel
- jLabel14
: JLabel
- jLabel2
: JLabel
- jLabel3
: JLabel
- jLabel5
: JLabel
- jLabel6
: JLabel
- jPanel1
: JLabel
145
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
- jPanel2
: JPanel
- jPanel3
: JPanel
- jPanel4
: JPanel
- jScrollPane1
: JScrollPane
- jTextArea1
: JTextArea
- keluarButton
: JButton
- kembaliBurron
: JButton
- tentangButton
: JButton
+ HalamanBantuan()
: Konstruktor
+ bantuanButtonActionPerformed(ActionEvent evt)
: void
+ keluarButtonActionPerformed(ActionEvent evt)
: void
+ kembaliButtonActionPerformed(ActionEvent evt)
: void
+ tentangButtonActionPerformed(ActionEvent evt)
: void
146
<<boundary>>
HalamanPilihDatabase
- batalButton
: JButton
- dbNameTextField
: JTextField
- jLabel1
: JLabel
- jLabel2
: JLabel
- jLabel3
: JLabel
- jLabel4
: JLabel
- jLabel5
: JLabel
- okButton
: JButton
- passwordField
: JPasswordtField
- pilihKoneksiComboBox
: JComboBox
- urlTextField
: JTextField
- userNameTextField
: JTextField
+ HalamanPilihDatabase()
: Konstruktor
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
+ batalButtonActionPerformed(ActionEvent evt)
: void
+ okButtonActionPerformed(ActionEvent evt)
: void
+ pilihDatabase()
: void
+ pilihKoneksiComboBoxActionPerformed(ActionEvent evt)
: void
147
<<boundary>>
HalamanPilihFile
- jFileChooser1
JFileChooser
+ HalamanPilihFile()
: Konstruktor
<<boundary>>
HalamanPilihTabel
- OKButton
: JButton
- batalButton
: JButton
- jLabel1
: JLabel
- koneksi
: KoneksiDataBase
- pilihTabelCombo
: JComboBox
+
HalamanPilihTabel(KoneksiDataBase
koneksi,
String : Konstruktor
database)
+ HalamanPilihTabel()
: Konstruktor
+ OKButtonActionPerformed(ActionEvent evt)
: void
+ batalButtonActionPerformed(ActionEvent evt)
: void
+
tampilDaftarTabel(KoneksiDataBase
database)
koneksi,
String : void
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<boundary>>
HalamanTentang
- bantuanButton
: JButton
- jLabel1
: JLabel
- jLabel10
: JLabel
- jLabel11
: JLabel
- jLabel12
: JLabel
- jLabel13
: JLabel
- jLabel14
: JLabel
- jLabel15
: JLabel
- jLabel16
: JLabel
- jLabel17
: JLabel
- jLabel18
: JLabel
- jLabel2
: JLabel
- jLabel3
: JLabel JLabel
- jLabel4
: JLabel
- jLabel5
: JLabel
- jLabel6
: JLabel
- jLabel7
: JLabel
- jLabel8
: JLabel
- jLabel9
: JLabel
- jPanel1
: JPanel
- jPanel2
: JPanel
- jPanel3
: JPanel
- jPanel4
: JPanel
- keluarButton
: JButton
- kembaliButton
: JButton
- tentangButton
: JButton
+ HalamanTentang()
: Konstruktor
+ bantuanButtonActionPerformed(ActionEvent evt)
: void
148
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
+ keluarButtonActionPerformed(ActionEvent evt)
: void
+ kembaliButtonActionPerformed(ActionEvent evt)
: void
+ tentangButtonActionPerformed(ActionEvent evt)
: void
149
<<boundary>>
HalamanUtama
- HasilOutlierTable
: JTable
- alphaTextField
: JTextField
- bantuanButton
: JButton
- batalButton
: JButton
- batalSeleksiButton
: JButton
- checkboxtable
: CheckBoxTableModel
- dataOutlierTable
: JTable
- dataPreprocessTable
: JTable
- deteksiOutlierPanel
: JPanel
- graph
: Graph
- hapusButton
: Jbutton
- hapusOutlierButton
: JButton
- jDesktopPane1
: JDekstopPane
- jLabel1
: JLabel
- jLabel10
: JLabel
- jLabel11
: JLabel
- jLabel12
: JLabel
- jLabel13
: JLabel
- jLabel14
: JLabel
- jLabel15
: JLabel
- jLabel16
: JLabel
- jLabel17
: JLabel
- jLabel18
: JLabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
- jLabel2
: JLabel
- jLabel3
: JLabel
- jLabel4
: JLabel
- jLabel5
: JLabel
- jLabel6
: JLabel
- jLabel7
: JLabel
- jLabel8
: JLabel
- jLabel9
: JLabel
- jPanel1
: JPanel
- jPanel2
: JPanel
- jPanel3
: JPanel
- jPanel4
: JPanel
- jPanel6
: JPanel
- jPanel7
: JPanel
- jScrollPane1
: JSrollPane
- jScrollPane2
: JSrollPane
- jScrollPane3
: JSrollPane
- jScrollPane4
: JSrollPane
- jTabbedPane1
: JTabbedPane
- jumlahDataOutlierTextField
: JTextField
- jumlahDataSeleksiTextField
: JTextField
- jumlahOutlierTextField
: JTextField
- keluarButton
: JButton
- konstantaTextField
: JTextField
- lamaDeteksiTextField
: JTextField
- pilihDatabaseButton
: JButton
- pilihFileButton
: JButton
- pilihFileTextField
: JTextField
- prosesButton
: JButton
- radiusTextField
: JTextField
- seleksiTable
: JTable
150
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
- simpanButton
: JButton
- submitButton
: JButton
- tandaiSemuaButton
: JButton
- tentangButton
: JButton
+ HalamanUtama()
: Konstruktor
+ HalamanUtama(KoneksiDataBase koneksi, String table) : Konstruktor
+ alphaTextFieldKeyReleased(KeyEvent evt)
: void
+ bantuanButtonActionPerformed(ActionEvent evt)
: void
+ batalButtonActionPerformed(ActionEvent evt)
: void
+ batalSeleksiButtonActionPerformed(ActionEvent evt)
: void
+ hapusAtribut()
: void
+ hapusButtonActionPerformed(ActionEvent evt)
: void
+ hapusOutlierButtonActionPerformed(ActionEvent evt)
: void
+ keluarButtonActionPerformed(ActionEvent evt)
: void
+ konstantaTextFieldKeyReleased(KeyEvent evt)
: void
+ pilihDataBase(KoneksiDataBase kdb, String table)
: void
+ pilihDatabaseButtonActionPerformed(ActionEvent evt)
: void
+ pilihFile()
: void
+ pilihFileButtonActionPerformed(ActionEvent evt)
: void
+ prosesButtonActionPerformed(ActionEvent evt)
: void
+ prosesDeteksi()
: void
+ radiusTextFieldKeyReleased(KeyEvent evt)
: void
+ simpanButtonActionPerformed(ActionEvent evt)
: void
+ simpanLoci()
: void
+ submitButtonActionPerformed(ActionEvent evt)
: void
+ submitData()
: void
+ submitButtonActionPerformed(ActionEvent evt)
: void
+ tentangButtonActionPerformed(ActionEvent evt)
: void
151
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
152
LAMPIRAN 10
Listing Program
1.
Implementasi Kelas Graph.java
Method graph berfungsi untuk membentuk graph dan untuk
membentuk verteks dari setiap obyek data. Dalam graph juga terdapat edge
yang berfungsi untuk menghubungkan verteks. Method graph ini
menggunakan sebuah parameter yaitu maxVertex. Parameter maxVertex
berfungsi sebagai ukuran maksimum dari verteks. Method addVertex
berfungsi untuk membuat sebuah verteks. Dalam method ini menggunakan
dua parameter yaitu label dan nilai. Setiap obyek merupakan verteks.
Kemudian untuk memasukkan nilai edge antar obyek, nilai edge diinputkan
melalui method addEdge. Nilai edge adalah nilai jarak yang dihitung
menggunakan rumus Euclidean Distance.
package Controller;
import Model.DataLoci;
import Model.LociTabelModel;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
public class Graph {
private Verteks vertexList[]; //simpul
private int size = 0;
private Double adjMat[][]; //garis atau edge
private Double radius;
private Double alpha;
private int konstanta;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private int npir[];
private int npar[];
private int rneighbors[][];
private int arneighbors[][];
private int max;
public Graph(int maxVertex) {
vertexList = new Verteks[maxVertex];
max = maxVertex + 1;
// adjacency matrix
adjMat = new Double[maxVertex][maxVertex];
npir = new int[maxVertex];
npar = new int[maxVertex];
rneighbors = new int[maxVertex][maxVertex];
arneighbors = new int[maxVertex][maxVertex];
for (int i = 0; i < maxVertex; i++) {
for (int j = 0; j < maxVertex; j++) {
if (i == j) {
adjMat[i][j] = 0.0;
} else {
adjMat[i][j] = -1.0;
}
}
}
}
public void addVertex(String label, List<Double> nilai) {
vertexList[size++] = new Verteks(label, nilai);
}
153
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public void addEdge(int awal, int akhir, Double nilai) {
adjMat[awal][akhir] = adjMat[akhir][awal] = nilai;
}
public void setAdjMat(Double[][] adjMat) {
this.adjMat = adjMat;
}
public void setSize(int size) {
this.size = size;
}
public void setVertexList(Verteks[] vertexList) {
this.vertexList = vertexList;
}
public Double[][] getAdjMat() {
return adjMat;
}
public int getSize() {
return size;
}
public Verteks[] getVertexList() {
return vertexList;
}
public void setRadius(Double radius) {
this.radius = radius;
}
154
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public Double getRadius() {
return radius;
}
public void setAlpha(Double alpha) {
this.alpha = alpha;
}
public Double getAlpha() {
return alpha;
}
public int getKonstanta() {
return konstanta;
}
public void setKonstanta(int konstanta) {
this.konstanta = konstanta;
}
public Double cariJarakEcludian(int indexAwal, int indexTujuan) {
List<Double> a = new ArrayList<Double>();
List<Double> b = new ArrayList<Double>();
a = vertexList[indexAwal].getNilai();
b = vertexList[indexTujuan].getNilai();
Double total = 0.0;
for (int i = 0; i < a.size(); i++) {
total = total + Math.pow((a.get(i) - b.get(i)), 2);
}
155
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
156
return Math.sqrt(total);
}
public List<String> cariRNeighborhood(Double radius, int indeks) {
List<String> a = new ArrayList<String>();
if (indeks == -1) {
System.out.println("Tidak ada Kota dalam Peta");
} else {
for (int i = 0; i < vertexList.length; i++) {
if (adjMat[indeks][i] != -1 && adjMat[indeks][i] != 0) {
if (adjMat[indeks][i] <= radius) {
a.add(vertexList[i].getLabel());
}
}
}
}
return a;
}
public void setRNeighborhood(String label) {
int indeks = Search(label);
vertexList[indeks].setrNeighbors(cariRNeighborhood(vertexList[indeks].
getAnggotaRNeighbor(), indeks));
}
public void setAnggotaRNeighbor(String label, Double radius) {
int indeks = Search(label);
vertexList[indeks].setAnggotaRNeighbor(cariAnggotaRNeighbor(indeks,
radius));
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
157
}
public Double cariAnggotaRNeighbor(int indeks, Double radius) {
for (int i = 0; i < vertexList.length; i++) {
vertexList[i].setWasVisited(false);
}
Double AnggotaRNeighbor = 0.0;
Double temp1 = Double.MAX_VALUE;
int anggotaNpir = 0;
if (indeks == -1) {
System.out.println("Tidak ada kota dalam peta");
} else {
for (int i = 0; i < vertexList.length; i++) {
if (adjMat[indeks][i] != -1 && vertexList[i].isWasVisited() ==
false) {
if (adjMat[indeks][i] <= radius) {
temp1 = adjMat[indeks][i];
anggotaNpir = anggotaNpir + npir[i];
}
}
}
AnggotaRNeighbor = temp1;
Search2(temp1, indeks);
temp1 = Double.MAX_VALUE;
}
return AnggotaRNeighbor;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
158
public void setNpir() {
int x = 0;
for (int i = 0; i < adjMat.length; i++) {
for (int j = 0; j < vertexList.length; j++) {
if (adjMat[i][j] <= getRadius()) {
x = x + 1;
rneighbors[i][j] = j;
}
}
npir[i] = x;
x = 0;
}
}
public void tampilRNeighbor() {
int rn = 0;
for (int i = 0; i < vertexList.length; i++) {
System.out.println(" " + vertexList[i].getLabel() + "\t");
for (int j = 0; j < vertexList.length; j++) {
if (adjMat[i][j] <= getRadius()) {
rn = rn + 1;
System.out.println("anggota npir[" + j + "]" + adjMat[i][j] +
"\t");
}
}
System.out.println("n(pi,r) [" + i + "] = " + rn);
System.out.println("");
rn = 0;
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
159
public List<String> cariARNeighborhood(Double radius, int indeks) {
List<String> a = new ArrayList<String>();
if (indeks == -1) {
System.out.println("Tidak ada Kota dalam Peta");
} else {
for (int i = 0; i < vertexList.length; i++) {
if (adjMat[indeks][i] != -1 && adjMat[indeks][i] != 0) {
if (adjMat[indeks][i] <= (getAlpha() * radius)) {
a.add(vertexList[i].getLabel());
}
}
}
}
return a;
}
public void setARNeighborhood(String label) {
int indeks = Search(label);
vertexList[indeks].setArNeighbors(cariARNeighborhood(vertexList[inde
ks].getAnggotaRNeighbor(), indeks));
}
public void setAnggotaARNeighbor(String label, Double radius) {
int indeks = Search(label);
vertexList[indeks].setAnggotaARNeighbor(cariAnggotaARNeighbor(ind
eks, radius));
}
public Double cariAnggotaARNeighbor(int indeks, Double radius) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
160
for (int i = 0; i < vertexList.length; i++) {
vertexList[i].setWasVisited(false);
}
Double AnggotaARNeighbor = 0.0;
Double temp2 = Double.MAX_VALUE;
int anggotaNpar = 0;
if (indeks == -1) {
System.out.println("Tidak ada kota dalam peta");
} else {
for (int i = 0; i < vertexList.length; i++) {
if (adjMat[indeks][i] != -1 && vertexList[i].isWasVisited() ==
false) {
if (adjMat[indeks][i] <= (getAlpha() * radius)) {
temp2 = adjMat[indeks][i];
anggotaNpar = anggotaNpar + npar[i];
}
}
}
AnggotaARNeighbor = temp2;
Search2(temp2, indeks);
temp2 = Double.MAX_VALUE;
}
return AnggotaARNeighbor;
}
public void setNpar() {
int x = 0;
for (int i = 0; i < adjMat.length; i++) {
for (int j = 0; j < vertexList.length; j++) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
161
if (adjMat[i][j] <= (getAlpha() * getRadius())) {
x = x + 1;
arneighbors[i][j] = j;
}
}
npar[i] = x;
x = 0;
}
}
public void tampilARNeighbor() {
int arn = 0;
for (int i = 0; i < vertexList.length; i++) {
System.out.println(" " + vertexList[i].getLabel() + "\t");
for (int j = 0; j < vertexList.length; j++) {
if (adjMat[i][j] <= (getAlpha() * getRadius())) {
arn = arn + 1;
System.out.println("anggota npar[" + j + "]" + adjMat[i][j] +
"\t");
}
}
System.out.println("n(pa,r) [" + i + "] = " + arn);
System.out.println("");
arn = 0;
}
}
public int Search(String label) {
for (int i = 0; i < vertexList.length; i++) {
if (label.equals(vertexList[i].getLabel())) {
return i;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
}
return -1;
}
public void Search2(Double jarak, int indeks) {
for (int i = 0; i < vertexList.length; i++) {
if (adjMat[indeks][i].equals(jarak)) {
vertexList[i].setWasVisited(true);
}
}
}
public void tampilJarakEuclidean() {
System.out.print("\t");
for (int i = 0; i < vertexList.length; i++) {
System.out.print("" + vertexList[i].getLabel() + "\t");
}
System.out.println("");
for (int i = 0; i < adjMat.length; i++) {
System.out.print("" + vertexList[i].getLabel() + "\t");
for (int j = 0; j < vertexList.length; j++) {
System.out.print("" + adjMat[i][j] + "\t");
}
System.out.println("");
}
System.out.println("");
}
public void setJumlahAnggota() {
162
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
int x = 0;
int y = 0;
for (int i = 0; i < adjMat.length; i++) {
for (int j = 0; j < vertexList.length; j++) {
if (adjMat[i][j] <= getRadius()) {
x = x + 1;
rneighbors[i][j] = j;
} else {
rneighbors[i][j] = max;
}
if (adjMat[i][j] <= (getAlpha() * getRadius())) {
y = y + 1;
arneighbors[i][j] = j;
}
}
npir[i] = x;
npar[i] = y;
x = 0;
y = 0;
}
}
public void cariLoci() {
Double jml_npar = 0.0;
Double jml_npar2 = 0.0;
Double avgNpira;
Double stdevNpira;
Double mdef;
Double omdef;
Double komdef;
163
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
164
for (int i = 0; i < adjMat.length; i++) {
setJumlahAnggota();
for (int j = 0; j < rneighbors.length; j++) {
if (rneighbors[i][j] != max) {
jml_npar = jml_npar + npar[j];
}
}
avgNpira = jml_npar / npir[i];
System.out.println("avgNpira [" + i + "] = " + avgNpira);
for (int j = 0; j < rneighbors.length; j++) {
if (rneighbors[i][j] != max) {
jml_npar2 = jml_npar2 + Math.pow((npar[j] - avgNpira), 2);
}
}
stdevNpira = Math.sqrt(jml_npar2 / npir[i]);
System.out.println("stdevNpira [" + i + "] = " + stdevNpira);
mdef = 1 - (npar[i] / avgNpira);
System.out.println("mdef [" + i + "] = " + mdef);
vertexList[i].setMdef(mdef);
omdef = stdevNpira / avgNpira;
System.out.println("omdef [" + i + "] = " + omdef);
vertexList[i].setOmdef(omdef);
komdef = konstanta * omdef;
System.out.println("komdef [" + i + "] = " + komdef);
vertexList[i].setKomdef(komdef);
if (mdef > komdef) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
165
System.out.println("Mahasiswa [" + i + "] = " + "OUTLIER");
} else {
System.out.println("Mahasiswa [" + i + "] = " + "BUKAN
OUTLIER");
}
System.out.println("");
jml_npar = 0.0;
jml_npar2 = 0.0;
mdef = 0.0;
omdef = 0.0;
komdef = 0.0;
}
}
public void inputData(JTable jTableData) {
for (int i = 0; i < jTableData.getRowCount(); i++) {
String label = "";
List<Double> listNilai = new ArrayList<Double>();
for (int j = 0; j < jTableData.getColumnCount(); j++) {
if (j == 0) {
if (jTableData.getValueAt(i, j).toString().equals("")) {
label = "null";
} else {
label = jTableData.getValueAt(i, j).toString();
}
} else {
if (jTableData.getValueAt(i, j).toString().equals("")) {
listNilai.add(0.0);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
} else if (jTableData.getValueAt(i,
j).toString().matches("[^0-9]*")) {
listNilai.add(0.0);
} else {
listNilai.add(Double.parseDouble(jTableData.getValueAt(i,
j).toString().replace(",", ".")));
}
}
}
addVertex(label, listNilai);
}
for (int i = 0; i < jTableData.getRowCount(); i++) {
for (int j = i + 1; j < jTableData.getRowCount(); j++) {
if (i != j) {
addEdge(i, j, cariJarakEcludian(i, j));
}
}
}
}
public LociTabelModel setDataLoci(String label) {
List<DataLoci> dlc = new ArrayList<DataLoci>();
DataLoci dl;
for (int i = 0; i < vertexList.length; i++) {
if (vertexList[i].getMdef() > vertexList[i].getKomdef()) {
dl = new DataLoci();
dl.setLabel(vertexList[i].getLabel());
dl.setMdef(vertexList[i].getMdef());
dl.setKomdef(vertexList[i].getKomdef());
166
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
167
dlc.add(dl);
}
}
LociTabelModel ltm = new LociTabelModel(dlc, label);
return ltm;
}
}
2.
Implementasi Kelas Verteks.java
Kelas ini adalah kelas yang menyimpan setiap obyek data ke dalam
verteks. Kelas ini adalah terdapat beberapa atribut yang berfungsi untuk
menghitung dan melakukan proses deteksi outlier pada seriap obyek data
sehingga nantinya setiap obyek data akan memiliki atribut-atribut tersebut.
package Controller;
import java.util.List;
public class Verteks {
public String label;
List<Double> nilai;
private boolean wasVisited = false;
private int jumlah_rNeighbors;
private List<String> rNeighbors;
private int jumlah_arNeighbors;
private List<String> arNeighbors;
private Double avgNpira;
private Double stdevNpira;
private Double mdef;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private Double omdef;
private Double komdef;
private Double AnggotaRNeighbor;
private Double AnggotaARNeighbor;
public Verteks(String label, List<Double> nilai) {
this.label = label;
this.nilai = nilai;
}
public void setArNeighbors(List<String> arNeighbors) {
this.arNeighbors = arNeighbors;
}
public void setJumlah_arNeighbors(int jumlah_arNeighbors) {
this.jumlah_arNeighbors = jumlah_arNeighbors;
}
public void setJumlah_rNeighbors(int jumlah_rNeighbors) {
this.jumlah_rNeighbors = jumlah_rNeighbors;
}
public void setLabel(String label) {
this.label = label;
}
public void setMdef(Double mdef) {
this.mdef = mdef;
}
public void setNilai(List<Double> nilai) {
168
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
this.nilai = nilai;
}
public void setrNeighbors(List<String> rNeighbors) {
this.rNeighbors = rNeighbors;
}
public void setWasVisited(boolean wasVisited) {
this.wasVisited = wasVisited;
}
public List<String> getArNeighbors() {
return arNeighbors;
}
public int getJumlah_arNeighbors() {
return jumlah_arNeighbors;
}
public int getJumlah_rNeighbors() {
return jumlah_rNeighbors;
}
public String getLabel() {
return label;
}
public Double getMdef() {
return mdef;
}
169
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public List<Double> getNilai() {
return nilai;
}
public List<String> getrNeighbors() {
return rNeighbors;
}
public boolean isWasVisited() {
return wasVisited;
}
public Double getAnggotaRNeighbor() {
return AnggotaRNeighbor;
}
public void setAnggotaRNeighbor(Double AnggotaRNeighbor) {
this.AnggotaRNeighbor = AnggotaRNeighbor;
}
public Double getAnggotaARNeighbor() {
return AnggotaARNeighbor;
}
public void setAnggotaARNeighbor(Double AnggotaARNeighbor) {
this.AnggotaARNeighbor = AnggotaARNeighbor;
}
public Double getAvgNpira() {
return avgNpira;
}
170
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public Double getStdevNpira() {
return stdevNpira;
}
public void setAvgNpira(Double avgNpira) {
this.avgNpira = avgNpira;
}
public void setStdevNpira(Double stdevNpira) {
this.stdevNpira = stdevNpira;
}
public Double getOmdef() {
return omdef;
}
public void setOmdef(Double omdef) {
this.omdef = omdef;
}
public Double getKomdef() {
return komdef;
}
public void setKomdef(Double komdef) {
this.komdef = komdef;
}
}
171
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
172
Implementasi Kelas DataLoci.java
Method DataLoci memiliki atribut label, mdef, da komdef. Atribut ini
digunakan untuk menampilkan hasil deteksi outlier pada tab Deteksi Outlier.
package Model;
public class DataLoci {
private String label;
private Double mdef;
private Double komdef;
public Double getKomdef() {
return komdef;
}
public String getLabel() {
return label;
}
public Double getMdef() {
return mdef;
}
public void setKomdef(Double komdef) {
this.komdef = komdef;
}
public void setLabel(String label) {
this.label = label;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
173
public void setMdef(Double mdef) {
this.mdef = mdef;
}
}
4.
Implementasi Kelas DatabaseController.java
Pada
kelas
DatabaseController.java
terdapat
method
tampilTabelOracle, tampilTabelMySql, dan selectTable. Dimana method
tampilTabelOracle berfungsi untuk menampilkan tabel dalam Oracle.
Method tampilTabelMySql berfungsi untuk menampilkan tabel dalam MySql.
Method selectTable berfungsi untuk memanggil tabel yang dipilih.
package Controller;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DatabaseController {
public ResultSet tampilTabelOracle(Connection conn) throws
SQLException {
Statement stmt;
ResultSet rset;
String query;
stmt =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
query = "select table_name from user_tables";
System.out.println("\nExecuting query: " + query);
rset = stmt.executeQuery(query);
return rset;
}
public ResultSet tampilTabelMYSql(Connection conn) throws
SQLException {
Statement stmt;
ResultSet rset;
String query;
stmt =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "show tables";
System.out.println("\nExecuting query: " + query);
rset = stmt.executeQuery(query);
return rset;
}
public ResultSet selectTable(Connection conn, String namaTable)
throws SQLException {
Statement stmt;
ResultSet rset;
String query;
stmt =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "select * from "+ namaTable;
174
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
175
System.out.println("\nExecuting query: " + query);
rset = stmt.executeQuery(query);
return rset;
}
}
5.
Implementasi Kelas Seleksi Atribut.java
Pada method SeleksiAtribut memiliki atribut getAtribut dan set atribut
yang beripe String, juga getPilih dan setPilih yang bertipe Boolean.
package Controller;
public class SeleksiAtribut {
private String atribut;
private Boolean pilih;
public SeleksiAtribut() {
}
public SeleksiAtribut(String atribut, Boolean pilih) {
this.atribut = atribut;
this.pilih = pilih;
}
public String getAtribut() {
return atribut;
}
public Boolean getPilih() {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
176
return pilih;
}
public void setAtribut(String atribut) {
this.atribut = atribut;
}
public void setPilih(Boolean pilih) {
this.pilih = pilih;
}
}
6.
Implementasi Kelas CheckBoxTableModel.java
Method CheckBoxTableModel berfungsi untuk menyeleksi atribut
yang akan digunakan untuk proses deteksi. Fungsi ini dilakukan pada
Halaman Utama.
package Model;
import Controller.SeleksiAtribut;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class CheckBoxTableModel extends AbstractTableModel{
String[] column = {"Atribut", "Pilih"};
SeleksiAtribut seleksi = new SeleksiAtribut("", false);
List<SeleksiAtribut> list;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public CheckBoxTableModel() {
list = new ArrayList<SeleksiAtribut>();
}
public int getRowCount() {
return list.size();
}
public int getColumnCount() {
return column.length;
}
@Override
public String getColumnName(int col){
return column[col];
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex){
case 0:
return list.get(rowIndex).getAtribut();
case 1:
return list.get(rowIndex).getPilih();
}
return null;
}
@Override
public Class getColumnClass(int columnIndex){
return getValueAt(0, columnIndex).getClass();
177
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
178
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex){
switch (columnIndex){
case 0:
list.get(rowIndex).setAtribut(value.toString());
break;
case 1:
list.get(rowIndex).setPilih((Boolean) value);
break;
}
fireTableCellUpdated(rowIndex, columnIndex);
}
@Override
public boolean isCellEditable(int row, int column){
return true;
}
public void add(int a, SeleksiAtribut field_m){
list.add(a, field_m);
fireTableCellUpdated(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow(){
List<SeleksiAtribut> sa = new ArrayList<SeleksiAtribut>();
for (SeleksiAtribut select : list){
if(!select.getPilih()){
sa.add(select);
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
179
}
list = sa;
fireTableDataChanged();
}
}
7.
Implementasi Kelas KoneksiDatabase.java
Method KoneksiDataBase berfungsi untuk menginputkan data dari
tabel basisdata baik dari MySQL maupun dari Oracle. Kemudian data akan di
tampilkan pada tabel di Halaman Utama.
package Model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.OracleDriver;
public class KoneksiDataBase {
private static String jdbcURL;
private static String user;
private static String password;
private static Connection connection = null;
public KoneksiDataBase() {
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
180
public static Connection KoneksiDataBaseSQL(String url, String user,
String password) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(url, user, password);
System.out.println("koneksi berhasil");
} catch (Exception ex) {
System.out.println("message: " + ex.getMessage());
}
return connection;
}
public static Connection KoneksiDataBaseOracle(String url, String
user, String password) {
try {
DriverManager.registerDriver(new OracleDriver());
connection = DriverManager.getConnection(url, user, password);
System.out.println("koneksi berhasil");
} catch (Exception ex) {
System.out.println("message: " + ex.getMessage());
}
return connection;
}
public boolean Connected() {
if (connection != null) {
return true;
} else {
return false;
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public boolean OracleConnected(String url, String username, String
password) {
if (KoneksiDataBaseOracle(url, username, password) != null) {
return true;
} else {
return false;
}
}
public boolean SQLConnected(String url, String username, String
password) {
if (KoneksiDataBaseSQL(url, username, password) != null) {
return true;
} else {
return false;
}
}
public boolean getClosed() {
if (Connected()) {
try {
connection.close();
connection = null;
} catch (SQLException ex) {
ex.printStackTrace();
}
return true;
} else {
return false;
}
181
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
public String getJdbcURL() {
return jdbcURL;
}
public void setJdbcURL(String jdbcURL) {
this.jdbcURL = jdbcURL;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getConnection() {
return connection;
}
public void setConn(Connection connection) {
182
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
183
this.connection = connection;
}
public static void main(String[] args) {
}
}
8.
Implementasi Kelas LociTabelModel.java
Method LociTabelModel memiliki atribut List<DataLoci> dan label.
Method ini berfungsi untuk mengeset tabel untuk menampilkan hasil deteksi
outlier.
package Model;
import Controller.Verteks;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class LociTabelModel extends AbstractTableModel {
private List<DataLoci> dlo = new ArrayList<DataLoci>();
String label;
public LociTabelModel(List<DataLoci> dlo, String label) {
this.dlo = dlo;
label = label;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public int getRowCount() {
return dlo.size();
}
public int getColumnCount() {
return 3;
}
public Object getValueAt(int rowIndex, int columnIndex) {
DataLoci dloci = dlo.get(rowIndex);
switch (columnIndex) {
case 0:
return dloci.getLabel();
case 1:
return dloci.getMdef();
case 2:
return dloci.getKomdef();
default:
return "";
}
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "Nomor";
case 1:
return "Mdef";
case 2:
return "koMdef";
184
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
default:
return "";
}
}
@Override
public boolean isCellEditable(int row, int col) {
return true;
}
@Override
public void setValueAt(Object val, int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
dlo.get(rowIndex).setLabel(val.toString());
break;
case 1:
dlo.get(rowIndex).setMdef((Double) val);
break;
case 2:
dlo.get(rowIndex).setKomdef((Double) val);
break;
}
fireTableCellUpdated(rowIndex, columnIndex);
}
}
185
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9.
186
Implementasi Kelas HalamanAwal.form
HalamanAwal merupakan halaman pertama yang akan tampil. Pada
halaman ini terdapat fungsi yang mengubungkan ke Halaman Utama.
package View;
public class HalamanAwal extends javax.swing.JFrame {
public HalamanAwal() {
initComponents();
setLocationRelativeTo(this);
setTitle("Halaman Awal");
}
private void masukButtonActionPerformed(java.awt.event.ActionEvent evt)
{
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanAwal().setVisible(true);
}
});
}
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
187
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JPanel jPanel1;
private javax.swing.JButton masukButton;
}
10.
Implementasi Kelas HalamanBantuan.form
HalamanBantuan berisi tentang petunjuk penggunaan sistem untuk
melakukan pendeteksian outlier menggunakan algoritma Local Correlation
Integral. Halaman ini akan tampil setelah pengguna menekan tombol
‘Bantuan’ pada halaman utama sistem.
package View;
import javax.swing.JOptionPane;
public class HalamanBantuan extends javax.swing.JFrame {
public HalamanBantuan() {
initComponents();
setLocationRelativeTo(this);
}
private void tentangButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanTentang tentang = new HalamanTentang();
tentang.setVisible(true);
this.dispose();
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
188
private void bantuanButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanBantuan bantuan = new HalamanBantuan();
bantuan.setVisible(true);
this.dispose();
}
private void keluarButtonActionPerformed(java.awt.event.ActionEvent
evt) {
int keluar = JOptionPane.showConfirmDialog(null, "Apakah anda yakin
ingin keluar dari sistem?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (keluar == JOptionPane.YES_OPTION) {
this.dispose();
} else if (keluar == JOptionPane.NO_OPTION) {
return;
}
}
private void kembaliButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanBantuan().setVisible(true);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
});
}
private javax.swing.JButton bantuanButton;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JButton keluarButton;
private javax.swing.JButton kembaliButton;
private javax.swing.JButton tentangButton;
}
189
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11.
190
Implementasi Kelas HalamanPilihDatabase.form
HalamanPilihDatabase merupakan halaman yang akan tampil setelah
pengguna menekan tombol ‘Pilih Database’ pada tab Preprosessing.
Halaman ini berfungsi untuk menyambungkan sistem ke database untuk
proses input data dari database.
package View;
import Model.KoneksiDataBase;
import javax.swing.JOptionPane;
public class HalamanPilihDatabase extends javax.swing.JFrame {
public HalamanPilihDatabase() {
initComponents();
setResizable(false);
setLocationRelativeTo(this);
}
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {
pilihDatabase();
}
private void batalButtonActionPerformed(java.awt.event.ActionEvent evt)
{
this.dispose();
}
private void
pilihKoneksiComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
if (pilihKoneksiComboBox.getSelectedItem().equals("Oracle")){
dbNameTextField.setText(null);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
191
dbNameTextField.enable();
urlTextField.setText("jdbc:oracle:thin:@localhost:1521:XE");
} else if (pilihKoneksiComboBox.getSelectedItem().equals("MySql")){
dbNameTextField.setText(null);
dbNameTextField.enable();
urlTextField.setText("jdbc:mysql://localhost:3306/");
}
}
public void pilihDatabase() {
if (pilihKoneksiComboBox.getSelectedIndex() == 0) {
if (userNameTextField.getText().isEmpty() ||
passwordField.getText().isEmpty()
|| urlTextField.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Username, Password,
Nama Database, dan URL tidak boleh kosong!");
} else {
String username = userNameTextField.getText();
String password = passwordField.getText();
String url = urlTextField.getText();
String database = dbNameTextField.getText();
KoneksiDataBase conn = new KoneksiDataBase();
boolean kon = conn.SQLConnected(url + database, username,
password);
if (kon == true) {
JOptionPane.showMessageDialog(null, "Koneksi ke Database
MySQL Berhasil");
HalamanPilihTabel pt = new HalamanPilihTabel(conn,
pilihKoneksiComboBox.getSelectedItem().toString());
pt.setVisible(true);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
192
this.dispose();
} else {
JOptionPane.showMessageDialog(null, "Username, Password,
URL yang anda masukkan salah");
userNameTextField.setText("");
passwordField.setText("");
dbNameTextField.setText("");
urlTextField.setText("");
}
}
} else if (pilihKoneksiComboBox.getSelectedIndex() == 1) {
if (userNameTextField.getText().isEmpty() ||
passwordField.getText().isEmpty()
|| dbNameTextField.getText().isEmpty() ||
urlTextField.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Username, Password,
Nama Database, dan URL tidak boleh kosong!");
} else {
String username = userNameTextField.getText();
String password = passwordField.getText();
String url = urlTextField.getText();
String database = dbNameTextField.getText();
KoneksiDataBase conn = new KoneksiDataBase();
boolean kon = conn.OracleConnected(url, username, password);
if (kon == true) {
JOptionPane.showMessageDialog(null, "Koneksi ke Database
Oracle Berhasil");
HalamanPilihTabel pt = new HalamanPilihTabel(conn,
pilihKoneksiComboBox.getSelectedItem().toString());
pt.setVisible(true);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
193
this.dispose();
} else {
JOptionPane.showMessageDialog(null, "Username, Password,
Nama Database, dan URL yang anda masukkan salah");
userNameTextField.setText("");
passwordField.setText("");
dbNameTextField.setText("");
urlTextField.setText("");
}
}
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanPilihDatabase().setVisible(true);
}
});
}
private javax.swing.JButton batalButton;
private javax.swing.JTextField dbNameTextField;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JButton okButton;
private javax.swing.JPasswordField passwordField;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
194
private javax.swing.JComboBox pilihKoneksiComboBox;
private javax.swing.JTextField urlTextField;
private javax.swing.JTextField userNameTextField;
}
12.
Implementasi Kelas HalamanPilihFile.form
HalamanPilihFile akan tampil setelah pengguna menekan tombol ‘Pilih
File’ pada tab Preprosessing. Halaman ini berfungsi untuk menginputkan
data dengan format .xls atau .csv. Halaman ini berupa File Chooser.
package View;
public class HalamanPilihFile extends javax.swing.JFrame {
public HalamanPilihFile() {
initComponents();
setLocationRelativeTo(this);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanPilihFile().setVisible(true);
}
});
}
private javax.swing.JFileChooser jFileChooser1;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13.
195
Implementasi Kelas HalamanPilihTabel.form
HalamanPilihTabel merupakan halaman yang akan tampil setelah
pengguna terhubung dengan database pada fungsi HalamanPilihDatabase.
Setelah sistem terhubung ke database, pengguna dapat memilih tabel
basisdata yang akan diinput datanya untuk proses deteksi.
package View;
import Controller.DatabaseController;
import Model.KoneksiDataBase;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class HalamanPilihTabel extends javax.swing.JFrame {
KoneksiDataBase koneksi;
public HalamanPilihTabel(KoneksiDataBase koneksi, String database) {
initComponents();
setLocationRelativeTo(this);
tampilDaftarTabel(koneksi, database);
}
private HalamanPilihTabel() {
}
public void tampilDaftarTabel(KoneksiDataBase koneksi, String database)
{
this.koneksi = koneksi;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
196
try{
DatabaseController dbc = new DatabaseController();
ResultSet rset;
if (database.equals("Oracle")) {
rset = dbc.tampilTabelOracle(koneksi.getConnection());
while (rset.next()) {
pilihTabelCombo.addItem(rset.getString(1));
}
} else if (database.equals("MySql")) {
rset = dbc.tampilTabelMYSql(koneksi.getConnection());
while (rset.next()) {
pilihTabelCombo.addItem(rset.getString(1));
}
}
} catch (SQLException ex) {
Logger.getLogger(HalamanPilihTabel.class.getName()).log(Level.SEVERE,
null, ex);
}
}
private void batalButtonActionPerformed(java.awt.event.ActionEvent evt)
{
this.dispose();
}
private void OKButtonActionPerformed(java.awt.event.ActionEvent evt) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HalamanUtama utama = new HalamanUtama(koneksi,
pilihTabelCombo.getSelectedItem().toString());
utama.setVisible(true);
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanPilihTabel().setVisible(true);
}
});
}
private javax.swing.JButton OKButton;
private javax.swing.JButton batalButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JComboBox pilihTabelCombo;
}
197
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
14.
198
Implementasi kelas HalamanTentang.form
HalamanTentang berisi pengembangan alat bantu Deteksi Outlier
menggunakan algoritma Local Correlation Integral. Halaman ini akan tampil
setelah pengguna menekan tombol ‘Tentang’ pada halaman utama sistem.
package View;
import javax.swing.JOptionPane;
public class HalamanTentang extends javax.swing.JFrame {
public HalamanTentang() {
initComponents();
setLocationRelativeTo(this);
}
private void tentangButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanTentang tentang = new HalamanTentang();
tentang.setVisible(true);
this.dispose();
}
private void bantuanButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanBantuan bantuan = new HalamanBantuan();
bantuan.setVisible(true);
this.dispose();
}
private void keluarButtonActionPerformed(java.awt.event.ActionEvent
evt) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
199
int keluar = JOptionPane.showConfirmDialog(null, "Apakah anda yakin
ingin keluar dari sistem?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (keluar == JOptionPane.YES_OPTION) {
this.dispose();
} else if (keluar == JOptionPane.NO_OPTION) {
return;
}
}
private void kembaliButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanTentang().setVisible(true);
}
});
}
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JButton keluarButton;
private javax.swing.JButton kembaliButton;
private javax.swing.JButton tentangButton;
}
200
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15.
201
Implementasi Kelas HalamanUtama.form
HalamanUtama merupakan fungsi utama dari sistem pendeteksi outlier
menggunakan algoritma Local Correlation Integral. Halaman ini merupakan
interface utama ketika pengguna melakukan proses deteksi.
package View;
import Controller.DatabaseController;
import Controller.Graph;
import Controller.SeleksiAtribut;
import Model.CheckBoxTableModel;
import Model.KoneksiDataBase;
import java.awt.CheckboxMenuItem;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.AdjustmentListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
import javax.swing.DefaultRowSorter;
import javax.swing.JDesktopPane;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class HalamanUtama extends javax.swing.JFrame {
Graph graph;
CheckBoxTableModel cekboxtable = new CheckBoxTableModel();
private DefaultTableModel model;
public HalamanUtama() {
initComponents();
setTitle("Halaman Utama");
setLocationRelativeTo(this);
jDesktopPane1.getMaximumSize();
setResizable(false);
cekboxtable.removeRow();
}
202
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
203
public HalamanUtama(KoneksiDataBase koneksi, String table) {
initComponents();
setLocationRelativeTo(this);
jDesktopPane1.getMaximumSize();
jTabbedPane1.setEnabledAt(1, false);
pilihDataBase(koneksi, table);
}
private void
pilihDatabaseButtonActionPerformed(java.awt.event.ActionEvent evt) {
HalamanPilihDatabase db = new HalamanPilihDatabase();
db.setVisible(true);
this.dispose();
}
private void tentangButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanTentang tentang = new HalamanTentang();
tentang.setVisible(true);
this.dispose();
}
private void bantuanButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanBantuan bantuan = new HalamanBantuan();
bantuan.setVisible(true);
this.dispose();
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
204
private void keluarButtonActionPerformed(java.awt.event.ActionEvent
evt) {
int keluar = JOptionPane.showConfirmDialog(null, "Apakah anda yakin
ingin keluar dari sistem?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (keluar == JOptionPane.YES_OPTION) {
this.dispose();
} else if (keluar == JOptionPane.NO_OPTION) {
return;
}
}
private void pilihFileButtonActionPerformed(java.awt.event.ActionEvent
evt) {
pilihFile();
}
private void batalButtonActionPerformed(java.awt.event.ActionEvent evt)
{
for (int i = 0; i < seleksiTable.getRowCount(); i++) {
seleksiTable.setValueAt(false, i, 1);
}
}
private void
tandaiSemuaButtonActionPerformed(java.awt.event.ActionEvent evt) {
for (int i = 0; i < seleksiTable.getRowCount(); i++) {
seleksiTable.setValueAt(true, i, 1);
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
205
private void hapusButtonActionPerformed(java.awt.event.ActionEvent
evt) {
hapusAtribut();
}
private void submitButtonActionPerformed(java.awt.event.ActionEvent
evt) {
submitData();
}
private void prosesButtonActionPerformed(java.awt.event.ActionEvent
evt) {
prosesDeteksi();
}
private void
hapusOutlierButtonActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel dm = new DefaultTableModel();
HasilOutlierTable.setModel(dm);
jumlahOutlierTextField.setText("");
lamaDeteksiTextField.setText("");
}
private void simpanButtonActionPerformed(java.awt.event.ActionEvent
evt) {
simpanLoci();
}
private void
batalSeleksiButtonActionPerformed(java.awt.event.ActionEvent evt) {
HalamanUtama utama = new HalamanUtama();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
206
utama.setVisible(true);
this.dispose();
}
private void radiusTextFieldKeyReleased(java.awt.event.KeyEvent evt) {
if (!radiusTextField.getText().matches("[0-9.]*")) {
JOptionPane.showMessageDialog(null, "Nilai radius tidak boleh
berisi huruf atau angka negatif!");
}
}
private void alphaTextFieldKeyReleased(java.awt.event.KeyEvent evt) {
if (!alphaTextField.getText().matches("[0-9.]*")) {
JOptionPane.showMessageDialog(null, "Nilai alpha tidak boleh
berisi huruf atau angka negatif!");
}
}
private void konstantaTextFieldKeyReleased(java.awt.event.KeyEvent
evt) {
if (!konstantaTextField.getText().matches("[0-9.]*")) {
JOptionPane.showMessageDialog(null, "Nilai konstanta tidak boleh
berisi huruf atau angka negatif!");
}
}
public void pilihFile() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setVisible(true);
int returnValue = fileChooser.showOpenDialog(null);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
if (returnValue == JFileChooser.APPROVE_OPTION) {
String namaFile = fileChooser.getSelectedFile().getPath();
String[] cut_namafile = namaFile.split("\\.");
if (cut_namafile[1].equals("xls")) {
File excel = fileChooser.getSelectedFile();
Vector columnName = new Vector();
Vector data = new Vector();
try {
Workbook workbook = Workbook.getWorkbook(excel);
Sheet sheet = workbook.getSheet(0);
columnName.clear();
for (int i = 0; i < sheet.getColumns(); i++) {
Cell cell = sheet.getCell(i, 0);
columnName.add(cell.getContents());
}
data.clear();
for (int j = 1; j < sheet.getRows(); j++) {
Vector data2 = new Vector();
for (int i = 0; i < sheet.getColumns(); i++) {
Cell cell = sheet.getCell(i, j);
data2.add(cell.getContents());
}
data2.add("\n");
data.add(data2);
}
} catch (Exception e) {
e.printStackTrace();
}
207
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
208
DefaultTableModel model = new DefaultTableModel(data,
columnName);
dataPreprocessTable.setModel(model);
dataPreprocessTable.setAutoCreateRowSorter(true);
jumlahDataSeleksiTextField.setText("" + data.size());
pilihFileTextField.setText(excel.getPath());
for (int i = 0; i < model.getColumnCount(); i++) {
SeleksiAtribut seleksiatribut = new SeleksiAtribut();
seleksiatribut.setAtribut(model.getColumnName(i));
seleksiatribut.setPilih(false);
cekboxtable.add(i, seleksiatribut);
}
seleksiTable.setModel(cekboxtable);
TableModel tablemodel = dataPreprocessTable.getModel();
dataOutlierTable.setModel(tablemodel);
dataOutlierTable.setAutoCreateRowSorter(true);
int jumlahDataOutlier = tablemodel.getRowCount();
jumlahDataOutlierTextField.setText(" " + jumlahDataOutlier);
int jumlahDataSeleksi = tablemodel.getRowCount();
jumlahDataSeleksiTextField.setText(" " + jumlahDataSeleksi);
} else if (cut_namafile[1].equals("csv")) {
cekboxtable.removeRow();
File csv = fileChooser.getSelectedFile();
Vector columnName = new Vector();
Vector data = new Vector();
String line;
try {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
209
BufferedReader br = new BufferedReader(new
FileReader(csv));
StringTokenizer st = new StringTokenizer(br.readLine(), ",");
while (st.hasMoreElements()) {
columnName.addElement(st.nextToken());
}
while ((line = br.readLine()) != null) {
StringTokenizer st2 = new StringTokenizer(line, ",");
Vector row = new Vector();
while (st2.hasMoreTokens()) {
row.addElement(st2.nextToken());
}
data.addElement(row);
}
br.close();
DefaultTableModel model = new DefaultTableModel(data,
columnName);
dataPreprocessTable.setModel(model);
dataPreprocessTable.setAutoCreateRowSorter(true);
pilihFileTextField.setText(csv.getPath());
jumlahDataSeleksiTextField.setText("" + data.size());
for (int i = 0; i < model.getColumnCount(); i++) {
SeleksiAtribut seleksiatribut = new SeleksiAtribut();
seleksiatribut.setAtribut(model.getColumnName(i));
seleksiatribut.setPilih(false);
cekboxtable.add(i, seleksiatribut);
}
seleksiTable.setModel(cekboxtable);
TableModel tablemodel = dataPreprocessTable.getModel();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
210
dataOutlierTable.setModel(tablemodel);
dataOutlierTable.setAutoCreateRowSorter(true);
int jumlahDataOutlier = tablemodel.getRowCount();
jumlahDataOutlierTextField.setText(" " + jumlahDataOutlier);
int jumlahDataSeleksi = tablemodel.getRowCount();
jumlahDataSeleksiTextField.setText(" " + jumlahDataSeleksi);
} catch (Exception e) {
}
} else {
JOptionPane.showMessageDialog(null, "File yang Anda pilih
harus berformat .xls atau .csv");
}
}
}
public void pilihDataBase(KoneksiDataBase kdb, String table) {
try {
DatabaseController dc = new DatabaseController();
ResultSet rset;
rset = dc.selectTable(kdb.getConnection(), table);
ResultSetMetaData rsmd = rset.getMetaData();
int coloumCount = rsmd.getColumnCount();
Vector headers = new Vector();
Vector data = new Vector();
headers.clear();
for (int i = 1; i <= coloumCount; i++) {
headers.add(rsmd.getColumnName(i));
}
data.clear();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
211
while (rset.next()) {
Vector data2 = new Vector();
for (int i = 1; i <= coloumCount; i++) {
data2.add(rset.getString(i));
}
data2.add("\n");
data.add(data2);
}
DefaultTableModel model = new DefaultTableModel(data, headers);
dataPreprocessTable.setModel(model);
dataPreprocessTable.setAutoCreateRowSorter(true);
seleksiTable.setModel(model);
seleksiTable.setAutoCreateRowSorter(true);
cekboxtable = new CheckBoxTableModel();
for (int i = 0; i < model.getColumnCount(); i++) {
SeleksiAtribut seleksiatribut = new SeleksiAtribut();
seleksiatribut.setAtribut(model.getColumnName(i));
seleksiatribut.setPilih(false);
cekboxtable.add(i, seleksiatribut);
}
seleksiTable.setModel(cekboxtable);
TableModel tableModel = dataPreprocessTable.getModel();
dataOutlierTable.setModel(tableModel);
dataOutlierTable.setAutoCreateRowSorter(true);
} catch (SQLException ex) {
}
jumlahDataSeleksiTextField.setText("" +
dataPreprocessTable.getRowCount());
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
212
public void hapusAtribut() {
for (int i = 0; i < seleksiTable.getRowCount(); i++) {
if (seleksiTable.getValueAt(i, 1).equals(true)) {
for (int j = 0; j < dataPreprocessTable.getColumnCount(); j++) {
if (seleksiTable.getValueAt(i,
0).equals(dataPreprocessTable.getColumnName(j))) {
TableColumn tcol =
dataPreprocessTable.getColumnModel().getColumn(j);
TableColumn tcol2 =
dataOutlierTable.getColumnModel().getColumn(j);
dataPreprocessTable.removeColumn(tcol);
dataOutlierTable.removeColumn(tcol2);
}
}
}
}
cekboxtable.removeRow();
}
public void submitData() {
TableModel tablemodel = dataPreprocessTable.getModel();
dataOutlierTable.setModel(tablemodel);
dataOutlierTable.setAutoCreateRowSorter(true);
jumlahDataOutlierTextField.setText("" +
dataOutlierTable.getRowCount());
jTabbedPane1.setSelectedComponent(deteksiOutlierPanel);
jTabbedPane1.setEnabledAt(1, true);
}
public void prosesDeteksi() {
if (radiusTextField.getText().isEmpty()) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
213
JOptionPane.showMessageDialog(null, "Nilai radius tidak boleh
kosong!");
} else if (alphaTextField.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Nilai alpha tidak boleh
kosong!");
} else if (konstantaTextField.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Nilai konstanta tidak boleh
kosong!");
} else {
Double alpha;
Double radius;
alpha = Double.parseDouble(alphaTextField.getText());
radius = Double.parseDouble(radiusTextField.getText());
long t1 = System.nanoTime();
if (radius > 0 && alpha > 0 && alpha <= 1) {
graph = new Graph(dataOutlierTable.getRowCount());
graph.setRadius(radius);
graph.setAlpha(alpha);
graph.inputData(dataOutlierTable);
System.out.println("JARAK EUCLIDEAN");
graph.tampilJarakEuclidean();
System.out.println("RNEIGHBOR");
graph.tampilRNeighbor();
System.out.println("ARNEIGHBOR");
graph.tampilARNeighbor();
System.out.println("CARI LOCI");
graph.cariLoci();
System.out.println("");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
214
HasilOutlierTable.setModel(graph.setDataLoci(dataOutlierTable.getColumn
Name(0)));
HasilOutlierTable.setAutoCreateRowSorter(true);
jumlahOutlierTextField.setText("" +
HasilOutlierTable.getRowCount());
long t2 = System.nanoTime();
lamaDeteksiTextField.setText("" + (t2 - t1) *
java.lang.Math.pow(10, -9));
} else {
JOptionPane.showMessageDialog(null, "Nilai radius harus
bilangan real" +
"\n" + "nilai alpha antara 0-1" +
"\n" + "dan nilai konstanta harus bilangan bulat positif > 0");
}
}
}
public void simpanLoci() {
JFileChooser fileChooser = new JFileChooser(new File("E:/"));
fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft
Excel (*.xls)", "xls"));
fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft
Word (*.doc)", "doc"));
fileChooser.setFileFilter(new FileNameExtensionFilter("Text
Documents (*.txt)", "txt"));
FileOutputStream file_output_stream;
int returnValue = fileChooser.showSaveDialog(this);
if (returnValue == JFileChooser.APPROVE_OPTION) {
String filename = fileChooser.getSelectedFile().getPath();
String ext = fileChooser.getFileFilter().getDescription();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
215
if (ext.equals("Microsoft Excel (*.xls)")) {
File f;
f = new File(filename + ".xls");
try {
file_output_stream = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
try {
TableModel model = HasilOutlierTable.getModel();
FileWriter excel = new FileWriter(f);
for (int i = 0; i < model.getColumnCount(); i++) {
excel.write(model.getColumnName(i) + "\t");
}
excel.write("\n");
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
excel.write(model.getValueAt(i, j).toString() + "\t");
}
excel.write("\n");
}
excel.close();
} catch (IOException i) {
JOptionPane.showMessageDialog(this, "Penyimpanan Gagal");
}
} else if (ext.equals("Microsoft Word (*.doc)")) {
File f;
f = new File(filename + ".doc");
try {
file_output_stream = new FileOutputStream(f);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
216
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
try {
BufferedWriter bfw = new BufferedWriter(new FileWriter(f));
for (int i = 0; i < HasilOutlierTable.getColumnCount(); i++) {
bfw.write(HasilOutlierTable.getColumnName(i));
bfw.write("\t");
}
for (int i = 0; i < HasilOutlierTable.getRowCount(); i++) {
bfw.newLine();
for (int j = 0; j < HasilOutlierTable.getColumnCount(); j++) {
bfw.write(HasilOutlierTable.getValueAt(i, j).toString());
bfw.write("\t");
}
}
bfw.close();
} catch (IOException i) {
JOptionPane.showMessageDialog(this, "Penyimpanan Gagal");
}
} else if (ext.equals("Text Documents (*.txt)")){
File f;
f = new File(filename + ".txt");
try {
file_output_stream = new FileOutputStream(f);
} catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
try {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
217
BufferedWriter bfw = new BufferedWriter(new FileWriter(f));
for (int i = 0; i < HasilOutlierTable.getColumnCount(); i++) {
bfw.write(HasilOutlierTable.getColumnName(i));
bfw.write("\t");
}
for (int i = 0; i < HasilOutlierTable.getRowCount(); i++) {
bfw.newLine();
for (int j = 0; j < HasilOutlierTable.getColumnCount(); j++) {
bfw.write(HasilOutlierTable.getValueAt(i, j).toString());
bfw.write("\t");
}
}
bfw.close();
} catch (IOException i) {
JOptionPane.showMessageDialog(this, "Penyimpanan Gagal");
}
}
JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier Telah
Berhasil Disimpan di " + filename);
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanUtama().setVisible(true);
}
});
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private javax.swing.JTable HasilOutlierTable;
private javax.swing.JTextField alphaTextField;
private javax.swing.JButton bantuanButton;
private javax.swing.JButton batalButton;
private javax.swing.JButton batalSeleksiButton;
private javax.swing.JTable dataOutlierTable;
private javax.swing.JTable dataPreprocessTable;
private javax.swing.JPanel deteksiOutlierPanel;
private javax.swing.JButton hapusButton;
private javax.swing.JButton hapusOutlierButton;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
218
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JScrollPane jScrollPane4;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTextField jumlahDataOutlierTextField;
private javax.swing.JTextField jumlahDataSeleksiTextField;
private javax.swing.JTextField jumlahOutlierTextField;
private javax.swing.JButton keluarButton;
private javax.swing.JTextField lamaDeteksiTextField;
private javax.swing.JButton pilihDatabaseButton;
private javax.swing.JButton pilihFileButton;
private javax.swing.JTextField pilihFileTextField;
private javax.swing.JButton prosesButton;
private javax.swing.JTextField radiusTextField;
private javax.swing.JTable seleksiTable;
private javax.swing.JButton simpanButton;
private javax.swing.JButton submitButton;
private javax.swing.JButton tandaiSemuaButton;
private javax.swing.JButton tentangButton;
}
219
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 11
Outlier Plot
1.
Data set Mahasiswa 2007-2008 Jalur Test Tertulis pada Semester 1.
2.
Data set Mahasiswa 2007-2008 Jalur Test Tertulis pada Semester 2.
220
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
Data set Mahasiswa 2007-2008 Jalur Test Tertulis pada Semester 3.
4.
Data set Mahasiswa 2007-2008 Jalur Test Tertulis pada Semester 4.
221
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.
Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 1.
6.
Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 2.
222
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7.
Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 3.
8.
Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 4.
223
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9.
224
Data set Mahasiswa 2007-2008 Jalur Test Tertulis dan Jalur Prestasi pada
Semester 1.
10. Data set Mahasiswa 2007-2008 Jalur Test Tertulis dan Jalur Prestasi pada
Semester 2.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
225
11. Data set Mahasiswa 2007-2008 Jalur Test Tertulis dan Jalur Prestasi pada
Semester 3.
12. Data set Mahasiswa 2007-2008 Jalur Test Tertulis dan Jalur Prestasi pada
Semester 4.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
226
LAMPIRAN 12
Data Nilai Mahasiswa Angkatan 2007 dan 2008
1.
Data set Mahasiswa 2007 – 2008 Jalur Test Tertulis
Nomor
ips1
ips2
ips3
ips4
nil11
nil12
nil13
nil14
nil15
21
3.72
3.48
3.36
3.65
3.20
2.40
2.40
2.80
2.00
22
2.89
3.21
3.33
3.36
2.40
2.00
2.00
2.80
2.00
23
2.56
2.77
2.52
3.13
2.40
1.60
2.00
2.80
2.00
24
3.28
2.75
2.90
3.00
2.80
2.40
2.80
2.40
2.40
25
1.89
2.20
2.21
1.95
2.40
2.00
2.40
2.40
2.80
26
1.44
2.42
2.53
1.96
4.00
2.00
3.60
2.40
2.80
27
4.00
3.52
3.43
3.70
2.40
2.40
1.60
1.60
2.80
28
1.72
1.65
1.53
1.68
1.20
0.80
3.20
1.20
0.40
29
2.89
3.18
3.04
2.95
2.00
2.00
3.20
2.00
2.80
30
2.94
3.27
2.96
2.81
2.80
2.00
2.00
2.00
1.60
31
2.94
2.59
1.55
2.35
2.40
1.60
2.40
1.20
2.80
32
2.44
2.63
2.00
2.67
2.00
2.00
2.40
2.00
2.00
33
1.72
2.65
2.43
2.24
2.80
2.40
3.20
3.20
0.80
34
2.80
2.91
2.80
3.33
2.40
2.00
2.00
1.60
2.00
35
2.90
2.50
3.10
2.75
1.60
2.80
3.20
2.80
2.00
36
1.40
1.64
1.82
1.07
2.40
1.60
2.80
3.60
2.80
37
2.65
2.40
2.17
2.75
1.60
1.60
2.80
1.20
2.40
38
2.65
3.23
2.79
3.30
2.40
1.60
2.40
1.60
2.00
39
3.35
2.91
2.45
0.83
2.40
2.40
2.00
3.20
2.40
40
2.70
2.86
2.32
2.70
1.60
2.40
2.80
2.80
1.20
41
2.55
2.68
3.15
2.64
2.40
2.00
1.60
1.60
1.60
42
3.10
3.08
2.95
3.05
2.40
2.80
3.60
1.60
2.80
43
2.45
2.40
2.44
2.26
2.40
2.80
3.60
2.00
2.80
44
2.55
2.41
2.47
2.68
2.80
1.60
2.80
1.60
2.40
45
2.75
2.59
2.79
3.32
2.80
2.00
2.40
2.80
2.80
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
227
46
2.25
1.55
1.31
0.31
3.60
2.40
2.40
2.40
2.40
47
2.70
2.36
2.68
0.05
2.80
2.40
2.40
2.00
2.00
48
3.15
3.00
3.24
2.33
2.00
3.20
2.00
2.80
2.00
49
2.85
2.68
3.37
3.09
2.40
1.60
2.00
2.80
2.00
50
2.35
2.40
0.59
2.23
2.40
2.40
2.80
1.20
3.60
51
2.05
1.50
2.40
2.00
2.00
2.00
2.00
1.60
2.80
52
2.85
2.64
2.84
2.75
2.40
2.00
2.00
2.40
2.00
53
2.35
2.20
2.94
2.09
2.40
0.80
2.00
2.00
3.20
54
3.15
3.20
2.72
3.05
2.80
3.20
2.00
2.40
2.00
55
3.10
3.32
3.72
3.42
2.00
2.00
3.20
1.60
2.80
56
2.70
3.44
3.39
2.33
2.40
2.00
3.60
2.80
2.00
57
2.05
1.55
2.33
2.70
2.00
2.00
2.40
2.40
2.00
58
2.30
2.61
2.50
2.50
1.20
2.00
1.60
0.80
2.00
59
2.80
2.88
2.39
2.44
2.40
2.00
3.20
1.60
2.80
60
2.15
2.26
2.33
2.06
2.40
1.60
3.20
1.20
2.00
61
2.90
2.28
2.39
1.93
2.00
2.00
3.60
1.60
3.20
62
3.25
3.16
3.11
2.56
2.40
2.40
3.20
2.80
1.60
63
3.45
3.60
3.39
3.50
2.80
2.40
2.80
1.20
2.80
64
2.30
3.13
3.00
3.05
1.60
2.40
3.60
2.40
1.60
65
2.30
2.39
2.62
2.94
2.80
0.80
2.80
2.00
2.80
66
2.85
3.28
3.50
3.63
2.80
2.80
2.40
2.40
2.00
67
2.20
2.30
1.28
0.00
2.80
2.00
1.20
1.60
1.60
68
1.55
1.00
1.72
0.00
2.80
1.60
2.00
2.40
1.20
69
1.65
1.67
2.07
1.85
2.40
2.00
1.20
2.00
1.60
70
3.20
3.04
2.94
3.14
2.80
2.00
3.60
2.00
3.20
71
3.10
2.60
2.89
2.72
2.40
2.80
1.60
2.00
2.40
72
2.05
1.28
1.73
0.82
2.40
3.20
3.60
2.80
3.20
73
2.65
1.87
2.00
1.56
2.80
2.40
2.40
1.60
2.00
74
2.35
1.04
0.19
0.92
3.20
2.00
3.60
3.20
1.60
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
Data set Mahasiswa 2007 – 2008 Jalur Prestasi
Nomor
ips1
ips2
ips3
ips4
final
1
2.06
2.32
2.91
3.00
2.71
2
2.72
2.50
2.96
2.38
2.71
3
3.33
3.48
3.78
3.48
2.78
4
2.39
3.00
2.43
2.82
2.86
5
2.11
2.71
2.43
2.45
2.95
6
3.00
2.96
2.61
3.29
2.70
7
3.72
3.56
3.43
3.67
3.15
8
3.44
3.04
2.88
3.48
2.85
9
2.17
2.70
3.09
3.63
2.88
10
3.89
3.75
3.00
3.62
3.08
11
2.89
3.68
2.88
3.76
2.92
12
3.11
3.08
2.78
3.48
2.73
13
2.00
2.00
2.29
3.00
3.08
14
3.06
2.50
2.57
2.78
2.73
15
1.67
2.24
2.52
2.16
2.72
16
3.89
3.63
3.57
3.62
2.99
17
2.61
0.32
0.69
2.85
2.72
18
2.83
2.55
3.09
3.17
2.79
19
3.72
3.74
2.87
3.52
2.77
20
3.72
3.42
3.65
3.71
2.85
75
2.40
2.65
2.57
3.24
2.95
76
0.85
2.29
2.21
2.00
2.85
77
2.65
2.75
2.11
2.74
2.74
78
2.85
3.27
2.91
2.73
2.93
79
1.85
1.71
2.40
2.06
2.98
80
2.95
2.91
3.16
3.25
2.80
81
3.35
2.48
3.00
2.14
3.00
82
2.65
2.14
2.45
2.64
2.92
228
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
83
3.35
3.09
3.42
3.25
3.11
84
2.60
3.00
2.90
3.10
2.83
85
3.50
2.92
3.27
3.04
2.85
86
3.10
2.80
3.68
3.57
3.22
87
2.25
2.05
2.29
1.83
2.80
88
2.65
2.77
2.14
0.94
2.89
89
3.65
3.74
3.70
3.90
2.97
90
3.25
3.35
2.67
3.25
2.86
91
3.40
3.00
2.73
2.47
2.92
92
2.60
1.73
3.00
2.10
2.98
93
2.50
2.82
3.35
3.57
2.87
94
1.90
1.35
2.46
1.20
2.77
95
2.45
3.00
3.25
3.70
2.98
96
2.20
1.90
2.17
2.30
2.77
97
2.30
3.00
3.24
3.00
2.72
98
3.55
3.32
3.19
3.15
3.22
99
2.45
2.55
2.44
3.15
2.81
100
3.05
3.04
3.26
3.58
2.86
101
2.60
2.64
2.58
3.33
2.87
102
3.15
3.20
2.89
3.37
2.98
103
3.20
3.52
3.37
3.52
3.19
104
2.80
3.00
3.14
3.05
2.94
105
2.60
2.73
3.05
3.38
3.06
106
2.05
1.95
2.63
2.35
2.83
107
3.30
3.92
3.76
3.78
3.33
108
2.70
2.32
3.00
2.78
2.85
109
2.85
1.73
2.56
2.76
3.08
110
2.40
2.75
3.05
3.32
2.89
111
3.45
3.36
2.95
2.82
3.05
112
2.60
2.55
3.00
2.96
2.87
229
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
113
2.65
2.14
2.22
3.11
2.78
114
2.75
3.00
3.21
3.53
2.75
115
2.75
3.36
3.33
3.13
2.92
116
2.40
2.20
2.06
2.22
2.73
117
2.60
1.70
2.00
2.76
2.89
118
3.45
3.24
3.48
3.57
3.06
119
2.65
2.95
2.48
3.15
2.83
120
2.85
2.82
3.14
3.42
2.81
121
2.55
2.74
2.94
2.53
2.69
122
2.30
2.43
2.28
1.47
3.05
123
3.35
3.04
3.00
3.20
2.83
124
1.45
0.44
2.47
2.65
2.90
125
3.30
3.16
3.22
3.25
2.77
126
3.20
3.40
3.72
3.10
2.81
230
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
231
Data set Mahasiswa 2007 – 2008 Jalur Test Tertulis dan Jalur Prestasi
Nomor
ips1
ips2
ips3
ips4
final
1
2.06
2.32
2.91
3.00
2.71
2
2.72
2.50
2.96
2.38
2.71
3
3.33
3.48
3.78
3.48
2.78
4
2.39
3.00
2.43
2.82
2.86
5
2.11
2.71
2.43
2.45
2.95
6
3.00
2.96
2.61
3.29
2.70
7
3.72
3.56
3.43
3.67
3.15
8
3.44
3.04
2.88
3.48
2.85
9
2.17
2.70
3.09
3.63
2.88
10
3.89
3.75
3.00
3.62
3.08
11
2.89
3.68
2.88
3.76
2.92
12
3.11
3.08
2.78
3.48
2.73
13
2.00
2.00
2.29
3.00
3.08
14
3.06
2.50
2.57
2.78
2.73
15
1.67
2.24
2.52
2.16
2.72
16
3.89
3.63
3.57
3.62
2.99
17
2.61
0.32
0.69
2.85
2.72
18
2.83
2.55
3.09
3.17
2.79
19
3.72
3.74
2.87
3.52
2.77
20
3.72
3.42
3.65
3.71
2.85
21
3.72
3.48
3.36
3.65
2.60
22
2.89
3.21
3.33
3.36
2.20
23
2.56
2.77
2.52
3.13
2.08
24
3.28
2.75
2.90
3.00
2.56
25
1.89
2.20
2.21
1.95
2.36
26
1.44
2.42
2.53
1.96
2.96
27
4.00
3.52
3.43
3.70
2.32
28
1.72
1.65
1.53
1.68
1.12
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
29
2.89
3.18
3.04
2.95
2.28
30
2.94
3.27
2.96
2.81
2.16
31
2.94
2.59
1.55
2.35
2.12
32
2.44
2.63
2.00
2.67
2.04
33
1.72
2.65
2.43
2.24
2.36
34
2.80
2.91
2.80
3.33
2.08
35
2.90
2.50
3.10
2.75
2.32
36
1.40
1.64
1.82
1.07
2.40
37
2.65
2.40
2.17
2.75
1.84
38
2.65
3.23
2.79
3.30
2.00
39
3.35
2.91
2.45
0.83
2.44
40
2.70
2.86
2.32
2.70
2.00
41
2.55
2.68
3.15
2.64
1.96
42
3.10
3.08
2.95
3.05
2.64
43
2.45
2.40
2.44
2.26
2.68
44
2.55
2.41
2.47
2.68
2.24
45
2.75
2.59
2.79
3.32
2.52
46
2.25
1.55
1.31
0.31
2.76
47
2.70
2.36
2.68
0.05
2.40
48
3.15
3.00
3.24
2.33
2.44
49
2.85
2.68
3.37
3.09
2.08
50
2.35
2.40
0.59
2.23
2.56
51
2.05
1.50
2.40
2.00
2.12
52
2.85
2.64
2.84
2.75
2.16
53
2.35
2.20
2.94
2.09
2.00
54
3.15
3.20
2.72
3.05
2.64
55
3.10
3.32
3.72
3.42
2.24
56
2.70
3.44
3.39
2.33
2.36
57
2.05
1.55
2.33
2.70
2.08
58
2.30
2.61
2.50
2.50
1.60
232
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
59
2.80
2.88
2.39
2.44
2.36
60
2.15
2.26
2.33
2.06
2.04
61
2.90
2.28
2.39
1.93
2.36
62
3.25
3.16
3.11
2.56
2.36
63
3.45
3.60
3.39
3.50
2.52
64
2.30
3.13
3.00
3.05
2.12
65
2.30
2.39
2.62
2.94
2.12
66
2.85
3.28
3.50
3.63
2.56
67
2.20
2.30
1.28
0.00
2.04
68
1.55
1.00
1.72
0.00
2.00
69
1.65
1.67
2.07
1.85
1.96
70
3.20
3.04
2.94
3.14
2.64
71
3.10
2.60
2.89
2.72
2.40
72
2.05
1.28
1.73
0.82
2.96
73
2.65
1.87
2.00
1.56
2.36
74
2.35
1.04
0.19
0.92
2.56
75
2.40
2.65
2.57
3.24
2.95
76
0.85
2.29
2.21
2.00
2.85
77
2.65
2.75
2.11
2.74
2.74
78
2.85
3.27
2.91
2.73
2.93
79
1.85
1.71
2.40
2.06
2.98
80
2.95
2.91
3.16
3.25
2.80
81
3.35
2.48
3.00
2.14
3.00
82
2.65
2.14
2.45
2.64
2.92
83
3.35
3.09
3.42
3.25
3.11
84
2.60
3.00
2.90
3.10
2.83
85
3.50
2.92
3.27
3.04
2.85
86
3.10
2.80
3.68
3.57
3.22
87
2.25
2.05
2.29
1.83
2.80
88
2.65
2.77
2.14
0.94
2.89
233
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
3.65
3.74
3.70
3.90
2.97
90
3.25
3.35
2.67
3.25
2.86
91
3.40
3.00
2.73
2.47
2.92
92
2.60
1.73
3.00
2.10
2.98
93
2.50
2.82
3.35
3.57
2.87
94
1.90
1.35
2.46
1.20
2.77
95
2.45
3.00
3.25
3.70
2.98
96
2.20
1.90
2.17
2.30
2.77
97
2.30
3.00
3.24
3.00
2.72
98
3.55
3.32
3.19
3.15
3.22
99
2.45
2.55
2.44
3.15
2.81
100
3.05
3.04
3.26
3.58
2.86
101
2.60
2.64
2.58
3.33
2.87
102
3.15
3.20
2.89
3.37
2.98
103
3.20
3.52
3.37
3.52
3.19
104
2.80
3.00
3.14
3.04
2.94
105
2.60
2.73
3.05
3.38
3.06
106
2.05
1.95
2.63
2.35
2.83
107
3.30
3.92
3.76
3.78
3.33
108
2.70
2.32
3.00
2.78
2.85
109
2.85
1.73
2.56
2.76
3.08
110
2.40
2.75
3.05
3.32
2.89
111
3.45
3.36
2.95
2.82
3.05
112
2.60
2.55
3.00
2.96
2.87
113
2.65
2.14
2.22
3.11
2.78
114
2.75
3.00
3.21
3.53
2.75
115
2.75
3.36
3.33
3.13
2.92
116
2.40
2.20
2.06
2.22
2.73
117
2.60
1.70
2.00
2.76
2.89
118
3.45
3.24
3.48
3.57
3.06
234
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
119
2.65
2.95
2.48
3.15
2.83
120
2.85
2.82
3.14
3.42
2.81
121
2.55
2.74
2.94
2.53
2.69
122
2.30
2.43
2.28
1.47
3.05
123
3.35
3.04
3.00
3.20
2.83
124
1.45
0.44
2.47
2.65
2.90
125
3.30
3.16
3.22
3.25
2.77
126
3.20
3.40
3.72
3.10
2.81
235
Download