plagiat merupakan tindakan tidak terpuji plagiat

advertisement
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA LOCAL
OUTLIER FACTOR
(STUDI KASUS DATA AKADEMIK MAHASISWA TI UNIVERSITAS
SANATA DHARMA)
Skripsi
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh:
Daniel Tomi Raharjo
095314058
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2013
i
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
OUTLIER DETECTION USING LOCAL OUTLIER FACTOR
ALGORITHM
(STUDY CASE ACADEMIC DATA OF STUDENTS OF INFORMATICS
ENGINEERING DEPARTMENT 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:
Daniel Tomi Raharjo
095314058
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2013
ii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
iii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
iv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
HALAMAN PERSEMBAHAN
“Apa yang tidak pernah dilihat oleh mata, dan tidak pernah
didengar oleh telinga, dan yang tidak pernah timbul di dalam
hati manusia: semua disediakan Allah untuk mereka yang
mengasihi Dia” ( 1 Korintus 2:9)
Kupersembahkan Untuk :
Tuhan Yesus Kristus
Keluarga dan Teman-teman tercinta .
v
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
vi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRAK
Dalam dunia data mining keberadaan data outlier tidak bisa dipandang
sebelah mata, data outlier yang dulunya hanya sebuah noise, ternyata memiliki
informasi penting yang terkandung di dalamnya. Proses deteksi outlier ternyata
dapat di aplikasikan ke dalam berbagai bidang, salah satunya dalam bidang
pendidikan. Penelitian tugas akhir ini dimaksudkan untuk mengembangkan
sebuah perangkat lunak yang mampu mendeteksi sebuah outlier dari berbagai
macam jenis data, dimana algoritma yang digunakan adalah algoritma local outlier
factor dengan pendekatan density based. Pada penelitian tugas akhir ini digunakan
data akademik mahasiswa program studi Teknik Informatika Universitas Sanata
Dharma angkatan 2007-2008 yang diperoleh dari hasil penelitian gudang data
mahasiswa (Rosa dkk), data akademik ini meliputi data nilai tes masuk dan data
nilai IPS Semester 1-4. Dalam penelitian tugas akhir ini dilakukan pengujian
terhadap 3 jenis data yaitu : data mahasiswa 2007-2008 jalur test, data mahasiswa
2007-2008 jalur prestasi, dan data mahasiswa jalur test & prestasi. Pengujian ini
bertujuan untuk menguji validitas dari perangkat lunak yang dibuat dalam
penelitian tugas akhir ini. Hasil pengujian
dari ketiga jenis data tersebut
menunjukkan bahwa perangkat lunak yang dibuat dapat menemukan data outlier
dari data akademik mahasiswa secara valid.
Kata kunci: data mining, outlier, local outlier factor.
vii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ABSTRACT
On data mining, outlier cannot be underestimated. Yesterday, outlier data
can be look to be a noise but today outlier data is proven to have many important
information. Detection outlier proses can be applied to many various field, one of
which it can be applied on field of education. The aim of this study to develop a
software, who can detect an outlier from many data variation. Where the
algorithm used is the local outlier factor algorithm with the density-based
approach.. This thesis use student academic data Informatics Engineering study
program of Sanata Dharma University year 2007-2008, who is been research by
Rosa and other, This data is including selection test value data and IPS value data.
In this study, researchersused three types of data. The first 2007 – 2008 student
admission data from regular tracks, second 2007 – 2008 student admission data
from outstanding tracks, and the last data from joined from student admission data
from regular tracks and student admission data from outstanding tracks. This test
aims to test the validity of the software that is made in this thesis. The result of
research from this 3 data is showing this software can find the data outlier from
student data is valid
Keyword :data mining, outlier, local outlier factor.
viii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
ix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
KATA PENGANTAR
Puji dan syukur kepada TuhanYesus Kristus, karena pada akhirnya penulis
dapat menyelesaikan penelitian tugas akhir ini yang berjudul “ Deteksi Outlier
Menggunakan Algoritma Local Outlier Factor(Studi Kasus Data Akademik
Mahasiswa Ti Universitas Sanata Dharma)”
Penelitian ini tidak akan selesai dengan baik tanpa adanya dukungan,
semangat, dan motivasi yang telah diberikan oleh banyak pihak. Untuk itu,
penulis ingin mengucapkan terima kasih kepada:
1. Ibu P.H. Prima Rosa, S.Si., M.Sc.
selaku Dekan Fakultas Sains dan
Teknologi dan juga sebagai Dosen pengguji atas kritik dan saran yang
telah diberikan.
2. Ibu Ridowati Gunawan, S.Kom.,M.T. selaku Ketua Program Studi Teknik
Informatika dan dosen pembimbing akademik yang telah memberikan
kesabaran, waktu dan kebaikan.
3. IbuSri Hartati Wijono S.Si., M.Kom. selaku dosen penguji atas kritik dan
saran yang telah diberikan.
4. Seluruh Dosen yang telah mendidik dan memberikan ilmu pengetahuan
berharga selama penulis belajar di Universitas Sanata Dharma Yogyakarta.
5. Keluarga yang selalu mendukung saya dalam doa dan dana, orang tua saya
Bp Pardiyono dan Ibu Suparmi serta kakak-kakak saya : Mas Yogo, Mas
Agung, Kak Merry dan Kak Nunung
x
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6. Teman-Teman ACC : Robert, Anton, Ade, Pujo, Brahu, Githa, Nisa, Tri,
Sintia, Risma, Febri, Grace yang selalu ada di samping saya, saat suka
maupun duka.
7. Fio, Setyo dan Ratna teman sekerja saya dalam mengerjakan tugas akhir
ini selama 6 bulan.
8. Seluruh teman-teman TI 09 yang telah bersama-sama menjalani
perkuliahan selama 4 tahun.
9. Serta semua pihak yang telah membantu saya, yang tidak bisa saya
sebutkan satu persatu
Penelitian tugas akhir ini masih memiliki banyak kekurangan. Untuk itu,
penulis sangat membutuhkan saran dan kritik untuk perbaikan di masa yang
akan datang. Semoga penelitian tugas akhir ini dapat membawa manfaat bagi
semua pihak
Yogyakarta, 23 Agustus 2013
Daniel Tomi Raharjo
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 ....................................................................................................... xvii
Daftar Tabel .......................................................................................................... xx
BAB I PENDAHULUAN ..................................................................................... 1
1.1 Latar Belakang Masalah ........................................................................ 1
1.2 Rumusan Masalah .................................................................................. 4
1.3 Batasan ................................................................................................... 4
1.4 Manfaat Penelitian ................................................................................. 4
1.5 Tujuan Penelitian ................................................................................... 5
1.6 Luaran Penelitian ................................................................................... 5
1.7 Metodologi Penelitian............................................................................ 5
xii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1.8 Sistematika Penulisan ............................................................................ 5
BAB II LANDASAN TEORI ............................................................................... 2
2.1 Pengertian Data Mining ......................................................................... 2
2.2 Pengertian Outlier .................................................................................. 10
2.2.1 Statistical Distribution Based Local Outlier Detection ............... 11
2.2.2 Distance Based Local Outlier Detection ..................................... 11
2.2.3 Deviation Based Local Outlier Detection .................................... 12
2.2.4 Density Based Local Outlier Detection ....................................... 12
2.2.5 Algoritma LOF ............................................................................ 13
2.2.5.1 Contoh Perhitungan LOF......................................................... 13
BAB III METODOLOGI PENELITIAN.............................................................. 18
3.1 Sumber Data .......................................................................................... 18
3.2 Seleksi Data ........................................................................................... 19
3.3 Transformasi Data ................................................................................. 21
3.4 Penambangan Data ................................................................................ 24
3.5 Evaluasi Pola ......................................................................................... 32
3.6 Presentasi Pengetahuan .......................................................................... 33
BAB IV ANALISIS DAN PERANCANGAN SISTEM .................................... 34
4.1 Identifikasi Sistem ................................................................................ 34
4.1.1 Diagram Use Case ....................................................................... 35
4.1.2 Narasi Use Case ........................................................................... 36
4.2 Perancangan Sistem Secara Umum ...................................................... 36
4.2.1 Input Sistem ................................................................................. 36
xiii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.2.2 Proses Sistem ...................................................................................... 3
4.2.3 Output Sistem ............................................................................................... 39
4.3 Perancangan Sistem ............................................................................... 40
4.3.2 Diagram Kelas Analisis ............................................................... 41
4.3.3 Diagram Sequence ....................................................................... 44
4.3.4 Diagram Kelas Desain ................................................................. 45
4.3.5 Rincian Algoritma Setiap Method ............................................... 46
4.4 Perancangan Struktur Data .................................................................... 63
4.4.1 Graf .............................................................................................. 63
4.4.2 Matriks Dua Dimensi .................................................................. 64
4.5 Perancangan Antarmuka ........................................................................ 66
4.5.1 Tampilan Halaman Awal ............................................................. 66
4.5.2 Tampilan Halaman Utama ........................................................... 67
4.5.3 Tampilan Halaman Bantuan ........................................................ 70
4.5.4 Tampilan Menu Keluar................................................................ 71
4.5.5 Tampilan Halaman Pilih Database .............................................. 72
4.5.6 Tampilan Halaman Pilih Tabel .................................................... 73
4.5.7 Tampilan Halaman Distribusi Atribut ......................................... 74
BAB V IMPLEMENTASI PENAMBANGAN DATA ........................................ 75
5.1 Implementasi Antarmuka....................................................................... 75
5.1.1 Implementasi Halaman Awal ...................................................... 75
5.1.2 Implementasi Halaman Utama .................................................... 76
5.1.3 Implementasi Antarmuka Halaman Distribusi Atribut................ 82
xiv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5.1.4 Implementasi Antarmuka Halaman Pilih Basis Data .................. 84
5.1.5 Implementasi Halaman Bantuan .................................................. 88
5.1.6 Implementasi Antarmuka Halaman Tentang ............................... 89
5.1.7 Implementasi Antarmuka Konfirmasi Keluar ............................. 90
5.1.8 Implementasi Pengecekan Masukan ............................................ 91
5.2 Implementasi Kelas ............................................................................... 95
5.3 Implementasi Struktur Data ................................................................... 96
5.3.1 Implementasi Kelas Vertex.java .................................................. 97
5.3.2 Implementasi Kelas Graph.java ................................................... 98
BAB VI PENGUJIAN DAN ANALISIS HASIL PENGUJIAN .......................... 101
6.1 Rencana Pengujian................................................................................. 101
6.1.1 Hasil Pengujian Blackbox ........................................................... 103
6.1.2 Kesimpulan Pengujian Blackbox................................................. 111
6.1.3 Hasil Pengujian Perubahan NIlai Atribut MinPts Terhadap Nilai
LOF.............................................................................................. 111
6.1.4 Kesimpulan Hasil Pengujian Efek perubahan nilai Atribut minPts
Terhadap Niai LOF....................................................................... 119
6.1.5 Hasil Pengujian Review Dan Validitas Pengguna ....................... 120
6.1.5.1 Perbandingan Perhitungan Manual dan Hasil Sistem....... 120
6.1.5.2 Kesimpulan Hasil Perbandingan Perhitungan Manual dengan
Perhitungan Menggunakan Sistem ........................................................................ 122
6.1.5.3 Hasil Review Pengguna .................................................... 122
6.1.5.4 Kesimpulan Hasil Pengujian Review dan Validitas oleh
xv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Pengguna...................................................................................................... 125
6.2 Kelebihan Dan Kekurangan Sistem ................................................................ 129
6.2.1 Kelebihan Sistem ......................................................................... 129
6.2.2 Kekurangan Sistem ...................................................................... 130
BAB VII KESIMPULAN DAN SARAN ............................................................. 131
7.1 Kesimpulan ............................................................................................ 132
7.2 Saran ...................................................................................................... 131
DAFTAR PUSTAKA ........................................................................................... 133
LAMPIRAN 1 ....................................................................................................... 134
LAMPIRAN 2 ....................................................................................................... 142
LAMPIRAN 3 ....................................................................................................... 149
LAMPIRAN 4 ....................................................................................................... 155
LAMPIRAN 5 ....................................................................................................... 156
LAMPIRAN 6 ....................................................................................................... 175
xvi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR GAMBAR
Gambar 2.1 Proses KDD ....................................................................................... 9
Gambar 2.2 Dataset Dengan Outlier ..................................................................... 11
Gambar 3.1 Database “gudangdata” ..................................................................... 19
Gambar 3.2 Tabel “fact_lengkap2”....................................................................... 20
Gambar 3.3 Isi Tabel “fact_lengkap2”.................................................................. 20
Gambar 3.4 Perhitungan Jarak Mahasiswa 2007 Jalur Test ................................. 26
Gambar 3.5 Pencarian kdistance data Mahasiswa 2007 Jalur Test ....................... 27
Gambar 4.1 Diagram Use Case............................................................................. 35
Gambar 4.2 Proses Umum Sistem Pendeteksi Outlier Menggunakan Algoritma
Local Outlier Factor .......................................................................... 38
Gambar 4.3 Diagram Kelas Analisis ..................................................................... 41
Gambar 4.4 Diagram Kelas Desain ....................................................................... 45
Gambar 4.5 Ilustrasi Struktur Data Graf ............................................................... 64
Gambar 4.6 Tampilan Halaman Awal .................................................................. 66
Gambar 4.7 Tampilan Halaman Utama Tab Preposesing ..................................... 68
Gambar 4.8 Tampilan Halaman Utama Tab Deteksi Outlier ................................ 69
Gambar 4.9 Tampilan Halaman Bantuan .............................................................. 70
Gambar 4.10 Tampilan Dialog Keluar .................................................................. 71
Gambar 4.11 Tampilan Halaman Pilih Database .................................................. 72
Gambar 4.12 Tampilan Halaman Pilih Tabel ....................................................... 73
Gambar 4.14 Tampilan Halaman Distribusi Atribut ............................................. 74
xvii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar5.1 Implementasi Halaman Awal ............................................................. 76
Gambar 5.2 Implementasi Halaman Utama Tab Preposesing .............................. 77
Gambar 5.3 Implementasi jFileChosser ............................................................... 78
Gambar 5.4 Implementasi Halaman Utam Tab Deteksi Outlier ........................... 78
Gambar 5.5 Kotak Seleksi Atribut ........................................................................ 79
Gambar 5.6 Proses Input Data .............................................................................. 80
Gambar 5.7 Proses Deteksi Outlier ....................................................................... 80
Gambar 5.8 Tampilan Hasil Outlier ...................................................................... 81
Gambar 5.9 Tampilan Hasil Seleksi LOF ............................................................. 81
Gambar 5.10 Tampilan Save Dialog ..................................................................... 82
Gambar 5.11 Tampilan Halaman Distribusi Atribut ............................................. 83
Gambar 5.12 Tampilan Distribusi Per Atribut ...................................................... 83
Gambar 5.13 Tampilan Diagram Batang Persebaran Atribut ............................... 84
Gambar 5.14 Implementasi Halaman Pilih Koneksi ............................................. 85
Gambar 5.15 Proses Konfigurasi Basis Data ........................................................ 85
Gambar 5.16 Proses Koneksi Berhasil .................................................................. 86
Gambar 5.17 Implementasi Halaman Pilih Tabel ................................................. 87
Gambar 5.18 Hasil Input Dari Database............................................................... 88
Gambar 5.19 Implementasi Halaman Bantuan ..................................................... 89
Gambar 5.20 Implementasi Halaman Tentang...................................................... 90
Gambar 5.21 Implementasi Halaman Konfirmasi keluar ..................................... 91
Gambar 5.22 Pesan Kesalahan Input Data ............................................................ 91
Gambar 5.23 Pesan Kesalahan Konfigurasi Database .......................................... 92
xviii
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 5.24 Pesan Kesalahan Input Parameter Database.................................... 92
Gambar 5.25 Pesan Kesalahan nilai minPtskosong .............................................. 93
Gambar 5.26 Pesan Kesalahan nilai minPts0 ........................................................ 93
Gambar 5.27 Pesan Kesalahan nilai minPtsnegative atau mengandung karakter
Huruf .............................................................................................. 94
Gambar 5.28 Pesan Kesalahan Nilai Batas Outlier Kosong ................................ 94
Gambar 5.29 Pesan Kesalahan nilai Batas Outliernegative atau mengandung
karakter Huruf....................................................................................... 95
Gambar 6.1 Grafik Pengujian Angkatan 2007-2008 Jalur Test ............................ 113
Gambar 6.2 Grafik Pengujian Data Angkatan 2007-2008 Jalur Prestasi .............. 115
Gambar 6.3 Grafik Pengujian Data Angkatan 2007-2008 .................................... 119
xix
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR TABEL
Tabel 3.1 Tabel Range Nilai Atribut ..................................................................... 21
Tabel 3.2 Tabel Contoh Data Atribut nil-nil5 ....................................................... 22
Tabel 3.3 Tabel Contoh Data Nilai Atribut nil1-nil 5 Setelah Normalisasi .......... 23
Tabel 3.4 Tabel Contoh Data Atribut Nilai Final ................................................. 23
Tabel 3.5 Tabel Contoh Data Nilai Atribut Nilai Final Setelah Normalisasi ....... 24
Tabel 3.6 Tabel Data Mahasiswa 2007 Jalur Tes ................................................. 25
Tabel 3.7 Tabel Data kDistancedata Mahasiswa 2007 Jalur Test......................... 27
Tabel 3.8 Tabel Data kDistance Neighborhood Data Mahasiswa 07 Jalur Test ... 28
Tabel 3.9 Tabel Data Reachbility Distance Data Mahasiswa 2007 Jalur Test ..... 29
Tabel 3.10 Tabel Data Reachbility Density Data Mahasiswa 2007 Jalur Test ..... 31
Tabel 3.11 Tabel Data LOF Data Mahasiswa 2007 Jalur Test ............................. 31
Tabel 4.1 Tabel Keterangan Diagram Kelas Analisis ........................................... 42
Tabel 4.2 Ilustrasi Struktur Data Matriks Dua Dimensi ....................................... 65
Tabel 4.3 Ilustrasi Struktur Data Matriks Dua Dimensi Setelah Dilakukan
Perhitungan Jarak antar Vertex............................................................ 65
Tabel 5.1 Implementasi Kelas ............................................................................... 95
Tabel 6.1 Tabel Rencana Pengujian BlackBox ..................................................... 102
Tabel 6.2 Tabel Pengujian Input Data................................................................... 103
Tabel 6.3 Tabel Pengujian Koneksi Database ...................................................... 105
Tabel 6.4 Tabel Pengujian Seleksi Atribut ........................................................... 107
Tabel 6.5 Tabel Pengujian Deteksi Outlier ........................................................... 108
xx
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 6.6 Tabel Pengujian Lihat Grafik Atribut ................................................... 110
Tabel 6.7 Tabel Pengujian Simpan Hasil Deteksi Outlier .................................... 110
Tabel 6.8 Tabel Pengujian Data Mahasiswa 2007-2008 Jalur Test ...................... 112
Tabel 6.9 Tabel Pengujian Data Mahasiswa 2007-2008 Jalur Prestasi ................ 113
Tabel 6.10 Tabel Pengujian Data Mahasiswa 2007-2008 ..................................... 115
Tabel 6.11 Tabel Data Set Perbandingan Perhitungan Manual Dan Sistem ......... 120
Tabel 6.12 Tabel Hasil Perhitungan Manual......................................................... 121
Tabel 6.13 Tabel Hasil Perhitungan Sistem .......................................................... 121
Tabel 6.14 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Test ....................... 123
Tabel 6.15 Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Prestasi ................. 123
Tabel 6.16 Tabel Hasil Perhitungan Sistem 2007-2008........................................ 124
xxi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB I
PENDAHULUAN
1.1
Latar belakang Masalah
Data adalah sesuatu yang sangat penting pada saat ini, seiring dengan
berjalannya waktu data-data tersebut terkumpul dan menjadi gabungan data yang
sangat besar.Dengan melimpahnya data tersebut dibutuhkan sebuah metode yang
efektif dan efisien untuk menggali informasi yang terkandung di dalamnya.
Berbagai teknik dan metode telah ada dalam ilmu data mining, kebanyakan dari
metode tersebut mencoba untuk menemukan sebuah pola yang umum dari sebuah
data set, namun karena jumlahnya yang begitu besar dan bervariatif
mengakibatkan munculnya data-data yang tidak konsisten dengan data set yang
lain, yang biasa disebut dengan outlier.
Karena keanomaliannya seringkali data tersebut hanya dipandang sebagai
noise atau data yang mengganggu, padahal data-data tersebut sebenarnya tidak
dapat diabaikan begitu saja, karena data-data tersebut kemungkinan mempunyai
informasi yang sangat penting.
Dalam data mining teknik untuk mengenali outlier dikenal dengan istilah
Deteksi Outlier, dalam deteksi outlier terdapat 3 pendekatan yang secara umum
sering dipakai yaitu :Clustering Based, Distance Baseddan Density Based, dari
ketiga pendekatan tersebut muncul beragam algoritma yang digunakan untuk
mencari outlier dari sebuah data. Namun tidak semua algoritma tersebut cocok
digunakan untuk menganalisis sebuah outlier dari sebuah data, apalagi jika data
1
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2
tersebut memiliki dimensi yang tinggi atau memiliki atribut yang banyak, salah
satu algoritma yang ada adalah algoritma LOF (Local Outlier Factor) algoritma
ini digunakan dalam pendekatan Density Based, algoritma ini tidak secara
eksplisit menyatakan bahwa suatu obyek adalah sebuah outlier, namun algoritma
memberikan bobot / derajat outlier terhadap suatu obyek nilai.
Dalam perkembanganya teknik data mining juga digunakan untuk meneliti
dalam berbagai bidang, mulai dari ekonomi, bisnis dan juga dalam bidang
pendidikan, banyak sekali penelitian dilakukan dalam bidang pendidikan, menurut
Ryan dan Kalina salah satu fungsi Data Mining dalam dunia pendidikan adalah
untuk mengembangkan sebuah metode yang dapat menemukan keunikan dari
sebuah data yang berasal dari sistem pendidikan tersebut, dan menggunakan
metode tersebut untuk lebih memahami siswa, sehingga dapat mengembangkan
sebuah sistem yang sesuai (Barker & Yacef, 2009).
Universitas Sanata Dharma adalah sebuah institusi pendidikan yang
memiliki banyak data, salah satu data yang dimiliki adalah data akademik
mahasiswa. Data ini meliputi data nilai PMB dan data nilai per semester, untuk
dapat menjadi mahasiswa di universitas tersebut seorang calon mahasiswa harus
mengikuti test masuk dan dari hasil tersebut calon mahasiswa akan ditentukan
apakah diterima menjadi seorang mahasiswa atau tidak.Setiap akhir semester IV
setiap prodi di Universitas Sanata Dharma melakukan evaluasi sisip program,
evaluasi ini bertujuan untuk mengetahui kemamapuan setiap mashasiswa, dan
untuk memutuskan apakah mahasiswa tersebut harus dipertahankan di prodi
tersebut, atau harus dikeluarkan (DO). Dalam memutuskan hasil evaluasi tersebut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3
maka seorang kaprodi harus memperhatikan riwayat akademik setiap mahasiswa,
yaitu berupa nilai test masuk dan juga nilai akademik dari semester 1 sampai
semester 4,
mahasiswa yang memiliki nilai test masuk tinggi
maka akan
memiliki potensi prestasi / nilai akademik yang tinggi, begitu pula sebaliknya
mahasiswa yang memiiki nilai test masuk yang rendah maka akan memiliki
potensi prestasi / nilai akademik yang rendah juga. Namun prediksi tersebut tidak
selalu tepat, karena bisa saja mahasiswa yang memiliki nilai test masuk tinggi
namun ternyata prestasinya biasa saja atau rendah, begitu pula sebaliknya. Dengan
demikian dapat dikatakan mahasiswa yang memiliki pola tidak umum dapat
dikatakan sebagai outlier, maka dengan mengetahui mana saja mahasiswa yang
berpotensi menjadi outlier akan sangat membantu seorang kaprodi untuk
memutuskan mahasiswa mana saja yang bisa dipertahankan dan mahasiswa mana
saja yang harus dikeluarkan(DO).
Oleh karena itu pada penelitian tugas akhir ini penulis ingin melakukan
penelitian menggunakan algoritma Local Outlier Factor untuk mendeteksi outlier
dari data Nilai per semester mahasiswa dengan membandingkan hasil test masuk
mahasiswa tersebut. nilai yang dibandingkan adalah nilai per komponen Tes
Potensi akademik yaitu meliputi penalaran verbal, kemampuan numerik,
penalaran mekanik, hubungan ruang dan bahasa inggris. Data yang dipakai adalah
data mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma
tahun angkatan 2007-2008
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1.2
4
Rumusan Masalah
1. Bagaimana algoritma Local Outlier Factor dapat mendeteksi outlier dari
data nilai akademik mahasiswa?
2. Apakah algoritma Local Outlier Factor dapat mendeteksi Outlier data
nilai akademik mahasiswa?
1.3
Batasan
1. Data yang dipakai adalah data nilai akademik mahasiswa program Studi
teknik informatika tahun angkatan 2007-2008
2. Algoritma yang dipakai dalam penelitian ini adalah algoritma Local Outlier
Factor dengan menggunakan pendekatan Density Based.
1.4
Manfaat Penelitian
Manfaat penelitian ini adalah :
1.
Memberikan analisis sejauh mana algoritma Local Outlier Factor dapat
mendeteksi sebuah outlier
2. Membantu Pihak prodi untuk mendeteksi kejadian langka atau anomali
yang terjadi berkaitan dengan data akademik mahasiswa.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
1.5
5
Tujuan Penelitian
Tujuan Penelitian ini adalah menerapkan algoritma Local Outlier Factorke
dalam sebuah sistem untuk mendeteksi outlierdari data akademik mahasiswa.
1.6
Luaran Penelitian
Luaran penelitian ini adalah sebuah aplikasi berbasis desktop yang mampu
memberikan hasil deteksi outlier menggunakan algoritma Local Outlier Factor.
1.7
Metodologi Penelitian
Metodologi yang digunakan untuk menyelesaikan tugas akhir ini adalah
menggunakan metode KDD (Knowledge Discovery in Database), yang
dikemukakan oleh Jiawei Han dan Kamber.
1.8
Sistematika Penulisan
Bab I Pendahuluan
Bab ini berisi latar belakang pemilihan judul tugas akhir, rumusan masalah,
batasan masalah, tujuan penelitian dilakukan, metodologi penelitian, dan
sistematika penulisan tugas akhir.
Bab II Landasan Teori
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6
Bab ini merupakan dasar teoritis yang digunakan untuk menyusun tugas akhir ini.
Teori mengenai data-mining, outlier, dan Local Outlier Factor sebagai metode
dalam perhitungan nilai LOF.
Bab III Metodologi Penelitian
Bab ini berisi penjelasan metodologi penelitian yang akan digunakan untukmetode
LOFdalamanalisis outlier untuk studi kasus data akademik mahasiswa Teknik
Informatika Universitas Sanata Dharma.
Bab IV Analisis Dan Perancangan Sistem
Bab ini berisi mengenai proses analisa dan perancangan sistem yang akan
dibangun dalam penelitian ini.
Bab V Implementasi Sistem
Bab ini berisi mengenai implementasi sistem deteksi outlier menggunakan
algoritma Local Outlier Factor.
Bab VIPengujian Dan Analisis Hasil Pengujian
Pada bab ini, Analisis hasil penelitian yang dilakukan dijelaskan secara lengkap.
Bab VII Kesimpulan dan Saran
Bab ini berisi kesimpulan yang didapatkan dari penelitian yang telah dilakukan.
Kesimpulan yang dituliskan adalah kesimpulan yang menjawab rumusan masalah
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
7
yang dituliskan pada bab pendahuluan secara ringkas. Pada bab ini, akan
dituliskan saran yang berguna untuk mengembangkan sistem ini
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB II
LANDASAN TEORI
2.1
Pengertian Data Mining
Data Miningadalah 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 (Handriyadi dkk, 2009).Secara sederhana
data mining merujuk pada ektraksi atau penambangan pengetahuan dari data
dalam jumlah yang besar (Santosa, 2007).Karena ketersediaan data dalam jumlah
yang besar, data mining telah menarik perhatian dalam industri informasi dan
masyarakat secara keseluruhan dalam beberapa tahun terakhir, data mining dapat
dipandang sebagai akibat dari evolusi alami dari informasi teknologi. Data mining
hadir untuk menjawab kebutuhan menganalisis data dalam jumlah yang besar,
dimana hal ini didasari oleh terbatasnya kemampuan manusia untuk menganalisis
dan mengolah data, yang mengakibatkan data-data tersebut hanya disimpan dalam
sebuah repository yang besar dan hanya menjadi sebuah “kuburan data” (Santosa,
2007). Banyak orang berpendapat bahwa data mining adalah sinonim dari KDD
(Knowledge Discovery in Database), namun lebih tepatnya data mining adalah
sebuah bagian yang sangat penting dalam proses KDD
Menurut jiawei Han dan Kamber proses KDD digambarkan sebagai
berikut
8
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9
Gambar 2.1 Proses KDD
1. Pembersihan Data (Data Cleaning)
Pada proses ini dilakukan Pembersihan terhadap data yang tidak konsisten
atau data yang menggangu
2. PenggabunganData (Data Integration)
Pada proses ini dilakukan penggabungan data dari berbagai sumber
3. Seleksi Data ( Data Selection)
Menyeleksi data yang relevan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
4. Transformasi Data (Data Transformation)
Data ditransformasi atau dikonsolidasikan ke dalam bentuk yang tepat untuk
di tambang.
5. Penambangan Data (Data Mining)
Proses yang paling penting dimana teknik penambangan data diterapkan untuk
mengekstrak Pola Data
6.
Evaluasi Pola (Pattern Evaluation)
Yaitu proses mengidentifikasi pola-pola yang benar-benar menarik yang
mewakili pengetahuan
7. Presentasi Pengetahuan (Knowledge Presentation)
Pola yang didapat direpresentasikan kepada pengguna dalam bentuk
visualisasi
2.2
Pengertian Outlier
Secara lebih sederhana outlier adalah data yang terlalu berbeda atau tidak
konsisten dengan satu set data.Outlierdapat disebabkan oleh kesalahan eksekusi
atau juga oleh pengaturan default Program (Breunig, 2000). Dalam data mining
kebanyakan algoritma mencoba untuk mengurangi atau bahkan menghilangkan
pengaruh outlier. Padahal outlier sendiri kemungkinan memiliki informasi
penting yang tersembunyi dan bisa saja outliertersebut dihasilkan melalui
mekanisme yang berbeda.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11
Gambar2.2 Dataset dengan Outlier
Menurut jiawei Han
dan Kamber
dalam pendeteksian sebuah outlier
dikategorikan menjadi 4 pendekatan/metode antara lain : Statistical Distribution
Based, Distance Based, Deviation Based,Density Based
2.2.1
Statistical Distribution BasedLocal Outlier Detection
Dalam metode ini data diasumsikan sebagai sebuahhipotesis 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).
2.2.2
Distance Based Local Outlier Detection
Metode ini adalah sebuah metode deteksi outlier dengan menghitung jarak
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12
pada obyek tetangga terdekat (nearest neighbor). Di dalam pendekatan ini sebuah
obyek melihat obyek-obyek local neighborhod yang didefinisikan sebagai knearest neighbor.Jika ketertanggan sebuah obyek relatif dekat maka obyek
tersebut dikatakan normal, namun jika ketertangaan antar obyek relative jauh
maka obyek tersebut dikatakan tidak normal (outlier)(Handriyandi dkk, 2009).
2.2.3
Deviation Based Local Outlier Detection
Metode deviation basedtidakmenggunakan pengujian statistik ataupun
perbandingan jarak untuk mengidentifikasi sebuah outlier. Sebaliknya metode ini
mengidentifikasi sebuah outlier dengan memeriksa karakteristik utama dari obyek
dalam sebuah kumpulan. Obyek yang memiliki karakteristik diluar karakteristik
utama maka akan dianggap sebagai oulier (Han dan Kamber, 2006).
2.2.4
Density Based Local Outlier Detection
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 MinPts,
Minpts adalah jumlah tetangga terdekat yang digunakan untuk mendefinisikan
local Neighborhood suatu obyek.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.2.5
13
Algoritma LOF
Pada penelitian ini akan menggunakan algoritma LOF, ide utama dari LOF
adalah membandingkan kepadatan lokal lingkungan sebuah obyek dengan
kepadatan lokal tetangganya, dalam algoritma LOF sebuah obyek dikatakan
sebagai outlier apabila memiliki nilai LOF yang tinggi atau menjauhi 1,
sedangkan obyek yang memiliki nilai LOF rendah atau mendekati 1 maka obyek
tersebut tidak dapat dikategorikan sebagai outlier. Nilai LOF yang tinggi
mengindikasikan bahwa obyek tersebut memiliki kepadatan yang rendah terhadap
lingkungannya sehingga berpotensi menjadi sebuah outlier. Langkah –langkah
untuk menemukan outlier di deskripsikan sebagai berikut :
1. Menghitung k-distance dari setiap obyek p
Tujuan dari perhitungan k-distance ini adalah untuk menentukan tetangga
dari p, secara sederhana k-distancedari sebuah obyek p, adalah jarak maksimal
dari P terhadap. tetangga terdekatnya. dan di notasikan dengan k-distance(p), kdistance didefinisikan d(p,o) dimana antara P dan object o D memiliki :
(i)
untuk setidaknya k objects o‟  D | {p} dan dinyatakan bahwa d(p,o‟) ≤
d(p,o)
(ii)
untuk setiap k-1objects o‟D | {p} dan dinyatakan bahwa d(p,o‟) ≤ d(p,o)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
14
2. Menghitung jumlah tetangga terdekat(k-distance neighborhood
dari setiap obyek p)
k-distance neighborhoodsuatu objek p dinotasikan Nk-distance(p), atau
Nk(p) dimana berisi setiap objek dengan jarak tidak lebih besar dari kdistance
(p).
3. Menghitung Reachbility Distance dari p
Reachability distance dari suatu obyek p terhadap
obyek o adalah
distance(p, o)atau kdistance(o), dengan membandingkan keduanya dan dicari
nilai yang maksimum sehingga,reach-distk(p, o) = max{kdistance (o), distance(p,
o)). Tujuan dari perhitungan ini
adalah untuk memastikan bahwasemua
bendaberada dalam lingkungan yang homogen. Selain itu, nilai LOF akan stabil
jika sebuah
obyek berada dalam lingkungan yang
seragam sekalipun jika
MinPts(k) berubah.
Fluktuasi darireachabilitydistance dapat dikontrol dengan memilih nilai
maksimum untuk k.
4. Menghitung kepadatan local dari setiap obyek
local reachbility density dari p di definisikan sebagai berikut :
…….. (2.1)
Keterangan :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
lrdMinPts(p)
: Kepadatan local dari obyek p
reachdistMinPts(p,o)
: Reacbility Distance dari obyek p ke obyek o
NMinPts(p)
: Jumlah tetangga p dalam suatu minPts
15
Secara intuitif, local reachbility density p adalah kebalikan dari rata-rata
reachability distance baseddi dalam minPts-tetangga terdekat dari obyek p.
5. Menghitung LOF untuk setiap obyek data
Local outlier factor dari P di definisikan sebagaiberikut :
……(2.2)
Keterangan :
LOFMinPts(p)
: Derajat outlier dari obyek p
lrdMinPts(o)
: Kepadatan local obyek o
lrdMinPts(p)
: Kepadatan local obyek p
NMinPts(p)
: Jumlah tetangga p dalam suatu minPts
LOF adalah sebuah derajat yang menentukan apakah sebuah obyek
merupakan outlier atau tidak.LOF
dinotasikan kedalam LOFMinPts(p)dan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
16
merupakan rata-rata rasio kepadatan reachability lokal p dan tetangga p dalam
satu jangkauan.
2.2.5.1
Contoh Perhitungan LOF
Misalkan Sebuah database D memiliki 4 buah obyek dan dilambangkan
sebagai P1, P2, P3 dan P4 dimana masing-masing obyek memiliki jarak sebagai
berikut : P1P2 = 4 , P1P3 = 3 , P1P4 = 7 , P2P3 = 5 , P2P4 = 6 , dan P3P4 = 8 dan
minPts(k) = 2
1. Mencari k-distance
Maka untuk contoh diatas langkah untuk menemukan k-distance dari obyek P1
adalah sebagai berikut :
a. Hitung jarak P1 terhadap semua obyek dengan menggunakan fungsi
jarak, untuk contoh diatas jarak P1 terhadap obyek yang lain telah di
didefinisikan yaitu : P1P2 = 4, P1P3 = 3, P1P4 = 7
b. Pilih 2 jarak minimum yang berbeda dari P1, semua jarak dari P1
diurutkan dan dipilih 2 minimum pertama, maka diperoleh 2 minimum
pertama yaitu P1P3 = 3 , P1P2 = 4
c. kemudian dari 2 jarak tersebut pilih yang paling maksimum, dimana
ini nanti akan menjadi kdistance dari P1 maka :
k-distance(P1) = max(3,4) , sehingga k-distance(P1) = 4
2. Menemukan k-distanceneighborhoodyang k-distance<= 4
Selanjutnya dicari k-distanceneighborhooddari P1, maka obyek data yang
menjadi k-distance neighborhood P1adalah P2 dan P3,dimana kdistance (P1) adalah
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
17
4 dan jarak dari P2 dan P3 dari P1 masing-masing tidak lebih dari 4 (yaitu, P1P2 =
4, P1P3 = 3)
3. Menghitung Reachbility Distance
Jarak reachability dari P1 adalahdihitung sebagai berikut: Pertama,
mengidentifikasi lingkungan kdistance P1 (yaitu, Nk (P1) = (P2, P3)). reachbility
distance P1 dihitung sehubungan dengan P2 dan P3 karena mereka merupakan
tetangga dariP1.Untuk P2 dalam lingkungan P1: reachdistk (P1, P2) = max (kdistance (P2), distance((P1, P2)) = max(5,4) = 5. Sejak kdistance (P2) = 5 dan
jarak (P1, P2) = 4. Untuk P3 dalam lingkungan P1: reachdistk (P1, P3) = max {kdistance (P3), jarak (P1, P3)} =max (5, 3) = 5. Oleh karena itu, reachdistk (P1, o) =
(5, 5), yang merupakan kombinasi dari jarak reachability daritetangga dari P1.
4. Menghitung Reachbility Density
Kepadatan reachability lokal untuk P1 dihitung sebagai berikut:
lrdk (P1) = 1 / {(5 +5) / 2} = 2/10, karena (5,5) merupakan jarak reachability lokal
P1 dan jumlah tetangga kdistance adalah 2.makalrdk (P2) = 2/9, lrdk (P3) = 2/9 dan
lrdk (P4) = 2/13.
5. Menghitung LOF
Selanjutnya dilakukan perhitungan LOF untuk obyek P1, nilai LOF P1
sebagai berikut :
P1
} / 2 = 1.111111
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB III
METODOLOGI PENELITIAN
Pada bagian ini akan dijelaskan mengenai metodologi penambangan data
yang akan digunakan dalam penelitian ini, yaitu KDD(Knowledge Discovery in
Database) yang dikemukakan oleh Jiawei Han dan Kamber.
3.1
Sumber Data
Sumber data dalam penelitian skripsi ini adalah Data akademik mahasiswa
Teknik Informatika Universitas Sanata Dharma tahun angkatan 2007-2008, data
ini berupa script query yang berisi sebuah gudang data dan berformat .sql. Data
ini diperoleh dari Gudang Data akademik mahasiswa USD hasil penelitian Rosa,
dkk (2011).Data yang telah terkumpul kemudian diolah.Pada tahap ini data yang
tadinya berupa file mentah di extrak ke dalam database, hasil ekstrakan tersebut
menghasilkan sebuah basis data yang bernama “gudangdata”, dalam basis data ini
berisikan
beberapa
dim_fakultas,
tabel
dim_jeniskel,
antara
lain
:
dim_angkatan,
dim_kabupaten,
dim_statustes, fact_lengkap
18
dim_prodi,
dim_daftarsmu,
dim_prodifaks,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
19
Gambar 3.1 Database“gudangdata”
3.2
Seleksi Data (Data Selection)
Data yang diperoleh kemudian, diseleksi dan dipilih data yang sesuai
untuk dilakukan perhitungan, dimana data-data yang dibuang adalah data-data
yang kurang relevan terhadap penelitian .Dari database Gudangdata tersebut tabel
data yang akan dipakai untuk penelitian adalah hanya tabel fact_lengkap2,
sehingga tabel-tabel yang lain tidak diperlukan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
20
Gambar 3.2 Tabel “fact_lengkap2”.
Setelah dilakukan seleksi terhadap tabel dalam database gudangdata, selanjutnya
dilakukan seleksi terhadap data dalam tabel fact_lengkap2, yaitu dengan
menyeleksi data mahasiswa yang bukan program studi Teknik Informatika, yaitu
data mahasiswa yang memiliki data sk_prodi selain 27
Gambar 3.3 Isi tabel “fact_lengkap2”.
selanjutnya dilakukan seleksi terhadap kolom yang berada dalam tabel
fact_lengkap2, kolom-kolom yang diseleksi antara lain : nomor, jumsttb,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
21
jummsttb, jumnem, jummtnem, sttb, sk_jeniskelamin, sk_status, sk_kabupaten,
sk_daftarsmu, sk_prodi
3.3
Transformasi Data (Data Tranformation)
Pada tahap ini dilakukan proses normalisasi atribut, proses ini dilakukan
agar data tersebut memiliki bentuk yang tepat untuk ditambang, hal itu
dikarenakan perbedaan range nilai antar atribut satu dengan yang lainnya,
Tabel 3.1 Tabel range nilai atribut
Nama Atribut
Range Niai
Nilai1, nilai2, nilai3, nilai4 dan nilai 5
0-10
Nilai Final
0-100
IPS
0-4
sehingga atribut-atribut tersebut nantinya akan memiliki range nilai sama
dengan atribut IPS. Untuk melakukan proses normalisasi tersebut digunakan
metode min max normalization, dengan rumus sebagai berikut :
v' 
,
v  minA
(new _ maxA  new _ minA)  new _ minA
maxA  minA
…..(3.1)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
22
Keterangan
v’
: nilai yang sudah ternormalisasi
v
: nilai lama yang belum ternormalisasi
minA
: minimum nilai dari atribut a
maxA
: maksimum nilai dari atribut a
newMinA
: nilai minimum baru dari atribut a
newMaxA
: nilai maksimum baru dari atribut a
1. Normalisasi Atribut nilai1, nilai2, nilai3, nilai4 dan nilai 5
Contoh data dibawah ini menggambarkan proses transformasi dari atribut
nilai1, nilai2, nilai3, nilai 4 dan nilai 5
Tabel 3.2 Contoh data atribut nil1-nil5
Nomor
1
2
3
4
5
6
7
8
9
10
11
12
13
nil11
nil12
nil13
nil14
nil15
ips1
8.00
6.00
6.00
7.00
5.00
3.72
6.00
5.00
5.00
7.00
5.00
2.89
6.00
4.00
5.00
7.00
5.00
2.56
7.00
6.00
7.00
6.00
6.00
3.28
6.00
5.00
6.00
6.00
7.00
1.89
10.00
5.00
9.00
6.00
7.00
1.44
6.00
6.00
4.00
4.00
7.00
4.00
3.00
2.00
8.00
3.00
1.00
1.72
5.00
5.00
8.00
5.00
7.00
2.89
7.00
5.00
5.00
5.00
4.00
2.94
6.00
4.00
6.00
3.00
7.00
2.94
5.00
5.00
6.00
5.00
5.00
2.44
7.00
6.00
8.00
8.00
2.00
1.72
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 3.3 Contoh data atribut nil1-nil5 setelah normalisasi
Nomor nil11
nil12 nil13
nil14
nil15
ips1
1
3.2
2.4
2.4
2.8
2
3.72
2
2.4
2
2
2.8
2
2.89
3
2.4
1.6
2
2.8
2
2.56
4
2.8
2.4
2.8
2.4
2.4
3.28
5
2.4
2
2.4
2.4
2.8
1.89
6
4
2
3.6
2.4
2.8
1.44
7
2.4
2.4
1.6
1.6
2.8
4.00
8
1.2
0.8
3.2
1.2
0.4
1.72
9
2
2
3.2
2
2.8
2.89
10
2.8
2
2
2
1.6
2.94
11
2.4
1.6
2.4
1.2
2.8
2.94
12
2
2
2.4
2
2
2.44
13
2.8
2.4
3.2
3.2
0.8
1.72
2. Normalisasi Atribut Nilai Final
Contoh data dibawah ini mengambarkan proses transformasi atribut nilai final
Tabel 3.4 Contoh data atribut nillai final
Nomor
1
2
3
4
5
6
7
8
9
10
11
ips1
ips2
ips3
ips4
final
2.06
2.32
2.91
3.00
67.80
2.72
2.50
2.96
2.38
67.75
3.33
3.48
3.78
3.48
69.41
2.39
3.00
2.43
2.82
71.60
2.11
2.71
2.43
2.45
73.75
3.00
2.96
2.61
3.29
67.57
3.72
3.56
3.43
3.67
78.67
3.44
3.04
2.88
3.48
71.33
2.17
2.70
3.09
3.63
72.00
3.89
3.75
3.00
3.62
77.00
2.89
3.68
2.88
3.76
72.99
23
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
12
13
3.11
2.00
3.08
2.00
2.78
2.29
3.48
3.00
24
68.17
77.10
Tabel 3.5 Contoh data atribut nillai final setelah normalisasi
Nomor
1
2
3
4
5
6
7
8
9
10
11
12
13
3.4
ips1
ips2
ips3
ips4
final
Final1
2.06
2.32
2.91
3.00
67.80
2.712
2.72
2.50
2.96
2.38
67.75
2.71
3.33
3.48
3.78
3.48
69.41
2.7764
2.39
3.00
2.43
2.82
71.60
2.864
2.11
2.71
2.43
2.45
73.75
2.95
3.00
2.96
2.61
3.29
67.57
2.7028
3.72
3.56
3.43
3.67
78.67
3.1468
3.44
3.04
2.88
3.48
71.33
2.8532
2.17
2.70
3.09
3.63
72.00
2.88
3.89
3.75
3.00
3.62
77.00
3.08
2.89
3.68
2.88
3.76
72.99
2.9196
3.11
3.08
2.78
3.48
68.17
2.7268
2.00
2.00
2.29
3.00
77.10
3.084
Penambangan Data (Data Mining)
Data-data yang telah diolah akan dianalis menggunakan algoritma Local
Outlier Factor, data yang akan diteliti dibatasi yaitu data akademik mahasiswa
Teknik Informatika Universitas Sanata Dharma dengan Tahun akademik 2007 –
2008, selama 4 semester. pada tahap ini ditentukan beberapa variable yang
digunakan untuk pengujian variable tersebut antara lain :
1. Variabel Input
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
25
Nim_mhs, nama_mhs, ips1, ips2, ips3, ips4, nil1,nil2,nil3, nil4, nil5, nil6,
final, statusTes, kd21, kd22, kd23, kd24, kd25, kd26, kd27, kd28, nem
2. Output
Output yaitu data mahasiswa yang menjadi outlier.
Langkah selanjutnyadilakukan penambangan
terhadap data tersebut
dengan menggunakan algoritma Local Outlier Factor. Pada penambangan ini
digunakan tools Ms.Excel untuk membantu perhitungan menggunakan algoritma
Local Outlier Factor. Berikut merupakan cotoh tahap penambangan data :
1.
perhitungan data mahasiswa angkatan 2007
pendaftar jalur regular
dengan membandingkan nilai per komponen dan IPS semester 1
Tabel 3.6 Tabel Data Mahasiswa 2007 Jalur Tes
Nomor
Alias
ips1
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
3.72
2.89
2.56
3.28
1.89
1.44
4.00
1.72
2.89
2.94
2.94
2.44
1.72
nil11
nil12
nil13
nil14
nil15
8.00
6.00
6.00
7.00
5.00
6.00
5.00
5.00
7.00
5.00
6.00
4.00
5.00
7.00
5.00
7.00
6.00
7.00
6.00
6.00
6.00
5.00
6.00
6.00
7.00
10.00
5.00
9.00
6.00
7.00
6.00
6.00
4.00
4.00
7.00
3.00
2.00
8.00
3.00
1.00
5.00
5.00
8.00
5.00
7.00
7.00
5.00
5.00
5.00
4.00
6.00
4.00
6.00
3.00
7.00
5.00
5.00
6.00
5.00
5.00
7.00
6.00
8.00
8.00
2.00
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
26
dari data diatas kemudian dicari jarak setiap obyek dengan menggunakan fungsi
jarak ecludian, dengan menggunakan rumus :
………(3.2)
Gambar 3.4 Perhitungan Jarak Mahasiswa 2007 Jalur Test
setelah menghitung jarak setiap obyek, maka selanjutnya dicari kdistance dari
setiap obyek, dengan asumsi minPts = 7, minPts ini melambangkan jangkauan
suatu obyek terhadap tetangganya, sehingga dicari 7 jarak terdekat dari sebuah
obyek
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 3.5 Pencarian kdistance data mahasiswa 2007 jalur test
Sehingga k-distance untuk masing-masing obyek didapati sebagai berikut :
Tabel 3.7 Tabel Data kdistancedata mahasiswa 2007 jalur test
k-distance
P1
2.052897681
P2
1.697056275
P3
1.775130668
P4
1.602823512
P5
1.741861145
P6
4.088663943
P7
2.428321068
P8
3.278382054
P9
1.876987014
P10
1.741861145
27
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
P11
1.873810407
P12
2.538025382
P13
2.404140462
28
Kemudian dicari setiap tetangga setiap obyek yang jaraknya tidak melebihi dari kdistance dari obyek tersebut
Tabel 3.8 Tabel Data kdistance Neighborhood data mahasiswa 2007 jalur test
Kdistance
Kdistance Neigborhood
P1
10.03465938
P2, P3, P4, P7, P9, P10, P12
P2
4.166676
P1, P3, P4, P9, P10, P5, P12
P3
7.049436542
P2, P4, P5, P9, P10, P1, P12
P4
10.00555623
P1, P2, P3, P5, P9, P10, P12
P5
6.092132652
P6
19.05483089
P7
6.043308104
P2, P3, P4, P6, P9, P10, P11,
P12
P3, P4, P5,P9, P10, P11, P12,
P13
P2, P4, P5, P12, P10, P11, P1
P8
30.08634861
P3,P5, P9, P10, P11, P12, P13
P9
5.011096576
P2, P3, P4, P5, P10, P11,P12
P10
5.1472102
P1, P2, P3,P4, P5, P12, P11,
P11
6.12321589
P2, P3, P5, P7, P9, P10, P12
P12
6.12321589
P2, P4, P5, P7, P9, P10, P11
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
29
Kemudian dicari reachbility distance setiap obyek yaitu dengan membandingkan
jarak suatu obyek ke tetangga dari obyek tersebut dengan k-distance dari
tetangganya
Tabel 3.9 Tabel Data Reachbility Distance data mahasiswa 2007 jalur test
P2
P4
P12
P3
P7
P9
P10
P1
1.2862305
0.91515
1.967936
1.6736056
1.8539614
2.0528977
1.372943131
Reachbility Distance
1.6970563
1.60282
2.538025
1.7751307
2.4283211
2.0528977
1.741861145
Reachbility Density
0.5059223
P2
Reachbility Distance
Reachbility Density
P3
P9
P10
P1
P4
P5
P12
0.520662 1.6971 0.98137 1.28623 1.19635
1.4 1.075909034
1.775131 1.877 1.74186
2.0529 1.60282 1.741861 2.538025382
0.525148
P3
Reachbility Distance
Reachbility Density
P2
P4
P5
P9
P10
P1
P4
0.520662 1.2508 1.2508 1.77513 1.12746 1.673606 1.510487617
1.697056 1.6028 1.74186 1.87699 1.74186 2.052898 2.538025382
0.528242
P4
Reachbility Distance
Reachbility Density
P1
P2
P3
P5
P9
P10
P12
0.915146 1.1963 1.51049 1.60282 1.19635 1.308111 1.405188799
2.052898 1.6971 1.77513 1.74186 1.87699 1.741861 2.538025382
0.521461
P2
P5
Reachbility Distance
Reachbility Density
P3
P10
P9
P4
P11
P12
1.4 1.2508 1.74186
1.4 1.60282 1.647447 1.126312679
1.697056 1.7751 1.74186 1.87699 1.60282 1.87381 2.538025382
0.465269
P6
Reachbility Distance
Reachbility Density
P10
P5
P3
P4
P9
P12
P13
2.801785 2.7046 2.70458 4.08866 2.53112 2.690725 2.545029045
2.801785 2.7046 2.70458 4.08866 2.53112 2.690725 2.545029045
0.34983
P7
Reachbility Distance
P2
P4
P5
P12
P10
P11
P1
1.906448 1.7093 2.42832 2.04448 1.78726 1.598215 1.853961391
1.906448 1.7093 2.42832 2.53803 1.78726 1.87381 2.052897681
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
30
Reachbility Density
0.489647
P8
Reachbility Distance
Reachbility Density
P3
P5
P9
P10
P11
P12
P13
3.05525 3.2784 3.13707 3.00229 3.15813 2.538025 3.046309242
3.05525 3.2784 3.13707 3.00229 3.15813 2.538025 3.046309242
0.329948
P9
Reachbility Distance
Reachbility Density
P2
P3
P5
P4
P12
P10
P11
1.697056 1.7751
1.4 1.19635 1.21556 1.876987 1.266128054
1.697056 1.7751 1.74186 1.60282 2.53803 1.876987 1.873810407
0.534119
P10
Reachbility Distance
Reachbility Density
P2
P3
P5
P12
P11
P1
P4
0.981367 1.1275 1.74186
1.1
1.6 1.741861 1.308111448
1.697056 1.7751 1.74186 2.53803 1.87381 2.052898 1.602823512
0.527045
P11
Reachbility Distance
Reachbility Density
P5
P3
P12
P7
P9
P10
P4
1.647447 1.8738 1.36015 1.59822 1.26613
1.6 1.308111448
1.741861 1.8738 2.53803 2.42832 1.87699 1.741861 1.602823512
0.507111
P12
Reachbility Distance
Reachbility Density
P2
P3
P5
P4
P9
P10
P11
1.075909 1.0641 1.12631 1.40519 1.21556
1.1 1.360147051
1.697056 1.7751 1.74186 1.60282 1.87699 1.741861 1.873810407
0.568665
P13
Reachbility Distance
Reachbility Density
P1
P2
P3
P4
P5
P10
P12
2.529822 2.1728 2.12945 2.40414
2.3723 2.274593 2.200357435
2.529822 2.1728 2.12945 2.40414
2.3723 2.274593 2.538025382
0.426279
Setelah itu dilakukan perhitungan kepadatan local sebuah obyek terhadap
tetangganya atau yang disebut dengan reachbility density, dengan menggunakan
rumus (2.1) :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
31
Tabel 3.10 Tabel Data Reachbility Density data mahasiswa 2007 jalur test
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
Kdistance
2.052897681
1.697056275
1.775130668
1.602823512
1.741861145
4.088663943
2.428321068
3.278382054
1.876987014
1.741861145
1.873810407
2.538025382
2.404140462
Kdistance Neigborhood
P2, P3, P4, P7, P9, P10, P12
P1, P3, P4, P9, P10, P5, P12
P2, P4, P5, P9, P10, P1, P12
P1, P2, P3, P5, P9, P10, P12
P2, P3, P4, P6, P9, P10, P11, P12
P3, P4, P5,P9, P10, P11, P12, P13
P2, P4, P5, P12, P10, P11, P1
P3,P5, P9, P10, P11, P12, P13
P2, P3, P4, P5, P10, P11,P12
P1, P2, P3,P4, P5, P12, P11,
P3, P4, P5, P7, P9, P10,P12
P2, P3,P4, P5, P9, P10, P11
P1, P2. P3, P4, P5, P10, P12
reachability density of p
0.51
0.53
0.53
0.52
0.47
0.35
0.49
0.33
0.53
0.53
0.51
0.57
0.43
Setelah itu dilakukan perhitungan derajat outlier dari setiap obyek atau yang
disebut sebagai LOF dengan menggunakan rumus (2.2) :
Tabel 3.11 Tabel Data LOF data mahasiswa 2007 jalur test
P1
P2
P3
Kdistance
2.052897681
1.697056275
1.775130668
Kdistance Neigborhood
P2, P3, P4, P7, P9, P10, P12
P1, P3, P4, P9, P10, P5, P12
P2, P4, P5, P9, P10, P1, P12
reachability density of p LOF
0.51
1.04
0.53
0.99
0.53
0.97
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
1.602823512
1.741861145
4.088663943
2.428321068
3.278382054
1.876987014
1.741861145
1.873810407
2.538025382
2.404140462
P1, P2, P3, P5, P9, P10, P12
P2, P3, P4, P6, P9, P10, P11, P12
P3, P4, P5,P9, P10, P11, P12, P13
P2, P4, P5, P12, P10, P11, P1
P3,P5, P9, P10, P11, P12, P13
P2, P3, P4, P5, P10, P11,P12
P1, P2, P3,P4, P5, P12, P11,
P3, P4, P5, P7, P9, P10,P12
P2, P3,P4, P5, P9, P10, P11
P1, P2. P3, P4, P5, P10, P12
32
0.52
0.47
0.35
0.49
0.33
0.53
0.53
0.51
0.57
0.43
Dari analisis data diatas menggunakan algoritma local outlier factor maka
ditemukan 3 data yang berpotensi menjadi sebuah outlier, dimana 2 data dengan
outlier yang sangat tinggi yaitu mahasiswa dengan no P6 dimana mahasiswa
tersebut memiliki nilai tes masuk yang tinggi, tetapi memiliki nilai IPS yang
rendah di semester 1, dan mahasiswa dengan no P8, dimana mahasiswa tersebut
memiliki nilai final yang rendah dan memiliki IPS yang rendah juga.
3.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. Luaran dari tahap ini
adalah tingkat akurasi dari penambangan data yang telah dilakukan, sehingga
dapat diperoleh tingkat keberhasilan dari proses penambangan data tersebut
1.00
1.09
1.46
1.06
1.54
0.97
0.98
0.99
0.91
1.22
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
3.6
33
Presentasi Pengetahuan (Knowledge Presentation)
Pada tahap ini akan dilakukan presentasi pola yang telah didapat dari
penelitian, sehingga pola dapat dimengerti dan dipahami oleh pihak yang
berkepentingan, sehingga dalam tahap ini akan dilakukan pembuatan sebuah
aplikasi computer berbasis desktop yang
dapat mendeteksi outlier dengan
menggunakan bahasa pemrograman Java. Dengan antar muka yang mudah
dimengerti oleh pengguna
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB IV
ANALISIS DAN PERANCANGAN SISTEM
4.1
Identifikasi Sistem
Deteksi outlier merupakan sebuah teknik di dalam data mining yang
bertujuan untuk menemukan sebuah data yang berbeda/anomali dari keseluruhan
set yang ada, dalam pendekteksian outlier ini terdapat beberapa pendekatan antara
lain Statistical Distribution Based, Distance Based, Deviation Based dan Density
Based
Dalam metode density based,outlier tidak diklasifikasn secara eksplisit
tetapi lebih kepada pemberian nilai kepada setiap obyek dengan sebuah ukuran
derajat outlier atau yang disebut LOF (Local Outlier Factor). Dalam tugas akhir
ini akan dijelaskan bagaimana proses mendeteksi sebuah outlier dan proses
pembuatan aplikasi untuk mendeteksi outlier menggunakan algoritma Local
Outlier Factor. Proses pendeteksian outlier dapat mencakup keanekaragaman
bentuk data, sehingga nantinya aplikasi yang akan dikembangkan dapat
mendeteksi outlier dari berbagai jenis data
Dalam penelitian ini data yang digunakan adalah data yang bertipe file
excel dan data dari Basis Data.dan hasil keluaran (output) disimpan dalam file Ms
Word (.doc) dan.txt
.
34
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.1.1
35
Diagram Use Case
Dalam sebuah sistem selalu ada interaksi antara pengguna dan Sistem,
dimana interaksi tersebut dapat menggambarkan bagaimana proses dan cara kerja
sistem tersebut.
Untuk mengambarkan interaksi di dalam sistem yang akan
dikembangkan pada tugas akhir ini digunakan sebuah diagram usecaseseperti
berikut
Lihat
Grafik
<<Extends>>
Input data excel atau
database
<<Extends>>
Pengguna
<<Depends
On>>
Seleksi Atribut
Cari Outlier
<<Depends On>>
Simpan
Gambar 4.1 Diagram Use Case
Dalam diagram usecase diatas terdapat satu orang pengguna yang nantinya
dapat berinteraksi dengan Sistem. Pengguna tersebut dapat menjalankan 3 fungsi
utama dalam Sistemyaitu : menginputkan data, mencari outlier dan menyimpan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
36
hasil outlier. Ketiga fungsi tersebut saling berhubungan sehingga fungsi-fungsi
tersebut harus dijalankan secara berurutan, fungsi yang harus dijalankan terlebih
dahulu adalah menginputkan data, mencari outlier dan kemudian simpan data.
Selain itu terdapat juga fungsi tambahan fungsi ini merupakan fungsi tambahan
yang terdapat pada fungsi input data. fungsi tersebut adalah fungsi seleksi atribut
dan fungsi lihat grafik distribusi atribut. Kedua fungsi tersebut merupakan
perluasan dari fungsi input data.
4.1.2
Narasi Use Case
Untuk mengetahui detail Narasi Use Case secara keseluruhan dapat dilihat pada
bagian lampiran 1.
4.2
Perancangan Sistem Secara Umum
4.2.1
Input Sistem
Sistem yang dibuat pada penelitian ini dapat menerima masukan berupa
data bebas dari pengguna yang bertipe file excel (.xls) 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.
Dalam Sistem ini juga membutuhkan sebuah inputan untuk memproses pencarian
outlier inputan tersebut yaitu :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
37
4.2.1.1 minPts
minPts adalah jangkauan atau jumlah tetangga terdekat yang digunakan untuk
mendefinisikan local Neighborhood suatu obyek.
4.2.2
Proses Sistem
Sisitem Deteksi outlier berjalan dengan beberapa tahapan yaitu sebagai
berikut
4.2.2.1 Pengambilan Data
Pada tahap ini Sistem akan mengambil data sesuai dengan pilihan user, data yang
akan dibaca dapat berupa file xls, csv atau mengambil data yang terdapat di dalam
database, data ini kemudian akan ditampilkan di dalam interface,
kemudian
dilakukan seleksi oleh user, dalam seleksi ini userakan memilih atribut mana saja
yang sesuai untuk dilakukan proses Deteksi outlier
4.2.2.2 Perhitungan jarak obyek data
Selanjutnya setiap obyek data dicari jarak ketetanggan antar obyek, proses
perhitungan ini menggunakan rumus Euclidean distance. Sehingga setiap obyek
akan memiliki nilai jarak dengan satu dan lainnya
4.2.2.3 Pencarian outlier berdasarkan parameter minPts
Pada tahap ini dilakukan proses pencarian outlier dengan menggunakan algoritma
local outlier factor
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
38
Start
Ya
Pilih
Seleksi
atribut
?
Data bertipe .xls
Data bertipe .csv
Proses seleksi
atribut
Data basisdata
Tidak
Ya
Pilih
Distribusi
Atribut ?
Proses distribusi
atribut
Tidak
Input parameter
minPts
Proses deteksi outlier
Hasil deteksi
outlier
end
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
39
Gambar 4.2 Proses Umum Sitem Pendeteksi Outlier Menggunakan
Algoritma Local Outlier Factor
4.2.3
Output Sistem
Sistem yang kan dibuat ini adalah Sistem untuk mendeteksi outlier, hasil
keluaran dari Sistem ini adalah sebagai berikut :
4.2.3.1
Jumlah data row
Sistemakan menampilkan jumlah baris, hal ini bertujuan untuk
memastikan bahwa setiap data yang di import terbaca oleh Sistem dengan benar
4.2.3.2
Label serta derajad LOF
Setelah melakukan proses pendeteksian outlier Sistem ini akan
menampilkan daftar obyek yang berpotensi outlier beserta labelnya dan juga akan
menampilkan peringkat outlier dari yang nilai LOF paling tinggi ke nilai LOF
yang paling rendah.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.3
Perancangan Sistem
4.3.1
Diagram Aktivitas
40
Diagram aktivitas berfungsi untuk menunjukan aktivitas antara pengguna
dengan Sistem. Detail dari diagram aktivitas per use case dapat dilihat di lampiran
2. Berikut adalah diagram aktivitas dari setiap use case:
1. Diagram Aktivitas Inputdata dari file .xls
2. Diagram Aktivitas Inputdata dari tabel dalam basisdata
3. Diagram Aktivitas Deteksi Outlier
4. Diagram Aktivitas Simpan hasil deteksi outlier
5. Diagram Aktivitas Lihat Distribusi Atribut per Atribut
6. Diagram Aktivitas Seleksi Atribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.3.2
41
Diagram Kelas Analisis
Halaman Distribusi
Atribut
Halaman Awal
Halaman PilihDatabase
Halaman
Utama
DatabaseConnectio
n
Pengguna
DiagramBatang
Halaman TampilTabel
DatabaseControll
er
CheckBoxTableModel
HalamanBantuan
Seleksi Atribut
HalamanKonfirmasiKeluar
Kontroller lof
Data Lof
Data LofTableModel
Graph
Vertex
Gambar 4.3 Diagram Kelas Analisis
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
42
Tabel 4.1 Tabel keterangan diagram kelas analisis
No
Nama Kelas
Jenis
Keterangan
1
DatabaseConnection
Entity
Kelas ini adalah kelas yang berfungsi untuk
melakukan koneksi antara Sistem dengan
basis data, dalam kelas ini juga terdapat
atribut-atribut
yang
digunakan
untuk
melakukan koneksi tersebut
2
Graph
Entity
Kelas ini berfungsi untuk membentuk
sebuah graph beserta dengan edge anta
setiap verteks
3
Vertex
Entity
Kelas ini berfungsi
untuk membentuk
sebuah verteks, dalam kelas ini terdapat
atribut-atribut yang digunakan untuk proses
perhitunngan outlier
4
SeleksiAtribut
Entity
Kelas ini berfungsi untuk menyimpan
atribut yang digunakan untuk table pada
seleksi atribut
5
CheckBoxTableModel
Entity
Kelas ini adalah kelas yang berfungsi untuk
membentuk seleksi atribut menjadi sebuah
table model
6
DataLof
Entity
Kelas ini adalah kelas yang berfungsi untuk
menyimpan data hasil deteksi outlier
7
DataLofTableModel
Entitiy
Kelas ini berfungsi untuk membentuk
DataLof menjadi kedalam sebuah Tabel
Model
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
8.
DiagramBatang
Entity
43
Kelas ini berfungsi untuk menampikan
rincian data atribut ke dalam sebuah
Diagram
9
DatabaseController
Controller
Kelas ini berfungsi untuk mengatur koneksi
antara Sistem dengan database, serta berisi
method-method yang digunakan untuk
query database.
10
KontrollerLof
Controller
Kelas ini berfungsi untuk mengatur proses
deteksi
outlier,
penginputan
mulai
data
dari
hingga
proses
proses
penyimpana data outlier
8
HalamanUtama
Boundary
Kelas ini berisi tampilan halaman utama
dari dari Sistem, yaitu proses seleksi atribut
dan juga deteksi outlier
9
HalamanDistribusiAtribut
Boundary
Kelas ini berisi tampilan untuk memilih
atribut
yang
akan
dicari
persebaran
distribusinya.
10
HalamanPilihDatabase
Boundary
Kelas ini berisi tampilan untuk memilih
jenis
database
serta
melakukan
konfigurasinya.
11
HalamanTampilTabel
Boundary
Kelas ini berisi tampilan untuk memilih
tabel yang akan digunakan untuk proses
deteksi outlier
12
HalamanAwal
Boundary
Kelas ini berisi tampilan awal yang
digunkan
untuk
menghubungkan
ke
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
44
tampilan utama
13
HalamanBantuan
Boundary
Kelas ini berisi tampilan mengenai petunjuk
penggunaan Sistem
14
HalamanTentangKami
Boundary
Kelas
ini
berisi
tampilan
informasi
mengenai Sistem.
15
HalamanKonfirmasiKeluar
Boundary
Kelas ini digunakan untuk menampilkan
konfirmasi apakah pengguna benar-benar
akan keluar dari sistem
4.3.3
Diagram Sequence
Berikut merupakan diagram sequence yang terdapat dalam proses
perancanganSistem Pendeteksi Outlier Menggunakan Algoritma local Outlier
Factor.
1. Diagram Sequence Inputdata dari file .xls
2. Diagram Sequence Inputdata dari file .csv
3. Diagram Sequence Inputdata dari tabel dalam basisdata
4. Diagram Sequence Deteksi Outlier
5. Diagram Sequence Simpan hasil deteksi outlier
6. Diagram Sequence Lihat Distribusi Atribut per Atribut
7. Diagram Sequence Seleksi Atribut
Untuk penjelasan rinci dari masing – masing diagram sequence dapat dilihat pada
lampiran 2 yang terdapat pada tugas akhir ini.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.3.4
45
Diagram Kelas Desain
Diagram kelas desainmenunjukkan daftar kelas yang nantinya akan
dipakai dalam pembuatan sistem. Diagram kelas memuat semua kelas untuk
menjalankan semua fungsi pada sistem.Untuk rincian atribut dan methodmasingmasing kelas dapat dilihat padalampiran 4 dalam tugas akhir ini.
<<boundary >>
Halaman Preposesing
<<boundary >>
Halaman Awal
<<boundary >>
Pilih file excel
<<boundary >>
Halaman Utama
<<boundary >>
Halaman Deteksi Outlier
<<entity>>
DataLof
<<controller>>
KontrollerLof
<<entitiy>>
graph
<<entity>>
Seleksi Atribut
1..*
Memiliki
<<entity>>
Verteks
Memiliki
<<entity>>
DataLofTableModel
1..*
<<entity>>
CheckBoxTableModel
Gambar 4.4 Diagram Kelas Desain
<<boundary >>
Pilih DB
<<controller>>
DatabaseKontroller
<<entity >>
Data Basis Data
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.3.5
46
Rincian Algoritma Setiap Method Pada Tiap Kelas
4.3.5.1 Rincian Algoritma pada Method di koneksi Database
Nama method
Fungsi method
Algoritma method
KoneksiDatabase(
Melakukan
1. Cek jenis database
String,
String)
String,
String, koneksi
ke 2. Jika database == MySql,
database Oracle /
MySql
maka
lakukan langkah dibawah ini
a. Buat koneksi MySql dengan
menggunakan
variable
connection
b. Jika koneksi berhasil tampilkan
pesan koneksi berhasil
c. Jika koneksi gagal tampilkan
pesan koneksi gagal
3. Jika
database
==
oracle,
maka
lakukan langkah dibawah ini
a. Buat
obyek
ds
oracleDataSource
dari
kemudian
dengan obyek tersebut setting
alamat url dari database
b. Kemudian
dengan
lakukan
koneksi
memanggil
method
getConnection dengan masukan
username dan password
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
c. Apabila
47
koneksi
tampilkan
pesan
berhasi
“koneksi
Berhasil”
d. Apabila koneksi gagal tampilkan
pesan “Koneksi gagal”
isConnectedSQL()
Mengecek apakah
koneksi
dengan
database
atauu
tidak
2. Jika tidak maka kembalikan nilai
false
Method
berfungsi
Jika ya maka kembalikan nilai
true
terhubung
getClose()
1. Cek apakah connection != null
ini
untuk
memutus koneksi
ke basis data
1. Cek
apakah
terhubung
atau
koneksi
masih
tidak
dengan
memanghil method is Connected
2. Jika
hasilnya
true
putuskan
koneksi
3. Kemudian set koneksi menjadi
false
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
48
4.3.5.2 Rincian Algoritma pada Method di Kelas Kontroller LOF
Nama method
Fungsi method
inputData
Menginputkan
Algoritma method
data
1. Selama i = 0 dan I tidak lebih dari
dari Jtable ke dalam
jumlah baris dari jTable lakukan
matrix dalam graf
langkah dibawah ini :
2. Buat variable label bertipe string
3. Buat variable listNilai yang bertipe
arraylist double
4. Selama j = 0 dan j tidak lebih dari
jumlah kolom jTable lakukan langkah
dibawah ini
a. Cek apakah j = 0 jika iya maka
set label = data yang ada di
dalam baris dan kolom table
tersebut,
b. Jika tidak maka lakukan
langkah c dan d
c. Cek apakah data tersebut
merupakan data numeric, jika
masukan data pada baris (i,j)
kedalam arraylist nilai
d.
Jika data tersebut bukan data
numeric, maka masukan nilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
49
0.0 kedalam arrayList nilai
5. panggil method addVerteks dari kelas
graph dengan inputan label, dan list
nilai
6. selama i = 0 dan i tidak lebih dari
jumlah baris jTable lakukan langkah
dibawah ini :
a. selama j = i + 1 dan j tidak lebih
dari jumlah baris dari jTable
lakukan langkah dibawah ini :
b. cek apakah i=j jika iya panggil
method addEdge yang terdapat di
kelas graph dengan memasukan
inputan i, j dan hasil perhitungan
jarak Ecludian I dan J dengan
memanggil method
cariJarakEcludian
cariJArakEcludian(
int
Mencari
jarak
indexAwal, ecludian antar setiap
intIndexTujuan)
obyek
1. Buat dua buah variabel yaitu a dan b
dengan tipe ArrayList double
2. Set arrayList a sebagai arrayList yang
menyimpan nilai dari obyek awal
3. Set arrayListb sebagai array yang akan
menyimpan nilai dari obyek tujuan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
50
yang akan dicari jarakanya terhadap
obyek awal
4. Kemudian hitung jarak setiap nilai
dari obyek awal terhadap obyek tujuan
dengan menggunakan rumus ecludian
distance
cariKdistance
mencariKdistance
dari setiap obyek
1. Set semua flagKunjungan dari semua
obyek(vertex ) menjaid false
2. buat sebuah variable array a bertipe
double, dimana array ini memiliki
panjang sesuai jumlah dari minPts /
jangkauan
3. buat variable kDistance dengan tipe
double
4. buat variable temp1 bertipe double
5. buat variable tamping bertipe string
6. masukan data jarak dari setiap
tetangga dengan menggunakan
perulangan, selama t tidak lebih dari
panjang array a lakukan langkah
dibawah ini
a. inisialisasian variable i = 0 selama i
kurang dari panjang verteksList
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
51
maka lakukan langkah dibawah ini :
b. cek apakah edge dari indeks tersebut
terhadap i != -1 dan !=0 dan
flahKunjungannya == false jika ya
lakukan langkah dibawah c dan d:
c. jika edge dari indeks terhadap
verteksList ke i< dari temp1 maka
d. set temp1 = garis[indeks][i]
e. set array a ke t = temp1;
f. kemudian ubah flagKunjungan dari
arraylis tersebut menjadi true dengan
memanggil method search2 dengan
inputan (temp1, indeks)
g. set kembali temp1 =
Double.max_value
cariNeighborhood(
Mencari
tetangga
1.
buat sebuah List a dengan bertipe
Double kDistance, yang memiliki jarak
String, array ini berfungsi untuk
int indeks)
menyimpan label yang menjadi
kurang
Kdistance
dari
=
tetangga terhadap obyek yang akan
dicari tetangganya
2. Inisialisasikan i = 0 , selama i kurang
dari panjan vertekslist lakukan
langkah dibawah ini :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
52
3. Jika jarak indeks terhadap I kurang <=
kDIstance , maka tambahkan
verteksList[i] kedalam array a
4. Kembaikan a nilai dari array a
reachbilityDistance
(int
indexAwal, Distance
Lis<String>
Tujuan)
Mencari reachbility 1. Buat variable reachbilityDistance
bertipe List Double
2. Buat variable indexTujuan dengan tipe
integer, variable ini berfungsi untuk
menyimpan label, dari kDistance
Neighborhood suatu obyek
3. Buat variable kDistance bertipe double
4. Inisialisasikan i = 0, selama i < size
tujuan lakukan langkah dibawah ini
a. Cari index obyek tujuan dengan
memanggil method Search dengan
inputan label dari List Tujuan ke i,
kemudian inisialisasikan kedalam
variable indexTujuan
b. Setelah itu cari kDistance dari obyek
tujuan tersebut dengan memanggil
verteksList[indexTujuan].getKdistanc(
)
c. Jika kDistance lebih besar dari
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
53
garis[indexAwal][indexTujuan] Maka
tambahkan kDistance kedalam array
reachbiltyDistance
d. Jika tidak maka tambahkan
garis[indexAwal[indexTujuan]
kedalam array reachbiltyDistance
e. Kembalikan nilai reachbiltyDistance
reachBilityDensity( Mencari
List<Double>
reacbilityDensity
reachbiltyDistance)
dari setiap obyek
1. Buat variable ReachbilityDensity
bertipe double
2. Buat variable
jumlahReachbiltyDistance bertipe
double dan inisialisasikan = 0.0
3. Inisialisasikan i=0, selama
i<reachbilityDistance.size lakukan
langkah dibawah ini :
a. Jumlahkan JumlahreachBIlityDistance
dengan reachBilityDistance ke i,
kemudian inisialisasikan kedalam
variabek jumlahReachBilityDIstance
b. Kembalikan nilai ReachBilityDensity
= 1/jumlahReachbilityDistance /
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
54
reachBilityDistance.size()
getLof(List<Doubl
Mencari nilai LOF
1. Buat variable LOF bertipe double
e>, Double)
setiap obyek
2. Buat variable
jumlahReachbilityDensity dan
insialisasikan 0.0;
3. Inisialisasikan i=0, selama i<
reachbilityDensity.size lakukan
langkah dibawah ini
a. Inisialisasikan
reachbilityDensity sebagai
berikut:
jumlahReachbilityDensity =
jumlahReachbilityDensity +
(reachBilityDensity.get(i) /
ReacbilityDensityobyek);
4. Kembalikan nilai LOF = =
Double.valueOf(nf.format(jumlah
ReachbilityDensity /
reachBilityDensity.size().
setKdistance(String Method ini berfungsi
1. Buat variable index bertipe int
label,
mengeset
2. lakukan insisialisasi variable index
kDistance
dengan memanggil method search
Jangkauan)
int untuk
variable
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
dalam Verteks
55
dengan inputan label
3. set variable kDIstance pada
vertekslidt[index] dengan inputan
yaitu hasil balik dari method
cariKdistance dengan inputan index
dan jangkauan
setNeigborhood(Str Method ini berfungsi
1. Buat variable index bertipe int
ing label)
2. lakukan insisialisasi variable index
untuk
mengeset
variable
dengan memanggil method search
Neighborhood dalam
dengan inputan label
verteks
3. set variable kNeighborhood pada
vertekslidt[index] dengan inputan
yaitu hasil balik dari method
cariNeigborhood dengan inputan
vertekslist[index].getkDistance(),
index
setReachbilityDista
Method ini berfungsi
1. Buat variable index bertipe int
nce(String Label)
untuk
2. lakukan insisialisasi variable index
mengeset
variabel
dengan memanggil method search
ReachbilityDistance
dengan inputan label
dalam verteks
3. set variable ReachbilityDistance pada
vertekslidt[index] dengan inputan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
56
yaitu hasil balik dari method
CariReachBilityDistance dengan
inputan index,
vertekslist[index].getNeigborhood()
setReachbilityDens
Method ini berfungsi
1. Buat variable index bertipe int
ity(String Label)
untuk
2. lakukan insisialisasi variable index
mengeset
variabel
dengan memanggil method search
ReachbilityDensity
dengan inputan label
dalam verteks
3. set variable ReachbilityDensity pada
vertekslidt[index] dengan inputan
yaitu hasil balik dari method
ReachbilityDensity dengan inputan
vertekslist[index].getReachbilityDista
nce()
setLOf(String
Method ini berfungsi
1. Buat variable index bertipe int
Label)
untuk menginputkan
2. lakukan insisialisasi variable index
nilai pada variable
dengan memanggil method search
Lof dalam vertex
dengan inputan label
3. buat variable tetangga bertipe List
String
4. inisialisasikan tetangga =
vertekslist[index].getNeigborhood
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
57
5. buat variable rDensity dengan tipe List
Double
6. insialisasikan variable i= 0 , selama i
< tetangga.size lakukan langkah
dibawah ini :
a. insialisasikan variable index1
bertipe integer
b. inisialisasikan variable index1
= search(tetangga.get(i)
c. tambahkan nilai ke list
rDensity dengan menginputkan
reachbiltyDensty dari
vertekslist[index1]
7. set lof pada vertekslist[index] dengan
memanggil method getLof dengan
inputan rDensity,
vertekslist[index].getReachbilityDensi
ty()
setDataLOF(String
Method ini berfungsi
label)
untuk
data
obyek
menyimpan
LOF
seluruh
kedalam
1. buat variable dlf dengan tipe list
DataLOF
2. buat variable obyek dl yang bertipe
DataLOF
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DaraLOFTableMode
l
58
3. selama i = 0 dan I kurang dari
vertekslist length lakukan langkah
dibawah ini :
a. cek apakah nilai Lof dari
vertekslist[i] >= 1.1 jika ya
lakukan langkah
selanjutnya
b. insialisasikan dl sebagai
obyek baru dari kelas
DataLOF
c. set nilai atribut Label dari
dl = label dari
verteksList[i]
d. set nilai atibut Lof dari dl =
lof dari verteksList[i]
e. tambahkan dl kedalam List
dlf
4. buat variable obyek dm yang bertipe
DataLofTableModel, dengan
menginputkan dlf serta label sebagai
inputan parameter
5. kembalikan nilai dm
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
59
Search(String
Mthod ini berfungsi
label)
untuk mencari posisi
verteksList length lakukan langkah
indeks
dibawah ini :
dari
suatu
vertekslist
1. insialisasikan i=0 selama ikurang dari
a. jika label sama denga label dari
verteksList[i] maka kembalikan nilai I
dan proses pencarian berhenti
2. kembalikan nilai -1 yang berarti tidak
terdapat data dalam verteksList
Search2
Method ini berfungsi
1. insialisasikan i=0 selama ikurang dari
untuk
mencari
verteksList length lakukan langkah
vertekslist
tertentu
dibawah ini :
dan mengubah flag
a. jika garis[indeks][i] sama dengan
kunjungannya
jarak , maka set falg kunjungan dari
menjadi true
verteksList[i] menjadi true
4.3.5.3 Rincian Algoritma pada Method di Kelas CheckBoxTableModel
Nama method
Fungsi method
Algoritma method
add(int, SeleksiAtribut)
Menambahkan
1) Tambahkan
data
ke dalam
CheckBoxTable
Model
data
kedalam
arrayList lfm dengan inputan
parameter int dan seleksiAtribut
2) menambahkan
nilai
field_m
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
60
sebagai data di index ke-a ke
dalam list
removeRow()
Menghapus nama
3) Buat array list dengan nama s
atribut yang yang
4) Selama seleksi < lfm terpenuhi ,
telah dihapus dari
lakukan cek atribut yang akan
tabel data pada
dihapus terpilih.
tabel
seleksi
atribut
5) Jika !seleksi.getPilih=true maka
nilai seleksi ditambahkan ke list s
6) Set nilai lfm = s
4.3.5.4 Rincian Algoritma pada Method di Kelas DatabaseController
Nama method
Fungsi
Algoritma method
method
displayTableOracle(
Menampilkan
1. Buat variable stmt bertipe Statement
Connection)
data
2. Buat variable rset bertipet ResultSet
seluruh
table yang ada
3. Buat variable query bertipe String
di
4. Buat koneksi
oracle
database
kedalam database
oracle, dan simpan koneksi tersebut ke
dalam variable stnt
5. Set variable query = syntax untuk
menampilkan seluruh table dalam
oracle yaitu : "select table_name from
user_tables"
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
61
6. Kemudian eksekusi syntax tersebut
yang terdapat di variable query dan
eksekusi
dengan
menggunakan
variable stmt
7. Kemudian
simpan
hasil
eksekusi
query tersebut kedalam variable rset
8. Kembalikan nilai rset
displayTableSQL(
Menampilkan
Connection)
data
1. Buat variable stmt bertipe Statement
seluruh 2. Buat variable rset bertipet ResultSet
table yang ada 3. Buat variable query bertipe String
di
database 4. Buat koneksi
MySql
kedalam database oracle,
dan simpan koneksi tersebut ke dalam
variable stnt
5. Set variable query = syntax untuk
menampilkan seluruh table dalam oracle
yaitu : "show tables "
6. Kemudian eksekusi syntax tersebut yang
terdapat di variable query dan eksekusi
dengan menggunakan variable stmt
7. Kemudian simpan hasil eksekusi query
tersebut kedalam variable rset
8. Kembalikan nilai rset
selectTable(
Menampilkan
1. Buat variable stmt bertipe Statement
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Connection,String)
isi
62
tabel 2. Buat variable rset bertipet ResultSet
berdasarkan
tabel
3. Buat variable query bertipe String
yang 4. Buat koneksi
kedalam database oracle,
dipilih
dan simpan koneksi tersebut ke dalam
pengguna
variable stnt
5. Set variable query = syntax untuk
menampilkan seluruh table dalam oracle
yaitu : " "select * from table "
6. Kemudian eksekusi syntax tersebut yang
terdapat di variable query dan eksekusi
dengan menggunakan variable stmt
7. Kemudian simpan hasil eksekusi query
tersebut kedalam variable rset
8. Kembalikan nilai rset
4.3.5.5 Rincian Algoritma pada Method di Kelas DiagramBatang
Nama method
Fungsi method
Algoritma method
tampil(int[][],
Menampilkan
1. Membaca paramater input (array int
String[][], String[][])
grafik
distribusi
v, array String n , dan array String t)
per atribut sesuai 2. Inisialisasi i=0
pilihan pengguna
3. Selama
i
<n.length
lakukan
data.setValue(v[i][1], n[i][0], t[i][0])
4. createBarChart3D selama langkah 4
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
63
terpenuhi
4.4
Perancangan Struktur Data
Dalam pengembangan sebuah Sistem atau aplikasi diperlukan adanya
perancangan sebuah struktru data, perancangan struktur data ini berfungsi untuk
menggambarkan bagaiman sebuah data diolah dan disimpan dalam program, pada
penelitian tugas akhir ini konsep struktur data yang dipakai adalah konsep Graph
tak berarah dengan menggunakan struktur data matriks 2 dimensi.
menggunakan graf maka akan memudahkan
Dengan
dalam memetakan obyek data
beserta jarak sebuah obyek data dengan obyek yang lainnya.
4.4.1
Graf
Graf adalah sebuah kumpulan simpul-simpul(vertex) yang
saling
terhubung melalui sebuah garis(edge). Dalam penelitian ini obyek-obyek data
yang akan dicari outliernya disimbolkan dengan Vertex. Dalam vertex tersebut
terdapat atribut list yang berfungsi untuk menyimpan nilai-nilai atribut dari
sebuah obyek. Dengan menggunakan list tersebut nantinya akan dihitung jarak
satu obyek dengan obyek yang laiinya, jarak antar obyek ini disimbolkan dengan
edge
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
64
(Vertex) Mahasiswa1
edge :2.58
(List) nilai
Vertex Mahasiswa 2
edge :2.58
edge : 3.21
(List) nilai
edge : 1.05
edge : 3.21
edge : 1.05
Vertex Mahasiswa 3
(List) nilai
Gambar 4.5 Ilustrasi Struktur Data Graf
4.4.2
Matriks Dua Dimensi
Dalam penerapan konsep graph ini digunakan sebuah matriks 2 dimensi.
Matriks ini akan menyimpanvertex dan edge dari graph tersebut. Dimana vertex
adalah representasi dari obyek data dan edge adalah representasi dari jarak antar
obyek data.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
65
Ketika graf pertama kali dibentuk, edge sebuah obyek dengan obyek yang lain
dilambangkan dengan nilai -1, yang artinya obyek tersebut tidak terhubung,
karena belum dilakukan perhitungan jarak obyek data, dan jarak sebuah obyek
terhadap dirinya sendiri dilambangkan dengan nilai 0.
Tabel 4.2 Ilustrasi Struktur Data Matriks Dua Dimensi
Mahasiswa 1
Mahasiswa 2
Mahasiswa 3
Mahasiswa 1
0
-1
-1
Mahasiswa 2
-1
0
-1
Mahasiswa 3
-1
-1
0
Kemudian
dilakukan
perhitungan
jarak
setiap
verteks
dengan
menggunakan rumus jarak Ecludian Distance.Ketika edgedari suatu verteks ke
verteks yang lain sudah ditemukan maka nilai edge dari kedua verteks tersebut
diubah menjadi sama dengan hasil perhitungan menggunakan rumus ecludian
distance
Tabel 4.3 Ilustrasi Struktur Data Matriks Dua Dimensi Setelah Dilakukan
Perhitungan Jarak antar Vertex
Mahasiswa 1
Mahasiswa 2
Mahasiswa 3
Mahasiswa 1
0
2.58
3.21
Mahasiswa 2
2.58
0
1.05
Mahasiswa 3
3.21
1.05
0
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5
66
Perancangan Antarmuka
4.5.1
Tampilan Halaman Awal
Halaman awal adalah halaman pertama yang muncul saat user menjalankan
Sistem ini dalam halaman awal ini dalam halaman awal in iterdapat tombol
masuk, tombol masuk ini apabila di klik makan akan mengarah ke halaman
selanjutnya yaitu halaman utama.
SISTEM PENDETEKSI
OUTLIERMENGGUNAKAN ALGORITMA
LOCAL OUTLIER FACTOR
Masuk
Universitas Sanata Dharma Yogyakarta
-Copyright 2013-
Gambar 4.6 Tampilan Halaman Awal
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.2
67
Tampilan Halaman Utama
Halaman utama merupakan halaman dimana prose deteksi outlier
dilakukan, dalam halaman ini terdapat 2 buah tab, yang pertama yaitu tab
prosesing di dalam tab ini terdapat fungsi untuk mengimport file dalam excel dan
juga mengimport file dari database .data yang telah berhasil diimporakan
ditampilkan dalam sebuah tabel. Fungsi selanjutnya yaitu fungsi seleksi atribut,
pada fungsi ini pengguna dapat menyeleksi atribut mana saja yang akan dipakai.
Pada tab selanjutnya adalah tab untuk deteksi outlier, pada tab ini pengguna dapat
memasukan nilai minPts dan melakukan proses deteksi outlier dengan menekan
tombol proses. Setelah hasil outlier ditampilkan dalam tabel, pengguna juga dapat
menyimpan dalam sebuah file yang berbentuk word atau txt
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
68
APLIKASI DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL OUTLIER FACTOR
Bantuan
Preposesing
Deteksi Outlier
Tentang
Pilih File
Pilih DB
Keluar
Jumlah Data
Seleksi Atribut
Atribut 1
Cek All
Unchek
All
Hapus
Submit
Distribusi Atribut
Gambar 4.7 Tampilan Halaman Utama Tab Preposesing
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
69
APLIKASI DETEKSI OUTLIER MENGGUNAKAN ALGORITMA
LOCAL OUTLIER FACTOR
Bantua
n
Tentan
g
Preposesing
Deteksi
Outlier
minPts
Proses
Keluar
Jumlah Data
Hasil Deteksi Outlier
Label
Lof
Rangking
Simpan
Gambar 4.8 Tampilan Halaman Utama Tab Deteksi Outlier
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.3
70
Tampilan Halaman Bantuan
Halaman ini merupakan halaman yang berisi mengenai informasi bagaimana
caraSistem deteksi outlier menggunakan algoritma Local Outlier Factor
Bantuan
Tentang
Keluar
Keluar
Gambar 4.9 Tampilan Halaman Bantuan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4.5.4
71
Tampilan Menu Keluar
Menu ini berfungsi untuk keluar dari program, apabila user memilih tombol
keluar maka akan tampil dialog seperti gambar dibawah ini :
Apakah anda yakin ingin keluar?
Ya
Tidak
Gambar 4.10 Tampilan Dialog Keluar
4.5.5
Tampilan halaman pilih database
Pada halaman ini pengguna dapat memilih database yang akan digunakan, yaitu
oracle atau MySql, serta menginputkan konfigurasi database
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Pilih Koneksi
Database
Pilih Database :
Oracle
Username
:
Password
:
Database
:
URL
:
OK
Batal
Gambar 4.11 Tampilan Halaman Pilih Database
4.5.6
Tampilan Halaman Pilih tabel
Pada halaman in pengguna dapat memilih tabel yand ada di dalam database
dan kemudian mengirimnya ke halaman utama.
72
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
73
Daftar Tabel :
Pilih Tabel
Batal
Gambar 4.12 Tampilan Halaman Pilih Tabel
4.5.7
Tampilan Halaman DIstribusi Atribut
Halaman ini adalah halaman yang berfungsi untuk melihat distribusi per
atribut dari data yang telah diimport/di inputkan ke dalam tabel, dalam
halaman in user juga dapat melihat grafik per atribut dengan menekan tombol
lihat grafi
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DaftarAtribut :
Tabel Daftar Distribusi Atribut
Atribut
Lihat Grafik
Jumlah Data
Keluar
Gambar 4.13 Tampilan Halaman Distribusi Atribut
74
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB V
IMPLEMENTASI SISTEM
Bab ini berisi mengenai implementasi Sistem pendeteksian outlier
menggunakan algoritma local outlier factor, Sistem ini dibangun sesuai dengan
perancangan Sistem yang telah dibuat pada bab sebelumnya. Implementasi ini
dilakukan dengan menggunakan bahasa pemrograman Java menggunakan
aplikasi pemrograman netbeans versi 6.9.1 pada computer dengan spesifikasi
intel core i3, memori 2GB dan hardisk 500 GB.
5.1 Implementasi antarmuka
Berikut adalah implementasi antar muka dari Sistem deteksi outlier
menggunakan algoritma local outlier factor yang telah selesai dibangun :
5.1.1
Implementasi Halaman Awal
Halaman awal adalah halaman pertama ketika Sistem dijalankan, pada
halaman ini terdapat tombol masuk, apabila tombol ini ditekan maka pengguna
akan masuk ke tampilan selanjutnya yaitu halaman utama
75
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
76
Gambar 5.1 Implementasi Halaman Awal
5.1.2
Implementasi Halaman Utama
Setelah tombol masuk pada halaman awal ditekan, maka Sistemakan
menampilkan halaman utama,
pada halaman ini proses utama dari Sistem
dijalankan, yaitu proses preposesing dan deteksi outlier menggunakan algoritma
local outlier factor. Di dalam halaman ini terdapat dua buah tab yaitu tab
preposesing dan tab deteksi outlier.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
77
Gambar 5.2 Implementasi Halaman Utama Tab Preposes
Tab preposesing berfungsi untuk melakukan proses preposesing yaitu
meliputi input data dan seleksi atribut, dan melihat distribusi atribut. Pada tab ini
pengguna dapat mengimport data baik dari file excel maupun dari database.
Ketika pengguna memilih tombol pilih file maka akan muncul jFileChosser, pada
jFilechosser ini pengguna dapat memilih file bertipe .xls maupun .csv
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
78
Gambar 5.3 Implementasi JfileChosser
Ketika pengguna telah memilih file bertipe .xls atau .csv maka Sistemakan
mengambil data dari tabel tersebut dan menampilkan di dalam jTable
Gambar 5.4 Implementasi Halaman Utama Tab Deteksi Outlier
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
79
Selanjutnya pengguna dapat melakukan seleksi atribut dengan memilih
atribut yang akan dihapus pada bagian seleksi atribut, dalam seleksi ini pengguna
dapat memilih 1 atau lebih dari atribut yang akan dihapus .pengguna juga dapat
memilih tombol tandai semua , jika ingin menghapus semua atribut
Gambar 5.5 Kotak Seleksi Atribut
Setelah pengguna melakukan seleksi atrbut maka Sistem menghapus
atribut yang terdapat di tabel data, setelah pengguna selesai menyeleksi atribut
maka selanjutnya dilakukan proses deteksi outlier dengan menekan submit data,
ketika pengguna menekan tombol submit data maka Sistem akan menampilkan
tab selanjutnya yaitu Deteksi outlier
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
80
Gambar 5.6 Proses Input data
Pada tab deteksi outlier terdapat textField untuk menginputkan nilai
minPts, nilai minPts ini berfungsi untuk proses pencarian outlier
Gambar 5.7 Proses Deteksi Outlier
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
81
Setelah pengguna menginputkan memasukan nilai dari minPts selanjutnya,
pengguna harus menekan tombol proses, setelah tombol proses ditekan maka hasil
deteksi outlier ditampilkan di dalam tabel
Gambar 5.8 Tampilan Hasil Outlier
Setelah ditampilkan pengguna bisa membatasi hasil outlier yang akan
dicari, dengan menginputkan nilai di textField batas outlier
Gambar 5.9 Tampilan Hasil Seleksi LOF
Dalam halaman ini pengguna juga dapat menyimpan hasil outlier dengan
menekan tombol simpan outlier, pengguna dapat menyimpan outlier menjadi file
.doc dan .txt
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
82
Gambar 5.10 Tampilan Save Dialog
5.1.3
Implementasi Antar Muka Halaman Distribusi Atribut
Antar muka
ini adalah antar muka yang berfungsi untuk melihat
persebaran data per atribut beserta grafiknya dalam bentuk diagram batang untuk
menjalankan fungsi distribusi atribut pengguna harus menekan tombol distribusi
atribut terlebih dahulu yang terdapat di halaman utama, setelah tombol ditekan
maka akan tampil halaman distribusi atribut, di dalam halaman ini pengguna dapat
memilih taribut yang akan dicari persebarannya
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 5.11 TampilanHalaman Distribusi Atribut
Gambar 5.12 TampilanDistribusi per Atribut
83
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
84
Dalam halaman ini pengguna juga dapat melihat grafik dari persebaran atribut
tersebut dengan menekan tombol lihat grafik
Gambar 5.13 TampilanDiagram Batang persebaran atribut
5.1.4
Implementasi Antarmuka Halaman Pilih Basis Data
Antarmuka ini adalah antarmuka yang berfungsi untuk mengambil data
dari basis data, ketika penggguna menekan tombol pilih DB dari halaman utama,
maka Sistem akan menampilkan halaman pilih Database dalam halaman ini
pengguna dapat memilih jenis database yang akan digunakan (oracle atau MySql),
dalam halaman ini juga pengguna harus memasukan data konfigurasi dari
database tersebut yaitu username, password, beserta url nya
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Gambar 5.14 implementasi Halaman Pilih Koneksi
Gambar 5.15 Proses Input Konfigurasi Basis Data
85
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
86
Gambar 5.16 Proses Koneksi Berhasil
setelah memasukan data konfigurasi database pengguna harus menekan tombol ok
untuk memilih tabel yang ada pada database tersebut, setelah itu akan muncuk
konfirmasi apakah koneksi tersebut berhasil atau tidak, apabila berhasil maka
akan muncul dialog koneksi berhasil, setelah itu maka akan muncul dialog untuk
memilih tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
87
Gambar 5.17 Implementasi Halaman Pilih Tabel
Ketika salah satu tabel sudah dipilih maka Sistemakan mengambil data dari tabel
tersebut dan menampilkannya kedalam jTable pada halaman utama
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
88
Gambar 5.18 Hasil input data dari Database
5.1.5
Implementasi Halaman Bantuan
Halaman
ini
berisi
mengenai
informasi
tentang
bagaimana
carapenggunaan Sistem detksi outlier menggunakan algoritma local outlier
factor.Halaman ini dapat diakses dengan menekan tombol bantuan pada halaman
utama
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
Gambar 5.19 Implementasi Halaman Bantuan
5.1.6
Implementasi Antarmuka Halaman Tentang
Antar muka ini berisi mengenai informasi Sistem yang telah dibuat, yaitu
pengembang, nama Sistem, versi dari Sistem dan juga lisensi Sistem. Halaman ini
dapat diakses dengan menekan menu tentang pada halaman utama
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
90
Gambar 5.20 Implementasi Halaman Tentang
5.1.7
Implementasi Antarmuka Konfirmasi Keluar
Antarmuka ini adalah antarmuka yang digunakan untuk keluar dari Sistem.
Dalam dialog ini terdapat konfirmasi apakah pengguna benar-benar ingin keluar
dari Sistem, jika pengguna menekan tombol ya maka Sistemakan kelaur, dan
apabila pengguna menekan tombol No maka Sistemakan kembali ke halaman
utama
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
91
Gambar 5.21 Implementasi Halaman Konfirmasi Keluar
5.1.8
Implementasi Pengecekan Masukan
Dalam Sistem ini juga dilengkapi dengan error handling, sehingga ketika
ada masukan yang tidak sesuai dengan Sistem, maka Sistem dapat menanganni
dan mengkonfirmasikan kepada pengguna,
proses error handling ini cukup
penting, agar masukan yang salah tidak tidak menyebabkan error terhadap Sistem.
Berikut adalah error handling yang terdapat pada Sistem deteksi Outlier
menggunakan algoritma local outlier factor
1. Tampilan pesan kesalahan input Data
Pesan kesalahan ini muncul apabila pengguna menginputkan data selain data
.xls atau .csv
Gambar 5.22 Pesan Kealahan Input Data
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
92
2. Tampilan Pesan kesalahan konfigurasi Database
Tampilan pesan kesalahan ini akan muncul apabila pengguna salah
menginputkan konfigurasi database
Gambar 5.23 Pesan Kesalahan Konfigurasi Database
Apabila data yang di inputkan kosong maka akan muncul pesan kesalahan
seperti gambar dibawah ini :
Gambar 5.24 Pesan Kesalahan input parameter Database
3. Tampilan pesan kesalahan input nilai minPts
Tampilan pesan kesalahan ini akan muncul ketika pengguna salah
memasukan nilai minPts, apabilai nilai minPts kosong maka akan muncul
pesan kesalahan seperti dibawah ini :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
93
Gambar 5.25 Pesan Kesalahan nilai minPts kosong
Apabila nilai minPts yang diinputkan = 0 maka akan muncul pesan
kesalahan seperti gambar dibawah ini :
Gambar 5.26 Pesan Kesalahan nilai minPts 0
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
94
Apabila nilai minPts yang dimasukan memiliki karakter huruf atau
angka negative maka akan muncul pesan kesalahan seperti dibawah ini :
Gambar 5.27 Pesan Kesalahan nilai minPts negative atau mengandung
karakter huruf
4. Tampilan pesan kesalahan input nilai batas outlier
Tampilan pesan kesalahan ini akan muncul ketika pengguna salah
memasukan nilai batas outlier, apabila nilaiBatas outlier yang di inputkan
kosong makan akan muncul pesan kesalahan seperti berikut :
Gambar 5.28 Pesan Kesalahan nilai Batas Outlier kosong
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
95
Apabila nilai batas outlier yang diinputkan mengandung karakter huruf maka
akan muncul pesan kesalahan seperti berikut :
Gambar 5.29 Pesan Kesalahan nilai Batas Outlier mengandung karakter
huruf
5.2 Implementasi Kelas
Di dalam bagian akan dipaparkan mengenai hasil implmentasi kelas dan
algoritma yang telah dibuat kedalam Sistem, sesuai dengan perancangan pada bab
sebelumnya berikut adalah daftar kelas yang telah di implementasikan
Tabel 5.1 Implementasi kelas
No Nama Kelas
Nama File Fisik
Nama File Executable
1
DatabaseConnection
KoneksiDatabase.java
KoneksiDatabase.class
2
Graph
Graph.java
Graph.class
3
Vertex
Vertex.java
Vertex.class
4
SeleksiAtribut
SeleksiAtribut.java
SeleksiAtribut.class
5
CheckBoxTableModel
CheckBoxTableModel.java
CheckBoxTableModel.
class
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6
DatabaseController
DatabaseController.java
96
DatabaseController.clas
s
7
DiagramBatang
DiagramBatang.form
DiagramBatang.class
8
HalamanUtama
HalamanUtama.form
HalamanUtama.class
9
HalamanDistribusiAtribut
HalamanDistribusiAtribut.
HalamanDistribusiAtrib
form
ut.class
10
HalamanPilihDatabase
DBJDialog.java
DBJDialog.class
11
HalamanTampilTabel
PilihTable.form
PilihTable.class
12
HalamanAwal
HalamanAwal.form
HalamanAwal.class
13
HalamanBantuan
Bantuan.form
Bantuan.class
15
Halaman Tentang
DialogAbout.form
DialogAbout.class
16
Kontroller Lof
KontrollerLOF.java
KontrollerLOF.class
17
HalamanKonfirmasiKeluar HalamanKonfirmasiKeluar.
HalamanKonfirmasiKel
form
uar.class
18
Data Lof
DataLof.java
DataLof.class
19
Data Lof Table Model
DataLofTableModel.java
DataLofTableModel.cla
ss
Listing program dari setiap implementasi kelas dapat dilihat di lampiran 6.
5.3 Implementasi Struktur Data
Pada bagian perancangan telah disebutkan bahwa Sistem yang akan
dikembangkan ini menggunakan konsep graf dengan matriks dua dimensi, berikut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
97
merupakan hasil implementasi struktur data pada kelas vertex dan kelas graph
dalam program
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 sebuah 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 direpresentasikan kedalam vertex akan memiliki atribut-atribut
tersebut.
private String label;
private List<Double> nilai;
private boolean flagKunjungan = false;
private Double kDistance;
private List<String> neigborhood;
private List<Double> reachbilityDistance;
private Double reachbilityDensity;
private Double LOF;
Atribut yang pertama adalah label, atribut ini berfungsi untuk menyimpan
label dari setiap obyek, atribut yang kedua adalah atribut nilai, atribut ini bertipe
List<Double>, atribut ini berfungsi untuk menyimpan nilai yang akan dicari jarak
melalui rumus ecludian Distance, dalam hal ini setiap obyek bisa memiliki nilai
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
98
yang banyak. Atribut yang ketiga adalah atribut flagKunjungan, atribut ini
berfungsi untuk menandai tetangga dari suatu obyek yang memiliki jarak <
kDIstance, atribut yang keeempat adalah atribut kDistance, atribut ini berfungsi
untuk menyimpan jarak jangkauan maksimum dari setiap obyek data, atribut
selanjutnya adalah atribut neighborhood atribut ini memiliki tipe List<String>,
atribut ini berfungsi untuk menyimpan label tetangga suatu obyek data. atribut
selanjutnya adalah atribut reachbilityDistance atribut ini berfungsi untuk
menyimpan reachBility Distance dari tetangga suatu obyek. Atribut selanjutnya
adalah atribut reachbility Density, atribut ini akan menyimpan kepadatan local
dari setiap obyek, atribut yang terakhir adalah atribut lof atribut ini yang
menyimpan derajat lof dari setiap obyek data.
5.3.2
Implementasi Kelas Graph.java
Kelas ini merupakan kelas yang berfungsi untuk membentuk graph dan juga
membentuk verteks dari setiap obyek data. Di dalam kelas ini vertex dihubungkan
melalui sebuah edge, sehingga satu obyek pasti terhubung dengan semua obyek. .
di dalam kelas ini sebuah graph dibentuk melalui konstruktor dengan
menggunakan parameter maxVertex, disini maxVertex berfungsi sebagai ukuran
maksimu dari verteks dan graph yang akan dibentuk. Di dalam konstruktor ini
nilai awal dari edge diisi dengan -1 antara satu obyek dan obyek yang laiinya, dan
diisi dengan nilai 0 untuk jarak obyek terhadap dirinya sendiri. Pada tahap ini
verteks-verteks tersebut belum memilikin nilai untuk setiap atributnya
public Graph(int maxVertex) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
99
verteksList = new Verteks[maxVertex];
garis = new Double[maxVertex][maxVertex];
for (int i = 0; i < garis.length; i++) {
for (int j = 0; j < garis.length; j++) {
if (i == j) {
garis[i][j] = 0.0;
} else {
garis[i][j] = inf;
}
}
}
}
Setelah dilakukan pembentukan graph, maka langkah selanjutnya adalah
memasukan verteks kedalam graph, dalam kelas hal tersebut dilakukan melalui
metod addVerteks, di dalam method ini dilakukan pembuatan sebuah verteks
dengan parameter label dan nilai sebagai inputan untuk konstruktor, pada tahap
ini setiap obyek dimasukan kedalam verteks beserta dengan atribut label dan
nilai. Untuk atribut yang lain akan di inputkan pada saat proses deteksi outlier
public void addVerteks(String label, List<Double> nilai) {
verteksList[jumVertex++] = new Verteks(label, nilai);
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
100
Tahap selanjutnya adalah memasukan nilai edge antar obyek, nilai edge di
inputkan melalui method
addEdge, nilai edge merupakan nilai jarak yang
dihitung menggunakan rumus ecludian, untuk perhitungan
dilakukan di kelas controllerLof
public void addEdge(int x, int y, Double nilai) {
garis[x][y] = garis[y][x] = nilai;
}
nilai ecludian
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VI
PENGUJIAN DAN ANALISIS HASIL PENGUJIAN
Dalam pengembangan sebuah Sistem, diperlukan sebuah pengujian,
pengujian ini berfungsi untuk menganalisa dan mendeteksi perbedaan antara
kondisi yang ada dan yang dibutuhkan (yaitu bug) serta untuk mengevaluasi
perangkat lunak Pada bab ini akan dipaparkan mengenai pengujian dan analisi
hasil pengujian dari Sistem deteksi outlier menggunakan algoritma local outlier
factor, dibawah ini merupakan tahap-tahap pengujian terhadap Sistem :
6.1 Rencana Pengujian :
Dalam pengujian Sistem ini akan dilakukan 3 metode pengujian : yang
pertama adalah metode pengujian dengan menggunakan blackbox, yang kedua
pengujian perubahan nilai atribut (minPts) terhadap hasil deteksi outlier dan yang
ketiga pengujian reviewer dan Validitas pengguna. Metode pengujian dengan
blackbox adlah pengujian yang mengabaikan mekanisme internal Sistem atau
kompnen dan hanya focus pada keluaran yang dihasilkan sebagai respon terhadap
input yang dipilih dan kondisi saat di eksekusi, metode ini dilakukan untuk
menguji apakah
perangkat lunak sudah berfungsi dengan benar. Pengujian
perubahan nilai atribut(minPts) terhadap hasil deteksi outlier dilakukan dengan
cara mengubah nilai masukan parameter minPts. Pengujian reviewer dan validitas
pengguna dilakukan dengan cara membandingkan hasil Sistem dengan analisis
yang dilakukan oleh pengguna, yaitu kaprodi teknik Informatika. Dibawah ini
adalah tabel rencan pengujian menggunakan metode blackbox
101
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Tabel 6.1 : Tabel Rencana Pengujian Blackbox
Kelas Uji
Butir Uji
DatabaseConnection
Uji
Jenis Pengujian
coba
koneksi
ke Blackbox
dalam basis data (MySql
dan Oracle)
Halaman Utama
Menampilkan data file Blackbox
dengan extensi .xls
Menampilkan
dta
file Blackbox
dengan extensi .csv
Menampilkan data dari Blackbox
tabel basisdata
Melakukan
seleksi Blackbox
atribut
Menampilkan
hasil Blackbox
deteksi outlier
Melakukan
pembatasan Blackbox
nilai LOF
Menampilkan
hasil Blackbox
Dteksi outlier
Halaman pilih Database
Menampilkan
form Blackbox
pilihDatabase
masuk
ke
untuk
basis
data
102
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
sesuai
dengan
103
pilihan
pengguna
Halamana Tampil Database Menampilkan
daftar Blackbox
tabel dari database yang
telah dipilih sebelumnya
Halaman Distribusi Atribut
Menampilkan
form blackbox
halaman grafik
Menampilkan
persebaran
tabel
data
per
atribut
Menampilkan
grafik
distribusi per atribut
6.1.1
Hasil Pengujian Blackbox
6.1.1.1
Pengujian Input Data
dibawah ini adalah data hasil pengujian pada kelas HalamanUtama
Tabel 6.2 : Tabel Pengujian Input Data
Kasus Dan Hasil Uji (Data Benar)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
Diharapkan
diperoleh
Memasukan
data Data
tertampil Data
Kesimpulan
tertampil Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
berekstensi .xls
Memasukan
kedalam tabel
data Data
104
kedalam tabel
tertampil Data
dari file dengan kedalam tabe
tertampil Diterima
kedalam tabel
extensi .csv
Input
data
dari Data tertampil ke Data
tabel basis data
dalam tabel
kedalam tabel
Melakukan proses Menghasilkan
deteksi
outlier keluaran
menggunakan
algoritma
deteksi
tertampil Diterima
Hasil
hasil outlier
deteksi Diterima
berhasil
beserta ditampilkan
Local atribut terkait
Outlier Factor
Kasus Dan Hasil Uji (Data Salah)
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Input data dengan Menampilkan
extensi selain .xls pesan
atau .csv
yang di inputkan
salah
Pesan peringatan Diterima
peringatan berhasil tampil
bahwa extensi data
Kesimpulan
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.1.1.2
105
Pengujian Koneksi Database
Dibawah ini adalah data pengujian input data pada halaman pilih Database
Tabel 6.3 : Tabel Pengujian Koneksi Database
Kasus dan Hasil Uji (Data Benar)
Aktifitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Input
username, Menampilkan
password,
url, pesan
database benar
Pesan
Kesimpulan
berhasil Diterima
pengguna ditapilkan
telah
berhasil
melakukan
koneksi ke dalam
basis data
Input
username, Menampilkan
password
,
url pesan
benar
Pesan
berhasil Diterima
bahwa ditampilkan
pengguna berhasil
melakukan
koneksi
kedalam
basis data
Kasus dan hasil uji (data Salah)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Input
username, Menampilkan
Pesan
Kesimpulan
berhasil Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
password
, pesan
bahwa ditampilkan
databaseName dan username
url
ada
yang password
kosong
database, url tidak
boleh
ada
yang
kosong
Input username , Menampilkan
password url ada pesan
yang kosong
Pesan
berhasil Diterima
bahwa tampil
username,
password dan url
tidak boleh kosong
Input
username Menampilkan
password
, pesan
Pesan
berhasil Diterima
peringatan ditampilkan
database name dan bahwa konfigurasi
url ada yang slah
yang
dimasukan
salah
Input
usename, Menampilkan
password, dan url pesan
ada yang salah
salah
berhasil DIterima
peringatan ditampilkan
bahwa konfigurasi
yang
Pesan
dimasukan
106
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.1.1.3
107
Pengujian Seleksi Atribut
Dibawah ini adalah data pengujian untuk fungsi seleksi atribut
Tabel 6.4 : Tabel Pengujian Seleksi Atribut
Kasus Dan Hasil Uji
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Memilih
salah Atribut yang dipih Data
satu
lebih terhapus di dalam atribut
yang
atribut yang akan tabel seleksi dan dipilih
terhapus
atau
dihapus,
tabel data
Kesimpulan
sesuai Diterima
dari tabel
kemudian
menekan
tombol
hapua
Menekan tombol semua
tandai semua
ditandai
atribut Semua
atribut Diterima
untuk berhasil ditandai
dihapus
Menekan tombol Semua
batal tandai semua tidak
atribut Semua atribut di Diterima
tertandai, dalam tabel tidak
dan atribut yang ditandai
telah
menjadi
tertansai
tertandai
tidak
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.1.1.4
108
Pengujian Deteksi Outlier
Dibawah ini adalah data pengujian untuk fungsi deteksi outlier pada kelas
halaman utama
Tabel 6.5 : Tabel Pengujian Deteksi Outlier
Kasus dan Hasil Uji Data Benar
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Kesimpulan
Input nilai minPts Hasil
deteksi Hasil
Deteksi Diterima
dengan
beserta outlier
beserta
inputan outlier
angka dan lebih atributnya
atributnya
dari 0
Input nilai batas Hasil
deteksi Hasil
deteksi Diterima
minPts
beserta outlier
beserta
dengan outlier
inputan angka
atribut
dengan atributnya
Kasus dan hasil Uji (Data Salah)
Aktivitas yang
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Input nilai minPts Pesan
kosong
kesalahan Pesan
bahwa nilai yang tertampil
di inputkan dalam
minPts tidak boleh
kosong
Kesimpulan
kesalahan Diterima
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Input nilai minPts Pesan
angka -
kesalahan Pesan
kesalahan Diterima
bahwa nilai yang ditampilkan
di inputkan dalam
minpts tidak boleh
angka negative
Input
minPts
nilai Pesan
kesalahan Pesan
kesalahan Diterima
berupa bahwa nilai minpts tertampil
karakter huruf
yang di inputkan
tidak
boleh
mengandung
karakter huruf
Input nilai batas Pesan
outlier
kesalahan Pesan
berupa bahwa nilai batas tertampil
karakter huruf
outlier
yang
inputkan
di
tidak
boleh mengandung
karakter huruf
kesalahan Diterima
109
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6.1.1.5
110
Pengujian lihat grafik atibut
Tabel 6.6 : Tabel Pengujian Lihat Grafik Atribut
Kasus dan Hasil Uji(Data Outlier)
Aktivitas yang
Keluaran yang
Hasil yang
dilkukan
diharapkan
didapat
Memilih
Kesimpulan
nama Detail jumlah data Detail jumlah data Diterima
atribut
dari atribut yang dari atribut yang
dipilih tertampil di dipilih
dalam tabel
tertampil
di dalam tabel
Menakena tombol Detail jumlah data Detail jumlah data Diterima
lihat grafik
serta
persebaran serta
atribut
tertampil atribut
tertampil
dalam
bentuk dalam
bentuk
diagram batang
6.1.1.6
persebaran
diagram batang
Pengujian Simpan Hasil Deteksi Outlier
Tabel 6.7 : Tabel Pengujian Simpan Hasil Deteksi Outlier
Kasus dan uji hasil
Aktivitas
Keluaran yang
Hasil yang
dilakukan
diharapkan
didapat
Kesimpulan
Menekan tombol File tersimpan di File tersimpan di Diterima
simpan
dan lokasi yang dipilih lokasi yang dipilih
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
memilih extensi pengguna
.doc
dan pengguna
111
dan
berekstensikan .doc berekstensikan .doc
Menekan tombol File tersimpan di File tersimpan di Diterima
simpan
dan lokasi yang dipilih lokasi yang dipilih
memilih extensi pengguna
.txt
dan pengguna
berekstensikan .txt
6.1.2
dan
berekstensikan .txt
Kesimpulan Hasil pengujian Blackbox
Berdasarkan hasil pengujian Sistem deteksi outlier menggunakan algoritma
local outlier factor ini sudah dapat menangani kesalahan (error handling) dengan
baik. Secara umum fungsi-fungsi di dalam Sistem tersebut sudah berjalan dengan
baik dan sesuai dengan yang diharapkan
6.1.3
Hasil
Pengujian
Efek
Perubahan
Nilai
Atribut
minPtsTerhadap Nilai LOF
Pengujian ini dilakukan dengan cara mengubah nilai input parameter minPts
terhadap hasil deteksi outlier. Berikut ini adalahtabel hasil deteksi outlier
mahasiswa angkatan 2007 dan 2008
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
112
1. Pengujian Data Mahasiswa angkatan 2007-2008 semester 1 jalur test
Tabel 6.8 : Tabel Pengujian Data Mahasiswa angkatan 2007-2008 jalur test
minPts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Max
Min
2.67
1
2.36
0.91
2.28
0.93
2.31
0.89
2.31
0.94
2.13
0.94
2.13
0.94
2
0.96
1.89
0.96
1.9
0.95
1.87
0.94
1.82
0.95
1.81
0.94
1.8
0.94
1.79
0.95
1.73
0.95
1.7
0.95
1.72
0.96
1.69
0.96
1.67
0.97
1.65
0.96
1.61
0.96
1.64
0.96
1.61
0.96
1.59
0.96
1.58
0.96
1.55
0.96
1.53
0.96
1.51
0.96
1.52
0.97
1.5
0.97
1.48
0.98
1.45
0.98
1.44
0.97
1.41
0.97
1.43
0.97
Mean
1.30963
1.21963
1.188333
1.143704
1.140185
1.129444
1.129444
1.115
1.109074
1.104259
1.09537
1.083704
1.08
1.079444
1.076667
1.072037
1.065556
1.063148
1.063148
1.058704
1.05537
1.050185
1.049259
1.046667
1.043889
1.042593
1.040556
1.038889
1.034444
1.033519
1.030741
1.028333
1.025741
1.024259
1.022407
1.02
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
37
38
39
40
1.41
1.39
1.36
1.34
0.97
0.98
0.98
0.98
113
1.019444
1.018333
1.014815
1.015185
3
LOF
2.5
2
Max
1.5
Min
Mean
1
0.5
0
1
3
5
7
9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39
Gambar 6.1 Grafik Pengujian Data Angkatan 2007-2008 Jalur Test
2. Pengujian Data Mahasiswa angkatan 2007-2008 Jalur Prestasi
Tabel 6.9 : Tabel Hasil Pengujian 2007 -2008 Jalur Prestasi
minPts
1
2
3
4
5
6
7
8
9
Max
Min
3.55
1
2.14
0.82
2.61
0.91
2.79
0.92
2.79
0.93
2.99
0.92
3.14
0.94
3.04
0.93
3.14
0.95
Mean
1.270139
1.149722
1.142222
1.129861
1.123333
1.119722
1.120139
1.11875
1.123472
minPts
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
3.16
3.19
3.22
3.28
3.37
3.39
3.41
3.44
3.47
3.41
3.49
3.55
3.76
3.75
3.77
3.67
3.63
3.53
3.5
3.47
3.35
3.26
3.15
3.11
3.03
2.93
2.88
2.8
2.75
2.66
2.62
2.53
2.47
2.39
2.37
2.3
2.27
2.2
2.18
2.12
2.11
0.94
0.95
0.94
0.96
0.95
0.97
0.96
0.96
0.96
0.96
0.96
0.96
0.95
0.96
0.96
0.96
0.97
0.96
0.96
0.96
0.97
0.97
0.96
0.96
0.96
0.95
0.95
0.95
0.95
0.95
0.94
0.95
0.94
0.94
0.94
0.95
0.95
0.95
0.95
0.95
0.95
1.119861
1.125694
1.128056
1.127361
1.127917
1.129583
1.127639
1.133611
1.139861
1.139306
1.144583
1.148611
1.157639
1.159306
1.162083
1.158611
1.156944
1.153194
1.15125
1.148056
1.140556
1.133889
1.129028
1.126667
1.126667
1.122778
1.118472
1.115
1.109861
1.102361
1.096806
1.090278
1.084167
1.07875
1.075972
1.071111
1.066667
1.06125
1.057639
1.053611
1.052361
114
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
51
52
53
54
55
56
57
58
59
60
2.05
2.04
1.99
1.98
1.93
1.89
1.87
1.82
1.8
1.73
0.96
0.96
0.96
0.96
0.97
0.97
0.97
0.97
0.98
0.98
115
1.048333
1.045
1.040972
1.039306
1.034861
1.034167
1.03
1.0275
1.025278
1.021111
4
LOF
3.5
3
2.5
Max
2
Min
1.5
Mean
1
0.5
0
minPts
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
Gambar 6.2 Grafik Pengujian Data Angkatan 2007-2008 Jalur Prestasi
3. Pengujian Data Mahasiswa 2007-2008
Tabel 6.10 : Tabel Hasil Pengujian 2007 -2008
minPts
Max
Min
Mean
1
9.84
1 1.406032
2
2.91
0.8 1.189206
3
2.89
0.83 1.151746
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2.51
2.66
2.65
2.41
2.42
2.46
2.34
2.3
2.32
2.18
2.11
2.14
2.18
2.24
2.27
2.33
2.26
2.2
2.22
2.25
2.35
2.33
2.37
2.39
2.39
2.4
2.37
2.35
2.37
2.38
2.35
2.33
2.33
2.28
2.36
2.33
2.34
2.31
2.32
2.27
2.24
0.92
0.92
0.92
0.94
0.93
0.95
0.94
0.95
0.95
0.96
0.96
0.96
0.95
0.95
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.97
0.96
0.96
0.96
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.94
0.94
0.94
1.134127
1.115397
1.111111
1.109921
1.109524
1.110635
1.103016
1.101508
1.103651
1.103016
1.104524
1.110794
1.110159
1.111984
1.115873
1.116984
1.118413
1.118175
1.118651
1.118413
1.122619
1.124921
1.127381
1.125238
1.122063
1.12127
1.120317
1.117857
1.118016
1.118968
1.11746
1.116746
1.116746
1.115873
1.11627
1.115079
1.115238
1.113413
1.111984
1.110714
1.108333
116
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
2.25
2.25
2.26
2.23
2.2
2.21
2.19
2.16
2.17
2.16
2.13
2.14
2.11
2.08
2.06
2.06
2.04
2.03
2.04
2.02
2
1.99
2
1.98
1.96
1.94
1.95
1.93
1.92
1.9
1.91
1.9
1.88
1.86
1.88
1.86
1.84
1.83
1.84
1.82
1.8
0.94
0.94
0.94
0.94
0.94
0.94
0.94
0.94
0.94
0.94
0.94
0.95
0.95
0.94
0.94
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
0.96
1.106984
1.106349
1.105317
1.103333
1.101746
1.10127
1.099444
1.095952
1.094683
1.093492
1.091349
1.090238
1.088492
1.086905
1.085238
1.083492
1.082222
1.080714
1.078889
1.078095
1.075952
1.074048
1.07246
1.070635
1.069683
1.068016
1.066508
1.064286
1.062698
1.061032
1.060238
1.05881
1.05746
1.055952
1.054683
1.052778
1.052222
1.050952
1.04881
1.047222
1.046349
117
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
1.78
1.76
1.77
1.75
1.73
1.71
1.72
1.7
1.68
1.65
1.66
1.64
1.62
1.6
1.58
1.58
1.55
1.52
1.5
1.5
1.47
1.45
1.43
1.43
1.4
0.96
0.97
0.96
0.97
0.97
0.97
0.97
0.97
0.97
0.97
0.97
0.98
0.97
0.97
0.98
0.97
0.98
0.98
0.98
0.98
0.98
0.98
0.98
0.99
0.98
1.045397
1.04373
1.04119
1.040714
1.038651
1.03627
1.034762
1.033254
1.032698
1.029286
1.029286
1.028492
1.026587
1.024048
1.023492
1.021825
1.020397
1.01881
1.017302
1.016032
1.015079
1.014524
1.010794
1.011746
1.009127
118
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
119
12
LOF
10
8
Max
6
Min
Mean
4
2
0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
minPts
Gambar 6.3 Grafik Pengujian Data Angkatan 2007-2008
6.1.4
Kesimpulan Hasil Pengujian Efek Perubahan nilai Atribut
Penambangan Data
Dari hasil percobaan dengan melakukan perubahan nilai minPts maka dapat
disimpulkan bahwa :
1. Pada pengujian pertama yaitu dengan data mahasiswa 2007-2008 jalur test
semester 1, nilai rata-rata LOF(mean) cenderung minPts stabil pada saat
minPts 5-20.
2. Pada pengujian kedua yaitu dengan data mahasiswa 2007-2008 jalur
Prestasi, nilai rata-rata LOF(mean) cenderung stabil pada kisaran minPts
8-38
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
120
3. Pada pengujian ketiga yaitu dengan data Mahasiswa 2007-2008 Jalur
Prestasi dan Reguler, nilai rata-rata LOF(mean) cenderung stabil pada
kisaran minPts > 7
4. Dalam hal ini dapat disimpulkan bahwa nilai LOF sangat bergantung pada
kepadatan jarak obyek data dalam suatu jangkauan minPts, ketika suatu
cluster memiliki kepadatan yang tinggi maka nilai LOF akan cenderung
kecil, dan ketika suatu cluster memiliki kepadatan yang rendah maka nilai
LOF akan cenderung lebih besar
6.1.5
Hasil Pengujian Review dan Validitas Pengguna
6.1.5.1
Perbandingan Perhitungan Manual dan Hasil Sistem
Dalam pengujian kali data yang digunakan adalah data akademik mahasiswa
angkatan 2007, yang masuk melalui jalur test, dengan jumlah data 13 data atribut
yang digunakan adalah ips1, inilai1, nilai2, nilai3, nilai4, nilai5 . data akademik
tersebut dihitung secara manual dengan mengggunakan tools Microsoft Excel.
Hasil perhitungan tersebut akan dibandingkan dengan hasil deteksi outlier
menggunakan Algoritma Local Outlier Factor.
Tabel 6.11 Tabel Data Set Untuk perbandingan Perhitungan Manual Dan Sistem
Nomor
Alias
ips1
P1
P2
P3
P4
P5
3.72
2.89
2.56
3.28
1.89
nil11
nil12
nil13
nil14
nil15
8.00
6.00
6.00
7.00
5.00
6.00
5.00
5.00
7.00
5.00
6.00
4.00
5.00
7.00
5.00
7.00
6.00
7.00
6.00
6.00
6.00
5.00
6.00
6.00
7.00
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
P6
P7
P8
P9
P10
P11
P12
P13
1.44
4.00
1.72
2.89
2.94
2.94
2.44
1.72
10.00
6.00
3.00
5.00
7.00
6.00
5.00
7.00
5.00
6.00
2.00
5.00
5.00
4.00
5.00
6.00
9.00
4.00
8.00
8.00
5.00
6.00
6.00
8.00
6.00
4.00
3.00
5.00
5.00
3.00
5.00
8.00
121
7.00
7.00
1.00
7.00
4.00
7.00
5.00
2.00
Dibawah ini merupakan tabel hasil perbandingan perhitungan manual dengan
perhitungan yang dilakukan oleh Sistem
Tabel 6.12 Tabel Hasil Perhitungan Manual
Nomor Alias
P8
P6
P13
P5
P7
P1
P4
P11
P2
P10
P9
P3
P12
LOF
1.54
1.46
1.22
1.09
1.06
1.04
1.00
0.99
0.99
0.98
0.97
0.97
0.91
Ranking
1
2
3
4
5
6
7
8
9
10
11
12
13
Hasil Perhitungan Outlier menggunakan Sistem
Tabel 6.13 : Tabel Hasil Perhitungan Sistem
nama_mhs
P8
P6
Lof
1.68
1.43
Ranking
1
2
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
P13
P7
P1
P12
P2
P4
P10
P5
P9
P11
P3
1.29
1.09
1.05
1.01
1.0
1.0
1.0
0.99
0.99
0.99
0.98
6.1.5.2
122
3
4
5
6
7
8
9
10
11
12
13
Kesimpulan Hasil Perbandingan Perhitungan Manual dengan
Perhitungan menggunakan Sistem
Secara umum hasil yang didapat tidak jauh berbeda, perbedaan hanya
terjadi pada nilai LOF namun itu tidak terlalu signifikan, hal ini terjadi karena
perbedaan hasil pembulatan dan perhitungan dalam Ms.Excel dengan Java.
6.1.5.3
Hasil Review Pengguna
Pengujian ini dilakukan untuk mengetahui bahwa hasil dari sistem benarbenar memiliki makna sebagai outlier, oleh karena itu perlu dilakukan analisis
oleh Kaprodi sebagai pemilik data untuk mengetahui bahwa obyek data yang
dihasilkan memang benar-benar berbeda dari sekumpulan data yang ada, dan
memang memiliki makna sebagai outlier.Karena algoritma LOF tidak
menyatakan outlier secara eksplisit maka, hasil outlier yang diambil atau
ditentukan adalah hasil outlier yang cukup jauh dari yang lainnya atau
menjauhi nilai 1. Dalam pengujian ini digunakan 3 macam dataset, detail data
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
123
dan hasil pengujian dapat dilihat di lampiran 5, berikut adalah hasil deteksi
outlier yang diperoleh :
1. Hasil outlier untuk data Akademik Mahasiswa Teknik Informatika
Angkatan 2007-2008 Jalur Test 57 data, dengan menggunakan nilai
minPts = 10, dan batas outlier 1,4
Tabel 6.14 : Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Test
Semester No.Urut
Mahasiswa
1
28
2
28
3
28
74
50
4
28
67
68
LOF ips1 ips2 ips3 ips4 nil1
nil2
nil3
nil4
nil5
1.9
1.84
1.89
1.75
1.51
1.91
1.48
1.43
0.80
0.80
0.80
2.00
2.40
0.80
2.00
1.60
3.20
3.20
3.20
3.60
2.80
3.20
1.20
2.00
1.20
1.20
1.20
3.20
1.20
1.20
1.60
2.40
0.40
0.40
0.40
1.60
3.60
0.40
1.60
1.20
1.72
-
1.65
-
1.53
0.19
0.59
-
1.68
0
0
1.20
1.20
1.20
3.20
2.40
1.20
2.80
2.80
2. Hasil outlier untuk data angkatan 2007-2008 Jalur Prestasi dengan
menggunakan nilai minPts = 20, dan batas outlier = 1,5 denganjumlah
data 72 data.
Tabel 6.15 : Tabel Hasil Perhitungan Sistem 2007-2008 Jalur Prestasi
Semester
1
No.Urut
Mahasiswa
76
124
15
79
94
LOF
ips1
ips2
ips3
ips4
final
3.49
2.21
1.88
1.61
1.53
.85
1.45
3.55
1.85
1.90
-
-
-
2.85
2.90
2.16
2.98
2.77
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
124
17
3.46
0.32
2.72
124
3.15
0.44
2.90
94
1.73
1.35
2.77
107
1.75
3.92
3.33
17
4.68
0.69
2.72
107
1.64
3.76
3.33
3
1.51
3.78
2.78
88
2.72
0.94
2.89
94
2.31
1.20
2.77
122
1.97
1.47
3.05
87
1.58
1.83
2.80
3. Hasil Outlier untuk data angkatan 2007-2008 jalur Prestasi dan jalur
3
4
Test dengan nilai mnPts 30, batas outlier 1.6dan jumlah data 126
Tabel 6.16 : Tabel Hasil Perhitungan Sistem 2007-2008
Semester
1
2
3
4
No.Urut
Mahasiswa
76
28
26
124
27
36
17
124
28
107
68
74
74
17
50
28
46
67
107
67
68
47
46
28
LOF ips1
ips2
ips3
2.37
2.17
1.74
1.67
1.62
1.62
3.17
2.31
2.09
1.83
1.75
1.64
3.03
2.6
2.54
2.17
1.89
1.78
1.72
2.35
2.35
2.27
2.13
1.96
0.32
0.44
1.65
3.92
1.00
1.04
-
0.19
0.69
0.59
1.53
0.31
1.28
3.76
-
0.85
1.72
1.44
1.45
4.00
1.40
-
ips4
-
0
0
0.05
0.31
1.68
Final
2.85
1.12
2.96
2.90
2.32
2.40
2.72
2.90
1.12
3.33
2.00
2.56
2.56
2.72
2.56
1.12
2.76
2.04
3.33
2.04
2.00
2.40
2.76
1.12
Jalur
Tes
Prestasi
Tes
Tes
Prestasi
Tes
Tes
Prestasi
Prestasi
Tes
Prestasi
Test
Test
Tes
Prestasi
Tes
Tes
Tes
Tes
Prestasi
Tes
Tes
Tes
Tes
Tes
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
72
39
88
74
6.1.5.4
1.8
1.72
1.7
1.65
-
-
-
0.82
0.83
0.94
0.92
2.96
2.44
2.56
2.56
125
Tes
Tes
Prestasi
Tes
Kesimpulan Hasil Pengujian Review dan Validitas oleh
Pengguna
1. Dari pengujian data akademik mahasiswa 2007-2008 jalur test
didapat hasil sebagai berikut :
a. Pada semester 1 terdapat satu mahasiswa yang berpotensi
menjadi outlier yaitu mahasiswa no 28,
dimana derajat
outliernya cukup tinggi yaitu 1.9, mahasiswa ini memiliki nilai
ips yang rendah, serta nilai masuk yang rendah juga.
b. Pada semester 2 obyek yang menjadi outlier tetap mahasiswa
no 28, karena mahasiswa tersebut masih memiliki nilai ips
yang rendah
c. Pada semester 3 terdapat 3 buah mahasiswa yang berpotensi
outlier, mahasiswa pertama masih sama dengan semester 1 dan
2 yaitu mahasiswa no 28, mahasiswa selanjutnya yaitu
mahasiswa dengan no 74 dan 50. Mahasiswa no 74 memiliki
nilai ips yang sangat rendah yaitu 0.19 dan memiliki nilai
masuk yang tinggi, mahasiswa no 50 juga memiliki nilai ips
yang sangat rendah yaitu 0.59 dan memiliki nilai tes masuk
yang tidak terlalu tinggi ataupun tidak terlalu rendah.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
126
d. Pada semester 4 terdapat 3 buah mahasiswa yang memiliki
potensi sebagai outlier, mahasiswa pertama masih sama dengan
semester sebelumnya yaitu mahasiswa dengan no 28, kemudian
mahasiswa 67 dan 68. Mahasiswa no 67 dan 68 memiliki nilai
ips 0, dan nilai test masuk tidak terlalu tinggi atau tidak terlalu
rendah.
2. Dari pengujian data akademik mahasiswa 2007-2008 jalur prestasi
didapat hasil sebagai berikut :
a. Pada semester 1 terdapat 5 mahasiswa yang memiliki potensi
sebagai outlier yaitu mahasiswa 76, 124, 15 79 dan 94.
Mahasiswa-mahasiswa tersebut memiliki nilai ips yang rendah
dan memiliki nilai final yang berada di tengah-tengah, tidak
terlalu tinggi dan tidak terlalu rendah
b. Pada semester 2 terdapat 4 mahasiswa yang memiliki potensi
sebagai outlier yaitu mahasiswa no 17, 124, 94 dan 107.
Mahasiswa 94 dan 107 adalah mahasiswa yang memiliki nilai
ips rendah dan nilai final yang berada di tengah-tengah,
mahasiswa ini sebelumnya juga menjadi outlier pada semester
1, mahasiswa no 17 yang sebelumnya tidak berpotensu menjadi
outlier, kini memiliki potensi menjadi outlier, hal itu
dikarenakan ips dari mahasiswa tersebut pada semester 2
sangat rendah yaitu 0.32. mahasiswa yang selanjutnya yaitu
mahasiswa dengan no 107, berbeda dengan mahasiswa
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
127
sebelumnya, mahasiswa ini berpotensi menjadi outlier karena
memiliki nilai IPS yang sangat tinggi yaitu 3.92, serta nilai
final yang juga tinggi.
c. Pada semester 3 terdapat 3 mahasiswa yang memiliki potensi
sebagai outlier, mahasiswa no 17 menjadi outlier karena
memiliki nilai ips yang rendah sedangkan mahasiswa no 107
dan no 3 menjadi outlier karena memiliki nilai ips yang
cenderung lebih tinggi dari yang lainnya.
d. Pada semester 4 terdapat 4 mahasiswa yang berpotensi menjadi
outlier mahasiswa tersebut adalah mahasiswa no 88, 94, 122
dan 87. Keempat mahasiswa tersebut memiliki nilai ips yang
tergolong rendah dan nilai final yang sedang.
3. Dari pengujian data akademik mahasiswa 2007-2008 jalur prestasi
dan jalur test didapat hasil sebagai berikut :
a. Pada semester 1 terdapat 6 buah mahasiswa yang berpotensi
menjadi outlier mahasiswa tersebut yaitu mahasiswa no 76, 28,
26, 124, 27 dan 36. Mahasiswa 76, 28 dan 124 adalah
mahasiswa yang juga berpotensi menjadi outlier pada
pengujian sebelumnya yaitu pengujian dengan memisahkan
jalur prestasu dan jalur test. Sedangkan mahasiswa 28, 27 dan
36, pada pengujian sebelumnya yaitu pengujian mahasiswa
2007-2008 jalur test, tidak memiliki nilai LOF yang tinggi,
namun pada pengujian dengan menggabungkan kedua data,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
128
mahasiswa tersebut memiliki nilai LOF yang cenderung tinggi.
Mahasiswa 76, 28, 26 27 dan 36 berpotensi menjadi outlier
karena memiliki nilai ips yang cenderung rendah daripada yang
lainnya dan mahasiswa no 27 menjadi outlier karena memiliki
nilai ips yang cenderung tinggi dari yang lainnya.
b. Pada semester 2 diperoleh 6 mahasiswa yang berpotensi
menjadi outlier karena memiliki nilai LOF yang cenderung
tinggi yaitu mahasiswa no 17,124, 28, 107, 68, 74. Pada
pengujian jalur test dan jalur prestasi di semester 2 mahasiswa
no 17, 124, 107 dan mahasiswa 28, 17 juga berpotensi sebagai
outlier. Sedangkan mahasiswa no 68 pada pengujian jalur test
semester 2 tidak memiliki nilai LOF yang cenderung tinggi,
namun pada pengujian kali nilai LOF nya menjadi cenderung
tinggi.
c. Pada semester 3 diperoleh 7 mahasiswa yang berpotensi
menjadi outlier, mahasiswa tersebut yaitu mahasiswa no 74, 17,
50, 28, 46, 67 dan 107. Mahasiswa 74, 17, 50, 28, 67 dan 107
adalah mahasiswa yang memang memiliki potensi sebagai
outlier pada pengujian jalur prestasi dan jalur test, sementara
mahasiswa no 46 seblumnya tidak memiliki nilai LOF yang
tinggi dan tidak berpotensi sebagai outlier.
d. Pada semester 4 terdapat 9 mahasiswa yang memiliki potensi
sebagai outlier mahasiswa tersebut yaitu mahasiswa no 67, 68,
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
129
47, 46, 28, 72, 39, 88, 74. Mahasiswa yang berpotensi menjadi
outlier pada semester ini adalah mahasiswa yang nilai ips nya
rendah.
4. Dalam pengujian diatas tiap semester menghasilkan hasil yang
berbeda-beda.
5. Saat 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
pertmabahan jumlah data dan perbedaan penggunaan atribut.
6. Dari hasil review dan analisa oleh kaprodi, hasil deteksi outlier
diatas memang memiliki makna sebagai outlier, sehingga menurut
kaprodi data hasil pengujian diatas bisa diterima sebagai outlier.
6.2 Kelebihan Dan Kekurangan Sistem
Sistem dekteksi outlier menggunakan Algoritma Local Outlier Factor
memiliki kelebihan dan kekurangan sebagai berikut :
6.2.1
Kelebihan Sistem
Kelebihan Sistem deteksi outlier menggunakan ALgoritma Local
Outlier Factor yaitu sebagai berikut :
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
130
1. Sistem ini mampu menerima masukan data berupa file .xls, .csv,
dan data dari database(Oracle atau mySql)
2. Sistem ini mampu menyimpan hasil deteksi outlier kedalam file
data dengan extensi .doc dan .txt
3. Sistem ini dapat melakukan seleksi atribut pada data yang akan
dicari outliernya
6.2.2
Kekurangan Sistem
Kekurnagan Sistem deteksi outlier menggunakan Algoritma Local Outlier
Factor yaitu sebagai berikut :
1. Sistem ini tidak dapat melakukan seleksi baris dari tabel data, dan
hanya bisa melakukan seleksi kolom
2. Sistem ini hanya bisa menerima masukan dengan extensi file
tertentu
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
BAB VII
Kesimpulan dan Saran
7.1 Kesimpulan
Dari hasil Penelitian ini, dengan menggunakan algoritma local Outlier
factor untuk melakukan deteksi outlier terhadap data akademik mahasiswa
Teknik Informatika Universitas Sanata Dharma dapat ditarik kesimpulan
sebagai berikut :
1. Algoritma Local Outlier Factor dapat mendeteksi outlier dari data
akademik mahasiswa
2. Nilai atribut minPts sangat mempengaruhi nilai derajat LOF dari suatu
obyek data
3. Algoritma LOF tidak menyatakan secara eksplisit bahwa suatu obyek data
merupakan sebuah outlier, penentuan obyek data mana saja yang akan
menjadi sebuah outlier, ditentukan oleh pengguna dengan melihat besaran
nilai derajat ouliernya.
7.2 Saran
1. Sistem ini dapat dikembangkan agar mampu menerima jenis masukan data
yang lain sepert .arf, dat, dll
2. Akan lebih baik jika sistem ini mampu melakukan seleksi baris atau
melakukan seleksi menggunakan query.
131
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
132
3. Hasil Outlier dapat dikembangkan dalam bentuk grafik sehingga lebih
interaktiv.
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
DAFTAR PUSTAKA
Agyemang, M., & Ezeife, C. I. (n.d.). LSC-Mine: Algorithm for Mining Local
Outliers.
Baker, R. S., & Yacef, K. (2009). The State of Educational Data Mining in 2009:
A.
Breunig, M. M., Kriegelr, H.-P., Ng, R. T., & Sander, J. (200). LOF: Identifying
Density-Based Local Outliers. ACM 2000.
Han, J., & Kamber, M. (2006). Data Mining Concept and Techniques. San
Fransisco: Elsevier.
Handriyadi, D., Bijaksana, M., & Setiawan, E. B. (2009). Analisis Perbandingan
Clustering-Based, Distance-Based Dan Density-Based Dalam Mendeteksi
Outlier. SNATI.
Rosa, P. H., Gunawan, R., & Wijono, S. H. (2013). The Development of
Academic Data Warehouse as a Basic for Decision Making A Case Study
at XYZ University. International Conference an Enterprise Information
Systems and Apllication.
Santosa, B. (2007). Data Mining : Teknik Pemanfaatan Data Untuk Keperluan
Bisnis. Surabaya: Graha Ilmu.
Williams, L. (2006). Testing Overview and Black-Box Testing Techniques.
133
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
LAMPIRAN 1
1. Gambaran Umum Usecase
Nomor Nama Use Case
Deskripsi
Use
Case
001
Inputdata file .xls , .csv Use
Case
ini
atau tabel basisdata
menggambarkan proses
penginputan data oleh
user dari file xls atau csv
atau database ke dalam
Sistem
002
Deteksi outlier
Use
case
ini
menggambarkan proses
deteksi
outlier
dari
sebuah data yang telah di
inputkan oleh pengguna
003
Simpan hasil deteksi
Use
case
ini
outlier
menggambarkan proses
penyimpanan
hasil
deteksi outlier.
004
Seleksi atribut
Use
case
ini
menggambarkan proses
pemilihan atribut yang
akan digunakan untuk
proses deteksi outlier
005
Lihat grafik distribusi
Use
case
ini
per atribut
menggambarkan proses
dimana
user
dapat
melihat grafik distribusi
dari atribut obyek data
Aktor
Pengguna
Pengguna
Pengguna
Pengguna
Pengguna
2. Narasi Use Case(Lampiran)
Berikut adalah deskripsi setiap use case dalam bentuk narasi Use
case
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Inputdata file .xls , .csv
atau tabel basisdata
001
Pengguna
-
134
Jenis Use-Case
Kebutuhan
Operasional
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Berkepentingan :
Deskripsi
Kondisi Awal :
Urutan Aktivitas Normal
:
135
Use Case ini menggambarkan proses
penginputan data oleh pengguna dari file xls
atau csv atau database ke dalam Sistem
Pengguna telah masuk ke dalam sistem dan
berada pada Halaman Utama
Pengguna telah berada pada tab preposesing
pada halaman Utama
Aksi Aktor
Respon Sistem
Langkah 1 : Pengguna
menekan tombol “pilih
file”, untuk memilih file
tipe .xls atau csv
Langkah 2 : Sistem
menampilkan kotak
dialog
untuk
memilih file
Langkah 3 : Pengguna
memilih file dan
menekan tombol open
Langkah 4 : Sistem
menampilkan data
yang telah dipilh
kedalam tabel pada
halaman utama
Aktivitas Alternatif
Langkah 1a : Pengguna
memilih tombol pilih
DB
Langkah 2a :
Sistem
menampilkan kotak
dialog pilih
database
Langkah 3a : Pengguna
memilih jenis database
dan
memasukan
konfigurasi
database,
kemudian memilh ok
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
136
Langkah 4a :
Sistem
menampilkan
dialog bahwa
koneksi berhasil
Langkah 5a : Pengguna
memilih tombol ok
Langkah 6a :
Sistem
menampilkan
dialog pilih tabel
Langkah 7a : Pengguna
memilih tabel yang akan
digunakan
kemudian
memilih tombol ok
Langkah 8a :
Sistem
menampilkan data
ke dalam tabel di
halaman utama
Kondisi Akhir
Data yang telah dipilih tertampil di tabel yang
terdapat di tab preproses pada halaman utama.
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Deteksi Outlier
002
Kondisi Awal :
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
Use case ini menggambarkan proses deteksi
outlier dari sebuah data yang telah di inputkan
oleh pengguna
-Pengguna telah melakukan seleksi data atribut
dan telah menekan tombol submit pada tab
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
137
preprosesing
-Pengguna telah berada di tab deteksi outlier
Urutan Aktivitas Normal Aksi Aktor
Respon Sistem
:
Langkah 1 : Pengguna
memasukan nilai minPts
kemudian
menekan
tombol proses
Langkah
2
:
Sistem melakukan
proses pencarian
outlier
dan
menampilkan hasil
outlier
kedalam
tabel
Aktivitas Alternatif
Langkah 3 : pengguna
memasukan batas nilai
Lof
Langkah 4 : pengguna
menekan tombol ok
Kondisi Akhir
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Langkah 6 : Sistem
menampilkan hasil
outlier
kedalam
tabel
Pengguna dapat melihat hasil deteksi outlier di
dalam sebuah tabel
Simpan hasil pencarian
outlier
003
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
-
Use case ini menggambarkan proses
penyimpanan hasil deteksi outlier -Sistem telah
menampilkan hasil deteksi outlier
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
138
Kondisi Awal :
Pengguna telah melakukan proses deteksi
outlier, dan data hasil outlier telah tertampil
Urutan Aktivitas
Normal :
Aksi Aktor
Respon Sistem
Langkah 1 : Pengguna
memilih tombol simpan
Langkah 2 : Sistem
menampilkan
kotak save dialog
Langkah 3 : Pengguna
memilih
lokasi
penyimpanan data
Langkah 4 : Pengguna
memasukan nama file
data
Langkah 5 : Pengguna
memilih extensi file data
Langkah 6 : Pengguna
memilih tombol ok
Langkah 7 : Sistem
menyimpan
file
hasil outlier ke
dalam komputer
Aktivitas Alternatif
-
Kondisi Akhir
Hasil deteksi outlier dapat tersimpan dalam
format file berekstensi tertentu sesuai dengan
pilihan pengguna
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Kondisi Awal :
Seleksi atribut
004
139
Jenis Use-Case
Kebutuhan
Operasional
Pengguna
Use case ini menggambarkan proses pemilihan
atribut yang akan digunakan untuk proses
deteksi outlier pencarian outlier
-Sistem telah menampilkan data ke dalam
tabel datapada “Halaman Utama” tabbed pane
“Preprocess”
Urutan Aktivitas Normal Aksi Aktor
:
Respon Sistem
Langkah 1 : Sistem
menampilkan
semua nama atribut
di tabel seleksi
atribut
Langkah 2 : Pengguna
memilih atribut yang
tidak akan digunakan
dan kemudian memilih
tombol hapus
Langkah 3 : Sistem
menghapus atribut
dari data, yang
telah dipilih
Aktivitas Alternatif
Langkah
2a :Pengguna memilih tombol
„Tandai Semua‟ untuk menghapus semua
atribut atau menekan tombol „Batal Tandai
Semua‟ untuk membatalkannya
Langkah 3a : Menekan tombol Hapus Atribut
Langkah 4a-6a : seperti Aktivitas normal
Kondisi Akhir
Atribut yang tidak digunakan dihapus dari
tabel data
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
140
Nama Use-case :
ID Use-case :
Prioritas :
Pelaku Utama :
Pelaku Lain yang
Terlibat
Pihak Lain yang
Berkepentingan :
Deskripsi
Lihat grafik per atribut
005
Jenis Use-Case
Kebutuhan
Operasional
Kondisi Awal :
Sistem telah menampilkan data ke dalam tabel
data yang terdapat di dalam tab preprosesing
pada halaman utama
Pengguna
Use case ini menggambarkan proses dimana
user dapat melihat grafik distribusi dari atribut
obyek data
Urutan Aktivitas Normal Aksi Aktor
Respon Sistem
:
Langkah 1 : Pengguna
menekan
tombol
“Distribusi Atribut”
Langkah 2 : Sistem
menampilkan
“Halaman
Distribusi Atribut”
Langkah 3 : Pengguna
memilih atribut
Langkah 4 : Sistem
menampilkan
sebaran data dan
jumlah data untuk
atribut yang telah
dipilih
Langkah 5 : Menekan
tombol „Lihat Grafik‟
Langkah 6 : Sistem
Menampilkan
Grafik Distribusi
Atribut
dalam
bentuk
diagram
batang
Aktivitas Alternatif
-
Kondisi Akhir
Pengguna dapat melihat distribusi data untuk
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
atribut yang dipilih dan ditampilkan dalam
bentuk grafik diagram batang
141
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
142
LAMPIRAN 2
1. Diagram Aktivitas Memilih File xls atau csv
Pengguna
Sistem
Menekan tombol pilih file
Menampilkan halaman
jFileChosser
Memilih file.xls atau
.csv
Tidak
File sesuai?
Ya
Membaca Data dan menampilkan ke
dalam tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
143
2. Memilih DB
Pengguna
Sistem
Menampilkan halaman pilih
database
Menekan tombol pilihDB
Memilih jenis database (MySql
atau Oracle)
Tidak
Pilih
Oracle
Memasukkan username , password, URL
dan tekan tombol OK
Ya
Memasukkan username ,
password, database,URL
dan tekan tombol OK
Tidak
Koneksi
Berhasil ?
Menekan tombol ok
Ya
A
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
144
A
Menekan tombol ok
Membaca Data dan menampilkan
ke dalam tabel
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
145
3. Diagram aktivitas Deteksi outlier
Pengguna
Sistem
Menginputkan nilai
minPts
Tidak
Inputan
sesuai?
Ya
Menginputkan batas lof
Sistem mencari outlier dan
menampilkan hasil outlier ke
dalam tabe;
Sistem menampilkan hasil
outlier ke dalam tabe;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
146
4. Diagram Aktivitas Simpan Hasil Outlier
Pengguna
Menekan tombol simpan
Sistem
Menampilkan Save Dialog
Memilih lokasi
penyimpanan
Memilih extensi penyimpanan
data(txt, word)
Menekan tombol simpan
Sistem menyimpan file ke dalam
komputer
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
147
5. Diagram Aktivitas Distribusi Atribut
Pengguna
Menekan tombol seleksi
atribut
Sistem
Menampilkan halaman
distribusi atribut
Memilih atribut yang akan
dicari persebarannya
Menampilkan sebaran data
dan jumlah data
Menekan tombol lihat grafik
Menampilkan grafik
distribusi dalam bentuk
diagram batang
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
148
6. Diagram aktivitas seleksi Atribut
Pengguna
Sistem
Menampilkan daftar atribut
dalam tabel
Memilih atribut yang akan
dihapus
Menekan tombol hapus
Menghapus data atribut
yang telah dipilih pada tabel
seleksi data
Mengupdate atribut terpilih
pada table data
LAMPIRAN 3
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
149
1. Diagram Sequence Input Data file .xls atau .csv
<interface>>
Halaman Utama
<<entitiy>>
CheckBoxTabelModel
<<entitiy>>
Seleksi Atribut
Pengguna
1. Tekan tombol
pilih file
2. Tampil jFIleChosser
3. pilihFile()
4. New
CheckBoxTa
belModel
5. setAtribut(
coloumn
Name)
8. Tampil data ke
table data
9. Tampil Data ke
tabel seleksi Atribut
7.
add(seleksiA
tribut
6. SetPilih(False)
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
150
2. Diagram Sequence Input Data dari database
<interface>>
Halaman Utama
<<controller>>
DatabasController
<<entity>>
koneksiDatabase
<<entitiy>>
CheckBoxTabelModel
<<entitiy>>
Seleksi Atribut
Pengguna
1.Tekan Tombol
PilihDB
2. Tampil Halaman Pilih DB
3. ppilihDB()
4. DisplayTable()
5. getCOnnection
8.Tampil Halaman Pilih Tabel
7.
TableName
6. connection
9. pilih tabel
10. selectTable()
11. Table Data
12. New
CheckBoxTabelModel
13. setAtribut( coloumn Name)
14. SetPilih(False)
15. add(seleksiAtribut
16. Tampil data ke table data
17. Tampil Data ke tabel seleksi
Atribut
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
151
3. Diagram Sequence Deteksi Outlier
<interface>>
Halaman Utama
<<controller>>
LOF Kontroller
<<entitiy>>
graph
<<entity>>
verteks
<<entity>>
DataLofTableModel
Pengguna
1. input MinPts
2. inputData(jTable)
3. newGraph
4. newVertex
5. cariLOf(minPts)
6.setDataLof
7. setLabel,
setLof
8.addDataLof
9. tableModel
10. Tampil Hasil Outlier
<<Entitiy>>
DataLof
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
4. Diagram Sequence simpan data
<interface>>
Halaman Utama
Pengguna
1. Tekan Tombol
SImpan
2. Tampil Save Dialog
3. input lokasi
Penyimpanan
4. pilih format
data
5. pilih tombol
simpan
6.
simpanFile
7. konfirmasi File
berhasil disimpan
152
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
5. Diagram Sequence Lihat Distribusi Atribut Per Atribut
<<interface>>
Halaman Grafik
<interface>>
Halaman Utama
Pengguna
1. Tekan Tombol
“pilih Atribut”
2. Tampil Halaman Grafik
3. pilih atribut
4. tampil sebaran data
atribut
5. tekan tombol lihat grafik
6. Lihat Grafik
7. tampil
8. Grafik Distribusi Per
atribut
153
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
6. Diagram Sequence Seleksi atribut
<interface>>
Halaman Utama
<<interface>>
CheckBox TableModel
Pengguna
1. Tandai atribut
yg akan dihapus
2. tekan tombol
hapus Atribut
4. Remove row()
5. tampilkan tabel data tanpa
disertai atribut yang telah dihapus
154
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
155
Lampiran 4
Diagram Kelas Desain
<<boundary >>
Halaman Awal
<<controller>>
DatabaseKontroller
<<boundary >>
Pilih file excel
<<boundary >>
Halaman Preposesing
<<boundary >>
Halaman Utama
<<boundary >>
Halaman Deteksi Outlier
+DisplayTabelOracle()
+DisplayTabelMysql()
+selectTabel()
<<boundary >>
Pilih DB
<<controller>>
KontrollerLof
-gp
-Verteks
<<entity >>
Data Basis Data
:Graph
:VerteksList
+KontrollerLof(int MaxVertex)
+Display()
: void
+search(String Label)
: int
+search2(Double jarak, int index)
: void
+cariKdistance(int indeks, int jangkauan)
: Double
+cariNeigborhood(Double kDistance, int indeks)
: List<String>
+cariReachbilityDistance(int indexAwal, List<String> Tujuan): List<String>
+reachBilityDensity(List<Double> reachbiityDistance)
: Double
+getLof(List<Double> reachBilityDensity, Double ReacbilityDensityobyek) :Double
+cariJarakEcludian(int indexAwal, int IndexTujuan)
:Double
+setKdistance(String label, int jangkauan)
: void
+setNeighborrhood(String label)
:void
+setReachbilityDistance(StringLabel)
:void
+setLof(String Label)
:void
+setDataLof(String label)
: DataLofTableModel
+cariLof(int kDistance)
: void
+inputData(jTable)
:void
<<entitiy>>
graph
-
maxVertex : int
verteksList[]: Verteks
garis[][] : int
+ graph()
+setMaxVertex : void
+getMaxVertex : int
+addVerteks(char) : void
+addEdge(int,int,int) : void
- Label
-Lof
-ranking
:String
:Double
:int
+setLabel()
+getLabel()
+setLof()
+getLof()
+setRanking()
+getRanking()
:void
:String
:void
:Double
:void
:int
+ verteks(String Label)
+setLabel()
+getLabel()
+setFlagKunjungan()
+getFlagKunjungan()
+setNilai()
+getNIlai()
+setKdistance() :void
+getKdistance():Double
+setNeighborhood()
+getNeighborhood()
+setReachbiityDistance()
+getReachbiityDistance()
+setReachbiityDensity()
+getReachbiityDistance()
+Lof()
:void
+getLof()
:List<Double>
- Atribut
-pilih
:void
:List<String>
:void
:List<Double>
:void
:Double
:String
:boolean
+ seleksiAtribut(String vl, boolean st)
+setAtribut()
:void
+getAtribut()
:Double
+setPilih()
:void
+getPilih()
:boolean
:String
:boolean
:List<double>
:Double
:List<String>
:List<Double>
:Double
:Double
:void
:Double
:void
:boolean
:void
:List<Double>
+ getMetaData() : ResultsetMetaData
+ addElement(Object): Void
+ exportTable(jTable, file) : Void
<<entity>>
Seleksi Atribut
<<entity>>
Verteks
- Label
-flagKunjungan
-nilai
-kDistance
-neighborhood
-reachbilityDistance
-reachbilityDensity
-Lof
- data : Vektor
- columnNames : Vektor
<<entity>>
DataLof
<<entity>>
CheckBoxTableModel
<<entity>>
DataLofTableModel
-dlo
:List<dataLof>
-label
:String
+DataLofTableModel(List<DataLOF> dlo, String
label1)
+ getRowCount()
:int
+ getColoumCount()
:int
+ getValueAt()
:Object
+ getColoumName()
:int
-Colom[]
Fm
Lfm
:String
:SeleksiAtribut
:List<SeleksiAtribut>
+CheckBoxTableModel()
+ getRowCount()
+ getColoumCount()
+ getValueAt()
+ getColoumName()
:int
:int
:Object
:int
:ResultSet
:ResultSet
:ResultSet
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
156
Lampiran 5
1. Data set Mahasiswa 2007 – 2008 Jalur Test
Nomor
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ips1
3.72
2.89
2.56
3.28
1.89
1.44
4.00
1.72
2.89
2.94
2.94
2.44
1.72
2.80
2.90
1.40
2.65
2.65
3.35
2.70
2.55
3.10
2.45
2.55
2.75
2.25
2.70
3.15
2.85
2.35
2.05
2.85
2.35
3.15
3.10
ips2
3.48
3.21
2.77
2.75
2.20
2.42
3.52
1.65
3.18
3.27
2.59
2.63
2.65
2.91
2.50
1.64
2.40
3.23
2.91
2.86
2.68
3.08
2.40
2.41
2.59
1.55
2.36
3.00
2.68
2.40
1.50
2.64
2.20
3.20
3.32
ips3
3.36
3.33
2.52
2.90
2.21
2.53
3.43
1.53
3.04
2.96
1.55
2.00
2.43
2.80
3.10
1.82
2.17
2.79
2.45
2.32
3.15
2.95
2.44
2.47
2.79
1.31
2.68
3.24
3.37
.59
2.40
2.84
2.94
2.72
3.72
ips4
3.65
3.36
3.13
3.00
1.95
1.96
3.70
1.68
2.95
2.81
2.35
2.67
2.24
3.33
2.75
1.07
2.75
3.30
.83
2.70
2.64
3.05
2.26
2.68
3.32
.31
.05
2.33
3.09
2.23
2.00
2.75
2.09
3.05
3.42
nilai11
nilai12 nilai13
3.20
2.40
2.40
2.40
2.00
2.00
2.40
1.60
2.00
2.80
2.40
2.80
2.40
2.00
2.40
4.00
2.00
3.60
2.40
2.40
1.60
1.20
.80
3.20
2.00
2.00
3.20
2.80
2.00
2.00
2.40
1.60
2.40
2.00
2.00
2.40
2.80
2.40
3.20
2.40
2.00
2.00
1.60
2.80
3.20
2.40
1.60
2.80
1.60
1.60
2.80
2.40
1.60
2.40
2.40
2.40
2.00
1.60
2.40
2.80
2.40
2.00
1.60
2.40
2.80
3.60
2.40
2.80
3.60
2.80
1.60
2.80
2.80
2.00
2.40
3.60
2.40
2.40
2.80
2.40
2.40
2.00
3.20
2.00
2.40
1.60
2.00
2.40
2.40
2.80
2.00
2.00
2.00
2.40
2.00
2.00
2.40
.80
2.00
2.80
3.20
2.00
2.00
2.00
3.20
nilai14
2.80
2.80
2.80
2.40
2.40
2.40
1.60
1.20
2.00
2.00
1.20
2.00
3.20
1.60
2.80
3.60
1.20
1.60
3.20
2.80
1.60
1.60
2.00
1.60
2.80
2.40
2.00
2.80
2.80
1.20
1.60
2.40
2.00
2.40
1.60
nilai15
2.00
2.00
2.00
2.40
2.80
2.80
2.80
.40
2.80
1.60
2.80
2.00
.80
2.00
2.00
2.80
2.40
2.00
2.40
1.20
1.60
2.80
2.80
2.40
2.80
2.40
2.00
2.00
2.00
3.60
2.80
2.00
3.20
2.00
2.80
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2.70
2.05
2.30
2.80
2.15
2.90
3.25
3.45
2.30
2.30
2.85
2.20
1.55
1.65
3.20
3.10
2.05
2.65
2.35
3.44
1.55
2.61
2.88
2.26
2.28
3.16
3.60
3.13
2.39
3.28
2.30
1.00
1.67
3.04
2.60
1.28
1.87
1.04
3.39
2.33
2.50
2.39
2.33
2.39
3.11
3.39
3.00
2.62
3.50
1.28
1.72
2.07
2.94
2.89
1.73
2.00
.19
2.33
2.70
2.50
2.44
2.06
1.93
2.56
3.50
3.05
2.94
3.63
0
0
1.85
3.14
2.72
.82
1.56
.92
2.40
2.00
1.20
2.40
2.40
2.00
2.40
2.80
1.60
2.80
2.80
2.80
2.80
2.40
2.80
2.40
2.40
2.80
3.20
2.00
2.00
2.00
2.00
1.60
2.00
2.40
2.40
2.40
.80
2.80
2.00
1.60
2.00
2.00
2.80
3.20
2.40
2.00
3.60
2.40
1.60
3.20
3.20
3.60
3.20
2.80
3.60
2.80
2.40
1.20
2.00
1.20
3.60
1.60
3.60
2.40
3.60
Tabel Dibawah ini merupakan tabel data yang memiliki nilai LOF > 1
Hasil Deteksi Semester 1
Nomor
Lof
Ranking
28
1.9
1
26
1.38
2
36
1.36
3
27
1.35
4
33
1.35
5
58
1.34
6
72
1.31
7
74
1.27
8
68
1.26
9
53
1.25
10
69
1.23
11
67
1.17
12
65
1.14
13
46
1.13
14
64
1.13
15
40
1.12
16
157
2.80
2.40
.80
1.60
1.20
1.60
2.80
1.20
2.40
2.00
2.40
1.60
2.40
2.00
2.00
2.00
2.80
1.60
3.20
2.00
2.00
2.00
2.80
2.00
3.20
1.60
2.80
1.60
2.80
2.00
1.60
1.20
1.60
3.20
2.40
3.20
2.00
1.60
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
35
48
1.11
1.1
17
18
Hasil Deteksi Semester 2
Nomor
Lof
Ranking
28
1.84
1
72
1.38
2
74
1.34
3
26
1.32
4
36
1.32
5
68
1.3
6
58
1.29
7
33
1.27
8
53
1.23
9
46
1.19
10
69
1.15
11
27
1.12
12
64
1.12
13
65
1.12
14
40
1.11
15
67
1.1
16
Hasil Deteksi Semester 3
Nomor
Lof
Ranking
28
1.89
1
74
1.75
2
50
1.51
3
58
1.34
4
46
1.33
5
36
1.32
6
72
1.32
7
26
1.31
8
67
1.31
9
53
1.29
10
33
1.28
11
68
1.18
12
40
1.15
13
31
1.12
14
65
1.11
15
158
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
27
48
64
69
1.1
1.1
1.1
1.1
16
17
18
19
Hasil Deteksi Semester 4
Nomor
Lof
Ranking
28
1.91
1
67
1.48
2
26
1.32
3
58
1.27
4
33
1.26
5
68
1.25
6
53
1.22
7
36
1.21
8
47
1.18
9
72
1.18
10
39
1.15
11
46
1.15
12
69
1.15
13
27
1.13
14
64
1.11
15
65
1.11
16
48
1.1
17
73
1.1
18
74
1.1
19
2. Data set Pengujian Mahasiswa 2007-2008 Jalur Prestasi
Nomor
1
2
3
4
5
6
7
8
9
10
ips1
2.06
2.72
3.33
2.39
2.11
3.00
3.72
3.44
2.17
3.89
ips2
2.32
2.50
3.48
3.00
2.71
2.96
3.56
3.04
2.70
3.75
ips3
2.91
2.96
3.78
2.43
2.43
2.61
3.43
2.88
3.09
3.00
ips4
3.00
2.38
3.48
2.82
2.45
3.29
3.67
3.48
3.63
3.62
final
2.71
2.71
2.78
2.86
2.95
2.70
3.15
2.85
2.88
3.08
159
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
11
12
13
14
15
16
17
18
19
20
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
2.89
3.11
2.00
3.06
1.67
3.89
2.61
2.83
3.72
3.72
2.40
.85
2.65
2.85
1.85
2.95
3.35
2.65
3.35
2.60
3.50
3.10
2.25
2.65
3.65
3.25
3.40
2.60
2.50
1.90
2.45
2.20
2.30
3.55
2.45
3.05
2.60
3.15
3.20
2.80
2.60
3.68
3.08
2.00
2.50
2.24
3.63
.32
2.55
3.74
3.42
2.65
2.29
2.75
3.27
1.71
2.91
2.48
2.14
3.09
3.00
2.92
2.80
2.05
2.77
3.74
3.35
3.00
1.73
2.82
1.35
3.00
1.90
3.00
3.32
2.55
3.04
2.64
3.20
3.52
3.00
2.73
2.88
2.78
2.29
2.57
2.52
3.57
.69
3.09
2.87
3.65
2.57
2.21
2.11
2.91
2.40
3.16
3.00
2.45
3.42
2.90
3.27
3.68
2.29
2.14
3.70
2.67
2.73
3.00
3.35
2.46
3.25
2.17
3.24
3.19
2.44
3.26
2.58
2.89
3.37
3.14
3.05
3.76
3.48
3.00
2.78
2.16
3.62
2.85
3.17
3.52
3.71
3.24
2.00
2.74
2.73
2.06
3.25
2.14
2.64
3.25
3.10
3.04
3.57
1.83
.94
3.90
3.25
2.47
2.10
3.57
1.20
3.70
2.30
3.00
3.15
3.15
3.58
3.33
3.37
3.52
3.05
3.38
2.92
2.73
3.08
2.73
2.72
2.99
2.72
2.79
2.77
2.85
2.95
2.85
2.74
2.93
2.98
2.80
3.00
2.92
3.11
2.83
2.85
3.22
2.80
2.89
2.97
2.86
2.92
2.98
2.87
2.77
2.98
2.77
2.72
3.22
2.81
2.86
2.87
2.98
3.19
2.94
3.06
160
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
2.05
3.30
2.70
2.85
2.40
3.45
2.60
2.65
2.75
2.75
2.40
2.60
3.45
2.65
2.85
2.55
2.30
3.35
1.45
3.30
3.20
1.95
3.92
2.32
1.73
2.75
3.36
2.55
2.14
3.00
3.36
2.20
1.70
3.24
2.95
2.82
2.74
2.43
3.04
.44
3.16
3.40
2.63
3.76
3.00
2.56
3.05
2.95
3.00
2.22
3.21
3.33
2.06
2.00
3.48
2.48
3.14
2.94
2.28
3.00
2.47
3.22
3.72
2.35
3.78
2.78
2.76
3.32
2.82
2.96
3.11
3.53
3.13
2.22
2.76
3.57
3.15
3.42
2.53
1.47
3.20
2.65
3.25
3.10
2.83
3.33
2.85
3.08
2.89
3.05
2.87
2.78
2.75
2.92
2.73
2.89
3.06
2.83
2.81
2.69
3.05
2.83
2.90
2.77
2.81
Tabel Dibawah ini merupakan tabel data yang memiliki nilai LOF > 1
Hasil Deteksi Semester 1
Nomor
Lof
Ranking
17
2.26
1
124
1.69
2
88
1.63
3
76
1.58
4
94
1.46
5
81
1.3
6
122
1.28
7
107
1.24
8
79
1.21
9
89
1.21
10
15
1.19
11
117
1.17
12
16
1.16
13
87
1.16
14
161
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
10
91
92
109
13
96
11
19
20
116
1.15
1.15
1.15
1.14
1.13
1.11
1.1
1.1
1.1
1.1
15
16
17
18
19
20
21
22
23
24
Hasil Deteksi Semester 2
Nomor
Lof
Ranking
17
3.46
1
124
3.15
2
94
1.87
3
107
1.75
4
109
1.48
5
79
1.46
6
117
1.46
7
92
1.44
8
19
1.41
9
10
1.38
10
89
1.35
11
106
1.31
12
11
1.3
13
96
1.3
14
86
1.29
15
103
1.29
16
13
1.28
17
16
1.27
18
7
1.25
19
87
1.25
20
3
1.24
21
98
1.22
22
126
1.2
23
82
1.19
24
20
1.18
25
111
1.17
26
113
1.17
27
162
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
15
90
116
115
1
1.15
1.15
1.15
1.13
1.11
28
29
30
31
32
Hasil Deteksi Semester 3
Nomor
Lof
Ranking
17
4.68
1
107
1.64
2
3
1.51
3
86
1.48
4
126
1.41
5
89
1.4
6
20
1.32
7
117
1.31
8
103
1.29
9
7
1.27
10
116
1.26
11
16
1.25
12
83
1.24
13
118
1.22
14
98
1.21
15
77
1.18
16
88
1.11
17
96
1.11
18
Hasil Deteksi Semester 4
Nomor
Lof
Ranking
88
2.72
1
94
2.31
2
122
1.97
3
87
1.58
4
107
1.45
5
76
1.42
6
79
1.37
7
92
1.34
8
81
1.31
9
15
1.3
10
98
1.28
11
163
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
89
116
96
86
7
2
106
103
109
10
121
5
20
95
1.25
1.25
1.19
1.18
1.17
1.15
1.15
1.12
1.12
1.11
1.11
1.1
1.1
1.1
164
12
13
14
15
16
17
18
19
20
21
22
23
24
25
3. Data Pengujian Mahasiswa 2007-2008 Jalur Prestasi dan Jalur Test
Nomor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ips1
ips2
2.06
2.72
3.33
2.39
2.11
3.00
3.72
3.44
2.17
3.89
2.89
3.11
2.00
3.06
1.67
3.89
2.61
2.83
3.72
3.72
ips3
2.32
2.50
3.48
3.00
2.71
2.96
3.56
3.04
2.70
3.75
3.68
3.08
2.00
2.50
2.24
3.63
.32
2.55
3.74
3.42
ips4
2.91
2.96
3.78
2.43
2.43
2.61
3.43
2.88
3.09
3.00
2.88
2.78
2.29
2.57
2.52
3.57
.69
3.09
2.87
3.65
final
3.00
2.38
3.48
2.82
2.45
3.29
3.67
3.48
3.63
3.62
3.76
3.48
3.00
2.78
2.16
3.62
2.85
3.17
3.52
3.71
2.71
2.71
2.78
2.86
2.95
2.70
3.15
2.85
2.88
3.08
2.92
2.73
3.08
2.73
2.72
2.99
2.72
2.79
2.77
2.85
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
3.72
2.89
2.56
3.28
1.89
1.44
4.00
1.72
2.89
2.94
2.94
2.44
1.72
3.48
3.21
2.77
2.75
2.20
2.42
3.52
1.65
3.18
3.27
2.59
2.63
2.65
3.36
3.33
2.52
2.90
2.21
2.53
3.43
1.53
3.04
2.96
1.55
2.00
2.43
3.65
3.36
3.13
3.00
1.95
1.96
3.70
1.68
2.95
2.81
2.35
2.67
2.24
2.80
2.91
2.80
3.33
2.90
1.40
2.65
2.65
3.35
2.70
2.55
3.10
2.45
2.55
2.75
2.25
2.70
3.15
2.85
2.35
2.05
2.85
2.35
3.15
3.10
2.70
2.05
2.30
2.80
2.15
2.90
2.50
1.64
2.40
3.23
2.91
2.86
2.68
3.08
2.40
2.41
2.59
1.55
2.36
3.00
2.68
2.40
1.50
2.64
2.20
3.20
3.32
3.44
1.55
2.61
2.88
2.26
2.28
3.10
1.82
2.17
2.79
2.45
2.32
3.15
2.95
2.44
2.47
2.79
1.31
2.68
3.24
3.37
.59
2.40
2.84
2.94
2.72
3.72
3.39
2.33
2.50
2.39
2.33
2.39
2.75
1.07
2.75
3.30
.83
2.70
2.64
3.05
2.26
2.68
3.32
.31
.05
2.33
3.09
2.23
2.00
2.75
2.09
3.05
3.42
2.33
2.70
2.50
2.44
2.06
1.93
165
2.60
2.20
2.08
2.56
2.36
2.96
2.32
1.12
2.28
2.16
2.12
2.04
2.36
2.08
2.32
2.40
1.84
2.00
2.44
2.00
1.96
2.64
2.68
2.24
2.52
2.76
2.40
2.44
2.08
2.56
2.12
2.16
2.00
2.64
2.24
2.36
2.08
1.60
2.36
2.04
2.36
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
3.25
3.45
2.30
2.30
2.85
2.20
1.55
1.65
3.20
3.10
2.05
2.65
2.35
3.16
3.60
3.13
2.39
3.28
2.30
1.00
1.67
3.04
2.60
1.28
1.87
1.04
3.11
3.39
3.00
2.62
3.50
1.28
1.72
2.07
2.94
2.89
1.73
2.00
.19
2.56
3.50
3.05
2.94
3.63
0
0
1.85
3.14
2.72
.82
1.56
.92
2.40
2.65
2.57
3.24
.85
2.29
2.21
2.00
2.65
2.75
2.11
2.74
2.85
3.27
2.91
2.73
1.85
1.71
2.40
2.06
2.95
2.91
3.16
3.25
3.35
2.48
3.00
2.14
2.65
2.14
2.45
2.64
3.35
3.09
3.42
3.25
2.60
3.00
2.90
3.10
3.50
2.92
3.27
3.04
3.10
2.80
3.68
3.57
2.25
2.05
2.29
1.83
2.65
2.77
2.14
.94
3.65
3.74
3.70
3.90
3.25
3.35
2.67
3.25
3.40
3.00
2.73
2.47
2.60
1.73
3.00
2.10
2.50
2.82
3.35
3.57
1.90
1.35
2.46
1.20
2.45
3.00
3.25
3.70
2.20
1.90
2.17
2.30
2.30
3.00
3.24
3.00
3.55
3.32
3.19
3.15
2.45
2.55
2.44
3.15
3.05
3.04
3.26
3.58
2.60
2.64
2.58
3.33
3.15
3.20
2.89
3.37
166
2.36
2.52
2.12
2.12
2.56
2.04
2.00
1.96
2.64
2.40
2.96
2.36
2.56
2.95
2.85
2.74
2.93
2.98
2.80
3.00
2.92
3.11
2.83
2.85
3.22
2.80
2.89
2.97
2.86
2.92
2.98
2.87
2.77
2.98
2.77
2.72
3.22
2.81
2.86
2.87
2.98
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
3.20
3.52
3.37
3.52
2.80
3.00
3.14
3.04
2.60
2.73
3.05
3.38
2.05
1.95
2.63
2.35
3.30
3.92
3.76
3.78
2.70
2.32
3.00
2.78
2.85
1.73
2.56
2.76
2.40
2.75
3.05
3.32
3.45
3.36
2.95
2.82
2.60
2.55
3.00
2.96
2.65
2.14
2.22
3.11
2.75
3.00
3.21
3.53
2.75
3.36
3.33
3.13
2.40
2.20
2.06
2.22
2.60
1.70
2.00
2.76
3.45
3.24
3.48
3.57
2.65
2.95
2.48
3.15
2.85
2.82
3.14
3.42
2.55
2.74
2.94
2.53
2.30
2.43
2.28
1.47
3.35
3.04
3.00
3.20
1.45
.44
2.47
2.65
3.30
3.16
3.22
3.25
3.20
3.40
3.72
3.10
Tabel Dibawah ini merupakan tabel data yang memiliki nilai LOF > 1
Hasil Deteksi Semester 1
Nomor
Lof
Ranking
76
2.37
1
28
2.17
2
26
1.74
3
124
1.67
4
27
1.62
5
36
1.62
6
68
1.55
7
69
1.49
8
15
1.45
9
79
1.4
10
13
1.36
11
33
1.35
12
167
3.19
2.94
3.06
2.83
3.33
2.85
3.08
2.89
3.05
2.87
2.78
2.75
2.92
2.73
2.89
3.06
2.83
2.81
2.69
3.05
2.83
2.90
2.77
2.81
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
58
10
94
16
25
51
57
60
72
7
67
107
106
1
5
37
64
65
98
53
19
20
21
9
86
41
32
89
96
103
44
83
1.33
1.32
1.3
1.29
1.27
1.27
1.27
1.25
1.25
1.23
1.23
1.23
1.22
1.2
1.19
1.18
1.18
1.18
1.18
1.17
1.15
1.15
1.15
1.14
1.14
1.13
1.12
1.12
1.11
1.11
1.1
1.1
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
168
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Hasil Deteksi Semester 2
Nomor
Lof
Ranking
17
2.39
1
124
2.31
2
28
2.09
3
107
1.83
4
68
1.75
5
74
1.64
6
72
1.55
7
94
1.47
8
10
1.43
9
69
1.41
10
109
1.4
11
51
1.39
12
57
1.38
13
79
1.36
14
58
1.35
15
46
1.34
16
92
1.34
17
89
1.33
18
103
1.33
19
117
1.33
20
7
1.3
21
19
1.3
22
13
1.29
23
27
1.29
24
16
1.28
25
11
1.26
26
38
1.25
27
36
1.23
28
55
1.23
29
30
1.22
30
37
1.22
31
98
1.22
32
56
1.2
33
22
1.19
34
63
1.18
35
64
1.18
36
96
1.18
37
169
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
106
29
53
62
67
60
73
3
21
82
20
34
40
86
87
111
31
41
65
126
1.18
1.15
1.15
1.15
1.15
1.14
1.14
1.13
1.13
1.13
1.12
1.12
1.12
1.12
1.12
1.12
1.11
1.11
1.11
1.1
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Hasil Deteksi Semester 3
Nomor
Lof
Ranking
74
3.03
1
17
2.6
2
50
2.54
3
28
2.17
4
46
1.89
5
67
1.78
6
107
1.72
7
31
1.54
8
86
1.51
9
72
1.5
10
55
1.49
11
68
1.44
12
49
1.37
13
3
1.35
14
58
1.35
15
89
1.34
16
22
1.3
17
170
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
41
126
27
32
37
69
56
16
36
7
103
20
40
118
60
83
57
64
66
117
51
63
53
73
30
38
23
29
98
34
35
48
62
65
13
21
44
25
52
71
88
1.29
1.29
1.28
1.27
1.27
1.27
1.26
1.25
1.25
1.24
1.23
1.22
1.22
1.22
1.2
1.2
1.19
1.19
1.19
1.19
1.18
1.18
1.17
1.17
1.16
1.16
1.15
1.15
1.15
1.14
1.14
1.14
1.14
1.13
1.12
1.12
1.12
1.11
1.11
1.1
1.1
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
171
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
116
122
1.1
1.1
59
60
Hasil Deteksi Semester 4
Nomor
Lof
Ranking
67
2.35
1
68
2.35
2
47
2.27
3
46
2.13
4
28
1.96
5
72
1.8
6
39
1.72
7
88
1.7
8
74
1.65
9
36
1.58
10
94
1.48
11
107
1.45
12
122
1.41
13
27
1.36
14
55
1.35
15
38
1.34
16
22
1.32
17
34
1.3
18
89
1.28
19
49
1.26
20
23
1.25
21
69
1.25
22
73
1.25
23
58
1.24
24
64
1.24
25
26
1.22
26
65
1.2
27
79
1.2
28
7
1.18
29
37
1.18
30
81
1.18
31
86
1.18
32
92
1.18
33
30
1.17
34
172
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
76
11
57
66
87
29
40
52
53
103
20
21
51
60
63
95
98
109
32
41
44
10
25
35
61
82
1.17
1.15
1.15
1.15
1.15
1.14
1.14
1.13
1.13
1.13
1.12
1.12
1.12
1.12
1.12
1.12
1.12
1.12
1.11
1.11
1.11
1.1
1.1
1.1
1.1
1.1
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
173
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
174
Lampiran 6
1.
Implementasi Kelas Database Connection
Dibawah ini adalah listing program dari kelas Database Connection, dalam
kelas ini terdapat method-method yang berfungsi untuk melakukan koneksi
kedalam database
package model;
import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;
public class koneksiDatabase {
private String jdbcURL /*= "jdbc:mysql://localhost:3306/UAS"*/;
private String user /*= "root"*/;
private String password /*= "root"*/;
private Connection connection = null;
public koneksiDatabase(String url, String user, String password, String Db) {
if (Db.equals("MySql")) {
try {
getClosed();
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(url, user, password);
Sistem.out.println("koneksi berhasil");
} catch (Exception ex) {
Sistem.out.println("message: " + ex.getMessage());
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
} else if (Db.equals("Oracle")) {
try {
getClosed();
OracleDataSource ds = new OracleDataSource();
ds.setURL("jdbc:oracle:thin:@127.0.0.1:1521:XE");
connection = ds.getConnection(user, password);
Sistem.out.println("koneksi berhasil");
} catch (Exception ex) {
Sistem.out.println("message: " + ex.getMessage());
}
}
}
public boolean isConnected() {
if (connection != null) {
return true;
} else {
return false;
}
}
public boolean getClosed() {
if (isConnected()) {
try {
connection.close();
175
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
connection = null;
} catch (SQLException ex) {
ex.printStackTrace();
}
return true;
} else {
return false;
}
}
public String getJdbcURL() {
return jdbcURL;
}
public void setJdbcURL(String jdbcURL) {
this.jdbcURL = jdbcURL;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
176
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getConnection() {
return connection;
}
public void setConn(Connection connection) {
this.connection = connection;
}
}
177
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
2.
178
Implementasi Kelas Graph
Di dalam kelas ini terdapat metho addEdge dan addVertex method ini
berfungsi ketika Sistem akan membentuk graf dari data yang telah di inputkan
package model;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
import model.DataLOF;
import model.DataLOF;
import model.Verteks;
import model.Verteks;
public class Graph {
private Verteks verteksList[];
private Double garis[][];
int jumVertex = 0;
Double inf = -1.0;
char temp;
NumberFormat nf = new DecimalFormat("#.##");
public Graph(int maxVertex) {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
verteksList = new Verteks[maxVertex];
garis = new Double[maxVertex][maxVertex];
for (int i = 0; i < garis.length; i++) {
for (int j = 0; j < garis.length; j++) {
if (i == j) {
garis[i][j] = 0.0;
} else {
garis[i][j] = inf;
}
}
}
}
public Verteks[] getVerteksList() {
return verteksList;
}
public void setVerteksList(Verteks[] verteksList) {
this.verteksList = verteksList;
}
public Double[][] getGaris() {
return garis;
}
public void setGaris(Double[][] garis) {
179
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
180
this.garis = garis;
}
public void addVerteks(String label, List<Double> nilai) {
verteksList[jumVertex++] = new Verteks(label, nilai);
}
public void addEdge(int x, int y, Double nilai) {
garis[x][y] = garis[y][x] = nilai;
}
}
3.
Implementasi Kelas Vertex
Berikut merupakan listing program dari kelas Vertex, kelas ini merupakan
kelas utama yang menyimpan atribut-atribut yang digunakan untuk proses
pendeteksian outlier menggunakan algoritma Local Outlier Factor, setaiap obyek
data akan direpresentasikan menjadi sebuah vertex dengan atribut-atribut yaitu :
Label, nilai, flagKunjungan, kDistance, neighborhood, reachbility Distance,
reachbility Density, dan LOF
package model;
import java.util.List;
public class Verteks {
private String label;
private List<Double> nilai;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private boolean flagKunjungan = false;
private Double kDistance;
private List<String> neigborhood;
private List<Double> reachbilityDistance;
private Double reachbilityDensity;
private Double LOF;
public Verteks(String label, List<Double> nilai1) {
setLabel(label);
setNilai(nilai1);
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public boolean isFlagKunjungan() {
return flagKunjungan;
}
public void setFlagKunjungan(boolean flagKunjungan) {
this.flagKunjungan = flagKunjungan;
181
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
public List<Double> getNilai() {
return nilai;
}
public void setNilai(List<Double> nilai) {
this.nilai = nilai;
}
public Double getkDistance() {
return kDistance;
}
public void setkDistance(Double kDistance) {
this.kDistance = kDistance;
}
public List<String> getNeigborhood() {
return neigborhood;
}
public void setNeigborhood(List<String> neigborhood) {
this.neigborhood = neigborhood;
}
public List<Double> getReachbilityDistance() {
return reachbilityDistance;
}
public void setReachbilityDistance(List<Double> reachbilityDistance) {
182
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
183
this.reachbilityDistance = reachbilityDistance;
}
public Double getReachbilityDensity() {
return reachbilityDensity;
}
public void setReachbilityDensity(Double reachbilityDensity) {
this.reachbilityDensity = reachbilityDensity;
}
public Double getLOF() {
return LOF;
}
public void setLOF(Double LOF) {
this.LOF = LOF;
}
}
4.
Implementasi Kelas Kontroller LOF
Berikut adalah listing program dari kelas controller LOF, di dalam kelas
ini terdapat method-method yang berghubungan dengan proses perhitungan dan
deteksi outlier.
package controller;
import java.text.DecimalFormat;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
import java.text.NumberFormat;
import model.Graph;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JTable;
import model.DataLOF;
import model.DataLofTableModel;
import model.Verteks;
public class KontrollerLof {
private Graph gp;
private Verteks vertekslist[];
private Double garis[][];
NumberFormat nf = new DecimalFormat("#.##");
public KontrollerLof(int maxVertex) {
gp = new Graph(maxVertex);
vertekslist = gp.getVerteksList();
garis = gp.getGaris();
}
public void Display() {
Sistem.out.print("\t");
for (int i = 0; i < vertekslist.length; i++) {
184
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Sistem.out.print("" + vertekslist[i] + "\t");
}
Sistem.out.println("");
for (int i = 0; i < garis.length; i++) {
Sistem.out.print("" + vertekslist[i].getLabel() + "\t");
for (int j = 0; j < vertekslist.length; j++) {
Sistem.out.print("" + garis[i][j] + "\t");
}
Sistem.out.println("");
}
}
public int Search(String label) {
for (int i = 0; i < vertekslist.length; i++) {
if (label.equals(vertekslist[i].getLabel())) {
return i;
}
}
return -1;
}
public void Search2(Double jarak, int indeks) {
for (int i = 0; i < vertekslist.length; i++) {
if (garis[indeks][i].equals(jarak)) {
185
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
vertekslist[i].setFlagKunjungan(true);
}
}
}
public Double cariKdistance(int indeks, int jangkaun) {
for (int i = 0; i < vertekslist.length; i++) {
vertekslist[i].setFlagKunjungan(false);
}
Double[] a;
a = new Double[jangkaun];
Double kDistance = 0.0;
Double temp1 = Double.MAX_VALUE;
// String tampung = null;
if (indeks == -1) {
Sistem.out.println("Tidak ada Kota dalam Peta!!");
} else {
for (int t = 0; t < a.length; t++) {
for (int i = 0; i < vertekslist.length; i++) {
if (garis[indeks][i] != -1 && garis[indeks][i] != 0 &&
vertekslist[i].isFlagKunjungan() == false) {
186
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
if (garis[indeks][i] < temp1) {
temp1 = garis[indeks][i];
// tampung = vertekslist[i].getLabel();
}
}
}
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 List<String> cariNeigborhood(Double kDistance, int indeks) {
187
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
List<String> a = new ArrayList<String>();
//int indeks = Search(label);
if (indeks == -1) {
Sistem.out.println("Tidak ada Kota dalam Peta!!");
} else {
for (int i = 0; i < vertekslist.length; i++) {
if (garis[indeks][i] != -1 && garis[indeks][i] != 0) {
if (garis[indeks][i] <= kDistance) {
a.add(vertekslist[i].getLabel());
}
}
}
}
return a;
}
public List<Double> cariReacbilityDistance(int indexAwal, List<String>
Tujuan) {
List<Double> reachbilityDistance = new ArrayList<Double>();
int indexTujuan;
Double kDistance;
for (int i = 0; i < Tujuan.size(); i++) {
indexTujuan = Search(Tujuan.get(i));
kDistance = vertekslist[indexTujuan].getkDistance();
188
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
if (kDistance > garis[indexAwal][indexTujuan]) {
reachbilityDistance.add(kDistance);
} else {
reachbilityDistance.add(garis[indexAwal][indexTujuan]);
}
}
return reachbilityDistance;
}
public Double reachBilityDensity(List<Double> reachBilityDistance) {
Double ReachbilityDensity;
Double jumlahReachbilityDistance = 0.0;
for (int i = 0; i < reachBilityDistance.size(); i++) {
jumlahReachbilityDistance = jumlahReachbilityDistance +
reachBilityDistance.get(i);
}
return Double.valueOf(nf.format(ReachbilityDensity = 1 /
(jumlahReachbilityDistance / reachBilityDistance.size())));
// return ReachbilityDensity = 1 / (jumlahReachbilityDistance /
reachBilityDistance.size());
}
public Double getLof(List<Double> reachBilityDensity, Double
ReacbilityDensityobyek) {
189
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Double LOF;
Double jumlahReachbilityDensity = 0.0;
for (int i = 0; i < reachBilityDensity.size(); i++) {
jumlahReachbilityDensity = jumlahReachbilityDensity +
(reachBilityDensity.get(i) / ReacbilityDensityobyek);
}
return LOF = Double.valueOf(nf.format(jumlahReachbilityDensity /
reachBilityDensity.size()));
// return LOF = jumlahReachbilityDensity / reachBilityDensity.size();
}
public Double cariJarakEcludian(int indexAwal, int IndexTujuan) {
List<Double> a = new ArrayList<Double>();
List<Double> b = new ArrayList<Double>();
a = vertekslist[indexAwal].getNilai();
b = vertekslist[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 Double.valueOf(nf.format(Math.sqrt(total)));
// return Math.sqrt(total);
}
public void setKdistance(String label, int jangkauan) {
190
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
191
int index = Search(label);
vertekslist[index].setkDistance(cariKdistance(index, jangkauan));
}
public void setNeigborhood(String label) {
int index = Search(label);
vertekslist[index].setNeigborhood(cariNeigborhood(vertekslist[index].getkDistan
ce(), index));
}
public void setReachbilityDistance(String Label) {
int index = Search(Label);
vertekslist[index].setReachbilityDistance(cariReacbilityDistance(index,
vertekslist[index].getNeigborhood()));
}
public void setReachbilityDensity(String Label) {
int index = Search(Label);
vertekslist[index].setReachbilityDensity(reachBilityDensity(vertekslist[index].get
ReachbilityDistance()));
}
public void setLof(String Label) {
int index = Search(Label);
List<String> tetangga = new ArrayList<String>();
tetangga = vertekslist[index].getNeigborhood();
List<Double> rDensity = new ArrayList<Double>();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
for (int i = 0; i < tetangga.size(); i++) {
int index1;
index1 = Search(tetangga.get(i));
rDensity.add(vertekslist[index1].getReachbilityDensity());
}
vertekslist[index].setLOF(getLof(rDensity,
vertekslist[index].getReachbilityDensity()));
}
public void Display1() {
for (int i = 0; i < vertekslist.length; i++) {
Sistem.out.println(vertekslist[i].getLabel());
Sistem.out.println("Kdistance" + vertekslist[i].getkDistance());
Sistem.out.println("Tetangga");
for (int j = 0; j < vertekslist[i].getNeigborhood().size(); j++) {
Sistem.out.println(vertekslist[i].getNeigborhood().get(j));
Sistem.out.println("Reachbility Distance" +
vertekslist[i].getReachbilityDistance().get(j));
}
Sistem.out.println("Density" + vertekslist[i].getReachbilityDensity());
Sistem.out.println("LOF" + vertekslist[i].getLOF());
Sistem.out.println("----------------------------------------");
}
}
192
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public String Display2() {
String Hasil = "";
for (int i = 0; i < vertekslist.length; i++) {
if (vertekslist[i].getLOF() > 1) {
Hasil = Hasil + " Obyek " + vertekslist[i].getLabel();
Hasil = Hasil + "\n";
Hasil = Hasil + "LOF : " + vertekslist[i].getLOF();
Hasil = Hasil + "\n";
Hasil = Hasil + "--------------------------------------";
Hasil = Hasil + "\n";
}
}
return Hasil;
}
public DataLofTableModel setDataLOF(String label) {
List<DataLOF> dlf = new ArrayList<DataLOF>();
DataLOF dl;
for (int i = 0; i < vertekslist.length; i++) {
if (vertekslist[i].getLOF() >= 1.1) {
dl = new DataLOF();
dl.setLabel(vertekslist[i].getLabel());
dl.setLOF(vertekslist[i].getLOF());
193
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
dlf.add(dl);
}
}
DataLofTableModel dm = new DataLofTableModel(dlf, label);
return dm;
}
public DataLofTableModel setDataLOF2(String label, double batasLof) {
List<DataLOF> dlf = new ArrayList<DataLOF>();
DataLOF dl;
for (int i = 0; i < vertekslist.length; i++) {
if (vertekslist[i].getLOF() >= batasLof) {
dl = new DataLOF();
dl.setLabel(vertekslist[i].getLabel());
dl.setLOF(vertekslist[i].getLOF());
dlf.add(dl);
}
}
DataLofTableModel dm = new DataLofTableModel(dlf, label);
return dm;
}
public void cariLof(int kDistance) {
for (int i = 0; i < gp.getVerteksList().length; i++) {
194
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
setKdistance(vertekslist[i].getLabel(), kDistance);
}
for (int i = 0; i < gp.getVerteksList().length; i++) {
setNeigborhood(vertekslist[i].getLabel());
}
for (int i = 0; i < gp.getVerteksList().length; i++) {
setReachbilityDistance(vertekslist[i].getLabel());
}
for (int i = 0; i < gp.getVerteksList().length; i++) {
setReachbilityDensity(vertekslist[i].getLabel());
}
for (int i = 0; i < gp.getVerteksList().length; i++) {
setLof(vertekslist[i].getLabel());
}
}
public void inputData(JTable jTableData2) {
for (int i = 0; i < jTableData2.getRowCount(); i++) {
String label = "";
List<Double> listNilai = new ArrayList<Double>();
for (int j = 0; j < jTableData2.getColumnCount(); j++) {
if (j == 0) {
if (jTableData2.getValueAt(i, j).toString().equals("")) {
label = "null";
195
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
196
} else {
label = jTableData2.getValueAt(i, j).toString();
}
} else {
if (jTableData2.getValueAt(i, j).toString().equals("")) {
listNilai.add(0.0);
} else if (jTableData2.getValueAt(i, j).toString().matches("[^0-9]*"))
{
listNilai.add(0.0);
} else {
listNilai.add(Double.parseDouble(jTableData2.getValueAt(i,
j).toString()));
}
}
}
gp.addVerteks(label, listNilai);
}
for (int i = 0; i < jTableData2.getRowCount(); i++) {
for (int j = i + 1; j < jTableData2.getRowCount(); j++) {
if (i != j) {
gp.addEdge(i, j, cariJarakEcludian(i, j));
}
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
197
}
}
}
5.
Implementasi Kelas CheckBoxTabelModel
Dibawah ini adalah implementasi dari kelas CheckBoxTabelModel, kelas ini
berfungsi untuk memodelkan data atribut
kedalam sebuah tabel saat proses
seleksi atribut
package model;
import controller.SeleksiAtribut;
import java.util.*;
import javax.swing.JOptionPane;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
public class CheckBoxTableModel extends AbstractTableModel {
String[] colom = {"Atribut", "Pilih"};
SeleksiAtribut fm = new SeleksiAtribut("", false);
List<SeleksiAtribut> lfm;
public CheckBoxTableModel() {
lfm = new ArrayList<SeleksiAtribut>();
}
public int getRowCount() {
return lfm.size();
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
public int getColumnCount() {
return colom.length;
}
@Override
public String getColumnName(int col) {
return colom[col];
}
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return lfm.get(rowIndex).getAtribut();
case 1:
return lfm.get(rowIndex).getPilih();
}
return null;
}
@Override
public Class getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}
@Override
public void setValueAt(Object val, int rowIndex, int columnIndex) {
198
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
switch (columnIndex) {
case 0:
lfm.get(rowIndex).setAtribut(val.toString());
break;
case 1:
lfm.get(rowIndex).setPilih((Boolean) val);
break;
}
fireTableCellUpdated(rowIndex, columnIndex);
}
@Override
public boolean isCellEditable(int row, int col) {
return true;
}
public void add(int a, SeleksiAtribut field_m) {
lfm.add(a, field_m);
fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow() {
List<SeleksiAtribut> s = new ArrayList<SeleksiAtribut>();
for (SeleksiAtribut seleksi : lfm) {
if (!seleksi.getPilih()) {
s.add(seleksi);
199
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
200
}
}
lfm = s;
fireTableDataChanged();
}
}
6.
Implementasi kelas seleksi atribut
Berikut adalah listing program dari kelas seleksi atribut, kelas ini merupakan
entity yang akan menyimpan data atribut dari tabel data
package controller;
import java.util.List;
public class SeleksiAtribut {
private String atribut;
private Boolean pilih;
public SeleksiAtribut(){
}
public SeleksiAtribut(String vl, boolean st) {
atribut= vl;
pilih = new Boolean(st);
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
201
public Boolean getPilih() {
return pilih;
}
public void setPilih(Boolean pilih) {
this.pilih = pilih;
}
public String getAtribut() {
return atribut;
}
public void setAtribut(String atribut) {
this.atribut = atribut;
}
}
7.
Implementasi kelas Database Controller
Dibawah ini adalah listing kelas Database Controller, kelas ini merupakan
kelas yang menghubungkan Interface dengan basis data,
di dalam kelas ini
terdapat method-method yang berfungsi untuk menampilkan data dari Basis
Data. terdapat 3 method yaitu : method DisplayTableOracle, DisplayTableMysql,
dan SelectTable
package controller;
import java.sql.*;
import java.util.List;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
202
import oracle.jdbc.pool.OracleDataSource;
public class databaseController {
public ResultSet displayTableOracle(Connection conn) throws SQLException
{
Statement stmt;
ResultSet rset;
String query;
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query = "select table_name from user_tables";
Sistem.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";
Sistem.out.println("\nExecuting query: " + query);
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
203
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;
Sistem.out.println("\nExecuting query: " + query);
rset = stmt.executeQuery(query);
return rset;
}
}
8.
Implementasi Kelas Data LOF
Dibawah ini merupakan listing program kelas Data Lof, kelas ini merupakan
sebuah entitiy yang akan menyimpan hasil outlier di dalam sisitem, atribut yang
disimpan dalam kelas ini adalah Label, Lof dan Ranking
package model;
public class DataLOF {
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
private String label;
private Double LOF;
private int ranking;
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public Double getLOF() {
return LOF;
}
public void setLOF(Double LOF) {
this.LOF = LOF;
}
public int getRanking() {
return ranking;
}
public void setRanking(int ranking) {
this.ranking = ranking;
}
}
204
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
9.
205
Implementasi Kelas DataLofTableModel
Dibawah ini adalah listing program dari implementasi pada kelas
DataLofTableModel, dalam kelas ini entity Data Lof dimodelkan menjadi sebuah
tabel Model, sehingga nantinya hasil outlier tersebut dapat ditampilkan ke dalam
sebuah tabel
package model;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import model.DataLOF;
public class DataLofTableModel extends AbstractTableModel {
private List<DataLOF> dlo = new ArrayList<DataLOF>();
String label;
public DataLofTableModel(List<DataLOF> dlo, String label1) {
this.dlo = dlo;
label = label1;
}
public int getRowCount() {
return dlo.size();
}
public int getColumnCount() {
return 3;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
public Object getValueAt(int rowIndex, int columnIndex) {
DataLOF dlof = dlo.get(rowIndex);
switch (columnIndex) {
case 0:
return dlof.getLabel();
case 1:
return dlof.getLOF();
case 2:
return dlof.getRanking();
default:
return "";
}
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return label;
case 1:
return "Lof";
case 2:
206
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
return "Ranking";
default:
return "";
}
}
@Override
public boolean isCellEditable(int row, int col) {
return true;
}
@Override
public void setValueAt(Object val, int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
dlo.get(rowIndex).setLabel(val.toString());
break;
case 1:
dlo.get(rowIndex).setLOF((Double) val);
break;
case 2:
dlo.get(rowIndex).setRanking((Integer) val);
break;
}
fireTableCellUpdated(rowIndex, columnIndex);
207
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
208
}
}
10.
Implementasi Halaman Utama
Halaman utama merupakan halaman yang memuat fungsi-fungsi utama dalam
proses pendeteksian suatu outlier, berikut adalah listing program untuk methodmethod utama dalam halaman tersebut
public void pilihFile() {
JFileChooser fc = new JFileChooser();
fc.setVisible(true);
Vector headers = new Vector();
Vector data = new Vector();
TableColumnModel model2;
if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
String nama;
nama = fc.getSelectedFile().getPath();
String[] nama1 = nama.split("\\.");
if (nama1[1].equals("xls")) {
try {
jTextFieldGetData.setText(fc.getSelectedFile().getPath());
File file = new File(fc.getSelectedFile().getPath());
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
Workbook workbook = Workbook.getWorkbook(file);
Sheet sheet = workbook.getSheet(0);
headers.clear();
for (int i = 0; i < sheet.getColumns(); i++) {
Cell cell1 = sheet.getCell(i, 0);
headers.add(cell1.getContents());
}
data.clear();
//
jListAtribut.setListData(headers);
for (int j = 1; j < sheet.getRows(); j++) {
Vector d = new Vector();
for (int i = 0; i < sheet.getColumns(); i++) {
Cell cell = sheet.getCell(i, j);
d.add(cell.getContents());
}
d.add("\n");
data.add(d);
}
} catch (Exception e) {
e.printStackTrace();
}
209
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
210
DefaultTableModel model = new DefaultTableModel(data, headers);
jTableData.setModel(model);
jTableData.setAutoCreateRowSorter(true);
jTableData2.setModel(model);
jTableData2.setAutoCreateRowSorter(true);
cb_table = new CheckBoxTableModel();
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new SeleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
seleksi_atribut.setPilih(false);
cb_table.add(i, seleksi_atribut);
}
jTable1.setModel(cb_table);
} else if (nama1[1].equals("csv")) {
File fileCsv = fc.getSelectedFile();
String line;
try {
jTextFieldGetData.setText(fc.getSelectedFile().getPath());
BufferedReader br = new BufferedReader(new FileReader(fileCsv));
StringTokenizer st = new StringTokenizer(br.readLine(), ",");
while (st.hasMoreTokens()) {
headers.addElement(st.nextToken());
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
211
}
while ((line = br.readLine()) != null) {
StringTokenizer st2 = new StringTokenizer(line, ",");
Vector row = new Vector();
while (st2.hasMoreTokens()) {
row.addElement(st2.nextToken());
}
data.addElement(row);
}
br.close();
//
jListAtribut.setListData(headers);
DefaultTableModel model = new DefaultTableModel(data, headers);
jTableData.setModel(model);
jTableData.setAutoCreateRowSorter(true);
jTableData2.setModel(model);
jTableData2.setAutoCreateRowSorter(true);
cb_table = new CheckBoxTableModel();
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new SeleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
seleksi_atribut.setPilih(false);
cb_table.add(i, seleksi_atribut);
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
212
jTable1.setModel(cb_table);
for (int i = 0; i < jTableData.getColumnCount(); i++) {
jTable1.setValueAt(jTableData.getColumnName(i), 0, i);
}
} catch (Exception e) {
}
} else {
JOptionPane.showMessageDialog(null, "File yang Anda pilih tidak sesuai format.
Pilih file berformat .csv atau .xls");
}
}
jumlahDataTextField.setText("" + jTableData.getRowCount());
jumlahDataField2.setText("" + jTableData.getRowCount());
}
public void cariOutlier() {
if (kDistance.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Nilai minPts tidak Boleh Kosong
");
} else if (kDistance.getText().matches("[0-9.]*")) {
int minPts;
minPts = Integer.parseInt(kDistance.getText());
if (minPts > 0) {
gp = new KontrollerLof(jTableData2.getRowCount());
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
213
gp.inputData(jTableData2);
gp.cariLof(minPts);
gp.Display1();
System.out.println("");
gp.Display();
jTable2.setModel(gp.setDataLOF(jTableData2.getColumnName(0)));
jTable2.setAutoCreateRowSorter(true);
DefaultRowSorter sorter = ((DefaultRowSorter)
jTable2.getRowSorter());
ArrayList list = new ArrayList();
list.add(new RowSorter.SortKey(1, SortOrder.DESCENDING));
sorter.setSortKeys(list);
sorter.sort();
for (int i = 0; i < jTable2.getRowCount(); i++) {
jTable2.setValueAt(i + 1, i, 2);
}
} else {
JOptionPane.showMessageDialog(null, "Nilai minPts harus > 0");
}
} else {
JOptionPane.showMessageDialog(null, "Nilai minPts tidak Boleh huruf
atau angka Negatif ");
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
}
public void pilihDb(koneksiDatabase kd, String table) {
try {
databaseController dc = new databaseController();
ResultSet rset;
rset = dc.selectTable(kd.getConnection(), table);
ResultSetMetaData rsmd = rset.getMetaData();
int coloumCount = rsmd.getColumnCount();
Vector headers = new Vector();
Vector data = new Vector();
headers.clear();
for (int i = 1; i <= coloumCount; i++) {
headers.add(rsmd.getColumnName(i));
}
//
jListAtribut.setListData(headers);
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);
214
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
215
}
DefaultTableModel model = new DefaultTableModel(data, headers);
jTableData.setModel(model);
jTableData.setAutoCreateRowSorter(true);
jTableData2.setModel(model);
jTableData2.setAutoCreateRowSorter(true);
cb_table = new CheckBoxTableModel();
for (int i = 0; i < model.getColumnCount(); i++) {
seleksi_atribut = new SeleksiAtribut();
seleksi_atribut.setAtribut(model.getColumnName(i));
seleksi_atribut.setPilih(false);
cb_table.add(i, seleksi_atribut);
}
jTable1.setModel(cb_table);
} catch (SQLException ex) {
//
Logger.getLogger(KategoriForm.class.getName()).log(Level.SEVERE,
null, ex);
}
}
public void simpanLof() {
JFileChooser fileChooser = new JFileChooser(new File("D:/"));
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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);
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 = jTable2.getModel();
FileWriter excel = new FileWriter(ff);
for (int i = 0; i < model.getColumnCount(); i++) {
excel.write(model.getColumnName(i) + "\t");
216
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
217
}
excel.write("\n");
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
excel.write(model.getValueAt(i, j).toString() + "\t");
}
excel.write("\n");
}
excel.close();
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Penyimpanan asil Deteksi Outlier Gagal
!");
}
} 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;
}
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
218
try {
BufferedWriter bfw = new BufferedWriter(new FileWriter(ff));
for (int i = 0; i < jTable2.getColumnCount(); i++) {
bfw.write(jTable2.getColumnName(i));
bfw.write("\t");
}
for (int i = 0; i < jTable2.getRowCount(); i++) {
bfw.newLine();
for (int j = 0; j < jTable2.getColumnCount(); j++) {
bfw.write((jTable2.getValueAt(i, j)).toString());
bfw.write("\t");
;
}
}
bfw.close();
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Penyimpanan asil Deteksi Outlier Gagal
!");
}
} else {
File ff;
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
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 < jTable2.getColumnCount(); i++) {
bfw.write(jTable2.getColumnName(i));
bfw.write("\t");
}
for (int i = 0; i < jTable2.getRowCount(); i++) {
bfw.newLine();
for (int j = 0; j < jTable2.getColumnCount(); j++) {
bfw.write((jTable2.getValueAt(i, j)).toString());
bfw.write("\t");
;
}
}
bfw.close();
219
PLAGIAT
PLAGIATMERUPAKAN
MERUPAKANTINDAKAN
TINDAKANTIDAK
TIDAKTERPUJI
TERPUJI
220
} catch (IOException ie) {
JOptionPane.showMessageDialog(this, "Penyimpanan asil Deteksi Outlier Gagal
!");
}
}
JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier Telah
Berhasil Disimpan di " + filename);
}
}
Download