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