PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Ukuran: px
Mulai penontonan dengan halaman:

Download "PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI"

Transkripsi

1 DETEKSI OUTLIER MENGGUNAKAN ALGORITMA BLOCK-BASED NESTED-LOOP STUDI KASUS : DATA AKADEMIK MAHASISWA PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS SANATA DHARMA SKRIPSI Diajukan untuk Memenuhi salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika Disusun Oleh : Fiona Endah Kwa NIM : PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013 i

2 OUTLIER DETECTION USING BLOCK-BASED NESTED-LOOP ALGORITHM CASE STUDY : STUDENT ACADEMIC DATA OF INFORMATICS ENGINEERING STUDY PROGRAM, SANATA DHARMA UNIVERSITY A THESIS Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree In Informatics Engineering Study Program By : Fiona Endah Kwa NIM : INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2013 ii

3 iii

4 iv

5 HALAMAN PERSEMBAHAN I can do all things through Christ who strengthens me. (Philippians 4:13) ~ IF IT S EASY, IT WON T BE AMAZING~ Karya saya ini saya persembahkan teristimewa untuk : Keluarga, Dosen & Sahabat Terima kasih untuk kasih sayang, doa, motivasi, semangat serta bantuan yang kalian berikan baik di saat susah maupun senang. v

6 vi

7 ABSTRAK Penambangan data adalah proses mengekstrak informasi atau pengetahuan dari data dalam jumlah yang besar. Secara umum, penambangan data dapat diklasifikasikan dalam empat kategori yaitu deteksi dependensi, identifikasi kelas, deskripsi kelas dan deteksi outlier. Tiga kategori pertama berkaitan dengan pola yang dimiliki oleh banyak objek, atau pada objek dengan persentase yang besar dalam dataset. Sebaliknya, kategori keempat berfokus pada objek dengan persentase yang kecil, yang umumnya sering diabaikan atau dihilangkan karena dianggap noise (Knorr & Ng, 1998). Pada tugas akhir ini algoritma Block-based Nested-Loop digunakan untuk deteksi outlier pada data numerik. Data yang digunakan adalah data akademik mahasiswa Universitas Sanata Dharma Prodi Teknik Informatika Angkatan 2007 dan Data tersebut terdiri dari data nilai tes masuk mahasiswa yang diterima melalui jalur tes tertulis maupun jalur prestasi dan nilai indeks prestasi dari semester satu sampai empat. Hasil penelitian ini yaitu sebuah perangkat lunak yang dapat digunakan sebagai alat bantu untuk mendeteksi outlier menggunakan algoritma Block-based Nested-Loop. Pengujian terhadap sistem ini terdiri dari pengujian blackbox, pengujian review dan validitas oleh pengguna, pengujian efek perubahan nilai atribut penambangan data dan pengujian waktu deteksi outlier berdasarkan jumlah blok. Berdasarkan hasil pengujian blackbox yang dilakukan, disimpulkan bahwa sistem pendeteksi outlier ini dapat menghasilkan keluaran yang sesuai dengan yang diharapkan pengguna dan mampu menangani error terhadap fungsi fungsi yang tidak berjalan sesuai aturan. Berdasarkan hasil pengujian review dan validitas oleh pengguna disimpulkan bahwa sistem dapat menghasilkan data yang dinyatakan sebagai outlier. Berdasarkan hasil pengujian efek perubahan nilai atribut penambangan data disimpulkan bahwa pemilihan nilai atribut M dan D mempengaruhi hasil deteksi outlier. Dari hasil pengujian waktu deteksi outlier berdasarkan jumlah blok disimpulkan bahwa penggunaan blok-blok data dapat mempercepat proses deteksi outlier. Kata kunci : Penambangan data, Block-based Nested-Loop, deteksi outlier vii

8 ABSTRACT Data mining is the process of extracting information or knowledge from large amounts of data. In general, data mining can be classified into four categories: dependency detection, identification of classes, class descriptions and outlier detection. The first three categories correspond to the pattern that applied to many objects, or to a large percentage of objects in the dataset. The fourth category, in contrast focuses on a very small percentage of data objects, which are often ignored or discarded as noise (Knorr & Ng, 1998). In this thesis, the Block-based Nested-Loop algorithm was used to perform outlier detections on numerical data. The data used in this thesis are academic data of students batch 2007 and 2008 of Informatics Engineering Study Program of Sanata Dharma University. The data consists of student admission data from regular admission track as well as students from outstanding track, and student academic data (Grade Point Average) of those students from first semester until fourth semester. The results of this research is a software that can be used as a tool to detect outliers using Block-based Nested-Loop algorithm. The testing of this system consists of blackbox testing, validation testing by users, investigation of the effects of attribute changes of M and D, and investigation of time needed to detect outliers based on the number of blocks. M is the maximum number of objects within the D-neighbourhood of an outlier, whereas D is the maximum distance between any pair of objects that define as a neighbor. Based on blackbox testing, it can be concluded that the outlier detection s system could produce output as expected and handle any incorrect functions. Based on user s validation, it can be concluded that the results of the system are confirmed as outliers. Based on the investigation of the effects of attribute changes, it can be concluded that the value of M dan D influence the number of generated outliers. Based on investigation of time needed to detect outliers, it can be concluded that data blocks usage could speed up the process of outlier detection. Keywords : data mining, Block-based Nested-Loop, outlier detection viii

9 ix

10 KATA PENGANTAR Puji syukur kepada Tuhan Yesus Kristus, atas segala berkat dan karunia sehingga penulis dapat menyelesaikan skripsi ini dengan judul Deteksi Outlier Menggunakan Algoritma Block-based Nested-Loop Studi Kasus : Data Akademik Mahasiswa Program Studi Teknik Informatika Universitas Sanata Dharma. Penelitian ini berjalan dengan baik dari awal hingga akhir karena adanya dukungan doa, semangat dan motivasi yang diberikan oleh banyak pihak. Untuk itu, penulis ingin mengucapkan terima kasih kepada: 1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas Sains dan Teknologi. 2. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Ketua Program Studi Teknik Informatika. 3. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku Dosen Pembimbing yang telah dengan sabar membimbing dan memberikan motivasi. 4. Ibu Ridowati Gunawan, S.Kom., M.T. dan Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku dosen penguji atas kritik dan saran yang telah diberikan. 5. Bapak Iwan Binanto, M.Cs. selaku Dosen Pembimbing Akademik. 6. Seluruh Dosen yang telah mendidik dan memberikan ilmu pengetahuan selama penulis menjalani studi di Universitas Sanata Dharma Yogyakarta. 7. Pihak sekretariat dan laboran yang turut membantu penulis menyelesaikan skripsi ini. x

11 8. Kedua orang tua terkasih, Papa Alex Kwa, BE, SE dan Mama Selvina Yarangga untuk setiap doa, kasih sayang, perhatian serta dukungan yang selalu diberikan kepada penulis. 9. Semua saudara tersayang, Kak Victor, Kak Sherli, Kak Febby, Kak Vani dan Kak Jenie. Terima kasih sudah memberikan motivasi dan berbagai masukan yang sangat membantu penulis dalam menyelesaikan skripsi ini. 10. Para sahabat tersayang, Nidya, Friska, Margaretha, Cristy, Phebe, Mayanti dan Rico. Terima kasih untuk persahabatan yang indah dan doa serta dukungan kalian bagi penulis. 11. Kedua rekan kerja skripsi ini, Setyo dan Tomy. Terima kasih telah saling berbagi ilmu serta suka dan duka dari awal hingga akhir penyelesaian skripsi ini. 12. Seluruh teman-teman kuliah TI 2009, terima kasih untuk kebersamaan kita selama menjalani masa perkuliahan. 13. Teman-teman Tim Usher GKI Gejayan, terima kasih karena selalu mendukung perjuangan penulis lewat doa setiap minggunya. 14. Pihak-pihak lain yang turut membantu penulis dalam menyelesaikan tugas akhir ini, yang tidak dapat disebutkan satu per satu. Penelitian skripsi ini masih memiliki banyak kekurangan. Untuk itu, penulis sangat membutuhkan saran dan kritik untuk perbaikan di masa yang akan datang. Semoga penelitian skripsi ini dapat membawa manfaat bagi semua pihak. Yogyakarta, 23 Agustus 2013 Fiona Endah Kwa xi

12 DAFTAR ISI HALAMAN JUDUL...i HALAMAN JUDUL (INGGRIS)...ii HALAMAN PERSETUJUAN..iii HALAMAN PENGESAHAN iv HALAMAN PERSEMBAHAN..v PERNYATAAN KEASLIAN KARYA vi ABSTRAK....vii ABSTRACT. viii LEMBAR PERNYATAAN PERSETUJUAN..ix KATA PENGANTAR x DAFTAR ISI.xii DAFTAR TABEL...xvii DAFTAR GAMBAR...xix Bab PENDAHULUAN Latar Belakang Rumusan Masalah Tujuan Penelitian Batasan Masalah Manfaat Penelitian Sistematika Penulisan Bab 1 Pendahuluan Bab 2 Landasan Teori Bab 3 Metode Penelitian Bab 4 Analisis dan Perancangan Sistem Bab 5 Implementasi Sistem Bab 6 Pengujian dan Analisis Hasil Pengujian Bab 7 Kesimpulan dan Saran Daftar Pustaka... 8 Bab LANDASAN TEORI Knowledge Discovery in Databases (KDD)... 9 xii

13 2.2 Outlier Detection Pengertian Outlier Penyebab Outlier Manfaat Deteksi Outlier Metode Deteksi Outlier Distance-Based Outlier Detection Algoritma Block-based Nested-Loop Bab 3.19 METODE PENELITIAN Data Pengolahan Data Pemrosesan Awal Data Seleksi Data Transformasi Data Penambangan Data Evaluasi Pola yang Ditemukan Presentasi Pengetahuan Contoh Implementasi Algoritma Block-based Nested-Loop Bab 4.34 ANALISIS DAN PERANCANGAN SISTEM Identifikasi Sistem Input Sistem, Proses Sistem dan Output Sistem Input Sistem Proses Sistem Output Sistem Perancangan Struktur Data Diagram Use Case Perancangan Sistem Diagram Konteks Diagram Aktivitas Diagram Kelas Analisis Diagram Sequence Diagram Kelas Desain Detail Algoritma Tiap Method Pada Tiap Kelas xiii

14 Detail Algoritma Pada Method di Kelas HalamanUtama Detail Algoritma Pada Method di Kelas HalamanPilihDB Detail Algoritma Pada Method di Kelas HalamanPilihTabel Detail Algoritma Pada Method di Kelas DistribusiAtribut Detail Algoritma Pada Method di Kelas Graph Detail Algoritma Pada Method di Kelas DatabaseConnection Detail Algoritma Pada Method di Kelas Database Detail Algoritma Pada Method di Kelas CheckBoxTableModel Perancangan Antarmuka Halaman Awal Halaman Utama (Preprocess) Halaman Utama (Deteksi Outlier) Halaman Distribusi Atribut Halaman Pilih DB Halaman Pilih Tabel Halaman Bantuan Halaman Konfirmasi Keluar...89 BAB IMPLEMENTASI SISTEM Implementasi Antarmuka Implementasi Halaman Awal Implementasi Halaman Utama Implementasi Halaman Pilih DB Implementasi Halaman Pilih Tabel Implementasi Halaman Distribusi Atribut Implementasi Halaman Bantuan Implementasi Halaman Konfirmasi Keluar Implementasi Pengecekan Masukan Implementasi Halaman Open File Implementasi Struktur Data Implementasi Kelas Vertex Implementasi Kelas Graph Implementasi Kelas Block xiv

15 5.3 Implementasi Kelas Implementasi Kelas HalamanUtama Implementasi Kelas HalamanPilihDB Implementasi Kelas HalamanPilihTabel Implementasi Kelas HalamanDistribusiAtribut Implementasi Kelas SeleksiAtribut Implementasi Kelas DatabaseConnection Implementasi Kelas Database Implementasi Kelas CheckBoxTableModel Implementasi Kelas BarChart Implementasi Kelas GraphController BAB PENGUJIAN DAN ANALISIS HASIL PENGUJIAN Fase Implementasi Pengujian Rencana Pengujian Pengujian Blackbox Pengujian DatabaseConnection Pengujian HalamanUtama Pengujian HalamanDistribusiAtribut Pengujian HalamanPilihTabel Kesimpulan Hasil Pengujian Blackbox Pengujian Review dan Validitas oleh Pengguna Perbandingan Perhitungan Manual dan Sistem Hasil Deteksi dari Sistem untuk Pengujian Review dan Validitas oleh Pengguna Kesimpulan Pengujian Review dan Validitas oleh Pengguna Pengujian Efek Perubahan Nilai Atribut Penambangan Data Kesimpulan Pengujian Efek Perubahan Nilai Atribut Penambangan Data Pengujian Perbandingan Waktu Deteksi Outlier Berdasarkan Jumlah Blok xv

16 Kesimpulan Pengujian Perbandingan Waktu Deteksi Outlier Berdasarkan Jumlah Blok Kelebihan dan Kekurangan Sistem Kelebihan Sistem Kekurangan Sistem BAB KESIMPULAN DAN SARAN Kesimpulan Saran DAFTAR PUSTAKA.161 LAMPIRAN 162 Lampiran 1 : Tabel Ringkasan Use Case Lampiran 2 : Skenario Use Case Lampiran 3 : Diagram Aktivitas Lampiran 4 : Tabel Diagram Kelas Analisis Lampiran 5 : Diagram Sequence Lampiran 6 : Listing program xvi

17 DAFTAR TABEL Tabel 3.1 Data Mentah dibagi ke dalam 4 Blok Tabel 4.1 Tabel Nama Atribut pada Data Akademik Mahasiswa 37 Tabel 4.2 Tabel Kelas HalamanUtama. 56 Tabel 4.3 Tabel Kelas HalamanPilihDB Tabel 4.4 Tabel Kelas HalamanPilihTabel Tabel 4.5 Tabel Kelas DistribusiAtribut Tabel 4.6 Tabel Kelas Graph 71 Tabel 4.7 Tabel Kelas DatabaseConnection. 78 Tabel 4.8 Tabel Kelas Database 80 Tabel 4.9 Tabel Kelas CheckBoxTableModel.. 81 Tabel 4.10 Tabel Kelas BarChart..82 Tabel 5.1 Tabel Nama Kelas yang Diimplementasikan dalam Sistem. 90 Tabel 6.1 Tabel Rencana Pengujian..137 Tabel 6.2 Tabel Pengujian Kelas DatabaseConnection Tabel 6.3 Tabel Pengujian Kelas HalamanUtama 138 Tabel 6.4 Tabel Pengujian Kelas HalamanDistribusiAtribut Tabel 6.5 Tabel Pengujian Kelas HalamanPilihDB Tabel 6.6 Tabel Pengujian Kelas HalamanPilihTabel Tabel 6.7 Tabel Perbandingan Hasil Deteksi Outlier Mahasiswa Angkatan 2007 Jalur Tes Tertulis.143 xvii

18 Tabel 6.8 Tabel Nilai per Atribut Hasil Outlier Mahasiswa Angkatan 2007 Jalur Tes Tertulis. 144 Tabel 6.9 Tabel Jumlah Outlier Berdasarkan Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai M dan D yang Berubah-ubah (54 Mahasiswa) Tabel 6.10 Tabel Jumlah Outlier Berdasarkan Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai M dan D yang Berubah-ubah (72 mahasiswa).152 Tabel 6.11 Tabel Jumlah Outlier Berdasarkan Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Tes dan Jalur Prestasi dengan Nilai M dan D yang Berubah-ubah (126 Mahasiswa) 153 Tabel 6.12 Tabel Perbadingan Lama Deteksi Outlier Berdasarkan Jumlah Blok pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Tes dan Jalur Prestasi 156 xviii

19 DAFTAR GAMBAR Gambar 2.1 Langkah-langkah dalam KDD (Fayyad et al., 1996 ) Gambar 3.1 Gudang data data_mahasiswa 20 Gambar 3.2 Data mentah untuk implementasi algoritma Block-based Nested- Loop 25 Gambar 3.3 Pengecekan tetangga pada first array antara blok 1 dan blok Gambar 3.4 Hasil akhir pengecekan blok 1 dan blok 1 dalam first array 28 Gambar 3.5 Pencarian tetangga dari data first array pada second array.. 28 Gambar 3.6 Hasil akhir pengecekan blok 1 (first array) dan blok 2 (second array).. 29 Gambar 3.7 Pencarian tetangga dari data first array pada second array.. 30 Gambar 3.8 Hasil akhir pengecekan blok 1 (first array) dan blok 3 (second array).. 31 Gambar 3.9 Hasil akhir pengecekan blok 1 (first array) dan blok 4 (second array).. 32 Gambar 4.1 Proses Umum Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested-Loop Gambar 4.2 Diagram Use Case. 45 Gambar 4.3 Diagram Konteks.. 46 Gambar 4.4 Diagram Kelas Analisis 47 Gambar 4.5 Diagram Kelas Desain.. 49 Gambar 4.6 Tampilan Antarmuka Halaman Awal Gambar 4.7 Tampilan Antarmuka Halaman Utama (Tab Preprocess) 84 xix

20 Gambar 4.8 Tampilan Antarmuka Halaman Utama (Tab Deteksi Outlier)..85 Gambar 4.9 Tampilan Antarmuka Halaman Distribusi Atribut 86 Gambar 4.10 Tampilan Antarmuka Halaman Pilih DB 87 Gambar 4.11 Tampilan Antarmuka Halaman Pilih Tabel 88 Gambar 4.12 Tampilan Antarmuka Halaman Bantuan. 89 Gambar 4.13 Tampilan Antarmuka Halaman Konfirmasi Keluar 89 Gambar 5.1 Antarmuka Halaman Awal 91 Gambar 5.2 Antarmuka Halaman Utama, tab Preprocess 92 Gambar 5.3 Antarmuka Halaman Utama, tab Preprocess(File.xls atau.csv)..93 Gambar 5.4 Antarmuka Halaman Utama, tab Preprocess (Seleksi atribut). 94 Gambar 5.5 Antarmuka Halaman Utama, tab Deteksi Outlier Gambar 5.6 Antarmuka Halaman Utama, tab Deteksi Outlier (hasil deteksi outlier) 95 Gambar 5.7 Dialog Untuk Menyimpan Hasil Deteksi Outlier. 96 Gambar 5.8 Pesan Sukses Menyimpan File Hasil Deteksi Outlier.. 96 Gambar 5.9 Antarmuka Halaman Pilih DB.. 97 Gambar 5.10 Pesan Sukses Melakukan Koneksi Ke Basis data Gambar 5.11 Antarmuka Halaman Pilih Tabel.98 Gambar 5.12 Antarmuka Halaman Utama, tab Preprocess (input tabel dari basis data) 98 Gambar 5.13 Antarmuka Halaman Distribusi Atribut.. 99 Gambar 5.14 Antarmuka Grafik Distribusi Atribut.. 99 Gambar 5.15 Antarmuka Halaman Bantuan. 100 xx

21 Gambar 5.16 Antarmuka Halaman Konfirmasi Keluar 101 Gambar 5.17 Pesan Kesalahan (1) 101 Gambar 5.18 Pesan Kesalahan (2) 102 Gambar 5.19 Pesan Kesalahan (3) Gambar 5.20 Pesan Kesalahan (4) 102 Gambar 5.21 Pesan Kesalahan (5) 103 Gambar 5.22 Pesan Kesalahan (6) 103 Gambar 5.23 Pesan Kesalahan (7) 103 Gambar 5.24 Pesan Kesalahan (8) 104 Gambar 5.25 Antarmuka Open File Gambar 6.1a Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai M=4 dan D Berubah-ubah. 151 Gambar 6.1b Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai M=5 dan D Berubah-ubah. 151 Gambar 6.2a Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai D=1 dan M Berubah-ubah. 151 Gambar 6.2b Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Tes Tertulis Semester 1 dengan Nilai D=2 dan M Berubah-ubah. 151 Gambar 6.3a Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai M=4 dan D Berubah-ubah. 152 xxi

22 Gambar 6.3b Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai M=5 dan D Berubah-ubah. 152 Gambar 6.4a Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai D=1 dan M Berubah-ubah. 152 Gambar 6.4b Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Jalur Prestasi Semester 1 dengan Nilai D=2 dan M Berubah-ubah. 152 Gambar 6.5a Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Semester 1 dengan Nilai M=4 dan D Berubah-ubah. 153 Gambar 6.5b Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Semester 1 dengan Nilai M=5 dan D Berubah-ubah Gambar 6.6a Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Semester 1 dengan Nilai D=1 dan M Berubah-ubah Gambar 6.6b Grafik Hasil Deteksi Outlier pada Data Mahasiswa Angkatan 2007 dan 2008 Semester 1 dengan Nilai D=2 dan M Berubah-ubah xxii

23 Bab 1 PENDAHULUAN 1.1 Latar Belakang Penelitian dalam bidang pendidikan menggunakan teknik penambangan data telah banyak dilakukan saat ini. Penambangan data dalam bidang pendidikan (educational data mining) berfokus pada pengembangan metode-metode untuk mengekstrak knowledge dari data-data pendidikan. Data pendidikan dapat berupa data pribadi atau akademik. Selain itu data pendidikan juga dapat berasal dari e- learning system yang memiliki data dalam jumlah besar yang digunakan oleh banyak institusi (Tair & El-Halees, 2012). Knowledge Discovery in Databases (KDD) adalah proses mengekstrak informasi dari data berdasarkan pada analisis dan interpretasi tertentu. KDD terdiri dari empat proses utama yaitu preprocessing, data mining, pattern evaluation, dan knowledge presentation (Han & Kamber, 2006). Dari keempat tahap tersebut, penambangan data (data mining) merupakan tahapan yang menjadi fokus dalam pengolahan data mentah (training dataset) menjadi bentuk yang dapat dievaluasi. Ada dua jenis pendekatan dalam melakukan penambangan data yaitu supervised dan unsupervised. Pendekatan supervised artinya penambangan dilakukan pada data yang telah diketahui label kelasnya. Pendekatan unsupervised merupakan kebalikan dari pendekatan supervised. Beberapa metode yang menggunakan pendekatan supervised antara lain klasifikasi, prediksi dan asosiasi. Sedangkan metode yang menggunakan 1

24 2 pendekatan unsupervised antara lain clustering, binning, dan histogram analysis. Data yang telah ditambang menggunakan salah satu dari metode-metode di atas selanjutnya akan dievaluasi untuk menghasilkan sebuah informasi (knowledge). Salah satu metode penambangan data yaitu analisis klaster. Klaster merupakan kumpulan objek atau data dalam sebuah kelompok yang serupa satu sama lain tetapi berbeda atau tidak mirip dengan objek atau data pada klaster lain. Data diklaster atau dikelompokkan dengan prinsip memaksimalkan kemiripan intraclass dan meminimalkan kemiripan interclass. Artinya, data-data yang berada dalam sebuah klaster memiliki tingkat kemiripan yang tinggi satu sama lain, tetapi memiliki tingkat kemiripan yang rendah dengan data pada klaster lainnya. Klastering sering disebut sebagai segmentasi data karena klastering membagi sejumlah besar data ke dalam grup berdasarkan kemiripannya. Algoritma Block-based Nested-Loop merupakan contoh algoritma yang memiliki kemampuan untuk mendeteksi outlier dalam sekumpulan data. Tidak seperti klastering, deteksi outlier dilakukan untuk menemukan data yang tidak konsisten dengan data lainnya. Data dianggap tidak konsisten (outlier) apabila data tersebut tidak memiliki tingkat kemiripan yang sesuai dengan data lainnya (Han & Kamber, 2006). Dengan adanya deteksi outlier, kita dapat mengenali adanya kesalahan dalam memasukkan data, kecurangan dalam menggunakan data (fraud detection) atau adanya sebuah kejadian langka yang memiliki makna tertentu dan perlu dianalisis lebih lanjut (rare events analysis). Algoritma ini juga memiliki unjuk kerja yang baik saat diimplementasikan pada kumpulan data

25 3 dengan jumlah atribut yang banyak atau high dimensional datasets (Ghoting et al., 2006). Algoritma Block-based Nested-Loop dapat diimplementasikan pada sekumpulan data numerik untuk mendeteksi adanya outlier. Salah satu contoh data numerik yaitu data akademik mahasiswa yang berupa hasil tes masuk universitas dan indeks prestasi semester (IPS). Sejumlah mahasiswa yang memiliki data akademik yang serupa satu sama lain berarti masuk ke dalam kelompok bukan outlier. Mahasiswa yang tidak memiliki kemiripan data akademik dengan mahasiswa manapun berarti memiliki data akademik yang unik dibandingkan mahasiswa lainnya. Mahasiswa ini akan dianggap sebagai outlier. Berdasarkan hasil deteksi outlier, pihak universitas dapat memperoleh informasi mengenai mahasiswa dengan data akademik yang berbeda atau unik dibandingkan mahasiswa lainnya. Data akademik yang unik dapat dihasilkan dari nilai IPS mahasiswa yang sangat tinggi atau sangat rendah pada setiap semester. Selain itu, data akademik yang unik juga berasal dari tinggi rendahnya nilai tes masuk mahasiswa. Sebagai contoh, sejumlah mahasiswa dengan nilai IPS dan nilai tes masuk yang tinggi akan tergabung dalam sebuah kelompok yang sama. Kemudian sejumlah mahasiswa yang memiliki nilai IPS dan nilai tes masuk yang rendah juga akan tergabung dalam sebuah kelompok yang sama. Pihak universitas dapat menganalisis data diri mahasiswa tersebut untuk menemukan faktor tertentu yang berpengaruh pada keunikan data akademik mahasiswa tersebut di kampus.

26 4 1.2 Rumusan Masalah Pada penelitian ini, deteksi outlier akan dilakukan berdasarkan nilai tes masuk dan IPS. Mahasiswa dengan data akademik yang unik atau tidak memiliki kemiripan dengan mahasiswa lainnya akan masuk ke dalam kelompok outlier. Pada penelitian ini juga dilakukan analisis mengenai penggunaan blok-blok data terhadap lama deteksi outlier. Jadi, rumusan masalah dalam penelitian ini adalah : 1. Mahasiswa manakah yang memiliki data akademik yang unik atau berbeda pada tiap semester berdasarkan nilai tes masuk dan IPS? 2. Bagaimanakah pengaruh penggunaan blok-blok data terhadap waktu deteksi outlier? 1.3 Tujuan Penelitian Tujuan penelitian ini yaitu : 1. Melakukan deteksi outlier pada data akademik mahasiswa Prodi Teknik Informatika Universitas Sanata Dharma berupa hasil tes masuk dan IPS semester satu sampai semester empat menggunakan algoritma Blockbased Nested-Loop. 2. Menganalisis hasil deteksi outlier yang dihasilkan oleh algoritma Blockbased Nested-Loop. 3. Menganalisis waktu yang diperlukan untuk melakukan deteksi outlier berdasarkan jumlah blok data yang digunakan oleh algoritma Block-based Nested-Loop.

27 5 1.4 Batasan Masalah Batasan masalah pada penelitian ini yaitu : 1. Algoritma deteksi outlier yang digunakan yaitu algoritma Block-based Nested-Loop. 2. Data yang digunakan dalam penelitian ini merupakan data akademik mahasiswa Prodi Teknik Informatika angkatan 2007 dan 2008 di Universitas Sanata Dharma berupa hasil tes penerimaan mahasiswa baru (nilai penalaran mekanik, nilai penalaran verbal, nilai hubungan ruang, nilai Bahasa Inggris, nilai kemampuan numerik), nilai final dan nilai indeks prestasi semester dari semester satu sampai semester empat. 3. Hasil penelitian ini berupa kelompok mahasiswa outlier, jika ada. 1.5 Manfaat Penelitian Manfaat penelitian ini, antara lain: 1. Memperkenalkan salah satu algoritma penambangan data khususnya untuk mendeteksi outlier yaitu algoritma Block-based Nested-Loop serta keunggulannya dalam mendeteksi outlier. 2. Membantu pihak Universitas Sanata Dharma dalam mendeteksi kejadian langka berkaitan dengan keunikan data akademik mahasiswa.

28 6 1.6 Sistematika Penulisan Bab 1 Pendahuluan Bab ini berisi latar belakang, rumusan masalah, tujuan penelitian, batasan masalah, manfaat penelitian dan sistematika penulisan Bab 2 Landasan Teori Bab ini berisi teori yang digunakan dalam penulisan tugas akhir ini. Teori pertama yang digunakan yaitu Knowledge Discovery in Databases (KDD). Teori kedua yang digunakan yaitu Outlier Detection. Outlier Detection terdiri dari pengertian outlier, penyebab outlier, manfaat deteksi outlier, metode deteksi outlier, Distance-Based Outlier Detection dan Algoritma Block-based Nested- Loop Bab 3 Metode Penelitian Bab ini berisi penjelasan mengenai langkah atau metode yang dilakukan untuk menyelesaikan masalah dalam penelitian ini. Hal pertama yang dibahas yaitu mengenai data. Kedua yaitu mengenai pengolahan data yang terdiri dari pemrosesan awal data, seleksi data, penambangan data, evaluasi pola yang ditemukan dan presentasi pengetahuan. Ketiga yaitu mengenai contoh implementasi algoritma Block-based Nested-Loop.

29 Bab 4 Analisis dan Perancangan Sistem Bab ini berisi pembahasan tentang beberapa komponen. Komponen pertama yaitu identifikasi sistem. Komponen kedua yaitu input sistem, proses sistem dan output sistem. Komponen ketiga yaitu perancangan struktur data. Komponen keempat yaitu diagram use case. Komponen kelima yaitu perancangan sistem yang terdiri dari diagram konteks, diagram aktivitas, diagram kelas analisis, diagram sequence, diagram kelas desain dan detail algoritma tiap method pada tiap kelas. Komponen keenam yaitu perancangan antarmuka Bab 5 Implementasi Sistem Bab ini berisi tentang implementasi antarmuka, implementasi pengecekan masukan, implementasi struktur data dan implementasi kelas serta analisis dari masing-masing tampilan program Bab 6 Pengujian dan Analisis Hasil Pengujian Bab ini berisi pengujian serta analisis terhadap pengujian yang dilakukan serta kelebihan dan kekurangan sistem. Pengujian terbagi menjadi tiga jenis yaitu pengujian blackbox serta kesimpulannya, pengujian review dan validitas oleh pengguna serta kesimpulannya, pengujian efek perubahan nilai atribut penambangan data serta kesimpulannya dan pengujian perbandingan waktu deteksi outlier berdasarkan jumlah blok.

30 Bab 7 Kesimpulan dan Saran Kesimpulan dan saran berisi tentang kesimpulan dan saran dari penulis tugas akhir mengenai penelitian yang dilakukan. tugas akhir Daftar Pustaka Daftar pustaka berisi tentang referensi yang digunakan dalam penyusunan

31 Bab 2 LANDASAN TEORI Bab ini berisi penjelasan mengenai teori atau konsep yang terkait dengan rumusan masalah dalam penelitian ini. Konsep yang dijelaskan yaitu Knowledge Discovery in Databases (KDD) dan Outlier Detection. Setiap konsep atau teori akan berisi penjelasan mengenai definisi, bagian-bagian serta peran masingmasing bagian tersebut dalam penelitian ini. Hal-hal tersebut akan diuraikan dalam dua sub bab di bawah ini. 2.1 Knowledge Discovery in Databases (KDD) Knowledge Discovery in Databases (KDD) adalah proses mengambil informasi penting yang tersembunyi dalam sekumpulan data. KDD membantu seseorang dalam mengambil keputusan berdasarkan informasi yang ditemukan tersebut (Baradwaj & Pal, 2011). KDD terbagi menjadi lima tahap yaitu selection, preprocessing, transformation, data mining, dan evaluation (Fayyad et al., 1996). Setiap tahap dalam KDD memiliki peranan penting dan saling berkaitan satu sama lain untuk mengekstrak knowledge dari data. 9

32 10 Gambar 2.1 Langkah-langkah dalam KDD (Fayyad et al., 1996 ) Selection merupakan proses seleksi data yang relevan untuk dianalisis dari sebuah basis data. Data yang relevan artinya data tersebut sesuai untuk digunakan dalam mencapai tujuan analisis data. Data yang telah diseleksi melalui proses ini disebut sebagai target data. Target data selanjutnya masuk ke tahapan berikutnya yaitu preprocessing. Preprocessing merupakan proses menyiapkan data agar siap untuk ditambang. Langkah-langkah dalam preprocessing yaitu data cleaning, data integration, data transformation, data reduction dan data discretization. Kelima langkah tersebut dilakukan secara berurutan. Langkah tertentu boleh dilewati saat kondisi data telah memenuhi syarat yang ditentukan masing-masing langkah tersebut. Saat telah melewati tahap preprocessing, data siap untuk ditambang. Data mining atau penambangan data adalah proses mengekstrak informasi atau pengetahuan dari data dalam jumlah yang besar. Secara umum, penambangan data dapat diklasifikasikan dalam empat kategori yaitu deteksi dependensi, identifikasi kelas, deskripsi kelas dan deteksi outlier. Tiga kategori

33 11 pertama berkaitan dengan pola yang dimiliki oleh banyak obyek atau pada obyek dengan persentase yang besar dalam dataset. Berbagai penelitian penambangan data mengenai aturan asosiasi, klasifikasi, klastering dan generalisasi konsep termasuk dalam tiga kategori tersebut. Sebaliknya, kategori keempat berfokus pada obyek dengan persentase yang kecil, yang umumnya sering diabaikan atau dihilangkan karena dianggap noise (Knorr & Ng, 1998). Evaluation merupakan tahap pembuatan pola atau pemetaan berdasarkan hasil penambangan data. Tujuan dilakukannya tahap ini untuk membantu pihakpihak yang berkepentingan terhadap data yang dianalisis untuk memperoleh gambaran tentang data tersebut. Pembuatan diagram atau pohon keputusan merupakan contoh visualisasi hasil penambangan data. Visualisasi dapat memberikan gambaran yang lebih mudah dipahami dibandingkan hasil sebuah penambangan data. Setelah tahap visualisasi selesai maka akan diperoleh hasil akhir analisis data yaitu knowledge. 2.2 Outlier Detection Pengertian Outlier Outlier dalam sekumpulan data merupakan data yang dianggap tidak mirip atau tidak konsisten dengan data lainnya. Outlier merupakan hasil observasi (data pengukuran) dalam suatu kumpulan data yang nilainya sangat berbeda jika dibandingkan dengan sekumpulan data dari pengukuran lain (Hawkins, 1980). Outlier juga merupakan data yang tidak mengikuti pola umum atau model dari data lainnya yang berada dalam kumpulan yang sama. Outlier

34 12 terlihat berbeda jauh dan tidak konsisten dengan data lain (Han & Kamber, 2006) Penyebab Outlier Pertama, munculnya outlier dapat disebabkan oleh data pengukuran yang salah. Sebagai contoh, munculnya data umur seseorang yaitu 999 tahun dapat disebabkan oleh pengaturan otomatis (default) program. Pengaturan otomatis ini diberlakukan pada data umur yang tidak direkam (missing values) (Han & Kamber, 2006). Kedua, kemunculan outlier juga dapat dikarenakan data pengukuran berasal dari populasi lain. Contohnya yaitu gaji seorang pimpinan perusahaan dapat dianggap sebagai outlier di antara gaji para karyawan di perusahaan tersebut (Han & Kamber, 2006). Hal ini disebabkan adanya perbedaan yang sangat mencolok antara gaji seorang pimpinan dan gaji karyawan di sebuah perusahaan. Ketiga, outlier berasal dari data pengukuran yang benar tetapi mewakili peristiwa atau keadaan unik yang jarang terjadi. Sebagai contoh, terdapat sebuah sekolah yang selalu menghasilkan lulusan dengan nilai yang sangat rendah setiap tahun. Ketika terdapat seorang siswa yang lulus dari sekolah tersebut dengan nilai yang sangat tinggi, maka siswa itu akan dianggap sebagai outlier Manfaat Deteksi Outlier Sebagian besar algoritma penambangan data berfokus untuk meminimalkan pengaruh outlier atau mengeliminasi outlier tersebut. Hal ini

35 13 dapat mengakibatkan hilangnya informasi penting yang tersembunyi dibalik outlier tersebut. Outlier sebenarnya dapat menjadi hal yang menarik untuk dianalisis lebih lanjut. Deteksi outlier (outlier detection) adalah deteksi yang dilakukan pada sekumpulan obyek untuk menemukan obyek yang memiliki tingkat kemiripan yang sangat rendah dibandingkan dengan obyek lainnya. Deteksi outlier umumya digunakan untuk menemukan kejanggalan dalam data, deteksi kecurangan data atau untuk mengetahui adanya pola khusus dalam sekumpulan data. Deteksi outlier sering dimanfaatkan untuk mendeteksi kecurangan penggunaan kredit atau layanan telekomunikasi. Deteksi outlier juga berguna dalam bidang pemasaran, yaitu untuk mengidentifikasi perilaku belanja konsumen dengan tingkat pendapatan yang tinggi atau rendah. Dalam dunia kesehatan, deteksi outlier digunakan untuk menemukan respon yang tidak biasanya atau berbeda terhadap berbagai perawatan kesehatan (Han & Kamber, 2006). Di bidang pendidikan, deteksi outlier dapat digunakan untuk mengetahui prestasi akademik mahasiswa yang berbeda secara signifikan dari mahasiswa lainnya dalam universitas yang sama (Tair & El-Halees, 2012) Metode Deteksi Outlier Algoritma klastering umumnya menghilangkan outlier dari data karena dianggap noise, tetapi algoritma deteksi outlier justru menjadikan outlier menjadi hasil dari eksekusinya. Ada beberapa metode yang dapat digunakan untuk mendeteksi outlier. Metode-metode tersebut dibagi menjadi empat pendekatan

36 14 yaitu: pendekatan statistical distribution-based, pendekatan distance-based, pendekatan density-based local outlier dan pendekatan deviation-based (Han & Kamber, 2006). Pendekatan statistical distribution-based mengasumsikan sebuah model distribusi atau probabilitas dari sejumlah data yang diidentifikasi outliernya menggunakan discordancy test. Pendekatan distance-based menentukan outlier berdasarkan jarak antar obyek serta jumlah obyek menggunakan parameter pct dan dmin. Pendekatan density-based local outlier, berfokus pada menemukan outlier pada sejumlah data berdasarkan kedekatan atau kepadatan antara satu obyek dengan obyek lainnya. Pendekatan density-based hampir sama dengan distance-based tetapi mampu membedakan antara local outlier dan global outlier. Pendekatan deviation-based tidak menggunakan perhitungan secara statistik maupun jarak untuk mengidentifikasi obyek yang diduga sebagai outlier. Pendekatan ini mengidentifikasi adanya outlier dengan menguji karakteristik utama dari obyek dalam sebuah kelompok. Setiap outlier yang ditemukan menggunakan pendekatan-pendekatan tersebut selanjutnya perlu diperiksa kembali untuk diyakini kebenarannya. Pada penelitian ini, penulis menggunakan pendekatan distance-based untuk melakukan deteksi outlier Distance-Based Outlier Detection Menurut pendekatan distance-based, sebuah obyek O dalam dataset T merupakan DB (p,d)-outlier jika setidaknya ada p obyek dalam T terletak pada jarak yang lebih dari D terhadap O. Diasumsikan N adalah jumlah obyek dalam dataset T, dan F merupakan fungsi jarak yang digunakan untuk menghitung jarak

37 15 antar obyek dalam T. Untuk sebuah obyek O, D-neighbourhood dari O memuat sekumpulan obyek Q T yang terletak pada jarak kurang dari D terhadap O sehingga { Q T F (O, Q) D. Nilai fraction p merupakan persentase jumlah obyek minimum dalam T yang harus ada di luar D-neighbourhood dari sebuah outlier. Diasumsikan M merupakan jumlah obyek maksimum dalam D- neighbourhood dari sebuah outlier sehingga M = N(1 - p) (Knorr & Ng, 1998). Sebagai contoh, terdapat sebuah dataset T dengan jumlah obyek N sebanyak 100 dan persentase jumlah outlier dalam data sekitar 10%. Berdasarkan data tersebut maka persentase data bukan outlier p adalah % yaitu 90% atau 0.9. Untuk memperoleh nilai M maka menggunakan perhitungan N(1 p) sehingga M = 100(1-0.9) yaitu 10. Artinya, pada dataset T jumlah obyek maksimum dalam D-neighbourhood sebuah outlier adalah 10 obyek. Apabila sebuah obyek A dalam dataset T dapat menemukan lebih dari 10 obyek yang jaraknya kurang dari D terhadap dirinya maka A akan menjadi data bukan outlier sebaliknya A akan menjadi outlier. Nilai M adalah jumlah obyek maksimum dalam D- neighbourhood sebuah outlier sehingga dapat dikurangi menjadi 9, 8, 7 atau bahkan 1 sampai diperoleh hasil outlier yang dianggap paling tepat. Pada pendekatan distance-based terdapat beberapa algoritma yang dapat digunakan antara lain Index-Based, Block-based Nested-Loop dan Cell-Based (Han & Kamber, 2006). Jarak antar dua obyek dalam sebuah kumpulan data memiliki arti yang penting dalam deteksi outlier menggunakan pendekatan distance-based. Jarak antar dua obyek menjadi nilai yang akan dibandingkan dengan nilai parameter D.

38 16 Untuk menghitung jarak antar obyek harus disesuaikan dengan tipe variabel yang dimiliki. Tipe variabel yang berupa nilai numerik dan sifatnya multidimensi, dapat dihitung jaraknya menggunakan pengukuran Euclidean distance (Han & Kamber, 2006). Euclidean distance didefinisikan sebagai berikut d(i, j) = (x i1 x j1 ) 2 + (x i2 x j2 ) (x in x jn ) 2 (2.1) di mana i = obyek pertama, j = obyek kedua, x i = nilai obyek pertama, x j = nilai obyek kedua dan n = dimensi obyek. Pendekatan distance-based melibatkan penggunaan dua buah parameter sebagai input. Penentuan nilai parameter p dan D dapat melibatkan beberapa kali percobaan (trial and error) hingga mendapatkan nilai yang paling tepat. Pemilihan nilai parameter p dan D dapat mempengaruhi hasil deteksi outlier Algoritma Block-based Nested-Loop Algoritma Block-based Nested-Loop merupakan pengembangan dari algoritma deteksi outlier lain yaitu Index-Based. Algoritma ini menghindari penggunaan memori dalam membentuk indeks untuk menemukan seluruh DB(p,D)-outliers. Algoritma ini menggunakan prinsip block-oriented, nestedloop design. Diasumsikan total free memory dari komputer yang digunakan sebanyak B bytes. Algoritma ini selanjutnya membagi free memory komputer

39 17 dalam dua bagian yang disebut first array sebanyak ½B dan second array sebanyak ½B. Data kemudian dibagi ke dalam blok-blok tertentu. Algoritma Block-based Nested-Loop akan mengatur proses masuk keluarnya blok ke dalam memori. Setiap data yang ada dalam blok tertentu akan secara langsung dihitung jaraknya dengan data lainnya. Untuk setiap data t dalam first array, jumlah tetangganya akan dihitung. Dua data dikatakan saling bertetangga apabila jarak keduanya kurang dari atau sama dengan D. Perhitungan jumlah tetangga untuk setiap obyek akan berhenti saat nilainya telah melebihi M (Knorr & Ng, 1998). M merupakan jumlah tetangga maksimum dalam D-neighbourhood sebuah outlier. Jika jumlah tetangga sebuah data telah melebihi M artinya data tersebut tidak termasuk outlier. Pseudocode algoritma Block-based Nested-Loop adalah sebagai berikut (Knorr & Ng, 1998): 1. Isi first array (½B) dengan sebuah blok dari T 2. Untuk setiap obyek t i, pada first array, do : a. count i 0 b. Untuk setiap obyek t j dalam first array, jika dist(t i,t j ) D; Tambahkan nilai count i dengan 1. Jika count i > M, tandai t i sebagai non-outlier dan proses dilanjutkan ke t i berikutnya. 3. Selama masih ada blok yang tersisa untuk dibandingkan dengan first array, do: a. Isi second array dengan blok lainnya (tetapi pastikan blok yang

40 18 belum pernah dimasukkan ke dalam first array berada pada urutan terakhir) b. Untuk setiap obyek t i dalam first array yang belum ditandai (unmarked) do: Untuk setiap obyek t j dalam second array, jika dist(t i,t j ) D: Tambahkan nilai count i dengan 1. Jika count i > M, tandai t i sebagai non-outlier dan proses dilanjutkan ke t i berikutnya. 4. Untuk setiap obyek t i dalam first array yang belum ditandai (unmarked), tandai t i sebagai outlier. 5. Jika blok dalam second array sudah pernah dimasukkan ke dalam first array sebelumnya, berhenti; jika belum, tukar posisi nama dari first array dan second array dan kembali ke langkah 2.

41 Bab 3 METODE PENELITIAN Bab ini berisi penjelasan mengenai langkah atau metode yang dilakukan untuk menyelesaikan masalah dalam penelitian ini. Langkah penyelesaian masalah tersebut meliputi data yang digunakan dalam penelitian, cara mengolah data dan contoh implementasi algoritma Block-based Nested-Loop. Hal-hal tersebut akan diuraikan dalam tiga sub bab di bawah ini. 3.1 Data Pada penelitian ini data yang digunakan adalah data akademik mahasiswa Universitas Sanata Dharma Prodi Teknik Informatika Angkatan 2007 dan Data ini diperoleh dari gudang data akademik mahasiswa hasil penelitian Rosa dkk (2011). Data diperoleh dalam bentuk skrip.sql. Dari skrip tersebut, data yang digunakan dalam penelitian ini adalah data nilai hasil seleksi masuk mahasiswa (jalur tes dan jalur prestasi) dan nilai indeks prestasi semester (IPS) pada semester satu sampai semester empat. Total data akademik yang digunakan dalam penelitian ini sebanyak 126 buah. 19

42 Pengolahan Data Pengolahan data akademik dalam penelitian ini meliputi beberapa langkah yaitu : Pemrosesan Awal Data Data mentah yang digunakan dalam penelitian ini dalam bentuk skrip.sql. Sebelum mengolah data yang ada dalam skrip tersebut, skrip dijalankan terlebih dahulu menggunakan SQLyog. Hasil yang diperoleh yaitu terdapat gudang data dengan nama data_mahasiswa dan di dalamnya terdapat beberapa tabel yaitu dim_angkatan, dim_daftarsmu, dim_fakultas, dim_jeniskel, dim_kabupaten, dim_prodi, dim_prodifaks, dim_statustes dan fact_lengkap2. Setelah semua tabel berhasil dibuat, proses pengolahan data dilanjutkan ke seleksi data. Gambar 3.1 Gudang data data_mahasiswa Seleksi Data Pada tahap ini dilakukan seleksi terhadap data yang relevan dengan penelitian. Berdasarkan data yang diperoleh, data yang akan dipakai adalah kolom ips1, ips2, ips3, ips4, ips4, nil11, nil12, nil13, nil14, nil15 dan final. Kolom-kolom tersebut seluruhnya berada pada tabel fact_lengkap2. Kolomkolom tersebut kemudian diseleksi lagi barisnya yaitu diambil hanya baris

43 21 dengan sk_prodi = 27. Baris dengan sk_prodi = 27 merupakan data mahasiswa yang berasal dari Prodi Teknik Informatika. Data ini yang dipilih karena dapat digunakan sebagai variabel numerik untuk mendeteksi outlier dan sesuai untuk mencapai tujuan penelitian Transformasi Data Data yang telah diseleksi masih berupa data yang belum tepat untuk ditambang. Data tersebut belum tepat ditambang karena masih terdapat perbedaan rentang nilai antara atribut nilai final, nilai tes masuk dan ips. Nilai final memiliki rentang nilai antara Nilai tes masuk memiliki rentang nilai antara Ips memiliki rentang nilai antara 0-4. Perbedaan rentang nilai ini akan disamakan melalui proses transformasi data. Transformasi data dilakukan dengan menggunakan metode normalisasi. Metode normalisasi dilakukan dengan cara membuat skala pada data atribut. Salah satu jenis metode normalisasi yaitu min-max normalization (Han & Kamber, 2006). Min-max normalization didefinisikan sebagai berikut : (3.1) di mana v = nilai awal, min A = nilai minimum atribut A sebelum normalisasi, max A = nilai maksimum atribut A sebelum normalisasi, new_max A = nilai

44 22 maksimum atribut A setelah normalisasi dan new_min A = nilai minimum atribut A setelah normalisasi. Penelitian ini menggunakan data berupa nilai tes masuk, nilai final dan ips. Range data nilai tes masuk dan data nilai final disamakan dengan range data ips. Contoh normalisasi data nilai final adalah sebagai berikut. Diketahui nilai final awal v = 77.10, nilai minimum awal min A = 0, nilai maksimum awal max A = 100, nilai minimum baru new_min A = 0 dan nilai maksimum baru new_min A = 4, maka nilai final setelah normalisasi v = = 3.08 Contoh normalisasi data nilai tes masuk adalah sebagai berikut. Diketahui nilai tes awal v = 8.00, nilai minimum awal min A = 0, nilai maksimum awal max A = 10, nilai minimum baru new_min A = 0 dan nilai maksimum baru new_min A = 4, maka nilai tes setelah normalisasi v = = Penambangan Data Data yang telah melalui proses transformasi data selanjutnya dicari outliernya menggunakan algoritma deteksi outlier yaitu algoritma Block-based Nested-Loop. Data yang diteliti akan dibatasi pada data dua tahun angkatan di Universitas Sanata Dharma yaitu tahun angkatan 2007 dan Pada tahap ini, akan ditentukan juga variabel-variabel yang akan digunakan untuk menambang data. Variabel-variabel tersebut antara lain : 1. Input, yang terdiri dari : a. Nilai hasil seleksi penerimaan mahasiswa baru.

45 23 Untuk mahasiswa yang mengikuti jalur tes, nilai hasil seleksi yang digunakan berasal dari lima jenis mata tes yaitu nilai penalaran mekanik, nilai penalaran verbal, nilai hubungan ruang, nilai Bahasa Inggris dan nilai kemampuan numerik serta nilai final. Untuk mahasiswa yang mengikuti jalur prestasi, nilai hasil seleksi yang digunakan berasal dari nilai final. b. Nilai Indeks Prestasi Semester (IPS) pada semester 1 sampai semester Output, yaitu sejumlah data yang masuk ke dalam kelompok outlier, jika ada Evaluasi Pola yang Ditemukan Pada tahap ini, pengetahuan atau pola berupa outlier yang didapat dari proses deteksi outlier akan dievaluasi dengan hipotesa yang telah dibentuk sebelumnya. Hipotesa awal mengenai mahasiswa yang masuk ke dalam kategori outlier yaitu mahasiswa dengan data akademik khusus atau unik dilihat dari hasil seleksi masuk dan IPS setiap semester. Kesesuaian hasil deteksi outlier dengan hipotesa awal menunjukan output yang baik dari proses penambangan data yang dilakukan.

46 Presentasi Pengetahuan Tahap ini merupakan tahap akhir dari penelitian. Pola khusus yang dihasilkan (outlier) perlu ditampilkan ke dalam bentuk yang mudah dimengerti oleh pihak yang berkepentingan. Oleh sebab itu, pada tahap ini akan dilakukan pembuatan sistem dengan antarmuka pengguna yang mudah dimengerti oleh pihak universitas. 3.3 Contoh Implementasi Algoritma Block-based Nested-Loop Pada penelitian ini, dilakukan deteksi outlier menggunakan algoritma Block-based Nested-Loop dengan data akademik yang berasal dari gudang data data akademik mahasiswa yang berasal dari penelitian Rosa dkk (2011). Data yang awalnya dalam bentuk skrip.sql diubah ke dalam format.xls agar lebih mudah untuk diolah. Data yang akan diolah berasal dari tabel fact_lengkap2. Jumlah data yang digunakan sebanyak 13 baris. Data tersebut telah diseleksi khusus untuk mahasiswa yang memiliki sk_prodi = 27 (Prodi Teknik Informatika), angkatan 2007 dan statustes = T (jalur tes). Data yang digunakan untuk analisis tersebut adalah seperti gambar 3.2 di bawah ini

47 25 Gambar 3.2 Data mentah untuk implementasi algoritma Block-based Nested- Loop Pada bagian ini, penjelasan mengenai langkah-langkah deteksi outlier menggunakan algoritma Block-based Nested-Loop hanya akan ditampilkan menggunakan data mahasiswa di atas pada semester satu saja. Untuk semester tiga hingga semester empat hanya akan ditampilkan hasil deteksi outliernya saja. Proses deteksi outlier menggunakan algoritma Block-based Nested-Loop adalah sebagai berikut: 1. Menentukan nilai parameter D = 2 dan M = 4 2. Mengasumsikan jumlah blok = 4

48 26 3. Membagi seluruh data ke dalam sejumlah blok. Jumlah blok = 4, maka setiap 13 4 = 3 data dan sisa 1 data. Berdsarkan perhitungan tersebut, setiap blok akan berisi 3 buah data. Perhitungan ini menyisakan 1 data yang belum masuk ke dalam sebuah blok. Sisa data dapat dimasukkan ke dalam blok yang mana saja. Dalam contoh ini, sisa data dimasukkan ke dalam blok ke-4. Dengan demikian diperoleh hasil pembagian blok yaitu blok 1, blok 2, blok 3 (masing-masing berisi 3 data) dan blok 4 (berisi 4 data) Tabel 3.1 Data mentah dibagi ke dalam 4 blok 4. First array diisi dengan data dari blok Setiap data dalam first array dihitung jaraknya terhadap setiap data lainnya dalam first array menggunakan Euclidean distance dan nilainya dimasukkan pada kolom Eucliden dist. Setiap kali jarak telah dihitung, nilai jarak langsung dibandingkan dengan nilai parameter D. Jika jarak D, maka kedua data dinyatakan sebagai

49 27 tetangga dan ditandai dengan angka 1 pada kolom Neighbor. Jika jarak > D, maka dinyatakan sebagai bukan tetangga dan ditandai dengan angka 0. Gambar 3.3 Pengecekan tetangga pada first array antara blok 1 dan blok 1 Menurut analisis di atas, pada data mahasiswa dengan nomor 73 ditemukan tetangga sebanyak 2 buah yaitu mahasiswa dengan nomor 74 dan Setelah jumlah tetangga ditemukan, lalu dibandingkan dengan nilai parameter M. Jika jumlah tetangga > M maka data tersebut dinyatakan sebagai bukan outlier, jika sebaliknya maka data masih dinyatakan sebagai unmarked. Pada contoh di atas, karena diperoleh jumlah tetangga = 2 yang artinya < M, maka data masih diberi keterangan unmarked. 7. Selanjutnya, pengecekan dilakukan terhadap data lainnya dalam blok 1 yaitu mahasiswa nomor 74 dan 75 (kembali ke langkah 5). Hasil pengecekan dalam first array (blok 1 dan blok 1) diperoleh semua data masih berstatus unmarked. Artinya, seluruh data tersebut masih dicek lagi dalam pengecekan berikutnya pada iterasi selanjutnya.

50 28 Gambar 3.4 Hasil akhir pengecekan blok 1 dan blok 1 dalam first array Selanjutnya blok 2 dimasukkan ke second array. 8. Setiap data dalam first array yang masih unmarked, dicari tetangganya yang berada dalam second array. Jumlah tetangga yang diperoleh pada perhitungan sebelumnya akan ditambahkan ke dalam pengecekan ini. Gambar 3.5 Pencarian tetangga dari data first array pada second array

51 29 Pada gambar di atas, terlihat bahwa mahasiswa nomor 73 mendapatkan 1 orang tetangga pada pengecekan dengan blok 2. Jumlah tetangga ini dijumlahkan dengan jumlah tetangga sebelumnya yaitu 2 orang sehingga menjadi 3 orang. Mahasiswa nomor 73 masih berstatus unmarked pada tahap ini karena jumlah tetangganya masih < M. Maka data mahasiswa ini akan dimasukkan lagi ke dalam pengecekan selanjutnya. 9. Selanjutnya, pengecekan dilakukan terhadap data lainnya dalam blok 1 yaitu mahasiswa nomor 74 dan 75 (kembali ke langkah 8). Hasil akhir pengecekan antara blok 1 (first array) dan blok 2 (second array) diperoleh mahasiswa nomor 73, 74 dan 75 akan dimasukkan ke dalam pengecekan dengan blok selanjutnya karena masih ditandai sebagai unmarked. Gambar 3.6 Hasil akhir pengecekan blok 1 (first array) dan blok 2 (second array)

52 30 Selanjutnya blok 3 dimasukkan ke second array. 10. Setiap data dalam first array yang masih unmarked, dicari tetangganya yang berada dalam second array. Jumlah tetangga yang diperoleh pada perhitungan sebelumnya akan ditambahkan ke dalam pengecekan ini. Gambar 3.7 Pencarian tetangga dari data first array pada second array Pada gambar di atas, terlihat bahwa mahasiswa nomor 73 mendapatkan 1 tetangga. Jumlah tetangga ini dijumlahkan dengan jumlah tetangga sebelumnya yaitu 3 orang sehingga menjadi 4 orang. Mahasiswa nomor 73 masih berstatus unmarked pada tahap ini karena jumlah tetangganya masih kurang dari M. Maka data mahasiswa ini akan dimasukkan lagi ke dalam pengecekan selanjutnya. 11. Selanjutnya, pengecekan dilakukan terhadap data lainnya dalam blok 1 yaitu mahasiswa nomor 74 dan 75 (kembali ke langkah 10). Hasil akhir pengecekan antara blok 1 (first array) dan blok 3 (second array) diperoleh 2 data yang ditandai sebagai bukan outlier yaitu mahasiswa dengan nomor 74 dan 75. Ketika mahasiswa 74 dicek dengan mahasiswa nomor 80, jumlah tetangga mahasiswa nomor 74 telah mencapai M > 4. Jumlah tetangga

53 31 mahasiswa nomor 74 adalah 4 dari pengecekan sebelumnya dan ditambah 1 pada tahap ini sehingga menjadi 5 orang. Data yang diberi label biru menunjukkan data yang tidak ikut serta ditambahkan sebagai tetangga mahasiswa nomor 74 karena pengecekan berhenti saat M > 4. Kedua data ini tidak akan disertakan lagi dalam pengecekan berikutnya pada iterasi selanjutnya. Gambar 3.8 Hasil akhir pengecekan blok 1 (first array) dan blok 3 (second array) Selanjutnya blok 4 dimasukkan ke dalam second array. 12. Setiap data dalam first array yang masih unmarked, dicari tetangganya yang berada dalam second array. Jumlah tetangga yang diperoleh pada perhitungan sebelumnya akan ditambahkan ke dalam pengecekan ini.

54 32 Gambar 3.9 Hasil akhir pengecekan blok 1 (first array) dan blok 4 (second array) Hasil akhir pengecekan antara blok 1 (first array) dan blok 4 (second array) diperoleh data mahasiswa 73 yang ditandai sebagai bukan outlier yaitu. Ketika mahasiswa 73 dicek dengan mahasiswa nomor 83, jumlah tetangga mahasiswa nomor 73 telah mencapai M > 4. Jumlah tetangga mahasiswa nomor 73 adalah 4 dari pengecekan sebelumnya dan ditambah 1 pada tahap ini sehingga menjadi 5 orang. Data yang diberi label biru menunjukkan data yang tidak ikut serta ditambahkan sebagai tetangga mahasiswa nomor 73 karena pengecekan berhenti saat M > 4. Karena seluruh data dalam blok 1 telah dicek dengan seluruh blok lainnya maka iterasi pegecekan outlier untuk data dalam blok 1 telah selesai. 13. Jika blok yang berada dalam second array belum pernah menjadi first array, tukarkan isi kedua array tersebut dan proses pengecekan berjalan kembali seperti pada langkah ke-4. Jika blok yang berada pada second array sudah pernah menjadi first array, proses deteksi outlier dihentikan.

55 33 Urutan pengecekan data pada kasus di atas adalah sebagai berikut: 1. Blok 1 dan Blok 1, kemudian dengan Blok 2, Blok 3, Blok 4 total ada 4 blok yang dibaca 2. Blok 4 dan Blok 4 (tidak perlu dibaca, sudah berada dalam array), kemudian dengan Blok 1 (tidak perlu dibaca, sudah berada dalam array), Blok 2, dan Blok 3 total ada 2 blok yang dibaca 3. Blok 3 dan Blok 3, kemudian dengan Blok 4, Blok 1, dan Blok 2 total ada 2 blok yang dibaca 4. Blok 2 dan Blok 2, kemudian dengan Blok 3, Blok 4, Blok 1 total ada 2 blok yang dibaca Total ada 10 blok yang dibaca dalam pengecekan ini.

56 Bab 4 ANALISIS DAN PERANCANGAN SISTEM 4.1 Identifikasi Sistem Universitas Sanata Dharma melakukan seleksi penerimaan mahasiswa baru setiap tahun. Seleksi penerimaan mahasiswa baru terbagi menjadi dua jalur yaitu jalur prestasi dan jalur tes. Kedua jalur penerimaan mahasiswa baru tersebut memiliki persyaratan yang harus dipenuhi oleh calon mahasiswa. Calon mahasiswa yang mengikuti jalur prestasi diwajibkan melampirkan nilai raport SMA saat kelas XI semester 1 dan semester 2. Untuk calon mahasiswa yang mengikuti jalur tes, diwajibkan mengikuti tes tertulis yang terdiri dari lima jenis tes yaitu tes penalaran mekanik, tes penalaran verbal, tes hubungan ruang, tes kemampuan numerik dan tes Bahasa Inggris. Berdasarkan nilai final untuk jalur prestasi dan nilai final serta nilai lima tes untuk jalur tes tersebut, dapat ditentukan calon mahasiswa yang diterima menjadi mahasiswa di Universitas Sanata Dharma. Mahasiswa di Universitas Sanata Dharma menjalani masa perkuliahan yang dibagi ke dalam beberapa semester. Setiap semester dilakukan evaluasi untuk mengetahui tingkat pemahaman setiap mahasiswa. Tingkat pemahaman mahasiswa ditunjukkan oleh Indeks Prestasi Semester (IPS). Setiap mahasiswa memiliki IPS yang bervariasi terhadap mahasiswa lainnya. Selain itu setiap mahasiswa juga dapat memiliki IPS yang sama atau berbeda-beda di setiap semester. 34

57 35 Deteksi outlier bermanfaat dalam membantu pihak universitas dalam menemukan data akademik yang unik. Mahasiswa yang memiliki nilai tinggi saat mengikuti seleksi penerimaan mahasiswa baru belum tentu akan memiliki IPS yang tinggi di setiap semester, demikian juga sebaliknya. Tetapi tidak menutup kemungkinan juga bahwa ada mahasiswa yang selalu memiliki nilai tinggi atau rendah sejak seleksi penerimaan mahasiswa baru hingga di setiap semester selama perkuliahan. Dengan demikian, ada kemungkinan munculnya mahasiswa dengan data akademik yang unik di setiap semester. Mahasiswa dengan data akademik yang unik ini selanjutnya disebut sebagai outlier. Sistem ini menggunakan pendekatan distance-based dengan algoritma Block-based Nested-Loop untuk melakukan deteksi outlier. Data yang digunakan penelitian ini untuk diolah menggunakan sistem deteksi outlier yaitu data akademik mahasiswa Prodi Teknik Informatika angkatan 2007 dan 2008 di Universitas Sanata Dharma berupa hasil tes penerimaan mahasiswa baru (nilai penalaran mekanik, nilai penalaran verbal, nilai hubungan ruang, nilai Bahasa Inggris dan nilai kemampuan numerik), nilai final dan nilai indeks prestasi semester dari semester satu sampai semester empat. Data diperoleh dari gudang data akademik mahasiswa hasil penelitian Rosa dkk (2011). 4.2 Input Sistem, Proses Sistem dan Output Sistem Input Sistem Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop ini dapat menerima masukan data dari pengguna berupa file berformat.xls dan.csv serta tabel dari basis data. Pengguna perlu memperhatikan kelengkapan

58 36 data yang diinputkan sehingga proses deteksi outlier yang dilakukan oleh sistem dapat berjalan dengan benar dan keluaran yang dihasilkan juga tepat. Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop ini juga memerlukan masukan data berupa nilai M dan D. Nilai M dan D ini diperlukan untuk melakukan deteksi outlier terhadap data file.xls,.csv atau tabel dari basis data yang diinputkan pengguna. Penjelasan lebih lanjut dari nilai M dan D dapat dijelaskan sebagai berikut: 1. Nilai M menunjukkan jumlah tetangga atau obyek maksimum dari sebuah outlier dalam ketetanggaan-d (Knorr & Ng, 1998). Sebuah data akan dinyatakan sebagai outlier apabila jumlah tetangganya kurang dari atau sama dengan M. Sebaliknya, data yang jumlah tetangganya lebih dari M akan dinyatakan sebagai bukan outlier. Penentuan nilai M disesuaikan dengan jumlah data yang digunakan serta persentase data yang diperkirakan sebagai outlier. 2. Nilai D menunjukkan jangkauan (range) nilai yang menjadi dasar penentuan dua buah data merupakan tetangga atau tidak berdasarkan jarak (euclidean distance) kedua data tersebut. Perhitungan jarak akan dilakukan oleh sistem. Jika jarak dua data bernilai kurang dari atau sama dengan D, maka keduanya merupakan tetangga. Pengguna menentukan nilai D dengan memperhatikan range nilai setiap atribut dari data yang diinputkan.

59 37 Pada penelitian ini peneliti menggunakan data akademik mahasiswa Prodi Teknik Informatika Universitas Sanata Dharma. Data yang digunakan ini terbagi menjadi data akademik mahasiswa yang mengikuti jalur tes dan jalur prestasi. Beberapa atribut yang digunakan dalam data akademik tersebut dapat dilihat pada tabel 4.1 di bawah ini. Tabel 4.1 Tabel Nama Atribut pada Data Akademik Mahasiswa No. Nama Penjelasan Nilai Atribut 1. Final Atribut ini menyimpan nilai final mahasiwa saat seleksi penerimaan mahasiswa baru 2. Nil11 Atribut ini menyimpan hasil tes penalaran 0 10 mekanik 3. Nil12 Atribut ini menyimpan hasil tes penalaran 0 10 verbal 4. Nil13 Atribut ini menyimpan hasil tes hubungan 0 10 ruang 5. Nil14 Atribut ini menyimpan hasil tes Bahasa Inggris Nil15 Atribut ini menyimpan hasil tes kemampuan 0 10 numerik 7. Ips1 Atribut ini menyimpan nilai IPS mahasiswa 0 4 semester 1 8. Ips2 Atribut ini menyimpan nilai IPS mahasiswa 0 4 semester 2 9. Ips3 Atribut ini menyimpan nilai IPS mahasiswa 0 4 semester Ips4 Atribut ini menyimpan nilai IPS mahasiswa semester Proses Sistem Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop ini memiliki beberapa tahapan proses. Pertama, pengguna memasukkan data yang akan diolah dalam bentuk file berformat.xls atau.csv. Pengguna juga dapat memasukkan data dari basis data. Kedua, pengguna dapat melakukan

60 38 seleksi atribut serta melihat distribusi atribut. Seleksi atribut digunakan untuk memilih atribut tertentu yang akan dihapus. Distribusi atribut digunakan untuk melihat variasi nilai dalam setiap atribut berserta jumlahnya dalam bentuk tabel maupun grafik. Tahap kedua ini merupakan tahap pilihan sehingga tidak harus dikerjakan. Ketiga, pengguna harus memasukkan nilai parameter M dan D sebelum proses deteksi outlier dilakukan. Kemudian sistem akan menghitung jumlah blok yang diperlukan berdasarkan jumlah data yang dimasukkan, jumlah atribut serta kapasitas memori Java Virtual Machine (JVM) yang tidak terpakai. Setelah itu data dikelompokkan ke dalam blok yang telah dibuat. Kemudian, setiap data akan dihitung jaraknya (Euclidean distance) dengan data lainnya. Dua buah data dianggap sebagai tetangga apabila nilai Euclidean distance kurang dari sama dengan nilai parameter D. Saat perhitungan tetangga sebuah data telah mencapai M+1, maka data tersebut dianggap sebagai bukan outlier. Sebaliknya jika hingga pengecekan dengan data terakhir jumlah tetangga sebuah data belum mencapai M+1 maka data tersebut merupakan outlier. Tahapan proses di atas dapat dilihat pada gambar 4.1 di bawah ini.

61 39 Start Data tipe.xls Seleksi atribut? Ya Proses seleksi atribut Data tipe.csv Data dari basis data Tidak Distribusi atribut? Ya Proses distribusi atribut Tidak Masukkan M dan D Proses deteksi outlier Tampilkan outlier End Gambar 4.1 Proses Umum Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested-Loop Output Sistem Keluaran yang diperoleh dari sistem yang dibangun ini terbagi menjadi dua bagian sebagai berikut: 1. Proses input menampilkan :

62 40 a. Data yang dipilih dalam bentuk tabel data, jumlah data b. Daftar nama atribut 2. Proses deteksi outlier menampilkan : a. Outlier beserta daftar nilai untuk setiap atribut b. Jumlah data c. Jumlah outlier d. Lama deteksi outlier 4.3 Perancangan Struktur Data Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop ini menggunakan struktur data berupa graph. Pemilihan penggunaan struktur data graph karena dapat membantu penyimpanan data dengan banyak atribut serta untuk menghubungkan satu data dengan data lainnya. Setiap data akan dianggap sebagai vertex. Setiap vertex memiliki label serta nilai. Nilai setiap vertex disimpan dalam bentuk list karena setiap vertex dapat memiliki lebih dari satu atribut. Penggunaan algoritma Block-based Nested-Loop mengharuskan adanya pembentukan blok-blok data untuk membantu proses load data ke memori. Setiap blok berisi sekumpulan vertex yang jumlahnya disesuaikan dengan perhitungan blok. Setiap blok memiliki nomor blok, isi blok, jumlah anggota, sisa dan status first array. Nomor blok digunakan untuk membantu pertukaran blok selama proses deteksi outlier berlangsung. Saat pembagian vertex ke dalam sejumlah blok, ada kemungkinan terdapat sisa vertex karena jumlah data tidak habis dibagi

63 41 dengan jumlah blok. Sisa vertex ini akan dimasukkan ke blok tertentu. Karena tidak ada aturan khusus mengenai penempatan vertex sisa tersebut, peneliti menetapkan untuk memasukkannya ke dalam blok dengan nomor urut terakhir. Status first array bertipe boolean dan digunakan sebagai penanda bahwa sebuah blok sudah pernah menjadi first array. Status ini diperlukan sebab sesuai dengan aturan dalam algoritma Block-based Nested-Loop, sebuah blok hanya dapat sekali menjadi first array. Ilustrasi struktur data yang digunakan oleh sistem ini dapat dilihat pada gambar di bawah ini. Input data sejumlah 8 baris dengan 3 atribut Nama Atribut 1 Atribut 2 Atribut 3 A B C D E F G H Buat Graph (8) Index Dibentuk matriks jarak (edge). Karena data berjumlah 8 maka dibentuk matriks 8x8. Untuk pertemuan indeks yang sama akan diberi nilai 0 dan pertemuan indeks yang berbeda akan diberi nilai Dibentuk vertex kosong sebanyak 8 buah

64 42 Insert Vertex Label A Vertex[0] = index Vertex[7] = A H List nilai StatusUnmarked = true StatusNonOutlier =false Label H List nilai StatusUnmarked = true StatusNonOutlier =false

65 43 Hitung jumlah blok dan pembagian vertex ke dalam blok Diasumsikan pada contoh kasus ini, diperoleh : jumlah blok = 3 data per blok = 2 sisa = 2 sisa lalu dimasukkan ke blok terakhir A B C D Blok 1 Blok 2 E F G H Blok 3 Insert edge dan pencarian outlier First Array Second Array Blok 1 Status first array blok 1 harus false baru dimasukkan ke First Array Blok 1 dan Blok 2 Blok 1 dan Blok 3 Untuk tiap vertex dalam blok 1 : -jumlah tetangga <= M -status unmarked = true -status nonoutlier = false Setiap vertex yang berada dalam blok 1 dihitung euclidean distance dan jumlah tetangganya

66 44 Status first array blok 1 = true First Array Second Array Blok 3 Status first array blok 3 harus false baru dimasukkan ke First Array Blok 3 dan Blok 1 Blok 3 dan Blok 2 Untuk tiap vertex dalam blok 3 : -jumlah tetangga <= M -status unmarked = true -status nonoutlier = false Setiap vertex yang berada dalam blok 3 dihitung euclidean distance dan jumlah tetangganya Status first array blok 3 = true First Array Second Array Blok 2 Status first array blok 2 harus false baru dimasukkan ke First Array Blok 2 dan Blok 3 Blok 2 dan Blok 1 Untuk tiap vertex dalam blok 2 : -jumlah tetangga <= M -status unmarked = true -status nonoutlier = false Setiap vertex yang berada dalam blok 2 dihitung euclidean distance dan jumlah tetangganya Status first array blok 2 = true Karena status first array blok 1 = true, maka blok 1 tidak dimasukkan lagi ke first array. Hal ini menandakan seluruh blok telah dicek outliernya. Kemudian proses

67 45 pencarian outlier selesai. Lalu setiap vertex yang memiliki status non outlier = false akan ditampilkan sebagai outlier. 4.4 Diagram Use Case Diagram use case digunakan untuk menggambarkan interaksi antara pengguna dengan sistem. Pengguna sistem ini sebanyak satu orang. Fungsi yang dapat dijalankan oleh pengguna sistem ini adalah fungsi memasukkan data dalam bentuk file.xls,.csv atau tabel dari basis data. Fungsi berikutnya itu seleksi atribut dan distribusi atribut. Fungsi berikutnya yaitu fungsi proses pencarian outlier dari data yang dimasukkan. Fungsi terakhir yaitu fungsi menyimpan hasil deteksi outlier dalam bentuk file. Diagram use case dari sistem pendeteksi outlier menggunakan algoritma Block-based Nested-Loop ini dapat dilihat pada gambar 4.2 di bawah ini. Gambar 4.2 Diagram Use Case Detail tabel ringkasan dan skenario use case dapat dilihat pada bagian lampiran dalam tugas akhir ini pada lampiran 1 dan 2.

68 Perancangan Sistem Diagram Konteks Pengguna Data.xls, data.csv, tabel dalam basis data, M, D Outlier, jumlah outlier, jumlah data, lama deteksi outlier Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested-Loop Gambar 4.3 Diagram Konteks Diagram Aktivitas Diagram aktivitas digunakan untuk menunjukan aktivitas yang dikerjakan oleh pengguna dan sistem dalam setiap use case yang disebutkan dalam gambar 4.1. Berikut adalah diagram aktivitas dari setiap use case: 1. Diagram Aktivitas Input Data File.xls,.csv atau Tabel Dari Basis Data 2. Diagram Aktivitas Pencarian Outlier 3. Diagram Aktivitas Simpan Hasil Pencarian Outlier 4. Diagram Aktivitas Seleksi Atribut 5. Diagram Aktivitas Distribusi Atribut Detail diagram aktivitas dari setiap use case dapat dilihat pada bagian lampiran dalam tugas akhir ini pada lampiran 3.

69 Diagram Kelas Analisis Gambar 4.4 Diagram Kelas Analisis

70 48 Detail tabel diagram kelas analisis dapat dilihat pada bagian lampiran dalam tugas akhir ini pada lampiran Diagram Sequence Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop ini memiliki beberapa sequence diagram dalam proses perancangannya. Berikut adalah sequence diagram dari Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested-Loop. 1. Diagram Sequence Input Data File.xls,.csv atau Tabel Dari Basis Data 2. Diagram Sequence Pencarian Outlier 3. Diagram Sequence Simpan Hasil Pencarian Outlier 4. Diagram Sequence Seleksi Atribut 5. Diagram Sequence Distribusi Atribut Untuk penjelasan detail dari masing masing diagram sequence dapat dilihat pada lampiran yang terdapat pada tugas akhir ini pada lampiran 5.

71 Diagram Kelas Desain Gambar 4.5 Diagram Kelas Desain

72 50 HalamanAwal -titlelabel : JLabel -footer1label : JLabel -footer2label : JLabel -masukbutton : JButton -icon : JLabel -halamanawaldesktoppane : JDesktopPane -halamanawalpanel : Jpanel +HalamanAwal() : <<constructor>> -masukbuttonactionperformed (java.awt.event.actionevent evt) : void HalamanUtama -atributdfield : JTextField -atributdlabel : JLabel -atributmfield : JTextField - atributmlabel : JLabel -bantuanbutton : JButton -buttonpanel : JPanel -checkallbutton : JButton -deteksioutliertabel : JTable -distatributbutton : JButton -hapusatributbutton : JButton -hapusatributlabel : JLabel -hapusatributtable : JTable -hasiloutliertextarea : JTextArea -jtabbedpane1 : JTabbedPane -jumdatafield : JTextField -jumdatalabel : JLabel -jumlahdatafield : JTextField -jumlahdatalabel : JLabel -keluarbutton : JButton -namaalgolabel : JLabel -paneldeteksioutlier : JPanel -panelpreprocess : JPanel -pathfield : JTextField -pilihdbbutton : JButton -pilihfilebutton : JButton -preprocesstabel : JTable -prosesbutton : JButton -simpanbutton : JButton -submitdatabutton : JButton -titlelabel : JLabel -titlepanel : JPanel -uncheckallbutton : JButton cb_table :

73 51 CheckBoxTableModel fm : SeleksiAtribut con : DatabaseConnection +HalamanUtama() : <<constructor>> +HalamanUtama(DatabaseConnection db, String namatabel) : <<constructor>> +pilihfile() : void +pilihxls(jfilechooser chooser, String nama_file, String pola, String pola2) : void +pilihcsv(jfilechooser chooser, String nama_file, String pola, String pola2) : void +tampiltabelbasisdata(databaseconnection db, String namatabel) : void +cekatribut(string x, List<String> hapus) : boolean +cekatribut2(string x, Vector kolom) : boolean +updatecellwidth(jtable t) : void +adjustrowsizes(jtable jtable) : void +adjustcolumnsizes(jtable table, int column, int margin) : void +tandaisemua() : void +bataltandai() : void +hapusatribut() : void +distribusiatribut() : void +submitdata() : void +prosesdata() : void +simpanhasil() : void Database -connection : Connection +getconnoracle(string url, String user, String pwd) : static boolean +getconnmysql(string url, String user, String pwd) : static boolean +displaytableoracle(connection conn) : ResultSet +displaytablemysql(connection conn) : ResultSet +displaytable(connection conn, String namatabel) : ResultSet DatabaseConnection -connection : static Connection +setconnection(connection aconnection) : static void +isconnectedoracle(string url, String user, String pwd) : boolean +isconnectedmysql(string url, String user, String pwd) : boolean +connecttooracle(string url, String user, String pwd) : Connection +connecttomysql(string url, String user, String pwd) : Connection +getconnection() : Connection +closeconnection(string url, String user, String pwd) : boolean

74 52 CheckBoxTableModel colom : String[ ] nama_atribut : List<String> fm : SeleksiAtribut lfm : List<SeleksiAtribut> +CheckBoxTableModel : <<constructor>> +getrowcount() : int +getcolumnname(int col) : String +getvalueat(int rowindex, int columnindex) : Object +getcolumnclass(int columnindex) : Class +setvalueat(object val, int rowindex, int columnindex) : void +iscelleditable(int row, int col) : boolean +add(int x,seleksiatribut field_m) : void +removerow() : void +removerow2() : void SeleksiAtribut -atribut : List<String> -atribut2 : String -pilih : Boolean +SeleksiAtribut() : <<constructor>> +SeleksiAtribut(String vl, boolean st) : <<constructor>> +getpilih() : boolean +setpilih(boolean pilih) : void +getatribut() : List<String> +setatribut(list<string> atribut) : void +getatribut2() : String +setatribut2(string atribut2) : void GraphController g : Graph +deteksioutlier(int row) : void +tampilhasil(jtable t, double m, double d, String jumdata, String path) : String Graph edge : double[ ][ ] size : int vertex : Vertex[ ] block : Block[ ]

75 53 +Graph(int a) : <<constructor>> +insertvertex(string label, List<Double> nilai) : void +insertblock(int no_urut, List<Integer> daftar_vertex) : void +insertedge(int i, int j, double nilai) : void +euclidean(int a, int b) : double +NestedLoop(JTable tabel, double m, double d) : void +displaymatrix() : void +displayoutlier(jtable t, double m, double d, String jumdata, String path) : String Block -no_urut : int -jum_anggota : int -jum_blok : int -sisa : int -isi_blok : List<Integer> -firstarray : boolean +Block() : <<constructor>> +Block(int no_urut, List<Integer> dv) : <<constructor>> +getno_urut() : int +setno_urut(int no_urut) : void +getjum_anggota() : int +setjum_anggota(int jum_anggota) : void +getjum_blok() : int +setjum_blok(int jum_blok) : void +getsisa() : int +setsisa(int sisa) : void +isfirstarray() : boolean +setfirstarray(boolean firstarray) : void +getisi_blok() : List<Integer> +setisi_blok(list<integer> isi_blok) : void Vertex -label : String -unmarked : boolean -non_outlier : boolean -nilai : List<Double> -jumlah_tetangga : int +Vertex() : <<constructor>> +Vertex(String label, List<Double> nilai) : << constructor>> +getlabel() : String

76 54 +setlabel(string label) : void +getnilai() : List<Double> +setnilai(list<double> nilai) : void +getjumlah_tetangga() : int +setjumlah_tetangga(int jumlah_tetangga) : void +isunmarked() : boolean +setunmarked(boolean unmarked) : void +isnon_outlier() : boolean +setnon_outlier(boolean non_outlier) : void HalamanBantuan -jdesktoppane1 : JDesktopPane -jscrollpane1 : JScrollPane -jtextarea1 : JTextArea -keluarbutton : JButton +HalamanBantuan() : <<constructor>> -keluarbuttonactionperformed(java.awt.event.actionevent evt) : void HalamanDistribusiAtribut -atributcombo : JComboBox -jdesktoppane1 : JDesktopPane -jlabel2 : JLabel -jlabel3 : JLabel -jpanel1 : JPanel1 -jpanel2 : JPanel2 -keluarbutton : JButton -lihatgrafikbutton : JButton -tabeldistribusi : JTable model : JTable -count : int + HalamanDistribusiAtribut(java.awt.Frame parent, List<String> daftaratribut, JTable tabel) : <<constructor>> -daftaratribut(list<string> daftaratribut, JTable tabel) : void -pilihatribut() : void -viewgrafik() : void +getcount() : int +setcount(int count) : void BarChart +tampil(int[][] v, String[][] n, String[][] t) : void

77 55 HalamanKonfirmasiKeluar -jdesktoppane1 : JDesktopPane -jpanel1 : JPanel -konfirmasilabel : JLabel -tidakbutton : JButton -yabutton : JButton +HalamanKonfirmasiKeluar() : <<constructor>> -yabuttonactionperformed(java.awt.event.actionevent evt) : void -tidakbuttonactionperformed(java.awt.event.actionevent evt) : void HalamanMissingValues -jdesktoppane1 : JDesktopPane -jpanel1 : JPanel -missingvaluetarea : JTextArea -tidakbutton : JButton -yabutton : JButton model : DefaultTableModel +HalamanMissingValues(DefaultTableModel tabel) : <<constructor>> -yabuttonactionperformed(java.awt.event.actionevent evt) : void -tidakbuttonactionperformed(java.awt.event.actionevent evt) : void HalamanPilihDB -batalbutton : JButton -databasefield : JTextField -databaselabel : JLabel -kuerilabel : JLabel -okbutton : JButton -passwordfield : JTextField -passwordlabel : JLabel -pilihkoneksicombo : JComboBox -pilihkoneksidesktoppane : JDesktopPane - pilihkoneksipanel : JPanel - titlelabel : JLabel - urlfield : JTextField - usernamefield : JTextField - usernamelabel : JLabel +HalamanPilihDB() : <<constructor>> -pilihbasisdata() : void -koneksi() : void -batalbuttonactionperformed(java.awt.event.actionevent evt) : void HalamanPilihTabel

78 56 -batal1button : JButton -daftartablecombo : JComboBox -jdesktoppane1 : JDesktopPane -jlabel1 : JLabel -jlabel2 : JLabel -jpanel1 : JPanel -okpilihtabelbutton : JButton con : DatabaseConnection +HalamanPilihTabel(DatabaseConnection c, int db) : <<constructor>> -batallbuttonactionperformed(java.awt.event.actionevent evt) : void -daftartabel(int db) : void -pilihtabel() : void Detail Algoritma Tiap Method Pada Tiap Kelas Detail Algoritma Pada Method di Kelas HalamanUtama Tabel 4.2 Tabel Kelas HalamanUtama Nama method Fungsi method Algoritma method pilihfile() Menampilkan dialog untuk memilih file.xls atau.csv 1. Menampilkan dialog Open File 2. Jika file yang pilih berformat.xls, panggil method pilihxls() 3. Jika file yang pilih berformat.csv, panggil method pilihcsv() pilihxls(jfilechooser, String, String, String) Membaca file dalam format.xls dan menampilkannya ke dalam tabel data 4. Jika file yang dipilih selain yang berformat.xls dan.csv, menampilkan pesan peringatan 1. Membuat vector baru dengan nama columnnames dan data 2. Inisialisasi row = 0 3. Selama row < sheet.getrows(), ke langkah 4, jika tidak ke langkah 11

79 57 4. Membuat vector baru dengan nama rows 5. Inisialisasi column = 0 6. Selama column < sheet.getcolumn(), ke langkah 6, jika tidak ke langkah Jika row = 0, ke langkah 6, jika tidak ke langkah 7 8. Cell (column, row) dari file.xls ditambahkan ke vector columnnames. column++, lalu kembali ke langkah 6 9. Cell (column, row) dari file.xls ditambahkan ke vector rows. column++, lalu kembali ke langkah Jika row!= 0, maka rows ditambahkan ke vector data. Lalu row++ dan kembali ke langkah Mengeset model tabel preprocess dengan nama kolom = vector columnnames dan data = vector data 12. Inisialisasi nilai i = Selama i < model.getcolumncount(), ke langkah 13, jika tidak ke langkah Inisialisasi nilai j = Selama j < model.getrowcount(), ke langkah 15, jika tidak ke

80 58 pilihcsv(jfilechooser, String, String, String) Membaca file dalam format.csv dan menampilkannya ke dalam tabel data langkah Jika i=0 ke langkah 16, jika i!=0 ke langkah Jika model.getvalue(j,0).isempty( ) = true, i = model.getcolumncount() -1 lalu break, jika false j++ lalu ke langkah Jika model.getvalue(j,i).isempty() = true atau model.getvalue(j,i).matches (pola) = true atau model.getvalue(j,i). matches (pola2)= true, panggil HalamanMissingValues, i = model.getcolumncount() - 1 lalu break Jika false semua, j++ lalu kembali ke langkah i++ lalu kembali ke langkah Inisialisasi i = Selama i < model.getcolumncount() tambahkan nama kolom ke cb_table 1. Membuat vector baru dengan nama columnnames dan data 2. Membaca baris pertama dari file.csv 3. Selama masih terdapat cell yg berisi nilai tertentu, menambahkan setiap nilai cell pada baris pertama ke vector columnnames. Jika tidak ke langkah 4

81 59 4. Selama masih ada baris selanjutnya, ke langkah 5 jika tidak ke langkah 6 5. Selama masih terdapat cell yg berisi nilai tertentu, menambahkan setiap nilai cell ke vector row. Jika tidak, row ditambahkan ke vector data lalu pindah ke baris berikutnya dan kembali ke langkah 4 6. Mengeset model tabel preprocess dengan nama kolom = vector columnnames dan data = vector data 7. Inisialisasi nilai i = 0 8. Selama i < model.getcolumncount(), ke langkah 8, jika tidak ke langkah Inisialisasi nilai j = Selama j < model.getrowcount(), ke langkah 10, jika tidak ke langkah Jika model.getvalue(j,i).isempty() = true atau model.getvalue(j,i).matches (pola) = true atau model.getvalue(j,i). matches (pola2)= true, panggil HalamanMissingValues, i = model.getcolumncount() - 1 lalu break Jika false semua, j++ lalu kembali ke langkah 9

82 60 tampiltabelbasisdata (DatabaseConnection, String) Membaca tabel dari basis data dan menampilkannya ke dalam tabel data 12. i++ lalu kembali ke langkah Inisialisasi i = Selama i < model.getcolumncount() tambahkan nama kolom ke cb_table 1. Mengambil tabel dari basis data dengan memaggil method displaytable(db.getconnectio n, namatabel) 2. Membuat vector columnname dan vector data 3. Inisialisasi i = 1 4. Selama i <= columncount, ambil nama kolom ke-i dari basis data dan ditambahkan ke columnname 5. Selama rs.next = true kerjakan langkah Inisialisasi i = 1, buat vector data2 7. Selama i <= columncount, ambil data pada setiap baris di kolom ke-i dan ditambahkan ke data2 8. Tambahkan data2 ke dalam data, kembali ke langkah 5 9. Mengeset model tabel preprocess dengan nama kolom = vector columnnames dan data = vector data 10. Inisialisasi nilai i = Selama i <

83 61 cekatribut (String, List<String>) Mengecek namanama atribut yang akan dihapus berdasarkan tabel model.getcolumncount(), ke langkah 12, jika tidak ke langkah Inisialisasi nilai j = Selama j < model.getrowcount(), ke langkah 14, jika tidak ke langkah Jika i=0 ke langkah 15, jika i!=0 ke langkah Jika model.getvalue(j,0).isempty( ) = true, i = model.getcolumncount() -1 lalu break, jika false j++ lalu ke langkah Jika model.getvalue(j,i).isempty() = true atau model.getvalue(j,i).matches (pola) = true atau model.getvalue(j,i). matches (pola2)= true, i = model.getcolumncount() - 1 lalu break Jika false semua, j++ lalu kembali ke langkah i++ lalu kembali ke langkah Inisialisasi i = Selama i < model.getcolumncount() tambahkan nama kolom ke cb_table 1. Inisialisasi i = 0 2. Selama i < hapus.size ke langkah 3, jika tidak ke

84 62 atribut langkah 4 3. Jika hapus.get(i).equals(x), kembalikan nilai true cekatribut2 (String, Vector) updatecellwidth (JTable) adjustrowsizes (JTable) Mengecek namanama atribut yang tidak dihapus dari tabel data Mengatur lebar cell pada setiap kolom dari tabel data agar sesuai dengan ukuran karakter terpanjang Mengatur ukuran baris pada tabel data 4. Kembalikan nilai false 1. Inisialisasi i = 0 2. Selama i < kolom.size ke langkah 3, jika tidak ke langkah 4 3. Jika kolom.get(i).equals(x), kembalikan nilai true 4. Kembalikan nilai false 1. Memanggil method adjustrowsizes(t) 2. Inisialisasi i = 0 3. Selama i < t.getcolumncount() panggil method adjustcolumnsizes(t,i,2) 1. Inisialisasi row = 0 2. Selama row < jtable.getrowcount() ke langkah 3 3. maxheight = 0 4. Inisialisasi column = 0 5. Selama column < 6. jtable.getcolumncount(), bandingkan tinggi baris kerow, kolom ke-column dengan maxheight lalu simpan nilai maksimum ke maxheight 7. Tentukan tinggi baris ke-row dengan memanggil method

85 63 adjustcolumnsizes (JTable) tandaisemua() bataltandai() hapusatribut() Mengatur ukuran kolom pada tabel data Memberi tanda check pada semua nama atribut pada tabel atribut Menghapus tanda check pada semua nama atribut pada tabel atribut Menghapus atribut pada tabel data sesuai dengan yang diberi tanda pada tabel atribut jtable.setrowheight(row, maxheight) lalu kembali ke langkah 2 1. Inisialisasi r = 0, lebar nama kolom = width = comp.getpreferredsize().widt h 2. Selama r < table.getrowcount, lebar kolom pada baris ke-r = currentwidth lalu ambil nilai maksimum antara width dan currentwidth kemudian disimpan dalam width 3. Menentukan lebar kolom, col.setwidth(width) 1. Inisialisasi i = 0 2. Selama i < cb.table.getrowcount, cb_table.setvalueat(true,i,1) 1. Inisialisasi i = 0 2. Selama i < cb.table.getrowcount, cb_table.setvalueat(false,i,1) 1. Membuat list bernama hapus_atribut 2. Inisialisasi i = 0 3. Selama i < cb_table.getrowcount, ke langkah 4 4. Jika cb_table.getvalueat(i,1).equa ls(true), tambahkan cb_table.getvalueat(i,0) ke dalam hapus_atribut 5. Membuat vector columnnames dan data

86 64 distribusiatribut() Menampilkan distribusi atribut dari data yang ada di tabel data 6. Inisialisasi i = 0 7. Selama i < cb_table.getrowcount, ke langkah 8 8. Jika method cekatribut(cb_table.getvalue At(i,0), hapus_atribut) mengembalikan nilai false maka cb_table.getvalueat(i,0) ditambahkan ke columnnames 9. Inisialisasi i = Selama i < row, buat vector rows lalu ke langkah Inisialisasi j = Selama j < column, ke langkah Jika method cekatribut2(model.getcolum nname(j), columnnames) mengembalikan nilai true maka model.getvalueat(i,j) ditambahkan ke rows 14. rows ditambahkan ke data, kembali ke langkah Mengeset model tabel preprocess dengan nama kolom = vector columnnames dan data = vector data 1. Membuat list daftaratribut untuk menampung namanama atribut 2. jumlahatribut = preprocesstabel.getcolumnc ount() 1

87 65 submitdata() prosesdata() Menyalin data tabel dan jumlah data dari tab Preprocess ke tab Deteksi outlier Mengirim data pada tabel data serta nilai D dan M untuk proses pencarian outlier 3. Inisialisasi i = 1 4. Selama i < jumlahatribut, tambahkan nama kolom ke-1 ke dalam daftaratribut 5. Mengirim daftaratribut dan preprocesstabel ke kelas HalamanDistribusiAtribut 1. Mengambil model dari preprocesstabel, preprocesstable.getmodel(), lalu menyimpannya dalam variabel model 2. Mengeset model deteksioutliertabel = model 3. Berpindah ke tab deteksi otulier dengan mengeset jtabbedpane1.setselectedco mponent(paneldeteksioutlier ), jtabbedpane1.setenabledat( 1, true) 1. Membuat pattern untuk karakter angka dan/atau tanda titik yaitu pola = [0-9.]* 2. Membuat pattern untuk karakter tanda titik yaitu pola2 = [.]* 3. Jika jumdatafield.gettext().equal s( ), menampilkan pesan bahwa data kosong 4. Jika isi field D dan/atau M lebih dari 0 karakter dan mengandung karakter selain yang ada pada pola dan pola2, tampilkan pesan bahwa nilai M dan D harus berupa bilangan bulat atau desimal

88 66 simpanhasil() Menyimpan hasil deteksi outlier dalam bentuk file.txt atau.doc 5. Jika isi field D dan/atau M tidak diisi, tampilkan pesan bahwa keduanya harus diisi 6. Jika langkah 3-4 bernilai false, panggil method tampilhasil() (deteksioutliertabel, m, d, jumdatafield.gettext(), pathfield.gettext()) 1. Membuka dialog Save File 2. Membaca lokasi penyimpanan file filechooser.getselectedfile(). getpath() dan disimpan dalam variabel filename 3. Membaca format file yang dipilih filechooser.getfilefilter().get Description() dan disimpan dalam variabel extension 4. Jika extension = "Microsoft Word (*.doc)" maka format file adalah.doc 5. Jika extension = "Text Documents (*.txt)" maka format file adalah.txt 6. Mengambil teks dari text area hasiloutliertextarea.gettext () lalu disimpan dalam hasil_text_area 7. Menampung tiap baris dalam hasil_text_area ke dalam array baca 8. Inisialisasi i = 0 9. Selama i < baca.length, tulis baca ke-i ke dalam file

89 Detail Algoritma Pada Method di Kelas HalamanPilihDB Tabel 4.3 Tabel Kelas HalamanPilihDB Nama method Fungsi method Algoritma method pilihbasisdata() Menampilkan url dari basis data tertentu 1. Jika pilihkoneksicombo.getselec tedindex() == 0 maka urlfield.settext("jdbc:oracle: thin:@localhost:1521:xe") koneksi() Melakukan login ke basis data tertentu 2. Jika pilihkoneksicombo.getselec tedindex() == 1 maka urlfield.settext("jdbc:mysql: //localhost:3306/") 1. Jika field username, password, url dan/atau nama database ada salah satu yang kosong, muncul pesan peringatan bahwa semua data harus diisi, jika tidak ke langkah 2 2. Jika pilihkoneksicombo.getselec tedindex() == 0, maka melakukan login ke basis data Oracle dengan memanggil Database.getConnOracle(url, username, password) lalu ke langkah 3 Jika pilihkoneksicombo.getselec tedindex() == 1, maka melakukan login ke basis data MySQL dengan memanggil Database.getConnMySQL(ur l, username, password) lalu ke langkah 3

90 68 3. Jika login berhasil, tampilkan pesan sukses lalu tampilkan form Halaman Pilih Tabel. Jika tidak berhasil, tampilakan pesan kesalahan Detail Algoritma Pada Method di Kelas HalamanPilihTabel Tabel 4.4 Tabel Kelas HalamanPilihTabel Nama method Fungsi method Algoritma method daftartabel (Connection, int) Menampilkan daftar tabel yang terdapat dalam basis data yang dipilih pengguna 1. Jika db = 0, maka memanggil tabel-tabel dalam basis data Oracle dengan memanggil method displaytableoracle(con. getconnection()) Jika db = 1, maka memanggil tabel-tabel dalam basis data MySQL dengan memanggil method displaytablemysql(con. getconnection()) pilihtabel() Mengirim isi tabel yang dipilih pengguna ke tabel data pada Halaman Utama 2. Mengisi daftar tabel pada form Halaman Pilih Tabel dengan daftartablecombo.addit em(rset.getstring(1)) 1. Mengambil nama tabel yang dipilih pengguna daftartablecombo.gets electeditem() 2. Mengirimkan nama tabel ke kelas Halaman Utama

91 Detail Algoritma Pada Method di Kelas DistribusiAtribut daftaratribut (List<String>, JTable) Tabel 4.5 Tabel Kelas DistribusiAtribut Nama method Fungsi method Algoritma method Menampilkan daftar 1. Inisialisasi i = 0 nama atribut yang ada pada tabel data pilihatribut() Menampilkan distribusi atribut yang dipilih pengguna dari daftar atribut 2. Selama i < daftaratribut.size, tambahkan daftar atribut ke-i ke dalam atributcombo 1. Membuat list bernama listdata 2. Inisialisasi i = 1 3. Selama i < model.getcolumncount() ke langkah 3 4. Jika atribut yang dipilih pengguna = model.getcolumnname(i) maka inisialisasi j = 0 5. Selama j < model.getrowcount(), masukkan seluruh data pada kolom ke-i ke dalam listdata 6. Menghapus duplikasi data dalam listdata dengan memasukkan listdata ke dalam HashSet Kemudian membersihkan listdata dengan listdata.clear() Lalu memasukkan listdata yang telah dihilangkan duplikasinya dengan

92 70 viewgrafik() Mengirim data atribut ke kelas BarChart untuk ditampilkan grafik distribusi dari atribut tersebut listdata = new ArrayList(hashSet) 7. Inisialisasi k = 0 8. Selama k < listdata.size(), inisialisasi l = 0 lalu ke langkah 9 9. Selama l < model.getrowcount(), jika listdata.get(k) = model.getvalueat(l,i) maka setcount(count+1) 10. data[k][0] = listdata.get(k).tostring() data[k][1] = String.valueOf(getCount() ) setcount(0) lalu kembali ke langkah tabeldistribusi dibuat dengan data = array data dan nama kolom = array columnname 1. Inisialisasi i = 0 2. Selama i < tabeldistribusi.getrowc ount(), ambil data pada tabeldistribusi baris kei, kolom ke-0 lalu masukkan ke array ass dan baris ke-i, kolom ke-1 lalu masukkan ke array pars dan baris kei, kolom ke-1 dikonversi ke nilai integer lalu dimasukkan ke array jum 3. Panggil method tampil (jum,ass,ass) yang ada

93 71 di kelas BarChart Detail Algoritma Pada Method di Kelas Graph Tabel 4.6 Tabel Kelas Graph Nama method Fungsi method Algoritma method insertvertex (String, List<Double>) Membuat vertex 1. Membaca input method berupa label dan list nilai insertblock (int, List<Integer>) insertedge (int, int, double) euclidean (int, int) Membuat blok Mengisi nilai edge Menghitung nilai euclidean distance antara dua data 2. Menambah size vertex, vertex[size++] lalu membuat vertex baru dengan label dan nilai yang diinputkan lewat parameter 1. Membaca input method berupa no_urut dan list daftar_vertex 2. Membuat blok baru pada index ke- no_urut dan berisi vertex dalam daftar_vertex yang diinputkan lewat parameter 1. Membaca nilai input parameter yaitu i, j dan nilai 2. Mengisi edge[i][j] dan edge[j][i] dengan nilai 1. Membaca nilai input parameter yaitu a dan b 2. Membuat list data1 dan data2 3. data1 diisi dengan vertex[a].getnilai, data2 diisi dengan vertex[b].getnilai 4. total = 0, i = 0

94 72 NestedLoop (JTable, double, double) Melakukan proses deteksi outlier dengan nilai parameter M dan D yang diinputkan pengguna 5. Selama i < data1.size, hitung total = total + Math.pow(data1.get(i) - data2.get(i), 2.0) 6. Method ini lalu mengembalikan nilai 1. Menerima input tabel, m dan d 2. Membuat list nilaiatribut untuk menampung data nilai setiap vertex dan variabel label bertipe String untuk menyimpan nama label dari setiap vertex 3. Inisialisasi i = 0 4. Selama i < jumbaris, buat listatribut baru lalu inisialisasi j = 0 5. Selama j < jumkolom, Jika j=0 maka label = model.getvalueat(i, j).tostring(). Jika j!= 0 maka nilaiatribut.add(double. parsedouble(model.get ValueAt(i, j).tostring())) 6. Menambahkan vertex baru dengan memanggil method insertvertex(label, nilaiatribut) 7. Hitung jumlah blok dengan perhitungan int hitung_blok = (int)

95 73 (jumbaris * jumkolom * byte_element * 2 / availablememory_jvm) 8. Jika hitung_blok <=1 maka jumlah_blok = 1, data_per_blok = jumbaris, sisa = 0 Jika jumbaris%hitung_blok!= 0 maka jumlah_blok = hitung_blok, data_per_blok = jumbaris/jumlah_blok, sisa = jumbaris%jumlah_blok Jika jumbaris%hitung_blok == 0 maka jumlah_blok = hitung_blok, data_per_blok = jumbaris/jumlah_blok, sisa = 0 9. Membuat list daftar_vertex dan inisialisasi counter = Inisialisasi i = Selama i < jumlah_blok Jika i = jumlah_blok -1 && sisa!= 0 maka data_per_blok = data_per_blok + sisa Membuat daftar_vertex baru Inisialisasi j = 0 Selama j < data_per_blok, tambahkan counter ke

96 74 list daftar_vertex kemudian counter++ Membuat blok baru dengan memanggil method insertblock(i, daftar_vertex) 12. Inisialisasi list first_array = null dan list second_array = null 13. Inisialisasi i = Selama i < jumlah_blok Jika block[selected_fristarra y] belum pernah menjadi first_array maka isi blok tersebut ditampung dalam first_array Inisialisasi j = Selama j < jumlah_blok Jika j = 0, maka size1 dan size2 = first_array Jika j!= 0, maka isi blok dari block[selected_seconda rray] ditampung dalam second_array, size1 = first_array.size() dan size2 = second_array.size() Inisialisasi counter_load_firstarray = 0, k = counter_load_firstarray 16. Selama k < size1, (saat k

97 75 = size1, ke langkah 19) Jika vertex[first_array.get(k)].isunmarked() = true maka index1 = first_array.get(k) Inisialisasi counter_load_secondarr ay = 0, l = counter_load_secondarr ay Selama l < size2, (saat l = size2, ke langkah 18) Jika (k!= l) (k == l && j > 0), cek jika pertama = true maka index2 = first_array.get(l), jika pertama = false maka index2 = second_array.get(l) Jika edge[index1][index2] == -1 maka isi nilai edge dengan memanggil method insertedge(index1, index2, euclidean(index1, index2)) 17. Jika edge[index1][index2] > 0 && edge[index1][index2] <= d && (((k!= l)) (k == l && j > 0)) Maka tambahkan jumlah

98 76 tetangga dari vertex[index1] dengan cara vertex[index1].setjumla h_tetangga(vertex[index 1].getJumlah_tetangga() + 1) Setelah menambahkan cek apakah tetangga dari vertex[index1] tersebut telah mencapai M+1, jika ya maka vertex[index1].setnon_o utlier(true) dan vertex[index1].setunma rked(false), jika tidak maka vertex[index1].setunma rked(true) Kembali ke langkah Jika k == (size1-1), artinya sebuah blok telah dicek seluruh anggotanya maka pertama diberi nilai false sehingga blok tersebut tidak boleh dimasukkan lagi ke dalam first_array. Kembali ke langkah Jika i == 0 && j < jumlah_blok 1 maka selected_secondarray++ Jika i!= 0 && j > 1 && j!= jumlah_blok 1 Cek apakah selected_secondarray == block.length - 1 && j < jumlah_blok 1, jika ya maka

99 77 displayoutlier (Jtable, double, double, String, String) Menampilkan hasil deteksi outlier selected_secondarray = 0, jika selected_secondarray < block.length 1 maka selected_secondarray++ Jika i!= 0 && j == 1 Cek apakah selected_secondarray < block.length - 1 && j < jumlah_blok 1, jika ya maka selected_secondarray++, jika selected_secondarray == block.length - 1 && j < jumlah_blok 1 maka selected_secondarray = 0 Kembali ke langkah Pada tahap ini dilakukan pergantian tempat antara first_array dan second_array dengan cara : block[selected_firstarra y].setfirstarray(true) tukar = selected_firstarray selected_firstarray = selected_secondarray selected_secondarray = tukar Kembali ke langkah t1 = System.nanoTime() 2. Memanggil method NestedLoop(t,m,d) 3. t2 = System.nanoTime()

100 78 4. Inisialisasi i = 0 5. Selama i < vertex.length, jika vertex[i].isnonoutlier = false maka tambahkan jumlah outlier dengan 1 lalu tampilkan vertex[i].getlabel 6. Inisialisasi j = 0 7. Selama j < t.getcolumncount() 8. Inisialisasi k = 0 9. Selama k < t.getrowcount() 10. Jika vertex[i].getlabel()==t. getvalueat(k, 0) maka data pada baris-k tersebut akan ditampilkan 11. Menampilkan jumlah data, jumlah outlier, dan lama deteksi outlier = ((t2 - t1) * java.lang.math.pow(10, -9)) Detail Algoritma Pada Method di Kelas DatabaseConnection Tabel 4.7 Tabel Kelas DatabaseConnection Nama method Fungsi method Algoritma method isconnectedoracle (String, String, String) Mengecek apakah sistem telah terhubung dengan basis data Oracle 1. Jika connecttooracle(url, user, pwd)!= null mengembalikan nilai true 2. Jika

101 79 isconnectedmysql (String, String, String) connecttooracle (String, String, String) connecttomysql (String, String, String) Mengecek apakah sistem telah terhubung dengan basis data MySQL Melakukan koneksi ke basis data Oracle Melakukan koneksi ke basis data MySQL connecttooracle(url, user, pwd) == null mengembalikan nilai false 1. Jika connecttomysql(url, user, pwd)!= null mengembalikan nilai true 2. Jika connecttooracle(url, user, pwd) == null mengembalikan nilai false 1. Membuat koneksi ke basis data Oracle dengan url, username dan password yang diinputkan setconnection(driverm anager.getconnection(ur l, user, pwd)) 2. Jika berhasil maka sistem telah terhubung dengan basis data Oracle 1. Membuat koneksi ke basis data MySQL dengan url, username dan password yang diinputkan setconnection(driverm anager.getconnection(ur l, user, pwd)) 2. Jika berhasil maka sistem telah terhubung dengan basis datamysql

102 Detail Algoritma Pada Method di Kelas Database Tabel 4.8 Tabel Kelas Database Nama method Fungsi method Algoritma method getconnoracle (String, String, String) Mengirimkan url, username dan password yang diinputkan pengguna untuk login ke basis data Oracle 1. Mengecek apakah sistem telah terkoneksi dengan basis data Oracle boolean ok = kon.isconnectedoracle( url, user, pwd) getconnmysql (String, String, String) displaytableoracle (Connection) displaytablemysql (Connection) Mengirimkan url, username dan password yang diinputkan pengguna untuk login ke basis data MySQL Menampilkan daftar tabel yang ada dalam basis data Oracle Menampilkan daftar tabel yang ada dalam basis data MySQL 2. Mengembalikan nilai ok 1. Mengecek apakah sistem telah terkoneksi dengan basis data Oracle boolean ok = kon.isconnectedoracle( url, user, pwd) 2. Mengembalikan nilai ok 1. Membuat kueri untuk menampilkan semua tabel dalam basis data Oracle yaitu query = "select table_name from user_tables" 2. Eksekusi kueri 3. Mengembalikan ResultSet yang berisi daftar tabel yang dihasilkan kueri 1. Membuat kueri untuk menampilkan semua tabel dalam basis data MySQL yaitu query = "show tables" 2. Eksekusi kueri 3. Mengembalikan

103 81 displaytable (Connection, String) Menampilkan isi tabel dari nama tabel yang dipilih oleh pengguna ResultSet yang berisi daftar tabel yang dihasilkan kueri 1. Membuat kueri untuk menampilkan data dari tabel dalam basis data tertentu yaitu query = "select * from "+namatabel 2. Eksekusi kueri 3. Mengembalikan ResultSet berupa isi tabel yang dihasilkan kueri Detail Algoritma Pada Method di Kelas CheckBoxTableModel Tabel 4.9 Tabel Kelas CheckBoxTableModel Nama method Fungsi method Algoritma method add(int, SeleksiAtribut) Mengambil nama seluruh atribut dari tabel data untuk ditambahkan ke dalam tabel atribut 1. Membaca input parameter x dan field_m 2. Menambahkan field_m sebagai data pada index ke-x ke dalam list lfm removerow() Menghapus nama atribut yang telah di hapus, dari tabel data, pada tabel atribut 1. Membuat ArrayList bernama s 2. Selama seleksi atribut < lfm, Lakukan pengecekan atribut mana saja yang dipilih (akan dihapus) Jika seleksi.getpilih() = false maka seleksi ditambahkan ke list s removerow2() Membersihkan isi tabel daftar atribut sebelum data baru dimuat ke Halaman Utama 3. lfm = s 1. Membuat ArrayList bernama s 2. Selama seleksi atribut <

104 82 lfm, Lakukan pengecekan atribut mana saja yang tidak dipilih (tidak dihapus) Jika seleksi.getpilih() = false maka seleksi dihapus dari list s 3. lfm = s Detail Algoritma Pada Method di Kelas BarChart Tabel 4.10 Tabel Kelas BarChart Nama method Fungsi method Algoritma method tampil(int[][], String[][], String[][]) Menampilkan grafik distribusi dari atribut yang dipilih pengguna 1. Membaca nilai parameter input yaitu array v, array n dan array t 2. Inisialisasi i = 0 3. Selama i < n.length, data.setvalue(v[i][1], n[i][0], t[i][0]) 4. Membuat chart dengan data yang diinputkan pada langkah Perancangan Antarmuka Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop ini memiliki desain antarmuka yang digunakan untuk melakukan interaksi dengan pengguna. Antarmuka sistem terdiri dari 7 tampilan yang terdiri dari HalamanAwal, HalamanUtama, HalamanDistribusiAtribut, HalamanPilihDB, HalamanPilihTabel, HalamanBantuan dan HalamanKonfirmasiKeluar.

105 83 HalamanUtama terbagi menjadi dua bagian yaitu Preprocess dan Deteksi Outlier. Detail desain antarmuka dapat dijelaskan sebagai berikut: Halaman Awal Halaman Awal ini akan ditampilkan pertama kali saat pengguna menjalankan sistem. Pada halaman ini terdapat sebuah tombol untuk masuk ke dalam Halaman Utama. Nama Sistem ICON Masuk Gambar 4.6 Tampilan Antarmuka Halaman Awal Halaman Utama (Preprocess) Halaman Utama merupakan tampilan inti dari sistem ini. Di sebelah kiri Halaman Utama terdapat tombol Bantuan dan Keluar. Tombol Bantuan digunakan untuk melihat petunjuk penggunaan serta beberapa aturan yang berkaitan dengan penggunaan sistem. Tombol Keluar digunakan untuk keluar dari sistem ini. Halaman Utama terbagi atas dua tab. Tab pertama bernama Preprocess. Pada tab Preprocess ini, pengguna dapat menjalankan beberapa fungsi sistem. Di bagian tengah Halaman Utama terdapat tombol Pilih File dan Pilih DB yang digunakan untuk melakukan input data yang akan diolah. Pilih File digunakan

106 84 untuk membuka dialog Open File sehingga pengguna dapat memilih file.xls atau.csv dan Pilih DB digunakan untuk menginputkan data tabel dari basis data. Tombol Distribusi Atribut digunakan untuk membuka Halaman Distribusi Atribut. Tombol Hapus, Tandai Semua, dan Batal Tandai Semua digunakan untuk keperluan seleksi atribut. Pada Halaman Utama ini juga terdapat dua buah tabel. Tabel yang letaknya di atas, digunakan untuk menampung data yang diinputkan pengguna dan tabel yang di bawah untuk menampung daftar nama atribut yang ada pada tabel di atas sehingga atribut tertentu dapat dihapus oleh pengguna dengan terlebih dahulu memilih nama atribut pada tabel yang ada di bagian bawah halaman ini. Tombol Submit digunakan untuk berpindah ke tab Deteksi Outlier. Saat tombol Submit ditekan, maka tabel data dan jumlah data pada tab Preprocess ini akan dikirim ke tabel data serta field jumlah data pada tab Deteksi Outlier. Pada halaman ini juga jumlah data yang diinputkan akan ditampilkan beserta lokasi atau sumber data yang diinputkan. Tampilan Antarmuka Halaman Utama tab Preprocess dapat dilihat pada gambar 4.7 di bawah ini. Gambar 4.7 Tampilan Antarmuka Halaman Utama (Tab Preprocess)

107 Halaman Utama (Deteksi Outlier) Bagian atau tab kedua dari Halaman Utama bernama Deteksi Outlier. Pada tab ini, tabel data dan field jumlah datanya telah terisi secara otomatis dengan data dari tab Preprocess. Pada tab ini terdapat dua buah field untuk input data yaitu M dan D. Kedua field ini harus diisi saat akan menekan tombol Proses. Tombol Proses digunakan untuk memulai proses deteksi outlier. Hasil deteksi outlier lalu ditampilkan pada text area di bawah tabel. Pengguna dapat menyimpan hasil deteksi outlier tersebut dengan cara menekan tombol Simpan. Ketika tombol Simpan ditekan maka sistem akan menampilka dialog Save File. Tampilan Antarmuka Halaman Utama tab Deteksi Outlier dapat dilihat pada gambar 4.8 di bawah ini. Gambar 4.8 Tampilan Antarmuka Halaman Utama (Tab Deteksi Outlier)

108 Halaman Distribusi Atribut Halaman Distribusi Atribut ini ditampilkan saat pengguna menekan tombol Distribusi Atribut pada Halaman Utama. Pada halaman ini, terdapat JComboBox yang berisi daftar atribut yang berasal dari tabel data pada Halaman Utama. Kemudian terdapat tabel Detail Isi Atribut yang akan menampilkan distribusi dari setiap atribut. Isi tabel Detail Isi Atribut akan disesuaikan dengan nama atribut yang dipilih dari JComboBox. Kemudian terdapat tombol Lihat Grafik untuk menampilkan grafik distribusi atribut dan tombol Keluar untuk menutup Halaman Distribusi Atribut dan kembali ke Halaman Utama. Tampilan Antarmuka Halaman Distribusi Atribut dapat dilihat pada gambar 4.9 di bawah ini. Daftar Atribut : Detail Isi Atribut Nama Count Lihat Grafik Keluar Gambar 4.9 Tampilan Antarmuka Halaman Distribusi Atribut

109 Halaman Pilih DB Halaman Pilih DB ini ditampilkan saat pengguna menekan tombol Pilih DB pada Halaman Utama. Pada halaman ini terdapat JComboBox yang digunakan untuk memilih basis data. Halaman ini juga berisi beberapa field yaitu username, password, database dan url. Field-field tersebut digunakan untuk melakukan login ke basis data yag dipilih dari JComboBox. Tombol OK digunakan untuk melakukan koneksi ke basis data. Tombol Batal digunakan untuk menutup Halaman Pilih DB ini dan kembali ke Halaman Utama. Tampilan Antarmuka Halaman Pilih DB dapat dilihat pada gambar 4.10 di bawah ini. Oracle Username : Password : Database : URL : OK Batal Gambar 4.10 Tampilan Antarmuka Halaman Pilih DB

110 Halaman Pilih Tabel Halaman Pilih Tabel ini ditampilkan saat pengguna telah berhasil melakukan koneksi dari Halaman Pilih DB. Terdapat sebuah JComboBox pada halaman ini yang digunakan untuk pengguna memilih tabel dari basis data. Selanjutnya terdapat tombol OK yang digunakan untuk menginputkan data tabel ke sistem lalu masuk ke Halaman Utama. Tombol Batal digunakan untuk kembali ke Halaman Utama tanpa menginputkan data. Tampilan Antarmuka Halaman Pilih Tabel dapat dilihat pada gambar 4.11 di bawah ini. Nama tabel : OK Batal Gambar 4.11 Tampilan Antarmuka Halaman Pilih Tabel Halaman Bantuan Halaman Bantuan ini ditampilkan saat pengguna menekan tombol Bantuan di Halaman Utama. Jika ingin keluar dari halaman ini dan kembali ke Halaman Utama maka pengguna menekan tombol Keluar. Tampilan Antarmuka Halaman Bantuan dapat dilihat pada gambar 4.12 di bawah ini.

111 89 Petunjuk dan Aturan Penggunaan Program Keluar Gambar 4.12 Tampilan Antarmuka Halaman Bantuan Halaman Konfirmasi Keluar Halaman Konfirmasi Keluar ini ditampilkan saat pengguna menekan tombol Keluar di Halaman Utama. Jika pengguna yakin untuk keluar dari sistem, maka menekan tombol YA. Jika tidak ingin keluar dari sistem dan kembali ke Halaman Utama maka pengguna menekan tombol TIDAK. Tampilan Antarmuka Halaman Konfirmasi Keluar dapat dilihat pada gambar 4.13 di bawah ini. Konfirmasi keluar YA TIDAK Gambar 4.13 Tampilan Antarmuka Halaman Konfirmasi Keluar

112 BAB 5 IMPLEMENTASI SISTEM Pada bab ini berisi tentang implementasi sistem yang dibuat berdasarkan pada analisis dan perancangan sistem dalam bab sebelumnya. Implementasi aplikasi ini dilakukan dengan menggunakan NetBeans IDE pada komputer dengan spesifikasi processor Intel Core 2 Duo 2.00 Ghz, RAM 2.00 Gb. Implementasi sistem terdiri dari implementasi antarmuka, implementasi struktur data dan implementasi kelas. Daftar nama kelas yang diimplementasikan dalam sistem ini dapat dilihat pada tabel 5.1 di bawah ini. Tabel 5.1 Tabel Nama Kelas yang Diimplementasikan dalam Sistem No Nama Kelas Nama File Fisik Nama File Executable 1 HalamanAwal HalamanAwal.form HalamanAwal. class 2 HalamanUtama HalamanUtama.form HalamanUtama.class 3 HalamanPilihDB HalamanPilihDB.form HalamanPilihDB. class 4 HalamanPilihTabel HalamanPilihTabel.form HalamanPilihTabel. class 5 HalamanDistribusiA tribut HalamanDistribusiAtribut.f orm HalamanDistribusiAtri but. class 6 HalamanBantuan HalamanBantuan.form HalamanBantuan. class 7 HalamanKonfirmasi Keluar HalamanKonfirmasiKeluar.form HalamanKonfirmasiK eluar. Class 8 HalamanMissingVal ues HalamanMissingValues.for m HalamanMissingValue s. class 9 Vertex Vertex.java Vertex. class 10 Graph Graph.java Graph. class 11 Block Block.java Block.class 12 SeleksiAtribut SeleksiAtribut.java SeleksiAtribut. class 13 DatabaseConnection DatabaseConnection.java DatabaseConnection. class 14 Database Database.java Database. class 15 CheckBoxTableMo CheckBoxTableModel.java CheckBoxTableModel 90

113 91 del. class class 16 BarChart BarChart.java BarChart. class 17 GraphController GraphController.java GraphController. class 5.1 Implementasi Antarmuka Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop telah selesai dibangun, maka pada bab ini akan ditampilkan antarmuka dari sistem tersebut Implementasi Halaman Awal Pada saat program pertama kali dijalankan maka akan ditampilkan form seperti pada gambar 5.1 di bawah ini : Gambar 5.1 Antarmuka Halaman Awal Listing program terdapat pada lampiran 6. Pada Halaman Awal ini terdapat tombol Masuk yang digunakan untuk membuka Halaman Utama.

114 Implementasi Halaman Utama Halaman ini merupakan halaman inti dari aplikasi Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested-Loop. Semua proses utama aplikasi ini terdapat di dalam halaman ini. Bagian Halaman Utama yang akan ditampilkan pertama kali yaitu tab Preprocess. Pada tab Preprocess, pengguna dapat mempersiapkan data yang diinputkan agar siap diolah. Tampilan Halaman Utama, tab Preprocess dapat dilihat pada gambar 5.2 di bawah ini. Gambar 5.2 Antarmuka Halaman Utama, tab Preprocess Jika pengguna ingin mengolah data berformat.xls atau.csv, maka pengguna menekan tombol Pilih File untuk mencari data. Setelah dipilih maka akan muncul tampilan antarmuka seperti gambar 5.3 dibawah ini:

115 93 Gambar 5.3 Antarmuka Halaman Utama, tab Preprocess (File.xls atau.csv) Pengguna dapat melakukan seleksi atribut dari data yang telah diinputkan dengan memilih nama atribut yang bersangkutan pada tabel atribut. Pengguna dapat memilih seluruh atribut dengan menekan tombol Tandai Semua atau membatalkan semua atribut yang telah dipilih dengan menekan tombol Batal Tandai Semua. Setelah pengguna menekan tombol Hapus, maka atribut yang telah dipilih akan dihapus dari tabel data. Tampilan untuk menghapus atribut dapat dilihat pada gambar 5.4 di bawah ini.

116 94 Gambar 5.4 Antarmuka Halaman Utama, tab Preprocess (Seleksi atribut) Setelah data yang diinputkan telah siap untuk diproses untuk pencarian outlier, pengguna menekan tombol Submit agar Halaman Utama secara otomatis akan membuka tab Deteksi Outlier. Tampilan Halaman Utama tab Deteksi Outlier dapat dilihat pada gambar 5.5 di bawah ini.

117 95 Gambar 5.5 Antarmuka Halaman Utama, tab Deteksi Outlier Pengguna lalu dapat memproses data untuk dicari outliernya pada halaman ini. Pengguna harus memasukkan nilai M dan D sebelum menekan tombol Proses. Saat proses deteksi outlier berhasil dilakukan, tampilannya akan menjadi seperti gambar 5.6 di bawah ini. Gambar 5.6 Antarmuka Halaman Utama, tab Deteksi Outlier (hasil deteksi outlier)

118 96 Setelah hasil deteksi outlier ditampilkan, pengguna dapat menyimpan hasil tersebut dengan menekan tombol Simpan. Hasil deteksi outlier ini dapat disimpan ke dalam file berformat.txt atau.doc. Dialog yang ditampilkan untuk menyimpan file dapat dilihat pada gambar 5.7 di bawah ini. Gambar 5.7 Dialog Untuk Menyimpan Hasil Deteksi Outlier Ketika file berhasil disimpan, akan muncul pesan konfirmasi seperti gambar 5.8 di bawah ini. Gambar 5.8 Pesan Sukses Menyimpan File Hasil Deteksi Outlier Implementasi Halaman Pilih DB Halaman ini ditampilkan saat pengguna menekan tombol Pilih DB pada Halaman Utama. Tampilan halaman Pilih DB dapat dilihat pada gambar 5.9 di bawah ini.

119 97 Gambar 5.9 Antarmuka Halaman Pilih DB Pengguna dapat menginputkan data yang berasal dari sebuah tabel dalam basis data. Halaman Pilih DB digunakan untuk login pengguna ke dalam basis data. Pengguna harus memilih nama basis data, serta menginputkan seluruh data secara lengkap dan benar kemudian menekan tombol OK. Pengguna dapat membatalkan login ke basis data dengan menekan tombol Batal. Ketika koneksi ke basis data berhasil, maka akan muncul dialog konfirmasi seperti pada gambar 5.10 di bawah ini. Gambar 5.10 Pesan Sukses Melakukan Koneksi Ke Basis data Implementasi Halaman Pilih Tabel Halaman ini ditampilkan saat pengguna telah berhasil melakukan koneksi ke basis data. Tampilan halaman Pilih Tabel dapat dilihat pada gambar 5.10 di bawah ini.

120 98 Gambar 5.11 Antarmuka Halaman Pilih Tabel Pada halaman Pilih Tabel, pengguna dapat memilih tabel yang berasal dari basis data yang sebelumnya dipilih. Setelah memilih tabel dari daftar yang tersedia, pengguna menekan tombol OK untuk memuat data dari basis data ke tabel data pada Halaman Utama. Untuk membatalkan input data dari basis data dilakukan dengan menekan tombol Batal. Setelah memilih tabel yang diinginkan, tabel akan ditampilkan pada Halaman Utama seperti gambar 5.12 di bawah ini. Gambar 5.12 Antarmuka Halaman Utama, tab Preprocess (input tabel dari basis data)

121 Implementasi Halaman Distribusi Atribut Pengguna dapat melihat distribusi atribut dari data yang diinputkan dengan menekan tombol Distribusi Atribut yang terdapat pada Halaman Utama. Tampilan halaman distribusi atribut dapat dilihat pada gambar 5.13 di bawah ini. Gambar 5.13 Antarmuka Halaman Distribusi Atribut Pengguna dapat melihat grafik distribusi atribut dengan menekan tombol Lihat Grafik pada halaman distribusi atribut. Tampilan grafik distribusi atribut dapat dilihat pada gambar 5.14 di bawah ini. Gambar 5.14 Antarmuka Grafik Distribusi Atribut

122 Implementasi Halaman Bantuan Pengguna dapat membuka halaman bantuan dengan menekan tombol Bantuan pada halaman utama. Pada halaman bantuan, terdapat petunjuk mengenai cara penggunaan sistem serta beberapa aturan yang penting untuk diperhatikan oleh pengguna sebelum menggunakan sistem. Tampilan halaman bantuan dapat dilihat pada gambar 5.15 di bawah ini. Listing program terdapat pada lampiran 6. Gambar 5.15 Antarmuka Halaman Bantuan Implementasi Halaman Konfirmasi Keluar Halaman konfirmasi keluar ini ditampilkan saat pengguna menekan tombol Keluar pada halaman utama. Halaman ini ditampikan untuk mengkonfirmasi lagi ke pengguna apakah telah yakin untuk keluar dari sistem. Jika ingin keluar dari sistem, pengguna menekan tombol YA. Jika pengguna masih ingin menggunakan sistem maka menekan tombol TIDAK. Tampilan halaman konfirmasi keluar ini dapat dilihat pada gambar 5.16 di bawah ini.

123 101 Gambar 5.16 Antarmuka Halaman Konfirmasi Keluar Listing program terdapat pada lampiran Implementasi Pengecekan Masukan Selain pemrosesan data, sistem ini juga menyediakan error handling untuk mengatasi kesalahan dalam melakukan input ke dalam sistem. Berikut adalah error handling yang dimiliki oleh Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested-Loop. 1. Ketika pengguna memilih sebuah file dengan format selain.txt dan.doc untuk diinputkan ke sistem, maka akan muncul tampilan seperti gambar 5.17 di bawah ini. Gambar 5.17 Pesan Kesalahan (1) 2. Ketika pengguna belum melakukan input data yang lengkap (username, password, nama basis data atau url) saat melakukan login ke basis data di

124 102 halaman pilih DB lalu menekan tombol OK, maka akan muncul tampilan seperti gambar 5.18 di bawah ini. Gambar 5.18 Pesan Kesalahan (2) 3. Ketika pengguna menginputkan data yang salah (username, password, nama basis data atau url) saat melakukan login ke basis data di halaman pilih DB lalu menekan tombol OK, maka akan muncul tampilan seperti gambar 5.19 di bawah ini. Gambar 5.19 Pesan Kesalahan (3) 4. Ketika pengguna belum memasukkan nilai M atau D pada saat menekan tombol Proses di halaman utama tab deteksi outlier, maka akan muncul tampilan seperti gambar 5.20 di bawah ini. Gambar 5.20 Pesan Kesalahan (4)

125 Ketika pengguna memasukkan nilai M atau D berupa karakter selain angka dan menekan tombol Proses di halaman utama tab deteksi outlier, maka akan muncul tampilan seperti gambar 5.21 di bawah ini. Gambar 5.21 Pesan Kesalahan (5) 6. Ketika terdapat kesalahan seperti pemilihan lokasi penyimpanan file hasil deteksi outlier, maka akan muncul tampilan seperti gambar 5.22 di bawah ini. Gambar 5.22 Pesan Kesalahan (6) 7. Ketika pengguna menginputkan dari berupa file.xls,.csv atau tabel dari basis data dan data tersebut mengandung minimal satu baris atau cell yang kosong atau berisi karakter bukan angka, maka akan muncul tampilan seperti gambar 5.23 di bawah ini. Gambar 5.23 Pesan Kesalahan (7)

126 Ketika pengguna menginputkan dari berupa file.xls,.csv atau tabel dari basisdata dan pada data tersebut ada minimal sebuah label yang kosong (kolom pertama dianggap sebagai label), maka akan muncul tampilan seperti gambar 5.24 di bawah ini. Gambar 5.24 Pesan Kesalahan (8) Listing program dari setiap error handling dapat dilihat dalam listing program implementasi dari setiap halaman dalam sistem ini. Khusus untuk HalamanMissingValues, listring program terdapat pada lampiran Implementasi Halaman Open File Halaman Open File adalah sebuah antarmuka untuk pengguna memilih file.xls atau.csv yang akan diolah dalam proses deteksi outlier pada sistem ini. Tampilan untuk open file dapat dilihat pada gambar 5.25 dibawah ini.

127 105 Gambar 5.25 Antarmuka Open File 5.2 Implementasi Struktur Data Sistem Pendeteksi Outlier Menggunakan Algoritma Block-based Nested- Loop menggunakan struktur data graph. Setiap data yang dimasukkan akan dianggap sebagai vertex. Setiap data akan dikelompokkan ke dalam block tertentu. Pada bagian ini akan dijelaskan implementasi struktur data pada kelas Vertex, kelas Graph dan kelas Block Implementasi Kelas Vertex Dalam sistem ini, setiap data yang akan diolah menggunakan sistem ini akan dianggap sebagai vertex. Setiap vertex memiliki atribut berupa label, boolean unmarked, boolean non_outlier, List<Double> nilai dan jumlah tetangga. Implementasi struktur data vertex dapat dilihat pada listing program di bawah ini.

Deteksi Outlier Menggunakan Algoritma Block-based Nested Loop (Studi Kasus: Data Akademik Mahasiswa Prodi PS Universitas XYZ)

Deteksi Outlier Menggunakan Algoritma Block-based Nested Loop (Studi Kasus: Data Akademik Mahasiswa Prodi PS Universitas XYZ) Deteksi Outlier Menggunakan Algoritma Block-based Nested Loop (Studi Kasus: Data Akademik Mahasiswa Prodi PS Universitas XYZ) Fiona Endah Kwa 1, Paulina H. Prima Rosa 2 1, 2 Jurusan Teknik Informatika,

Lebih terperinci

APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY

APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI APLIKASI MASALAH 0/1 KNAPSACK MENGGUNAKAN ALGORITMA GREEDY Skripsi Diajukan untuk Menempuh Salah Satu Syarat Memperoleh Gelar

Lebih terperinci

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DETEKSI OUTLIER MENGGUNAKAN ALGORITMA LOCAL OUTLIER PROBABILITY (LoOP) (STUDI KASUS DATA AKADEMIK MAHASISWA PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS SANATA DHARMA) Skripsi Diajukan Untuk Memenuhi Salah

Lebih terperinci

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI DETEKSI OUTLIER MENGGUNAKAN ALGORITMA LOCAL CORRELATION INTEGRAL (STUDI KASUS: DATA AKADEMIK MAHASISWA TEKNIK INFORMATIKA UNIVERSITAS SANATA DHARMA) Skripsi Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh

Lebih terperinci

DETEKSI OUTLIER MENGGUNAKAN ALGORITMA CONNECTIVITY BASED OUTLIER FACTOR

DETEKSI OUTLIER MENGGUNAKAN ALGORITMA CONNECTIVITY BASED OUTLIER FACTOR DETEKSI OUTLIER MENGGUNAKAN ALGORITMA CONNECTIVITY BASED OUTLIER FACTOR (STUDI KASUS: DATA AKADEMIK MAHASISWA TEKNIK INFORMATIKA UNIVERSITAS SANATA DHARMA) Skripsi Diajukan Untuk Memenuhi Salah Satu Syarat

Lebih terperinci

PENERAPAN DATA MINING UNTUK EVALUASI KINERJA AKADEMIK MAHASISWA MENGGUNAKAN ALGORITMA NAÏVE BAYES CLASSIFIER

PENERAPAN DATA MINING UNTUK EVALUASI KINERJA AKADEMIK MAHASISWA MENGGUNAKAN ALGORITMA NAÏVE BAYES CLASSIFIER PENERAPAN DATA MINING UNTUK EVALUASI KINERJA AKADEMIK MAHASISWA MENGGUNAKAN ALGORITMA NAÏVE BAYES CLASSIFIER I. PENDAHULUAN Mahasiswa merupakan salah satu aspek penting dalam evaluasi keberhasilan penyelenggaraan

Lebih terperinci

IMPLEMENTASI ALGORITMA K-NEAREST NEIGHBOUR UNTUK PREDIKSI WAKTU KELULUSAN MAHASISWA

IMPLEMENTASI ALGORITMA K-NEAREST NEIGHBOUR UNTUK PREDIKSI WAKTU KELULUSAN MAHASISWA IMPLEMENTASI ALGORITMA K-NEAREST NEIGHBOUR UNTUK PREDIKSI WAKTU KELULUSAN MAHASISWA Irwan Budiman 1, Dodon Turianto Nugrahadi 2, Radityo Adi Nugroho 3 Universitas Lambung Mangkurat 1,2,3 irwan.budiman@unlam.ac.id

Lebih terperinci

PERSYARATAN PRODUK. 1.1 Pendahuluan Latar Belakang Tujuan

PERSYARATAN PRODUK. 1.1 Pendahuluan Latar Belakang Tujuan BAB 1 PERSYARATAN PRODUK Bab ini membahas mengenai hal umum dari produk yang dibuat, meliputi tujuan, ruang lingkup proyek, perspektif produk, fungsi produk dan hal umum yang lainnya. 1.1 Pendahuluan Hal

Lebih terperinci

TAKARIR. : Mengelompokkan suatu objek yang memiliki kesamaan. : Kelompok atau kelas

TAKARIR. : Mengelompokkan suatu objek yang memiliki kesamaan. : Kelompok atau kelas TAKARIR Data Mining Clustering Cluster Iteratif Random Centroid : Penggalian data : Mengelompokkan suatu objek yang memiliki kesamaan. : Kelompok atau kelas : Berulang : Acak : Pusat area KDD (Knowledge

Lebih terperinci

3.6 Data Mining Klasifikasi Algoritma k-nn (k-nearest Neighbor) Similaritas atribut numerik

3.6 Data Mining Klasifikasi Algoritma k-nn (k-nearest Neighbor) Similaritas atribut numerik DAFTAR ISI PERNYATAAN... iii PRAKATA... vi DAFTAR ISI... viii DAFTAR GAMBAR... xi DAFTAR TABEL... xiv DAFTAR PERSAMAAN... xv DAFTAR ALGORITMA... xvi DAFTAR LAMPIRAN... xvii INTISARI... xviii ABSTRACT...

Lebih terperinci

SKRIPSI. Diajukan kepada Fakultas Teknologi Informasi Untuk memperoleh Gelar Sarjana Komputer. Oleh: Valentino Putra Parlan NIM:

SKRIPSI. Diajukan kepada Fakultas Teknologi Informasi Untuk memperoleh Gelar Sarjana Komputer. Oleh: Valentino Putra Parlan NIM: Perancangan dan Implementasi Sistem Pengisian Form Akademik Secara Online Dengan Menggunakan Arsitektur MVC (Model View Controller) (Studi Kasus Universitas Kristen Indonesia Toraja) SKRIPSI Diajukan kepada

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Penambangan Data (Data Mining) Pengertian data mining, berdasarkan beberapa orang: 1. Data mining (penambangan data) adalah suatu proses untuk menemukan suatu pengetahuan atau

Lebih terperinci

2. Tinjauan Pustaka. Gambar 2-1 : Knowledge discovery in database

2. Tinjauan Pustaka. Gambar 2-1 : Knowledge discovery in database 2. Tinjauan Pustaka 2.1 Data Mining Data mining merupakan ilmu yang mempelajari tentang proses ekstraksi informasi yang tersembunyi dari sekumpulan data yang berukuran sangat besar dengan menggunakan algoritma

Lebih terperinci

Abidah Elcholiqi, Beta Noranita, Indra Waspada

Abidah Elcholiqi, Beta Noranita, Indra Waspada Abidah Elcholiqi, Beta Noranita, Indra Waspada PENENTUAN BESAR PINJAMAN DI KOPERASI SIMPAN PINJAM DENGAN ALGORITMA K-NEAREST NEIGHBOR (Studi Kasus di Koperasi Simpan Pinjam BMT Bina Insani Pringapus) Abidah

Lebih terperinci

SKRIPSI KLASIFIKASI CALON PEGAWAI DENGAN MENGGUNAKAN METODE K-MEANS CLASSIFICATION OF PROSPECTIVE EMPLOYEES BY USING THE K-MEANS METHOD

SKRIPSI KLASIFIKASI CALON PEGAWAI DENGAN MENGGUNAKAN METODE K-MEANS CLASSIFICATION OF PROSPECTIVE EMPLOYEES BY USING THE K-MEANS METHOD SKRIPSI KLASIFIKASI CALON PEGAWAI DENGAN MENGGUNAKAN METODE K-MEANS CLASSIFICATION OF PROSPECTIVE EMPLOYEES BY USING THE K-MEANS METHOD DONY ENDRIYONO 135610017 PROGRAM STUDI SISTEM INFORMASI SEKOLAH TINGGI

Lebih terperinci

ii

ii KLASIFIKASI PENDAFTAR BEASISWA BIDIKMISI UNIVERSITAS SEBELAS MARET MENGGUNAKAN ALGORITMA C4.5 SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Mencapai Gelar Strata Satu Program Studi Informatika Disusun

Lebih terperinci

IMPLEMENTASI ALGORITMA K-MEANS UNTUK KLASTERISASI MAHASISWA BERDASARKAN PREDIKSI WAKTU KELULUSAN SKRIPSI

IMPLEMENTASI ALGORITMA K-MEANS UNTUK KLASTERISASI MAHASISWA BERDASARKAN PREDIKSI WAKTU KELULUSAN SKRIPSI IMPLEMENTASI ALGORITMA K-MEANS UNTUK KLASTERISASI MAHASISWA BERDASARKAN PREDIKSI WAKTU KELULUSAN SKRIPSI Disusun Oleh : ALVI SYAHRIN NPM. 0934010254 JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

Lebih terperinci

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI. yang tepat. Sistem data mining mampu memberikan informasi yang tepat dan

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI. yang tepat. Sistem data mining mampu memberikan informasi yang tepat dan BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1. Tinjauan Pustaka Sistem data mining akan lebih efektif dan efisiensi dengan komputerisasi yang tepat. Sistem data mining mampu memberikan informasi yang

Lebih terperinci

SKRIPSI RONNY BENEDIKTUS SIRINGORINGO

SKRIPSI RONNY BENEDIKTUS SIRINGORINGO ANALISIS PERBANDINGAN PROSES CLUSTER MENGGUNAKAN K- MEANS CLUSTERING DAN K-NEAREST NEIGHBOR PADA PENYAKIT DIABETES MELLITUS SKRIPSI RONNY BENEDIKTUS SIRINGORINGO 131421021 PROGRAM STUDI S1 ILMU KOMPUTER

Lebih terperinci

SISTEM REKOMENDASI DOSEN PEMBIMBING TUGAS AKHIR BERBASIS TEXT MINING MENGGUNAKAN VECTOR SPACE MODEL

SISTEM REKOMENDASI DOSEN PEMBIMBING TUGAS AKHIR BERBASIS TEXT MINING MENGGUNAKAN VECTOR SPACE MODEL SISTEM REKOMENDASI DOSEN PEMBIMBING TUGAS AKHIR BERBASIS TEXT MINING MENGGUNAKAN VECTOR SPACE MODEL SKRIPSI Disusun Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer pada Departemen Ilmu

Lebih terperinci

LAPORAN SKRIPSI PENERAPAN ALGORITMA FUZZY C_MEANS DALAM PENENTUAN BEASISWA. Oleh : ARI IRAWAN

LAPORAN SKRIPSI PENERAPAN ALGORITMA FUZZY C_MEANS DALAM PENENTUAN BEASISWA. Oleh : ARI IRAWAN LAPORAN SKRIPSI PENERAPAN ALGORITMA FUZZY C_MEANS DALAM PENENTUAN BEASISWA Oleh : ARI IRAWAN 2010-51-221 SKRIPSI DIAJUKAN SEBAGAI SALAH SATU SYARAT UNTUK MEMPEROLEH GELAR SARJANA KOMPUTER PROGRAM STUDI

Lebih terperinci

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2007/2008

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2007/2008 UNIVERSITAS BINA NUSANTARA Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil 2007/2008 PERANCANGAN PROGRAM APLIKASI DATA MINING DENGAN MENGGUNAKAN METODE CLUSTERING

Lebih terperinci

SKRIPSI. Diajukan untuk Memenuhi Salah Satu Syarat Mencapai Gelar Strata Satu. Program Studi Informatika. Disusun oleh : FAIRLY OKTA MAL

SKRIPSI. Diajukan untuk Memenuhi Salah Satu Syarat Mencapai Gelar Strata Satu. Program Studi Informatika. Disusun oleh : FAIRLY OKTA MAL KOREKSI INPUT TEKSTUAL MENGGUNAKAN JARO-WINKLER DISTANCE DAN STEMMING DENGAN ALGORITMA NAZIEF DAN ANDRIANI UNTUK DETEKSI DINI HAMA DAN PENYAKIT PADA TANAMAN PADI SKRIPSI Diajukan untuk Memenuhi Salah Satu

Lebih terperinci

ANALISIS KELAYAKAN PEMBERIAN BEASISWA DI POLITEKNIK NEGERI BATAM DENGAN METODE CLUSTERING

ANALISIS KELAYAKAN PEMBERIAN BEASISWA DI POLITEKNIK NEGERI BATAM DENGAN METODE CLUSTERING ANALISIS KELAYAKAN PEMBERIAN BEASISWA DI POLITEKNIK NEGERI BATAM DENGAN METODE CLUSTERING TUGAS AKHIR Oleh : Maria 3310801006 Silvianty Noerliani 3310801016 Disusun untuk memenuhi syarat kelulusan Program

Lebih terperinci

PEMBANGUNAN APLIKASI KLASIFIKASI MAHASISWA BARU UNIVERSITAS ATMA JAYA YOGYAKARTA DENGAN METODE NAΪVE BAYES CLASSIFIER

PEMBANGUNAN APLIKASI KLASIFIKASI MAHASISWA BARU UNIVERSITAS ATMA JAYA YOGYAKARTA DENGAN METODE NAΪVE BAYES CLASSIFIER PEMBANGUNAN APLIKASI KLASIFIKASI MAHASISWA BARU UNIVERSITAS ATMA JAYA YOGYAKARTA DENGAN METODE NAΪVE BAYES CLASSIFIER TUGAS AKHIR Diajukan untuk Memenuhi Sebagian Persyaratan Mencapai Derajat Sarjana Teknik

Lebih terperinci

SKRIPSI. Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika. Oleh :

SKRIPSI. Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika. Oleh : PENERAPAN ALGORITMA MIXCBLOF BERBASIS KLASTER UNTUK IDENTIFIKASI OUTLIER PADA DATA HASIL UJIAN NASIONAL, INDEKS INTEGRITAS, DAN AKREDITASI SMA DI DAERAH ISTIMEWA YOGYAKARTA SKRIPSI Diajukan untuk Memenuhi

Lebih terperinci

PENERAPAN METODE KLASTERING DENGAN ALGORITMA K-MEANS UNTUK PREDIKSI KELULUSAN MAHASISWA PADA PROGRAM STUDI TEKNIK INFORMATIKA STRATA SATU

PENERAPAN METODE KLASTERING DENGAN ALGORITMA K-MEANS UNTUK PREDIKSI KELULUSAN MAHASISWA PADA PROGRAM STUDI TEKNIK INFORMATIKA STRATA SATU PENERAPAN METODE KLASTERING DENGAN ALGORITMA K-MEANS UNTUK PREDIKSI KELULUSAN MAHASISWA PADA PROGRAM STUDI TEKNIK INFORMATIKA STRATA SATU Gita Premashanti Trayasiwi Program Studi Teknik Informatika S1,

Lebih terperinci

PE DAHULUA. Latar Belakang

PE DAHULUA. Latar Belakang Latar Belakang PE DAHULUA Pemilihan Kepala Daerah dan Wakil Kepala Daerah, atau seringkali disebut Pilkada, adalah pemilihan umum untuk memilih Kepala Daerah dan Wakil Kepala Daerah secara langsung di

Lebih terperinci

SOLUSI PREDIKSI MAHASISWA DROP OUT PADA PROGRAM STUDI SISTEM INFORMASI FAKULTAS ILMU KOMPUTER UNIVERSITAS BINA DARMA

SOLUSI PREDIKSI MAHASISWA DROP OUT PADA PROGRAM STUDI SISTEM INFORMASI FAKULTAS ILMU KOMPUTER UNIVERSITAS BINA DARMA SOLUSI PREDIKSI MAHASISWA DROP OUT PADA PROGRAM STUDI SISTEM INFORMASI FAKULTAS ILMU KOMPUTER UNIVERSITAS BINA DARMA Ade Putra Fakultas Vokasi, Program Studi Komputerisasi Akuntansi Universitas Bina Darma

Lebih terperinci

Student Clustering Based on Academic Using K-Means Algoritms

Student Clustering Based on Academic Using K-Means Algoritms Student Clustering Based on Academic Using K-Means Algoritms Hironimus Leong, Shinta Estri Wahyuningrum Faculty of Computer Science, Faculty of Computer Science Unika Soegijapranata marlon.leong@gmail.com

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Data Mining Faktor penentu bagi usaha atau bisnis apapun pada masa sekarang ini adalah kemampuan untuk menggunakan informasi seefektif mungkin. Penggunaan data secara tepat karena

Lebih terperinci

Aplikasi Pembelajaran IPA Berbasis Multimedia Interaktif Menggunakan HTML5 (Studi Kasus: SD Negeri 06 Salatiga)

Aplikasi Pembelajaran IPA Berbasis Multimedia Interaktif Menggunakan HTML5 (Studi Kasus: SD Negeri 06 Salatiga) Aplikasi Pembelajaran IPA Berbasis Multimedia Interaktif Menggunakan HTML5 (Studi Kasus: SD Negeri 06 Salatiga) TUGAS AKHIR Diajukan kepada Fakultas Teknologi Informasi Untuk memperoleh Gelar Sarjana Komputer

Lebih terperinci

PREDIKSI STATUS KEAKTIFAN STUDI MAHASISWA DENGAN ALGORITMA C5.0 DAN K-NEAREST NEIGHBOR IIN ERNAWATI G

PREDIKSI STATUS KEAKTIFAN STUDI MAHASISWA DENGAN ALGORITMA C5.0 DAN K-NEAREST NEIGHBOR IIN ERNAWATI G PREDIKSI STATUS KEAKTIFAN STUDI MAHASISWA DENGAN ALGORITMA C5.0 DAN K-NEAREST NEIGHBOR IIN ERNAWATI G651044054 SEKOLAH PASCA SARJANA INSTITUT PERTANIAN BOGOR BOGOR 2008 PERNYATAAN MENGENAI TESIS DAN SUMBER

Lebih terperinci

IDENTIFIKASI MAHASISWA YANG MEMPUNYAI KECENDERUNGAN LULUS TIDAK TEPAT WAKTU PADA PROGRAM STUDI MMT-ITS DENGAN MENGGUNAKAN ALGORITMA C4.

IDENTIFIKASI MAHASISWA YANG MEMPUNYAI KECENDERUNGAN LULUS TIDAK TEPAT WAKTU PADA PROGRAM STUDI MMT-ITS DENGAN MENGGUNAKAN ALGORITMA C4. IDENTIFIKASI MAHASISWA YANG MEMPUNYAI KECENDERUNGAN LULUS TIDAK TEPAT WAKTU PADA PROGRAM STUDI MMT-ITS DENGAN MENGGUNAKAN ALGORITMA C4.5 Amelia Halim 1) dan Joko Lianto Buliali 2) 1) Program Studi Magister

Lebih terperinci

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI penelitian. Pada bab ini akan dibahas literatur dan landasan teori yang relevan dengan 2.1 Tinjauan Pustaka Kombinasi metode telah dilakukan oleh beberapa peneliti

Lebih terperinci

ANALISA DAN PERANCANGAN APLIKASI MOBILE BERBASIS WAP PADA STMIK JIBES

ANALISA DAN PERANCANGAN APLIKASI MOBILE BERBASIS WAP PADA STMIK JIBES ANALISA DAN PERANCANGAN APLIKASI MOBILE BERBASIS WAP PADA STMIK JIBES SKRIPSI Diajukan sebagai salah satu syarat untuk memperoleh Gelar Sarjana Informatika Jurusan Teknik Informatika Oleh : HANDRATA NIM

Lebih terperinci

HALAMAN SAMPUL SKRIPSI PENGENALAN POLA TELAPAK TANGAN DENGAN MENGGUNAKAN ALGORITMA BACK PROPAGATION NEURAL NETWORK

HALAMAN SAMPUL SKRIPSI PENGENALAN POLA TELAPAK TANGAN DENGAN MENGGUNAKAN ALGORITMA BACK PROPAGATION NEURAL NETWORK HALAMAN SAMPUL SKRIPSI PENGENALAN POLA TELAPAK TANGAN DENGAN MENGGUNAKAN ALGORITMA BACK PROPAGATION NEURAL NETWORK Oleh: MOH SHOCHWIL WIDAT 2011-51-034 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 6 BAB 2 LANDASAN TEORI Pada tinjauan pustaka ini akan dibahas tentang konsep dasar dan teori-teori yang mendukung pembahasan yang berhubungan dengan sistem yang akan dibuat. 2.1 Basis Data (Database) Database

Lebih terperinci

PERTEMUAN 14 DATA WAREHOUSE

PERTEMUAN 14 DATA WAREHOUSE PERTEMUAN 14 DATA WAREHOUSE Data Warehouse Definisi : Data Warehouse adalah Pusat repositori informasi yang mampu memberikan database berorientasi subyek untuk informasi yang bersifat historis yang mendukung

Lebih terperinci

PENINGKATAN KETERAMPILAN BERBICARA DENGAN REKA CERITA GAMBAR

PENINGKATAN KETERAMPILAN BERBICARA DENGAN REKA CERITA GAMBAR PENINGKATAN KETERAMPILAN BERBICARA DENGAN REKA CERITA GAMBAR (Penelitian Tindakan Kelas pada siswa kelas III SD Negeri 03 Tunggulrejo Kecamatan Jumantono kabupaten Karanganyar Tahun Pelajaran 2010/2011)

Lebih terperinci

PEMBUATAN PROGRAM APLIKASI ADMINISTRASI NILAI BERBASIS JAVA STUDI KASUS DI SD KRISTEN BANJARSARI

PEMBUATAN PROGRAM APLIKASI ADMINISTRASI NILAI BERBASIS JAVA STUDI KASUS DI SD KRISTEN BANJARSARI PEMBUATAN PROGRAM APLIKASI ADMINISTRASI NILAI BERBASIS JAVA STUDI KASUS DI SD KRISTEN BANJARSARI Tugas Akhir untuk memenuhi sebagian persyaratan mencapai derajat Diploma III Program Studi Diploma III Teknik

