PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERBANDINGAN AKURASI ALGORITMA NAIVE BAYES CLASSIFIER DAN ALGORITMA BAYESIAN BELIEF NETWORK DALAM MENGKLASIFIKASIKAN MAHASISWA UNIVERSITAS SANATA DHARMA PROGRAM STUDI TEKNIK INFORMATIKA Skripsi Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika
Oleh : Renaldo Malau 095314016
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
A COMPARISON OF ACCURACY BETWEEN NAIVE BAYES CLASSIFIER ALGORITHM AND BAYESIAN BELIEF NETWORK ALGORITHM TO CLASSIFY STUDENTS OF INFORMATICS ENGINEERING STUDY PROGRAM, SANATA DHARMA UNIVERSITY A Thesis Presented as Partial Fullfillment of the Requirements To Obtain the Sarjana Komputer Degree In Study Program of Informatics Engineering
By : Renaldo Malau 095314016
INFORMATICS ENGINEERING STUDY PROGRAM DEPARTMENT OF INFORMATICS ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015
ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN
Untuk Keluargaku tercinta, God Bless!
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRAK
Klasifikasi adalah proses menemukan model (atau fungsi) yang menguraikan dan membedakan kelas data atau konsep, dengan tujuan untuk dapat menggunakan model tersebut untuk memprediksi kelas dari objek yang label kelasnya tidak diketahui (Tan, Steinbach, & Kumar, 2006). Algoritma Naïve Bayes Classifier (NBC) dan Bayesian Belief Network (BBN) adalah algoritma klasifikasi berdasarkan penerapan teorema Bayes. Meskipun kedua algoritma tersebut melakukan klasifikasi dengan metode yang sama, namun berbeda dalam menangani hubungan antar atribut. Algoritma NBC mengasumsikan bahwa setiap atribut independen, sementara algoritma BBN mampu menangani atribut yang dependen dengan menggunakan directed acyclic graph (DAG). Dengan melakukan pengujian dependensi, maka dapat dilakukan pemilihan atribut untuk algoritma NBC dan pembangunan model untuk algoritma BBN, sehingga data akan memenuhi syarat keoptimalan kedua algoritma. Dengan demikian, maka penelitian ini akan dapat menjawab pertanyaan mengenai algoritma manakah yang lebih akurat antara NBC dan BBN.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT
Classification is the process of finding a model (or function) that describes and distinguishes data classes or concepts, for the purpose of being able to use the model to predict the class of objects whose class label is unknown (Tan, Steinbach, & Kumar, 2006). Naïve Bayes Classifier (NBC) algorithm and Bayesian Belief Network (BBN) algorithm is classification algorithm based on applying Bayes’ theorem. Even though both these algorithms perform classification with the same method, but different in handling dependencies among attributes. NBC assume that the attributes are conditionally independent, on the other hand, BBN allow the representation of dependencies among attributes using directed acyclic graph (DAG). By testing dependencies, selecting attributes for NBC algorithms and algorithm development for BBN model can be done, so that the data would best qualify both algorithms. Therefore, this thesis will be able to answer questions about which is more accurate algorithms between NBC and BBN.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR
Puji dan syukur kehadirat Tuhan Yang Maha Esa, karena atas limpahan rahmat dan kasih-Nya penulis dapat menyelesaikan penelitian yang berjudul “Perbandingan Akurasi Algoritma Naive Bayes Classifier dan Algoritma Bayesian Belief Network Dalam Mengklasifikasikan Mahasiswa Universitas Sanata Dharma Program studi teknik informatika”. Penulis mengucapkan terimakasih kepada semua pihak yang memberikan kritik, masukan, dukungan, dan bantuan yang sangat bermanfaat bagi Penulis. Pada kesempatan ini Penulis mengucapkan terima kasih yang sebesar-besarnya kepada: 1. Ibu Ridowati Gunawan, S.Kom., M.T. selaku ketua program studi Teknik Informatika, pembimbing skripsi, serta sumber data bagi penelitian ini. Terima kasih atas kesabaran, arahan, kritik, dan saran yang telah diberikan kepada penulis. 2. Ibu P.H. Prima Rosa, S.Si., M.Sc. selaku dosen penguji serta dekan Fakultas Sains dan Teknologi yang telah berkenan memberikan motivasi, kritik, dan saran yang sangat berarti bagi Penulis. 3. Ibu Sri Hartati Wijono, S.Si., M.Kom. selaku dosen penguji atas motivasi, kritik dan saran yang telah diberikan kepada Penulis. 4. Segenap dosen Universitas Sanata Dharma Program Studi Teknik Informatika yang telah mendidik dan memberikan bekal pengetahuan bagi Penulis.
x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5. Sahabat dan teman-teman seperjuangan, TI angkatan 2009 yang selalu memberikan keceriaan, semangat, dan dukungan dalam menyelesaikan tugas akhir ini. 6. Kedua orangtua terkasih, Bapak R.E. Malau dan Ibu E. br Situmorang, serta kepada kedua adik tersayang, Yetty dan Vina. 7. Bapak Haris Wisnoe dan Ibu Sunartinah Wisnoe 8. Serta semua pihak yang tidak dapat disebutkan satu persatu yang telah membantu penulis dalam menyelesaikan tugas akhir ini.
Seperti kata pepatah, tak ada gading yang tak retak, penulis menyadari bahwa penelitian ini masih jauh dari sempurna. Oleh karena itu, segala kritik dan saran yang membangun sangat Penulis harapkan demi perbaikan di masa yang akan datang. Akhir kata, Penulis berharap semoga skripsi ini dapat membawa manfaat bagi pembaca dan bagi banyak pihak.
Yogyakarta, 23 Januari 2015
Penulis
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN JUDUL ................................................................................................i HALAMAN JUDUL (INGGRIS) ........................................................................... ii HALAMAN PERSETUJUAN ............................................................................... iii HALAMAN PENGESAHAN ................................................................................iv HALAMAN PERSEMBAHAN .............................................................................. v PERNYATAAN KEASLIAN KARYA .................................................................vi LEMBAR PERNYATAAN PERSETUJUAN ..................................................... vii ABSTRAK ........................................................................................................... viii ABSTRACT ........................................................................................................... ix KATA PENGANTAR .............................................................................................x DAFTAR ISI ......................................................................................................... xii DAFTAR TABEL ................................................................................................ xiv DAFTAR GAMBAR .............................................................................................xv BAB I PENDAHULUAN .......................................................................................1 1.1.
Latar Belakang ..........................................................................................1
1.2.
Rumusan Masalah .....................................................................................3
1.3.
Tujuan Penelitian.......................................................................................3
1.4.
Batasan Masalah ........................................................................................3
1.5.
Metodologi Penelitian ...............................................................................4
1.6.
Sistematika Penulisan ................................................................................5
BAB II LANDASAN TEORI .................................................................................6 2.1.
Penambangan Data ....................................................................................6
2.2.
Pemilihan Atribut ......................................................................................8
2.3.
Koefisien Korelasi Pearson’s Product Moment ........................................9
2.4.
Naive Bayes Classifier ............................................................................14
2.5.
Bayesian Belief Network ........................................................................21
2.6.
K-Fold Cross Validation .........................................................................27
2.7.
Pengukuran Akurasi Klasifikasi ..............................................................28
BAB lll ANALISIS DAN PERANCANGAN SISTEM .......................................29 3.1.
Analisis Sistem ........................................................................................29 xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
xiii
3.2.
Sumber Data ............................................................................................29
3.3.
Analisis Pengolahan Data........................................................................32
3.4.
Perancangan Umum Sistem ....................................................................39
3.5.
Desain Antarmuka Sistem .......................................................................43
BAB IV IMPLEMENTASI SISTEM ...................................................................48 4.1.
Implementasi Antarmuka Pemakai (User Interface)...............................48
4.2.
Implementasi Algoritma ..........................................................................57
BAB V ANALISIS HASIL ..................................................................................63 5.1.
Analisis Hasil Cross Validation ..............................................................63
5.2.
Analisis Proses Penambangan Data ........................................................63
5.3.
Analisis Hasil Penambangan Data ..........................................................72
5.4.
Kelebihan dan Kekurangan Sistem .........................................................74
BAB VI PENUTUP ..............................................................................................76 6.1.
Kesimpulan..............................................................................................76
6.2.
Saran ........................................................................................................77
DAFTAR PUSTAKA ............................................................................................78 LAMPIRAN I ........................................................................................................79 LAMPIRAN II .......................................................................................................84 LAMPIRAN III ......................................................................................................89 LAMPIRAN IV .....................................................................................................95 LAMPIRAN V .......................................................................................................99 LAMPIRAN VI ...................................................................................................103
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL
Tabel 2.1. Data jumlah halaman dan harga textbook (Uyanto, 2006)........................ 10 Tabel 2.2. Output hasil korelasi menggunakan software SPSS SPSS (Uyanto, 2006) ........................................................................................................ 13 Tabel 2.3. Contoh Data Training (Tan, Steinbach, & Kumar, 2006) ......................... 17 Tabel 3.1. Data Mentah dari TI USD ......................................................................... 30 Tabel 3.2. Jumlah Data Hasil Pembersihan ................................................................ 33 Tabel 3.3. Deskripsi Use Case.................................................................................... 41
xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR GAMBAR
Gambar 2.1. Tahapan Dalam KDD (Han & Kamber, 2006) ......................................... 6 Gambar 2.2. Deklaasi variabel (Uyanto, 2006) ........................................................... 10 Gambar 2.3. Input Data (Uyanto, 2006) ...................................................................... 11 Gambar 2.4. Cara menampilkan kotak dialog pengaturan korelasi (Uyanto, 2006) ... 11 Gambar 2.5. Kotak dialog pengaturan korelasi (Uyanto, 2006) .................................. 12 Gambar 2.6. Pengaturan korelasi yang dilakukan (Uyanto, 2006) .............................. 12 Gambar 2.7. Representasi relasi probabilitas menggunakan DAC (Tan, Steinbach, & Kumar, 2006) ..................................................................................... 21 Gambar 2.8. BBN untuk mendeteksi heart disease dan heartburn pada pasien (Tan, Steinbach, & Kumar, 2006) ................................................................... 25 Gambar 2.9. Ilustrasi 3-fold Cross Validation ............................................................. 27 Gambar 2.10. Confusion Matrix untuk matrix 2×2 (Tan, Steinbach, & Kumar, 2006) ...................................................................................................... 28 Gambar 3.1. Topologi network BBN........................................................................... 36 Gambar 3.2. Diagram Use Case................................................................................... 40 Gambar 3.3. Desain Halaman Utama .......................................................................... 43 Gambar 3.4. Desain Kotak Dialog Panduan ................................................................ 44 Gambar 3.5. Desain Kotak Dialog About .................................................................... 44 Gambar 3.6. Desain Panel Set Data ............................................................................. 45 Gambar 3.7. Desain Panel Klasifikasi ......................................................................... 46 Gambar 3.8. Desain Panel Akurasi .............................................................................. 47 Gambar 4.1. Tampilan Program Halaman Utama ....................................................... 48 Gambar 4.2. Tampilan Kotak Dialog Panduan ............................................................ 49 Gambar 4.3. Tampilan Kotak Dialog About................................................................ 49 Gambar 4.4. Tampilan Panel Set Data ......................................................................... 50 Gambar 4.5. Tampilan Kotak Dialog Impor Data ....................................................... 51 Gambar 4.6. Tampilan Kotak Dialog Ekspor Data ...................................................... 51
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.7. Tampilan Panel Klasifikasi ..................................................................... 52 Gambar 4.8. Tampilan Hasil Klasifikasi ..................................................................... 53 Gambar 4.9. Tampilan Data Training .......................................................................... 54 Gambar 4.10. Tampilan Data Testing .......................................................................... 54 Gambar 4.11. Tampilan Model NBC........................................................................... 55 Gambar 4.12. Tampilan Model BBN........................................................................... 55 Gambar 4.13. Tampilan Panel Akurasi ........................................................................ 56 Gambar 5.1. Screenshot Model NBC menggunakan Weka......................................... 65 Gambar 5.2. Screenshot Model BBN untuk Atribut INF 121 Menggunakan Weka ... 65 Gambar 5.3. Screenshot Model BBN untuk Kelas Peminatan Menggunakan Weka .. 65 Gambar 5.4. Screenshot Model NBC Menggunakan Sistem....................................... 66 Gambar 5.5. Screenshot Model BBN menggunakan Sistem ....................................... 67 Gambar 5.6. Screenshot Hasil Penambangan Data Menggunakan Sistem .................. 68 Gambar 5.7. Screenshot Hasil Penambangan Data Weka Menggunakan NBC .......... 69 Gambar 5.8. Screenshot Hasil Penambangan Data Weka Menggunakan BBN .......... 70 Gambar 5.9. Screenshot Akurasi Algoritma ................................................................ 71 Gambar 5.10. Screenshot Akurasi Algoritma Menggunakan 3-fold cross validation . 72 Gambar 5.11. Screenshot Akurasi Algoritma Menggunakan 5-fold cross validation . 72
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Perkembangan teknologi yang pesat mengakibatkan terjadinya komputerisasi
di berbagai bidang. Salah satu dampak dari komputerisasi adalah terjadinya penumpukan data dalam jumlah besar. Klasifikasi merupakan data analisis yang berfungsi untuk mengekstrak informasi tersebunyi dari data yang besar yang dapat digunakan untuk prediksi atau pembantu pengambilan keputusan (Han & Kamber, 2006). Sebagai contoh, klasifikasi dapat digunakan oleh manajer pemasaran untuk memprediksi apakah seorang pelanggan akan membeli produk mereka atau tidak, oleh periset di bidang medis untuk mengkategorikan apakah sel tumor termasuk dalam kategori ganas atau jinak, atau oleh pihak universitas untuk mengklasifikasikan mahasiswa berdasarkan peminatan dalam program studinya. Terdapat banyak algoritma klasifikasi, beberapa algoritma diantaranya adalah Naïve Bayes Classifier (NBC) dan Bayesian Belief Network (BBN). Algoritma NBC dan BBN merupakan algoritma klasifikasi berdasarkan penerapan teorema Bayes. Meskipun kedua algoritma tersebut melakukan klasifikasi dengan metode yang sama, namun berbeda dalam menangani hubungan antar atribut. Algoritma NBC mengasumsikan bahwa setiap atribut independen, sementara algoritma BBN mampu menangani atribut yang dependen dengan menggunakan directed acyclic graph (DAG). Dalam beberapa kasus, terdapat data yang dapat diuji depedensinya, sehingga memenuhi syarat keoptimalan kedua algoritma. Oleh karena itu, kedua algoritma ini
1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
perlu diuji untuk mengetahui mana yang lebih akurat diantara keduanya. Kasus yang digunakan untuk membandingkan kedua algoritma ini adalah kasus klasifikasi mahasiswa Universitas Sanata Dharma (USD) program studi Teknik Informatika (TI). Menurut buku Panduan Akademik Teknik Informatika USD, kurikulum program studi TI USD mewajibkan mahasiswa untuk menentukan peminatannya. Peminatan yang disediakan adalah Komputasi, Basis Data, dan Jaringan Komputer. Sehingga masalah yang dihadapi adalah bagaimana mengenali pola klasifikasi peminatan mahasiswa, serta melakukan prediksi untuk mengetahui peminatan apa yang akan diambil oleh mahasiswa. Karena algoritma NBC dan BBN memiliki cara yang berbeda dalam menangani dependensi antar atribut, maka pengujian dependensi perlu dilakukan. Salah satu teknik statistik dalam menguji dependensi antar atribut adalah koefisien korelasi. Setelah dilakukan pengujian dependensi, selanjutnyat dilakukan pemilihan atribut untuk algoritma NBC dan pembangunan network untuk algoritma BBN, sehingga proses klasifikasi akan dapat dilakukan. Dengan demikian, maka penelitian ini akan dapat menjawab pertanyaan mengenai algoritma manakah antara NBC dan BBN yang lebih akurat dalam mengklasifikasikan mahasiswa Universitas Sanata Dharma program studi Teknik Informatika.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.2.
3
Rumusan Masalah Berdasarkan latar belakang masalah di atas, rumusan masalah yang didapat
adalah: algoritma
manakah yang lebih akurat antara NBC dan BBN dalam
mengklasifikasikan mahasiswa Universitas Sanata Dharma program studi Teknik Informatika?
1.3.
Tujuan Penelitian Tujuan dari penelitian ini adalah sebagai berikut: 1. Mengimplementasikan algoritma NBC dan BBN kedalam sistem untuk mengklasifikasikan mahasiswa USD program studi TI. 2. Mengetahui akurasi yang didapat oleh algoritma NBC dan BBN dalam mengklasifikasikan mahasiswa USD program studi TI.
1.4.
Batasan Masalah Penelitian ini akan dibatasi pada hal-hal berikut: 1.
Dataset yang akan digunakan adalah data mahasiswa angkatan angkatan 2010 dan 2011.
2.
Nilai matakuliah yang akan digunakan untuk proses klasifikasi adalah nilai A, B, C, dan D. Nilai E dan F tidak akan digunakan, karena dalam sistem perkuliahan di USD, nilai tersebut merupakan nilai yang wajib diulang.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.
4
Pengujian dependensi atribut dilakukan menggunakan perangkat lunak IBM SPSS.
1.5.
Metodologi Penelitian Metodologi yang akan digunakan dalam penelitian ini adalah: 1. Pengumpulan data Mengumpulkan data-data yang akan digunakan dalam penelitian. Data yang dimaksud adalah data mahasiswa yang akan ditambang. 2. Melakukan Proses KDD Sesuai dengan tahapan pada proses KDD, data akan dikenai beberapa proses, yaitu pembersihan data, integrasi data, penyeleksian data, transformasi data, penambangan data, dan data evaluasi. 3. Pengembangan Sistem Pengembangan sistem dilakukan berdasarkan kebutuhan pengguna dalam melakukan penelitian. Sistem dirancang untuk mampu melakukan pembersihan data, cross validation, klasifikasi, dan menghitung akurasi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
1.6.
5
Sistematika Penulisan BAB I
PENDAHULUAN
Bab ini berisi latar belakang, rumusan masalah, tujuan penelitian, batasan masalah, metodologi penelitian, dan sistematika penulisan.
BAB II
LANDASAN TEORI
Bab ini berisi tentang teori yang menunjang penelitian, berupa pengertian penambangan data, pemilihan atribut, korelasi, algoritma NBC, algoritma BBN, cross validation, dan penghitungan akurasi.
BAB III PERANCANGAN SISTEM Bab ini berisi tentang cara penerapan konsep dasar yang telah diuraikan pada Bab II untuk merancang tentang sistem yang akan dibuat.
BAB IV IMPLEMENTASI SISTEM Bab ini membahas mengenai hasil implementasi sistem yang dibangun berdasarkan perancangan sistem yang telah dibahas di bab iii.
BAB V
ANALISIS HASIL
Bab ini berisi tentang analisis hasil penelitian dengan menggunakan sistem yang telah dibangun beserta kelebihan dan kekurangan sistem.
BAB VI PENUTUP Bab ini berisi tentang kesimpulan dan saran yang didapat dari hasil penelitian.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II LANDASAN TEORI 2.1.
Penambangan Data Penambangan Data adalah proses pengumpulan informasi penting dari
sejumlah data besar yang tersimpan di basis data, gudang data, atau tempat penyimpanan lainnya (Han & Kamber, 2006). Penambangan data merupakan proses yang tidak dapat dipisahkan dengan Knowledge Discovery in Database (KDD), karena penambangan data adalah salah satu tahap dalam proses KDD seperti yang ditunjukkan oleh gambar 2.1.
Gambar 2.1. Tahapan Dalam KDD (Han & Kamber, 2006)
6
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
Menurut Han dan Kamber (2006), tahapan-tahapan dalam proses KDD adalah sebagai berikut: 1.
Pembersihan data (Data Cleaning) Pembersihan data merupakan proses untuk menghilangkan data yang mengandung noise, atau data yang tidak konsisten.
2.
Integritas data (Data Integration) Pada tahap ini akan dilakukan penggabungan data yang berasal dari berbagai sumber.
3.
Seleksi data (Data Selection) Pada tahap ini akan dilakukan pemilihan data yang relevan dari database.
4.
Transformasi data (Data Transformation) Pada tahap ini data akan ditransformasikan kedalam format yang sesuai untuk diproses dalam penambangan data.
5.
Penambangan data (Data Mining) Penambangan data merupakan proses penting dimana metode akan diaplikasikan untuk mengekstrak pola data
6.
Evaluasi pola (Pattern Evaluation) Pada tahap ini, pola/model yang dihasilkan dari teknik data mining akan mengidentifikasi pola-pola yang menarik berdasarkan ukuran tertentu
7.
Presentasi pengetahuan (Knowledge Presentation) Pada tahap ini akan dilakukan teknik visualisasi yang digunakan untuk menampilkan pengetahuan hasil proses mining kepada pengguna
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.2.
8
Pemilihan Atribut Dataset yang akan digunakan untuk analisis mungkin dapat berisi ratusan
atribut, dan mungkin saja sebagian besar tidak relevan untuk ditambang atau berlebihan (redundant). Menurut Tan, Steinbach, dan
Kumar, (2006) atribut
berlebihan (redundant) menduplikasi banyak atau semua informasi yang terdapat didalam satu atau lebih atribut lain. Sebagai contoh, harga beli sebuah produk dan jumlah pajak penjualan berisi informasi yang sama. Sementara atribut yang tidak relevan berisi informasi yang tidak berguna untuk melakukan penambangan data. Sebagai contoh, nomor induk mahasiswa (NIM) adalah tidak relevan jika digunakan untuk memprediksi IPK (indeks prestasi kumulatif) mahasiswa. Ada beberapa metode dalam memfilter atribut. Menurut Pal dan Mitra (2004) secara umum metode pemfilteran atribut dapat dibagi menjadi dua kategori. Metode dalam kategori pertama berkaitan dangan memaksimalkan performa clustering, yang diukur menggunakan beberapa indeks. Metode dalam kategori yang lainnya melakukan seleksi atribut berdasarkan ketergantungan atribut dan relevansi. Prinsipnya adalah setiap atribut yang tidak atau sedikit memiliki informasi lebih dari atribut lain adalah atribut berlebihan (redundant) dan sebaiknya dieliminasi. Ada beberapa teknik statistik yang dapat digunakan dalam mengukur ketergantungan atribut, antara lain koefisien korelasi, pengukuran redundancy secara statistika, atau linier dependency.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9
Koefisien Korelasi Pearson’s Product Moment
2.3.
Kata korelasi diambil dari bahasa inggris yaitu correlation artinya saling berhubungan atau hubungan timbal balik. Dalam ilmu statistika istilah korelasi diberi pengertian sebagai hubungan antara dua variabel atau lebih. Contoh dua variabel yang dapat dicari hubungannya adalah pengukuran antara tinggi badan ayah dan tinggi badan anaknya setelah dewasa. Secara spesifik, tujuan analisis korelasi adalah ingin mengetahui apakah diantara dua variabel terdapat hubungan, dan jika ada hubungan, bagaimana arah hubungan dan seberapa besar hubungan tersebut (Santoso, 2014). Ada beberapa teknik statistik yang dapat digunakan untuk menganalisis korelasi, tergantung dari jenis data yang digunakan. Teknik statistik tersebut antara lain: 1. Koefisien Korelasi Pearson (r) 2. Koefisien Korelasi Spearman (rs) 3. Koefisien Korelasi Gamma (g) 4. Koefisien Korelasi Jaspen’s (M) 5. Koefisien Korelasi Eta (h) 6. Koefisien Korelasi Theta (q) 7. Koefisien Korelasi Lambada (l) 8. Koefisien Korelasi Kontingensi (C) Teknik analisis korelasi yang akan digunakan dalam penelitian ini adalah Pearson’s Product Moment. Korelasi Pearson’s Product Moment digunakan untuk
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
mengukur kekuatan hubungan linier antara dua variabel kontinu (berskala interval atau rasio). Sebagai contoh perhitungan korelasi Pearson’s Product
Moment
digunakan sebagai berikut: Suatu komisi pengadaan textbook suatu perguruan tinggi mengamati hubungan antara jumlah halaman textbook dan harga textbook tersebut. Dari sampel acak delapan textbook yang berbeda didapat data sebagai berikut: Tabel 2.1. Data jumlah halaman dan harga textbook (Uyanto, 2006) Textbook Jumlah Halaman Harga Textbook (US$)
Text A 400
Text B 600
Text C 500
Text D 600
Text E 400
Text F 300
Text G 200
Text H 550
40
65
60
78
55
45
25
70
Hitung korelasi Pearson’s Product Moment antara Jumlah Halaman Textbook dan Harga Textbook dan tentukan apakah korelasi tersebut signifikan. Prosedur SPSS Korelasi Pearson’s Product Moment 1. Pada halaman Variable View dari SPSS Data Editor, definisikan variabel seperti pada gambar 2.2.
Gambar 2.2. Deklaasi variabel (Uyanto, 2006)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
2. Kemudian pada lembar Data View dari SPSS Data Editor, masukkan data seperti pada gambar 2.3.
Gambar 2.3. Input Data (Uyanto, 2006)
3. Setelah pengolahan data selesai, lakukan proses analisis korelasi dengan cara klik menu Analyze → Correlate → Bivariate, seperti ditunjukkan pada gambar 2.4, kemudian akan muncul tampilan seperti pada gambar 2.5.
Gambar 2.4. Cara menampilkan kotak dialog pengaturan korelasi (Uyanto, 2006)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12
Gambar 2.5. Kotak dialog pengaturan korelasi (Uyanto, 2006)
4. Pilih variabel Jumlah Halaman [halaman] dan variabel Harga Textbook [harga_tx] untuk dianalisis,
lalu tandai checkbox Pearson pada pilihan
Correlation Coefficients, dan pilih radiobutton Two-tailed pada pilihan Test of Significance, kemudian klik tombol OK.
Gambar 2.6. Pengaturan korelasi yang dilakukan (Uyanto, 2006)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
5. Setelah langkah keempat dilakukan, maka akan muncul tampilan seperti pada gambar berikut. Tabel 2.2. Output hasil korelasi menggunakan software SPSS (Uyanto, 2006) Correlations Jumlah Halaman Textbook Pearson Correlation Jumlah Halaman Textbook
Sig. (2-tailed)
N **. Correlation is significant at the 0.01 level (2-tailed).
**
1
.934 .001
8 ** .934 .001
8 1
8
8
Sig. (2-tailed) N Pearson Correlation
Harga Textbook
Harga Textbook
Analisis Hasil Korelasi Product Moment Menggunakan SPSS Hasil korelasi yang ditunjukkan pada gambar 2.xx dapat dibaca sebagai berikut: 1. Hasil korelasi antara Jumlah Halaman dan Harga adalah 0.934 memiliki taraf signifikan 0.001. Jika taraf signifikansi lebih kecil dari 0.05 artinya kedua variabel berkorelasi, dan jika taraf signifikansi lebih kecil dari 0.01 artinya korelasi kedua variabel tersebut sangat kuat. 2. Korelasi antara kedua variabel tersebut adalah 0.934, artinya korelasi tersebut termasuk korelasi positif. Arti positif adalah, semakin banyak Jumlah Halaman, maka akan semakin tinggi Harga. Demikian pula sebaliknya, semakin sedikit Jumlah Halaman, maka semakin rendah pula Harga.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.4.
14
Naive Bayes Classifier Naive Bayes Classifier merupakan metode klasifikasi yang berdasarkan
teorema Bayes dengan asumsi bahwa setiap variable bersifat bebas (independent). Dengan kata lain, Naïve Bayes Classifier mengasumsikan bahwa keberadaan suatu variable tidak ada kaitannya dengan keberadaan variable lain. Menurut Jiawei Han dan Micheline Kamber (2006, p311), NBC bekerja dengan cara sebagai berikut: 1.
Misalkan D adalah data training, dan setiap tupel direpresentasikan dengan dimensi atribut sejumlah n vektor, X=(x1, x2, ..., xn), penggambaran ukuran n dibuat pada tupel berdasarkan n-buah atribut, masing-masing, A1, A2, ..., An.
2.
Misalkan terdapat kelas sejumlah m, C1, C2, ..., Cm. Diketahui terdapat sebuah tupel, yaitu X. Classifier akan memprediksi X masuk kelompok memiliki probabilitas posterior tertinggi, berdasarkan pada kondisi X. Artinya, classifier naive Bayesian memprediksi bahwa tupel X milik kelas Ci jika dan hanya jika : 𝑃 𝐶𝑖 𝑋 > 𝑃 𝐶𝑗 𝑋
𝑢𝑛𝑡𝑢𝑘 1 ≤ 𝑗 ≤ 𝑚, 𝑗 ≠ 𝑖
Artinya nilai P (Ci | X) akan dimaksimalkan. Kelas Ci dimana P (Ci| X) dimaksimalkan disebut maximum posteriori hypothesis oleh teorema Bayes: 𝑃 𝐶𝑖 𝑋 = 3.
𝑃 𝑋 𝐶𝑖 𝑃(𝐶𝑖 ) … … … … … . … . … … … … … … (2.1) 𝑃(𝑋)
Karena P (X) adalah konstan untuk semua kelas, maka hanya P (X | Ci) P (Ci) butuh dimaksimalkan. Jika probabilitas kelas sebelumnya (prior) tidak diketahui, maka umumnya diasumsikan ke dalam kelas yang sama, yaitu, P (C1) =P (C2) = ··· = P (Cm), oleh karena itu yang akan dimaksimalkan adalah
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
P (X|Ci). Sebaliknya, maka yang akan dimaksimalkan adalah P (X | Ci) P (Ci). Perhatikan bahwa probabilitas prior kelas dapat diperkirakan oleh P (Ci) = | Ci,D | / | D |, dimana | Ci,D | adalah jumlah tupel training kelas Ci dalam D. 4.
Jika dataset memiliki banyak atribut, maka akan dibutuhkan proses komputasi yang besar untuk menghitung P(X|Ci). Agar dapat mengurangi beban komputasi dalam mengevaluasi P(X|Ci), asumsi naïve independensi kelas bersyarat dibuat. Diasumsikan bahwa nilai-nilai atribut adalah saling independen bersyarat satu sama lain, yang diberi label kelas dari tuple. Dengan demikian maka akan didapat: 𝑛
𝑃 𝑋 𝐶𝑖 =
𝑃 𝑥𝑘 𝐶𝑖 ) 𝑘=1
= 𝑃 𝑥1 𝐶𝑖 × 𝑃 𝑥2 𝐶𝑖 × … 𝑃 𝑥𝑛 𝐶𝑖 … . . (2.2) Dengan menggunakan rumus tersebut maka dengan mudah dilakukan perhitungan probabilitas dari tupel training. Ingat bahwa xk disini mengacu pada nilai atribut Ak pada tupel X. Untuk setiap atribut, akan dilihat apakah atribut tersebut bernilai kategorikal atau kontinu. Misalnya, untuk menghitung P (X| Ci) maka perlu dipertimbangkan hal-hal berikut: a. Jika Ak adalah kategorikal, maka P (Xk | Ci) adalah jumlah tupel kelas Ci dalam D memiliki nilai xk pada atribut Ak, dibagi dengan | Ci,D |, jumlah tupel kelas Ci dalam D. b. Jika Ak bernilai kontinu, maka perlu melakukan sedikit lebih banyak perhitungan.
Sebuah
atribut
yang
bernilai
kontinu
biasanya
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
16
diasumsikan memiliki distribusi Gaussian dengan rata-rata μ dan standar deviasi σ, didefinisikan oleh: 𝑔 𝑥, 𝜇, 𝜎 =
1 2𝜋𝜎
(𝑥−𝜇 )2 − 𝑒 2𝜎 2
… … … . . … … … … … … (2.3)
Sehingga menghasilkan: 𝑃 𝑥𝑘 𝐶𝑖 = 𝑔 𝑥𝑘 , 𝜇𝑐𝑖 , 𝜎𝑐𝑖 … … … … … … … … … … … (2.4)
5.
Untuk memprediksi label kelas dari tupel X, P(X|Ci) P(Ci) dievaluasi untuk setiap kelas Ci. Classifier memprediksi label kelas dari tupel X adalah kelas Ci, jika dan hanya jika 𝑃 𝑋 𝐶𝑖 𝑃 𝐶𝑖 > 𝑃 𝑋 𝐶𝑗 𝑃 𝐶𝑗 𝑢𝑛𝑡𝑢𝑘 1 ≤ 𝑗 ≤ 𝑚, 𝑗 ≠ 𝑖 … … … … … 2.5 Dengan kata lain, label kelas diprediksi adalah Ci dimana P (X|Ci) P (Ci) adalah nilai maksimum.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
17
Contoh Naïve Bayesian Berikut ini contoh kasus yang akan diselesaikan dengan menggunakan metode Naïve Bayes Classifier. Tabel 2.3. Contoh Data Training (Tan, Steinbach, & Kumar, 2006) Cuaca X1 Cerah Cerah Mendung Hujan Hujan Hujan Mendung Cerah Cerah Hujan Cerah Mendung Mendung Hujan
Temperatur X2 Panas Panas Panas Sedang Dingin Dingin Dingin Sedang Dingin Sedang Sedang Sedang Panas Sedang
Kelembapan X3 Tinggi Tinggi Tinggi Tinggi Normal Normal Normal Tinggi Normal Normal Normal Tinggi Normal Tinggi
Angin X4 Kecil Besar Kecil Kecil Kecil Besar Besar Kecil Kecil Kecil Besar Besar Kecil Besar
Main/Tidak Y Tidak Tidak Ya Ya Ya Tidak Ya Tidak Ya Ya Ya Ya Ya Tidak
Berdasarkan data pada tabel 2.3, model Naïve Bayes Classifier adalah sebagai berikut: P(X1 =Cerah | Ya) = 2/9 P(X1 =Mendung | Ya) = 4/9 P(X1 =Hujan | Ya) = 3/9 P(X1 =Cerah | Tidak) = 3/5 P(X1 =Mendung | Tidak) = 0 P(X1 =Hujan | Tidak) = 2/5 P(X2 =Panas | Ya) = 2/9 P(X2 =Sedang | Ya) = 4/9 P(X2 =Dingin | Ya) = 3/9 P(X2 =Panas | Tidak) = 2/5 P(X2 =Sedang | Tidak) = 2/5 P(X2 =Dingin | Tidak) = 1/5 P(X3 =Tinggi | Ya) = 3/9 P(X3 =Normal | Ya) = 6/9 P(X3 =Tinggi | Tidak) = 4/5 P(X3 =Normal | Tidak) = 1/5
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
P(X4 =Besar | Ya) = 3/9 P(X4 =Kecil | Ya) = 6/9 P(X4 =Besar | Tidak) = 3/5 P(X4 =Kecil | Tidak) = 2/5 P(Y = Ya) = 9/14 P(Y = Tidak) = 5/14
Misalkan diketahui cuaca cerah, temperatur dingin, kelembapan tinggi, dan angin besar, maka perhitungan probabilitas untuk menentukan apakah data tersebut termasuk kelas Ya atau Tidak adalah: P(X | Y = ya) = P(Y = ya) × P(X1 = cerah | Y = ya) × P(X2 = dingin | Y = ya) × P(X3 = tinggi | Y = ya) × P(X4 = besar | Y = ya) = 9/14 × 2/9 × 3/9 × 3/9 × 3/9 = 0.0053
P(X | Y = tidak) = P(Y = tidak) × P(X1 = cerah | Y = tidak) × P(X2 = dingin | Y = tidak) × P(X3 = tinggi | Y = tidak) × P(X4 = besar | Y = tidak) = 5/14 × 3/5 × 1/5 × 4/5 × 3/5 = 0.0206 Berdasarkan hasil perhitungan tersebut, probabilitas Tidak (0.0206) lebih besar dibandingkan probabilitas Ya (0.0053), sehingga dapat disimpulkan bahwa record tersebut diklasifikasikan sebagai kelas Tidak.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
19
Karakteristik Naive Bayes Classifier Naive Bayes Classifier umumnya memiliki karakteristik sebagai berikut (Tan, Steinbach, & Kumar, 2006) : 1.
Kokoh terhadap noise karena variabel dirata-ratakan ketika menghitung probabilitas bersyarat dari data. Naive Bayes Classifier juga dapat menangani missing value dengan cara mengabaikan contoh selama pembuatan model dan klasifikasi.
2.
Kokoh untuk atribut tidak relevan, jika Xi adalah atribut yang tidak relevan, maka P(Xi|Y) menjadi hampir didistribusikan seragam. Peluang kelas bersyarat untuk Xi tidak berdampak pada keseluruhan perhitungan probabilitas posterior.
3.
Atribut yang saling berkorelasi dapat menurunkan performance Naive bayes classifier karena asumsi independen bersyarat tidak lagi terdapat dalam atribut tersebut. Sebagai contoh, perhatikan peluang berikut. P(A = 0|Y = 0) = 0.4,
P(A = 1|Y = 0) = 0.6,
P(A = 0|Y = 1) = 0.6,
P(A = 1|Y = 1) = 0.4,
Dimana A adalah atribut bertipe biner dan Y adalah variabel kelas bertipe biner. Jika terdapat atribut bertipe biner lain yaitu B yang secara tepat berkorelasi dengan A ketika Y = 0, tetapi independen dengan A ketika Y = 1. Secara sederhana, diasumsikan bahwa peluang kelas
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
bersyarat untuk B sama seperti A. Diberikan data dengan atribut A= 0, B = 0, dapat dihitung peluang posterior sebagai berikut:
𝑃 𝑌 = 0 𝐴 = 0, 𝐵 = 0 =
𝑃 𝐴=0𝑌=0 𝑃 𝐵=0𝑌=0 𝑃 𝑌=0 𝑃 𝐴 = 0, 𝐵 = 0
= 𝑃 𝑌 = 1 𝐴 = 0, 𝐵 = 0 =
0.16 × 𝑃(𝑌 = 0) 𝑃(𝐴 = 0, 𝐵 = 0)
𝑃 𝐴=0𝑌=1 𝑃 𝐵=0𝑌=0 𝑃 𝑌=1 𝑃 𝐴 = 0, 𝐵 = 0
=
0.36 × 𝑃(𝑌 = 1) 𝑃(𝐴 = 0, 𝐵 = 0)
Jika P(Y=0) = P(Y=1), maka NBC akan mengklasifikasikan data ke kelas 1. Walaupun begitu, perhitungan yang benar seharusnya sebagai berikut: P(A=0, B=0 | Y=0) = P(A=0 | Y=0) = 0.4 Karena A dan B dihubungkan secara tepat ketika Y = 0. Sebagai hasilnya, probabilitas posterior untuk Y = 0 adalah :
𝑃 𝑌 = 0 𝐴 = 0, 𝐵 = 0 =
𝑃 𝐴=0𝑌=0 𝑃 𝐵=0𝑌=0 𝑃 𝑌=0 𝑃 𝐴 = 0, 𝐵 = 0
=
0.4 × 𝑃(𝑌 = 0) 𝑃(𝐴 = 0, 𝐵 = 0)
Karena Y=0 lebih besar dibanding untuk Y = 1, maka record seharusnya diklasifikasikan sebagai kelas 0.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.5.
21
Bayesian Belief Network Asumsi independen bersyarat dibuat oleh Naive Bayes Classifier mungkin
terlalu kaku, khususnya untuk masalah klasifikasi yang atributnya saling berkorelasi. Bayesian Belief Network (BBN) melakukan yang pendekatan lebih fleksibel untuk memodelkan peluang kelas bersyarat P( X |Y). Sebagai ganti asumsi independen bersyarat untuk atribut terhadap kelas yang diberikan, pendekatan ini menspesifikasi setiap atribut yang independen secara bersyarat. (Tan, Steinbach, & Kumar, 2006)
Representasi Model BBN menyediakan representasi grafis dari hubungan probabilitas antara set variabel acak. Terdapat dua unsur kunci Bayesian Belief Network (Tan, Steinbach, & Kumar, 2006): 1.
Directed acyclic graph (dag) mengkodekan hubungan dependensi antar variabel
2.
Tabel probabilitas mengasosiasikan setiap node ke node parent-nya.
Gambar 2.7. Representasi relasi probabilitas menggunakan DAC (Tan, Steinbach, & Kumar, 2006)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
22
Misalkan terdapat tiga variabel acak, A, B, dan C, dimana A dan B adalah variabel independen dan masing-masing memiliki pengaruh langsung terhadap variabel C. Hubungan antar variabel dapat diringkas ke dalam directed acyclic graph yang ditunjukkan dalam Gambar 2.7 (a). Setiap node pada graf merepresentasikan variabel, dan tiap panah melambangkan hubungan kebergantungan antara variabel. Jika terdapat panah dari X ke Y, maka X adalah parent Y dan Y adalah child X. Selanjutnya, jika terdapat jalur dari X ke Z, maka X adalah ancestor Z, sedang Z adalah descendant X. Sebagai contoh, pada diagram yang ditunjukkan pada gambar 2.7 (b), A adalah descendant D dan D ancestor B. Baik B dan D, keduanya juga nondescendant A. Properti penting Bayesian network dinyatakan sebagai berikut, Node pada BBN adalah independen bersyarat terhadap non-descendant-nya, jika parentnya diketahui. Pada graf yang ditunjukkan pada Gambar 2.7 (b), A adalah independen bersyarat dari B dan D melalui C karena node untuk B dan D adalah non-descendant node
A.
Asumsi
independen
bersyarat
dimiliki
oleh
NBC
juga
dapat
direpresentasikan menggunakan BBN, seperti ditunjukkan Gambar 2.7 (c), dimana y adalah target kelas dan {X1, X2,...,Xd} adalah atribut set.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
23
Pembuatan Model Menurut Tan, Steinbach, dan Kumar (2006), pembuatan model di dalam BBN melibatkan dua langkah: (1) membuat struktur network, dan (2) menghitung probabilitas di dalam tabel yang berkaitan dengan setiap node. Topologi network dapat diperoleh dengan meng-encode pengetahuan (knowledge) subyektif dari expert domain. Algoritma berikut dapat menyajikan prosedur yang sistematis untuk mendukung topologi Bayesian network. 1. Misalkan T melambangkan total order variabel. 2. Untuk J=1 sampai d lakukan 3. Buat X T j melambangkan variabel order tertinggi ke- j di dalam T .
X T j X T 1 , X T 2 ,, X T j 1 X 4. Buat melambangkan set variabel terdahulu T j . 5. Pindahkan variabel dari X T j yang tidak mempengaruhi X j (menggunakan
pengetahuan prior) 6. Buat panah antara X T j dan variabel yang tersisa di dalam X T j . 7. Akhir Looping.
Perhatikan variabel yang ditunjukkan pada gambar 2.8. Setelah melakukan langkah 1, asumsikan bahwa variabel disusun dengan cara: (E, D, HD, Hb, CP, BP). Dari langkah dua ke tujuh, dimulai dari variabel D, probabilitas bersyarat dapat dihasilkan berikut: 1.
P(D|E) disederhanakan menjadi P(D)
2.
P(HD|E, D) tidak dapat disederhanakan
3.
P(Hb|HD, E, D) disederhanakan menjadi P(Hb|D)
4.
P(CP|Hb, HD, E, D) disederhanakan menjadi P(CP|Hb, HD)
5.
P(BP|CP, Hb, HD, E, D) disederhanakan menjadi P(BP|HD)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24
Berdasarkan probabilitas bersyarat tersebut, dapat dibuat panah antara node (E,HD),
(D,HD),
(D,Hb),
(HD,CP),
dan
(HD,BP).
Panah-panah
tersebut
menghasilkan struktur jaringan yang ditunjukkan pada Gambar 2.8. Algoritma tersebut menjamin bahwa topologi tidak terdapat siklus. Karena algoritma mencegah adanya panah menghubungkan urutan node terendah ke urutan node tertinggi, maka tidak akan ada siklus di dalam topologi. Meskipun demikian, topologi network dapat berubah jika susunan variabelnya diubah. Beberapa topologi dapat menjadi kurang baik karena menghasilkan banyak panah yang menghubungkan antara pasangan node berbeda. Pada prinsipnya, seluruh d dapat diuji menggunakan semua kemungkinan pengurutan variabel untuk menentukan topologi yang paling tepat, namun hal tersebut akan membutuhkan waktu komputasi yang besar. Pendekatan alternatifnya adalah membagi variabel ke dalam beberapa variabel sebab-akibat dan kemudian gambarkan panah dari tiap variabel sebab ke variabel akibat yang sesuai. Pendekatan ini memudahkan tugas untuk membangun struktur Bayesian network.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
25
Contoh Penggunaan BBN
Gambar 2.8. BBN untuk mendeteksi heart disease dan heartburn pada pasien (Tan, Steinbach, & Kumar, 2006) Misalkan terdapat kasus pendeteksian penyakit heart desease dan heartburn pada pasien, dan seorang ahli membangun model BBN sepeti pada Gambar 2.8. Untuk mendiagnosa apakah pasien menderita penyakit heart desease atau tidak, maka probabilitas pasien menderita penyakit heart desease atau tidak dapat dihitung melalui Exercise, Diet, dan Blood Pressure. Jika diketahui bahwa orang tersebut melakukan olahraga teratur dan makan dengan pola diet yang sehat. Maka robabilitas posterior bahwa seseorang terkena heart disease adalah : 𝑃 𝐻𝐷 = 𝑦𝑒𝑠|𝐵𝑃 = 𝑖𝑔, 𝐷 = 𝑒𝑎𝑙𝑡𝑦, 𝐸 = 𝑦𝑒𝑠 𝑃 𝐵𝑃 = 𝑖𝑔 𝐻𝐷 = 𝑦𝑒𝑠) × 𝑃(𝐻𝐷 = 𝑦𝑒𝑠|𝐷 = 𝑒𝑎𝑙𝑡𝑦, 𝐸 = 𝑦𝑒𝑠) 𝛾 𝑃 𝐵𝑃 = 𝑖𝑔 𝐻𝐷 = 𝛾 × 𝑃(𝐻𝐷 = 𝛾|𝐷 = 𝑒𝑎𝑙𝑡𝑦, 𝐸 = 𝑦𝑒𝑠) 0.85 × 0.25 = = 0.5862 0.85 × 0.25 + 0.2 × 0.75
=
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
sedangkan peluang bahwa seseorang tidak terkena penyakit jantung adalah : P(HD=No|BP=High, D=Healthy, E=Yes) = 1 – 0.5862 = 0.4138. Model tersebut selanjutnya menyatakan bahwa dengan pola makan sehat dan melakukan olahraga teratur akan mengurangi resiko penyakit jantung.
Karakteristik BBN Karakteristik umum metode BBN adalah sebagai berikut (Tan, Steinbach, & Kumar, 2006) : 1. BBN menyediakan pendekatan untuk menangkap prior knowledge dari domain tertentu menggunakan pemodelan grafis. Network juga dapat digunakan untuk meng-encode kebergantungan sebab-akibat antar variabel. 2. Membangun network memerlukan waktu dan usaha yang besar. 3. Bayesian network sesuai untuk menangani data yang tidak lengkap. Instansiasi
dengan
atribut
yang
hilang
dapat
ditangani
dengan
menjumlahkan atau mengintegrasikan probabilitas seluruh nilai atribut yang mungkin. 4. Metode cukup kokoh untuk model yang overfitting karena data dikombinasikan secara probabilitas dengan pengetahuan sebelumnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.6.
27
K-Fold Cross Validation Pada penelitian ini metode yang digunakan untuk menguji pola klasifikasi
adalah metode k-fold cross validation. Dalam k-fold cross validation, data dibagi menjadi k bagian, D1, D2,..Dk, dan masing-masing D memiliki jumlah data yang sama. Kemudian lakukan proses perulangan sebanyak k, dimana dalam setiap perulangan ke-i, Di akan dijadikan data testing, dan sisanya akan digunakan sebagai data training. Sebagai contoh, misalkan akan dilakukan metode cross validation dengan menggunakan 3 fold. Pertama pilih salah satu fold menjadi data testing, kemudian gunakan fold sisanya sebagai data training. Hal ini dilakukan berulang untuk semua kombinasi data training-testing. Untuk mengilustrasikan metode ini, perhatikan Gambar 2.9. Pengujian 1 Fold 1
Fold 2
Data Training
Fold 3 Data Testing
Pengujian 2 Fold 1
Fold 3
Data Training
Fold 2 Data Testing
Pengujian 3 Fold 2
Fold 3
Data Training
Fold 1 Data Testing
Gambar 2.9. Ilustrasi 3-fold Cross Validation
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.7.
28
Pengukuran Akurasi Klasifikasi Keakuratan hasil klasifikasi dapat diukur dengan menggunakan confusion
matrix. Confusion matrix adalah media yang berguna untuk menganalisis seberapa baik classifier dapat mengenali tupel dari kelas yang berbeda (Tan, Steinbach, & Kumar, 2006). Misalkan terdapat dua kelas, maka akan diistilahkan menjadi tupel positif dan tupel negatif. True positive mengacu pada tupel positif yang diberi label dengan tepat oleh classifier, sementara true negatif adalah tupel negatif yang diberi label dengan tepat oleh classifier. False positive adalah tupel negatif yang diberi label dengan tidak tepat. Demikian pula, false negative adalah tupel positif yang diberi label dengan tidak tepat. Istilah-istilah ini berguna ketika menganalisis kemampuan classifier dan diringkas dalam Gambar 2.10. kelas hasil klasifikasi C1
C2
false positive C true positive kelas 1 sebenarnya C false negative true negative 2 Gambar 2.10. Confusion Matrix untuk matrix 2×2 (Tan, Steinbach, & Kumar, 2006) Misalkan terdapat confusion matrix 2×2 seperti pada Gambar 2.10, maka rumus yang akan digunakan untuk menghitung akurasi adalah sebagai berikut:
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 =
𝑡𝑟𝑢𝑒_𝑝𝑜𝑠 + 𝑡𝑟𝑢𝑒_𝑛𝑒𝑔 × 100% … (2.6) 𝑡𝑟𝑢𝑒_𝑝𝑜𝑠 + 𝑡𝑟𝑢𝑒_𝑛𝑒𝑔 + 𝑓𝑎𝑙𝑠𝑒_𝑝𝑜𝑠 + 𝑓𝑎𝑙𝑠𝑒_𝑛𝑒𝑔
Rumus 2.6 diatas dapat juga didefinisikan seperti pada rumus 2.7 berikut:
𝑎𝑘𝑢𝑟𝑎𝑠𝑖 =
𝑑𝑎𝑡𝑎 𝑦𝑎𝑛𝑔 𝑑𝑖𝑘𝑙𝑎𝑠𝑖𝑓𝑖𝑘𝑎𝑠𝑖𝑘𝑎𝑛 𝑑𝑒𝑛𝑔𝑎𝑛 𝑡𝑒𝑝𝑎𝑡 × 100% … (2.7) 𝑑𝑎𝑡𝑎 𝑡𝑒𝑠𝑡𝑖𝑛𝑔
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB lll ANALISIS DAN PERANCANGAN SISTEM 3.1.
Analisis Sistem Sistem ini dibangun untuk digunakan sebagai alat bantu penelitian. Sistem
membantu pengguna dalam mengelola data (input data, ubah data, sortir data, pencarian data, cek data eror, dsb), melakukan proses cross validation, melakukan proses training-testing, dan pengukuran akurasi hasil klasifikasi. Input pada sistem ini adalah data mahasiswa dan jumlah fold untuk proses cross validation. Data mahasiswa dapat di-input kedalam sistem melalui dua cara, yaitu dengan mengetikkan data kedalam sistem dan dengan menggunakan aplikasi Ms. Excel 2003. Setelah data mahasiswa selesai di-input kedalam sistem, user dapat memasukkan jumlah fold yang akan digunakan untuk proses cross validation. Output pada sistem ini adalah data hasil proses cross validation yang berupa tabel data training dan testing, data hasil klasifikasi NBC dan BBN, dan hasil akurasi kedua algoritma.
3.2.
Sumber Data Dalam penelitian ini, obyek yang digunakan adalah data nilai mahasiswa.
Data diperoleh dari Universitas Sanata Dharma program studi Teknik Informatika. Data yang digunakan adalah data nilai mahasiswa tiap semester, mulai dari semester 1-4, untuk angkatan 2010 dan 2011. Data diberikan berbentuk softcopy dengan extensi .xls dan berjumlah 169. Didalam file tersebut berisi data satu mahasiswa dengan rincian sebagai berikut:
29
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
30
Tabel 3.1. Data Mentah dari TI USD No
Keterangan
Nilai
1
Nama Atribut NIM
Atribut ini menyimpan data nilai Nomor Induk Mahasiswa
2
FST 111
3
FST 111P
4 5
FST 141 INF 100
6 7
INF 110 INF 111
8 9 10
INF 114 INF 160 USD 120
11
FST 142
12 13
INF 112 INF 113
14
INF 115
15
INF 121
16
INF 121P
17 18
INF 150 INF 161
19 20 21
FST 342 INF 220 INF 220P
22
INF 221
23
INF 221P
Atribut ini menyimpan data nilai Pemrograman Komputer Atribut ini menyimpan data nilai Praktikum Pemrograman Komputer Atribut ini menyimpan data nilai Bahasa Inggris I Atribut ini menyimpan data nilai Pengantar Teknologi Informasi Atribut ini menyimpan data nilai Kalkulus Atribut ini menyimpan data nilai Logika Informatika Atribut ini menyimpan data nilai Statistika Atribut ini menyimpan data nilai Sistem Digital Atribut ini menyimpan data nilai Pendidikan Agama Atribut ini menyimpan data nilai English for Spesific Purpose Atribut ini menyimpan data nilai Metode Numerik Atribut ini menyimpan data nilai Matematika Diskret Atribut ini menyimpan data nilai Pengolahan Data Statistik Atribut ini menyimpan data nilai Pemrograman Berorientasi Obyek I Atribut ini menyimpan data nilai Praktikum Pemrograman Berorientasi Obyek I Komunikasi Data Atribut ini menyimpan data nilai Organisasi Komputer Atribut ini menyimpan data nilai Bahasa Inggris II Atribut ini menyimpan data nilai Struktur Data I Atribut ini menyimpan data nilai Praktikum Struktur Data I Atribut ini menyimpan data nilai Pemrograman Berorientasi Obyek II Atribut ini menyimpan data nilai Praktikum
105314001, 105314002,. A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
24 25
INF 232 INF 232P
26
INF 251
27
INF 270P
28
FST 243
29 30
INF 222 INF 222P
31
INF 240
32
INF 251P
33 34
INF 270 INF 321
35
INF 321P
36 37
NET 252 USD 224
38
DBS 233
39
DBS 235P COM 210
40
Pemrograman Berorientasi Obyek II Atribut ini menyimpan data nilai Basis Data Atribut ini menyimpan data nilai Praktikum Basis Data Atribut ini menyimpan data nilai Jaringan Komputer Atribut ini menyimpan data nilai Praktikum Sistem Open Source Atribut ini menyimpan data nilai Bahasa Indonesia Atribut ini menyimpan data nilai Struktur Data II Atribut ini menyimpan data nilai Praktikum Struktur Data II Atribut ini menyimpan data nilai Analisis Kebutuhan Perangkat Lunak Atribut ini menyimpan data nilai Praktikum Jaringan Komputer Atribut ini menyimpan data nilai Sistem Operasi Atribut ini menyimpan data nilai Pemrograman Basis Web Atribut ini menyimpan data nilai Praktikum Pemrograman Basis Web Atribut ini menyimpan data nilai Transmisi Data Atribut ini menyimpan data nilai Pendidikan Kewarganegaraan Atribut ini menyimpan data nilai Keamanan Basis Data Atribut ini menyimpan data nilai Praktikum Pemrograman Basis Data Atribut ini menyimpan data nilai Analisis Algoritma
31
A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D A, B, C, D
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.3.
32
Analisis Pengolahan Data Sebelum data diolah menggunakan sistem, dilakukan pemrosesan data awal
terlebih dahulu sesuai dengan proses KDD. Penjelasannya adalah sebagai berikut:
1.
Pembersihan data Pada tahap ini, dilakukan pembersihan terhadap data-data yang tidak
lengkap, kosong atau null, data yang mengandung noise, dan data tidak konsisten. Berikut ini adalah kriteria data yang akan dibersihkan: 1.
Mahasiswa yang belum mengambil matakuliah Wajib Peminatan pada semester 4. Data ini dianggap data yang tidak lengkap, sehingga akan dibersihkan dengan cara dihapus.
2.
Mahasiswa yang mengambil lebih dari satu matakuliah Wajib Peminatan yang berbeda peminatannya. Data ini termasuk data yang tidak konsisten, sehingga perlu dibersihkan dengan cara memilih salah satu peminatan.
3.
Data mahasiswa yang memiliki nilai E dan F akan dianggap sebagai noise, dan akan dibersihkan dengan cara dihapus. Dalam sistem perkuliahan di Universitas Sanata Dharma, nilai E dan F merupakan nilai yang wajib diulang, sehingga nilai ini tidak akan digunakan didalam sistem.
4.
Data mahasiswa yang bernilai null atau kosong, akan dibersihkan dengan cara dihapus.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
Pembersihan data dilakukan setelah proses integrasi dan seleksi data dilakukan. Proses integrasi akan memudahkan proses pencarian data, sementara seleksi data akan mengurangi jumlah data yang akan dibersihkan. Berikut ini rincian data yang dibersihkan: Tabel 3.2. Jumlah Data Hasil Pembersihan
Data awal Data tidak lengkap Data tidak konsisten Data noise Data kosong Jumlah data bersih
2.
Jumlah data angkatan 2010 89 1 2 2 86
Jumlah data angkatan 2011 80 1 1 79
Integrasi data Data yang didapat dari universitas Sanata Dharma program studi Teknik
Informatika berupa data softcopy berekstensi .xls dan berjumlah 169 data. Didalam file tersebut terdapat data satu mahasiswa, yang berisi data seperti pada Tabel 3.1.. Pada tahap ini dilakukan penggabungan data yang berasal dari berbagai file kedalam satu file dan satu tabel menggunakan aplikasi Ms. Excel 2003. Proses integrasi ini dilakukan agar data terangkum dalam satu tabel yang memudahkan untuk diproses, baik itu dibersihkan, diseleksi, atau ditambang.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.
34
Penyeleksian Data Pada tahap ini dilakukan seleksi untuk mengurangi data yang tidak
relevan dan redundant. Menurut Tan, Steinbach, dan Kumar (2006), atribut yang tidak relevan adalah atribut yang berisi informasi yang tidak berguna untuk
melakukan
penambangan
data,
sedangkan
atribut
berlebihan
(redundant) adalah atribut yang menduplikasi banyak atau semua informasi yang terdapat didalam satu atau lebih atribut lain. Data yang diterima dari universitas Sanata Dharma program studi Teknik Informatika berisi sekitar 40 atribut, dan tidak semuanya dapat digunakan untuk memprediksi peminatan mahasiswa. Matakuliah yang diajarkan di seluruh Fakultas Sains dan Teknologi (FST) dan matakuliah yang diajarkan diseluruh universitas akan dihapus karena tidak relevan jika digunakan untuk mengklasifikasikan mahasiswa TI. Matakuliah yang digunakan adalah matakuliah yang memiliki kode INF atau mata kuliah wajib, karena matakuliah tersebut adalah matakuliah inti kurikulum. Setiap mahasiswa akan menentukan peminatan pada semester 4 atau lebih, sehingga data yang akan digunakan sebagai atribut adalah nilai mata kuliah wajib dari semester 1 sampai semester 3. Data yang digunakan pada semester 4 adalah data matakuliah Wajib Peminatan. Data ini digunakan sebagai label kelas untuk mengklasifikasikan mahasiswa. Mahasiswa yang mengambil matakuliah Wajib Peminatan komputasi berarti diklasifikasikan menjadi COM, mahasiswa yang mengambil matakuliah Wajib Peminatan database berarti diklasifikasikan menjadi DBS, dan Mahasiswa yang
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
mengambil
matakuliah
Wajib
Peminatan
jaringan
komputer
35
berarti
diklasifikasikan menjadi NET. Untuk menyeleksi data yang tidak relevan dilakukan pengujian koefisien korelasi Pearson’s product moment menggunakan software SPSS statistics (lihat tabel 1 pada lampiran 1). Seperti yang dijelaskan pada bab ii halaman 14, atribut yang berkorlasi adalah atribut yang memiliki nilai signifikan kurang dari 0,05 atau 0,01. Atribut (matakuliah) yang tidak berkorelasi dengan kelas (peminatan) merupakan atribut yang tidak relevan, sehingga dapat dihapus. Dengan demikian, maka atribut yang akan digunakan adalah INF100, INF110, INF114, INF160, INF112, INF115, INF121, INF121P, INF150, INF161, INF220, INF220P, INF221, INF221P, INF232, INF232P, dan INF251. Karena algoritma NBC dan BBN memiliki cara yang berbeda dalam menangani dependensi atribut, maka penyeleksian atribut untuk keduanya-pun berbeda. Pada algoritma NBC, atribut yang digunakan adalah atribut yang saling independen satu sama lain. Berdasarkan hasil pengujian korelasi koefisien (lihat tabel 2 pada lampiran 1), diketahui terdapat dua kemungkinan pilihan atribut, yang pertama adalah INF 100 dan INF 115, dan yang kedua adalah INF100 dan INF232P. dengan menggunakan pertimbangan jumlah data, maka atribut yang dipilih adalah INF100 dan INF232P. Penyeleksian atribut pada algoritma BBN dilakukan dengan cara yang sama, yaitu koefisien korelasi. Atribut yang saling berkorelasi satu sama lain merupakan atribut yang redundant, karena memiliki nilai yang hamper sama.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
Pada tabel 2 dalam lampiran 1, diketahui bahwa atribut INF110, INF114, INF160, INF112, INF115, INF121, INF121P, INF150, INF161, INF220, INF220P, INF221, INF221P, INF232, dan INF251, adalah atribut yang berkorelasi satu sama lain. Dengan kata lain, atribut tersebut memiliki nilai yang hampir sama. Oleh karena itu, dengan menggunakan satu atribut maka atribut lain sudah terwakili, karena nilainya hampir sama. Dengan menggunakan pertimbangan korelasi, maka atribut yang paling besar korelasinya dengan kelas adalah atribut yang akan digunakan, yaitu INF 121. Dengan demikian, maka topologi network pada BBN dapat dibangun seperti pada Gambar 3.1.
INF 100
INF 232P
Peminatan
INF 121 Gambar 3.1. Topologi network BBN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.
37
Transformasi data Pada tahap ini akan dilakukan transformasi data kedalam format agar
dapat dikelola. Data nilai mahasiswa yang diperoleh memiliki format A, B, C, dan D, dan format tersebut sudah dapat diproses oleh algoritma, sehingga data tidak perlu ditransformasi.
5.
Data Mining Pada tahap ini data akan ditambang dengan menggunakan algoritma
NBC dan BBN. Langkah awal dari tahap ini adalah menentukan variabelvariabel yang akan digunakan, yaitu variabel input dan output. Penjabaran dari variabel-variabel tersebut antara lain sebagai berikut: a.
Variabel Input
Variabel-variabel yang digunakan antara lain sebagai berikut: 1.
Tabel data dengan atribut: NIM, INF 100, INF 121, INF 232P, PEMINATAN
2. b.
Jumlah fold
Variabel Output Variabel output dari sistem ini adalah: 1.
Tabel yang berisi data training dan testing hasil cross validation
2.
Hasil klasifikasi algoritma NBC dan BBN
3.
Proses perhitungan probabilitas untuk algoritma NBC dan BBN
4.
Akurasi algoritma NBC dan BBN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6.
38
Data Evaluasi Pada tahap ini dilakukan proses pengukuran akurasi algoritma. Proses
pengukuran dilakukan dengan menggunakan teknik Cross-Validation dan Confussion Matrix. Cara pengukurannya adalah dengan membagi data menjadi n fold, dan masing-masing fold akan mengalami posisi sebagai data training atau data testing. Nilai n dapat ditentukan sesuai keinginan namun jumlah data untuk setiap subset harus setara. Sebagai contoh, misalkan terdapat data berjumlah 15 dan nilai n adalah 3, maka data akan dibagi menjadi 3 fold yaitu fold 1, fold 2, dan fold 3, dengan masing-masing fold memiliki 5 data. Setelah itu, kemudian akan dilakukan proses sebagai berikut: 1. Pada tahap ini, fold 1 akan dijadikan data testing, sementara fold 2 dan fold 3 dijadikan data training. Setelah proses training-testing dilakukan, kemudian akurasi kedua algoritma dihitung. 2. Pada tahap ini, fold 2 akan dijadikan data testing, sementara fold 1 dan fold 3 dijadikan data training. Setelah proses training-testing dilakukan, kemudian akurasi kedua algoritma dihitung. 3. Pada tahap ini, fold 3 akan dijadikan data testing, sementara fold 1 dan fold 2 dijadikan data training. Setelah proses training-testing dilakukan, kemudian akurasi kedua algoritma dihitung. Hasil akurasi keseluruhan diperoleh dari rata-rata akurasi proses 1, 2, dan 3. Teknik Cross-Validation dilakukan untuk data yang berjumlah sedikit. Maka dari itu, semakin sedikit data, sebaiknya semakin banyak jumlah fold, namun hal itu berarti semakin lama proses komputasi yang dibutuhkan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.
39
Perancangan Umum Sistem Pada subbab ini akan dijelaskan gambaran dari sistem yang akan dibangun,
berupa diagram Use Case, Skenario Use Case, diagram aktifitas, diagram sekuensial, diagram kelas, algoritma proses klasifikasi, dan desain antarmuka sistem.
a.
Diagram Use Case Aktor atau pengguna dari sistem ini hanya satu, yaitu Peneliti, namun
untuk seterusnya akan disebut Pengguna. Terdapat dua fungsi utama yang dapat dilakukan oleh Pengguna terhadap sistem, yaitu melakukan pengelolaan data, dan melakukan klasifikasi. Pengelolaan data merupakan fungsi yang dijalankan oleh Pengguna untuk mengelola data mahasiswa, seperti impor data, ekspor data, input data secara manual kedalam sistem, tambah baris tabel, hapus baris tabel, sortir data, pencarian, dan menentukan jumlah fold. Fungsi lainnya dari sistem ini adalah melakukan klasifikasi. Ketika fungsi ini dijalankan, sistem akan melakukan proses cross validation, proses training-testing untuk algoritma NBC dan BBN, menghitung akurasinya, kemudian menampilkan hasilnya. Output dari fungsi ini adalah hasil klasifikasi algoritma, data training dan testing hasil proses cross validation, model yang dihasilkan oleh algoritma, dan akurasi kedua algoritma. Diagram use case sistem ini dapat dilihat pada Gambar 3.2.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
Mengelola Data Mengimpor Data Mengekspor Data Menambah Baris Menghapus Baris Menyortir Data Mengubah Data Pencarian Data Menentukan Jumlah Fold Pengguna <
>
Melakukan Klasifikasi
Gambar 3.2. Diagram Use Case
b.
Deskripsi Use Case Fungsi yang dapat dilakukan oleh Pengguna terhadap sistem
digambarkan dengan diagram use case seperti pada Gambar 3.2. Berikut ini deskripsi atau penjelasan dari diagram tersebut:
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
Tabel 3.3. Deskripsi Use Case No 1.
Nama Use Case Mengimpor Data
2.
Mengekspor Data
3.
Menambah Baris
4.
Menghapus Baris
5.
Menyortir Data
6.
Mengubah Data
7.
Pencarian Data
8.
Menentukan Jumlah Fold Melakukan Klasifikasi
9.
c.
Deskripsi Use Case Use case ini digunakan untuk memasukkan data kedalam sistem menggunakan file berekstensi .xls, atau file dari aplikasi Ms. Excel 2003. Data yang akan dimasukkan adalah data yang akan ditambang menggunakan algoritma NBC dan BBN. Use case ini digunakan untuk menyimpan data dari sistem kedalam file Ms. Excel. Use case ini digunakan untuk menambah baris baru kedalam tabel. Baris baru yang ditambahkan tidak berisi data (null) dan baris akan ditambahkan pada tabel diurutan paling akhir. Use case ini digunakan untuk menghapus baris dalam tabel. Baris yang akan dihapus adalah baris yang dipilih (blok) oleh Pengguna. Pengguna dapat menghapus satu baris atau banyak baris sekaligus. Use case ini digunakan untuk mengurutkan data tabel berdasarkan kolom NIM atau Peminatan secara ascending Use case ini digunakan untuk memasukkan atau mengubah data kedalam tabel secara manual (ketik). Use case ini digunakan untuk mencari tupel berdasarkan kolom NIM Use case ini digunakan menentukan jumlah fold yang akan digunakan dalam proses cross validation. Use case ini digunakan untuk melakukan proses cross validation, klasifikasi, dan menghitung akurasi. Pengguna dapat melihat hasil klasifikasi algoritma, hasil cross validation, model hasil proses training algoritma, dan akurasi yang dihasilkan.
Skenario Use Case Skenario use case merupakan penjabaran masing-masing use case
yang terdapat pada diagram use case. Skenario use case dapat dilihat pada lampiran 2.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
d.
42
Diagram Aktifitas Diagram aktifitas digunakan untuk menunjukkan kegiatan yang
dilakukan oleh pengguna dan sistem dalam setiap usecase. Rincian diagram aktifitas sistem ini dapat dilihat pada lampiran 3.
e.
Diagram Sekuensial Rincian diagram sekuensial untuk setiap use case didalam diagram use
case dapat dilihat pada lampiran 4.
f.
Diagram Kelas Diagram kelas menunjukkan kelas yang akan diimplementasikan
kedalam sistem. Diagram kelas memuat semua data kelas (atribut dan metode) dan hubungan antar kelas. Diagram kelas sistem ini dapat dilihat pada lampiran 5.
g.
Algoritma Proses Klasifikasi Algoritma yang akan dijelaskan pada bagian ini adalah algoritma yang
berkaitan dengan proses klasifikasi, cross validation, dan pengukuran akurasi. Algoritma lain yang tidak berkaitan dengan masalah tersebut tidak akan dijelaskan karena bukan bahasan utama dalam penelitian. Algoritma proses klasifikasi dapat dilihat pada lampiran 6.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.5.
43
Desain Antarmuka Sistem A.
Halaman Utama
HEADER panduan
about
exit
Steps
Set Data
Klasifikasi
Akurasi
FOOTER
Gambar 3.3. Desain Halaman Utama Halaman utama merupakan halaman yang pertama kali muncul saat aplikasi dijalankan. Halaman ini memiliki 6 tombol, dan sebuah area yang diarsir. Saat tombol Panduan ditekan, maka sistem akan menampilkan kotak dialog yang berisi panduan penggunaan sistem yang dirancang seperti pada Gambar 3.4. Saat tombol About ditekan, maka sistem akan menampilkan kotak dialog yang berisi kredit sistem seperti yang ditampilkan pada Gambar 3.5. Saat tombol Exit ditekan, maka sistem akan berhenti bekerja dan menutup Halaman Utama.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
44
Panduan Penggunaan -root +child 1 +child 2 -child 3 leaf 1 leaf 2 leaf 3
LEAF 1 ……………….. ……………….. ………………..
Gambar 3.4. Desain Kotak Dialog Panduan
Nama Sistem LOGO
Kredit Sistem …………
Gambar 3.5. Desain Kotak Dialog About
Area yang diarsir pada rancangan halaman utama digunakan untuk menampilkan panel yang diinginkan. Saat tombol Set Data ditekan, maka panel Set Data (Gambar 3.6) akan ditampilkan. Saat tombol Klasifikasi ditekan, maka akan panel Klasifikasi (Gambar 3.7) akan ditampilkan. Saat tombol Akurasi ditekan, maka panel Akurasi (Gambar 3.8) akan ditampilkan.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
B. Impor Data
45
Panel Set Data Ekspor Data
Tambah Baris
Hapus Baris
Sortir Data
Cross Validation pencarian Masukkan Jml Fold
Kolom 1
Kolom 2
Kolom 3
Kolom 3
xx
Rinci Data ….. ….
Klasifikasi Gambar 3.6. Desain Panel Frame Set Data
Didalam panel ini terdapat berbagai elemen yang digunakan untuk menjalankan use case yang berkaitan dengan pengelolaan data. Tombol Open digunakan untuk menjalankan use case Mengimpor Data. Tombol Save digunakan untuk menjalankan use case Mengekspor Data. Tombol Tambah digunakan untuk menjalankan use case Menambah Baris. Tombol Hapus digunakan untuk menjalankan use case Menghapus Baris. Tombol Sortir digunakan untuk menjalankan use case Menyortir Data. Textfield Pencarian digunakan untuk menjalankan use case Pencarian Data. Data yang terdapat pada cell tabel dapat diubah secara manual dengan cara diketik menggunakan keyboard, sesuai dengan fungsi use case Mengubah Data. Tombol Proses digunakan untuk menjalankan untuk menjalankan use case Menentukan Jumlah Fold. Tombol Klasifikasi digunakan untuk menjalankan use case Melakukan Klasifikasi, namun output proses yang dihasilkan akan ditampilkan pada panel Klasifikasi dan Akurasi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
C.
46
Panel Klasifikasi
Pilih Proses Klasifikasi Proses 1
Hasil Klasifikasi
Proses 2
Data Training
Proses 3
Data Testing
Proses 4
Model NBC
Dst..
Model BBN
Gambar 3.7. Desain Panel Klasifikasi
Panel ini digunakan untuk menampilkan data training, data testing, model hasil training algoritma, dan hasil klasifikasi data testing. Untuk menampilkan data tersebut, Pengguna harus memilih Proses dalam List kemudian menekan tombol yang terdapat disebelah kanan List. Data akan ditampilkan di area yang diarsir dalam panel. Data training, data testing, dan hasil klasifikasi akan ditampilkan dalam bentuk tabel, sementara model NBC dan model BBN akan ditampilkan dalam bentuk teks didalam jTextPane.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
D.
Panel Akurasi
Rekapitulasi Hasil Klasifikasi NBC Proses
47
Jumlah Data
Diklasifikasikan Dgn Tepat
Akurasi
Rekapitulasi Hasil Klasifikasi BBN Proses
Diklasifikasikan Dgn Tepat
Jumlah Data
Akurasi
Akurasi Algoritma Naïve Bayes Classifier
xx % Bayesian Belief Network
xx %
Gambar 3.8. Desain Panel Akurasi
Panel Akurasi digunakan untuk menampilkan akurasi algoritma. Pada panel ini terdapat dua buah tabel dan dua buah progressbar. Tabel tersebut berisi rekapitulasi hasil klasifikasi algoritma NBC dan. Akurasi total kedua algoritma
ditampilkan
menggunakan
progressbar,
pembanding hasil sekaligus kesimpulan hasil penelitian.
yang
merupakan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV IMPLEMENTASI SISTEM Bab ini berisi tentang implementasi sistem yang telah dibangun berdasarkan analisis dan perancangan sistem yang telah dibahas pada bab sebelumnya. Sistem ini dibangun dengan menggunakan bahasa pemrograman Java dan perangkat lunak NetBeans IDE 7.2.1 pada computer dengan spesifikasi Intel Core i3 2.2 GHz, Memori 2 GB, dan Harddisk 480 GB.
4.1.
Implementasi Antarmuka Pemakai (User Interface) Pengujian keakuratan algoritma NBC dan BBN telah diimplementasikan
menjadi sebuah sistem dengan antarmuka pemakai sebagai berikut: a.
Halaman Utama
Gambar 4.1. Tampilan Program Halaman Utama 48
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
49
Halaman Utama merupakan tampilan program saat pertama kali dijalankan. Pada halaman ini terdapan tombol dropdown yang berisi menu Panduan, About, dan Exit.
Saat menu Panduan dipilih sistem akan
menampilkan kotak dialog seperti pada gambar 4.3. Saat menu About dipilih sistem akan menampilkan kotak dialog seperti pada gambar 4.4. Saat menu Exit dipilih sistem berhenti bekerja dan menutup program.
Gambar 4.2. Tampilan Kotak Dialog Panduan
Gambar 4.3. Tampilan Kotak Dialog About
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
50
Pada bagian sisi kiri tampilan Halaman Utama terdapat tiga tombol yaitu tombol Set Data, Klasifikasi, dan Akurasi. Saat tombol ditekan maka sistem akan menampilkan panel seperti yang akan dijelaskan pada subbab berikutnya.
b.
Panel Set Data
Gambar 4.4. Tampilan Panel Set Data Panel Set Data akan muncul di Halaman Utama saat tombol Set Data di Halaman Utama ditekan. Pada panel tersebut terdapat beberapa tombol yang jika ditekan akan menampilkan kotak dialog. Tombol tersebut adalah tombol Impor dan Ekspor Data.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
51
Tombol Impor Data berfungsi untuk menjalankan usecase impor data. Saat tombol ini ditekan, sistem akan menampilkan kotak dialog seperti pada Gambar 4.5. Sementara tombol Ekspor Data berfungsi untuk menjalankan usecase mengekspor data. Saat tombol ini ditekan, sistem akan menampilkan kotak dialog seperti pada Gambar 4.6.
Gambar 4.5. Tampilan Kotak Dialog Impor Data
Gambar 4.6. Tampilan Kotak Dialog Ekspor Data
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
c.
52
Panel Klasifikasi
Gambar 4.7. Tampilan Panel Klasifikasi
Panel Klasifikasi akan muncul di Halaman Utama saat tombol Klasifikasi di Halaman Utama ditekan. Pada panel tersebut terdapat lima buah tombol yang berfungsi untuk menampilkan data di panel kosong yang berada disebelah kanan tombol tersebut. Kelima tombol tersebut adalah tombol Hasil Klasifikasi, Data Testing, Data Training, Model NBC, dan Model BBN. Tombol-tombol tersebut akan dapat ditekan/diakses jika Pengguna memilih salah satu Proses dalam List. Saat tombol Hasil Klasifikasi ditekan, sistem akan menampilkan hasil klasifikasi algoritma seperti pada Gambar 4.8. Saat tombol Data Training ditekan, maka sistem akan menampilkan data training hasil proses cross
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
53
validation. Seperti pada Gambar 4.9. Saat tombol Data Testing ditekan, sistem akan menampilkan data testing hasil proses cross validation seperti pada Gambar 4.10. Saat tombol Model NBC ditekan, sistem akan menampilkan model yang dihasilkan oleh algoritma NBC seperti yang ditunjukkan pada Gambar 4.11. Saat tombol Model BBN ditekan, sistem akan menampilkan model yang dihasilkan oleh algoritma BBN seperti yang ditunjukkan pada Gambar 4.12.
Gambar 4.8. Tampilan Hasil Klasifikasi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.9. Tampilan Data Training
Gambar 4.10. Tampilan Data Testing
54
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 4.11. Tampilan Model NBC
Gambar 4.12. Tampilan Model BBN
55
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
d.
56
Panel Akurasi
Gambar 4.13. Tampilan Panel Akurasi
Panel Akurasi akan muncul di Halaman Utama saat tombol Akurasi di Halaman Utama ditekan. Pada panel tersebut terdapat dua buah tabel yang berisi rekapitulasi hasil klasifikasi algoritma NBC dan BBN. Akurasi total dari algoritma ditampilkan dengan menggunakan progressbar. Akurasi total algoritma yang ditampilkan menggunakan progressbar tersebut merupakan kesimpulan akhir dari penelitian.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.2.
57
Implementasi Algoritma Algoritma yang diimplementasikan pada sistem merupakan algoritma yang
telah dirancang sebelumnya pada bab iii, dan dilampirkan pada lampiran vi. Algoritma yang dibahas adalah algoritma yang merupakan bahasan utama penelitian, yaitu algoritma yang berkaitan dengan proses klasifikasi, cross validation, dan pengukuran akurasi.
4.2.1.
Implementasi Algoritma getTabelTraining public DefaultTableModel getTabelTraining(int fold) { dataTraining.setRowCount(0); for (int i = 0; i < dataTabel.getRowCount(); i++) { if (i % jmlFold != fold) { int row = dataTraining.getRowCount(); dataTraining.setRowCount(row + 1); for (int k = 0; k < dataTraining.getColumnCount(); k++) { dataTraining.setValueAt(dataTabel.getValueAt(i, k), row, k); } } } return dataTraining; }
4.2.2.
Implementasi Algoritma getTabelTesting public DefaultTableModel getTabelTesting(int fold) { dataTesting.setRowCount(0); for (int i = 0; i < dataTabel.getRowCount(); i++) { if (i % jmlFold == fold) { int row = dataTesting.getRowCount(); dataTesting.setRowCount(row + 1); for (int k = 0; k < dataTesting.getColumnCount(); k++) { dataTesting.setValueAt(dataTabel.getValueAt(i, k), row, k); } } } return dataTesting; }
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.2.3.
Implementasi Algoritma IndexAtt public int indexAtt(Object data) { if (data.toString().equalsIgnoreCase("A")) { return 0; } else if (data.toString().equalsIgnoreCase("B")) { return 1; } else if (data.toString().equalsIgnoreCase("C")) { return 2; } else { return 3; } }
4.2.1. Implementasi Algoritma IndexKelas public int indexKelas(Object data) { if (data.toString().equalsIgnoreCase("COM")) { return 0; } else if (data.toString().equalsIgnoreCase("DBS")) { return 1; } else { return 2; } }
4.2.2.
Implementasi Algoritma trainingNBC
private void trainingNBC(int fold) { DefaultTableModel dataTrain = crossValidation.getTabelTraining(fold); attModel = new float[kolom.length][][]; //dimensi pertama: banyak attribut for (int i = 0; i < attModel.length; i++) { attModel[i] = new float[4][3];//dimensi ke-2: nilai, dimensi ke-3: kelas } kelasModel = new float[3]; for (int i = 0; i < attModel.length; i++) { for (int j = 0; j < attModel[i].length; j++) { Arrays.fill(attModel[i][j], 1);//mengisi semua data dgn 1 } } Arrays.fill(kelasModel, 0);
58
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
for (int i = 0; i < dataTrain.getRowCount(); i++) { //menghitung jumlah data Object kelas = dataTrain.getValueAt(i, dataTrain.getColumnCount() - 1); kelasModel[indexKelas(kelas)]++; for (int j = 0; j < attModel.length; j++) { attModel[j][indexAtt(dataTrain.getValueAt(i, kolom[j]))][indexKelas(kelas)]++; } } //mnghitung total data tiap kelas float totCom = 0, totDbs = 0, totNet = 0; for (int i = 0; i < 4; i++) { totCom += attModel[0][i][0]; totDbs += attModel[0][i][1]; totNet += attModel[0][i][2]; } for (int i = 0; i < attModel.length; i++) {//menghitung probabilitas atribut for (int j = 0; j < attModel[i].length; j++) { attModel[i][j][0] = attModel[i][j][0] / totCom; attModel[i][j][1] = attModel[i][j][1] / totDbs; attModel[i][j][2] = attModel[i][j][2] / totNet; } } //menghitung probabilitas kelas for (int i = 0; i < kelasModel.length; i++) { kelasModel[i] = kelasModel[i] / dataTrain.getRowCount(); } }
4.2.3.
Implementasi Algoritma testingNBC private void testingNBC(int fold) { DefaultTableModel dataTest = crossValidation.getTabelTesting(fold); for (int i = 0; i < dataTest.getRowCount(); i++) { float hasilCOM = kelasModel[0], hasilDBS = kelasModel[1], hasilNET = kelasModel[2]; for (int j = 0; j < kolom.length; j++) { Object nilai = dataTest.getValueAt(i, kolom[j]); hasilCOM = hasilCOM * attModel[j][indexAtt(nilai)][0]; hasilDBS = hasilDBS * attModel[j][indexAtt(nilai)][1]; hasilNET = hasilNET * attModel[j][indexAtt(nilai)][2];
59
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
} float tot = hasilCOM + hasilDBS + hasilNET; if (hasilCOM > hasilDBS && hasilCOM > hasilNET) { hasilKlasifikasi[fold][i] = "COM"; probKlasifikasi[fold][i] = hasilCOM / tot; } else if (hasilDBS >= hasilCOM && hasilDBS >= hasilNET) { hasilKlasifikasi[fold][i] = "DBS"; probKlasifikasi[fold][i] = hasilDBS / tot; } else if (hasilNET > hasilDBS && hasilNET >= hasilCOM) { hasilKlasifikasi[fold][i] = "NET"; probKlasifikasi[fold][i] = hasilNET / tot; } } }
4.2.4.
Implementasi Algoritma trainingBBN private void TrainingBBN(int fold) { DefaultTableModel dataTrain = crossValidation.getTabelTraining(fold); //melakukan training utk cabang bawah-------------------inf121Model = new float[3][4];//[com/dbs/net] [a/b/c/d] Arrays.fill(inf121Model[0], 1); Arrays.fill(inf121Model[1], 1); Arrays.fill(inf121Model[2], 1); for (int i = 0; i < dataTrain.getRowCount(); i++) { Object dataAtt = dataTrain.getValueAt(i, attBawah); Object dataKelas = dataTrain.getValueAt(i, 4); inf121Model[indexKelas(dataKelas)][indexAtt(dataAtt)]++; } float totCom = 0, totDbs = 0, totNet = 0; for (int i = 0; i < 4; i++) { totCom += inf121Model[0][i]; totDbs += inf121Model[1][i]; totNet += inf121Model[2][i]; } for (int i = 0; i < 4; i++) { inf121Model[0][i] = inf121Model[0][i] / totCom; inf121Model[1][i] = inf121Model[1][i] / totDbs; inf121Model[2][i] = inf121Model[2][i] / totNet; } //melakukan training untuk cabang atas-----------------kelasModel = new float[4][4][3]; //dimensi 1: INF100, dimensi 2:INF232P, dimensi 3: kelas
60
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
61
for (int i = 0; i < kelasModel.length; i++) {//isi semua dengan 1 for (int j = 0; j < kelasModel[i].length; j++) { Arrays.fill(kelasModel[i][j], 1); } } for (int i = 0; i < dataTrain.getRowCount(); i++) {//menghitung data Object dataAtt1 = dataTrain.getValueAt(i, attAtas[0]); Object dataAtt2 = dataTrain.getValueAt(i, attAtas[1]); Object dataKelas = dataTrain.getValueAt(i, 4); kelasModel[indexAtt(dataAtt1)][indexAtt(dataAtt2)][indexKelas(dataKelas)]++; } for (int i = 0; i < kelasModel.length; i++) {//menghitung probabilitas for (int j = 0; j < kelasModel[i].length; j++) { float tot = kelasModel[i][j][0] + kelasModel[i][j][1] + kelasModel[i][j][2]; for (int k = 0; k < kelasModel[i][j].length; k++) { kelasModel[i][j][k] = kelasModel[i][j][k] / tot; } } } }
4.2.5.
Implementasi Algoritma testingBBN private void testingBBN(int fold) { DefaultTableModel dataTest = crossValidation.getTabelTesting(fold); for (int i = 0; i < dataTest.getRowCount(); i++) { String dataInf121 = dataTest.getValueAt(i, attBawah).toString(); String dataAtt1 = dataTest.getValueAt(i, attAtas[0]).toString(); String dataAtt2 = dataTest.getValueAt(i, attAtas[1]).toString(); float probCOM = kelasModel[indexAtt(dataAtt1)][indexAtt(dataAtt2)][0] * inf121Model[0][indexAtt(dataInf121)]; float probDBS = kelasModel[indexAtt(dataAtt1)][indexAtt(dataAtt2)][1] * inf121Model[1][indexAtt(dataInf121)]; float probNET = kelasModel[indexAtt(dataAtt1)][indexAtt(dataAtt2)][2] * inf121Model[2][indexAtt(dataInf121)]; float tot = probCOM + probDBS + probNET; if (probCOM > probDBS && probCOM > probNET) { hasilKlasifikasi[fold][i] = "COM"; probKlasifikasi[fold][i] = probCOM / tot; } else if (probDBS >= probCOM && probDBS >= probNET) { hasilKlasifikasi[fold][i] = "DBS"; probKlasifikasi[fold][i] = probDBS / tot; } else if (probNET > probDBS && probNET >= probCOM) {
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
hasilKlasifikasi[fold][i] = "NET"; probKlasifikasi[fold][i] = probNET / tot; } } }
4.2.6.
Implementasi Algoritma hitungAkurasi public void hitungAkurasi(DefaultTableModel[] tabelHasil) { int totNBC = 0, totBBN = 0; for (int i = 0; i < tabelHasil.length; i++) { int jmlBenarNBC = 0, jmlBenarBBN = 0; int jmlData = tabelHasil[i].getRowCount(); for (int j = 0; j < jmlData; j++) { Object kelas = tabelHasil[i].getValueAt(j, 1); Object hasilNBC = tabelHasil[i].getValueAt(j, 2); Object hasilBBN = tabelHasil[i].getValueAt(j, 4); if (kelas.equals(hasilNBC)) { jmlBenarNBC++; } if (kelas.equals(hasilBBN)) { jmlBenarBBN++; } } tabelNBC.addRow(new Object[]{"Proses " + (i + 1), jmlBenarNBC, jmlData, (float) jmlBenarNBC / jmlData * 100}); tabelBBN.addRow(new Object[]{"Proses " + (i + 1), jmlBenarBBN, jmlData, (float) jmlBenarBBN / jmlData * 100}); totNBC += jmlBenarNBC; totBBN += jmlBenarBBN; } tabelNBC.addRow(new Object[]{"TOTAL", totNBC, dataTabel.getRowCount(), (float) totNBC / dataTabel.getRowCount() * 100}); tabelBBN.addRow(new Object[]{"TOTAL", totBBN, dataTabel.getRowCount(), (float) totBBN / dataTabel.getRowCount() * 100}); }
62
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V ANALISIS HASIL
5.1.
Analisis Hasil Cross Validation Algoritma Cross Validation yang diimplementasikan kedalam sistem ini
dapat dilihat di lampiran iv. Pembagian fold dilakukan dengan cara menghitung modulo (sisa hasil bagi) baris tabel pada jumlah fold. Misalkan diketahui jumlah fold adalah 3, maka pada baris ke-0 akan masuk fold 0, pada baris ke-1 akan masuk fold 1, pada baris ke-2 akan masuk fold 2, dan seterusnya. Namun sebelum algoritma ini dijalankan, data diurutkan berdasarkan atribut Nim dan Peminatan terlebih dahulu. Hal ini dilakukan agar data yang dihasilkan untuk setiap fold memiliki kesetaraan jumlah tahun angkatan maupun peminatan.
5.2.
Analisis Proses Penambangan Data Proses penambangan data pada penelitian ini dilakukan dengan
menggunakan sistem yang telah dibangun. Oleh karena itu, untuk memastikan bahwa sistem sudah menerapkan algoritma dengan tepat maka perlu dilakukan perbandingan hasil antara sistem yang dibangun dan sistem lain. Sistem yang digunakan sebagai pembanding adalah Weka. Dalam melakukan perbandingan hasil, dibutuhkan input yang sama untuk kedua sistem. Data yang akan digunakan sebagai pembanding adalah data hasil 5-
63
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
64
fold cross validation pada proses pertama. Hal ini dilakukan karena bebearapa alasan sebagai berikut: 1. Weka dan sistem yang dibangun menerapkan proses cross validation dengan cara yang berbeda, sehingga memiliki hasil yang berbeda. 2. Pada Weka, jika cross validation dilakukan pada saat melakukan klasifikasi, maka data training yang digunakan untuk membangun model adalah seluruh data. Menurut Tan, Steinbach, dan Kumar (2006), memakai data training untuk memperoleh model dan kemudian data tersebut digunakan untuk mengukur akurasi dapat menyebabkan perhitungan akurasi yang keliru karena spesialisasi yang berlebihan dari proses algoritma terhadap data. 3. Dengan menggunakan data training dan testing apapun sebagai data input maka hasil klasifikasi pada kedua sistem akan selalu dapat dibandingkan. Sehingga perbandingan hasil klasifikasi tidak perlu dilakukan untuk semua kemungkinan data training-testing pada berbagai jumlah fold. Berdasarkan tiga alasan tersebut, maka pada Weka akan disediakan data training dan testing hasil proses cross validation dari sistem yang dibangun. Output yang akan dibandingkan pada kedua sistem adalah model algoritma, hasil klasifikasi, dan akurasi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
65
Gambar 5.1. Screenshot Model NBC menggunakan Weka
Gambar 5.2. Screenshot Model BBN untuk Atribut INF 121 Menggunakan Weka
Gambar 5.3. Screenshot Model BBN untuk Kelas Peminatan Menggunakan Weka
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 5.4. Screenshot Model NBC Menggunakan Sistem
66
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
67
Gambar 5.5. Screenshot Model BBN menggunakan Sistem Perbandingan model yang dihasilkan oleh kedua sistem dapat dilihat pada Gambar 5.1, Gambar 5.2, Gambar 5.3, Gambar 5.4, dan Gambar 5.5. Perbandingan model yang dihasilkan oleh algoritma NBC dapat dilihat pada Gambar 5.1 dan Gambar 5.4. Pada Gambar 5.1, model kelas (Peminatan) dibulatkan menjadi dua angka dibelakang koma, dan model atribut (INF 100 dan INF 232P) masih berupa
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
68
angka mentah atau belum dilakukan proses penghitungan probabilitas. Perbedaan model tersebut terdapat pada format penyimpanan, namun pada intinya probabilitas yang dihasilkan adalah sama. Perbandingan model yang dihasilkan algoritma BBN dapat dilihat pada Gambar 5.2, Gambar 5.3, dan Gambar 5.5. Meskipun pada Weka terjadi pembulatan angka, namun probabilitas yang dihasilkan oleh keduanya adalah sama. Setelah dilakukan perbandingan model, selanjutnya dilakukan perbandingan hasil klasifikasi kedua sistem.
Gambar 5.6. Screenshot Hasil Penambangan Data Menggunakan Sistem
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Gambar 5.7. Screenshot Hasil Penambangan Data Weka Menggunakan NBC
69
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
70
Gambar 5.8. Screenshot Hasil Penambangan Data Weka Menggunakan BBN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
71
Gambar 5.9. Screenshot Akurasi Algoritma
Perbandingan hasil klasifikasi kedua sistem ditampilkan pada Gambar 5.6, Gambar 5.7, dan Gambar 5.8. Gambar tersebut menunjukkan bahwa kedua sistem memperoleh hasil perhitungan probabilitas yang sedikit berbeda, karena terjadi proses pembulatan angka pada Weka. Meskipun demikian, namun hal tersebut tidak mempengaruhi hasil klasifikasi algoritma. Dengan kata lain, kedua sistem memperoleh hasil klasifikasi yang sama untuk setiap tupel. Kedua sistem melakukan penghitungan akurasi dengan menggunakan metode yang sama, yaitu confussion matrix. Pada Gambar 5.7, diketahui akurasi algoritma NBC adalah 39,3939%, dan pada Gambar 5.8, diketahui akurasi algoritma BBN adalah 45,4545%. Pada sistem yang dibangun, akurasi algoritma ditunjukkan pada Gambar 5.9. Pada gambar tersebut dapat dilihat bahwa akurasi algoritma NBC adalah 39,39394%, dan akurasi algoritma BBN adalah 45,454548%. Hal ini menunjukkan bahwa hasil pengukuran akurasi yang dilakukan oleh kedua sistem adalah sama. Dengan demikian, maka dapat disimpulkan bahwa algoritma klasifikasi dan metode confussion matrix yang diimplementasikan kedalam sistem sudah benar, dan hasil penambangan data sistem ini dapat digunakan dalam penelitian.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5.3.
72
Analisis Hasil Penambangan Data Pengukuran akurasi kedua algoritma dilakukan dengan menggunakan 3-fold
cross validation dan 5-fold cross validation. Berikut ni merupakan tabel-tabel hasil pengukuran 3-fold cross validation dan 5-fold cross validation:
Gambar 5.10. Screenshot Akurasi Algoritma Menggunakan 3-fold cross validation
Gambar 5.11. Screenshot Akurasi Algoritma Menggunakan 5-fold cross validation Berdasarkan hasil pengujian diketahui bahwa jumlah fold pada proses cross validation mempengaruhi akurasi algoritma. Pada pengujian menggunakan 5-fold cross validation, dapat dilihat bahwa akurasi total kedua algoritma lebih tinggi dibandingkan dengan menggunakan 3-fold cross validation. Meskipun terdapat perbedaan hasil, namun kedua pengujian tersebut memiliki kesimpulan yang sama, yaitu algoritma BBN lebih akurat dibandingkan dengan algoritma NBC.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
73
Meskipun hasil klasifikasi kedua algoritma sudah menjawab rumusan masalah penelitian, namun tingkat akurasi yang dihasilkan belum dapat dikatakan baik. Terdapat beberapa hal yang dapat dipertimbangkan sebagai penyebab akurasi yang kurang baik tersebut, yaitu: 1.
Jumlah data yang kurang mencukupi. Jumlah data yang digunakan dalam penelitian ini adalah 165. Jika dilakukan pembagian data menjadi 3 fold, maka jumlah data training yang didapat adalah 110, dan jumlah tersebut kurang mencukupi untuk digunakan sebagai data pembelajaran.
2.
Persebaran data (varian) peminatan untuk masing-masing label atribut adalah merata. Misalkan pada atribut INF 100 yang memiliki nilai B, jumlah data yang berkelas COM adalah 20, jumlah data yang berkelas DBS adalah 26, dan jumlah data yang berkelas NET adalah 20.
3. Setelah dilakukan pengamatan terhadap data, diketahui terdapat banyak tupel yang memiliki nilai atribut sama namun memiliki nilai kelas yang berbeda. Salah satu data tersebut adalah data yang memiliki nilai atribut INF 100=A, INF 121=B, dan INF 232P=A. Secara logika, mahasiswa yang memiliki nilai tersebut akan lebih condong untuk mengambil peminatan Jaringan Komputer. Namun ternyata, dari 8 mahasiswa yang memiliki nilai tersebut, 6 diantaranya memilih peminatan Database, 1 memilih Komputasi, dan sisanya memilih Jaringan Komputer. Hal ini berarti, selain nilai matakuliah, terdapat faktor lain yang mempengaruhi mahasiswa dalam menetukan peminatannya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5.4.
74
Kelebihan dan Kekurangan Sistem 1. Kelebihan Sistem Kelebihan dari sistem yang telah dibangun adalah sebagai berikut: a. Pengguna dapat memasukkan data kedalam sistem menggunakan file Ms. Excel 2003, atau sebaliknya, menyalin data dari sistem ke file Ms. Excel 2003. b. Sistem dilengkapi fitur untuk mengelola data seperti pencarian, sortir, pengelolaan tabel, dan pengubahan data secara manual pada cell table. c. Sistem dapat mendeteksi data yang mengandung noise dan missing values, dan menunjukkannya dengan warna merah pada cell tabel. d.
Pengguna dapat memasukkan jumlah fold secara manual dalam melakukan proses Cross Validation, dan melihat data training dan testing yang dihasilkan
e. Pengguna dapat melihat hasil penambangan data untuk tiap proses cross validation, dan dapat melihat rinci proses perhitungan klasifikasi untuk setiap tupel f. Sistem dibangun tanpa menggunakan database atau media penyimpanan data lain. Data yang dimasukkan/di-input oleh pengguna disimpan dalam memori RAM, sehingga sistem akan bekerja lebih cepat dan lebih hemat memori.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
75
2. Kekurangan Sistem Kekurangan dari sistem yang telah dibangun adalah sebagai berikut: a. Pengguna tidak dapat mengatur/mengelola atribut yang digunakan dalam sistem b. Pengguna tidak dapat mengubah atribut yang digunakan dalam algoritma NBC c. Pengguna tidak dapat mengubah topologi network dan atribut yang digunakan dalam algoritma BBN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB VI PENUTUP
6.1.
Kesimpulan Berdasarkan hasil penelitian yang diperoleh seperti yang ditunjukkan pada
bab v, dapat disimpulkan bahwa: 1.
Pengujian dilakukan sebanyak 2 kali menggunakan metode 3-fold cross validation dan 5-fold cross validation, memperoleh hasil sebagai berikut: a.
Pengujian
menggunakan
metode
3-fold
cross
validation
menghasilkan akurasi sebesar 42,242% untuk algoritma NBC, dan akurasi sebesar 47,8788% untuk algoritma BBN. b.
Pengujian
menggunakan
metode
5-fold
cross
validation
menghasilkan akurasi sebesar 49,0909% untuk algoritma NBC, dan akurasi sebesar 52,7273% untuk algoritma BBN. 2.
Hasil klasifikasi yang dilakukan dengan menggunakan sistem yang dibangun dan hasil klasifikasi yang dilakukan menggunakan Weka memperoleh hasil yang sama.
3.
Berdasarkan hasil pengujian yang dilakukan dengan menggunakan 3-fold cross validation dan 5-fold cross validation, dapat disimpulkan bahwa algoritma BBN lebih akurat dibandingkan algoritma NBC.
76
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6.2.
77
Saran Meskipun kesimpulan akhir penelitian ini sudah menjawab rumusan masalah
dan memenuhi tujuan penelitian, namun tingkat keakuratan algoritma belum bisa dikatakan baik. Oleh karena itu, bagi peneliti yang akan melanjutkan penelitian ini, penulis menyarankan: 1.
Gunakan data dengan jumlah yang lebih besar dan jumlah data yang setara untuk masing-masing kelas.
2.
Data yang digunakan dalam penelitian ini adalah nilai matakuliah yang diambil oleh mahasiswa. Pada keadaan sebenarnya, satu matakuliah dapat diampu oleh beberapa dosen, sehingga persebaran nilai (varian) untuk masing-masing dosen adalah berbeda. Untuk peneliti yang akan menggunakan data yang sama, maka sebaiknya gunakan data nilai matakuliah yang diampu oleh satu dosen.
3.
Sistem yang dibuat sebaiknya dirancang agar user dapat mengubah atribut dan model yang digunakan oleh algoritma, sehingga sistem dapat digunakan untuk meneliti berbagai jenis kasus.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
78
DAFTAR PUSTAKA
Pang-Ning Tan, Michael Steinbach, Vipin Kumar. (2006). Introduction to Data Mining. Boston: Pearson Education, Inc. Jiawei Han, Micheline Kamber (2006). Data Mining: concept and techniques. San Francisco: Elsevier Inc. Larose, Daniel T. (2006). Data Mining: methods and models. New Jersey: John Wiley & Sons, Inc. Santosa Budi (2007), Data Mining: Teknik Pemanfaatan Data Untuk Keperluan Bisnis. Yogyakarta: Graha Ilmu. Richard O. Duda; Peter E. Hart; David G. Stork. (2006). Pattern Classification. Canada: John Wiley & Sons, Inc. Kamath, Chandrika. (2009). Scientific Data Mining: a practical perspective. Philadelpia: Society for Industrial and Applied Mathematics. Pal, Sankar K., dan Mitra, Pabitra. (2004). Pattern Recognition Algorithms for Data Mining. Florida: Chapman and Hall/CRC. Nurgiyantoro, Burhan; Gunawan; Marzuki. (2009). Statistik Terapan Untuk Penelitian Ilmu-Ilmu Sosial. Yogyakarta: Gadjah Mada University Press.. Uyanto, Stanislaus S. (2006). Pedoman Analisis Data Dengan SPSS. Yogyakarta: Graha Ilmu.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN I Pengujian Korelasi Antara Atribut dan Kelas
Pengujian korelasi dilakukan dengan menggunakan metode Pearson’s product moment dan menggunakan software IBM SPSS Statistics. Hasil pengujian korelasi antara atribut dengan kelas ditunjukkan pada tabel 1, dan hasil pengujian korelasi antara atribut dengan atribut titunjukkan pada tabel 2. Tabel 1. Korelasi Antara Atribut dengan Kelas Pearson Correlation .242** INF100 Sig. (2-tailed) 0.002 N 168 Pearson Correlation .206** INF110 Sig. (2-tailed) 0.007 N 169 Pearson Correlation 0.131 INF111 Sig. (2-tailed) 0.09 N 168 Pearson Correlation .283** INF114 Sig. (2-tailed) 0 N 168 Pearson Correlation .254** INF160 Sig. (2-tailed) 0.001 N 169 Pearson Correlation .217** INF112 Sig. (2-tailed) 0.008 N 150 Pearson Correlation 0.09 INF113 Sig. (2-tailed) 0.249 N 167 Pearson Correlation .185* INF115 Sig. (2-tailed) 0.018 N 163 Pearson Correlation .418** INF121 Sig. (2-tailed) 0
79
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INF121P
INF150
INF161
INF220
INF220P
INF221
INF221P
INF232
INF232P
INF251
INF270P
N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N Pearson Correlation Sig. (2-tailed) N
168 .349** 0 161 .255** 0.001 168 .200** 0.009 169 .355** 0 164 .165* 0.036 161 .239** 0.002 162 .320** 0 161 .271** 0 167 .178* 0.022 167 .188* 0.015 167 -0.026 0.746 160
**. Correlation is significant at the 0.01 level (2-tailed). *. Correlation is significant at the 0.05 level (2-tailed).
80
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 81
Tabel 2. Korelasi Antara Atribut dengan Atribut INF 100
INF 100
Pearson Correlation Sig. (2tailed) N
INF 110
Pearson Correlation Sig. (2tailed) N
INF 114
Pearson Correlation Sig. (2tailed) N
INF 160
Pearson Correlation Sig. (2tailed) N
INF 112
Pearson Correlation Sig. (2tailed) N
INF
Pearson Correlation
INF 110
INF 114
INF 160
INF 112
INF 115
INF 121
INF 121P
INF 150
INF 161
INF 220
INF 220P
INF 221
INF 221P
INF 232
INF 232P
INF 251
.264**
.214**
.182*
.235**
0.131
.260**
.241**
.272**
.165*
.250**
.309**
.359**
.376**
.292**
0.141
.230**
0.001
0.006
0.018
0.004
0.095
0.001
0.002
0
0.032
0.001
0
0
0
0
0.069
0.003
168
168
167
168
149
162
167
160
167
168
164
160
161
160
166
166
166
.264**
1
.574**
.407**
.468**
.532**
.296**
.306**
.333**
.241**
.436**
.384**
.161*
.330**
.308**
.309**
.324**
0
0
0
0
0
0
0
0.002
0
0
0.04
0
0
0
0
1
0.001 168
169
168
169
150
163
168
161
168
169
164
161
162
161
167
167
167
.214**
.574**
1
.442**
.479**
.565**
.417**
.394**
.398**
.329**
.425**
.412**
.308**
.351**
.406**
.305**
.315**
0.006
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
167
168
168
168
149
163
167
160
167
168
163
160
162
161
166
166
166
.182*
.407**
.442**
1
.372**
.351**
.385**
.275**
.342**
.257**
.361**
.352**
.248**
.312**
.293**
.257**
.208**
0.018
0
0
0
0
0
0
0
0.001
0
0
0.001
0
0
0.001
0.007
168
169
168
169
150
163
168
161
168
169
164
161
162
161
167
167
167
.235**
.468**
.479**
.372**
1
.575**
.411**
.349**
.460**
.314**
.428**
.366**
.299**
.382**
.434**
.179*
.354**
0.004
0
0
0
0
0
0
0
0
0
0
0
0
0
0.029
0
149
150
149
150
150
145
150
145
149
150
145
143
145
143
148
148
148
0.131
.532**
.565**
.351**
.575**
1
.465**
.392**
.440**
.313**
.440**
.453**
.320**
.455**
.402**
.367**
.336**
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 82
115
Sig. (2tailed) N
INF 121
Pearson Correlation Sig. (2tailed) N
INF 121P
Pearson Correlation Sig. (2tailed) N
INF 150
Pearson Correlation Sig. (2tailed) N
INF 161
Pearson Correlation Sig. (2tailed) N
INF 220
Pearson Correlation Sig. (2tailed) N
INF 220P
Pearson Correlation Sig. (2tailed)
0.095
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
162
163
163
163
145
163
162
156
162
163
159
157
161
159
162
162
162
.260**
.296**
.417**
.385**
.411**
.465**
1
.580**
.619**
.211**
.451**
.401**
.463**
.578**
.524**
.415**
.366**
0.001
0
0
0
0
0
0
0
0.006
0
0
0
0
0
0
0
167
168
167
168
150
162
168
161
167
168
163
160
161
161
166
166
166
.241**
.306**
.394**
.275**
.349**
.392**
.580**
1
.355**
.313**
.450**
.391**
.428**
.677**
.462**
.383**
.243**
0.002
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.002
160
161
160
161
145
156
161
161
161
161
157
155
156
155
160
160
160
.272**
.333**
.398**
.342**
.460**
.440**
.619**
.355**
1
.158*
.475**
.417**
.414**
.416**
.489**
.403**
.236**
0
0
0
0
0
0
0
0
0.041
0
0
0
0
0
0
0.002
167
168
167
168
149
162
167
161
168
168
163
160
161
160
166
166
166
.165*
.241**
.329**
.257**
.314**
.313**
.211**
.313**
.158*
1
.189*
.263**
.249**
.281**
.213**
.216**
.260**
0.032
0.002
0
0.001
0
0
0.006
0
0.041
0.016
0.001
0.001
0
0.006
0.005
0.001
168
169
168
169
150
163
168
161
168
169
164
161
162
161
167
167
167
.250**
.436**
.425**
.361**
.428**
.440**
.451**
.450**
.475**
.189*
1
.451**
.434**
.439**
.580**
.326**
.272**
0.001
0
0
0
0
0
0
0
0
0.016
0
0
0
0
0
0
164
164
163
164
145
159
163
157
163
164
164
160
159
158
164
164
164
.309**
.384**
.412**
.352**
.366**
.453**
.401**
.391**
.417**
.263**
.451**
1
.392**
.438**
.349**
.305**
.357**
0
0
0
0
0
0
0
0
0
0.001
0
0
0
0
0
0
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 83
N
INF 221
Pearson Correlation Sig. (2tailed) N
INF 221P
Pearson Correlation Sig. (2tailed) N
INF 232
Pearson Correlation Sig. (2tailed) N
INF 232P
Pearson Correlation Sig. (2tailed) N
INF 251
Pearson Correlation Sig. (2tailed) N
160
161
160
161
143
157
160
155
160
161
160
161
157
156
161
161
161
.359**
.161*
.308**
.248**
.299**
.320**
.463**
.428**
.414**
.249**
.434**
.392**
1
.537**
.426**
.237**
.240**
0
0.04
0
0.001
0
0
0
0
0
0.001
0
0
0
0
0.002
0.002
161
162
162
162
145
161
161
156
161
162
159
157
162
159
162
162
162
.376**
.330**
.351**
.312**
.382**
.455**
.578**
.677**
.416**
.281**
.439**
.438**
.537**
1
.444**
.316**
.319**
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
160
161
161
161
143
159
161
155
160
161
158
156
159
161
161
161
161
.292**
.308**
.406**
.293**
.434**
.402**
.524**
.462**
.489**
.213**
.580**
.349**
.426**
.444**
1
.302**
.378**
0
0
0
0
0
0
0
0
0
0.006
0
0
0
0
0
0
166
167
166
167
148
162
166
160
166
167
164
161
162
161
167
167
167
0.141
.309**
.305**
.257**
.179*
.367**
.415**
.383**
.403**
.216**
.326**
.305**
.237**
.316**
.302**
1
.188*
0.069
0
0
0.001
0.029
0
0
0
0
0.005
0
0
0.002
0
0
166
167
166
167
148
162
166
160
166
167
164
161
162
161
167
167
167
.230**
.324**
.315**
.208**
.354**
.336**
.366**
.243**
.236**
.260**
.272**
.357**
.240**
.319**
.378**
.188*
1
0.003
0
0
0.007
0
0
0
0.002
0.002
0.001
0
0
0.002
0
0
0.015
166
167
166
167
148
162
166
160
166
167
164
161
162
161
167
167
0.015
167
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
84
LAMPIRAN II Skenario Use Case
Nama Use Case Deskripsi Use Case
Pra Kondisi Langkah Umum
Alternatif Kesimpulan
Nama Use Case Deskripsi Use Case Pra Kondisi Langkah Umum
Alternatif Kesimpulan
Mengimpor Data Use case ini digunakan untuk memasukkan data kedalam sistem menggunakan file berekstensi .xls, atau file dari aplikasi Ms. Excel 2003. Data yang akan dimasukkan adalah data yang akan ditambang menggunakan algoritma NBC dan BBN. Kegiatan Aktor Respon Sistem 1. Pengguna menekan tombol impor 2. Sistem menampilkan kotak dialog open file 3. Memilih file dan menekan tombol open 4. Sistem membaca file, dan menampilkannya dalam tabel Use Case ini berhenti apabila data dalam file excel dapat terbaca dan berhasil dimasukkan kedalam tabel
Mengekspor Data Use case ini digunakan untuk menyimpan data dari sistem kedalam file Ms. Excel. Kegiatan Aktor Respon Sistem 1. Pengguna menekan tombol ekspor 2. Sistem menampilkan kotak dialog save file 3. Memilih lokasi penyimpanan dan memasukkan nama file. 4. Sistem menyimpan data table kedalam file excel Use Case ini berhenti apabila data dalam tabel berhasil disimpan kedalam file excel
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Nama Use Case
Menambah Baris
Deskripsi Use Case
Use case ini digunakan untuk menambah baris baru kedalam tabel. Baris baru yang ditambahkan tidak berisi data (null) dan baris akan ditambahkan pada tabel diurutan paling akhir. Kegiatan Aktor Respon Sistem 1. Pengguna menekan tombol Tambah Baris
Pra Kondisi Langkah Umum
85
2. Sistem menambahkan baris baru dalam tabel Alternatif
-
Kesimpulan
Use Case ini berhenti apabila baris baru berhasil ditambahkan kedalam tabel
Nama Use Case
Menghapus Baris
Deskripsi Use Case
Use case ini digunakan untuk menghapus baris dalam tabel. Baris yang akan dihapus adalah baris yang dipilih (blok) oleh Pengguna. Pengguna dapat menghapus satu baris atau banyak baris sekaligus. Kegiatan Aktor Respon Sistem 1. Pengguna memilih 1 baris atau lebih yang akan dihapus dari tabel kemudian menekan tombol Hapus Baris 2. Sistem menghapus baris yang dipilih dalam tabel -
Pra Kondisi Langkah Umum
Alternatif Kesimpulan
Nama Use Case Deskripsi Use Case Pra Kondisi Langkah Umum
Use Case ini berhenti apabila baris yang dipilih berhasil dihapus dari dalam tabel
Menyortir Data Use case ini digunakan untuk mengurutkan data tabel berdasarkan kolom NIM atau Peminatan secara ascending Kegiatan Aktor
Respon Sistem
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
86
1. Pengguna menekan tombol sorting, lalu memilih salah satu pilihan sorting. 2. Sistem melakukan sorting dan menampilkan data Alternatif
Use Case ini berhenti apabila semua data berhasil sortir
Kesimpulan
Nama Use Case Deskripsi Use Case
Mengubah Data Use case ini digunakan untuk memasukkan atau mengubah data kedalam tabel secara manual (ketik).
Pra Kondisi
-
Langkah Umum
Kegiatan Aktor 1. Pengguna memilih cell dari tabel dan memasukkan data
Respon Sistem
2. Sistem menyimpan data yang dimasukkan pengguna Alternatif
-
Kesimpulan
Use Case ini berhenti apabila data berhasil dimasukkan/diubah dari dalam tabel
Nama Use Case Deskripsi Use Case Pra Kondisi Langkah Umum
Pencarian Data Use case ini digunakan untuk mencari tupel berdasarkan kolom NIM Kegiatan Aktor 1. Pengguna mengetikkan kata kunci pencarian dalam textfield, lalu menekan tombol enter pada keyboard.
Respon Sistem
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
87
2. Sistem mencari NIM mahasiswa kemudian menampilkannya Alternatif Kesimpulan
Nama Use Case Deskripsi Use Case Pra Kondisi Langkah Umum
Alternatif Kesimpulan
Nama Use Case Deskripsi Use Case
Pra Kondisi
Langkah Umum
Use Case ini berhenti apabila data berhasil dimasukkan/diubah dari dalam tabel
Menentukan Jumlah Fold Use case ini digunakan menentukan jumlah fold yang akan digunakan dalam proses cross validation. Tabel data mahasiswa yang akan ditambang sudah terisi Kegiatan Aktor Respon Sistem 1. Pengguna memasukkan angka di spinner, lalu menekan tombol Proses 2. Sistem menampilkan rincian rencana cross validation Use Case ini berhenti apabila telah memasukkan angka pada kolom Cross Validation, dan menekan tombol proses.
Melakukan Klasifikasi Use case ini digunakan untuk melakukan proses cross validation, klasifikasi, dan menghitung akurasi. Pengguna dapat melihat hasil klasifikasi algoritma, hasil cross validation, model hasil proses training algoritma, dan akurasi yang dihasilkan. Tabel data mahasiswa yang akan ditambang sudah terisi, dan tidak terdapat data yang mengandung error Use case Menentukan Jumlah Fold sudah dijalankan Kegiatan Aktor Respon Sistem 1. Pengguna menekan tombol Klasifikasi 2. Sistem melakukan proses cross validation, klasifikasi, dan menghitung akurasi, kemudian menampilkan hasilnya. 3. Sistem menampilkan list proses cross validation pada panel Klasifikasi,dan tabel akurasi algoritma pada panel Akurasi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4. Pengguna memilih list proses cross validation, kemudian menekan tombol Hasil Klasifikasi 5. Sistem menampilkan tabel hasil klasifikasi Algoritma 6. Pengguna memilih list proses cross validation, kemudian menekan tombol Data Training 7. Sistem menampilkan tabel Data Training Hasil proses cross validation 8. Pengguna memilih list proses cross validation, kemudian menekan tombol Data Testing 9. Sistem menampilkan tabel Data Testing Hasil proses cross validation 10. Pengguna memilih list proses cross validation, kemudian menekan tombol Model NBC 11. Sistem menampilkan model yang dihasilkan algoritma NBC 12. Pengguna memilih list proses cross validation, kemudian menekan tombol Model BBN 13. Sistem menampilkan model yang dihasilkan algoritma BBN 14. Pengguna menekan tombol Akurasi pada Halaman Utama sistem 15. Sistem menampilkan panel Akurasi yang didalamnya terdapat rinci akurasi algoritma Alternatif Kesimpulan
Use case ini berhenti apabila akurasi algoritma sudah berhasil dihitung dan ditampilkan.
88
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
89
LAMPIRAN III Diagram Aktifitas 1.
Diagram Aktifitas Mengimpor Data
AKTOR
SISTEM
Mula i Klik tombol Set Data Menampilkan Internal Frame Set Data klik tombol Impor Menampilkan kotak dialog Memilih file dalam drive, lalu menekan tombol Open
Sesuai format? Ya Tampilkan data
Tidak Tampilkan pesan eror
Selesai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.
90
Diagram Aktifitas Mengekspor Data
AKTOR
SISTEM
Mula i Klik tombol Set Data Menampilkan Internal Frame Set Data Klik tombol Ekspor Menampilkan kotak dialog Memilih lokasi penyimpanan, memasukkan nama file, dan menekan tombol Save
Menyimpan data kedalam file Selesai
3.
Diagram Aktifitas Menambah Baris
AKTOR
SISTEM
Mula i Klik Tombol Set Data
Menampilkan Internal Frame Set Data
Klik tombol Tambah Baris Menambah baris dalam tabel
Selesai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
4.
Diagram Aktifitas Menghapus Baris
AKTOR
SISTEM
Mula i Klik Tombol Set Data
Pilih baris, lalu klik tombol Hapus Baris
Menampilkan Internal Frame Set Data Menghapus baris yang dipilih dalam tabel Selesai
5.
Diagram Aktifitas Menyortir Data
AKTOR
SISTEM
Mula i Klik Tombol Set Data
Klik tombol sorting, kemudian pilih salah satu item
Menampilkan Internal Frame Set Data Menyortir dan menampilkan data Selesai
91
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6.
Diagram Aktifitas Mengubah Data
AKTOR
SISTEM
Mula i Klik Tombol Set Data Menampilkan Internal Frame Set Data Klik 2x pada cell dalam tabel, lalu masukkan data baru
Menyimpan data baru yang dimasukkan oleh pengguna Selesai
7.
Diagram Aktifitas Pencarian Data
AKTOR
SISTEM
Mula i Klik Tombol Set Data
Ketikkan kata kunci pada kolom pencarian, lalu tekan enter
Menampilkan Internal Frame Set Data Menandai data yang mengandung kata kunci pencarian Selesai
92
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
8.
Diagram Aktifitas Menentukan Jumlah Fold
AKTOR
SISTEM
Mulai Klik Tombol Set Data Menampilkan panel Set Data Ketikkan angka pada jspinner, lalu tekan tombol Proses
Menampilkan rincian data rencana cross validation Selesai
9.
Diagram Aktifitas Melakukan Klasifikasi
AKTOR
SISTEM
Mulai Klik Tombol Set Data Menampilkan panel Set Data Mengklik tombol Klasifikasi Melakukan proses cross validation, klasifikasi, dan mengukur akurasi algoritma NBC dan BBN Menampilkan panel Klasifikasi, didalamnya terdapat list proses cross validation dan tombol
93
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Memilih salah satu list proses cross validation, lalu menekan tombol Hasil Klasifikasi Memilih salah satu list proses cross validation, lalu menekan tombol Data Training
Memilih salah satu list proses cross validation, lalu menekan tombol Data Testing
Memilih salah satu list proses cross validation, lalu menekan tombol Model NBC
Memilih salah satu list proses cross validation, lalu menekan tombol Model BBN
Menekan tombol Akurasi di Halaman Utama
Menampilkan tabel hasil klasifikasi algoritma
Menampilkan data training hasil proses cross validation
Menampilkan data testing hasil proses cross validation
Menampilkan model hasil training algoritma NBC
Menampilkan model hasil training algoritma BBN
Menampilkan panel Akurasi yang didalamnya terdapat rinci akurasi algoritma
Selesai
94
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN IV Diagram Sekuensial
1.
Diagram Sekuensial Mengimpor Data
<> InFrameSetData
<> ToolClass
Actor
1: klik tombol impor data 2: ImporData() 3: kotak dialog Open 4: pilih file 5: baca file 6: data tabel
2.
Diagram Sekuensial Mengekspor Data
<> ToolClass
<> InFrameSetData Actor
1: klik tombol Ekspor Data 2: EksporData() 3: kotak dialog Save 4: beri nama file 5: buat file dan simpan data
95
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.
Diagram Sekuensial Menambah Baris
<> InFrameSetData Actor
1: klik tombol tambah baris
2: menambah baris tabel
4.
Diagram Sekuensial Menghapus Baris
<> InFrameSetData Actor
1: klik tombol hapus baris
2: menghapus baris tabel
5.
Diagram Sekuensial Menyortir Data <> InFrameSetData
<> ToolClass
Actor
1: Sortir Nim 2: SortingNim() 3: Sortir Peminatan 4: SortingPeminatan()
96
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6.
Diagram Sekuensial Mengubah Data
<> InFrameSetData
Actor
1: input data pada cell tabel 2: mengubah data pada cell
7.
Diagram Sekuensial Pencarian Data
<> InFrameSetData
Actor
<> ToolClass
1: Pencarian Data 2: search(String) 3: Pesan Pencarian
8.
Diagram Sekuensial Melakukan Cross Validation
Actor
<> InFrameSet Data 1: jumlah fold
2: Rincian data
97
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
9.
98
Diagram Sekuensial Melakukan Klasifikasi
<> InFrameKlasifikasi
<> ToolClass
<> KlasifikasiNBC
<> KlasifikasiBBN
<> CrossValidation
Actor 1: klik tombol Klasifikasi 2: jml fold, data tabel
3: jml fold, CrossValidation 4: tabel training/testing 5: hasil klasifikasi 6: jml fold, CrossValidation 7: tabel training/testing 8: hasil klasifikasi
9: hasil klasifikasi 10: Tabel Akurasi 11: klik tombol Hasil Klasifikasi
12: menampilkan tabel Hasil Klasifikasi 13: klik tombol Data Training 14: fold terpilih 15: tabel training 16: klik tombol Data Testing 17: fold terpilih 18: tabel testing 19: klik tombol Model NBC 20: fold terpilih 21: model NBC 22: klik tombol Model BBN 23: fold terpilih 24: model BBN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN V Diagram Kelas
HalamanUtama - btHasilKlasifikasi : JButton - btManagaData : JButton - btPerbandingan : JButton - setData : SetData - klasifikasi : Klasifikasi - akurasi : Akurasi + HalamanUtama() : <> - btManagaDataActionPerformed(ActionEvent) :void - btHasilKlasifikasiActionPerformed(ActionEvent) :void - btPerbandinganActionPerformed(ActionEvent) :void + klasifikasi(int) : void + akurasi( DefaultTableModel, DefaultTableModel) : void
InFrameSetData -btEkspor : JButton -btImpor : JButton -btTambahBaris : JButton -btHapusBaris : JButton -tfPencarian : JTextField -tabelData :JTable - spinnerCV : JSpinner -tools : ToolClass -dataTabel : DefaultTableModel +InFrameSetData() :<> -tfPencarianActionPerformed(ActionEvent) : void -btImporActionPerformed(ActionEvent) : void -btEksporActionPerformed(ActionEvent) : void -btTambahBarisActionPerformed(ActionEvent) : void -btHapusBarisActionPerformed(ActionEvent) : void - btProsesCVActionPerformed(ActionEvent) : void -btKlasifikasiActionPerformed(ActionEvent) : void -spinnerCVStateChanged(ChangeEvent) : void
99
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
InFrameKlasifikasi -lismod : DefaultListModel -listProses : JList -btHasilKL :JButton -btModelBBN :JButton -btModelNBC :JButton -btTesting :JButton - btTraining :JButton - lismod : DefaultListModel -tools : ToolClass -fold : int - tabelHasil : DefaultTableModel[] -nbc : KlasifikasiNBC2 -bbn : KlasifikasiBBN -cv : CrossValidation +Klasifikasi() : <> -listProsesValueChanged(ActionEvent) : void -btHasilKLActionPerformed(ActionEvent) : void -btModelBBNActionPerformed(ActionEvent) : void -btModelNBCActionPerformed(ActionEvent) : void -btTestingActionPerformed(ActionEvent) : void -btTrainingActionPerformed(ActionEvent) : void +setHasilKlasifikasi(DefaultTableModel, int) : void -kelolaTabelHasilKlasifikasi(int) : void +setParent(HalamanUtama) : void
InFrameAkurasi - akurasiBBNtotal : JProgressBar - akurasiNBCtotal : JProgressBar - bbnTabel : JTable - nbcTabel : JTable + InFrameAkurasi() : <> - setAkurasi(DefaultTableModel, DefaultTableModel)
CrossValidation -dataTabel : DefaultTableModel -jmlKelompok : int - dataTraining : DefaultTableModel -dataTesting : DefaultTableModel + CrossValidation(DefaultTableModel, int) : <> + getTabelTraining (int) : DefaultTableModel + getTabelTesting (int) : DefaultTableModel
100
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KlasifikasiNBC - attModel : float[][][] -kelasModel[] : float -hasilKlasifikasi : Object[][] - probKlasifikasi : Object[][] -cv : CrossValidation + KlasifikasiNBC (int, CrossValidation) : <> -trainingNBC(int) : void -testingNBC(int) : void -indexAtt (Object) : int -indexKelas (Object) : int + getModel(int fold) : String + getHasilKlasifikasi () : Object[][] + getProbKlasifikasi() : Object[][]
KlasifikasiBBN - kelasModel : float[][][] -inf121Model : float[][] -hasilKlasifikasi : Object[][] - probKlasifikasi : Object[][] -cv : CrossValidation + KlasifikasiBBN(int, CrossValidation) : <> -trainingBBN(int) : void -testingBBN( int) : void - indexAtt (Object) : int - indexKelas (Object) : int + getModel(int fold) : String + getHasilKlasifikasi () : Object[][] + getProbKlasifikasi() : Object[][]
ToolClass -dataTabel : DefaultTableModel -tabelNBC : DefaultTableModel -tabelBBN : DefaultTableModel + ToolClass(DefaultTableModel) :<> + cekTabelEror() : boolean + search(String) : int + sortingNim() :void + sortingPeminatan() : void + eksporData() : void + imporData() : void - getFilterFile(JFileChooser) : File + hitungAkurasi () : void + getTabelNBC() : DefaultTableModel + getTabelBBN() : DefaultTableModel
101
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
102
Diagram Kelas Keseluruhan
HalamanUtama
InFrameSetData
InFrameKlasifikasi
InFrameAkurasi
ToolsClass
Akurasi
KlasifikasiBBN
KlasifikasiNBC
CrossValidation
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN VI Algoritma Proses Klasifikasi
A. Algoritma getTabelTraining a. Nama Kelas : CrossValidation b. Nama Metode : getTabelTraining(int fold) c. Fungsi Metode : memperoleh data training dari data keseluruhan menggunakan metode cross validation. d. Algoritma : 1. Untuk i=0, selama memenuhi i < dataTabel.getRowCount(), lakukan perintah 2 2. Cek, jika variable i%jmlFold != fold, maka salin data dari dataTabel baris ke-j ke baris baru dataTraining 3. Berikan hasil (return) dataTraining
B. Algoritma getTabelTesting a. Nama Kelas : CrossValidation b. Nama Metode : getTabelTesting(int fold) c. Fungsi Metode : memperoleh data testing dari data keseluruhan menggunakan metode cross validation. d. Algoritma : 1. Untuk i=0, selama memenuhi i < dataTabel.getRowCount(), lakukan perintah 2 2. Cek, jika variable i%jmlFold == fold, maka salin data dari dataTabel baris ke-j ke baris baru dataTesting 3. Berikan hasil (return) dataTesting
C. Algoritma indexAtt a. Nama Kelas : KlasifikasiNBC dan KlasifikasiBBN b. Nama Metode : indexAtt(Object nilai) c. Fungsi Metode : untuk menunjukkan indeks dalam array. d. Algoritma : 1. Cek, jika nilai sama dengan “A”, berikan hasil (return) 0 2. Cek, jika nilai sama dengan “B”, berikan hasil (return) 1 3. Cek, jika nilai sama dengan “C”, berikan hasil (return) 2 4. Cek, jika nilai sama dengan “D”, berikan hasil (return) 3
103
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
104
D. Algoritma indexKelas e. Nama Kelas : KlasifikasiNBC dan KlasifikasiBBN f. Nama Metode : indexKelas(Object nilai) g. Fungsi Metode : untuk menunjukkan indeks dalam array. h. Algoritma : 1. Cek, jika nilai sama dengan “COM”, berikan hasil (return) 0 2. Cek, jika nilai sama dengan “DBS”, berikan hasil (return) 1 3. Cek, jika nilai sama dengan “NET”, berikan hasil (return) 2
E. Algoritma trainingNBC a. Nama Kelas : KlasifikasiNBC b. Nama Metode : trainingNBC(int fold) c. Fungsi Metode : melakukan proses training dan menghasilkan model untuk kelas yang ditentukan d. Algoritma : 1. Deklarasikan variabel dataTrain bertipe DefaultTableModel dan bernilai samadengan hasil (return) getTabelTraining(fold) dari kelas CrossValidation 2. Deklarasikasikan variabel attModel bertipe float array 3 dimensi, dengan dimensi pertama sejumlah banyak atribut, dimensi kedua sejumlah banyak nilai atribut (A,B,C,D), dan dimensi ketiga sejumlah banyak kelas label (COM, DBS, NET) 3. Isikan nilai 1 untuk array attModel disemua indeks 4. Deklarasikan variabel kelasModel bertipe array float sejumlah banyak label kelas 5. Isikan nilai 0 untuk array kelasModel disemua indeks 6. Untuk i=0, dan selama memenuhi i < dataTrain.getRowCount(), lakukan langkah 7 7. Lakukan algoritma indexKelas dengan parameter berupa label kelas pada baris ke-i, lalu gunakan hasil (return) sebagai index array kelasModel. Ubah nilai variabel tersebut dengan menambahkan nilainya dengan 1; 8. Untuk j=0, sampai sebanyak jumlah atribut yang digunakan dalam NBC, lakukan proses berikut 9. lakukan penambahan nilai 1 pada variabel attModel indeks di dimensi 1 adalah j, indeks di dimensi 2 adalah hasil algoritma indexAtt dengan parameter berupa data pada atribut NBC di baris ke-i, dan indeks di dimensi 3 adalah hasil algoritma indexKelas dengan parameter berupa label kelas di baris ke-i. 10. Hitung probabilitas attModel berdasarkan peminatannya 11. Hitung probabilitas kelasModel
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
105
F. Algoritma testingNBC a. Nama Kelas : KlasifikasiNBC b. Nama Metode : testingNBC c. Variabel Kelas : float[][] comModel, dbsModel, netModel; Object[][] hasilKlasifikasi d. Parameter : DefaultTableModel dataTest e. Fungsi Metode : melakukan proses testing dan menghasilkan label kelas untuk tiap record data f. Algoritma : 1. Deklarasikan variabel dataTest bertipe DefaultTableModel dan bernilai samadengan hasil (return) getTabelTesting(fold) dari kelas CrossValidation 2. Untuk setiap baris pada dataTest, lakukan perintah berikut 3. Hitung probabilitas kelas COM pada baris dan simpan hasilnya dalam variabel hasilCOM 4. Hitung probabilitas kelas DBS pada baris dan simpan hasilnya dalam variabel hasilDBS 5. Hitung probabilitas kelas NET pada baris dan simpan hasilnya dalam variabel hasilNET 6. Cek nilai terbesar antara hasilCom, hasilDbs, dan hasilNet? Simpan hasil klasifikasi dalam variabel hasilKlasifikasi[fold][i], dan simpan probabilitasnya dalam variabel hasilProbabilitas[fold][i],
G. Algoritma trainingBBN a. Nama Kelas : KlasifikasiBBN b. Nama Metode : trainingBBN(int fold) c. Fungsi Metode : melakukan proses training dan menghasilkan model untuk kelas yang ditentukan d. Algoritma : 1. Deklarasikan variabel dataTrain bertipe DefaultTableModel dan bernilai samadengan hasil (return) getTabelTraining(fold) dari kelas CrossValidation 2. Deklarasikan variable inf121Model bertipe array float 2 dimensi. Dimensi 1 digunakan untuk menyimpan peminatan, dan dimensi 2 digunakan untuk menyimpan nilai atribut. 3. Isikan nilai 1 untuk semua indeks dalam inf121Model 4. Untuk setiap baris dalam dataTrain, lakukan perintah 5 5. Lakukan proses inf121Model[indexKelas(label kelas tupel)][indexAtt(nilai matakuliah inf121)]++ 6. Hitung probabilitas inf121Model berdasarkan peminatannya
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
106
7. Deklarasikan variabel kelasModel bertipe float array 3 dimensi, dengan dimensi pertama sejumlah banyak banyak nilai atribut INF100, dimensi kedua sejumlah banyak nilai atribut INF232P , dan dimensi ketiga sejumlah banyak kelas label (COM, DBS, NET) 8. Isikan nilai 1 untuk semua indeks dalam kelasModel 9. Untuk setiap baris pada dataTrain lakukan perintah berikut 10. lakukan perintah kelasModel[indexAtt(nilai makul inf 100)][indexAtt(nilai makul inf232P)][indexKelas(label kelas tupel)]++ 11. Hitung probabilitas kelasModel berdasarkan atribut INF100 dan INF232P
H. Algoritma trainingBBN a. Nama Kelas : KlasifikasiBBN b. Nama Metode : testingBBN(fold) c. Fungsi Metode : melakukan proses training dan menghasilkan model untuk kelas yang ditentukan d. Algoritma : 1. Deklarasikan variabel dataTest bertipe DefaultTableModel dan bernilai samadengan hasil (return) getTabelTesting(fold) dari kelas CrossValidation 2. Untuk setiap baris pada dataTest, lakukan perintah berikut 3. Hitung probabilitas kelas COM pada baris dan simpan hasilnya dalam variabel hasilCOM 4. Hitung probabilitas kelas DBS pada baris dan simpan hasilnya dalam variabel hasilDBS 5. Hitung probabilitas kelas NET pada baris dan simpan hasilnya dalam variabel hasilNET 6. Cek nilai terbesar antara hasilCom, hasilDbs, dan hasilNet? Simpan hasil klasifikasi dalam variabel hasilKlasifikasi[fold][i], dan simpan probabilitasnya dalam variabel hasilProbabilitas[fold][i],
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
107
I. Algoritma hitungAkurasi a. Nama Kelas : ToolClass b. Nama Metode : hitungAkurasi c. Fungsi Metode : menghitung akurasi algoritma per-proses Cross Validation d. Algoritma : 1. Hitung jumlah data yang diklasifikasikan oleh algoritma NBC dengan tepat, dan simpan hasilnya dalam variabel jmlBenarNBC 2. Hitung jumlah data yang diklasifikasikan oleh algoritma BBN dengan tepat, dan simpan hasilnya dalam variabel jmlBenarBBN 3. Hitung akurasi algoritma NBC dengan cara membagi variabel jmlBenarNBC dengan jumlah seluruh data testing 4. Hitung akurasi algoritma BBN dengan cara membagi variabel jmlBenarBBN dengan jumlah seluruh data testing 5. Simpan data akurasi algoritma NBC dan BBN kedalam table