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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
i
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
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
BAB II LANDASAN TEORI ........................................................... 6
2.1 Data Mining.......................................................................... 6
2.1.1 Pengertian Data Mining ......................................... 6
2.1.2 Fungsi Data Mining ............................................... 9
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
2.2.2.4 Deviation Based ....................................... 13
2.3 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
BAB III 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
4.2 Perancangan Sistem Secara Umum ...................................... 37
4.2.1 Input Sistem ........................................................... 37
4.2.2 Proses Sistem ......................................................... 39
4.2.3 Output Sistem ......................................................... 40
4.3 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
4.4 Perancangan Struktur Data ................................................... 65
4.4.1 Graf ................................................................. 65
4.4.2 Matriks Dua Dimensi ............................................. 66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
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
BAB V IMPLEMENTASI SISTEM ................................................. 75
5.1 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
5.2 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
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 ........................ 101
6.1.4 Kesimpulan Hasil Pengujian Efek Perubahan Nilai Atribut
Penambangan Data ................................................. 102
6.1.5 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
6.2 Kelebihan dan Kekurangan Sistem ...................................... 112
6.2.1 Kelebihan Sistem ................................................... 112
6.2.2 Kekurangan Sistem ................................................ 112
BAB VIII KESIMPULAN DAN SARAN ............................................ 113
7.1 Kesimpulan ................................................................. 113
7.2 Saran ................................................................. 113
DAFTAR PUSTAKA ................................................................. 114
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR GAMBAR
Gambar 2.1 Proses KDD ................................................................. 7
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
......................................................................................... 80
Gambar 5.9 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xviii
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xix
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 berubah-
ubah 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 ............... 101
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xx
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
.............................................................................................. 106
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
1.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 2007-
2008.
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB III 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 obyek-
obyek 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 obyek-
obyek local neihgborhood yang didefinisikan dengan k-
nearest neighbor. Jika ketertetanggan antar obyek relatif dekat
maka dikatakan obyek tersebut normal, akan tetapi jika
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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̂(𝑝𝑖, 𝑟,) √∑ (𝑛(𝑝,𝑟) − n̂(𝑝𝑖 , 𝑟,))2𝑝𝑁(𝑝𝑖,𝑟)
𝑛(𝑝𝑖, 𝑟)
𝑀𝐷𝐸𝐹(𝑝𝑖 , 𝑟,) Multi-granuality deviation factor untuk pi pada radius r.
𝑀𝐷𝐸𝐹(𝑝𝑖, 𝑟, 𝛼) Standar deviasi multi-granuality deviation factor.
𝑘 𝑀𝐷𝐸𝐹(𝑝𝑖, 𝑟,) > 𝑘 𝑀𝐷𝐸𝐹(𝑝𝑖, 𝑟, 𝛼)
𝑘 = 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 multi-
granularity-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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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̂(𝑝𝑖, 𝑟,) √∑ (𝑛(𝑝,𝑟) − n̂(𝑝𝑖, 𝑟,))2𝑝𝑁(𝑝𝑖,𝑟)
𝑛(𝑝𝑖, 𝑟)
6. Menghitung Multy-granuality deviation factor untuk pi pada
radius r.
𝑀𝐷𝐸𝐹(𝑝𝑖, 𝑟, 𝑎) = �̂�(𝑝𝑖, 𝑟,) − 𝑛(𝑝𝑖,𝑟)
�̂�(𝑝𝑖, 𝑟,)= 1 −
𝑛(𝑝𝑖,𝑟)
�̂�(𝑝𝑖,, 𝑟)
7. Menghitung standar deviasi Multy-granuality deviation factor.
𝑀𝐷𝐸𝐹(𝑝𝑖 , 𝑟, 𝛼) = 𝑛̂ (𝑝𝑖, 𝑟,)
𝑛 (𝑝𝑖, 𝑟,)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
8. 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, α) > 3MDEF(pi, r, α)
flag pi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
2.4 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
IPS 1 NIL11 NIL12 NIL13 NIL14 NIL15
P1 2.94 2.80 2.00 2.00 2.00 1.60
P2 1.72 1.20 0.80 3.20 1.20 0.40
P3 2.56 2.40 1.60 2.00 2.80 2.00
P4 2.44 2.00 2.00 2.40 2.00 2.00
P5 2.94 2.40 1.60 2.40 1.20 2.80
P6 1.89 2.40 2.00 2.40 2.40 2.80
P7 4.00 2.40 2.40 1.60 1.60 2.80
P8 1.44 4.00 2.00 3.60 2.40 2.80
P9 3.72 3.20 2.40 2.40 2.80 2.00
P10 1.72 2.80 2.40 3.20 3.20 0.80
P11 3.28 2.80 2.40 2.80 2.40 2.40
P12 2.89 2.40 2.00 2.00 2.80 2.00
P13 2.89 2.00 2.00 3.20 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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.
Object r-neighbors 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
6. Menghitung standar deviasi MDEF.
Dimana 𝑀𝐷𝐸𝐹(𝑝𝑖, 𝑟, 𝛼) = 𝑛̂ (𝑝𝑖,𝑟,)
𝑛̂ (𝑝𝑖,𝑟,), yaitu normalisasi deviasi
𝑛̂ (𝑝𝑖, 𝑟,) dari 𝑛(𝑝𝑖,𝑟) untuk 𝑝𝑁(𝑝𝑖, 𝑟).
7. Menghitung kMDEF.
Pada tahap selanjutnya adalah membuktikan apakah objek tersebut
merupakan outlier atau bukan, dengan cara nilai MDEF dikalikan dengan
nilai 𝑘, diasumsikan nilai 𝑘 = 3.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
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”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
1. 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)
(10 − 0) (4 − 0) + 0 = 0,8 ∗ 4 + 0 = 3,20
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
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
2. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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, KMDEF,
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
masuk baik melalui jalur tes tertulis maupun jalur prestasi dan nilai
per semester dari semester 1 sampai dengan semester 4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
a. Data Hasil Seleksi Masuk Jalur Tes
No Nama
Atribut Penjelasan Nilai
1 Nomor urut Atribut ini merupakan nomor
untuk menunjukkan obyek
mahasiswa.
1 - 126
2 Nil11 Atribut ini merupakan nilai
komponen 1.
0.00 - 4.00
3 Nil12 Atribut ini merupakan nilai
komponen 2.
0.00 - 4.00
4 Nil13 Atribut ini merupakan nilai
komponen 3.
0.00 - 4.00
5 Nil14 Atribut ini merupakan nilai
komponen 4.
0.00 - 4.00
6 Nil15 Atribut ini merupakan nilai
komponen 5.
0.00 - 4.00
7 Final Atribut ini merupakan nilai rata-
rata rapor siswa pada saat
SMA/sederajat.
0.00-4.00
b. Data Hasil Seleksi Masuk Jalur Prestasi
No Nama
Atribut Penjelasan Nilai
1 Nomor urut
Atribut ini merupakan nomor
untuk menunjukkan obyek
mahasiswa.
1 - 126
2 Final Atribut ini merupakan nilai rata-
rata rapor siswa pada saat
SMA/sederajat.
0.00-4.00
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
c. Data Indeks Prestasi Semester
No Nama
Atribut Penjelasan Nilai
1 Nomor urut
Atribut ini merupakan nomor
untuk menunjukkan obyek
mahasiswa.
1 - 126
2 Ips1 Atribut ini merupakan Indeks
Prestasi Semester 1.
0.00-4.00
4 Ips2 Atribut ini merupakan Indeks
Prestasi Semester 2.
0.00-4.00
5 Ips3 Atribut ini merupakan Indeks
Prestasi Semester 3.
0.00-4.00
6 Ips4 Atribut ini merupakan Indeks
Prestasi Semester 4.
0.00-4.00
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
3. 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 r-
neighborhood 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:
1. Hasil outlier untuk setiap data beserta nilai atribut yang dimiliki.
2. Jumlah data.
3. Jumlah outlier.
4. Lama deteksi outlier.
4.3 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
5. 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 Nama Kelas Jenis Keterangan
1 DatabaseController Entity 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 proses seleksi
atribut, dan menyimpan
atribut yang digunakan untuk
proses deteksi.
4 Verteks Entity Kelas ini digunakan untuk
membentuk sebuah verteks,
dalam kelas ini juga terdapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 proses
deteksi outlier.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
13 HalamanPilihTabel Boundary 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
nnection conn)
Menampilkan
seluruh daftar tabel
yang ada di
database Oracle.
1. Membuat kueri untuk menampilkan
daftar tabel dari basisdata Oracle
dengan sintaks: select table_name
from user_tables user_tables.
2. Mengeksekusi kueri.
3. Mengembalikan nilai rset yang berisi
daftar tabel yang ada pada basisdata
Oracle.
tampilTabelMYSql
(Connection conn)
Menampilkan
seluruh dartar tabel
yang ada di
database mySQL.
1. Membuat kueri untuk menampilkan
daftar tabel dari basisdata MySQL
dengan sintaks: show tables.
2. Mengeksekusi kueri.
3. Mengembalikan nilai rset yang berisi
daftar tabel yang ada pada basisdata
mySQL.
selectTable(Connectio
n conn, String
namaTable)
Menampilkan isi
tabel berdasarkan
tabel yang dipilih.
1. Membuat kueri untuk menampilkan
daftar tabel dari basisdata MySQL
dengan sintaks: select * from +
namaTable.
2. Mengeksekusi kueri.
3. Mengembalikan nilai rset yang berisi
daftar tabel yang sesuai dengan
parameter “namaTable” pada kueri.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
2. Rincian Algoritma pada Method di Kelas KoneksiDatabase.
Nama Method Fungsi Method Algoritma Method
KoneksiDataBaseSQL
(String url, String user,
String password)
Melakukan koneksi
ke Database
MySQL.
1. Membuat koneksi basis data SQL ke
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
le(String url, String
user, String password)
Melakukan koneksi
ke Database Oracle
1. Membuat koneksi basis data Oracle
ke 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.
OracleConnected(Stri
ng url, String
username, String
password)
Mengecek apakah
sistem sudah
terhubung dengan
1. Jika parameter pada method
KoneksiDataBaseOracle(String url,
String user, String password) terisi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
database Oracle
atau belum.
maka akan mengembalikan nilai
true.
2. Jika tidak, maka akan
mengembalikan nilai false.
SQLConnected(String
url, String username,
String password)
Mengecek apakah
sistem sudah
terhubung dengan
database MySQL
atau belum.
1. Jika parameter pada method
KoneksiDataBaseSQL(String url,
String user, String password) terisi
maka akan mengembalikan nilai
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
3. Rincian Algrotima pada Method di Kelas Graph.
Nama Method Fungsi Method Algoritma Method
addVertex(String
label, List<Double>
nilai)
Membuat vertex
untuk membentuk
graph.
1. Membaca parameter berupa label
dan list nilai.
2. Membuat vertex baru dengan label
dan nilai yang diinputkan melalui
parameter.
addEdge(int awal, int
akhir, Double nilai)
Mengisi nilai edge
pada vertex.
1. Membaca parameter berupa awal,
akhir, dan nilai.
2. Mengisi nilai jarak kedalam
edge[awal][akhir] dan
edge[akhir][awal].
inputData(JTable
jTableData)
Menginputkan data
dari Jtable ke dalam
matrix dalam graph.
1. Selama i = 0 dan i tidak lebih dari
jumlah baris dalam jTable maka
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 rumus Ecludiian
Distance dengan memanggil
method cariJarakEcludian.
cariJarakEcludian (int
indexAwal, int
indexTujuan)
Menghitung jarak
dengan rumus
Euclidean Distance.
1. Membaca nilai parameter input
method yaitu nilai awal dan nilai
akhir.
2. Membuat dua buah list yaitu a dan
b. a merupakan vertexList
indexAwal dan 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
dengan
menggunakan rumus
Euclidean Distance.
1. Jika i = 0 dan I kurang dari jumlah
baris vertexList maka akan
menampilkan vertexList[i] dengan
memanggil method getLabel().
2. Jika i = 0 dan i kurang dari jumlah
baris adjMat maka akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
ouble radius, int indeks
Untuk mencari
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
r(int indeks, Double
radius)
Untuk mencari
anggota RNeighbor.
1. Set semua wasVisited dari semua
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, dan
adjMAt[indeks][i] != -1 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
(String label, Double
radius)
Untuk mengeset
anggotaRNeighbor
ke dalam vertex.
1. Membuat variabel indeks dengan
memanggil method Search dengan
parameter label.
2. Memanggil method setrNeighbors
pada vertexList[indeks] dengan
inputan hasil dari
cariRNeighborhood dengan inputan
vertexList[indeks].getAnggotaRNei
ghbor(), index.
setRNeighborhood(Str
ing label)
Untuk mengeset
variable
RNeighborhood ke
dalam vertex.
1. Membuat variabel indeks dengan
memanggil method Seacrh dengan
parameter label.
2. Memanggil method
setAnggotaRNeighbors pada
vertexList[indeks] dengan inputan
hasil dari
cariAnggotaRNeighborhood dengan
parameter indeks dan radius.
setNpir() Untuk mengeset
npir.
1. Membuat variabel x.
2. Selama i = 0 dan i tidak lebih dari
jumlah baris adjMat, jika j = 0 dan j
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
anggota npir dan
n(pi, r)
1. Membuat variabel rn.
2. Selama i = 0 dan i tidak lebih dari
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 radius, int
indeks)
Untuk mencari
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
cariAnggotaARNeigh
bor(int indeks, Double
radius)
Untuk mencari
anggota
ARneighbor.
1. Set semua wasVisited dari semua
obyek (vertex) menjadi false.
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, dan
adjMAt[indeks][i] != -1 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
or(String label, Double
radius)
Untuk mengeset
anggotaARNeighbor
ke dalam vertex.
1. Membuat variabel indeks dengan
memanggil method Seacrh dengan
parameter label.
2. Memanggil method setrNeighbors
pada vertexList[indeks] dengan
inputan hasil dari
cariARNeighborhood dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
inputan
vertexList[indeks].getAnggotaAR
Neighbor(), index.
setARNeighborhood(
String label)
Untuk mengeset
variable
ARNeighborhood ke
dalam vertex.
1. Membuat variabel indeks dengan
memanggil method Search dengan
parameter label.
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
anggota npar dan
n(pa, r)
1. Membuat variabel arn.
2. Selama i = 0 dan i tidak lebih dari
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
maka arn = arn + 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 mencari
outlier.
1. Membuat variabel jml_npar,
jml_npar2, avgNpira, stdevNpira,
mdef, omdef, komdef dengan tipe
Double.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
2. Memanggil 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 avgNpira dengan
memanggil hasil 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
11. Mengeset mdef 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
label)
Untuk mengeset
tabel
HasilDeteksiOutlier
1. Membuat ArrayList dengan nama
dlc yang bertipe List<DataLoci>.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
agar hasil deteksi
outlier dapat di
tampilkan ke dalam
tabel.
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 Fungsi Method Algoritma Method
add(int a,
SeleksiAtribut
field_m)
Menambah data ke
dalam
CheckBoxTableMode.
1. Membaca parameter a dan field_m.
2. Menambahkan nilai field_m sebagai
data di index ke-a ke dalam list.
removeRow() Menghapus atribut
yang di hapus dari
tabel seleksi atribut.
1. Membuat 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
5. Rincian Algrotima pada Method di Kelas HalamanUtama.
Nama Method Fungsi Method Algoritma Method
pilihFile() Untuk memilih file
bertipe .xls atau .csv.
1. Menampilkan kotak dialog Open
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
iDataBase kdb, String
table)
Untuk memasukkan
data dari tabel
basisdata.
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 method
getColumnName.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
pada tabel data pada
tab Preprocessing dan
tab Deteksi Outlier.
1. Membuat varaibel tableModel
dengan mengambil model dari
tabel dataPreprocessTable.
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
dan alpha untuk proses
deteksi outlier.
1. Jika nilai radius kosong akan
menampilkan pesan “Nilai radius
tidak boleh kosong!”, lakukan
pengisian ulang parameter
tersebut.
2. Jika nilai alpha kosong akan
menampilkan pesan “Nilai alpha
tidak boleh kosong!”, lakukan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
pengisian ulang 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 0-
1 + "\n" + "dan nilai konstanta
harus bilangan bulat positif > 0".
7. Jika ya buat obyek baru dengan
nama graph dan memanggil
jumlah baris pada
dataOutlierTable.
8. Mengeset radius.
9. Mengeset alpha.
10. Mengeset konstanta.
11. Memanggil method inputData ke
dalam dataOutlierTable.
12. Memanggil method
tampilJarakEuclidean().
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
13. Memanggil 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
dalam file .xls, .doc,
atau .txt.
1. Membuat obyek fileChooser.
2. Membaca lokasi penyimpanan file
dan disimpan dalam variabel
filename.
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 pada
HasilOutlierTable.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
4.4 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 masing-
masing 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
4.5 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
menyeleksi atribut, pada fungsi ini user dapat menyeleksi atribut mana
saja yang akan dipakai.
Bantuan
Tentang
Keluar
Preprosessing Deteksi Outlier
Pilih File Pilih Database
Seleksi Atribut
Jumlah Data
Atribut
Tandai Semua
Batal
Hapus
Submit
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMALOCAL CORRELATION INTEGRAL
Atribut 1 Atribut 2 Atribut 3 Atribut 4
Atribut 1 Atribut 2
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Bantuan
Tentang
Keluar
Preprosessing Deteksi Outlier
Proses
Jumlah Data
Hasil Deteksi Outlier
Simpan
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMALOCAL CORRELATION INTEGRAL
Hapus
Proses Algoritma Local Correlation Integral
radius alpha
Atribut 1 Atribut 2 Atribut 3 Atribut 4
No Mahasiswa MDEF KOMDEF
konstanta
Gambar 4.4 Tampilan Halaman Utama Tab Deteksi Outlier
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
4.5.3 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 ALGORITMALOCAL CORRELATION INTEGRAL
Petunjuk Penggunaan
A. Petunjuk Preprosessing Data
B. Petunjuk Proses Deteksi Outlier
Kembali
Gambar 4.5 Tampilan Halaman Bantuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
4.5.4 Tampilan Halaman Tentang
Halaman tentang berisi nama sistem, serta nama pembuat sistem
tersebut.
SISTEM PENDETEKSI OUTLIER
Dibuat oleh:FELISITAS BRILLIANTI
105314013
PROGRAM STUDI TEKNIK INFORMATIKAFAKULTAS SAINS DAN TEKNOLOGIUNIVERSITAS SANATA DHARMA
YOGYAKARTA2014
PENGEMBANGAN ALAT BANTUDETEKSI OUTLIER MENGGUNAKAN
ALGORITMA LOCAL CORRELATION INTEGRAL
Kembali
Gambar 4.6 Tampilan Halaman Tentang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
4.5.5 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.
OPEN CANCEL
Look In:
File Name:
Files of type:
Gambar 4.8 Tampilan Halaman Pilih File
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
4.5.7 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
OK BATAL
Username
Password
Database Name
Url
Gambar 4.9 Tampilan Halaman Pilih Database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
4.5.8 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
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’.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 akan
menampilkan pesan “Nilai konstanta tidak boleh kosong!”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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. Atribut keduabelas adalah
AnggotaARNeighbor yang berfungsi untuk menyimpan
AnggotaARNeighbor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
5.3 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 Nama Kelas Nama File Fisik Nama File Executable
1 Graph Graph.java Graph.class
2 Verteks Verteks.java Verteks.class
3 DataLoci DataLoci.java DataLoci.class
4 DatabaseController DatabaseController.java DatabaseController.class
5 SeleksiAtribut SeleksiAtribut.java SeleksiAtribut.class
6 CheckBoxTableModel CheckBoxTableModel.java CheckBoxTableModel.class
7 KoneksiDataBase KoneksiDataBase.java KoneksiDataBase.class
8 LociTabelModel LociTabelModel.java LociTabelModel.class
9 HalamanAwal HalamanAwal.form HalamanAwal.class
10 HalamanBantuan HalamanBantuan.form HalamanBantuan.class
11 HalamanPilihDatabase HalamanPilihDatabase.form HalamanPilihDatabase.class
12 HalamanPilihFile HalamanPilihFile.form HalamanPilihFile.class
13 HalamanPilihTabel HalamanPilihTabel.form HalamanPilihTabel.class
14 HalamanTentang HalamanTentang.form HalamanTentang.class
15 HalamanUtama HalamanUtama.form HalamanUtama.class
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
Tabel 6.1 Tabel Rencana Pengujian
Kelas Uji Butir Uji Jenis Pengujian
DatabaseConnection Koneksi ke dalam
database (MySql dan
Oracle).
Blackbox
HalamanUtama Menampilkan data file
dalam extensi .xls
Blackbox
Menampilkan data file
dengan extensi .csv
Blackbox
Menampilkan data
dari tabel basisdata.
Blackbox
Melakukan seleksi
atribut
Blackbox
Menampilkan hasil
deteksi outlier.
Blackbox
HalamanPilihDatabase Menampilkan form
pilihDatabase untuk
masuk ke basis data
sesuai dengan pilihan
pengguna.
Blackbox
HalamanPilihTabel Menampilkan daftar
tabel dari database
sesuai pilihan
pengguna.
Blackbox
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Memasukkan
data dari file
berekstensi .xls
Data tertampil ke
dalam tabel.
Data tertampil
ke dalam tabel.
Diterima
Memasukkan
data dari file
berekstensi .csv
Data tertampil ke
dalam tabel.
Data tertampil
ke dalam tabel.
Diterima
Memasukkan
data dari tabel
basisdata.
Data tertampil ke
dalam tabel.
Data tertampil
ke dalam tabel.
Diterima
Menyeleksi
atribut
Atribut yang
tidak digunakan
terhapus dari
tabel.
Atribut yang
tidak digunakan
terhapus dari
tabel.
Diterima
Melakukan
proses deteksi
outlier
menggunakan
algoritma Local
Correlation
Integral.
Menghasilkan
output hasil
deteksi beserta
atribut terkait.
Hasil deteksi
outlier berhasil
ditampilkan.
Diterima
Kasus Dan Hasil Uji (Data Salah)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
Aktivitas yang
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Input data
dengan extensi
selain .xls atau
.csv
Menampilkan
pesan peringatan
“File yang anda
pilih harus
berformat .xls
atau .csv”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
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
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Memasukkan
username,
password, url,
dan nama
database benar
(mySQL)
Menampilkan
pesan “Koneksi
ke Database
MySQL
Berhasil”.
Pesan berhasil
ditampilkan.
Diterima
Memasukkan
username,
password, url,
dan nama
database benar
(Oracle)
Menampilkan
pesan “Koneksi
ke Database
Oracle Berhasil”.
Pesan berhasil
ditampilkan.
Diterima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
Kasus Dan Hasil Uji (Data Salah)
Aktivitas yang
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Input username,
password, nama
database, dan url
ada yang kosong
(mySQL).
Menampilkan
pesan peringatan
“Username,
Password, Nama
Database, dan
URL tidak boleh
kosong!”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
Input username,
password, nama
database, dan url
ada yang salah
(mySQL).
Menampilkan
pesan peringatan
“Username,
Password, Nama
Database, dan
URL yang anda
masukkan
salah”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
Input username,
password, nama
database, dan url
ada yang kosong
(Oracle).
Menampilkan
pesan peringatan
“Username,
Password, Nama
Database, dan
URL tidak boleh
kosong!”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
Input username,
password, nama
database, dan url
ada yang salah
(Oracle).
Menampilkan
pesan peringatan
“Username,
Password, Nama
Database, dan
Pesan
peringatan
berhasil
ditampilkan.
Diterima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Membuka
HalamanPilihTabel
Menampilkan
daftar tabel
yang berasal
dari basisdata
yang dipilih
pengguna.
Daftar tabel
berhasil
ditampilkan.
Diterima
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
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
97
Memilih salah
satu atau lebih
atribut yang
akan dihapus.
Kemudian
pengguna
menekan tombol
“Hapus”.
Atribut yang
dipilih terhapus.
Atribut berhasil
dihapus dari
tabel.
Diterima
Menekan
tombol “Hapus
Semua”.
Semua atribut
dihapus.
Semua atribut
berhasil dihapus
dari tabel.
Diterima
Menekan
tombol “Batal”
Atribut yang
ditandai menjadi
tidak ditandai.
Semua atribut
dalam tabel
tidak ditandai.
Diterima
6.1.1.5 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
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Menginputkan
parameter radius
berupa bilangan
real dan alpha
berupa bilangan
real antara 0-1.
Hasil deteksi
outlier beserta
atributnya.
Hasil deteksi
outlier beserta
atributnya.
Diterima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
98
Kasus Dan Hasil Uji (Data Salah)
Aktivitas yang
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Input parameter
radius ada yang
kosong
Menampilkan
pesan peringatan
“Nilai radius
tidak boleh
kosong!”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
Input parameter
alpha ada yang
kosong
Menampilkan
pesan peringatan
“Nilai alpha
tidak boleh
kosong!”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
Input parameter
konstanta ada
yang kosong
Menampilkan
pesan peringatan
“Nilai konstanta
tidak boleh
kosong!”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
Input parameter
radius, alpha ada
yang bukan
bilangan real dan
konstanta ada
yang bukan
bilangan bulat
positif > 0.
Menampilkan
pesan peringatan
“Nilai radius
harus bilangan
real, nilai alpha
antara 0-1 dan
nilai kontsanta
harus bilangan
bulat positif >
0”.
Pesan
peringatan
berhasil
ditampilkan.
Diterima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
dilakukan
Keluaran yang
diharapkan
Hasil yang
diperoleh
Kesimpulan
Menekan
tombol
“Simpan” (.doc)
File tersimpan di
lokasi yang telah
di pilih oleh
pengguna dan
berekstensi .doc
File tersimpan di
lokasi yang telah
di pilih oleh
pengguna dan
berekstensi .doc
Diterima
Menekan
tombol
“Simpan” (.xls)
File tersimpan di
lokasi yang telah
di pilih oleh
pengguna dan
berekstensi .xls
File tersimpan di
lokasi yang telah
di pilih oleh
pengguna dan
berekstensi .xls
Diterima
Menekan
tombol
“Simpan” (.txt)
File tersimpan di
lokasi yang telah
di pilih oleh
pengguna dan
berekstensi .txt
File tersimpan di
lokasi yang telah
di pilih oleh
pengguna dan
berekstensi .txt
Diterima
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
k = 1 k = 2 k = 3
r = 3.0 7, 10, 15, 16, 26, 27, 28,
33, 36, 58, 68, 69, 76, 124
10, 16, 26, 27,
28, 36, 68, 76,
124
28, 76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
102
r = 3.5 7, 10, 16, 26, 27, 28, 36,
68, 69, 76, 124
26, 28, 36, 76 28, 76
r = 4.0 10, 16, 26, 27, 28, 36, 68,
69, 76, 124
28, 76 28, 76
r = 4.5 7, 10, 16, 19, 20, 21, 26,
27, 28, 36, 68, 69, 76, 124
28, 76 28, 76
r = 5.0 10, 16, 26, 27, 28, 36, 76 28, 76 28, 76
6.1.4 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
104
Tabel 6.12 Tabel Perbandingan Hasil Deteksi Outlier
Mahasiswa Angkatan 2007 Jalur Tes
Input
Parameter
(r, , dan k)
Semester
Hasil Outlier
Hitung
Manual Sistem
r = 6; =
0.5; k = 3
1 P2 P2
2 P2 P2
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
4 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
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
106
Tabel 6.14 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur
Prestasi
Sem Nomor
Urut ips1 ips2 ips3 ips4 final
1 76 0.85 - - - 2.85
2 17 - 0.32 - - 2.72
124 - 0.44 - - 2.90
3 3 - - 3.78 - 2.78
17 - - 0.69 - 2.72
107 - - 3.76 - 3.33
4 88 - - - 0.94 2.89
94 - - - 1.20 2.77
122 - - - 1.47 3.05
3. 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 Nomor
Urut ips1 ips2 ips3 ips4 final
Jalur
Tes
1 28 1.72 - - - 1.12 Tes
76 0.85 - - - 2.85 Prestasi
2 17 - 0.32 - - 2.72 Prestasi
28 - 1.65 - - 1.12 Tes
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
107
68 - 1.00 - - 2.00 Tes
124 - 0.44 - - 2.90 Prestasi
3 17 - - 0.69 - 2.72 Prestasi
28 - - 1.53 - 1.12 Tes
50 - - 0.59 - 2.56 Tes
74 - - 0.19 - 2.56 Tes
4 46 - - - 0.31 2.76 Tes
47 - - - 0.05 2.40 Tes
67 - - - 0.00 2.04 Tes
68 - - - 0.00 2.00 Tes
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 tengah-
tengah. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
112
6.2 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
113
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.
2. Nilai radius sangat berpengaruh terhadap hasil deteksi outlier.
3. Nilai konstanta sangat berpengaruh terhadap hasil deteksi outlier.
7.2 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Density-
Based 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
115
LAMPIRAN 1
Diagram Use Case
Pengguna
Input data file .xls, .csv, atau tabel database
Deteksi Outlier
Simpan Hasil Deteksi Outlier
<<depends on>>
<<depends on>>
Seleksi Atribut
<<extends>>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
116
LAMPIRAN 2
Deskripsi Use Case
Nomor
Use Case
Nama Use Case Deskripsi Aktor
001 Input data file .xls,
.csv, atau tabel
basisdata
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.
Pengguna
002 Deteksi outlier Use case deteksi outlier
menggambarkan tentang proses
pencarian outlier pada data yang
telah di masukkan oleh pengguna.
Pengguna
003 Simpan hasil
deteksi outlier
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.
Pengguna
004 Seleksi atribut Use case seleksi atribut
menggambarkan proses seleksi
atribut, dimana pengguna dapate
memilih atribut mana yang akan di
Pengguna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
117
gunakan untuk proses deteksi, dan
atribut mana yang akan di hapus.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Jenis Use Case
Kebutuhan
Operasional ID Use Case 001
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 Respon Sistem
Langkah 1: Pengguna
menekan tombol ‘Pilih File’
untuk memilih file yang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
119
akan digunakan untuk
proses deteksi 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 Respon Sistem
Langkah 1: Pengguna
menekan tombol ‘Pilih
Database’ untuk memilih
file yang akan digunakan
untuk proses deteksi dari
tabel database.
Langkah 2: Sistem
menampilkan Halaman
Pilih Database.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
120
Langkah 3: Pengguna
memilih database yang akan
di ambil datanya.
Langkah 4: Pengguna
memasukkan 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 Jenis Use Case
Kebutuhan
Operasional
ID Use Case 002
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 Respon Sistem
Langkah 1: Pengguna
menginputkan nilai radius,
alpha, dan konstanta.
Langkah 2: Pengguan
menekan tombol ‘Proses’.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
122
Langkah 3: Sistem
melakukan proses
pencarian outlier
berdasarkan algoritma
Local 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 Jenis Use Case
Kebutuhan
Operasional
ID Use Case 003
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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
123
Kondisi Awal Pengguna berada pada tab Deteksi Outlier. Sistem
menampilkan hasil deteksi outlier pada tabel
‘HasilDeteksiTable’.
Urutan Aktivitas Normal Aksi Aktor Respon Sistem
Langkah 1: Pengguna
menekan tombol ‘Simpan’.
Langkah 2: Sistem
menampilkan kotak
dialog penyimpanan file.
Langkah 3: Pengguna
memilih 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
124
Langkah 9: 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 Jenis Use Case
Kebutuhan
Operasional
ID Use Case 004
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 tabel
‘seleksiTable’.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
125
Langkah 2: 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
126
LAMPIRAN 4
Diagram Proses Umum Sistem
STAR
Data File .csv
Data File .xls
Data Basisdata
Pilih Seleksi Tabel
Proses Seleksi
Input radius, alpha, dan konstanta
Proses Deteksi
Hasil Deteksi Outlier
END
Ya
Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
127
LAMPIRAN 5
Diagram Aktivitas
1. Diagram Aktivitas Memilih File .xls atau .csv
Menekan tombol pilih file
Menampilkan halaman
jFileChooser
Memilih file .xls atau .csv
Menampilkan data ke
dalam tabel
SistemPengguna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
128
2. Diagram Aktivitas Input Data dari Tabel Database.
Menekan tombol pilih
databaseMenampilkan halaman
pilih database
Memilih database
(Oracle atau mySQL)
Menampilkan kotak
dialog koneksi berhasil
SistemPengguna
Memasukkan
username, password,
nama database, dan
URL
Koneksi Berhasil
Menekan tombol OK
Menekan tombol OK
Tidak
Ya
Menampilkan halaman
pilih tabelMemilih tabel
Menekan tombol OKMenampilkan data ke
dalam tabel
Pilih
Oracle
Ya
Tidak
Memasukkan
username, password,
nama database, dan
URL
Menekan tombol OK
Menekan tombol OK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
129
3. Diagram Aktivitas Deteksi Outlier.
Memasukkan nilai radius,
alpha, dan konstanta
Melakukan proses deteksi
outlier
SistemPengguna
Menampilkan hasil deteksi
outlier ke dalam tabel
Menekan tombol Proses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
130
4. Diagram Aktivitas Simpan Hasil Deteksi Outlier.
SistemPengguna
Menekan tombol SimpanMenampilkan kotak dialog
penyimpanan file
Memilih lokasi
penyimpanan file
Memasukkan nama file
Memilih extensi file data
Menekan tombol Save Menyimpan hasil outlier
Menampilkan dialog hasil
outlier berhasil disimpanMenekan tombol OK
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
131
5. Diagram Aktivitas Seleksi Atribut.
Menampilkan daftar atribut
pada tabel seleksi atribut
SistemPengguna
Menandai atribut yang
akan dihapus dari tabel
Menekan tombol HapusMenghapus atribut beserta
data pada tabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
132
LAMPIRAN 6
Diagram Kelas Analisis
HalamanAwal
HalamanPilihFile
Halaman Utama
HalamanPilihTabel
KoneksiDataBase
HalamanPilihDatabase DatabaseController
Graph
Verteks
DataLoci
LociTableModel
CheckBoxTableModel
SeleksiAtributHalamanTentangHalamanBantuan
Pengguna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
133
LAMPIRAN 7
Diagram Sequence
1. Diagram Sequence Memilih File .xls atau .csv
<<boundary>>
HalamanUtama
<<entity>>
ChecBoxTableModel
<<entity>>
SeleksiAtribut
1. Tekan tombol Pilih File
2. Tampil jFileChooser
3. Memilih file .xls atau .csv
5. new
CheckBoxTableModel
6. setAtribut(), getAtribut(), setPilih(), getPilih()
7. setPilih(false)
8. add(column, seleksiAtribut)
4. pilihFile()
9. Menampilkan data ke tabel
dataPreprocessTable
10. Menampilkan data ke tabel seleksiTable
Pengguna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
134
2. Diagram Sequence Input Data dari Tabel Database.
<<boundary>>
HalamanUtama
<<boundary>>
HalamanPilihDatabase
<<controller>>
DatabaseControllerPengguna
<<entity>>
KoneksiDataBase
<<boundary>>
HalamanPilihTabel
<<entity>>
CheckBoxTableModel
<<entity>>
SeleksiAtribut
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
135
3. Diagram Sequence Deteksi Outlier.
<<boundary>>
HalamanUtamaPengguna
<<controller>>
Graph
<<entity>>
Vertex
<<entity>>
LociTableModel
<<entity>>
DataLoci
1. Menginputkan radius
2. Menginputkan alpha
4. Menekan tombol Proses
5. inputData(jTable)
6. new graph()
7. new vertex()
8. setRadius(radius)
9. setAlpha(alpha)
11. cariLoci()
12.setDataLoci
13. setLabel, setMdef, setKomdef
14. setValueAt, getValueAt
15. tableModel
16. Menampilkan hasil
deteksi outlier
3. Menginputkan konstanta
10. setKonstanta(konstanta)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
136
4. Diagram Sequence Simpan Hasil Deteksi Outlier.
<<boundary>>
HalamanUtamaPengguna
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
137
5. Diagram Sequence Seleksi Atribut.
<<boundary>>
HalamanUtama
<<entity>>
ChecBoxController
<<entity>>
SeleksiAtribut
1. Memilih atribut
Pengguna
2. Menekan tombol Hapus
3. hapusAtribut()
3. removeRow()
4. getPilih()
4. Menghapus atribut yang di pilih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
138
LAMPIRAN 8
Diagram Kelas Desain
<<boundary>>
HalamanAwal
<<boundary>>
HalamanUtama
<<boundary>>
HalamanPilihFile
<<boundary>>
HalamanPilihDatabase
<<boundary>>
HalamanPilihTable
<<controller>>
DatabaseController
<<entity>>
KoneksiDatabase
<<entity>>
CheckBoxTableModel
<<entity>>
SeleksiAtribut
<<controller>>
Graph
<<entity>>
Verteks
<<entity>>
DataLoci
<<entity>>
LociTableModel
<<boundary>>
HalamanBantuan
<<boundary>>
HalamanTentang
1
1
1
1
1
1
1 *
1
1
1
1 1
1
1 *
1
1
1 *1
1 1
1 *
memanggil
memanggil
memanggil
memanggil
memanggil
memanggil
memanggil
memanggil
memanggil
memanggil
memanggil
memiliki
memanggil
memanggil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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
- alpha
- arneighbors
- konstanta
- max
- npar
- npir
- radius
- rneighbors
- size
- vertexList
: Double[][]
: Double
: int[][]
: int
: int
: int [][]
: int[][]
: Double
: int[][]
: int
: Verteks[]
+ Graph(int maxVertex)
+ Search(String label)
+ Search2(String label)
+ addEdge(int awal, int akhir, Double nilai)
+ addVertex(String label, List<Double> nilai)
: Konstruktor
: int
: void
: void
: void
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
140
+ cariARNeighborhood(Double radius, int indeks)
+ cariAnggotaARNeighbor(int indeks, Double radius)
+ cariAnggotaRNeighbor(int indeks, Double radius)
+ cariJarakEcludian(int indexAwal, int indexTujuan)
+ cariLoci()
+ cariRNeighborhood(Double radius, int indeks)
+ getAdjMat()
+ getAlpha()
+ getKonstanta()
+ getRadius()
+ getSize()
+ getVertexList()
+ inputData(JTable jTableData)
+ jumlahARNeighbors()
+ jumlahRNeighbors()
+ setARNeighborhood(String label)
+ setAdjMat(Double[][] adjMat)
+ setAlpha(Double alpha)
+ setAnggotaArNeighbor(String label, Double radius)
+ setAnggotaRNeighbor(String label, Double radius)
+ setDataLoci(String label)
+ setJumlahAnggota()
+ setKonstanta(int konstanta)
+ setNpar()
+ setNpir()
+ setRNeighborhood
+ setRadius(Double radius)
+ setVertexList(Vertex[] verteList)
+ tampilARNeighbor()
+ tampilJarakEcludien()
+ tampilRNeighbor()
: void
: List<String>
: Double
: Double
: Double
: void
: List<String>
: Double
: int
: Double
: Double
: int
: Verteks[][]
: void
: void
: void
: void
: void
: void
: void
: LociTabelModel
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
141
<<entity>>
Seleksi Atribut
- atribut
- pilih
: String
: Boolean
+ SeleksiAtribut()
+ SeleksiAtribut(String atribut, Boolean pilih)
+ getAtribut()
+ getPilih()
+ setAtribut(String atribut)
+ setPilih(Boolean pilih)
: Konstruktor
: Konstruktor
: String
: Boolean
: void
: void
<<entity>>
Verteks
- AnggotaARNeighbor
- AnggotaRNeighbor
- arNeighbor
- avgNpira
- jumlah_arNeighbors
- jumlah_rNeighbors
- komdef
- label
- mdef
- nilai
- omdef
- rNeighbors
- stdevNpira
- wasVisited
: Double
: Double
: List<String>
: Double
: int
: int
: Double
: String
: Double
: List<Double>
: Double
: List<String>
: Double
: boolean
+ Verteks(String label, List<Double> nilai) : Konstruktor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
142
+ getAnggotaARNeighbor()
+ getAnggotaRNeighbor()
+ getArNeighbors()
+ getAvgpira()
+ getJumlah_arNeighbors()
+ getJumlah_rNeighbors()
+ getKomdef()
+ getLabel()
+ getMdef()
+ getNilai()
+ getOmdef()
+ getStdevNpira()
+ getrNeighbors
+ isWasVisited
+ setAnggotaARNeighbor(Double AnggotaARNeighbor)
+ setAnggotaRNeighbor(Double AnggotaRNeighbor)
+ setArNeighbors(List<String> arNeighbors)
+ setAvgNpira(Double avgNpira)
+ setJumlah_arNeighbors(int jumlah_arNeighbors)
+ setJumlah_rNeighbors(int jumlah_rNeighbors)
+ setKomdef(Double komdef)
+ setLabel(String label)
+ setMdef(Double mdef)
+ setNilai(List<Double> nilai)
+ setOmdef(Double omdef)
+ setStdevNpira(Double stdevNpira)
+ setWasVisited(booelan wasVisited)
+ setrNeighbors(List<String>rNeighbors)
: Double
: Double
: List<String>
: Double
: int
: int
: Double
: String
: Double
: List<Double>
: Double
: Double
: List<String>
: boolean
: void
: void
: List<String>
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: List<String>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
143
<<entity>>
CheckBoxTableModel
- column
- list
- seleksi
: String[]
: List<SeleksiAtribut>
: SeleksiAtribut
+ CheckBoxTableModel()
+ add(int a, SeleksiAtribut field_m)
+ getColumnClass(int columnIndex)
+ getColumnCount()
+ getColumnName(int col)
+ getRowCount()
+ getValueAt(int rowIndex, int columnIndex)
+ isCellEditable(int row, int column)
+ removeRow()
+ setValueAt(Object value, int rowIndex, int columnIndex)
: Konstruktor
: void
: Class
: int
: String
: int
: Object
: boolean
: void
: void
<<entity>>
DataLoci
- komdef
- label
- mdef
: Double
: String
: Double
+ getKomdef()
+ getLabel()
+ gekMdef()
+ setKomdef(Double komdef)
+ setLabel(String label)
+ setMdef(Double mdef)
: Double
: String
: Double
: void
: void
: void
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
144
<<controller>>
KoneksiDatabase
- connection
- jdbcURL
- password
- user
: Connection
: String
: String
: String
+ KoneksiDataBase()
+ Connected()
+ KoneksiDataBaseOracle(String, String, String)
+ KoneksiDataBaseSQL(String, String, String)
+ OracleConnected(String, String, String)
+ SQLConnected(String, String, String)
+ getClosed()
+ getConnection()
+ getJdbcURL()
+ getPassword()
+ getUser()
+ setConn(Connection connection)
+ setJdbcURL(String jdbcURL)
+ setPassword(String password)
+ setUser(String user)
: Konstruktor
: boolean
: Connection
: Connection
: boolean
: boolean
: boolean
: Connection
: String
: String
: String
: void
: void
: void
: void
<<entity>>
LociTabelModel
- dlo
- label
: List<DataLoci>
: String
+ LociTabelModel(List<DataLoci> dlo, String label)
+ getColumnCount()
+ getColumnName(int column)
: Konstruktor
: int
: String
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
145
+ getRowCount()
+ getValueAr(int rowIndex, int columnIndex)
+ isCellEditable(int row, in col)
+ setValueAt(Objecy val, int rowIndex, int columnIndex)
: int
: Object
: Boolean
: void
<<boundary>>
HalamanAwal
- jLabel1
- jLabel2
- jLabel3
- jLabel4
- jLabel5
- jLabel6
- jPanel1
- masukButton
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JButton
+ HalamanAwal()
+ masukButtonActionPerformed(ActionEvent evt)
: Konstruktor
: void
<<boundary>>
HalamanBantuan
- bantuanButton
- jLabel12
- jLabel14
- jLabel2
- jLabel3
- jLabel5
- jLabel6
- jPanel1
: JButton
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
146
- jPanel2
- jPanel3
- jPanel4
- jScrollPane1
- jTextArea1
- keluarButton
- kembaliBurron
- tentangButton
: JPanel
: JPanel
: JPanel
: JScrollPane
: JTextArea
: JButton
: JButton
: JButton
+ HalamanBantuan()
+ bantuanButtonActionPerformed(ActionEvent evt)
+ keluarButtonActionPerformed(ActionEvent evt)
+ kembaliButtonActionPerformed(ActionEvent evt)
+ tentangButtonActionPerformed(ActionEvent evt)
: Konstruktor
: void
: void
: void
: void
<<boundary>>
HalamanPilihDatabase
- batalButton
- dbNameTextField
- jLabel1
- jLabel2
- jLabel3
- jLabel4
- jLabel5
- okButton
- passwordField
- pilihKoneksiComboBox
- urlTextField
- userNameTextField
: JButton
: JTextField
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JButton
: JPasswordtField
: JComboBox
: JTextField
: JTextField
+ HalamanPilihDatabase() : Konstruktor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
147
+ batalButtonActionPerformed(ActionEvent evt)
+ okButtonActionPerformed(ActionEvent evt)
+ pilihDatabase()
+ pilihKoneksiComboBoxActionPerformed(ActionEvent evt)
: void
: void
: void
: void
<<boundary>>
HalamanPilihFile
- jFileChooser1 JFileChooser
+ HalamanPilihFile() : Konstruktor
<<boundary>>
HalamanPilihTabel
- OKButton
- batalButton
- jLabel1
- koneksi
- pilihTabelCombo
: JButton
: JButton
: JLabel
: KoneksiDataBase
: JComboBox
+ HalamanPilihTabel(KoneksiDataBase koneksi, String
database)
+ HalamanPilihTabel()
+ OKButtonActionPerformed(ActionEvent evt)
+ batalButtonActionPerformed(ActionEvent evt)
+ tampilDaftarTabel(KoneksiDataBase koneksi, String
database)
: Konstruktor
: Konstruktor
: void
: void
: void
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
148
<<boundary>>
HalamanTentang
- bantuanButton
- jLabel1
- jLabel10
- jLabel11
- jLabel12
- jLabel13
- jLabel14
- jLabel15
- jLabel16
- jLabel17
- jLabel18
- jLabel2
- jLabel3
- jLabel4
- jLabel5
- jLabel6
- jLabel7
- jLabel8
- jLabel9
- jPanel1
- jPanel2
- jPanel3
- jPanel4
- keluarButton
- kembaliButton
- tentangButton
: JButton
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JPanel
: JPanel
: JPanel
: JPanel
: JButton
: JButton
: JButton
+ HalamanTentang()
+ bantuanButtonActionPerformed(ActionEvent evt)
: Konstruktor
: void
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
149
+ keluarButtonActionPerformed(ActionEvent evt)
+ kembaliButtonActionPerformed(ActionEvent evt)
+ tentangButtonActionPerformed(ActionEvent evt)
: void
: void
: void
<<boundary>>
HalamanUtama
- HasilOutlierTable
- alphaTextField
- bantuanButton
- batalButton
- batalSeleksiButton
- checkboxtable
- dataOutlierTable
- dataPreprocessTable
- deteksiOutlierPanel
- graph
- hapusButton
- hapusOutlierButton
- jDesktopPane1
- jLabel1
- jLabel10
- jLabel11
- jLabel12
- jLabel13
- jLabel14
- jLabel15
- jLabel16
- jLabel17
- jLabel18
: JTable
: JTextField
: JButton
: JButton
: JButton
: CheckBoxTableModel
: JTable
: JTable
: JPanel
: Graph
: Jbutton
: JButton
: JDekstopPane
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
150
- jLabel2
- jLabel3
- jLabel4
- jLabel5
- jLabel6
- jLabel7
- jLabel8
- jLabel9
- jPanel1
- jPanel2
- jPanel3
- jPanel4
- jPanel6
- jPanel7
- jScrollPane1
- jScrollPane2
- jScrollPane3
- jScrollPane4
- jTabbedPane1
- jumlahDataOutlierTextField
- jumlahDataSeleksiTextField
- jumlahOutlierTextField
- keluarButton
- konstantaTextField
- lamaDeteksiTextField
- pilihDatabaseButton
- pilihFileButton
- pilihFileTextField
- prosesButton
- radiusTextField
- seleksiTable
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JLabel
: JPanel
: JPanel
: JPanel
: JPanel
: JPanel
: JPanel
: JSrollPane
: JSrollPane
: JSrollPane
: JSrollPane
: JTabbedPane
: JTextField
: JTextField
: JTextField
: JButton
: JTextField
: JTextField
: JButton
: JButton
: JTextField
: JButton
: JTextField
: JTable
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
151
- simpanButton
- submitButton
- tandaiSemuaButton
- tentangButton
: JButton
: JButton
: JButton
: JButton
+ HalamanUtama()
+ HalamanUtama(KoneksiDataBase koneksi, String table)
+ alphaTextFieldKeyReleased(KeyEvent evt)
+ bantuanButtonActionPerformed(ActionEvent evt)
+ batalButtonActionPerformed(ActionEvent evt)
+ batalSeleksiButtonActionPerformed(ActionEvent evt)
+ hapusAtribut()
+ hapusButtonActionPerformed(ActionEvent evt)
+ hapusOutlierButtonActionPerformed(ActionEvent evt)
+ keluarButtonActionPerformed(ActionEvent evt)
+ konstantaTextFieldKeyReleased(KeyEvent evt)
+ pilihDataBase(KoneksiDataBase kdb, String table)
+ pilihDatabaseButtonActionPerformed(ActionEvent evt)
+ pilihFile()
+ pilihFileButtonActionPerformed(ActionEvent evt)
+ prosesButtonActionPerformed(ActionEvent evt)
+ prosesDeteksi()
+ radiusTextFieldKeyReleased(KeyEvent evt)
+ simpanButtonActionPerformed(ActionEvent evt)
+ simpanLoci()
+ submitButtonActionPerformed(ActionEvent evt)
+ submitData()
+ submitButtonActionPerformed(ActionEvent evt)
+ tentangButtonActionPerformed(ActionEvent evt)
: Konstruktor
: Konstruktor
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
153
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);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
154
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
155
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);
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
162
}
}
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() {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
163
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
166
} 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());
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
168
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) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
169
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
170
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
171
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;
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
172
3. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
174
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
177
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();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
181
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
182
}
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) {
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
184
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";
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
185
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);
}
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
186
9. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
189
}
});
}
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
190
11. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
195
13. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
197
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
198
14. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
200
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
201
15. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
202
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();
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
207
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();
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
218
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;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
219
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;
}
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
220
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
221
3. Data set Mahasiswa 2007-2008 Jalur Test Tertulis pada Semester 3.
4. Data set Mahasiswa 2007-2008 Jalur Test Tertulis pada Semester 4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
222
5. Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 1.
6. Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
223
7. Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 3.
8. Data set Mahasiswa 2007-2008 Jalur Prestasi pada Semester 4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
224
9. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
228
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
229
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
230
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
231
3. 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 MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
232
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
233
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
234
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
235
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJIPLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI