plagiat merupakan tindakan tidak terpuji plagiat

advertisement
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA NAIVE NESTED
LOOP
(STUDI KASUS : DATA AKADEMIK MAHASISWA
PROGRAM STUDI TEKNIK INFORMATIKA,
UNIVERSITAS SANATA DHARMA, YOGYAKARTA)
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh :
Setyo Resmi Probowati
NIM : 095314039
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2013
i
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
OUTLIER DETECTION USING NAÏVE NESTED LOOP ALGORITHM
(CASE STUDY : STUDENT ACADEMIC DATA OF INFORMATICS
ENGINEERING STUDY PROGRAM,
SANATA DHARMA UNIVERSITY, YOGYAKARTA)
A Thesis
Presented as Partial Fullfillment of the Requirements
To Obtain Sarjana Komputer Degree
in Informatics Engineering Study Program
By :
Setyo Resmi Probowati
NIM : 095314039
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2013
ii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
iii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
iv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSEMBAHAN
And now these three remain :
faith, hope and love.
But the greatest of these is love
~ 1 Corinthians 13:13 ~
my Lord and Saviour, Thank you for everything
v
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
vi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRAK
Penambangan data merupakan ekstraksi pola terhadap data yang menarik
dalam jumlah yang besar. Pola tersebut dikatakan menarik apabila tidak diketahui
sebelumnya dan berguna bagi perkembangan ilmu pengetahuan. Data tersebut
dapat diolah dengan berbagai teknik penambangan data seperti asosiasi,
klasifikasi, clustering dan deteksi outlier.
Deteksi outlier merupakan salah satu bidang penelitian yang penting
dalam penambangan data. Penelitian tersebut bermanfaat untuk menemukan
outlier yang mungkin berguna bagi pengguna. Outlier merupakan sebuah data
yang berbeda dibandingkan dengan sifat umum yang dimiliki data lain pada suatu
kumpulan data
Pada tugas akhir ini, pendeteksian outlier dilakukan menggunakan
algoritma Naïve Nested Loop. Data yang digunakan adalah data akademik
mahasiswa program studi Teknik Informatika Universitas Sanata Dharma,
Yogyakarta tahun angkatan 2007 dan 2008. Data tersebut terdiri dari data numerik
nilai hasil seleksi masuk mahasiswa yang diterima melalui jalur tes tertulis
maupun jalur prestasi dan nilai indeks prestasi dari semester satu sampai empat.
Hasil dari penelitian ini adalah sebuah perangkat lunak yang dapat
digunakan sebagai alat bantu untuk mendeteksi outlier menggunakan algoritma
Naïve Nested Loop. Pengujian terhadap sistem ini meliputi tiga metode pengujian,
yaitu pengujian blackbox, pengujian efek perubahan nilai atribut penambangan
data, dan pengujian review dan validitas oleh pengguna.
Berdasarkan pengujian blackbox yang telah dilakukan dapat disimpulkan
bahwa sistem pendeteksi outlier ini secara fungsional dapat berjalan dengan baik
dan menghasilkan keluaran yang sesuai dengan yang diharapkan. Dari hasil
pengujian efek perubahan nilai atribut penambangan data disimpulkan bahwa
penentuan nilai parameter pada algoritma Naïve Nested Loop yaitu nilai M dan
dmin berpengaruh terhadap jumlah outlier yang dihasilkan. Berdasarkan hasil
pengujian review dan validitas oleh pengguna dapat disimpulkan bahwa sistem
dapat menghasilkan data yang dinyatakan sebagai outlier.
Kata kunci : penambangan data, deteksi outlier, naïve nested loop
vii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRACT
Data mining is an extraction of interesting pattern in large numbers of
data. The pattern is said to be interesting if the data is previously unknown and it
is useful for the development of knowledge in data mining. The data can be
processed by a variety of data mining techniques such as association,
classification, clustering and outlier detection.
Outlier detection is one of important researches in data mining. This
research is useful to discover outliers which might be useful for users. Outlier is a
data which is different from other data in a dataset.
In this thesis, Naïve Nested Loop algorithm was used to perform outlier
detection. The data used in this thesis are academic data of students batch 2007
and 2008 of Informatics Engineering Department of Sanata Dharma University.
The dataset consists of student admission data from regular admission track as
well as students from outstanding track, and student academic data (Grade Point
Average) of those students from first semester until fourth semester.
The results of this research is a software that can be used as a tool to
determine outliers using Naïve Nested Loop algorithm. The testing of this system
includes three testing methods, namely blackbox testing, the effects of attribute
changes of M (the maximum number of objects within the dmin neighbourhood
of an outlier) and dmin (the maximum distance between any pair of objects that
define as a neighbour), and validation testing by users.
Based on blackbox testing, it can be concluded that the outlier detection‟s
system could perform properly and produce output as expected. Based on the
second testing, it can be concluded that the value of M and dmin influence the
number of generated outliers. Based on the user‟s validation, it can be concluded
that the results of the system are confirmed as outliers.
Keywords: data mining, outlier detection, naïve nested loop
viii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
KATA PENGANTAR
Puji dan syukur penulis panjatkan atas Kehadirat Tuhan Yang Maha Esa,
karena atas limpahan berkat dan rahmat-Nya penulis dapat menyelesaikan tugas
akhir yang berjudul “Deteksi Outlier Menggunakan Algoritma Naïve Nested Loop
(Studi Kasus : Data Akademik Mahasiswa Teknik Informatika Universitas Sanata
Dharma, Yogyakarta)“ dan selalu memberikan kekuatan untuk berkembang
menjadi lebih baik. Tugas akhir ini ditulis sebagai salah satu syarat memperoleh
gelar sarjana komputer program studi Teknik Informatika, Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
Penulis mengucapkan terima kasih sebesar-besarnya kepada semua pihak
yang turut memberikan dukungan, semangat, dan bantuan dalam bentuk apapun
sehingga tugas akhir ini dapat terselesaikan :
1. Tuhan Yesus Kristus, Bunda Maria, dan Santa Natalia yang telah
memberikan anugerah sehingga penulis dapat menyelesaikan tugas akhir
ini dengan tepat waktu.
2. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku dosen
pembimbing atas kesabaran, bimbingan, waktu, saran dan terlebih
dukungan serta semangat yang diberikan.
3. Kedua orang tua saya, bapak Ir. Susi Prabowo dan ibu Resmi Astuti yang
telah memberikan kasih sayang, perhatian, semangat, dan doa sehingga
penulis dapat menyelesaikan tugas akhir ini.
x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4. Oto Lelono Prabowo adik saya dan semua anggota keluarga besar yang
telah memberikan semangat, doa, dan perhatian sehingga penulis dapat
menyelesaikan tugas akhir ini.
5. Sahabat dan teman-teman seperjuangan, TI angkatan 2009 yang selalu
memberikan
keceriaan,
semangat,
doa,
dan
dukungan
dalam
menyelesaikan tugas akhir ini
6. Semua pihak yang berperan baik secara langsung maupun tidak langsung
yang tidak bisa disebutkan satu per satu sehingga penulis dapat
menyelesaikan tugas akhir ini.
Dengan rendah hati, penulis menyadari bahwa tugas akhir ini masih
memiliki banyak kekurangan dan jauh dari sempurna, oleh karena itu diperlukan
saran dan kritik yang penulis harapkan untuk perbaikan-perbaikan tugas akhir ini.
Akhir kata, penulis berharap semoga tugas akhir ini memberikan banyak manfaat
bagi semua pihak. Terima Kasih.
Yogyakarta,
Agustus 2013
Penulis
Setyo Resmi Probowati
xi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR ISI
HALAMAN JUDUL ............................................................................................... i
HALAMAN JUDUL (INGGRIS) ........................................................................... ii
HALAMAN PERSETUJUAN ............................................................................... iii
HALAMAN PENGESAHAN ................................................................................ iv
HALAMAN PERSEMBAHAN ............................................................................. v
PERNYATAAN KEASLIAN ILMIAH ................................................................ vi
ABSTRAKSI ........................................................................................................ vii
ABSTRACT ......................................................................................................... viii
LEMBAR PERNYATAAN PERSETUJUAN ...................................................... ix
KATA PENGANTAR ............................................................................................ x
DAFTAR ISI ......................................................................................................... xii
DAFTAR TABEL .............................................................................................. xviii
DAFTAR GAMBAR ........................................................................................... xix
DAFTAR LISTING PROGRAM ....................................................................... xxiii
BAB I ...................................................................................................................... 1
PENDAHULUAN .................................................................................................. 1
1.1 Latar Belakang .................................................................................................. 1
1.2 Rumusan Masalah ............................................................................................. 3
1.3 Batasan Masalah................................................................................................ 4
1.4 Tujuan Penelitian .............................................................................................. 4
1.5 Luaran ............................................................................................................... 5
1.6 Manfaat Penelitian ............................................................................................ 5
1.7 Metodologi Penelitian ....................................................................................... 6
1.8 Sistematika Penulisan ....................................................................................... 7
BAB II ................................................................................................................... 10
LANDASAN TEORI ............................................................................................ 10
2.1 Penambangan Data .......................................................................................... 10
2.1.1 Definisi ................................................................................................... 10
xii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.1.2 Permasalahan dalam Penambangan Data ................................................ 10
2.1.3 Fungsionalitas Penambangan Data ......................................................... 11
2.2 Knowledge Discovery in Databases (KDD) ................................................... 14
2.2.1 Kaitan Penambangan Data dengan KDD ................................................ 14
2.2.2 Tahapan dalam Knowledge Discovery in Databases (KDD) .................. 14
2.3 Analisa Outlier ................................................................................................ 16
2.3.1 Definisi Outlier........................................................................................ 16
2.3.2 Hubungan Antara Penambangan Data dengan Outlier ........................... 17
2.3.3 Penyebab Outlier ..................................................................................... 18
2.3.4 Manfaat Outlier ....................................................................................... 18
2.3.5 Berbagai Macam Pendekatan Pendeteksi Outlier ................................... 19
2.4 Metode Pendeteksi Outlier dengan Pendekatan Distance-Based .................... 23
2.4.1 Algoritma Naïve Nested Loop ................................................................. 24
BAB III ................................................................................................................. 26
METODOLOGI PENELITIAN ............................................................................ 26
3.1 Data ................................................................................................................. 26
3.2 Pengolahan Data.............................................................................................. 27
3.3 Contoh Implementasi Deteksi Outlier dengan Algoritma Naïve Nested Loop 32
BAB IV ................................................................................................................. 37
ANALISIS DAN PERANCANGAN SISTEM .................................................... 37
4.1 Identifikasi Sistem........................................................................................... 37
4.1.1 Diagram Use Case ................................................................................... 39
4.1.2 Narasi Use Case....................................................................................... 41
4.2 Perancangan Sistem Secara Umum ................................................................. 41
4.2.1 Pemrosesan Data Awal ............................................................................ 41
4.2.2 Input Sistem ............................................................................................. 47
4.2.3 Proses Sistem ........................................................................................... 49
xiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.2.4 Output Sistem ......................................................................................... 52
4.3 Perancangan Sistem ........................................................................................ 52
4.3.1 Diagram Konteks ..................................................................................... 52
4.3.2 Diagram Aktivitas ................................................................................... 53
4.3.3 Diagram Kelas Analisis ........................................................................... 54
4.3.4 Diagram Sequence ................................................................................... 56
4.3.5 Perancangan Struktur Data ...................................................................... 56
4.3.5.1 Matriks Dua Dimensi ..................................................................... 57
4.3.5.2 Graf ................................................................................................ 59
4.3.6 Diagram Kelas Desain ............................................................................. 60
4.3.7 Rincian Algoritma Setiap Method Pada Tiap Kelas ............................... 62
4.3.7.1 Rincian Algoritma pada Method di Kelas DatabaseConnection ... 62
4.3.7.2 Rincian Algoritma pada Method di Kelas Graph_NaiveNL .......... 63
4.3.7.3 Rincian Algoritma pada Method di Kelas CheckBoxTableModel 65
4.3.7.4 Rincian Algoritma pada Method di Kelas DatabaseController ..... 65
4.3.7.5 Rincian Algoritma pada Method di Kelas DiagramBatang ........... 66
4.3.7.6 Rincian Algoritma pada Method di Kelas HalamanUtama ........... 67
4.3.7.7 Rincian Algoritma pada Method di Kelas HalamanDistribusiAtribut
.................................................................................................................... 76
4.3.7.8 Rincian Algoritma pada Method di Kelas HalamanPilihDatabase 78
4.3.7.9 Rincian Algoritma pada Method di Kelas HalamanTampilTabel.. 80
4.4 Perancangan Antarmuka ................................................................................. 82
BAB V................................................................................................................... 92
IMPLEMENTASI PENAMBANGAN DATA ..................................................... 92
5.1 Implementasi Antarmuka ................................................................................ 92
5.1.1 Implementasi Halaman Awal .................................................................. 92
5.1.2 Implementasi Halaman Utama ................................................................ 93
5.1.3 Implementasi Halaman Distribusi Atribut ............................................ 101
xiv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.1.4 Implementasi Halaman Pilih Database.................................................. 102
5.1.5 Implementasi Halaman Tampil Tabel ................................................... 104
5.1.6 Implementasi Halaman Bantuan ........................................................... 105
5.1.7 Implementasi Antarmuka Halaman Missing Values ............................. 106
5.1.8 Implementasi Halaman Konfirmasi Keluar ........................................... 107
5.1.9 Implementasi Pengecekan Masukan ..................................................... 108
5.2 Implementasi Dataset yang Akan Diuji ........................................................ 112
5.3 Implementasi Kelas ....................................................................................... 113
5.3.1 Implementasi Kelas DatabaseConnection ............................................. 114
5.3.2 Implementasi Kelas Graph_NaiveNL ................................................... 115
5.3.3 Implementasi Kelas CheckBoxTableModel .......................................... 118
5.3.4 Implementasi Kelas DatabaseController ............................................... 120
5.3.5 Implementasi Kelas DiagramBatang ..................................................... 121
5.3.6 Implementasi Kelas HalamanUtama ..................................................... 122
5.3.7 Implementasi Kelas HalamanDistribusiAtribut .................................... 135
5.3.8 Implementasi Kelas HalamanPilihDatabase ......................................... 137
5.3.9 Implementasi Kelas HalamanTampilTabel ........................................... 141
5.4 Implementasi Struktur Data .......................................................................... 143
5.4.1 Implementasi Kelas Vertex_NaiveNL.java ........................................... 143
5.4.2 Implementasi Kelas Graph_ NaiveNL.java........................................... 144
BAB VI ............................................................................................................... 147
PENGUJIAN DAN ANALISA HASIL PENGUJIAN ....................................... 147
6.1 Fase Implementasi Pengujian ........................................................................ 147
6.1.1 Rencana Pengujian ................................................................................ 147
6.1.1.1 Hasil Pengujian Blackbox .................................................................. 149
6.1.1.1.1 Pengujian Input Data ................................................................. 149
xv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.1.1.1.2 Pengujian Koneksi Database ..................................................... 150
6.1.1.1.3 Pengujian Seleksi Atribut.......................................................... 152
6.1.1.1.4 Pengujian Deteksi Outlier ......................................................... 153
6.1.1.1.5 Pengujian Lihat Grafik Distribusi Atribut................................. 153
6.1.1.1.6 Pengujian Simpan Hasil Deteksi Outlier .................................. 154
6.1.1.1.7 Kesimpulan Hasil Pengujian Blackbox ..................................... 155
6.1.1.2 Hasil Pengujian Efek Perubahan Nilai Atribut Penambangan Data ... 155
6.1.1.2.1 Pengujian Dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Tes Tertulis ............................................................. 156
6.1.1.2.2 Pengujian Dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Tes Prestasi ............................................................. 157
6.1.1.2.3 Pengujian Dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 .......................................................................................... 158
6.1.1.2.4 Kesimpulan Hasil Pengujian Efek Perubahan Nilai Atribut
Penambangan Data ................................................................................... 159
6.1.1.3 Hasil Pengujian Validitas dan Review oleh Pengguna ....................... 159
6.1.1.3.1 Perbandingan Perhitungan Manual dan Hasil Sistem ............... 159
6.1.1.3.2 Hasil Deteksi dari Sistem untuk Pengujian Review dan Validitas
oleh Pengguna ......................................................................................... 162
6.1.1.3.3 Kesimpulan Hasil Pengujian Review dan Validitas oleh Pengguna
.................................................................................................................. 164
6.2 Kelebihan dan Kekurangan Sistem ............................................................... 168
6.2.1 Kelebihan Sistem ................................................................................... 168
6.2.2 Kekurangan Sistem................................................................................ 169
BAB VII .............................................................................................................. 170
KESIMPULAN DAN SARAN ........................................................................... 170
7.1 Kesimpulan ................................................................................................... 170
7.2 Saran .............................................................................................................. 171
DAFTAR PUSTAKA ......................................................................................... 172
LAMPIRAN I Deskripsi Usecase ....................................................................... 174
LAMPIRAN II Narasi Use Case ......................................................................... 176
xvi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN III Diagram Aktivitas .................................................................... 184
LAMPIRAN IV Diagram Sequence ................................................................... 193
LAMPIRAN V Diagram Kelas .......................................................................... 200
LAMPIRAN VI Listing Program........................................................................ 208
xvii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR TABEL
Tabel 4.1 Tabel Nama Kelas ................................................................................ 55
Tabel 5.1 Tabel Implementasi Kelas .................................................................. 113
Tabel 6.1 Tabel Rencana Pengujian ................................................................... 148
Tabel 6.2 Tabel Pengujian Input Data ................................................................ 149
Tabel 6.3 Tabel Pengujian Koneksi Database ................................................... 151
Tabel 6.4 Tabel Pengujian Seleksi Atribut ......................................................... 152
Tabel 6.5 Tabel Pengujian Deteksi Outlier ........................................................ 153
Tabel 6.6 Tabel Pengujian Lihat Grafik Distribusi Atribut................................ 154
Tabel 6.7 Tabel Pengujian Simpan Hasil Deteksi Outlier ................................. 154
Tabel 6.8 Tabel Jumlah Outlier Mahasiswa Teknik Informatika Angkatan 2007
dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai M dan dmin yang berubahubah ..................................................................................................................... 156
Tabel 6.9 Tabel Jumlah Outlier Mahasiswa Teknik InformartikaAngkatan 2007
dan 2008 Jalur Prestasi Semester 1 dengan Nilai M dan dmin yang berubah-ubah
…………………………………………………………………………………..157
Tabel 6.10 Tabel Jumlah Outlier Mahasiswa Teknik Informatika Angkatan 2007
dan 2008 Jalur Tes dan Jalur Prestasi Semester 1 dengan nilai M dan dmin yang
berubah-ubah ....................................................................................................... 158
Tabel 6.11 Tabel Perbandingan Hasil Outlier Mahasiswa Program Studi Teknik
Informatika Angkatan 2007 Jalur Tes Tertulis ................................................... 160
Tabel 6.12 Tabel Nilai per Atribut Hasil Outlier Mahasiswa Program Studi
Teknik Informatika Angkatan 2007 Jalur Tes Tertulis ....................................... 160
Tabel 6.13 Tabel Hasil Outlier untuk Data Mahasiswa Program Studi Teknik
Informatika angkatan 2007 dan 2008 Jalur Tes Tertulis ..................................... 162
Tabel 6.14 Tabel Hasil Outlier untuk Data Mahasiswa Program Studi Teknik
Informatika angkatan 2007 dan 2008 Jalur Prestasi ........................................... 163
xviii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 6.15 Tabel Hasil Outlier untuk Data Mahasiswa Program Studi Teknik
Informatika angkatan 2007 dan 2008 Jalur Tes Tertulis dan Prestasi ................ 163
DAFTAR GAMBAR
Gambar 2.1 Tahapan dalam Knowledge Discovery in Databases (Han &
Kamber,2006)........................................................................................................ 16
Gambar 2.2 Scatterplot dari data dan objek (Hatta, 2012) .................................. 19
Gambar 3.1 Dekripsi Tabel pada Gudang Data „data_mahasiswa‟ ..................... 27
Gambar 3.2 Dekripsi Tabel „fact_lengkap2‟ ....................................................... 28
Gambar 3.3 Data pada Tabel „fact_lengkap2‟ ..................................................... 29
Gambar 3.4 Gambar Data Akademik Mahasiswa ............................................... 33
Gambar 3.5 Perhitungan jarak antar objek dengan rumus euclidean distance .... 34
Gambar 3.6 Pencarian jumlah tetangga dalam radius D dan penentuan outlier . 35
Gambar 3.7 Hasil Pencarian Outlier.................................................................... 36
Gambar 4.1 Diagram Use Case ........................................................................... 40
Gambar 4.2 Dekripsi Tabel pada Basisdata „data_mahasiswa‟ ........................... 42
Gambar 4.3 Dekripsi Tabel „fact_lengkap2‟ ....................................................... 42
Gambar 4.4 Data pada Tabel „fact_lengkap2‟ .................................................... 43
Gambar 4.5 Proses Umum Sitem Pendeteksi Outlier Menggunakan Algoritma
Naïve Nested Loop ................................................................................................ 51
Gambar 4.6 Diagram Konteks ............................................................................. 52
Gambar 4.7 Diagram Kelas Analisis ................................................................... 54
Gambar 4.8 Ilustrasi Struktur Data Matriks Dua Dimensi .................................. 58
Gambar 4.9 Ilustrasi Struktur Data Matriks Dua Dimensi Setelah Dilakukan
Perhitungan Jarak antar Vertex.............................................................................. 58
xix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 4.10 Ilustrasi Struktur Data Graf .......................................................... 59
Gambar 4.11 Diagram Kelas Desain .................................................................. 61
Gambar 4.12 Tampilan Halaman Awal ............................................................... 83
Gambar 4.13 Tampilan Halaman Awal (Bagian Preprocess) ............................. 85
Gambar 4.14 Tampilan Halaman Utama (Bagian Deteksi Outlier) .................... 86
Gambar 4.15 Tampilan Halaman Pilih Database ................................................ 87
Gambar 4.16 Tampilan Halaman Tampil Tabel .................................................. 88
Gambar 4.17 Tampilan Halaman Distribusi Atribut ........................................... 89
Gambar 4.18 Tampilan Halaman Konfirmasi Keluar ......................................... 90
Gambar 4.19 Tampilan Halaman Bantuan .......................................................... 91
Gambar 5.1 Antarmuka Halaman Awal .............................................................. 93
Gambar 5.2 Antarmuka Halaman Utama (tabbed pane Preprocess) .................. 94
Gambar 5.3 Antarmuka Halaman Utama (tabbed pane Deteksi Outlier) ........... 94
Gambar 5.4 Kotak Dialog Saat Memilih File .xls ............................................... 95
Gambar 5.5 Antarmuka Halaman Utama (data file .xls tertampil) ...................... 95
Gambar 5.6 Kotak Dialog Saat Memilih File .csv .............................................. 96
Gambar 5.7 Antarmuka Halaman Utama (data file .csv tertampil) ..................... 96
Gambar 5.8 Antarmuka Halaman Utama (sebelum dilakukan fungsi Seleksi
Atribut) .................................................................................................................. 97
Gambar 5.9 Antarmuka Detail Fungsi Seleksi Atribut (pada Halaman Utama) . 98
Gambar 5.10 Antarmuka Halaman Utama (setelah dilakukan fungsi Seleksi
Atribut) .................................................................................................................. 98
Gambar 5.11 Antarmuka Halaman Utama (tabbed pane Deteksi Outlier) ......... 99
Gambar 5.12 Kotak Dialog Simpan Hasil Outlier ............................................ 100
Gambar 5.13 Pesan Ketika Proses Penyimpanan Hasil Outlier Berhasil
Dilakukan ............................................................................................................ 100
Gambar 5.14 Antarmuka Halaman Distribusi Atribut ...................................... 101
Gambar 5.15 Antarmuka Grafik Distribusi Atribut .......................................... 102
Gambar 5.16 Antarmuka Halaman Pilih Database ........................................... 103
xx
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 5.17 Antarmuka Halaman Pilih Database (Setelah pengguna memilih
basisdata) ............................................................................................................. 103
Gambar 5.18 Pesan Koneksi Berhasil ............................................................... 104
Gambar 5.19 Antarmuka Halaman Tampil Tabel ............................................. 104
Gambar 5.20 Antarmuka Halaman Utama Beserta Data dari Tabel dalam
Basisdata ............................................................................................................. 105
Gambar 5.21 Antarmuka Halaman Bantuan ..................................................... 106
Gambar 5.22 Antarmuka Halaman Missing Values .......................................... 107
Gambar 5.23 Antarmuka Halaman Konfirmasi Keluar ..................................... 107
Gambar 5.24 Pesan Berhasil Keluar dari Sistem .............................................. 108
Gambar 5.25 Pesan Kesalahan (1) ..................................................................... 108
Gambar 5.26 Pesan Kesalahan (2) ..................................................................... 109
Gambar 5.27 Pesan Kesalahan (3) ..................................................................... 109
Gambar 5.28 Pesan Kesalahan (4) ..................................................................... 110
Gambar 5.29 Pesan Kesalahan (5) ..................................................................... 110
Gambar 5.30 Pesan Kesalahan (6)..................................................................... 111
Gambar 5.31 Pesan Kesalahan (7) ..................................................................... 111
Gambar 5.32 Pesan Kesalahan (8) ..................................................................... 111
Gambar 5.33 Pesan Kesalahan (9) ..................................................................... 112
Gambar 6.1a Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Tertulis Semester 1 dengan Nilai M = 1 dan dmin berubah-ubah ................ 156
Gambar 6.1b Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Tertulis Semester 1 dengan Nilai M = 2 dan dmin berubah-ubah ................ 156
Gambar 6.2a Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Tertulis Semester 1 dengan Nilai M berubah-ubah dan dmin = 1 ................ 156
Gambar 6.2b Grafik Hasil Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur Tes
Masuk Semester 1 dengan Nilai M berubah-ubah dan dmin = 2 ........................ 156
Gambar 6.3a Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Prestasi Semester 1 dengan Nilai M = 2 dan dmin berubah-ubah ................ 157
Gambar 6.3b Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Prestasi Semester 1 dengan Nilai M = 3 dan dmin berubah-ubah ................ 157
Gambar 6.4a Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Prestasi Semester 1 dengan Nilai M berubah-ubah dan dmin = 1 ................ 157
xxi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 6.4b Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Prestasi Semester 1 dengan Nilai M berubah-ubah dan dmin = 2 ................ 157
Gambar 6.5a Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan Nilai M=4 dan dmin berubah-ubah .. 158
Gambar 6.5b Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan Nilai M=5 dan dmin berubah-ubah .. 158
Gambar 6.6a Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan Nilai M berubah-ubah dan dmin=1 .. 158
Gambar 6.6b Grafik Jumlah Outlier Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan Nilai M berubah-ubah dan dmin=2 .. 158
xxii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR LISTING PROGRAM
Listing Program 5.1 Kelas DatabaseConnection.java...................................... 114
Listing Program 5.2 Kelas Graph_NaiveNL.java ............................................. 116
Listing Program 5.3 Kelas CheckBoxTableModel.java .................................... 118
Listing Program 5.4 Kelas DatabaseController.java ....................................... 120
Listing Program 5.5 Kelas DiagramBatang.java .............................................. 121
Listing Program 5.6 Kelas HalamanUtama.java............................................... 122
Listing Program 5.7 Kelas HalamanDistribusiAtribut.java .............................. 135
Listing Program 5.8 Kelas HalamanPilihDatabase.java ................................... 138
Listing Program 5.9 Kelas HalamanTampilTabel.java. ................................... 141
Listing Program 5.10 Kelas Vertex_NaiveNL.java ........................................... 143
Listing Program 5.11 Implementasi Pembentukan Matriks Dua Dimensi ....... 145
Listing Program 5.12 Method addVertex .......................................................... 145
Listing Program 5.13 Method addEdge ........................................................... 146
Listing Program 5.14 Method euclideanDistance ........................................... 146
xxiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB I
PENDAHULUAN
1.1 Latar Belakang
Data merupakan sesuatu yang belum mempunyai arti bagi penerimanya dan
masih memerlukan adanya suatu pengolahan. Data bisa berwujud suatu keadaan,
gambar, suara, huruf, angka, bahasa ataupun simbol-simbol lainnya yang bisa kita
gunakan sebagai bahan untuk melihat lingkungan, obyek, kejadian ataupun
menemukan suatu konsep dan pengetahuan baru. Perkembangan teknologi
informasi memungkinkan kita untuk menyimpan data dalam jumlah yang besar
tetapi dari sekumpulan data tersebut belum tentu kita mengetahui informasi yang
tersembunyi di dalamnya.
Penambangan data adalah ekstraksi pola yang menarik dari data dalam
jumlah besar. Suatu pola dikatakan menarik apabila pola tersebut tidak sepele,
implisit, tidak diketahui sebelumnya, dan berguna. Penambangan data merupakan
salah satu dari rangkaian KDD (Knowledge Discovery in Databases). Tahapan
proses dalam KDD adalah pembersihan data, integrasi data, pemilihan data,
transformasi data, evaluasi pola, dan penyajian pola (Han & Kamber 2006).
Setelah tahap preprocessing, data dapat diolah dengan berbagai teknik dalam
penambangan
data
untuk
menemukan
asosiasi,
klasifikasi,
clustering
(pengelompokan), maupun untuk mendeteksi adanya outlier.
Deteksi outlier merupakan salah satu bidang penelitian yang penting
dalam penambangan data. Penelitian tersebut bermanfaat untuk mendeteksi
1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2
perilaku langka seperti penipuan menggunakan kartu kredit, deteksi
penyusupan pada jaringan komunikasi, diagnosa medis, dan lain-lain. Outlier
sendiri merupakan sebuah data pada sekumpulan data yang sangat berbeda
dibandingkan dengan sifat umum dari sekumpulan data lainnya. Pendeteksian
outlier berusaha untuk mengenali data yang langka tersebut karena kemungkinan
memiliki informasi yang bermanfaat.
Banyak cara yang digunakan untuk mendeteksi outlier dengan pendekatan
penambangan data antara lain metode grafis, metode statistik, metode distance
based, metode density based, dan metode deviation based. Pendekatan distance
based merupakan sebuah metode pencarian outlier yang populer dengan
menghitung jarak pada objek tetangga terdekat. Dalam pendekatan ini, satu objek
melihat objek-objek lain dalam lokal ketetanggaannya. Apabila ketetanggaannya
relatif dekat maka dikatakan sebagai objek normal, akan tetapi jika ketetanggaan
antar objek relatif sangat jauh maka dikatakan objek tersebut tidak normal.
Pendekatan distance based menyediakan beberapa algoritma pencarian
outlier, salah satunya adalah algoritma Naïve Nested Loop. Algoritma Naïve
Nested Loop mencari tetangga dari masing-masing objek dalam radius jarak yang
ditentukan di sekitar objek tersebut.
Penambangan data juga bergerak dalam bidang pendidikan dengan
mengembangkan metode untuk menemukan pengetahuan baru dari data yang
diambil dari lingkup dunia pendidikan. Data dapat diperoleh dari rekaman data
siswa atau mahasiswa yang ada di institusi pendidikan. Dalam penelitian Tair dan
El-Halees (2012) dilakukan deteksi outlier dalam bidang pendidikan yang berguna
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3
untuk mencari mahasiswa dengan permasalahan pembelajarannya. Data yang
digunakan adalah data mahasiswa dan memakai pendekatan distance based dan
density based. Hasil yang diperoleh berupa pengetahuan mengenai outlier yang
menggambarkan kejadian langka, contohnya beberapa outlier adalah mahasiswa
dengan nilai indeks prestasi tinggi namun terletak pada kumpulan yang berbeda
dengan kebanyakan mahasiswa lain yang juga memiliki indeks prestasi tinggi.
Maka pada penelitian ini akan dilakukan pendeteksian outlier menggunakan
algoritma Naïve Nested Loop pada kumpulan data mahasiswa Universitas Sanata
Dharma, Yogyakarta. Data tersebut diperoleh dari gudang data akademik
mahasiswa Universitas Sanata Dharma, Yogyakarta hasil penelitian Rosa, dkk
(2013). Data mahasiswa terdiri atas data nilai hasil seleksi masuk dan data indeks
prestasi selama empat semester pertama dan pendeteksian outlier dilakukan untuk
melihat mahasiswa mana saja yang menjadi anggota outlier pada setiap
semesternya. Hasil penelitian diharapkan dapat memberikan pengetahuan baru
pada bidang pendidikan untuk melihat kejadian langka dari data akademik
mahasiswa. Setelah menemukan outlier dari sekumpulan data akademik tersebut,
selanjutnya hasil outlier akan dianalisa.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah yang diidentifikasi
adalah :
Bagaimana mendeteksi outlier menggunakan algoritma Naïve Nested Loop
dengan studi kasus data akademik mahasiswa Teknik Informatika
Universitas Sanata Dharma, Yogyakarta ?
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4
1.3 Batasan Masalah
Batasan masalah pada penelitian ini adalah sebagai berikut :
1. Penggunaan algoritma Naïve Nested Loop yang digunakan sebagai
sarana untuk mendeteksi outlier pada kumpulan data numerik nilai hasil
seleksi masuk dan nilai indeks prestasi semester satu sampai empat
mahasiswa Teknik Informatika Universitas Sanata Dharma, Yogyakarta.
2. Data yang digunakan adalah kumpulan data numerik nilai hasil seleksi
masuk dan nilai indeks prestasi semester satu sampai empat mahasiswa
Teknik Informatika Universitas Sanata Dharma, Yogyakarta tahun
angkatan 2007 dan 2008. Nilai hasil seleksi masuk terdiri dari dua
macam yaitu nilai hasil penerimaan mahasiswa yang masuk melalui
jalur prestasi dan tes tertulis. Untuk mahasiswa yang menempuh jalur
prestasi, nilai terdiri dari nilai kognitif rapor SMA yang telah dihitung
rata-ratanya. Sedangkan untuk mahasiswa yang menempuh jalur masuk
tes tertulis, nilai tes terdiri dari nilai penalaran numerik, nilai penalaran
verbal, nilai hubungan ruang, nilai bahasa Inggris, dan nilai kemampuan
numerik.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah sebagai berikut :
1. Menerapkan algoritma Naïve Nested Loop untuk mendeteksi outlier
pada kumpulan data numerik nilai hasil seleksi masuk dan nilai indeks
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5
prestasi semester satu sampai empat mahasiswa Teknik Informatika
Universitas Sanata Dharma, Yogyakarta.
2. Menganalisis hasil deteksi outlier pada kumpulan data numerik nilai
hasil seleksi masuk dan nilai indeks prestasi semester satu sampai empat
mahasiswa Teknik Informatika Universitas Sanata Dharma, Yogyakarta.
1.5 Luaran
Sebuah sistem berbasis teknologi informasi yang mampu mendeteksi outlier
pada sekumpulan data numerik nilai hasil seleksi masuk dan nilai indeks
prestasi semester satu sampai empat mahasiswa Teknik Informatika
Universitas Sanata Dharma, Yogyakarta menggunakan algoritma Naïve
Nested Loop.
1.6 Manfaat Penelitian
Manfaat dari penelitian ini adalah sebagai berikut :
1. Penelitian ini digunakan untuk menambah pengetahuan mengenai
langkah-langkah penerapan algoritma Naïve Nested Loop dalam
mendeteksi outlier berdasarkan kumpulan data numerik nilai hasil
seleksi masuk dan nilai indeks prestasi semester satu sampai empat
mahasiswa Teknik Informatika Universitas Sanata Dharma, Yogyakarta.
2. Penelitian ini dapat memberikan informasi secara tertulis maupun
sebagai referensi terhadap penelitian yang berhubungan dengan kegiatan
analisis outlier yang bersumber pada data dibidang pendidikan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6
3. Penelitian ini dapat memberikan pengetahuan baru kepada pembaca
mengenai kemungkinan adanya kejadian langka pada data nilai seleksi
masuk dan nilai indeks prestasi semester mahasiswa Teknik Informatika
Universitas Sanata Dharma, Yogyakarta.
1.7 Metodologi Penelitian
Dalam penyelesaian tugas akhir ini, langkah-langkah kerja yang akan
ditempuh adalah sebagai berikut :
1. Studi Pustaka
Studi pustaka, yaitu salah satu metode penelitian yang dilakukan
dengan cara mempelajari hal-hal yang berkaitan dengan deteksi outlier
menggunakan algoritma Naïve Nested Loop dan mengumpulkan informasi
yang didapat dari buku, artikel, karya ilmiah, dan website internet.
2. Teknik Penambangan Data
Metodologi
kedua
dilakukan
dengan
menggunakan
teknik
penambangan data yang langkah-langkahnya seperti di bawah ini (Han &
Kamber 2006):
a. Penggabungan Data ( Data Integration )
Proses menggabungkan data dari beberapa sumber agar data dapat
terangkum ke dalam tempat penyimpanan / satu tabel yang utuh.
b. Seleksi Data ( Data Selection )
Proses pemilihan atribut-atribut yang relevan untuk dilakukan
penambangan data. Sedangkan, atribut yang tidak sesuai akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7
dihilangkan karena atribut yang diperlukan adalah atribut yang saling
bergantung.
c. Transformasi Data (Data Transformation)
Pada
proses
ini,
data
yang
sudah
diseleksi
selanjutnya
ditransformasikan ke dalam bentuk yang sesuai untuk ditambang.
d. Penambangan Data ( Data Mining )
Proses mengaplikasikan metode yang tepat untuk mendapatkan
pola pada suatu kumpulan data. Dalam penelitian ini, metode yang
digunakan adalah metode analisis outlier dengan menggunakan
pendekatan distance based. Algoritma yang digunakan untuk
mendeteksi outlier adalah algoritma Naïve Nested Loop.
e. Evaluasi Pola ( Pattern Evaluation )
Tahap ini merupakan bagian dari proses pencarian pengetahuan
yang mencakup pemeriksaan apakah pola atau informasi yang
ditemukan bertentangan dengan fakta atau hipotesa yang ada
sebelumnya.
f. Presentasi Pengetahuan ( Knowledge Presentation )
Pada
tahap
ini
pola
yang
telah
didapat
selanjutnya
direpresentasikan kepada pengguna ke dalam bentuk yang lebih mudah
untuk dipahami.
1.8 Sistematika Penulisan
Adapun sistematika penulisan tugas akhir ini adalah sebagai berikut :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
-
8
BAB I PENDAHULUAN
Bab ini menjelaskan latar belakang peneltian, rumusan masalah
yang digunakan sebagai acuan, batasan-batasan masalah, tujuan penelitian,
luaran, manfaat, metodologi penelitian dan sistematika penulisan.
-
BAB II LANDASAN TEORI
Bab ini menjelaskan dasar-dasar teori yang digunakan sebagai
referensi dan acuan dalam penulisan Tugas Akhir, meliputi : pengertian
penambangan data, pengertian tentang analisis outlier, hubungan outlier
dengan penambangan data, teori-teori yang digunakan untuk penentuan
outlier dalam berbagai pendekatan, rangkaian proses KDD (Knowledge
Discovery in Databases) kaitannya dengan penambangan data, dan
algoritma pedeteksi outlier yaitu, Naïve Nested Loop.
-
BAB III METODOLOGI PENELITIAN
Bab ini menjelaskan mengenai metode yang dipakai dalam
penelitian dan pembuatan aplikasi sebagai implementasi. Juga disebutkan
pengertian dan hal-hal yang terkait dengan metode yang dipakai tersebut.
-
BAB IV ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang indentifikasi sistem, pemrosesan data awal,
input, proses, dan output, perancangan sistem, perancangan struktur data
serta perancangan antarmuka yang akan dibuat.
-
BAB V IMPLEMENTASI PENAMBANGAN DATA
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9
Bab ini dapat berisi mengenai listing program dari hasil
implementasi yang telah dibuat beserta penjelasan singkat dan output hasil
dari implementasi tersebut.
-
BAB VI PENGUJIAN DAN ANALISIS HASIL PENGUJIAN
Bab ini berisi tentang pembahasan pengujian program dan analisis
dari hasil pengujian program yang telah diimplementasikan.
-
BAB VII KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang merupakan rangkaian dari hasil analisis
kinerja pada bab sebelumnya dan saran untuk pengembangan penelitian
selanjutnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB II
LANDASAN TEORI
Pada bab ini akan dipaparkan pengertian penambangan data, pengertian
tentang analisis outlier, hubungan outlier dengan penambangan data, teori-teori
yang digunakan untuk penentuan outlier dalam berbagai pendekatan. Dibahas
pula serangkaian proses KDD (Knowledge Discovery in Databases) kaitannya
dengan penambangan data. Teori penentuan outlier yang dipaparkan akan secara
khusus membahas algoritma pedeteksi outlier Distance-Based, khususnya
algoritma Naïve Nested Loop.
2.1 Penambangan Data
2.1.1 Definisi
Definisi umum dari penambangan data adalah serangkaian proses
untuk menggali nilai tambah berupa pengetahuan yang selama ini tidak
diketahui secara manual dari suatu kumpulan data (Iko, 2007). Penambangan
data mengekstraksi pola yang menarik dari data dalam jumlah besar. Suatu pola
dikatakan menarik apabila pola tersebut tidak sepele, implisit, tidak diketahui
sebelumnya, dan berguna.
2.1.2 Permasalahan dalam Penambangan Data
Istilah penambangan data sudah berkembang jauh dalam mengadaptasi
setiap bentuk analisa. Pada dasarnya penambangan data berhubungan dengan
analisa data dan penggunaan teknik-teknik perangkat lunak untuk mencari pola
dan
keteraturan
dalam
himpunan
10
data
yang
sifatnya
tersembunyi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11
Dengan diperolehnya informasi-informasi yang berguna dari data-data
yang ada, hubungan antar item dalam transaksi maupun informasi potensial
lain yang ada di dalamnya dapat diekstrak dan dianalisa serta diteliti secara
lebih lanjut dari berbagai sudut pandang.
Permasalahan dalam penambangan data dilatarbelakangi oleh kondisi
dimana data ada pada jumlah yang sangat besar sehingga menimbulkan
ledakan informasi yang dialami oleh perusahaan, institusi atau organisasi.
Kondisi data dalam jumlah yang besar tersebut merupakan salah satu
akumulasi dari data yang terekam bertahun-tahun dalam suatu transaksi.
Peranan penambangan data dibutuhkan dalam menangani ledakan volume data,
dengan menggunakan teknik penambangan data yang dapat digunakan untuk
menghasilkan informasi tertentu yang dibutuhkan dari kumpulan data tersebut.
2.1.3 Fungsionalitas Penambangan Data
Berikut fungsionalitas dan tipe pola yang dapat ditemukan dengan
penambangan data (Han & Kamber,2006) :
a. Deskripsi konsep / kelas : Karaterisasi dan diskriminasi
Data dapat diasosiasikan dengan suatu kelas atau konsep. Contoh :
Sebuah toko elektronik dapat membuat kelas item seperti komputer,
printer, dan konsep untuk konsumen seperti bigspenders dan
budgetspenders. Hal ini bermanfaat untuk mendeskripsikan masingmasing kelas atau konsep tersebut dengan deskripsi kelas atau
konsep. Deskripsi ini didapat melalui karakterisasi data dengan
meringkas data-data dari kelas dalam pembelajaran secara umum
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12
atau diskriminasi data dengan membandingkan target kelas dengan
satu atau lebih kelas lain.
b. Analisis Asosiasi (Korelasi dan kausalitas)
Analisis asosiasi adalah pencarian aturan-aturan asosiasi yang
menunjukkan kondisi-kondisi nilai atribut yang sering terjadi
bersama-sama dalam sekumpulan data. Analisis asosiasi sering
digunakan untuk menganalisa data transaksi.
c. Klasifikasi dan Prediksi
Klasifikasi adalah proses menemukan model atau fungsi yang
menjelaskan dan membedakan kelas-kelas atau konsep, dengan
tujuan agar model yang diperoleh dapat digunakan untuk
memprediksi kelas atau objek yang memiliki label kelas yang tidak
diketahui. Model yang diturunkan didasarkan pada analisis dari
data training (objek data yang memiliki label kelas yang
diketahui). Model yang diturunkan dapat direpresentasikan dalam
berbagai bentuk seperti aturan IF-THEN klasifikasi, pohon
keputusan, formula ,matematika atau jaringan syaraf tiruan.
d. Analisis Klaster
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
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13
clustering adalah memaksimalkan kemiripan intra-class dan
meminimumkan kemiripan inter-class. Clustering sering disebut
segmentasi data karena clustering mempartisi data yang besar ke
dalam grup sesuai dengan kesamaannya. Clustering dapat
digunakan untuk deteksi outlier, dimana outlier adalah suatu nilai
yang jauh dari semua klaster lain.
e. Analisis Outlier
Database dapat mengandung objek data yang tidak sesuai dengan
sifat umum atau model data. Objek data tersebut adalah outlier.
Outlier merupakan objek data yang tidak mengikuti perilaku umum
dari data. Outlier dapat dianggap sebagai pengecualian atau noise.
Analisis data outlier dinamakan outlier mining. Teknik ini berguna
untuk fraud detection (deteksi penipuan) dan rare events analysis
(analisis kejadian langka). Outlier dapat dideteksi dengan
menggunakan tes statistik yang mengasumsikan distribusi atau
probabilitas model data menggunakan distance measures, dimana
objek yang memiliki jarak yang jauh dari klaster-klaster lainnya
dianggap outlier atau anomali.
f. Analisis Trend dan Evolusi
Analisis evolusi data menjelaskan dan memodelkan tren dari objek
yang memiliki perilaku yang berubah setiap waktu. Teknik ini dapat
meliputi karateristik, diskriminasi, asosiasi, klasifikasi, atau
clustering dari data yang berkaitan dengan waktu.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
14
2.2 Knowledge Discovery in Databases (KDD)
2.2.1 Kaitan Penambangan Data dengan KDD
Penambangan data merupakan salah satu dari rangkaian Knowledge
Discovery in Database (KDD) yang umumnya meliputi data preprocessing,
data mining, dan post processing (Han & Kamber, 2006). Knowledge
Discovery in Databases berhubungan dengan teknik integrasi dan penemuan
ilmiah, interpretasi dan visualisasi dari pola-pola pada sejumlah data.
2.2.2 Tahapan dalam Knowledge Discovery in Databases (KDD)
Berikut ini merupakan serangkaian proses yang dalam tahapan KDD
(Tan, 2005):
1. Pembersihan data dan integritas data (Cleaning & Integration)
Proses ini digunakan untuk menghilangkan data yang tidak konsisten
dan bersifat noise dari data yang terdapat di berbagai basisdata yang
mungkin
berbeda
format
maupun
platform
yang
kemudian
diintegrasikan dalam satu tempat penyimpanan yang utuh.
2. Seleksi dan transformasi data (Selection and Transformation)
Data
yang
ada
dalam
basisdata
kemudian
direduksi
untuk
mendapatkan hasil yang akurat. Beberapa cara seleksi, antara lain:
 Sampling, adalah seleksi subset yang mewakili suatu sifat populasi
