plagiat merupakan tindakan tidak terpuji plagiat

advertisement
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA LOCAL OUTLIER
PROBABILITY (LoOP)
(STUDI KASUS DATA AKADEMIK MAHASISWA
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS SANATA DHARMA)
Skripsi
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh :
Erlita Octaviani
105314019
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2014
i
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
OUTLIER DETECTION USING LOCAL OUTLIER PROBABILITY (LoOP)
ALGORITHM
(STUDY CASE STUDENTS ACADEMIC DATA OF INFORMATICS
ENGINEERING STUDY PROGRAM OF
SANATA DHARMA UNIVERSITY)
A Thesis
Presented as Partial Fullfillment of the Requirements
To Obtain the Sarjana Komputer Degree
In Study Program of Informatics Engineering
By :
Erlita Octaviani
105314019
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2014
ii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
H ALAMAN PERSETUJUAN
SKRIPSI
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA LOCAL OUTLIER
PROBABILITY (LoOP)
(STUDI KASUS DATA AKADEMIK MAHASISWA
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS SANATA DHARMA)
Oleh :
Erlita Octaviani
105314019
Telah disetujui oleh :
Dosen Pembimbing
Tanggal ….. Desember 2014
Ridowati Gunawan, S.Kom., M.T.
iii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PENGESAHAN
SKRIPSI
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA LOCAL OUTLIER
PROBABILITY (LoOP)
(STUDI KASUS DATA AKADEMIK MAHASISWA
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS SANATA DHARMA)
Yang dipersiapkan dan disusun oleh :
Erlita Octaviani
105314019
Telah dipertahankan di depan Panitia Penguji
Pada tanggal 15 Desember 2014
Dan dinyatakan me menuhi syarat
Susunan Panitia Penguji
Tanda Tangan
Ketua
: P.H. Prima Rosa, S.Si., M.Sc.
…………………
Sekretaris
: Sri Hartati Wijono, S.Si., M.Kom.
…………………
Anggota
: Ridowati Gunawan, S.Kom., M.T.
…………………
Yogyakarta, ….. Januari 2015
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
(Paulina Heruningsih Prima Rosa, S.Si., M.Sc.)
iv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSEMBAHAN
“Ada 7 hal yang menghancurkan kita : kekayaan tanpa kerja keras,
kesenangan tanpa kesadaran, pengetahuan tanpa karakter, bisnis tanpa
moralitas, ilmu pengetahuan tanpa kemanusiaan, ibadah tanpa pengorbanan,
dan politik tanpa prinsip” (Mahatma Gandhi)
“Dan bersabarlah, karena sesungguhnya Allah tiada menyia-nyiakan pahala
orang-orang yang berbuat kebaikan” (Al-Qur’an 11:115)
“Hidup adalah ‘pilihan’, segeralah tentukan ‘pilihanmu’ atau ‘pilihan’ akan
menentukan hidupmu” (Nicholas Cage)
- JUST DO IT -
Karya ini saya persembahkan untuk :
Allah SWT
Orang tua tercinta
Keluarga dan sahabat tersayang
v
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah saya sebutkan
dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 14 Januari 2015
Penulis,
Erlita Octaviani
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 Local Outlier Probability
(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 Local Outlier Probability (LoOP).
Kata kunci : penambangan data, deteksi outlier, Local Outlier Probability
vii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRACT
Data mining is the extraction of the data are interesting patterns in large
quantities. The pattern is said to be interesting if a previously unknown and useful
for the development of science. Such data can be processed by a variety of data
mining techniques such as association, classification, clustering and outlier
detection. Outlier detection is one of the important research in the field of data
mining. The study is useful for finding outliers that may be useful to the user.
Outlier is a different data than the common properties owned by other data in a
data set. In this thesis, outlier detection is done using algorithms Local Outliers
Probability (Loop). The data used is the academic student of Computer Science
Sanata Dharma University, Yogyakarta years of 2007 and 2008. The data consists
of numeric data value of the student admission data from regular tracks and
outstanding tracks and accomplishments of the semester index value of one to
four. The results of this study is a software that can be used as a tool to detect
outliers using Local Outliers Probability algorithm (LOOP).
Keywords: data mining, outlier detection, Local Outliers Probability
viii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPERLUAN KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dhama
Nama
: Erlita Octaviani
Nomor Mahasiswa
: 105314019
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL OUTLIER PROBABILITY
(STUDI KASUS DATA AKADEMIK MAHASISWA
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS SANATA DHARMA)
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya di internet atau media lain untuk kepentingan
akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada
saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya
Dibuat di Yogyakarta
Pada tanggal 14 Januari 2015
Yang menyatakan,
Erlita Octaviani
ix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
KATA PENGANTAR
Puji syukur penulis haturkan ke hadirat Tuhan Yang Maha Esa atas segala
rahmat dan karunia-Nya, sehingga dapat menyelesaikan penelitian tugas akhir
yang berjudul “Deteksi Outlier Menggunakan Algoritma Local Outlier
Probability (Studi Kasus Data Akademik Mahasiswa Program Studi Teknik
Informatika Universitas Sanata Dharma)”.
Dalam menyelesaikan keseluruhan penyusunan tugas akhir ini, penulis
telah banyak mendapatkan bantuan yang ternilai dari berbagai pihak. Oleh karena
itu,
pada kesempatan ini
penulis dengan segala kerendahan hati ingin
mengucapkan banyak terima kasih kepada :
1.
Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas
Sains dan Teknologi dan juga sebagai dosen penguji atas kritik dan saran
yang telah diberikan..
2.
Ibu Ridowati Gunawan, S.Kom., M.T. selaku Ketua Program Studi Teknik
Informatika serta selaku dosen pembimbing akademik yang selalu
memberikan kesabaran, waktu, saran, dan motivasi kepada penulis.
3.
Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku Wakil Ketua Program Studi
Teknik Informatika serta selaku dosen penguji atas kritik dan saran yang telah
diberikan.
4.
Ibu Agnes Maria Polina, S.Kom., M.Sc. selaku Dosen Pembimbing
Akademik.
5.
Semua dosen yang sudah membimbing penulis dan memberikan begitu
banyak ilmu yang bermanfaat untuk penulis selama penulis belajar di
Universitas Sanata Dharma Yogyakarta.
6.
Pihak sekretariat dan laboran yang turut membantu penulis menyelesaikan
tugas akhir ini.
7.
Kedua orang tua tercinta, Bapak Sis Widyanto dan Ibu Sri Mulyani yang
telah memberikan kasih sayang, perhatian, semangat, dan doa sehingga
penulis dapat menyelesaikan Tugas Akhir ini.
x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8.
Adik-adik tersayang, Ernanda Rully Novrisanti dan Erwinsyah Rico Agusta
yang telah memberikan semangat dan motivasi kepada penulis
9.
Chandra Nurseta, terima kasih untuk selalu ada saat suka maupun duka,
selalu memberikan semangat, doa dan motivasi kepada penulis
10. Ibu Chatarina Eny Murwaningtyas, M.Si. terima kasih banyak atas bantuan
bimbingannya.
11. Daniel Tomi Raharjo, Setyo Resmi Probowati, Agustinus Dwi Budi, Queen
Aurellia, terima kasih atas segala bantuan kepada penulis.
12. Felisitas Brillianti, Verena Pratita Aji, Yustina Ayu Ruwidati dan Fidelis
Asterina. Terima kasih untuk persahabatan yang indah dan saling mendukung
satu sama lain.
13. Kedua rekan skripsi ini, Felisitas Brillianti dan Yustina ayu Ruwidati. Terima
kasih telah saling berbagi ilmu serta suka duka dari awal hingga akhir
penyelesaian tugas akhir ini.
14. Seluruh teman-teman TI 2010 (HMPS 2010) terima kasih atas kebersamaan
dan persaudaraan kita selama menjalani perkuliahan ini.
15. Semua pihak yang berperan baik secara langsung maupun tidak langsung
yang tidak bisa disebutkan satu per satu.
Penulis berharap, semoga tugas akhir ini dapat memberikan tambahan
pengetahuan yang berguna kepada pembaca pada umumnya. Penulis menyadari
tugas akhir ini masih memiliki kekurangan, oleh karena itu penulis mengharapkan
kritik dan saran yang membangun demi kesempurnaan tugas akhir ini.
Yogyakarta, 14 Januari 2015
Penulis
xi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR ISI
Halaman Judul ............................................................................................
i
Halaman Judul (Bahasa Inggris) ...............................................................
ii
Halaman Persetujuan .................................................................................
iii
Halaman Pengesahan ...................................................................................
iv
Halaman Persembahan ...............................................................................
v
Halaman Pernyataan ..................................................................................
vi
Abstrak .........................................................................................................
vii
Abstract ........................................................................................................
viii
Halaman Persetujuan Publikasi Karya Ilmiah ........................................
ix
Kata Pengantar ...........................................................................................
x
Daftar Isi ......................................................................................................
xii
Daftar Gambar ............................................................................................
xv
Daftar Tabel..................................................................................................
xvii
Daftar Rumus ...............................................................................................
xix
Daftar Lampiran ..........................................................................................
xx
BAB I
BAB II
PENDAHULUAN
1.1
Latar Belakang ....................................................................
1
1.2
Rumusan Masalah ...............................................................
4
1.3
Batasan Masalah .................................................................
4
1.4
Tujuan Penelitian ................................................................
4
1.5
Manfaat Penelitian ..............................................................
5
1.6
Metodologi Penelitian .........................................................
5
1.7
Sistematika Penulisan .........................................................
6
LANDASAN TEORI
2.1
Data Mining ........................................................................
8
2.1.1
8
Pengertian Data Mining ........................................
xii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.2
2.3
BAB III
BAB IV
2.1.2
Tahap Data Mining ...............................................
10
2.1.3
Teknik Data Mining .............................................
13
Outlier .................................................................................
17
2.2.1
Pengertian Outlier .................................................
17
2.2.2
Dampak Outlier .....................................................
18
2.2.3
Metode Pendekatan Outlier ..................................
19
Algoritma Local Outlier Probability ..................................
21
2.3.1
24
Contoh Perhitungan LoOP ....................................
METODOLOGI PENELITIAN
3.1
Data yang dibutuhkan .........................................................
28
3.2
Pengolahan Data .................................................................
29
ANALISIS DAN PERANCANGAN SISTEM
4.1
4.2
4.3
4.4
4.5
Identifikasi Sistem ..............................................................
46
4.1.1
Diagram Use Case ................................................
47
4.1.2
Narasi Use Case ....................................................
47
Perancangan Sistem Secara Umum ....................................
47
4.2.1
Input Sistem ..........................................................
47
4.2.2
Proses Sistem ........................................................
51
4.2.3
Output Sistem .......................................................
52
Perancangan Sistem ............................................................
52
4.3.1
Diagram Aktivitas .................................................
52
4.3.2
Diagram Kelas Analisis ........................................
53
4.3.3
Diagram Sequence ................................................
56
4.3.4
Diagram Kelas Desain ..........................................
56
4.3.5
Rincian Algoritma Setiap Method ........................
57
Perancangan Struktur Data .................................................
77
4.4.1
Graf .......................................................................
78
4.4.2
Matriks Dua Dimensi ............................................
79
Perancangan Antarmuka .....................................................
80
xiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB V
BAB VI
4.5.1
Tampilan Halaman Awal ......................................
80
4.5.2
Tampilan Halaman Utama ....................................
80
4.5.3
Tampilan Halaman Bantuan .................................
82
4.5.4
Tampilan Halaman Tentang .................................
83
4.5.5
Tampilan Halaman Keluar ....................................
84
4.5.6
Tampilan Halaman Pilih Database .......................
84
4.5.7
Tampilan Halaman Pilih Tabel .............................
85
4.5.8
Tampilan Halaman Pilih File ................................
85
IMPLEMENTASI PENAMBANGAN DATA
5.1
Implementasi Antarmuka .................................................... 86
5.2
Implementasi Kelas ............................................................ 99
5.3
Implementasi Struktur Data ................................................ 100
PENGUJIAN DAN ANALISIS HASIL PENGUJIAN
6.1
Rencana Pengujian .............................................................. 104
6.2
Kelebihan dan Kekurangan Sistem ..................................... 125
BAB VII PENUTUP
7.1
Kesimpulan ......................................................................... 127
7.2
Saran ................................................................................... 127
DAFTAR PUSTAKA .................................................................................... 129
LAMPIRAN ................................................................................................... 131
xiv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR GAMBAR
Gambar 2.1
Tahap data mining dalam proses KDD .................................
10
Gambar 2.2
Data set outlier .......................................................................
17
Gambar 3.1
Database “gudangdata” .........................................................
29
Gambar 3.2
Tabel fact_lengkap2 dalam database gudangdata .................
30
Gambar 3.3
Isi tabel fact_lengkap2 dalam database gudangdata .............
31
Gambar 3.4
Perhitungan jarak mahasiswa angkatan 2007 jalur tes ..........
38
Gambar 3.5
Pencarian kdistance pada data mahasiswa angkatan 2007
jalur tes ..................................................................................
Gambar 3.6
Pencarian kdistance neighborhood dari data mahasiswa
angkatan 2007 jalur tes ..........................................................
Gambar 3.7
40
Pencarian probability set distance dari data mahasiswa
angkatan 2007 jalur tes ..........................................................
Gambar 3.9
39
Perhitungan standard distance dari data mahasiswa angkatan
2007 jalur tes .........................................................................
Gambar 3.8
38
41
Perhitungan probability local outlier factor dari data
mahasiswa angkatan 2007 jalur tes .......................................
42
Gambar 3.10 Perhitungan agregat probability local outlier factor dari data
mahasiswa angkatan 2007 jalur tes .......................................
43
Gambar 3.11 Perhitungan local outlier probability dari data mahasiswa
angkatan 2007 jalur tes ..........................................................
44
Gambar 4.1
Ilustrasi struktur data graf ......................................................
78
Gambar 4.2
Tampilan Halaman Awal .......................................................
80
Gambar 4.3
Tampilan Halaman Utama - Preprocessing ...........................
81
Gambar 4.4
Tampilan Halaman Utama - Deteksi .....................................
82
Gambar 4.5
Tampilan Halaman Bantuan ..................................................
83
Gambar 4.6
Tampilan Halaman Tentang ..................................................
83
Gambar 4.7
Tampilan Halaman Konfirmasi Keluar .................................
84
Gambar 4.8
Tampilan Halaman Pilih Database ........................................
84
xv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 4.9
Tampilan Halaman Pilih Tabel ..............................................
85
Gambar 4.10 Tampilan Halaman Pilih File .................................................
85
Gambar 5.1
Implementasi halaman awal ..................................................
86
Gambar 5.2
Implementasi halaman utama tab preprocessing ...................
87
Gambar 5.3
Implementasi JFileChooser ...................................................
88
Gambar 5.4
Proses input data ....................................................................
88
Gambar 5.5
Implementasi seleksi atribut ..................................................
89
Gambar 5.6
Implementasi halaman utama tab deteksi outlier ..................
89
Gambar 5.7
Tampilan deteksi outlier ........................................................
90
Gambar 5.8
Tampilan hasil seleksi LoOP .................................................
90
Gambar 5.9
Tampilan save dialog .............................................................
91
Gambar 5.10 Implementasi halaman pilih database ...................................
91
Gambar 5.11 Proses konfigurasi database ..................................................
92
Gambar 5.12 Proses koneksi berhasil ..........................................................
92
Gambar 5.13 Implementasi halaman pilih tabel ..........................................
93
Gambar 5.14 Hasil input data dari database ...............................................
93
Gambar 5.15 Implementasi halaman bantuan .............................................
94
Gambar 5.16 Implementasi halaman tentang ..............................................
94
Gambar 5.17 Implementasi halaman konfirmasi keluar ..............................
95
Gambar 5.18 Error message input data .......................................................
95
Gambar 5.19 Error message konfigurasi database .....................................
96
Gambar 5.20 Error message input data .......................................................
96
Gambar 5.21 Error message input data minpts kosong ..............................
97
Gambar 5.22 Error message input data minpts non numerik .....................
97
Gambar 5.23 Error message input data lamda kosong ...............................
97
Gambar 5.24 Error message input data lamda non numerik .......................
98
Gambar 5.25 Error message input data batas outlier kosong .....................
98
Gambar 5.26 Error message input data batas outlier
numerik ................................................................................
xvi
98
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR TABEL
Tabel 3.1
Contoh data atribut nil1 – nil5 sebelum dinormalisasi ............... 32
Tabel 3.2
Contoh data atribut nil1 – nil5 sesudah dinormalisasi ............... 33
Tabel 3.3
Contoh data atribut nilai final sebelum dinormalisasi ................ 34
Tabel 3.4
Contoh data atribut nilai final sesudah dinormalisasi ................ 35
Tabel 3.5
Data akademik mahasiswa angkatan 2007 jalur tes tertulis ....... 37
Tabel 4.1
Tabel keterangan diagram kelas analisis .................................... 53
Tabel 4.2
Ilustrasi matriks 2 dimensi ......................................................... 79
Tabel 4.3
Ilustrasi matriks 2 dimensi setelah perhitungan jarak antar
verteks ......................................................................................... 79
Tabel 5.1
Implementasi kelas ..................................................................... 99
Tabel 6.1
Tabel rencana pengujian blackbox ............................................. 105
Tabel 6.2
Tabel pengujian input data ......................................................... 106
Tabel 6.3
Tabel pengujian koneksi basis data ............................................ 107
Tabel 6.4
Tabel pengujian seleksi atribut ................................................... 108
Tabel 6.5
Tabel pengujian deteksi outlier .................................................. 109
Tabel 6.6
Tabel pengujian simpan hasil deteksi outlier ............................. 111
Tabel 6.7
Tabel jumlah outlier mahasiswa Teknik Informatika angkatan
2007 dan 2008 jalur tes tertulis semester 1 dengan nilai minpts
dan lamda yang berubah-ubah ................................................... 112
Tabel 6.8
Tabel Data Outlier Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai k
yang berubah-ubah, Lamda = 1 dan batas outlier = 0,8 ............ 112
Tabel 6.9
Tabel jumlah outlier mahasiswa Teknik Informatika angkatan
2007 dan 2008 jalur prestasi semester 1 dengan nilai minpts
dan lamda yang berubah-ubah ................................................... 113
Tabel 6.10 Tabel Data Outlier Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai k yang
berubah-ubah, Lamda = 1 dan batas outlier = 0,8 ..................... 113
xvii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 6.11 Tabel jumlah outlier mahasiswa Teknik Informatika angkatan
2007 dan 2008 jalur tes tertulis dan prestasi semester 1 dengan
nilai minpts dan lamda yang berubah-ubah ............................... 114
Tabel 6.12 Tabel Data Outlier Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Tes Tertulis dan Jalur Prestasi Semester 1
dengan Nilai k yang berubah-ubah, Lamda = 1 dan batas
outlier = 0,8 ................................................................................ 114
Tabel 6.13 Data nilai akademik mahasiswa Teknik Informatika angkatan
Tahun 2007 yang diterima melalui jalur tes tertulis yang
digunakan untuk perbandingan perhitungan manual dan sistem 116
Tabel 6.14 Hasil perhitungan manual ........................................................... 116
Tabel 6.15 Tabel hasil perhitungan sistem ................................................... 117
Tabel 6.16 Tabel hasil outlier untuk data mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 jalur tes tertulis ................................. 118
Tabel 6.17 Tabel hasil outlier untuk data mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 jalur prestasi ...................................... 119
Tabel 6.18 Tabel hasil outlier untuk data mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 jalur tes tertulis dan prestasi ............. 120
xviii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR RUMUS
Rumus 2.1
Rumus jarak Euclidean distance ..............................................
21
Rumus 2.2
Rumus standard distance..........................................................
22
Rumus 2.3
Rumus probabilistic set distance .............................................
23
Rumus 2.4
Rumus probabilistic local outlier factor .................................
23
Rumus 2.5
Rumus agregat probabilistic local outlier factor .....................
23
Rumus 2.6
Rumus local outlier probability ...............................................
23
Rumus 2.7
Rumus error function ...............................................................
23
Rumus 3.1
Rumus min-max normalization ................................................
31
xix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR LAMPIRAN
Lampiran 1
Diagram use case .................................................................... 132
Lampiran 2
Deskripsi use case ................................................................... 133
Lampiran 3
Narasi use case ........................................................................ 134
Lampiran 4
Proses umum sistem pendeteksi outlier .................................. 139
Lampiran 5
Diagram aktivitas .................................................................... 140
Lampiran 6
Diagram kelas analisis ............................................................ 145
Lampiran 7
Diagram sequence ................................................................... 146
Lampiran 8
Diagram kelas desain .............................................................. 150
Lampiran 9
Diagram kelas ......................................................................... 151
Lampiran 10 Listing Program ...................................................................... 157
Lampiran 11 Data set ................................................................................... 224
Lampiran 12 Outlier Plot Data Akademik Mahasiswa Teknik
Informatika Angkatan 2007-2008 Jalur Tes Tertulis ............... 238
Lampiran 13 Outlier Plot Data Akademik Mahasiswa Teknik
Informatika Angkatan 2007-2008 Jalur Prestasi ...................... 240
Lampiran 14 Outlier Plot Data Akademik Mahasiswa Teknik
Informatika Angkatan 2007-2008 Jalur Tes Tertulis dan Jalur
Prestasi ..................................................................................... 242
xx
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB I
PENDAHULUAN
1.1
Latar Belakang
Kebutuhan akan informasi yang akurat sangat dibutuhkan dalam
kemajuan teknologi informasi sekarang ini. Namun kebutuhan informasi
yang tinggi kadang tidak diimbangi dengan penyajian informasi yang
memadai, sehingga sering kali informasi tersebut masih perlu digali ulang
dari kumpulan data yang luas. Kemampuan teknologi informasi untuk
mengumpulkan dan menyimpan berbagai jenis data jauh meninggalkan
kemampuan untuk menganalisis, meringkas, dan mengekstrak knowledge
dari data tersebut. Metode tradisional untuk menganalisis data yang ada
tidak dapat menangani data dalam jumlah besar.
Data mining adalah suatu istilah yang digunakan untuk menemukan
pengetahuan yang tersembunyi dalam database. Data mining merupakan
proses semi otomatik yang menggunakan teknik statistik, matematika,
kecerdasan buatan, dan machine learning untuk mengekstraksi dan
mengindentifikasi informasi pengetahuan potensial dan berguna yang
tersimpan di dalam database besar (Turban et al. 2005).
Data mining adalah bagian dari proses KDD (Knowledge Discovery in
Databases) yang terdiri dari beberapa tahapan seperti pemilihan data, pra
pengolahan, transformasi, data mining, dan evaluasi hasil (Maimon & Last,
2000).
Deteksi outlier pada sekumpulan data adalah salah satu bidang
penelitian yang terus berkembang dalam topik data mining. Penelitian ini
sangat bermanfaat untuk mendeteksi adanya perilaku atau kejadian yang
tidak normal seperti deteksi penipuan penggunaan kartu kredit, penggelapan
asuransi, diagnosa medis, dan sebagainya.
Berbagai macam metode telah dikembangkan baik berdasarkan teknik
ataupun jenis data yang dijadikan obyek. Untuk set data numerik, ada
banyak teknik yang telah dikembangkan seperti statistic based, distance
1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2
based, density based, clustering based, subspace based, dan lain-lain (Han
& Kamber, 2006). Metode density based merupakan gagasan outlier
berdasarkan bobot / derajat outlier berdasarkan nilai. Salah satu algoritma
dengan metode density based adalah algoritma Local Outlier Probability
(LoOP).
Algoritma Local Outlier Probability (LoOP) adalah metode local
density based yang menggunakan beberapa konsep statistik untuk
menghasilkan skor akhir. Algoritma ini menggabungkan keunggulan dari
kedua pendekatan tersebut. Metode local density based tidak menganggap
data mengikuti setiap distribusi dan penalaran matematika pada model
statistik. Skor LoOP merupakan probabilitas bahwa suatu titik tertentu
adalah local density outlier. Probabilitas ini memungkinkan perbandingan
yang mudah dari titik data dengan data yang sama ditetapkan serta seluruh
set data yang berbeda (Kriegel et al. 2009).
Dalam perkembangannya, teknik data mining juga digunakan untuk
meneliti dalam berbagai bidang. Salah satunya adalah di bidang pendidikan.
Banyak sekali penelitian dilakukan dalam bidang pendidikan. Universitas
Sanata Dharma merupakan salah satu perguruan tinggi di kota Yogyakarta
yang memiliki banyak data seperti data akademik mahasiswa yang meliputi
data nilai tes Penerimaan Mahasiswa Baru (PMB) dan data nilai Indeks
Prestasi per Semester (IPS). Untuk menjamin dan mempertahankan mutu,
setiap prodi Universitas Sanata Dharma secara rutin melakukan evaluasi
sisip program. Evaluasi ini untuk mengetahui kemampuan setiap mahasiswa
dan untuk memutuskan apakah mahasiswa tersebut harus dipertahankan
atau harus dikeluarkan (DO). Dalam memutuskan hasil evaluasi tersebut
maka seorang Kaprodi harus memperhatikan riwayat akademik setiap
mahasiswa dengan membandingkan nilai hasil tes PMB dengan nilai
akademik semester 1 sampai 4.
Banyak faktor yang menjadi penghalang bagi mahasiswa dalam
mencapai dan mempertahankan nilai tinggi yang mencerminkan usaha
mereka secara keseluruhan selama masa pembelajaran. Faktor tersebut dapat
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3
ditargetkan oleh pihak universitas sebagai tindakan mengembangkan
strategi untuk meningkatkan prestasi mahasiswa dan meningkatkan kinerja
akademik dengan cara memantau perkembangan kinerja mereka. Oleh
karena itu, evaluasi kinerja merupakan salah satu dasar untuk memantau
perkembangan prestasi mahasiswa.
Algoritma Local Outlier Probability dapat diimplementasikan pada
sekumpulan data numerik untuk mendeteksi adanya outlier. Salah satu
contoh data numerik adalah data akademik mahasiswa yang berupa nilai
hasil tes PMB dan nilai IPS. Sejumlah mahasiswa yang memiliki data
akademik serupa satu sama lain berarti masuk ke dalam kelompok bukan
outlier. Mahasiswa yang tidak memiliki kemiripan data akademik dengan
mahasiswa
manapun
berarti
memiliki
data
akademik
yang
unik
dibandingkan mahasiswa lainnya. Mahasiswa ini akan dianggap sebagai
outlier.
Berdasarkan hasil deteksi outlier, pihak universitas dapat memperoleh
informasi mengenai mahasiswa dengan data akademik yang berbeda atau
unik dibandingkan mahasiswa lainnya. Data unik ini dapat dihasilkan dari
nilai IPS mahasiswa yang sangat tinggi atau sangat rendah di tiap semester.
Selain itu data akademik yang unik juga berasal dari tinggi rendahnya nilai
tes PMB mahasiswa. Sebagai contoh, sejumlah mahasiswa dengan nilai IPS
dan nilai tes PMB yang tinggi akan tergabung dalam sebuah kelompok yang
sama. Kemudian sejumlah mahasiswa yang memiliki nilai IPS dan nilai
PMB yang rendah juga akan tergabung dalam sebuah kelompok yang sama.
Pihak universitas dapat menganalisis data diri mahasiswa tersebut untuk
menemukan faktor tertentu yang berpengaruh pada keunikan data akademik
mahasiswa tersebut.
Oleh karena itu pada penelitian ini penulis ingin melakukan penelitian
menggunakan
algoritma
Local
Outlier
Probability
(LoOP)
untuk
mendeteksi outlier dari data nilai IPS mahasiswa dengan membandingkan
hasil tes PMB mahasiswa tersebut. Data yang dipakai adalah data akademik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4
mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 20072008.
1.2
Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah dalam penelitian
ini adalah :
1.
Bagaimana algoritma Local Outlier Probability (LoOP) dapat
mendeteksi outlier dari data nilai akademik mahasiswa?
1.3
Batasan Masalah
Batasan masalah pada penelitian ini adalah sebagai berikut :
1.
Penggunaan algoritma Local Outlier Probability (LoOP) yang
digunakan sebagai sarana untuk mendeteksi outlier pada kumpulan data
numerik nilai PMB dan nilai IPS mahasiswa Teknik Informatika
Universitas Sanata Dharma.
2.
Data yang digunakan adalah kumpulan data numerik nilai PMB dan
nilai IPS mahasiswa Teknik Informatika Universitas Sanata Dharma
angkatan 2007-2008.
1.4
Tujuan Penelitian
Tujuan dari penelitian ini adalah sebagai berikut :
1.
Menerapkan algoritma Local Outlier Probability (LoOP) untuk
mendeteksi outlier pada kumpulan data numerik nilai PMB dan nilai
IPS mahasiswa Teknik Informatika Universitas Sanata Dharma.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1.5
5
Manfaat Penelitian
Manfaat dari penelitian ini adalah sebagai berikut :
1. Menambah pengetahuan tentang kemampuan algoritma Local Outlier
Probability (LoOP) dalam mendeteksi outlier dengan studi kasus data
akademik mahasiswa Teknik Informatika Universitas Sanata Dharma.
2. Memberikan informasi kepada pihak Universitas dalam mendeteksi
anomali data yang ada pada data akademik mahasiswa.
1.6
Metodologi Penelitian
Metodologi yang digunakan dalam penelitian ini adalah :
1. Studi Pustaka
Metode ini merupakan salah satu metode penelitian yang dilakukan
dengan cara mempelajari hal-hal yang berkaitan dengan deteksi outlier
menggunakan algoritma Local Outlier Probability (LoOP) dan
mengumpulkan
informasi
yang didapat
dari
berbagai
sumber,
diantaranya adalah artikel, karya ilmiah terdahulu, dan website internet.
2. Teknik Data Mining
Pada metode ini menggunakan metode KDD (Knowledge Discovery in
Databases) yang dikemukakan oleh Jiawei Han dan Kamber. Langkahlangkahnya adalah sebagai berikut :
a. Penggabungan Data (Data Integration)
Proses menggabungkan data dari beberapa sumber agar data dapat
terangkum ke dalam tempat penyimpanan atau 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
dihilangkan.
c. Transformasi Data (Data Transformation)
Pada
proses
ini
data
yang
sudah
diseleksi
selanjutnya
ditransformasikan ke dalam bentuk yang sesuai untuk ditambang.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6
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 density based. Algoritma yang digunakan untuk
mendeteksi outlier adalah algoritma Local Outlier Probability
(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.7
Sistematika Penulisan
Untuk mengetahui secara ringkas permasalahan dalam penulisan tugas
akhir ini, maka digunakan sistematika penulisan yang bertujuan untuk
mempermudah pembaca menelusuri dan memahami tugas akhir ini.
BAB I
PENDAHULUAN
Pada bab ini penulis menguraikan tentang latar belakang secara umum,
rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian,
metodologi penelitian serta sistematika penulisan secara keseluruhan.
BAB II
LANDASAN TEORI
Bab ini berisi uraian tentang alur pikir dan perkembangan keilmuan topik
kajian.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB III
7
METODOLOGI PENELITIAN
Bab ini menjelaskan tentang metode yang dipakai dalam penelitian dan
pembuatan aplikasi sebagai implementasi
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
Bab ini menjelaskan tentang analisa sistem dan perancangan sistem yang
akan dibangun dalam penelitian ini.
BAB V
IMPLEMENTASI SISTEM
Bab ini menjelaskan tentang implementasi sistem pendeteksi outlier
menggunakan algoritma Local Outlier Probability menggunakan java.
BAB VI
PENGUJIAN DAN ANALISIS HASIL PENGUJIAN
Bab ini menjelaskan pengujian setiap proses yang ada dalam sistem
kemudian menjelaskan analisa dari hasil pengujian tersebut.
BAB VII
KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang dapat ditarik dari penelitian setelah
melakukan uji coba dan analisa hasil. Kesimpulan ini merupakan jawaban
dari rumusan masalah dalam penelitian ini. Pada bab ini juga berisi saran
untuk pengembangan sistem ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB II
LANDASAN TEORI
2.1
Data Mining
2.1.1 Pengertian Data Mining
Data mining adalah serangkaian proses untuk menggali nilai
tambah berupa pengetahuan yang selama ini tidak diketahui secara
manual dari suatu kumpulan data (Pramudiono, 2007). Data mining
didefinisikan sebagai proses menemukan pola-pola dalam data. Proses
ini otomatis atau seringnya semi otomatis. Pola yang ditemukan harus
penuh arti dan pola tersebut memberikan keuntungan, biasanya
keuntungan secara ekonomi. Data yang dibutuhan dalam jumlah besar
(Witten & Frank, 2005). Secara sederhana, data mining adalah
penambangan atau penemuan informasi baru dengan mencari pola
atau aturan tertentu dari sejumlah data yang sangat besar (Davies &
Beynon, 2004). Data mining sering juga disebut knowledge discovery
in database (KDD), adalah kegiatan yang meliputi pengumpulan,
pemakaian data historis untuk menemukan keteraturan, pola atau
hubungan dalam set data berukuran besar. Keluaran dari data mining
ini bisa dipakai untuk memperbaiki pengambilan keputusan di masa
depan (Santosa, 2007).
Menurut Gatner Group, data mining adalah suatu proses
menemukan hubungan yang berarti, pola dan kecenderungan dengan
memeriksa dalam sekumpulan besar data yang tersimpan dalam
penyimpanan, dengan menggunakan teknik pengenalan pola seperti
teknik statistik dan matematika. Data mining merupakan bidang dari
beberapa bidang keilmuan yang menyatukan teknik dari pembelajaran
mesin, pengenalan pola, statistik, database dan visualisasi untuk
penanganan permasalahan pengambilan informasi dari database yang
besar (Larose, 2005).
8
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9
Kemajuan luar biasa yang terus berlanjut dalam bidang data
mining didorong oleh beberapa faktor antara lain (Larose, 2005) :
a. Pertumbuhan yang cepat dalam kumpulan data.
b. Penyimpanan data dalam data warehouse, sehingga seluruh
perusahaan memiliki akses ke dalam database yang handal.
c. Adanya peningkatan akses data melalui navigasi web dan intranet.
d. Tekanan kompetisi bisnis untuk meningkatkan penguasaan pasar
dalam globalisasi ekonomi.
e. Perkembangan teknologi perangkat lunak untuk data mining
(ketersediaan teknologi).
f. Perkembangan yang hebat dalam kemampuan komputasi dan dan
pengembangan kapasitas media penyimpanan.
Hubungan yang dicari dalam data mining dapat berupa
hubungan antara dua atau lebih dalam satu dimensi, misalnya dalam
dimensi produk, kita dapat melihat keterkaitan pembelian suatu
produk dengan produk yang lain. Selain itu hubungan juga dapat
dilihat antara 2 atau lebih atribut dan 2 atau lebih obyek (Ponniah,
2001).
Pemanfaatan data yang ada di dalam sistem informasi untuk
menunjang kegiatan pengambilan keputusan, tidak cukup hanya
mengandalkan data operasional saja, diperlukan suatu analisis data
untuk menggali potensi-potensi informasi yang ada. Para pengambil
keputusan berusaha untuk memanfaatkan gudang data yang sudah
dimiliki untuk menggali informasi
yang berguna membantu
mengambil keputusan, hal ini mendorong munculnya cabang ilmu
baru untuk mengatasi masalah penggalian informasi atau pola yang
penting atau menarik dari data dalam jumlah besar. Data mining
adalah kegiatan menemukan pola yang menarik dari data dalam
jumlah besar, data dapat disimpan dalam database, data warehouse,
atau penyimpanan informasi lainnya. Data mining berkaitan dengan
bidang ilmu-ilmu lain seperti database system, data warehousing,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
statistik, machine learning, information retrieval, dan komputasi
tingkat tinggi. Selain itu data mining didukung oleh ilmu lain seperti
neural network, pengenalan pola, spatial data analysis, image
database, signal processing (Han & Kamber, 2006). Penggunaan
teknik data mining diharapkan dapat memberikan pengetahuanpengetahuan yang sebelumnya tersembunyi di dalam gudang data
sehingga menjadi informasi yang berharga.
Menurut Bonnie O’Neil (1997, p522), Data mining adalah suatu
proses yang mengubah data menjadi informasi dimana ini merupakan
proses pencarian data dan relasi yang tersembunyi dalam data.
2.1.2 Tahap Data Mining
Sebagai suatu rangkaian proses, data mining dapat dibagi
menjadi beberapa tahap yang diilustrasikan di Gambar 2.1. Tahaptahap tersebut bersifat interaktif, pemakai terlibat langsung atau
dengan perantaraan knowledge base.
Menurut Jiawei Han dan Kamber, proses KDD digambarkan
sebagai berikut :
Gambar 2.1 Tahap data mining dalam proses KDD
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11
Menurut para ahli, data mining merupakan sebuah analisa dari
observasi data dalam jumlah besar untuk menemukan hubungan yang
tidak diketahui sebelumnya dan metode baru untuk meringkas data
agar mudah dipahami serta kegunaannya untuk pemilik data. Datadata yang ada, tidak dapat langsung diolah dengan menggunakan
sistem data mining. Data terebut harus dipersiapkan terlebih dahulu
agar hasil yang diperoleh dapat lebih maksimal, dan waktu
komputasinya lebih minimal. Proses persiapan data ini sendiri dapat
mencapai 60% dari keseluruhan proses dalam data mining. Adapun
tahapan-tahapan yang harus dilalui dalam proses data mining antara
lain :
1. Pembersihan data (Data Cleaning)
Pembersihan data merupakan proses menghilangkan noise dan data
yang tidak konsisten atau data tidak relevan. Pada umumnya data
yang diperoleh, baik dari database suatu perusahaan maupun hasil
eksperimen, memiliki isian-isian yang tidak sempurna seperti data
yang hilang, data yang tidak valid atau juga hanya sekedar salah
ketik. Selain itu, ada juga atribut-atribut data yang tidak relevan
dengan hipotesa data mining yang dimiliki. Data-data yang tidak
relevan itu juga lebih baik dibuang. Pembersihan data juga akan
mempengaruhi performasi dari teknik data mining karena data
yang ditangani akan berkurang jumlah dan kompleksitasnya.
2. Integrasi Data (Data Integration)
Integrasi data merupakan penggabungan data dari berbagai
database ke dalam satu database baru. Tidak jarang data yang
diperlukan untuk data mining tidak hanya berasal dari satu
database tetapi juga berasal dari beberapa database atau file teks.
Integrasi
data
dilakukan
pada
atribut-aribut
yang
mengidentifikasikan entitas-entitas yang unik seperti atribut nama,
jenis produk, nomor pelanggan dan lainnya. Integrasi data perlu
dilakukan secara cermat karena kesalahan pada integrasi data bisa
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12
menghasilkan hasil yang menyimpang dan bahkan menyesatkan
pengambilan aksi nantinya. Sebagai contoh bila integrasi data
berdasarkan jenis produk ternyata menggabungkan produk dari
kategori yang berbeda maka akan didapatkan korelasi antar produk
yang sebenarnya tidak ada.
3. Seleksi Data (Data Selection)
Data yang ada pada database sering kali tidak semuanya dipakai,
oleh karena itu hanya data yang sesuai untuk dianalisis yang akan
diambil dari database. Sebagai contoh, sebuah kasus yang meneliti
faktor kecenderungan orang membeli dalam kasus market basket
analysis, tidak perlu mengambil nama pelanggan, cukup dengan id
pelanggan saja.
4. Transformasi Data (Data Transformation)
Data diubah atau digabung ke dalam format yang sesuai untuk
diproses dalam data mining. Beberapa metode data mining
membutuhkan format data yang khusus sebelum bisa diaplikasikan.
Sebagai contoh beberapa metode standar seperti analisis asosiasi
dan clustering hanya bisa menerima input data kategorikal.
Karenanya data berupa angka numerik yang berlanjut perlu dibagibagi menjadi beberapa interval. Proses ini sering disebut
transformasi data.
5. Penambangan Data (Data Mining)
Merupakan suatu proses utama saat metode diterapkan untuk
menemukan pengetahuan berharga dan tersembunyi dari data.
6.
Evaluasi Pola (Pattern Evaluation)
Untuk mengidentifikasi pola-pola menarik kedalam knowledge
based yang ditemukan. Dalam tahap ini hasil dari teknik data
mining berupa pola-pola yang khas maupun model prediksi
dievaluasi untuk menilai apakah hipotesa yang ada memang
tercapai. Bila ternyata hasil yang diperoleh tidak sesuai hipotesa
ada beberapa alternatif yang dapat diambil seperti menjadikannya
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
13
umpan balik untuk memperbaiki proses data mining, mencoba
metode data mining lain yang lebih sesuai, atau menerima hasil ini
sebagai suatu hasil yang di luar dugaan yang mungkin bermanfaat.
7. Presentasi Pengetahuan (Knowledge Presentation)
Merupakan visualisasi dan penyajian pengetahuan mengenai
metode yang digunakan untuk memperoleh pengetahuan yang
diperoleh pengguna. Tahap terakhir dari proses data mining adalah
bagaimana memformulasikan keputusan atau aksi dari hasil analisis
yang didapat. Ada kalanya hal ini harus melibatkan orang-orang
yang tidak memahami data mining. Karenanya presentasi hasil
data mining dalam bentuk pengetahuan yang bisa dipahami semua
orang adalah satu tahapan yang diperlukan dalam proses data
mining. Dalam presentasi ini, visualisasi juga bisa membantu
mengkomunikasikan hasil data mining.
2.1.3 Teknik Data Mining
Dengan definisi data mining yang luas, ada banyak jenis metode
analisis yang dapat digolongkan dalam data mining. Pada dasarnya
penggalian data dibedakan menjadi dua fungsionalitas, yaitu deskripsi
dan prediksi. Berikut ini beberapa fungsionalitas penggalian data yang
sering digunakan:
1. Association Rule Mining
Association rules (aturan asosiasi) atau affinity analysis (analisis
afinitas) berkenaan dengan studi tentang “apa bersama apa”.
Sebagai contoh dapat berupa berupa studi transaksi di supermarket,
misalnya seseorang yang membeli shampoo bersamaan dengan
conditioner. Pada kasus ini berarti shampoo bersama dengan
conditioner. Karena awalnya berasal dari studi tentang database
transaksi pelanggan untuk menentukan kebiasaan suatu produk
dibeli bersama produk apa, maka aturan asosiasi juga sering
dinamakan
market
basket
analysis.
Aturan asosiasi
ingin
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
14
memberikan informasi tersebut dalam bentuk hubungan “if-then”
atau “jika-maka”. Aturan ini dihitung dari data yang sifatnya
probabilistik (Santosa, 2007). Dengan pengetahuan tersebut
pemilik pasar swalayan dapat mengatur penempatan barangnya
atau merancang strategi pemasaran dengan memakai kupon diskon
untuk kombinasi barang tersebut.
Analisis asosiasi dikenal juga sebagai salah satu metode data
mining yang menjadi dasar dari berbagai metode data mining
lainnya. Khususnya salah satu tahap dari analisis asosiasi yang
disebut analisis pola frekuensi tinggi (frequent pattern mining)
menarik perhatian banyak peneliti untuk menghasilkan algoritma
yang efisien. Penting tidaknya suatu aturan assosiatif dapat
diketahui dengan dua parameter, support (nilai penunjang) yaitu
prosentase kombinasi item tersebut. dalam database dan confidence
(nilai kepastian) yaitu kuatnya hubungan antar item dalam aturan
assosiatif. Analisis asosiasi didefinisikan suatu proses untuk
menemukan semua aturan assosiatif yang memenuhi syarat
minimum untuk support (minimum support) dan syarat minimum
untuk confidence (minimum confidence) (Pramudiono, 2007).
2. Classification
Klasifikasi adalah proses untuk menemukan model atau fungsi
yang menjelaskan atau membedakan konsep atau kelas data,
dengan tujuan untuk dapat memperkirakan kelas dari suatu
obyek yang labelnya tidak diketahui. Model itu sendiri bisa
berupa aturan “jika-maka”, berupa pohon keputusan, formula
matematis atau neural network. Proses klasifikasi biasanya
dibagi menjadi dua fase : learning dan test. Pada fase learning,
sebagian data yang telah diketahui kelas datanya diumpankan
untuk membentuk model perkiraan. Kemudian pada fase test
model yang sudah terbentuk diuji dengan sebagian data lainnya
untuk mengetahui akurasi dari model tsb. Bila akurasinya
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15
mencukupi model ini dapat dipakai untuk prediksi kelas data
yang belum diketahui.
3. Clustering
Clustering termasuk metode yang sudah cukup dikenal dan banyak
dipakai dalam data mining. Sampai sekarang para ilmuwan dalam
bidang data mining masih melakukan berbagai usaha untuk
melakukan perbaikan model clustering karena metode yang
dikembangkan sekarang masih bersifat heuristic. Usaha-usaha
untuk menghitung jumlah cluster yang optimal dan pengklasteran
yang paling baik masih terus dilakukan. Dengan demikian
menggunakan metode yang sekarang, tidak bisa menjamin hasil
pengklasteran sudah merupakan hasil yang optimal. Namun, hasil
yang dicapai biasanya sudah cukup bagus dari segi praktis.
Tujuan utama dari metode clustering adalah pengelompokan
sejumlah data/obyek ke dalam cluster (group) sehingga dalam
setiap cluster akan berisi data yang semirip mungkin. Dalam
clustering metode ini berusaha untuk menempatkan obyek yang
mirip (jaraknya dekat) dalam satu klaster dan membuat jarak antar
klaster sejauh mungkin. Ini berarti obyek dalam satu cluster sangat
mirip satu sama lain dan berbeda dengan obyek dalam clustercluster yang lain. Dalam metode ini tidak diketahui sebelumnya
berapa jumlah cluster dan bagaimana pengelompokannya (Santosa,
2007).
4. Outlier Analysis
Database dapat mengandung obyek data yang tidak sesuai dengan
sifat umum atau model data. Obyek data tersebut adalah outlier.
Outlier merupakan obyek 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
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
16
menggunakan tes statistik yang mengasumsikan distribusi atau
probabilitas model data menggunakan distance measures, dimana
obyek yang memiliki jarak yang jauh dari klaster-klaster lainnya
dianggap outlier atau anomali.
5. Decision Tree
Dalam decision tree tidak menggunakan vector jarak untuk
mengklasifikasikan obyek. Seringkali data observasi mempunyai
atribut-atribut yang bernilai nominal. Sebagai contoh obyeknya
adalah sekumpulan buah-buahan yang bisa dibedakan berdasarkan
atribut bentuk, warna, ukuran dan rasa. Bentuk, warna, ukuran dan
rasa adalah besaran nominal, yaitu bersifat kategoris dan tiap nilai
tidak bisa dijumlahkan atau dikurangkan. Dalam atribut warna ada
beberapa nilai yang mungkin yaitu hijau, kuning, merah. Dalam
atribut ukuran ada nilai besar, sedang dan kecil. Dengan nilai-nilai
atribut ini, kemudian dibuat decision tree untuk menentukan suatu
obyek termasuk jenis buah apa jika nilai tiap-tiap atribut diberikan
(Santosa, 2007). Decision tree sesuai digunakan untuk kasus-kasus
yang keluarannya bernilai diskrit. Walaupun banyak variasi model
decision tree dengan tingkat kemampuan dan syarat yang berbeda,
pada umumnya beberapa ciri yang cocok untuk diterapkannya
decision tree adalah sebagai berikut :
1.) Data dinyatakan dengan pasangan atribut dan nilainya
2.) Label/keluaran data biasanya bernilai diskrit
3.) Data mempunyai missing value (nilai dari suatu atribut tidak
diketahui)
Dengan cara ini akan mudah mengelompokkan obyek ke dalam
beberapa
kelompok.
Untuk
membuat
decision
tree
memperhatikan hal-hal berikut ini :
1. Atribut mana yang akan dipilih untuk pemisahan obyek.
2. Urutan atribut mana yang akan dipilih terlebih dahulu.
3. Struktur tree.
perlu
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
17
4. Kriteria pemberhentian.
5. Pruning.
2.2
Outlier
2.2.1 Pengertian Outlier
Outlier merupakan kumpulan data yang dianggap memiliki sifat
yang berbeda, tidak konsisten dibandingkan dengan kebanyakan data
lainnya (Han & Kamber, 2006). Adanya data outlier ini akan
membuat analisis terhadap serangkaian data menjadi bias, atau tidak
mencerminkan fenomena yang sebenarnya.
Outlier adalah suatu data yang menyimpang dari sekumpulan
data yang lain dan juga merupakan pengamatan yang tidak mengikuti
sebagian besar pola dan terletak jauh dari pusat data (Soemartini,
2007).
Analisis outlier dikenal juga dengan analisis anomali atau
deteksi anomali atau deteksi outlier (nilai atributnya obyek tsb,
signifikan berbeda dengan nilai atribut obyek lainnya ) atau exception
mining.
Gambar 2.2 data set outlier
Beberapa penyebab adanya outlier, yaitu :
 Data berasal dari sumber yang berbeda
 Variasi natural data itu sendiri
 Error pada saat pengukuran atau pengumpulan data
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
18
 Memang ada data-data ekstrim yang tidak dapat dihindarkan
keberadaannya
Sebagai ilustrasi, pada pendapatan toko roti “Amanah” pada
bulan Januari sampai Agustus. Pada bulan Januari pendapatan sekitar
Rp 150 ribu, Febuari Rp 300 ribu, Maret Rp 200 ribu, April Rp 150
ribu, Mei Rp 130 ribu, Juni Rp 200 ribu, Juli Rp 300 ribu, dan
Agustus Rp 1 juta. Dari data tersebut sangat tampak bahwa nilai 1 juta
relatif jauh dibandingkan pendapatan di bulan-bulan sebelumnya.
2.2.2 Dampak Outlier
Deteksi outlier merupakan suatu teknik untuk mencari obyek
dimana obyek tersebut mempunyai perilaku berbeda dibandingkan
obyek-obyek pada umumnya. Deteksi outlier merupakan salah satu
bidang penelitian yang penting dalam topik penambangan data.
Penelitian ini bermanfaat untuk mendeteksi penyalahgunaan kartu
kredit, deteksi adanya penyusupan pada jaringan komunikasi, analisis
medis, segmentasi data pelanggan yang berkaitan dengan pemasaran
barang.
Keberadaan data outlier akan mengganggu dalam proses analisis
data dan harus dihindari dalam banyak hal. Outlier dapat
menyebabkan hal-hal berikut ini :
 Residual yang besar dari model yang terbentuk
 Varians pada data tersebut menjadi lebih besar
 Taksiran interval memiliki rentang yang lebar
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
19
2.2.3 Metode Pendekatan Outlier
Menurut Jiawei Han dan Kamber, teknik data mining dapat
digunakan untuk mendeteksi adanya suatu outlier pada sebuah dataset.
Teknik data mining yang digunakan adalah metode deteksi outlier
dengan menggunakan metode statistical distribution based, distance
based, density based, dan deviation based.
1.) Statistical Distribution based
Dalam metode ini data diasumsikan sebagai sebuah hipotesis
kerja. Setiap data obyek di dalam dataset dibandingkan terhadap
hipotesis kerja. Data yang dapat diterima maka akan masuk dalam
hipotesis kerja, sedangkan data yang ditolak atau tidak sesuai
dengan hipotesis kerja maka ditetapkan menjadi hipotesis
alternatif (outlier).
Kelebihan metode ini jika pengetahuan data akan jenis distribut
data dan jenis uji yang diperlukan sudah cukup, maka pendekatan
statistik sangat efektif. Akan tetapi kekurangan dari metode
pendekatan ini adalah sulit untuk menemukan fungsi distribusi
dan jenis uji yang tepat untuk data dikarenakan kebanyakan uji
hanya cocok untuk single atribut. Selain itu juga ditemukan
kesulitan dalam menentukan fungsi distribusi dan uji yang tepat
untuk data berdimensi tinggi.
2.) Distance based
Metode ini adalah sebuah metode deteksi outlier dengan
menghitung jarak pada obyek tetangga terdekat (nearest
neighbor). Di dalam pendekatan ini sebuah obyek melihat obyekobyek local neighborhod yang didefinisikan sebagai k-nearest
neighbor. Jika ketetanggaan sebuah obyek relatif dekat maka
obyek tersebut dikatakan normal, namun jika ketetanggaan antar
obyek relative jauh maka obyek tersebut dikatakan tidak normal
(outlier).
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
20
Kelebihan dari metode pendekatan ini adalah sederhana. Akan
tetapi untuk menangani basis data yang besar akan memakan
biaya besar, sangat bergantung dengan nilai parameter yang
dipilih dan juga tidak dapat menangani kasus himpunan data yang
memiliki kepadatan berbeda pada daerah berbeda.
3.) Density based
Metode density-based tidak secara eksplisit mengklasifikasikan
sebuah obyek adalah outlier atau bukan, akan tetapi lebih kepada
pemberian nilai kepada obyek sebagai derajat kekuatan obyek
tersebut dapat dikategorikan sebagai outlier. Ukuran derajat
kekuatan ini adalah local outlier factor (LOF). Pendekatan untuk
pencarian outlier ini hanya membutuhkan sebuah parameter yaitu
k, k adalah jangkauan atau jumlah tetangga terdekat yang
digunakan untuk mendefinisikan local Neighborhood suatu
obyek.
4.) Deviation based
Metode deviation based tidak menggunakan pengujian statistik
ataupun perbandingan jarak untuk mengidentifikasi sebuah
outlier. Sebaliknya metode ini mengidentifikasi sebuah outlier
dengan memeriksa karakteristik utama dari obyek dalam sebuah
kumpulan. Obyek yang memiliki karakteristik diluar karakteristik
utama maka akan dianggap sebagai outlier.
Kelebihan dari metode pendekatan ini adalah dapat digunakan
untuk data yang kepadatannya berbeda. Namun pemilihan
parameter juga menjadi satu penentu yang kuat dalam
menentukan nilai kepadatan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.3
21
Algoritma Local Outlier Probability
Pada penelitian ini, penulis menggunakan algoritma Local Outlier
Probability (LoOP) untuk mendeteksi adanya outlier dalam data akademik
mahasiswa TI Universitas Sanata Dharma angkatan 2007-2008. Algoritma
ini bekerja pada k-neighborhood obyek. LoOP adalah metode local density
based yang menggunakan beberapa konsep statistik untuk menghasilkan
skor akhir. Ini menggabungkan keunggulan dari kedua pendekatan tersebut.
Metode local density based tidak menganggap data mengikuti setiap
distribusi dan penalaran matematika pada model statistik. Skor LoOP
merupakan probabilitas bahwa suatu titik tertentu adalah local density
outlier. Probabilitas ini memungkinkan perbandingan yang mudah dari titik
data dengan data yang sama ditetapkan serta seluruh set data yang berbeda
(Kriegel et al. 2009).
Langkah-langkah
perhitungan
LoOP
adalah
sebagai
berikut.
Normalisasi Faktor dinotasikan dengan  .
1. Menghitung k-distance dari setiap obyek (o)
Tujuan dari perhitungan k-distance ini adalah untuk menentukan tetangga
dari o, secara sederhana k-distance dari sebuah obyek o adalah jarak
maksimal dari obyek tertentu terhadap tetangga terdekatnya dan di
notasikan dengan k-distance(o).
Untuk menghitung k-distance, langkah awal adalah menghitung jarak
masing-masing obyek dengan menggunakan rumus euclidean distance
seperti di bawah ini :
d(i,j) =
……(2.1)
setelah menghitung jarak, kemudian menentukan besar k dimana data
sebanyak k tersebut tidak lebih besar dari nilai kdistance(o).
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
22
2. Menghitung jumlah tetangga terdekat (k-distance neighborhood) dari
setiap obyek o
k-distance neighborhood suatu obyek o dinotasikan Nk-distance(o), atau
Nk(o) dimana berisi setiap obyek dengan jarak tidak lebih besar dari kdistance (o).
3. Menghitung standard distance σ(o,S) atau standar deviasi dari jarak
disekitar o
Untuk konteks lokal o dalam S. Jika kita gunakan  =
sebaliknya
erf-1
(galat), di mana erf menunjukkan kesalahan fungsi
Gaussian, dalam estimasi kepadatan S, kita dapat mensimulasikan
gagasan statistik klasik dan notasi outlier didefinisikan sebagai obyek
yang menyimpang. Nilai-nilai  secara empiris adalah 68-95-99.7 aturan
(“three sigma”), nilai empiris itu adalah  = 1 
95%, dan  = 3 
= 68%,  = 2 
=
= 99,7%. Jadi semakin besar nilai lamda maka akan
semakin memperkecil ditemukan error / noise. Dalam hal ini disarankan
menggunakan lamda 2. Untuk menghitung standard distance dari obyek
di Nk(o) dengan rumus =
σ(o,S) =
……(2.2)
Keterangan :
σ : standard distance / standar deviasi
S : himpunan tetangga dari obyek o
s : tetangga dari obyek o / anggota dari S
|S| : banyak anggota dari himpunan S
4. Menghitung Probabilistic set distance (pdist) pdist(, o, S)
Setelah ditemukan nilai standard distance, selanjutnya nilai tersebut akan
digunakan untuk menghitung probabilistic set distance. Probabilistic set
distance dapat memperkirakan tingkat kepadatan obyek o terhadap
tetangganya. Parameter lamda  memberikan control eror terhadap
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
23
kepadatan. Bagaimanapun, normalization factor () memberikan
pengaruh terhadap skore LoOP. Rumus Probabilistic set distance (pdist)
pdist(, o, Nk(o)) sebagai berikut :
pdist(,o,S) =  .σ(o, S)
……(2.3)
5. Menghitung Probabilistic Local Outlier Factor yang merupakan ratio
perkiraan kepadatan
plof(,S(o)) =
-1
……(2.4)
6. Menghitung agregat Probabilistic Local Outlier Factor nPLOF() =
nPLOF() =  .
……(2.5)
keterangan :
D : jumlah dataset dari obyek o
7. Menghitung Local Outlier Probability (LoOP)
)) ……(2.6)
LoOPS(o) = max (0,
Rumus erf tersebut adalah
erf(x) =
dt
……(2.7)
Pendekatan ini didasarkan pada dua asumsi sebagai berikut:
1. titik poinnya adalah pusat set neighborhood.
2. nilai jarak mensimulasi nilai positif dari distribusi normal.
Asumsi pertama dilanggar terutama ketika titik poinnya adalah
outlier. Pelanggaran ini akan mengakibatkan terlalu tinggi PLOF sebagai
akibat dari peningkatan standard distance titik outlier. Efek ini sebenarnya
diinginkan karena akan menekankan bahwa intinya adalah outlier.
Asumsi kedua berbeda dengan metode statistik membuat asumsi
hanya sekitar distribusi jarak dan bukan distribusi poin. Asumsi ini berlaku
untuk kedua rumus jarak Manhattan dan jarak Euclidean sesuai dengan
teorema limit sentral.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
24
Penambahan konsep statistik untuk metode kepadatan lokal membuat
skor LoOP independen dari setiap distribusi. Hal ini membuat mampu
menangani kelompok non-seragam seperti kelompok yang dihasilkan oleh
model Gaussian yang ditangani buruk oleh LOF misalnya.
2.3.1 Contoh Perhitungan LoOP
Diketahui sebuah data D memiliki 4 buah obyek dan dilambangkan
sebagai obyek P1, P2, P3, P4. Masing-masing obyek tersebut
memiliki jarak sebagai berikut : (k = 2)
Berikut ini merupakan langkah penyelesaian persoalan di atas :
1. Mencari kdistance
Langkah mencari kdistance adalah sebagai berikut :
a. Menghitung jarak P1 terhadap semua obyek menggunakan
rumus jarak ecluidean distance (tabel di atas merupakan data
yang sudah dihitung jaraknya)
b. Memilih jarak terkecil sebanyak nilai k, yaitu 2.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
25
c. Kemudian dari 2 jarak terkecil tersebut, pilih yang paling besar
jaraknya. Jarak terbesar tersebut adalah kdistance.
Obyek yang dekat dengan P1 urut dari kecil adalah P3 – P2.
Jarak P1 ke P3 adalah 2 sedangkan jarak P1 ke P2 adalah 4.
Maka kdistance(P1) = 4.
2. Menemukan kdistance neighborhood
Maksudnya adalah mencari tetangga terdekat dimana besar
jaraknya tidak lebih dari sama dengan kdistance(o)
3. Menghitung standard distance
=
Standard distance P1 =
= 2,236068
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
26
4. Menghitung probabilistic set distance
pdist(
 disini adalah 2.
Maka pdist P1 = 2 x 2,236068 = 4,472136
5. Menghitung probabilistic PLOF
PLOF,Nk(o)(o) =
-1
Untuk menghitung PLOF perlu menghitung terlebih dahulu nilai
jumlah pdist dari setiap tetangga terkait.
Sebagai contoh menghitung ∑pdist P1. Perlu diingat bahwa
tetangga P1 adalah P2 dan P3. Maka ∑pdist P1 = pdist P2 + pdist
P3.
PLOF P1 =
= -0,24126
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
27
6. Menghitung agregat PLOF (nPLOF)
nPLOF() =  .
nPLOF = 2 .
= 0,794688
7. Menghitung derajat LoOP
LoOPNk(o)(o) = max (0,
LoOP P1 = max (0,
))
)) = max (0, -33232) = 0
Jika derajat LoOP 0, maka obyek tersebut bukan outlier.
Sebaliknya, jika derajat LoOP lebih dari 0, maka obyek tersebut
dinyatakan sebagai outlier. Dari tabel di atas, yang termasuk
outlier adalah obyek P2 dan P4.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB III
METODOLOGI PENELITIAN
Pada bab ini akan dijelaskan mengenai perancangan penelitian yang
digunakan untuk mencapai tujuan dalam penelitian tugas akhir ini. Metodologi
penelitian ini menggunakan metodologi penambangan data yaitu KDD
(Knowledge Discovery in Database) yang dikemukakan oleh Jiawei Han dan
Kamber.
3.1
Data yang dibutuhkan
Dalam Kamus Besar Bahasa Indonesia, data diartikan sebagai
kenyataan yang ada yang berfungsi sebagai bahan sumber untuk menyusun
suatu pendapat, keterangan yang benar, dan keterangan atau bahan yang
dipakai untuk penalaran dan penyelidikan.
Data adalah catatan atas kumpulan fakta (Vardiansyah, 2008). Data
merupakan bentuk jamak dari datum, berasal dari bahasa Latin yang berarti
“sesuatu yang diberikan”. Dalam penggunaan sehari-hari data berarti suatu
pernyataan yang diterima secara apa adanya. Pernyataan ini adalah hasil
pengukuran atau pengamatan suatu variabel yang bentuknya dapat berupa
angka, kata-kata, atau citra.
Dalam tujuan pencarian fakta tersebut, pada penelitian ini penulis
menggunakan data akademik mahasiswa teknik informatika Universitas
Sanata Dharma Yogyakarta angkatan 2007-2008. Data ini bersifat numerik
yang meliputi data nilai hasil seleksi masuk dan indeks prestasi semester
satu sampai empat. Data tersebut diperoleh dari gudang data akademik
mahasiswa Universitas Sanata Dharma Yogyakarta khususnya mahasiswa
teknik informatika.
Data penelitian ini diperoleh dari gudang data akademik mahasiswa
program studi Teknik Informatika Universitas Sanata Dharma dalam bentuk
skrip kueri sql. Dari skrip tersebut, data yang digunakan dalam penelitian
adalah data nilai hasil seleksi masuk melalui jalur tes maupun prestasi, dan
28
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
29
nilai indeks prestasi semester dari semester satu hingga empat. Data
akademik mahasiswa program studi Teknik Informatika angkatan 20072008 terdiri dari 126 buah.
3.2
Pengolahan Data
Berikut ini merupakan tahap-tahap yang dilakukan dalam pengolahan data :
1.
Penggabungan Data (Data Integration)
Data mentah dalam skrip sql diekstrak ke dalam database. Lalu hasil
ekstrak tersebut menghasilkan basis data bernama “gudangdata”. Dalam
basis data ini terdiri dari beberapa tabel, yaitu tabel dim_angkatan,
dim_daftarsmu,
dim_fakultas,
dim_jeniskel,
dim_kabupaten,
dim_prodi, dim_prodifaks, dim_statustes, dan factlengkap2.
Gambar 3.1 Database “gudangdata”
2.
Seleksi Data (Data Selection)
Tahap selanjutnya adalah seleksi data dimana melakukan seleksi
terhadap data yang relevan dengan penelitian. Dari database
“gudangdata” tersebut tabel data yang akan dipakai untuk penelitian
adalah hanya tabel fact_lengkap2. Tabel fact_lengkap2 dipilih karena
memuat atribut yang dibutuhkan untuk penelitian, yaitu atribut nilai
hasil seleksi tes masuk dan nilai indeks prestasi semester satu hingga
empat.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
30
Gambar 3.2 Tabel fact_lengkap2 dalam database “gudangdata”
Setelah
seleksi
terhadap
tabel
dalam
database
“gudangdata”,
selanjutnya dilakukan seleksi terhadap data yang diperlukan dalam tabel
fact_lengkap2. Langkah pertama adalah menyeleksi data mahasiswa
yang berasal dari program studi Teknik Informatika, yaitu data
mahasiswa yang memiliki data sk_prodi 27. Baris dengan sk_prodi 27
adalah data mahasiswa yang berasal dari program studi Teknik
Informatika. Data ini yang dipilih karena dapat digunakan sebagai
variabel numerik untuk mendeteksi outlier dan sesuai untuk mencapai
tujuan penelitian.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
31
Gambar 3.3 Isi tabel fact_lengkap2 dalam database “gudangdata”
Selanjutnya dilakukan seleksi terhadap kolom yang berada dalam tabel
fact_lengkap2, kolom-kolom yang tidak dipakai antara lain : nomor,
jumsttb,
jummsttb,
jumnem,
jummtnem,
sttb,
sk_jeniskelamin,
sk_status, sk_kabupaten, sk_daftarsmu, sk_prodi
3.
Transformasi Data (Data Transformation)
Pada tahap ini, data yang sudah diseleksi selanjutnya ditransformasikan
kedalam bentuk yang sesuai untuk ditambang. Hal ini dikarenakan
adanya perbedaan range nilai antara atribut satu dengan atribut lainnya.
Nilai final memiliki range nilai antara 0-100. Nilai tes masuk memiliki
range nilai antara 0-10. IPS memiliki range nilai antara 0-4. Perbedaan
range nilai ini akan disamakan melalui proses transformasi data.
Transformasi data dilakukan dengan menggunakan metode normalisasi.
Metode normalisasi dilakukan dengan cara membuat skala pada data
atribut.
Salah
satu
jenis
metode
normalisasi
yaitu
min-max
normalization (Han & Kamber, 2006).
Normalisasi data untuk menyamaratakan persebaran nilai keseluruhan
atribut dengan menggunakan rumus min-max normalization :
……(3.1)
Keterangan :
v = nilai lama yang belum dinormalisasi
v’ = nilai yang sudah dinormalisasi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
32
minA = minimum nilai dari atribut a
maxA = maksimum nilai dari atribut a
new_min = nilai minimum baru dari atribut a
new_max = nilai maksimum baru dari atribut a
Proses normalisasi data berikut ini berlaku untuk atribut nil11, nil12,
nil13, nil14, dan nil15 menggunakan min-max normalization, semisal
nil11 adalah 8.00 maka proses normalisasinya adalah : maxA = 10,
minA= 0, new_maxA = 4, new_minA= 0, dan v = nil11 dalam hal ini
bernilai 8.00, sehingga proses perhitungannya v1 = (8-0)/(10-0)*(40)+0 = 3.20. Sehingga hasil normalisasi nil11 adalah 3.20.
1.
Normalisasi atribut nil11, nil12, nil13, nil14, dan nil15
Contoh data dibawah ini menggambarkan proses transformasi dari
atribut nilai1, nilai2, nilai3, nilai 4 dan nilai 5. Tabel 3.1 merupakan
tabel yang berisi data atribut nil11 – nil15 sebelum normalisasi.
Tabel 3.1 Contoh Data Atribut nil11 sampai nil15 sebelum
dinormalisasi
Nomor
nil11
nil12
nil13
nil14
nil15
ips1
1
7,00
5,00
5,00
5,00
4,00
2,94
2
3,00
2,00
8,00
3,00
1,00
1,72
3
6,00
4,00
5,00
7,00
5,00
2,56
4
5,00
5,00
6,00
5,00
5,00
2,44
5
6,00
4,00
6,00
3,00
7,00
2,94
6
6,00
5,00
6,00
6,00
7,00
1,89
7
6,00
6,00
4,00
4,00
7,00
4,00
8
10,00
5,00
9,00
6,00
7,00
1,44
9
8,00
6,00
6,00
7,00
5,00
3,72
10
7,00
6,00
8,00
8,00
2,00
1,72
11
7,00
6,00
7,00
6,00
6,00
3,28
12
6,00
5,00
5,00
7,00
5,00
2,89
13
5,00
5,00
8,00
5,00
7,00
2,89
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Data
yang
ada
menggunakan
pada
rumus
Tabel
3.1
kemudian
min-max
33
dinormalisasi
normalization
sehingga
menghasilkan data seperti pada Tabel 3.2 di bawah ini :
Tabel 3.2 Contoh Data Atribut nil11 sampai nil15 setelah
dinormalisasi
Nomor
nil11
nil12
nil13
nil14
nil15
ips1
1
2,80
2,00
2,00
2,00
1,60
3,72
2
1,20
0,80
3,20
1,20
0,40
2,89
3
2,40
1,60
2,00
2,80
2,00
2,56
4
2,00
2,00
2,40
2,00
2,00
3,28
5
2,40
1,60
2,40
1,20
2,80
1,89
6
2,40
2,00
2,40
2,40
2,80
1,44
7
2,40
2,40
1,60
1,60
2,80
4,00
8
4,00
2,00
3,60
2,40
2,80
1,72
9
3,20
2,40
2,40
2,80
2,00
2,89
10
2,80
2,40
3,20
3,20
0,80
2,94
11
2,80
2,40
2,80
2,40
2,40
2,94
12
2,40
2,00
2,00
2,80
2,00
2,44
13
2,00
2,00
3,20
2,00
2,80
1,72
2. Normalisasi atribut nilai Final
Berikutnya adalah proses normalisasi data berikut berlaku untuk
atribut final menggunakan min-max normalization, semisal nilai
final adalah 67,80 maka proses normalisasinya adalah :
maxA = 100, minA= 0, new_maxA = 4, new_minA= 0, dan v =
final dalam hal ini bernilai 67,80 , sehingga proses perhitungannya
v1= (67,80-0)/(100-0)*(4-0)+0 = 2.44. Sehingga hasil normalisasi
nilai final yang awalnya bernilai 61.00 sekarang menjadi 2.712.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
34
Contoh data dibawah ini mengambarkan proses transformasi atribut
nilai final. Tabel 3.3 merupakan tabel yang berisi data atribut nilai
final sebelum normalisasi.
Tabel 3.3 Contoh Data Atribut Nilai Final sebelum dinormalisasi
Nomor
Ips1
Ips2
Ips3
Ips4
Final
1
2,94
3,27
2,96
2,81
54,00
2
1,72
1,65
1,53
1,68
28,00
3
2,56
2,77
2,52
3,13
52,00
4
2,44
2,63
2,00
2,67
51,00
5
2,94
2,59
1,55
2,35
53,00
6
1,89
2,20
2,21
1,95
59,00
7
4,00
3,52
3,43
3,70
58,00
8
1,44
2,42
2,53
1,96
74,00
9
3,72
3,48
3,36
3,65
65,00
10
1,72
2,65
2,43
2,24
59,00
11
3,28
2,75
2,90
3,00
64,00
12
2,89
3,21
3,33
3,36
55,00
13
2,89
3,18
3,04
2,95
57,00
Data
yang
menggunakan
ada
pada
rumus
Tabel
3.3
min-max
kemudian
dinormalisasi
normalization
menghasilkan data seperti pada Tabel 3.4 di bawah ini :
sehingga
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
35
Tabel 3.4 Contoh Data Atribut Nilai Final setelah dinormalisasi
Nomor
Ips1
Ips2
Ips3
Ips4
Final
1
2,94
3,27
2,96
2,81
2,16
2
1,72
1,65
1,53
1,68
1,12
3
2,56
2,77
2,52
3,13
2,08
4
2,44
2,63
2,00
2,67
2,04
5
2,94
2,59
1,55
2,35
2,12
6
1,89
2,20
2,21
1,95
2,36
7
4,00
3,52
3,43
3,70
2,32
8
1,44
2,42
2,53
1,96
2,96
9
3,72
3,48
3,36
3,65
2,60
10
1,72
2,65
2,43
2,24
2,36
11
3,28
2,75
2,90
3,00
2,56
12
2,89
3,21
3,33
3,36
2,20
13
2,89
3,18
3,04
2,95
2,28
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 melalui proses transformasi data selanjutnya dicari
outliernya menggunakan algoritma deteksi outlier yaitu algoritma Local
Outlier Probability (LoOP). Data yang diteliti akan dibatasi pada data
dua tahun angkatan di Universitas Sanata Dharma yaitu tahun angkatan
2007 dan 2008. Pada tahap ini, akan ditentukan juga variabel-variabel
yang akan digunakan untuk menambang data. Variabel-variabel
tersebut antara lain :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
36
1.) Input, yang terdiri dari :
a. Nilai hasil seleksi masuk mahasiswa, baik melalui jalur tes
maupun jalur prestasi. Masukan tersebut diperoleh dari atribut
yang ada pada tabel fact_lengkap2 yaitu 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.
Pada penelitian ini menggunakan data akademik mahasiswa Teknik
Informatika Universitas Sanata Dharma angkatan 2007-2008, dimana
memiliki atribut ips1, ips2, ips3, ips4, nil11, nil12, nil13, nil14, nil15.
Atribut ips1 merupakan nilai indeks prestasi semester 1, dan atribut
nil11-nil15 merupakan nilai komponen tes PMB (berlaku untuk
mahasiswa yang masuk melalui jalur tes). Tabel 3.5 merupakan data
akademik mahasiswa angkatan 2007 yang masuk dan diterima di
Universitas Sanata Dharma melalui jalur tes tertulis.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
37
Tabel 3.5 Data Akademik Mahasiswa Angkatan 2007 Jalur Tes Tertulis
No ips1
ips2
ips3
ips4
nil11
nil12
nil13
nil14
nil15
1
2,94
3,27
2,96
2,81
2,80
2,00
2,00
2,00
1,60
2
1,72
1,65
1,53
1,68
1,20
0,80
3,20
1,20
0,40
3
2,56
2,77
2,52
3,13
2,40
1,60
2,00
2,80
2,00
4
2,44
2,63
2,00
2,67
2,00
2,00
2,40
2,00
2,00
5
2,94
2,59
1,55
2,35
2,40
1,60
2,40
1,20
2,80
6
1,89
2,20
2,21
1,95
2,40
2,00
2,40
2,40
2,80
7
4,00
3,52
3,43
3,70
2,40
2,40
1,60
1,60
2,80
8
1,44
2,42
2,53
1,96
4,00
2,00
3,60
2,40
2,80
9
3,72
3,48
3,36
3,65
3,20
2,40
2,40
2,80
2,00
10
1,72
2,65
2,43
2,24
2,80
2,40
3,20
3,20
0,80
11
3,28
2,75
2,90
3,00
2,80
2,40
2,80
2,40
2,40
12
2,89
3,21
3,33
3,36
2,40
2,00
2,00
2,80
2,00
13
2,89
3,18
3,04
2,95
2,00
2,00
3,20
2,00
2,80
Langkah 1 Menghitung k-distance
Perhitungan data mahasiswa angkatan 2007 melalui jalur tes dengan
membandingkan nilai per komponen dan mulai dari indeks prestasi
semester 1. Mencari jarak dengan menggunakan rumus jarak ecluidian
distance, yaitu =
d(i,j)
=
……(2.1)
Gambar 3.4 merupakan hasil perhitungan jarak dari data akademik
mahasiswa angkatan 2007 jalur tes menggunakan
euclidean.
rumus jarak
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
38
Gambar 3.4 Perhitungan jarak mahasiswa angkatan 2007 jalur tes
Setelah menghitung jarak setiap obyek, maka selanjutnya dicari
kdistance dari setiap obyek, dengan asumsi k = 10, k melambangkan
jangkauan suatu obyek terhadap tetangganya, sehingga dicari 10 jarak
terdekat dari sebuah obyek. Caranya dengan mengurutkan jarak dari
yang terkecil sampai jarak terbesar. Lalu memilih sebanyak k, yaitu 10
obyek dengan jarak terkecil. Kemudian pilih jarak terbesar dari
kesepuluh jarak tersebut. jarak terbesar tersebut adalah kdistance.
Gambar 3.5 merupakan pencarian kdistance dari setiap obyek
mahasiswa angkatan 2007 jalur tes.
Gambar 3.5 Pencarian kdistance pada data mahasiswa angkatan 2007
jalur tes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
39
Langkah 2 Menghitung jumlah tetangga terdekat (kdistance
neighborhood) dari setiap obyek
Setelah pencarian kdistance selesai, selanjutnya adalah mencari
kdistance neighborhood dari data mahasiswa angkatan 2007 jalur tes.
Gambar 3.6 merupakan pencarian kdistance neighborhood dari data
mahasiswa angkatan 2007 jalur tes.
Gambar 3.6 Pencarian kdistance neighborhood dari data mahasiswa
angkatan 2007 jalur tes
Dari data di atas dapat disimpulkan bahwa neighborhood (Nk) dari
obyek P1 adalah P3, P4, P5, P6, P7, P9, P10, P11, P12 dan P13 dengan
kdistance 2,273411533, dan seterusnya.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
40
Langkah 3 Menghitung standard distance (σ)
=
……(2.2)
Gambar 3.7 di bawah ini merupakan perhitungan standard distance dari
mahasiswa angkatan 2007 jalur tes. Perhitungan ini menggunakan
Microsoft excel.
Gambar 3.7 Perhitungan standard distance dari mahasiswa angkatan
2007 jalur tes
Misal pada obyek P1, stdev dari P1 adalah 1,56582 didapat dari :
=
==
== 1,56582
Langkah 4 Menghitung Probabilistic set distance (pdist)
pdist(
……(2.3)
Dalam perhitungan ini penulis menggunakan  = 2. Dalam melakukan
beberapa percobaan, nilai  tidak mempengaruhi jumlah outlier yang
ditemukan. Catatan pentingnya, nilai  harus dalam kisaran angka lebih
dari 0. Penulis telah melakukan percobaan nilai  sama dengan 1, 2, dan
3 dan jumlah outlier yang dihasilkan adalah sama. Gambar 3.8 di
bawah ini merupakan perhitungan probability set distance dari
mahasiswa angkatan 2007 jalur tes.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
41
Gambar 3.8 Perhitungan probability set distance dari data akademik
mahasiswa angkatan 2007 jalur tes
Contoh perhitungan pada obyek p1 adalah
pdist(
== 2 * 1,56582
== 3,13164
Langkah 5 Menghitung Probabilistic Local Outlier Factor (PLOF)
PLOF,Nk(o)(o) =
-1 ……(2.4)
Sebelum menghitung PLOF, langkah utama adalah mencari pdist dari
obyek s dimana s tersebut adalah anggota dari Nk(o) dimana Nk(o)
adalah tetangga dari obyek itu sendiri. Maksudnya, adalah
PLOF dari obyek P1 =
-1
Nk(P1) = P3, P4, P5, P6, P7, P9, P10, P11, P12, P13
Gambar 3.9 di bawah ini merupakan perhitungan probability local
outlier factor dari mahasiswa angkatan 2007 jalur tes.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
42
Gambar 3.9 Perhitungan probability local outlier factor dari data
akademik mahasiswa angkatan 2007 jalur tes
Perhitungannya =
PLOF P1 
-1
= -0,13072
Langkah 6 Menghitung nPLOF
nPLOF() =  .
untuk
menghitungan
......(2.5)
nPLOF,
yang
pertama
adalah
dengan
mengkwadratkan nilai PLOF lalu menjumlahkan totalnya. Gambar 3.10
di bawah ini merupakan perhitungan agregat probability local outlier
factor dari mahasiswa angkatan 2007 jalur tes.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
43
Gambar 3.10 Perhitungan agregat probability local outlier factor dari
mahasiswa angkatan 2007 jalur tes
Total dari PLOF kwadrat adalah 1,123675. Kemudian perhitungannya
adalah sebagai berikut :
nPLOF() =  .
== 2 .
== 0,61688
Langkah 7 Menghitung LoOP
LoOPNk(o)(o) = max (0,
))……(2.6)
Dalam menghitung LoOP dilakukan perhitungan step by step. Pertama
dengan menghitung nilai
. Lalu mencari nilai error
function dari nilai
tersebut. Rumus erf tersebut
adalah
erf(x) =
dt
……(2.7)
Gambar 3.11 di bawah ini merupakan perhitungan local outlier
probability dari mahasiswa angkatan 2007 jalur tes.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
44
Gambar 3.11 Perhitungan local outlier probability dari mahasiswa
angkatan 2007 jalur tes
Hasil perhitungan di atas, nilai LoOP lebih dari 0 yang diasumsikan
menjadi outlier pada semester 1 dari ke13 data di atas. Mahasiswa
outlier tersebut adalah mahasiswa ke 2, ke 5, ke 7, ke 8, ke 9, dan ke
10.
5.
Evaluasi Pola (Pattern Evaluation)
Pada tahap ini dilakukan evaluasi terhadap pola yang telah didapat dari
proses penambangan data, dimana hasil dari penambangan data tersebut
akan dievaluasi dengan hipotesa yang telah dibentuk sebelumnya.
Melalui sistem pendeteksi outlier akan diperoleh luaran berupa datadata outlier menggunakan algoritma Local Outlier Probability (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.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.
45
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 datadata tersebut bisa muncul. Tidak bisa dipungkiri bahwa outlier sendiri
akan didefinisikan dan dianalisa oleh orang yang ahli dan mengerti
tentang data itu.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
4.1
Identifikasi Sistem
Seperti halnya dengan Universitas lain, Universitas Sanata Dharma
Yogyakarta juga membuka pendaftaran untuk penerimaan mahasiswa baru
dalam tahunnya. Penerimaan mahasiswa baru ini melalui 2 jalur, yaitu jalur
prestasi dan jalur tes tertulis. Untuk jalur prestasi syarat utama dari calon
mahasiswa adalah mengirimkan nilai hasil belajar saat kelas XI semester 1
dan 2 di SMA/sederajat. Dari nilai tersebut dapat diolah rata-rata nilai yang
kemudian menjadi nilai final calon mahasiswa. Sedangkan calon mahasiswa
yang mendaftar melalui jalur tes tertulis akan diuji dalam 5 komponen tes,
yaitu kemampuan penalaran numerik, penalaran verbal, hubungan ruang,
bahasa Inggris, dan kemampuan numerik. Setelah itu akan didapat nilai tes
per komponen tes yang akhirnya juga diolah menjadi nilai final. Nilai final
dari jalur prestasi dan tes tersebut menjadi pertimbangan calon mahasiswa
dapat diterima atau tidak.
Mahasiswa baru yang diterima di Universitas Sanata Dharma
diharuskan mengikuti kegiatan perkuliahan dan setiap semesternya akan
memperoleh nilai indeks prestasi sebagai kalkulasi dadi prestasi
akademiknya. Dalam hal ini dapat diidentifikasi apakah ada nilai indeks
prestasi per semester ini akan berhubungan dengan nilai seleksi masuk
mahasiswa. Hal ini dapat juga menjadi penelitian untuk menemukan
kejadian langka dari nilai akademik siswa atau dapat disebut sebagai 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 Local Outlier Probability (LoOP) yang merupakan
46
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
47
algoritma menggunakan pendekatan density based yang berguna untuk
mencari outlier.
4.1.3
Diagram Use Case
Dalam sebuah sistem, peranan pengguna sangat dibutuhkan karena
pengguna sebagai pelaku utama yang menjalankan fungsi-fungsi
yang ada dalam sebuah sistem tersebut. Hal ini yang disebut
adanya interaksi antara sistem dengan pengguna sistem. Untuk
menggambarkan interaksi tersebut digunakan sebuah diagram use
case yang terlampir pada lampiran 1.
Terdapat tiga fungsi utama yang dapat dijalankan oleh pengguna
yaitu memasukkan data file excel atau database, mendeteksi outlier,
dan menyimpan deteksi outlier. Ketiga fungsi tersebut saling
berkaitan sehingga dalam menjalankan fungsi ini pengguna harus
melakukannya secara beurutan. Untuk menyimpan hasil deteksi
outlier, pengguna diharuskan melakukan deteksi outlier terlebih
dahulu. sedangkan untuk mendeteksi outlier pengguna harus
memasukkan file data excel atau database sebagai masukan untuk
dapat dideteksi adanya outlier.
4.1.4
Narasi Use Case
Untuk mengetahui deskripsi use case, dapat dilihat pada lampiran
2. Sedangkan narasi use case dapat dilihat pada bagian lampiran 3.
4.2
Perancangan Sistem Secara Umum
4.2.4
Input Sistem
Sistem yang dibuat pada penelitian ini dapat menerima masukan
berupa data bebas dari pengguna yang bertipe file excel (.xls),
(.csv) atau data dalam table yang terdapat di dalam basis data.
Dalam penelitian ini data yang digunakan adalah data dengan
ukuran bebas, karena aplikasi yang akan dikembangkan bersifat
universal, sehingga dapat mencari outlier di semua jenis data.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
48
Sistem ini juga membutuhkan sebuah inputan untuk memproses
pencarian outlier, inputan tersebut yaitu :
1.
Data akademik mahasiswa Teknik Informatika angkatan 20072008
Data yang digunakan dalam penelitian ini adalah data
akademik mahasiswa Teknik Informatika angkatan 2007-2008
yang terdiri dari 126 buah. Mahasiswa tersebut diterima di
Universitas Sanata Dharma melalui jalur prestasi dan jalur tes.
Masing-masing jalur masuk tersebut akan dicari data yang
outlier. Berikut ini merupakan rincian data yang akan
digunakan dalam penelitian:
a. Data Seleksi Masuk Jalur Prestasi
No
Nama
Keterangan
Range
Atribut
1
nomor urut
Nilai
Atribut
nomor
ini
merupakan
alias
1 – 126
untuk
menunjukkan
obyek
mahasiswa yang diurutkan
dalam suatu nomor
2
nilai final
Atribut
rata-rata
ini
merupakan 0.00 – 4.00
nilai
kognitif
rapor siswa pada saat
SMA/sederajat
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
49
b. Data Seleksi Masuk Jalur Tes
No
Nama
Keterangan
Range
Atribut
1
nomor urut
Nilai
Atribut
nomor
ini
merupakan
alias
menunjukkan
1 – 126
untuk
obyek
mahasiswa yang diurutkan
dalam suatu nomor
2
nil11
Atribut
ini
merupakan
0.00 – 4.00
nilai komponen tes 1
3
nil12
Atribut
ini
merupakan
0.00 – 4.00
nilai komponen tes 2
4
nil13
Atribut
ini
merupakan
0.00 – 4.00
nilai komponen tes 3
5
nil14
Atribut
ini
merupakan
0.00 – 4.00
nilai komponen tes 4
6
nil15
Atribut
ini
merupakan
0.00 – 4.00
nilai komponen tes 5
7
nilai final
Atribut
ini
merupakan
nilai akhir hasil kalkulasi
semua nilai tes
0.00 – 4.00
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
50
c. Data Indeks Prestasi Semester (IPS)
No
Nama
Keterangan
Range
Atribut
1
nomor urut
Nilai
Atribut
ini
nomor
merupakan
alias
menunjukkan
1 – 126
untuk
obyek
mahasiswa yang diurutkan
dalam suatu nomor
2
ips1
Atribut
nilai
ini
IP
merupakan
0.00 – 4.00
mahasiswa
semester 1
3
ips2
Atribut
nilai
ini
IP
merupakan
0.00 – 4.00
mahasiswa
semester 1
4
ips3
Atribut
nilai
ini
IP
merupakan
0.00 – 4.00
mahasiswa
semester 1
5
ips4
Atribut
nilai
ini
IP
merupakan
0.00 – 4.00
mahasiswa
semester 1
2.
k
k adalah jangkauan atau jumlah tetangga terdekat yang
digunakan untuk mendefinisikan local Neighborhood suatu
obyek.
3.
Lamda 
Lamda adalah sebuah normalization factor yang memberikan
kontrol atas perkiraan kepadatan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.2.5
51
Proses Sistem
Setelah data dimasukkan dan dilakukan pemrosesan data. Proses
yang terjadi pada sistem deteksi outlier adalah :
1.
Pengambilan Data
Pada tahap ini mengambil data sesuai pilihan user, dapat
berupa data yang disimpan dalam bentuk file excel (.xls), (.csv)
atau mengambil data pada tabel dalam database dan
selanjutnya ditampilkan pada tabel view. Setelah itu user
melakukan seleksi atribut untuk melakukan proses deteksi
outlier.
2.
Perhitungan Jarak Obyek Data
Setelah menyeleksi atribut dari data yang dimasukkan,
selanjutnya melakukan perhitungan jarak antar obyek data
menggunakan rumus eucliedean distance. Sehingga diperoleh
jarak satu obyek dengan obyek yang lainnya. Perhitungan jarak
memakai iterasi sebanyak jumlah data yang dimasukkan.
3.
Pencarian Outlier berdasarkan parameter k dan lamda 
Pada tahap ini dilakukan proses pencarian outlier dengan
menggunakan algoritma local outlier probability. Sistem
menerima input parameter k dan . Dimana k adalah jumlah
maksimum tetangga yang terdekat dengan obyek. Sedangkan
inputan  adalah untuk normalization factor yang memberikan
kontrol atas perkiraan kepadatan.
Proses
umum
yang
ada
pada
sistem
pendeteksi
outlier
menggunakan algoritma Local Outlier Probability dapat dilihat di
lampiran 4 dalam tugas akhir ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.2.6
52
Output Sistem
Sistem yang dibuat merupakan sistem yang dapat mendeteksi
adanya outlier dalam suatu data beserta atribut yang dimiliki data
tersebut. berikut ini adalah keluaran yang dihasilkan sistem :
1. Proses input akan menampilkan :
a. Sampel data yang akan dideteksi, beserta jumlah data
(baris) dan jumlah atributnya.
b. Daftar atribut yang akan dipakai untuk proses deteksi.
2. Proses deteksi outlier akan menampilkan :
a. Hasil outlier untuk setiap data yang diuji beserta nilai
atribut yang dimiliki.
b. Parameter k dan  yang digunakan dalam perhitungan
algoritma Local Outlier Probability.
c. Jumlah data.
d. Jumlah outlier.
e. Lama deteksi outlier.
f. Label serta derajat LoOP yang bertujuan untuk memberikan
peringkat outlier dari yang nilai LoOP paling tinggi ke nilai
LoOP paling rendah.
g. Ranking outlier.
4.3
Perancangan Sistem
4.3.6
Diagram Aktivitas
Diagram aktivitas digunakan untuk menggambarkan alur
aktivitas sekuensial yang dilakukan oleh pengguna dan sistem
dalam setiap use case yang telah disebutkan pada lampiran 1.
(Whitten & Bentley, 2005)
Berikut ini adalah diagram aktivitas dari setiap use case :
1. Diagram Aktivitas Input Data File .xls dan .csv
2. Diagram Aktivitas Input Data Tabel Basis Data
3. Diagram Aktivitas Seleksi Atribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
53
4. Diagram Aktivitas Deteksi Outlier
5. Diagram Aktivitas Simpan Hasil Outlier
Diagram aktivitas yang telah disebutkan di atas dipaparkan
pada lampiran 5 dalam tugas akhir ini.
4.3.7
Diagram Kelas Analisis
Diagram kelas analisis dapat dilihat di lampiran 6. Sedangkan
keterangan diagram kelas analisis dapat dilihat pada Tabel 4.1 di
bawah ini :
Tabel 4.1 Tabel Keterangan Diagram Kelas Analisis
No
1
Nama Kelas
DataLoop
Jenis
Model
Keterangan
Kelas
ini
berfungsi
untuk
menyimpan data hasil outlier
2
koneksiDB
Model
Kelas ini berisi tentang atributatribut
yang
berfungsi
untuk
melakukan koneksi antara sistem
dengan server basis data. Atribut
tersebut antara lain : username,
password, dan jdbc URL.
3
seleksiAtribut
Model
Kelas
ini
berfungsi
untuk
menyimpan daftar atribut yang
ada dalam tabel preprocessing.
Daftar atribut ini akan muncul di
tabel seleksi di tab preprocessing.
4
Vertex
Model
Kelas
ini
berfungsi
untuk
menyimpan atribut-atribut yang
digunakan
dalam
proses
penghitungan pencarian outlier.
5
checkBoxTableModel
Model
Kelas
ini
berfungsi
untuk
mengatur pembuatan tabel seleksi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
54
atribut di halaman utama pada tab
preprocessing.
6
LoOPTabelModel
Model
Kelas ini berfungsi untuk
mengatur format tabel untuk
menampilkan tabel hasil deteksi
outlier yang berisi label data,
derajat loop, dan ranking
7
DBControl
Control Kelas
ini
berfungsi
mengatur
konfigurasi
database
agar
untuk
koneksi
sistem
dapat
terhubung
dengan
server
database
sehingga
dapat
mengakses tabel yang diinginkan
pengguna.
8
graph
Control Kelas ini berisi proses
perhitungan yang ada dalam
algoritma LoOP meliputi :
perhitungan jarak antar data,
standard distance, probabilistic
distance, probabilistic LOF,
agregat probabilistic LOF, dan
derajat LoOP
9
HalamanAwal
View
Kelas ini menampilkan halaman
saat pertama kali menjalankan
sistem.
10
HalamanUtama
View
Kelas ini merupakan inti dari
sistem, kelas ini menampilkan 2
tabbed pane yaitu preprocessing
dan deteksi. Pada tab
preprocessing pengguna dapat
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
55
menginput tabel lalu menyeleksi
atribut yang akan digunakan
untuk deteksi. Selanjutnya pada
proses deteksi, pengguna
menginputkan parameter k dan
lamda lalu setelah diklik proses
maka sistem akan menampilkan
hasil outlier pada tabel. Selain itu
pengguna juga dapat menyimpan
hasil deteksi outlier tersebut.
11
HalamanPilihFile
View
Kelas ini digunakan untuk
menampilkan direktori pada
computer untuk menginputkan
file inputan beripa xls atau csv
12
HalamanPilihDatabase
View
Kelas ini digunakan untuk login
ke basisdata untuk mengambil
tabel dalam basisdata tersebut
13
HalamanPilihTabel
View
Kelas ini berfungsi untuk
menampilkan tabel dengan syarat
pengguna sistem harus login ke
basisdata.
14
HalamanTentang
View
Kelas ini menampilkan informasi
umum mengenai sistem (nama
sistem, pembuat, instansi, tahun)
15
HalamanBantuan
View
Kelas ini menampilkan informasi
panduan sistem.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.3.8
56
Diagram Sequence
Menurut Whitten dan Bentley (2007), secara grafikal,
Sequence Diagram merupakan diagram yang menggambarkan
bagaimana obyek berinteraksi satu sama lain melalui pesan dalam
eksekusi usecase atau operasi. Diagram ini mengilustrasikan
bagaimana pesan dikirim dan diterima antara obyek dan urutan
yang seperti apa. Diagram ini lebih detail dalam penggambaran
aliran data, termasuk data yang dikirim ataupun diterima.
Berikut ini merupakan sequence diagram yang terdapat
dalam
proses
perancangan
sistem
perancangan
outlier
menggunakan algoritma Local Outlier Probability (LoOP) :
1. Diagram Sequence Input Data File Excel .xls dan .csv
2. Diagram Sequence Input Data Tabel Basis Data
3. Diagram Sequence Deteksi Outlier
4. Diagram Sequence Simpan Hasil Outlier
5. Diagram Sequence Seleksi Atribut
Untuk penjelasan masing-masing diagram sequence dapat
dilihat pada lampiran 7 yang terdapat dalam tugas akhir ini.
4.3.9
Diagram Kelas Desain
Diagram kelas desain menunjukkan daftar kelas yang
digunakan dalam sistem. Diagram kelas ini memuat semua kelas
yang digunakan untuk menjalankan semua fungsi pada sistem serta
hubungan apa saja yang terbentuk di antara kelas tersebut.
Hubungan yang terbentuk bisa berupa associations, aggregation
atau composition. Diagram kelas desain dapat dilihat pada lampiran
8 dalam tugas akhir ini.
Untuk penjelasan tentang rincian atribut dan method yang
terdapat dalam masing-masing kelas, dapat dilihat pada lampiran 9
dalam tugas akhir ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.3.10
57
Rincian Algoritma Setiap Method
1. Rincian Algoritma pada Method dalam kelas koneksiDB
Nama method
koneksiSQL
Fungsi method
Mendapatkan
(String, String, nilai
String)
1. Deklarasi atribut baru jdbcURL
username,
password,
Algoritma method
bertipe static String, user bertipe
dan
static String, password bertipe
url dari inputan
static String dan conn bertipe
pengguna
Connection.
inputan
lalu
tersebut 2. Membuat koneksi basis data SQL
untuk login ke
ke dalam method yang bernama
basisdata SQL
setConn(DriverManager.getConn
ection(url,
user,
passw)).
Parameter
tersebut
dicocokan
dengan
pengguna
nilai
dari
dalam
inputan
form
login
koneksi database.
3. Jika inputan benar (sesuai), maka
sistem berhasil terkoneksi dengan
basisdata SQL lalu mencetak pada
output “koneksi berhasil”.
4. Jika tidak sesuai, maka sistem
akan mencetak pesan error.
5. Mengembalikan nilai getConn().
isConnected
Melakukan
1. Cek
apabila
parameter
pada
koneksiSQL(url,
user,
(String, String, pengecekan
method
String)
sistem
passw) tidak sama dengan null
sudah terkoneksi
atau dalam kata lain terisi, maka
dengan basis data
kembalikan nilai true.
apakah
SQL
2. Jika tidak, maka kembalikan nilai
false.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
koneksiOrcl
Mendapatkan
(String, String, nilai
String)
url,
1. Membuat koneksi basisdata oracle
parameter
user,
dan
passw
yang
didapat
menggunakan
method
setConn(DriverManager.getConn
ection(url, user, passw)).
dari 2. Parameter
tersebut
inputan pengguna
dengan
ketika melakukan
pengguna
login
koneksi database.
untuk
koneksi
58
nilai
dicocokan
dari
dalam
inputan
form
login
ke 3. Jika inputan benar (sesuai), maka
basisdata oracle
sistem berhasil terkoneksi dengan
basisdata SQL lalu mencetak pada
output “koneksi berhasil”.
4. Jika tidak sesuai, maka sistem
akan mencetak pesan error.
5. Mengembalikan nilai getConn().
isConnectedO
racle
Melakukan
1. Cek
(String, pengecekan
String, String)
apakah
apabila
method
parameter
pada
koneksiOrcl(url,
user,
sistem
passw) tidak sama dengan null
sudah terkoneksi
atau dalam kata lain terisi, maka
dengan basis data
kembalikan nilai true.
Oracle
2. Jika tidak, maka kembalikan nilai
false.
getClose( )
Memutuskan
koneksi
data
basis
1. Cek
apakah
sistem
masih
terkoneksi dengan basis data.
(menjalankan
method
isConnected( ) ).
2. Jika ya, maka tutup koneksi lalu
beri nilai atribut conn menjadi
null. Lalu kembalikan nilai true.
3. Jika tidak, maka kembalikan nilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
59
false.
2. Rincian Algoritma pada Method dalam kelas DBControl
Nama method
Fungsi method
Algoritma method
displayTableO
Menampilkan
racle(Connecti
daftar tabel yang
menampilkan daftar tabel, yaitu :
on)
ada pada basis
Select
data
user_tables;
sesuai
Oracle
1. Deklarasi
query
table_name
untuk
from
login 2. Mengeksekusi query.
pengguna
3. Mengembalikan nilai result yang
berisi tabel yang ada pada basis
data Oracle.
displayTable
Menampilkan
1. Deklarasi
query
untuk
MySql
daftar tabel yang
menampilkan daftar tabel, yaitu :
(Connection)
ada pada basis
Show_tables;
data SQL sesuai 2. Mengeksekusi query.
login pengguna
3. Mengembalikan nilai result yang
berisi tabel yang ada pada basis
data Oracle.
selectTable
Menampilkan isi 1. Mendeklarasikan
query
(Connection,
data tabel yang
menampilkan isi tabel :
String)
dipilih pengguna
Select * from table;
untuk
2. Mengeksekusi query
3. Mengembalikan nilai result yang
berarti menampilkan semua data
dari tabel yang diinputkan oleh
pengguna.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
60
3. Rincian Algoritma pada Method dalam kelas GraphNew
Nama method
Fungsi method
Algoritma method
addVertex
Membuat vertex 4. Membaca nilai parameter dari
(String,
untuk
method
List<Double>) membentuk suatu
graf
addVertex
yaitu
parameter label bertipe String
dan
parameter
nilai
bertipe
List<Double>.
5. Membuat vertex baru dengan
parameter label dan nilai sesuai
dengan inputan jumlahVertex
addEdge (int, Membuat
int, double)
pada
edge 1. Membaca nilai dari parameter
vertex
dalam graf
awal
bertipe
integer,
akhir
bertipe integer, dan nilai bertipe
double.
2. Inisialisasi parameter nilai sama
dengan matriks[awal][akhir] =
matriks[akhir][awal].
cariJarak (int, Mencari
int)
setiap
jarak 1. Membuat variabel baru bernama
obyek
dengan
perhitungan
a dan b dengan tipe ArrayList
Double.
2. Inisialisasi
nilai
ArrayList
rumus Euclidean
sebagai
distance
menyimpan nilai obyek awal.
3. Inisialisasi
sebagai
ArrayList
nilai
yang
ArrayList
ArrayList
a
b
yang
menyimpan nilai obyek tujuan.
4. Inisialisasi
nilai
atribut
total
bertipe Double bernilai 0.0;
5. Selama i = 0 dan I tidak lebih
dari ukuran a, maka lakukan total
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
61
= total + Math.pow(a.get(i) –
b.get(i)),2)
6. Kembalikan nilai akar dari total.
inputData
Menginputkan
(jTable)
data
yang
ada
dalam jTable ke
dalam
1. Selama i = 0 dan tidak lebih dari
jumlah
baris
jTable,
maka
lakukan langkah 2 sampai 5.
matriks 2. Membuat variabel baru bernama
dalam graf
label.
3. Membuat variabel baru bernama
listNilai bertipe array list Double.
4. Selama j = 0 dan j tidak lebih
dari jumlah kolom jTable, maka
lakukan langkah di bawah ini :
a. Cek apakah j bernilai 0, jika
ya, maka lakukan b.
b. Cek apakah value pada jTable
bernilai kosong atau “ ”, jika
ya, maka set label = “ ”. jika
tidak, maka set label sama
dengan data yang ada di
dalam baris dan kolom tabel
tersebut.
c. Jika
tidak,
maka
lakukan
langkah d.
d. Cek apakah value pada jTable
bernilai kosong atau “ ”. jika
ya, maka set label = “ ”. jika
tidak, maka cek apakah data
tersebut
merupakan
numeric?
Jika
ya,
data
maka
masukkan data pada baris (i,j)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
62
ke dalam arraylist nilai.jika
data bukan numeric maka
masukkan nilai 0,0 ke dalam
arraylist nilai.
5. Panggil
dengan
method
addVertex
inputan
label
dan
listNilai.
6. Selama I = 0 dan I tidak lebih
dari jumlah baris dari jTable
lakukan langkah dibawah ini :
a. Selama j = i+1 dan j tidak
lebih dari jumlah baris jTable,
maka lakukan b.
b. Cek apakah nilai I tidak sama
dengan j. jika iya, maka
jalankan
method
dengan
addEdge
memasukkan
parameter I, j, dan hasil
perhitungan
dari
method
cariJarak(i,j).
Kdistance (int, Mencari
nilai 1. Selama i = 0 dan i tidak lebih
int)
dari
dari panjang array vertexList,
setiap
obyek
maka set semua flagKunjungan
sesuai
dengan
Kdistance
inputan k
menjadi false.
2. Membuat variabel array bernama
a bertipe Double.
3. Inisialisasi array a bernilai array
yang panjangnya sesuai dengan
jangkauan (k yang diinputkan
pengguna).
4. Membuat
variabel
kDistance
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
63
bertipe double.
5. Membuat variabel temp1 bertipe
double.
6. Jika indeks == -1 maka cetak
“Data tidak ada”
7. Selama t=0 dan t tidak lebih dari
panjang array a, maka lakukan :
a. Selama i=0 dan I tidak lebih
dari
panjang
arraylist
vertexlist, maka lakukan b
b. Cek apakah matriks[indeks][i]
tidak sama dengan -1, tidak
sama
dengan
0
dan
flagkunjungan bernilai false,
maka lakukan c.
c. Cek jika matriks[indeks][i]
kurang dari nilai temp1, maka
inisialisasi nilai temp1 adalah
nilai dari matriks[indeks][i].
d. Set nilai array a[t] sama
dengan temp1.
e. Menjalankan method search2
dengan
parameter
temp1,
indeks.
8. Selama i=0 dan I kurang dari
panjang array a, maka cek
apakah nilai kDistance kurang
dari array a[i], jika ya maka set
nilai kDistance sama dengan
nilai array a[i].
9. Kembalikan nilai kDistance.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
cariNeighborh
Mencari tetangga 1. Membuat
ood (Double, yang
int)
memiliki
ArrayList
64
bertipe
String bernama a.
jarak kurang dari 2. Jika indeks sama dengan -1,
sama
dengan
kdistance
maka cetak “Tidak ada data”.
3. Selama i=0 dan I kurang dari
panjang
array list
vertexlist,
maka lakukan langkah berikut :
a. Cek apakah matriks[indeks][i]
tidak sama dengan -1, dan
tidak sama dengan 0. Jika ya,
lakukan b.
b. Cek apakah matriks[indeks][i]
kurang dari Kdistance(I, getk(
) +1). Jika yang maka lakukan
c.
c. Tambahkan
vertexlist[i].getLabel( ) pada
arraylist a.
4. Kembalikan nilai a.
setKdistance
Mengatur
(String, int)
variabel
index bertipe integer lalu di set
kDistance dalam
bernilai search(label).
vertex
1. Membuat variabel baru bernama
2. Set
variabel
kDistance
vertexlist[index][i]
pada
dengan
inputan parameter index dan
jangkauan.
setNeighborH
Mengeset
ood (String)
variabel
indeks bertipe integer lalu di set
neighborhood
bernilai search(label).
dalam vertex
1. Membuat variabel baru bernama
2. Set variabel neighborhood pada
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
65
vertexlist[indeks] dengan inputan
parameter
vertexList[indeks].getAnggotaNe
ighborHood(), indeks)
Search
Mencari
posisi 1. Selama i=0 dan i kurang dari
(String)
indeks
dalam
verteksList
panjang array list vertexList,
maka lakukan 2.
2. Jika label bernilai sama dengan
label dalam vertexList[i] maka
kembalikan nilai i.
3. Kembalikan
nilai
-1
dimana
artinya tidak terdapat data dalam
vertexList.
Search2
Mencari
(Double, int)
vertexList
1. Selama i=0 dan i kurang dari
dan
mengubah
panjang
array list
vertexlist,
maka lakukan 2.
flagkunjungan
menjadi true
2. Jika nilai dari matriks[indeks][i]
sama dengan nilai jarak, maka
atur flag kunjungan menjadi true.
4. Rincian
Algoritma
pada
Method
dalam
kelas
CheckBoxTableModel
Nama method
Add
Fungsi method
(int, Menambah
data 1. Deklarasi atribut bernama list
seleksiAtribut) ke dalam format
tabel
CheckBoxTable
Model
Algoritma method
yang
bertipe
ArrayList
SeleksiAtribut.
2. Menambahkan ke dalam list
dengan inputan paramener int
dan seleksiAtribut.
3. Menambahkan
nilai
field_m
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
66
sebagai data di index ke a ke
dalam list.
removeRow( )
Menghapus
semua
1. Membuat
atribut
yang
dihapus
ArrayList
bertipe
seleksiAtribut bernama s.
telah 2. Selama seleksi < list terpenuhi,
ketika
maka cek terhadap atribut yang
melakukan
akan
dihapus
tersebut
telah
seleksi atribut di
terpilih. Jika !seleksi.getPilih()
tabel seleksi
== true, maka nilai seleksi
ditambahkan pada ArrayList s.
3. Set nilai list menjadi s.
5. Rincian Algoritma pada Method dalam kelas HalamanUtama
Nama method
pilihFile( )
Fungsi method
1. Menampilkan
JFileChooser
untuk memilih
file excel bertipe
.xls dan .csv
2. Membaca file
Algoritma method
1. Menampilkan JFileChooser open
file
2. Mendapatkan
nilai
atribut
nama_file yang dipilih
3. Deklarasi array bertipe String
bernama
potong_nama_file
lalu
untuk memberi nama file dengan
menampilkan ke
pemisah “\\”
dalam tabel data 4. Jika
preprocessing
potong_nama_file[1].equals(“xls
”), maka lakukan langkah di
bawah ini :
a. Membuat
vector
baru
bernama columnName.
b. Membuat
vector
baru
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
67
bernama data.
c. Membuat obyek baru yang
bernama
workbook
yang
berisi getWorkbook(fileExcel)
d. Membuat
obyek
bernama
sheet yang berisi getSheet(0).
e. Menghapus columnName
f. Selama i=0 dan i tidak lebih
dari kolom dalam sheet, maka
lakukan g dan h.
g. Membuat cell baru dengan isi
sheet.getCell(i,0).
h. Menambahkan konten pada
cell ke dalam columnName.
i. Menghapus data
j. Selama j=0 dan j tidak lebih
dari cheet.getRows( ), maka
lakukan langkah k – m.
k. Membuat
vector
baru
bernama data2.
l. Selama i=0 dan i tidak lebih
dari sheet.getColumns( ) maka
cell diisi dengan cell pada
baris ke i pada kolom ke j lalu
cell.getContents() dimasukkan
ke data2.
m. Menambahkan data2 kedalam
data.
n. Membuat DefaultTableModel
bernama model dengan isi
baris berisi data dan kolom
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
68
berisi columnName.
o. Atur tabel preprocess menjadi
seperti model.
p. Cetak data.size( ) ke dalam
text field jumlah data.
q. Cetak columnName.size( ) ke
dalam
text
field
jumlah
atribut.
r. Cetak fileExcel.getPath( ) ke
dalam text file path data.
s. Selama i=0 dan i kurang dari
model.getColumnCount(
maka
setAtribut
seleksiAtribut
)
pada
menjadi
model.getColumnName(i) lalu
setPilih(false) lalu atur tabel
checkbox menjadi baris berisi
i
dan
kolom
berisi
seleksiAtribut.
t. Atur
tabel
seleksi
atribut
menjadi tabel check box.
5. Jika
potong_nama_file.equals
(“csv”) maka lakukan seperti
langkah 4.
6. Jika tidak keduanya, tampilkan
pesan eror.
pilihDb
Memanggil kelas 1. Membuat obyek baru bernama dc
(koneksiDB,
HalamanPilihDB
String)
untuk
menghubungkan
sistem dengan
dari kelas DBControl.
2. Membuat variabel bernama rset
bertipe ResultSet.
3. Membuat obyek bernama rsmd
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
database dan
bertipe
mengambil data
menginisialisasi
dari tabel
rset.getMetaData( ).
database
ResultMetaData
dengan
69
lalu
nilai
4. Deklarasi variabel baru bernama
columnCount bertipe int yang
berisi
nilai
rsmd.getColumnCount( ).
5. Membuat
vector
bernama
headers dan data.
6. Menghapus header.
7. Selama i=0 dan I tidak lebih dari
sama dengan jumlah kolom,
maka tambahkan pada header
rsmd.getColumnName( ).
8. Hapus data.
9. Selama
rset.next,
lakukan
langkah di bawah ini :
a. Membuat
vector
baru
bernama d.
b. Selama i=1 dan I kurang dari
sama dengan columnCount,
maka tambahkan rset pada d.
c. Tambahkan d pada data.
10. Membuat tabel model bernama
model atur nilai baris adalah data
dan nilai kolom adalah headers.
11. Setmodel tabel data preprocess.
12. Selama i=0 dan I kurang dari
model.getColumnCount(
)
lakukan langkah 13 – 16.
13. Membuat
obyek
dari
kelas
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
seleksiAtribut
70
bernama
seleksi_atribut.
14. Set
atribut
menjadil
model.getColumnName(i).
15. setPilih(false)
16. tambahkan (I, selekci_atribut)
pada tabel_checkbox.
17. Set model tabel seleksi atribut
menjadi tabel checkbox.
18. Membuat obyek baru bernama
model pada kelas TableModel
lalu inisialisasikan dengan nilai
tabel_DataPreprocess.getModel()
19. Cetak jumlah data
20. Cetak jumlah atribut
submitData( )
Memasukkan
1. Membuat obyek baru bernama
data dari tabel
tableModel di kelas TableModel
preprocess ke
lalu diatur sebagai model dari
tabel deteksi
tabel preprocess.
outlier
2. Jika
jumlah
kolom
pada
tableModel adalah 0, maka cetak
“Anda belum memasukkan data
!”. lalu atur textfield pathData
adalah null.
3. Jika tidak, lakukan langkah 4 –
4. atur
tabel
deteksi
menjadi
setModel(tableModel).
5. Deklarasi variabel bernama baris
bertipe int dengan inisialisasi
tableModel.getRowCount( ).
6. Cetak jumlah baris deteksi.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
hapusAtribut() Menghapus
71
1. Selama i=0 dan I tidak lebih dari
atribut yang ada
nilai
pada tabel data
tabel_SeleksiAtribut.getRowCou
preprocess untuk
nt( ), maka lakukan langkah 2-
proses seleksi
atribut
2. Cek
apakah
tabel_SeleksiAtribut.getValueAt(
i,1) samadengan true. Jika ya
lakukan langkah di bawah ini :
a. Selama j=0 dan j kurang dari
jumlah kolom tabel seleksi
atribut, maka lakukan b-f.
b. Cek
apakah
tabel
seleksi
atribut berisi nama kolom
dari tabel data preprocess.
Jika ya lakukan langkah c-f.
c. Membuat obyek baru bernama
tcol di kelas TableColumn
dengan
inisialisasi
nilai
tabel_dataPreprocess.getColu
mnModel().getColumn(j).
d. Membuat obyek baru bernama
tcol2 di kelas TableColumn
dengan
inisialisasi
nilai
tabel_deteksiOutlier.getColu
mnModel().getColumn(j).
e. Hapus kolom tcol pada tabel
data preprocess
f. Hapus kolom tcol2 pada tabel
deteksi outlier.
3. Hapus baris tabel checkbox.
prosesDeteksi
Melakukan
1. Cek apakah text field k kosong,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
72
pemanggilan
jika ya, cetak “Nilai k tidak boleh
pada kelas
kosong”. Jika tidak, lakukan
GraphNew untuk
langkah 2.
menampilkan
hasil perhitungan
2. Cek apakah text field k tidak
berisi numeric positif. Jika ya,
cetak “Nilai k tidak boleh berisi
huruf atau angka negative”. Jika
tidak lakukan langkah 3.
3. Cek apakah text field lamda
kosong, jika ya, cetak “Nilai
lamda tidak boleh kosong”. Jika
tidak, lakukan langkah 2.
4. Cek apakah text field lamda tidak
berisi numeric positif. Jika ya,
cetak “Nilai lamda tidak boleh
berisi
huruf
negative”.
atau
angka
Jika tidak lakukan
langkah 3.
5. Cek apakah text field k dan text
field
lamda
berisi
numeric
positif. Jika ya, lakukan langkah
66. Deklarasi variabel baru bernama
k dan lamda.
7. Cek apakah nilai k dan lamda
lebih dari 0. Jika ya lakukan
langkah 8. Jika tidak munculkan
pesan error.
8. Membuat obyek bernama graph
di kelas GraphNew.
9. Memanggil method input data ke
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
73
dalam tabel_deteksiOutlier.
10. setk agar sesuai dengan inputan
pengguna.
11. SetLamda agra sesuai dengan
inputan pengguna.
12. Memanggil method tampilJarak
untuk
menampilkan
hasil
perhitungan jarak.
13. Memanggil
method
tampilNeighbor
menampilkan
untuk
obyek
yang
menjadi tetangga obyek tersebut.
14. Memanggil method caristdev()
untuk
menampilkan
hasil
perhitungan standard deviasi.
15. Memanggil method caripdist()
untuk
menampilkan
perhitungan
hasil
probabilistic
distance.
16. Memanggil method jumlahpdist
untuk
menampilkan
hasil
perhitungan probabilistic LOF,
agregat PLOF dan nilai LoOP.
17. Mencetak jumlah outlier.
18. Mencetak lama deteksi outlier.
batasOutlier
Untuk membatasi 1. Cek apakah text field batas
nilai derajad
outlier
kosong,
maka
cetak
LOOP
“Nilai batas outlier tidak boleh
kosong!”. Jika tidak lakukan
langkah 2.
2. Cek apakah text field batas
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
outlier
berisi
data
74
numeric
positif. Jika ya, lakukan langkah
3 - . jika tidak tampilkan “Nilai
batas
outlier
tidak
boleh
mengandung karakter huruf!”
3. Atur model pada tabel deteksi
dengan
memanggil
method
setDataLoop2 dengan parameter
kolom tabel deteksi dan nilai
batas outlier.
4. Mengurutkan data hasil outlier.
5. Cetak jumlah hasil outlier.
simpanLoOP() Menyimpan hasil 1. Menampilkan filechooser untuk
outlier ke dalam
lokasi penyimpanan file hasil
file bertipe doc
outlier.
xls atau txt
2. Mengatur file filter agar hanya
bisa disimpan dalam tipe file
doc, xls, dan txt.
3. Deklarasi
variabel
bernama
file_output_stream
bertipe
FileOutputStream.
4. Deklarasi
variabel
bernama
returnValue bertipe int dengan
inisialisasi
fileChooser
menampilkan
kotak
dialog
simpan.
5. Cek
apakah
returnValue
==
JFileChooser.APPROVE_OPTI
ON. Jika ya lakukan langkah 6 –
14.
6. Membuat
variabel
bernama
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
75
filename bertipe String berisi
path data yang di pilih.
7. Membuat variabel ext berisi filter
terhadap tipe file.
8. Cek apakah ext berisi Microsoft
Excel (*.xls). jika ya lakukan
langkah 9 - 12.
9. Membuat variabel bernama ff
bertipe File.
10. Inisialisasi ff sama dengan file
baru dengan nama file diikuti .xls
11. Menampilkan output ff.
12. Mengirimkan isi data tabel hasil
outlier
13. Cek apakah ext berisi Microsoft
Word (*.doc) jika ya lakukan
seperti langkah 9-12. Jika tidak
lakukan langkah 14.
14. Cek apakah ext bertipe .txt, jika
ya lakukan seperti langkah 9-12.
15. Cetak “Hasil deteksi berhasil
disimpan”
6. Rincian Algoritma pada Method dalam kelas HalamanPilihDB
Nama method
pilihDatabase( )
Fungsi method
Menampilkan
Algoritma method
1. Cek jika combo box pilih
basisdata yang
koneksi adalah indeks ke 0
tersedia dan
yaitu mysql, maka lakukan
memberikan
langkah 2 – 4.
akses kepada
2. Jika
textfield
username,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
76
pengguna untuk
password, dbname, atau url
login ke basisdata
kosong,
yang dipilih
pengisian kembali.
pengguna
3. Jika
maka
textfield
lakukan
username,
password, dbname, dan url
diisi
dengan
benar,
maka
berhasil login ke basisdata
yang dipilih, yaitu mysql.
4. Menampilkan pesan berhasil
terkoneksi lalu menampilkan
form halaman pilih tabel.
5. jika combo box pilih koneksi
adalah indeks ke 1, yaitu
oracle, maka lakukan langkah
6 -7
6. Jika
textfield
username,
password, dbname atau url
kosong,
maka
lakukan
pengisian kembali.
7. Jika
textfield
username,
password, dbname, dan url
diisi
dengan
benar,
maka
berhasil login ke basisdata
yang dipilih, yaitu oracle.
8. Menampilkan pesan berhasil
terkoneksi lalu menampilkan
form halaman pilih tabel.
7. Rincian
Algoritma
HalamanPilihTabel
pada
Method
dalam
kelas
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Nama method
Fungsi method
77
Algoritma method
tampilDaftarTabel
Menampilkan daftar 1. Membuat obyek baru di kelas
(kodensiDB,
tabel dalam basis
String)
data yang dipilih
pengguna
DBControl bernama dbc.
2. Membuat
obyek
ResultSet
bernama rset.
3. Jika basisdata oracle, maka
tampilkan daftar tabel dalam
oracle dengan menggunakan
method
displayTableOracle(koneksi.ge
tConn())
4. Jika basisdata mysql, maka
tampilkan daftar tabel yang
ada dalam basis data mysql
dengan
memanggil
method
displayTableMysql(koneksi.ge
tConn())
4.4
Perancangan Struktur Data
Perancangan struktur data dalam sistem atau aplikasi sangat
diperlukan untuk menggambarkan bagaimana sebuah data diolah dan
disimpan dalam program. Konsep struktur data yang dipakai adalah konsep
graf tak berarah dengan matriks 2 dimensi. Graf dapat memudahkan dalam
memetakan obyek data beserta jarak sebuah obyek data dengan obyek yang
lainnya.
Konsep graf digunakan dalam menghubungkan satu obyek data
dengan yang lain sehingga jika data tersebut saling terhubung maka dapat
memudahkan perhitungan jarak antar data. Hal ini dikarenakan algoritma
Local Outlier Probability mempertimbangkan sebuah data dinyatakan
sebagai outlier berdasarkan jumlah tetangga yang dimiliki dalam nilai
jangkauan tertentu. Graf memiliki vertex dan edge.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
78
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 obyek data. Jarak masing-masing obyek 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.4.1 Graf
Sebuah graf berisi kumpulan vertex yang saling terhubung
melalui edge. Pada kasus ini obyek data mahasiswa dinyatakan
sebagai vertex. Vertex tersebut akan berisi list yang nantinya dapat
diisi dengan banyak nilai atribut pada sebuah obyek data. Pada
gambar 3.5 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 obyek
mahasiswa akan terhubung dengan obyek data mahasiswa lain dan
jarak antar obyek data mahasiswa tersebut dinyatakan sebagai edge.
Ilustrasi struktur data graf dapat dilihat pada Gambar 4.1 di bawah ini.
Verteks Mahasiswa[1]
(List) nilai
edge : 3,0014
edge : 3,0014
edge : 1,1244
Verteks Mahasiswa[2]
(List) nilai
edge : 1,1244
edge : 3,057
Verteks Mahasiswa[3]
edge : 3,057
(List) nilai
Gambar 4.1 Ilustrasi Struktur Data Graf
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
79
4.4.2 Matriks Dua Dimensi
Jarak masing-masing obyek data akan disimpan dalam edge dan
masing-masing nilai edge antar dua vertex lalu disimpan dalam
matriks dua dimensi. Dalam kata lain matriks ini akan menyimpan
vertex dan edge dari graf tersebut. Dimana vertex adalah representasi
dari obyek data dan edge adalah representasi dari jarak antar obyek
data.
Awal graf dibentuk, edge antar obyek data mahasiswa
dinyatakan dengan nilai -1, yang artinya jarak antar dua obyek
mahasiswa tersebut masih belum ada atau dengan kata lain obyek
tersebut tidak terhubung. Sedangkan edge yang bernilai 0 menyatakan
jarak obyek data terhadap dirinya sendiri. Ilustrasi struktur data
matriks 2 dimensi dapat dilihat pada Tabel 4.2 di bawah ini
Tabel 4.2 Ilustrasi matriks dua dimensi
Mahasiswa [1]
Mahasiswa [2]
Mahasiswa [3]
Mahasiswa [1]
0
-1
-1
Mahasiswa [2]
-1
0
-1
Mahasiswa [3]
-1
-1
0
Kemudian dilakukan perhitungan jarak antar obyek data dengan
menggunakan rumus jarak Euclidean Distance. Jarak dua obyek yang
awalnya bernilai -1 akan diganti dengan hasil perhitungan rumus jarak
tersebut. Sedangkan edge yang menyatakan jarak obyek terhadap
obyek itu sendiri tetap bernilai 0. Ilustrasi perhitungan jarak pada
matrks 2 dimensi digambarkan pada Tabel 4.3 di bawah ini :
Tabel 4.3 Ilustrasi matriks dua dimensi setelah perhitungan jarak antar
verteks
Mahasiswa [1]
Mahasiswa [2]
Mahasiswa [3]
Mahasiswa [1]
0
3,0014
1,1244
Mahasiswa [2]
3,0014
0
3,057
Mahasiswa [3]
1,1244
3,057
0
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5
80
Perancangan Antarmuka
4.5.1
Tampilan Halaman Awal
Halaman awal merupakan tampilan awal ketika program pertama
kali dijalankan. Pada halaman ini terdapat button ‘masuk’ yang
berfungsi untuk menuju ke halaman selanjutnya yaitu halaman
utama. Tampilan ini dapat dilihat pada Gambar 4.2 di bawah ini :
SISTEM PENDETEKSI OUTLIER
MASUK
Erlita Octaviani
105314019
Universitas Sanata Dharma Yogyakarta
Copyright © 2014
Gambar 4.2 Tampilan Halaman Awal
4.5.2
Tampilan Halaman Utama
Halaman utama merupakan halaman dimana fungsi utama dari
sistem pendeteksi outlier ini dilakukan oleh pengguna. Pada bagian
sidebar halaman ini terdapat button ‘Bantuan’, button ‘Tentang’,
dan button ‘Keluar’ sebagai jalan pintas sistem. Lalu pada halaman
ini juga terdapat dua buah tabbed pane (tab), yaitu tab
‘Preprocessing’ dan tab ‘Deteksi Outlier’. Tab ‘Preprocessing’
berfungsi untuk mengimport file dalam excel dan database yang
kemudian terjadi proses seleksi atribut. Selanjutnya tab ‘Deteksi
Outlier’ memungkinkan pengguna untuk memasukkan nilai
parameter k dan lamda untuk melakukan proses deteksi outlier.
Setelah button proses diklik, maka terjadilah proses deteksi outlier
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
81
dan hasil outlier ditampilkan ke dalam tabel. Pengguna dapat
menyimpan hasil outlier tersebut dalam format file .doc .xls atau
.txt. Tampilan ini dapat dilihat pada Gambar 4.3 dan Gambar 4.4 di
bawah ini :
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL OUTLIER PROBABILITY
Preprosessing
Deteksi Outlier
Pilih Database
Pilih File
Tentang
Bantuan
Atribut 1
Atribut 2
Atribut 3
Atribut 4
Seleksi Atribut
Jumlah Data
Jumlah Atribut
Atribut
Atribut 1
Atribut 2
Tandai Semua
Batal Seleksi
Keluar
Hapus
SUBMIT
BATAL
Gambar 4.3 Tampilan Halaman Utama - Preprocessing
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
82
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL OUTLIER PROBABILITY
Preprosessing
Deteksi Outlier
Proses Algoritma Local Outlier Probability
minPts
lamda
Proses
Tentang
Atribut 1
Atribut 2
Atribut 3
Atribut 4
Bantuan
Jumlah Data
Hasil Deteksi Outlier
No Mahasiswa
MDEF
KOMDEF
Keluar
Jumlah Outlier
SIMPAN
HAPUS
Lama Deteksi
Gambar 4.4 Tampilan Halaman Utama – Deteksi
4.5.3
Tampilan Halaman Bantuan
Halaman bantuan merupakan halaman yang berisi informasi
petunjuk penggunaan Sistem Pendeteksi Outlier menggunakan
algoritma Local Outlier Probability. Tampilan ini dapat dilihat
pada Gambar 4.5 di bawah ini :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
83
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL OUTLIER PROBABILITY
Petunjuk Penggunaan
A. Petunjuk Preprocessing
Tentang
Bantuan
B. Petunjuk Deteksi Outlier
Keluar
Gambar 4.5 Tampilan Halaman Bantuan
4.5.4
Tampilan Halaman Tentang
Halaman Tentang berisi mengenai informasi sistem pendeteksi
outlier seperti informasi pengembang, nama sistem, versi dan juga
lisensi sistem. Halaman ini dapat diakses dengan memilih button
‘Tentang’ pada halaman utama. Tampilan ini dapat dilihat pada
Gambar 4.6 di bawah ini :
SISTEM DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL OUTLIER PROBABILITY
Tentang
PENGEMBANGAN ALAT BANTU
DETEKSI OUTLIER MENGGUNAKAN
ALGORITMA LOCAL OUTLIER PROBABILITY
Bantuan
Dibuat oleh :
ERLITA OCTAVIANI
105314019
Keluar
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2014
Gambar 4.6 Tampilan Halaman Tentang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.5
84
Tampilan Halaman Konfirmasi Keluar
Halaman keluar yang muncul setelah pengguna menekan button
’Keluar’ pada Halaman Utama dan memunculkan dialog box
apakah pengguna benar-benar akan keluar dari sistem atau tidak.
Tampilan ini dapat dilihat pada Gambar 4.7 di bawah ini :
Apakah anda ingin keluar dari sistem?
YA
TIDAK
Gambar 4.7 Tampilan Halaman Konfirmasi Keluar
4.5.6
Tampilan Halaman Pilih Database
Pada halaman pilih database, pengguna dapat memilih database
yang akan digunakan dalam hal ini Oracle atau MySql. Kemudian
memasukkan konfigurasi database seperti username, password,
dan URL. Jika berhasil login ke dalam database maka pengguna
dapat melihat daftar tabel yang ada pada database lalu memilihnya
untuk dimasukkan sebagai data yang akan dicari outliernya.
Tampilan ini dapat dilihat pada Gambar 4.8 di bawah ini :
PILIH KONEKSI DATABASE
Username
Password
Database Name
Url
OK
BATAL
Gambar 4.8 Tampilan Halaman Pilih Database
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.7
85
Tampilan Halaman Pilih Tabel
Halaman pilih tabel memungkinkan pengguna yang telah berhasil
login ke dalam database untuk dapat memilih tabel sebagai
masukan ke dalam sistem. Data tabel ini selanjutnya akan
ditampilkan ke halaman utama. Tampilan ini dapat dilihat pada
Gambar 4.9 di bawah ini :
PILIH TABEL
OK
BATAL
Gambar 4.9 Tampilan Halaman Pilih Tabel
4.5.8
Tampilan Halaman Pilih File
Halaman Pilih File muncul ketika button ‘pilih file’ pada Halaman
Utama diklik. Kemudian akan muncul jFileChooser. Pada
jFileChooser ini pengguna dapat memilih file bertipe .xls maupun
.csv. Tampilan ini dapat dilihat pada Gambar 4.10 di bawah ini :
Look In:
File Name:
Files of type:
OPEN
CANCEL
Gambar 4.10 Tampilan Halaman Pilih File
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB V
IMPLEMENTASI SISTEM
Bab ini menjelaskan tentang implementasi sistem deteksi outlier
menggunakan algoritma Local Outlier Probability. Sistem ini dibuat sesuai
dengan perancangan sistem sesuai dengan yang dicantumkan pada bab IV.
Implementasi aplikasi ini menggunakan bahasa pemrograman Java menggunakan
aplikasi pemrograman Netbeans IDE 6.9.1 pada computer dengan spesifikasi
prosesor Intel® Core™2 Duo CPU T6500 @ 2.10 GHz 2.10 GHz, RAM 4GB dan
hardisk 500 GB.
5.1
Implementasi Antarmuka
Sistem Deteksi Outlier menggunakan algoritma Local Outlier Probability
telah diimplementasikan menjadi sebuah aplikasi java yang siap digunakan.
Berikut ini merupakan detail dari implementasi antarmuka dari sistem
terkait :
5.1.1 Implementasi Antarmuka Halaman Awal
Halaman awal adalah halaman pertama ketika menjalankan sistem.
Pada halaman awal terdapat button “simpan” dan apabila diklik akan
memasuki halaman utama. Gambar 5.1 merupakan implementasi
dari halaman awal.
Gambar 5.1 Implementasi halaman awal
86
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
87
5.1.2 Implementasi Antarmuka Halaman Utama
Pada halaman utama sistem menampilkan button tentang (jika diklik
akan memasuki halaman tentang), button bantuan (jika diklik akan
memasuki halaman bantuan), button keluar (jika diklik akan muncul
dialog box konfirmasi keluar untuk keluar dari sistem).
Pada halaman utama tersedia 2 tabbed pane yaitu tab preprocessing
dan tab deteksi outlier. Gambar 5.2 merupakan implementasi dari
halaman utama.
Gambar 5.2 Implementasi halaman utama tab preprocessing
Tab preprocessing berfungsi untuk melakukan proses preprocessing
pada data mining, yaitu proses input data lalu seleksi atribut. Pada
tab ini pengguna dapat menginput data berupa excel dan basisdata.
Ketika pengguna mengklik button “pilih file” maka sistem akan
menjalankan halaman pilih file yang berupa JFileChooser. Pengguna
dapat menginput file excel dengan tipe .xls dan .csv. Gambar 5.3
merupakan implementasi dari JFileChooser.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
88
Gambar 5.3 Implementasi JFileChooser
Setelah memilih file, maka sistem akan menampilkan data tersebut
ke dalam jTable. Proses input data dapat dilihat pada Gambar 5.4 di
bawah ini :
Gambar 5.4 Proses input data
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
Setelah itu melakukan seleksi atribut dengan memilih atribut yang
akan dihapus. Sistem dapat menghapus lebih dari 1 atribut. Seleksi
atribut dapat dilihat pada Gambar 5.5 di bawah ini :
Gambar 5.5 Implementasi seleksi atribut
Setelah sistem selesai melakukan seleksi atribut, maka selanjutnya
adalah proses deteksi outlier. Dengan menekan button submt maka
sistem akan memasuki tab deteksi outlier. Gambar 5.6 merupakan
implementasi dari halaman awal pda tab deteksi outlier.
Gambar 5.6 Implementasi halaman utama tab deteksi outlier
Pada tab deteksi outlier terdapat text field untuk masukan parameter
k dan lamda. Setelah pengguna menginputkan parameter, pengguna
harus menekan button proses untuk memulai proses deteksi. Setelah
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
90
itu hasil deteksi akan ditampilkan dalam tabel hasil deteksi. Gambar
5.7 merupakan tampilan hasil deteksi outlier.
Gambar 5.7 Tampilan hasil deteksi outlier
Sistem dapat membatasi hasil outlier dengan cara menginputkan
nilai textfield batas outlier. Gambar 5.8 merupakan tampilan hasil
seleksi LoOP.
Gambar 5.8 Tampilan hasil seleksi LoOP
Sistem mampu menyimpan hasil deteksi outlier. Pengguna menekan
button simpan lalu pengguna memilih lokasi penyimpanan,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
91
menginput nama file dan ekstensi file. Maka sistem berhasil
menyimpan hasil deteksi outlier.
Gambar 5.9 Tampilan save dialog
5.1.3 Implementasi Antarmuka Halaman Pilih Database
Halaman Pilih Database berfungsi untuk menginput data yang
berasal dari tabel basis data. Pengguna menekan button pilih
database pada halaman utama, lalu sistem akan menjalankan
halaman pilih database. Pada halaman ini pengguna dapat memili
database Oracle atau MySql. Gambar 5.10 merupakan implementasi
dari halaman pilih database.
Gambar 5.10 Implementasi Halaman Pilih Database
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
92
Setelah itu pengguna memilih koneksi database (Oracle atau MySql)
lalu menginputkan username, password, database name dan URL
untuk melakukan login koneksi ke database terkait. Gambar 5.11
merupakan proses konfigurasi database. Jika berhasil maka akan
muncul tampilan seperti di Gambar 5.12.
Gambar 5.11 Proses konfigurasi database
Gambar 5.12 Proses koneksi berhasil
Setelah memasukkan data konfigurasi database, jika berhasil maka
muncul dialog box koneksi berhasil. Setelah itu pengguna memilih
tabel untuk input data. Sistem menjalankan halaman pilih tabel bila
telah berhasil terkoneksi dengan database. Gambar 5.13 merupakan
implementasi dari halaman pilih tabel.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
93
Gambar 5.13 Implementasi halaman pilih tabel
Ketika pengguna telah memilih tabel, maka data dalam tabel basis
data tersebut akan terinput dalam jTable pada halaman utama.
Gambar 5.14 merupakan hasil input data dari database.
Gambar 5.14 Hasil input data dari database
5.1.4 Implementasi Antarmuka Halaman Bantuan
Halaman ini berisi tentang informasi tentang prosedur penggunaan
sistem pendeteksi outlier menggunakan algoritma Local Outlier
Probability. Sistem dapat menjalankan halaman ini setelah button
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
94
“bantuan” diklik. Gambar 5.15 merupakan implementasi dari
halaman bantuan.
Gambar 5.15 Implementasi halaman bantuan
5.1.5 Implementasi Antarmuka Halaman Tentang
Halaman ini memberikan informasi tentang nama sistem, nama
pembuat,
versi
dan
lisensi
dari
sistem
pendeteksi
outlier
menggunakan algoritma Local Outlier Probability. Halaman ini
dapat diakses apabila pengguna menekan button “tentang”. Gambar
5.16 merupakan implementasi dari halaman tentang.
Gambar 5.16 Implementasi Halaman Tentang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
95
5.1.6 Implementasi Antarmuka Konfirmasi Keluar
Antarmuka ini muncul ketika pengguna menekan button keluar.
Sistem akan menampilkan dialog box konfirmasi keluar untuk keluar
dari sistem. Jika pengguna menekan button yes, maka akan keluar
dari sistem. Akan tetapi jika pengguna memilik no, maka sistem
akan kembali ke halaman utama. Gambar 5.17 merupakan
implementasi dari halaman konfirmasi keluar.
Gambar 5.17 Implementasi Konfirmasi Keluar
5.1.7 Implementasi Pengecekan Masukan
Sistem ini dilengkapi dengan error handling sehingga ketika ada
inputan yang tidak sesuai dengan sistem, sistem dapat menangani
dan mengkonfirmasikan kepada pengguna tentang kesalahan
tersebut. Penanganan error ini sangat penting agar tidak terjadi
kesalahan dalam sistem. Berikut ini error handling yang terdapat
pada sistem pendeteksi outlier dengan menggunakan algoritma Local
Outlier Probability :
1.
Tampilan pesan kesalahan input data
Error message ini muncul apabila pengguna menginputkan file
selain yang bertipe .xls atau .csv. Gambar 5.18 merupakan error
mesaage ketika menginput suatu data.
Gambar 5.18 Error message input data
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
96
Tampilan pesan kesalahan konfigurasi database
Tampilan error message ini akan muncul apabila pengguna salah
dalam melakukan konfigurasi basis data. Gambar 5.19
merupakan error mesaage ketika melakukan konfigurasi
database.
Gambar 5.19 Error message konfigurasi database
Apabila pengguna tidak lengkap dalam mengisi konfigurasi
basis data, maka akan muncul seperti di bawah ini :
Gambar 5.20 Error message input data
3.
Tampilan pesan kesalahan input nilai k
Tampilan error message pada input nilai k ini muncul apabila
text field k tidak diisi dan atau diisi dengan nilai yang bukan
numeric positif, contohnya diisi dengan nilai negative atau
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
97
karakter. Gambar 5.21 merupakan error mesaage ketika
melakukan input data k kosong. Sedangkan Gambar 5.22
merupakan error mesaage ketika melakukan input k dengan
huruf, karakter atau bilangan negative.
Gambar 5.21 Error Message input data k kosong
Gambar 5.22 error message input data k non numerik
4.
Tampilan pesan kesalahan input nilai lamda
Tampilan error message pada input nilai lamda ini muncul
apabila text field lamda tidak diisi dan atau diisi dengan nilai
yang bukan numeric positif, contohnya diisi dengan nilai
negative atau karakter. Gambar 5.23 merupakan error mesaage
ketika melakukan input lamda kosong. Sedangkan Gambar 5.24
merupakan error mesaage ketika melakukan input lamda
dengan huruf, karakter atau bilangan negative.
Gambar 5.23 Error Message input data lamda kosong
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
98
Gambar 5.24 Error Message input data lamda non numerik
5.
Tampilan pesan kesalahan input nilai batas outlier
Tampilan error message pada input nilai batas outlier ini muncul
apabila text field batas outlier tidak diisi dan atau diisi dengan
nilai yang bukan numeric positif, contohnya diisi dengan nilai
negative atau karakter. Gambar 5.25 merupakan error mesaage
ketika melakukan input batas outlier kosong. Sedangkan Gambar
5.24 merupakan error mesaage ketika melakukan input batas
outlier dengan huruf, karakter atau bilangan negative.
Gambar 5.25 Error Message input data batas outlier kosong
Gambar 5.26 Error Message input data batas outlier non
numerik
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.2
99
Implementasi Kelas
Di dalam bagian ini akan dijelaskan mengenai hasil implementasi kelas dan
algoritma yang telah dibuat dalam sistem sesuai dengan perancangan pada
bab sebelumnya. Tabel 5.1 merupakan tabel implementasi kelas.
Tabel 5.1 Implementasi Kelas
No Nama Kelas
Nama File Fisik
Nama File Executable
1
koneksiDB
koneksiDB.java
koneksiDB.class
2
Graph
Graph.java
GraphNew.class
3
Vertex
Vertex.java
Vertex.class
4
seleksiAtribut
seleksiAtribut.java
seleksiAtribut.class
5
checkBoxTableModel checkBoxTableModel.java checkBoxTableModel.class
6
DBControl
DBControl.java
DBControl.class
7
DataLoop
DataLoop.java
DataLoop.class
8
DataLoopTableModel DataLoopTableModel.java DataLoopTableModel.class
9
HalamanAwal
HalamanAwal.java
HalamanAwal.class
10
HalamanUtama
HalamanUtama.java
HalamanUtama.class
11
HalamanPilihFile
HalamanPilihFile.java
HalamanPilihFile.class
12
HalamanPilihDB
HalamanPilihDB.java
HalamanPilihDB.class
13
HalamanPilihTabel
HalamanPilihTabel.java
HalamanPilihTabel.class
14
HalamanBantuan
HalamanBantuan.java
HalamanBantuan.class
15
HalamanTentang
HalamanTentang.java
HalamanTentang.class
Listing program dari implementasi kelas di atas memuat atribut dan method
dari kelas yang berkaitan dengan algoritma untuk fungsi-fungsi utama pada
sistem pendeteksi outlier. Listing program dari implementasi kelas di atas
dapat dilihat pada lampiran 10 dalam tugas akhir ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.3
100
Implementasi Struktur Data
5.3.1 Implementasi Kelas Vertex.java
Kelas ini adalah kelas yang menyimpan setiap obyek data ke dalam
vertex. Jadi dalam hal ini obyek data di representasikan menjadi
sebuat vertex. Dalam kelas ini terdapat beberapa atribut yang
berfungsi untuk menghitung dan melakukan proses deteksi outlier
pada setiap obyek data. Sehingga nantinya setiap obyek data yang
direpresentasikanke dalam vertex yang akan memiliki atribut-atribut
tersebut.
public class Vertex {
private String label;
List<Double> nilai;
private boolean flagKunjungan = false;
private Double kDistance;
private List<String> neighborhood;
private Double pDist;
private Double pLOF;
private Double nPLOF;
private Double LOOP;
private Double anggotaNeighborhood;
Atribut yang pertama adalah label. Atribut ini digunakan untuk
menyimpan label setiap obyek. Atribut yang kedua adalah atribut
nilai yang bertipe List<Double>. Atribut ini berfungsi untuk
menyimpan nilai yang akan dicari jarak melalui rumus Euclidean
distance. Dalam hal ini setiap obyek bisa memliki nilai yang banyak.
Atribut ketiga adalah atribut flagkunjungan yang bertipe Boolean.
Atribut ini berfungsi untuk menandai tetangga dari suatu obyek yang
memiliki jarak < kDistance. Atribut keempat adalah kDistance yang
berfungsi untuk menyimpan jarakan jangkauan maksimum setiap
obyek
data.
Atribut
kelima
adalah
neighborhood
bertipe
List<String> yang berfungsi untuk menyimpan label tetangga suatu
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
101
obyek data. Atribut keenam adalah pDist yang berfungsi untuk
menyimpan nilai hasil perhitungan pdist setiap obyek. Atribut
ketujuh adalah pLOF yang berfungsi menyimpan nilai hasil
perhitungan PLOF setiap obyek. Atribut kedelapan adalah nPLOF
yang berfungsi menyimpan nilai hasil perhitungan nPLOF setiap
obyek. Atribut kesembilan adalah LOOP berfungsi menyimpan nilai
hasil perhitungan LoOP setiap obyek. Atribut kesepuluh adalah
anggota Neighborhood berfungsi untuk menyimpan nilai dari
neighborhood.
5.3.2 Implementasi Kelas Graph.java
Kelas Graph.java berfungsi untuk membuat graf dan vertex dari
setiap obyek data. Dalam kelas Graph, setiap vertex dihubungkan
melalui edge sehingga setiap obyek selalu terhubung. Di dalam kelas
ini sebuah graf dibuat melalui konstruktor dengan menggunakan
parameter maxVertex. Artinya, sebuah graf tersebut dibuat dengan
panjang vertex maksimum sesuai dengan input data pengguna yang
masuk dalam jTable. Dalam konstruktor ini nilai awal sebuah edge
diberi nilai -1 untuk hubungan dengan obyek satu dengan yang
lainnya. Sedangkan nilai 0 unuk jarak obyek itu sendiri. Pada tahap
ini vertex yang ada dalam graf belum memiliki nilai untuk setiap
atributnya.
public Graph(int maxVertex) {
vertexList = new Vertex[maxVertex];
matriks = new Double[maxVertex][maxVertex];
neighborhood = new int[maxVertex][maxVertex];
max = maxVertex + 1;
dist = new int[maxVertex];
arStdev = new Double[maxVertex];
nPdist = new Double[maxVertex];
arPLOF = new Double[maxVertex];
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
102
arLOOP1 = new Double[maxVertex];
for (int i = 0; i < maxVertex; i++) {
for (int j = 0; j < maxVertex; j++) {
if (i == j) {
matriks[i][j] = 0.0;
} else {
matriks[i][j] = -1.0;
}
}
}
}
Setelah membuat graf, langkah selanjutnya adalah memasukkan
vertex ke dalam graf. Dalam kelas ini, proses tersebut terjadi pada
saat pembuatan method addVertex. Di dalam method tersebut
pembuatan vertex dilakukan dengan inputan label dan nilai. Pada
tahap ini setiap obyek dimasukkan ke dalam vertex beserta dengan
atribut yang menjadi parameter yaitu label dan nilai. Sedangkan
atribut yang lain diinputkan pada saat deteksi outlier.
public void addVertex(String label, List<Double> nilai) {
vertexList[jumlahVertex++] = new Vertex(label, nilai);
}
Setelah
proses
pembuatan
vertex
selesai,
selanjutnya
menghubungkan vertex tersebut dengan edge antar obyek. Nilai edge
diinputkan melalui method bernama addEdge. Nilai edge merupakan
nilai jarak yang dihitung menggunakan rumum Euclidean distance.
Perhitungan rumus jarak juga terjadi dalam kelas Graph.java
public void addEdge(int awal, int akhir, Double nilai) {
matriks[awal][akhir] = matriks[akhir][awal] = nilai;
}
Perhitungan rumus jarak Euclidean terjadi dalam method cariJarak.
Method ini memiliki parameter indexAwal dan indexAkhir yang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
103
berfungsi untuk penanda dimana dimulai dan diakhir indeks yang
dihitung jaraknya.
public Double cariJarak(int indexAwal, int indexTujuan) {
List<Double> a = new ArrayList<Double>();
List<Double> b = new ArrayList<Double>();
a = vertexList[indexAwal].getNilai();
b = vertexList[indexTujuan].getNilai();
Double total = 0.0;
for (int i = 0; i < a.size(); i++) {
total = total + Math.pow((a.get(i) - b.get(i)), 2);
}
return Math.sqrt(total);
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VI
PENGUJIAN DAN ANALISIS HASIL PENGUJIAN
Pada bab ini menjelaskan tentang tahap pengembangan sistem pendeteksi
outlier menggunakan algoritma Local Outlier Probability yaitu pengujian sistem.
Berikut ini merupakan tahap-tahap yang dilakukan dalam pengujian sistem :
6.1
Rencana Pengujian
Pengujian sistem ini dibagi menjadi 3 metode, yaitu metode pengujian
menggunakan black box, metode pengujian efek perubahan nilai atribut (k
dan lamda) terhadap hasil deteksi outlier, metode pengujian reviewer dan
validitas pengguna.
Metode pengujian blackbox berkaitan dengan pengujian yang
dilakukan pada antarmuka sistem. Meskipun dirancang untuk mengungkap
kesalahan, pengujian black box digunakan untuk memperlihatkan bahwa
fungsi-fungsi sistem dapat beroperasi, bahwa input diterima dengan baik
dan output dihasilkan dengan tepat. Pengujian ini focus kepada persyaratan
fungsional sistem.
Metode pengujian efek perubahan nilai atribut terhadap hasil deteksi
outlier dilakukan dengan cara mengubah nilai parameter k dan lamda.
Kemudian membandingkan hasil outlier yang didapat dari perubahan nilai
atribut tersebut.
Metode pengujian reviewer dan validitas pengguna dilakukan dengan
cara membandingkan hasil perhitungan secara manual dengan perhitungan
dari sistem lalu membandingkan hasil tersebut dengan analisis yang
dilakukan oleh pengguna, yaitu Kaprodi Teknik Informatika. Di bawah ini
merupakan tabel rencana pengujian menggunakan metode blackbox.
104
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
105
Tabel 6.1 Tabel Rencana Pengujian Black-box
No
1
Kelas Uji
koneksiDB
Butir Uji
Jenis Pengujian
Uji coba koneksi ke dalam
Black-box
basis
data
(Oracle
dan
MySql)
2
Halaman Utama
Menampilkan
data
file
Black-box
file
Black-box
Menampilkan data dari tabel
Black-box
dengan extensi .xls
Menampilkan
data
dengan ekstensi .csv
basis data
Melakukan seleksi atribut
Black-box
Melakukan deteksi outlier
Black-box
Melakukan pembatasan nilai
Black-box
derajad LoOP
Menampilkan hasil deteksi
Black-box
outlier
Menjalankan fungsi simpan
Black-box
hasil deteksi outlier
3
Halaman
Database
Pilih Menampilkan
database
form
untuk
pilih
Black-box
megatur
konfigurasi (login) ke dalam
database
sesuai
dengan
pilihan pengguna
4
Halaman
Tabel
Pilih Menampilkan
dari
daftar
database
tabel
setelah
pengguna berhasil login ke
database
pengguna
yang
dipilih
Black-box
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
106
6.2.1 Hasil Pengujian Black-box
1. Pengujian Input Data
Berikut ini merupakan data pengujian untuk input data pada kelas
HalamanUtama.
Tabel 6.2 Tabel Pengujian Input Data
Kasus dan Hasil Uji (Data Benar)
No
1
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Input data dari file
Data berhasil tampil
Data berhasil
ekstensi .xls
ke dalam tabel
tampil ke dalam
Kesimpulan
Diterima
tabel
2
Input data dari file
Data berhasil tampil
Data berhasil
ekstensi .csv
ke dalam tabel
tampil ke dalam
Diterima
tabel
3
Input data dari
Data berhasil tampil
Data berhasil
tabel dalam basis
ke dalam tabel
tampil ke dalam
data
Diterima
tabel
Kasus dan Hasil Uji (Data Salah)
No
1
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Input data dengan
Menampilkan error
Error message
ekstensi file selain
message bahwa
berhasil tampil
.xls atau .csv
ekstensi data tidak
sesuai
Kesimpulan
Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
107
2. Pengujian Koneksi Basisdata
Dibawah
ini
adalah
data
pengujian
input
data
pada
HalamanPilihDB.
Tabel 6.3 Tabel Pengujian Koneksi Basisdata
Kasus dan Hasil Uji (Data Benar)
No
1
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
input username,
Menampilkan pesan
Pesan berhasil
password,
bahwa koneksi
ditampilkan
database name,
berhasil
Kesimpulan
Diterima
dan url benar
2
input username,
Menampilkan pesan
Pesan berhasil
password, dan url
bahwa koneksi
ditampilkan
benar
berhasil
Diterima
Kasus dan Hasil Uji (Data Salah)
No
1
2
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Text field
Menampilkan pesan
Pesan berhasil
username,
bahwa text field
ditampilkan
password,
username, password,
database name,
database name, dan
dan url ada yang
URL tidak boleh
kosong
kosong
Text field
Menampilkan pesan
Pesan berhasil
username,
bahwa text field
ditampilkan
password, dan url
username, password,
ada yang kosong
database name, dan
Kesimpulan
Diterima
Diterima
URL tidak boleh
kosong
3
input username,
Menampilkan pesan
Pesan berhasil
Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
password,
bahwa konfigurasi
database name dan
yang diinputkan
108
ditampilkan
URL ada yang yang salah
salah
4
input username,
Menampilkan pesan
password, dan URL bahwa konfigurasi
ada yang yang
yang diinputkan
salah
salah
Pesan berhasil
Diterima
ditampilkan
3. Pengujian Seleksi Atribut
Di bawah ini merupakan data pengujian untuk fungsi seleksi
atribut.
Tabel 6.4 Tabel Pengujian Seleksi Atribut
Kasus dan Hasil Uji (Data Benar)
No
1
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Memilih salah satu
Atribut yang dipilih
Data sesuai atribut
atau lebih atribut
terhapus di dalam
yang dipilih
yang akan dihapus
tabel seleksi dan
terhapus dari tabel
kemudian menekan
tabel data preprocess
Kesimpulan
Diterima
tombol hapus
2
Menekan tombol
Semua atribut
Semua atribut
tandai semua
ditandai untuk
berhasil ditandai
Diterima
dihapus
3
Menekan tombol
Tanda dari semua
Semua atribut
batal tandai semua
atribut menjadi tidak
dalam tabel tidak
tertandai
tertandai
Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
109
4. Pengujian Deteksi Outlier
Di bawah ini merupakan data pengujian untuk fungsi deteksi
outlier pada kelas HalamanUtama.
Tabel 6.5 Tabel Pengujian Deteksi Outlier
Kasus dan Hasil Uji (Data Benar)
No
1
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Mengisi text field k
Hasil deteksi outlier
Hasil deteksi
dengan inputan
beserta atributnya
outlier beserta
angka positif lebih
Kesimpulan
Diterima
atributnya
dari 0
2
Mengisi text field
Hasil deteksi outlier
Hasil deteksi
lamda dengan
beserta atributnya
outlier beserta
inputan angka
Diterima
atributnya
positif lebih dari 0
3
Mengisi text field
Hasil deteksi outlier
Hasil deteksi
batas outlier
beserta atributnya
outlier beserta
dengan inputan
Diterima
atributnya
angka positif lebih
dari 0
Kasus dan Hasil Uji (Data Salah)
No
1
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Text field k kosong
Muncul error
Error message
message bahawa
berhasil tampil
Kesimpulan
Diterima
nilai k tidak boleh
kosong
2
Text field k
Muncul error
Error message
mengandung nilai -
message bahawa
berhasil tampil
nilai k tidak boleh
Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
110
berupa angka
negative
3
Text field k
Muncul error
Error message
mengandung
message bahawa
berhasil tampil
karakter huruf
nilai k tidak boleh
Diterima
berupa karakter
huruf
4
Text field lamda
Muncul error
Error message
kosog
message bahawa
berhasil tampil
Diterima
nilai lamda tidak
boleh kosong
5
Text field lamda
Muncul error
Error message
mengandung nilai -
message bahawa
berhasil tampil
Diterima
nilai lamda tidak
boleh berupa angka
negative
6
Text field lamda
Muncul error
Error message
mengandung
message bahawa
berhasil tampil
karakter huruf
nilai lamda tidak
Diterima
boleh berupa
karakter huruf
7
Text field batas
Muncul error
Error message
outlier
message bahawa
berhasil tampil
mengandung
nilai batas outlier
karakter huruf
tidak boleh berupa
karakter huruf
Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
111
5. Pengujian Simpan Hasil Outlier
Di bawah ini merupakan data pengujian untuk fungsi simpan hasil
outlier.
Tabel 6.6 Tabel Pengujian Simpan Hasil Outlier
Kasus dan Hasil Uji (Data Benar)
No
1
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Menekan tombol
File tersimpan di
File tersimpan di
simpan dan
lokasi yang terpilih
lokasi yang terpilih
memilih ekstensi
dan berekstensi .doc
dan berekstensi
file .doc
2
Kesimpulan
Diterima
.doc
Menekan tombol
File tersimpan di
File tersimpan di
simpan dan
lokasi yang terpilih
lokasi yang terpilih
memilih ekstensi
dan berekstensi .xls
dan berekstensi .xls
Menekan tombol
File tersimpan di
File tersimpan di
simpan dan
lokasi yang terpilih
lokasi yang terpilih
memilih ekstensi
dan berekstensi .txt
dan berekstensi .txt
Diterima
file .xls
3
Diterima
file .txt
6.2.2 Kesimpulan Hasil Pengujian Black-box
Berdasarkan hasil pengujian di atas, dapat disimpulkan bahwa sistem
pendeteksi outlier ini dapat menangani error ketika fungsi yang
dijalankan salah atau tidak sesuai dengan aturan pemakaiannya.
Sedangkan secara fungsional sistem ini dapat berjalan dengan baik
dan menghasilkan keluaran yang sesuai dengan yang diharapkan.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
112
6.2.3 Hasil Pengujian Efek Perubahan Nilai Atribut terhadap Nilai
LoOP
Pengujian terhadap Sistem Pendeteksi Outlier menggunakan Algoritma
Local Outlier Probability dapat dilakukan dengan mengubah nilai input
parameter k dan lamda. Berikut ini adalah tabel hasil deteksi outlier yang
diperoleh dari eksekusi data akademik program studi Teknik Informatika
tahun angkatan 2007 dan 2008 dengan data sebanyak 126 buah
menggunakan nilai input parameter k dan lamda yang bervariasi.
1.
Pengujian dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Tes Tertulis
Tabel 6.7 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan
Nilai k dan Lamda yang Berubah-ubah
k
Lamda
10
20
30
40
50
1
36
36
31
28
24
2
36
36
31
28
24
3
36
36
31
28
24
Tabel 6.8 Tabel Data Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan
Nilai k yang berubah-ubah, Lamda = 1 dan batas outlier = 0,8
Mahasiswa outlier peringkat kek
1
2
3
4
5
6
7
8
10
28
27
58
36
72
33
26
53
20
28
26
58
33
27
36
53
72
30
28
26
58
33
36
27
72
-
40
28
26
33
58
36
72
-
-
50
28
26
33
58
36
-
-
-
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
113
2. Pengujian dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008 Jalur Prestasi
Tabel 6.9 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai k dan
Lamda yang Berubah-ubah
k
Lamda
10
20
30
40
50
1
38
39
34
36
40
2
38
39
34
36
40
3
38
39
34
36
40
Tabel 6.10 Tabel Data Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai k
yang berubah-ubah, Lamda = 1 dan batas outlier = 0,8
Mahasiswa outlier peringkat kek
1
2
3
4
5
6
7
8
9
10
76
109
124
15
105
-
-
-
-
20
76
124
15
10
-
-
-
-
-
30
76
124
15
79
10
16
-
-
-
40
76
124
15
10
16
94
-
-
-
50
76
124
15
10
16
7
79
19
20
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
114
3. Pengujian dengan Data Mahasiswa Teknik Informatika Angkatan
2007 dan 2008
Tabel 6.11 Tabel Jumlah Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes dan Jalur Prestasi Semester 1
dengan Nilai k dan Lamda yang Berubah-ubah
k
Lamda
10
20
30
40
50
1
63
66
58
63
64
2
63
66
58
63
64
3
63
66
58
63
64
Tabel 6.12 Tabel Data Outlier Mahasiswa Teknik Informatika
Angkatan 2007 dan 2008 Jalur Tes Tertulis dan Jalur Prestasi
Semester 1 dengan Nilai k yang berubah-ubah, Lamda = 1 dan
batas outlier = 0,8
Mahasiswa outlier peringkat kek
1
2
3
4
5
6
7
10 28 27 76 58 109
50
74
20 76 28 27 26
10
11
12
105 10 68
86
107 37
-
107 124
86
16 58
13
109 68
69
30 76 28 27 26 124
10
68
36
16 69 107
40 76 28 27 26 124
36
10
16
58 69
50 76 28 27 26 124
10
36
16
58 68
10
8
9
13
14
15 16
-
-
50 74
-
-
-
-
-
68
79
7
107
-
-
7
69
98
-
-
-
6.2.4 Kesimpulan Hasil Pengujian Efek Perubahan Nilai Atribut
Penambangan Data
Dari hasil pengujian perubahan nilai parameter k dan lamda pada tabel
di atas, dapat ditarik kesimpulan sebagai berikut :
1. Jika nilai parameter k tetap dan lamda bertambah, maka jumlah
outlier yang dihasilkan akan tetap. Tetapi terjadi perubahan nilai
derajat LoOP. Semakin bertambah nilai lamda, maka nilai LoOP
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
115
akan semakin berkurang. Dalam hal ini, nilai lamda tidak
mempengaruhi jumlah outlier.
2. Jika nilai parameter k berubah dan nilai lamda tetap, maka jumlah
outlier yang didapatkan akan tetap atau semakin sedikit. Hal ini
disebabkann karena semakin luas jangkauan k akan membuat
kepadatan menjadi tinggi sehingga nilai LoOp akan cenderung
kecil.
6.2.5 Hasil Pengujian Validitas dan Review oleh Pengguna
1.
Perbandingan Perhitungan Manual dan Hasil Sistem
Dataset yang digunakan adalah data akademik mahasiswa Teknik
Informatika angkatan 2007 yang diterima melalui jalur tes
tertulis. Atribut yang akan digunakan terdiri dari nilai ips1, ips2,
ips3, ips4, nil11, nil12, nil13, nil14, dan nil15. Data akademik
tersebut akan diproses dan dihitung secara manual menggunakan
algoritma Local Outlier Probability. Kemudian dibandingkan
dengan hasil deteksi outlier yang diperoleh dari Sistem
Pendeteksi Outlier menggunakan Algoritma Local Outlier
Probability. Berikut ini merupakan tabel perbandingan hasil
deteksi outlier dari data akademik mahasiswa program studi
Teknik Informatika angkatan tahun 2007 yang diterima melalui
jalus
tes tertulis
perhitungan sistem.
menggunakan perhitungan
manual
dan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
116
Tabel 6.13 Data Nilai Akademik Mahasiswa Teknik Informatika
Angkatan Tahun 2007 yang Diterima melalui Jalur Tes Tertulis
yang Digunakan untuk Perbandingan Perhitungan Manual dan
Sistem
Nomor alias
IPS1
NIL11
NIL12
NIL13
NIL14
NIL15
P1
2,94
7,00
5,00
5,00
5,00
4,00
P2
1,72
3,00
2,00
8,00
3,00
1,00
P3
2,56
6,00
4,00
5,00
7,00
5,00
P4
2,44
5,00
5,00
6,00
5,00
5,00
P5
2,94
6,00
4,00
6,00
3,00
7,00
P6
1,89
6,00
5,00
6,00
6,00
7,00
P7
4,00
6,00
6,00
4,00
4,00
7,00
P8
1,44
10,00
5,00
9,00
6,00
7,00
P9
3,72
8,00
6,00
6,00
7,00
5,00
P10
1,72
7,00
6,00
8,00
8,00
2,00
P11
3,28
7,00
6,00
7,00
6,00
6,00
P12
2,89
6,00
5,00
5,00
7,00
5,00
P13
2,89
5,00
5,00
8,00
5,00
7,00
Dibawah ini merupakan tabel hasil perhitungan manual
menggunakan nilai IPS1 dengan parameter nilai k:10 dan
lamda:2.
Tabel 6.14 Hasil Perhitungan Manual
Nomor Alias
LoOP
Ranking
P2
0,83929
1
P8
0,5582
2
P10
0,35173
3
P7
0,30735
4
P9
0,07554
5
P5
0,01798
6
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
117
Sedangkan di bawah ini merupakan tabel hasil perhitungan sistem
menggunakan nilai IPS 1 dengan parameter nilai k:10 dan
lamda:2.
Tabel 6.15 Tabel Hasil Perhitungan Sistem
Nomor Alias
2.
LoOP
Ranking
P2
0.8392870141068225
1
P8
0.5582016327201078
2
P10
0.3517278388883547
3
P7
0.3073461492447487
4
P9
0.07553964885999132
5
P5
0.017982312265614975
6
Kesimpulan Hasil Perbandingan Perhitungan Manual dengan
Perhitungan menggunakan Sistem
Dari tabel perbandingan di atas dapat ditarik kesimpulan bahwa
data yang dihasilkan dari perhitungan secara manual maupun
secara sistem menghasilkan outlier dengan jumlah, ranking serta
derajat LoOP yang tepat sama. Maka dari itu dapat ditarik
kesimpulan bahwa sistem dapat dengan benar menghasilkan
deteksi outlier yang sesuai dengan perhitungan manualnya.
3.
Hasil Deteksi dari Sistem untuk Pengujian Review dan
Validitas oleh Pengguna
Pengujian ini dilakukan dengan tujuan untuk memastikan dan
meyakinkan bahwa hasil deteksi outlier yang dihasilkan oleh
sistem benar-benar ditetapkan sebagai outlier. Oleh karena itu
perlu dilakukan analisis kepada Kaprodi Teknik Informatika
sebagai pemilik data akademik mahasiswa Teknik Informatika
untuk memperoleh kepastian bahwa mahasiswa yang dinyatakan
sebagai outlier tersebut memiliki nilai yang menyimpang dari
kebanyakan mahasiswa lain. Berikut ini merupakan hasil outlier
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
118
yang diperoleh sistem untuk 3 macam dataset yang digunakan
pada pengujian review dan validitas. (detail dataset ada dalam
lampiran ke 11).
1. Hasil outlier untuk data mahasiswa program studi Teknik
Informatika angkatan 2007 dan 2008 jalur tes tertulis
sebanyak 54 mahasiswa yang diperoleh dari semester 1
sampai 4 menggunakan atribut ips1, ips2, ips3, ips4, nil11,
nil12, nil13, nil14, dan nil15 dengan menggunakan nilai k =
10, lamda = 2, dan batas outlier = 0,7.
Tabel 6.16 Tabel Hasil Outlier untuk Data Mahasiswa Teknik
Informatika Angkatan 2007 dan 2008 Jalur Tes Tertulis
SEM
1
2
3
4
NO
URUT
IPS1 IPS2 IPS3 IPS4 NIL11 NIL12 NIL13 NIL14 NIL15
28
1,72
-
-
-
1,20
0,80
3,20
1,20
0,40
27
4,00
-
-
-
2,40
2,40
1,60
1,60
2,80
58
2,30
-
-
-
1,20
2,00
1,60
0,80
2,00
28
-
1,65
-
-
1,20
0,80
3,20
1,20
0,40
26
-
2,42
-
-
4,00
2,00
3,60
2,40
2,80
28
-
-
1,53
-
1,20
0,80
3,20
1,20
0,40
74
-
-
0,19
-
3,20
2,00
3,60
3,20
1,60
50
-
-
0,59
-
2,40
2,40
2,80
1,20
3,60
28
-
-
-
1,68
1,20
0,80
3,20
1,20
0,40
2. Hasil outlier untuk data mahasiswa program studi Teknik
Informatika angkatan 2007 dan 2008 jalur prestasi sebanyak
72 mahasiswa yang diperoleh dari semester 1 sampai 4
menggunakan atribut ips1, ips2, ips3, ips4, dan nilFinal
dengan menggunakan nilai k = 10, lamda = 2 dan batas
outlier = 0,7.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
119
Tabel 6.17 Tabel Hasil Outlier untuk Data Mahasiswa Teknik
Informatika Angkatan 2007 dan 2008 Jalur Prestasi
SEMESTER
NO
URUT
IPS1
IPS2
IPS3
IPS4
FINAL
76
0,8500 -
-
-
2,8480
109
2,8500 -
-
-
3,0764
17
-
0,3182 -
-
2,7196
124
-
0,4444 -
-
2,9000
86
-
2,8000 -
-
3,2200
94
-
1,3529 -
-
2,7700
107
-
3,9200 -
-
3,3332
3
17
-
-
0,6875 -
2,7196
4
88
-
-
-
0,9444 2,8880
94
-
-
-
1,2000 2,7700
107
-
-
-
3,7826 3,3332
98
-
-
-
3,1500 3,2200
89
-
-
-
3,9048 2,9712
1
2
3. Hasil outlier untuk data mahasiswa program studi Teknik
Informatika angkatan 2007 dan 2008 jalur prestasi dan jalur
tes sebanyak 126 mahasiswa yang diperoleh dari semester 1
sampai 4 menggunakan atribut ips1, ips2, ips3, ips4, dan
nilFinal dengan menggunakan nilai k = 10, lamda = 2 dan
batas outlier = 0,7.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
120
Tabel 6.18 Tabel Hasil Outlier untuk Data Mahasiswa Teknik
Informatika Angkatan 2007 dan 2008
SEM
1
NO
URUT
3
4
IPS1 IPS2 IPS3 IPS4 FINAL JALUR
28
0,99545 1,72
-
-
-
1,12
tes
27
0,98066 4,00
-
-
-
2,32
tes
76
0,95263 2,35
-
-
-
2,56
prestasi
-
-
-
2,36
tes
58
2
LoOP
0,7
9856
2,70
109
0,76735 3,30
-
-
-
3,33
tes
28
0,98498 -
1,65
-
-
1,12
tes
86
0,96146 -
3,00
-
-
2,83
prestasi
124
0,92130 -
2,43
-
-
3,05
prestasi
107
0,91761 -
2,73
-
-
3,06
prestasi
58
0,91677 -
3,44
-
-
2,36
tes
17
0,91131 -
2,24
-
-
2,72
prestasi
28
0,99413 -
-
1,53
-
1,12
tes
74
0,97364 -
-
1,73
-
2,96
tes
58
0,86051 -
-
3,39
-
2,36
tes
72
0,75236 -
-
2,94
-
2,64
tes
50
0,73401 -
-
3,24
-
2,44
tes
109
0,72072 -
-
3,76
-
3,33
prestasi
55
0,72048 -
-
2,94
-
2,00
tes
28
0,99889 -
-
-
1,68
1,12
tes
58
0,92100 -
-
-
2,33
2,36
tes
107
0,84765 -
-
-
3,38
3,06
prestasi
89
0,82381 -
-
-
1,83
2,80
prestasi
98
0,79150 -
-
-
2,30
2,77
prestasi
27
0,72837 -
-
-
3,70
2,32
tes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.
121
Kesimpulan Hasil Pengujian Review dan Validitas oleh
Pengguna
1. Dari pengujian data akademik mahasiswa 2007-2008 jalur tes
didapat hasil sebagai berikut :
a. Pada semester 1 terdapat 3 mahasiswa yang dinyatakan
sebagai outlier. Mahasiswa tersebut adalah mahasiswa
dengan nomor 28, 27, dan 58. Mahasiswa nomor 28
dinyatakan sebagai outlier karena memiliki nilai IPS 1 dan
nilai tes yang sangat rendah. Mahasiswa dengan nomor 27
dinyatakan sebagai outlier karena memiliki nilai IPS 1 yang
sangat tinggi dan nilai tes yang cenderung rendah.
Mahasiswa nomor 58 dinyatakan sebagai outlier karena
memiliki nilai IPS 1 dan nilai tes yang cenderung rendah.
b. Pada semester 2 mahasiswa outlier sebanyak 2 orang yaitu
mahasiswa nomor 28 dan 26. Mahasiswa nomor 28 masih
tetap dinyatakan sebagai outlier karena memiliki nilai IPS 2
yang cenderung rendah dan nilai tes yang sangat rendah.
Sedangkan mahasiswa dengan nomor 26 dinyatakan sebagai
outlier karena memiliki nilai IPS 2 yang cenderung rendah
dan nilai tes yang cenderung tinggi.
c. Pada semester 3, mahasiswa yang dinyatakan sebagai
outlier sebanyak 3 orang yaitu mahasiswa nomor 28, 74,
dan 50. Mahasiswa nomor 28 masih tetap dinyatakan
sebagai outlier karena memiliki nilai IPS 3 dan nilai tes
yang sangat rendah. Mahasiswa dengan nomor 74
dinyatakan sebagai outlier karena memiliki nilai IPS 3 yang
sangat rendah dan nilai tes yang cenderung tinggi.
Mahasiswa dengan nomor 50 dinyatakan sebagai outlier
karena memiliki nilai IPS 3 yang sangat rendah dan nilai tes
yang cenderung rendah.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
122
d. Pada semester 4 mahasiswa yang dinyatakan sebagai outlier
ada 1 orang yaitu mahasiswa nomor 28. Mahasiswa ini
ditetapkan
menjadi
outlier
selama
4
semester
ini.
Mahasiswa ini memiliki nilai IPS 4 yang rendah dan nilai
tes yang cenderung rendah.
2. Dari pengujian data akademik mahasiswa 2007-2008 jalur
prestasi didapat hasil sebagai berikut :
a. Pada perhitungan semester 1 ditemukan mahasiswa outlier
sebanyak 2 orang yaitu mahasiswa dengan nomor 76 dan
109. Mahasiswa dengan nomor 76 dinyatakan sebagai
outlier karena memiliki nilai IPS 1 yang sangat rendah dan
nilai final yang rendah. Kemudian mahasiswa dengan
nomor 109 dinyatakan sebagai outlier karena memiliki nilai
IPS 1 yang cenderung rendah dan nilai final yang cenderung
tinggi.
b. Pada semester 2, terdapat 5 mahasiswa outlier yaitu
mahasiswa dengan nomor 17, 124, 86, 94, dan 107.
Mahasiswa nomor 17 dan 124 ditetapkan sebagai outlier
karena memiliki nilai IPS 2 yang sangat rendah dan nilai
final yang rendah. Mahasiswa dengan nomor 86 dinyatakan
sebagai outlier karena memiliki nilai IPS 2 yang rendah dan
nilai final yang cenderung tinggi. Mahasiswa dengan nomor
94 dinyatakan sebagai outlier karena memiliki nilai IPS 2
dan nilai final yang rendah. Mahasiswa dengan nomor 107
dinyatakan sebagai outlier karena memiliki nilai IPS 2 yang
sangat tinggi dan nilai final yang cenderung tinggi.
c. Pada semester 3 terdapat 1 mahasiswa outlier yaitu
mahasiswa dengan nomor 17. Mahasiswa nomor 17 masih
dinyatakan sebagai outlier karena memiliki nilai IPS 3 yang
sangat rendah dan nilai final yang rendah.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
123
d. Pada semester 4 terdapat 5 mahasiswa outlier yaitu
mahasiswa dengan nomor 88, 94, 107, 98, dan 89.
Mahasiswa dengan nomor 88 dan 94 dinyatakan sebagai
outlier karena memiliki nilai IPS 4 yang rendah dan nilai
final yang cenderung rendah. Mahasiswa dengan nomor 107
dan 98 dinyatakan sebagai outlier karena memiliki nilai IPS
4 dan nilai final yang cenderung tinggi. Mahasiswa dengan
nomor 89 dinyatakan sebagai outlier karena memiliki nilai
IPS 4 yang sangat tinggi tetapi nilai final rendah.
3. Dari pengujian data akademik mahasiswa 2007-2008 jalur
prestasi dan jalur tes didapat hasil sebagai berikut :
a. Pada semester 1 terdapat 5 mahasiswa outlier yaitu
mahasiswa dengan nomor 28, 27, 76, 58, dan 109.
Mahasiswa dengan nomor 28, 27 dan 58 merupakan
mahasiswa yang telah ditetapkan sebagai outlier pada
pengujian sebelumnya yaitu ketika pengujian jalur tes.
Sedangkan mahasiswa nomor 76 dan 109 telah ditetapkan
sebagai outlier pada pengujian sebelumnya yaitu ketika
pengujian jalur prestasi. Mahasiswa nomor 28 merupakan
mahasiswa outlier kuat karena memiliki nilai IPS1 dan nilai
final yang rendah sehingga nilai LoOPnya tinggi yaitu
0,9945. Mahasiswa dengan nomor 27 berpotensi menjadi
outlier karena memiliki nilai IPS 1 yang lebih tinggi dari
yang lainnya dan nilai final yang cenderung rendah.
Mahasiswa dengan nomor 76 dan 58 dinyatakan sebagai
outlier karena memiliki nilai IPS 1 dan nilai final yang
cenderung
rendah.
Mahasiswa
dengan
nomor
109
dinyatakan sebagai outlier karena memiliki nilai IPS 1 dan
nilai final yang cenderung tinggi.
b. Pada semester 2, ditemukan 6 mahasiswa outlier yaitu
mahasiswa dengan nomor 28, 86, 124, 107, 58 dan 17.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
124
Mahasiswa nomor 28 dan 58 telah ditetapkan sebagai
outlier pada pengujian sebelumnya. Mahasiswa nomor 28
masih sebagai outlier terkuat dengan nilai LoOP yang
tinggi. Mahasiswa nomor 86 dan 58 dinyatakan sebagai
outlier karena memiliki nilai IPS 2 yang cenderung tinggi
dan nilai final yang cenderung rendah. Mahasiswa nomor
124 dan 107 dinyatakan sebagai outlier karena memiliki
nilai IPS 2 yang cenderung rendah dan nilai final yang
cenderung tinggi. Mahasiswa dengan nomor 17 dinyatakan
sebagai outlier karena memiliki nilai IPS 2 dan nilai final
yang cenderung rendah.
c. Pada semester 3 mahasiswa yang berpotensi sebagai outlier
ada 7 orang yaitu 28, 74, 58, 72, 50, 109, dan 55.
Mahasiswa dengan nomor 28, 74, dan 50 telah dinyatakan
sebagai outlier pada pengujian data jalur tes. Mahasiswa
nomor 58, 72 dan 55 tidak menjadi outlier pada pengujian
sebelumnya namun pada penggabungan data, mahasiswa ini
memiliki derajat LoOP yang tinggi sehingga masuk menjadi
outlier. Mahasiswa dengan nomor 109 pada pengujian
sebelumnya tidak dinyatakan sebagai outlier di semester 3.
Tetapi pada proses penggabungan data ini membuat
mahasiswa 109 memiliki peningkatan LoOP sehingga
tergolong menjadi mahasiswa outlier.
d. Pada semester 4, mahasiswa yang berpotensi sebagai outlier
ada 6 yaitu mahasiswa nomor 28, 58, 107, 89, 98, dan 27.
Mahasiswa nomor 28 masih ditetapkan sebagai outlier pada
pengujian sebelumnya dan pada pengujian ini karena
memiliki derajat LoOP yang sangat tinggi. Mahasiswa
dengan nomo 58 dan 27 pada pengujian jalur prestasi di
semester 4 tidak dinyatakan sebagai mahasiswa outlier
tetapi pada pengujian ini membuat mahasiswa tersebut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
125
mengalami peningkatan LoOP sehingga menjadi mahasiswa
outlier. Mahasiswa dengan nomor 107, 89, dan 98 pada
pengujian sebelumnya telah ditetapkan sebagai outlier dan
pada pengujian ini masih menjadi outlier karena tingginya
nilai derajat LoOP.
4. Dalam pengujian di atas, setiap semester menghasilkan hasil
yang berbeda jumlah outlier, anggota outlier dan derajat
LoOP.
5. Ketika data pengujian digabung, data hasil outlier menjadi
berbeda dengan data pengujian saat dipisah. Sebagian besar
hasil outlier nya sama, namun terkadang terdapat mahasiswa
yang tadinya tidak memiliki nilai LOF yang tinggi, namun
pada saat digabung memiliki nilai LOF yang cenderung tinggi.
Hal itu terjadi karena pertambahan jumlah data dan perbedaan
penggunaan atribut.
6. Dari hasil review dan analisa oleh Kaprodi Teknik
Informatika, hasil deteksi outlier di atas sudah di verifikasi
bahwa data di atas benar-benar termasuk mahasiswa outlier.
Sehingga menurut Kaprodi, data hasil deteksi outlier tersebut
diterima sebagai outlier.
6.2
Kelebihan dan Kekurangan Sistem
Sistem pendeteksi outlier ini memiliki kelebihan dan kekurangan sebagai
berikut :
6.2.1 Kelebihan Sistem
Kelebihan Sistem Deteksi Outlier menggunakan Algoritma Local
Outlier Probability adalah :
1. Sistem ini mampu menerima inputan data berupa file .xls, .csv, dan
data tabel dari basis data (Oracle atau MySql).
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
126
2. Sistem ini mampu melakukan deteksi outlier menggunakan
algoritma Local Outlier Probability dan dapat menghasilkan data
outlier yang bisa diterima pengguna.
3. Sistem ini mampu mendeteksi outlier dengan inputan data atribut
yang bersifat dinamis.
4. Sistem ini mampu menyimpan hasil deteksi outlier ke dalam file
ekstensi .doc, .xls, .txt.
5. Sistem ini mampu membatasi nilai hasil deteksi outlier.
6. Sistem ini dapat melakukan seleksi atribut pada data yang akan
diproses untuk dicari outliernya.
6.2.2 Kekurangan Sistem
Kekurangan sistem ini adalah :
1. Sistem ini tidak dapat melakukan seleksi baris dari tabel data.
Sistem hanya bisa melakukan seleksi data kolom.
2. Sistem ini hanya bisa menerima inputan berupa file .xls, .csv, dan
tabel pada basis data Oracle atau MySql.
3. Sistem ini memiliki waktu lama deteksi yang lama dibandingkan
dengan sistem menggunakan algoritma Local Correlation Integral
dan Connectivity Outlier Factor.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VII
PENUTUP
7.1
Kesimpulan
Dari hasil penelitian ini, dengan menggunakan algoritma Local Outlier
Probability untuk melakukan deteksi outlier terhadap data akademik
mahasiswa Teknik Informatika Universitas Sanata Dharma yang diterima
melalui jalur tes dan prestasi, dapat diambil kesimpulan sebagai berikut :
1. Nilai jangkauan sangat mempengaruhi nilai derajat LoOP suatu obyek
data dan mempengaruji jumlah hasil outlier.
2. Nilai atribut lamda tidak berpengaruh terhadap jumlah outlier yang
dihasilkan tetapi mempengaruhi derajat nilai LoOP.
3. Hasil perhitungan manual dan sistem menghasilkan hasil deteksi outlier
dengan hasil yang sama.
4. Algoritma Local Outlier Probability hanya memberikan hasil outlier
sebagai kandidat data outlier.
7.2
Saran
Berdasarkan hasil analisa dan pengujian pada tugas akhir ini, penulis
memberika saran untuk perbaikan dalam pengembangan penelitian dan
sistem secara lebih lanjut antara lain :
1. Sistem ini diharapkan dapat dikembangkan agar mampu menerima
inputan file yang bertipe .arf, .dat, dan lain-lain.
2. Akan lebih baik jika sistem ini mampu melakukan seleksi baris tabel
atau melakukan seleksi menggunakan kueri.
3. Hasil outlier dapat dikembangkan dalam bentuk grafik sehingga lebih
interaktif.
4. Pengujian review dan validitas sangat penting dilakukan setelah
pengguna melakukan deteksi outlier dengan sistem agar diperoleh hasil
127
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
128
outlier yang benar-benar valid. Pengujian ini dilakukan oleh pengguna
yang ahli dan mengerti tentang data tersebut.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
129
DAFTAR PUSTAKA
Amer, Mennatallah. 2011. Comparison of Unsupervised Anomaly Detection
Techniques. Media Engineering and Technology German University in
Cairo and Multimedia Analysis and Data Mining Competence Center
German Research Center for Artificial Intelligence (DFKI GmbH)
Kaiserslautern, Germany.
Davies, and Paul Beynon (2004). Database Systems Third Edition, Palgrave
Macmillan, New York.
Han, Jiawei & Kamber, Micheline (2006). Data Mining Concepts and Techniques
Second Edition. San Fransisco : Elsovier.
Knorr, Edwin M. (2002). Outlier and Data Mining: Finding Exception in Data.
The University of British Columbia.
Kriegel, H-P.; Kroger, P.; Schubert, E.; Zimek, A. 2009. “Loop: local outlier
probabilities”. Proceedings of the 18th ACM conference on Information
and knowledge management, CIKM ’09.
Larose, Daniel T. 2005. Discovering knowledge in Data : An Introduction to Data
Mining, John Willey & Sons, Inc.
Maimon, O. dan Last, M. (2000). Knowledge Discovery and Data Mining, The
Info-Fuzzy Network (IFN) Methodology. Dordrecht : Kluwer Academic.
O’niel, B.K., Dakin, J., Hardy, K., Schrader, M., and Other. (1997). Oracle Data
Warehousing Unleashed. Sams Publishing; 1st edition.
Ponniah, P. (2001). Data Warehouse Fundamentals : A comprehensive Guide for
IT Professional, John Willey & Sons. Inc.
Pramudiono, I. (2007). Pengantar Data Mining : Menimbang Permata
Pengetahuan di Gunung Data. http://www.ilmukomputer.org/wpcontent/uploads/2006/08/iko-datamining.zip diakses pada tanggal 26
Oktober 2013 jam 14:54 WIB.
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.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
130
Santosa, Budi. (2007). “Data Mining Teknik Pemanfaatan Data untuk Keperluan
Bisnis”, Graha Ilmu, Yogyakarta.
Sembiring, RK. (2003), Analisis Regresi, edisi kedua, ITB. Bandung.
Soemartini (2007). Pencilan (Outlier). Jurusan Statistika Fakultas MIPA UNPAD,
Bandung.
Turban, E., Rainer, R. K., Potter, R. E. and Other, A. N. (2005). Introduction to
Information Technology. Hoboken : Wiley.
Vardiansyah, Dani. (2008). Filsafat Ilmu Komunikasi: Suatu Pengantar, Indeks,
Jakarta. Hal 3.
Witten, I. H and Frank, E. (2005). Data Mining : Practical Machine Learning
Tools and Techniques Second Edition. Morgan Kauffman : San
Francisco.
Whitten, J., & Bentley, L., (2005) Systems analysis and design methods (7th ed.).
New York: McGraw-Hill/Irwin.
Whitten, J., & Bentley, L., (2007) Systems analysis and design methods (8th ed.).
New York: McGraw-Hill/Irwin.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
L
A
M
P
I
R
A
N
131
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 1
Diagram Use Case
DIAGRAM USE CASE
Memasukkan data file excel
atau database
<<extends>>
<<depends on>>
Mendeteksi outlier
user
<<depends on>>
Menyimpan hasil deteksi
outlier
Seleksi atribut
132
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
133
LAMPIRAN 2
Deskripsi Use Case
Nomor
Use
Nama Use Case
Deskripsi
Aktor
Case
Memasukkan data Use Case ini menggambarkan proses
berupa
1
Pengguna
dokumen penginputan data oleh pengguna dari
excel atau database
file berformat .xls atau .csv atau data
dari
database
untuk
selanjutnya
ditampilkan ke dalam Sistem
Mendeteksi outlier
2
Use Case ini menggambarkan proses
Pengguna
pencarian outlier terhadap data yang
telah dimasukkan oleh pengguna
Menyimpan
3
deteksi outlier
hasil Use case ini menggambarkan proses
Pengguna
penyimpanan hasil pencarian outlier
dalam bentuk file berformat .doc atau
.txt
Seleksi atribut
4
Use case ini menggambarkan proses
pemilihan atribut yang akan digunakan
untuk proses pencarian outlier
Pengguna
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
134
LAMPIRAN 3
Narasi Use Case
1.) Use Case Memasukkan data berupa dokumen excel atau database
Aktor
Pengguna
Kondisi awal
Pengguna telah masuk ke dalam sistem dan berada pada
Halaman Utama (tab Preprocessing)
Kondisi akhir
Data yang dipilih tampil pada tabel data di Halaman Utama
– tab Preprocessing
Aktivitas normal
Actor Action
System Respons
Langkah 1
Aktor memilih button ‘pilih
file’ untuk memilih file
excel berformat xls atau csv
Langkah 2
Sistem menampilkan dialog
box
jFileChooser
untuk
memilih file
Langkah 3
Aktor memilih file yang
akan
diproses
kemudian
mengklik button open
Langkah 4
Sistem menampilkan data
yang telah dipilih ke dalam
Tabel Data pada Halaman
Utama – tab Preprocessing
beserta dengan jumlah data
dan jumlah atribut
Langkah 5
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
135
Aktor berhasil memasukkan
data
Aktivitas Alternatif
Langkah 1a
Aktor memilih button ‘Pilih
Database’
Langkah 2a
Sistem menampilkan dialog
box pilih database
Langkah 3a
Aktor
memilih
jenis
database dan memasukan
konfigurasi
database,
kemudian memilh ok
Langkah 4a
Sistem menampilkan dialog
bahwa
koneksi
database
berhasil
Langkah 5a
Aktor memilih button OK
Langkah 6a
Sistem menampilkan dialog
box pilih tabel
Langkah 7a
Aktor memilih tabel yang
akan digunakan kemudian
memilih button ok
Langkah 8a
Sistem menampilkan data ke
dalam tabel
utama
di
halaman
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
136
2.) Use Case Mendeteksi Outlier
Aktor
Pengguna
Kondisi awal
-
Pengguna telah melakukan seleksi data atribut dan
telah menekan tombol submit pada tab Preprocessing
Kondisi akhir
Pengguna berada pada tab Deteksi Outlier
Pengguna dapat melihat hasil outlier dalam sebuah tabel
Aktivitas normal
Actor Action
System Respons
Langkah 1
Aktor
masukkan
nilai
parameter k dan  kemudian
klik button ‘Proses’
Langkah 2
Sistem melakukan proses
pencarian
menggunakan
outlier
algoritma
local outlier probability dan
kemudian
menampilkan
hasilnya ke dalam sebuah
tabel
Langkah 3
Aktor berhasil mendeteksi
outlier
Aktivitas Alternatif
-
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
137
3.) Use Case Menyimpan Hasil Outlier
Aktor
Pengguna
Kondisi awal
Pengguna telah melakukan deteksi outlier dan data hasil
outlier telah tampil
Kondisi akhir
Hasil deteksi outlier dapat disimpan dalam file sesuai
dengan format pilihan pengguna
Aktivitas normal
Actor Action
System Respons
Langkah 1
Aktor
memilih
button
‘simpan’
Langkah 2
Sistem menampilkan dialog
box save file
Langkah 3
Aktor
memilih
lokasi
penyimpanan data
Langkah 4
Aktor memasukkan nama
file
Langkah 5
Aktor memilih ekstensi file
data
Langkah 6
Aktor memilih button OK
Langkah 7
Sistem menyimpan file hasil
deteksi outlier ke dalam
komputer
Langkah 5
Aktor berhasil menyimpan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
138
hasil pencarian outlier
Aktivitas Alternatif
-
4.) Use Case Seleksi Atribut
Aktor
Pengguna
Kondisi awal
Pengguna telah menampilkan data ke dalam tabel data pada
tab ‘Preprocessing’ pada Halaman Utama
Kondisi akhir
Atribut yang tidak digunakan dihapus dari tabel data
Aktivitas normal
Actor Action
System Respons
Langkah 1
Sistem menampilkan semua
nama atribut di tabel seleksi
atribut
Langkah 2
Aktor memilih atribut yang
tidak
digunakan
kemudian
klik
dan
button
‘hapus’
Langkah 3
Sistem menghapus atribut
yang telah dipilih
Langkah 4
Aktor berhasil menyeleksi
atribut
Aktivitas Alternatif
Langkah 2a
Aktor
‘Tandai
memilih
button
semua’
untuk
menghapus semua atribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 4
Proses Umum Sistem Pendeteksi Outlier menggunakan
Algoritma Local Outlier Probability
Start
Data bertipe .xls
Data bertipe .csv
Pilih seleksi
atribut?
Data basis data
Tidak
Input parameter
minPts
Input parameter
lamda
Proses mendeteksi
outlier
Hasil deteksi
outlier
End
Ya
Proses menyeleksi
atribut
139
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
140
LAMPIRAN 5
Diagram Aktivitas
6.
Diagram Aktivitas Input Data File .xls dan .csv
Pengguna
Sistem
Menjalankan
HalamanUtama
Menampilkan
HalamanUtama
Menekan button pilih file
Menampilkan dialog box
JFileChooser
Memilih file excel
Mengecek kesesuaian file
(harus bertipe xls atau csv)
Start
Tidak sesuai
sesuai
Membaca dan menampilkan data ke
dalam tabel data preprocessing beserta
jumlah data, jumlah atribut dan daftar
atribut dalam tabel seleksi
End
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7.
141
Diagram Aktivitas Input Data Tabel Basis Data
Pengguna
Sistem
Start
Menjalankan HalamanUtama
- Preprocessing
Menampilkan HalamanUtama
- Preprocessing
Menekan button Pilih DB
Menampilkan Halaman
PilihDB
Memilih koneksi DB
Melakukan login ke basis data
dengan mengisi username,
password, dbname
Validasi login basis data
Non valid
valid
Memilih tabel dalam basis
data
Menampilkan Halaman
PilihTabel
Menekan button OK
Membaca dan menampilkan data ke
tabel data preprocessing beserta
jumlah data, jumlah atribut, dan
daftar atribut dalam tabel seleksi
End
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8.
142
Diagram Aktivitas Seleksi Atribut
Pengguna
Sistem
Start
Menampilkan daftar atribut
dalam tabel seleksi
Memilih atribut yang akan
dihapus dengan menandai
baris atribut
Menekan button hapus atribut
Menghapus atribut yang
ditandai
Mengupdate atribut pada tabel
data preprocessing
End
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9.
143
Diagram Aktivitas Deteksi Outlier
Pengguna
Sistem
Start
Menjalankan HalamanUtama
– Deteksi Outlier
Menampilkan HalamanUtama
– Deteksi Outlier
Memasukkan parameter
minpts dan lamda
Menekan button proses
Mengecek kesesuaian data
inputan (tidak boleh mengandung
karakter dan bilangan negatif)
Non valid
valid
Memproses perhitungan
menggunakan algoritma
LoOP
Menampilkan hasil deteksi outlier
dalam tabel deteksi beserta jumlah
data dan lama deteksi
End
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10. Diagram Aktivitas Simpan Hasil Outlier
Pengguna
Sistem
Start
Menampilkan hasil deteksi
pada tabel hasil outlier
Menekan button simpan
Menampilkan dialog
JFileChooser untuk
menyimpan file
Memilih lokasi file
penyimpanan, mengisi nama
file, memilih ekstensi file
(doc, xls atau txt)
Menekan button save
Menyimpan file
End
144
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
145
LAMPIRAN 6
Diagram Kelas Analisis
Pengguna
HalamanAwal
Halaman Utama
HalamanPilihFile
HalamanPilihDB
CheckBoxTableModel
DatabaseController
SeleksiAtribut
HalamanPilihDatabase
KoneksiDataBase
Verteks
Graph
LoopTableModel
HalamanBantuan
HalamanTentang
DataLoop
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
146
LAMPIRAN 7
Diagram Sequence
1.
Diagram Sequence Input Data Excel (.xls atau .csv)
<<boundary>>
Halaman Utama
<<entity>>
CheckBoxTableModel
1. Tekan button Pilih File
2. Tampil jFileChooser
3. Memilih file .xls atau .csv
4. pilihFile()
5. new CheckBoxTableModel
6. setAtribut(), getAtribut(), setPilih(), getPilih()
7. setPilih(false)
8. add(column, seleksiAtribut)
9. Menampilkan data ke tabel
tabel_DataPreprocess
10. Menampilkan data ke tabel_SeleksiAtribut
<<entity>>
Seleksi Atribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
147
Diagram Sequence Pilih Database
<<boundary>>
HalamanUtama
<<boundary>>
HalamanPilihDB
<<controller>>
DBControl
<<entity>>
koneksiDB
1. Tekan button Pilih
File
3. Menampilkan
halaman pilih db
2. db.setVisible(true)
4.Memilih koneksi db, isi username,
password, dbname, dan url
5.pilihDB()
6. selectTable(getConnection, table)
7.isConnectedSQL(), isConnectedOrcl()
8.isConnected(true)
9.showTable()
10.tampil HalamanPilihTable
11. memilih tabel
12. selectTable()
13. menampilkan data
tabel_DataPreprocess
14. new CheckBoxTableModel()
15. setAtribut(columnName)
16. setPilih(false)
17. add(column, seleksiAtribut)
18. tampil data pada
tabel_DataPreprocess
19. tampil data pada tabel_SeleksiAtribut
<<boundary>>
HalamanPilihTabel
<<entity>>
CheckBoxTableModel
<<entity>>
SeleksiAtribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
Diagram Sequence Deteksi Outlier
<<boundary>>
HalamanUtama
<<controller>>
Graph
<<entity>>
Vertex
<<entity>>
LoopTabelModel
1. memasukkan parameter
minpts dan lamda
2. klok button proses
3. inputData(jTable)
4. newGraph()
5. new Vertex()
6. setMinPts(minPts)
7. setLamda(lamda)
8. setDataLoop()
9. setLabe()l, setLoop()
10. setValueAt(), getValueAt()
11. TableModel
12. tampil outlier
4.
148
Diagram Sequence Simpan Outlier
<<boundary>>
Halaman Utama
1. Tekan button simpan
2. tampil save dialog
3. memilih lokasi
penyimpanan
4. mengisi nama file
5. memilih tipe ekstensi
file (xls, doc, txt)
6. menekan button save
7. simpanLOOP()
8. konfirmasi file berhasil
disimpan
<<boundary>>
HalamanPilihTabel
<<entity>>
DataLoop
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.
149
Diagram Sequence Seleksi Atribut
<<boundary>>
Halaman Utama
<<entity>>
CheckBoxTableModel
1. Tandai atribut yang
akan dihapus
2. klik button hapus
atribut
3. hapusAtribut()
4. removeRow()
5. getpilih()
6. menampilkan data pada tabel_dataPreprocess
yang telah diseleksi atributnya
<<entity>>
SeleksiAtribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
150
LAMPIRAN 8
Diagram Kelas Desain
1
<<boundary>>
HalamanAwal
memanggil
1
1
<<boundary>>
HalamanUtama
memanggil
1
<<boundary>>
HalamanPilihFile
1
1
memanggil
<<boundary>>
HalamanPilihDB
1
1
<<entity>>
CheckBoxTableModel
1
1
<<boundary>>
HalamanBantuan
1
<<boundary>>
HalamanTentang
<<entity>>
KoneksiDB
1…*
memanggil
1
<<controller>>
Graph
memanggil
1
memanggil
<<controller>>
DBControl
1…*
memanggil
memanggil
<<boundary>>
HalamanPilihTable
1
memanggil
memanggil
1
memanggil
memiliki
<<entity>>
SeleksiAtribut
1…*
1…*
memanggil
<<entity>>
Vertex
1
<<entity>>
DataLoop
1
memanggil
<<entity>>
LoopTableModel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 9
Diagram Kelas
Berikut ini merupakan rincian atribut dan method masing-masing kelas
<<entity>>
koneksiDB
- jdbcURL : String
- user : String
- password : String
- conn : Connection
 koneksiSQL( String, String, String) : Connection
 isConnectedSQL (String, String, String) : Boolean
 koneksiOrcl (String, String, String) : Connection
 isConnectedOracle (String, String, String) : Boolean
 isConnected( ) : Boolean
 getClosed( ) : Boolean
 setConn(Connection) : void
 getConn( ) : Connection
 setJdbcURL(String) : void
 getJdbcURL( ) : String
 setPassword(String) : void
 getPassword( ) : String
 setUser(String) : void
 getUser( ) : String
151
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<controller>>
DBControl
 displayTableOracle(Connection) : ResultSet
 displayTableMySql(Connection) : ResultSet
 selectTable(Connection, String) : ResultSet
<<entity>>
Vertex
- label : String
- nilai : List<Double>
- flagKunjungan : boolean
- kDistance : Double
- neighborhood : List<String>
- pDist : Double
- pLOF : Double
- nPLOF : Double
- LOOP : Double
- anggotaNeighborhood : Double
 Vertex(String, List<Double>) : constructor
 setLabel(String) : void
 setNilai(List<Double>) : void
 setFlagKunjungan(Boolean) : void
 setKDistance(Double) : void
 setNeighborhood(List<String>) : void
 setpDist(Double) : void
 setPLOF(Double) : void
 setNPLOF (Double) : void
 setLOOP(Double) : void
 setAnggotaNeighborhood(Double) : void
152
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
 getLabel( ) : String
 getNilai( ) : List<Double>
 getFlagKunjungan( ) : Boolean
 getKDistance( ) : Double
 getNeighborhood( ) : List<String>
 getPDist( ) : Double
 getPLOF( ) : Double
 getNPLOF( ) : Double
 getLOOP( ) : Double
 getAnggotaNeighborhood( ) : Double
<<controller>>
Graph
- vertexList : Vertex[ ]
- matriks : Double[ ]
- jumlahVertex : int
- k : int
- dist : int[ ]
- arStdev : Double[ ]
- nPdist : Double[ ]
- arPLOF ; Double[ ]
- arLOOP1 : Double[ ]
- neighborhood : int[ ][ ]
- max : int
- lamda : int
 Graph(int) : constructor
 setk(int) : void
 setMatriks(Double[ ][ ]) : void
 setVertexList(Vertex[ ]) : void
 setLamda(int) : void
153
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
 getk( ) : int
 getLamda( ) : int
 getMatriks( ) : Double[ ][ ]
 getVertexList( ) : Vertex[ ]
 addVertex(String, List<Double>) : void
 addEdge(int, int, Double) : void
 cariJarak(int, int) : Double
 tampilJarak( ) : void
 search(String) : int
 search2(Double, int) : void
 Kdistance(int, int) : Double
 setKdistance(String, int) : void
 cariNeighborhood(Double, int) : List<String>
 setNeighborhood(String) : void
 setAnggotaNeighborhood(String, Double) : void
 cariAnggotaNeighborhood(int, Double) : Double
 tampilNeighbor( ) : void
 setJumlahAnggota( ) : void
 setPdist( ) : void
 caristdev( ) : void
 caripdist( ) : void
 cariLOOP( ) : void
 erf(Double) : Double
 inputData(JTable) : void
 setDataLoop(String) : LoOPTabelModel
 setDataLoop2(String, Double) : LoOPTabelModel
154
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<entity>>
seleksiAtribut
- atribut : String
- pilih : Boolean
 seleksiAtribut(String, Boolean) : constructor
 setAtribut(String) : void
 setPilih(Boolean) : void
 getAtribut( ) : String)
 getPilih( ) : boolean
<<controller>>
CheckBoxTableModel
- column : String[ ]
- seleksi : seleksiAtribut
- list : List<seleksiAtribut>
 CheckBoxTableModel( ) : constructor
 getRowCount( ) : int
 getColumnCount( ) : int
 getColumnName(int) : String
 getValueAt(int, int) : Object
 getColumnClass(int) : Class
 setValueAt(Object, int, int) : void
 isCellEditable(int, int) : Boolean
 add(int, seleksiAtribut) : void
 removeRow( ) : void
155
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
<<entity>>
DataLoop
- label : String
- LoOP : Double
- Ranking : int
 setLabel(String) : void
 setLoOP(Double) : void
 setRanking(int) : void
 getLabel( ) : String
 getLoOP( ) : Double
 getRanking( ) : int
<<entity>>
LoOPTabelModel
- dlo : List<DataLoOP>
 LoOPTabelModel(List<DataLoop>, String) : constructor
 setValueAt(Object, int, int) : void
 isCellEditable(int, int) : boolean
 getValueAt(int, int) : Object
 getRowCount( ) : int
 getColumnCount( ) : int
 getColumnName(int) : String
156
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
157
LAMPIRAN 10
Listing Program
1.
Implementasi Kelas koneksiDB.java
Berikut ini merupakan implementasi dari atribut dan method pada kelas
koneksiDB.java yang digunakan untuk melakukan koneksi pada basis data.
package Model;
import java.sql.*;
public class koneksiDB {
private static String jdbcURL;
private static String user;
private static String password;
static Connection conn = null;
public koneksiDB(){}
public Connection koneksiSQL(String url, String user, String passw) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
setConn(DriverManager.getConnection(url, user, passw));
System.out.println("koneksi berhasil");
} catch (Exception ex) {
System.out.println("message: " + ex.getMessage());
}
return getConn();
}
public boolean isConnectedSQL(String url, String user, String passw) {
if (koneksiSQL(url, user, passw) != null) {
return true;
} else {
return false;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
158
}
public Connection koneksiOrcl(String url, String user, String passw) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
setConn(DriverManager.getConnection(url, user, passw));
System.out.println("koneksi berhasil");
} catch (Exception ex) {
System.out.println("message: " + ex.getMessage());
}
return getConn();
}
public boolean isConnectedOracle(String url, String user, String passw)
{
if (koneksiOrcl(url, user, passw) != null) {
return true;
} else {
return false;
}
}
public boolean isConnected() {
if (conn != null) {
return true;
} else {
return false;
}
}
public boolean getClosed() {
if (isConnected()) {
try {
conn.close();
conn = null;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
} catch (SQLException ex) {
ex.printStackTrace();
}
return true;
} else {
return false;
}
}
public static Connection getConn() {
return conn;
}
public static void setConn(Connection conn) {
koneksiDB.conn = conn;
}
public static String getJdbcURL() {
return jdbcURL;
}
public static void setJdbcURL(String jdbcURL) {
koneksiDB.jdbcURL = jdbcURL;
}
public static String getPassword() {
return password;
}
public static void setPassword(String password) {
koneksiDB.password = password;
}
public static String getUser() {
return user;
}
public static void setUser(String user) {
koneksiDB.user = user;
} }
159
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
160
Implementasi Kelas Graph.java
Di dalam kelas ini atribut dan method dibuat sesuai perancangan. Kelas ini
merupakan kelas yang memuat perancangan struktur data yang berkaitan
dengan algoritma seperti implementasi matriks dua dimensi dan graf. Selain
itu pada method ini memuat proses perhitungan menggunakan algoritma
Local Outlier Probability.
package Controller;
import Model.*;
import java.util.*;
import javax.swing.JTable;
public class Graph {
private Vertex vertexList[];
private Double matriks[][];
private int jumlahVertex = 0;
private int k;
private int dist[];
private Double arStdev[];
private Double nPdist[];
private Double arPLOF[];
private Double arLOOP1[];
private int neighborhood[][];
private int max;
private int lamda;
public Graph(int maxVertex) {
vertexList = new Vertex[maxVertex];
matriks = new Double[maxVertex][maxVertex];
neighborhood = new int[maxVertex][maxVertex];
max = maxVertex + 1;
dist = new int[maxVertex];
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
arStdev = new Double[maxVertex];
nPdist = new Double[maxVertex];
arPLOF = new Double[maxVertex];
arLOOP1 = new Double[maxVertex];
for (int i = 0; i < maxVertex; i++) {
for (int j = 0; j < maxVertex; j++) {
if (i == j) {
matriks[i][j] = 0.0;
} else {
matriks[i][j] = -1.0;
}
}
}
}
public void setk(int k) {
this.k = k;
}
public void setMatriks(Double[][] matriks) {
this.matriks = matriks;
}
public void setvertexList(Vertex[] vertexList) {
this.vertexList = vertexList;
}
public int getk() {
return k;
}
public int getLamda() {
return lamda;
}
public void setLamda(int lamda) {
161
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
this.lamda = lamda;
}
public Double[][] getMatriks() {
return matriks;
}
public Vertex[] getvertexList() {
return vertexList;
}
public void addVertex(String label, List<Double> nilai) {
vertexList[jumlahVertex++] = new Vertex(label, nilai);
}
public void addEdge(int awal, int akhir, Double nilai) {
matriks[awal][akhir] = matriks[akhir][awal] = nilai;
}
public Double cariJarak(int indexAwal, int indexTujuan) {
List<Double> a = new ArrayList<Double>();
List<Double> b = new ArrayList<Double>();
a = vertexList[indexAwal].getNilai();
b = vertexList[indexTujuan].getNilai();
Double total = 0.0;
for (int i = 0; i < a.size(); i++) {
total = total + Math.pow((a.get(i) - b.get(i)), 2);
}
return Math.sqrt(total);
}
public void tampilJarak() {
System.out.print("\t");
for (int i = 0; i < vertexList.length; i++) {
System.out.print("" + vertexList[i].getLabel() + "\t");
}
System.out.println("");
162
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
for (int i = 0; i < matriks.length; i++) {
System.out.print("" + vertexList[i].getLabel() + "\t");
for (int j = 0; j < vertexList.length; j++) {
System.out.print("" + matriks[i][j] + "\t");
}
}
}
public int Search(String label) {
for (int i = 0; i < vertexList.length; i++) {
if (label.equals(vertexList[i].getLabel())) {
return i;
}
}
return -1;
}
public void Search2(Double jarak, int indeks) {
for (int i = 0; i < vertexList.length; i++) {
if (matriks[indeks][i].equals(jarak)) {
vertexList[i].setFlagKunjungan(true);
}
}
}
public Double Kdistance(int indeks, int jangkaun) {
for (int i = 0; i < vertexList.length; i++) {
vertexList[i].setFlagKunjungan(false);
}
Double[] a;
a = new Double[jangkaun];
Double kDistance = 0.0;
Double temp1 = Double.MAX_VALUE;
163
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
164
if (indeks == -1) {
System.out.println("Data tidak ada");
} else {
for (int t = 0; t < a.length; t++) {
for (int i = 0; i < vertexList.length; i++) {
if (matriks[indeks][i] != -1 && matriks[indeks][i] != 0 &&
vertexList[i].isFlagKunjungan() == false) {
if (matriks[indeks][i] < temp1) {
temp1 = matriks[indeks][i];
}
}
}
a[t] = temp1;
Search2(temp1, indeks);
temp1 = Double.MAX_VALUE;
}
}
for (int i = 0; i < a.length; i++) {
if (kDistance < a[i]) {
kDistance = a[i];
}
}
return kDistance;
}
public void setKdistance(String label, int jangkauan) {
int index = Search(label);
vertexList[index].setkDistance(Kdistance(index, jangkauan));
}
public List<String> cariNeighborhood(Double k, int indeks) {
List<String> a = new ArrayList<String>();
if (indeks == -1) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
165
System.out.println("Tidak ada data");
} else {
for (int i = 0; i < vertexList.length; i++) {
if (matriks[indeks][i] != -1 && matriks[indeks][i] != 0) {
if (matriks[indeks][i] < Kdistance(i, (getk() + 1))) {
a.add(vertexList[i].getLabel());
}
}
}
}
return a;
}
public void setNeighborhood(String label) {
int indeks = Search(label);
vertexList[indeks].setNeighborhood(cariNeighborhood(vertexList[indeks
].getAnggotaNeighborhood(), indeks));
}
public void setAnggotaNeighborhood(String label, Double k) {
int indeks = Search(label);
vertexList[indeks].setAnggotaNeighborhood(cariAnggotaNeighborhood(i
ndeks, k));
}
public Double cariAnggotaNeighborhood(int indeks, Double k) {
for (int i = 0; i < vertexList.length; i++) {
vertexList[i].setFlagKunjungan(false);
}
Double AnggotaNeighbor = 0.0;
Double temp1 = Double.MAX_VALUE;
int anggotaNeighbor = 0;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
166
if (indeks == -1) {
System.out.println("Tidak ada kota dalam peta");
} else {
for (int i = 0; i < vertexList.length; i++) {
if (matriks[indeks][i] != -1 && vertexList[i].isFlagKunjungan()
== false) {
if (matriks[indeks][i] < Kdistance(i, (getk() + 1))) {
temp1 = matriks[indeks][i];
anggotaNeighbor = anggotaNeighbor + dist[i];
}
}
}
AnggotaNeighbor = temp1;
Search2(temp1, indeks);
temp1 = Double.MAX_VALUE;
}
return AnggotaNeighbor;
}
public void tampilNeighbor() {
int n = 0;
for (int i = 0; i < vertexList.length; i++) {
System.out.println(" " + vertexList[i].getLabel() + "\t");
for (int j = 0; j < vertexList.length; j++) {
if (matriks[i][j] != 0 && matriks[i][j] != -1) {
if (matriks[i][j] < Kdistance(i, (getk() + 1))) {
n = n + 1;
System.out.println("anggota neighborhood[" + j + "]" +
matriks[i][j] + "\t");
}
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
System.out.println("nk(o) [" + i + "] = " + n);
System.out.println("");
n = 0;
}
}
public void setJumlahAnggota() {
int x = 0;
Double stdev = 0.0;
for (int i = 0; i < vertexList.length; i++) {
for (int j = 0; j < vertexList.length; j++) {
if (matriks[i][j] !=0 && matriks[i][j] != -1){
if (matriks[i][j] < Kdistance(i, (getk() + 1))) {
x = x + 1;
neighborhood[i][j] = j;
} else {
neighborhood[i][j] = max;
}
}
}
dist[i] = x;
x = 0;
}
}
public void setPdist(){
double stdev=0.0;
double pdist = 0.0;
Double temp1 = Double.MAX_VALUE;
for (int i= 0; i < matriks.length; i++) {
for (int j= 0; j < vertexList.length; j++) {
if (matriks[i][j] != 0 && matriks[i][j] != -1){
temp1 = matriks[i][j];
167
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
if (matriks[i][j] < Kdistance(i, (getk() +1))){
stdev = stdev + Math.pow(matriks[i][j], 2);
}
}
}
stdev = Math.sqrt((stdev / getk()));
arStdev[i]=stdev;
pdist = arStdev[i] * getLamda() ;
nPdist[i] = pdist;
stdev = 0;
}
}
public void caristdev(){
Double stdev=0.0;
Double temp1=Double.MAX_VALUE;
for (int i= 0; i < matriks.length; i++) {
for (int j= 0; j < vertexList.length; j++) {
if (matriks[i][j] !=0 && matriks[i][j] != -1){
temp1 = matriks[i][j];
if(matriks[i][j] < Kdistance(i, (getk() +1))){
stdev = stdev + Math.pow(matriks[i][j], 2);
}
}
}
stdev = Math.sqrt((stdev / getk()));
arStdev[i]=stdev;
System.out.println("stdev [" + i + "] : " + stdev + "\t");
System.out.println("");
stdev = 0.0;
}
}
168
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public void caripdist(){
Double pdist=0.0;
Double temp1=Double.MAX_VALUE;
for (int i= 0; i < matriks.length; i++) {
pdist = arStdev[i] * getLamda();
System.out.println("pdist [" + i + "] : " + pdist + "\t");
}
System.out.println("");
pdist = 0.0;
}
public void cariJumlahPdist() {
Double sum = 0.0;
Double jumlahPdist = 0.0;
Double plof=0.0;
Double plof2 = 0.0;
Double jmlPLOF2=0.0;
Double nplof = 0.0;
Double loop1=0.0;
Double loopx=0.0;
for (int i = 0; i <matriks.length; i++) {
setPdist();
for (int j= 0; j < neighborhood.length; j++) {
if (matriks[i][j] != 0 && matriks[i][j] != -1){
if (matriks[i][j] < Kdistance(i, (getk() + 1))){
jumlahPdist = jumlahPdist + nPdist[j];
}
}
}
sum = sum + jumlahPdist;
plof = (((nPdist[i] * getk()) / jumlahPdist) - 1);
arPLOF[i] = plof;
169
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
System.out.println("PLOF [" + i + "] : " + plof);
System.out.print("\t");
plof2 = Math.pow(plof, 2);
jmlPLOF2 = jmlPLOF2 +plof2;
System.out.print("\t");
jumlahPdist = 0.0;
plof=0.0;
plof2=0.0;
}
int jmlMahasiswa = vertexList.length;
nplof = lamda *(Math.sqrt(jmlPLOF2/jmlMahasiswa));
System.out.println("nplof = " +nplof);
for (int i = 0; i <matriks.length; i++) {
loopx = nplof * Math.sqrt(2);
loop1 = (arPLOF[i] / loopx);
arLOOP1[i] = loop1;
System.out.println("hasil loop1 [" + i + "] : " + loop1);
Double hasil_LOOP = erf(arLOOP1[i]);
System.out.println("ERF [" + i + "] : " + hasil_LOOP);
if(erf(arLOOP1[i])>0){
System.out.println("OUTLIER");
}else{
System.out.println("BUKAN OUTLIER");
}
vertexList[i].setLOOP(hasil_LOOP);
}
}
public static Double erf(Double z) {
double t = 1.0 / (1.0 + 0.5 * Math.abs(z));
// use Horner's method
170
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
171
double ans = 1 - t * Math.exp( -z*z - 1.26551223 +
t * ( 1.00002368 +
t * ( 0.37409196 +
t * ( 0.09678418 +
t * (-0.18628806 +
t * ( 0.27886807 +
t * (-1.13520398 +
t * ( 1.48851587 +
t * (-0.82215223 +
t * ( 0.17087277))))))))));
if (z >= 0) return ans;
else
return -ans;
}
public void inputData(JTable jTableData) {
for (int i = 0; i < jTableData.getRowCount(); i++) {
String label = "";
List<Double> listNilai = new ArrayList<Double>();
for (int j = 0; j < jTableData.getColumnCount(); j++) {
if (j == 0) {
if (jTableData.getValueAt(i, j).toString().equals("")) {
label = "null";
} else {
label = jTableData.getValueAt(i, j).toString();
listNilai.add(Double.parseDouble(jTableData.getValueAt(i,
j).toString().replace(",", ".")));
}
} else {
if (jTableData.getValueAt(i, j).toString().equals("")) {
listNilai.add(0.0);
}
else
if
(jTableData.getValueAt(i,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
j).toString().matches("[^0-9]*")) {
listNilai.add(0.0);
} else {
listNilai.add(Double.parseDouble(jTableData.getValueAt(i,
j).toString().replace(",", ".")));
}
}
}
addVertex(label, listNilai);
}
for (int i = 0; i < jTableData.getRowCount(); i++) {
for (int j = i + 1; j < jTableData.getRowCount(); j++) {
if (i != j) {
addEdge(i, j, cariJarak(i, j));
}
}
}
}
public LoOPTabelModel setDataLoop(String label) {
List<DataLoop> dlc = new ArrayList<DataLoop>();
DataLoop dl;
for (int i = 0; i < vertexList.length; i++) {
if (vertexList[i].getLOOP()>0) {
dl = new DataLoop();
dl.setLabel(vertexList[i].getLabel());
dl.setLoOP(vertexList[i].getLOOP());
dlc.add(dl);
}
}
LoOPTabelModel ltm = new LoOPTabelModel(dlc, label);
172
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
173
return ltm;
}
public
LoOPTabelModel
setDataLoop2(String
label,
Double
batasLoop) {
List<DataLoop> dlp = new ArrayList<DataLoop>();
DataLoop dl;
for (int i = 0; i < vertexList.length; i++) {
if (vertexList[i].getLOOP()>= batasLoop) {
dl = new DataLoop();
dl.setLabel(vertexList[i].getLabel());
dl.setLoOP(vertexList[i].getLOOP());
dlp.add(dl);
}
}
LoOPTabelModel ltm = new LoOPTabelModel(dlp, label);
return ltm;
}
}
3.
Implementasi Kelas Vertex.java
Kelas ini merupakan kelas yang digunakan utnuk menyimpan data obyek
dalam bentuk vertex dimana sebuah vertex memiliki atribut label dan nilai
dalam bentuk list. Atribut outlier bertipe Boolean digunakan untuk memberi
nilai Boolean pada suatu vertex apakah vertex tersebut outlier atau tidak.
package Model;
import java.util.List;
public class Vertex {
private String label;
List<Double> nilai;
private boolean flagKunjungan = false;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private Double kDistance;
private List<String> neighborhood;
private Double pDist;
private Double pLOF;
private Double nPLOF;
private Double LOOP;
private Double anggotaNeighborhood;
public Vertex(String label, List<Double> nilai1) {
setLabel(label);
setNilai(nilai1);
}
public void setLabel(String label) {
this.label = label;
}
public void setLOOP(Double LOOP) {
this.LOOP = LOOP;
}
public void setFlagKunjungan(boolean flagKunjungan) {
this.flagKunjungan = flagKunjungan;
}
public void setkDistance(Double kDistance) {
this.kDistance = kDistance;
}
public void setnPLOF(Double nPLOF) {
this.nPLOF = nPLOF;
}
public void setNeighborhood(List<String> neighborhood) {
this.neighborhood = neighborhood;
}
public void setNilai(List<Double> nilai) {
174
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
this.nilai = nilai;
}
public void setpDist(Double pDist) {
this.pDist = pDist;
}
public void setpLOF(Double pLOF) {
this.pLOF = pLOF;
}
public Double getLOOP() {
return LOOP;
}
public boolean isFlagKunjungan() {
return flagKunjungan;
}
public Double getkDistance() {
return kDistance;
}
public String getLabel() {
return label;
}
public Double getnPLOF() {
return nPLOF;
}
public List<String> getNeighborhood() {
return neighborhood;
}
public List<Double> getNilai() {
return nilai;
}
public Double getpDist() {
return pDist;
175
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
176
}
public Double getpLOF() {
return pLOF;
}
public Double getAnggotaNeighborhood() {
return anggotaNeighborhood;
}
public void setAnggotaNeighborhood(Double anggotaNeighborhood) {
this.anggotaNeighborhood = anggotaNeighborhood;
}
}
4.
Implementasi Kelas seleksiAtribut.java
Kelas ini merupakan kelas yang akan menyimpan atribut yang ada dalam
jTable data yang diinputkan oleh pengguna.
package Model;
public class seleksiAtribut {
private String atribut;
private Boolean pilih;
public seleksiAtribut(){}
public seleksiAtribut(String vl, boolean st) {
atribut= vl;
pilih = new Boolean(st);
}
public String getAtribut() {
return atribut;
}
public void setAtribut(String atribut) {
this.atribut = atribut;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
177
}
public Boolean getPilih() {
return pilih;
}
public void setPilih(Boolean pilih) {
this.pilih = pilih;
}
}
5.
Implementasi Kelas checkBoxTableModel.java
Kelas ini digunakan untuk menampilkan tabel seleksi atribut beserta check
box agar pengguna dapat memilih atribut mana saja yang ingin dihapus.
package Model;
import javax.swing.table.AbstractTableModel;
import java.util.*;
public class CheckBoxTableModel extends AbstractTableModel{
String[] column = {"Atribut", "Pilih"};
seleksiAtribut seleksi = new seleksiAtribut("", false);
List<seleksiAtribut> list;
public CheckBoxTableModel() {
list = new ArrayList<seleksiAtribut>();
}
public int getRowCount() {
return list.size();
}
public int getColumnCount() {
return column.length;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
178
@Override
public String getColumnName(int col){
return column[col];
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex){
case 0:
return list.get(rowIndex).getAtribut();
case 1:
return list.get(rowIndex).getPilih();
}
return null;
}
@Override
public Class getColumnClass(int columnIndex){
return getValueAt(0, columnIndex).getClass();
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex){
switch (columnIndex){
case 0:
list.get(rowIndex).setAtribut(value.toString());
break;
case 1:
list.get(rowIndex).setPilih((Boolean) value);
break;
}
fireTableCellUpdated(rowIndex, columnIndex);
}
@Override
public boolean isCellEditable(int row, int column){
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
179
return true;
}
public void add(int a, seleksiAtribut field_m){
list.add(a, field_m);
fireTableCellUpdated(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow() {
List<seleksiAtribut> s = new ArrayList<seleksiAtribut>();
for (seleksiAtribut seleksi : list) {
if (!seleksi.getPilih()) {
s.add(seleksi);
}
}
list = s;
fireTableDataChanged();
}
}
6.
Implementasi Kelas DBControl.java
Kelas ini digunakan untuk mengkoneksikan sistem dengan basis data. Di
kelas ini juga terdapat method untuk menampilkan data yang ada di basis data
agar dapat tampil di sistem.
package Controller;
import java.sql.*;
public class DBControl {
public ResultSet displayTableOracle(Connection conn) throws
SQLException {
Statement stmt;
ResultSet rset;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
String query;
stmt =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "select table_name from user_tables";
System.out.println("\nExecuting query: " + query);
rset = stmt.executeQuery(query);
return rset;
}
public ResultSet displayTablaMySql(Connection conn) throws
SQLException {
Statement stmt;
ResultSet rset;
String query;
stmt =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "show tables";
System.out.println("\nExecuting query: " + query);
rset = stmt.executeQuery(query);
return rset;
}
public ResultSet selectTable(Connection conn, String table) throws
SQLException {
Statement stmt;
ResultSet rset;
String query;
stmt =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "select * from "+table;
180
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
181
System.out.println("\nExecuting query: " + query);
rset = stmt.executeQuery(query);
return rset;
}
}
7.
Implementasi Kelas DataLoop.java
Kelas ini digunakan untuk menyimpan hasil outlier dalam sistem. Atribut
yang disimpan adalah label, derajat LoOP dan ranking.
package Model;
public class DataLoop {
private String label;
private Double LoOP;
private int ranking;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public Double getLoOP() {
return LoOP;
}
public void setLoOP(Double LoOP) {
this.LoOP = LoOP;
}
public int getRanking() {
return ranking;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
182
public void setRanking(int ranking) {
this.ranking = ranking;
}
}
8.
Implementasi Kelas LoopTableModel.java
Kelas ini digunakan untuk menyajikan hasil deteksi outlier ke dalam tabel.
Dengan ini pengguna akan merasa lebih mudah dalam melihat hasil deteksi
outlier dan bisa tahu ranking setiap mahasiswa outlier tersebut.
package Model;
import java.util.*;
import javax.swing.table.AbstractTableModel;
public class LoOPTabelModel extends AbstractTableModel{
private List<DataLoop> dlo = new ArrayList<DataLoop>();
public LoOPTabelModel(List<DataLoop> dlo, String label){
this.dlo=dlo;
label = label;
}
public int getRowCount() {
return dlo.size();
}
public int getColumnCount() {
return 3;
}
public Object getValueAt(int rowIndex, int columnIndex) {
DataLoop dloop = dlo.get(rowIndex);
switch(columnIndex){
case 0:
return dloop.getLabel();
case 1:
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
return dloop.getLoOP();
case 2:
return dloop.getRanking();
default:
return "";
}
}
public String getColumnName(int column) {
switch (column) {
case 0:
return "Mahasiswa";
case 1:
return "LoOP";
case 2:
return "Ranking";
default:
return "";
}
}
public boolean isCellEditable(int row, int col) {
return true;
}
@Override
public void setValueAt(Object val, int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
dlo.get(rowIndex).setLabel(val.toString());
break;
case 1:
dlo.get(rowIndex).setLoOP((Double) val);
break;
183
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
184
case 2:
dlo.get(rowIndex).setRanking((Integer) val);
}
fireTableCellUpdated(rowIndex, columnIndex);
}
}
9.
Implementasi Kelas HalamanAwal.form
Halaman awal merupakan halaman pertama yang akan tampil ketika sistem
dijalankan. Pada halaman ini terdapat fungsi yang menghubungkan ke
halaman utama.
package View;
public class HalamanAwal extends javax.swing.JFrame {
/** Creates new form HalamanAwal */
public HalamanAwal() {
initComponents();
setTitle("Halaman Awal Sistem Pendeteksi Outlier Algoritma
LoOP");
setLocationRelativeTo(this);
}
private void initComponents() {
jDesktopPane1 = new javax.swing.JDesktopPane();
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
btnMasuk = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
185
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CL
OSE);
getContentPane().setLayout(new
org.netbeans.lib.awtextra.AbsoluteLayout());
getContentPane().add(jDesktopPane1,
new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));
jPanel1.setBackground(new java.awt.Color(247, 221, 221));
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18));
jLabel1.setText("SISTEM PENDETEKSI OUTLIER");
jLabel2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/image/logo.png")));
//
NOI18N
btnMasuk.setBackground(new java.awt.Color(255, 102, 255));
btnMasuk.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
btnMasuk.setText("MASUK");
btnMasuk.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnMasukActionPerformed(evt);
}
});
jLabel3.setFont(new java.awt.Font("Tahoma", 1, 12));
jLabel3.setText("Erlita Octaviani");
jLabel4.setFont(new java.awt.Font("Tahoma", 1, 12));
jLabel4.setText("105314019");
jLabel5.setText("Universitas Sanata Dharma Yogyakarta");
jLabel6.setText("Copyright © 2014");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
javax.swing.GroupLayout
jPanel1Layout
=
186
new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(199, 199, 199)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.
Alignment.TRAILING, false)
.addComponent(jLabel2,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnMasuk,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(9, 9, 9))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING,
jPanel1Layout.createSequentialGroup()
.addGap(10, 10, 10)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
187
.addComponent(jLabel4))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(160, 160, 160)
.addComponent(jLabel5))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(212, 212, 212)
.addComponent(jLabel6))
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(111, 111, 111)
.addComponent(jLabel1)))
.addContainerGap(122, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(33, 33, 33)
.addComponent(jLabel1)
.addGap(28, 28, 28)
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(btnMasuk,
javax.swing.GroupLayout.PREFERRED_SIZE,
34,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(33, 33, 33)
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addComponent(jLabel4)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
188
.addGap(25, 25, 25)
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addComponent(jLabel6)
.addContainerGap(30, Short.MAX_VALUE))
);
getContentPane().add(jPanel1,
new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 510, 400));
pack();
}// </editor-fold>
private void btnMasukActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanAwal().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnMasuk;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
189
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
10. Implementasi kelas HalamanBantuan.form
Halaman ini berisi tentang petunjuk penggunaan sistem untuk melakukan
deteksi outlier menggunakan algoritma Local Outlier Probability. Halaman
ini akan tampil setelah pengguna menekan tombol ‘Bantuan’ pada halaman
utama sistem.
package View;
import javax.swing.JOptionPane;
public class HalamanBantuan extends javax.swing.JFrame {
public HalamanBantuan() {
initComponents();
setTitle("Halaman Bantuan");
setLocationRelativeTo(this);
this.getMaximumSize();
}
private void initComponents() {
jDesktopPane1 = new javax.swing.JDesktopPane();
jPanel1 = new javax.swing.JPanel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
home = new javax.swing.JLabel();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
jPanel3 = new javax.swing.JPanel();
jButton2 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
btn_tentang = new javax.swing.JButton();
btn_bantuan = new javax.swing.JButton();
btn_keluar = new javax.swing.JButton();
jLabel3 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jPanel4 = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel17 = new javax.swing.JLabel();
jLabel20 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel18 = new javax.swing.JLabel();
jLabel19 = new javax.swing.JLabel();
jLabel21 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
jLabel16 = new javax.swing.JLabel();
jLabel22 = new javax.swing.JLabel();
jLabel23 = new javax.swing.JLabel();
jLabel24 = new javax.swing.JLabel();
jLabel25 = new javax.swing.JLabel();
jLabel26 = new javax.swing.JLabel();
jLabel27 = new javax.swing.JLabel();
jLabel29 = new javax.swing.JLabel();
jLabel30 = new javax.swing.JLabel();
190
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
191
private void btn_tentangActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanTentang tentang = new HalamanTentang();
tentang.setVisible(true);
this.dispose();
}
private void btn_bantuanActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanBantuan bnt = new HalamanBantuan();
bnt.setVisible(true);
this.dispose();
}
private void homeMouseClicked(java.awt.event.MouseEvent evt) {
HalamanUtama utm = new HalamanUtama();
utm.setVisible(true);
this.dispose();
}
private void btn_keluarActionPerformed(java.awt.event.ActionEvent
evt) {
int ask = JOptionPane.showConfirmDialog(null, "Apakah Anda
yakin ingin "
+ "Keluar?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (ask == JOptionPane.YES_OPTION) {
this.dispose();
} else if (ask == JOptionPane.NO_OPTION) {
return;
}
}
private javax.swing.JButton btn_bantuan;
private javax.swing.JButton btn_keluar;
private javax.swing.JButton btn_tentang;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private javax.swing.JLabel home;
private javax.swing.JButton jButton2;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel20;
private javax.swing.JLabel jLabel21;
private javax.swing.JLabel jLabel22;
private javax.swing.JLabel jLabel23;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel25;
private javax.swing.JLabel jLabel26;
private javax.swing.JLabel jLabel27;
private javax.swing.JLabel jLabel29;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel30;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
192
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
193
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
// End of variables declaration
}
11. Implementasi Kelas HalamanPilihDB.form
Halaman pilih database digunakan untuk menyambungkan sistem dengan
koneksi database.
package View;
import Model.koneksiDB;
import java.awt.Color;
import javax.swing.JOptionPane;
public class HalamanPilihDatabase extends javax.swing.JFrame {
/** Creates new form PilihDatabase */
public HalamanPilihDatabase() {
initComponents();
setTitle("Halaman Pilih Database");
setResizable(false);
setLocationRelativeTo(this);
Combo_pilihkoneksi.setSelectedIndex(-1);
}
public void pilihDatabase() {
if (Combo_pilihkoneksi.getSelectedIndex() == 0) {
if
(TF_username.getText().isEmpty()
TF_password.getText().isEmpty()
|| TF_URL.getText().isEmpty()) {
if (TF_username.getText().isEmpty()) {
||
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
194
TF_username.setBackground(Color.red);
}
if (TF_password.getText().isEmpty()) {
TF_password.setBackground(Color.red);
}
if (TF_URL.getText().isEmpty()) {
TF_URL.setBackground(Color.red);
}
if (TF_dbname.getText().isEmpty()) {
TF_dbname.setBackground(Color.red);
}
JOptionPane.showMessageDialog(null, "Username, Password,
URL tidak boleh kosong!");
} else {
String username = TF_username.getText();
String password = TF_password.getText();
String url = TF_URL.getText();
String database = TF_dbname.getText();
koneksiDB conn = new koneksiDB();
boolean kon = conn.isConnectedSQL(url + database, username,
password);
if (kon == true) {
JOptionPane.showMessageDialog(null,
"Koneksi
ke
Database MySQL Berhasil");
HalamanPilihTabel pt = new HalamanPilihTabel(conn,
Combo_pilihkoneksi.getSelectedItem().toString());
pt.setVisible(true);
this.dispose();
} else {
JOptionPane.showMessageDialog(null,
Password, URL yang anda masukkan salah");
"Username,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
195
TF_username.setText("");
TF_password.setText("");
TF_dbname.setText("");
TF_URL.setText("");
}
}
} else if (Combo_pilihkoneksi.getSelectedIndex() == 1) {
if
(TF_username.getText().isEmpty()
||
TF_password.getText().isEmpty()
||
TF_dbname.getText().isEmpty()
||
TF_URL.getText().isEmpty()) {
if (TF_username.getText().isEmpty()) {
TF_username.setBackground(Color.red);
}
if (TF_password.getText().isEmpty()) {
TF_password.setBackground(Color.red);
}
if (TF_URL.getText().isEmpty()) {
TF_URL.setBackground(Color.red);
}
if (TF_dbname.getText().isEmpty()) {
TF_dbname.setBackground(Color.red);
}
JOptionPane.showMessageDialog(null, "Username, Password,
URL tidak boleh kosong!");
} else {
String username = TF_username.getText();
String password = TF_password.getText();
String url = TF_URL.getText();
String database = TF_dbname.getText();
koneksiDB conn = new koneksiDB();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
boolean
kon
=
conn.isConnectedOracle(url,
196
username,
password);
if (kon == true) {
JOptionPane.showMessageDialog(null,
"Koneksi
ke
Database Oracle Berhasil");
HalamanPilihTabel pt = new HalamanPilihTabel(conn,
Combo_pilihkoneksi.getSelectedItem().toString());
pt.setVisible(true);
this.dispose();
} else {
JOptionPane.showMessageDialog(null,
Password, URL yang anda masukkan salah");
TF_username.setText("");
TF_password.setText("");
TF_dbname.setText("");
TF_URL.setText("");
}
}
}
}
jLabel1 = new javax.swing.JLabel();
Combo_pilihkoneksi = new javax.swing.JComboBox();
TF_username = new javax.swing.JTextField();
TF_URL = new javax.swing.JTextField();
TF_dbname = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
TF_password = new javax.swing.JPasswordField();
btn_batal = new javax.swing.JButton();
"Username,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
197
btn_OK = new javax.swing.JButton();
private void btn_OKActionPerformed(java.awt.event.ActionEvent evt)
{
pilihDatabase();
}
private
void
btn_batalActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
private
void
Combo_pilihkoneksiActionPerformed(java.awt.event.ActionEvent evt) {
if (Combo_pilihkoneksi.getSelectedIndex() == 0){
TF_dbname.setText(null);
TF_dbname.enable();
TF_URL.setText("jdbc:mysql://localhost:3306/");
} else if (Combo_pilihkoneksi.getSelectedIndex() == 1){
TF_dbname.setText(null);
TF_dbname.enable();
TF_URL.setText("jdbc:oracle:thin:@localhost:1521:XE");
} else {
TF_dbname.setText(null);
}
}
}
// Variables declaration - do not modify
private javax.swing.JComboBox Combo_pilihkoneksi;
private javax.swing.JTextField TF_URL;
private javax.swing.JTextField TF_dbname;
private javax.swing.JPasswordField TF_password;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
198
private javax.swing.JTextField TF_username;
private javax.swing.JButton btn_OK;
private javax.swing.JButton btn_batal;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
// End of variables declaration
}
12. Implementasi Kelas HalamanPilihFile.form
Pada halaman ini memungkinkan pengguna untuk menginput data .xls atau
.csv. halaman ini berupa File Chooser.
package View;
public class HalamanPilihFile extends javax.swing.JFrame {
/** Creates new form PilihFile */
public HalamanPilihFile() {
initComponents();
setTitle("Halaman Pilih File");
setLocationRelativeTo(this);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanPilihFile().setVisible(true);
}
});
}
// Variables declaration - do not modify
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
199
private javax.swing.JFileChooser jFileChooser1;
// End of variables declaration
}
13. Implementasi Kelas HalamanPilihTabel.form
Halaman ini merupakan halaman yang muncul jika pengguna berhasil login
database. Maka sistem akan menampilkan tabel yang ada dalam basis data
yang dipilih.
package View;
import Controller.DBControl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import Model.koneksiDB;
public class HalamanPilihTabel extends javax.swing.JFrame {
koneksiDB kd;
public HalamanPilihTabel(koneksiDB kd, String db) {
this.kd = kd;
initComponents();
setLocationRelativeTo(this);
comboPilih.setSelectedIndex(-1);
try {
DBControl dc = new DBControl();
ResultSet rset;
if (db.equals("Oracle")) {
rset = dc.displayTableOracle(kd.getConn());
while (rset.next()) {
comboPilih.addItem(rset.getString(1));
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
200
}
} else if (db.equals("MySql")) {
rset = dc.displayTablaMySql(kd.getConn());
while (rset.next()) {
comboPilih.addItem(rset.getString(1));
}
}
} catch (SQLException ex) {
Logger.getLogger(HalamanPilihTabel.class.getName()).log(Level.SEVER
E, null, ex);
}
}
public void tampilDaftarTabel(koneksiDB koneksi, String database) {
this.kd = kd;
try{
DBControl dbc = new DBControl();
ResultSet rset;
if (database.equals("Oracle")) {
rset = dbc.displayTableOracle(koneksi.getConn());
while (rset.next()) {
comboPilih.addItem(rset.getString(1));
}
} else if (database.equals("MySql")) {
rset = dbc.displayTablaMySql(koneksi.getConn());
while (rset.next()) {
comboPilih.addItem(rset.getString(1));
}
}
} catch (SQLException ex) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
201
Logger.getLogger(HalamanPilihTabel.class.getName()).log(Level.SEVER
E, null, ex);
}
}
private void btn_OKActionPerformed(java.awt.event.ActionEvent evt)
{
HalamanUtama
coba
=
new
HalamanUtama(kd,
comboPilih.getSelectedItem().toString());
coba.setVisible(true);
this.dispose();
}
private void btn_batalActionPerformed(java.awt.event.ActionEvent evt)
{
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
private javax.swing.JButton btn_OK;
private javax.swing.JButton btn_batal;
private javax.swing.JComboBox comboPilih;
private javax.swing.JLabel jLabel1;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
202
14. Implementasi HalamanTentang.form
Halaman ini menampilkan informasi pengembangan alat bantu deteksi outlier
menggunakan algoritma Local Outlier Probability.
package View;
import javax.swing.JOptionPane;
public class HalamanTentang extends javax.swing.JFrame {
public HalamanTentang() {
initComponents();
setTitle("Halaman Tentang");
setLocationRelativeTo(this);
}
private void homeMouseClicked(java.awt.event.MouseEvent evt) {
HalamanUtama utama = new HalamanUtama();
utama.setVisible(true);
this.dispose();
}
private void btn_bantuanActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanBantuan utama = new HalamanBantuan();
utama.setVisible(true);
this.dispose();
}
private void btn_tentangActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanTentang utama = new HalamanTentang();
utama.setVisible(true);
this.dispose();
}
private void btn_keluarActionPerformed(java.awt.event.ActionEvent
evt) {
int ask = JOptionPane.showConfirmDialog(null, "Apakah Anda
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
203
yakin ingin "
+ "Keluar?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (ask == JOptionPane.YES_OPTION) {
this.dispose();
} else if (ask == JOptionPane.NO_OPTION) {
return;
}
}
// Variables declaration - do not modify
private javax.swing.JButton btn_bantuan;
private javax.swing.JButton btn_keluar;
private javax.swing.JButton btn_tentang;
private javax.swing.JLabel home;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
204
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
// End of variables declaration
}
15. Implementasi Kelas HalamanUtama.form
Kelas ini menyimpan tentang fungsi-fungsi utama dari dalam sistem yaitu
proses pendeteksian. Berikut ini listing program dalam masing-masing kerja
yaitu:
package View;
import Controller.Graph;
import Controller.DBControl;
import Model.seleksiAtribut;
import Model.*;
import java.awt.Component;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import java.io.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import jxl.*;
public class HalamanUtama extends javax.swing.JFrame {
Graph graph;
CheckBoxTableModel tabel_checkbox = new CheckBoxTableModel();
seleksiAtribut seleksi_atribut;
/** Creates new form HalamanUtama */
public HalamanUtama() {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
205
initComponents();
setTitle("Halaman Utama");
setLocationRelativeTo(this);
jDesktopPane1.getMaximumSize();
jTabbedPane1.setEnabledAt(1, false);
TF_pathData.setEditable(false);
TF_jumlahData.setEditable(false);
TF_jumlahAtribut.setEditable(false);
tabel_checkbox.removeRow();
}
public HalamanUtama(koneksiDB kd, String table) {
initComponents();
setLocationRelativeTo(this);
jDesktopPane1.getMaximumSize();
setExtendedState(MAXIMIZED_BOTH);
jTabbedPane1.setEnabledAt(1, false);
pilihDb(kd, table);
}
public void pilihFile() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setVisible(true);
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")) {
File fileExcel = fileChooser.getSelectedFile();
Vector columnName = new Vector();
Vector data = new Vector();
try {
Workbook workbook = Workbook.getWorkbook(fileExcel);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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();
//JOptionPane.showMessageDialog(null, "File yang Anda
pilih tidak sesuai format. Pilih file berformat .xls");
}
DefaultTableModel model = new DefaultTableModel(data,
columnName);
tabel_DataPreprocess.setModel(model);
tabel_DataPreprocess.setAutoCreateRowSorter(true);
TF_jumlahData.setText("" + data.size());
TF_jumlahAtribut.setText("" + columnName.size());
TF_pathData.setText(fileExcel.getPath());
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new seleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
206
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
seleksi_atribut.setPilih(false);
tabel_checkbox.add(i, seleksi_atribut);
}
tabel_SeleksiAtribut.setModel(tabel_checkbox);
TableModel tableModel = tabel_DataPreprocess.getModel();
Tabel_deteksiOutlier.setModel(tableModel);
Tabel_deteksiOutlier.setAutoCreateRowSorter(true);
int baris = tableModel.getRowCount();
TF_jmlhBarisDeteksi.setText(" " + baris);
int barisSeleksi = tableModel.getRowCount();
TF_jumlahData.setText(" " +barisSeleksi);
} else if (potong_nama_file[1].equals("csv")) {
tabel_checkbox.removeRow();
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());
}
207
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
208
data.addElement(row);
}
br.close();
DefaultTableModel model = new DefaultTableModel(data,
columnNames);
tabel_DataPreprocess.setModel(model);
tabel_DataPreprocess.setAutoCreateRowSorter(true);
TF_pathData.setText(fileCsv.getPath());
TF_jumlahData.setText("" + data.size());
TF_jumlahAtribut.setText("" + columnNames.size());
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new seleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
seleksi_atribut.setPilih(false);
tabel_checkbox.add(i, seleksi_atribut);
}
tabel_SeleksiAtribut.setModel(tabel_checkbox);
TableModel tableModel = tabel_DataPreprocess.getModel();
Tabel_deteksiOutlier.setModel(tableModel);
Tabel_deteksiOutlier.setAutoCreateRowSorter(true);
int baris = tableModel.getRowCount();
TF_jmlhBarisDeteksi.setText(" " + baris);
int barisSeleksi = tableModel.getRowCount();
TF_jumlahData.setText(" " + barisSeleksi);
} catch (Exception e) {
}
} else {
JOptionPane.showMessageDialog(null, "File yang Anda pilih
harus berformat .xls atau .csv");
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
public void pilihDb(koneksiDB kd, String table) {
try {
DBControl dc = new DBControl();
ResultSet rset;
rset = dc.selectTable(kd.getConn(), table);
ResultSetMetaData rsmd = rset.getMetaData();
int coloumCount = rsmd.getColumnCount();
Vector headers = new Vector();
Vector data = new Vector();
headers.clear();
for (int i = 1; i <= coloumCount; i++) {
headers.add(rsmd.getColumnName(i));
}
data.clear();
while (rset.next()) {
Vector d = new Vector();
for (int i = 1; i <= coloumCount; i++) {
d.add(rset.getString(i));
}
d.add("\n");
data.add(d);
}
DefaultTableModel model = new DefaultTableModel(data,
headers);
tabel_DataPreprocess.setModel(model);
tabel_DataPreprocess.setAutoCreateRowSorter(true);
tabel_SeleksiAtribut.setModel(model);
tabel_SeleksiAtribut.setAutoCreateRowSorter(true);
tabel_checkbox = new CheckBoxTableModel();
209
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
for (int i = 0; i < model.getColumnCount(); i++) {
seleksiAtribut seleksi_atribut = new seleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
seleksi_atribut.setPilih(false);
tabel_checkbox.add(i, seleksi_atribut);
}
tabel_SeleksiAtribut.setModel(tabel_checkbox);
TableModel tabelModel = tabel_DataPreprocess.getModel();
Tabel_deteksiOutlier.setModel(tabelModel);
Tabel_deteksiOutlier.setAutoCreateRowSorter(true);
} catch (SQLException ex) {
}
TF_jumlahData.setText(" " +
tabel_DataPreprocess.getRowCount());
TF_jumlahAtribut.setText(" " +
tabel_DataPreprocess.getColumnCount());
}
public void submitData() {
TableModel tableModel = tabel_DataPreprocess.getModel();
if (tableModel.getColumnCount() == 0) {
JOptionPane.showMessageDialog(null, "Anda belum
memasukkan data !");
TF_pathData.setText(null);
} else {
Tabel_deteksiOutlier.setModel(tableModel);
Tabel_deteksiOutlier.setAutoCreateRowSorter(true);
int baris = tableModel.getRowCount();
TF_jmlhBarisDeteksi.setText(" " + baris);
jTabbedPane1.setSelectedComponent(panel_deteksi);
jTabbedPane1.setEnabledAt(1, true);
jTabbedPane1.setSelectedIndex(1);
210
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
211
}
}
public void hapusAtribut() {
for (int i = 0; i < tabel_SeleksiAtribut.getRowCount(); i++) {
//System.out.println(jTable1.getValueAt(i, 1));
if (tabel_SeleksiAtribut.getValueAt(i, 1).equals(true)) {
for (int j = 0; j < tabel_DataPreprocess.getColumnCount(); j++)
{
if (tabel_SeleksiAtribut.getValueAt(i,
0).equals(tabel_DataPreprocess.getColumnName(j))) {
TableColumn tcol =
tabel_DataPreprocess.getColumnModel().getColumn(j);
TableColumn tcol2 =
Tabel_deteksiOutlier.getColumnModel().getColumn(j);
tabel_DataPreprocess.removeColumn(tcol);
Tabel_deteksiOutlier.removeColumn(tcol2);
}
}
}
}
tabel_checkbox.removeRow();
}
private void btn_tentangActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanTentang tentang = new HalamanTentang();
tentang.setVisible(true);
this.dispose();
}
private void btn_bantuanActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanBantuan bantu = new HalamanBantuan();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
212
bantu.setVisible(true);
this.dispose();
}
private void btn_keluarActionPerformed(java.awt.event.ActionEvent
evt) {
int ask = JOptionPane.showConfirmDialog(null, "Apakah Anda
yakin ingin "
+ "Keluar?", "Konfirmasi", JOptionPane.YES_NO_OPTION);
if (ask == JOptionPane.YES_OPTION) {
this.dispose();
} else if (ask == JOptionPane.NO_OPTION) {
return;
}
}
private void btn_pilihFileActionPerformed(java.awt.event.ActionEvent
evt) {
pilihFile();
}
private void btn_pilihDBActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanPilihDatabase db = new HalamanPilihDatabase();
db.setVisible(true);
this.dispose();
}
private void btn_tandaiActionPerformed(java.awt.event.ActionEvent
evt) {
for (int i = 0; i < tabel_SeleksiAtribut.getRowCount(); i++) {
tabel_SeleksiAtribut.setValueAt(true, i, 1);
}
}
private void
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
213
btn_batalSeleksiActionPerformed(java.awt.event.ActionEvent evt) {
for (int i = 0; i < tabel_SeleksiAtribut.getRowCount(); i++) {
tabel_SeleksiAtribut.setValueAt(false, i, 1);
}
}
private void btn_hapusActionPerformed(java.awt.event.ActionEvent
evt) {
hapusAtribut();
TF_jumlahAtribut.setText("" +
tabel_DataPreprocess.getColumnCount());
}
private void btn_submitActionPerformed(java.awt.event.ActionEvent
evt) {
submitData();
}
private void prosesDeteksi(){
if (TF_k.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Nilai k tidak boleh
kosong !");
} else if (TF_lamda.getText().equals("")){
JOptionPane.showMessageDialog(null, "Nilai Lamda tidak boleh
kosong !");
} else if ((TF_k.getText().matches("[0-9.]*")) &&
(TF_lamda.getText().matches("[0-9.]*"))){
int k, lamda;
k = Integer.parseInt(TF_k.getText());
lamda = Integer.parseInt(TF_lamda.getText());
long t1 = System.nanoTime();
if (k > 0 && lamda > 0) {
graph = new Graph(Tabel_deteksiOutlier.getRowCount());
graph.inputData(Tabel_deteksiOutlier);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
214
graph.setk(k);
graph.setLamda(lamda);
System.out.println("JARAK PER OBYEK
MENGGUNAKAN EUCLIDEAN DISTANCE");
graph.tampilJarak();
System.out.println("DAFTAR TETANGGA TERDEKAT
BERDASAR K");
graph.tampilNeighbor();
System.out.println("STANDARD DISTANCE TIAP
OBYEK");
graph.caristdev();
System.out.println("PROBABILISTIC SET DISTANCE TIAP
OBYEK");
graph.caripdist();
System.out.println("LOF - NPLOF - LOOP");
graph.cariJumlahPdist();
long t2 = System.nanoTime();
System.out.println("");
TabelHasilOutlier.setModel(graph.setDataLoop(Tabel_deteksiOutlier.get
ColumnName(0)));
TabelHasilOutlier.setAutoCreateRowSorter(true);
DefaultRowSorter sorter = ((DefaultRowSorter)
TabelHasilOutlier.getRowSorter());
ArrayList list = new ArrayList();
list.add(new RowSorter.SortKey(1,
SortOrder.DESCENDING));
sorter.setSortKeys(list);
sorter.sort();
for (int i= 0; i < TabelHasilOutlier.getRowCount(); i++) {
TabelHasilOutlier.setValueAt(i+1, i, 2);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
215
}
jmlOutlier.setText("" +TabelHasilOutlier.getRowCount());
lamaDeteksi.setText("" +((t2-t1)*java.lang.Math.pow(10, -9))
);
} else {
JOptionPane.showMessageDialog(null, "Nilai k dan lamda
harus > 0");
}
}
}
private void btn_prosesActionPerformed(java.awt.event.ActionEvent
evt) {
prosesDeteksi();
}
private void batasOutlier() {
if(TF_batasOutlier.getText().equals("")){
JOptionPane.showMessageDialog(null, "Nilai batas outlier tidak
boleh kosong");
} else if (TF_batasOutlier.getText().matches("[0-9.]*")){
try{
tabelHasilOutlier.setModel(graph.setDataLoop2(Tabel_deteksiOutlier.get
ColumnName(0),
Double.parseDouble(TF_batasOutlier.getText())));
TabelHasilOutlier.setAutoCreateRowSorter(true);
DefaultRowSorter sorter = ((DefaultRowSorter)
TabelHasilOutlier.getRowSorter());
ArrayList list = new ArrayList();
list.add(new RowSorter.SortKey(1,
SortOrder.DESCENDING));
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
216
sorter.setSortKeys(list);
sorter.sort();
for (int i = 0; i < TabelHasilOutlier.getRowCount(); i++) {
TabelHasilOutlier.setValueAt(i + 1, i, 2);
}
} catch (Exception ie){
System.out.println(ie.getMessage());
JOptionPane.showMessageDialog(null, ie);
}
} else {
JOptionPane.showMessageDialog(null, "Nilai batas outlier tidak
boleh mengandung karakter huruf! ");
}
jmlOutlier.setText("" +TabelHasilOutlier.getRowCount());
long t1 = System.nanoTime();
long t2 = System.nanoTime();
lamaDeteksi.setText("" +(t2-t1)*java.lang.Math.pow(10, -9));
}
private void
Submit_batasActionPerformed(java.awt.event.ActionEvent evt) {
batasOutlier();
}
public void simpanLoOP() {
JFileChooser fileChooser = new JFileChooser(new File("H:/"));
fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft
Excel (*.xls)", "xls"));
fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft
Word (*.doc)", "doc"));
FileOutputStream file_output_stream;
int returnValue = fileChooser.showSaveDialog(this);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
217
if (returnValue == JFileChooser.APPROVE_OPTION){
String filename = fileChooser.getSelectedFile().getPath();
String ext = fileChooser.getFileFilter().getDescription();
if(ext.equals("Microsoft Excel (*.xls)")){
File ff;
ff= new File(filename + ".xls");
try{
file_output_stream = new FileOutputStream(ff);
} catch (FileNotFoundException fe){
fe.printStackTrace();
return;
}
try {
TableModel model = TabelHasilOutlier.getModel();
FileWriter excel = new FileWriter(ff);
for (int i= 0; i < TabelHasilOutlier.getColumnCount(); i++) {
excel.write(TabelHasilOutlier.getColumnName(i) + "\t");
}
excel.write("\n");
for (int i= 0; i < TabelHasilOutlier.getRowCount(); i++) {
for (int j= 0; j < TabelHasilOutlier.getColumnCount();
j++) {
excel.write(TabelHasilOutlier.getValueAt(i,
j).toString() + "\t");
}
excel.write("\n");
}
excel.close();
} catch (IOException ie){
JOptionPane.showMessageDialog(this, "Penyimpanan asil
Deteksi Outlier Gagal !");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
218
}
} else if (ext.equals("Microsoft Word (*.doc)")){
File ff;
ff = new File (filename + ".doc");
try{
file_output_stream = new FileOutputStream(ff);
} catch (FileNotFoundException fe){
fe.printStackTrace();
return;
}
try {
BufferedWriter bfw = new BufferedWriter(new
FileWriter(ff));
for (int i = 0; i < TabelHasilOutlier.getColumnCount(); i++)
{
bfw.write(TabelHasilOutlier.getColumnName(i));
bfw.write("\t");
}
for (int i = 0; i < TabelHasilOutlier.getRowCount(); i++) {
bfw.newLine();
for (int j = 0; j < TabelHasilOutlier.getColumnCount();
j++) {
bfw.write((TabelHasilOutlier.getValueAt(i,
j)).toString());
bfw.write("\t");
}
}
bfw.close();
} catch (IOException ie){
JOptionPane.showMessageDialog(this, "Penyimpanan asil
Deteksi Outlier Gagal !");
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
219
}
} else {
File ff;
ff = new File(filename + ".txt");
try {
file_output_stream = new FileOutputStream(ff);
} catch (FileNotFoundException fe) {
fe.printStackTrace();
return;
}
try {
BufferedWriter bfw = new BufferedWriter(new
FileWriter(ff));
for (int i = 0; i < TabelHasilOutlier.getColumnCount(); i++)
{
bfw.write(TabelHasilOutlier.getColumnName(i));
bfw.write("\t");
}
for (int i = 0; i < TabelHasilOutlier.getRowCount(); i++) {
bfw.newLine();
for (int j = 0; j < TabelHasilOutlier.getColumnCount();
j++) {
bfw.write((TabelHasilOutlier.getValueAt(i,
j)).toString());
bfw.write("\t");
}
}
bfw.close();
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Penyimpanan asil
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
220
Deteksi Outlier Gagal !");
}
}
//buat file output stream
JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier
Telah Berhasil Disimpan di " + filename);
}
}
private void btn_simpanActionPerformed(java.awt.event.ActionEvent
evt) {
simpanLoOP();
}
private void btn_batal2ActionPerformed(java.awt.event.ActionEvent
evt) {
HalamanUtama hlm = new HalamanUtama();
hlm.setVisible(true);
this.dispose();
}
private void btn_hpsActionPerformed(java.awt.event.ActionEvent evt)
{
DefaultTableModel dm = new DefaultTableModel();
TabelHasilOutlier.setModel(dm);
TF_batasOutlier.setText("");
jmlOutlier.setText("");
lamaDeteksi.setText("");
}
private void TF_kKeyReleased(java.awt.event.KeyEvent evt) {
if (!TF_k.getText().matches("[0-9.]*")) {
JOptionPane.showMessageDialog(null, "Nilai k tidak boleh berisi
huruf atau angka negatif !");
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
221
}
private void TF_lamdaKeyReleased(java.awt.event.KeyEvent evt) {
if (!TF_lamda.getText().matches("[0-9.]*")) {
JOptionPane.showMessageDialog(null, "Nilai Lamda tidak boleh
berisi huruf atau angka negatif !");
}
}
private void TF_batasOutlierKeyReleased(java.awt.event.KeyEvent
evt) {
if (!TF_batasOutlier.getText().matches("[0-9.]*")) {
JOptionPane.showMessageDialog(null, "Nilai batas outlier tidak
boleh berisi huruf atau angka negatif !");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new HalamanUtama().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane JScrollPane;
private javax.swing.JButton Submit_batas;
private javax.swing.JTextField TF_batasOutlier;
private javax.swing.JTextField TF_jmlhBarisDeteksi;
private javax.swing.JTextField TF_jumlahAtribut;
private javax.swing.JTextField TF_jumlahData;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private javax.swing.JTextField TF_lamda;
private javax.swing.JTextField TF_k;
private javax.swing.JTextField TF_pathData;
private javax.swing.JTable TabelHasilOutlier;
private javax.swing.JTable Tabel_deteksiOutlier;
private javax.swing.JButton btn_bantuan;
private javax.swing.JButton btn_batal2;
private javax.swing.JButton btn_batalSeleksi;
private javax.swing.JButton btn_hapus;
private javax.swing.JButton btn_hps;
private javax.swing.JButton btn_keluar;
private javax.swing.JButton btn_pilihDB;
private javax.swing.JButton btn_pilihFile;
private javax.swing.JButton btn_proses;
private javax.swing.JButton btn_simpan;
private javax.swing.JButton btn_submit;
private javax.swing.JButton btn_tandai;
private javax.swing.JButton btn_tentang;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel18;
private javax.swing.JLabel jLabel19;
private javax.swing.JLabel jLabel2;
222
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel6;
private javax.swing.JPanel jPanel7;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JScrollPane jScrollPane4;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTextField jmlOutlier;
private javax.swing.JTextField lamaDeteksi;
private javax.swing.JPanel panel_deteksi;
private javax.swing.JPanel panel_preprocess;
private javax.swing.JTable tabel_DataPreprocess;
private javax.swing.JTable tabel_SeleksiAtribut;
// End of variables declaration
}
223
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
224
LAMPIRAN 11
Dataset
1.
Data set Mahasiswa 2007 – 2008 Jalur Test
No
ips1
ips2
ips3 ips4 nilai11 nilai12 nilai13 nilai14 nilai15
21
3,72
3,48
3,36 3,65 3,20
2,40
2,40
2,80
2,00
22
2,89
3,21
3,33 3,36 2,40
2,00
2,00
2,80
2,00
23
2,56
2,77
2,52 3,13 2,40
1,60
2,00
2,80
2,00
24
3,28
2,75
2,90 3,00 2,80
2,40
2,80
2,40
2,40
25
1,89
2,20
2,21 1,95 2,40
2,00
2,40
2,40
2,80
26
1,44
2,42
2,53 1,96 4,00
2,00
3,60
2,40
2,80
27
4,00
3,52
3,43 3,70 2,40
2,40
1,60
1,60
2,80
28
1,72
1,65
1,53 1,68 1,20
0,80
3,20
1,20
0,40
29
2,89
3,18
3,04 2,95 2,00
2,00
3,20
2,00
2,80
30
2,94
3,27
2,96 2,81 2,80
2,00
2,00
2,00
1,60
31
2,94
2,59
1,55 2,35 2,40
1,60
2,40
1,20
2,80
32
2,44
2,63
2,00 2,67 2,00
2,00
2,40
2,00
2,00
33
1,72
2,65
2,43 2,24 2,80
2,40
3,20
3,20
0,80
34
2,80
2,91
2,80 3,33 2,40
2,00
2,00
1,60
2,00
35
2,90
2,50
3,10 2,75 1,60
2,80
3,20
2,80
2,00
36
1,40
1,64
1,82 1,07 2,40
1,60
2,80
3,60
2,80
37
2,65
2,40
2,17 2,75 1,60
1,60
2,80
1,20
2,40
38
2,65
3,23
2,79 3,30 2,40
1,60
2,40
1,60
2,00
39
3,35
2,91
2,45 0,83 2,40
2,40
2,00
3,20
2,40
40
2,70
2,86
2,32 2,70 1,60
2,40
2,80
2,80
1,20
41
2,55
2,68
3,15 2,64 2,40
2,00
1,60
1,60
1,60
42
3,10
3,08
2,95 3,05 2,40
2,80
3,60
1,60
2,80
43
2,45
2,40
2,44 2,26 2,40
2,80
3,60
2,00
2,80
44
2,55
2,41
2,47 2,68 2,80
1,60
2,80
1,60
2,40
Urut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
225
45
2,75
2,59
2,79 3,32 2,80
2,00
2,40
2,80
2,80
46
2,25
1,55
1,31 0,31 3,60
2,40
2,40
2,40
2,40
47
2,70
2,36
2,68 0,05 2,80
2,40
2,40
2,00
2,00
48
3,15
3,00
3,24 2,33 2,00
3,20
2,00
2,80
2,00
49
2,85
2,68
3,37 3,09 2,40
1,60
2,00
2,80
2,00
50
2,35
2,40
0,59 2,23 2,40
2,40
2,80
1,20
3,60
51
2,05
1,50
2,40 2,00 2,00
2,00
2,00
1,60
2,80
52
2,85
2,64
2,84 2,75 2,40
2,00
2,00
2,40
2,00
53
2,35
2,20
2,94 2,09 2,40
0,80
2,00
2,00
3,20
54
3,15
3,20
2,72 3,05 2,80
3,20
2,00
2,40
2,00
55
3,10
3,32
3,72 3,42 2,00
2,00
3,20
1,60
2,80
56
2,70
3,44
3,39 2,33 2,40
2,00
3,60
2,80
2,00
57
2,05
1,55
2,33 2,70 2,00
2,00
2,40
2,40
2,00
58
2,30
2,61
2,50 2,50 1,20
2,00
1,60
0,80
2,00
59
2,80
2,88
2,39 2,44 2,40
2,00
3,20
1,60
2,80
60
2,15
2,26
2,33 2,06 2,40
1,60
3,20
1,20
2,00
61
2,90
2,28
2,39 1,93 2,00
2,00
3,60
1,60
3,20
62
3,25
3,16
3,11 2,56 2,40
2,40
3,20
2,80
1,60
63
3,45
3,60
3,39 3,50 2,80
2,40
2,80
1,20
2,80
64
2,30
3,13
3,00 3,05 1,60
2,40
3,60
2,40
1,60
65
2,30
2,39
2,62 2,94 2,80
0,80
2,80
2,00
2,80
66
2,85
3,28
3,50 3,63 2,80
2,80
2,40
2,40
2,00
67
2,20
2,30
1,28 0,00 2,80
2,00
1,20
1,60
1,60
68
1,55
1,00
1,72 0,00 2,80
1,60
2,00
2,40
1,20
69
1,65
1,67
2,07 1,85 2,40
2,00
1,20
2,00
1,60
70
3,20
3,04
2,94 3,14 2,80
2,00
3,60
2,00
3,20
71
3,10
2,60
2,89 2,72 2,40
2,80
1,60
2,00
2,40
72
2,05
1,28
1,73 0,82 2,40
3,20
3,60
2,80
3,20
73
2,65
1,87
2,00 1,56 2,80
2,40
2,40
1,60
2,00
74
2,35
1,04
0,19 0,92 3,20
2,00
3,60
3,20
1,60
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
226
Tabel di bawah ini merupakan hasil deteksi outlier yang nilai LoOPnya > 0,5
Hasil deteksi semester 1
Mahasiswa LoOP
Ranking
28
0.9460720242661907 1
27
0.7293475648594188 2
58
0.707001305355218
36
0.6348454185974922 4
72
0.6208361235159756 5
33
0.6171816521773266 6
26
0.6011646825849799 7
53
0.5378592166468659 8
3
Hasil deteksi semester 2
Mahasiswa LoOP
Ranking
28
0.9541794950367649 1
26
0.7224519899880362 2
72
0.6671024245623864 3
58
0.6444155668441807 4
36
0.6400880292509055 5
33
0.624272581815079
68
0.5801833215520924 7
53
0.5606409157029926 8
74
0.5377224827379848 9
6
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Hasil deteksi semester 3
Mahasiswa LoOP
Ranking
28 0.9310163559514605
1
74 0.783939430662315
2
50 0.7298947403567992
3
72 0.6398156133550297
4
58 0.6311023991290462
5
26 0.621480880541883
6
36 0.6088774873135172
7
53 0.5898795203603411
8
33 0.5389871343970449
9
46 0.5297962730593824
10
67 0.5140145686592166
11
Hasil deteksi semester 4
2.
Mahasiswa LoOP
Ranking
28
0.975913422837893
1
58
0.695518615545071
2
53
0.668437637465007
3
67
0.662756486377504
4
26
0.6228742212863605 5
33
0.602249289206009
6
69
0.521092805589497
7
Data set Mahasiswa 2007 – 2008 Jalur Prestasi
No Urut
ips1
ips2
ips3
ips4
final
1
2,06
2,32
2,91
3,00
2,71
2
2,72
2,50
2,96
2,38
2,71
3
3,33
3,48
3,78
3,48
2,78
4
2,39
3,00
2,43
2,82
2,86
227
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5
2,11
2,71
2,43
2,45
2,95
6
3,00
2,96
2,61
3,29
2,70
7
3,72
3,56
3,43
3,67
3,15
8
3,44
3,04
2,88
3,48
2,85
9
2,17
2,70
3,09
3,63
2,88
10
3,89
3,75
3,00
3,62
3,08
11
2,89
3,68
2,88
3,76
2,92
12
3,11
3,08
2,78
3,48
2,73
13
2,00
2,00
2,29
3,00
3,08
14
3,06
2,50
2,57
2,78
2,73
15
1,67
2,24
2,52
2,16
2,72
16
3,89
3,63
3,57
3,62
2,99
17
2,61
0,32
0,69
2,85
2,72
18
2,83
2,55
3,09
3,17
2,79
19
3,72
3,74
2,87
3,52
2,77
20
3,72
3,42
3,65
3,71
2,85
75
2,40
2,65
2,57
3,24
2,95
76
0,85
2,29
2,21
2,00
2,85
77
2,65
2,75
2,11
2,74
2,74
78
2,85
3,27
2,91
2,73
2,93
79
1,85
1,71
2,40
2,06
2,98
80
2,95
2,91
3,16
3,25
2,80
81
3,35
2,48
3,00
2,14
3,00
82
2,65
2,14
2,45
2,64
2,92
83
3,35
3,09
3,42
3,25
3,11
84
2,60
3,00
2,90
3,10
2,83
85
3,50
2,92
3,27
3,04
2,85
86
3,10
2,80
3,68
3,57
3,22
87
2,25
2,05
2,29
1,83
2,80
88
2,65
2,77
2,14
0,94
2,89
228
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
3,65
3,74
3,70
3,90
2,97
90
3,25
3,35
2,67
3,25
2,86
91
3,40
3,00
2,73
2,47
2,92
92
2,60
1,73
3,00
2,10
2,98
93
2,50
2,82
3,35
3,57
2,87
94
1,90
1,35
2,46
1,20
2,77
95
2,45
3,00
3,25
3,70
2,98
96
2,20
1,90
2,17
2,30
2,77
97
2,30
3,00
3,24
3,00
2,72
98
3,55
3,32
3,19
3,15
3,22
99
2,45
2,55
2,44
3,15
2,81
100
3,05
3,04
3,26
3,58
2,86
101
2,60
2,64
2,58
3,33
2,87
102
3,15
3,20
2,89
3,37
2,98
103
3,20
3,52
3,37
3,52
3,19
104
2,80
3,00
3,14
3,05
2,94
105
2,60
2,73
3,05
3,38
3,06
106
2,05
1,95
2,63
2,35
2,83
107
3,30
3,92
3,76
3,78
3,33
108
2,70
2,32
3,00
2,78
2,85
109
2,85
1,73
2,56
2,76
3,08
110
2,40
2,75
3,05
3,32
2,89
111
3,45
3,36
2,95
2,82
3,05
112
2,60
2,55
3,00
2,96
2,87
113
2,65
2,14
2,22
3,11
2,78
114
2,75
3,00
3,21
3,53
2,75
115
2,75
3,36
3,33
3,13
2,92
116
2,40
2,20
2,06
2,22
2,73
117
2,60
1,70
2,00
2,76
2,89
118
3,45
3,24
3,48
3,57
3,06
229
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
119
2,65
2,95
2,48
3,15
2,83
120
2,85
2,82
3,14
3,42
2,81
121
2,55
2,74
2,94
2,53
2,69
122
2,30
2,43
2,28
1,47
3,05
123
3,35
3,04
3,00
3,20
2,83
124
1,45
0,44
2,47
2,65
2,90
125
3,30
3,16
3,22
3,25
2,77
126
3,20
3,40
3,72
3,10
2,81
230
Tabel di bawah ini merupakan hasil deteksi outlier yang nilai LoOPnya > 0,5
Hasil deteksi semester 1
Mahasiswa LoOP
Ranking
76
0.9991795267388751
1
109
0.7013765600083565
2
105
0.6905408597772048
3
124
0.5811944120626817
4
15
0.5464715773482339
5
Hasil deteksi semester 2
Mahasiswa LoOP
Ranking
17
0.9872587789922596
1
124
0.9620326012635192
2
86
0.8165554095739557
3
94
0.800542573626661
4
107
0.7288853469664727
5
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Hasil deteksi semester 3
Mahasiswa LoOP
Ranking
17 0.9999518638906684
1
Hasil deteksi semester 4
Mahasiswa LoOP
3.
Ranking
88 0.9892867944835745
1
94 0.8767633653435601
2
107 0.7814926345959297
3
98 0.7762175503746969
4
89 0.7725739747747566
5
6 0.5952618263100738
6
122 0.5661949629488112
7
Data set Mahasiswa 2007 – 2008
No Urut
ips1
ips2
ips3
ips4
final
1
2,06
2,32
2,91
3,00
2,71
2
2,72
2,50
2,96
2,38
2,71
3
3,33
3,48
3,78
3,48
2,78
4
2,39
3,00
2,43
2,82
2,86
5
2,11
2,71
2,43
2,45
2,95
6
3,00
2,96
2,61
3,29
2,70
7
3,72
3,56
3,43
3,67
3,15
8
3,44
3,04
2,88
3,48
2,85
9
2,17
2,70
3,09
3,63
2,88
10
3,89
3,75
3,00
3,62
3,08
11
2,89
3,68
2,88
3,76
2,92
12
3,11
3,08
2,78
3,48
2,73
13
2,00
2,00
2,29
3,00
3,08
14
3,06
2,50
2,57
2,78
2,73
231
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15
1,67
2,24
2,52
2,16
2,72
16
3,89
3,63
3,57
3,62
2,99
17
2,61
0,32
0,69
2,85
2,72
18
2,83
2,55
3,09
3,17
2,79
19
3,72
3,74
2,87
3,52
2,77
20
3,72
3,42
3,65
3,71
2,85
21
3,72
3,48
3,36
3,65
2,60
22
2,89
3,21
3,33
3,36
2,20
23
2,56
2,77
2,52
3,13
2,08
24
3,28
2,75
2,90
3,00
2,56
25
1,89
2,20
2,21
1,95
2,36
26
1,44
2,42
2,53
1,96
2,96
27
4,00
3,52
3,43
3,70
2,32
28
1,72
1,65
1,53
1,68
1,12
29
2,89
3,18
3,04
2,95
2,28
30
2,94
3,27
2,96
2,81
2,16
31
2,94
2,59
1,55
2,35
2,12
32
2,44
2,63
2,00
2,67
2,04
33
1,72
2,65
2,43
2,24
2,36
34
2,80
2,91
2,80
3,33
2,08
35
2,90
2,50
3,10
2,75
2,32
36
1,40
1,64
1,82
1,07
2,40
37
2,65
2,40
2,17
2,75
1,84
38
2,65
3,23
2,79
3,30
2,00
39
3,35
2,91
2,45
0,83
2,44
40
2,70
2,86
2,32
2,70
2,00
41
2,55
2,68
3,15
2,64
1,96
42
3,10
3,08
2,95
3,05
2,64
43
2,45
2,40
2,44
2,26
2,68
44
2,55
2,41
2,47
2,68
2,24
232
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
45
2,75
2,59
2,79
3,32
2,52
46
2,25
1,55
1,31
0,31
2,76
47
2,70
2,36
2,68
0,05
2,40
48
3,15
3,00
3,24
2,33
2,44
49
2,85
2,68
3,37
3,09
2,08
50
2,35
2,40
0,59
2,23
2,56
51
2,05
1,50
2,40
2,00
2,12
52
2,85
2,64
2,84
2,75
2,16
53
2,35
2,20
2,94
2,09
2,00
54
3,15
3,20
2,72
3,05
2,64
55
3,10
3,32
3,72
3,42
2,24
56
2,70
3,44
3,39
2,33
2,36
57
2,05
1,55
2,33
2,70
2,08
58
2,30
2,61
2,50
2,50
1,60
59
2,80
2,88
2,39
2,44
2,36
60
2,15
2,26
2,33
2,06
2,04
61
2,90
2,28
2,39
1,93
2,36
62
3,25
3,16
3,11
2,56
2,36
63
3,45
3,60
3,39
3,50
2,52
64
2,30
3,13
3,00
3,05
2,12
65
2,30
2,39
2,62
2,94
2,12
66
2,85
3,28
3,50
3,63
2,56
67
2,20
2,30
1,28
0,00
2,04
68
1,55
1,00
1,72
0,00
2,00
69
1,65
1,67
2,07
1,85
1,96
70
3,20
3,04
2,94
3,14
2,64
71
3,10
2,60
2,89
2,72
2,40
72
2,05
1,28
1,73
0,82
2,96
73
2,65
1,87
2,00
1,56
2,36
74
2,35
1,04
0,19
0,92
2,56
233
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
75
2,40
2,65
2,57
3,24
2,95
76
0,85
2,29
2,21
2,00
2,85
77
2,65
2,75
2,11
2,74
2,74
78
2,85
3,27
2,91
2,73
2,93
79
1,85
1,71
2,40
2,06
2,98
80
2,95
2,91
3,16
3,25
2,80
81
3,35
2,48
3,00
2,14
3,00
82
2,65
2,14
2,45
2,64
2,92
83
3,35
3,09
3,42
3,25
3,11
84
2,60
3,00
2,90
3,10
2,83
85
3,50
2,92
3,27
3,04
2,85
86
3,10
2,80
3,68
3,57
3,22
87
2,25
2,05
2,29
1,83
2,80
88
2,65
2,77
2,14
0,94
2,89
89
3,65
3,74
3,70
3,90
2,97
90
3,25
3,35
2,67
3,25
2,86
91
3,40
3,00
2,73
2,47
2,92
92
2,60
1,73
3,00
2,10
2,98
93
2,50
2,82
3,35
3,57
2,87
94
1,90
1,35
2,46
1,20
2,77
95
2,45
3,00
3,25
3,70
2,98
96
2,20
1,90
2,17
2,30
2,77
97
2,30
3,00
3,24
3,00
2,72
98
3,55
3,32
3,19
3,15
3,22
99
2,45
2,55
2,44
3,15
2,81
100
3,05
3,04
3,26
3,58
2,86
101
2,60
2,64
2,58
3,33
2,87
102
3,15
3,20
2,89
3,37
2,98
103
3,20
3,52
3,37
3,52
3,19
104
2,80
3,00
3,14
3,04
2,94
234
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
105
2,60
2,73
3,05
3,38
3,06
106
2,05
1,95
2,63
2,35
2,83
107
3,30
3,92
3,76
3,78
3,33
108
2,70
2,32
3,00
2,78
2,85
109
2,85
1,73
2,56
2,76
3,08
110
2,40
2,75
3,05
3,32
2,89
111
3,45
3,36
2,95
2,82
3,05
112
2,60
2,55
3,00
2,96
2,87
113
2,65
2,14
2,22
3,11
2,78
114
2,75
3,00
3,21
3,53
2,75
115
2,75
3,36
3,33
3,13
2,92
116
2,40
2,20
2,06
2,22
2,73
117
2,60
1,70
2,00
2,76
2,89
118
3,45
3,24
3,48
3,57
3,06
119
2,65
2,95
2,48
3,15
2,83
120
2,85
2,82
3,14
3,42
2,81
121
2,55
2,74
2,94
2,53
2,69
122
2,30
2,43
2,28
1,47
3,05
123
3,35
3,04
3,00
3,20
2,83
124
1,45
0,44
2,47
2,65
2,90
125
3,30
3,16
3,22
3,25
2,77
126
3,20
3,40
3,72
3,10
2,81
235
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
236
Tabel di bawah ini merupakan hasil deteksi outlier yang nilai LoOPnya > 0,5
Hasil deteksi semester 1
mahasiswa LoOP
Ranking
28 0.9954540252321519
1
27 0.9806601547852323
2
76 0.9526317771888542
3
58 0.798564801477132
4
109 0.7673532211442452
5
50 0.646529759823802
6
74 0.646529759823802
7
105 0.6009075879658861
8
10 0.5788625030570833
9
68 0.5646701218186532
10
86 0.5631159504702734
11
107 0.5094858596416059
12
37 0.5067095180107015
13
Hasil deteksi semester 2
mahasiswa LoOP
Ranking
28 0.9849855058715602
1
86 0.9614558944282396
2
124 0.9212992758983662
3
107 0.9176185753006165
4
58 0.9167652769999431
5
17 0.9113127134284866
6
83 0.6641952873024779
7
122 0.5985460481139291
8
68 0.5479380469874908
9
72 0.5163903752744907
10
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Hasil deteksi semester 3
mahasiswa LoOP
Ranking
28 0.9941366960497773
1
74 0.9736499199333197
2
58 0.8605089505740078
3
72 0.7523693367354287
4
50 0.7340180488451497
5
109 0.7207268649680383
6
55 0.7204771128351042
7
107 0.6906463916070579
8
13 0.66997972367684
9
17 0.6636221605215429
10
98 0.6582622084445136
11
122 0.6005601746816651
12
3 0.5487299483708872
13
Hasil deteksi semester 4
mahasiswa LoOP
Ranking
28 0.9988872372375899
1
58 0.9210022884932241
2
107 0.847657502786035
3
89 0.8238191171535213
4
98 0.7915070202459312
5
27 0.7283684152080447
6
68 0.6582434007671639
7
45 0.6376124011372428
8
67 0.6299856593211957
9
122 0.5463287612434127
10
69 0.5073037573422574
11
237
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
238
LAMPIRAN 12
Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 20072008 Jalur Tes Tertulis
1.
Berdasarkan IPS 1
2.
Berdasarkan IPS 2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
Berdasarkan IPS 3
4.
Berdasarkan IPS 4
239
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
240
LAMPIRAN 13
Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 20072008 Jalur Prestasi
1.
Berdasarkan IPS 1
2.
Berdasarkan IPS 2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
Berdasarkan IPS 3
4.
Berdasarkan IPS 4
241
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
242
LAMPIRAN 14
Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 20072008 Jalur Tes Tertulis dan Prestasi
1.
Berdasarkan IPS 1
2.
Berdasarkan IPS 2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.
Berdasarkan IPS 3
4.
Berdasarkan IPS 4
243
Download