Lebih terperinci

PREDIKSI HERREGISTRASI CALON MAHASISWA BARU MENGGUNAKAN ALGORITMA NAÏVE BAYES

PREDIKSI HERREGISTRASI CALON MAHASISWA BARU MENGGUNAKAN ALGORITMA NAÏVE BAYES PREDIKSI HERREGISTRASI CALON MAHASISWA BARU MENGGUNAKAN ALGORITMA NAÏVE BAYES Selvy Megira 1), Kusrini 2), Emha Taufiq Luthfi 3) 1), 2), 3) Teknik Universitas AMIKOM Yogyakarta Jl Ring road Utara, Condongcatur,

Lebih terperinci

- PERTEMUAN 1 - KNOWLEGDE DISCOVERY

- PERTEMUAN 1 - KNOWLEGDE DISCOVERY DATA WAREHOUSE - PERTEMUAN 1 - KNOWLEGDE DISCOVERY in DATABASE (KDD) Penemuan Pengetahuan di Database Tujuan : Mahasiswa Dapat memahami konsep KDD yang merupakan tujuan akhir dari Data Warehouse dan Data

Lebih terperinci

ABSTRAK. Kata Kunci: data tidak seimbang, klasifikasi, KSMOTE, boosting, SSO, support vector machine.

ABSTRAK. Kata Kunci: data tidak seimbang, klasifikasi, KSMOTE, boosting, SSO, support vector machine. ABSTRAK Klasifikasi dalam data mining adalah proses untuk menemukan model atau fungsi yang mendeskripsikan dan membedakan kelas-kelas data atau konsep. Salah satu permasalahan klasifikasi adalah distribusi