data yang besar
 Denoising, adalah proses menghilangkan noise dari data yang akan
ditranformasikan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI

15
Feature extraction, adalah proses mengekstraksi spesifikasi data yang
sesuai dengan konteks tertentu.
Transformasi data diperlukan sebagai tahap pre-processing agar
data siap untuk ditambang.
3. Penambangan data (Data Mining)
Data yang telah ditransformasi, kemudian ditambang dengan
berbagai teknik. Proses penambangan data adalah proses mencari pola
atau informasi menarik dalam data terpilih dengan menggunakan
fungsi-fungsi tertentu. Fungsi atau algoritma dalam data mining
sangat bervariasi, dimana pemilihannya bergantung pada tujuan dan
proses pencarian pengetahuan secara menyeluruh.
4. Evaluasi pola dan presentasi pengetahuan
Tahap ini merupakan bagian dari proses pencarian pengetahuan
yang mencakup pemeriksaan apakah pola atau informasi yang
ditemukan bertentangan dengan fakta atau hipotesa yang ada
sebelumnya. Langkah terakhir KDD adalah mempresentasikan
pengetahuan dalam bentuk yang mudah dipahami pengguna.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
16
Gambar 2.1 Tahapan dalam Knowledge Discovery in Databases
(Han & Kamber,2006)
2.3 Analisa Outlier
2.3.1 Definisi Outlier
Outlier merupakan kumpulan data yang dianggap memiliki sifat yang
berbeda, tidak konsisten dibandingkan dengan kebanyakan data lainnya (Han
& Kamber, 2006). Outlier sering dianggap sebagai noise , namun untuk kasuskasus tertentu justru informasi yang tidak konsisten tersebut bisa dikatakan
lebih menarik dan bermanfaat.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
17
Dalam analisis outlier terdapat dua masalah besar yaitu penentuan data
apa yang dapat dipertimbangkan sebagai outlier dan menemukan metode yang
efisien untuk menggali outlier yang ditetapkan.
2.3.2 Hubungan Antara Penambangan Data dengan Outlier
Kecanggihan dan kemungkinan otomatisasi algoritma penambangan
data dibutuhkan untuk mendukung kinerja ilmuwan dan ahli statistika.
Sekumpulan data yang ada dapat meningkat secara drastis, hal ini memperjelas
bahwa perangkat penambangan data yang baik akan dibutuhkan untuk
pemanfaatan data dalam kebutuhan strategi penelitian (Knoor,2002).
Walaupun
secara
tradisional
ilmuwan
mampu
menyelesaikan
pengolahan data dengan jumlah atribut yang sedikit secara efektif, namun
ukuran kumpulan data dan jumlah dimensi dalam jumlah yang besar telah
terbukti menjadi kunci penghambat pada analisis data (Han & Kamber, 2006).
Salah satu permasalahan dalam penambangan data adalah identifikasi
outlier secara efisien pada sekumpulan data yang memiliki lebih dari satu
jumlah atribut. Permasalahan lain adalah jumlah informasi tambahan yang
dapat disediakan oleh algoritma pendeteksi outlier.
Dalam beberapa teknik deteksi outlier yang ada, terdapat tahapan
identifikasi untuk menyediakan penjelasan atau deskripsi data mana saja yang
menjadi outlier pada sebuah kumpulan data dan menyediakan informasi
mengenai makna hubungan antar outlier. Meskipun dapat dikatakan bahwa
outlier merupakan data yang cukup berbeda dari data lain, masih sedikit
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
18
persetujuan yang menyatakan seperti apakah ketentuan outlier yang bermakna
(Knorr, 2002).
2.3.3 Penyebab Outlier
Outlier dapat disebabkan karena data berasal dari sumber yang berbeda,
variasi alami dari data itu sendiri, dan kesalahan saat pengukuran atau eksekusi
data. Adanya data outlier ini akan membuat analisis terhadap serangkaian data
menjadi bias, atau tidak mencerminkan fenomena yang sebenarnya. Istilah
outlier juga sering dikaitkan dengan nilai esktrem, baik ekstrem besar maupun
ekstrem kecil. Sebagai ilustrasi, jika ada empat mahasiswa, mahasiswa pertama
mempunyai uang saku per bulan Rp. 500 ribu, mahasiswa kedua Rp. 600 ribu,
mahasiswa ketiga Rp. 700 ribu, dan mahasiswa keempat karena merupakan
anak orang kaya, mempunyai uang saku per bulan sampai dengan Rp. 5 juta.
Secara sekilas tampak bahwa nilai 5 juta relatif jauh dibandingkan uang saku
ketiga mahasiswa yang lain.
2.3.4 Manfaat Outlier
Deteksi outlier merupakan salah satu bidang penelitian yang penting
dalam topik penambangan data. Penelitian ini bermanfaat untuk mendeteksi
perilaku yang tidak normal seperti deteksi penyalahgunaan kartu kredit, deteksi
adanya penyusupan pada jaringan komunikasi, analisis medis, segmentasi data
pelanggan yang berkaitan dengan pemasaran barang. Banyak metode telah
dikembangkan untuk menyelesaikan masalah ini, namun kebanyakan hanya
fokus pada data dengan atribut yang seragam, yaitu data numerik atau data
kategorikal saja.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
19
2.3.5 Berbagai Macam Pendekatan Pendeteksi Outlier
1. Metode Grafis
Metode ini dilakukan dengan cara memotong data dengan
observasi ke-i (i=1, 2, 3,…,n). Dalam beberapa software statistika, metode
ini dilakukan dalam menu scatterplot. Dari plot tersebut, pencilan akan
nampak memisahkan diri dari kumpulan sebagian besar data.
Gambar 2.2 Scatterplot dari data dan objek
(Hatta, 2012)
Panah pada plot tersebut menunjuk pada data yang diduga menjadi outlier.
Keuntungan dari metode ini adalah mudah dipahami (tanpa melibatkan
perhitungan yang rumit) dan menarik karena menampilkan data secara
grafis (gambar). Kelemahan metode ini adalah keputusan bahwa data
tersebut termasuk pencilan atau tidak bergantung pada kebijakan
(judgement) peneliti, karena hanya mengandalkan visualisasi grafis (Hatta,
2012).
2. Metode Statistik
Cara paling sederhana adalah dengan cara statistik. Perlu dilakukan
perhitungan rata-rata dan standar deviasi. Kemudian berdasarkan nilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
20
tersebut dibuat fungsi threshold yang berpotensi untuk dinyatakan
sebagai outlier.
Pendekatan
distribusi
statistik
untuk
deteksi
outlier
mengasumsikan model distribusi dan probabilitas untuk sekumpulan
data (misalnya, distribusi normal atau Poisson) untuk selanjutnya
mengidentifikasi
outlier
menggunakan
model
tes
discordancy
(kejanggalan). Pengujian membutuhkan pengetahuan dari parameter
kumpulan data (seperti distribusi data), pengetahuan distribusi
parameter (seperti rata-rata), dan perkiraan jumlah outlier.
3. Metode Distance-based
Sebuah metode pencarian outlier yang popular dengan menghitung
jarak pada objek tetangga terdekat (nearest neighbor). Dalam
pendekatan ini, satu objek melihat objek-objek local neighborhood
yang didefinisikan dengan k-nearest neighbor. Jika ketetanggaan antar
objek relatif dekat maka dikatakan objek tersebut normal, akan tetapi
jika ketetanggaan antar objek relatif sangat jauh maka dikatakan objek
tersebut tidak normal. Dengan menggunakan pendekatan Distance
Based, objek O pada dataset D adalah distance based outlier (DB)
dengan parameter pct dan dmin. Outlier DB adalah objek O pada
kumpulan data T sedemikian rupa bahwa setidaknya ada sebagian
kecil pct objek dalam T terletak pada jarak lebih besar dari D dari O.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
21
Objek data dikatakan sebagai outlier apabila objek tersebut
memiliki objek tetangga yang sangat sedikit pada jarak tertentu dan
memiliki jarak jauh dibandingkan dengan jarak rata-rata objek data
tetangga terdekat.
Kelebihan dari Metode Distance-Based adalah pendekatannya
yang cukup sederhana. Sedangkan, kekurangan Metode DistanceBased adalah
a. Untuk basisdata yang besar akan memakan biaya yang besar
b. Sangat tergantung pada nilai parameter yang dipilih
c. Tidak dapat menangani kasus himpunan data yang memiliki
kepadatan berbeda pada daerah yang berbeda
d. Waktu proses deteksi dan hasil deteksi kurang akurat
dibandingkan dengan metode Density-Based (Handriyani et al.,
2009)
4. Metode Density-Based
Metode density-based tidak secara eksplisit mengklasifikasikan
sebuah objek adalah outlier atau bukan, akan tetapi lebih kepada
pemberian nilai kepada objek sebagai derajat kekuatan objek 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
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
22
local neighborhood suatu objek. MinPts diasumsikan sebagai
jangkauan dari nilai batas bawah dan batas atas parameter MinPts.
Untuk selanjutnya semua objek dalam sekumpulan data akan dihitung
nilai LOF-nya.
Objek data akan dianggap memiliki nilai outlier yang tinggi jika
pada jarak k tetangga terdekat memiliki kepadatan yang sangat kecil.
Semakin banyak objek – objek tetangga dalam jarak k-tetangga
terdekat, objek ini memiliki nilai LOF mendekati 1 dan tidak
seharusnya diberi label sebagai outlier.
Kelebihan Metode Density Based adalah dapat digunakan untuk data
yang kepadatannya berbeda. Sedangkan, kekurangan Metode Density
Based adalah :
a. Pemilihan parameter juga menjadi satu penentu yang kuat dalam
menentukan nilai kepadatan
b. Tanpa LOF maka objek yang berada pada klaster yang berbeda
dapat dianggap outlier
5. Metode Deviation Based
Pada dasarnya metode Deviation-Based lebih memiliki akurasi
yang baik dalam mengidentifikasi outlier karena metode ini
menggunakan data cubes untuk mengidentifikasi daerah-dearah
anomali pada data multidimensional yang besar.Metode Deviation
Based mengindentifikasi outlier dengan menentukan karateristik
utama dari objek dalam sebuah grup. Objek yang memiliki deviasi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
23
dari deskripsi tersebut akan dianggap sebagai outlier (Han & Kamber,
2006).
Terdapat dua teknik yang digunakan dalam pendekatan deviation
based, yaitu
a. Teknik Sequential Exception, dengan mensimulasikan cara
manusia membedakan objek yang berbeda dari sederetan objek
normal
b. Teknik OLAP (OnLine Analysis Processing) data cube :
menggunakan data cube untuk mengindentifikasi daerah-daerah
outlier pada data multidimensional yang besar
Data preprocessing dalam deteksi outlier merupakan hal yang penting
untuk diperhatikan karena data yang akan dihasilkan dalam deteksi
outlier ini khusus pada kasus data berdimensi sangat tinggi. Reduksi
dimensi merupakan satu hal yang sangat menarik untuk diteliti lebih
lanjut.
2.4 Metode Pendeteksi Outlier dengan Pendekatan Distance-Based
Sebuah objek, o pada kumpulan data, D , adalah distance-based (DB) outlier
dengan parameter pct dan dmin, jika setidaknya ada bagian dari pct , dalam objekobjek pada D terletak lebih jauh dari jarak dmin ke o. Dengan kata lain, daripada
mengandalkan uji statistik, kita bisa memikirkan outlier berbasis jarak seperti
objek-objek tersebut yang tidak memiliki cukup tetangga, dimana tetangga
didefinisikan berdasarkan jarak dari objek yang diberikan. Dibandingkan dengan
metode pendekatan statistik , deteksi outlier berbasis jarak menyamaratakan ide
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
24
dibalik pengujian discordancy (kejanggalan) untuk berbagai macam standar
distribusi. Deteksi outlier berbasis jarak menghindari perhitungan yang berlebihan
yang dapat dikaitkan dengan ketepatan distribusi yang diamati ke dalam beberapa
distribusi standar dan dalam memilih pengujian discordancy (kejanggalan) (Han
& Kamber, 2006).
Deteksi outlier berbasis jarak mengharuskan pengguna untuk mengatur kedua
parameter pct dan dmin. Menemukan pengaturan yang cocok untuk parameter
tersebut dapat melibatkan banyak percobaan dan kesalahan. Dalam penentuan
parameter pct dan dmin keterlibatan pengguna diperlukan untuk mengubahnya
secara berkelanjutan dalam menentukan outlier diberbagai variasi pengujian.
Terdapat tiga algoritma pendeteksi outlier dalam pendekatan Distance Based,
yaitu algoritma index based, naïve nested loop, block-based nested loop dan cell
based. Pada penelitian tugas akhir ini akan menggunakan algoritma naïve nested
loop.
2.4.1 Algoritma Naïve Nested Loop
Prinsip kerja algoritma Naïve Nested Loop adalah mendeteksi outlier
pada sekumpulan data lalu mencari tetangga untuk masing-masing objek dalam
radius dmin disekitaran objek tersebut. M adalah jumlah maksimum objek
dalam ketetanggaan dmin dari sebuah outlier dan dmin adalah radius atau jarak
maksimum ketetanggaan antar objek o. Oleh karena itu, saat sejumlah M+1
tetangga dari objek o ditemukan, jelas bahwa o bukan outlier. Pencarian
dilakukan pada semua objek o dalam sekumpulan data tersebut, lalu dihitung
jumlah tetangganya dalam radius jarak dmin. Pencarian jumlah tetangga akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
25
dihentikan saat jumlah tetangga objek o dalam radius dmin sudah mencapai
M+1, selanjutnya beralih ke objek selanjutnya.
Dalam penelitian yang dilakukan oleh Knoor (2002) nilai M juga
dinyatakan sebagai n(1-p), dimana n merupakan jumlah data, p atau disebut
juga pct merupakan jumlah minimum objek yang terletak lebih jauh dari jarak
o ke dmin.
Berikut merupakan cara kerja algoritma Naïve Nested Loop
(Jian Pei, 2009) :
for j = 1 to n do
-
set countj = 0 ;
-
for k=1 to n do if (dist(j,k)<D) then countj++ ;
-
if countj <= |n(1-p)| then output j as an outlier
dimana dist merupakan jarak antara objek j dengan k, dan D yang bernilai sama
dengan dmin adalah radius atau jarak maksimum ketetanggaan antar objek o.
Sedangkan nilai n(1-p) sama dengan M.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB III
METODOLOGI PENELITIAN
Pada bab ini akan dipaparkan mengenai perancangan penelitian yang
digunakan untuk mencapai tujuan dalam penelitian tugas akhir ini. Tujuan dari
penelitian ini adalah menerapkan algoritma Naïve Nested Loop untuk mendeteksi
outlier pada kumpulan data numerik hasil seleksi masuk mahasiswa dan nilai
indeks prestasi semester satu sampai empat. Kemudian dilanjutkan dengan
penjelasan mengenai pengolahan data, penyelesaian data yang ada dengan
algoritma Naïve Nested Loop, analisis dan evaluasi hasil outlier yang diperoleh.
3.1 Data
Hal yang terpenting dalam suatu penelitian adalah data. Dalam penelitian
tugas akhir ini memakai data numerik nilai hasil seleksi masuk dan nilai indeks
prestasi semester satu sampai empat mahasiswa program studi Teknik Informatika
Universitas Sanata Dharma, Yogyakarta tahun angkatan 2007 dan 2008. Data
tersebut diperoleh dari gudang data akademik mahasiswa Universitas Sanata
Dharma, Yogyakarta hasil penelitian Rosa, dkk (2013) dalam bentuk skrip kueri
.sql. Skrip kueri sql ini berisi data akademik lengkap mahasiswa Universitas
Sanata Dharma, namun hanya data yang disebutkan di atas yang akan digunakan
dalam kebutuhan penelitian tugas akhir ini. Data akademik ini dipilih karena
upaya penelitian deteksi outlier pada mahasiswa dapat memberikan pengetahuan
baru mengenai penambangan data yang bergerak dalam bidang pendidikan.
26
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
27
Data akademik mahasiswa program studi Teknik Informatika angkatan
2007-2008 terdiri dari 126 buah. Mahasiswa tersebut telah diterima di Universitas
Sanata Dharma melalui dua macam jalur seleksi masuk yaitu, jalur prestasi dan
jalur tes tertulis.
3.2 Pengolahan Data
Berikut merupakan tahapan yang dilakukan dalam pengolahandata:
1. Penggabungan Data ( Data Integration )
Data yang telah terkumpul akan diolah ke dalam database, data
mentah tersebut berbentuk skrip .sql sehingga diolah terlebih dahulu
menggunakan perangkat lunak SQLyog agar diketahui data dan tabel
apa saja yang ada dalam database tersebut. Setelah skrip dijalankan
melalui SQLyog , diketahui bahwa gudang data yang digunakan
bernama “data_mahasiswa” dan terdiri dari tabel dim_angkatan,
dim_daftarsmu,
dim_fakultas,
dim_jeniskel,
dim_kabupaten,
dim_prodi, dim_prodifaks, dim_statustes, dan fact_lengkap2.
Gambar 3.1 Dekripsi Tabel pada Gudang Data
‘data_mahasiswa’
2. Seleksi Data ( Data Selection )
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
28
Setelah dilakukan proses penggabungan data tabel dalam gudang
data „data_mahasiswa‟. Selanjutnya dilakukan seleksi data untuk
mengambil data dalam tabel „fact_lengkap2‟ karena dalam tabel inilah
memuat atribut nilai hasil seleksi tes masuk dan nilai indeks prestasi
semester satu hingga empat disimpan. Sedangkan tabel-tabel selain
„fact_lengkap2‟ tidak digunakan.
Gambar 3.2 Dekripsi Tabel ‘fact_lengkap2’
Pada tabel „fact_lengkap2‟ terdiri atas data akademik mahasiswa
diseluruh program studi , sedangkan dalam penelitian ini hanya
akan memakai data mahasiswa prodi Teknik Informatika angkatan
2007 dan 2008. Atribut yang tidak dipakai adalah nomor, jumsttb,
jummsttb, jumnem, jummtnem, sttb, sk_jeniskelamin, sk_status,
sk_kabupaten, sk_daftarsmu, sk_prodi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
29
Gambar 3.3 Data pada Tabel ‘fact_lengkap2’
3. Transformasi Data (Data Transformation)
Pada proses ini, data yang sudah diseleksi untuk selanjutnya
ditransformasikan ke dalam bentuk yang sesuai untuk ditambang. Data
ditransformasikan dengan metode normalisasi. Dalam tahap ini,
diketahui bahwa atribut yang akan digunakan dalam perhitungan
deteksi outlier adalah ips1, ips2, ips3, ips4, nil11, nil12, nil13, nil14,
nil15, dan final. Jangkauan nilai atribut ips1, ips2, ips3,dan ips4 adalah
0.00 sampai dengan 4.00. Sedangkan untuk jangkauan nilai atribut
nil11, nil12, nil13, nil14, dan nil15 adalah 0 sampai 10. Sementara itu,
jangkauan nilai final adalah 0 sampai 100. Sehingga perlu dilakukan
normalisasi data untuk menyamaratakan persebaran nilai keseluruhan
atribut dengan menggunakan rumus min-max normalization :
v' 
v  minA
(new _ maxA  new _ minA)  new _ minA
maxA  minA
Tahapan normalisasi data untuk atribut nil11, nil12, nil13, nil14,
nil15, dan final dilakukan untuk menyamakan jangkauan nilai terhadap
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
30
atribut ips1, ips2, ips3, ips4. Sehingga pada saat perhitungan deteksi
outlier persebaran nilai atribut hanya berkisar antara 0.00 sampai 4.00.
Proses normalisasi data berikut ini berlaku untuk atribut nil11,
nil12, nil13, nil14, dan nil15 menggunakan min-max normalization,
semisal nil11 adalah 7.00 maka proses normalisasinya adalah :
maxA = 10, minA= 0, new_maxA = 4, new_minA= 0, dan v = nil11
dalam hal ini bernilai 7.00 , sehingga proses perhitungannya v1 = (70)/(10-0)*(4-0)+0 = 7/10*4 = 2.80. Sehingga hasil normalisasi nil11
yang awalnya bernilai 7.00 sekarang menjadi 2.80.
Berikutnya adalah proses normalisasi data berikut berlaku untuk
atribut final menggunakan min-max normalization, semisal nilai final
adalah 61.00 maka proses normalisasinya adalah :
maxA = 100, minA= 0, new_maxA = 4, new_minA= 0, dan v = final
dalam hal ini bernilai 61.00 , sehingga proses perhitungannya v1= (610)/(100-0)*(4-0)+0 = 61/100*4 = 2.44. Sehingga hasil normalisasi
nilai final yang awalnya bernilai 61.00 sekarang menjadi 2.44.
Setelah nilai atribut nil11, nil12, nil13, nil14, nil15, dan final di
normalisasikan dalam kisaran nilai 0.00 - 4.00 maka nilai yang sudah
dinormalisasikan inilah yang nantinya akan digunakan sebagai input
dalam proses deteksi outlier.
4. Penambangan Data ( Data Mining )
Data yang telah diolah akan dianalisa menggunakan algoritma
Naïve Nested Loop. Data yang diteliti dibatasi pada data mahasiswa
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
31
Teknik Informatika, Universitas Sanata Dharma tahun angkatan 2007
dan 2008 selama empat semester. Pada tahap ini, akan ditentukan pula
input dan output yang akan digunakan untuk menambang data, antara
lain sebagai berikut :
1. Input terdiri dari :
a. Nilai hasil seleksi masuk mahasiswa, baik mahasiswa yang
menempuh jalur prestasi maupun jalur tes tertulis. Masukan
tersebut
diperoleh
dari
atribut
yang
ada
pada
tabel
„fact_lengkap2‟ yaitu nil11, nil12, nil13, nil14, nil15, dan final.
Atribut nil11, nil12, nil13, nil14, dan nil15 hanya dimiliki oleh
mahasiswa yang masuk melalui jalur tes tertulis. Sedangkan
atribut final dimiliki oleh mahasiswa yang masuk melalui jalur
tes tertulis maupun jalur prestasi.
b. Indeks prestasi mahasiswa dari semester satu hingga empat.
Masukan tersebut diperoleh dari atribut yang ada pada tabel
„fact_lengkap2‟ yaitu ips1, ips2, ips3, dan ips4.
2. Output, yaitu data mahasiswa yang menjadi outlier dari
perhitungan yang diambil dari data numerik nilai hasil seleksi
masuk dan nilai indeks prestasi selama empat semester.
5. Evaluasi Pola ( Pattern Evaluation )
Tahap ini merupakan bagian dari proses pencarian pengetahuan
yang mencakup pemeriksaan apakah pola atau informasi yang
ditemukan bertentangan dengan fakta atau hipotesa yang ada
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
32
sebelumnya. Melalui sistem pendeteksi outlier akan diperoleh luaran
berupa data-data outlier menggunakan algoritma Naïve Nested Loop
dan dianalisa kembali oleh pemilik data itu apakah hipotesa outlier
yang mereka miliki sama atau tidak dengan hasil yang diperoleh
sistem, sehingga dapat diketahui seperti apa tingkat keberhasilan
pencarian outlier tersebut.
6. Presentasi Pengetahuan ( Knowledge Presentation )
Pada
tahap
ini
pola
yang
telah
didapat
selanjutnya
direpresentasikan kepada pengguna ke dalam bentuk sistem pendeteksi
dengan antarmuka yang lebih mudah untuk dipahami. Melalui sistem
pendeteksi outlier ini diharapkan pengguna dalam hal ini pihak
internal Universitas Sanata Dharma dapat mencari tahu data-data yang
bersifat langka dan berbeda dari kebanyakan data lainnya untuk
selanjutnya dianalisa mengapa data-data tersebut bisa muncul. Tidak
bisa dipungkiri bahwa outlier sendiri akan didefinisikan dan dianalisa
oleh orang yang ahli dan mengerti tentang data itu.
3.3 Contoh Implementasi Deteksi Outlier dengan Algoritma Index Based
Setelah melalui proses pengumpulan dan pengolahan data, pada tahap ini
akan dilakukan perhitungan menggunakan algoritma Naïve Nested Loop
kemudian melihat hasil outlier pada sekumpulan data mahasiswa tersebut.
Tahap-tahap perhitungan menggunakan algoritma Naïve Nested Loop
adalah sebagai berikut ini :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
33
1. Pencarian outlier akan dilakukan pada sekumpulan data mahasiswa
yang masuk melalui jalur tes tertulis. Dalam hal ini adalah data
akademik mahasiswa program studi teknik informatika tahun angkatan
2007. Atribut yang akan digunakan terdiri dari ips1, ips2, ips3, ips4,
nil11, nil12, nil13, nil14, nil15. Sehingga akan dilihat kaitan nilai tes
masuk dengan nilai indeks prestasi dari semester satu sampai 4 dan
akan dicari mahasiswa dengan pola apa saja yang akan masuk sebagai
outlier.
Gambar 3.4 Data Akademik Mahasiswa
2. Menghitung jarak antar objek data mahasiswa, dalam kasus ini terdapat
13 mahasiswa sehingga akan dicari jarak satu objek terhadap dua belas
objek lainnya dengan rumus euclidean distance.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
34
Sehingga diperoleh jarak satu objek dengan objek yang lainnya dan
perhitungan jarak memakai iterasi sebanyak tiga belas kali. Atribut yang
dimasukkan ke dalam perhitungan jarak ini adalah atribut nil11, nil12,
nil13, nil14, nil15, ips1, ips2, ips3, dan ips4. Nilai tes masuk dikaitankan
dengan nilai indeks prestasi masing-masing semester sehingga perhitungan
jarak dengan atribut ips1 dilakukan pada perhitungan semester 1, sampai
atribut ips4 pada perhitungan semester 4.
Gambar 3.5 Perhitungan jarak antar objek
dengan rumus euclidean distance
3. Selanjutnya menentukan nilai dmin dan nilai M. Di mana dmin adalah
radius atau jarak maksimum ketetanggaan antar objek o. Sedangkan M
merupakan jumlah maksimum tetangga objek dalam radius dmin.
Dalam kasus ini nilai dmin adalah 2 dan M adalah 4. Satu per satu
objek mahasiswa akan dicari jumlah tetangganya dalam radius dmin
jika jarak kedua objek tersebut ≤ 2 dan jumlah tetangganya sudah
ditemukan sebanyak M+1, maka objek tersebut adalah bukan outlier
dan pencarian tetangga dihentikan. Sebaliknya, jika tidak lebih dari M
objek dalam kumpulan data ditemukan (dalam ketetanggaan dmin) ,
maka objek tersebut adalah outlier. Lalu, pencarian dilakukan ke objek
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
35
mahasiswa selanjutnya. Dalam simulasi ini dilakukan perhitungan
jumlah tetangga hingga objek terakhir untuk memastikan jumlah total
tetangga pada masing-masing objek mahasiswa.
Pada iterasi 1 dilakukan pengecekan jarak pada data mahasiswa
pertama terhadap keduabelas data mahasiswa lainnya. Dan diperoleh
jumlah tetangga dalam radius dmin sebanyak 2 tetangga karena jumlah
tetangga mahasiswa pertama lebih dari M, yaitu 9 maka dapat
disimpulkan mahasiswa pertama bukan outlier. Perhitungan serupa
dilakukan hingga data ke-13 dan berakhir pada iterasi 13 berlaku untuk
perhitungan jarak menggunakan atribut ips1, ips2, ips3, dan ips4.
Gambar 3.6 Pencarian jumlah tetangga dalam radius D dan
penentuan outlier
4. Setelah diketahui semua jumlah tetangga masing-masing objek dalam
perhitungan dari semester satu hingga semester empat, dapat diperoleh
kumpulan data yang masuk ke ke dalam outlier seperti yang ada pada
gambar di bawah ini :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
36
Gambar 3.7 Hasil Pencarian Outlier
Dari perhitungan yang telah dilakukan dapat diketahui data yang masuk ke
dalam outlier dari perhitungan pada semester 1 adalah mahasiswa dengan
nomor urut 2, 8, dan 10. Untuk perhitungan pada semester 2 yang
termasuk outlier adalah mahasiswa dengan nomor urut 2,8, dan 10. Untuk
perhitungan pada semester 3 yang termasuk outlier adalah mahasiswa
dengan nomor urut 2,5,8, dan 10. Dan untuk perhitungan pada semester 4
diperoleh
outlier mahasiswa dengan nomor
urut
2,8, dan 10.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan dipaparkan mengenai analisa dan perancangan sistem.
Analisa sistem dimulai dari idenfitikasi sistem yang akan dibuat, berlanjut pada
pemrosesan data awal yang akan digunakan dalam penelitian lalu pembahasan
mengenai input, proses, dan output sistem. Selain itu akan dipaparkan pula
perancangan sistem yang terdiri dari perancangan struktur data, pembuatan
diagram usecase, diagram kelas, diagram aktivitas, atribut dan method yang
akan dipakai, model analisis, dan perancangan antar muka.
4.1 Identifikasi Sistem
Universitas Sanata Dharma membuka pendaftaran untuk penerimaan
mahasiswa baru setiap tahunnya. Penerimaan mahasiswa baru Universitas
Sanata Dharma dilakukan melalui dua jalur, yaitu jalur prestasi dan jalur tes
tertulis. Untuk jalur prestasi syarat utama yang harus disiapkan oleh calon
mahasiswa adalah nilai hasil belajar siswa SMA / sederajat pada saat kelas
XI semester 1 dan 2, nilai-nilai hasil belajar tersebut kemudian akan dihitung
rata-rata sehingga didapat nilai final dari seorang siswa yang mendaftar
melalui jalur prestasi. Nilai final tersebut digunakan sebagai pertimbangan
siswa SMA
/ sederajat nantinya diterima atau tidak sebagai mahasiswa
Universitas Sanata Dharma. Sedangkan untuk calon mahasiswa yang masuk
melalui jalur tes tertulis akan memiliki lima komponen nilai dari tes yang
diberikan, yaitu nilai penalaran numerik, nilai penalaran verbal, nilai
37
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
38
hubungan ruang, nilai bahasa Inggris, dan nilai kemampuan numerik. Calon
mahasiswa yang masuk melalui jalur tes tertulis juga akan memiliki nilai
final berdasarkan rata-rata lima komponen tes tersebut. Nilai final ini juga
digunakan sebagai pertimbangan calon mahasiswa tersebut diterima atau
tidak sebagai mahasiswa Universitas Sanata Dharma.
Calon mahasiswa yang berhasil lolos seleksi penerimaan mahasiswa baru
baik yang melalui jalur prestasi maupun jalur tes tertulis akan
menjadi
mahasiswa yang harus mengikuti kegiatan perkuliahan dan setiap
semesternya akan memperoleh nilai indeks prestasi sebagai kalkulasi dari
prestasi akademiknya. Namun, akan muncul pertanyaan apakah nilai indeks
prestasi mahasiswa yang tinggi juga dipengaruhi oleh nilai hasil seleksi
masuk yang tinggi pula atau apakah ada mahasiswa yang memiliki nilai
indeks prestasi rendah tetapi nilai hasil seleksi masuknya tinggi. Hal ini
menjadi sesuatu yang menarik untuk dicari kejadian langkanya atau dalam hal
ini berkaitan dengan deteksi outlier. Dari nilai hasil seleksi masuk dan nilai
indeks prestasi selama empat semester diharapkan dapat digunakan sebagai
bahan untuk melihat kejadian langka pada data akademik mahasiswa.
Sebuah sistem pendeteksi outlier yang akan dibangun diharapkan mampu
untuk mengenali mahasiswa mana saja yang tergolong
menjadi outlier
dibandingkan dengan mahasiswa lain. Sistem pendeteksi ini menerapkan
algoritma Naïve Nested Loop yang merupakan algoritma berpendekatan
distance based yang berguna untuk mencari outlier.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
39
4.1.1 Diagram Use Case
Sebuah sistem membutuhkan pengguna sebagai pelaku utama
untuk melakukan aksinya supaya sistem dapat menjalankan fungsi yang
sesuai dengan keinginan pengguna tersebut. Diagram use case berikut
menggambarkan interaksi terdapat pada Sistem Pendeteksi Outlier
Menggunakan Algoritma Naïve Nested Loop ini. Pelaku utama dari
sistem ini hanya satu yaitu pengguna.
Terdapat tiga fungsi utama yang dapat dijalankan oleh pengguna
yaitu fungsi input data, fungsi pendeteksian outlier , dan fungsi simpan
hasil deteksi outlier. Ketiga fungsi tersebut saling berkaitan sehingga
dalam menjalankan fungsi ini pengguna harus melakukannya secara
beurutan. Pada fungsi input data, pengguna dapat memasukan berbagai
jenis data yang akan diproses dalam deteksi outlier yaitu data berformat
.xls , .csv , dan data yang berasal dari tabel dalam basisdata. Fungsi
berikutnya adalah fungsi deteksi outlier terhadap data yang telah
dimasukkan oleh pengguna. Dalam fungsi ini pengguna memasukan
dua nilai paramater input yaitu M dan dmin. M adalah jumlah
maksimum objek dalam ketetanggaan dmin dari sebuah outlier dan
dmin adalah radius atau jarak maksimum ketetanggaan antar objek o.
Setelah itu sistem akan menampilkan hasil deteksi outlier dan
selanjutnya pengguna dapat menyimpan hasil tersebut ke dalam file
yang berformat .txt atau .doc.
Selain ketiga fungsi utama tersebut, sistem ini menyediakan fungsi
pilihan yang tidak wajib dilakukan pengguna yaitu fungsi seleksi atribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
40
dan fungsi lihat grafik distribusi per atribut. Kedua fungsi ini hanya
dapat dilakukan jika pengguna sudah memasukan input data. Fungsi
seleksi atribut merupakan fungsi yang disediakan sistem jika pengguna
akan
menghapus beberapa atribut yang tidak dipakai dalam
perhitungan deteksi outlier. Sedangkan fungsi lihat grafik distribusi per
atribut dilakukan apabila pengguna ingin melihat distribusi data yang
ada dalam satu atribut dalam bentuk diagram batang.
Diagram use case untuk sistem pendeteksi outlier menggunakan
algoritma Naïve Nested Loop dapat dilihat pada gambar di bawah ini
sedangkan deskripsinya dapat dilihat pada lampiran 1:
<<extends >>
Input data file .xls, csv
atau tabel basisdata
<<extends >>
<<depends on>>
Deteksi outlier
Pengguna
Seleksi
atribut
<<depends on>>
Simpan hasil deteksi outlier
Gambar 4.1 Diagram Use Case
Lihat grafik
distribusi per
atribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
41
4.1.2 Narasi Use Case
Untuk detil narasi secara keseluruhan dari setiap use case dapat
dilihat pada lampiran dalam tugas akhir ini pada lampiran 2.
4.2 Perancangan Sistem Secara Umum
4.2.1 Pemrosesan Data Awal
Dalam penelitian tugas akhir ini akan dipakai data numerik nilai
hasil seleksi masuk mahasiswa dan nilai indeks prestasi semester satu
hingga empat dari mahasiswa Teknik Informatika Universitas Sanata
Dharma Yogyakarta tahun angkatan 2007 dan 2008. Data diperoleh dari
gudang data akademik mahasiswa Universitas Sanata Dharma hasil
penelitian Rosa, dkk (2013) dalam bentuk skrip kueri .sql.
Berikut merupakan tahapan yang dilakukan dalam pengolahan data:
1. Penggabungan Data ( Data Integration )
Data yang telah terkumpul akan diolah ke dalam database, data
mentah tersebut berbentuk skrip .sql sehingga diolah terlebih
dahulu menggunakan perangkat lunak SQLyog agar diketahui data
dan tabel apa saja yang ada dalam database tersebut.Setelah skrip
dijalankan melalui SQLyog , diketahui bahwa gudang data yang
digunakan bernama “data_mahasiswa” dan terdiri dari tabel
dim_angkatan,
dim_daftarsmu,
dim_kabupaten, dim_prodi,
fact_lengkap2.
dim_fakultas,
dim_jeniskel,
dim_prodifaks, dim_statustes, dan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
42
Gambar 4.2 Dekripsi Tabel pada Basisdata ‘data_mahasiswa’
2. Seleksi Data ( Data Selection )
Setelah dilakukan proses penggabungan data tabel dalam gudang
data
„data_mahasiswa‟. Selanjutnya dilakukan seleksi data untuk
mengambil data dalam tabel „fact_lengkap2‟ karena dalam tabel
inilah memuat atribut nilai hasil seleksi tes masuk dan nilai indeks
prestasi semester satu hingga empat disimpan. Sedangkan tabeltabel selain „fact_lengkap2‟ tidak digunakan.
Gambar 4.3 Dekripsi Tabel ‘fact_lengkap2’
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
43
Pada tabel „fact_lengkap2‟ terdiri atas data akademik mahasiswa
diseluruh program studi , sedangkan dalam penelitian ini hanya
akan memakai data mahasiswa prodi Teknik Informatika angkatan
2007 dan 2008. Atribut yang tidak dipakai adalah nomor, jumsttb,
jummsttb, jumnem, jummtnem, sttb, sk_jeniskelamin, sk_status,
sk_kabupaten, sk_daftarsmu, sk_prodi.
Gambar 4.4 Data pada Tabel ‘fact_lengkap2’
3. Transformasi Data (Data Transformation)
Pada proses ini, data yang sudah diseleksi untuk selanjutnya
ditransformasikan ke dalam bentuk yang sesuai untuk ditambang.
Data ditransformasikan dengan metode normalisasi. Dalam tahap ini,
diketahui bahwa atribut yang akan digunakan dalam perhitungan
deteksi outlier adalah ips1, ips2, ips3, ips4, nil11, nil12, nil13, nil14,
nil15, dan final. Jangkauan nilai atribut ips1, ips2, ips3,dan ips4
adalah 0.00 sampai dengan 4.00. Sedangkan untuk jangkauan nilai
atribut nil11, nil12, nil13, nil14, dan nil15 adalah 0 sampai 10.
Sementara itu, jangkauan nilai final adalah 0 sampai 100. Sehingga
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
44
perlu dilakukan normalisasi data untuk menyamaratakan persebaran
nilai keseluruhan atribut dengan menggunakan rumus min-max
normalization :
v' 
v  minA
(new _ maxA  new _ minA)  new _ minA
maxA  minA
Tahapan normalisasi data untuk atribut nil11, nil12, nil13, nil14,
nil15, dan final dilakukan untuk menyamakan jangkauan nilai
terhadap atribut ips1, ips2, ips3, ips4. Sehingga pada saat
perhitungan deteksi outlier persebaran nilai atribut hanya berkisar
antara 0.00 sampai 4.00.
Proses normalisasi data berikut ini berlaku untuk atribut nil11,
nil12, nil13, nil14, dan nil15 menggunakan min-max normalization,
semisal nil11 adalah 7.00 maka proses normalisasinya adalah :
maxA = 10, minA= 0, new_maxA = 4, new_minA= 0, dan v = nil11
dalam hal ini bernilai 7.00 , sehingga proses perhitungannya v1 = (70)/(10-0)*(4-0)+0 = 7/10*4 = 2.80. Sehingga hasil normalisasi nil11
yang awalnya bernilai 7.00 sekarang menjadi 2.80.
Berikutnya adalah proses normalisasi data berikut berlaku untuk
atribut final menggunakan min-max normalization, semisal nilai
final adalah 61.00 maka proses normalisasinya adalah :
maxA = 100, minA= 0, new_maxA = 4, new_minA= 0, dan v = final
dalam hal ini bernilai 61.00 , sehingga proses perhitungannya v1=
(61-0)/(100-0)*(4-0)+0 = 61/100*4 = 2.44. Sehingga hasil
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
45
normalisasi nilai final yang awalnya bernilai 61.00 sekarang menjadi
2.44.
Setelah nilai atribut nil11, nil12, nil13, nil14, nil15, dan final
dinormalisasikan dalam kisaran nilai 0.00 - 4.00 maka nilai yang
sudah dinormalisasikan inilah yang nantinya akan digunakan sebagai
input dalam proses deteksi outlier.
4. Penambangan Data ( Data Mining )
Data yang telah diolah akan dianalisa menggunakan algoritma
Naïve Nested Loop. Data yang diteliti dibatasi pada data mahasiswa
Teknik Informatika, Universitas Sanata Dharma tahun angkatan
2007 dan 2008 selama empat semester. Pada tahap ini, akan
ditentukan pula input dan output yang akan digunakan untuk
menambang data, antara lain sebagai berikut :
1. Input terdiri dari :
a. Nilai hasil seleksi masuk mahasiswa, baik mahasiswa yang
menempuh jalur prestasi maupun jalur tes tertulis. Masukkan
tersebut diperoleh dari atribut yang ada pada tabel
„fact_lengkap2‟ yaitu nil11, nil12, nil13, nil14, nil15, dan
final. Atribut nil11, nil12, nil13, nil14, dan nil15 hanya
dimiliki oleh mahasiswa yang masuk melalui jalur tes
tertulis. Sedangkan atribut final dimiliki oleh mahasiswa
yang masuk melalui jalur tes tertulis maupun jalur prestasi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
46
b. Indeks prestasi mahasiswa dari semester satu hingga empat.
Masukkan tersebut diperoleh dari atribut yang ada pada tabel
„fact_lengkap2‟ yaitu ips1, ips2, ips3, dan ips4.
2. Output, yaitu data mahasiswa yang menjadi outlier dari
perhitungan yang diambil dari data numerik nilai hasil seleksi
masuk dan nilai indeks prestasi selama empat semester.
5. Evaluasi Pola ( Pattern Evaluation )
Tahap ini merupakan bagian dari proses pencarian pengetahuan
yang mencakup pemeriksaan apakah pola atau informasi yang
ditemukan bertentangan dengan fakta atau hipotesa yang ada
sebelumnya. Melalui sistem pendeteksi outlier akan diperoleh
luaran berupa data-data outlier menggunakan algoritma Naïve
Nested Loop dan dianalisa kembali oleh pemilik data itu apakah
hipotesa outlier yang mereka miliki sama atau tidak dengan hasil
yang diperoleh sistem, sehingga dapat diketahui seperti apa tingkat
keberhasilan pencarian outlier tersebut.
6. Presentasi Pengetahuan ( Knowledge Presentation )
Pada
tahap
ini
pola
direpresentasikan kepada
yang
telah
didapat
selanjutnya
pengguna ke dalam bentuk sistem
pendeteksi dengan antarmuka yang lebih mudah untuk dipahami.
Melalui sistem pendeteksi outlier ini diharapkan pengguna dalam
hal ini pihak internal Universitas Sanata Dharma dapat mencari
tahu data-data yang bersifat langka dan berbeda dari kebanyakan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
47
data lainnya untuk selanjutnya dianalisa mengapa data-data
tersebut bisa muncul. Tidak bisa dipungkiri bahwa outlier sendiri
akan didefinisikan dan dianalisa oleh orang yang ahli dan mengerti
tentang data itu.
4.2.2 Input Sistem
Data akademik mahasiswa Teknik Informatika angkatan 20072008 terdiri dari 126 buah. Mahasiswa tersebut telah diterima di
Universitas Sanata Dharma melalui dua macam jalur seleksi masuk
yaitu, jalur prestasi dan jalur tes. Untuk masing-masing jalur seleksi
masuk tersebut akan dicari outlier-nya karena memiliki struktur data
yang berbeda.
Berikut ini merupakan rincian data yang akan dalam penelitian
antara lain sebagai berikut:
a. Data Hasil Seleksi Masuk Jalur Prestasi
No Nama Atribut
Penjelasan
1
Atribut
nomor urut
nomor
Nilai
ini
merupakan 1 – 126
alias
menunjukkan
untuk
objek
mahasiswa
2
Final
Atribut ini merupakan rata- 0-4.00
rata dari nilai kognitif rapor
siswa SMA/sederajat
b. Data Hasil Seleksi Masuk Jalur Tes Tertulis
No Nama
Atribut
Penjelasan
Nilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1
nomor urut
Atribut
ini
nomor
merupakan 1 – 126
alias
menunjukkan
48
untuk
objek
mahasiswa
2
nil11
Atribut
ini
merupakan 0-4.00
nilai komponen tes 1
3
nil12
Atribut
ini
merupakan 0-4.00
nilai komponen tes 2
4
nil13
Atribut
ini
merupakan 0-4.00
nilai komponen tes 3
5
nil14
Atribut
ini
merupakan 0-4.00
nilai komponen tes 4
6
nil15
Atribut
ini
merupakan 0-4.00
nilai komponen tes 5
7
Final
Atribut
ini
merupakan 0-4.00
nilai akhir hasil kalkulasi
semua nilai tes
c. Data Indeks Prestasi Semester
No Nama
Penjelasan
Nilai
Atribut
1
Nomor urut
Atribut ini merupakan nomor alias 1 - 126
untuk
menunjukkan
objek
mahasiswa
2
ips1
Atribut
ini
menunjukkan
mahasiswa semester 1
3
ips2
Atribut
ini
menunjukkan
mahasiswa semester 2
4
ips3
Atribut
ini
menunjukkan
mahasiswa semester 3
IP 0.00
–
4.00
IP 0.00
–
4.00
IP 0.00
4.00
–
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5
ips4
Atribut
ini
menunjukkan
mahasiswa semester 4
IP 0.00
49
–
4.00
4.2.3 Proses Sistem
Setelah data dimasukkan dan dilakukan pemrosesan data. Proses
yang terjadi pada sistem adalah :
1. Pengambilan data
Mengambil data pada direktori tertentu yang disimpan dalam
bentuk file excel (.xls) , .csv atau mengambil data pada tabel dalam
database dan selanjutnya ditampilkan pada tabel view. Data yang
telah tertampil pada tabel data dapat diseleksi atributnya sehingga
hanya atribut yang dipilih pengguna tersebut yang akan
dimasukkan dalam perhitungan deteksi outlier. Selain itu,
menyediakan fungsi pilihan untuk melihat distribusi nilai data
untuk masung-masing atribut.
2. Perhitungan jarak objek data
Data yang telah dimasukkan merupakan data yang telah diseleksi
atributnya. Selanjutnya akan dilakukan perhitungan jarak antar
objek data dengan rumus euclidean distance. Sehingga akan
diperoleh jarak satu objek dengan objek yang lainnya dan
perhitungan jarak memakai iterasi sebanyak jumlah data yang
dimasukkan.
Atribut yang dimasukkan ke dalam perhitungan
data disesuaikan dengan pilihan pengguna.
3. Pencarian outlier berdasarkan parameter masukkan M dan dmin
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
50
Sistem menerima masukan nilai parameter dmin dan M dari
pengguna. Dimana dmin adalah radius atau jarak maksimum
ketetanggaan antar objek o. Sedangkan M merupakan jumlah
maksimum tetangga objek dalam radius dmin. Satu per satu dari
objek data akan dicari jumlah tetangganya dalam radius dmin jika
jarak antara dua objek ≤ dmin dan jumlah tetangganya sudah
ditemukan sebanyak M+1, maka objek tersebut adalah bukan
outlier dan pencarian tetangga dihentikan. Sebaliknya, jika tidak
lebih dari M objek dalam kumpulan data ditemukan (dalam
ketetanggaan dmin) , maka objek tersebut adalah outlier. Lalu,
pencarian dilakukan ke objek mahasiswa selanjutnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
51
Start
Ya
Pilih
Seleksi
atribut
Data bertipe .xls
Data bertipe .csv
Data basisdata
Proses seleksi
atribut
Tidak
Ya
Pilih
Distribu
si
Proses distribusi
atribut
Tidak
Input parameter
M, dmin
Proses deteksi outlier
Hasil deteksi
outlier
end
Gambar 4.5 Proses Umum Sitem Pendeteksi Outlier
Menggunakan Algoritma Naïve Nested Loop
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
52
4.2.4 Output Sistem
Sistem yang akan dibuat merupakan sistem yang menghasilkan
data yang dinyatakan sebagai outlier beserta atribut yang dimiliki
oleh data tersebut. Berikut merupakan keluaran yang akan dihasilkan
oleh sistem:
a. Proses input menampilkan :
1. Sampel data keseluruhan beserta jumlah baris dan jumlah
atribut
2. Daftar atribut yang akan dipakai pada perhitungan
b. Proses deteksi outlier menampilkan :
1. Hasil outlier untuk setiap data yang diuji beserta nilai atribut
yang dimiliki
2. Parameter dmin dan M yang digunakan dalam perhitungan
algoritma
3. Jumlah data
4. Lama deteksi outlier
5. Jumlah outlier
4.3 Perancangan Sistem
4.3.1 Diagram Konteks
nilai M, nilai dmin, data .xls,data
file .csv , data dari tabel dalam
basisdata
Pengguna
hasil outlier beserta nilai atribut
yang dimiliki , nilai M dan dmin
yang dipakai, jumlah data, lama
deteksi outlier, jumlah outlier
Sistem Pendeteksi
Outlier Menggunakan
Algoritma Naïve
Nested Loop
Gambar 4.6 Diagram Konteks
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
53
4.3.2 Diagram Aktivitas
Diagram aktivitas digunakan untuk menunjukkan kegiatan yang
dilakukan oleh pengguna dan sistem dalam setiap usecase yang telah
disebutkan pada gambar 4.1.
Berikut adalah diagram aktivitas dari setiap use case:
1.
Diagram Aktivitas Input data dari file .xls
2.
Diagram Aktivitas Input data dari file .csv
3.
Diagram Aktivitas Input data dari tabel dalam basisdata
4.
Diagram Aktivitas Deteksi Outlier
5.
Diagram Aktivitas Simpan hasil deteksi outlier
6.
Diagram Aktivitas Lihat Distribusi Atribut per Atribut
7.
Diagram Aktivitas Seleksi Atribut
8.
Diagram Aktivitas Alternatif Seleksi Atribut (Hapus Semua
Atribut)
Untuk penjelasan rinci dari masing – masing diagram aktivitas dapat
dilihat pada lampiran 3 yang terdapat pada tugas akhir ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
54
4.3.3 Diagram Kelas Analisis
DiagramBatang
Halaman Distribusi Atribut
Halaman PilihDatabase
Halaman Awal
Pengguna
Halaman Utama
Halaman TampilTabel
DatabaseController
DatabaseConnection
CheckBoxTableModel
Seleksi Atribut
Graph_NaiveNL
Vertex_ NaiveNL
HalamanBantuan
HalamanMissingValues
HalamanKonfirmasiKeluar
Gambar 4.7 Diagram Kelas Analisis
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
55
Tabel 4.1 Tabel Nama Kelas
No
Nama Kelas
Jenis
Keterangan
1
DatabaseConnection
Entity
2
Graph_NaiveNL
Controller
3
Vertex_NaiveNL
Entity
4
SeleksiAtribut
Entity
5
CheckBoxTableModel
Controller
6
DatabaseController
Controller
7
DiagramBatang
Entity
8
HalamanUtama
Boundary
9
HalamanDistribusiAtribut
Boundary
10
HalamanPilihDatabase
Boundary
11
HalamanTampilTabel
Boundary
Kelas ini digunakan untuk memuat
atribut yang digunakan untuk mengatur
koneksi antara sistem dengan basisdata
seperti username, password, URL dan
mengatur koneksi antara basisdata
dengan sistem
Kelas ini digunakan untuk melakukan
proses perhitungan jarak antar data,
pencarian
outlier
menggunakan
algoritma Naïve Nested Loop, dan
menampilkannya ke dalam sistem
Kelas ini digunakan untuk menyimpan
atribut data masukan yang meliputi
label,isi data, dan penanda data
dianggap outlier ata buka
Kelas ini digunakan untuk menyimpan
atribut yang dipakai sebagai nama
kolom pada tabel SeleksiAtribut
Kelas ini merupakan kelas untuk
mengatur pembuatan tabel Seleksi
Atribut pada Halaman Utama
Kelas ini berisi metode yang digunakan
untuk menampilkan daftar tabel dan isi
tabel berdasarkan basisdata dan tabel
yang dipilih pengguna
Kelas ini digunakan untuk menampilkan
grafik diagram dari rincian data per
atribut
Kelas ini menyediakan tampilan utama
dari sistem dan menampilkan fungsifungsi utama sistem
Kelas ini digunakan sebagai tampilan
untuk memilih atribut lalu menampilkan
detil distribusi atribut yang telah terpilih
Kelas ini digunakan sebagai tampilan
untuk login ke basisdata sebelum
mengambil data pada tabel
Kelas ini digunakan sebagai tampilan
untuk memilih tabel yang ada pada
basisdata
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12
HalamanAwal
Boundary
13
HalamanBantuan
Boundary
14
HalamanMissingValues
Boundary
15
HalamanKonfirmasiKeluar
Boundary
56
Kelas ini digunakan untuk menampilkan
halaman saat sistem pertama kali
dijalankan
Kelas ini digunakan untuk menampilkan
petunjuk pemakaian sistem
Kelas ini digunakan sebagai tampilan
penanganan error saat data .xls
mengandung baris kosong dan data
bukan angka
Kelas ini digunakan untuk menampilkan
konfirmasi apakah pengguna benarbenar akan keluar dari sistem
4.3.4 Diagram Sequence
Berikut merupakan diagram sequence yang terdapat dalam proses
perancangan Sistem Pendeteksi Outlier Menggunakan Algoritma Naïve
Nested Loop :
1. Diagram Sequence Input data dari file .xls
2. Diagram Sequence Input data dari file .csv
3. Diagram Sequence Input data dari tabel dalam basisdata
4. Diagram Sequence Deteksi Outlier
5. Diagram Sequence Simpan hasil deteksi outlier
6. Diagram Sequence Lihat Distribusi Atribut per Atribut
7. Diagram Sequence Seleksi Atribut
Untuk penjelasan rinci dari masing – masing diagram sequence dapat
dilihat pada lampiran 4 yang terdapat pada tugas akhir ini.
4.3.5 Perancangan Struktur Data
Konsep struktur data yang akan digunakan dalam sistem ini adalah
konsep graf. Graf merupakan sebuah elemen yang dapat terhubung dengan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
57
elemen yang lainnya. Konsep graf digunakan dalam menghubungkan satu
objek data dengan yang lain sehingga jika data tersebut saling terhubung
maka dapat memudahkan perhitungan jarak antar data. Hal ini dikarenakan
algoritma Naïve Nested Loop mempertimbangkan sebuah data dinyatakan
sebagai outlier berdasarkan jumlah tetangga yang dimiliki dalam nilai
jangkauan tertentu. Graf memiliki vertex dan edge.
Sebuah graf adalah sekumpulan vertex yang saling terhubung
melalui edge. Setiap edge menghubungkan dua node. Namun, tidak semua
node harus saling terhubung. Data akan dianalogikan sebagai vertex dimana
vertex tersebut memiliki list yang nantinya dapat diisi dengan banyak nilai
atribut pada sebuah objek data. Jarak masing-masing objek data dinyatakan
dalam edge dan nilai edge dari satu vertex ke vertex lain disimpan dalam
bentuk matriks dua dimensi.
Berikut merupakan ilustrasi untuk perancangan struktur data yang
akan digunakan dalam sistem pendeteksi outlier.
4.3.5.1 Matriks Dua Dimensi
Seperti yang telah disebutkan di atas, jarak masing-masing objek
data akan disimpan dalam edge dan masing-masing nilai edge antar dua
vertex lalu disimpan dalam matriks dua dimensi.
Pada awalnya, edge untuk antar objek data mahasiswa dinyatakan
dengan nilai -1 yang artinya jarak antar dua objek mahasiswa tersebut
masih belum ada. Sedangkan edge bernilai 0 menyatakan jarak objek
data terhadap dirinya sendiri.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
58
Mahasiswa[1]
Mahasiswa[2]
Mahasiswa[3]
Mahasiswa[1]
0
-1
-1
Mahasiswa[2]
-1
0
-1
Mahasiswa[3]
-1
-1
0
Gambar 4.8 Ilustrasi Struktur Data Matriks Dua Dimensi
Kemudian, setelah dilakukan perhitungan jarak antar dua objek
data menggunakan rumus Euclidean Distance , jarak dua objek yang
awalnya bernilai -1
akan diganti nilainya sesuai dengan hasil
perhitungan dari rumus jarak tersebut. Sedangkan edge yang
menyatakan jarak objek data terhadap dirinya sendiri tetap bernilai 0.
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
Gambar 4.9 Ilustrasi Struktur Data Matriks Dua Dimensi Setelah
Dilakukan Perhitungan Jarak antar Vertex
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
59
4.3.5.2 Graf
Sebuah graf berisi kumpulan vertex yang saling terhubung melalui
edge. Pada kasus ini objek data mahasiswa dinyatakan sebagai vertex.
Vertex tersebut akan berisi list yang nantinya dapat diisi dengan banyak
nilai atribut pada sebuah objek data. Pada gambar 4.10 dapat dilihat
terdapat vertex mahasiswa 1, mahasiswa 2, dan mahasiswa 3 yang
masing-masing memiliki atribut yang menampung nilai dalam bentuk
list. Untuk masing-masing objek mahasiswa akan terhubung dengan
objek data mahasiswa lain dan jarak antar objek data mahasiswa
tersebut dinyatakan sebagai edge.
edge : 2.58
Vertex Mahasiswa[1]
(List) nilai
edge : 2.58
Vertex Mahasiswa[2]
edge : 3.21
(List) nilai
edge : 3.21
edge : 1.05
Vertex Mahasiswa[3]
edge : 1.05
(List) nilai
Gambar 4.10 Ilustrasi Struktur Data Graf
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
60
4.3.6 Diagram Kelas Desain
Diagram kelas desain menunjukkan daftar kelas yang nantinya
akan dipakai dalam pembuatan sistem. Diagram kelas memuat semua
kelas untuk menjalankan semua fungsi pada sistem. Untuk rincian
atribut dan method masing-masing kelas dapat dilihat pada lampiran 5.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
memanggil
1
1
<<entity>>
DiagramBatang
<<boundary>>
HalamanDistribusiAtribut
1
<<boundary>>
HalamanAwal
memanggil
memanggil
1
1
<<controller >>
CheckBoxTableModel
1…*
<<entity>>
SeleksiAtribut
1…*
memanggil
61
memanggil
1
<<boundary>>
HalamanUtama
1
1
1
1
<<boundary>>
HalamanPilihDatabase
<<boundary>>
HalamanTampilTabel
memanggil
memanggil
memanggil
1
<<controller >>
1
DatabaseController
memanggil
1
1
<<controller>>
Graph_NaiveNL
memanggil
1
1..*
memiliki
1
<<boundary>>
HalamanBantuan
memanggil
1
memanggil
memanggil
<<boundary>>
HalamanKonfimasiKeluar
1
<<entity>>
DatabaseConnection
<<boundary>>
HalamanMissingValues
Gambar 4.11 Diagram Kelas Desain
<<entity>>
Vertex_NaiveNL
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
62
4.3.7 Rincian Algoritma Setiap Method Pada Tiap Kelas
4.3.7.1 Rincian Algoritma pada Method di Kelas DatabaseConnection
Nama method
Fungsi method
Algoritma method
getConnectionSQL(
Mendapatkan
1. Buat koneksi ke basisdata
String, String, String )
nilai username,
mySQL ke dalam method
password,dan url
setConnection(DriverMan
dari inputan
ager.getConnection(url,
pengguna lalu
user, passw))sesuai
melakukan login
parameter input pengguna
ke dalam
2. Jika benar maka sistem
basisdata mySQL
berhasil terhubung ke
basisdata mySQL
3. Kembalikan nilai
getConnection()
isConnectedSQL(
Mengecek apakah 1. Jika parameter
String, String, String)
sistem sudah
url,user,passw!= null ,
terhubung dengan
kembalikan nilai true
basisdata mySQL 2. Jika url,user,passw
==null, kembalikan nilai
false
getConnectionOracle(
Mendapatkan
1. Buat koneksi ke basisdata
String, String, String)
nilai username,
Oracle ke dalam method
password,dan url
setConnection(DriverMan
dari inputan
ager.getConnection(url,
pengguna lalu
user, passw)) sesuai
melakukan login
parameter input pengguna
ke dalam
2. Jika benar maka sistem
basisdata Oracle
berhasil terhubung ke
basisdata Oracle
3. Kembalikan nilai
getConnection()
isConnectedOracle(
Mengecek apakah 1. Jika parameter
String, String, String)
sistem sudah
url,user,passw!= null ,
terhubung dengan
kembalikan nilai true
basisdata Oracle
2. Jika url,user,passw
==null, kembalikan nilai
false
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.3.7.2 Rincian Algoritma pada Method di Kelas Graph_NaiveNL
Nama method
Fungsi method
Algoritma method
addVertex(String,
Membuat vertex
1. Membaca nilai parameter
List<Double>)
untuk membentuk
method berupa list nilai dan
graf
label
2. Membuat vertex baru
dengan label dan nilai
masukan setiap nilai size
dari vertex bertambah
addEdge(int,
int, Mengisi nilai edge
1. Membaca nilai parameter
double)
pada vertex
method berupa asal, tujuan,
dan jarak
2. Mengisikan nilai jarak
kedalam edge[asal][tujuan]
dan edge[tujuan][asal]
euclideanDistance( Menghitung nilai
1. Membaca nilai paramter
int,int)
jarak antar dua data
input method yaitu asal dan
menggunakan rumus
tujuan
Euclidean Distance
2. Membuat dua buah list
bernama awal dan akhir
3. Mengisi
vertex[asal].getNilai() ke
dalam list awal dan
vertex[tujuan].getNilai() ke
dalam list akhir
4. Inisialisasi i=0,total=0
5. Selama i< awal.size
lakukan perhitungan total =
total + (awal.get(i) akhir.get(i)) * (awal.get(i) akhir.get(i));
6. Return Math.sqrt(total)
NaiveNL(double,
Mendeteksi sebuah
1. Deklarasi
double)
data dinyatakan
jumlah_tetangga=0
sebagai outlier atau
2. jumlahData = vertex.length
tidak
3. selama i<jumlahData
4. jumlah_tetangga=0
5. selama j<jumlahData,
lakukan pengecekan:
6. jika
matrix[i][j]&&i!=j&&matri
ks[i][j] <=D benar lakukan
pengecekan apakah jumlah
tetangga ==m+1 jika benar
break.
7. Jika jumlah_tetangga <
63
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
displayOutlier(dou
ble,double,String,
JTable,String)
Menampilkan hasil
deteksi outlier
beserta
keterangannya
m+1 maka
vertex[i].setOutlier(true)
8. Jika
jumlah_tetangga>=m+1
maka
vertex[i].setOutlier(false)
1. Deklarasi String
hasil_outlier =””, boolean
isi = false, int jumlah
outlier = 0
2. deklarasi long t1 =
System.nanoTime()
3. panggil method
IndexBased(m, D)
4. deklarasi long t2 =
System.nanoTime();
5. memasukan nilai M, dmin,
asal data, jumlah data ke
dalam atribut hasil_outlier
sesuai parameter input
method
6. inisialisasi i=0
7. selama i<vertex.length,
lakukan pengecekan :
jika vertex[i].isOutlier ==
true, tambahkan
jumlah_outlier dengan 1
lalu tampilkan
vertex[i].getLabelData
7. Inisialisasi j = 0
8. Selama j <
t.getColumnCount()
9. Inisialisasi k = 0
10. Selama k <
t.getRowCount(),lakukan
pengecekan :
Jikavertex[i].getLabelData()
==t.getValueAt(k, 0) maka
data pada baris-k tersebut
ditampilkan sesuai
columnName pada tabel
Data nya
11. Jikaboolean isi = true
tampilkan hasil outlier
12. Jika isi == false, tampilkan
pesan tidak ada hasil outlier
64
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
65
13. Menampilkan jumlah
outlier, dan lama deteksi
outlier = ((t2 - t1) *
java.lang.Math.pow(10, 9))
4.3.7.3 Rincian Algoritma pada Method di Kelas CheckBoxTableModel
Nama method
Fungsi method
Algoritma method
add(int, SeleksiAtribut)
Menambahkan
1.membaca parameter input
atribut yang
nilai a dan field_m
diambil dari tabel 2. menambahkan nilai
data ke dalam
field_m sebagai data di index
tabel atribut
ke-a ke dalam list lfm
removeRow()
Menghapus nama 1. Buat array list dengan
atribut yang yang
nama s
telah dihapus dari 2. Selama seleksi < lfm
tabel data pada
terpenuhi , lakukan cek
tabel seleksi
atribut yang akan dihapus
atribut
terpilih. Jika
!seleksi.getPilih=true
maka nilai seleksi
ditambahkan ke list s
3. nilai lfm = s
removeRow2()
Menghilangkan
1. Buat array list dengan
isi tabel seleksi
nama s
atribut apabila
2. Selama seleksi <lfm
akan dimasukan
terpenuhi , lakukan cek
data baru (pada
atribut mana yang tidak
Halaman Utama)
dipilih untuk dihapus.
Jika
!seleksi.getPilih()=true
maka nilai seleksi atribut
dihapus dari list s
3. nilai lfm = s
4.3.7.4 Rincian Algoritma pada Method di Kelas DatabaseController
Nama method
Fungsi
Algoritma method
method
tampilTableOracle(
Menampilkan
1. Buat kueri menampilkan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Connection)
tampilTableSQL(
Connection)
tampilIsiTable(
Connection,String)
daftar tabel
pada basisdata
Oracle sesuai
tabel yang ada
akun yang
dimasukkan
pengguna
Menampilkan
daftar tabel
pada basisdata
mySQL sesuai
tabel yang ada
pada akun
yang
dimasukkan
pengguna
Menampilkan
isi tabel
berdasarkan
tabel yang
dipilih
pengguna
2.
3.
1.
2.
3.
1.
2.
3.
daftar tabel dalam basisdata
Oracle dengan sintaks :
select * from user_tables
Melakukan eksekusi kueri
Mengembalikan nilai
result (ResultSet) yang
berisi daftar tabel yang ada
pada basisdata Oracle
Buat kueri menampilkan
daftar tabel dalam basisdata
mySQL dengan sintaks :
show tables
Melakukan eksekusi kueri
Mengembalikan nilai
result (ResultSet) yang
berisi daftar tabel yang ada
pada basisdata mySQL
Buat kueri menampilkan
data dari tabel dalam
basisdata dengan sintaks :
“select * from”
+namaTabel (sesuai pilihan
pengguna)
Melakukan eksekusi kueri
Mengembalikan nilai
result (ResultSet) yang
berisi data isi tabel sesuai
parameter “namaTabel”
pada kueri
4.3.7.5 Rincian Algoritma pada Method di Kelas DiagramBatang
Nama method
Fungsi method
Algoritma method
Menampilkan
1. Membaca paramater
tampil(int[][],
grafik distribusi
input (array int v,
String[][], String[][])
per atribut sesuai
array String n , dan
pilihan pengguna
array String t)
2. Inisialisasi i=0
3. Selama i <n.length
lakukan
data.setValue(v[i][1],
n[i][0], t[i][0])
4. createBarChart3D
selama langkah 4
terpenuhi
66
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
67
4.3.7.6 Rincian Algoritma pada Method di Kelas HalamanUtama
Nama method
Fungsi method
Algoritma method
tampilIsiDataBasisdata(Da Membaca tabel
1. Ambil isi tabel dari
tabaseConnection
conn, yang dipilih pada
basis data dengan
String namaTabel)
basisdata dan
melalui method
menampilkan isi
tampilIsiTable(conn.g
datanya ke dalam
etConnection(),
tabel data
namaTabel)
2. buat vector baru
columnName dan data
3. Inisialisasi nilai i = 1
4. Selama i <=
columnCount benar,
columnName diisi
dengan nama kolom
ke i yang didapat dari
basisdata melalui
method
getColumnName
5. Selama rs.next benar
lakukan langkah 6-9
6. buat vector data2
7. Inisialisasi nilai i = 1,
8. Selama i <=
columnCount benar,
data2 diisi dengan
data pada setiap baris
di kolom ke i
9. Tambahkan data2 ke
dalam data, lalu
kembali ke langkah 5
10. Mengatur model tabel
data nama kolom dari
vector columnNames
dan data dari vector
data
11. Inisialisasi nilai i = 0
12. Selama i <
model.getColumnCou
nt() benar, lanjutkan
ke langkah 13
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
pilihDB()
68
13. Inisialisasi nilai j = 0
14. Selama j <
model.getRowCount()
benar, cek i==0 jika
benar lanjut ke
langkah 15, jika salah
ke langkah 16
15. Jika
model.getValueAt(j, i)
== null, tampilkan
pesan label data tidak
lengkap, i =
model.getColumnCou
nt() – 1,
this.dispose() lalu
break;
16. Jika
model.getValueAt(j, i)
== null atau
!model.getValueAt(j,
i).toString().matches("
[0-9.]*")
atau
model.getValueAt(j,
i).toString().matches("
[.]*") benar, maka
tampilkan pesan data
tidak lengkap lalu i =
model.getColumnCou
nt() – 1 dan break;
17. i++ lalu ke langkah 11
18. insialisasi i=0
19. selama
i<model.getColumnCo
unt benar tambahkan
nama kolom ke dalam
cb_tabel
20. Atur tabel
dataPreprocessTable
Menanggil kelas
1. Buat objek pilih_db
HalamanPilihDatab
dari kelas Halaman
ase
PilihDatabase
2. Objek pilih_db
memanggil method
setVisible()
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
submitData()
distribusiAtribut()
pilihFile()
69
Memasukan data
1. Ambil model dari tabel
pada tabel data di
preprocess dengan
tabbed pane
method getModel(),
Preprocess ke tabel
lalu simpan ke variabel
data pada tabbed
tableModel
paneDeteksi
2. Jika
Outlier
tableModel.getColumn
Count() = = 0 maka
data belum
dimasukkan
3. Jika tidak, isi
tableDeteksiOutlier
sesuai tableModel
4. Tampilkan tabel pada
tabel Deteksi pada
tabbed pane Deteksi
Outlier dengan
jTabbedPane1.setSelec
tedComponent(deteksi
Panel) dan
jTabbedPane1.setEnab
ledAt(1, true);
Menampilkan
1. Buat List bertipe data
distribusi per
String dengan nama
atribut berdasar
daftar_atribut
nama kolom pada
2. Inisialisasi nilai i=1
tabel data
3. Selama
i<dataPreprocessTable.
getColumnCount benar
ini daftar_atribut
dengan
dataPreprocessTable.g
etColumnName(i)
4. Mengirim nilai
daftar_atribut dan
dataPreprocessTable
ke
HalamanDistribusiAtri
but untuk selanjutnya
diproses disana
Menampilkan
1. Menampilkan kotak
kotak dialog untuk
dialog Open File
memilih file .xls
2. nama_file menangkap
atau .csv lalu
nama file terpilih
membaca file
3. potong_nama_file =
tersebut dan
nama_file.split("\\.");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
menampilkannya
ke dalam tabel data
updateCellWidth(JTable)
Mengatur ukuran
lebar kolom pada
tabel data agar
disesuaikan dengan
ukuran karakter isi
kolom yang paling
panjang
adjustJTableRowSizes
(JTable)
Mengatur ukuran
baris pada tabel
data
70
4. Jika
potong_nama_file[1].e
quals("xls") lakukan
langkah pada algoritma
pilih file xls (di bawah
tabel method
HalamanTampilTabel)
5. Jika
potong_nama_file[1].e
quals("xls")csv
lakukan langkah pada
tabel pilih file .csv (di
bawah tabel method
HalamanTampilTabel)
6. Jika tidak keduanya
(bukan file .xls dan csv
yang dipilih) ,
tampilkan pesan
peringatan
1. panggil method
adjustJTableRowSizes
(table)
2. inisialisasi nilai i = 0
3. selama i <
table.getColumnCount
() panggil method
adjustColumnSizes(t,i,
2)
1. Inisialisasi nilai row
=0
2. Selama row <
jTable.getRowCount()
lakukan ke langkah 3
3. int maxHeight = 0
4. inisialisasi column = 0
5. Selama column <
jTable.getColumnCou
nt(),
bandingkan tinggi
baris ke-row dan
kolom ke-column
dengan maxHeight
lalu masukan ke
dalam maxHeight
6. Buat tinggi baris kerow dengan method
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
adjustColumnSizes(JTable
,int,int)
Mengatur ukuran
kolom pada tabel
data
1.
2.
3.
4.
5.
prosesDeteksi()
Menerima input M
dan dmin serta data
untuk diproses
pencarian outlier
nya
71
jTable.setRowHeight(
row, maxheight) dan
kembali ke langkah 2
TableCellRenderer
renderer =
col.getHeaderRendere
r()
Jika renderer = = null
maka renderer =
table.getTableHeader(
).getDefaultRenderer(
)
inisialisasi nilai r = 0
dan width =
comp.getPreferredSiz
e().width
Selama r <
table.getRowCount,
lebar kolom pada
baris ke-r bernilai
currentWidth yang
diambil dari nilai
maksimum antara
width dan
currentWidth dan
dimasukan dalam nilai
width
Buat ukuran lebar
kolom kolom dengan
col.setPreferredWidth
(width) lalu
col.setWidth(width)
1. Jika nilai M atau dmin
kosong, lakukan
pengisian ulang kedua
parameter tersebut
2. Jika nilai M dan dmin
isi, lanjutkan ke
langkah 3
3. Jika nilaiMdan dmin
cocok dengan pola [09.]* lakukan langkah 4
4. Inisialisasi i=0
5. Selama i<baris,
lakukan langkah 6-9
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
cek_atribut_hapus(String,
List<String>)
Mengecek nama
atribut yang akan
dihapus dari tabel
seleksi atribut
cek_atribut_kolom(String,
Vector)
Mengecek nama
atribut yang tidak
dihapus dari tabel
data
72
6. Buat arraylist dengan
nama data_nilai
7. Insialisasi j=0
8. Selama j<kolom
lakukan pengecekan
jika j==0 maka label
diisi dengan
tableModel.getValueA
t(i,j)
Jika tidak tambahkan
tableModel.getValueA
t(i, j).toString() ke
dalam variabel data
nilai
9. addVertex(label,data_n
ilai)
10. Inisialisasi i=0
11. Selama i<baris lakukan
langkah 12-13
12. Inisialisasi j=0
13. Selama j<baris, jika
i!=j lakukan addEdge
14. hasilDeteksiTextArea
diisi dengan hasil
deteksi outlier dengan
memanggil method
displayOutlier pada
kelas Graph
1. boolean cek = false
2. inisialisasi nilai i = 0
3. selama i <
hapus_atribut.size()
maka ke langkah 4,
jika kondisi salah
kelangkah 5
4. Jika
hapus_atribut.get(i).eq
uals(atribut), maka
cek=true
5. kembalikan nilai cek=
false
1. boolean cek = false
2. inisialisasi nilai i = 0
3. selama i
<kolom.size() maka
ke langkah 4, jika
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
hapusAtribut()
Menghapus atribut
tabel data sesuai
atribut yang dipilih
pengguna
73
kondisi salah
kelangkah 5
4. Jika
kolom.get(i).equals(at
ribut), maka cek=true
5. kembalikan nilai cek
= false
1. buat list bernama
hapus_seleksi
2. inisialisasi nilai i = 0
3. selama i <
cb_table.getRowCoun
t, lakukan
pengecekan langkah
ke 4
4. Jika
cb_table.getValueAt(i,
1).equals(true),
tambah kan nilai
cb_table.getValueAt(i,
0) ke dalam atribut
hapus_seleksi
5. int kolom=
model.getColumnCou
nt();
int baris =
model.getRowCount()
;
6. buat vector baru
namaKolom dan
isiData
7. inisialisasi nilai k = 0
8. selama k<
cb_table.getRowCoun
t, lakukan pengecekan
ke langkah 9
9. Jika method
cek_atribut_hapus(cb_
table.getValueAt(k,0).
toString,
hapus_atribut)= =
false maka tambahkan
cb_table.getValueAt(k
,0) ke
10. inisialisasi a = 0
11. Selama a< baris, buat
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
batalTandaiSemuaAtribut(
)
tandaiSemuaAtribut()
Menghapus tanda
centang pada
semua kolom Pilih
nama atribut pada
tabel seleksi atribut
Memberi tanda
centang pada
semua kolom pilih
nama atribut pada
tabel seleksi atribut
74
vector baru satu_baris
lalu ke langkah 12
12. inisialisasi b = 0
13. Selama b < kolom ,
lalu lakukan
pengecekan ke
langkah 14
14. Jika method
cek_atribut_kolom(m
odel.getColumnName
(b).toString,
namaKolom) == true
maka
model.getValueAt(a,b
) ditambahkan ke
variabel satu_baris
15. satu_baris
ditambahkan pada
variabel isiData, lalu
kembali ke langkah 8
16. Mengeset model tabel
preprocess dengan
nama kolom dengan
vector namaKolom
dan baris dengan
vector isiData
17. Lakukan removeRow
pada tabel
seleksiAtribut sesuai
nama atribut yang
dihapus
1. inisialisasi nilai i = 0
2. selama i <
cb.table.getRowCount
, lakukan
cb_table.setValueAt(f
alse,i,1)
1. inisialisasi i = 0
2. selama i <
cb.table.getRowCount
, lakukan
cb_table.setValueAt(tr
ue,i,1)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
simpanFile()
Menyimpan hasil
deteksi outlier
dalam file .txt atau
.doc
75
1. Buka kotak dialog
Save File
2. Baca lokasi
penyimpanan file
dan disimpan
dalam variabel
filename
3. Membaca format
file yang dipilih
pengguna dengan
fileChooser.getFile
Filter().getDescript
ion() lalu
ditampung dalam
variabel extension
4. Jika extension =
“"Microsoft Word
(*.doc)" maka
format file yang
dipilih “.doc”
5. Jika extension =
"Text Documents
(*.txt)" maka
format file adalah
“.txt”
6. Ambil isi teks pada
hasilDeteksiTextAr
ea.getText() lalu
tampung pada
variabel
hasil_text_area
7. Potong isi
hasil_text_area per
baris dengan
method split("\\n")
8. Tampung isi baris
dari hasil_text_area
ke dalam variabel
array potong_isi
9. Selama i <
potong_isi.length,
ambil nilai
potong_isi ke i,
konversi ke tipe
data String lalu
simpan nilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
76
tersebut
4.3.7.7 Rincian Algoritma pada Method di Kelas HalamanDistribusiAtribut
Nama method
Fungsi method
Algoritma method
tampilAtribut(List<String, Menampilkan nama
1. inisialisasi nilai i =
JTable)
atribut yang ada pada
1
tabel data (pada
2. selama i<
Halaman Utama)
tabel.getColumnC
ount() terpenuhi,
lakukan
penambahan nilai
ke I pada
atributComboBox
yang disesuaikan
nama kolom pada
tabel data
pilihAtributComboBox()
Menampilkan distribusi 1. Buat list dengan
atribut ke dalam tabel
nama isi Data
daftar distribusi atribut 2. Inisialisasi nilai i
=1
3. Selama
i<model.getColum
Count() terpenuhi
lakukan langkah
ke 4
4. Jika atribut pilihan
pengguna =
model.getColumn
Name(i) maka
lakukan
inisialisasi nilai
j=0
5. Selama
j<model.getRowC
ount, maka
massukan seluruh
data pada kolom i
kedalam list
isiData
6. Hapus duplikasi
data pada isiData
dengan
memasukkan
isiData ke dalam
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
lihatGrafik()
Mengirim data atribut
terpilih beserta jumlah
77
HashSet
7. Bersihkan isiData
dengan metode
clear()
8. Masukan isiData
yang telah
dihilangkan
duplikasinya
kedalam isiData =
new
ArrayList(hashSet
)
9. Inisialisasi nilai
k=0
10. Selama
k<isiData.size(),
lakukan
inisialisasi l=0
kemudian
lanjutkan ke
langkah 11
11. Selama l <
model.getRowCou
nt(), jika
isiData.get(k)=
model.getValueAt
(l,i) lakukan
setCount(count+1)
12. Nilai
data[k][0]=isiData
.get(k).toString
Nilai
data[k][l]=Stri
ng.valueOf(get
Count()) lalu
setCount(0)
dan kembalik
ke langkah 10
13. tabelGrafik diisi
dengan data =
array data1 dan
nama kolom =
array
nama_kolom
1. inisialisasi nilai i =
0
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
nya ke kelas Diagram
batang untuk
ditampilkan distribusi
atribut dalam bentuk
diagram batang
78
2. selama i <
row(tabelGrafik.ge
tRowCount()
terpenuhi, ambil
data pada
tabelGrafik kolom
ke-0 ,baris ke-i,
lalu masukkan ke
dalam array data,
baris ke-i, kolom
ke-1 dimasukkan
ke array
jumlah_data dan
baris ke-i, kolom
ke-1 dikonversi ke
nilai integer lalu
dimasukkan ke
array jumlah
3. panggil method
tampil (v,n ,t)
yang ada di kelas
DiagramBatang
4.3.7.8 Rincian Algoritma pada Method di Kelas HalamanPilihDatabase
Nama method
Fungsi method
Algoritma method
pilihDatabase()
Melakukan login ke
1. Jika
basisdata sesuai
dbComboBox.getSelectedIn
masukanp pengguna
dex == 0 lakukan langkah ke
a-c
a. Jika input username atau
password atau url kosong ,
lakukan pengisian kembali
b. Jika input username,
password , dan url tidak
kosong dan benar maka
berhasil login ke basisdata
Oracle pengecekan
dilakukan method
isConnectedOracle(url,
username, password)
c. Tampilkan pesan sukses
lalu tampilkan form
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
79
Halaman TampilTabel. Jika
tidak berhasil, tampilkan
pesan kesalahan
2. Jika
dbComboBox.getSelectedIn
dex == 1 lakukan langkah ke
d-e
d. Jika input username atau
password , nama database
atau url kosong , lakukan
pengisian kembali
e. Jika input username,
password ,nama database
dan url tidak kosong dan
benar maka berhasil login
ke basisdata mySQL
pengecekan dilakukan
method
isConnectedSQL(url +
database, username,
password)
f. Tampilkan pesan sukses
lalu tampilkan form
Halaman Tampil Tabel.
Jika tidak berhasil,
tampilkan pesan kesalahan
4.3.7.9 Rincian Algoritma pada Method di Kelas HalamanTampilTabel
Nama method
Fungsi
Algoritma method
method
tampilTabel(DatabaseCo Menampilkan
1. Jika database == “Oracle”
nnection, String)
daftar tabel
,tampilkan daftar tabel
dalam
dalam basisdata Oracle
basisdata yang
menggunakan method
telah dipilih
tampilTableOracle(conn.ge
pengguna
tConnection()
2. Jika database==”MySQL” ,
tampilkan daftar tabel
dalam basisdata mySQL
menggunakan method
tampilTableMySql(conn.ge
tConnection()
pilihTabel()
Mengirim isi
1. Mengambil nama tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
data dari tabel
dalam
basisdata yang
telah dipilih
pengguna ke
dalam tabel
data pada
Halaman
Utama
80
sesuai pilihan pengguna
melalui atribut
daftarTableComboBox.get
SelectedItem().toString()
2. Mengirim nama tabel
terpilih(daftarTableCombo
Box.getSelectedItem().toSt
ring()) ke dalam kelas
Halaman Utama
Algoritma pilih file xls
1.
2.
3.
4.
Membuat vector baru dengan nama columnNames dan data
Objek workbook berisi Workbook.getWorkbook
Inisialisasi i=0
Selama i<sheet.getColumns() benar , lakukan langkah ke 5-6 , jika salah ke
langkah 7
5. cell diisi dengan sheet.getCell kolom ke i
6. Cell.getContents() ditambahkan ke dalam columnName
7. Inisialisasi j=1
8. Selama j<sheet.getRows benar, lakukan langkah ke 9-13, jika salah ke
langkah 14
9. Buat vector data2
10. Inisialisasi i=0
11. Selama i<sheet.getColumns() benar, lakukan langkah 12
12. cell diisi dengan cell pada baris ke i dan kolom ke j, lalu cell.getContents
dimasukkan ke data2
13. data2 ditambahkan ke data
14. atur tabel preprocess dengan isi baris yang diambil dari data dan kolom dari
columnName
15. inisialisasi i=0
16. selama i<model.getColumnCount benar lanjutkan ke langkah 17 , jika salah
ke langkah 22
17. inisialisasi j=0
18. selama j<model.getRowCount benar, lakukan langkah 19, jika salah j++ ke
langkah 17
19. jika i==0 dan model.getValueAt(j, 0).toString().isEmpty() benar lakukan
langkah 20 jika salah i++ lakukan langkah 15
20. tampilkan peringatan label data kosong i , model.getColumnCount() – 1,
this.dispose(),tampilkan halaman Awal, break
21. Jika model.getValueAt(j, i).toString().isEmpty() atau !model.getValueAt(j,
i).toString().matches("[0-9.]*") atau model.getValueAt(j,
i).toString().matches("[.]*") benar tampilkan Halaman Missing Values jika
salah, i++ kembali ke langkah 15
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
81
22. Inisialisasi i=0
23. Selama i<model.getColumnCount() benar tambahkan nama kolom ke
cb_table
Algoritma Pilih File .csv
1. Membuat vector baru dengan nama columnNames dan data
2. Membaca baris pertama dari file .csv
3. Selama ada cell dengan nilai yg isi,tambahkan setiap nilai pada baris pertama
ke vector columnNames. Jika tidak lanjutkan ke langkah 4
4. Selama baris selanjutnya ada, lanjutkan ke langkah 5 jika tidak ke langkah 6
5. Selama ada cell dengan nilai tertentu, menambahkan setiap nilai cell ke
vector row.
Jika tidak, row ditambahkan ke vector data
6. pindah ke baris berikutnya dan kembali ke langkah 4
7. mengatur model tabel preprocess dengan nama kolom dengan vector
columnNames dan data dengan vector data
8. Inisialisasi nilai i = 0
9. Selama i < model.getColumnCount(), ke langkah 10, jika tidak ke langkah 12
10. Inisialisasi nilai j = 0
11. Selama j < model.getRowCount(), ke langkah 10, jika tidak j++ dan ke
langkah 10
12. model.getValueAt(j, i).toString().isEmpty() true atau !model.getValueAt(j,
i).toString().matches("[0-9.]*") true atau model.getValueAt(j,
i).toString().matches("[.]*") true maka panggil HalamanMissingValues,
i = model.getColumncount() -1 lalu break
Jika false, maka j++ lalu kembali ke langkah 10
13. lalu i++ lalu kembali ke langkah 8
14. Inisialisasi nilai i = 0
15. selama i < model.getColumncount() isikan nama kolom ke cb_table
4.4 Perancangan Antarmuka
Perancangan antarmuka merupakan hal yang penting dalam pembuatan
sistem, hal ini disebabkan karena antarmuka menjadi sarana interaksi
pengguna dengan sistem. Semakin mudah pengguna memahami pemakaian
sistem maka semakin baik rancangan antarmuka yang dimiliki sistem
tersebut. Sistem Pendeteksi Outlier Menggunakan Algoritma Naïve Nested
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
82
Loop memiliki delapan tampilan utama, masing-masing akan dijelaskan satu
per satu sebagai berikut :
1. Tampilan Halaman Awal
Halaman Awal merupakan tampilan awal ketika sistem pertama kali
dijalankan. Halaman ini berisi nama sistem , tahun pembuatan sistem, dan
terdapat tombol „Masuk‟ yang digunakan saat pengguna akan melakukan
proses deteksi outlier.
SISTEM PENDETEKSI OUTLIER
MENGGUNAKAN ALGORITMA i
Masu
k
Universitas Sanata Dharma Yogyakarta
-Copyright 2013-
Gambar 4.12 Tampilan Halaman Awal
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
83
2. Tampilan Halaman Utama
Halaman Utama merupakan halaman dimana fungsi utama dari
sistem pendeteksi outlier ini dilakukan oleh pengguna. Pada halaman utama
terdapat tombol disamping kiri yaitu „Bantuan‟ dan „Keluar‟. Tombol
„Bantuan „ digunakan untuk menuju ke halaman Bantuan , dimana petunjuk
pemakaian program dimuat, sedangkan tombol „Keluar‟ digunakan apabila
pengguna akan mengakhiri pemakaian sistem. Pada Halaman Utama terdapat
tabbed pane Preprocess dan Deteksi Outlier. Pada tabbed pane Preprocess ,
menyediakan fungsi input data yang dapat dilakukan oleh pengguna. Data
yang digunakan sebagai masukan data dapat berasal dari file .xls ,.csv , dan
data dari dalam
tabel di basisdata. Data tersebut selanjutnya akan
dimasukan ke dalam tabel yang ada pada halaman Utama. Selain itu terdapat
juga fungsi seleksi atributdan fungsi lihat distribusi data per atribut. Pada
tabbed pane Deteksi Outlier memuat tampilan dimana pengguna dapat
memasukan nilai parameter yang digunakan sebagai masukan dalam proses
deteksi outlier selanjutnya akan ditampilkan hasil outlier pada JTextArea
yang ada pada tabbed pane ini. Pengguna dapat pula melakukan penyimpanan
outlier ke dalam format file .txt dan .doc dalam tabbed pane Deteksi Outlier.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
84
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
85
SISTEM PENDETEKSI OUTLIER MENGGUNAKAN ALGORITMA NAÏVE NESTED LOOP
Deteksi
Outlier
Preprocess
Bantuan
Keluar
Lokasi File
:
Tabel Data
Pilih File
Atribut 1
Atribut 2
Jumlah data :
126
Atribut 3
Jumlah atribut :
Pilih Database
Atribut 4
4
Seleksi Atribut
Atribut
Pilih
V
Hapus Atribut
Batal Tandai Semua
Atribut
Distribusi Atribut
Tandai Semua Atribut
Submit Data
Gambar 4.13 Tampilan Halaman Awal (Bagian Preprocess)
85
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
SISTEM PENDETEKSI OUTLIER MENGGUNAKAN ALGORITMA NAÏVE NESTED LOOP
Preprocess
Bantuan
Deteksi Outlier
Proses Algoritma Index Based
Keluar
M:
dmin :
Proses
Tabel Data
Jumlah data :
126
Hasil Deteksi Outlier
M = 2,
D =5
Data 1 adalah outlier
Simpan Hasil Outlier
Gambar 4.14 Tampilan Halaman Utama (Bagian Deteksi Outlier)
86
86
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
87
3. Tampilan Halaman Pilih Database
Tampilan berikut ini merupakan tampilan dimana pengguna
memilih basisdata yang akan digunakan dalam hal ini Oracle atau mySQL
kemudian memasukkan username , password , database , dan URL. Jika
berhasil login pengguna akan melihat daftar tabel yang ada pada basisdata
lalu memilihnya untuk selanjutnya dimasukan sebagai
data
dideteksi outlier nya.
Pilih Koneksi Database
Pilih Database :
Username
:
Password
:
Database
:
URL
Oracle
:
OK
Batal
Gambar 4.15 Tampilan Halaman Pilih Database
yang
akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
88
4. Tampilan Halaman Tampil Tabel
Tampilan ini merupakan rancangan tampilan ketika pengguna sudah login
ke dalam basisdata dan memilih tabel yang akan diambil datanya sebagai
masukan ke dalam sistem .
Daftar Tabel :
Pilih
Tabel
Batal
Gambar 4.16 Tampilan Halaman Tampil Tabel
5. Tampilan Halaman Distribusi Atribut
Tampilan ini merupakan tampilan dimana pengguna dapat melihat
distribusi atribut data dengan memilih salah satu atribut dari masukan data
lalu melihat isi data beserta jumlah datanya pada tabel Daftar Distribusi
Atribut. Kemudian jika pengguna akan melihat distribusi data per atribut
dalam bentuk diagram batang, pengguna dapat menekan tombol „Lihat
Grafik‟
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
DaftarAtribut :
Tabel Daftar Distribusi
Atribut
Atribut
Lihat
Grafik
Jumlah Data
Keluar
Gambar 4.17 Tampilan Halaman Distribusi Atribut
6. Tampilan Halaman Konfirmasi Keluar
Tampilan berikut ini merupakan tampilan halaman konfirmasi keluar yang
muncul setelah pengguna menekan tombol „Keluar‟ pada Halaman Utama
dan memunculkan pernyataan apakah pengguna benar-benar akan keluar dari
sistem atau tidak.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
90
Apakah Anda Yakin Untuk Keluar Dari Sitem
?
YA
TIDAK
Gambar 4.18 Tampilan Halaman Konfirmasi Keluar
7.
Tampilan Halaman Bantuan
Tampilan berikut merupakan tampilan halaman bantuan yang
muncul setelah pengguna menekan tombol „Bantuan‟ pada Halaman Utama
dan memuat petunjuk penggunaan Sistem Pendeteksi Outlier Menggunakan
Algoritma Naïve Nested Loop dengan langkah-langkah rinci untuk masingmasing fungsi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
SISTEM PENDETEKSI OUTLIER MENGGUNAKAN
ALGORITMA NAÏVE NESTED LOOP
Petunjuk Penggunaan
Petunjuk Preprocessing Data
Petunjuk Proses Deteksi Outlier
Kembali
Gambar 4.19 Tampilan Halaman Bantuan
91
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB V
IMPLEMENTASI PENAMBANGAN DATA
Pada bab ini berisi tentang implementasi sistem yang telah selesai
dibangun berdasarkan pada analisis dan perancangan sistem dalam bab
sebelumnya. Implementasi aplikasi ini dilakukan dengan menggunakan bahasa
pemrograman Java dan perangkat lunak NetBeans IDE 6.9.1 pada komputer
dengan spesifikasi processor Intel Dual Core 2.2 Ghz, memori 2.00 GB, dan
harddisk 320 GB.
5.1 Implementasi Antarmuka
Sistem Pendeteksi Outlier Menggunakan Algoritma Naïve Nested Loop
telah diimplementasikan menjadi sebuah aplikasi yang siap digunakan, maka pada
bab ini akan ditampilkan antarmuka dari sistem tersebut.
5.1.1 Implementasi Halaman Awal
Halaman Awal merupakan halaman yang pertama kali muncul ketika
aplikasi dijalankan. Pengguna masuk ke dalam Sistem Deteksi Outlier
Menggunakan Algoritma Naïve Nested Loop dengan menekan tombol „Masuk‟
seperti yang ada pada gambar 5.1 di bawah ini :
92
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
93
Gambar 5.1 Antarmuka Halaman Awal
5.1.2 Implementasi Halaman Utama
Halaman Utama muncul setelah pengguna menekan tombol „Masuk‟.
Halaman ini merupakan halaman inti fungsi-fungsi
dilakukan pada aplikasi
Sistem Deteksi Outlier Menggunakan Algoritma Naïve Nested Loop. Pada
Halaman Utama terdapat dua buah tabbed pane , yaitu Preprocess dan Deteksi
Outlier. Di samping kiri tabbed pane tersebut terdapat tombol „Bantuan‟ dan
tombol „Keluar‟.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
94
Gambar 5.2 Antarmuka Halaman Utama (tabbed pane Preprocess)
Gambar 5.3 Antarmuka Halaman Utama (tabbed pane Deteksi Outlier)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
95
Pada tabbed pane Preprocess pengguna dapat memasukkan data yang
berekstensi .xls , .csv , dan data yang berasal dari tabel dalam basisdata. Jika
pengguna ingin mengolah data .xls maka pengguna menekan tombol „Pilih
Data‟ lalu memilih data yang akan diolah seperti pada gambar 5.4.
Gambar 5.4 Kotak Dialog Saat Memilih File .xls
Setelah file .xls dipilih maka data tersebut akan ditampilkan dalam tabel
seperti tampak pada antarmuka di bawah ini :
Gambar 5.5 Antarmuka Halaman Utama (data file .xls tertampil)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Hal yang sama dilakukan jika pengguna ingin mengolah data .csv
96
maka
pengguna menekan tombol „Pilih Data‟ lalu memilih data yang akan diolah
seperti pada gambar 5.6.
Gambar 5.6 Kotak Dialog Saat Memilih File .csv
Setelah file .csv dipilih maka data tersebut akan ditampilkan dalam tabel seperti
tampak pada antarmuka di bawah ini :
Gambar 5.7 Antarmuka Halaman Utama (data file .csv tertampil)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
97
Pada Halaman Utama tabbed pane Preprocess juga terdapat fungsi seleksi
atribut. Fungsi ini dilakukan ketika pengguna telah memasukan data dan akan
memilih atribut tertentu yang digunakan dalam perhitungan deteksi outlier.
Pengguna memberi tanda centang pada kolom Pilih yang terdapat pada tabel
Seleksi Atribut lalu menekan tombol Hapus Atribut. Berikut tampilan
antarmuka ketika pengguna telah memasukan data dan belum melakukan
seleksi atribut. Jika pengguna akan menghapus semua atribut, harus terlebih
dahulu menekan tombol „Tandai Semua Atribut‟ sebelum menekan tombol
„Hapus Atribut‟. Jika akan membatalkan penghapusan semua atribut ,
pengguna dapat menekan tombol „Batal Tandai Semua‟. Berikut ini merupakan
antarmuka Halaman Utama sebelum pengguna melakukan fungsi seleksi
atribut.
Gambar 5.8 Antarmuka Halaman Utama (sebelum dilakukan fungsi Seleksi
Atribut)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
98
Gambar 5.9 Antarmuka Detail Fungsi Seleksi Atribut (pada Halaman
Utama)
Gambar 5.9 merupakan antarmuka saat pengguna memilih atribut yang
akan dihilangkan dari perhitungan deteksi outlier dalam hal ini atribut nil4
dan nil5. Setelah memberi tanda pada kolom Pilih, pengguna menekan
tombol „Hapus Atribut‟. Berikut ini adalah tampilan antarmuka setelah atribut
nil4 dan nil5 dihilangkan,seperti tampak pada gambar 5.10 kedua atribut
tersebut telah dihilang pada JTable.
Gambar 5.10 Antarmuka Halaman Utama (setelah dilakukan fungsi Seleksi
Atribut)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
99
Berikutnya adalah fungsi deteksi outlier yang ada pada tabbed pane
Deteksi Outlier , seperti tampak pada antarmuka di Halaman Utama di bawah
ini :
Gambar 5.11 Antarmuka Halaman Utama (tabbed pane Deteksi Outlier)
Antarmuka tersebut akan muncul ketika pengguna telah memasukan data
yang akan dideteksi outlier nya melalui fungsi yang telah tersedia pada Halaman
Utama tabbed pane „Preprocess‟ dan kemudian menekan tombol „Submit Data‟
untuk masuk ke tabbed pane Deteksi Outlier. Ketika akan memulai deteksi outlier
, pengguna memasukkan nilai parameter M dan dmin kemudian menekan tombol
„Proses‟ dan hasil deteksi outlier akan tertampil pada JText Area di bawah tabel
data seperti tampak pada gambar 5.11.
Setelah melakukan proses deteksi outlier , pengguna dapat menyimpan
hasilnya dengan menekan tombol „Simpan Hasil Outlier‟ pada Halaman Utama
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
100
tabbed pane Deteksi Outlier. Berikut ini merupakan kotak dialog saat pengguna
akan melakukan penyimpanan hasil outlier :
Gambar 5.12 Kotak Dialog Simpan Hasil Outlier
Sistem ini menyediakan fungsi penyimpanan hasil deteksi outlier dalam
dua format file yaitu file .doc dan .txt. Untuk menyimpan hasil deteksi outlier
pengguna memilih lokasi penyimpanan, memasukkan nama file, dan memilih
format file yang akan disimpan. Kemudian ketika file berhasil disimpan akan
muncul konfirmasi bahwa penyimpanan berhasil dilakukan, seperti tampak pada
gambar 5.13 di bawah ini :
Gambar 5.13 Pesan Ketika Proses Penyimpanan Hasil Outlier Berhasil
Dilakukan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
101
5.1.3 Implementasi Halaman Distribusi Atribut
Antarmuka ini merupakan antarmuka yang digunakan untuk melihat
distribusi atribut dalam bentuk grafik diagram batang dari detail atribut yang
telah dipilih oleh pengguna. Halaman ini akan muncul ketika pengguna telah
menekan tombol „Distribusi Atribut‟ pada Halaman Utama tabbed pane
Preprocess.Atribut tersebut diperoleh dari masukan data yang akan diproses
dalam proses deteksi outlier. Berikut ini merupakan tampilan antarmuka
halaman distribusi atribut yang terlihat pada gambar 5.14.
Gambar 5.14 Antarmuka Halaman Distribusi Atribut
Pengguna memilih salah satu nama atribut pada combobox
„Daftar
Atribut‟ kemudian jumlah data untuk masing-masing range yang ada di dalam
atribut tersebut muncul pada Tabel Daftar Distribusi Atribut. Selanjutnya,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
102
pengguna menekan tombol „Lihat Grafik‟ untuk memulai proses melihat grafik
diagram batang distribusi atribut. Pada gambar 5.15 terlihat grafik distribusi untuk
atribut ips1 seperti yang telah dipilih pada Halaman Distribusi Atribut.
Gambar 5.15 Antarmuka Grafik Distribusi Atribut
5.1.4 Implementasi Halaman Pilih Database
Halaman Pilih Database merupakan halaman
yang digunakan ketika
pengguna mengambil data pada tabel dalam basisdata. Halaman ini muncul
setelah pengguna menekan tombol „Pilih Database‟ yang terdapat pada
Halaman Utama tabbed pane Preprocess. Tampilan antarmuka dari halaman
pilih database dapat dilihat pada gambar 5.16 di bawah ini:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
103
Gambar 5.16 Antarmuka Halaman Pilih Database
Pengguna dapat memilih basisdata yang tersedia yaitu menggunakan
Oracle atau
MySQL. Ketika sudah memilih basisdata,
pengguna dapat
memasukan username , password , database, dan URL seperti tampak pada
gambar 5.17.
Gambar 5.17 Antarmuka Halaman Pilih Database (Setelah pengguna
memilih basisdata)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
104
Setelah pengguna memasukkan username , password , database, dan URL
dengan benar maka muncul konfirmasi bahwa koneksi berhasil dilakukan yang
tampak pada gambar 5.18 di bawah ini :
Gambar 5.18 Pesan Koneksi Berhasil
5.1.5 Implementasi Halaman Tampil Tabel
Halaman Tampil Tabel merupakan antarmuka yang muncul ketika
pengguna memilih masukan data yang berasal dari data pada tabel dalam
basisdata dan diasumsikan bahwa pengguna sudah login terlebih dahulu
menggunakan akun basisdata yang dimiliki. Setelah berhasil login,
pengguna dapat melihat daftar tabel yang ada dalam basisdata dan memilih
salah satu dari tabel tersebut dan menekan tombol „Pilih Tabel‟. Berikut
merupakan tampilan antarmuka ketika pengguna akan memilih tabel dari
basisdata :
Gambar 5.19 Antarmuka Halaman Tampil Tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
105
Data dari tabel dalam basisdata selanjutnya akan ditampilkan pada
Halaman Utama seperti tampak pada gambar berikut ini :
Gambar 5.20 Antarmuka Halaman Utama Beserta Data dari Tabel dalam
Basisdata
5.1.6 Implementasi Halaman Bantuan
Halaman Bantuan merupakan antarmuka yang berisi mengenai
petunjuk penggunaan sistem. Halaman Bantuan dapat diakses dengan
menekan tombol „Bantuan‟ pada Halaman Utama. Berikut merupakan
tampilan antarmuka dari Halaman Bantuan :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
106
Gambar 5.21 Antarmuka Halaman Bantuan
5.1.7 Implementasi Antarmuka Halaman Missing Values
Halaman Missing Values adalah halaman peringatan ketika data
yang dimasukan pengguna dalam hal ini masukan data file .xls
mengandung baris kosong dan data yang dimasukkan dalam
perhitungan mengandung data yang bukan angka. Sistem akan secara
otomatis mengganti data kosong dan/atau data bukan angka menjadi
bernilai 0 jika pengguna menekan tombol „Ya‟. Sedangkan, ketika
pengguna menekan tombol „Tidak‟ maka pengguna mengganti data
tersebut secara manual pada file asli.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
107
Gambar 5.22 Antarmuka Halaman Missing Values
5.1.8 Implementasi Halaman Konfirmasi Keluar
Halaman konfirmasi keluar merupakan halaman konfirmasi ketika
pengguna akan mengakhiri pemakaian sistem pendeteksi outlier ini.
Terdapat konfirmasi kepada pengguna apakah pengguna benar-benar akan
keluar dari sistem atau tidak. Halaman konfirmasi keluar muncul ketika
pengguna menekan tombol „Keluar‟ yang terdapat pada Halaman Utama.
Gambar 5.23 Antarmuka Halaman Konfirmasi Keluar
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
108
Berikut ini merupakan pesan yang muncul ketika pengguna benarbenar telah keluar dari sistem.
Gambar 5.24 Pesan Berhasil Keluar dari Sistem
5.1.9 Implementasi Pengecekan Masukan
Sistem pendeteksi outlier ini juga menyediakan fungsi error
handling untuk mengatasi kesalahan pengguna mulai dari memasukan
input data , pemrosesan data, sampai saat proses deteksi outlier.
Berikut ini merupakan error handling yang tersedia dalam Sistem
Pendeteksi Outlier Menggunakan Algoritma Naïve Nested Loop :
1. Tampilan pesan berikut ini muncul ketika pengguna telah
menekan tombol „Pilih File‟ pada Halaman Utama akan tetapi file
yang dipilih tidak berformat .xls atau .csv.
Gambar 5.25 Pesan Kesalahan (1)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
109
2. Ketika pengguna telah menekan tombol Pilih Database ( pada
Halaman Utama) lalu memilih database Oracle (pada Halaman
Pilih Database) akan tetapi terdapat username, password, atau
URL
yang belum terisi maka sistem mengeluarkan pesan
peringatan seperti yang tampak pada gambar 5.26 dibawah ini :
Gambar 5.26 Pesan Kesalahan (2)
3. Ketika pengguna telah menekan tombol Pilih Database ( pada
Halaman Utama) lalu memilih database Oracle (pada Halaman
Pilih Database) akan tetapi terdapat username, password, atau
URL yang salah maka sistem mengeluarkan pesan peringatan
seperti yang tampak pada gambar 5.27 dibawah ini :
Gambar 5.27 Pesan Kesalahan (3)
4.
Ketika pengguna telah menekan tombol Pilih Database ( pada
Halaman Utama) lalu memilih database mySQL (pada Halaman
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
110
Pilih Database) akan tetapi terdapat username,password,database
atau URL yang kosong
maka sistem mengeluarkan pesan
peringatan seperti yang tampak pada gambar 5.28 dibawah ini :
Gambar 5.28 Pesan Kesalahan (4)
5. Ketika pengguna telah menekan tombol Pilih Database ( pada
Halaman Utama) lalu memilih database mySQL (pada Halaman
Pilih Database) akan tetapi terdapat username,password,database
atau URL yang salah
maka sistem mengeluarkan pesan
peringatan seperti yang tampak pada gambar 5.29 dibawah ini :
Gambar 5.29 Pesan Kesalahan (5)
6. Ketika pengguna menekan tombol Proses pada tabbed pane
Deteksi Outlier (pada Halaman Utama) akan tetapi ada salah satu
nilai parameter M atau dmin yang kosong maka muncul pesan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
111
peringatan bahwa nilai M atau dmin tidak boleh kosong seperti
tampak pada gambar 5.30.
Gambar 5.30 Pesan Kesalahan (6)
7. Ketika data yang diambil dari file .csv atau dari dalam tabel
basisdata tidak lengkap dan./atau mengandung karakter bukan
angka maka pengguna harus memeriksa kembali data tersebut dan
muncul peringatan seperti yang tertera pada gambar 5.31 (ketika
masukan data .csv) dan gambar 5.32 (ketika masukan data berasal
dari basisdata).
Gambar 5.31 Pesan Kesalahan (7)
Gambar 5.32 Pesan Kesalahan (8)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
112
8. Ketika label data pada file .xls dan data dari tabel pada basisdata
kosong maka akan muncul peringatan seperti tertera pada gambar
5.33.
Gambar Pesan Kesalahan 5.33 (9)
5.2 Implementasi Dataset yang Akan Diuji
Data yang akan digunakan sebagai masukan dalam proses deteksi
outlier dan pengujian pada Sistem Pendeteksi Outlier Menggunakan
Algoritma Naïve Nested Loop ini adalah data akademik mahasiswa
program studi Teknik Informatika Universitas Sanata Dharma tahun
angkatan 2007-2008. Sebagian dari data tersebut, yaitu data akademik
mahasiswa angkatan tahun 2007 yang diterima melalui jalur tes telah
dihitung secara manual menggunakan Microsoft Excel dan selanjutnya
hasil perhitungan tersebut dibandingkan dengan hasil deteksi outlier yang
diperoleh dari sistem. Selain itu, untuk memastikan bahwa data hasil
deteksi yang diperoleh dari perhitungan manual dan sistem benar-benar
bermakna sebagai outlier dibanding data lain, maka hasil perhitungan
manual dan hasil deteksi sistem akan dianalisa oleh Kepala Program
Studi Teknik Informatika selaku pemilik data.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
113
5.3 Implementasi Kelas
Pada bagian ini akan dibahas hasil dari implemetasi kelas beserta
dengan algoritma yang telah dibuat sesuai dengan bab perancangan.
Berikut merupakan tabel untuk seluruh daftar kelas yang telah
diimplementasikan :
Tabel 5.1 Tabel Implementasi Kelas
No Nama Kelas
Nama File Fisik
Nama File Executable
1
DatabaseConnection
DatabaseConnection.java
DatabaseConnection.class
2
Graph_NaiveNL
Graph_ NaiveNL.java
Graph_ NaiveNL.class
3
Vertex_ NaiveNL
Vertex_ NaiveNL.java
Vertex_ NaiveNL.class
4
SeleksiAtribut
SeleksiAtribut.java
SeleksiAtribut.class
5
CheckBoxTableModel
CheckBoxTableModel.java
CheckBoxTableModel.class
6
DatabaseController
DatabaseController.java
DatabaseController.class
7
DiagramBatang
DiagramBatang.form
DiagramBatang.class
8
HalamanUtama
HalamanUtama.form
HalamanUtama.class
9
HalamanDistribusiAtribut
HalamanDistribusiAtribut.
HalamanDistribusiAtribut.class
Form
10
HalamanPilihDatabase
HalamanPilihDatabase.java
HalamanPilihDatabase.class
11
HalamanTampilTabel
HalamanTampilTabel.form
HalamanTampilTabel.class
12
HalamanAwal
HalamanAwal.form
HalamanAwal.class
13
HalamanBantuan
HalamanBantuan.form
HalamanBantuan.class
14
HalamanMissingValues
HalamanMissingValues.
HalamanMissingValues.class
Form
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15
HalamanKonfirmasiKeluar HalamanKonfirmasiKeluar.
114
HalamanKonfirmasiKeluar.class
Form
Untuk listing program dari implementasi kelas yang akan dipaparkan
dalam bab ini memuat atribut dan method dari kelas yang berkaitan
dengan algoritma untuk fungsi-fungsi utama pada sistem pendeteksi
outlier.
5.3.1 Implementasi Kelas DatabaseConnection
Berikut merupakan implementasi dari atribut dan method pada
kelas
DatabaseConnection
yang telah
dibuat
sesuai
dengan
perancangannya. Dalam kelas ini terdapat method getConnectionSQL,
isConnectedSQL, getConnectionOracle , isConnectedOracle
yang
berkaitan dengan fungsi pengambilan masukan data dari tabel dalam
basisdata.
public class DatabaseConnection {
private String url;
private String username;
private String password;
private Connection connection = null;
public Connection getConnectionSQL(String url, String user, String
passw) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
setConnection(DriverManager.getConnection(url, user, passw));
System.out.println("koneksi berhasil");
} catch (Exception ex) {
System.out.println("message: " + ex.getMessage());
}
return getConnection();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
115
}
public boolean isConnectedSQL(String url, String user, String passw) {
if (getConnectionSQL(url, user, passw) != null) {
return true;
} else {
return false;
}
}
public Connection getConnectionOracle(String url, String user, String
passw) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
setConnection(DriverManager.getConnection(url, user, passw));
System.out.println("koneksi berhasil");
} catch (Exception ex) {
System.out.println("message: " + ex.getMessage());
}
return getConnection();
}
public boolean isConnectedOracle(String url, String user, String passw)
{
if (getConnectionOracle(url, user, passw) != null) {
return true;
} else {
return false;
}
}
}
Listing Program 5.1 Kelas DatabaseConnection.java
5.3.2 Implementasi Kelas Graph_NaiveNL
Berikut merupakan implementasi dari atribut dan method pada
kelas Graph_NaiveNL yang dibuat sesuai dengan perancangannya.
Kelas ini merupakan kelas yang memuat perancangan struktur data
yang berkaitan dengan algoritma seperti implementasi matriks dua
dimensi dan graf. Selain itu, terdapat method utama yang memuat cara
kerja algoritma Naïve Nested Loop yaitu method “NaiveNL”.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
116
public class Graph_NaiveNL {
private double[][] matrix;
private Vertex_NaiveNL[] vertex;
private int size = 0;
public Graph_NaiveNL(int a) {
matrix = new double[a][a];
vertex = new Vertex_NaiveNL[a];
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
matrix[i][j] = -1;
matrix[j][i] = -1;
}
matrix[i][i] = 0;
}
}
public void addVertex(String label, List<Double> nilai) {
vertex[size++] = new Vertex_NaiveNL(label, nilai);
}
public void addEdge(int asal, int tujuan, double jarak) {
matrix[asal][tujuan] = matrix[tujuan][asal] = jarak;
}
public double euclideanDistance(int asal, int tujuan) {
List<Double> awal = new ArrayList<Double>();
List<Double> akhir = new ArrayList<Double>();
awal = vertex[asal].getNilai();
akhir = vertex[tujuan].getNilai();
double total = 0;
for (int i = 0; i < awal.size(); i++) {
total = total + (awal.get(i) - akhir.get(i)) * (awal.get(i) - akhir.get(i));
}
return Math.sqrt(total);
}
public void NaiveNL(double m, double D) {
double jumlah_tetangga = 0;
double jumlahData = vertex.length;
System.out.println("Jumlah Data :" + jumlahData);
System.out.println("Nilai M : " + m);
System.out.println("Nilai D : " + D);
for (int i = 0; i < jumlahData; i++) {
jumlah_tetangga = 0;
for (int j = 0; j < jumlahData; j++) {
if (matrix[i][j] > 0 && i != j && matrix[i][j] <= D) {
if (jumlah_tetangga == m + 1) {
break;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
117
}
jumlah_tetangga++;
}
}
if (jumlah_tetangga < m + 1) {
vertex[i].setOutlier(true);
} else if (jumlah_tetangga >= m + 1) {
vertex[i].setOutlier(false);
}
}
}
public String displayOutlier(Double m, Double D, String jml_baris,
JTable t,String path) {
String hasil_outlier = "";
boolean isi = false;
int jumlah_outlier = 0;
long t1 = System.nanoTime();
NaiveNL(m, D);
long t2 = System.nanoTime();
System.out.println();
hasil_outlier = hasil_outlier + "Hasil Deteksi Outlier\n\n";
hasil_outlier = hasil_outlier + "Nilai M
: " + m + "\n";
hasil_outlier = hasil_outlier + "Nilai dmin
: " + D + "\n";
hasil_outlier = hasil_outlier + "Asal Data
: " + path + "\n";
hasil_outlier = hasil_outlier + "Jumlah Data
: " + jml_baris + "\n";
hasil_outlier = hasil_outlier +
"=====================================================
================ \n\n";
for (int i = 0; i < vertex.length; i++) {
if (vertex[i].isOutlier() == true) {
jumlah_outlier++;
hasil_outlier = hasil_outlier + "Mahasiswa " +
vertex[i].getLabelData() + " adalah outlier\n\n";
for (int j = 1; j < t.getColumnCount(); j++) {
for (int k = 0; k < t.getRowCount(); k++) {
if (vertex[i].getLabelData() == t.getValueAt(k, 0)) {
hasil_outlier = hasil_outlier + t.getColumnName(j)+
" bernilai " + t.getValueAt(k, j)+"\n" ;
}
}
}
hasil_outlier = hasil_outlier +"\n";
isi = true;
}
}
hasil_outlier = hasil_outlier + "Jumlah Outlier
: " + jumlah_outlier +
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
118
"\n";
if (isi == false) {
hasil_outlier = hasil_outlier + "Tidak ada hasil outlier \n";
}
hasil_outlier = hasil_outlier + "Lama Deteksi Outlier Dengan
Algoritma Index Based: " + ((t2 - t1) * java.lang.Math.pow(10, -9)) + "
detik\n";
return hasil_outlier;
}
}
Listing Program 5.2 Kelas Kelas Graph_NaiveNL.java
5.3.3 Implementasi Kelas CheckBoxTableModel
Berikut merupakan implementasi dari atribut dan method pada kelas
CheckBoxTableModel yang dibuat sesuai dengan perancangannya. Kelas ini
berkaitan dengan fungsi seleksi atribut karena berfungsi untuk menampilkan
atribut-atribut yang akan diseleksi sebelum proses deteksi outlier dilakukan
pada HalamanUtama.
public class CheckBoxTableModel extends AbstractTableModel {
String[] colom = {"Atribut", "Pilih"};
SeleksiAtribut fm = new SeleksiAtribut("", false);
List<SeleksiAtribut> lfm;
public CheckBoxTableModel() {
lfm = new ArrayList<SeleksiAtribut>();
}
public int getRowCount() {
return lfm.size();
}
public int getColumnCount() {
return colom.length;
}
public String getColumnName(int col) {
return colom[col];
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
case 0:
return lfm.get(rowIndex).getAtribut();
case 1:
return lfm.get(rowIndex).getPilih();
}
return null;
}
public Class getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}
public void setValueAt(Object val, int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
lfm.get(rowIndex).setAtribut(val.toString());
break;
case 1:
lfm.get(rowIndex).setPilih((Boolean) val);
break;
}
fireTableCellUpdated(rowIndex, columnIndex);
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void add(int a, SeleksiAtribut field_m) {
lfm.add(a, field_m);
fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow() {
List<SeleksiAtribut> s = new ArrayList<SeleksiAtribut>();
for (SeleksiAtribut seleksi : lfm) {
if (!seleksi.getPilih()) {
s.add(seleksi);
}
}
lfm = s;
fireTableDataChanged();
}
public void removeRow2() {
List<SeleksiAtribut> s = new ArrayList<SeleksiAtribut>();
for (SeleksiAtribut seleksi : lfm) {
if (!seleksi.getPilih()) {
s.remove(seleksi);
}
}
119
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
120
lfm = s;
fireTableDataChanged();
}
}
Listing Program 5.3 Kelas CheckBoxTableModel.java
5.3.4 Implementasi Kelas DatabaseController
Berikut merupakan implementasi dari atribut dan method pada
kelas DatabaseController yang dibuat sesuai dengan perancangannya.
Kelas ini berkaitan dengan fungsi input data dari tabel basisdata
karena terdapat method tampilTableOracle , tampilTableMySql, dan
tampilIsiTable untuk menampilkan data tabel ke dalam Halaman
Utama.
public class DatabaseController {
public ResultSet tampilTableOracle(Connection conn) throws
SQLException {
Statement statement;
ResultSet result;
String query;
statement =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "select * from user_tables";
result = statement.executeQuery(query);
return result;
}
public ResultSet tampilTableMySql(Connection conn) throws
SQLException {
Statement statement;
ResultSet result;
String query;
statement =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "show tables";
result = statement.executeQuery(query);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
121
return result;
}
public ResultSet tampilIsiTable(Connection conn, String nama_tabel)
throws SQLException {
Statement statement;
ResultSet result;
String query;
statement =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "select * from "+nama_tabel;
result = statement.executeQuery(query);
return result;
}
}
Listing Program 5.4 Kelas DatabaseController.java
5.3.5 Implementasi Kelas DiagramBatang
Berikut merupakan implementasi dari atribut dan method pada kelas
DiagramBatang yang dibuat sesuai dengan perancangannya. Kelas ini
berkaitan dengan fungsi lihat grafik distribusi per atribut dan
diimplementasikan pada method tampil.
public class DiagramBatang extends Jframe {
public void tampil(int[][] v, String[][] n, String[][] t) {
setTitle(“Grafik Distribusi Atribut”);
DefaultCategoryDataset data = new DefaultCategoryDataset();
for (int I = 0; I < n.length; i++) {
data.setValue(v[i][1], n[i][0], t[i][0]);
}
JfreeChart jf = ChartFactory.createBarChart3D(“Distribusi Atribut”,
“Atribut”, “Jumlah”, data, PlotOrientation.VERTICAL, true, true, true);
ChartPanel cp = new ChartPanel(jf);
setLayout(new BorderLayout());
add(cp, “Center”);
pack();
RefineryUtilities.centerFrameOnScreen(this);
this.setVisible(true);
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
122
}
Listing Program 5.5 Kelas DiagramBatang.java
5.3.6 Implementasi Kelas HalamanUtama
Berikut merupakan implementasi dari atribut dan method pada
kelas HalamanUtama yang dibuat sesuai dengan perancangannya.
Kelas ini berkaitan semua fungsi utama sistem karena bertimdak
sebagai interface utama ketika pengguna akan melakukan keseluruhan
fungsi pada sistem. Pada listing program ini hanya akan ditampilkan
method utama seperti yang ada pada tabel 4.3.6.6.l pada bab
perancangan.
public class HalamanUtama extends javax.swing.JFrame {
CheckBoxTableModel cb_table = new CheckBoxTableModel();
SeleksiAtribut seleksi_atribut;
public void tampilIsiDataBasisdata(DatabaseConnection conn, String
namaTabel){
try {
DatabaseController controller = new DatabaseController();
ResultSet rs;
rs = controller.tampilIsiTable(conn.getConnection(), namaTabel);
java.sql.ResultSetMetaData meta = rs.getMetaData();
int coloumCount = meta.getColumnCount();
Vector columnName = new Vector();
Vector data = new Vector();
columnName.clear();
for (int i = 1; i <= coloumCount; i++) {
columnName.add(meta.getColumnName(i));
}
data.clear();
while (rs.next()) {
Vector data2 = new Vector();
for (int i = 1; i <= coloumCount; i++) {
data2.add(rs.getString(i));
}
data2.add("\n");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
123
data.add(data2);
}
DefaultTableModel model = new DefaultTableModel(data,
columnName);
dataPreprocessTable.setModel(model);
dataPreprocessTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateCellWidth(dataPreprocessTable);
dataPreprocessTable.setAutoCreateRowSorter(true);
hasilDeteksiTextArea.setText(null);
barisTextField.setText("" + data.size());
atributTextField.setText("" + columnName.size());
pathTextField.setText("Tabel : " + namaTabel);
pathTextField.setEditable(false);
for (int i = 0; i < model.getColumnCount(); i++) {
for (int j = 0; j < model.getRowCount(); j++) {
if (i == 0) {
if (model.getValueAt(j, i) == null) {
JOptionPane.showMessageDialog(null, "Label data Anda
tidak lengkap !" + "\n"
+ "Silahkan periksa kembali label data pada tabel
basisdata");
i = model.getColumnCount() - 1;
this.dispose();
break;
}
} else {
if (model.getValueAt(j, i) == null || !model.getValueAt(j,
i).toString().matches("[0-9.]*")
|| model.getValueAt(j, i).toString().matches("[.]*")) {
JOptionPane.showMessageDialog(null, "Data Anda tidak
lengkap dan / atau terdapat karakter bukan angka !" + "\n"
+ "Silahkan periksa kembali data pada tabel
basisdata");
i = model.getColumnCount() - 1;
break;
}
}
}
}
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new SeleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
seleksi_atribut.setPilih(false);
cb_table.add(i, seleksi_atribut);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
124
}
seleksiTable.setModel(cb_table);
TableModel tableModel = dataPreprocessTable.getModel();
tableDeteksiOutlier.setModel(tableModel);
tableDeteksiOutlier.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateCellWidth(tableDeteksiOutlier);
int baris = tableModel.getRowCount();
jumlahBarisDeteksi.setText(" " + baris);
} catch (Exception e) {
}
}
public HalamanUtama(DatabaseConnection conn, String namaTabel) {
initComponents();
setTitle("Halaman Utama");
tampilIsiDataBasisdata(conn, namaTabel);
}
public void PilihDB() {
hapusButton.setEnabled(true);
tandaiSemuaButton.setEnabled(true);
batalTandaiButton.setEnabled(true);
distribusiButton.setEnabled(true);
submitDataButton.setEnabled(true);
pathTextField.setEditable(false);
HalamanPilihDatabase pilih_db = new HalamanPilihDatabase();
pilih_db.setVisible(true);
}
public void submitData() {
TableModel tableModel = dataPreprocessTable.getModel();
if (tableModel.getColumnCount() == 0) {
JOptionPane.showMessageDialog(null, "Anda belum memasukkan
data !");
pathTextField.setText(null);
} else {
tableDeteksiOutlier.setModel(tableModel);
tableDeteksiOutlier.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateCellWidth(tableDeteksiOutlier);
int baris = tableModel.getRowCount();
jumlahBarisDeteksi.setText(" " + baris);
System.out.println(" " + baris);
jTabbedPane1.setSelectedComponent(deteksiPanel);
jTabbedPane1.setEnabledAt(1, true);
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public void distribusiAtribut() {
List<String> daftar_atribut = null;
daftar_atribut = new ArrayList<String>();
for (int i = 1; i < dataPreprocessTable.getColumnCount(); i++) {
daftar_atribut.add(dataPreprocessTable.getColumnName(i));
}
HalamanDistribusiAtribut grafik = new
HalamanDistribusiAtribut(daftar_atribut, dataPreprocessTable);
grafik.setVisible(true);
}
public void pilihFile() {
JFileChooser fileChooser = new JFileChooser();
int returnValue = fileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
String nama_file = fileChooser.getSelectedFile().getPath();
String[] potong_nama_file = nama_file.split("\\.");
if (potong_nama_file[1].equals("xls")) {
cb_table.removeRow2();
File fileExcel = fileChooser.getSelectedFile();
Vector columnName = new Vector();
Vector data = new Vector();
try {
Workbook workbook = Workbook.getWorkbook(fileExcel);
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();
}
DefaultTableModel model = new DefaultTableModel(data,
columnName);
125
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
126
dataPreprocessTable.setModel(model);
dataPreprocessTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateCellWidth(dataPreprocessTable);
dataPreprocessTable.setAutoCreateRowSorter(true);
barisTextField.setText("" + data.size());
atributTextField.setText("" + columnName.size());
pathTextField.setText(fileExcel.getPath());
hasilDeteksiTextArea.setText(null);
hapusButton.setEnabled(true);
distribusiButton.setEnabled(true);
submitDataButton.setEnabled(true);
tandaiSemuaButton.setEnabled(true);
batalTandaiButton.setEnabled(true);
for (int i = 0; i < model.getColumnCount(); i++) {
for (int j = 0; j < model.getRowCount(); j++) {
if (i == 0) {
if (i == 0 && model.getValueAt(j,
0).toString().isEmpty()) {
JOptionPane.showMessageDialog(null, "Label data
tidak lengkap !" + "\n"
+ "Silahkan lengkapi label data pada file asli");
i = model.getColumnCount() - 1;
this.dispose();
HalamanAwal awal = new HalamanAwal();
awal.setVisible(true);
break;
}
} else {
if (model.getValueAt(j, i).toString().isEmpty() ||
!model.getValueAt(j, i).toString().matches("[0-9.]*")
|| model.getValueAt(j, i).toString().matches("[.]*")) {
HalamanMissingValues ms = new
HalamanMissingValues(this, rootPaneCheckingEnabled, model);
ms.setVisible(true);
i = model.getColumnCount() - 1;
break;
}
}
}
}
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new SeleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
127
seleksi_atribut.setPilih(false);
cb_table.add(i, seleksi_atribut);
}
seleksiTable.setModel(cb_table);
TableModel tableModel = dataPreprocessTable.getModel();
tableDeteksiOutlier.setModel(tableModel);
tableDeteksiOutlier.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateCellWidth(tableDeteksiOutlier);
int baris = tableModel.getRowCount();
jumlahBarisDeteksi.setText(" " + baris);
} else if (potong_nama_file[1].equals("csv")) {
cb_table.removeRow2();
File fileCsv = fileChooser.getSelectedFile();
Vector columnNames = new Vector();
Vector data = new Vector();
String line;
try {
BufferedReader br = new BufferedReader(new
FileReader(fileCsv));
StringTokenizer st = new StringTokenizer(br.readLine(), ",");
while (st.hasMoreTokens()) {
columnNames.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,
columnNames);
dataPreprocessTable.setModel(model);
dataPreprocessTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateCellWidth(dataPreprocessTable);
dataPreprocessTable.setAutoCreateRowSorter(true);
pathTextField.setText(fileCsv.getPath());
barisTextField.setText("" + data.size());
atributTextField.setText("" + columnNames.size());
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
128
hasilDeteksiTextArea.setText(null);
hapusButton.setEnabled(true);
distribusiButton.setEnabled(true);
submitDataButton.setEnabled(true);
tandaiSemuaButton.setEnabled(true);
batalTandaiButton.setEnabled(true);
for (int i = 0; i < model.getColumnCount(); i++) {
for (int j = 0; j < model.getRowCount(); j++) {
if (model.getValueAt(j, i).toString().isEmpty() ||
!model.getValueAt(j, i).toString().matches("[0-9.]*")
|| model.getValueAt(j, i).toString().matches("[.]*")) {
JOptionPane.showMessageDialog(null, "Data Anda
tidak lengkap dan / atau terdapat karakter bukan angka !" + "\n"
+ "Silahkan periksa kembali data pada file asli");
i = model.getColumnCount() - 1;
break;
}
}
}
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new SeleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
seleksi_atribut.setPilih(false);
cb_table.add(i, seleksi_atribut);
}
seleksiTable.setModel(cb_table);
TableModel tableModel = dataPreprocessTable.getModel();
tableDeteksiOutlier.setModel(tableModel);
tableDeteksiOutlier.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
updateCellWidth(tableDeteksiOutlier);
int baris = tableModel.getRowCount();
jumlahBarisDeteksi.setText(" " + baris);
} catch (Exception e) {
}
} else {
JOptionPane.showMessageDialog(null, "File yang Anda pilih
harus berformat .xls atau .csv");
}
}
}
private void updateCellWidth(JTable table) {
adjustJTableRowSizes(table);
for (int i = 0; i < table.getColumnCount(); i++) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
129
adjustColumnSizes(table, i, 2);
}
}
private void adjustJTableRowSizes(JTable jTable) {
for (int row = 0; row < jTable.getRowCount(); row++) {
int maxHeight = 0;
for (int column = 0; column < jTable.getColumnCount();
column++) {
TableCellRenderer cellRenderer = jTable.getCellRenderer(row,
column);
Object valueAt = jTable.getValueAt(row, column);
Component tableCellRendererComponent =
cellRenderer.getTableCellRendererComponent(jTable, valueAt, false,
false, row, column);
int heightPreferable =
tableCellRendererComponent.getPreferredSize().height;
maxHeight = Math.max(heightPreferable, maxHeight);
}
jTable.setRowHeight(row, maxHeight);
}
}
public void adjustColumnSizes(JTable table, int column, int margin) {
DefaultTableColumnModel colModel = (DefaultTableColumnModel)
table.getColumnModel();
TableColumn col = colModel.getColumn(column);
int width;
TableCellRenderer renderer = col.getHeaderRenderer();
if (renderer == null) {
renderer = table.getTableHeader().getDefaultRenderer();
}
Component comp = renderer.getTableCellRendererComponent(table,
col.getHeaderValue(), false, false, 0, 0);
width = comp.getPreferredSize().width;
for (int r = 0; r < table.getRowCount(); r++) {
renderer = table.getCellRenderer(r, column);
comp = renderer.getTableCellRendererComponent(table,
table.getValueAt(r, column), false, false, r, column);
int currentWidth = comp.getPreferredSize().width;
width = Math.max(width, currentWidth);
}
width += 2 * margin;
col.setPreferredWidth(width);
col.setWidth(width);
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public void prosesDeteksi() {
String jumlah_baris = jumlahBarisDeteksi.getText();
String path = pathTextField.getText();
if (nilaiMTF.getText().isEmpty() || dminTF.getText().isEmpty()) {
if (nilaiMTF.getText().isEmpty()) {
nilaiMTF.setBackground(Color.red);
}
if (dminTF.getText().isEmpty()) {
dminTF.setBackground(Color.red);
}
JOptionPane.showMessageDialog(null, "Nilai M atau dmin tidak
boleh kosong! ");
} else {
if (!nilaiMTF.getText().isEmpty() &&
!dminTF.getText().isEmpty()) {
if (nilaiMTF.getText().matches("[0-9.]*") ||
dminTF.getText().matches("[0-9.]*")) {
Double nilaiM = Double.parseDouble(nilaiMTF.getText());
Double nilaiD = Double.parseDouble(dminTF.getText());
TableModel tableModel = tableDeteksiOutlier.getModel();
int kolom = tableModel.getColumnCount();
int baris = tableModel.getRowCount();
List<Double> data_nilai = null;
String label = "";
Graph_IndexBased g = new Graph_IndexBased(baris);
//insert vertex
for (int i = 0; i < baris; i++) {
data_nilai = new ArrayList<Double>();
for (int j = 0; j < kolom; j++) {
if (j == 0) {
label = String.valueOf(tableModel.getValueAt(i, j));
} else {
data_nilai.add(Double.parseDouble(tableModel.getValueAt(i,
j).toString()));
}
}
g.addVertex(label, data_nilai);
}
//insert edge
for (int i = 0; i < baris; i++) {
for (int j = i + 1; j < baris; j++) {
if (i != j) {
g.addEdge(i, j, g.euclideanDistance(i, j));
130
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
131
}
}
}
hasilDeteksiTextArea.setText(g.displayOutlier(nilaiM, nilaiD,
jumlah_baris, tableDeteksiOutlier, path));
prosesButton.setEnabled(false);
nilaiMTF.setText(null);
dminTF.setText(null);
nilaiMTF.requestFocus();
simpanFileButton.setEnabled(true);
}
}
}
}
public boolean cek_atribut_hapus(String atribut, List<String>
hapus_atribut) {
boolean cek = false;
for (int i = 0; i < hapus_atribut.size(); i++) {
if (hapus_atribut.get(i).equals(atribut)) {
return cek = true;
}
}
return cek;
}
public boolean cek_atribut_kolom(String atribut, Vector kolom) {
boolean cek = false;
for (int i = 0; i < kolom.size(); i++) {
if (kolom.get(i).equals(atribut)) {
return cek = true;
}
}
return cek;
}
public void hapusAtribut() {
TableModel model = dataPreprocessTable.getModel();
List<String> hapus_seleksi = new ArrayList<String>();
for (int i = 0; i < cb_table.getRowCount(); i++) {
if (cb_table.getValueAt(i, 1).equals(true)) {
hapus_seleksi.add(cb_table.getValueAt(i, 0).toString());
}
}
int kolom = model.getColumnCount();
int baris = model.getRowCount();
Vector namaKolom = new Vector();
Vector isiData = new Vector();
for (int k = 0; k < cb_table.getRowCount(); k++) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
if (!cek_atribut_hapus(cb_table.getValueAt(k, 0).toString(),
hapus_seleksi)) {
namaKolom.addElement(cb_table.getValueAt(k, 0));
}
}
for (int a = 0; a < baris; a++) {
Vector satu_baris = new Vector();
for (int b = 0; b < kolom; b++) {
if (cek_atribut_kolom(model.getColumnName(b).toString(),
namaKolom)) {
satu_baris.addElement(model.getValueAt(a, b));
}
}
isiData.addElement(satu_baris);
}
DefaultTableModel model_baru = new DefaultTableModel(isiData,
namaKolom);
dataPreprocessTable.setModel(model_baru);
if (!isiData.isEmpty() && !namaKolom.isEmpty()) {
updateCellWidth(dataPreprocessTable);
}
dataPreprocessTable.setAutoCreateRowSorter(true);
barisTextField.setText("" + isiData.size());
atributTextField.setText("" + namaKolom.size());
jumlahBarisDeteksi.setText(" " + isiData.size());
cb_table.removeRow();
if (namaKolom.isEmpty()) {
barisTextField.setText(null);
atributTextField.setText(null);
jumlahBarisDeteksi.setText(null);
submitDataButton.setEnabled(false);
batalTandaiButton.setEnabled(false);
tandaiSemuaButton.setEnabled(false);
hapusButton.setEnabled(false);
distribusiButton.setEnabled(false);
pathTextField.setText(null);
}
seleksi_atribut.setPilih(false);
}
public void tandaiSemuaAtribut() {
for (int i = 0; i < cb_table.getRowCount(); i++) {
cb_table.setValueAt(true, i, 1);
}
}
public void batalTandaiSemuaAtribut() {
for (int i = 0; i < cb_table.getRowCount(); i++) {
132
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
cb_table.setValueAt(false, i, 1);
}
}
public void simpanFile() {
JFileChooser fileChooser = new JFileChooser(new File("D:/"));
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 extension = fileChooser.getFileFilter().getDescription();
File ff = new File(filename);
//buat file output stream
if (extension.equals("Microsoft Word (*.doc)")) {
ff = new File(filename + ".doc");
} else if (extension.equals("Text Documents (*.txt)")) {
ff = new File(filename + ".txt");
}
try {
file_output_stream = new FileOutputStream(ff);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
return;
}
try {
String hasil_text_area = hasilDeteksiTextArea.getText();
String[] potong_isi = hasil_text_area.split("\\n");
FileWriter outFile = new FileWriter(ff);
PrintWriter out = new PrintWriter(outFile, true);
for (int i = 0; i < potong_isi.length; i++) {
out.println("" + potong_isi[i].toString());
}
file_output_stream.close();
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Penyimpanan asil
Deteksi Outlier Gagal !");
}
JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier
Telah Berhasil Disimpan di " + filename);
}
simpanFileButton.setEnabled(false);
}
// Variables declaration - do not modify
133
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private javax.swing.JLabel DLabel;
private javax.swing.JLabel MLabel;
private javax.swing.JTextField atributTextField;
private javax.swing.JButton bantuanButton;
private javax.swing.JTextField barisTextField;
private javax.swing.JButton batalTandaiButton;
private javax.swing.JTable dataPreprocessTable;
private javax.swing.JPanel deteksiPanel;
private javax.swing.JButton distribusiButton;
private javax.swing.JTextField dminTF;
private javax.swing.JButton fileButton;
private javax.swing.JButton hapusButton;
private javax.swing.JTextArea hasilDeteksiTextArea;
private javax.swing.JLabel hasilLabel;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane4;
private javax.swing.JScrollPane jScrollPane5;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
private javax.swing.JSeparator jSeparator4;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JLabel judulLabel;
private javax.swing.JLabel jumlahAtributLabel;
private javax.swing.JTextField jumlahBarisDeteksi;
private javax.swing.JLabel jumlahDataLabel;
private javax.swing.JLabel jumlahLabel;
private javax.swing.JButton keluarButton;
private javax.swing.JTextField nilaiMTF;
private javax.swing.JLabel pathLabel;
private javax.swing.JTextField pathTextField;
private javax.swing.JButton pilihDBButton;
private javax.swing.JPanel preprocessPanel;
private javax.swing.JButton prosesButton;
private javax.swing.JLabel prosesLabel;
private javax.swing.JLabel seleksiAtributLabel;
private javax.swing.JTable seleksiTable;
private javax.swing.JButton simpanFileButton;
private javax.swing.JButton submitDataButton;
private javax.swing.JLabel tabel2Label;
private javax.swing.JLabel tabelLabel;
134
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
135
private javax.swing.JTable tableDeteksiOutlier;
private javax.swing.JButton tandaiSemuaButton;
}
Listing Program 5.6 Kelas HalamanUtama.java
5.3.7 Implementasi Kelas HalamanDistribusiAtribut
Berikut merupakan implementasi dari atribut dan method pada
kelas
HalamanDistribusi.java
yang
dibuat
sesuai
dengan
perancangannya. Kelas ini memiiki method tampilAtribut , lihatGrafik
dan pilihAtributComboBox berkaitan dengan fungsi lihat grafik
distribusi per atribut.
public class HalamanDistribusiAtribut extends javax.swing.JFrame {
JTable model;
private int count = 0;
public HalamanDistribusiAtribut(List<String> daftarAtribut, JTable
tabel) {
initComponents();
setResizable(false);
tampilAtribut(daftarAtribut,tabel);
}
public void tampilAtribut(List<String> daftarAtribut, JTable tabel) {
model = tabel;
for (int i = 1; i < tabel.getColumnCount(); i++) {
atributComboBox.addItem(tabel.getColumnName(i));
}
}
public void pilihAtributComboBox() {
String pilih_combo = atributComboBox.getSelectedItem().toString();
List<String> isiData = new ArrayList<String>();
String[][] data1 = null;
String[] nama_kolom = new String[2];
for (int i = 1; i < model.getColumnCount(); i++) {
if
(pilih_combo.equalsIgnoreCase(model.getColumnName(i).toString())) {
nama_kolom[0] = model.getColumnName(i).toString();
nama_kolom[1] = "Jumlah Data";
for (int j = 0; j < model.getRowCount(); j++) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
136
isiData.add(model.getValueAt(j, i).toString());
}
HashSet hashSet = new HashSet(isiData); //Creating HashSet
which does not allows duplicates
isiData.clear();
// Clearing arraylist1
isiData = new ArrayList(hashSet); // Assigning Hashset back
with no duplicates to arraylist1
data1 = new String[isiData.size()][2];
System.out.println(" " + isiData.toString());
for (int k = 0; k < isiData.size(); k++) {
for (int l = 0; l < model.getRowCount(); l++) {
if (isiData.get(k).equalsIgnoreCase(model.getValueAt(l,
i).toString())) {
setCount(count + 1);
}
}
data1[k][0] = isiData.get(k).toString();
data1[k][1] = String.valueOf(getCount());
setCount(0);
}
}
DefaultTableModel tabel_grafik = new DefaultTableModel(data1,
nama_kolom);
tabelGrafik.setModel(tabel_grafik);
tabelGrafik.setAutoCreateRowSorter(true);
}
}
private void
atributComboBoxActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
pilihAtributComboBox();
}
public void lihatGrafik() {
String data[][];
String jumlah_data[][];
int jumlah[][];
int row = tabelGrafik.getRowCount();
int column = tabelGrafik.getColumnCount();
data = new String[row][column];
jumlah_data = new String[row][column];
jumlah = new int[row][column];
for (int i = 0; i < row; i++) {
data[i][0] = tabelGrafik.getValueAt(i, 0).toString();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
137
jumlah_data[i][1] = tabelGrafik.getValueAt(i, 1).toString();
jumlah[i][1] = Integer.parseInt(jumlah_data[i][1]);
}
DiagramBatang br = new DiagramBatang();
br.tampil(jumlah, data, data);
}
private void
lihatGrafikButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
lihatGrafik();
}
private void keluarButtonActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
this.dispose();
}
private javax.swing.JComboBox atributComboBox;
private javax.swing.JLabel daftarLabel;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JButton keluarButton;
private javax.swing.JButton lihatGrafikButton;
private javax.swing.JTable tabelGrafik;
private javax.swing.JLabel tabelLabel;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
Listing Program 5.7 Kelas HalamanDistribusiAtribut.java
5.3.8 Implementasi Kelas HalamanPilihDatabase
Berikut merupakan implementasi dari atribut dan method pada
kelas
HalamanPilihDatabase.java
yang
dibuat
sesuai
dengan
perancangannya. Kelas ini memiliki method pilihDatabase yang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
138
berkaitan dengan fungsi input data dari tabel basisdata dan bertindak
sebagai interface saat pengguna akan melakukan login ke basisdata.
public class HalamanPilihDatabase extends javax.swing.JFrame {
/** Creates new form HalamanPilihDatabase */
HalamanUtama coba = new HalamanUtama();
public HalamanPilihDatabase() {
initComponents();
setResizable(false);
usernameTextField.setEnabled(false);
passwordField.setEnabled(false);
dbTextField.setEnabled(false);
URLTextField.setEnabled(false);
dbComboBox.setSelectedIndex(-1);
}
public void pilihDatabase() {
if (dbComboBox.getSelectedIndex() == 0) {
if (usernameTextField.getText().isEmpty() ||
passwordField.getText().isEmpty() || URLTextField.getText().isEmpty()) {
if (usernameTextField.getText().isEmpty()) {
usernameTextField.setBackground(Color.red);
}
if (passwordField.getText().isEmpty()) {
passwordField.setBackground(Color.red);
}
if (URLTextField.getText().isEmpty()) {
URLTextField.setBackground(Color.red);
}
JOptionPane.showMessageDialog(null, "Username atau
Password atau URL tidak boleh kosong! ");
} else {
String username = usernameTextField.getText();
String password = passwordField.getText();
String url = URLTextField.getText();
DatabaseConnection conn = new DatabaseConnection();
boolean koneksi = conn.isConnectedOracle(url, username,
password);
if (koneksi == true) {
JOptionPane.showMessageDialog(null, "Koneksi Berhasil");
HalamanTampilTabel tabel = new HalamanTampilTabel(conn,
dbComboBox.getSelectedItem().toString());
tabel.setVisible(true);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
139
this.dispose();
} else {
JOptionPane.showMessageDialog(null, "Username atau
password atau URL yang anda masukkan salah");
usernameTextField.setText("");
passwordField.setText("");
URLTextField.setText("");
}
}
} else if (dbComboBox.getSelectedIndex() == 1) {
if (usernameTextField.getText().isEmpty() ||
passwordField.getText().isEmpty() || dbTextField.getText().isEmpty() ||
URLTextField.getText().isEmpty()) {
if (usernameTextField.getText().isEmpty()) {
usernameTextField.setBackground(Color.red);
}
if (passwordField.getText().isEmpty()) {
passwordField.setBackground(Color.red);
}
if (dbTextField.getText().isEmpty()) {
dbTextField.setBackground(Color.red);
}
if (URLTextField.getText().isEmpty()) {
URLTextField.setBackground(Color.red);
}
JOptionPane.showMessageDialog(null, "Username atau
Password atau Database atau URL tidak boleh kosong! ");
} else {
String username = usernameTextField.getText();
String password = passwordField.getText();
String url = URLTextField.getText();
String database = dbTextField.getText();
DatabaseConnection conn = new DatabaseConnection();
boolean koneksi = conn.isConnectedSQL(url + database,
username, password);
if (koneksi == true) {
JOptionPane.showMessageDialog(null, "Koneksi Berhasil");
HalamanTampilTabel tabel = new HalamanTampilTabel(conn,
dbComboBox.getSelectedItem().toString());
tabel.setVisible(true);
this.dispose();
} else {
JOptionPane.showMessageDialog(null, "Username atau
Password atau Database atau URL yang anda masukkan salah");
usernameTextField.setText("");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
140
passwordField.setText("");
dbTextField.setText("");
URLTextField.setText("");
}
}
}
}
private void OKButtonActionPerformed(java.awt.event.ActionEvent
evt) {
pilihDatabase();
}
private void batalButtonActionPerformed(java.awt.event.ActionEvent
evt) {
this.dispose();
}
private void dbComboBoxActionPerformed(java.awt.event.ActionEvent
evt) {
if (dbComboBox.getSelectedIndex() == 0) {
usernameTextField.setEnabled(true);
passwordField.setEnabled(true);
URLTextField.setEnabled(true);
URLTextField.setText("jdbc:oracle:thin:@localhost:1521:XE");
dbTextField.setEnabled(false);
dbTextField.setText(null);
} else if (dbComboBox.getSelectedIndex() == 1) {
usernameTextField.setEnabled(true);
passwordField.setEnabled(true);
dbTextField.setEnabled(true);
URLTextField.setEnabled(true);
URLTextField.setText("jdbc:mysql://localhost:3306/");
} else {
dbTextField.setText(null);
}
}
// Variables declaration - do not modify
private javax.swing.JButton OKButton;
private javax.swing.JLabel URLLabel;
private javax.swing.JTextField URLTextField;
private javax.swing.JButton batalButton;
private javax.swing.JLabel databasePilihLabel;
private javax.swing.JComboBox dbComboBox;
private javax.swing.JLabel dbLabel;
private javax.swing.JTextField dbTextField;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
141
private javax.swing.JPasswordField passwordField;
private javax.swing.JLabel passwordLabel;
private javax.swing.JLabel pilihKoneksiLabel;
private javax.swing.JLabel usernameLabel;
private javax.swing.JTextField usernameTextField;
}
Listing Program 5.8 Kelas HalamanPilihDatabase.java
5.3.9 Implementasi Kelas HalamanTampilTabel
Berikut merupakan implementasi dari atribut dan method pada
kelas
HalamanTampilTabel.java
yang
dibuat
sesuai
dengan
perancangannya. Kelas ini memiliki method tampilTabel dan
pilihTabel yang berkaitan dengan fungsi input data dari tabel basisdata
karena bertindak sebagai interface untuk menampilkan daftar tabel
yang terdapat pada basisdata yang dipilih pengguna.
public class HalamanTampilTabel extends javax.swing.JFrame {
DatabaseConnection conn;
public HalamanTampilTabel(DatabaseConnection conn, String database)
{
initComponents();
setResizable(false);
tampilTabel(conn, database);
}
public void tampilTabel(DatabaseConnection conn, String database) {
this.conn = conn;
try {
DatabaseController controller = new DatabaseController();
ResultSet rs;
if (database.equals("Oracle")) {
rs = controller.tampilTableOracle(conn.getConnection());
while (rs.next()) {
daftarTableComboBox.addItem(rs.getString(1));
}
} else if (database.equals("MySQL")) {
rs = controller.tampilTableMySql(conn.getConnection());
while (rs.next()) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
daftarTableComboBox.addItem(rs.getString(1));
}
}
} catch (SQLException ex) {
Logger.getLogger(HalamanTampilTabel.class.getName()).log(Level.SEVE
RE, null, ex);
}
}
public void pilihTabel() {
java.awt.Window window[] = java.awt.Window.getWindows();
for (int i = 0; i < window.length; i++) {
window[i].dispose();
window[i] = null;
}
HalamanUtama coba = new HalamanUtama(conn,
daftarTableComboBox.getSelectedItem().toString());
coba.setVisible(true);
jDesktopPane1.getMaximumSize();
setExtendedState(MAXIMIZED_BOTH);
}
private void
pilihTabelButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
pilihTabel();
}
private void batalButtonActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
java.awt.Window window[] = java.awt.Window.getWindows();
for (int i = 0; i < window.length; i++) {
window[i].dispose();
window[i] = null;
}
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
jDesktopPane1.getMaximumSize();
setExtendedState(MAXIMIZED_BOTH);
}
// Variables declaration - do not modify
private javax.swing.JButton batalButton;
private javax.swing.JLabel daftarLabel;
private javax.swing.JComboBox daftarTableComboBox;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
142
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
143
private javax.swing.JButton pilihTabelButton;
}
Listing Program 5.9 Kelas HalamanTampilTabel.java
5.4 Implementasi Struktur Data
Sesuai dengan yang telah dibuat dalam bab perancangan, implementasi
struktur data yang digunakan adalah konsep graf dan matriks dua dimensi dan
telah
diimplementasikan
pada
kelas
Vertex_NaiveNL.java
dan
Graph_NaiveNL.java . Berikut ini merupakan implementasi struktur data
yang terdapat pada program.
5.4.1 Implementasi Kelas Vertex_NaiveNL.java
Kelas Vertex_NaiveNL.java merupakan kelas yang digunakan untuk
menyimpan suatu objek data dalam bentuk vertex dimana sebuah vertex
memiliki atribut labelData dan atribut nilai dalam bentuk list. Atribut outlier
bertipe boolean digunakan untuk memberi nilai boolean pada suatu vertex
apakah vertex tersebut outlier atau tidak.
public final class Vertex_NaiveNL {
String labelData;
List<Double> nilai;
boolean outlier = false;
public Vertex_NaiveNL(String label, List<Double> nilai) {
setNilai(nilai);
setLabelData(label);
setOutlier(outlier);
}
public String getLabelData() {
return labelData;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
144
}
public void setLabelData(String labelData) {
this.labelData = labelData;
}
public boolean isOutlier() {
return outlier;
}
public void setOutlier(boolean outlier) {
this.outlier = outlier;
}
public List<Double> getNilai() {
return nilai;
}
public void setNilai(List<Double> nilai) {
this.nilai = nilai;
}
}
Listing Program 5.10 Kelas Vertex_NaiveNL.java
5.4.2 Implementasi Kelas Graph_ NaiveNL.java
Implementasi matriks dua dimensi digunakan untuk menyatakan edge atau
jarak antar objek data. Kelas Graph_NaiveNL memiliki atribut
Vertex_NaiveNL[] vertex, int size = 0 untuk menentukan ukuran matriks,
dan double[][] matrix.. Implementasi ini terdapat pada konstruktor pada
kelas Graph_NaiveNL.java. Deklarasi matrix[i][j] =
-1 dan
matrix[j][i] = -1 menandakan jarak satu objek data dengan objek
data lain akan diisi dengan nilai -1 terlebih dahulu sebelum diisi dengan
nilai edge yang diperoleh dari perhitungan dengan rumus jarak. Sedangkan
deklarasi matrix[i][i] = 0 menyatakan jarak sebuah objek data
dengan dirinya sendiri.
public Graph_ NaiveNL (int a) {
matrix = new double[a][a];
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
145
vertex = new Vertex_NaiveNL[a];
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
matrix[i][j] = -1;
matrix[j][i] = -1;
}
matrix[i][i] = 0;
}
}
Listing Program 5.11 Implementasi Pembentukan Matriks Dua Dimensi
Selanjutnya adalah implementasi untuk menambahkan vertex pada graf
yang ditunjukkan pada method addVertex. Deklarasi
vertex[size++] =
new Vertex_NaiveNL(label, nilai) menyatakan pembentukan vertex
baru, dimana sebuah vertex berisi label dan nilai.
public void addVertex(String label, List<Double> nilai) {
vertex[size++] = new Vertex_NaiveNL(label, nilai);
}
Listing Program 5.12 Method addVertex
Implementasi penambahan edge terdapat pada metnod addEdge. Deklarasi
matrix[asal][tujuan]
=
matrix[tujuan][asal]
=
jarak
digunakan untuk mengisi edge pada matriks dua dimensi dengan nilai jarak.
Sehingga isi edge dari vertex asal ke tujuan dan sebaliknya bernilai sesuai dengan
nilai pada atribut jarak.
public void addEdge(int asal, int tujuan, double jarak) {
matrix[asal][tujuan] = matrix[tujuan][asal] = jarak;
}
Listing Program 5.13 Method addEdge
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
146
Implementasi berikutnya adalah perhitungan jarak antar vertex dengan
rumus Euclidean Distance yang terdapat pada method euclideanDistance seperti
yang tertera pada listing 5.14.
public double euclideanDistance(int asal, int tujuan) {
List<Double> awal = new ArrayList<Double>();
List<Double> akhir = new ArrayList<Double>();
awal = vertex[asal].getNilai();
akhir = vertex[tujuan].getNilai();
double total = 0;
for (int i = 0; i < awal.size(); i++) {
total = total + (awal.get(i) - akhir.get(i)) * (awal.get(i) - akhir.get(i));
}
return Math.sqrt(total);
}
Listing Program 5.14 Method euclideanDistance
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VI
PENGUJIAN DAN ANALISA HASIL PENGUJIAN
6.1 Fase Implementasi Pengujian
Pada bab ini akan dibahas mengenai tahap pengembangan sistem
pendeteksi outlier menggunakan algoritma Naïve Nested Loop yaitu pengujian
sistem. Berikut merupakan tahap-tahap yang dilakukan dalam pengujian sistem :
6.1.1 Rencana Pengujian
Pengujian terhadap sistem ini meliputi tiga metode pengujian, yaitu
pengujian Blackbox, pengujian efek perubahan nilai atribut penambangan data,
dan pengujian review dan validitas oleh pengguna. Pengujian blackbox adalah
metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasinya tidak
memperhatikan struktur internal dari perangkat lunak yang akan diuji
(C.Simanjuntak, dkk, 2010). Pengetahuan khusus dari kode aplikasi / struktur
internal dan pengetahuan pemrograman pada umumnya tidak diperlukan dalam
pengujian ini. Pengujian Blackbox dilakukan untuk mengetahui apakah sebuah
perangkat lunak sudah berfungsi dengan benar. Pada pengujian ini, semua fungsi
pada sistem akan dijalankan dan dilihat kebenaran hasil keluarannya apakah
sesuai dengan yang diharapkan. Pengujian review dan validitas dilakukan oleh
pengguna, dalam hal ini Kaprodi (Ketua Program Studi) Teknik Informatika
Universitas Sanata Dharma dengan cara mengkonfirmasi kebenaran hasil deteksi
outlier yang diperoleh sistem. Untuk pengujian efek perubahan nilai atribut
penambangan data dilakukan dengan cara mengubah nilai paramater yang
dimiliki algoritma Naïve Nested Loop, yaitu nilai M dan dmin .
147
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
148
Berikut ini merupakan tabel rencana pengujian blackbox yang akan
dilakukan pada masing-masing kelas uji :
Tabel 6.1 Tabel Rencana Pengujian
Kelas Uji
DatabaseConnection
Halaman Utama
HalamanPilihDatabase
HalamanTampilTabel
HalamanDistribusiAtribut
Halaman MissingValues
Butir Uji
Jenis
Pengujian
Cek koneksi ke dalam Blackbox
basisdata (dengan basisdata
Oracle dan mySQL)
Menampilkan
data
file Blackbox
berekstensi .xls
Menampilkan
data
file Blackbox
berekstensi .csv
Menampilkan data dari tabel Blackbox
dalam basisdata
Menjalankan fungsi simpan Blackbox
hasil outlier
Melakukan seleksi atribut
Blackbox
Menampilkan hasil deteksi
outlier
Menampilkan
Form
PilihDatabase untuk login ke
basisdata
sesuai
pilihan
pengguna
Menampilkan daftar tabel dari
basisdata sesuai pilihan
pengguna
Menampilkan tabel daftar per
atribut beserta jumlah datanya
Menampilkan grafik distribusi
per atribut
Menampilkan
pesan
peringatan saat data yang
berekstensi .xls memiliki baris
kosong dan/atau mengandung
karakter bukan angka
Blackbox
Blackbox
Blackbox
Blackbox
Blackbox
Blackbox
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
149
6.1.1.1 Hasil Pengujian Blackbox
6.1.1.1.1 Pengujian Input Data
Berikut merupakan data pengujian untuk input data pada kelas
HalamanUtama.
Tabel 6.2 Tabel Pengujian Input Data
Kasus dan Hasil Uji (Data Benar)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
Input data dari file Data tertampil ke Data tertampil ke Diterima
berekstensi .xls
dalam tabel
dalam tabel
Input data dari file Data tertampil ke Data tertampil ke Diterima
berekstensi .csv
dalam tabel
dalam tabel
Input data dari Data tertampil ke Data tertampil ke Diterima
tabel
dalam dalam tabel
dalam tabel
basisdata
Kasus dan Hasil Uji (Data Salah)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
Input data dari file
berekstensi
.xls
(terdapat
baris
kosong)
Menampilkan pesan Pesan
peringatan
bahwa peringatan
data yang salah berhasil
(terdapat
baris ditampilkan
kosong).
Diterima
Input data dari file
berekstensi
.xls
(terdapat
label
data kosong)
Menampilkan pesan Pesan
peringatan
bahwa peringatan
data yang salah berhasil
(terdapat
label ditampilkan
kosong).
Diterima
Input data dari file
berekstensi
.xls
(data selain label
berupa huruf)
Menampilkan pesan
peringatan
bahwa
data yang dimasukan
salah
(berformat
bukan angka).
Diterima
Pesan
peringatan
berhasil
ditampilkan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Input data dari file
berekstensi
.xls
(data mengandung
sembarang
karakter)
Menampilkan pesan
peringatan
bahwa
data yang dimasukan
salah
(berformat
bukan angka).
Pesan
peringatan
berhasil
ditampilkan
Diterima
Input data dari file
berekstensi .csv
(terdapat
baris
kosong
atau
mengandung
karakter
bukan
angka)
Menampilkan
peringatan
data yang
(terdapat
kosong
mengandung
karakter
angka).
Pesan
peringatan
berhasil
ditampilkan
Diterima
Input data dari
tabel
dalam
basisdata
(terdapat
label
data kosong)
Menampilkan pesan
peringatan
bahwa
data yang dimasukan
salah. (terdapat label
data kosong)
Pesan
peringatan
berhasil
ditampilkan
Diterima
Input data dari
tabel
dalam
basisdata
(terdapat
data
kosong
dan
mengandung
karakter
bukan
angka)
Menampilkan pesan
peringatan
bahwa
data yang dimasukan
salah. (terdapat data
kosong
dan
mengandung
karakter
bukan
angka)
Pesan
peringatan
berhasil
ditampilkan
Diterima
pesan
bahwa
salah
baris
atau
150
bukan
6.1.1.1.2 Pengujian Koneksi Database
Berikut merupakan data pengujian untuk input data pada Halaman Pilih
Database yang pengecekan kebenarannya ditangani oleh Kelas Database
Connection.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
151
Tabel 6.3 Tabel Pengujian Koneksi Database
Kasus dan Hasil Uji (Data Benar)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Input
username,
password,
nama
database,url benar
(mySQL)
Hasil
Didapat
yang Kesimpulan
Menampilkan
Pesan
berhasil Diterima
pesan
pengguna ditampilkan
berhasil melakukan
koneksi
ke
basisdata
Input
Menampilkan
username,password, pesan pengguna
berhasil melakukan
url benar (Oracle)
koneksi ke
basisdata
Pesan
berhasil Diterima
ditampilkan
Kasus dan Hasil Uji (Data Salah)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
Input
username,
password,
nama
database, dan url
ada yang kosong
(mySQL)
Menampilkan
pesan peringatan
bahwa username
atau password atau
database atau url
tidak boleh kosong
Pesan
berhasil Diterima
ditampilkan
Input
username,
password, dan url
ada yang ada yang
kosong (Oracle)
Menampilkan
pesan peringatan
bahwa username
atau password atau
url tidak boleh
kosong
Pesan
berhasil Diterima
ditampilkan
Input
username,
password,
nama
database, dan url
ada yang salah
(mySQL)
Menampilkan
pesan peringatan
bahwa username
atau password atau
database atau url
salah
Pesan
berhasil Diterima
ditampilkan
Input
username, Menampilkan
password, dan url pesan peringatan
Pesan
berhasil Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ada yang ada yang bahwa username
atau password atau
salah (Oracle)
url salah
152
ditampilkan
6.1.1.1.3 Pengujian Seleksi Atribut
Berikut merupakan data pengujian untuk fungsi seleksi atribut pada kelas
HalamanUtama.
Tabel 6.4 Tabel Pengujian Seleksi Atribut
Kasus dan Hasil Uji (Data Benar)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
Memilih satu atau Atribut beserta data
lebih atribut yang dalam tabel yang
akan dihilangkan dipilih terhapus
lalu
menekan
tombol
„Hapus
Atribut‟
Data sesuai atribut Diterima
yang
terpilih
berhasil terhapus
dari tabel
Menekan tombol Semua atribut
dalam tabel
„Tandai Semua‟
„Seleksi Atribut‟
akan ditandai untuk
dihapus
Semua
atribut Diterima
dalam
tabel
berhasil ditandai
Menekan
„Batal
Semua‟
Semua
atribut Diterima
dalam tabel tidak
ditandai
tombol Semua atribut
Tandai dalam tabel
„Seleksi Atribut‟
tidak ditandai
Kasus dan Hasil Uji (Data Salah)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
153
6.1.1.1.4 Pengujian Deteksi Outlier
Berikut merupakan data pengujian untuk fungsi deteksi outlier pada kelas
HalamanUtama.
Tabel 6.5 Tabel Pengujian Deteksi Outlier
Kasus dan Hasil Uji (Data Benar)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Melakukan proses
deteksi
outlier
menggunakan
algoritma
Naïve
Nested Loop
Hasil deteksi
outlier beserta
atribut berhasil
ditampilkan
Hasil
Didapat
yang Kesimpulan
Hasil
deteksi Diterima
outlier
beserta
atribut
berhasil
ditampilkan
Kasus dan Hasil Uji (Data Salah)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
Input
nilai Pesan
peringatan Pesan peringatan Diterima
parameter M atau bahwa
nilai tertampil
dmin ada yang parameter M atau
dmin ada yang
kosong
kosong
Input
nilai
parameter M atau
dmin bukan angka
atau mengandung
karakter
Pesan
peringatan Pesan peringatan Diterima
bahwa
nilai tertampil
parameter M atau
dmin bukan angka
atau mengandung
karakter
6.1.1.1.5 Pengujian Lihat Grafik Distribusi Atribut
Berikut merupakan data pengujian untuk fungsi lihat grafik distribusi setiap
atribut pada kelas HalamanUtama.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
154
Tabel 6.6 Tabel Pengujian Lihat Grafik Distribusi Atribut
Kasus dan Hasil Uji (Data Benar)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
Memilih
atribut
nama Detail jumlah data
dari
atribut
tertampil ke dalam
tabel
Detail jumlah data Diterima
dari
atribut
berhasil tertampil
ke dalam tabel
Menekan tombol Detail jumlah data
tertampil
dalam
„Lihat Grafik‟
bentuk
diagram
batang
Detail jumlah data Diterima
berhasil ertampil
dalam
bentuk
diagram batang
Kasus dan Hasil Uji (Data Salah)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
6.1.1.1.6 Pengujian Simpan Hasil Deteksi Outlier
Berikut merupakan data 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)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Menekan tombol File tersimpan
„Simpan
Hasil sesuai dengan
nama dan lokasi
Outlier‟ (.doc)
penyimpanan yang
ditentukan
pengguna dan
berformat .doc
Hasil
Didapat
yang Kesimpulan
File
berformat Diterima
.doc
berhasil
disimpan dengan
nama dan lokasi
yang ditentukan
pengguna
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Menekan tombol File tersimpan
„Simpan
Hasil sesuai dengan
nama dan lokasi
Outlier‟ (.txt)
penyimpanan yang
ditentukan
pengguna dan
berformat .txt
155
File berformat .txt Diterima
berhasil disimpan
dengan nama dan
lokasi
yang
ditentukan
pengguna
Kasus dan Hasil Uji (Data Salah)
Aktifitas
dilakukan
yang Keluaran yang
Diharapkan
Hasil
Didapat
yang Kesimpulan
6.1.1.1.7 Kesimpulan Hasil Pengujian Blackbox
Berdasarkan hasil pengujian terhadap kasus tertentu yang telah disebutkan
di atas, dapat ditarik kesimpulan bahwa sistem pendeteksi outlier ini dapat
menangani error handling ketika fungsi yang dijalankan salah atau tidak
sesuai aturan pakainya. Sedangkan secara fungsional sistem dapat berjalan
dengan baik dan menghasilkan keluaran yang sesuai dengan yang
diharapkan.
6.1.1.2 Hasil Pengujian Efek Perubahan Nilai Atribut Penambangan Data
Pengujian terhadap Sistem Pendeteksi Outlier Menggunakan Algoritma Naïve
Nested Loop dapat dilakukan dengan mengubah nilai input parameter M dan
dmin. Berikut adalah tabel hasil deteksi outlier yang diperoleh dari eksekusi
data akademik mahasiswa program studi Teknik Informatika tahun angkatan
2007 dan 2008 dengan data sebanyak 126 buah menggunakan nilai input
parameter M dan dmin yang bervariasi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
156
6.1.1.2.1 Pengujian Dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Tes Tertulis
Tabel 6.8 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai M
dan dmin yang berubah-ubah
M=1
M=2
M=3
M=4
M=5
dmin = 1
27
32
36
42
46
dmin = 2
1
2
2
2
2
dmin = 3
0
0
0
0
0
dmin = 4
0
0
0
0
0
dmin
dmin
Jumlah
Outlier
Jumlah
Outlier
Gambar 6.1a Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008
Jalur Tes Tertulis Semester 1 dengan
Nilai M = 1 dan dmin berubah-ubah
Gambar 6.1b Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes Tertulis Semester 1 dengan Nilai M = 2
dan dmin berubah-ubah
M
M
Jumlah
Outlier
Jumlah
Outlier
Gambar 6.2a Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008
Jalur Tes Tertulis Semester 1 dengan
Nilai M berubah-ubah dan dmin = 1
Gambar 6.2b Grafik Hasil Outlier
Mahasiswa Angkatan 2007 dan 2008
Jalur Tes Masuk Semester 1 dengan Nilai
M berubah-ubah dan dmin 2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
157
6.1.1.2.2 Pengujian Dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Tes Prestasi
Tabel 6.9 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai M
dan dmin yang berubah-ubah
M=1
M=2
M=3
M=4
M=5
dmin = 1
0
1
1
1
1
dmin = 2
0
0
0
0
0
dmin = 3
0
0
0
0
0
dmin = 4
0
0
0
0
0
dmin
dmin
Jumlah
Outlier
Jumlah
Outlier
Gambar 6.3a Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008
Jalur Tes Prestasi Semester 1 dengan
Nilai M = 2 dan dmin berubah-ubah
Gambar 6.3b Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008
Jalur Tes Prestasi Semester 1 dengan
Nilai M = 3 dan dmin berubah-ubah
M
M
Jumlah
Outlier
Jumlah
Outlier
Gambar 6.4a Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008
Jalur Tes Prestasi Semester 1 dengan
Nilai M berubah-ubah dan dmin = 1
Gambar 6.4b Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008
Jalur Tes Prestasi Semester 1 dengan
Nilai M berubah-ubah dan dmin = 2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
158
6.1.1.2.3 Pengujian Dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008
Tabel 6.10 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes dan Jalur Prestasi Semester 1
dengan nilai M dan dmin yang berubah-ubah
M=1
M=2
M=3
M=4
M=5
dmin = 1
0
0
1
1
2
dmin = 2
0
0
0
0
0
dmin = 3
0
0
0
0
0
dmin = 4
0
0
0
0
0
dmin
dmin
Jumlah
Outlier
Jumlah
Outlier
Gambar 6.5a Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan
Nilai M = 4 dan dmin berubah-ubah
Gambar 6.5b Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan
Nilai M = 5 dan dmin berubah-ubah
M
M
Jumlah
Outlier
Jumlah
Outlier
Gambar 6.6a Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan
Nilai M berubah-ubah dan dmin = 1
Gambar 6.6b Grafik Jumlah Outlier
Mahasiswa Angkatan 2007 dan 2008 Jalur
Tes dan Jalur Prestasi Semester 1 dengan
Nilai M berubah-ubah dan dmin = 2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
159
6.1.1.2.4 Kesimpulan Hasil Pengujian Efek Perubahan Nilai Atribut
Penambangan Data
Dari hasil percobaan pengubahan nilai M dan dmin yang tertera pada
tabel dan grafik di atas dapat disimpulkan bahwa :
1. Jika nilai parameter M tetap dan dmin bertambah maka jumlah outlier
yang didapatkan akan tetap atau semakin sedikit seperti terlihat pada
gambar grafik 6.1a-b , grafik 6.3a-b, grafik 6.5a-b. Hal ini disebabkan
karena semakin luas jangkauan dmin sedangkan jumlah M tetap membuat
data semakin mudah menemukan tetangganya sehingga makin kecil
kemungkinan data dianggap sebagai outlier.
2. Jika nilai parameter M bertambah dan dmin tetap maka jumlah outlier
yang didapatkan akan akan tetap atau semakin banyak seperti terlihat pada
gambar grafik grafik 6.2a-b , grafik 6.4a-b, grafik 6.6a-b. Hal ini
disebabkan karena semakin banyak jumlah tetangga yang harus dimiliki
oleh sebuah data pada jangkauan yang sama sehingga membuat data sulit
menemukan jumlah tetangga yang semakin banyak tersebut dan makin
besar kemungkinan data dianggap sebagai outlier.
6.1.1.3 Hasil Pengujian Validitas dan Review oleh Pengguna
6.1.1.3.1 Perbandingan Perhitungan Manual dan Hasil Sistem
Dataset yang digunakan adalah data akademik mahasiswa program studi
Teknik Informatika tahun angkatan 2007 yang diterima melalui jalur
tes tertulis. Atribut yang akan digunakan terdiri dari ips1, ips2,ips3,
ips4, nil11, nil12, nil13, nil14, nil15. Data akademik tersebut akan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
160
diproses dan dihitung secara manual menggunakan Microsoft Excel untuk
ditemukan
hasil
outlier-nya.
Hasil
perhitungan
secara
manual
menggunakan algoritma Naïve Nested Loop akan dibandingkan dengan
hasil
deteksi outlier yang diperoleh Sistem Pendeteksi Outlier
Menggunakan Algoritma Naive Nested Loop. Berikut merupakan tabel
perbandingan hasil
deteksi outlier dari data akademik mahasiswa
program studi Teknik Informatika tahun angkatan 2007 yang diterima
melalui jalur tes tertulis menggunakan perhitungan manual dan
perhitungan sistem :
Tabel 6.11 Tabel Perbandingan Hasil Outlier Mahasiswa Program Studi
Teknik Informatika Angkatan 2007 Jalur Tes Tertulis
Input
Parameter
Perhitungan
Semester
Hasil Outlier
Hitung Manual
Sistem
No.Urut : 2,8,10
No.Urut : 2,8,10
No.Urut : 2,5,8,10
No.Urut : 2,8,10
No.Urut : 2,8,10
No.Urut : 2,8,10
No.Urut : 2,5,8,10
No.Urut : 2,8,10
(M, dmin)
M = 4,
dmin = 2
1
2
3
4
Tabel 6.12 Tabel Nilai per Atribut Hasil Outlier Mahasiswa Program Studi
Teknik Informatika Angkatan 2007 Jalur Tes Tertulis
Nilai per Atribut dari Hasil Outlier
No.Urut
Mahasiswa
ips1
ips2
ips3
ips4
nil1
nil2
nil3
nil4
nil5
2
1.72
1.65
1.53
1.68
1.20
0.80
3.20
1.20
0.40
5
2.94
2.59
1.55
2.35
2.40
1.60
2.40
1.20
2.80
8
1.44
2.42
2.53
1.96
4.00
2.00
3.60
2.40
2.80
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
1.72
2.65
2.43
2.24
2.80
2.40
3.20
3.20
161
0.80
Dari hasil perbandingan di atas dapat dilihat bahwa pada data mahasiswa
program studi Teknik Informatika angkatan 2007 yang masuk melalui
jalur tes tertulis dengan pendeteksian outlier yang dilakukan per semester
menghasilkan hasil outlier dari perhitungan manual dan sistem yang tepat
sama. Maka, dapat disimpulkan bahwa sistem dapat dengan benar
menghasilkan deteksi outlier yang sesuai dengan perhitungan manualnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI162
6.1.1.3. 2 Hasil Deteksi dari Sistem untuk Pengujian Review dan
Validitas oleh Pengguna
Untuk meyakinkan bahwa hasil deteksi outlier adalah benar,
maka hasil dari sistem perlu dianalisis oleh Kaprodi agar didapatkan
kepastian apakah dari sekumpulan data akademik tersebut diperoleh
mahasiswa yang dinyatakan sebagai outlier karena memiliki nilai
yang berbeda dengan kebanyakan mahasiswa lain. Berikut
merupakan hasil outlier yang diperoleh sistem untuk tiga macam
dataset yang digunakan pada pengujian review dan validitas :
1. Hasil outlier untuk data mahasiswa program studi Teknik
Informatika angkatan 2007 dan 2008 jalur tes tertulis (72
mahasiswa)
yang
diperoleh
dari
semester
1
sampai
4
menggunakan atribut ips1, ips2, ips3, ips4, nil1, nil2, nil3, nil4,
nil5 dengan nilai M = 5 dan dmin = 2.
Tabel 6.13 Tabel Hasil Outlier untuk Data Mahasiswa Program
Studi Teknik Informatika angkatan 2007 dan 2008 Jalur Tes
Tertulis
Semester No.Urut
ips1 ips2 ips3 ips4 nil1
nil2 nil3 nil4 nil5
Mahasiswa
1
2
1.72 1.20 0.80 3.20 1.20 0.40
8
1.44 4.00 2.00 3.60 2.40 2.80
2
2
1.65 1.20 0.80 3.20 1.20 0.40
52
1.28 2.40 3.20 3.60 2.80 3.20
54
1.04 3.20 2.00 3.60 3.20 1.60
3
2
1.53 1.20 0.80 3.20 1.20 0.40
30
0.59 2.40 2.40 2.80 1.20 3.60
54
0.19 3.20 2.00 3.60 3.20 1.60
4
2
1.68 1.20 0.80 3.20 1.20 0.40
16
1.07 2.40 1.60 2.80 3.60 2.80
27
0.05 2.80 2.40 2.40 2.00 2.00
47
0.00 2.80 2.00 1.20 1.60 1.60
48
0.00 2.80 1.60 2.00 2.40 1.20
52
0.82 2.40 3.20 3.60 2.80 3.20
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI163
2. Hasil outlier untuk data mahasiswa program studi Teknik
Informatika angkatan 2007 dan 2008 jalur prestasi (54
Mahasiswa) yang diperoleh dari semester 1 sampai 4
menggunakan atribut ips1, ips2, ips3, ips4, final dengan nilai
M= 5 dan dmin = 1.
Tabel 6.14 Tabel Hasil Outlier untuk Data Mahasiswa
Program Studi Teknik Informatika angkatan 2007 dan 2008
Jalur Prestasi
Semester
1
2
3
4
No.Urut
Mahasiswa
76
71
124
71
88
ips1
ips2
ips3
ips4
Final
0.85
-
0.32
0.44
-
0.69
-
0.94
2.85
2.72
2.90
2.72
2.89
3. Hasil outlier untuk data mahasiswa program studi Teknik
Informatika angkatan 2007 dan 2008 (126 mahasiswa) yang
diperoleh dari semester 1 sampai 4 menggunakan atribut
ips1,ips2,ips3,ips4, dan nilai final dengan nilai M = 5 dan dmin
= 1.
Tabel 6.15 Tabel Hasil Outlier untuk Data Mahasiswa Program
Studi Teknik Informatika angkatan 2007 dan 2008 Jalur Tes
Tertulis dan Prestasi
Semester No. Urut
Mahasiswa
1
2
76
2
71
2
124
3
2
ips1
ips2
ips3
ips4
Final
Jalur Tes
1.72
0.85
-
0.32
1.65
0.44
-
1.53
-
1.12
2.85
2.72
1.12
2.90
1.12
Tes
Prestasi
Prestasi
Tes
Prestasi
Tes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI164
71
30
54
2
47
48
4
-
-
0.69
0.59
0.19
-
1.68
0.00
0.00
2.72
2.56
2.56
1.12
2.04
2.00
Prestasi
Tes
Tes
Tes
Tes
Tes
6.1.1.3.3 Kesimpulan Hasil Pengujian Review dan Validitas oleh
Pengguna
Berdasarkan hasil yang diperoleh sistem dengan menggunakan tiga jenis
masukan data di atas dan berdasarkan hasil analisa menurut pengguna
dalam hal ini Kaprodi Teknik Informatika, dapat disimpulkan bahwa :
1. Pada data mahasiswa program studi Teknik Informatika angkatan
2007 dan 2008 jalur tes tertulis, hasil outlier yang diperoleh sistem
adalah sebagai berikut :
a. Hasil outlier perhitungan semester 1, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 2 dan 8.
b. Hasil outlier perhitungan semester 2, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 2,52, dan 54.
c.
Hasil outlier perhitungan semester 3, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 2,30, dan 54.
d.
Hasil outlier perhitungan semester 4, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 2, 16, 27, 47,
48, dan 52
Hal serupa disampaikan pula oleh pengguna yang menyatakan
bahwa mahasiswa dengan nomor urut 2 dan 8 pada perhitungan
semester 1 merupakan outlier karena pada kenyataannya mahasiswa
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI165
dengan nomor urut 2 memiliki nilai indeks prestasi dan nilai tes masuk
yang lebih rendah dibandingkan dengan mahasiswa lain. Sedangkan
mahasiswa dengan nomor urut 8 memiliki nilai indeks prestasi yang
lebih rendah dan nilai tes masuk yang jauh lebih tinggi dibanding
mahasiswa lain.
Pada perhitungan semester 2, pengguna menyatakan bahwa
mahasiswa dengan nomor urut 2, 52, dan 54 adalah outlier, hal ini
dikarenakan mahasiswa dengan nomor urut 52 dan 54 memiliki nilai
indeks prestasi yang lebih rendah dibanding mahasiswa lain.
Sementara itu, mahasiswa dengan nomor urut 2 masih memiliki nilai
indeks prestasi dan nilai tes masuk yang rendah.
Pada perhitungan semester 3, pengguna menyatakan bahwa
mahasiswa dengan nomor urut 2, 30, dan 52 adalah outlier, hal ini
dikarenakan mahasiswa dengan nomor urut 2, 30, dan 52 memiliki
nilai indeks prestasi yang lebih rendah dibanding mahasiswa lain.
Pada perhitungan semester 4, pengguna menyatakan bahwa
mahasiswa dengan nomor urut 2, 16, 27, 47, 48, dan 52 adalah outlier,
hal ini dikarenakan keenam mahasiswa tersebut memiliki nilai indeks
prestasi yang lebih rendah dibandingkan dengan mahasiswa lain.
2. Pada data mahasiswa program studi Teknik Informatika angkatan
2007 dan 2008 jalur prestasi, hasil outlier yang diperoleh sistem
adalah sebagai berikut :
a. Hasil outlier perhitungan semester 1, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 76.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI166
b. Hasil outlier perhitungan semester 2, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 71 dan 124.
c. Hasil outlier perhitungan semester 3, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 71.
e. Hasil outlier perhitungan semester 4, mahasiswa yang dinyatakan
sebagai outlier adalah mahasiswa dengan nomor urut 88.
Hal serupa disampaikan pula oleh pengguna yang menyatakan
bahwa mahasiswa dengan nomor urut 76 pada perhitungan
semester 1 merupakan outlier karena pada kenyataannya
mahasiswa dengan nomor urut 76 memiliki nilai indeks prestasi
yang lebih rendah dibandingkan dengan mahasiswa lain.
Pada perhitungan semester 2, pengguna menyatakan bahwa
mahasiswa dengan nomor urut 71 dan 124 adalah outlier, hal ini
dikarenakan mahasiswa dengan nomor urut 71 dan 124 memiliki
nilai indeks prestasi yang lebih rendah dibanding mahasiswa lain.
Pada perhitungan semester 3, pengguna menyatakan bahwa
mahasiswa dengan nomor urut 71 adalah outlier, hal ini
dikarenakan mahasiswa dengan nomor urut 71 memiliki nilai
indeks prestasi yang lebih rendah dibanding mahasiswa lain.
Pada perhitungan semester 4, pengguna menyatakan bahwa
mahasiswa dengan nomor urut 88 adalah outlier, hal ini
dikarenakan mahasiswa dengan nomor urut 88 memiliki nilai
indeks prestasi yang lebih rendah dibanding mahasiswa lain.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI167
3. Pada data mahasiswa program studi Teknik Informatika angkatan
2007 dan 2008, hasil outlier yang diperoleh sistem adalah sebagai
berikut :
a. Hasil outlier perhitungan semester 1, mahasiswa yang
dinyatakan sebagai outlier adalah mahasiswa dengan nomor
urut 2 dan 76.
b. Hasil outlier perhitungan semester 2, mahasiswa yang
dinyatakan sebagai outlier adalah mahasiswa dengan nomor
urut 71, 2 dan 124.
c. Hasil outlier perhitungan semester 3, mahasiswa yang
dinyatakan sebagai outlier adalah mahasiswa dengan nomor
urut 2, 71, 30, dan 54.
d. Hasil outlier perhitungan semester 4, mahasiswa yang
dinyatakan sebagai outlier adalah mahasiswa dengan nomor
urut 2, 47, dan 48.
Hal serupa disampaikan pula oleh pengguna yang
menyatakan bahwa mahasiswa dengan nomor urut 2 dan 76
pada perhitungan semester 1 merupakan outlier karena pada
kenyataannya mahasiswa dengan nomor urut 2 dan 76 memiliki
nilai indeks prestasi yang lebih rendah dibandingkan dengan
mahasiswa lain.
Pada perhitungan semester 2, pengguna menyatakan
bahwa mahasiswa dengan nomor urut 71, 2, dan 124 adalah
outlier, hal ini dikarenakan mahasiswa dengan nomor urut 2, 71
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI168
dan 124 memiliki nilai indeks prestasi yang lebih rendah
dibanding mahasiswa lain.
Pada perhitungan semester 3, pengguna menyatakan
bahwa mahasiswa dengan nomor urut 2, 71, 30, 54 adalah
outlier, hal ini dikarenakan mahasiswa dengan nomor urut 2,
71, 30, 54 memiliki nilai indeks prestasi yang lebih rendah
dibanding mahasiswa lain.
Pada
perhitungan
semester
4,
pengguna
juga
menyatakan bahwa mahasiswa dengan nomor urut 2, 47, dan 48
adalah outlier, hal ini dikarenakan mahasiswa dengan nomor
urut 2, 47, dan 48 memiliki nilai indeks prestasi yang lebih
rendah dibanding mahasiswa lain.
6.2 Kelebihan dan Kekurangan Sistem
Sistem pendeteksi outlier yang dibangun ini memiliki kelebihan dan
kekurangan, berikut merupakan kelebihan dan kekurangan sistem :
6.2.1 Kelebihan Sistem
Sistem Pendeteksi Outlier Menggunakan Algoritma Naïve Nested Loop yang
dibangun ini memiliki kelebihan :
1. Sistem mampu menerima masukan data berupa file .xls , .csv, atau
data dari tabel basisdata (Oracle atau mySQL)
2. Sistem mampu menyimpan hasil deteksi outlier ke dalam file
berekstensi .doc dan .txt.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI169
3. Sistem mampu melakukan seleksi atribut sebelum pengguna
melakukan deteksi outlier terhadap data yang dimasukkan.
6.2.2 Kekurangan Sistem
Sistem Pendeteksi Outlier Menggunakan Algoritma Naïve Nested Loop yang
dibangun ini memiliki kekurangan :
1. Sistem tidak dapat menangani error handling
ketika data
berekstensi .csv mengandung karakter bukan angka dan ketika
baris dalam file tersebut kosong
2. Sistem tidak dapat melakukan seleksi baris pada data yang berasal
dari tabel dalam basisdata maupun data berekstensi .xls dan .csv
3. Sistem tidak mampu menerima masukan data berupa file
berekstensi .arff, .dat, dan lain-lain atau dengan kata lain sistem
hanya bisa menerima masukan data dengan ekstensi tertentu.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VII
KESIMPULAN DAN SARAN
7.1 Kesimpulan
Kesimpulan yang dapat diperoleh sebagai hasil dari penyelesaian tugas
akhir ini adalah: .
1. Sistem Pendeteksi Outlier Menggunakan Algoritma Naïve Nested Loop
telah berhasil diimplementasikan menjadi aplikasi yang dapat digunakan
sebagai alat bantu pencarian outlier dalam sekumpulan data akademik
mahasiswa Teknik Informatika Universitas Sanata Dharma, Yogyakarta
angkatan 2007 dan 2008.
2. Algoritma Naïve Nested Loop terbukti dapat menemukan mahasiswa
dengan kalkulasi nilai yang berbeda dari mahasiswa lain sehingga
mahasiswa tersebut dinyatakan sebagai outlier.
3. Penentuan nilai parameter pada algoritma Naïve Nested Loop yaitu nilai M
dan dmin berpengaruh terhadap jumlah hasil outlier yang dihasilkan.
4. Hasil perhitungan manual dan sistem menghasilkan hasil deteksi outlier
dengan hasil yang sama.
5. Satu atribut yang bernilai rendah atau tinggi sekali dibanding nilai atribut
lain pada satu objek data, dapat memunculkan kemungkinan sebuah data
dinyatakan sebagai outlier.
170
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
171
6. Berdasarkan pengujian review dan validitas oleh Kaprodi Teknik
Informatika dapat disimpulkan bahwa hasil deteksi outlier yang diperoleh
sistem layak dinyatakan sebagai outlier.
7.2 Saran
Berdasarkan hasil analisa dan pengujian pada tugas akhir ini, penulis
memberikan saran untuk perbaikan dalam pengembangan penelitian dan sistem
secara lebih lanjut antara lain :
1. Pengujian review dan validitas sangat penting dilakukan setelah pengguna
melakukan deteksi outlier dengan sistem agar diperoleh hasil outlier yang
benar-benar valid. Pengujian tersebut dilakukan oleh pengguna dalam hal ini
orang yang ahli dan mengerti tentang data tersebut.
2. Saat ini sistem hanya bisa menerima masukan data dari file yang berekstensi
.xls, .csv, dan data yang berasal dari tabel pada basisdata sehingga format
masukan data terbatas. Untuk selanjutnya, sistem ini dapat dilengkapi
dengan fungsi tambahan agar dapat menerima data dengan masukan format
lain seperti .arff, .dat, dan lain-lain.
3. Sistem hanya dapat melakukan seleksi atribut berdasarkan nama atribut yang
dipilih oleh pengguna. Sistem ini seharusnya dapat melakukan seleksi baris
pada semua jenis data masukan sehingga pengguna dapat lebih spesifik
memilih baris mana saja yang akan dimasukkan sebelum melakukan deteksi
outlier. Sistem dapat juga dilengkapi metode khusus sehingga dapat
menyediakan fungsi untuk memberitahu pengguna atribut mana saja yang
direkomendasikan dalam proses deteksi outlier.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
172
DAFTAR PUSTAKA
Abu Tair, Mohammed M., El-Halees, Alaa M. (2012). Mining Educational Data
to Improve Student‟s Performance: A Case Study. International Journal
of Information and Communication Technology Research.
Han, Jiawei & Micheline Kamber (2006). Data Mining Concepts and
Techniques Second Edition. San Fransisco : Elsovier.
Handriyani, Deni & M.Arif Bijaksana, dkk . (2009). Analisa Perbandingan
Clustering-Based, Distance-Based, dan Density Based dalam
Mendeteksi Outlier. IT Telkom Bandung.
Knorr, Edwin M. (2002). Outlier and Data Mining: Finding Exception in Data.
The University of British Columbia.
Rosa, Paulina Heruningsih Prima, Ridowati Gunawan, Sri Hartati Wijono. (2013).
The Development of Academic Data Warehouse as a Basis for Decision
Making : A Case Study at XYZ University. Proceeding of International
Conference on Enterprise Information System and Application.
Universitas Islam Indonesia, Yogyakarta, Indonesia 2013.
Santosa, Budi. (2007). Data Mining Teknik Pemanfaatan Data untuk
Keperluan Bisnis. Yogyakarta :Graha Ilmu.
Tan, Pang-Ning. & Michael Steinbach, dkk. (2005). Introduction of Data
Mining. Addison-Wesley Companion Book Site.
C Simanjuntak, Ellisa &
Ruthyanti Grace, dkk (2010). Blackbox Testing.
http://teknologi.kompasiana.com/gadget/2010/12/13/blackboxtesting324503.html Diakses pada tanggal 2 Juni 2013 jam 12.33
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Hatta
(2012).
Metode
Mendeteksi
173
Outlier.
http://muhammadhatta12.blogspot.com/2012/03/metode-mendeteksioutlier_18.html Diakses pada tanggal 5 November 2012 jam 18.32
Khannedy,
Eko.
(2010).
Menampilkan
JCheckBox
di
http://eecchhoo.wordpress.com/2010/07/15/menampilkan-jcheckboxjtable/comment-page-1/ Diakses tanggal 11 Mei 2013 jam 15:11
JTable.
di-
MadProgrammer.(2012). How to adjust JTable columns to fit the longest content
in column cells
http://stackoverflow.com/questions/13013989/howto-
adjust- jtable-columns-to-fit-the-longest-content-in-column-cells
Diakses pada tanggal 9 Mei 2013 jam 14.15
Pei, Jian. (2009). CMTP 741 Foundation of Data Mining – OutlierDetection.pdf.
http://www.cs.sfu.ca/CourseCentral/741/jpei/slides/ Diakses pada tanggal
22 Agustus 2013 jam 15.00
Pramudiono, I. (2007). Pengantar Data Mining : Menambang Permata
Pengetahuan di Gunung
Data.
http://www.ilmukomputer.org/wpcontent/uploads/2006/08/iko-datamining.zip
Diakses pada tanggal 15
November 2012 jam 21.32
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN I
Deskripsi Usecase
Nomor
Nama Use Case
Use Case
001
Input data file .xls ,
.csv atau tabel
basisdata
002
Deteksi outlier
003
Simpan hasil deteksi
outlier
004
Seleksi atribut
005
Lihat grafik distribusi
per atribut
Deskripsi
Use
case
ini
menggambarkan
proses
di
mana
pengguna
memilih
data
dalam
file
berformat .xls , .csv
atau data dari tabel
dalam basisdata untuk
selanjutnya
ditampilkan ke dalam
tabel data sebelum
dilakukan
proses
pencarian outlier
Use
case
ini
menggambarkan
proses
pencarian
outlier terhadap data
yang
telah
dimasukkan
oleh
pengguna
Use
case
ini
menggambarkan
proses
dimana
pengguna menyimpan
hasil pencarian outlier
dalam bentuk file
dengan
format
ekstensi .doc atau .txt
Use
case
ini
menggambarkan
proses
di
mana
pengguna
dapat
memilih
atribut
dengan
menghapus
atribut
tersebut
sebelum melakukan
pencarian outlier
Use
case
ini
menggambarkan
pengguna
telah
174
Aktor
Pengguna
Pengguna
Pengguna
Pengguna
Pengguna
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
memasukkan data ke
dalam sistem dan akan
melihat distribusi data
per atribut dalam
bentuk
diagram
batang
175
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN II
Narasi Use Case
Setiap usecase pada bagian sebelumnya akan dirinci dalam sebuah
narasi yang merupakan deskripsi bagaimana pengguna berinteraksi dengan
sistem dalam menyelesaikan usecase tersebut.
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Input data file .xls , .csv
atau tabel basisdata
001
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
-
Use case ini menggambarkan proses di mana
pengguna memilih data dalam file berformat
.xls , .csv atau data dari tabel dalam basisdata
untuk selanjutnya ditampilkan ke dalam tabel
data sebelum dilakukan proses pencarian
outlier
Pengguna telah masuk ke sistem dan berada
Kondisi Awal :
pada Halaman Utama
Urutan Aktivitas Normal Aksi Aktor
Respon Sistem
:
Langkah 1 : Pengguna
memilih tabbed pane
“Preprocess” pada
Halaman Utama
Langkah 2 : Sistem
menampilkan
tampilan tabbed
pane “Preprocess”
pada Halaman
Utama
Langkah 3 : Pengguna
menekan tombol “Pilih
File” untuk mengambil
data dari .xls atau .csv
Langkah 4 : Sistem
menampilkan kotak
dialog
176
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Langkah 5 : Pengguna
memilih file .xls atau
.csv yang akan diproses
JFileChooser
Langkah 6 :Sistem
membaca data pada
file .xls atau .csv
untuk selanjutnya
data
tersebut
ditampilkan
ke
dalam tabel data
pada
Halaman
Utama
beserta
dengan jumlah data
dan jumlah atribut.
Aktivitas Alternatif
Langkah 3a : Pengguna
menekan tombol “Pilih
Database”
untuk
mengambil data yang Langkah
4a
:
berasal dari database
Sistem
menampilkan
Halaman
Pilih
Database
Langkah 5a : Pengguna
memilih jenis database,
memasukkan username,
password,
database
(khusus Oracle), dan
URL
Langkah 6a : Pengguna
menekan tombol “OK”
Langkah
7a
:
Sistem
menampilkan kotak
dialoh
koneksi
berhasil
Langkah 8a : Pengguna
menekan tombol “OK”
Langkah
9a
:
Sistem
menampilkan
Halaman Tampil
Tabel
Langkah 10 a : memilih
tabel dan tekan tombol
“Pilih Tabel”
177
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Kondisi Akhir
Langkah 11a
:Sistem membaca
data pada tabel
basisdata untuk
selanjutnya data
tersebut
ditampilkan ke
dalam tabel data
pada Halaman
Utama beserta
dengan jumlah data
dan jumlah atribut.
Data masukan yang telah dipilih tertampil
tabel data pada Halaman Utama tabbed pane
“Preprocess” dan “Deteksi Outlier” dan
menampilkan data tabel SeleksiAtribut
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Deteksi Outlier
002
Kondisi Awal :
-Pengguna telah memilih atribut pada tabbed
pane “Preprocess” dan telah menekan tombol
“Submit Data”
- Pengguna telah memasukkan data
Aksi Aktor
Respon Sistem
Urutan Aktivitas
Normal :
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
Use case ini menggambarkan proses pencarian
outlier terhadap data yang telah dimasukkan
oleh pengguna
Langkah 1 : Pengguna
memilih tabbed
pane
“Deteksi Outlier “
Langkah 2 : Sistem
menampilkan
tampilan
tabbed
pane
“Deteksi
Outlier”
pada
178
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Halaman Utama
Langkah 3 : Pengguna
memasukkan
nilai
parameter M dan dmin
Langkah 4 : Pengguna
menekan tombol “Proses”
Langkah 5 : Sistem
mengambil
data
yang terdapat pada
tabel data dan
memproses
data
tersebut
menggunakan
algoritma
Naïve
Nested Loop
Langkah 6 : Sistem
menampilkan hasil
deteksi
outlier
beserta
dengan
parameter M dan
dmin
sesuai
dengan masukan
pengguna ke dalam
JTextArea
Aktivitas Alternatif
Kondisi Akhir
Pengguna dapat melihat hasil deteksi outlier
beserta dengan parameter masukkannya (M dan
dmin)
Nama Use-case :
Simpan hasil pencarian
outlier
003
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
Use case ini menggambarkan proses dimana
pengguna menyimpan hasil pencarian outlier
dalam bentuk file dengan format ekstensi .doc
179
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Kondisi Awal :
Urutan Aktivitas
Normal :
atau .txt
-Sistem telah menampilkan hasil deteksi
outlier
-Pengguna berada pada tabbed pane “Deteksi
Outlier” pada halaman Utama
Aksi Aktor
Respon Sistem
Langkah 1 : Sistem
menampilkan hasil
deteksi
outlier
beserta
dengan
parameter M dan
dmin sesuai dengan
masukan pengguna
ke dalam JTextArea
Langkah 2 : Pengguna
menekan tombol “Simpan
Hasil Outlier”
Aktivitas Alternatif
Kondisi Akhir
Langkah
3
:
Sistem
menampilkan
kotak
dialog
Langkah 4 : Pengguna penyimpanan file
memilih
lokasi
penyimpanan,
memasukkan nama file
dan jenis format file
Langkah 5 : Pengguna
menekan tombol “Save”
Langkah
6
:
Sistem menyimpan
file hasil deteksi
outlier
sesuai
dengan nama dan
format file serta
lokasi yang sesuai
dengan masukkan
dari pengguna
Hasil deteksi outlier dapat tersimpan dalam
format file berekstensi tertentu sesuai dengan
pilihan pengguna
180
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Seleksi atribut
004
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
-
Use case ini menggambarkan proses di mana
pengguna dapat memilih atribut dengan
menghapus atribut tersebut sebelum melakukan
pencarian outlier
-Sistem telah menampilkan data ke dalam
Kondisi Awal :
tabel data pada “Halaman Utama” tabbed pane
“Preprocess”
Urutan Aktivitas Normal Aksi Aktor
Respon Sistem
:
Langkah
1 :
Sistem
menampilkan
daftar atribut pada
tabel
Seleksi
Langkah 2 :Pengguna Atribut
menandai atribut pada
kolom Pilih dalam tabel
Seleksi Atribut
Langkah 3 : Menekan
tombol Hapus Atribut
Langkah 4 :Sistem
menghapus atribut
terpilih
beserta
data dalam tabel
data
(Halaman
Utama)
Langkah 5 : Sitem
mengjapus atribut
terpilih pada tabel
Seleksi Atribut
Langkah 6 : Sistem
menampilkan data
pada tabel data
(Halaman Utama)
tanpa atribut yang
181
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Aktivitas Alternatif
dihapus
Langkah
2a :Pengguna memilih tombol
„Tandai Semua‟ untuk menghapus semua
atribut atau menekan tombol „Batal Tandai
Semua‟ untuk membatalkannya
Langkah 3a : Menekan tombol Hapus Atribut
Langkah 4a-6a : seperti Aktivitas normal
Kondisi Akhir
Data masukan tampil ke dalam tabel data pada
tabbed pane “Preprocess” dan „Deteksi
Outlier” tanpa atribut yang dihapus
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Lihat grafik per atribut
005
Kondisi Awal :
Urutan Aktivitas
Normal :
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
Use case ini menggambarkan pengguna telah
memasukkan data ke dalam sistem dan akan
melihat distribusi data per atribut dalam bentuk
diagram batang -Sistem telah menampilkan
data ke dalam tabel data pada “Halaman
Utama” tabbed pane “Preprocess”
Aksi Aktor
Respon Sistem
Langkah 1 : Pengguna
menekan tombol
“Distribusi Atribut” pada Langkah 2 : Sistem
“Halaman Utama” tabbed menampilkan
pane “Preprocess”
“Halaman
Distribusi Atribut”
Langkah 3 : Pengguna
atribut pada combo box
daftar atribut
Langkah 4 : Sistem
menampilkan
sebaran data dan
jumlah data untuk
atribut yang dipilih
182
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Langkah 5 : Menekan
tombol „Lihat Grafik‟
Langkah
6
:
Menampilkan
Grafik Distribusi
Atribut
dalam
bentuk
diagram
batang
Aktivitas Alternatif
-
Kondisi Akhir
Pengguna dapat melihat distribusi data untuk
atribut yang dipilih akan ditampilkan dalam
bentuk grafik diagram batang
183
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN III
Diagram Aktivitas
1. Diagram Aktivitas Input data dari file .xls
Pengguna
Sistem
Awal
Menampilkan tampilan tabbed pane
“Preprocess” pada Halaman Utama
Memilih tabbed pane “Preprocess” pada
Halaman Utama
menampilkan kotak dialog
JFileChooser
Menekan tombol “Pilih File”
Memilih file excel
Membaca data pada file excel
Menampilkan data ke dalam tabel
data pada Halaman Utama beserta
dengan jumlah data dan jumlah
atribut , data tabel SeleksiAtribut
Akhir
184
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2. Diagram Aktivitas Input data dari file .csv
Pengguna
Sistem
Awal
Menampilkan tampilan tabbed pane
“Preprocess” pada Halaman Utama
Memilih tabbed pane „Preprocess‟ pada
Halaman Utama
menampilkan kotak dialog
JFileChooser
Menekan tombol “Pilih File”
Memilih file .csv
Membaca data pada file .csv
Menampilkan data ke dalam tabel
data pada Halaman Utama beserta
dengan jumlah data dan jumlah
atribut, data tabel SeleksiAtribut
Akhir
185
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3. Diagram Aktivitas Input data dari tabel dalam basisdata
Pengguna
Sistem
Awal
Menampilkan tampilan tabbed pane
“Preprocess” pada Halaman Utama
memilih tabbed pane “Preprocess” pada
Halaman Utama
menampilkan Halaman
PilihDatabase
menekan tombol “Pilih Database”
memilih basisdata (Oracle atau
mySQL)
Pilih
Oracle
Tidak
Ya
Memasukkan username , password,
URL dan tekan tombol OK
Pilih mySQL lalu memasukkan
username , password,
database,URL dan tekan tombol
OK
Koneksi
Berhasil
?
Tidak
Ya
Tampil kotak dialog koneksi berhasil
A
186
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
A
Menekan tombol OK
Tampil Halaman Tampil Tabel
Pilih Tabel pada combo box
Daftar Tabel , tekan tombol
Pilih Tabel
Menampilkan data ke dalam tabel
data pada Halaman Utama beserta
dengan jumlah data dan jumlah
atribut,data tabel SeleksiAtribut
Akhir
187
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4. Diagram Aktivitas Deteksi Outlier
Pengguna
Sistem
Awal
menampilkan tampilan tabbed pane
“Deteksi Outlier” pada Halaman
Utama
memilih tabbed pane “Deteksi Outlier “
memasukkan nilai parameter M dan
dmin
mengambil data yang terdapat pada
tabel data di Halaman Utama
menekan tombol “Proses”
memproses data dari tabel data
menggunakan algoritma Naïve Nested
Loop
menampilkan hasil deteksi outlier,
parameter M dan D ke dalam
JTextArea
Akhir
188
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5. Diagram Aktivitas Simpan hasil deteksi outlier
Pengguna
Sistem
Awal
menampilkan hasil deteksi outlier,
parameter M dan D ke dalam
JTextArea
menekan tombol “Simpan Hasil
Outlier”
menampilkan kotak dialog
“Simpan File”
memilih lokasi penyimpanan,
memasukkan nama file dan memilih
jenis format file (.txt atau .doc)
menyimpan file hasil deteksi
outlier sesuai masukkan dari
pengguna
menekan tombol “Save”
Akhir
189
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6. Diagram Aktivitas Lihat Distribusi Atribut per Atribut
Pengguna
Sistem
Awal
Menekan tombol „Distribusi Atribut‟
pada Halaman Utama (tabbed pane
Proprocess)
Menampilkan Halaman
Distribusi Atribut
Memilih atribut pada combo
box daftar atribut
Menampilkan sebaran data
dan jumlah data untuk atribut
yang dipilih
Menekan tombol Lihat
Grafik
Menampilkan Grafik
Distribusi Atribut dalam
bentuk diagram batang
Akhir
190
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7. Diagram Aktivitas Seleksi Atribut
Pengguna
Sistem
Awal
Menampilkan daftar atribut
pada tabel Seleksi Atribut
Menandai atribut pada kolom
Pilih dalam tabel Seleksi
Atribut
Menghapus atribut terpilih
beserta data dalam tabel data
(Halaman Utama)
Menekan tombol Hapus
Atribut
Menghapus atribut terpilih
pada tabel Seleksi Atribut
Menampilkan data pada tabel
Data (Halaman Utama) tanpa
atribut yang dihapus
Akhir
191
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8. Diagram Aktivitas Alternatif Seleksi Atribut (Hapus Semua Atribut)
Pengguna
Sistem
Awal
Menampilkan daftar atribut
pada tabel Seleksi Atribut
Tidak
Tandai
Semua
Atribut ?
Ya
Menekan tombol Tandai Semua
Atribut lalu tombol Hapus Atribut
Menekan tombol “Batal Tandai
Semua‟
Menghapus atribut terpilih
beserta data dalam tabel data
(Halaman Utama)
Menghapus atribut terpilih
pada tabel Seleksi Atribut
Menampilkan data pada tabel
Data (Halaman Utama) tanpa
atribut terpilih
Akhir
192
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN IV
Diagram Sequence
1. Diagram Sequence Input data dari file .xls
<<boundary>>
HalamanUtama
.
<<controller >>
CheckBoxTableModel
<<entity >>
SeleksiAtribut
Pengguna
1.tekan tombol
“Pilih File”
2.Tampil
fileChooser
3.Pilih file excel
4.pilihFile()
5.new
CheckBoxTab
leModel
6.tampilkan data
excel ke tabel
data
7.tampilkan data
tabel seleksi atribut
193
5. setAtribut() ,
getAtribut(),setPilih(),
getPilih()
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
Diagram Sequence Input data dari file .csv
<<boundary>>
HalamanUtama
.
<<controller >>
CheckBoxTableModel
<<entity >>
SeleksiAtribut
Pengguna
1.tekan tombol
“Pilih File”
2.Tampil
fileChooser
3.Pilih file csv
4.pilihFile()
5.new
CheckBoxTable
Model
6.tampilkan data
csv ke tabel data
7.tampilkan data
tabel seleksi atribut
194
5. setAtribut() ,
getAtribut(),setPilih(),
getPilih()
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3. Diagram Sequence Input data dari tabel dalam basisdata
<<boundary>>
HalamanUtama
<<controller>>
Database
Controller
<<boundary>>
HalamanPilih
Database
<<entity>>
Database
Connection
<<boundary>>
Halaman
TampilTabel
Pengguna
1.tekan tombol “Pilih
Database”
2.tampilkan
Hal.PilihDatabase
3.pilih koneksi basisdata lalu
masukkan
username,password,database,URL
4.pilih
Database()
5. isConnectedOracle()
Atau
isConnectedSQL
6.Tampil Hal.TampilTabel
8.tampilTableOracle()
atau
tampilTableSQL()
7.tekan tombol “Pilih Tabel”
9.tampilkan data ke tabel data dan seleksi atribut
195
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4. Diagram Sequence Deteksi Outlier
<<boundary>>
HalamanUtama
<<controller>>
Graph_NaiveNL
Pengguna
1.memasukkan
parameter D dan M
2.tekan tombol “Proses”
4.addVertex()
,addEdge(),displayOutlier()
,naiveNL()
3. prosesDeteksi()
5.menampilkan hasil outlier
parameter M dan D ke dalam
JTextArea
196
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5. Diagram Sequence Simpan hasil deteksi outlier
<<boundary>>
HalamanUtama
Pengguna
1.tekan tombol “Simpan Hasil
Outlier”
2.menampilkan kotak dialog simpan
3. memilih lokasi penyimpanan,
memasukkan nama file dan
memilih jenis format file
4.tekan tombol “Save” pada kotak
dialog simpan
5.simpanFile()
6.konfirmasi file berhasil
disimpan
197
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6. Diagram Sequence Lihat Distribusi Atribut per Atribut
<<boundary>>
HalamanUtama
<<boundary>>
HalamanDistribusiAtribut
<<entity>>
DiagramBatang
Pengguna
1.tekan tombol
„Distribusi Atribut‟
2.tampil
Hal.DistribusiAtribut
3.pilih atribut pada
combo box daftar
atribut
4.tampil sebaran data
5.tekan tombol
„Lihat Grafik‟
dan jumlah data
untuk atribut
6.lihat
Grafik()
8. Menampilkan Grafik
Distribusi Atribut dalam
bentuk diagram batang
198
7.tampil()
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7. Diagram Sequence Seleksi Atribut
.
<<boundary>>
HalamanUtama
<<controller >>
CheckBoxTableModel
<<entity >>
SeleksiAtribut
Pengguna
1.tandai atribut pada
kolom Pilih di tabel
Seleksi Atribut
2.tekan tombol
Hapus Atribut
4.new
CheckBoxTab
leModel,
removeRow()
3.hapusAtribut (),
cek_atribut_hapus(),
cek_atribut_kolom(),
updateCellWidth()
6.tampilkan tabel
data tanpa disertai
atribut yang telah
dihapus
199
5. setAtribut() ,
getAtribut(),setPilih
(),getPilih()
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN V
Diagram Kelas
Berikut ini merupakan rincian atribut dan method untuk masing-masing diagram
kelas :
<<entity>>
DatabaseConnection
-url : String
-password :String
-username : String
-connection : Connection
+ getConnectionSQL( : Connection
String, String, String )
+ isConnectedSQL( : boolean
String, String, String)
+ getConnectionOracle( : Connection
String, String, String)
+ isConnectedOracle( : boolean
String, String, String)
+setUrl (String url) : void
+ getUrl () : String
+setConnection (Connection connection : void
+getConnection() : Connection
+setUsername(String username) : void
+getUsername() : String
+setPassword(String password) : void
+getPassword() :String
<<controller >>
DatabaseController
+tampilTableOracle(Connection) : ResultSet
+tampilTableMySql(Connection) :ResultSet
+tampilIsiTable(Connection, String) : ResultSet
200
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<entity>>
Vertex_NaiveNL
+labelData : String
+nilai
: List<Double>
+outlier
: boolean
+Vertex_NaiveNL(String , List <Double>) :
kontruktor
+getLabelData()
: String
+setLabelData(String) : void
+isOutlier() : boolean
+ setOutlier(boolean)
:void
+getNilai() : List<Double>
+setNilai(List<Double>) : void
<<controller>>
Graph_NaiveNL
-matrix : double[][]
-vertex : Vertex_NaiveNL[]
-size : int
+Graph_NaiveNL(int)
konstruktor
+ addVertex(String,
: void
List<Double>)
+ addEdge(int, int, double) : void
+ euclideanDistance(
: double
int,int)
+ naiveNL(double,double) : void
+ displayOutlier(double,
: String
double, String,JTable,String)
<<entity>>
DiagramBatang
+ tampil(int [][], String [][], String [][] ) : void
201
:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<entity>>
SeleksiAtribut
-atribut : String
-pilih :boolean
+SeleksiAtribut(String,boolean) :konstruktor
+getPilih() : boolean
+setPilih(boolean pilih) : void
+getAtribut() : String
+setAtribut(String atribut) : void
<<controller>>
CheckBoxTableModel
+colom: String[]
+lfm
: SeleksiAtribut
+lfm : List<SeleksiAtribut>
+ CheckBoxTableModel() : konstruktor
+getRowCount()
:int
+getColumnCount() :int
+getColumnName(int) : String
+getValueAt(int, int) : Object
+getColumnClass(int) : Class
+setValueAt(Object l, int r, int ) : void
+isCellEditable(int, int) :boolean
+ add(int , SeleksiAtribut) : void
+removeRow() : void
+removeRow2() :void
202
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<boundary>>
HalamanDistribusiAtribut
-atributComboBox : JcomboBox
-daftarLabel : Jlabel
- jDesktopPane1 : JDesktopPane
- jPanel1 : JPanel
- jScrollPane1 : JScrollPane
- jSeparator1 : JSeparator
- keluarButton : JButton
- lihatGrafikButton : JButton
- tabelGrafik : JTable
- model : JTable
- count : int
- tabelLabel : Jlabel
+HalamanDistribusi(List<String>,JTable) :<<konstruktor>>
+ tampilAtribut(List<String, JTable) : void
+ pilihAtributComboBox() : void
+lihatGrafik() : void
-atributComboBoxActionPerformed
(java.awt.event.ActionEvent evt) :
void
-lihatGrafikButtonActionPerformed
(java.awt.event.ActionEvent evt) :
void
-keluarButtonActionPerformed
(java.awt.event.ActionEvent evt) :
void
<<boundary>>
HalamanUtama
- cb_table : CheckBoxTableModel
- seleksi_atribut : SeleksiAtribut
-Dlabel : JLabel
- Mlabel : JLabel
-atributTextField : JTextField
- bantuanButton : JButton
- barisTextField : JTextField
- batalTandaiButton : JButton
-dataPreprocessTable : JTable
-deteksiPanel : Jpanel
-distribusiButton : JButton
-dminTF : JTextField
-fileButton : JButton
-hapusButton : JButton
- hasilDeteksiTextArea : JtextArea
-hasilLabel : .Jlabel
- jDesktopPane1 : JdesktopPane
- jPanel1 : Jpanel
203
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
- jPanel2 : JPanel
- jPanel3 : JPanel
- jScrollPane1 : JScrollPane
- jScrollPane2 : JscrollPane
- jScrollPane4 : JScrollPane
-jScrollPane5 : JScrollPane
- jSeparator1 : JSeparator
- jSeparator2 : JSeparator
- jSeparator3 : JSeparator
- jSeparator4 : JSeparator
- jTabbedPane1 : JTabbedPane
- judulLabel : JLabel
- jumlahAtributLabel : JLabel
- jumlahBarisDeteksi : JTextField
-jumlahDataLabel : JLabel
-jumlahLabel : Jlabel
- keluarButton : JButton
-nilaiMTF : JTextField
-pathLabel : JLabel
- pathTextField : JTextField
- pilihDBButton : JButton
-preprocessPanel : JPanel
- prosesButton : JButton
-prosesLabel : JLabel
-seleksiAtributLabel : JLabel
- seleksiTable : JTable
-simpanFileButton : JButton
- submitDataButton : JButton
- tabel2Label : JLabel
- tabelLabel : JLabel
- tableDeteksiOutlier : JTable
-tandaiSemuaButton : JButton
+ HalamanUtama() : <<konstruktor>>
+ HalamanUtama(DatabaseConnection, String) : <<konstruktor>>
+tampilIsiDataBasisdata(DatabaseConnection conn, String namaTabel)
: void
+ pilihDB() : void
+ submitData() : void
+ distribusiAtribut() : void
+ pilihFile(): void
+ updateCellWidth(JTable) : void
+ adjustJTableRowSizes (JTable) : void
+ adjustColumnSizes(JTable,int,int) : void
+ prosesDeteksi() : void
+ cek_atribut_hapus(String,List<String>) : void
+cek_atribut_kolom(String,Vector) : void
+ hapusAtribut() : void
+ batalTandaiSemuaAtribut(): void
+ tandaiSemuaAtribut(): void
+ simpanFile() : void
204
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
-keluarButtonActionPerformed(java.awt.event.ActionEvent evt) : void
<<boundary>>
HalamanPilihDatabase
-OKButton : JButton
- URLLabel : JLabel
- URLTextField : JTextField
-batalButton : JButton
- databasePilihLabel : Jlabel
- dbComboBox : JcomboBox
- dbLabel : JLabel
- dbTextField : JTextField
- jDesktopPane1 : JDesktopPane
- databasePilihLabel : JLabel
- jPanel1 : JPanel
- passwordField : JPasswordField
- passwordLabel : JLabel
- usernameLabel : JLabel
- usernameTextField : JTextField
+ HalamanPilihDatabase() : <<konstruktor>>
+pilihDatabase() : void
-dbComboBoxActionPerformed(java.awt.event.ActionEvent evt) :
void
- batalButtonActionPerformed(java.awt.event.ActionEvent evt) :
void
- OKButtonActionPerformed(java.awt.event.ActionEvent evt) : void
<<boundary>>
HalamanTampilTabel
- conn : DatabaseConnection
- batalButton : JButton
- daftarLabel : JLabel
-daftarTableComboBox : JComboBox
-jDesktopPane1 : JDesktopPane
- jPanel1 : JPanel
- pilihTabelButton : JButton
+ HalamanTampilTabel(DatabaseConnection , String) :
<<konstruktor>>
+tampilTabel(DatabaseConnection, String) :void
+pilihTabel() : void
-pilihTabelButtonActionPerformed
(java.awt.event.ActionEvent evt) : void
-batalButtonActionPerformed
(java.awt.event.ActionEvent evt) : void
205
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<boundary>>
HalamanBantuan
- jDesktopPane1 : JdesktopPane
- label : JLabel
- panel : JPanel
-kembaliButton : JButton
+HalamanBantuan() : <<konstruktor>>
-kembaliButtonActionPerformed(java.awt.event.ActionEvent evt) :
void
<<boundary>>
HalamanKonfirmasiKeluar
- CancelButton : JButton
- JudulLabel : JLabel
- OKButton : JButton
- jDesktopPane1 : JDesktopPane
- jDesktopPane2 : JdesktopPane
+HalamanKonfirmasiKeluar(java.awt.Frame, boolean) :
<<konstruktor>>
-OKButtonActionPerformed(java.awt.event.ActionEvent evt) : void
-CancelButtonActionPerformed(java.awt.event.ActionEvent evt) :
void
<<boundary>>
HalamanMissingValues
- jDesktopPane1 : JdesktopPane
-jPanel1 : Jpanel
- jScrollPane1 : JScrollPane
- jTextArea1 : JTextArea
- tidakButton : JButton
- yaButton : JButton
- tabel : DefaultTableModel
+ HalamanMissingValues(java.awt.Frame, boolean,
DefaultTableModel) :<<konstruktor>>
-yaButtonActionPerformed(java.awt.event.ActionEvent evt) : void
- tidakButtonActionPerformed(java.awt.event.ActionEvent evt) :
void
206
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<boundary>>
HalamanAwal
- copyrightLabel : Jlabel
- jDesktopPane1 : JDesktopPane
- logoLabel : Jlabel
- jPanel1 : JPanel
- masukButton : JButton
- sistemLabel : JLabel
- univLabel : Jlabel
+ HalamanAwal() : <<konstruktor>>
-masukButtonActionPerformed(java.awt.event.ActionEvent evt) :
void
207
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN VI
Listing Program
Berikut merupakan lampiran dari listring program untuk kelas-kelas yang belum
termuat pada bab implementasi kelas :
1.
Kelas HalamanAwal
public class HalamanAwal extends javax.swing.JFrame {
/** Creates new form HalamanAwal */
HalamanUtama utama = new HalamanUtama();
public HalamanAwal() {
initComponents();
setTitle("Halaman Awal");
}
private void masukButtonActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here
utama.setVisible(true);
this.dispose();
}
// Variables declaration - do not modify
private javax.swing.JLabel copyrightLabel;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
private javax.swing.JLabel logoLabel;
private javax.swing.JButton masukButton;
private javax.swing.JLabel sistemLabel;
private javax.swing.JLabel univLabel;
// End of variables declaration
}
Listing Program Kelas HalamanAwal
208
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2. KelasKonfirmasiKeluar
public class HalamanKonfirmasiKeluar extends javax.swing.JDialog {
/** Creates new form LoginDialog */
public HalamanKonfirmasiKeluar(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
setResizable(false);
}
private void OKButtonActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(null, "Anda berhasil keluar");
java.awt.Window window[] = java.awt.Window.getWindows();
for (int i = 0; i < window.length; i++) {
window[i].dispose();
window[i] = null;
}
}
private void CancelButtonActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
private javax.swing.JButton CancelButton;
private javax.swing.JLabel JudulLabel;
private javax.swing.JButton OKButton;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JDesktopPane jDesktopPane2;
// End of variables declaration
}
Listing Program Kelas HalamanKonfirmasiKeluar
3. Kelas HalamanBantuan
public class HalamanBantuan extends javax.swing.JFrame {
public HalamanBantuan() {
initComponents();
setTitle("Halaman Bantuan");
setResizable(false);
this.getMaximumSize();
setExtendedState(MAXIMIZED_BOTH);
}
private void kembaliButtonActionPerformed(java.awt.event.ActionEvent
209
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
evt) {
this.dispose();
}
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JButton kembaliButton;
}
Listing Program Kelas HalamanBantuan
4. Kelas HalamanMissingValues
public class HalamanMissingValues extends javax.swing.JDialog {
/** Creates new form HalamanMissingValues */
DefaultTableModel tabel;
public HalamanMissingValues(java.awt.Frame parent, boolean modal,
DefaultTableModel model) {
super(parent, modal);
initComponents();
setResizable(false);
tabel = model;
}
private void yaButtonActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
String karakter = "[0-9.]*";
String karakter1 = "[.]*";
for (int i = 0; i < tabel.getRowCount(); i++) {
for (int j = 1; j < tabel.getColumnCount(); j++) {
if ((tabel.getValueAt(i, j) == null)
|| !(tabel.getValueAt(i, j).toString().matches(karakter))
|| (tabel.getValueAt(i, j).toString().matches(karakter1))) {
tabel.setValueAt(0, i, j);
}
}
}
this.dispose();
}
private void tidakButtonActionPerformed(java.awt.event.ActionEvent
evt) {
210
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
this.dispose();
}
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JButton tidakButton;
private javax.swing.JButton yaButton;
}
Listing Program Kelas HalamanMissingValues
211
Download