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