Lebih terperinci

Task III : Data Transformation (Transformasi Data) Beberapa Pendekatan Transformasi Data. Smoothing. Normalization (#2) Normalization (#1)

Task III : Data Transformation (Transformasi Data) Beberapa Pendekatan Transformasi Data. Smoothing. Normalization (#2) Normalization (#1) Knowledge Discovery in Databases (IS704) dan Data Mining (CS704) Kuliah #4: Data Preprocessing (Bagian 2) Task III : Data Transformation (Transformasi Data) Mengubah / mentransformasikan data ke dalam

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA Klasifikasi Data Mahasiswa Menggunakan Metode K-Means Untuk Menunjang Pemilihan Strategi Pemasaran

BAB 2 TINJAUAN PUSTAKA Klasifikasi Data Mahasiswa Menggunakan Metode K-Means Untuk Menunjang Pemilihan Strategi Pemasaran BAB 2 TINJAUAN PUSTAKA 2.1 Tinjauan Pustaka Beberapa penelitian terdahulu telah banyak yang menerapkan data mining, yang bertujuan dalam menyelesaikan beberapa permasalahan seputar dunia pendidikan. Khususnya

Lebih terperinci

Perancangan Sistem Pembagian Kelas Kuliah Mahasiswa dengan Kombinasi Metode K-Means dan K-Nearest Neighbors

Perancangan Sistem Pembagian Kelas Kuliah Mahasiswa dengan Kombinasi Metode K-Means dan K-Nearest Neighbors Konferensi Nasional Sistem & Informatika 2017 STMIK STIKOM Bali, 10 Agustus 2017 Perancangan Sistem Pembagian Kelas Kuliah Mahasiswa dengan Kombinasi Metode K-Means dan K-Nearest Neighbors Gede Aditra

Lebih terperinci

DAFTAR ISI. HALAMAN JUDUL... i. HALAMAN PENGESAHAN... ii. HALAMAN PERNYATAAN... iii. HALAMAN PERSEMBAHAN... iv. MOTTO... vi. KATA PENGANTAR...

DAFTAR ISI. HALAMAN JUDUL... i. HALAMAN PENGESAHAN... ii. HALAMAN PERNYATAAN... iii. HALAMAN PERSEMBAHAN... iv. MOTTO... vi. KATA PENGANTAR... DAFTAR ISI Halaman HALAMAN JUDUL... i HALAMAN PENGESAHAN... ii HALAMAN PERNYATAAN... iii HALAMAN PERSEMBAHAN... iv MOTTO... vi KATA PENGANTAR... vii ABSTRAK... ix ABSTRACT... x DAFTAR ISI... xi DAFTAR

Lebih terperinci

APLIKASI DATA MINING UNTUK ANALISIS ASOSIASI POLA PEMBELIAN DENGAN ALGORITMA APRIORI

APLIKASI DATA MINING UNTUK ANALISIS ASOSIASI POLA PEMBELIAN DENGAN ALGORITMA APRIORI APLIKASI DATA MINING UNTUK ANALISIS ASOSIASI POLA PEMBELIAN DENGAN ALGORITMA APRIORI SKRIPSI Disusun Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Komputer pada Departemen Ilmu Komputer/ Informatika

Lebih terperinci

SKRIPSI. Oleh: WAHYU DWIANA SAFITRI X

SKRIPSI. Oleh: WAHYU DWIANA SAFITRI X PENINGKATAN HASIL BELAJAR ILMU PENGETAHUAN SOSIAL MATERI PERKEMBANGAN TEKNOLOGI MELALUI MEDIA PEMBELAJARAN AUDIO VISUAL PADA SISWA LAMBAN BELAJAR KELAS IV SD PURBA ADHI SUTA PURBALINGGA TAHUN PELAJARAN

Lebih terperinci

SISTEM INFORMASI MANAJEMEN SEKOLAH SUB SISTEM PENJADWALAN TUGAS AKHIR

SISTEM INFORMASI MANAJEMEN SEKOLAH SUB SISTEM PENJADWALAN TUGAS AKHIR SISTEM INFORMASI MANAJEMEN SEKOLAH SUB SISTEM PENJADWALAN TUGAS AKHIR Diajukan untuk memenuhi salah satu syarat mencapai gelar Ahli Madya Program Diploma III Teknik Informatika Fakultas Matematika dan

Lebih terperinci

SISTEM INFORMASI PENGOLAHAN DATA PEGAWAI PADA DINAS CIPTA KARYA DAN TATA RUANG KAB. KUDUS

SISTEM INFORMASI PENGOLAHAN DATA PEGAWAI PADA DINAS CIPTA KARYA DAN TATA RUANG KAB. KUDUS LAPORAN SKRIPSI SISTEM INFORMASI PENGOLAHAN DATA PEGAWAI PADA DINAS CIPTA KARYA DAN TATA RUANG KAB. KUDUS Laporan ini Disusun guna Memenuhi Salah Satu Syarat untuk Menyelesaikan Program Studi Sistem Informasi

Lebih terperinci

Tahapan Proses KDD (Peter Cabena) Business Objective Determination (#1) Business Objective Determination (#2) Business Objective Determination (#4)

Tahapan Proses KDD (Peter Cabena) Business Objective Determination (#1) Business Objective Determination (#2) Business Objective Determination (#4) Knowledge Discovery in Databases (IS704) dan Data Mining (CS704) Kuliah #2 Gunawan Jurusan Teknik Informatika Sekolah Tinggi Teknik Surabaya Tahapan Proses KDD (Peter Cabena) Penentuan Sasaran Bisnis (

Lebih terperinci

SKRIPSI Diajukan untuk memenuhi sebagian persyaratan mendapatkan gelar Strata Satu Jurusan Informatika. Disusun Oleh: WINA ISTI RETNANI NIM.

SKRIPSI Diajukan untuk memenuhi sebagian persyaratan mendapatkan gelar Strata Satu Jurusan Informatika. Disusun Oleh: WINA ISTI RETNANI NIM. PERBANDINGAN ALGORITMA BACKPROPAGATION LEVENBERG MARQUARDT (LM) DENGAN BACKPROPAGATION GRADIENT DESCENT ADAPTIVE GAIN (BPGD/AG) DALAM PREDIKSI JUMLAH PENGANGGURAN DI PROVINSI JAWA TENGAH SKRIPSI Diajukan

Lebih terperinci

PEMBUATAN SISTEM INFORMASI RAPOR ONLINE (SIRALINE) UNTUK TINGKAT SMA BERBASIS WEB DENGAN MENGGUNAKAN FRAMEWORK CODEIGNITER.

PEMBUATAN SISTEM INFORMASI RAPOR ONLINE (SIRALINE) UNTUK TINGKAT SMA BERBASIS WEB DENGAN MENGGUNAKAN FRAMEWORK CODEIGNITER. PEMBUATAN SISTEM INFORMASI RAPOR ONLINE (SIRALINE) UNTUK TINGKAT SMA BERBASIS WEB DENGAN MENGGUNAKAN FRAMEWORK CODEIGNITER Tugas Akhir Disusun untuk memenuhi salah satu syarat dalam memperoleh gelar Ahli

Lebih terperinci

BAB II LANDASAN TEORI. yang terdiri dari komponen-komponen atau sub sistem yang berorientasi untuk

BAB II LANDASAN TEORI. yang terdiri dari komponen-komponen atau sub sistem yang berorientasi untuk BAB II LANDASAN TEORI 2.1 Sistem Menurut Gondodiyoto (2007), sistem adalah merupakan suatu kesatuan yang terdiri dari komponen-komponen atau sub sistem yang berorientasi untuk mencapai suatu tujuan tertentu.

Lebih terperinci

Data Mining. Pengenalan Sistem & Teknik, Serta Contoh Aplikasi. Avinanta Tarigan. 22 Nov Avinanta Tarigan Data Mining

Data Mining. Pengenalan Sistem & Teknik, Serta Contoh Aplikasi. Avinanta Tarigan. 22 Nov Avinanta Tarigan Data Mining Data Mining Pengenalan Sistem & Teknik, Serta Contoh Aplikasi Avinanta Tarigan 22 Nov 2008 1 Avinanta Tarigan Data Mining Outline 1 Pengertian Dasar 2 Classification Mining 3 Association Mining 4 Clustering

Lebih terperinci

Perancangan dan Implementasi Sistem Informasi Administrasi Pembayaran SPP di SMP Negeri 1 Salatiga Menggunakan Metode Prototype

Perancangan dan Implementasi Sistem Informasi Administrasi Pembayaran SPP di SMP Negeri 1 Salatiga Menggunakan Metode Prototype Perancangan dan Implementasi Sistem Informasi Administrasi Pembayaran SPP di SMP Negeri 1 Salatiga Menggunakan Metode Prototype Laporan Penelitian Diajukan kepada Fakultas Teknologi Informasi untuk memperoleh

Lebih terperinci

DATA MINING ANALISA POLA PEMBELIAN PRODUK DENGAN MENGGUNAKAN METODE ALGORITMA APRIORI

DATA MINING ANALISA POLA PEMBELIAN PRODUK DENGAN MENGGUNAKAN METODE ALGORITMA APRIORI DATA MINING ANALISA POLA PEMBELIAN PRODUK DENGAN MENGGUNAKAN METODE ALGORITMA APRIORI Heroe Santoso 1), I Putu Hariyadi 2), Prayitno 3) 1), 2),3) Teknik Informatika STMIK Bumigora Mataram Jl Ismail Marzuki

Lebih terperinci

DAFTAR ISI. HALAMAN JUDUL... i LEMBAR PENGESAHAN PEMBIMBING... ii. LEMBAR PERNYATAAN KEASLIAN HASIL TUGAS AKHIR... iii

DAFTAR ISI. HALAMAN JUDUL... i LEMBAR PENGESAHAN PEMBIMBING... ii. LEMBAR PERNYATAAN KEASLIAN HASIL TUGAS AKHIR... iii xi DAFTAR ISI HALAMAN JUDUL... i LEMBAR PENGESAHAN PEMBIMBING... ii LEMBAR PERNYATAAN KEASLIAN HASIL TUGAS AKHIR... iii LEMBAR PENGESAHAN PENGUJIAN... iv HALAMAN PERSEMBAHAN... v MOTTO... vi KATA PENGANTAR...

