PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA CONNECTIVITY BASED OUTLIER FACTOR (STUDI KASUS: DATA AKADEMIK MAHASISWA TEKNIK INFORMATIKA UNIVERSITAS SANATA DHARMA) Skripsi Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Dosen Pengampu : Ridowati Gunawan, S.Kom., M.T.
Oleh: Yustina Ayu Ruwidati 105314061
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2014
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
OUTLIER DETECTION USING CONNECTIVITY BASED OUTLIER FACTOR ALGORITHM (CASE STUDY: ACADEMIC DATA OF STUDENTS OF INFORMATICS ENGINEERING DEPARTMENT OF SANATA DHARMA UNIVERSITY) A Thesis Presented as Partial Fullfillment of the Requirements To Obtain the Barchelor of Computer Science In Study Program of Informatics Engineering
By: Yustina Ayu Ruwidati 105314061
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2014
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN MOTTO DAN PERSEMBAHAN
“Let it be” -The Beatles-
A present for You.
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah saya sebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 14 Januari 2015 Penulis
Yustina Ayu Ruwidati
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRAK Kebutuhan untuk pengolahan data merupakan hal yang sangat penting untuk era saat ini. Dalam bidang pendidikan, data mining sangat berguna 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). Salah satu metode dalam data mining untuk mengenali data yang bersifat unik di sebut deteksi outlier. Teknik deteksi outlier di kategorikan menjadi beberapa kelompok, yaitu Statistical Approaches, Proximity-based Approaches, Clustering-based Approaches, dan Classification Approaches. Akan di buat sebuah aplikasi atau perangkat lunak untuk mendeteksi data yang unik tersebut menggunakan salah satu algoritma data mining yaitu algoritma Connectivity-based Outlier Factor dengan pendekatan density based. Data yang di gunakan dalam penelitian ini adalah data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 yang berupa hasil test penerimaan mahasiswa baru, nilai final dan nilai Indeks Prestasi Semester (IPS) dari semester satu sampai semester empat. Pengujian akan di lakukan untuk menemukan data yang dinyatakan sebagai outlier. Penelitian ini bertujuan untuk membantu Kaprodi TI Universitas Sanata Dharma dalam mendeteksi kejadian langka atau yang menyimpang dari pola umum data akademik mahasiswa.
Kata kunci: data mining, deteksi outlier, connectivity-based outlier factor
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT The need for data processing is very important for the current era. In education, data mining is very useful to develop a method that can discover the uniqueness of a data derived from the education system, and using these methods to better understand the students, so that they can develop an appropriate system (Barker & Yacef, 2009). One method in data mining to identify data that is unique is called outlier detection. Outlier detection techniques categorized into several groups, Statistical Approaches, Proximity-based Approaches, Clustering-based Approaches, and Classification Approaches. It will be created an application or software to detect the unique data using one of the data mining algorithm is an algorithm-based Outlier Factor Connectivity with density-based approach. The data used in this study were student academic data Sanata Dharma University of Information Engineering 2007-2008 force in the form of new admissions test results, final value and the value of their GPA (IPS) from one semester to semester four. Tests will be done to find the data that is declared as outliers. This research aims to help the chair person of Computer Science of Sanata Dharma University in detecting rare events or that deviate from the general pattern of student academic data.
Keyword : data mining, outlier detection, connectivity-based outlier factor
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma Nama
: Yustina Ayu Ruwidati
Nomor Mahasiswa
: 105314061
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:
DETEKSI OUTLIER MENGGUNAKAN ALGORITMA CONNECTIVITY BASED OUTLIER FACTOR (STUDI KASUS: DATA AKADEMIK MAHASISWA TEKNIK INFORMATIKA UNIVERSITAS SANATA DHARMA)
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya Dibuat di Yogyakarta Pada tanggal: 14Januari 2015 Yang menyatakan,
(Yustina Ayu Ruwidati)
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus, atas berkat yang luar biasa dan kehendakNya penulis dapat menyelesaikan penelitian tugas akhir ini yang berjudul
“Deteksi Outlier Menggunakan Algoritma
Connectivity-based Outlier Factor (Studi Kasus: Data Akademik Mahasiswa Teknik Informatika Universitas Sanata Dharma)” Penulis mengucapkan terimakasih yang sebesar-besarnya kepada semua pihak yang berperan dalam pengerjaan tugas akhir ini: 1. Tuhan Yesus Kristus dan Bunda Maria yang telah memberikan berkat dan anugrah yang luar biasa sehingga tugas akhir ini bisa selesai. 2. Ibu P.H. Prima Rosa, S.Si., M.Sc selaku Dekan Fakultas Sains dan Teknologi dan dosen penguji atas semua masukan dan dukungan yang telah di berikan. 3. Ibu Ridowati Gunawan, S.Kom., M.T selaku dosen pembimbing akademik atas kesabaran, bantuan, kritik, masukan, dan dorongan semangat selama penulis menyelesaikan tugas akhir ini. 4. Ibu Sri Hartati Wijono, S.Si., M.Kom selaku dosen penguji atas kritik dan saran yang di berikan. 5. Seluruh dosen dan karyawan Universitas Sanata Dharma Yogyakarta atas kontribusinya dalam membantu penulis. 6. Kedua orang tua saya Bapak E. Ruwido dan Ibu Sumirah yang tanpa henti memberikan dukungan baik secara moral maupun materi. Terima kasih atas doa yang tanpa henti Bapak dan Ib panjatkan. 7. Kedua kakak saya Wing Budi Wiratmoko dan Sunaringtyas Nugraheni atas semua semangat, doa, dan bantuan untuk penulis. Terima kasih pula untuk
keponakan
kecilku,
Randu
Sekar
Kinanthi
yang
dengan
kelucuannya dapat menghibur penulis selama pengerjaan tugas akhir ini. 8. Terima kasih untuk kamu, yang selama 10 tahun kehadiranmu telah memberikan motivasi terbesar dalam hidupku untuk mewujudkan satu persatu mimpiku. Terima kasih karena telah mengenalmu.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9. Sahabat-sahabat terbaikku, Verena Pratita Adji, Venti Trimuryatin, Fidelis Asterina Surya Prasetya, dan Yohanes
Advent
Arinatal
atas
kebersamaanya dari semester 1 hingga semester akhir ini. Terima kasih atas semua canda, tawa, dukungan, doa yang telah kalian berikan. 10. Felisitas Brillianti dan Erlita Octaviani selaku teman sekelompok dalam pengerjaan tugas akhir ini. Terima kasih atas kerja sama, bantuan, dan semangatnya. 11. Daniel Tomi Rahardjo dan H. Roy Wiranata yang tidak pernah bosan untuk membantu penulis dalam menyelesaikan tugas akhir ini. 12. Sahabat PPG, Erlin Kristiyanti, Patricia Puspita Wahyujati, Chatarina Windar Herlita Swari, dan Vivi Yulisetyani atas keceriaan dan dukungan dalam mengerjakan tugas akhir ini. 13. Teman-teman HMPS yang tidak bisa saya sebutkan satu persatu, terima kasih atas kehadiran, doa, semangat, dan tawa kalian. 14. Serta semua pihak yang berperan dalam penyelesaian tugas akhir ini.
Tugas akhir ini masih kurang dari kata sempurna, oleh karena itu penulis dengan rendah hati memohon untuk memberikan kritik dan saran untuk perbaikan tugas akhir ini. Semoga penulisan tugas akhir ini dapat bermanfaat bagi semua pihak. Terima kasih
Yogyakarta, Desember 2014
Yustina Ayu Ruwidati
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Daftar Isi Halaman Judul
....................................................................................
Halaman Persetujuan ...............................................................................
i
Halaman Pengesahan ..............................................................................
ii
Halaman Motto dan Persembahan ..........................................................
iii
Pernyataan Keaslian Karya .....................................................................
iv
Abstrak
....................................................................................
v
Abstract
....................................................................................
vi
Lembar Pernyataan Persetujuan ..............................................................
vii
Kata Pengantar
....................................................................................
viii
Daftar Isi
....................................................................................
x
Daftar Gambar
....................................................................................
xiv
Daftar Tabel
....................................................................................
xvi
BAB I PENDAHULUAN ....................................................................
1
1.1
Latar Belakang.................................................................
1
1.2
Rumusan Masalah ...........................................................
2
1.3
Batasan Masalah ..............................................................
2
1.4
Tujuan ..............................................................................
3
1.5
Manfaat Penelitian ...........................................................
3
1.6
Metodologi Penelitian .....................................................
3
1.7
Sistematika Penulisan ......................................................
4
BAB II LANDASAN TEORI ................................................................
6
2.1
Pengertian Data Mining ..................................................
6
2.2
Outlier..............................................................................
8
2.2.1 Jenis Outlier ...........................................................
9
2.2.1.1 Statistical Distribution-based Outlier Detection 9
2.3
2.2.1.2 Distance-based Outlier Detection ...........
10
2.2.1.3 Density-based Local Outlier Approach ...
11
2.2.1.4 Deviation-based Approach ......................
11
Algoritma Connectivity-based Outlier Factor ................
12
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.4
Contoh Jalannya Algoritma .............................................
14
BAB III METODOLOGI PENELITIAN................................................
17
BAB IV
3.1
Data yang Dibutuhkan .....................................................
17
3.2
Pengolahan Data .............................................................
17
ANALISIS DAN PERANCANGAN SISTEM ...................
30
4.1
Gambaran Umum Sistem ................................................
30
4.1.1
Diagram Use Case .............................................
31
4.1.2
Narasi Use Case ................................................
32
Perancangan Sistem Secara Umum .................................
32
4.2.1
Input Sistem.......................................................
32
4.2.2
Proses Sistem.....................................................
35
4.2.3
Output Sistem ....................................................
37
Perancangan Sistem .........................................................
37
4.3.1
Diagram Aktivitas .............................................
37
4.3.2
Diagram Kelas Analisis .....................................
38
4.3.3
Diagram Sequence .............................................
43
4.3.4
Diagram Kelas Desain .......................................
43
4.3.5
Rincian Algoritma .............................................
44
4.4
Perancangan Struktur Data ..............................................
70
4.5
Perancangan Antarmuka ..................................................
72
4.5.1
Tampilan Halaman Awal ..................................
72
4.5.2
Tampilan Halaman Menu Utama ......................
73
4.5.3
Tampilan Halaman Pilih Database ...................
75
4.5.4
Tampilan Halaman Pilih Tabel .........................
76
4.5.5
Tampilan Halaman About .................................
77
4.5.6
Tampilan Halaman Help ...................................
78
IMPLEMENTASI SISTEM .................................................
79
4.2
4.3
BAB V
5.1
Implementasi Antarmuka ................................................
79
5.1.1
Implementasi Halaman Awal ............................
79
5.1.2
Implementasi Halaman Menu Utama ................
80
5.1.3
Implementasi Halaman Pilih Database .............
86
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB VI
5.1.4
Implementasi Halaman About ...........................
89
5.1.5
Implementasi Halaman Help .............................
90
5.1.6
Implementasi Halaman Exit ..............................
91
5.1.7
Implementasi Pengecekan Masukan .................
91
5.2
Implementasi Kelas .........................................................
94
5.3
Implementasi Struktur Data .............................................
95
5.3.1
Implementasi Kelas Vertex.java .......................
95
5.3.2
Implementasi Kelas Graph.java ........................
96
PENGUJIAN DAN ANALISA HASIL PENGUJIAN ........
99
6.1
Rencana Pengujian ..........................................................
99
6.1.1
Hasil Pengujian Blackbox..................................
102
6.1.1.1 Pengujian Input Data ...........................
102
6.1.1.2 Pengujian Koneksi Database ..............
103
6.1.1.3 Pengujian Seleksi Atribut....................
105
6.1.1.4 Pengujian Deteksi Outlier ...................
106
6.1.1.5 Pengujian Simpan Hasil Deteksi Outlier
107
Kesimpulan Hasil Pengujian Blackbox .............
108
6.1.2 6.1.3
Hasil Pengujian Dengan Perubahan Nilai Parameter k 109
6.1.4
Kesimpulan Hasil Pengujian Dengan Perubahan Nilai Parameter k ........................................................
6.1.5
115
Hasil Pengujian Validitas dan Review oleh Pengguna 115 6.1.5.1 Perbandingan
Perhitungan
Manual
dengan
Perhitungan Sistem .............................
115
6.1.5.2 Kesimpulan Perbandingan Perhitungan Manual dengan Perhitungan Sistem .................
117
6.1.5.3 Hasil Review Oleh Pengguna ..............
117
6.1.5.4 Kesimpulan
6.2
Hasil
Pengujian
Validitas
dan
Review oleh Pengguna.........................
120
Kelebihan dan Kekurangan Sistem .................................
123
6.2.1
Kelebihan Sistem...............................................
123
6.2.2
Kekurangan Sistem ...........................................
124
xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB VII
KESIMPULAN DAN SARAN ............................................
125
7.1
Kesimpulan
.................................................................
125
7.2
Saran
.................................................................
126
DAFTAR PUSTAKA
.................................................................
127
LAMPIRAN 1
.................................................................
128
LAMPIRAN 2
.................................................................
129
LAMPIRAN 3
.................................................................
137
LAMPIRAN 4
.................................................................
144
LAMPIRAN 5
.................................................................
150
LAMPIRAN 6
.................................................................
159
LAMPIRAN 7
.................................................................
194
LAMPIRAN 8
.................................................................
200
xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR Gambar 2.1
Proses KDD(Knowledge Discovery in Database) ...........
7
Gambar 2.2
Obyek pada daerah R adalah outlier ...............................
9
Gambar 3.1
Database gudangdata ......................................................
18
Gambar 3.2
Isi tabel fact_lengkap2 .....................................................
19
Gambar 3.3
Isi tabel fact_lengkap2 untuk mahasiswa Teknik Informatika 20
Gambar 3.4
Isi tabel fact_lengkap2 setelah seleksi .............................
20
Gambar 3.5
Contoh Data angkatan 2007 jalur reguler ........................
25
Gambar 4.1
Proses umum Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor ..................................
Gambar 4.2
Diagram Kelas Analisis Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor ................
Gambar 4.3
36
38
Diagram Kelas Desain Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor ................
44
Gambar 4.4
Ilustrasi Struktur Data Graf .............................................
71
Gambar 4.5
Tampilan Halaman Awal(HomePage) ............................
72
Gambar 4.6
Tampilan Halaman Utama(Home) pada tab Prepocessing
74
Gambar 4.7
Tampilan Halaman Utama(Home) pada tab Deteksi Outlier 75
Gambar 4.8
Tampilan Halaman Pilih Database .................................
76
Gambar 4.9
Tampilan Halaman Pilih Tabel ........................................
76
Gambar 4.10 Tampilan Halaman About ................................................
77
Gambar 4.11 Tampilan Halaman Help..................................................
78
Gambar 5.1
Antarmuka atau Interface Halaman Awal(HomePage) ...
80
Gambar 5.2
Antarmuka atau Interface Halaman Menu Utama(Home)
81
Gambar 5.3
Kotak Dialog Pilih File ...................................................
81
Gambar 5.4
File Inputan Tertampil pada Tabel ..................................
82
Gambar 5.5
Daftar Atribut pada Tabel Seleksi Atribut.......................
83
Gambar 5.6
Antarmuka atau Interface Halaman Menu Utama(Home) tab Deteksi Outlier
Gambar 5.7
83
Antarmuka atau Interface Halaman Menu Utama(Home) tab Deteksi Outlier Saat Memasukan Nilai Parameter ..........
xiv
84
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 5.8
Hasil Deteksi Outlier .......................................................
84
Gambar 5.9
Hasil Deteksi Outlier Setelah Diberi Batas Outlier ........
85
Gambar 5.10 Kotak Dialog Simpan Hasil Deteksi Outlier ...................
85
Gambar 5.11 Kotak Dialog Simpan Hasil Deteksi Outlier Saat Memberi Nama File
.................................................................
86
Gambar 5.12 Pesan Sukses Hasil Deteksi Outlier Berhasil Disimpan..
86
Gambar 5.13 Antarmuka atau Interface Halaman PilihDatabase..........
87
Gambar 5.14 Memasukan Username, Password, Database Name, dan Url 87 Gambar 5.15 Pesan Sukses Konfigurasi ke Database Berhasil ............
88
Gambar 5.16 Antarmuka atau Interface Halaman PilihTabel ...............
88
Gambar 5.17 Tabel Inputan dari Database Tertampil pada Halaman Utama pada tab Prepocessing ..............................................................
89
Gambar 5.18 Antarmuka atau Interface Halaman About ......................
90
Gambar 5.19 Antarmuka atau Interface Halaman Help .......................
91
Gambar 5.20 Antarmuka atau Interface Halaman Exit .........................
91
Gambar 5.21 Pesan Kesalahan k Kosong .............................................
92
Gambar 5.22 Pesan Kesalahan k Mengandung Karakter Selain Angka
92
Gambar 5.23 Pesan Kesalahan Batas Outlier Kosong ..........................
93
Gambar 5.24 Pesan Kesalahan Angka
Batas Outlier Mengandung Karakter Selain
.................................................................
93
Gambar 5.25 Pesan Kesalahan Username, Password, Database Name, dan Url Ada yang Kosong ............................................................
93
Gambar 5.26 Pesan Kesalahan Username, Password, Database Name, dan Url Ada yang Salah ................................................................
94
Gambar 5.27 Pesan Kesalahan Format File Tidak Sesuai ...................
94
Gambar 6.1
Grafik Hasil Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes ....................
Gambar 6.2
Grafik Hasil Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi .............
Gambar 6.3
109
111
Grafik Hasil Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 ...................................
xv
113
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Tabel 2.1 Simbol dan definisi...............................................................
13
Tabel 3.1 Contoh perhitungan min-max normalization untuk atribut nil11, nil12, nil13, nil14, dan15................................................................
22
Tabel 3.2 Setelah di hitung menggunakan rumus min-max normalization untuk atribut nil11, nil12, nil13, nil14, dan15 ................................
22
Tabel 3.3 Contoh perhitungan min-max normalization untuk atribut final 23 Tabel 3.4 Setelah di hitung menggunakan rumus min-max normalization untuk atribut final ...........................................................................
24
Tabel 4.1 Tabel Penjelasan dari Diagram Kelas Analisis ....................
39
Tabel 4.2 Ilustrasi Struktur Data Matriks Dua Dimensi .......................
71
Tabel 4.3 Ilustrasi Struktur Data Matriks Dua Dimensi Setelah dilakukan Perhitungan dengan Ecluidian Distance ..............................
72
Tabel 6.1 Rencana Pengujian Blackbox ...............................................
102
Tabel 6.2 Hasil Pengujian Input Data pada Kelas Home .....................
104
Tabel 6.3 Hasil Pengujian Input Data pada Kelas Koneksi Database .
105
Tabel 6.4 Hasil Pengujian Seleksi Atribut pada Kelas Home ..............
107
Tabel 6.5 Hasil Pengujian Deteksi Outlier pada Kelas Home .............
108
Tabel 6.6 Hasil Pengujian Simpan Hasil Deteksi Outlier pada Kelas Home109 Tabel 6.7 Daftar Nilai Per Atribut ........................................................
118
Tabel 6.8 Hasil Deteksi Outlier Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes ............................................
120
Tabel 6.9 Hasil Deteksi Outlier Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi ......................................
120
Tabel 6.10 Hasil Deteksi Outlier Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 ............................................................
xvi
121
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN
1.1Latar Belakang Di era globalisasi saat ini, pendidikan merupakan kebutuhan primer bagi setiap individu. Pendidikan yang di maksud adalah usaha sadar dan terencana untuk mewujudkan suasana belajar dan proses pembelajaran agar peserta didik secara aktif mengembangkan potensi dirinya untuk memiliki kekuatan spiritual keagamaaan, pengendalian diri, kepribadian, kecerdasan, akhlak mulia, serta ketrampilan yang diperlukan dirinya, masyarakat, bangsa, dan Negara (UU No. 20 Tahun 2003). Universitas Sanata Dharma Yogyakarta adalah sebuah institusi pendidikan yang tentunya memiliki banyak data. Sebagai contoh adalah data akademik. Data-data akademik yang dapat di ambil adalah data PMB (berupa nilai test penerimaan mahasiswa baru ataupun nilai rapor SMA) dan nilai semester. Pada akhir semester IV, akan di analisa apakah mahasiswa tersebut layak untuk melanjutkan studi di program studi Teknik Informatika ataukah tidak. Apakah mahasiswa tersebut perlu untuk di drop out atau tidak. Dalam mengambil keputusan, seorang Kaprodi harus memperhatikan berbagai faktorfaktor nilai. Apabila nilai test penerimaan mahasiswa baru dan nilai semester seorang mahasiswa bagus, tentunya mahasiswa tersebut di nilai berprestasi. Begitu juga sebaliknya. Tetapi, ada kemungkinan apabila seorang mahasiswa memiliki nilai test penerimaan mahasiswa baru yang bagus, namun ia tidak berprestasi dibuktikan dengan nilai semesternya yang jelek. Kebutuhan untuk pengolahan data pun di rasa sangat penting untuk era saat ini. Dalam bidang pendidikan, data mining sangat berguna 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
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
sebuah sistem yang sesuai (Barker & Yacef, 2009). Salah satu metode dalam Data Mining untuk mengenali data yang bersifat unik di sebut Deteksi Outlier. Teknik Deteksi Outlier di kategorikan menjadi beberapa
kelompok,
yaitu
Statistical
Approaches,
Proximity-based
Approaches, Clustering-based Approaches, dan Classification Approaches. Dan salah satu algoritma yang ada adalah algoritma Connectivity-based Outlier Factor (COF). Algoritma COF ini merupakan algoritma dengan pendekatan Density Based. Algoritma COF digunakan untuk mendeteksi outlier segera setelah outlier tersebut muncul dalam database. COF dapat menangani outlier atau pola yang menyimpang dari low density pattern. Ide utama dari algoritma COF adalah untuk menentukan setiap record data yang dapat setingkat atau sederajat untuk menjadi outlier atau data yang menyimpang dari suatu pola yang umum. Dengan demikian, dapat disimpulkan bahwa mahasiswa tersebut memiliki pola yang menyimpang dari pola atau di kenal sebagai outlier. Data mahasiswa yang termasuk outlier ini dapat di gunakan oleh Kaprodi untuk lebih memperhatikan mahasiswa tersebut agar prestasinya bisa naik.
1.2 Rumusan Masalah Rumusan masalah dari penelitian ini adalah : 1.2.1
Bagaimana algoritma Connectivity-based Outlier Factor dapat mendeteksi outlier dari data nilai akademik mahasiswa Teknik Informatika Universitas Sanata Dharma?
1.2.2
Mahasiswa manakah yang memiliki data nilai akademik yang unik atau menyimpang dari pola umum berdasarkan indeks prestasi semester?
1.3 Batasan Masalah Batasan masalah dari penelitian ini adalah : 1.3.1
Algoritma deteksi outlier yang di gunakan adalah algoritma Connectivitybased Outlier Factor (COF) menggunakan pendekatan Density Based.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.3.2
3
Data yang di gunakan adalah data akademik mahasiswa TI Universitas Sanata Dharma angkatan 2007-2008 yang berupa hasil test penerimaan mahasiswa baru, nilai final dan nilai Indeks Prestasi Semester (IPS) dari semester satu sampai semester empat.
1.3.3
Hasil penelitian ini berupa kelompok mahasiswa outlier, jika ditemukan.
1.4 Tujuan Tujuan dari penelitian ini adalah : 1.4.1
Melakukan deteksi outlier pada data akademik Mahasiswa Teknik Informatika Universitas Sanata Dharma dengan menerapkan algoritma Connectivity-based Outlier Factor.
1.4.2
Menganalisis hasil deteksi outlier pada data akademik yang di hasilkan oleh algoritma Connectivity-based Outlier Factor.
1.5 Manfaat Penelitian Manfaat dari penelitian ini adalah : 1.5.1
Memberikan analisis sejauh mana algoritma Connectivity-based Outlier Factor dapat mendeteksi sebuah outlier serta keunggulan algoritma ini dalam mendeteksi outlier.
1.5.2
Membantu Kaprodi TI Universitas Sanata Dharma dalam mendeteksi kejadian langka atau yang menyimpang dari pola umum data akademik mahasiswa.
1.6 Metodologi Penelitian Metode yang di gunakan dalam penelitian ini adalah Knowledge Discovery in Database (KDD), yaitu proses yang dibantu oleh komputer untuk menggali dan menganalisis sejumlah besar himpunan data dan mengekstrak informasi dan pengetahuan yang berguna. Langkah-langkah KDD menurut Jiawei Han adalah sebagai berikut : 1.6.1
Pembersihan Data (Data Cleaning) Untuk menghilangkan noise dan data yang tidak konsisten.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.6.2
4
Integrasi Data (Data Integration) Menggabungkan data dari berbagai sumber data yang berbeda.
1.6.3
Pemilihan Data (Data Selection) Mengambil data yang relevan dengan tugas analisis yang di ambil dari database.
1.6.4
Transformasi Data (Data Transformation) Mentransformasi atau menggabungkan data ke dalam bentuk yang sesuai untuk penggalian lewat operasi summary atau aggregation.
1.6.5
Penambangan Data (Data Mining) Proses penting dimana metode cerdas di aplikasikan untuk mengekstrak suatu pola data.
1.6.6
Evaluasi Pola (Pola Evaluation) Mengidentifikasi pola yang menarik dan merepresentasikan pengetahuan berdasarkan interestingness measures.
1.6.7
Presentasi Pengetahuan (Knowledge Presentation) Penyajian
pengetahuan
yang
di
gali
kepada
pengguna
dengan
menggunakan visualisasi dan teknik representasi pengetahuan.
1.7 Sistematika Penulisan Sistematika penulisan proposal tugas akhir ini adalah sebagai berikut: BAB I
PENDAHULUAN Pada bab ini di jelaskan latar belakang penelitian dan latar belakang secara umum, masalah
penelitian,
rumusan masalah penelitian, batasan
tujuan
penelitian,
manfaat
penelitian,
metodologi penelitian, dan sistematika penulisan. BAB II
LANDASAN TEORI Pada bab ini di jelaskan landasan teori dari penelitian ini. Dasar teori yang menunjang penelitian ini meliputi pengertian data mining yang berisi proses KDD (Knowledge Discovery in
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
Database), pengertian outlier, jenis-jenis outlier, dan algoritma Connectivity-based Outlier Factor. BAB III METODOLOGI PENELITIAN Pada bab ini akan di jelaskan mengenai metode yang dipakai dalam penelitian dan pembuatan aplikasi dalam analisis outlier untuk studi kasus data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma. BAB IV ANALISIS DAN PERANCANGAN SISTEM Pada bab ini akan di jelaskan analisis sistem yang meliputi gambaran umum sistem, data yang di butuhkan untuk penelitian, dan pengolahan data. Akan di jelaskan pula perancangan sistem yang
meliputi
perancangan
umum
dari
sistem
tersebut,
perancangan struktur data, dan perancangan interface atau antarmuka sistem. BAB V
IMPLEMENTASI SISTEM Pada bab ini akan di jelaskan implementasi dari sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. Akan di jelaskan pula listing program dari sistem ini.
BAB VI PENGUJIAN DAN ANALISA HASIL PENGUJIAN Pada bab ini akan di jelaskan hasil pengujian dari sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor beserta dengan analis dari hasil pengujian. BAB VII KESIMPULAN DAN SARAN Pada bab ini akan di jelaskan kesimpulan dari hasil pengujian yang telah dilakukan dan saran yang berguna untuk pengembangan sistem
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II LANDASAN TEORI
2.1 Pengertian Data Mining Data Mining adalah acuan untuk mengekstrak atau menambang pengetahuan dari data yang jumlahnya sangat besar (Han & Kamber, 2006). Data Mining adalah suatu proses menemukan hubungan yang berarti, pola, dan kecenderungan dengan memeriksa dalam sekumpulan besar data yang tersimpan dalam penyimpanan dengan menggunakan teknik pengenalan pola seperti teknik statistik dan matematika (Gartner, 2007). Selain itu, data mining juga di definisikan oleh beberapa ahli seperti Data Mining merupakan proses semi otomatik yang menggunakan teknik statistik, matematika, kecerdasan buatan dana machine learning untuk mengekstraksi dan mengidentifikasi informasi pengetahuan potensial dan berguna yang bermanfaat yang tersimpan dalam database besar (Turban et al, 2005). Data Mining merupakan bidang dari beberapa keilmuan yang menyatukan teknik dari pembelajaran mesin, pengenalan pola, statistik, database, dan visualisasi untuk penanganan permasalahan pengambilan informasi dari database yang besar (Larose, 2006). Dari pengertian-pengertian di atas, dapat di simpulkan bahwa data mining mewarisi dari banyak bidang ilmu seperti kecerdasan buatan (artificial intellegent), machine learning, statistik, database, dan juga pemerolehan informasi (information retrieval). Dengan kemajuan saat ini, Data Mining bertujuan untuk mendapatkan hubungan atau pola yang mungkin memberikan indikasi yang bermanfaat. Saat ini, hampir semua bidang membutuhkan data mining. Hal ini di karenakan oleh terbatasnya kemampuan manusia untuk menganalisis dan mengolah data. Istilah KDD (Knowledge Discovery in Database) dan Data Mining seringkali di artikan memiliki definisi yang sama. Padahal sebenarnya ke dua
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
istilah tersebut memiliki konsep yang berbeda tapi berhubungan satu sama lain atau memiliki keterkaitan satu sama lain, Data Mining merupakan salah satu tahapan yang terdapat di dalam KDD (Knowledge Discovery in Database). Menurut Jiawei Han dan Kamber, langkah untuk menemukan pengetahuan atau KDD pada data mining adalah sebagai berikut:
Gambar 2.1 Proses KDD (Knowledge Discovery in Database)
Langkah-langkah KDD adalah sebagai berikut: 1. Data Cleaning atau Pembersihan Data Di dalam tahapan ini, di lakukan penghilangan noise, memeriksa data yang tidak konsisten, membuang duplikasi data dan memperbaiki kesalahan pada data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8
2. Data Integration atau Penggabungan Data Di dalam tahapan ini di lakukan penggabungan data dari berbagai sumber data yang ada agar mudah di pilih dan di proses nantinya. 3. Data Selection atau Seleksi Data Di dalam tahapan ini di lakukan pemilihan data yang di butuhkan dalam database dan di gunakan untuk proses analisis. 4. Data Transformation atau Transformasi Data Di dalam tahapan ini, di lakukan pengubahan dan penggabungan data dari berbagai macam bentuk menjadi satu bentuk yang sama agar mudah di proses. 5. Data Mining atau Penambangan Data Di dalam tahapan ini, merupakan proses yang sangat penting dimana metode cerdas di lakukan dan di terapkan untuk mengekstrak pola data. 6. Pattern Evaluation atau Evaluasi Pola Di dalam tahapan ini, melakukan evaluasi terhadap pattern yang telah di proses, aspek-aspek yang di evaluasi adalah hasil output yang di dapat setelah proses data mining dilakukan. 7. Knowledge Presentation atau Presentasi Pengetahuan Di dalam tahapan ini, di lakukan penyajian hasil dari proses data mining yang sudah di proses.
2.2 Outlier Meskipun data yang berjumlah besar yang di kumpulkan di banyak ilmu pengetahuan dan aplikasi komersial, peristiwa tertentu yang khusus masih sangat langka terjadi. Peristiwa langka ini, sangat sering di sebut sebagai outlier. Yang di definisikan sebagai peristiwa yang sangat jarang terjadi. Menurut Hawkins, Outlier adalah kejadian yang menyimpang sangat jauh dari kejadian lainnya yang menimbulkan kecurigaan bahwa hal tersebut terjadi di karenakan oleh mekanisme yang berbeda. Sedangkan menurut Jiawei Han dan Kamber, Outlier adalah sejumlah obyek data yang sifatnya terlalu berbeda
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
dari obyek data lain pada umumnya. Deteksi outlier, baru-baru ini telah mendapatkan perhatian dari berbagai pihak. Karena saat ini outlier bukan hanya di anggap sebagai noise untuk di hilangkan, namun bisa di anggap memiliki informasi yang sama pentingnya dengan data yang lain. Karena bisa saja menurut suatu pihak, suatu kelompok data di anggap sebagai noise namun untuk pihak lain sekelompok data tersebut dianggap sebagai informasi yang sangat berguna. Noise adalah kesalahan atau random error dari sebuah variabel yang terukur.
Gambar 2.2 Obyek pada daerah R adalah outlier.
Deteksi outlier dapat di kategorikan menjadi empat pendekatan menurut Jiawei Han dan Kamber. Yaitu Statistical approach, Distance-based approach, Density-based local outlier approach, dan Deviation-based approach.
2.2.1 Jenis Outlier 2.2.1.1
Statistical Approach / Statistical Distribution-based Outlier Detection Metode Statistik mengasumsikan distribusi atau pemodelan probabilitas untuk satu set data (distribusi normal atau Poisson Distribution) dan kemudian mengidentifikasi outlier sehubungan dengan model yang menggunakan discordancy test. Aplikasi dari kebutuhan pengetahuan dari parameter sejumlah data (seperti di asumsikan sejumlah data yang di distribusikan), pengetahuan tentang parameter(seperti mean dan variance) dan sejumlah outlier
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
yang diharapkan. Sebuah obyek data yang normal yang di hasilkan oleh model statistik (Statistical Approach) dan data yang tidak mengikuti model tersebut adalah outlier. Keefektivan dari metode statistik tergantung pada asumsi apakah yang akan di pakai atau di buat untuk metode statistik yang berlaku untuk sejumlah data yang di berikan. (Han dan Kamber, 2006)
2.2.1.2
Distance-based
Approach
/
Distance-based
Outlier
Detection Distance-based Outlier Detection ini merupakan salah satu tipe dari Proximity-based Approach yang mana mengasumsikan bahwa proximity dari sebuah outlier pada tetangga terdekatnya secara signifikan menyimpang dari proximity pada obyek untuk sebagian besar obyek pada data set. Pada Distance-based sebuah obyek di sebut sebagai outlier jika neighborhoodnya tidak memiliki titik lain yang cukup. Gagasan dari distance-based outlier detection adalah untuk mengatasi keterbatasan dari metode statistik. Sebuah obyek o pada sebuah kumpulan data, D adalah Distance-based(DB) outlier dengan parameter pct dan dmin yaitu DB(pct;dmin)-outlier, jika setidaknya fraksi, pct, dari obyek D terletak pada jarak terbesar pada dmin dari o. Dengan kata lain, daripada mengandalkan uji statistik, kita bisa memikirkan distance-based outlier sebagai obyek yang tidak cukup memiliki tetangga, dimana tetangga di definisikan berdasar pada jarak pada obyek yang di berikan. Sebagai perbandingan dengan metode statistik,
distance-based
outlier detection menggeneralisasikan ide di balik pengujian discordancy untuk berbagai distribusi yang standar. Distancebased outlier detection menghindari perhitungan yang berlebihan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
yang berkaitan dengan distribusi yang cocok ke dalam distribusi standar dan dalam memilih tes discordancy. (Han dan Kamber, 2006)
2.2.1.3
Density-based Local Outlier Approach Metode Density-based menyelidiki kepadatan dari sebuah obyek dan tetangganya. Sebuah obyek di identifikasi sebagai outlier jika kepadatannya relativ lebih rendah dari tetangganya. Asumsi dari metode Density-based adalah bahwa kepadatan di sekeliling obyek yang bukan outlier mirip dengan kepadatan di sekeliling tetangganya, sedangkan kepadatan di sekeliling obyek outlier adalah signifikan berbeda dari jarak di sekitar tetangganya. Metode Density-based menggunakan kepadatan relatif dari sebuah obyek terhadap tetangganya untuk menunjukan sejauh mana sebuah obyek disebut sebagai oulier. (Han dan Kamber, 2006)
2.2.1.4
Deviation-based Approach Metode Deviation-based tidak menggunakan uji statistik atau Distance-based untuk mengidentifikasi obyek yang tidak biasa. Sebaliknya, metode Deviation-based mengidentifikasi outlier dengan memeriksa karakter utama obyek dari sebuah grup. Obyek yang menyimpang atau memiliki karakteristik di luar karakter utama dianggap sebagai outlier. Oleh karena itu, pendekatan deviasi biasanya di gunakan untuk merujuk pada outlier. (Han dan Kamber, 2006)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12
2.3 Algoritma Connectivity-based Outlier Factor Ide utama dari algoritma Connectivity-based Outlier Factor (COF) adalah untuk menentukan masing-masing record data yang sederajat atau setingkat untuk menjadi outlier. Algoritma Connectivity-based Outlier Factor adalah algoritma pendeteksian outlier dengan pendekatan density based untuk menangani penyimpangan dari low density pattern. Algoritma COF ini merupakan varian dari algoritma LOF (Local Outlier Factor) yang juga menggunakan k-neighborhood. Gagasan dari algoritma Connectivity-based Outlier Factor adalah low density dari isolativity. Low density berarti jumlah obyek pada close neighborhood dari suatu obyek relatif kecil. Sedangkan isolativity berarti derajat atau tingkatan dimana sebuah obyek terkoneksi dengan obyek yang lain. Record data dengan nilai COF yang tinggi biasanya di sebut strong outlier. Tidak seperti record data dari cluster yang normal yang biasanya cenderung memiliki nilai COF yang lebih rendah. Algoritma untuk menghitung nilai COF untuk semua record data memiliki langkah-langkah sebagai berikut: 1. Mencari Nk(p) untuk setiap record data p pada k nearest neighbours (k-NN); 2. Mencari set based nearest path (SBN-path) atau s. Di sini, set based nearest path (SBN-path) dari record data p1 pada set Nk (p) adalah urutan record dengan jarak terdekat masing-masing p, s={p1,p2,…,pr} sehingga untuk semua
1≤ i ≤ r −1, pi+1 adalah tetangga
terdekat dari {p1,…,pi} pada {pi+1,…,pr}. 3. Mencari set based nearest trail (SBN-trail) atau tr. SBN-trail adalah urutan edge terhadap s atau SBN-path di mana setiap tepi menghubungkan dua tetangga terdekat berturut-turut dari jalur SBNpath. Dapat dinotasikan SBN-trail = {e(1), ....., e(r-1)}. 4. Menghitung Cost Description. Cost Description adalah jarak dari masing-masing edge pada SBN-trail.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
5. Menghitung average chaining distance(ac-dist) dari p1 ke Nk - {p1}, dinotasikan dengan ac-distNk(p)∪p(p1) dan didefinisikan sebagai:
.................... (1)
dimana dist(ei) dinotasikan jarak antara node yang terdiri dari tepi. Average chaining distance dari p1 ke Nk-{p1} adalah jumlah bobot dari cost description sequence dari SBN trail untuk beberapa SBN path dari p1, dan juga dapat dilihat sebagai rata-rata jarak bobot dalam cost description sequence SBN-trail. 6. Hitung connectivity-based outlier factor (COF) pada record data p sehubungan dengan k- neigbourhood nya menggunakan rumus berikut: .................... (2) COF dihitung sebagai rasio average chaining distance dari data record p untuk Nk(p) dan average chaining distance pada k-distance neighbors mereka sendiri.
Tabel 2.1 Simbol dan definisi P
Masing-masing record dari suatu set data
Nk(p)
Jumlah tetangga terdekat dari p
SBN-path atau s
Jalur dari p ke p(r)
SBN-trail atau tr
Urutan dari edge sesuai dengan SBNpath
Cost Desciption Sequence
Jarak dari masing-masing edge pada SBN- trail
Average Chaining Distance
Rata-rata
dari
bobot
CDS(Cost
Description Sequence) pada SBN-
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
trail Connectivity-based Outlier Factor
Menunjukkan seberapa
jauh titik
bergeser dari pola. Perbandingan
titik
sekelilingnya
yang
ke
titik
di
mempengaruhi
outlier factor
2.4 Contoh Jalannya Algoritma Di asumsikan terdapat titik yaitu 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2, dan 1. Titik 2 dan titik 1 terletak jauh dari titik lainnya yang berdekatan. Di tentukan bahwa jarak dari titik 1 ke 2 adalah 5 ((dist(1,2) = 5)), jarak dari titik 2 ke titik 7 adalah 3 ((dist(2,7) = 3)), sedangkan jarak dari titik satu ke titik lainnya adalah 1. Di tentukan pula k = 10, r = 11. 1. Mencari Nk(p) Dari contoh di atas akan di cari Nk(1) terhadap p=1. Jarak terdekat dari titik 1 adalah 2, 9, 10, 8, 11, 7, 12, 6, 13, 5. Jadi Nk(1) = {2, 9, 10, 8, 11, 7, 12, 6, 13, 5}. 2.
Mencari SBN-path Langkah selanjutnya adalah mencari SBN-path dari titik 1 pada Nk(1) ∪ {1}. Pada langkah ini, di lakukan penggabungan antara p=1 dengan Nk(1). Perhitungan di lakukan secara berantai dengan ukuran jarak terdekat dari titik tertentu (< p1, p2, ..., pr>). Dari contoh di atas, jalur atau path dari titik 1, jarak terdekat adalah ke titik 2. Dari titik 2, jarak terdekat adalah titik 7. Dari titik 7, jarak terdekat adalah titik 6. Dari titik 6, jarak terdekat adalah titik 5. Kemudian kembali ke titik 7, titik terdekat dari titik 7 selain titik 6 adalah titik 8. Dari titik 8, jarak terdekat adalah titik 9. Dari titik 9, jarak terdekat adalah titik 10. Dari titik 10, jarak terdekat adalah titik 11. Dari titik 11, jarak terdekat adalah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
titik 12. Dan yang terakhir dari titik 12, jarak terdekat adalah titik 13. Jadi SBN-path atau s1 = <1, 2, 7, 6, 5, 8, 9, 10, 11, 12, 13>.
3.
Mencari SBN-trail Langkah yang berikutnya adalah mencari SBN-trail untuk s1 atau SBNpath terhadap titik 1. SBN-trail adalah urutan edge terhadap s1 (< dist(e1), ..., dist(er-1)>). Dari jarak titik 1 ke titik 2, titik 2 ke titik 7, titik 7 ke titik 6, titik 6 ke titik 5, titik 7 ke titik 8, titik 8 ke titik 9, titik 9 ke titik 10, titik 10 ke titik 11, titik 11 ke titik 12, dan titik 12 ke titik 13. Jarak dari masing-masing titik tersebut adalah e. Jadi SBN-trail atau tr1 = < (1,2), (2,7), (7,6), (6,5), (7,8), (8,9), (9,10), (10,11), (11,12), (12,13) >
4.
Menghitung Cost Description Langkah
selanjutnya
adalah
menghitung
Cost
Description.
Cost
Description adalah jarak dari masing-masing edge pada SBN- trail. Pada contoh data di atas sudah di tentukan bahwa jarak dari titik 1 ke 2 adalah 5 ((dist(1,2) = 5)), jarak dari titik 2 ke titik 7 adalah 3 ((dist(2,7) = 3)), sedangkan jarak dari titik satu ke titik lainnya adalah 1. Maka dapat di hitung untuk tr1, dist(1,2) = 5, dist(2,7) = 3, dist(7,6) = 1, dist(6,5) = 1, dist(7,8) = 1, dist(8,9) = 1, dist(9,10) = 1, dist(10,11) = 1, dist(11,12) = 1, dan dist(12,13) = 1. Maka Cost Desciption atau c1 terhadap tr1 : c1 = < 5, 3, 1, 1, 1, 1, 1, 1, 1, 1 > 5.
Menghitung ac-dist atau Average Chaining Distance Langkah berikutnya yaitu menghitung ac-dist. ac-dist adalah rata-rata dari bobot CDS(Cost Description Sequence) pada SBN-trail.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
ac-dist Nk (1) ∪ {1} (1) =( 2(11-1)*5)/(11(11-1)) + (2(11-2)*3)/(11(11-1)) + (2(11-3)*1)/(11(11-1)) + (2(11-4)*1)/(11(11-1)) + (2(11-5)*1)/(11(111))
+
(2(11-6)*1)/(11(11-1))
+
(2(11-7)*1)/(11(11-1))
+
(2(11-
8)*1)/(11(11-1)) + (2(11-9)*1)/(11(11-1)) + (2(11-10)*1)/(11(11-1)) = 2,054545455 6.
Menghitung COF (Connectivity-based Outlier Factor) Langkah selanjutnya adalah menghitung Connectivity-based Outlier Factor (COF).
Jadi COFk(1) = 2,1 Setelah di temukan nilai COF, maka dapat di tentukan bahwa obyek tersebut tergolong outlier atau tidak. Pada contoh di atas, dapat di tentukan bahwa obyek tersebut termasuk outlier dikarenakan nilai COF lebih dari 1.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III METODOLOGI PENELITIAN
Pada bab ini akan di jelaskan mengenai metodologi penambangan data yang di gunakan dalam penelitian sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. Metodologi yang di gunakan adalah KDD (Knowledge Discovery in Database) menurut Jiawei Han dan Kamber. Akan di jelaskan pula penerapan dari algoritma Connectivitybased Outlier Factor pada kumpulan data atau data set akademik mahasiswa Teknik Informatika Universitas Sanata Dharma. 3.1 Data yang dibutuhkan Data yang di gunakan dalam penelitian ini adalah Data Akademik Mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008. Data akademik yang di gunakan adalah dari semester satu sampai semester empat. Data ini berasal dari penelitian yang dilakukan oleh Rosa, dkk (2011). Data ini berupa script query yang berisi tabel gudang data dan file ini berformat .sql.
3.2 Pengolahan Data Tahapan pengolahan data untuk data akademik Teknik Informatika Universitas Sanata Dharma adalah sebagai berikut: 1.
Data Integration atau Penggabungan Data Di dalam tahapan ini di lakukan penggabungan data dari berbagai
sumber data yang ada agar mudah di pilih dan di proses nantinya. Sumber data yang berupa file .sql (script query) dari penelitian Rosa, dkk (2011) ini kemudian di olah dengan di import ke dalam database dan akan terbuat satu database baru bernama gudangdata. Database gudangdata memiliki sembilan tabel, yaitu tabel dim_angkatan, tabel dim_daftarsmu, tabel dim_fakultas, tabel dim_jeniskel, tabel dim_kabupaten, tabel dim_prodi,
17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
tabel dim_prodifaks, tabel dim_statustes, dan tabel fact_lengkap2.
Gambar 3.1 Database gudangdata.
2.
Data Selection atau Seleksi Data Setelah dilakukan proses Data Integration atau penggabungan data,
selanjutnya di dalam tahapan ini akan di lakukan pemilihan data yang di butuhkan dalam database dan di gunakan untuk proses analisis. Data yang di peroleh dari langkah sebelumnya akan di seleksi sesuai dengan kebutuhan untuk penelitian ini. Tabel yang di gunakan untuk penelitian ini adalah tabel fact_lengkap2. Tabel yang lainnya tidak di gunakan karena di nilai kurang relevan dengan penelitian ini. Di dalam tabel fact_lengkap2 ini terdapat atribut nomor, jumsttb, jummtsttb, jumnem, nomor_mhs, nama_mhs, ips1, ips2, ips3, ips4, nil11, nil12, nil13, nil14, nil15, final, statustes, kd21, kd22, kd23, kd24, kd25, kd26, kd27, kd28, nem, sttb, sk_jeniskel, sk_status, sk_kabupaten, sk_daftarsmu, dan sk_prodi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
Gambar 3.2 Isi tabel fact_lengkap2 Langkah selanjutnya setelah seleksi tabel adalah menyeleksi data dalam tabel. Data yang akan di gunakan adalah data mahasiswa Teknik Informatika angkatan 2007-2008. Jadi data selain mahasiswa Teknik Informatika akan di hilangkan. Data mahasiswa yang memiliki atribut sk_prodi = 27 (Teknik Informatika) akan di tampilkan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
Gambar 3.3 Isi tabel fact_lengkap2 untuk mahasiswa Teknik Informatika
Setelah itu, di lakukan seleksi untuk atribut-atribut yang sesuai untuk di gunakan dalam penelitian ini. Akan di lakukan penghilangan atribut-atribut nomor, jumsttb, jummtsttb, jumnem, sttb, sk_jeniskel, sk_status, sk_kabupaten, sk_daftarsmu, dan sk_prodi.
Gambar 3.4 Isi tabel fact_lengkap2 setelah seleksi
3.
Data Transformation atau Transformasi Data Di dalam tahapan ini, di lakukan pengubahan dan penggabungan
data dari berbagai macam bentuk menjadi satu bentuk yang sama agar
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
21
mudah di proses. Atribut-atribut yang di gunakan memiliki tipe atau jenis yang
berbeda
sehingga
membutuhkan
transformasi
data
untuk
penyeragaman data sehingga datanya dapat lebih mudah untuk di tambang. Contohnya atribut ips1, ips2, ips3, dan ips4 memiliki nilai maksimal 4.00. Untuk atribut nil11, nil12, nil13, nil14, dan nil15 memiliki nilai maksimal 10.00. Sedangkan untuk atribut final memiliki nilai maksimal 100.00. Karena perbedaan nilai maksimal masing-masing atribut tersebut, maka harus di lakukan pengubahan nilai maksimal. Atribut nil11, nil12, nil13, nil14, nil15, dan final akan di ubah nilai maksimalnya sehingga menjadi satu bentuk dengan atribut ips1, ips2, ips3, dan ips4 yaitu 4.00. Untuk penggabungan data dari berbagai macam bentuk menjadi satu bentuk yang sama tersebut di gunakan rumus min-max normalization.
v'
v minA (new _ maxA new _ minA) new _ minA maxA minA
Keterangan : v’
: Nilai yang di cari untuk di normalisasi.
v
: Nilai yang belum di normalisasi.
minA
: Nilai minimum dari atribut A.
maxA
: Nilai maksimum dari atribut A.
new_maxA
: Nilai maksimum baru dari atribut A.
new_minA
: Nilai minimum baru dari atribut A.
Contoh perhitungan menggunakan rumus min-max normalization untuk atribut nil11, nil12, nil13, nil14, dan nil15 adalah sebagai berikut. nil11 adalah 8.00. Akan dilakukan transformasi untuk nil11 agar nilai maksimumnya 4.00. Di notasikan v = 8.00, minA = 0.00, maxA = 10.00, new_maxA = 4.00, new_minA = 0.00. Jadi v’ = ((8.00 - 0.00) / (10.00 – 0.00)) * (4.00 - 0.00) + 0.00. v’ = (8 / 10) * 4. v’ = 3.20. Akan di berikan satu contoh perhitungan dalam tabel untuk atribut ips1, nil11, nil12, nil13, nil14, dan nil15. Atribut nil11, nil12, nil13, nil14,
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
dan nil15 akan di seragamkan nilai maksimumnya adalah 4.00. Tabel 3.1 Contoh perhitungan min-max normalization untuk atribut nil11, nil12, nil13, nil14, dan15. Nomor
ips1
nil11
nil12
nil13
nil14
nil15
1.
3.72
8.00
6.00
6.00
7.00
5.00
2.
2.89
6.00
5.00
5.00
7.00
5.00
3.
2.56
6.00
4.00
5.00
7.00
5.00
4.
3.28
7.00
6.00
7.00
6.00
6.00
5.
1.89
6.00
5.00
6.00
6.00
7.00
6.
1.44
10.00
5.00
9.00
6.00
7.00
7.
4.00
6.00
6.00
4.00
4.00
7.00
8.
1.72
3.00
2.00
8.00
3.00
1.00
9.
2.89
5.00
5.00
8.00
5.00
7.00
10.
2.94
7.00
5.00
5.00
5.00
5.00
11.
2.94
6.00
4.00
6.00
3.00
7.00
12.
2.44
5.00
5.00
6.00
5.00
5.00
13.
1.72
7.00
6.00
8.00
8.00
2.00
Tabel
3.2
Setelah
di
hitung
menggunakan
rumus
min-max
normalization untuk atribut nil11, nil12, nil13, nil14, dan15. Nomor
ips1
nil11
nil12
nil13
nil14
nil15
1.
3.72
3.20
2.40
2.40
2.80
2.00
2.
2.89
2.30
2.00
2.00
2.80
2.00
3.
2.56
2.40
1.60
2.00
2.80
2.00
4.
3.28
2.80
2.40
2.80
2.40
2.40
5.
1.89
2.40
2.00
2.40
2.40
2.80
6.
1.44
4.00
2.00
3.60
2.40
2.80
7.
4.00
2.40
2.40
1.60
1.60
2.80
8.
1.72
1.20
0.80
3.20
1.20
0.40
9.
2.89
2.00
2.00
3.20
2.00
2.80
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10.
2.94
2.80
2.00
2.00
2.00
1.60
11.
2.94
2.40
1.60
2.40
1.20
2.80
12.
2.44
2.00
2.00
2.40
2.00
2.00
13.
1.72
2.80
2.40
3.20
3.20
0.80
23
Sedangkan untuk contoh perhitungan menggunakan rumus minmax normalization untuk atribut final adalah sebagai berikut. final = 67.80. Akan dilakukan transformasi untuk final agar nilai maksimumnya 4.00. Di notasikan v = 67.80, minA = 0.00, maxA = 100.00, new_maxA = 4.00, new_minA = 0.00. Jadi v’ = ((67.80 - 0.00) / (100.00 – 0.00)) * (4.00 - 0.00) + 0.00. v’ = (67.80 / 100) * 4. v’ = 2.712. Akan di berikan satu contoh perhitungan dalam tabel untuk atribut ips1, ips2, ips3, ips4, dan final. Atribut final akan di seragamkan nilai maksimumnya adalah 4.00.
Tabel 3.3 Contoh perhitungan min-max normalization untuk atribut final. Nomor
ips1
ips2
ips3
ips4
Final
1.
2.06
2.32
2.91
3.00
67.80
2.
2.72
2.50
2.96
2.38
67.75
3.
3.33
3.48
3.78
3.48
69.41
4.
2.39
3.00
2.43
2.82
71.60
5.
2.11
2.71
2.43
2.45
73.75
6.
3.00
2.96
2.61
3.29
67.57
7.
3.72
3.56
3.43
3.67
78.67
8.
3.44
3.04
2.88
3.48
71.33
9.
2.17
2.70
3.09
3.63
72.00
10.
3.89
3.75
3.00
3.62
77.00
11.
2.89
3.68
2.88
3.76
72.99
12.
3.11
3.08
2.78
3.48
68.17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13.
2.00
Tabel
3.4
2.00
Setelah
di
2.29
hitung
3.00
menggunakan
24
77.10
rumus
min-max
normalization untuk atribut final. Nomor
ips1
ips2
ips3
ips4
Final
1.
2.06
2.32
2.91
3.00
2.712
2.
2.72
2.50
2.96
2.38
2.71
3.
3.33
3.48
3.78
3.48
2.7764
4.
2.39
3.00
2.43
2.82
2.864
5.
2.11
2.71
2.43
2.45
2.95
6.
3.00
2.96
2.61
3.29
2.7028
7.
3.72
3.56
3.43
3.67
2.1468
8.
3.44
3.04
2.88
3.48
2.8532
9.
2.17
2.70
3.09
3.63
2.88
10.
3.89
3.75
3.00
3.62
3.08
11.
2.89
3.68
2.88
3.76
2.9196
12.
3.11
3.08
2.78
3.48
2.7268
13.
2.00
2.00
2.29
3.00
3.084
4.
Data Mining atau Penambangan Data Di dalam tahapan ini, merupakan proses yang sangat penting
dimana metode cerdas di lakukan dan di terapkan untuk mengekstrak pola data. Data akademik Teknik Informatika angkatan 2007-2008 yang telah di olah, akan di analisis menggunakan algoritma Connectivity-based Outlier Factor. Dalam tahap ini, akan di gunakan beberapa variabel untuk melakukan pengujian. Variabel-variabel yang di gunakan adalah sebagai berikut:
1. Input Variabel input yang di gunakan di ambil dari tabel ‘fact_lengkap2’ pada database ‘gudangdata’. Variabel-variabel
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
tersebut adalah nomor_mhs, nama_mhs, ips1, ips2, ips3, ips4, nil1, nil2, nil3, nil4, nil5, final, statustes, kd21, kd22, kd23, kd24, kd25, kd26, kd27, kd28, dan nem. 2. Output Variabel output yang di gunakan berupa mahasiswa yang di anggap
sebagai
outlier
setelah
di
lakukan
pendeteksian
menggunakan algoritma Connectivity-based Outlier Factor.
Akan di berikan contoh penambangan data menggunakan algoritma Connectivity-based Outlier Factor. Data yang di gunakan adalah sampel mahasiswa Teknik Informatika angkatan 2007-2008 berjumlah 13. 1. Perhitungan data mahasiswa angkatan 2007 pendaftar jalur reguler. Dengan membandingan variabel ips1 dengan nil1, nil2, nil3,nil4, dan nil5.
Gambar 3.5 Contoh Data angkatan 2007 jalur reguler. Dari data di atas, kemudian di cari jarak perbandingan setiap obyek menggunakan rumus jarak Ecluidian.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
Setelah di hitung jarak, maka tentukan k = 7. Cari 7 jarak paling dekat terhadap obyek p. Setelah mendapat 7 jarak terdekat, kemudian di cari jarak terbesar atau maksimum dari obyek p. Untuk obyek P1 dapat diperoleh jangkauan terbesar adalah 1,7385. Jangkauan terbesar atau maksimum juga di sebut sebagai k-distance.
2. Mencari Nk(p) Dari contoh di atas akan di cari Nk(P1) terhadap p=P1. Jarak terdekat dari titik P1 adalah P3, P4, P5, P6, P9, P11, P12 Jadi Nk(P1) = { P3, P4, P5, P6, P9, P11, P12}.
3. Mencari SBN-path Langkah selanjutnya adalah mencari SBN-path dari titik P1 pada Nk(P1)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
27
∪ {P1}. Pada langkah ini, di lakukan penggabungan antara p=P1 dengan Nk(P1). Perhitungan di lakukan secara berantai dengan ukuran jarak terdekat dari titik tertentu (< p1, p2, ..., pr>). Dari contoh di atas, jalur atau path dari titik P1. Jadi SBN-path atau s1 = < P1, P12, P4, P3, P11, P9, P5, P6>.
4. Mencari SBN-trail Langkah yang berikutnya adalah mencari SBN-trail untuk s1 atau SBNpath terhadap titik P1. SBN-trail adalah urutan edge terhadap s1 (< dist(e1), ..., dist(er-1)>). Jadi
SBN-trail
atau
tr1
=
<
(P1,P12),(P12,P4),(P4,P3),(P3,P11),(P11,P9),(P9,P5),(P5,P6) >
5. Menghitung Cost Description Sequence Langkah selanjutnya adalah menghitung Cost Description Sequence. Cost
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28
Description Sequence adalah jarak dari masing-masing edge pada SBNtrail. Maka Cost Desciption Sequence atau c1 terhadap tr1 : c1 = < 0,9811; 0,1189; 0,0245; 0,1854; 0,0644; 0,2258; 0,1385>
6. Menghitung ac-dist atau Average Chaining Distance Langkah berikutnya yaitu menghitung ac-dist. ac-dist adalah rata-rata dari bobot CDS(Cost Description Sequence) pada SBN-trail.
ac-dist Nk (P1) ∪ {P1} (1) = 0,329558
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7.
29
Menghitung COF (Connectivity-based Outlier Factor)
Langkah selanjutnya adalah menghitung Connectivity-based Outlier Factor (COF).
Jadi COFk(P1) = 0,966746822
Pada contoh di atas, dapat di tentukan bahwa P1 bukan outlier. Karena nilai COF tidak lebih dari 1.
5.
Pattern Evaluation atau Evaluasi Pola Di dalam tahapan ini, melakukan evaluasi terhadap pattern yang
telah di proses, aspek-aspek yang di evaluasi adalah hasil output yang di dapat setelah proses data mining dilakukan. . 6.
Knowledge Presentation atau Presentasi Pengetahuan Di dalam tahapan ini, di lakukan penyajian hasil dari proses data
mining yang sudah di proses. Sehingga dalam tahapan ini akan di buat sebuah sistem berbasis desktop menggunakan bahasa pemrograman java yang
dapat
melakukan
pendeteksian
outlier.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini akan di jelaskan analisis dan perancangan sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. 6.1 Gambaran Umum Sistem Universitas Sanata Dharma adalah salah satu universitas swasta di Yogyakarta yang setiap tahunnya akan melakukan seleksi penerimaan mahasiswa baru. Terdapat dua jalur seleksi penerimaan mahasiswa baru, yaitu jalur prestasi dan jalur tes tertulis. Untuk jalur prestasi, di gunakan nilai rata-rata kognitif dalam raport kelas XI semester satu dan dua dengan rata-rata nilai minimal 75. Dari nilai rata-rata kognitif tersebut dapat di peroleh nilai final sehingga calon mahasiswa tersebut dapat di tentukan untuk di terima atau tidak di Universitas Sanata Dharma. Sedangkan untuk jalur test tertulis, terdapat lima komponen nilai, yaitu komponen nilai penalaran numerik, komponen nilai penalaran verbal, komponen nilai hubungan ruang, komponen nilai bahasa inggris, dan komponen nilai kemampuan numerik. Dari kelima komponen tersebut akan di rata-rata sehingga dapat menghasilkan nilai final untuk penentuan apakah calon mahasiswa tersebut dapat di terima di Universitas Sanata Dharma. Setelah di lakukan seleksi penerimaan mahasiswa baru, maka akan di dapat mahasiswa yang di nyatakan di terima di Universitas Sanata Dharma. Para mahasiswa baru ini, akan mengikuti perkuliahan reguler dan setiap akhir semester akan mendapat hasil nilai berupa Indeks Prestasi. Nilai Indeks Prestasi Semester dari mahasiswa tersebut dari semester satu sampai empat akan di gunakan sebagai pembanding dengan nilai masuk mahasiswa tersebut baik jalur tes tertulis maupun jalur prestasi. Pada akhir semester IV, akan di analisa apakah mahasiswa tersebut layak untuk melanjutkan studi di program studi Teknik Informatika ataukah tidak.
30
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
31
Apabila seorang mahasiswa memiliki nilai masuk yang bagus, tentunya nilai Indeks Prestasinya juga bagus. Namun tidak menutup kemungkinan terdapat mahasiswa yang memiliki nilai masuk yang bagus tetapi indeks prestasi semesternya jelek dan sebaliknya, hal ini menjadi sesuatu yang menarik untuk di teliti karena berkaitan dengan deteksi outlier. Sebuah sistem pendekteksi outlier akan di buat untuk mendeteksi kejadian langka tersebut. Sistem ini akan di buat berdasarkan algoritma Connectivity-based Outlier Factor dengan pendekatan density based. Sistem ini di harapkan dapat meneliti mahasiswa-mahasiswa mana saja yang di indikasikan sebagai outlier. 6.1.1 Diagram Use Case Diagram Use case merupakan suatu model atau pemodelan yang di gunakan untuk menggambarkan kebutuhan fungsional yang di harapkan dari sebuah sistem. Jadi, sebuah sistem terdapat pengguna atau user dan sistem yang berjalan yang saling berinteraksi. Diagram use case beserta penjelasannya akan di jelaskan pada lampiran 1. Pada diagram use case, terdapat Pengguna atau user yang menggunakan sistem pendeteksian outlier ini. Pengguna dapat melakukan input data yang berupa file Excel atau file berekstensi .csv serta dari database. Pengguna selanjutnya dapat melakukan pencarian outlier. Fungsi utama yang lain adalah pengguna dapat menyimpan hasil pendeteksian outlier. Ketiga fungsi di atas hanya bisa di lakukan secara berurutan karena terdapat depends on, dimana pengguna harus menginputkan data terlebih dahulu, kemudian melakukan proses pencarian outlier, dan selanjutnya menyimpan data hasil pendeteksian. Fungsi tambahan lain adalah pengguna dapat menyeleksi atribut. Fungsi ini bisa berjalan apabila pengguna telah melakukan salah satu fungsi utama yaitu menginputkan data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
6.1.2 Narasi Use Case Untuk mengetahui detail keseluruhan dari narasi use case dapat dilihat pada bagian lampiran 2.
6.2 Perancangan Sistem Secara Umum 4.2.1 Input Sistem Input untuk sistem yang akan di bangun ini berupa data bebas dari user dengan file berekstensi .xls atau file excel. Inputan dapat juga berupa data dalam suatu tabel dalam database. Di dalam sistem yang akan di bangun ini, data dapat berukuran apa saja sehingga user dapat mencari outlier pada semua jenis data. Inputan untuk mencari outlier dalam sistem ini terdapat dua macam, yaitu: 1.
k k adalah jangkauan atau tetangga terdekat dari obyek p untuk mendefinisikan local neighbourhood.
Berikut ini merupakan rincian data yang akan di gunakan dalam penelitian sistem deteksi outlier menggunakan algoritma Connectivitybased Outlier Factor: a. Data Hasil Seleksi Masuk Jalur Tes No.
Nama
Penjelasan
Nilai
Atribut 1.
Nomor urut
Atribut
ini 1-126
merupakan nama alias dari nomor mahasiswa pada tiap obyek 2.
Nil1
Merupakan
0-4.00
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
atribut
dari
komponen nilai tes 1 3.
Nil2
Merupakan atribut
0-4.00 dari
komponen nilai tes 2 4.
Nil3
Merupakan atribut
0-4.00 dari
komponen nilai tes 3 5.
Nil4
Merupakan atribut
0-4.00 dari
komponen nilai tes 4 6.
Nil5
Merupakan atribut
0-4.00 dari
komponen nilai tes 5
b. Data Hasil Seleksi Masuk Jalur Prestasi No.
Nama
Penjelasan
Nilai
Atribut 1.
Nomor urut
Atribut
ini 1-126
merupakan nama alias dari nomor mahasiswa pada tiap obyek 2.
Final
Merupakan
0-4.00
33
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
atribut nilai dari rata-rata
nilai
kognitif
pada
rapor
c. Data Hasil Seleksi Masuk (Gabung) No.
Nama
Penjelasan
Nilai
Atribut 1.
Nomor urut
Atribut
ini 1-126
merupakan nama alias dari nomor mahasiswa pada tiap obyek 2.
Ips1
Merupakan
0-4.00
atribut nilai dari Indeks Prestasi mahasiswa semester 1 3.
Ips2
Merupakan
0-4.00
atribut nilai dari Indeks Prestasi mahasiswa semester 2 4.
Ips3
Merupakan atribut nilai dari Indeks Prestasi mahasiswa semester 3
5.
Ips4
Merupakan
0-4.00
34
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
atribut nilai dari Indeks Prestasi mahasiswa semester 4 6.
Final
Merupakan
0-4.00
atribut nilai dari rata-rata
nilai
kognitif
pada
rapor
4.2.2 Proses Sistem Proses sistem deteksi outlier adalah sebagai berikut: 1.
Pengambilan Data Pada tahap ini, user dapat melakukan pengambilan data dengan memasukan data yang berekstensi .xls dan .csv. Selain itu, user dapat mengambil data pada tabel dalam database. Setelah itu akan di tampilkan atribut-atribut yang di gunakan, kemudian user akan memilih atau menyeleksi atribut-atribut yang sekiranya di perlukan dalam proses pendeteksian outlier.
2.
Perhitungan Jarak Obyek Data Pada tahap ini akan di lakukan perhitungan jarak antar obyek menggunakan rumus Euclidean Distance. Perhitungan ini di lakukan agar di dapatkan jarak masing-masing obyek dengan obyek lainnya.
3.
Pencarian Outlier Berdasarkan Parameter k Pada
tahap
ini
akan
di
lakukan
pendeteksian
outlier
menggunakan algoritma Connectivity-based Outlier Factor. Akan di masukan parameter k, dimana parameter k digunakan untuk mengetahui tetangga terdekat dari suatu obyek.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
Start
Data bertipe .xls
Ya Pilih seleksi atribut
Proses Seleksi Atribut
Data bertipe .csv Tidak
Data dari tabel database
Input nilai parameter k
Proses pendeteksian Outlier
Hasil Pendektesian Outlier
End
Gambar 4.1 Proses umum Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
4.2.3 Output Sistem Output pada sistem ini adalah sebagai berikut: 1.
Jumlah Data Sistem akan menampilkan keseluruhan data sesuai dengan inputan dari user.
2.
Hasil Outlier Setelah di lakukan pendeteksian outlier, maka akan di temukan data yang di indikasikan sebagai outlier. Data yang di indikasikan atau berpotensi menjadi outlier adalah data yang memiliki derajat COF lebih dari 1 atau menjauhi 1. Akan di tampilkan pula ranking atau peringkat dari data dengan derajat COF yang paling tinggi ke yang paling rendah.
6.3 Perancangan Sistem 6.3.1 Diagram Aktivitas Diagram aktivitas merupakan representasi grafis dari gambaran dari seluruh tahapan alur kerja dari sistem yang dirancang. 1. Diagram Aktivitas Input Data File yang Berekstensi .xls 2. Diagram Aktivitas Input Data File yang Berekstensi .csv 3. Diagram Aktivitas Input Data File dari Tabel pada Database 4. Diagram Aktivitas Proses Deteksi Outlier 5. Diagram Aktivitas Simpan Hasil Deteksi Outlier 6. Diagram Aktivitas Seleksi Atribut 7. Diagram Aktivitas Seleksi Atribut dengan Pilihan Tandai Semua Atribut Penjelasan dari masing-masing diagram aktivitas akan di jelaskan pada bagian lampiran 3.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
6.3.2 Diagram Kelas Analisis
PilihFile
PilihTabel
PilihDataBase
KoneksiDataBase
DataControl HomePage
Home
user
CheckBoxTable Model
SeleksiAtributControl
Graph
Vertex
About
CofTableModel Help
Gambar 4.2 Diagram Kelas Analisis Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor.
DataCof
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
39
Tabel 4.1 Tabel Penjelasan dari Diagram Kelas Analisis
No 1.
Nama Kelas
Jenis
Keterangan
KoneksiDataBase
Entity
Kelas
ini
gunakan
di
untuk
menghubungan sistem
dengan
database yang di perlukan
dalam
sistem. 2.
Vertex
Entity
Kelas
ini
gunakan
di
untuk
membentuk sebuah
vertex
dalam graph. Di dalam
kelas
vertex
ini
terdapat atributatribut perhitungan outlier. 3.
Graph
Entity
Kelas
ini
gunakan
di
untuk
membentuk sebuah graph. Di dalam kelas ini juga
terdapat
method-method untuk perhitungan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
outlier. 4.
CheckBoxTableModel Entity
Kelas
ini
gunakan
di
untuk
membentuk sebuah
table
model. 5.
DataCof
Entity
Kelas
ini
gunakan
di
untuk
menyimpan hasil deteksi outlier. 6.
CofTableModel
Enitity
Kelas
ini
gunakan
di
untuk
membentuk sebuah
tabel
model dari hasil outlier
yang
telah di simpan. 7.
DataControl
Controller
Kelas
ini
gunakan
di
untuk
mengatur koneksi database dengan
sistem
dan berisi query untuk menampilkan tabel
dari
database. 8.
SeleksiAtributControl
Controller
Kelas
ini
gunakan menyimpan
di
untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
atribut yang di pakai
dalam
perhitungan outlier. 9.
HomePage
Boundary
Kelas gunakan
ini
di
untuk
menampilkan tampilan sistem
saat pertama
kali di jalankan. 10.
Home
Boundary
Kelas gunakan
ini
di
untuk
menampilkan fungsi-fungsi utama
dari
sistem
serta
tahap prepocessing data
dan
perhitungan outlier. 11.
PilihDataBase
Boundary
Kelas gunakan
ini
di
untuk
memilih database
yang
akan di gunakan dalam perhitungan selanjutnya. 12.
PilihTabel
Boundary
Kelas
ini
di
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
gunakan
untuk
memilih
tabel
dari
database
yang
telah
di
pilih sebelumnya. 13.
PilihFile
Boundary
Kelas
ini
di
gunakan
untuk
memilih
file
yang
akan
gunakan
di
dalam
perhitungan outlier. 14.
About
Boundary
Kelas
ini
gunakan
di
untuk
menampilkan halaman informasi sistem
dari deteksi
ini. 15.
Help
Boundary
Kelas
ini
gunakan
di
untuk
menampilkan halaman bantuan petunjuk pemakaian sistem.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
43
4.3.3 Diagram Sequence Berikut merupakan Diagram Sequence yang terdapat pada sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor: 1. Diagram Sequence Input Data File yang Berekstensi .xls 2. Diagram Sequence Input Data File yang Berekstensi .csv 3. Diagram Sequence Input Data File dari Tabel pada Database 4. Diagram Sequence Proses Deteksi Outlier 5. Diagram Sequence Simpan Hasil Deteksi Outlier 6. Diagram Sequence Seleksi Atribut
Penjelasan dari masing-masing diagram sequence akan di jelaskan pada bagian lampiran 4.
4.3.4 Diagram Kelas Desain Diagram kelas desain merupakan diagram yang menunjukan daftar tiaptiap kelas yang nantinya akan di gunakan dalam pembuatan sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. Diagram kelas ini memuat semua kelas beserta dengan atribut-atributnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Halaman Prepocessing
1 1 HomePage
memanggil
memanggil
1
Home memanggil
memanggil
1 memanggil 1
Halaman PilihFile
memanggil 1
memanggil Halaman Deteksi Outlier
Halaman PilihDataBase
memanggil
DataControl
1
Halaman About
Halaman Help
1
1
Halaman PilihTabel
memanggil
memanggil
1
44
memanggil 1 1
<Entity> KoneksiDataBase
memanggil memanggil <Entity> 1 1...* SeleksiAtributContr CheckBoxTableMod ol el
memiliki 1...*
1
<entity> Vertex
<entity> Graph
memanggil
1...* <entity> CofTableModel
memanggil 1 1
<entity> DatCof
Gambar 4.3 Diagram Kelas Desain Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor.
Penjelasan mengenai masing-masing kelas beserta dengan atribut dan method yang di gunakan akan di jelaskan pada lampiran 5.
4.3.5 Rincian Algoritma Setiap Method pada Tiap Kelas 1.
Rincian Algoritma pada Setiap Method pada kelas KoneksiDataBase Nama Method
Fungsi
Algoritma Method
Method getDBConnectionOracle(Stri
Mendapatka 1. Membuat
ng, String, String)
n nilai dari
dari
username,
OracleDataSource.
password,
2. Mengeset nilai url
dan url dari
obyek
ke dalam obyek
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
hasil
yang telah di buat.
inputan user 3. Mengambil untuk
userId
melakukan
password
koneksi
45
nilai dan
ke 4. Jika benar, maka
database
mengembalikan
Oracle.
nilai
connection
dan
berhasil
terkoneksi dengan database Oracle. getDBConnectionSql(String,
Mendapatka
1. Membuat koneksi
String, String)
n nilai dari ke database MySql username,
dengan
password,
nilai
mengeset connection
dan url dari dengan hasil
url,
parameter userid,
dan
inputan user password. untuk
2. Jika benar, maka
melakukan
mengembalikan nilai
koneksi
ke connection
dan
database
berhasil
terkoneksi
MySql.
dengan
database
MySql. isConnectedSql(String,
Melakukan
1. Memanggil
String, String)
pengecekan
method
apakah
getDBConnectio
sistem
nSql
sudah
parameter
terkoneksi
inputan
dengan
password,
dengan
user, dan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
46
database
url yang telah di
MySql.
masukan
oleh
user 2. Apabila
nilai
parameter tersebut
tidak
kosong,
maka
akan mengembalikan nilai true. 3. Apabila
nilai
parameter kosong,
maka
akan mengembalikan nilai false. 1.
Memanggil
isConnectedOracle(String,
Melakukan
String, String)
pengecekan
method
apakah
getDBConnection
sistem sudah terkoneksi dengan database Oracle.
Oracle
dengan
parameter inputan user,
password,
dan url yang telah di masukan oleh user
2. Apabila
nilai
parameter tersebut
tidak
kosong,
maka
akan mengembalikan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
47
nilai true. 3. Apabila
nilai
parameter kosong,
maka
akan mengembalikan nilai false. close()
Di gunakan 1. Memanggil untuk
method getConn,
memutus
apabila
koneksi
tidak
terhubung
database
maka
panggil
dengan
method
sistem.
untuk
sudah
close menutup
koneksi.
2.
Rincian Algoritma pada Setiap Method pada kelas Graph Nama Method
Fungsi
Algoritma Method
Method addVertex(String,
Membuat
1. Membaca parameter
List)
sebuah
label dan nilai.
vertex
2. Mendeklarasikan
untuk
sebuah vertex baru
membentuk
dengan memasukan
graph.
nilai label dan nilai ke dalam vertex.
addEdge(int, int, Double)
Mengisi
1.
tiap-tiap
parameter
nilai
Membaca start,
nilai end,
edge dan weight.
pada vertex 2. Memasukan nilai dari
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
yang telah parameter di buat.
ke
48
dalam
variabel adjMat untuk mengisi nilai edge.
calculateEcluidianDistanc
Menghitun
e(int, int)
g jarak dari array1 dan array2. edge
1.Membaca
parameter
2. Membuat obyek x dan
obyek
y
untuk
menampung nilai dari array1 dan array2. 3. Mengeset nilai sum = 0.0. 4. Selama nilai i kurang dari
jumlah
data
x,
maka akan di lakukan perhitungan sum = sum + Math.pow((x.get(i) y.get(i)), 2.0). 5. Mengembalikan nilai sum. show()
Menampilk an
1. Selama nilai i kurang
sebuah dari panjang vertexList,
graph yang maka akan ditampilkan telah
di label dari vertex tersebut.
buat.
2. Selama nilai i kurang dari
panjang
adjMat,
maka akan di perhitungan
tampilkan jarak
Euclidian Distance. inputData()
Menginputk
1. Selama i kurang dari
an data dari
jumlah baris pada tabel,
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Jtable
ke
maka
di
buat
49
obyek
dalam
listNilai
bertipe
matrix
ArrayList.
dalam
2. Selama j kurang dari
graph.
jumlah kolom pada tabel, dan j sama dengan 0 maka
akan
pengesetan
dilakukan label
ke
dalam tabel 3.
Apabila tidak maka
memasukan
nilai
ke
dalam listNilai. 4.
Memanggil
method
addVertex
untuk
membuat vertex 5. Selama i kurang dari jumlah baris pada tabel, dan selama j sama dengan 1+i dan j kurang dari jumlah baris pada tabel, maka akan di lakukan pengecekan
apabila
i
tidak sama dengan j maka memanggil
method
addEdge untuk mengisi nilai edge dengan jarak EcluidianDistance
pada
method calculateEcluidianDistanc e. Search(String)
Method
1. Untuk i = 0 dan i
untuk
kurang
mencari
vertexList
dari maka
panjang akan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
posisi indeks dilakukan pengecekan: pada
a. Jika label sama dengan
vertexLisr
nilai
label
pada
vertexList[i],
maka
mengembalikan nilai i. b. Mengembalikan nilai -1 Search2(Double, int)
Method
1. Untuk i = 0 dan i
untuk
kurang
mencari
vertexList
vertexList
dilakukan pengecekan:
tertentu dan a.
Jika
dari
panjang
maka
akan
adjMat
pada
mengubah
index,i sama dengan jarak
nilai
maka
wasVisited
wasVisitedP menjadi true.
set
atribut
menjadi true. cariKDistance(int, int)
Method
1. Untuk i = 0 dan i
untuk
kurang
mencari
vertexList maka set atribut
kDistance
wasVisitedP
pada
false.
masing-
2.
masing
bertipe Double.
obyek.
3. Menginisialisasi nilai
dari
Membuat
panjang
menjadi
obyek
a
kDistance = 0.0 4. Membuat atribut temp1 bertipe Double. 5. Apabila nilai index sama dengan -1, berarti graph tidak terhubung. 6. Untuk j = 0, dan nilai j kurang dari panjang a, untuk i = 0 dan nilai i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
kurang
dari
vertexList
51
panjang
maka
di
lakukan pengecekan: a.
Jika
adjMat
index,
i
tidak
sama dengan -1, 0,
dan
isWasVisited
=
false. b.
Jika
adjMat
index, o kurang dari temp1 maka nilai
temp1
=
adjMat index,i 7. Set nilai a = temp1. 8. Memasukan parameter temp1 dan index ke dalam method. 9. Untuk i = 0 dan i kurang dari panjang a akan
dilakukan
pengecekan: a. Jika kDistance kurang dari a[i], maka
nilai
kDistance = a[i] 10. Mengembalikan nilai kDistance. setKDistance(String, int)
Mengeset
1.
variabel
label dan jangkauan.
kDistance ke 2. dalam vertex
Membaca
Membuat
parameter
variabel
index dan di inisialisasi ke dalam method
Search()
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
52
dengan parameter label. 3.
Mengeset
kDistance
dengan
memanggil
method cariKDistance. calculateCof(int)
Menginputk
1.
Membaca
parameter
an nilai pada minPts variabel
2. Untuk nilai i = 0 dan i
COF dalam kurang vertex
dari
panjang
vertexList, maka mengeset nilai kDistance . 3. Untuk nilai i = 0 dan i kurang
dari
panjang
vertexList, maka mengeset nilai nkp. 4. Untuk nilai i = 0 dan i kurang
dari
panjang
vertexList, maka mengeset nilai sbnPath.
cariNkp(Double, int)
Method
1.
untuk
kDistance dan index
mencari
2. Membuat variabel x
masing-
bertipe ArrayList <String>
masing nkp
3. Jika index sama dengan
pada setiap -1, obyek
Membaca
maka
parameter
graph
tidak
terhubung 4. Untuk i = 0 dan i kurang
dari
vertexList
panjang
maka
di
lakukan pengecekan: a.
Jika
index,
adjMat i
tidak
sama dengan -1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
dan 0, dan jika adjMat
index,i
kurang dari sama dengan kDistance b.
Maka
memasukan nilai vertexList[i].getL abelP ke dalam x. 5. Mengembalikan nilai x. setNkp(String)
Mengeset
1.
Membaca
parameter
variabel nkp label. ke
dalam 2. Membuat atribut index
vertex
dan di inisialisasikan ke dalam
method
Search(label) 3.Mengeset
nilai
nkp
dengan method cariNkp
cariLabel(String)
Method
1.
untuk
label.
mencari
2. Untuk i = 0 dan i
label
Membaca
pada kurang
vertexList
parameter
dari
vertexList
maka
panjang akan
dilakukan pengecekan: a.
Jika
vertexList[i].getL abelP
sama
dengan label pada parameter,
maka
mengembalikan nilai i. 4. Mengembalikan nilai 1.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
cariSbnPath(Double, int)
Membaca
54
Method
1.
untuk
kDistance dan index
mencari
2. Membuat variabel x
sbnPath
bertipe ArrayList String
pada
3. Jika index sama dengan
masing-
-1,
masing
terhubung
obyek
4. Untuk i = 0 dan i
maka
kurang
parameter
graph
dari
vertexList
tidak
panjang
maka
di
lakukan pengecekan: a.
Jika
index,
adjMat i
tidak
sama dengan -1 dan 0, dan jika adjMatt
index,i
kurang dari sama dengan kDistance b.
Maka
memasukan nilai vertexList[i].getL abelP ke dalam x. c.
Melakukan
sorting untuk nilai x. 5. Mengembalikan nilai x. setSbnPath(String)
Mengeset
1.
Membaca
parameter
nilai sbnPath label. ke vertex
dalam 2. Membuat atribut index dan di inisialisasikan ke dalam
method
Search(label) Mengeset
nilai
nkp
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
dengan
55
method
cariSbnPath displayAll(int)
Menampilka n
1. Membaca parameter r.
semua 2. Untuk i = 0 dan i
hasil
kurang
dari
perhitungan
vertexList
COF
ditampilkan:
panjang
maka
akan
a. Memanggil dan menampilkan nilai labelP b. Memanggil dan menampilkan nilai kDistance c. Memanggil dan menampilkan nilai nkp d.
Menghitung
dan menampilkan jumlah nkp e. Memanggil dan menampilkan nilai sbnPath f.
Membuat
atribut
hasil1
dengan tipe data ArrayList g. Membuat dan menginisialisasi atribut awal = 0 h. Membuat dan menginisialisasi atribut akhir= 1 i.
Ketika
nilai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
56
awal kurang dari ukuran sbnPath di kurangi
1
dan
akhir kurang dari ukuran
sbnPath
maka: j. Mencetak nilai awal k. Mencetak nilai akhir. l.
Menghitung
selisih dari akhir di kurangi awal dan
memasukan
ke dalam variabel hasil1. m. Menginisialisasi awal = awal di tambah 1 n. Menginisialisasi akhir=
akhirdi
tambah 1 3. Untuk j = 0 dan j kurang dari hasil1, maka mencetak nilai j. 4.
Membuat
jumlah1
variabel
bertipe
data
ArrayList<String> 5. Menginisialisasi nilai sum = 0.0 6. Untuk j = 0 dan j
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
57
kurang dari hasil, maka memasukan nilai sum. 7. Mencetak nilai sum. 8. Mengeset nilai sum ke dalam acDist. 9. Untuk ia = 0 dan ia kurang
dari
vertexList,
maka: a. Mencetak nilai labelP. b. Menginisialisasi nilai jumlah = 0.0. c. Untuk i = 0 dan i kurang dari nkp maka memanggil method cariLabel untuk nkp d.
Menjumlah
acDist untuk nkp. e.
Mengeset
jumlah
ke
acDistTetangga. 10. Untuk ib = 0 dan ib kurang
dari
vertexList
maka: a.
Membuat
variabel nkp dan memasukan nilai nkp. b.
Melakukan
perhitungan cof, c. Mengeset nilai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
58
cof. d. Jika nilai cof lebih dari 1 maka outlier. setDataCof(String)
Mengeset
1.
Membaca
parameter
nilai dataCof label ke
dalam 2. Membuat variabel dlf
tabel
dengan tipe data ArrayList 3. Untuk i = 0 dan i kurang
dari
vertexList
maka: a. Jika cof lebih besar dari 1 maka memasukan nilai cof dan atributnya ke
dalam
tabel
model 4. Membuat variabel dm bertipe
data
CofTableModel
dengan
parameter dlf dan label 5. Mengembalikan nilai dm. setDataCofBatas(String,
Mengeset
1.
Membaca
parameter
Double)
nilai
label dan batasCof
dataCofBata
2.
Membuat
variabel
s ke dalam dataCofL dengan tipe data tabel
ArrayList 3. Untuk i = 0 dan i kurang
dari
vertexList
maka: a. Jika cof lebih besar batasCof
dari maka
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
59
memasukan nilai cof dan atributnya ke
dalam
tabel
model 4. Membuat variabel dm bertipe
data
CofTableModel
dengan
parameter dataCofL dan label 5. Mengembalikan nilai dm.
3.
Rincian
Algoritma
pada
Setiap
Method
pada
kelas
CheckBoxTableModel Nama Method
Fungsi
Algoritma Method
Method addRow(int,
Menambahka
SeleksiAtributControl
n
)
baris
row
dalam
removeRow()
1. Membaca parameter a dan
atau field_m ke 2. Menambahkan nilai a dan tabel field_m
ke
atribut
listSeleksi
Menghapus
1.
Membuat
row atau baris dengan dari atribut
dalam
variabel
atributseleksi tipe
data
tabel ArrayList<SeleksiAtributControl > 2. Untuk seleksiA : listSeleksi maka: a. Jika !seleksiA.getPilih =
true
maka
nilai
seleksiA di tambahkan ke dalam seleksi. 3. Nilai listSeleksi = seleksi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.
60
Rincian Algoritma pada Setiap Method pada kelas DataControl Nama Method
Fungsi Method
Algoritma Method
tampilTabelMySql(Connection) Menampilkan
1.
Membaca
tabel dari database parameter con MySql
2.
Membuat
variabel
stmt
bertipe Statement 3.
Membuat
variabel
rset
bertipe ResultSet 4.
Membuat
variabel
query
bertipe String 5. Mengisikan nilai query
=
"show
tables" 6.
Mengeksekusi
query 7.
Menampilkan
hasil query tampilTabelOracle(Connection)
Menampilkan
1.
Membaca
tabel dari database parameter con Oracle
2.
Membuat
variabel
stmt
bertipe Statement 3.
Membuat
variabel
rset
bertipe ResultSet 4.
Membuat
variabel
query
bertipe String 5. Mengisikan nilai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
query
=
61
“select
table_name
from
user_tables” 6.
Mengeksekusi
query 7.
Menampilkan
hasil query selectTable(Connection, String)
Menampilkan
1.
Membaca
tabel
parameter con dan table 2.
Membuat
variabel
stmt
bertipe Statement 3.
Membuat
variabel
rset
bertipe ResultSet 4.
Membuat
variabel
query
bertipe String 5. Mengisikan nilai query = "select * from” + table 6.
Mengeksekusi
query 7.
Menampilkan
hasil query
5. Rincian Algoritma pada Setiap Method pada kelas Home Nama Method
Fungsi
Algoritma Method
Method calculateCof()
Method
1.Membuat variabel time1
untuk
yang bertipe long.
melakukan
2.Melakukan pengecekan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
62
proses
jika nilai min pts dan r
pendeteksia
kosong maka:
n outlier.
a. Jika min pts kosong
maka
akan di tampilkan pesan error b. Jika r kosong maka
akan
tampilkan
di
pesan
error. 3.Melakukan pengecekan jika nilai min pts dan r tidak kosong maka: a.
Membuat
variabel min pts dan r yang bertipe int. b.
Memasukan
nilai min pts dari text field ke dalam variabel min pts yang telah dibuat c.
Memasukan
nilai r dari text field
ke
dalam
variabel r yang telah dibuat d.
Membuat
obyek graph dari kelas Graph. e.
Memanggil
method input data dan
memasukan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
data
ke
63
dalam
tabel dataPrepocessing 2 f.
Memanggil
method calculateCOF yang berparameter minPts. g.
Memanggil
method show() h.
Memanggil
method displayAll yang berparameter r. i. Mengeset hasil perhitungan outlier ke dalam tabelHasil. j.
Mengurutkan
arrayList
dari
tabelHasil. 4.Membuat variabel time2 yang bertipe long. 5.Mengeset jumlah outlier ke
dalam
text
field
jumlahOutlierField. 6.Mengeset lama deteksi outlier ke dalam text field lamaDeteksiField.
hapusButton()
Method
1.Selama i = 0 dan i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
64
untuk
kurang dari jumlah baris
menghapus
dari tabelSeleksi
atribut yang 2.Akan
di
lakukan
di pilih oleh pengecekan pengguna.
jika
tabelSeleksi.getValueAt(i, 1). equals(true) maka a. Selama j = 0 dan j kurang dari jumlah kolom dari dataPrepocessTab le b.
Membuat
atribut tableColumn1 yang
bertipe
TableColumn dan di
isikan
dari
dataPrepocessTab le c.
Membuat
atribut tableColumn2 yang
bertipe
TableColumn dan di
isikan
dari
dataPrepocessing 2. d.
Memanggil
method removeColumn untuk tableColumn1. e.
Memanggil
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
65
method removeColumn untuk tableColumn2. 3.
Memanggil
method
removeRow. okBatasOutlier()
Method
1.
untuk
kosong, maka akan di
memasukan
tampilkan pesan error.
hasil deteksi 2.
Jika
Jika
batas
outlier
batas
outlier
outlier yang nilainya 0-9 maka telah di beri
a.
batasan
dataCOFBatas ke
ke
Mengeset
dalam tabel
dalam tabelHasil,
hasil deteksi
b.
Membuat
variabel list yang bertipe ArrayList c.
Memanggil
method sort untuk melakukan pengurutan list. 3.Jika nilai batas outlier tidak berupa angka, maka akan menampilkan pesan error 4.
Mengeset
jumlah
outlier ke dalam textField jumlahOutlierField
dari
jumlah
dari
baris
tabelHasil. pilihDatabase(KoneksiDatabas
Method
1. Membaca
parameter
e, String)
untuk
koneksiDb dan table
memilih
2. Membuat variabel dc
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
database
66
yang bertipe DataControl
yang akan di 3. Membuat variabel rset gunakan
yang bertipe ResultSet. 4.
Memanggil
getConn
method
pada
kelas
KoneksiDatabase. 5.
Memangil
method
getMetaData 6.
Membuat
variabel
coloumnCount
yang
bertipe int. 7.
Membuat
variabel
headers dan data yang bertipe Vector 8. Selama i = 1 dan i kurang dari sama dengan coloumnCount
maka
menambahkan columnName ke dalam headers. 9.
Mengeset
nilai
dataPrepocessTable
dan
data Prepocessing2. 10.
Membuat
variabel
checkBoxT yang bertipe CheckBoxTableModel 11.
Memasukan
checkBoxT
ke
nilai dalam
tabelSeleksi. 12. Mengeset nilai jumlah data ke dalam text field jumlahDataField
dari
jumlah baris pada tabel
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
67
dataPrepocessTable. 13.Mengeset nilai jumlah data ke dalam text field jumlahData2Field
dari
jumlah baris pada tabel dataPrepocessing2. pilihFile
Method
1.
Membuat
atribut
untuk
fileChooser yang bertipe
memilih file JFileChooser. yang akan di 2. gunakan
Mengeset
nilai
fileChooser menjadi true. 3.
Membuat
namaFile String dengan
yang
dan
atribut bertipe
mengisikan method
getSelectedFile().getPath( ) 4. Memotong namaFile dan memasukan ke dalam atribut nama yang bertipe String[] 5.
Jika
nama[1].equals("xls") maka: a. Menampilkan file yang bertipe .xls ke dalam tabel data. 6.
Jika
nama[1].equals("csv") maka: a. Menampilkan file yang bertipe .csv ke dalam tabel data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
68
7. Apabila selain file .xls dan .csv maka akan di tampilkan pesan error. 8. Mengeset nilai jumlah data ke dalam text field jumlahDataField
dari
jumlah baris pada tabel dataPrepocessTable. 9.Mengeset nilai jumlah data ke dalam text field jumlahData2Field
dari
jumlah baris pada tabel dataPrepocessing2. saveCof()
Method
1.
untuk
fileChooser yang bertipe
menyimpan
JFileChooser
hasil
mengeset
perhitungan
directory E:/
deteksi
2.
outlier dalam
Membuat
atribut
dan ke
dalam
Mengeset
nama
ke ekstensi file .xls, .doc, dan file .txt
yang
3. Jika memilih .xls maka
berekstensi
a. Memanggil nilai dari
tertentu.
tabelHasil memasukan variabel
dan ke
dalam
excel
yang
bertipe FileWriter. b.
Memberikan
error
jika
data
pesan gagal
disimpan. 4. Jika memilih .doc maka a. Memanggil nilai dari tabelHasil
dan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
memasukan
ke
69
dalam
variabel bfw yang bertipe BufferedWriter b.
Memberikan
error
jika
pesan
data
gagal
disimpan. 5. Jika memilih .txt maka a. Memanggil nilai dari tabelHasil memasukan
dan ke
dalam
variabel bfw yang bertipe BufferedWriter b.
Memberikan
error
jika
pesan
data
gagal
disimpan. 6. Jika data berhasil di simpan pada path atau direktori tertentu, maka akan menampilkan pesan sukses. tandaiButton()
Method
1. Selama i = 0, dan i
untuk
kurang dari jumlah baris
menandai
tabelSeleksi, maka:
atribut yang 2. Mengeset tabelSeleksi ingin
batalButton()
di dengan
method
hapus
setValueAt(true, i, 1)
Method
1. Selama i = 0, dan i
untuk
kurang dari jumlah baris
membatalka
tabelSeleksi, maka:
n yang
atribut 2. Mengeset tabelSeleksi telah dengan
ditandai
method
setValueAt(false, i, 1)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
70
6.4 Perancangan Struktur Data Perancangan struktur data yang akan di gunakan dalam sistem ini adalah konsep graf tak berarah dengan menggunakan matriks dua dimensi. Perancangan ini sangat penting di lakukan dalam membangun sebuah sistem. Perancangan ini berfungsi untuk menggambarkan bagaimana sistem bekerja, bagaimana sekumpulan data di olah kemudian di simpan ke dalam sistem. Konsep graf yang digunakan dalam sistem ini berfungsi untuk menghubungkan data yang satu dengan data yang lain, sehingga dapat di hitung jarak antar data tersebut. 1.
Graf Graf adalah kumpulan dari simpul yang berupa vertex dan node yang saling terhubung oleh sebuah sisi atau edge. Biasanya graf di gambarkan sebagai kumpulan titik-titik (melambangkan vertex dan node) yang di hubungkan oleh garis-garis (melambangkan edge). Pada sistem ini, obyek-obyek yang nantinya akan di cari outliernya di lambangkan sebagai vertex. Di dalam vertex ini berisi atribut list. Atribut list di gunakan untuk menyimpan nilai-nilai atribut untuk menghitung jarak antar obyek. Jarak antar obyek ini di sebut sebagai edge. Pada gambar di bawah ini akan di ilustrasikan konsep graf pada sistem ini.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
Gambar 4.4 Ilustrasi Struktur Data Graf
2.
Matriks Dua Dimensi Matriks dua dimensi digunakan dalam sistem ini untuk menyimpan vertex dan edge. Vertex merupakan simbol dari masingmasing data sedangkan edge merupakan simbol dari jarak antar data tersebut. Pada matriks ini, edge atau jarak antar obyek di didefinisikan sebagai -1, hal ini berarti antar obyek masih belum terhubung. Sedangkan edge untuk obyek itu sendiri di definisikan 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
untuk
jarak
masing-masing
vertex
dilakukan
perhitungan dengan menggunakan rumus jarak Ecluidian Distance.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
72
Untuk jarak yang bernilai -1, akan di ganti dengan hasil dari perhitungan rumus jarak Ecluidian tersebut. Tabel 4.3 Ilustrasi Struktur Data Matriks Dua Dimensi Setelah dilakukan Perhitungan dengan Ecluidian Distance 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
6.5 Perancangan Antarmuka 6.5.1
Tampilan Halaman Awal (HomePage) Tampilan halaman awal merupakan tampilan sistem pertama kali. Pada halaman awal ini terdapat button masuk, dimana user akan menekan sebelum masuk ke menu utama sistem.
SISTEM PENDETEKSI OUTLIER MENGGUNAKAN ALGORITMA CONNECTIVITY BASED OUTLIER FACTOR
MASUK Yustina Ayu Ruwidati 105314061 Universitas Sanata Dharma Copyright ©2014 Gambar 4.5 Tampilan Halaman Awal(HomePage)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.5.2
73
Tampilan Halaman Menu Utama(Home) Pada halaman menu utama ini merupakan halaman di mana user dapat melakukan proses penginputan data untuk kemudian di cari oleh sistem outlier nya. Pada halaman ini terdapat dua tab menu yaitu prepocessing dan deteksi outlier. Pada tab menu prepocessing terdapat button pilih file dan pilih database. Kedua button ini berfungsi untuk memasukan data baik dalam bentuk file (.xls dan .csv) maupun dalam bentuk tabel dalam database. Selain itu, pada tab prepocessing terdapat tabel yang di gunakan untuk menampilkan atribut-atribut dan user dapat memilih atribut mana saja yang akan di gunakan untuk pendeteksian outlier. Pada tab kedua yaitu tab deteksi outlier, di halaman ini user akan memasukan nilai dari atribut k sehingga dapat lakukan pendeteksian outlier. Dan kemudian hasil outlier akan di tampilkan pada tabel hasil deteksi outlier. User dapat menyimpan hasil deteksi outlier tersebut dalam bentuk file berekstensi .word dan .txt. Pada halaman menu utama ini juga terdapat tiga button dasar yaitu About yang berisi penjelasan tentang sistem ini, Help yang berisi bantuan untuk sistem ini, dan Exit untuk keluar dari sistem.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor Prepocessing
Deteksi Outlier Pilih File
About
Pilih DB
Help Seleksi Atribut Jumlah Data Atribut Tandai Semua
Exit
Hapus Batal Submit
Gambar 4.6 Tampilan Halaman Utama(Home) pada tab Prepocessing
74
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
75
Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor Prepocessing
Deteksi Outlier
Proses Algoritma Connectivity-based Outlier Factor About
k
Proses
Help Jumlah Data Batas Outlier Hasil Deteksi Outlier OK
Exit
Jumlah Outlier Lama Deteksi Simpan
Hapus
Gambar 4.7 Tampilan Halaman Utama(Home) pada tab Deteksi Outlier
4.5.3
Tampilan Halaman Pilih Database Halaman pilih database merupakan halaman yang akan muncul apabile button pilih database pada halaman menu utama di tekan. Pada halaman ini, user dapat memilih koneksi database yang akan di gunakan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
76
Pilih Koneksi DataBase MySql User Name Password Database Name Url OK
Batal
Gambar 4.8 Tampilan Halaman Pilih Database
4.5.4 Tampilan Halaman Pilih Tabel Halaman pilih tabel ini di gunakan oleh user untuk memasukan tabel dari database ke dalam sistem untuk di lakukan pendeteksian outlier.
Pilih Tabel
OK
Batal
Gambar 4.9 Tampilan Halaman Pilih Tabel
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.5.5
77
Tampilan Halaman About Pada halaman about ini berisi keterangan umum mengenai sistem ini. Dari nama sistem, nama pembuat sistem, dan tahun pembuatan.
Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor Pengembangan Alat Bantu Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor About
Help
Exit
Dibuat oleh: Yustina Ayu Ruwidati 105314061 Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta 2014
Gambar 4.10 Tampilan Halaman About
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.5.6
78
Tampilan Halaman Help Pada halaman help ini terdapat penjelasan bantuan untuk sistem ini. Baik petunjuk untuk tahapan prepocessing dan petunjuk untuk tahapan deteksi outlier.
Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor Petunjuk Penggunaan Sistem About
Help
Exit
Kembali
Gambar 4.11 Tampilan Halaman Help
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V IMPLEMENTASI SISTEM
Pada bab ini akan di jelaskan mengenai implementasi sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. Sistem ini di buat sesuai dengan rancangan yang telah di jelaskan pada bab sebelumnya. Implementasi sistem deteksi outlier ini menggunakan bahasa pemrograman Java dengan aplikasi pemrograman NetBeans IDE 6.9.1 pada komputer dengan spesifikasi processor Intel Celeron 1.8 GHz, memori 2GB, dan Harddisk 500GB. 10.1
Implementasi Antarmuka Berikut akan di tampilkan antarmuka dari sistem deteksi outlier
menggunakan algoritma Connectivity-based Outlier Factor yang telah di bangun.
10.1.1 Implementasi Halaman Awal(HomePage) Tampilan halaman awal merupakan tampilan sistem pertama kali di jalankan. Pada halaman awal ini terdapat button masuk, dimana user akan menekan sebelum masuk ke menu utama sistem.
79
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
80
Gambar 5.1 Antarmuka atau Interface Halaman Awal(HomePage) 10.1.2 Implementasi Halaman Menu Utama(Home) Halaman Menu Utama ini akan muncul setelah button masuk pada halaman awal di tekan. Pada halaman menu utama ini merupakan halaman di mana user dapat melakukan proses penginputan data untuk kemudian di cari oleh sistem outlier nya. Pada halaman ini terdapat dua tab menu yaitu prepocessing dan deteksi outlier.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
81
Gambar 5.2 Antarmuka atau Interface Halaman Menu Utama(Home) tab Prepocessing Pada tab Prepocessing ini berfungsi untuk menginputkan data baik yang bertipe .xls, .csv, maupun dari database. Pada tab Prepocessing ini terdapat button Pilih File yang apabila di tekan akan menampilkan jFileChooser bagi user untuk memasukan atau menginputkan file yang bertipe .xls dan .csv.
Gambar 5.3 Kotak Dialog Pilih File
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
82
Setelah user memilih data yang ingin di gunakan, maka sistem akan menampilkan masukan dari user tersebut ke dalam tabel pada tab prepocessing.
Gambar 5.4 File Inputan Tertampil pada Tabel pada tab Prepocessing Di dalam tab Prepocessing ini juga akan di tampilkan jumlah data dari file yang di pilih oleh user. Pada tab ini, user juga dapat melakukan seleksi atribut sesuai dengan kebutuhan user itu sendiri. Atribut dapat di hapus apabila tidak di butuhkan dalam perhitungan yang akan di lakukan dalam sistem dengan memilih atribut yang ingin di hapus kemudian menekan button Hapus. User juga dapat menghapus semua atribut dengan menekan button Tandai Semua kemudian memilih button Hapus. Apabila user ingin membatalkan atribut yang telah di tandai, maka user harus menekan button Batal.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
83
Gambar 5.5 Daftar Atribut pada Tabel Seleksi Atribut Setelah melakukan seleksi atribut, akan di lakukan proses perhitungan outlier. Proses ini dapat di lakukan setelah user menekan button Submit. Setelah button Submit di tekan, maka sistem akan menampilkan tab Deteksi Outlier.
Gambar 5.6 Antarmuka atau Interface Halaman Menu Utama(Home) tab Deteksi Outlier
Di dalam tab Deteksi Outlier ini perhitungan outlier akan di lakukan. User
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
84
harus memasukan nilai k kemudian menekan button Proses.
Gambar 5.7 Antarmuka atau Interface Halaman Menu Utama(Home) tab Deteksi Outlier Saat Memasukan Nilai Parameter
Setelah button Proses di tekan, akan terjadi perhitungan outlier dalam sistem, kemudian sistem akan menampilkan obyek yang berpotensi sebagai outlier ke dalam tabel hasil deteksi outlier.
Gambar 5.8 Hasil Deteksi Outlier
Selanjutnya user harus memasukan batas outlier ke dalam field yang telah di sediakan kemudian menekan button OK. Maka akan di tampilkan obyek yang berpotensi sebagai outlier ke dalam tabel hasil deteksi outlier. Akan di tampilkan pula jumlah data dari outlier tersebut beserta dengan lamanya sistem melakukan perhitungan deteksi outlier.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
85
Gambar 5.9 Hasil Deteksi Outlier Setelah Diberi Batas Outlier Setelah di tampilkan obyek yang berpotensi sebagai outlier, user dapat menyimpan hasil dari deteksi outlier tersebut dengan menekan button Simpan. Hasil deteksi outlier dapat di simpan sebagai file dengan ekstensi .txt, .doc, dan .xls.
Gambar 5.10 Kotak Dialog Simpan Hasil Deteksi Outlier
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
86
Gambar 5.11 Kotak Dialog Simpan Hasil Deteksi Outlier Saat Memberi Nama File
Apabila button Save di tekan, maka sistem akan menyimpan file tersebut ke dalam direktori yang di inginkan oleh user dan apabila berhasil di simpan maka akan di tampilkan pesan sukses.
Gambar 5.12 Pesan Sukses Hasil Deteksi Outlier Berhasil Disimpan
10.1.3 Implementasi Halaman Pilih Database Halaman pilih database merupakan halaman yang akan muncul apabila button pilih database pada halaman menu utama di tekan. Pada halaman ini, user dapat memilih koneksi database yang akan di gunakan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
87
Gambar 5.13 Antarmuka atau Interface Halaman PilihDatabase
Pada halaman ini, user harus memilih koneksi database yang ingin di gunakan. Terdapat dua koneksi database yang bisa di gunakan yaitu MySql dan Oracle yang terdapat dalam combo box.
Gambar 5.14 Memasukan Username, Password, Database Name, dan Url
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
88
Setelah memilih koneksi database yang ingin di gunakan, user harus memasukan username, password, database name, dan url kemudian menekan button OK. Apabila koneksi berhasil, maka akan di tampilkan pesan sukses.
Gambar 5.15 Pesan Sukses Konfigurasi ke Database Berhasil
Setelah button OK di tekan, maka akan di tampilkan halaman Pilih Tabel dimana user harus memilih tabel yang akan di gunakan dalam perhitungan deteksi outlier.
Gambar 5.16 Antarmuka atau Interface Halaman PilihTabel
Apabila user telah menekan button OK pada halaman pilih tabel, maka sistem akan memasukan data dari tabel database tersebut ke dalam tabel pada tab Prepocessing.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
89
Gambar 5.17 Tabel Inputan dari Database Tertampil pada Halaman Utama pada tab Prepocessing
10.1.4 Implementasi Halaman About Pada halaman about ini berisi keterangan umum mengenai sistem ini. Dari nama sistem, nama pembuat sistem, dan tahun pembuatan. Halaman About akan di tampilkan apabila user menekan button About yang terletak pada halaman Menu Utama.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
90
Gambar 5.18 Antarmuka atau Interface Halaman About
10.1.5 Implementasi Halaman Help Pada halaman help ini terdapat penjelasan bantuan untuk sistem ini. Baik petunjuk untuk tahapan prepocessing dan petunjuk untuk tahapan deteksi outlier. Halaman Help akan muncul apabila user menekan button Help pada Halaman Utama.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
91
Gambar 5.19 Antarmuka atau Interface Halaman Help
10.1.6 Implementasi Halaman Exit Pada halaman exit terdapat dua button yaitu ya dan tidak. Button ya berarti user tersebut ingin keluar dari sistem ini, button tidak berarti user tidak ingin keluar dari sistem. Halaman Exit akan di tampilkan apabila user menekan button Exit.
Gambar 5.20 Antarmuka atau Interface Halaman Exit
10.1.7 Implementasi Pengecekan Masukan Pada sistem deteksi outlier menggunakan Algoritma Connectivity-based Outlier Factor ini juga di lengkapi dengan error handling atau pesan kesalahan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
92
Error handling ini akan di tampilkan apabila user salah dalam memasukan data. Error handling ini juga berfungsi agar masukan yang salah tidak menyebabkan error dalam sistem. Di bawah ini akan di tampilkan error handling yang terdapat dalam sistem detekesi outlier menggunakan algoritma Connectivity-based Outlier Factor. 1. Tampilan Kesalahan Input Nilai k Tampilan pesan kesalahan atau error handling ini akan muncul apabila user salah memasukan nilai k. k Kosong:
Gambar 5.21 Pesan Kesalahan k Kosong
k Mengandung Karakter Selain Angka:
Gambar 5.22 Pesan Kesalahan k Mengandung Karakter Selain Angka
2. Tampilan Kesalahan Input Batas Outlier Tampilan pesan kesalahan atau error handling ini akan muncul apabila user salah memasukan nilai batas outlier. Nilai batas outlier kosong:
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
93
Gambar 5.23 Pesan Kesalahan Batas Outlier Kosong
Nilai Batas Outlier Mengandung Karakter Selain Angka:
Gambar 5.24 Pesan Kesalahan Batas Outlier Mengandung Karakter Selain Angka
3. Tampilan Kesalahan Konfigurasi Database Tampilan pesan kesalahan atau error handling ini akan muncul apabila user salah memasukan user name, password, database name, maupun url. User name, password, database name, url kosong:
Gambar 5.25 Pesan Kesalahan Username, Password, Database Name, dan Url Ada yang Kosong
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
94
User name, password, database name, url tidak sesuai dengan database:
Gambar 5.26 Pesan Kesalahan Username, Password, Database Name, dan Url Ada yang Salah
4. Tampilan Kesalahan Input File Tampilan pesan kesalahan atau error handling ini akan muncul apabila user memasukan format file yang tidak sesuai. Format File Tidak Sesuai:
Gambar 5.27 Pesan Kesalahan Format File Tidak Sesuai
10.2
Implementasi Kelas Pada bagian ini akan di jelaskan implementasi dari masing-masing kelas
yang telah di buat berdasarkan pada rancangan yang telah di buat pada bab sebelumnya. Di bawah ini akan di jelaskan daftar kelas yang telah di implementasikan.
No
Nama Kelas
Nama File Fisik
Nama File Executable
1.
KoneksiDatabase
KoneksiDataBase.java
KoneksiDataBase.class
2.
Vertex
Vertex.java
Vertex.class
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
95
3.
Graph
Graph.java
Graph.class
4.
CheckBoxTableM
CheckBoxTableModel.java CheckBoxTableModel.class
odel 5.
DataCof
DataCof.java
DataCof.class
6.
CofTableModel
CofTableModel.java
CofTableModel.class
7.
DataControl
DataControl.java
DataControl.class
8.
SeleksiAtributCont
SeleksiAtributControl.java
SeleksiAtributControl.class
HomePage.java
HomePage.class
10. Home
Home.java
Home.class
11. PilihDataBase
PilihDataBase.java
PilihDataBase.class
12. PilihTabel
PilihTabel.java
PilhTabel.class
13. PilihFile
PilihFile.java
PilihFile.class
14. About
About.java
About.class
15. Help
Help.java
Help.class
rol 9.
HomePage
Listing program dari tiap-tiap kelas akan di jelaskan pada lampiran 6.
10.3
Implementasi Struktur Data Berikut ini akan di jelaskan implementasi struktur data pada kelas Vertex
dan Graph yang telah di sebutkan pada bab sebelumnya.
10.3.1 Implementasi Kelas Vertex.java Kelas Vertex ini di gunakan untuk membuat sebuah Vertex dalam graph. Di dalam kelas Vertex ini terdapat atribut-atribut yang di gunakan untuk menyimpan nilai dari sebuah obyek. Atribut-atribut yang terdapat pada kelas Vertex.java adalah labelP dengan tipe data String yang di gunakan untuk menyimpan setiap label pada obyek, nilaiP dengan tipe data List yang di gunakan untuk menyimpan setiap nilai pada obyek untuk perhitungan jarak
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
96
menggunakan rumus Euclidian Distance, wasVisitedP dengan tipe data boolean yang di gunakan untuk menandai tetangga dari obyek yang memiliki jarak kurang dari kDistance, kDistance dengan tipe data Double yang di gunakan untuk menyimpan nilai dari jarak jangkauan maksimum dari setiap obyek, nkp dengan tipe data List<String> yang di gunakan untuk menyimpan label tetangga yang nilainya kurang dari kDistance, sbnPath dengan tipe data List<String> yang di gunakan untuk menyimpan label tetangga terdekat dari obyek yang nilainya kurang dari kDistance, sbnTrail dengan tipe data List<String> yang di gunakan untuk menyimpan urutan dari jarak terdekat suatu obyek ke tetangganya yang berdasarkan sbnPath, acDist dengan tipe data Double yang di gunakan untuk menyimpan nilai hasil perhitungan dari rata-rata jarak terdekat dari sbnTrail, cof dengan tipe data Double yang di gunakan untuk menyimpan nilai hasil perhitungan COF dari masing-masing obyek, acDistTetangga dengan tipe data Double yang di gunakan untuk menyimpan nilai jumlah dari acDist tetangga. public class Vertex { private String labelP; private List nilaiP; private boolean wasVisitedP; private Double kDistance; private List<String> nkp; private List<String> sbnPath; private List<String> sbnTrail; private Double acDist; private Double cof; private Double acDistTetangga; public Vertex(String labelP, List nilaiP) { this.labelP = labelP; 10.3.2 Implementasi Kelas Graph.java this.nilaiP = nilaiP; } Kelas Graph ini di gunakan untuk membentuk sebuah graph. Di dalam kelas ini String akan di panggil atribut yang telah di buat dalam kelas Vertex.java untuk public getLabelP() { return sebuah labelP; vertex. Di dalam kelas Graph ini, akan di buat sebuah graph membangun } dan di definisikan dalam constructor Graph dengan parameter MAX_VERTS. public void setLabelP(String labelP) {nilai maksimum dari sebuah vertex untuk MAX_VERTS di definisikan sebagai this.labelP = labelP; } public boolean isIsInTree() { return isInTree; } public void setIsInTree(boolean isInTree) {
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
graph yang akan di bentuk.
97
adjMat di definisikan sebagai edge yang akan
menghubungkan vertex.
public Graph(int MAX_VERTS) { vertexList = new Vertex[MAX_VERTS]; adjMat = new Double[MAX_VERTS][MAX_VERTS]; nVerts = 0; for (int i = 0; i < MAX_VERTS; i++) { for (int j = 0; j < vertexList.length; j++) { adjMat[i][j] = INFINITY;
} } } Setelah graph terbentuk, maka akan di tambahkan vertex ke dalam graph tersebut. Method untuk menambah vertex adalah addVertex dengan parameter label dan nilai. Jadi akan di tambahkan vertex dengan dengan atribut label dan nilai. public void addVertex(String label, List nilai) { vertexList[nVerts++] = new Vertex(label, nilai); } public void addEdge(int start, int end, Double weight) { adjMat[start][end] = weight; Setelah itu akan di lakukan pengisian nilai edge menggunakan method adjMat[end][start] = weight; addEdge dengan parameter start, end, dan weight. Jadi akan di hitung jarak antar } obyek dari obyek itu sendiri ke obyek lain dan akan di masukan rumus jarak public Double calculateEcluidianDistance(int array1, int array2) { Euclidian Distance dalam weight. Double sum =ke0.0; List x = vertexList[array1].getNilaiP(); y = vertexList[array2].getNilaiP(); publicList void addEdge(int start, int end, Double weight) { for (int i = 0; i < x.size(); { adjMat[start][end] = i++) weight; sum = sum + Math.pow((x.get(i) - y.get(i)), 2.0); adjMat[end][start] = weight; } } return Math.sqrt(sum); for}(int i = 0; i < x.size(); i++) { sum = sum + Math.pow((x.get(i) - y.get(i)), 2.0); public void show() { } returnSystem.out.print("\t"); Math.sqrt(sum); for (int i = 0; i < vertexList.length; i++) { } System.out.print("" + vertexList[i].getLabelP() + "\t"); }public void show() { System.out.println(""); System.out.print("\t"); for i++) { { for (int (int ii = = 0; 0; ii < < adjMat.length; vertexList.length; i++)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Perhitungan
Ecluidian
Distance
dilakukan
dengan
98
method
calculateEcluidianDistance dengan parameter array1 dan array2. Di dalam method ini akan memanggil dan menambahkan nilai ke dalam vertex, kemudian akan di hitung menggunakan rumus seperti di bawah ini. public Double calculateEcluidianDistance(int array1, int array2) { Double sum = 0.0; List x = vertexList[array1].getNilaiP(); List y = vertexList[array2].getNilaiP(); for (int i = 0; i < x.size(); i++) { sum = sum + Math.pow((x.get(i) - y.get(i)), 2.0); } return Math.sqrt(sum); } public void show() { System.out.print("\t"); for (int i = 0; i < vertexList.length; i++) { System.out.print("" + vertexList[i].getLabelP() + "\t"); } System.out.println(""); for (int i = 0; i < adjMat.length; i++) { System.out.print("" + vertexList[i].getLabelP() + "\t"); for (int j = 0; j < vertexList.length; j++) { System.out.print("" + adjMat[i][j] + "\t"); } System.out.println(""); } } public void inputData(JTable dataPrepocessing2) { for (int i = 0; i < dataPrepocessing2.getRowCount(); i++) { String label = ""; List listNilai = new ArrayList(); for (int j = 0; j < dataPrepocessing2.getColumnCount(); j++) { if (j == 0) { if (dataPrepocessing2.getValueAt(i, j).toString().equals("")) { label = "null"; } else { label = dataPrepocessing2.getValueAt(i, j).toString(); }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB VI PENGUJIAN DAN ANALISA HASIL PENGUJIAN
Pada bab ini akan di jelaskan mengenai pengujian dan analisa hasil pengujian yang di lakukan. Pengujian suatu sistem sangat di perlukan dalam pembuatan sebuah aplikasi. Dimana dengan melakukan pengujian kemungkinan akan di temukan kesalahan dalam suatu aplikasi tersebut. Dengan demikian, akan dapat di ketahui kesalahan dan di dapat penyelesaian dari kesalahan tersebut. Berikut akan di jelaskan pengujian dan analisa hasil pengujian dari sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. 17.1
Rencana Pengujian Akan di lakukan tiga macam pengujian dalam sistem ini, yang pertama
adalah pengujian dengan menggunakan blackbox, pengujian dengan perubahan nilai atribut yaitu k, dan yang terakhir adalah pengujian reviewer dan validitas oleh pengguna atau user. Pengujian blackbox yang di maksudkan adalah pengujian untuk mengetahui apakah semua fungsi perangkat lunak telah berjalan semestinya sesuai dengan kebutuhan fungsional yang telah di definisikan. Pengujian dengan perubahan nilai atribut k dilakukan dengan mengubah nilai atribut dengan menambah atau mengurangi nilai atribut tersebut. Pengujian reviewer dan validitas oleh pengguna atau user akan di lakukan oleh penguna atau user dari sistem ini yaitu Kaprodi Teknik Informatika Universitas Sanata Dharma. Pengujian di lakukan dengan membandingkan hasil pengujian dari sistem dan analisa dari Kaprodi Teknik Informatika Universitas Sanata Dharma. Berikut ini merupakan tabel rencana pengujian blackbox yang akan di lakukan pada masing-masing kelas dalam sistem ini.
99
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
100
Tabel 6.1 Rencana Pengujian Blackbox No. 1.
Kelas Uji
Butir Uji
Jenis Pengujian
KoneksiDataBase
Melakukan
Blackbox
pengecekan koneksi database dari
sistem
ke
database yang di gunakan
yaitu
MySql dan Oracle 2.
Home
Menampilkan data Blackbox dari
file
yang
berekstensi .xls Menampilkan data Blackbox dari
file
yang
berekstensi .csv Menampilkan data Blackbox dari
database
Oracle atau MySql Melakukan seleksi Blackbox atribut Melakukan proses Blackbox deteksi outlier Menampilkan
Blackbox
hasil dari deteksi outlier Melakukan
Blackbox
pembatasan terhadap
derajat
nilai outlier Menampilkan
Blacbox
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
hasil dari deteksi outlier
setelah
dilakukan pembatasan outlier Melakukan
Blackbox
penyimpanan terhadap hasil dari deteksi outlier ke dalam format .txt Melakukan
Blackbox
penyimpanan terhadap hasil dari deteksi outlier ke dalam format .doc Melakukan
Blackbox
penyimpanan terhadap hasil dari deteksi outlier ke dalam format .xls 3.
Halaman
Menampilkan
PilihDataBase
halaman
Blackbox
PilihDatabase untuk
login
ke
dalam
database
sesuai
dengan
inputan user 4.
Halaman
Menampilkan
PilihTabel
halaman PilihTabel
Blackbox
yang
101
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
102
berisi daftar tabel dari
database
yang telah di pilih oleh user
17.1.1 Hasil Pengujian Blackbox 17.1.1.1
Pengujian Input Data
Berikut ini merupakan data hasil pengujian untuk input data pada kelas Home.
Tabel 6.2 Hasil Pengujian Input Data pada Kelas Home Kasus dan Hasil Uji (Data Benar) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
yang
di Kesimpulan
dapat
Memasukan
data Data di tampilkan Data di tampilkan Diterima
dari
yang dalam tabel
file
dalam tabel
berekstensi .xls Memasukan
data Data di tampilkan Data di tampilkan Diterima
dari
yang dalam tabel
file
dalam tabel
berekstensi .csv Memasukan dari
data Data di tampilkan Data di tampilkan Diterima
database dalam tabel
dalam tabel
Oracle Memasukan dari
data Data di tampilkan Data di tampilkan Diterima
database dalam tabel
dalam tabel
MySql
Kasus dan Hasil Uji (Data Salah) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
dapat
yang
di Kesimpulan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Memasukan
data Menampilkan
dari
yang pesan
file
Pesan
103
kesalahan Diterima
kesalahan berhasil
di
berekstensi selain bahwa file yang di tampilkan .csv dan .xls
masukan
tidak
sesuai format
6.1.1.2 Pengujian Koneksi Database Berikut ini merupakan data hasil pengujian untuk input data pada kelas KoneksiDataBase.
Tabel 6.3 Hasil Pengujian Input Data pada Kelas Koneksi Database Kasus dan Hasil Uji (Data Benar) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
dapat
Menginputkan
Menampilkan
Pesan
username,
pesan
login
yang
di Kesimpulan
berhasil Diterima
ke ditampilkan
password, url, dan database berhasil database
name
dengan
benar
untuk
database
Oracle Menginputkan
Menampilkan
username,
pesan
login
Pesan
ke ditampilkan
password, url, dan database berhasil database
name
dengan
benar
untuk MySql
database
berhasil Diterima
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Kasus dan Hasil Uji (Data Salah) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
dapat
Menginputkan
Menampilkan
Pesan
username,
pesan error bahwa berhasil
password, url, dan username, database untuk
di Kesimpulan
error Diterima
ditampilkan
name password, url, dan database database
Oracle ada yang tidak
name boleh
kosong
kosong
Menginputkan
Menampilkan
username,
pesan error bahwa berhasil
password, url, dan username, database untuk
yang
Pesan
error Diterima
ditampilkan
name password, url, dan database database
MySql ada yang tidak
name boleh
kosong
kosong
Menginputkan
Menampilkan
username,
pesan error bahwa berhasil
Pesan
error Diterima
password, url, dan login ke database ditampilkan database
name gagal
database
Oracle
ada yang salah Menginputkan
Menampilkan
Pesan
username,
pesan error bahwa berhasil
password, url, dan login ke database ditampilkan database
name gagal
dengan
benar
untuk
database
MySql ada yang
error Diterima
104
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
salah
6.1.1.3 Pengujian Seleksi Atribut Berikut ini merupakan data hasil pengujian untuk input data pada kelas Home.
Tabel 6.4 Hasil Pengujian Seleksi Atribut pada Kelas Home Kasus dan Hasil Uji (Data Benar) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
Memilih satu atau Atribut lebih atribut yang pilih
yang
di Kesimpulan
dapat
yang di Atribut untuk
di pilih
yang di Diterima berhasil
tidak akan dipakai hapus berhasil di terhapus dari tabel dalam sistem atau hapus yang
akan
hapus
kemudian
menekan
seleksi atribut
di
button
hapus Memilih
semua Semua
atribut untuk di yang hapus menekan
atribut Semua telah
dengan tandai
di berhasil
atribut Diterima terhapus
semua dari tabel seleksi
button berhasil di hapus
atribut
tandai semua Memilih satu atau Atribut yang telah Semua lebih
atribut Diterima
atribut di tandai menjadi menjadi
kemudian menekan tidak di tandai
tidak
ditandai
button batal
Kasus dan Hasil Uji (Data Salah) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
dapat
yang
di Kesimpulan
105
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6.1.1.4
Pengujian Deteksi Outlier
Berikut ini merupakan data hasil pengujian untuk input data pada kelas Home.
Tabel 6.5 Hasil Pengujian Deteksi Outlier pada Kelas Home Kasus dan Hasil Uji (Data Benar) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
yang
di Kesimpulan
dapat
Memasukan nilai Hasil
deteksi Hasil
deteksi Diterima
k dengan benar
beserta outlier
beserta
outlier
atribut-atributnya
atribut-atributnya
berhasil
berhasil
ditampilkan
ditampilkan dalam tabel hasil deteksi outlier
Memasukan
nilai Hasil
deteksi Hasil
deteksi Diterima
batas outlier dengan outlier beserta outlier beserta benar atribut-atributnya atribut-atributnya
berhasil
berhasil
ditampilkan
ditampilkan dalam tabel hasil deteksi outlier
Kasus dan Hasil Uji (Data Salah) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
Memasukan nilai Menampilkan k kosong
yang
di Kesimpulan
dapat Pesan
pesan error bahwa berhasil
error Diterima di
106
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
107
nilai k tidak boleh tampilkan kosong Memasukan nilai Menampilkan batas
Pesan
error Diterima
outlier pesan error bahwa berhasil
kosong
di
nilai batas outlier tampilkan tidak
boleh
kosong Memasukan nilai Menampilkan
error Diterima
Pesan
k dengan karakter pesan error bahwa berhasil selain angka
di
nilai k tidak boleh tampilkan mengandung karakter
selain
angka Memasukan nilai Menampilkan batas
error Diterima
Pesan
outlier pesan error bahwa berhasil
dengan
di
karakter nilai batas outlier tampilkan
selain angka
tidak
boleh
mengandung karakter
selain
angka
6.1.1.5 Pengujian Simpan Hasil Deteksi Outlier Berikut ini merupakan data hasil pengujian untuk input data pada kelas Home.
Tabel 6.6 Hasil Pengujian Simpan Hasil Deteksi Outlier pada Kelas Home Kasus dan Hasil Uji (Data Benar) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
dapat
yang
di Kesimpulan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Menekan
button File hasil deteksi File
simpan
dan outlier
melakukan
108
berhasil Diterima
ke tersimpan dengan
directory
yang ekstensi .txt
penyimpanan file telah di pilih oleh hasil
deteksi user
outlier
dengan tersimpan dengan
ekstensi .txt
berhasil
ekstensi .txt
Menekan
button File hasil deteksi File
simpan
dan outlier
melakukan
berhasil Diterima
ke tersimpan dengan
directory
yang ekstensi .doc
penyimpanan file telah di pilih oleh hasil
deteksi user
outlier
dengan tersimpan dengan
ekstensi .doc Menekan
berhasil
ekstensi .doc berhasil Diterima
button File hasil deteksi File
simpan
dan outlier
melakukan
ke tersimpan dengan
directory
yang ekstensi .xls
penyimpanan file telah di pilih oleh hasil
deteksi user
outlier
dengan tersimpan dengan
ekstensi .xls
berhasil
ekstensi .xls
Kasus dan Hasil Uji (Data Salah) Aktifitas yang di Keluaran yang di Hasil lakukan
harapkan
yang
di Kesimpulan
dapat
6.1.2 Kesimpulan Hasil Pengujian Blackbox Berdasarkan
pengujian
blackbox
untuk
sistem
deteksi
outlier
menggunakan algoritma Connectivity-based Outlier Factor, dapat di tarik
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
109
kesimpulan apabila sistem tersebut sudah berjalan dengan baik sesuai dengan yang di harapkan dan di rancang pada bab sebelumnya. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor ini juga menghasilkan output sesuai dengan yang di harapkan.
6.1.3 Hasil Pengujian dengan Perubahan Nilai Parameter k Pengujian terhadap Sistem Deteksi Outlier Menggunakan Algoritma Connectivity-based Outlier Factor dilakukan dengan mengubah masukan parameter k. Data yang akan di uji adalah data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma Angkatan 2007-2008. Berikut ini adalah tabel hasil pengujian deteksi outlier. 6.1.3.1 Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes
45 40 35 30
k = 10
25
k = 15
20
k = 20 k = 25
15
k = 30 10 5 0 IPS 1
IPS 2
IPS 3
IPS 4
Gambar 6.1 Grafik Hasil Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
110
Tabel 6.7 Tabel jumlah outlier Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Test Semester 1-4 dengan nilai k yang berubah-ubah dan batas outlier = 1.6.
Semester
1
2
3
4
k
Outlier
10
28, 27
15
28
20
28
25
28
30
28
10
28
15
28
20
28
25
28
30
28
10
28, 74, 50
15
28, 74, 50
20
28, 74, 50
25
28, 74, 50
30
28, 74, 50
10
28
15
28
20
28
25
28
30
28, 67
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
111
6.1.3.2 Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi 50 45 40 35
k = 15
30
k = 20
25
k = 30
20
k = 40
15
k = 50
10 5 0 IPS 1
IPS 2
IPS 3
IPS 4
Gambar 6.2 Grafik Hasil Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
112
Tabel 6.8 Tabel jumlah outlier Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi Semester 1-4 dengan nilai k yang berubah-ubah dan batas outlier = 1.6.
Semester
1
k
Outlier
15
76, 124, 15, 10
20
76, 124, 15, 10
30
76, 124, 15, 79, 10, 16, 94, 13
40
76, 124, 15, 10, 16, 79, 94, 13, 7
50
76, 124, 15, 10, 16, 7, 79, 19, 20
15
17, 124, 107, 86, 94
20
17, 124, 107, 86, 94
30
17, 124, 107, 94, 109, 79, 117, 19, 86, 92, 10
2 40
17, 124, 107, 94, 109, 92, 19, 10, 79, 117, 89
50
17, 124, 107, 94, 109, 79, 117, 92, 10, 19, 89, 96
3
4
15
17, 107, 117, 3, 98
20
17, 107, 117, 3
30
17, 107, 3, 117, 86, 126, 116
40
17, 107, 3, 117, 86, 116, 126, 89
50
17, 107, 3, 117, 86, 116, 126, 89, 77
15
88, 94, 107, 98, 122, 89
20
88, 94, 122, 107, 98, 89
30
88, 94, 122, 107, 89, 98, 87
40
88, 94, 122, 107, 87, 89
50
88, 94, 122, 87, 107, 89, 76
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
113
6.1.3.3 Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 90 80 70 60
k = 30
50
k = 40
40
k = 50 k = 60
30
k = 70 20 10 0 IPS 1
IPS 2
IPS 3
IPS 4
Gambar 6.3 Grafik Hasil Pengujian Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
114
Tabel 6.9 Tabel jumlah outlier Mahasiswa Teknik Informatika Angkatan 2007-2008 Semester 1-4 dengan nilai k yang berubah-ubah dan batas outlier = 1.6. Semester
1
2
3
k
Outlier
30
28, 76, 27, 26, 124, 68, 36
40
76, 28, 27, 26, 124, 36, 58, 69, 10, 68, 12
50
76, 28, 27, 26, 124, 36, 10, 68, 58, 16, 69
60
76, 28, 27, 26, 124, 36, 10, 68, 16, 58, 69, 7
70
76, 28, 27, 26, 124, 10, 36, 68, 16, 58, 69, 7
30
17, 28, 124, 107, 68, 58, 86
40
17, 124, 28, 107, 68, 74, 58, 10
50
17, 124, 28, 107, 68, 74, 58, 72, 10
60
17, 124, 28, 107, 68, 74, 72, 58, 10, 94
70
17, 124, 28, 68, 107, 74, 72, 58, 94, 10, 69
30
74, 17, 28, 50, 107, 72, 55, 46, 86, 58, 67
40
74, 50, 17, 28, 107, 55, 46, 67, 86, 72, 58
50
74, 50, 17, 28, 107, 67, 46, 55, 86, 58, 68, 31, 72, 49
60
74, 50, 17, 28, 107, 67, 46, 55, 58, 86, 31, 72
70
74, 50, 17, 28, 67, 46, 107, 58, 55, 86, 31, 68, 72
30
28, 68, 67, 47, 46, 107, 27, 98, 89
40
68, 67, 28, 47, 46, 107, 27, 72, 89
50
68, 67, 47, 46, 28, 107, 72, 88, 39, 58, 27, 74, 89,
4
38 60
68, 67, 47, 46, 28, 72, 39, 88, 107, 74, 58, 36, 122
70
68, 67, 47, 46, 28, 72, 39, 88, 74, 58, 36, 107, 122, 94
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
115
6.1.4 Kesimpulan Hasil Pengujian dengan Perubahan Nilai Parameter k 1. Pada pengujian di atas dengan perubahan nilai parameter k, dapat di simpulkan bahwa semakin bertambahnya nilai k maka jumlah outlier yang di temukan akan semakin berkurang. Terbukti dari dua angkatan yang diuji, jumlah outlier akan berkurang dan perubahan nilai k juga merubah nilai derajat outlier. 2. Perubahan derajat outlier juga akan mempengaruhi ranking atau peringkat dari outlier tersebut. Hal ini terbukti pada pengujian angkatan 2007-2008 jalur tes, ketika pengujian di lakukan pada atribut ips3 menggunakan Min Pts = 7 dan r = 8, mahasiswa 50 merupakan outlier
dengan
ranking
ke
2
dengan
derajat
outliernya
1.805237654923072, ketika Min Pts di ubah menjadi 10 dan r = 11, maka mahasiswa 50 menjadi outlier dengan ranking ke 3 dengan derajat outliernya 1.6756354110772265. 3. Dalam hal ini dapat di simpulkan bahwa k sangat mempengaruhi derajat nilai COF. Semakin tinggi nilai k suatu obyek, maka semakin luas pula kepadatan jarak antar obyek. Oleh karena itu, apabila suatu obyek menggunakan nilai k yang tinggi, maka derajat outliernya akan lebih tinggi dari obyek yang menggunakan nilai k yang lebih rendah.
6.1.5 Hasil Pengujian Validitas dan Review oleh Pengguna 6.1.5.1 Perbandingan Perhitungan Manual dan Perhitungan Sistem Dalam pengujian kali ini, akan di uji sejumlah data yaitu sampel data dari angkatan 2007 yang masuk melalui jalur tes dan berjumlah 13 data. Akan di lakukan pengujian menggunakan perhitungan manual dengan tools Microsoft Office dan perhitungan sistem deteksi
outlier menggunakan algoritma
Connectivity-based Outlier Factor. Atribut yang akan di gunakan dalam pengujian ini adalah ips1, nil1, nil2, nil3, nil4, dan nil5.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
116
Tabel 6.10 Daftar Nilai Per Atribut NO
IPS1
NIL1
NIL2
NIL3
NIL4
NIL5
1
2,94
2,80
2,00
2,00
2,00
1,60
2
1,72
1,20
0,80
3,20
1,20
0,40
3
2,56
2,40
1,60
2,00
2,80
2,00
4
2,44
2,00
2,00
2,40
2,00
2,00
5
2,94
2,40
1,60
2,40
1,20
2,80
6
1,89
2,40
2,00
2,40
2,40
2,80
7
4,00
2,40
2,40
1,60
1,60
2,80
8
1,44
4,00
2,00
3,60
2,40
2,80
9
3,72
3,20
2,40
2,40
2,80
2,00
10
1,72
2,80
2,40
3,20
3,20
0,80
11
3,28
2,80
2,40
2,80
2,40
2,40
12
2,89
2,40
2,00
2,00
2,80
2,00
13
2,89
2,00
2,00
3,20
2,00
2,80
Di bawah ini akan di tampilkan tabel perhitungan perbandingan perhitungan manual dengan perhitungan oleh sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. Hasil Perhitungan Manual: nomor_mhs COF
Ranking
2
2,002771653
1
10
1,730865914
2
8
1,703444168
3
7
1,347484376
4
Hasil Perhitungan Sistem: nomor_mhs COF
Ranking
2
1
2.002771653021513
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
1.7308659140546045 2
8
1.7034441683267105 3
7
1.3474843760503517 4
6.1.5.2 Kesimpulan
Perbandingan
Perhitungan
Manual
117
dan
Perhitungan Sistem Dari pengujian perhitungan manual dan perhitungan sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor diatas, dapat di simpulkan bahwa perhitungan ke dua cara tersebut menghasilkan outlier dengan jumlah outlier, derajat outlier, dan ranking outlier yang sama. Hal ini berarti sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor dapat mendeteksi tepat samasesuai dengan perhitungan manualnya.
6.1.5.3 Hasil Review Pengguna Pengujian dilakukan untuk membuktikan bahwa data yang terindikasi atau berpotensi sebagai outlier tersebut memang benar-benar merupakan outlier. Oleh karena itu di butuhkan validasi oleh user atau pengguna dari sistem deteksi outlier menggunakan algoritma Conectivity-based Outlier Factor ini yaitu Kaprodi Teknik Informatika Universitas Sanata Dharma. Dalam pengujian ini akan di lakukan tiga kali uji data yaitu data akademik mahasiswa angkatan 2007-2008 jalur tes, data akademik mahasiswa angkatan 2007-2008 jalur prestasi, dan data akademik mahasiswa angkatan 2007-2008. Berikut adalah tabel pengujian yang telah dilakukan: 1. Hasil outlier untuk data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 jalur tes pada semester 1 sampai 4 menggunakan parameter k = 10. Nilai batas outlier= 1.6 dengan jumlah data 54 record data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
118
Tabel 6.11 Hasil Deteksi Outlier Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes Se m
Nom or
27
ips 1 1,7 2 4,0 0
28
-
1,6 5
28
-
-
74
-
-
50
-
-
1,5 3 0,1 9 0,5 9
28
-
-
-
28
1
2
3
4
ips 2
ips 3
ips 4
nilai1 1
nilai1 2
nilai1 3
nilai1 4
nilai1 5
-
-
-
1,20
0,80
3,20
1,20
0,40
-
-
2,40
2,40
1,60
1,60
2,80
-
1,20
0,80
3,20
1,20
0,40
-
1,20
0,80
3,20
1,20
0,40
-
3,20
2,00
3,60
3,20
1,60
1,6 8
2,00
2,00
2,00
1,60
2,80
1,20
0,80
3,20
1,20
0,40
COF 2,093 73 1,652 72 2,026 80 2,115 15 1,819 25 1,675 64 2,151 34
2. Hasil outlier untuk data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 jalur prestasi pada semester 1 sampai 4 menggunakan parameter k = 20. Nilai batas outlier= 1.6 dengan jumlah data 74 record data.
Tabel 6.12 Hasil Deteksi Outlier Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi Sem 1
2
3
Nomor 76 124 15 10 17 124 107 86 94 17 107 117
ips1 0,85 1,45 1,67 3,89 -
ips2 0,32 0,44 3,92 2,80 1,35 -
ips3 0,69 3,76 2,00
ips4 -
final 2,85 2,90 2,72 3,08 2,72 2,90 3,33 3,22 2,77 2,72 3,33 2,89
COF 4,329895 2,272061 1,73662 1,627632 4,014297 3,598753 2,216697 1,967725 1,690341 7,309803 1,984868 1,740475
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
3 88 94 122 107 98 89
-
-
3,78 -
0,94 1,20 1,47 3,78 3,15 3,90
2,78 2,89 2,77 3,05 3,33 3,22 2,97
119
1,689841 3,295088 2,622358 2,05038 1,973157 1,843327 1,612266
3. Hasil outlier untuk data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 pada semester 1 sampai 4 menggunakan parameter k = 20. Nilai batas outlier= 1.6 dengan jumlah data 126 record data.
Tabel 6.13 Hasil Deteksi Outlier Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Sem
1
2
3
Nomor 28 76 27 26 58 28 17 124 107 86 58 28 74 50 17 72 107 55 58 46 31
ips1 1,72 0,85 4,00 1,44 2,30 -
ips2 1,65 0,32 0,44 3,92 2,80 2,61 -
ips3 1,53 0,19 0,59 0,69 1,73 3,76 3,72 2,50 1,31 1,55
ips4 -
final 1,12 2,85 2,32 2,96 1,60 1,12 2,72 2,90 3,33 3,22 1,60 1,12 2,56 2,56 2,72 2,96 3,33 2,24 1,60 2,76 2,12
COF 2,832182 2,698741 2,476131 1,704439 1,614494 2,757748 2,402557 2,23014 2,142604 2,003432 1,838364 2,978759 2,90763 2,421761 2,285508 2,090689 2,027778 1,807945 1,782962 1,704525 1,631952
Jalur Tes Tes Prestasi Tes Tes Tes Tes Prestasi Prestasi Prestasi Prestasi Tes Tes Tes Tes Prestasi Tes Prestasi Tes Tes Tes Tes
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
28 107 68 67 98 27 47 58 46 69
4
-
-
-
1,68 3,78 0,00 0,00 3,15 3,70 0,05 2,50 0,31 1,85
1,12 3,33 2,00 2,04 3,22 2,32 2,40 1,60 2,76 1,96
120
2,96454 2,003851 1,949267 1,930298 1,857202 1,821053 1,802944 1,778459 1,654389 1,603947
Tes Prestasi Tes Tes Prestasi Tes Tes Tes Tes Tes
6.1.5.4 Kesimpulan Hasil Pengujian Validitas dan Review Oleh Pengguna 1.
Dari pengujian data akademik Mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 jalur tes dapat di ambil kesimpulan sebagai berikut:
a. Pada semester 1 (ips1) ditemukan 2 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28 dan 27. Dimana mahasiswa 28 memiliki nilai ips yang rendah dan nilai masuk yang rendah juga, mahasiswa ini memiliki derajat outlier yang cukup tinggi yaitu 2,09373. Mahasiswa 27 memiliki nilai ips yang sangat tinggi yaitu 4,00 dan nilai masuk yang tidak terlalu tinggi dan tidak terlalu rendah. b. Pada semester 2 (ips2) di temukan 1 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28. Dimana mahasiswa 28 memiliki nilai ips yang rendah dan nilai masuk yang rendah juga. c. Pada semester 3 (ips3) di temukan 3 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28, 74, dan 50. Dimana mahasiswa 28 memiliki nilai ips yang rendah dan nilai masuk yang rendah juga. Mahasiswa 74 memiliki nilai ips yang sangat rendah yaitu 0,19 tetapi nilai masuknya tinggi. Mahasiswa 50 memiliki nilai ips yang sangat rendah yaitu 0,59 dan nilai masuknya juga rendah.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
121
d. Pada semester 4 (ips4) di temukan 1 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28. Mahasiswa ini selalu muncul menjadi outlier dari semester 1 sampai 4. Mahasiswa 28 ini memiliki nilai ips yang rendah yaitu 1,68 dan nilai masuknya juga rendah.
2.
Dari pengujian data akademik Mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 jalur prestasi dapat di ambil kesimpulan sebagai berikut: a. Pada semester 1 (ips1) ditemukan 4 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 76, 124, 15, dan 10. Mahasiswa 76 merupakan outlier dengan derajat tertinggi yaitu 4,32989506. Mahasiswa ini memiliki ips yang sangat rendah yaitu 0,85. Mahasiswa 124 ini memiliki nilai ips yang rendah yaitu 1,45. Mahasiswa lain yang berpotensi sebagai outlier lainnya adalah mahasiswa 15 dan 10, mahasiswa ini memiliki nilai ips yang rendah juga. b. Pada semester 2 (ips2) ditemukan 5 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 17, 124, 107, 86, dan 94. Mahasiswa 17, 124, 86, dan 94 memiliki nilai ips yang rata-rata sangat rendah tetapi memiliki nilai final yang tidak terlalu tinggi dan tidak terlalu rendah pula. Sedangkan mahasiswa 107 memiliki nilai ips yang sangat tinggi yaitu 3,92 dan nilai final yang tinggi pula. c. Pada semester 3 (ips3) ditemukan 4 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 17, 107, 117, dan 3. Mahasiswa 17 dan 117 memiliki nilai ips yang sangat rendah yaitu 0,69 dan 2,00. Kedua mahasiswa ini memiliki nilai final yang tidak terlalu tinggi dan tidak terlalu rendah pula. Sedangkan mahasiswa 107 dan 3 memiliki nilai ips yang sangat tinggi yaitu masing-masing 3,76 dan 3,78.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
122
d. Pada semester 4 (ips4) ditemukan 6 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 88, 94, 122, 107, 98, dan 89. Mahasiswa 88, 94, dan 122 memiliki nilai ips yang sangat rendah yaitu 0,94, 1,20, dan 1,47. Sedangkan mahasiswa 107, 98, dan 89 memiliki nilai ips yang sangat tinggi.
3.
Dari pengujian data akademik Mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 dapat di ambil kesimpulan sebagai berikut: a. Pada semester 1 (ips1) ditemukan 5 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28, 76, 27, 26, dan 58. Mahasiswa 28 merupakan mahasiswa dari jalur tes, pada pengujian jalur tes, mahasiswa 28 ini juga terindikasi sebagai outlier dengan derajat COF yang lebih tinggi dari pengujian sebelumnya yaitu 2,832182. Mahasiswa 76 dari jalur prestasi pada pengujian sebelumnya juga diindikasikan sebagai outlier. Mahasiswa 27 merupakan mahasiswa dari jalur tes, pada pengujian jalur tes, mahasiswa 28 ini juga terindikasi sebagai outlier dan derajatnya juga lebih tinggi dari pengujian sebelumnya. Sedangkan mahasiswa 26 dan 58 dari jalur tes memiliki nilai ips yang rendah. b. Pada semester 2 (ips2) ditemukan 6 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28, 17, 124, 107, 86, dan 58. Mahasiswa 28 merupakan mahasiswa dari jalur tes, pada pengujian jalur tes, mahasiswa 28 ini juga terindikasi sebagai outlier dengan derajat COF yang tinggi. Mahasiswa 17 dan 124 dari jalur prestasi memiliki nilai ips yang sangat rendah yaitu 0,32 dan 0,44. Sedangkan mahasiswa 107 memiliki nilai ips yang sangat tinggi yaitu 3,92 dan nilai final yang tinggi pula. Mahaswa 86 memiliki ips yang tidak terlalu tinggi dan tidak terlalu rendah tetapi nilai finalnya tinggi. Mahasiswa 58 memiliki
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
123
nilai ips yang tidak terlalu tinggi dan tidak terlalu rendah tetapi nilai finalnya rendah. c. Pada semester 3 (ips3) ditemukan 10 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28, 74, 50, 17, 72, 107, 55, 58, 46, dan 31. Mahasiswa 28 merupakan mahasiswa yang selalu muncul saat pendeteksian outlier, mahasiswa ini memiliki nilai ips yang rendah dan nilai masuk yang rendah. Mahasiswa 74, 50, 17, 72, 46, dan 31 memiliki rata-rata nilai ips yang rendah. Mahasiswa 107 dan 55 memiliki nilai ips yang sangat tinggi yaitu 3,76 dan 3,72. Sedangkan mahasiswa 58 memiliki nilai final yang rendah. d. Pada semester 4 (ips4) ditemukan 10 mahasiswa yang berpotensi menjadi outlier yaitu mahasiswa 28, 107, 68, 67, 98, 27, 47, 58, 46, dan 69. Mahasiswa 28 merupakan mahasiswa yang selalu muncul saat pendeteksian outlier, mahasiswa ini memiliki nilai ips yang rendah dan nilai masuk yang rendah. Mahasiswa 107 memiliki nilai ips yang sangat tinggi yaitu 3,78 dan nilai finalnya juga tinggi. Mahasiswa 68 dan 67 memiliki nilai ips yang sangat rendah yaittu 0,0. Mahasiswa 98 dan 27 memiliki nilai ips yang tinggi. Mahasiswa 47, 46, dan 69 memiliki rata-rata nilai ipsa yang sangat rendah. Sedangkan mahasiswa 58 memiliki nilai final yang rendah.
17.2
Kelebihan dan Kekurangan Sistem Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier
Factor memiliki kelebihan dan kekurangan.
17.2.1 Kelebihan Sistem 1. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor ini dapat melakukan inputan file yang berekstensi .xls, .doc, dan .csv.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
124
2. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor ini dapat melakukan inputan file dari tabel pada database. 3. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor dapat melakukan seleksi atribut terhadap atribut-atribut yang akan di hapus. 4. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor dapat melakukan penyimpanan hasil outlier ke dalam file yang berekstensi .xls, .doc, dan .txt. 5. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor dapat melakukan deteksi dengan waktu yang singkat.
17.2.2 Kekurangan Sistem 1. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor hanya bisa melakukan input data file dengan ekstensi tertentu seperti .xls, .doc, dan .csv 2. Sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor hanya bisa melakukan seleksi atribut untuk kolom.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB VII KESIMPULAN DAN SARAN
Pada bab ini akan di jelaskan kesimpulan dan saran dari seluruh perancangan dan pengujian sistem deteksi outlier menggunakan algoritma Connectivity-based Outlier Factor. 23.1
Kesimpulan Kesimpulan yang dapat ditarik dari hasil penelitian sistem deteksi outlier
menggunakan Algoritma Connectivity-based Outlier Factor untuk data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma angkatan 2007-2008 jalur tes dan prestasi adalah sebagai berikut: 1. Sistem deteksi Outlier menggunakan algoritma Connectivity-based Outlier Factor yang telah di implementasikan menjadi sebuah aplikasi dapat mendeteksi outlier pada kumpulan data akademik mahasiswa Teknik Informatika Universitas Sanata Dharma. 2. Nilai atribut k sangat mempengaruhi jumlah obyek yang berpotensi menjadi outlier serta mempengaruhi derajat nilai COF dan rangking dari obyek tersebut. 3. Hasil perhitungan manual (menggunakan tools Microsoft Exel) dengan hasil perhitungan sistem menghasilkan outlier dengan derajat COF dan ranking secara sama persis. 4. Algoritma Connectivity-based Outlier Factor tidak menyatakan secara eksplisit bahwa data tersebut merupakan outlier, tetapi di tentukan oleh pengguna atau user dengan cara melihat derajat outliernya.
125
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
23.2
126
Saran Berdasarkan hasil
menggunakan
algoritma
analisa dan pengujian Connectivity-based
sistem deteksi
Outlier
Factor
ini
outlier penulis
memberikan saran untuk perbaikan dan pengembangan sistem deteksi ini secara lebih lanjut. Berikut adalah saran yang di berikan: 1. Sistem ini dapat di kembangkan agar dapat menerima inputan file dengan ekstensi selain .xls, .csv, dan dari tabel pada basisdata sehingga hanya terbatas pada format data tersebut. 2. Sistem ini dapat di kembangkan agar dapat melakukan seleksi atribut pada baris tidak hanya pada kolom. Sehingga user atau pengguna dapat lebih spesifik dalam memilih baris data mana saja yang ingin di gunakan dalam pendeteksian outlier. 3. Sistem ini dapat di kembangkan agar dapat menampilkan hasil deteksi oulier dalam bentuk grafik atau diagram, sehingga user atau pengguna dapat lebih mudah dalam mengamati munculnya kejadian outlier.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA Amer, Mennatallah. (2011). Comparison of Unsupervised Anomaly Detection Techniques. Bailey, Duane A. (2003). Java Structures: DataStructures in Java for the Principled Programmer. New York: The McGraw-Hill. Goodrich, Michael T., & Tamassia, Roberto. (1998). Data Structures and Algorithms in Java. United Stated of America: John Wiley & Sons, Inc. Han, Jiawei., & Kamber, Micheline. (2006). Data Mining: Concept and Techniques. San Fransico: Elsevier Inc. Lafore, Robert. (2003). Data Structures and Algorithms in Java Second Edition. Sam Publishing. Pokrajac, Dragoljub., Reljin, Natasa., Pejcic, Nebojsa., & Lazarevi, Aleksandar. (2008). Incremental Connectivity-Based Outlier Factor Algorithm. Pieter, Kriegel., Kroger, Peer., & Zimek, Arthur. (2010). Outlier Detection Techniques. Washington, D.C: KDD. Raharjo, Daniel Tomi. (2013). Deteksi Outlier Menggunakan Algoritma Local Outlier Factor (Studi Kasus Data Akademik Mahasiswa TI Universitas Sanata Dharma). Reljin, Natasa., McDaniel, Samantha., & Pokrajac, Dragoljub. (2010). Small Moving Targets Detection Using Outlier Detection Algorithms. Tang, J., Chen, Z., Fu, A., & Cheung, D. (2004). Enchancing Evectiveness of Outlier Detections for Low Density Pattern. Tang, Jian., Chen, Zhixiang., Fu, Ada., & Cheung, David. (2004). A Robust Outlier
Detection
Scheme 127
for
Large
Data
Sets.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN I
1. Diagram Use Case
Input Data Excel atau Database
<< Extends >>
<< Depends on >> Cari Outlier
<< Depends on >> Simpan
Pengguna
128
Seleksi Atribut
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN 2
1. Deskripsi Use Case Nomor Use Case
Nama Use Case
001
Input
data
Deskripsi file Use
Aktor
case
ini Pengguna
bertipe .xls, .csv dan menggambarkan tabel dari basisdata
dimana user dapat menginputkan
file
yang bertipe .xls, .csv, dan dari tabel basisdata 002
Pendeteksian outlier
Use
case
ini Pengguna
menggambarkan dimana sistem akan melakukan
proses
pendeteksian outlier dari
data
hasil
inputan pengguna 003
Simpan hasil deteksi Use outlier
case
ini Pengguna
menggambarkan dimana sistem akan melakukan
proses
penyimpanan hasil deteksi outlier 004
Seleksi Atribut
Use
case
ini Pengguna
menggambarkan dimana
pengguna
dapat
memilih
atribut mana yang ingin
di
gunakan
129
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
dalam
130
proses
pendeteksian outlier
2. Narasi Use Case Berikut ini merupakan narasi use case dari masing-masing use case: Nama Use Case:
Input data file bertipe Jenis
Use
Case:
.xls, .csv dan tabel dari Kebutuhan Operasionl basisdata Nomor Use Case:
001
Prioritas: Pelaku Utama:
Pengguna
Pelaku lain yang terlibat:
-
Pilhak
lain
yang -
berkepentingan: Deskripsi:
Use
case
ini
menggambarkan dimana user dapat menginputkan file yang bertipe .xls, .csv,
dan
dari
tabel
basisdata Kondisi Awal:
Pengguna berada dalam sistem dalam halaman Home
pada
tab
Prepocessing Urutan Aktivitas Normal:
Aksi Aktor Langkah1:
Respon Sistem Pengguna
menekan button Pilih File
Langkah2: Menampilkan
Sistem kotak
dialog halaman Pilih File
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Langkah3:
131
Pengguna
memilih file yang ingin di cari outliernya Langkah4:
Sistem
menampilkan file yang di pilih ke dalam tabel pada halaman utama tab prepocessing. Aktivitas Alternatif
Langkah1a: menekan
Pengguna button
Pilih
Database Langkah2a:
Sistem
Menampilkan dialog
kotak
halaman
Pilih
DataBase Langkah3b:
Pengguna
memasukan
username,
password, dan url pada halaman PilihDatabase Langkah4b: menampilkan login
Sistem pesan
ke
database
Langkah6b:
Sistem
berhasil Langkah5b:
Pengguna
menekan button ok
menampilkan PilihTabel
Langkah7b:
Pengguna
memilih tabel database
halaman
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
yang
ingin
132
digunakan
kemudian
menekan
button OK
Langkah
8b:
Sistem
menampilkan tabel dari database yang di pilih ke dalam halaman
tabel utama
pada tab
prepocessing. Kondisi Akhir
Data
berhasil
di
tampilkan ke dalam tabel pada halaman utama tab prepocessing
Nama Use Case:
Pendeteksian outlier
Jenis
Use
Case:
Kebutuhan Operasionl Nomor Use Case:
002
Prioritas: Pelaku Utama:
Pengguna
Pelaku lain yang terlibat:
-
Pilhak
lain
yang -
berkepentingan: Deskripsi:
Use
case
ini
menggambarkan dimana sistem akan melakukan proses
pendeteksian
outlier dari data hasil inputan pengguna Kondisi Awal:
Pengguna berada dalam halaman Home pada tab Deteksi Outlier setelah melakukan seleksi atribut dan menekan button OK
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Urutan Aktivitas Normal:
Aksi Aktor
133
Respon Sistem
Langkah1:
Pengguna
memasukan
nilai
parameter k dan menekan button Proses
Langkah2:
Sistem
Menampilkan
hasil
deteksi outlier ke dalam tabel hasil deteksi outlier pada halaman Home
Aktivitas Alternatif
Langkah1a:
Pengguna
memasukan nilai batas outlier
dan
menekan
button OK Langkah2a:
Sistem
Menampilkan
hasil
deteksi outlier ke dalam tabel hasil deteksi outlier pada halaman Home
Kondisi Akhir
Data hasil deteksi outier berhasil di tampilkan ke dalam halaman
tabel utama
pada tab
Deteksi Outlier
Nama Use Case:
Simpan outlier
hasil
deteksi Jenis
Use
Case:
Kebutuhan Operasionl
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Nomor Use Case:
134
003
Prioritas: Pelaku Utama:
Pengguna
Pelaku lain yang terlibat:
-
Pilhak
lain
yang -
berkepentingan: Deskripsi:
Use
case
ini
menggambarkan dimana sistem akan melakukan proses penyimpanan hasil deteksi outlier Kondisi Awal:
Hasil deteksi outlier telah di tampilkan ke dalam sebuah
tabel,
dan
pengguna berada dalam halaman Home pada tab Deteksi Outlier Urutan Aktivitas Normal:
Aksi Aktor Langkah1:
Respon Sistem Pengguna
menekan button Simpan
Langkah2: Menampilkan dialog simpan
Langkah3:
Pengguna
memilih directory untuk menyimpan hasil deteksi outlier, memberi nama file dan menekan button Save
Sistem kotak
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Langkah4:
135
Sistem
menampilkan
pesan
sukses data hasil deteksi outlier
berhasil
di
simpan. Aktivitas Alternatif
-
Kondisi Akhir
Data hasil deteksi outlier berhasil di simpan dalam directory
yang
diinginkan dan tipe data yang
diinginkan
oleh
user.
Nama Use Case:
Seleksi Atribut
Jenis
Use
Case:
Kebutuhan Operasionl Nomor Use Case:
004
Prioritas: Pelaku Utama:
Pengguna
Pelaku lain yang terlibat:
-
Pilhak
lain
yang -
berkepentingan: Deskripsi:
Use
case
ini
menggambarkan dimana pengguna dapat memilih atribut mana yang ingin di gunakan dalam proses pendeteksian outlier Kondisi Awal:
Pengguna berada dalam sistem Home
dalam pada
halaman tab
Prepocessing dan data telah di tampilkan pada
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
136
tabel Urutan Aktivitas Normal:
Aksi Aktor
Respon Sistem
Langkah1: memilih
Pengguna atribut
diinginkan
untuk
yang di
hilangkan dan menekan button hapus Langkah2:
Sistem
menghapus atribut yang telah
di
pengguna
pilih
oleh
untuk
di
hapus..
Aktivitas Alternatif
Langkah1a:
Pengguna
menekan button Tandai Semua
dan
menekan
button Hapus Langkah2a:
Sistem
Menghapus
semua
atribut.
Kondisi Akhir
Atribut yang diinginkan oleh pengguna berhasil di hapus
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN 3 8.
Diagram Aktivitas Input Data File yang Berekstensi .xls
Menekan Button PilihFile
Menampilkan halaman PilihFile
Memilih file berekstensi .xls
Format File sesuai?
Tidak
Ya
Membaca Data dari File dan menampilkan data ke dalam tabel
137
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9. Diagram Aktivitas Input Data File yang Berekstensi .csv
Menekan Button PilihFile
Menampilkan halaman PilihFile
Memilih file berekstensi .csv
Format File sesuai?
Tidak
Ya
Membaca Data dari File dan menampilkan data ke dalam tabel
138
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10. Diagram Aktivitas Input Data File dari Tabel pada Database
Menekan Button PilihDataBase
Menampilkan halaman PilihDataBase
Memilih database (Oracle atau MySql
Tidak Memilih database Oracle Memasukan username, password, url, database name
Ya
Memasukan username, password, url, database name
Tidak Koneksi database berhasil
Menekan Button OK Ya Menekan Button OK
Membaca Data dari database dan menampilkan data ke dalam tabel
139
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11. Diagram Aktivitas Proses Deteksi Outlier Pengguna
Sistem
Memasukan nilai parameter k
Menekan Button Proses
Inputan k sesuai?
Sistem melakukan deteksi Outlier
Memasukan nilai batas outlier
Sistem menampilkan hasil deteksi ke dalam tabel
Sistem menampilkan hasil deteksi ke dalam tabel
140
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12. Diagram Aktivitas Simpan Hasil Deteksi Outlier Pengguna
Menekan button Simpan
Sistem
Menampilkan kotak dialog Simpan File
Memilih directory penyimpanan file
Menyimpan file yang bertipe .xls, .txt, dan .doc
Menekan button Simpan
Menampilkan pesan file berhasil di simpan
141
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13. Diagram Aktivitas Seleksi Atribut Pengguna
Sistem
Menampilkan daftar atribut dalam tabel pada halaman utama
Memilih atribut yang ingin di hapus
Menekan button Hapus
Mengapus atribut yang telah di pilih
Menampilkan data ke dalam tabel tanpa atribut yang sudah di hapus
142
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
143
14. Diagram Aktivitas Seleksi Atribut dengan Pilihan Tandai Semua Atribut Pengguna
Sistem
Menampilkan daftar atribut dalam tabel pada halaman utama
Memilih button Tandai Semua
Menekan button Hapus
Menghapus semua atribut
Menampilkan data ke dalam tabel tanpa atribut yang sudah di hapus
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
144
LAMPIRAN 4 7. Diagram Sequence Input Data File yang Berekstensi .xls <> Home
<> SeleksiAtributControl
<<entity>> CheckBoxTableModel
1. Menekan button Pilih File 2. Menampilkan halaman PilihFile
3. Memilih File yang berekstensi .xls
4. pilihFile() 5. New CheckBoxTableModel 6. SetAtribut(column, name) 7. SetPilih(False) 8. add(seleksiAtribut) 9. Tampil data ke dalam tabel
10. Tampil data ke dalam tabel seleksi atribut
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
145
8. Diagram Sequence Input Data File yang Berekstensi .csv <> Home
<> SeleksiAtributControl
<<entity>> CheckBoxTableModel
1. Menekan button Pilih File 2. Menampilkan halaman PilihFile
3. Memilih File yang berekstensi .csv
4. pilihFile() 5. New CheckBoxTableModel 6. SetAtribut(column, name) 7. SetPilih(False) 8. add(seleksiAtribut) 9. Tampil data ke dalam tabel
10. Tampil data ke dalam tabel seleksi atribut
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
146
9. Diagram Sequence Input Data File dari Tabel pada Database <> Home
<> DataControl
<<entity>> KoneksiDataBase
<<entity>> CheckBoxTableModel
<> SeleksiAtributControl
1. Menekan button Pilih DataBase 2. Menampilkan halaman PilihDataBase
3. pilihDataBase() 4. DisplayTable() 5. getConnection() 7. TableName
6. connection
8. Menampilkan halaman PilihTabel 9. Pilih Tabel 10. pilihTabel() 11. Tabel data 12. new CheckBoxTableModel 13. SetAtribut(Column, name) 14. setPilih(false) 15. add(SeleksiAtribut) 16. Tampil data ke dalam tabel 17. Tampil data ke dalam tabel seleksi atribut
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10. Diagram Sequence Proses Deteksi Outlier
<> Home
<<entity>> Graph
1. Memasukan nilai parameter k 2. Menekan button Proses 3. Melakukan proses deteksi 4. addVertex(), addEdge(), displayAll() 5. Menampilkan hasil outlier ke dalam tabel
147
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11. Diagram Sequence Simpan Hasil Deteksi Outlier
<> Home
1. Menekan button Simpan 2. Menampilkan kotak dialog Simpan 3. Memilih directory untuk menyimpan file
4. Menekan button Save
5. simpanFile()
5. Menampilkan pesan file berhasil di simpan
148
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
149
12. Diagram Sequence Seleksi Atribut
<> Home
<<entity>> CheckBoxTableModel
1. Memilih atribut yang akan di hapus
2. Menekan button Hapus 3. removeRow()
4. Menampilkan tabel tanpa atribut yang sudah di hapus
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN 5 Berikut merupakan diagram kelas dengan atribut dan method: <<entity>> KoneksiDataBase - jdbcUrl: String -userid: String -password: String -conn : Connection +getDBConnectionOracle(String,
String,
String): Connection +getDBConnectionSql(String,
String,
String): Connection +isConnectedOracle(String, String, String): boolean +isConnectedSql(String, boolean
<<entity>> Vertex - acDist: Double - acDistTetangga: Double - cof: Double - kDistance: Double - labelP: String - nilaiP: List - nkp: List<String> - sbnPath: List<String> - sbnTrail: List<String> - wasVisitedP: boolean
String,
String):
150
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
+ getAcDist(Double) + getAcDistTetangga(Double) + getCof(Double) + getKDistance(Double) + getLabelP(String) + getNilaiP(List) + getNkp(List<String>) + getSbnPath(List<String>) + getSbnTrail(List<String> + getIsWasVisitedP(boolean) + setAcDist(Double): void + setAcDistTetangga(Double): void + setCof(Double): void + setKDistance(Double): void + setLabelP(String): void + setNilaiP(List): void + setNkp(List<String>): void + setSbnPath(List<String>): void + setSbnTrail(List<String>): void + setWasVisitedP(boolean): void
<<entity>> Graph - INFINITY: Double - MAX_VERTS: int - adjMat: Double[][] - cof: Double - format: NumberFormat - nVerts: int - vertexList: Vertex[]
151
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
+ Search(String): int + Search2(Double, int) + addEdge(int, int, Double) + addVertex(String, List) + calculateCOF(int) +
calculateEcluidianDistance(int,
int):
Double + cariKDistance(int, int): Double + cariLabel(String): int + cariNkp(Double, int): List<String> + cariSbnPath(Double, int): List<String> + displayAll(int) + inputData(JTable) + setDataCof(String): CofTableModel +
setDataCofBatas(String,
Double):
CofTableModel + setKDistance(String, int) + setNkp(String) + setSbnPath(String) + show(): void
<<entity>> CheckBoxTableModel - column: String - listSeleksi: SeleksiAtributControl - seleksiAtribut: SeleksiAtributControl + addRow(int, SeleksiAtributControl) + getColumnClass(int): class + getColumnCount(): int
152
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
+ getValueAt(int, int): Object + isCellEditable(int, int): boolean + removeRow(): void + setValueAt(Object,int, int)
<<entity>> DataCof - cof: Double - label: String - rank: int + getCof(Double) + getLabel(String) + getRank(int) + setCof(Double): void + setLabel(String): void + setRank(int): void
<<entity>> CofTableModel - data: List - label: String + getColumnCount(): int + getColumnName(int): String + getRowCount(): int + getValueAt(int, int): Object + isCellEditable(int, int): boolean + setValueAt(Object, int, int)
153
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
<> DataControl
+ selectTable(Connection, String): ResultSet + tampilTabelMySql(Connection): ResultSet + tampilTabelOracle(Connection): ResultSet
<> SeleksiAtributControl -atribut: String - pilih: boolean + getAtribut(): String + getPilih(): boolean + isPilih(): boolean + setAtribut(String) + setPilih(boolean)
<> SeleksiAtributControl -atribut: String - pilih: boolean + getAtribut(): String + getPilih(): boolean + isPilih(): boolean + setAtribut(String) + setPilih(boolean)
154
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
<> HomePage - buttonMasuk: JButton - logo: JLabel - namaSistem: JLabel - nama: JLabel + HomePage() <> + buttonMasukActionPerformed(ActionEvent evt)
<> Home - aboutButton: Jbutton - batalButton: Jbutton - batasOutlierField: JtextField - checkBoxT: CheckBoxTableModel - dataPrepocessing2: Jtable - dataPrepocessTable: Jtable - exitButton: Jbutton - fileTextField: JtextField - graph: Graph - hapusButton: Jbutton - hapusOutlierButton: Jbutton - helpButton: Jbutton - jumlahData2Field: JtextField - jumlahDataField: JtextField - jumlahOutlierField: JtextField - lamaDeteksi: JtextField
155
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
- okBatasOutlierButton: Jbutton - optionPanel: Jpanel - pilihDbButton: Jbutton - pilihFileButton: Jbutton - prosesButton: Jbutton - kTextField: JtextField - simpanButton: Jbutton - submitButton: Jbutton - tabelHasil: Jtable - tabelHasilOutlier: Jtable - tabelSeleksi: Jtable - tandaiButton: Jbutton + Home () <> + Home(KoneksiDataBase, String) <> + aboutButtonActionPerformed(ActionEvent evt) + batalButtonActionPerformed(ActionEvent evt) + calculateCOF() + exitButtonActionPerformed(ActionEvent evt) + hapusButtonActionPerformed(ActionEvent evt) +
hapusOutlierButtonActionPerformed(ActionEvent
evt) + helpButtonActionPerformed(ActionEvent evt) + okBatasButtonActionPerformed(ActionEvent evt) + pilihDatabase(KoneksiDatabase, String) + pilihDbButtonActionPerformed(ActionEvent evt) + pilihFile() + pilihFileButtonActionPerformed(ActionEvent evt) + prosesButtonActionPerformed(ActionEvent evt) + saveCof() + simpanButtonActionPerformed(ActionEvent evt) + submitButtonActionPerformed(ActionEvent evt)
156
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
+ tandaiButtonActionPerformed(ActionEvent evt) + kTextFieldActionPerfomed(ActionEvent evt) + kTextFieldKeyTyped(KeyEvent evt)
<> PilihDatabase - batalButton: JButton - dbCombo: JComboBox - dbNameField: JTextField - okButton: JButton - passwordField: JPaswordField - urlField: JTextField - userNameField: JTextField
+ PilihDatabase()<> + dbComboActionPerfomed(ActionEvent evt) + okButtonActionPerfomed(ActionEvent evt)
<> PilihTabel - batalButton: JButton - koneksi: KoneksiDataBase - okButton: JButton - tabelCombo: JComboBox +
PilihTabel(KoneksiDataBase,
<> + okButtonActionPerfomed(ActionEvent evt)
<> PilihFile
String)
157
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
- jFileChooser: JFileChooser + PilihFile(Frame, boolean) <>
<> About - aboutButton: JButton - exitButton: JButton - helpButton: JButton + About() <> + aboutButtonActionPerfomed(ActionEvent evt) + exitButtonActionPerfomed(ActionEvent evt) + helpButtonActionPerfomed(ActionEvent evt)
<> Help - aboutButton: JButton - exitButton: JButton - helpButton: Jbutton - kembaliButton: JButton + ABout() <> + aboutButton10ActionPerfomed(ActionEvent evt) + exitButton10ActionPerfomed(ActionEvent evt) + helpButton10ActionPerfomed(ActionEvent evt) + kembaliButton10ActionPerfomed(ActionEvent evt)
158
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
159
LAMPIRAN 6
Berikut adalah listing program pada masing-masing kelas:
1. Implementasi Kelas KoneksiDataBase public class KoneksiDataBase { static String jdbcUrl; static String userid; static String password; private static Connection conn; public static Connection getConn() { return conn; } public static void setConn(Connection aConn) { conn = aConn; } Statement stmt; ResultSet rset; String query; String sqlString; public KoneksiDataBase() { } public static Connection getDBConnectionOracle(String url, String user, String password) { try { OracleDataSource ds; ds = new OracleDataSource(); ds.setURL(jdbcUrl); setConn((Connection) ds.getConnection(userid, password)); System.out.println("Koneksi berhasil"); return getConn(); } catch (SQLException ex) { System.out.println("Masih belum terkoneksi"); return null; } }
} public boolean isConnectedOracle(String url, String user, String password) { if (getDBConnectionOracle(url, user, password) != null) { return true;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
160
public static Connection getDBConnectionSql(String url, String user, String password) { try { Class.forName("org.gjt.mm.mysql.Driver"); setConn(DriverManager.getConnection(url, user, password)); System.out.println("Koneksi berhasil"); } catch (Exception ex) { System.out.println("Masih belum terkoneksi"); } return getConn();
} public boolean isConnected() { if (conn != null) { return true; } else { return false; } } public boolean isConnectedSQL(String url, String user, String password) { if (getDBConnectionSql(url, user, password) != null) { return true; } else { return false; } } public boolean isConnectedOracle(String url, String user, String password) { if (getDBConnectionOracle(url, user, password) != null) { return true; } else { return false; } } public void close() { try { getConn().close(); } catch (SQLException ex) { System.out.println("Tidak bisa tutup koneksi"); } }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
public static void main(String args[]) throws SQLException { KoneksiDataBase con = new KoneksiDataBase(); con.getDBConnectionOracle("jdbc:oracle:thin:@localhost:1521:xe", "skripsi", "system"); con.getDBConnectionSql("jdbc:mysql://localhost:3306/gudangdata", "root", "root"); con.close(); } }
2. Implementasi Kelas Vertex public class Vertex { private String labelP; private boolean isInTree; private List nilaiP; private boolean wasVisitedP; private Double kDistance; private List<String> nkp; private List<String> sbnPath; private List<String> sbnTrail; private Double acDist; private Double cof; private Double acDistTetangga; public Vertex(String labelP, List nilaiP) { this.labelP = labelP; this.nilaiP = nilaiP; } public String getLabelP() { return labelP; } public void setLabelP(String labelP) { this.labelP = labelP; } public boolean isIsInTree() { return isInTree; } public void setIsInTree(boolean isInTree) { this.isInTree = isInTree; }
161
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
public List getNilaiP() { return nilaiP; } public void setNilaiP(List nilaiP) { this.nilaiP = nilaiP; } public boolean isWasVisitedP() { return wasVisitedP; } public void setWasVisitedP(boolean wasVisitedP) { this.wasVisitedP = wasVisitedP; } public Double getkDistance() { return kDistance; } public void setkDistance(Double kDistance) { this.kDistance = kDistance; } public List<String> getNkp() { return nkp; } public void setNkp(List<String> nkp) { this.nkp = nkp; } public List<String> getSbnPath() { return sbnPath; } public void setSbnPath(List<String> sbnPath) { this.sbnPath = sbnPath; } public List<String> getSbnTrail() { return sbnTrail; } public void setSbnTrail(List<String> sbnTrail) { this.sbnTrail = sbnTrail; }
}
162
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
public Double getAcDist() { return acDist; } public void setAcDist(Double acDist) { this.acDist = acDist; } public Double getCof() { return cof; } public void setCof(Double cof) { this.cof = cof; } public Double getAcDistTetangga() { return acDistTetangga; } public void setAcDistTetangga(Double acDistTetangga) { this.acDistTetangga = acDistTetangga; } }
3. Implementasi Kelas Graph public class Graph { private int MAX_VERTS; private Double INFINITY = 0.0; private Vertex vertexList[]; private Double adjMat[][]; private int nVerts, currentVert; private PriorityQ thePQ; private int nTree; NumberFormat format = new DecimalFormat("#,##"); List<String> hasil = new ArrayList<String>(); Double kurang; Double sumTetangga = 0.0; Double cof; public Graph(int MAX_VERTS) { vertexList = new Vertex[MAX_VERTS]; adjMat = new Double[MAX_VERTS][MAX_VERTS];
nVerts = 0; for (int i = 0; i < MAX_VERTS; i++) {
163
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
nVerts = 0; for (int i = 0; i < MAX_VERTS; i++) { for (int j = 0; j < vertexList.length; j++) { adjMat[i][j] = INFINITY; } } } public void addVertex(String label, List nilai) { vertexList[nVerts++] = new Vertex(label, nilai); } public void addEdge(int start, int end, Double weight) { adjMat[start][end] = weight; adjMat[end][start] = weight; } public Double calculateEcluidianDistance(int array1, int array2) { Double sum = 0.0; List x = vertexList[array1].getNilaiP(); List y = vertexList[array2].getNilaiP(); for (int i = 0; i < x.size(); i++) { sum = sum + Math.pow((x.get(i) - y.get(i)), 2.0); } return Math.sqrt(sum); } public void show() { System.out.print("\t"); for (int i = 0; i < vertexList.length; i++) { System.out.print("" + vertexList[i].getLabelP() + "\t"); } System.out.println(""); for (int i = 0; i < adjMat.length; i++) { System.out.print("" + vertexList[i].getLabelP() + "\t"); for (int j = 0; j < vertexList.length; j++) { System.out.print("" + adjMat[i][j] + "\t"); } System.out.println(""); } } public void inputData(JTable dataPrepocessing2) { for (int i = 0; i < dataPrepocessing2.getRowCount(); i++) { String label = ""; List listNilai = new ArrayList(); for (int j = 0; j < dataPrepocessing2.getColumnCount(); j++) { if (j == 0) { if (dataPrepocessing2.getValueAt(i, j).toString().equals("")) { label = "null"; } else { label = dataPrepocessing2.getValueAt(i, j).toString();
164
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
165
} else { label = dataPrepocessing2.getValueAt(i, j).toString(); } } else { if (dataPrepocessing2.getValueAt(i, j).toString().equals("")) { listNilai.add(INFINITY); } else if (dataPrepocessing2.getValueAt(i, j).toString().matches("[^0-9]*")) { listNilai.add(INFINITY); } else { listNilai.add(Double.parseDouble(dataPrepocessing2.getValueAt(i, j).toString().replace(",", "."))); } } } addVertex(label, listNilai); } for (int i = 0; i < dataPrepocessing2.getRowCount(); i++) { for (int j = 1 + i; j < dataPrepocessing2.getRowCount(); j++) { if (i != j) { addEdge(i, j, calculateEcluidianDistance(i, j)); } } } } public int Search(String label) { for (int i = 0; i < vertexList.length; i++) { if (label.equals(vertexList[i].getLabelP())) { return i; } } return -1; } public void Search2(Double jarak, int index) { for (int i = 0; i < vertexList.length; i++) { if (adjMat[index][i].equals(jarak)) { vertexList[i].setWasVisitedP(true); } } } public Double cariKDistance(int index, int jangkauan) { for (int i = 0; i < vertexList.length; i++) { vertexList[i].setWasVisitedP(false); } Double[] a = new Double[jangkauan]; Double kDistance = 0.0;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
166
Double temp1 = Double.MAX_VALUE; if (index == -1) { System.out.println("Graph Tidak Terhubung"); } else { for (int j = 0; j < a.length; j++) { for (int i = 0; i < vertexList.length; i++) { if (adjMat[index][i] != -1 && adjMat[index][i] != 0 && vertexList[i].isWasVisitedP() == false) { if (adjMat[index][i] < temp1) { temp1 = adjMat[index][i]; } } } a[j] = temp1; Search2(temp1, index); temp1 = Double.MAX_VALUE; } } for (int i = 0; i < a.length; i++) { if (kDistance < a[i]) { kDistance = a[i]; } } return kDistance; } public void setKDistance(String label, int jangkauan) { int index = Search(label); vertexList[index].setkDistance(cariKDistance(index, jangkauan)); } public void calculateCOF(int k) { for (int i = 0; i < vertexList.length; i++) { setKDistance(vertexList[i].getLabelP(), k); } for (int i = 0; i < vertexList.length; i++) { setNkp(vertexList[i].getLabelP()); } for (int i = 0; i < vertexList.length; i++) { setSbnPath(vertexList[i].getLabelP()); } } public List<String> cariNkp(Double kDistance, int index) { List<String> x = new ArrayList<String>(); if (index == -1) { System.out.println("Graph Tidak Terhubung"); } else { for (int i = 0; i < vertexList.length; i++) { if (adjMat[index][i] != -1 && adjMat[index][i] != 0) { if (adjMat[index][i] <= kDistance) {
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
if (adjMat[index][i] <= kDistance) { x.add(vertexList[i].getLabelP()); } } } } return x; } public void setNkp(String label) { int index = Search(label); vertexList[index].setNkp(cariNkp(vertexList[index].getkDistance(), index)); } public int cariLabel(String label) { for (int i = 0; i < vertexList.length; i++) { if (vertexList[i].getLabelP().equals(label)) { return i; } } return -1; } public List<String> cariSbnPath(Double kDistance, int index) { List<String> x = new ArrayList<String>(); Double test; if (index == -1) { System.out.println("Graph Tidak Terhubung"); } else { for (int i = 0; i < vertexList.length; i++) { if (adjMat[index][i] != -1) { if (adjMat[index][i] <= kDistance) { x.add(adjMat[index][i].toString()); Collections.sort(x); } } } } return x; } public void setSbnPath(String label) { int index = Search(label); vertexList[index].setSbnPath(cariSbnPath(vertexList[index].getkDistance(), index)); }
167
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
168
public void displayAll(int k) { for (int i = 0; i < vertexList.length; i++) { System.out.println(""); System.out.println(vertexList[i].getLabelP()); System.out.println("KDistance: "); System.out.println(vertexList[i].getkDistance()); System.out.println("NKP: "); for (int j = 0; j < vertexList[i].getNkp().size(); j++) { System.out.println(vertexList[i].getNkp().get(j)); } System.out.println("Jumlah Nkp: "); System.out.println(vertexList[i].getNkp().size()); System.out.println("SBN-path: "); for (int j = 0; j < vertexList[i].getSbnPath().size(); j++) { System.out.println(vertexList[i].getSbnPath().get(j)); } List<String> hasil1 = new ArrayList<String>(); int awal = 0; int akhir = 1; System.out.println("SBN-trail: "); while (awal < vertexList[i].getSbnPath().size() - 1 && akhir < vertexList[i].getSbnPath().size()) { System.out.println("awal " + vertexList[i].getSbnPath().get(awal)); System.out.println("akhir " + vertexList[i].getSbnPath().get(akhir)); kurang = Double.parseDouble(vertexList[i].getSbnPath().get(akhir)) - Double.parseDouble(vertexList[i].getSbnPath().get(awal)); if (hasil1.isEmpty()) { hasil1.add(Double.toString(kurang)); } else { hasil1.add(Double.toString(kurang)); } awal = awal + 1; akhir = akhir + 1; } System.out.println("Cost Description Sequence: "); for (int j = 0; j < hasil1.size(); j++) { System.out.println(hasil1.get(j)); } List<String> jumlah1 = new ArrayList<String>(); Double sum = 0.0; System.out.println("Average Chaining Distance: "); for (int j = 0; j < hasil1.size(); j++) { jumlah1.add(Double.toString(((2 * ((k+1) - (j + 1))) * Double.parseDouble(hasil1.get(j))) / ((k+1) * ((k+1) - 1)))); sum += Double.parseDouble(jumlah1.get(j)); } System.out.println(sum); vertexList[i].setAcDist(sum); vertexList[i].getAcDist();
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
vertexList[i].getAcDist(); } for (int ia = 0; ia < vertexList.length; ia++) { System.out.println(""); System.out.println("Ac Dist: "); System.out.println(vertexList[ia].getLabelP()); Double jumlah = 0.0; for (int i = 0; i < vertexList[ia].getNkp().size(); i++) { int cariAcDist = cariLabel(vertexList[ia].getNkp().get(i)); jumlah = jumlah + vertexList[cariAcDist].getAcDist(); } System.out.println("AcDist O: " + jumlah); vertexList[ia].setAcDistTetangga(jumlah); } for (int ib = 0; ib < vertexList.length; ib++) { int nkp = vertexList[ib].getNkp().size(); System.out.println("COF: "); cof = (nkp * vertexList[ib].getAcDist()) vertexList[ib].getAcDistTetangga(); System.out.println(cof); vertexList[ib].setCof(cof); if (cof > 1.0) { System.out.println("Outlier"); } else { System.out.println("Bukan Outlier"); } } long time1 = System.nanoTime(); long time2 = System.nanoTime(); System.out.println("Lama Deteksi Outlier: " + ((time2-time1) java.lang.Math.pow(10, -9)) + " detik"); } public CofTableModel setDataCOF(String label) { List dlf = new ArrayList(); DataCof dl; for (int i = 0; i < vertexList.length; i++) { if (vertexList[i].getCof() >= 1.0) { dl = new DataCof(); dl.setLabel(vertexList[i].getLabelP()); dl.setCof(vertexList[i].getCof()); dlf.add(dl); } } CofTableModel dm = new CofTableModel(dlf, label); return dm; }
169
/
*
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
public CofTableModel setDataCOFBatas(String label, Double batasCOF) { List dataCofL = new ArrayList(); DataCof dataCof; for (int i = 0; i < vertexList.length; i++) { if (vertexList[i].getCof() >= batasCOF) { dataCof = new DataCof(); dataCof.setLabel(vertexList[i].getLabelP()); dataCof.setCof(vertexList[i].getCof()); dataCofL.add(dataCof); } } CofTableModel dm = new CofTableModel(dataCofL, label); return dm; } }
170
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
171
4. Implementasi Kelas CheckBoxTableModel public class CheckBoxTableModel extends AbstractTableModel{ String[] column = {"Atribut", "Pilih"}; SeleksiAtributControl seleksiAtribut = new SeleksiAtributControl("", false); List<SeleksiAtributControl> listSeleksi; public CheckBoxTableModel() { listSeleksi = new ArrayList<SeleksiAtributControl>(); } public int getRowCount() { return listSeleksi.size(); } public int getColumnCount() { return column.length; } @Override public String getColumnName(int col) { return column[col]; } public Object getValueAt(int rowIndex, int columnIndex) { switch(columnIndex){ case 0: return listSeleksi.get(rowIndex).getAtribut(); case 1: return listSeleksi.get(rowIndex).getPilih(); } return null; }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
172
return null; } @Override public Class getColumnClass(int columnIndex) { return getValueAt(0, columnIndex).getClass(); } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { switch(columnIndex){ case 0: listSeleksi.get(rowIndex).setAtribut(aValue.toString()); case 1: listSeleksi.get(rowIndex).setPilih((Boolean) aValue); break; } fireTableCellUpdated(rowIndex, columnIndex); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } public void addRow(int a, SeleksiAtributControl field_m){ listSeleksi.add(a, field_m); fireTableRowsUpdated(getRowCount() -1, getRowCount() -1); } public void removeRow(){ List<SeleksiAtributControl> seleksi ArrayList<SeleksiAtributControl>(); for (SeleksiAtributControl seleksiA : listSeleksi) { if (!seleksiA.getPilih()) { seleksi.add(seleksiA); } } listSeleksi = seleksi; fireTableDataChanged(); } }
=
new
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5. Implementasi Kelas DataCof public class DataCof { private String label; private Double cof; private int rank; public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public Double getCof() { return cof; } public void setCof(Double cof) { this.cof = cof; } public int getRank() { return rank; } public void setRank(int rank) { this.rank = rank; } }
6. Implementasi Kelas CofTableModel public class CofTableModel extends AbstractTableModel { private List data = new ArrayList(); String label; public CofTableModel(List data, String label) { this.data = data; this.label = label; } public int getRowCount() { return data.size(); } public int getColumnCount() { return 3; }
173
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
public Object getValueAt(int rowIndex, int columnIndex) { DataCof dataCof = data.get(rowIndex); switch (columnIndex) { case 0: return dataCof.getLabel(); case 1: return dataCof.getCof(); case 2: return dataCof.getRank(); default: return ""; } } @Override public String getColumnName(int column) { switch (column) { case 0: return label; case 1: return "COF"; case 2: return "Ranking"; default: return ""; } } @Override public boolean isCellEditable(int row, int column){ return true; } @Override public void setValueAt(Object value, int rowIndex, int columnIndex){ switch(columnIndex){ case 0: data.get(rowIndex).setLabel(value.toString()); break; case 1: data.get(rowIndex).setCof((Double)value); break; case 2: data.get(rowIndex).setRank((Integer)value); break; } fireTableCellUpdated(rowIndex, columnIndex); } }
174
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
175
7. Implementasi Kelas DataControl public class DataControl { public ResultSet tampilTabelMySql(Connection con) throws SQLException { Statement stmt; ResultSet rset; String query; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); query = "show tables"; System.out.println("\nExecuting Query: " + query); rset = stmt.executeQuery(query); return rset; } public ResultSet tampilTabelOracle(Connection con) throws SQLException { Statement stmt; ResultSet rset; String query; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); query = "select table_name from user_tables"; System.out.println("\nExecuting Query: " + query); rset = stmt.executeQuery(query); return rset; } public ResultSet selectTable(Connection con, String table) throws SQLException{ Statement stmt; ResultSet rset; String query; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); query = "select * from " + table; System.out.println("\nExecuting Query: " + query); rset = stmt.executeQuery(query); return rset; } }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8. Implementasi Kelas SeleksiAtributControl public class SeleksiAtributControl { private String atribut; private Boolean pilih; public SeleksiAtributControl() { } public SeleksiAtributControl(String atribut, Boolean pilih) { this.atribut = atribut; this.pilih = pilih; } public String getAtribut() { return atribut; } public void setAtribut(String atribut) { this.atribut = atribut; } public Boolean getPilih() { return pilih; } public boolean isPilih() { return pilih; } public void setPilih(Boolean pilih) { this.pilih = pilih; } }
9. Implementasi Kelas Home public class Home extends javax.swing.JFrame { CheckBoxTableModel checkBoxT = new CheckBoxTableModel(); Graph graph; public Home() { initComponents(); this.setLocationRelativeTo(this); jTabbedPane1.setEnabledAt(1, false); } public Home(KoneksiDataBase koneksiDb, String table) { initComponents(); this.setLocationRelativeTo(this); jTabbedPane1.setEnabledAt(1, false);
176
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
this.setLocationRelativeTo(this); jTabbedPane1.setEnabledAt(1, false); pilihDatabase(koneksiDb, table); } public void pilihDatabase(KoneksiDataBase koneksiDb, String table) { try { DataControl dc = new DataControl(); ResultSet rset; rset = dc.selectTable(koneksiDb.getConn(), table); ResultSetMetaData rsmd = rset.getMetaData(); int coloumCount = rsmd.getColumnCount(); Vector headers = new Vector(); Vector data = new Vector(); headers.clear(); for (int i = 1; i <= coloumCount; i++) { headers.add(rsmd.getColumnName(i)); } data.clear(); while (rset.next()) { Vector d = new Vector(); for (int i = 1; i <= coloumCount; i++) { d.add(rset.getString(i)); } d.add("\n"); data.add(d); } DefaultTableModel model = new DefaultTableModel(data, headers); dataPreprocessTable.setModel(model); dataPreprocessTable.setAutoCreateRowSorter(true); dataPrepocessing2.setModel(model); dataPrepocessing2.setAutoCreateRowSorter(true); checkBoxT = new CheckBoxTableModel(); for (int i = 0; i < model.getColumnCount(); i++) { SeleksiAtributControl seleksiAt = new SeleksiAtributControl(); seleksiAt.setAtribut(model.getColumnName(i)); seleksiAt.setPilih(false); checkBoxT.addRow(i, seleksiAt); } tabelSeleksi.setModel(checkBoxT); } catch (SQLException ex) { } jumlahDataField.setText("" + dataPreprocessTable.getRowCount()); jumlahData2Field.setText("" + dataPrepocessing2.getRowCount()); } private void aboutButtonActionPerformed(java.awt.event.ActionEvent evt) { About about = new About(); about.setVisible(true); this.dispose(); }
177
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
178
this.dispose(); } private void helpButtonActionPerformed(java.awt.event.ActionEvent evt) { Help help = new Help(); help.setVisible(true); this.dispose(); } private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); HomePage homePage = new HomePage(); homePage.setVisible(true); } private void pilihFileButtonActionPerformed(java.awt.event.ActionEvent evt) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setVisible(true); Vector headers = new Vector(); Vector data = new Vector(); TableColumnModel tabelColumn; if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { String namaFile; namaFile = fileChooser.getSelectedFile().getPath(); String[] nama = namaFile.split("\\."); if (nama[1].equals("xls")) { try { fileTextField.setText(fileChooser.getSelectedFile().getPath()); File file = new File(fileChooser.getSelectedFile().getPath()); 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(); 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(); }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
179
e.printStackTrace(); } DefaultTableModel model = new DefaultTableModel(data, headers); dataPreprocessTable.setModel(model); dataPreprocessTable.setAutoCreateRowSorter(true); dataPrepocessing2.setModel(model); dataPrepocessing2.setAutoCreateRowSorter(true); checkBoxT = new CheckBoxTableModel(); for (int i = 0; i < model.getColumnCount(); i++) { SeleksiAtributControl seleksiA = new SeleksiAtributControl(); seleksiA.setAtribut(model.getColumnName(i)); seleksiA.setPilih(false); checkBoxT.addRow(i, seleksiA); } tabelSeleksi.setModel(checkBoxT); } else if (nama[1].equals("csv")) { File csvFile = fileChooser.getSelectedFile(); String line; try { fileTextField.setText(fileChooser.getSelectedFile().getPath()); BufferedReader br = new BufferedReader(new FileReader(csvFile)); StringTokenizer st = new StringTokenizer(br.readLine(), ","); while (st.hasMoreTokens()) { headers.addElement(st.nextToken()); } while ((line = br.readLine()) != null) { StringTokenizer st2 = new StringTokenizer(line, ","); Vector row = new Vector(); while (st2.hasMoreTokens()) { row.addElement(st2.nextToken()); } data.addElement(row); } br.close(); DefaultTableModel model = new DefaultTableModel(data, headers); dataPreprocessTable.setModel(model); dataPreprocessTable.setAutoCreateRowSorter(true); dataPrepocessing2.setModel(model); dataPrepocessing2.setAutoCreateRowSorter(true); checkBoxT = new CheckBoxTableModel(); for (int i = 0; i < model.getColumnCount(); i++) { SeleksiAtributControl seleksiA = new SeleksiAtributControl(); seleksiA.setAtribut(model.getColumnName(i)); seleksiA.setPilih(false); checkBoxT.addRow(i, seleksiA); } tabelSeleksi.setModel(checkBoxT);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
180
for (int i = 0; i < dataPreprocessTable.getColumnCount(); i++) { tabelHasil.setValueAt(dataPreprocessTable.getColumnName(i), 0, i); } } catch (Exception e) { } } } jumlahDataField.setText("" + dataPreprocessTable.getRowCount()); jumlahData2Field.setText("" + dataPrepocessing2.getRowCount()); } private void pilihDbButtonActionPerformed(java.awt.event.ActionEvent evt) { PilihDatabase pilihDb = new PilihDatabase(); pilihDb.setVisible(true); } private void tandaiButtonActionPerformed(java.awt.event.ActionEvent evt) { for (int i = 0; i < tabelSeleksi.getRowCount(); i++) { tabelSeleksi.setValueAt(true, i, 1); } } private void batalButtonActionPerformed(java.awt.event.ActionEvent evt) { for (int i = 0; i < tabelSeleksi.getRowCount(); i++) { tabelSeleksi.setValueAt(false, i, 1); } } private void hapusButtonActionPerformed(java.awt.event.ActionEvent evt) { for (int i = 0; i < tabelSeleksi.getRowCount(); i++) { if (tabelSeleksi.getValueAt(i, 1).equals(true)) { for (int j = 0; j < dataPreprocessTable.getColumnCount(); j++) { if (tabelSeleksi.getValueAt(i, 0).equals(dataPreprocessTable.getColumnName(j))) { TableColumn tableColumn1 = dataPreprocessTable.getColumnModel().getColumn(j); TableColumn tableColumn2 = dataPrepocessing2.getColumnModel().getColumn(j); dataPreprocessTable.removeColumn(tableColumn1); dataPrepocessing2.removeColumn(tableColumn2); } } } } checkBoxT.removeRow(); }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
181
private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) { jTabbedPane1.setEnabledAt(1, true); jTabbedPane1.setSelectedIndex(1); } private void prosesButtonActionPerformed(java.awt.event.ActionEvent evt) { calculateCOF(); } private void simpanButtonActionPerformed(java.awt.event.ActionEvent evt) { saveCof(); } private void okBatasOutlierButtonActionPerformed(java.awt.event.ActionEvent evt) { if (batasOutlierField.getText().equals("")) { JOptionPane.showMessageDialog(null, "Nilai Batas Outlier Tidak Boleh Kosong!"); } else if (batasOutlierField.getText().matches("[0-9.]*")) { tabelHasil.setModel(graph.setDataCOFBatas(dataPrepocessing2.getColumnNa me(0), Double.parseDouble(batasOutlierField.getText()))); tabelHasil.setAutoCreateRowSorter(true); DefaultRowSorter sorter = ((DefaultRowSorter) tabelHasil.getRowSorter()); ArrayList list = new ArrayList(); list.add(new RowSorter.SortKey(1, SortOrder.DESCENDING)); sorter.setSortKeys(list); sorter.sort(); for (int i = 0; i < tabelHasil.getRowCount(); i++) { tabelHasil.setValueAt(i + 1, i, 2); } } jumlahOutlierField.setText("" + tabelHasil.getRowCount()); } private void hapusOutlierButtonActionPerformed(java.awt.event.ActionEvent evt) { DefaultTableModel def = new DefaultTableModel(); tabelHasil.setModel(def); jumlahOutlierField.setText(""); batasOutlierField.setText(""); } public void saveCof() { JFileChooser fileChooser = new JFileChooser(new File("E:/")); fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft Excel (*.xls)", "xls")); fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft Word (*.doc)", "doc")); fileChooser.setFileFilter(new FileNameExtensionFilter("Txt File (*.txt)", "txt"));
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
182
fileChooser.setFileFilter(new FileNameExtensionFilter("Txt File (*.txt)", "txt")); FileOutputStream file_output_stream; int returnValue = fileChooser.showSaveDialog(this); if (returnValue == JFileChooser.APPROVE_OPTION) { String filename = fileChooser.getSelectedFile().getPath(); String ext = fileChooser.getFileFilter().getDescription(); if (ext.equals("Microsoft Excel (*.xls)")) { File file; file = new File(filename + ".xls"); try { file_output_stream = new FileOutputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); return; } try { TableModel model = tabelHasil.getModel(); FileWriter excel = new FileWriter(file); for (int i = 0; i < model.getColumnCount(); i++) { excel.write(model.getColumnName(i) + "\t"); } excel.write("\n"); for (int i = 0; i < model.getRowCount(); i++) { for (int j = 0; j < model.getColumnCount(); j++) { excel.write(model.getValueAt(i, j).toString() + "\t"); } excel.write("\n"); } excel.close(); } catch (IOException i) { JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier Gagal Disimpan!"); } } else if (ext.equals("Microsoft Word (*.doc)")) { File file; file = new File(filename + ".doc"); try { file_output_stream = new FileOutputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); return; } try { BufferedWriter bfw = new BufferedWriter(new FileWriter(file)); for (int i = 0; i < tabelHasil.getColumnCount(); i++) { bfw.write(tabelHasil.getColumnName(i)); bfw.write("\t"); } for (int i = 0; i < tabelHasil.getRowCount(); i++) { bfw.newLine();
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
183
for (int i = 0; i < tabelHasil.getRowCount(); i++) { bfw.newLine(); for (int j = 0; j < tabelHasil.getColumnCount(); j++) { bfw.write(tabelHasil.getValueAt(i, j).toString()); bfw.write("\t"); } } bfw.close(); } catch (IOException i) { JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier Gagal Disimpan!"); } } else { File file; file = new File(filename + ".txt"); try { file_output_stream = new FileOutputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); } try { BufferedWriter bfw = new BufferedWriter(new FileWriter(file)); for (int i = 0; i < tabelHasil.getColumnCount(); i++) { bfw.write(tabelHasil.getColumnName(i)); bfw.write("\t"); } for (int i = 0; i < tabelHasil.getRowCount(); i++) { bfw.newLine(); for (int j = 0; j < tabelHasil.getColumnCount(); j++) { bfw.write(tabelHasil.getValueAt(i, j).toString()); bfw.write("\t"); } } bfw.close(); } catch (IOException i) { JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier Gagal Disimpan!"); } } JOptionPane.showMessageDialog(this, "Hasil Deteksi Outlier Telah Berhasil Disimpan di " + filename); } } public void calculateCOF() { long time1 = System.nanoTime(); if (kTextField.getText().isEmpty()) { if (kTextField.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "nilai kosong!"); } } else if (rTextField.getText().isEmpty()) {
k
tidak
boleh
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
184
} else { if (!kTextField.getText().isEmpty()) { if (kTextField.getText().matches("[0-9.]*")) { int k; k = Integer.parseInt(kTextField.getText()); graph = new Graph(dataPrepocessing2.getRowCount()); graph.inputData(dataPrepocessing2); graph.calculateCOF(k); graph.show(); graph.displayAll(k); tabelHasil.setModel(graph.setDataCOF(dataPrepocessing2.getColumnName(0) )); tabelHasil.setAutoCreateRowSorter(true); DefaultRowSorter sorter = ((DefaultRowSorter) tabelHasil.getRowSorter()); ArrayList list = new ArrayList(); list.add(new RowSorter.SortKey(1, SortOrder.DESCENDING)); sorter.setSortKeys(list); sorter.sort(); for (int i = 0; i < tabelHasil.getRowCount(); i++) { tabelHasil.setValueAt(i + 1, i, 2); } } } } long time2 = System.nanoTime(); jumlahOutlierField.setText("" + tabelHasil.getRowCount()); lamaDeteksiField.setText("" + ((time2 - time1) * java.lang.Math.pow(10, 9))); } private javax.swing.JButton aboutButton; private javax.swing.JButton batalButton; private javax.swing.JTextField batasOutlierField; private javax.swing.JTable dataPrepocessing2; private javax.swing.JTable dataPreprocessTable; private javax.swing.JButton exitButton; private javax.swing.JTextField fileTextField; private javax.swing.JButton hapusButton; private javax.swing.JButton hapusOutlierButton; private javax.swing.JButton helpButton; private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JTabbedPane jTabbedPane1; private javax.swing.JTextField jumlahData2Field; private javax.swing.JTextField jumlahDataField; private javax.swing.JTextField jumlahOutlierField; private javax.swing.JTextField lamaDeteksiField; private javax.swing.JTextField minPtsTextField; private javax.swing.JButton okBatasOutlierButton; private javax.swing.JPanel optionPanel; private javax.swing.JButton pilihDbButton; private javax.swing.JButton pilihFileButton; private javax.swing.JButton prosesButton; private javax.swing.JTextField rTextField; private javax.swing.JButton simpanButton; private javax.swing.JButton submitButton; private javax.swing.JTable tabelHasil; private javax.swing.JScrollPane tabelHasilOutlier; private javax.swing.JTable tabelSeleksi; private javax.swing.JButton tandaiButton; }
185
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
186
10. Implementasi Kelas PilihDatabase public class PilihDatabase extends javax.swing.JFrame { public PilihDatabase() { initComponents(); setResizable(false); setLocationRelativeTo(this); } private void okButtonActionPerformed(java.awt.event.ActionEvent evt) { if (dbCombo.getSelectedIndex() == 0) { if (userNameField.getText().isEmpty() || passwordField.getText().isEmpty() || dbNameField.getText().isEmpty() || urlField.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "Username, Password, Database Name, dan URL tidak boleh kosong!"); } else { String username = userNameField.getText(); String password = passwordField.getText(); String url = urlField.getText(); KoneksiDataBase koneksiDb = new KoneksiDataBase(); boolean koneksi = koneksiDb.isConnectedSQL(url, username, password); if (koneksi == true) { JOptionPane.showMessageDialog(null, "Koneksi Berhasil"); PilihTabel pilihTabel = new PilihTabel(koneksiDb, dbCombo.getSelectedItem().toString()); pilihTabel.setVisible(true); this.dispose(); } else { JOptionPane.showMessageDialog(null, "Login error, silahkan coba lagi!"); userNameField.setText(""); passwordField.setText(""); dbNameField.setText(""); urlField.setText(""); } } } else if (dbCombo.getSelectedIndex() == 1) { if (userNameField.getText().isEmpty() || passwordField.getText().isEmpty() || dbNameField.getText().isEmpty() || urlField.getText().isEmpty()) { JOptionPane.showMessageDialog(null, "Username, Password, Database Name, dan URL tidak boleh kosong!"); } else { String username = userNameField.getText(); String password = passwordField.getText(); String url = urlField.getText(); KoneksiDataBase koneksiDb = new KoneksiDataBase(); boolean koneksi = koneksiDb.isConnectedOracle(url, username, password);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
187
boolean koneksi = koneksiDb.isConnectedOracle(url, username, password); if (koneksi == true) { JOptionPane.showMessageDialog(null, "Koneksi Berhasil"); PilihTabel pilihTabel = new PilihTabel(koneksiDb, dbCombo.getSelectedItem().toString()); pilihTabel.setVisible(true); this.dispose(); } else { JOptionPane.showMessageDialog(null, "Login error, silahkan coba lagi!"); userNameField.setText(""); passwordField.setText(""); dbNameField.setText(""); urlField.setText(""); } } } } private void dbComboActionPerformed(java.awt.event.ActionEvent evt) { if (dbCombo.getSelectedItem().equals("MySql")) { urlField.setText("jdbc:mysql://localhost:3306/gudangdata"); } else if (dbCombo.getSelectedItem().equals("Oracle")) { urlField.setText("jdbc:oracle:thin:@localhost:1521:xe"); } } private javax.swing.JButton batalButton; private javax.swing.JComboBox dbCombo; private javax.swing.JTextField dbNameField; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel1; private javax.swing.JButton okButton; private javax.swing.JPasswordField passwordField; private javax.swing.JTextField urlField; private javax.swing.JTextField userNameField; }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
188
11. Implementasi Kelas PilihTabel public class PilihTabel extends javax.swing.JFrame { KoneksiDataBase koneksi; public PilihTabel(KoneksiDataBase koneksiDb, String db) { initComponents(); setLocationRelativeTo(this); this.koneksi = koneksiDb; try { DataControl dataControl = new DataControl(); ResultSet rset; if (db.equals("MySql")) { 1. rset = dataControl.tampilTabelMySql(koneksiDb.getConn()); while (rset.next()) { tabelCombo.addItem(rset.getString(1)); } } else if (db.equals("Oracle")) { rset = dataControl.tampilTabelOracle(koneksiDb.getConn()); while (rset.next()) { tabelCombo.addItem(rset.getString(1)); } } } catch (SQLException ex) { Logger.getLogger(PilihTabel.class.getName()).log(Level.SEVERE, null, ex); } } private void okButtonActionPerformed(java.awt.event.ActionEvent evt) { Home home = new Home(koneksi, tabelCombo.getSelectedItem().toString()); home.setVisible(true); this.dispose(); } private javax.swing.JButton jButton2; private javax.swing.JLabel jLabel1; private javax.swing.JPanel jPanel1; private javax.swing.JButton okButton; private javax.swing.JComboBox tabelCombo; }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
189
12. Implementasi Kelas About public class About extends javax.swing.JFrame { public About() { initComponents(); this.setLocationRelativeTo(this); } private void aboutButtonActionPerformed(java.awt.event.ActionEvent evt) { About about = new About(); about.setVisible(true); this.dispose(); } private void helpButtonActionPerformed(java.awt.event.ActionEvent evt) { Help help = new Help(); help.setVisible(true); this.dispose(); } private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) { int exit = JOptionPane.showConfirmDialog(null, "Apakah Anda Ingin Keluar Dari Sistem?", "Konfirmasi", JOptionPane.YES_NO_OPTION); if (exit == JOptionPane.YES_OPTION) { this.dispose(); } else if (exit == JOptionPane.NO_OPTION) { return; } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new About().setVisible(true); } }); } private javax.swing.JButton aboutButton; private javax.swing.JButton exitButton; private javax.swing.JButton helpButton; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
190
private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel14; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel3; }
13. Implementasi Kelas Help public class Help extends javax.swing.JFrame { public Help() { initComponents(); this.setLocationRelativeTo(this); setTitle("Help"); setResizable(false); this.getMaximumSize(); setExtendedState(MAXIMIZED_BOTH); } private void kembaliButtonActionPerformed(java.awt.event.ActionEvent evt) { this.dispose(); } private void aboutButton10ActionPerformed(java.awt.event.ActionEvent evt) { About about = new About(); about.setVisible(true); this.dispose(); } private void helpButton10ActionPerformed(java.awt.event.ActionEvent evt) { Help help = new Help(); help.setVisible(true); this.dispose(); }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
191
private void exitButton10ActionPerformed(java.awt.event.ActionEvent evt) { int exit = JOptionPane.showConfirmDialog(null, "Apakah Anda Ingin Keluar Dari Sistem?", "Konfirmasi", JOptionPane.YES_NO_OPTION); if (exit == JOptionPane.YES_OPTION) { this.dispose(); } else if (exit == JOptionPane.NO_OPTION) { return; } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Help().setVisible(true); } }); } private javax.swing.JButton aboutButton10; private javax.swing.JButton exitButton10; private javax.swing.JButton helpButton10; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel35; private javax.swing.JLabel jLabel36; private javax.swing.JLabel jLabel37; private javax.swing.JLabel jLabel38; private javax.swing.JLabel jLabel39; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel40; private javax.swing.JLabel jLabel41; private javax.swing.JLabel jLabel42; private javax.swing.JLabel jLabel43; private javax.swing.JLabel jLabel44; private javax.swing.JLabel jLabel45; private javax.swing.JLabel jLabel46; private javax.swing.JLabel jLabel47; private javax.swing.JLabel jLabel48; private javax.swing.JLabel jLabel49; private javax.swing.JLabel jLabel50; private javax.swing.JLabel jLabel51; private javax.swing.JLabel jLabel52; private javax.swing.JLabel jLabel53; private javax.swing.JLabel jLabel54; private javax.swing.JLabel jLabel55; private javax.swing.JLabel jLabel56; private javax.swing.JLabel jLabel57; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14; private javax.swing.JPanel jPanel15;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
192
private javax.swing.JLabel jLabel56; private javax.swing.JLabel jLabel57; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel14; private javax.swing.JPanel jPanel15; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JButton kembaliButton; }
14. Implementasi Kelas HomePage public class HomePage extends javax.swing.JFrame { public HomePage() { initComponents(); this.setLocationRelativeTo(this); } private void buttonMasukActionPerformed(java.awt.event.ActionEvent evt) { Home home = new Home(); home.setVisible(true); this.dispose(); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new HomePage().setVisible(true); } }); } private javax.swing.JButton buttonMasuk; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JPanel jPanel1; private javax.swing.JLabel logo; private javax.swing.JLabel nama; private javax.swing.JLabel namaSistem; }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
193
15. Implementasi Kelas PilihFile public class PilihFile extends javax.swing.JDialog { public PilihFile(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { PilihFile dialog = new PilihFile(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } private javax.swing.JDesktopPane jDesktopPane; private javax.swing.JFileChooser jFileChooser; private javax.swing.JPanel jPanel; }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
194
LAMPIRAN 7
1. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes pada Semester 1
2. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes pada Semester 2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
195
3. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes pada Semester 3
4. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes pada Semester 4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
196
5. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi pada Semester 1
6. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi pada Semester 2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
197
7. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi pada Semester 3
8. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi pada Semester 4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
198
9. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 pada Semester 1
10. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 pada Semester 2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
199
11. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 pada Semester 3
12. Outlier Plot Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 pada Semester 4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
200
LAMPIRAN 8
1. Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Tes
Nomor ips1
ips2
ips3
ips4
nilai11 nilai12 nilai13 nilai14 nilai15
21
3,72
3,48
3,36
3,65
3,20
2,40
2,40
2,80
2,00
22
2,89
3,21
3,33
3,36
2,40
2,00
2,00
2,80
2,00
23
2,56
2,77
2,52
3,13
2,40
1,60
2,00
2,80
2,00
24
3,28
2,75
2,90
3,00
2,80
2,40
2,80
2,40
2,40
25
1,89
2,20
2,21
1,95
2,40
2,00
2,40
2,40
2,80
26
1,44
2,42
2,53
1,96
4,00
2,00
3,60
2,40
2,80
27
4,00
3,52
3,43
3,70
2,40
2,40
1,60
1,60
2,80
28
1,72
1,65
1,53
1,68
1,20
0,80
3,20
1,20
0,40
29
2,89
3,18
3,04
2,95
2,00
2,00
3,20
2,00
2,80
30
2,94
3,27
2,96
2,81
2,80
2,00
2,00
2,00
1,60
31
2,94
2,59
1,55
2,35
2,40
1,60
2,40
1,20
2,80
32
2,44
2,63
2,00
2,67
2,00
2,00
2,40
2,00
2,00
33
1,72
2,65
2,43
2,24
2,80
2,40
3,20
3,20
0,80
34
2,80
2,91
2,80
3,33
2,40
2,00
2,00
1,60
2,00
35
2,90
2,50
3,10
2,75
1,60
2,80
3,20
2,80
2,00
36
1,40
1,64
1,82
1,07
2,40
1,60
2,80
3,60
2,80
37
2,65
2,40
2,17
2,75
1,60
1,60
2,80
1,20
2,40
38
2,65
3,23
2,79
3,30
2,40
1,60
2,40
1,60
2,00
39
3,35
2,91
2,45
0,83
2,40
2,40
2,00
3,20
2,40
40
2,70
2,86
2,32
2,70
1,60
2,40
2,80
2,80
1,20
41
2,55
2,68
3,15
2,64
2,40
2,00
1,60
1,60
1,60
42
3,10
3,08
2,95
3,05
2,40
2,80
3,60
1,60
2,80
43
2,45
2,40
2,44
2,26
2,40
2,80
3,60
2,00
2,80
44
2,55
2,41
2,47
2,68
2,80
1,60
2,80
1,60
2,40
45
2,75
2,59
2,79
3,32
2,80
2,00
2,40
2,80
2,80
46
2,25
1,55
1,31
0,31
3,60
2,40
2,40
2,40
2,40
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
201
47
2,70
2,36
2,68
0,05
2,80
2,40
2,40
2,00
2,00
48
3,15
3,00
3,24
2,33
2,00
3,20
2,00
2,80
2,00
49
2,85
2,68
3,37
3,09
2,40
1,60
2,00
2,80
2,00
50
2,35
2,40
0,59
2,23
2,40
2,40
2,80
1,20
3,60
51
2,05
1,50
2,40
2,00
2,00
2,00
2,00
1,60
2,80
52
2,85
2,64
2,84
2,75
2,40
2,00
2,00
2,40
2,00
53
2,35
2,20
2,94
2,09
2,40
0,80
2,00
2,00
3,20
54
3,15
3,20
2,72
3,05
2,80
3,20
2,00
2,40
2,00
55
3,10
3,32
3,72
3,42
2,00
2,00
3,20
1,60
2,80
56
2,70
3,44
3,39
2,33
2,40
2,00
3,60
2,80
2,00
57
2,05
1,55
2,33
2,70
2,00
2,00
2,40
2,40
2,00
58
2,30
2,61
2,50
2,50
1,20
2,00
1,60
0,80
2,00
59
2,80
2,88
2,39
2,44
2,40
2,00
3,20
1,60
2,80
60
2,15
2,26
2,33
2,06
2,40
1,60
3,20
1,20
2,00
61
2,90
2,28
2,39
1,93
2,00
2,00
3,60
1,60
3,20
62
3,25
3,16
3,11
2,56
2,40
2,40
3,20
2,80
1,60
63
3,45
3,60
3,39
3,50
2,80
2,40
2,80
1,20
2,80
64
2,30
3,13
3,00
3,05
1,60
2,40
3,60
2,40
1,60
65
2,30
2,39
2,62
2,94
2,80
0,80
2,80
2,00
2,80
66
2,85
3,28
3,50
3,63
2,80
2,80
2,40
2,40
2,00
67
2,20
2,30
1,28
0,00
2,80
2,00
1,20
1,60
1,60
68
1,55
1,00
1,72
0,00
2,80
1,60
2,00
2,40
1,20
69
1,65
1,67
2,07
1,85
2,40
2,00
1,20
2,00
1,60
70
3,20
3,04
2,94
3,14
2,80
2,00
3,60
2,00
3,20
71
3,10
2,60
2,89
2,72
2,40
2,80
1,60
2,00
2,40
72
2,05
1,28
1,73
0,82
2,40
3,20
3,60
2,80
3,20
73
2,65
1,87
2,00
1,56
2,80
2,40
2,40
1,60
2,00
74
2,35
1,04
0,19
0,92
3,20
2,00
3,60
3,20
1,60
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
a. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 1. Nomor
COF
Ranking
28
2.093729977399682
1
27
1.6527189572202248
2
58
1.5920098937474112
3
72
1.5765614340140914
4
36
1.553532472160572
5
26
1.5042751740997198
6
33
1.5030002388273545
7
53
1.4263746641084774
8
68
1.3937135695791245
9
46
1.3749080416699724
10
69
1.3342559419208513
11
60
1.3283589915391203
12
65
1.303081788253064
13
50
1.2953636261229282
14
67
1.2697126563945913
15
74
1.2613669985939324
16
21
1.2594043953864316
17
63
1.2422528229051326
18
64
1.234932237325408
19
40
1.2187378045877884
20
25
1.2087864404630766
21
48
1.202256547508782
22
51
1.1812828562454278
23
37
1.1621110335698575
24
71
1.1354489345019516
25
35
1.132474768465779
26
54
1.1148959997313126
27
57
1.1095572477612003
28
202
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
70
1.0916882281090943
29
31
1.0901207479800297
30
24
1.0664209930144102
31
39
1.0664121954023567
32
45
1.0634403371102905
33
42
1.0581535339090584
34
56
1.0349128175819005
35
62
1.020809772075169
36
43
1.0202795773199267
37
30
1.0085384699140367
38
49
1.0047746467829504
39
73
1.0021853705424957
40
b. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 2. Nomor
COF
Ranking
28
2.0268003202692433
1
26
1.55658014403808
2
72
1.4909386124840425
3
58
1.4819494257215553
4
36
1.4777887851851306
5
33
1.451728974127267
6
68
1.4222904315309912
7
53
1.4007224405489853
8
74
1.374454626973777
9
27
1.3320514908395866
10
46
1.2962460921438428
11
65
1.2515493524010008
12
50
1.2295118401770737
13
67
1.2191457943048098
14
203
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
1.1874586493357293
15
48
1.1845703853777865
16
64
1.1745689308348077
17
60
1.1713797798711885
18
56
1.1704940915264157
19
37
1.1675621461659766
20
63
1.1640419201895587
21
69
1.163007614605209
22
21
1.141525607701464
23
35
1.1351699940500661
24
40
1.1294696068745453
25
57
1.1178655935373487
26
54
1.1098081885793523
27
71
1.1054446024148534
28
38
1.0899387977551025
29
45
1.0861803302088893
30
73
1.0846580745031023
31
61
1.048959551110815
32
39
1.04305671631407
33
30
1.0418677973553743
34
42
1.0308791609149934
35
25
1.0147045384629687
36
24
1.0071980208527054
37
70
1.0053993028576234
38
31
1.0019332090065451
39
c. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 3. Nomor
COF
Ranking
28
2.1151547125504178
1
74
1.8192459272470693
2
204
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
1.6756354110772265
3
58
1.5631076760484066
4
72
1.5570996468325744
5
26
1.5347909338221777
6
36
1.5222572718224934
7
53
1.5086946826507015
8
46
1.4475255886159393
9
33
1.4459438670519735
10
67
1.4333715705517256
11
68
1.3229651990958258
12
27
1.3015176494824106
13
65
1.2582090855969592
14
48
1.2463727880452309
15
55
1.2080913644558406
16
40
1.198224457998106
17
63
1.192972573989586
18
56
1.1612470436058644
19
73
1.1602718270797212
20
64
1.1507881393604613
21
31
1.1503993622124313
22
69
1.1467818173894717
23
37
1.1297384495820586
24
49
1.1164169361288259
25
60
1.1103895355659017
26
39
1.106810423135832
27
54
1.1027295213884047
28
35
1.1007222019889389
29
41
1.0863841950100495
30
21
1.0724972946644264
31
45
1.0620365237411882
32
205
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
42
1.057414969718471
33
61
1.052587919323414
34
51
1.0519848187483165
35
71
1.0417796392835668
36
25
1.027851360282813
37
43
1.0227176085410865
38
32
1.0106963651820877
39
66
1.0056384571823211
40
d. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 4. Nomor
COF
Ranking
28
2.1513371041433516 1
58
1.5199221182741092 2
26
1.4865313313033075 3
53
1.4845801942681704 4
67
1.451099973603079
33
1.4261677713019278 6
69
1.3595540120019127 7
27
1.3245722229287327 8
48
1.3226859788635779 9
72
1.2890447164858934 10
65
1.2598757448943498 11
36
1.2574547444731419 12
73
1.2522516333540779 13
64
1.1948014416631427 14
68
1.1772498831611737 15
21
1.170269972576745
50
1.1624062492078238 17
60
1.1575757575142975 18
5
16
206
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
54
1.152222489441577
19
45
1.1436268103361
20
63
1.1389148491717398 21
40
1.1151840491271539 22
61
1.1097459273202972 23
37
1.1087850562636357 24
25
1.1058112043540993 25
66
1.095179133219442
74
1.0924966039539314 27
56
1.0902241356666318 28
41
1.084883755788211
70
1.0751177739744453 30
71
1.0723748110489968 31
35
1.0670103162092368 32
43
1.0480357358486765 33
38
1.0465308810231002 34
24
1.0404589387064067 35
51
1.0317651074389256 36
42
1.0290738955933254 37
39
1.0182655614308196 38
55
1.0180966714987207 39
30
1.005204382551819
207
26
29
40
2. Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008 Jalur Prestasi Nomor
ips1
ips2
ips3
ips4
final
1
2,06
2,32
2,91
3,00
2,71
2
2,72
2,50
2,96
2,38
2,71
3
3,33
3,48
3,78
3,48
2,78
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4
2,39
3,00
2,43
2,82
2,86
5
2,11
2,71
2,43
2,45
2,95
6
3,00
2,96
2,61
3,29
2,70
7
3,72
3,56
3,43
3,67
3,15
8
3,44
3,04
2,88
3,48
2,85
9
2,17
2,70
3,09
3,63
2,88
10
3,89
3,75
3,00
3,62
3,08
11
2,89
3,68
2,88
3,76
2,92
12
3,11
3,08
2,78
3,48
2,73
13
2,00
2,00
2,29
3,00
3,08
14
3,06
2,50
2,57
2,78
2,73
15
1,67
2,24
2,52
2,16
2,72
16
3,89
3,63
3,57
3,62
2,99
17
2,61
0,32
0,69
2,85
2,72
18
2,83
2,55
3,09
3,17
2,79
19
3,72
3,74
2,87
3,52
2,77
20
3,72
3,42
3,65
3,71
2,85
75
2,40
2,65
2,57
3,24
2,95
76
0,85
2,29
2,21
2,00
2,85
77
2,65
2,75
2,11
2,74
2,74
78
2,85
3,27
2,91
2,73
2,93
79
1,85
1,71
2,40
2,06
2,98
80
2,95
2,91
3,16
3,25
2,80
81
3,35
2,48
3,00
2,14
3,00
82
2,65
2,14
2,45
2,64
2,92
83
3,35
3,09
3,42
3,25
3,11
84
2,60
3,00
2,90
3,10
2,83
85
3,50
2,92
3,27
3,04
2,85
86
3,10
2,80
3,68
3,57
3,22
87
2,25
2,05
2,29
1,83
2,80
208
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
88
2,65
2,77
2,14
0,94
2,89
89
3,65
3,74
3,70
3,90
2,97
90
3,25
3,35
2,67
3,25
2,86
91
3,40
3,00
2,73
2,47
2,92
92
2,60
1,73
3,00
2,10
2,98
93
2,50
2,82
3,35
3,57
2,87
94
1,90
1,35
2,46
1,20
2,77
95
2,45
3,00
3,25
3,70
2,98
96
2,20
1,90
2,17
2,30
2,77
97
2,30
3,00
3,24
3,00
2,72
98
3,55
3,32
3,19
3,15
3,22
99
2,45
2,55
2,44
3,15
2,81
100
3,05
3,04
3,26
3,58
2,86
101
2,60
2,64
2,58
3,33
2,87
102
3,15
3,20
2,89
3,37
2,98
103
3,20
3,52
3,37
3,52
3,19
104
2,80
3,00
3,14
3,05
2,94
105
2,60
2,73
3,05
3,38
3,06
106
2,05
1,95
2,63
2,35
2,83
107
3,30
3,92
3,76
3,78
3,33
108
2,70
2,32
3,00
2,78
2,85
109
2,85
1,73
2,56
2,76
3,08
110
2,40
2,75
3,05
3,32
2,89
111
3,45
3,36
2,95
2,82
3,05
112
2,60
2,55
3,00
2,96
2,87
113
2,65
2,14
2,22
3,11
2,78
114
2,75
3,00
3,21
3,53
2,75
115
2,75
3,36
3,33
3,13
2,92
116
2,40
2,20
2,06
2,22
2,73
117
2,60
1,70
2,00
2,76
2,89
209
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
118
3,45
3,24
3,48
3,57
3,06
119
2,65
2,95
2,48
3,15
2,83
120
2,85
2,82
3,14
3,42
2,81
121
2,55
2,74
2,94
2,53
2,69
122
2,30
2,43
2,28
1,47
3,05
123
3,35
3,04
3,00
3,20
2,83
124
1,45
0,44
2,47
2,65
2,90
125
3,30
3,16
3,22
3,25
2,77
126
3,20
3,40
3,72
3,10
2,81
a. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 1. Nomor
COF
Ranking
76
4.329895060376351
1
124
2.2720613985754192
2
15
1.7366201984580918
3
10
1.627632023751075
4
16
1.5824594377377827
5
79
1.5542715721572733
6
109
1.5410312798266619
7
107
1.535990643529973
8
86
1.5007547689751068
9
94
1.383866070042926
10
13
1.3744805923635028
11
122
1.3624227149266852
12
19
1.3482291262760497
13
105
1.3465684505492626
14
6
1.2869404746244284
15
7
1.2773715576206324
16
103
1.2648673249257194
17
210
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1
1.261348376907362
18
121
1.2403663434224443
19
116
1.2352998325312916
20
20
1.2207164428923027
21
97
1.2137182870257033
22
14
1.2064469149375554
23
12
1.1747589988172666
24
106
1.159472922733852
25
2
1.1527604641442621
26
78
1.1468876919490418
27
98
1.1418994676942849
28
95
1.1379886532022474
29
5
1.11214118042402
30
11
1.1062506886067511
31
80
1.0898865238222706
32
87
1.089330487380707
33
100
1.0869243542973657
34
17
1.0783993163985601
35
96
1.0741824245535803
36
104
1.0708888139393302
37
120
1.066636577568782
38
9
1.0662427082360697
39
75
1.053952481773731
40
18
1.052353944067101
41
92
1.0382430069442516
42
89
1.022863911684411
43
4
1.0202449332868406
44
102
1.0148813246678274
45
114
1.003173324809953
46
211
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
b. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 2. Nomor
COF
Ranking
17
4.014296506708243
1
124
3.5987528170082475
2
107
2.2166968999748775
3
86
1.9677245399933332
4
94
1.6903410219970239
5
109
1.5040393908230762
6
19
1.4954375085158444
7
79
1.4206853748186057
8
117
1.4198094582292373
9
98
1.4013952733156876
10
83
1.398160361309727
11
92
1.3782039742208403
12
10
1.3486087513749758
13
122
1.3139866044511614
14
105
1.303153181748003
15
13
1.2676701432563295
16
89
1.2598670143875008
17
121
1.249361909401674
18
81
1.1859635523650836
19
125
1.1772520510882483
20
12
1.1590124480355097
21
103
1.1561664664948934
22
3
1.1519182387894447
23
11
1.1386353928747572
24
118
1.137683188657354
25
90
1.134514097114709
26
6
1.129323414459236
27
95
1.1257077003298683
28
212
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
106
1.1157592064833615
29
116
1.1104670291831271
30
77
1.104498854767949
31
96
1.102226814582667
32
126
1.1009505981438485
33
2
1.1006488360543254
34
7
1.0888354569533085
35
15
1.0847464620557206
36
1
1.0722223069313288
37
111
1.0666225528636941
38
102
1.0571992729549153
39
97
1.0560595028461823
40
14
1.0525185819798826
41
78
1.0318894744324287
42
16
1.0256529968680221
43
5
1.0006665852244039
44
120
1.0002610773517568
45
c. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 3. Nomor
COF
Ranking
17
7.309802907404587
1
107
1.9848676026106438
2
117
1.7404750930752182
3
3
1.689841001265925
4
98
1.5881376521276445
5
116
1.569705883497454
6
86
1.5319948673526878
7
126
1.469722852519271
8
109
1.4322065390159109
9
77
1.3668102826473383
10
213
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
89
1.3234036996906258
11
13
1.3066425207959471
12
97
1.2708089475718127
13
103
1.2622019817146484
14
20
1.2573604692026623
15
10
1.2418291881854635
16
121
1.2348898707764473
17
6
1.2340279274293589
18
12
1.2043114546989153
19
1
1.1938993531374615
20
88
1.193633338018489
21
105
1.1890375061316574
22
91
1.1749902914582309
23
122
1.1741301993787636
24
111
1.1631464475530173
25
7
1.1508800402875854
26
2
1.1487936976123898
27
96
1.1455881733665012
28
14
1.1073228749658985
29
83
1.085373217800999
30
114
1.0821396235254102
31
15
1.0741704387076556
32
125
1.0555065190472088
33
19
1.0522935283315267
34
90
1.0486155706185756
35
93
1.0482114694817222
36
85
1.0429145645719726
37
102
1.0352952455335092
38
16
1.0265080796903636
39
113
1.0186537317044069
40
214
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
100
1.012884392174831
41
95
1.0036882288615598
42
d. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 4. Nomor
COF
Ranking
88
3.2950877964759737
1
94
2.6223576199246152
2
122
2.050379923936976
3
107
1.9731571041930507
4
98
1.8433266630440912
5
89
1.612266109013155
6
83
1.4618222559542327
7
13
1.4206557059183083
8
76
1.3523499231686207
9
87
1.3450901753017122
10
109
1.3095540306838944
11
86
1.2749068034773832
12
79
1.2636812352273668
13
15
1.2503167256314076
14
6
1.231894003057682
15
111
1.2237889889417684
16
103
1.2150227580838957
17
17
1.195640947617259
18
92
1.1945005315513666
19
121
1.1818290139093748
20
105
1.174620711945092
21
7
1.1740801700071366
22
1
1.1661388384378373
23
81
1.1634080236315516
24
215
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
1.162325624212362
25
12
1.157872216380322
26
97
1.153192318332816
27
116
1.1352727450672955
28
20
1.126892858036701
29
14
1.1167842710847327
30
102
1.1035103437457017
31
104
1.0858555062883675
32
114
1.0789174908915027
33
2
1.0666391284396923
34
77
1.0630940743408785
35
75
1.0377368969536407
36
19
1.0107906486403586
37
3
1.009901492848278
38
118
1.0009509308366993
39
96
1.0005279548967032
40
3. Data Akademik Mahasiswa Teknik Informatika Angkatan 2007-2008
Nomor
ips1
ips2
ips3
ips4
final
1
2,06
2,32
2,91
3,00
2,71
2
2,72
2,50
2,96
2,38
2,71
3
3,33
3,48
3,78
3,48
2,78
4
2,39
3,00
2,43
2,82
2,86
5
2,11
2,71
2,43
2,45
2,95
6
3,00
2,96
2,61
3,29
2,70
7
3,72
3,56
3,43
3,67
3,15
8
3,44
3,04
2,88
3,48
2,85
9
2,17
2,70
3,09
3,63
2,88
10
3,89
3,75
3,00
3,62
3,08
216
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
2,89
3,68
2,88
3,76
2,92
12
3,11
3,08
2,78
3,48
2,73
13
2,00
2,00
2,29
3,00
3,08
14
3,06
2,50
2,57
2,78
2,73
15
1,67
2,24
2,52
2,16
2,72
16
3,89
3,63
3,57
3,62
2,99
17
2,61
0,32
0,69
2,85
2,72
18
2,83
2,55
3,09
3,17
2,79
19
3,72
3,74
2,87
3,52
2,77
20
3,72
3,42
3,65
3,71
2,85
21
3,72
3,48
3,36
3,65
2,60
22
2,89
3,21
3,33
3,36
2,20
23
2,56
2,77
2,52
3,13
2,08
24
3,28
2,75
2,90
3,00
2,56
25
1,89
2,20
2,21
1,95
2,36
26
1,44
2,42
2,53
1,96
2,96
27
4,00
3,52
3,43
3,70
2,32
28
1,72
1,65
1,53
1,68
1,12
29
2,89
3,18
3,04
2,95
2,28
30
2,94
3,27
2,96
2,81
2,16
31
2,94
2,59
1,55
2,35
2,12
32
2,44
2,63
2,00
2,67
2,04
33
1,72
2,65
2,43
2,24
2,36
34
2,80
2,91
2,80
3,33
2,08
35
2,90
2,50
3,10
2,75
2,32
36
1,40
1,64
1,82
1,07
2,40
37
2,65
2,40
2,17
2,75
1,84
38
2,65
3,23
2,79
3,30
2,00
39
3,35
2,91
2,45
0,83
2,44
40
2,70
2,86
2,32
2,70
2,00
217
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
2,55
2,68
3,15
2,64
1,96
42
3,10
3,08
2,95
3,05
2,64
43
2,45
2,40
2,44
2,26
2,68
44
2,55
2,41
2,47
2,68
2,24
45
2,75
2,59
2,79
3,32
2,52
46
2,25
1,55
1,31
0,31
2,76
47
2,70
2,36
2,68
0,05
2,40
48
3,15
3,00
3,24
2,33
2,44
49
2,85
2,68
3,37
3,09
2,08
50
2,35
2,40
0,59
2,23
2,56
51
2,05
1,50
2,40
2,00
2,12
52
2,85
2,64
2,84
2,75
2,16
53
2,35
2,20
2,94
2,09
2,00
54
3,15
3,20
2,72
3,05
2,64
55
3,10
3,32
3,72
3,42
2,24
56
2,70
3,44
3,39
2,33
2,36
57
2,05
1,55
2,33
2,70
2,08
58
2,30
2,61
2,50
2,50
1,60
59
2,80
2,88
2,39
2,44
2,36
60
2,15
2,26
2,33
2,06
2,04
61
2,90
2,28
2,39
1,93
2,36
62
3,25
3,16
3,11
2,56
2,36
63
3,45
3,60
3,39
3,50
2,52
64
2,30
3,13
3,00
3,05
2,12
65
2,30
2,39
2,62
2,94
2,12
66
2,85
3,28
3,50
3,63
2,56
67
2,20
2,30
1,28
2,04
68
1,55
1,00
1,72
2,00
69
1,65
1,67
2,07
1,85
1,96
70
3,20
3,04
2,94
3,14
2,64
218
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
3,10
2,60
2,89
2,72
2,40
72
2,05
1,28
1,73
0,82
2,96
73
2,65
1,87
2,00
1,56
2,36
74
2,35
1,04
0,19
0,92
2,56
75
2,40
2,65
2,57
3,24
2,95
76
0,85
2,29
2,21
2,00
2,85
77
2,65
2,75
2,11
2,74
2,74
78
2,85
3,27
2,91
2,73
2,93
79
1,85
1,71
2,40
2,06
2,98
80
2,95
2,91
3,16
3,25
2,80
81
3,35
2,48
3,00
2,14
3,00
82
2,65
2,14
2,45
2,64
2,92
83
3,35
3,09
3,42
3,25
3,11
84
2,60
3,00
2,90
3,10
2,83
85
3,50
2,92
3,27
3,04
2,85
86
3,10
2,80
3,68
3,57
3,22
87
2,25
2,05
2,29
1,83
2,80
88
2,65
2,77
2,14
0,94
2,89
89
3,65
3,74
3,70
3,90
2,97
90
3,25
3,35
2,67
3,25
2,86
91
3,40
3,00
2,73
2,47
2,92
92
2,60
1,73
3,00
2,10
2,98
93
2,50
2,82
3,35
3,57
2,87
94
1,90
1,35
2,46
1,20
2,77
95
2,45
3,00
3,25
3,70
2,98
96
2,20
1,90
2,17
2,30
2,77
97
2,30
3,00
3,24
3,00
2,72
98
3,55
3,32
3,19
3,15
3,22
99
2,45
2,55
2,44
3,15
2,81
100
3,05
3,04
3,26
3,58
2,86
219
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
101
2,60
2,64
2,58
3,33
2,87
102
3,15
3,20
2,89
3,37
2,98
103
3,20
3,52
3,37
3,52
3,19
104
2,80
3,00
3,14
3,04
2,94
105
2,60
2,73
3,05
3,38
3,06
106
2,05
1,95
2,63
2,35
2,83
107
3,30
3,92
3,76
3,78
3,33
108
2,70
2,32
3,00
2,78
2,85
109
2,85
1,73
2,56
2,76
3,08
110
2,40
2,75
3,05
3,32
2,89
111
3,45
3,36
2,95
2,82
3,05
112
2,60
2,55
3,00
2,96
2,87
113
2,65
2,14
2,22
3,11
2,78
114
2,75
3,00
3,21
3,53
2,75
115
2,75
3,36
3,33
3,13
2,92
116
2,40
2,20
2,06
2,22
2,73
117
2,60
1,70
2,00
2,76
2,89
118
3,45
3,24
3,48
3,57
3,06
119
2,65
2,95
2,48
3,15
2,83
120
2,85
2,82
3,14
3,42
2,81
121
2,55
2,74
2,94
2,53
2,69
122
2,30
2,43
2,28
1,47
3,05
123
3,35
3,04
3,00
3,20
2,83
124
1,45
0,44
2,47
2,65
2,90
125
3,30
3,16
3,22
3,25
2,77
126
3,20
3,40
3,72
3,10
2,81
a. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 1.
Nomor
COF
Ranking
220
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
76
3.0798077542145634
1
28
2.8898092719297797
2
27
2.12731649177769
3
26
1.9894370677458832
4
124
1.9148474262930586
5
36
1.884458205555566
6
10
1.7824444231814986
7
68
1.7573669106620875
8
58
1.7361040604901392
9
16
1.7133577786654883
10
69
1.6696363554249116
11
7
1.5612318428738736
12
79
1.5244745911808977
13
107
1.4906711587145087
14
15
1.4885301112758997
15
13
1.463764133122122
16
98
1.4602917036212275
17
37
1.459269385336849
18
33
1.407107844696727
19
21
1.3937244306190402
20
86
1.3550729780437172
21
19
1.3416399937124197
22
20
1.3411502381010787
23
57
1.3152856441105387
24
51
1.2943967965000787
25
41
1.2865125566455493
26
89
1.278482181136212
27
72
1.27340648085432
28
103
1.2679168111658894
29
25
1.2675370762449507
30
221
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
60
1.2580590313523756
31
67
1.2477469703738555
32
94
1.2389387565950198
33
53
1.2214690775921644
34
38
1.2150261260461
35
40
1.197214841235595
36
5
1.1925286870439753
37
55
1.191561629570237
38
31
1.1775079800126975
39
122
1.1762167284257417
40
62
1.1689577887707532
41
109
1.1619905581720207
42
32
1.158260196279234
43
39
1.1444111639712469
44
49
1.1412252155488258
45
83
1.1358657330377773
46
106
1.1337965053668417
47
64
1.1335235186060533
48
65
1.1335235186060533
49
118
1.1331697502615123
50
30
1.1322643652070647
51
111
1.1257729789975797
52
23
1.123170680959603
53
34
1.118506936352718
54
1
1.1183619611883437
55
63
1.1161264989826183
56
9
1.098512212288229
57
52
1.0837878577096867
58
48
1.069086442888613
59
22
1.0667743682902142
60
222
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
105
1.0608561072239988
61
71
1.0591896864016275
62
44
1.0533438096284191
63
50
1.0440680369947544
64
74
1.0440680369947544
65
96
1.040920599214763
66
102
1.0361469437839939
67
85
1.0225183716506918
68
24
1.016767303800427
69
73
1.0100548004816337
70
87
1.0080392744167386
71
47
1.0042628036235652
72
35
1.0014324310873952
73
b. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 2.
Nomor
COF
Ranking
17
2.9569790430383427
1
124
2.810812691695745
2
28
2.649018251543455
3
107
2.3492021121615982
4
68
2.013951826302044
5
74
1.8231170539167858
6
58
1.7062548017855057
7
72
1.6922731225078937
8
10
1.6524120379020568
9
51
1.5263534708446553
10
109
1.5263133883361317
11
94
1.5217588616809354
12
89
1.5181425145513188
13
223
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
1.5131624902597853
14
57
1.4816208687499928
15
69
1.458115730368578
16
103
1.4516686020316851
17
19
1.4480458345841307
18
27
1.436264355474825
19
86
1.4307151349933966
20
7
1.4303637760626557
21
79
1.425126619928457
22
92
1.3969057259441204
23
37
1.3899390507351665
24
11
1.3757227672632126
25
30
1.3695544176228138
26
13
1.3575155261238268
27
46
1.3482637305454348
28
63
1.3432314275651163
29
16
1.3348283602825388
30
117
1.3335323553169856
31
98
1.3237611358865229
32
55
1.3180971038682252
33
56
1.3140928674153527
34
36
1.3042502362672845
35
53
1.3004631507404636
36
64
1.2906581309845073
37
41
1.2832819452094208
38
22
1.2799440902358754
39
40
1.2428885920228276
40
122
1.236138729635007
41
60
1.210069357351777
42
67
1.1880221359670389
43
224
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
1.1745790977640773
44
29
1.1656044214670356
45
34
1.1648707457433571
46
106
1.1562776231083867
47
73
1.1449399003747016
48
83
1.1418539899816014
49
49
1.1297656683455988
50
65
1.1273342564313664
51
82
1.1257779581518377
52
21
1.1227607435295006
53
26
1.121515632936774
54
23
1.1195303392614053
55
81
1.1136477056309544
56
96
1.1129062249424209
57
105
1.1116491735129939
58
62
1.1082841468297568
59
87
1.1039840370473823
60
111
1.0949210561578466
61
31
1.0920244701773787
62
44
1.0677221108461672
63
3
1.0645494798735426
64
118
1.0616917025710004
65
25
1.0596665908334924
66
52
1.0503052101590526
67
61
1.0496046316476344
68
59
1.0477650095642714
69
39
1.042151981468439
70
35
1.0298730324580994
71
33
1.0284984797739973
72
113
1.0232667419028694
73
225
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
1.0211221228133418
74
20
1.020133059144824
75
66
1.0127325367221862
76
24
1.009390994979568
77
48
1.007490522802807
78
47
1.002460355527959
79
c. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 3. Nomor
COF
Ranking
74
3.6098950813456008
1
50
2.895108826748985
2
17
2.7474898678841693
3
28
2.7187201683681868
4
107
2.14748870463847
5
67
1.917897914953517
6
46
1.9100416511580112
7
55
1.8398324109500575
8
86
1.7941031751573162
9
58
1.7315061355749775
10
68
1.6545390485901423
11
31
1.632239589279375
12
72
1.6203850449923065
13
49
1.608635724641169
14
3
1.5852801867222845
15
89
1.5203879617832412
16
41
1.5154970584059215
17
126
1.4533599436806344
18
37
1.4291026377810183
19
36
1.3997058402085367
20
22
1.387582524523236
21
226
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
69
1.3810341537497743
22
32
1.3790945242488513
23
117
1.3692040435623558
24
13
1.348895739659388
25
20
1.343360516122804
26
27
1.3182467970128182
27
16
1.314194847584169
28
103
1.314084146729988
29
98
1.3072440681958706
30
53
1.3034410931057692
31
7
1.2890924603005889
32
122
1.2810246762285404
33
40
1.2645344894307076
34
88
1.2553958475044185
35
38
1.2467547051015189
36
83
1.2355466387319514
37
66
1.2313802524400166
38
56
1.2291784746888592
39
118
1.2217049954847745
40
60
1.2014876205804417
41
73
1.1953562313701027
42
64
1.1886414251457704
43
30
1.1833125583443065
44
23
1.1761398935556802
45
109
1.1690119602741837
46
34
1.1670846257635559
47
57
1.1594307571655007
48
29
1.1401306102982907
49
77
1.1301922150028958
50
52
1.1297576772934397
51
227
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
1.1237495775086843
52
65
1.117971210913309
53
63
1.1148618880827723
54
76
1.1134582374682127
55
62
1.1080411558454546
56
35
1.1067287012248739
57
79
1.1050725629193865
58
25
1.0984334101215294
59
96
1.098338975607813
60
116
1.09587367955084
61
10
1.0865673523181958
62
48
1.0841160124411433
63
71
1.0635508827645521
64
113
1.0634836131885232
65
44
1.0586195961862344
66
21
1.0529749203008933
67
45
1.052411974814464
68
111
1.0490565623367
69
47
1.0431565422367386
70
39
1.0330519057416108
71
33
1.0311571416855294
72
105
1.0303859150151644
73
5
1.0268282516373413
74
24
1.021570793442945
75
59
1.0155161368851378
76
61
1.0155161368851378
77
54
1.0036847891616594
78
87
1.0028098086691961
79
228
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
d. Tabel hasil deteksi outlier untuk nilai COF > 1 pada semester 4. Nomor
COF
Ranking
68
2.7390195706755187
1
67
2.7255598567276156
2
47
2.616900025776196
3
46
2.3669455176141687
4
28
2.2194548539730428
5
107
1.9210890628463315
6
72
1.9201808776659055
7
88
1.7697182971917773
8
39
1.7286602667217925
9
58
1.6683113402871936
10
27
1.6507221644058203
11
74
1.6481061217651916
12
89
1.6362631574143693
13
38
1.6282490467162052
14
122
1.57902430520144
15
34
1.5172363773894924
16
36
1.5047490689007463
17
94
1.4877389878659257
18
55
1.4349691121488792
19
37
1.3976641716783564
20
22
1.387271437975527
21
7
1.3693284306738942
22
86
1.365771237725453
23
98
1.3509168695651559
24
23
1.3505119959503091
25
69
1.343317599191091
26
73
1.321927571411158
27
49
1.3024795099659807
28
229
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
1.2751472048813643
29
53
1.2750358257528682
30
79
1.2699148268285385
31
103
1.2649918429548153
32
92
1.2601920289576585
33
26
1.2566860198299405
34
81
1.2506944252064771
35
60
1.2407632340880266
36
66
1.2383819899871868
37
21
1.2362109716208574
38
64
1.2205960337933304
39
109
1.220128268253438
40
95
1.1979691311379388
41
41
1.1965874781440344
42
65
1.1920432814657023
43
10
1.1839754227750534
44
76
1.1788503383240072
45
51
1.1766701459876412
46
111
1.1739172137216753
47
20
1.1667455188646563
48
87
1.1579118007381726
49
40
1.153280104427295
50
61
1.1515526553910314
51
13
1.145688954872342
52
5
1.1361913240857406
53
25
1.1319421775018588
54
63
1.1250925415156225
55
30
1.1143777360622331
56
31
1.1117918155862547
57
32
1.10110475893607
58
230
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
83
1.0977888609995998
59
91
1.0968883324274241
60
118
1.0907771566499802
61
57
1.088218643023109
62
29
1.085832730802608
63
106
1.0693622513092376
64
82
1.0686915111504756
65
16
1.0666793006190436
66
52
1.0627157624898225
67
78
1.05850924556727
68
124
1.0463371781575816
69
45
1.0384388647303178
70
35
1.030685711473849
71
117
1.0243432035561146
72
96
1.0218118763196171
73
15
1.0206717948126507
74
71
1.012951567097062
75
9
1.008489455375546
76
44
1.0017496716179919
77
24
1.0014945312275971
78
231
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
232