Lebih terperinci

BAB II TINJAUAN PUSTAKA. pengetahuan di dalam database. Data mining adalah proses yang menggunakan

BAB II TINJAUAN PUSTAKA. pengetahuan di dalam database. Data mining adalah proses yang menggunakan 6 BAB II TINJAUAN PUSTAKA 2.1 Pengertian Data Mining Data mining adalah suatu istilah yang digunakan untuk menguraikan penemuan pengetahuan di dalam database. Data mining adalah proses yang menggunakan

Lebih terperinci

PENGKLASIFIKASIAN MINAT BELAJAR MAHASISWA DENGAN MODEL DATA MINING MENGGUNANAKAN METODE CLUSTERING

PENGKLASIFIKASIAN MINAT BELAJAR MAHASISWA DENGAN MODEL DATA MINING MENGGUNANAKAN METODE CLUSTERING PENGKLASIFIKASIAN MINAT BELAJAR MAHASISWA DENGAN MODEL DATA MINING MENGGUNANAKAN METODE CLUSTERING Marlindawati 1) Andri 2) 1) Manajemen Informatika Universitas Bina Darma Jl. Ahmad Yani No. 3, Palembang

Lebih terperinci

SISTEM INFORMASI PENGGAJIAN DAN INSENTIF PENJUALAN PADA MITRA ABADI SEJAHTERA BERBASIS WEB

SISTEM INFORMASI PENGGAJIAN DAN INSENTIF PENJUALAN PADA MITRA ABADI SEJAHTERA BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENGGAJIAN DAN INSENTIF PENJUALAN PADA MITRA ABADI SEJAHTERA BERBASIS WEB Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan program studi Sistem Informasi

Lebih terperinci

LAPORAN SKRIPSI. RANCANG BANGUN SISTEM INFORMASI ADMINISTRASI PELAYANAN SALON BERBASIS WEB (Studi Kasus Alexa salon Yogyakarta)

LAPORAN SKRIPSI. RANCANG BANGUN SISTEM INFORMASI ADMINISTRASI PELAYANAN SALON BERBASIS WEB (Studi Kasus Alexa salon Yogyakarta) LAPORAN SKRIPSI RANCANG BANGUN SISTEM INFORMASI ADMINISTRASI PELAYANAN SALON BERBASIS WEB (Studi Kasus Alexa salon Yogyakarta) Diajukan oleh : Andrean Thomas Sinaga NIM : 08230042 Kepada PROGRAM STUDI

Lebih terperinci

ANALISIS PENERAPAN TEKNIK DATAMINING DALAM PENGIMPLEMENTASIAN DAN PENGEMBANGAN MODEL ACTIVE LEARNING DENGAN METODE KELOMPOK

ANALISIS PENERAPAN TEKNIK DATAMINING DALAM PENGIMPLEMENTASIAN DAN PENGEMBANGAN MODEL ACTIVE LEARNING DENGAN METODE KELOMPOK ANALISIS PENERAPAN TEKNIK DATAMINING DALAM PENGIMPLEMENTASIAN DAN PENGEMBANGAN MODEL ACTIVE LEARNING DENGAN METODE KELOMPOK Dody Herdiana, S.T., M. Kom. Dosen PNS DPK pada Program Studi Teknik Informatika

Lebih terperinci

Perancangan dan Implementasi Tes Seleksi Calon Mahasiswa Baru di Universitas Kristen Satya Wacana, Salatiga

Perancangan dan Implementasi Tes Seleksi Calon Mahasiswa Baru di Universitas Kristen Satya Wacana, Salatiga Perancangan dan Implementasi Tes Seleksi Calon Mahasiswa Baru di Universitas Kristen Satya Wacana, Salatiga Skripsi Diajukan kepada Fakultas Teknologi Informasi untuk memperoleh Gelar Sarjana Komputer

Lebih terperinci

LAPORAN TUGAS AKHIR. Diajukan untuk memenuhi salah satu syarat memperoleh derajat Sarjana Komputer ADITYA HADI WIJAYA

LAPORAN TUGAS AKHIR. Diajukan untuk memenuhi salah satu syarat memperoleh derajat Sarjana Komputer ADITYA HADI WIJAYA LAPORAN TUGAS AKHIR SISTEM PENDUKUNG KEPUTUSAN UNTUK MENENTUKAN LULUSAN MAHASISWA TERBAIK DENGAN MENGGUNAKAN METODE SIMPLE ADDITIVE WEIGHTING (SAW) DI FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH PURWOKERTO

Lebih terperinci

PEMBANGUNAN SISTEM INFORMASI KEPEGAWAIAN SUB EKIVALENSI WAKTU MENGAJAR PENUH (EWMP) DOSEN UNIVERSITAS SEBELAS MARET

PEMBANGUNAN SISTEM INFORMASI KEPEGAWAIAN SUB EKIVALENSI WAKTU MENGAJAR PENUH (EWMP) DOSEN UNIVERSITAS SEBELAS MARET PEMBANGUNAN SISTEM INFORMASI KEPEGAWAIAN SUB EKIVALENSI WAKTU MENGAJAR PENUH (EWMP) DOSEN UNIVERSITAS SEBELAS MARET TUGAS AKHIR Diajukan untuk memenuhi salah satu syarat mencapai gelar Ahli Madya Program

Lebih terperinci

ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN, PERSEDIAAN, DAN PENJUALAN PADA PD SRIWIJAYA BEKASI SKRIPSI. Oleh

ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN, PERSEDIAAN, DAN PENJUALAN PADA PD SRIWIJAYA BEKASI SKRIPSI. Oleh ANALISIS DAN PERANCANGAN SISTEM BASIS DATA PEMBELIAN, PERSEDIAAN, DAN PENJUALAN PADA PD SRIWIJAYA BEKASI SKRIPSI Oleh Angela Noviana Welirangan 1000842252 Michael Christanto Djaja 1000879122 Edwardo 1000879135

Lebih terperinci

BAB III ANALISIS DAN PENYELESAIAN MASALAH

BAB III ANALISIS DAN PENYELESAIAN MASALAH BAB III ANALISIS DAN PENYELESAIAN MASALAH 3.1 Deskripsi Sistem Gambar III-1 Deskripsi Umum Sistem Pada gambar III-1 dapat dilihat deskripsi sistem sederhana yang mendeteksi intrusi pada jaringan menggunakan

Lebih terperinci

PERANCANGAN DAN PEMBUATAN APLIKASI KHAZANAH INTELEKTUAL BERBASIS WEB DAN ANDROID. Disusun oleh : JUPRI SANTOSO M

PERANCANGAN DAN PEMBUATAN APLIKASI KHAZANAH INTELEKTUAL BERBASIS WEB DAN ANDROID. Disusun oleh : JUPRI SANTOSO M PERANCANGAN DAN PEMBUATAN APLIKASI KHAZANAH INTELEKTUAL BERBASIS WEB DAN ANDROID TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Mencapai Gelar Ahli Madya Program Studi Diploma III Teknik Informatika

Lebih terperinci

SKRIPSI SISTEM INFORMASI AKADEMIK DI SMA SANATA KARYA LANGGUR ACADEMIC INFORMATION SYSTEMS AT SMA SANATA KARYA LANGGUR

SKRIPSI SISTEM INFORMASI AKADEMIK DI SMA SANATA KARYA LANGGUR ACADEMIC INFORMATION SYSTEMS AT SMA SANATA KARYA LANGGUR SKRIPSI SISTEM INFORMASI AKADEMIK DI SMA SANATA KARYA LANGGUR ACADEMIC INFORMATION SYSTEMS AT SMA SANATA KARYA LANGGUR FREDERIKUS ARTS RENRUSUN 115610013 PROGRAM STUDI SISTEM INFORMASI SEKOLAH TINGGI MANAJEMEN

Lebih terperinci

MODEL DATA MINING DALAM PENGKLASIFIKASIAN KETERTARIKAN BELAJAR MAHASISWA MENGGUNAKAN METODE CLUSTERING

MODEL DATA MINING DALAM PENGKLASIFIKASIAN KETERTARIKAN BELAJAR MAHASISWA MENGGUNAKAN METODE CLUSTERING MODEL DATA MINING DALAM PENGKLASIFIKASIAN KETERTARIKAN BELAJAR MAHASISWA MENGGUNAKAN METODE CLUSTERING Marlindawati1), Andri2) 1), 2) Sistem Informasi UNIVERSITAS BINA DARMA Palembang Jl, Jend. A.Yani

Lebih terperinci

ANALISIS CROSSTAB UNTUK MENGETAHUI DEPENDENSI BEBERAPA FAKTOR EKSTERNAL TERHADAP IP MAHASISWA FTI UKDW PADA AWAL PERKULIAHAN

ANALISIS CROSSTAB UNTUK MENGETAHUI DEPENDENSI BEBERAPA FAKTOR EKSTERNAL TERHADAP IP MAHASISWA FTI UKDW PADA AWAL PERKULIAHAN Jurnal Teknik dan Ilmu Komputer ANALISIS CROSSTAB UNTUK MENGETAHUI DEPENDENSI BEBERAPA FAKTOR EKSTERNAL TERHADAP IP MAHASISWA FTI UKDW PADA AWAL PERKULIAHAN CROSSTAB ANALYSIS TO DETERMINE EXTERNAL FACTORS

Lebih terperinci

BAB I PENDAHULUAN. Dengan kemajuan teknologi informasi dewasa ini, kebutuhan akan informasi yang akurat

BAB I PENDAHULUAN. Dengan kemajuan teknologi informasi dewasa ini, kebutuhan akan informasi yang akurat BAB I PENDAHULUAN 1.1 Latar Belakang Dengan kemajuan teknologi informasi dewasa ini, kebutuhan akan informasi yang akurat sangat dibutuhkan dalam kehidupan sehari-hari, sehingga informasi akan menjadi

Lebih terperinci

LAPORAN PENELITIAN. Peneliti : Imanuel Barnabas Mahanaim ( )

LAPORAN PENELITIAN. Peneliti : Imanuel Barnabas Mahanaim ( ) Pemodelan Pola Spasial Daerah Rawan Miskin di lihat dari PDRB, IPM, Jumlah Pengangguran, Jumlah Penduduk, Tingkat Kemiskinan Provinsi Jawa Tengah 2005-2009 LAPORAN PENELITIAN Peneliti : Imanuel Barnabas

Lebih terperinci

PENGEMBANGAN APLIKASI SKRIPSI (TUGAS AKHIR) BERBASIS WEB MENGGUNAKAN METODE SCRUM

PENGEMBANGAN APLIKASI SKRIPSI (TUGAS AKHIR) BERBASIS WEB MENGGUNAKAN METODE SCRUM PENGEMBANGAN APLIKASI SKRIPSI (TUGAS AKHIR) BERBASIS WEB MENGGUNAKAN METODE SCRUM Diajukan untuk memenuhi sebagian persyaratan mendapatkan gelar Strata Satu Jurusan Informatika Skripsi Disusun Oleh: Adi

Lebih terperinci

BAB II TINJAUAN PUSTAKA Indeks Prestasi Kumulatif dan Lama Studi. menggunakan dokumen/format resmi hasil penilaian studi mahasiswa yang sudah

BAB II TINJAUAN PUSTAKA Indeks Prestasi Kumulatif dan Lama Studi. menggunakan dokumen/format resmi hasil penilaian studi mahasiswa yang sudah BAB II TINJAUAN PUSTAKA 2.1 Landasan Teori 2.1.1 Indeks Prestasi Kumulatif dan Lama Studi Mahasiswa yang telah menyelesaikan keseluruhan beban program studi yang telah ditetapkan dapat dipertimbangkan

Lebih terperinci

KLASIFIKASI DATA MENGGUNAKAN JST BACKPROPAGATION MOMENTUM DENGAN ADAPTIVE LEARNING RATE

KLASIFIKASI DATA MENGGUNAKAN JST BACKPROPAGATION MOMENTUM DENGAN ADAPTIVE LEARNING RATE KLASIFIKASI DATA MENGGUNAKAN JST BACKPROPAGATION MOMENTUM DENGAN ADAPTIVE LEARNING RATE KLASIFIKASI DATA MENGGUNAKAN JST BACKPROPAGATION MOMENTUM DENGAN ADAPTIVE LEARNING RATE Warih Maharani Fakultas

Lebih terperinci

Analisis Data Mining Untuk Menentukan Daerah Keluarga Sejahtera Di Kecamatan Balong Dengan Metode Algoritma K-MEANS Clustering SKRIPSI

Analisis Data Mining Untuk Menentukan Daerah Keluarga Sejahtera Di Kecamatan Balong Dengan Metode Algoritma K-MEANS Clustering SKRIPSI Analisis Data Mining Untuk Menentukan Daerah Keluarga Sejahtera Di Kecamatan Balong Dengan Metode Algoritma K-MEANS Clustering SKRIPSI Diajukan Sebagai Salah satu Syarat Untuk Memperoleh Gelar Sarjana

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA Pada tinjauan pustaka ini membahas tentang landasan teori yang medukung pembahasan yang berhubungan dengan sistem yang akan dibuat. 2.1 Data Mining Data mining adalah kegiatan menemukan

Lebih terperinci

PENERAPAN DATA MINING MENGGUNAKAN ALGORITME C4.5 DALAM PENENTUAN JURUSAN SISWA SMA NEGERI 2 SURAKARTA

PENERAPAN DATA MINING MENGGUNAKAN ALGORITME C4.5 DALAM PENENTUAN JURUSAN SISWA SMA NEGERI 2 SURAKARTA PENERAPAN DATA MINING MENGGUNAKAN ALGORITME C4.5 DALAM PENENTUAN JURUSAN SISWA SMA NEGERI 2 SURAKARTA oleh NADYA AL FITRIANI M0111060 SKRIPSI ditulis dan diajukan untuk memenuhi sebagian persyaratan memperoleh

Lebih terperinci

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI. menerapkan metode clustering dengan algoritma K-Means untuk penelitiannya.

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI. menerapkan metode clustering dengan algoritma K-Means untuk penelitiannya. BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1 Tinjauan Pustaka Salah satu cara untuk mengetahui faktor nilai cumlaude mahasiswa Fakultas Teknik Universitas Muhammadiyah Yogyakarta adalah dengan menerapkan

Lebih terperinci

Tahapan Proses KDD (Peter Cabena)

Tahapan Proses KDD (Peter Cabena) Knowledge Discovery in Databases (IS704) dan Data Mining (CS704) Kuliah #2 Gunawan Jurusan Teknik Informatika Sekolah Tinggi Teknik Surabaya Tahapan Proses KDD (Peter Cabena) Penentuan Sasaran Bisnis (Business

Lebih terperinci

BAB 3 METODE PENELITIAN

BAB 3 METODE PENELITIAN BAB 3 METODE PENELITIAN Pada proses penelitian ini dilakukan beberapa tahapan mulai dari tahap awal yaitu tahap inisiasi, pengembangan model, dan tahap terakhir pengembangan prototipe. Dalam tahapan inisiasi

Lebih terperinci

KLASIFIKASI PADA DATA MINING MENGGUNAKAN NAIVE BAYESIAN CLASSIFIER CLASSIFICATION FOR DATA MINING USING NAIVE BAYESIAN CLASSIFIER

KLASIFIKASI PADA DATA MINING MENGGUNAKAN NAIVE BAYESIAN CLASSIFIER CLASSIFICATION FOR DATA MINING USING NAIVE BAYESIAN CLASSIFIER Powered by TCPDF (www.tcpdf.org) Tugas Akhir - 2005 KLASIFIKASI PADA DATA MINING MENGGUNAKAN NAIVE BAYESIAN CLASSIFIER CLASSIFICATION FOR DATA MINING USING NAIVE BAYESIAN CLASSIFIER Agustina Ratna Puspitasari¹,

Lebih terperinci

RANCANG BANGUN SISTEM INFORMASI PELELANGAN GULA PADA APTRI (ASOSIASI PETANI TEBU RAKYAT INDONESIA) SEMARANG

RANCANG BANGUN SISTEM INFORMASI PELELANGAN GULA PADA APTRI (ASOSIASI PETANI TEBU RAKYAT INDONESIA) SEMARANG LAPORAN SKRIPSI RANCANG BANGUN SISTEM INFORMASI PELELANGAN GULA PADA APTRI (ASOSIASI PETANI TEBU RAKYAT INDONESIA) SEMARANG Disusun oleh : Nama : Hidayatun Ni mah Nim : 2011-53-153 Program Studi : Sistem

Lebih terperinci

SKRIPSI OTOMASI TRANSFORMASI DATABASE RELASIONAL KE NOSQL HBASE BERBASIS KOLOM

SKRIPSI OTOMASI TRANSFORMASI DATABASE RELASIONAL KE NOSQL HBASE BERBASIS KOLOM SKRIPSI OTOMASI TRANSFORMASI DATABASE RELASIONAL KE NOSQL HBASE BERBASIS KOLOM Reyna Rafika NPM: 2010730004 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INFORMASI DAN SAINS UNIVERSITAS KATOLIK PARAHYANGAN

Lebih terperinci

PENERAPAN METODE NAÏVE BAYES CLASSIFIER DAN ALGORITMA ADABOOST UNTUK PREDIKSI PENYAKIT GINJAL KRONIK

PENERAPAN METODE NAÏVE BAYES CLASSIFIER DAN ALGORITMA ADABOOST UNTUK PREDIKSI PENYAKIT GINJAL KRONIK PENERAPAN METODE NAÏVE BAYES CLASSIFIER DAN ALGORITMA ADABOOST UNTUK PREDIKSI PENYAKIT GINJAL KRONIK SKRIPSI Diajukan untuk memenuhi sebagian persyaratan mendapatkan gelar Strata Satu Program Studi Informatika

Lebih terperinci

Penerapan Teknik Support Vector Machine untuk Pendeteksian Intrusi pada Jaringan

Penerapan Teknik Support Vector Machine untuk Pendeteksian Intrusi pada Jaringan Penerapan Teknik Support Vector Machine untuk Pendeteksian Intrusi pada Jaringan LAPORAN TUGAS AKHIR Disusun sebagai syarat kelulusan tingkat sarjana oleh : Krisantus Sembiring / 13503121 PROGRAM STUDI

Lebih terperinci

penyebarannya. Diharapkan dari penelitian ini dapat terbentuk sebuah basis pengetahuan spasial yang bermanfaat. PENDAHULUAN

penyebarannya. Diharapkan dari penelitian ini dapat terbentuk sebuah basis pengetahuan spasial yang bermanfaat. PENDAHULUAN 1 PENDAHULUAN Latar Belakang Kemiskinan merupakan suatu hal yang memiliki batasan yang luas, tetapi bagaimanapun juga batasan mengenai kemiskinan harus tetap diukur untuk kebijakan pemerintah. Menurut

Lebih terperinci

A ALISIS KARAKTERISTIK MAHASISWA O AKTIF U IVERSITAS TERBUKA DE GA PE DEKATA CLUSTER E SEMBLE DYAH PAMI TA RAHAYU

A ALISIS KARAKTERISTIK MAHASISWA O AKTIF U IVERSITAS TERBUKA DE GA PE DEKATA CLUSTER E SEMBLE DYAH PAMI TA RAHAYU A ALISIS KARAKTERISTIK MAHASISWA O AKTIF U IVERSITAS TERBUKA DE GA PE DEKATA CLUSTER E SEMBLE DYAH PAMI TA RAHAYU SEKOLAH PASCASARJA A I STITUT PERTA IA BOGOR BOGOR 2009 PER YATAA ME GE AI TESIS DA SUMBER

Lebih terperinci

i Aplikasii Diajukan kepada Informasi Oleh: Aulia Adie Putra NIM: Salatiga Mei 20122

i Aplikasii Diajukan kepada Informasi Oleh: Aulia Adie Putra NIM: Salatiga Mei 20122 Perancangan dan Implementasi i Aplikasii Analisis File Access.log Squid Berbasis Desktop (Studi Kasus : Kantor CV Sukses Jaya Utama) LAPORAN PENELITIAN Diajukan kepada Fakultas Teknologi Informasi Untuk

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Salah satu tanggung jawab sosial PT. Telkom dalam program kemitraan dengan masyarakat sekitarnya adalah memberikan kredit lunak bagi pelaku Usaha Kecil Menengah (UKM).

Lebih terperinci

SHABRINA ROSE HAPSARI M SURAKARTA

SHABRINA ROSE HAPSARI M SURAKARTA digilib.uns.ac.id HALAMAN JUDUL PEMBUATAN KALKULATOR INTEGRASI NUMERIK DENGAN METODE TRAPESIUM, 1/3 SIMPSON, 3/8 SIMPSON, ROMBERG DAN MONTE CARLO PADA KASUS INTEGRAL TUNGGAL DAN INTEGRAL GANDA SKRIPSI

Lebih terperinci

PEMBELAJARAN PERTOLONGAN PERTAMA SAAT KECELAKAAN BERBASIS MOBILE ELWIN SUTRANGGA

PEMBELAJARAN PERTOLONGAN PERTAMA SAAT KECELAKAAN BERBASIS MOBILE ELWIN SUTRANGGA PEMBELAJARAN PERTOLONGAN PERTAMA SAAT KECELAKAAN BERBASIS MOBILE ELWIN SUTRANGGA 41509110102 PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCUBUANA JAKARTA 2014 i PEMBELAJARAN PERTOLONGAN

Lebih terperinci

SKRIPSI SISTEM PREDIKSI KONDISI KELAHIRAN BAYI MENGGUNAKAN METODE KLASIFIKASI NAÏVE BAYES. Oleh : WAHYUNINGSIH

SKRIPSI SISTEM PREDIKSI KONDISI KELAHIRAN BAYI MENGGUNAKAN METODE KLASIFIKASI NAÏVE BAYES. Oleh : WAHYUNINGSIH SKRIPSI SISTEM PREDIKSI KONDISI KELAHIRAN BAYI MENGGUNAKAN METODE KLASIFIKASI NAÏVE BAYES Oleh : WAHYUNINGSIH 2010-51-115 SKRIPSI DIAJUKAN SEBAGAI SALAH SATU SYARAT UNTUK MEMPEROLEH GELAR SARJANA KOMPUTER

Lebih terperinci

TEKNIK DATA MINING UNTUK MEMPREDIKSI MASA STUDI MAHASISWA MENGGUNAKAN ALGORITMA K-NEAREST NEIGHBORHOOD

TEKNIK DATA MINING UNTUK MEMPREDIKSI MASA STUDI MAHASISWA MENGGUNAKAN ALGORITMA K-NEAREST NEIGHBORHOOD Jurnal Teknik Komputer Unikom Komputika Volume 3, No.2-2014 TEKNIK DATA MINING UNTUK MEMPREDIKSI MASA STUDI MAHASISWA MENGGUNAKAN ALGORITMA K-NEAREST NEIGHBORHOOD Selvia Lorena Br Ginting 1), Wendi Zarman

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Dasar Teori 2.1.1 Data Mining Data mining adalah suatu istilah yang digunakan untuk menguraikan penemuan pengetahuan di dalam database. Data mining adalah Proses yang menggunakan

Lebih terperinci

SISTEM INFORMASI PENCARIAN ORANG HILANG BERBASIS WEB

SISTEM INFORMASI PENCARIAN ORANG HILANG BERBASIS WEB LAPORAN SKRIPSI SISTEM INFORMASI PENCARIAN ORANG HILANG BERBASIS WEB Diajukan Oleh : Nama : Farida Dwi Yuliani NIM : 2008-53-169 Program Studi : Sistem Informasi Fakultas : Teknik UNIVERSITAS MURIA KUDUS

Lebih terperinci