JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN … _Full.pdf · 2018. 12. 6. · Fakultas Sains dan...
Transcript of JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN … _Full.pdf · 2018. 12. 6. · Fakultas Sains dan...
i
Klasifikasi Data Penerimaan Mahasiswa Baru dan Prestasi Akademik
Mahasiswa Jurusan Teknik Informatika Universitas Sanata Dharma
dengan Menggunakan Algoritma Naive Bayesian
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Jurusan Informatika
Oleh :
Asteria Indharlina
065314052
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010
ii
Classification of Student Admission Data and Academic Data
of Informatics Engineering Student of Sanata Dharma University
Using Naive Bayesian Algorithm
A Thesis
Presented as Partial Fullfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Study Program of Informatics Engineering
By :
Asteria Indharlina
Student Number : 065314052
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
iii
HALAMAN PERSETUJUAN
SKRIPSI
Klasifikasi Data Penerimaan Mahasiswa Baru dan Prestasi Akademik
Mahasiswa Jurusan Teknik Informatika Universitas Sanata Dharma
dengan Menggunakan Algoritma Naive Bayesian
Disusun Oleh :
Asteria Indharlina
065314052
Telah Disetujui Oleh :
Pembimbing
P. H. Prima Rosa, S.Si., M.Sc. Tanggal September 2010
iv
SKRIPSI
Klasifikasi Data Penerimaan Mahasiswa Baru dan Prestasi Akademik Mahasiswa Jurusan Teknik Informatika Universitas Sanata Dharma
dengan Menggunakan Algoritma Naive Bayesian
Yang Dipersiapkan dan Disusun Oleh : Asteria Indharlina NIM : 065314052
Telah dipertahankan di depan Tim Penguji Pada tanggal 3 September 2010 Dan dinyatakan memenuhi syarat
Susunan Tim Penguji
Tanda Tangan
Ketua : P. H. Prima Rosa, S.Si., M.Sc. ---------------------------------
Sekretaris : Eko Hari Parmadi, S.Si., M.Kom. ---------------------------------
Anggota : Alb. Agung Hadhiatma, S.T., M.T. --------------------------------
Yogyakarta, September 2010
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
(Yosef Agung Cahyanta, S.T., M.T.)
v
“Orang yang banyak perjalannya, banyak pula pengetahuannya,
dan yang banyak pengalamannya mengucapkan pengertian.
Orang yang tidak berpengalaman hanya mengetahui sedikit,
Sedangkan orang yang banyak perjalannya
mengumpulkan kecerdikan besar”
Sirakh 34: 9-10
Kupersembahkan Untuk :
Tuhan Yesus Kristus
Keluarga Tercinta
Sahabat Terkasih
vi
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam
kutipan dan daftar pustaka, sebagaimana layaknya karya ilimiah.
Yogyakarta, 27 September 2010
Penulis
Asteria Indharlina
vii
ABSTRAK
Ada beberapa faktor kunci keberhasilan seorang mahasiswa dalam menempuh studi,
diantaranya adalah potensi akademik, motivasi, dan latar belakang mahasiswa tersebut. Potensi
akademik bisa tercermin dalam nilai tes masuk, motivasi bisa tercermin dalam gelombang tes
masuk dan prioritas pilihan prodi. Sedangkan latar belakang akademik bisa tercermin dari
jurusan ketika di SMA.
Universitas Sanata Dharma sudah mempunyai data-data kemahasiswaan yang mencakup
data penerimaan mahasiswa baru (PMB) dan data prestasi akademik mahasiswa dalam bentuk
digital. Dalam skripsi ini, data digital tersebut bisa dimanfaatkan untuk diolah menggunakan
teknik data mining dengan algoritma naïve Bayesian untuk mengklasifikasikan mahasiswa
dengan karakteristik seperti apa yang mempunyai prestasi akademik yang
kurang/memuaskan/sangat memuaskan/dengan pujian. Pengujian dilakukan pada 431 record
data dengan tenfold cross-validation dan menghasilkan tingkat keakuratan sebesar 49, 65 %.
viii
ABSTRACT
There are several key success factors for student in their study, such us there academic
potential, their motivations, as well as their backgrounds. Academic potentials could be reflected
in the admission test score, motivations could be reflected in the period of the admision test and
their priority of choice. While the academic background could be reflected in the major program
while they were in the Senior High School.
Sanata Dharma university has store student data which includes student admission data as
well as student academic achievement data in digital form. In this thesis, the data utilized using
data mining technique by appliying naïve Bayesian algorithm in order to classify student who
have particular academic achievement, namely poor / satisfied / very satisfied / cumlaude. The
data mining was implemented on 431 data record using ten fold cross-validation method. The
accuracy of the program is 49,65%.
ix
LEMBAR PERNYATAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Asteria Indharlina
NIM : 0653114052
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
“Klasifikasi Data Penerimaan Mahasiswa Baru dan Prestasi Akademik
Mahasiswa Teknik Informatika Universitas Sanata Dharma dengan
Menggunakan Algoritma Naive Bayesian”
Berserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam
bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya
secara terbatas, dan mempublikasikannya di internet atau media lain untuk
kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti
kepada saya selama tetap mencatumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal 15 September 2010
Yang menyatakan
Asteria Indharlina
x
KATA PENGANTAR
Dalam nama Bapa, Putra, dan Roh Kudus, penulis selalu diberi kekuatan untuk
berkembang dan menjadi lebih. Puji syukur penulis panjatkan atas Kehadirat Tuhan Yang Maha
Esa, yang telah melimpahkan rahmat dan berkatNya sehingga penulis dapat menyelesaikan tugas
akhir yang berjudul “Klasifikasi Data Penerimaan Mahasiswa Baru dan Prestasi Akademik
Mahasiswa Teknik Informatika Universitas Sanata Dharma dengan Menggunakan
Algoritma Naive Bayesian”. Tugas akhir ini ditulis sebagai salah satu syarat memperoleh gelar
sarjana program studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas Sanata
Dharma.
Dalam kesempatan ini, penulis mengucapkan terimakasih yang sebesar-besarnya kepada :
1. Ibu P.H. Prima Rosa, S.Si., M.Sc., selaku dosen pembimbing, terimakasih atas segala
bimbingan dan kesabaran dalam mengarahkan dan membimbing penulis dalam
menyelesaikan tugas akhir ini.
2. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku kaprodi Teknik Informatika.
3. Bapak Eko Hari Parmadi, S.Si., M.Kom. dan Bapak Alb. Agung Hadhiatma, S.T., M.T.
selaku dosen penguji.
4. Seluruh staff pengajar Prodi Teknik Informatika Fakultas Sains dan Teknologi
Universitas Sanata Dharma.
5. Bapak, Mama, Tiberius Tomo N.S., Paskalia dan semua keluarga yang telah memberikan
semangat serta doa yang tulus.
6. Alim Untung Widodo, yang selalu menghibur dan memberikan semangat dalam
pengerjaan tugas akhir ini serta membantu dalam bertukar pikiran dan memberikan
xi
solusi. Terimakasih juga karena selalu menemani dan rela menunggu untuk waktu yang
tidak ditentukan selama bimbingan.
7. Teman-teman seperjuangan, Robin Steven, Cresensia Devi, Hertartik Clarasita Devy,
Tulus Wardoyo, Yustinus Prima, Widyo Sutoto, terimakasih atas segala bantuan,
dukungan serta kesediaan dalam menciptakan hubungan simbiosis mutualisme dan
mampu menerapkan prinsip win-win solution.
8. Teman-teman prodi Teknik Informatika angkatan 2006, atas kebersamaanya selama
penulis menjalani masa studi.
9. Serta semua pihak yang tidak dapat disebutkan satu-persatu yang telah membantu penulis
dalam menyelesaikan tugas akhir ini.
Penulis menyadari bahwa tugas akhir ini jauh dari sempurna, oleh karena itu kritik dan
saran yang sifatnya membangun sangat penulis harapkan.
Akhir kata, penulis berharap semoga skripsi ini dapat bermanfaat bagi pembaca dan
pihak lain yang membutuhkannya.
Penulis
Asteria Indharlina
xii
DAFTAR ISI
Halaman Judul ……………………………………………………..…………………… i
Halaman Judul (Inggris) ………………………………………………………………… ii
Halaman Persetujuan …………………………………………………………………… iii
Halaman Pengesahan …………………………………………………………………… iv
Halaman Persembahan ……………….………………………………………………… v
Halaman Pernyataan Keaslian Karya …………..……………………………………… vi
Abstrak …………………….……………………………………………………………. vii
Abstract …………………………………………………………………………………. viii
Lembar Pernyataan Persetujuan ………….……………………………………………. ix
Kata Pengantar ……………….………………………………………………………… x
Daftar Isi …………………….…………………………………………………………. xii
Daftar Tabel ………………..…………………………………………………………… xv
Daftar Gambar ………….………………………………………………………………. xvii
BAB I. Pendahuluan ……………………………..………………………………….. 1
A. Latar Belakang …………………………….………………………………… 1
B. Rumusan Masalah ……………………………………………………………. 2
C. Tujuan ……………………………………..………………………………….. 3
D. Batasan Masalah ………………..………….………………………………… 3
E. Metodologi Penelitian …………………….………………………………….. 5
F. Sistematika Penulisan …………..…………………………………………… 6
BAB II. Landasan Teori ………………………....…………………………………… 8
A. Penambangan Data …………………….…………………………………….. 8
xiii
B. Teorima Bayesian …………………….….….………………………………. 13
C. Klasifikasi Naïve Bayesian ………………………………………………….. 16
D. k-Fold Cross Validation ……………….…………………………………….. 23
E. Mengukur Tingkat Keakuratan Penggolong(Classifier) …….……………… 23
F. Analisis Korelasi ………….…………………………………………………. 25
BAB III. Analisis dan Perancangan Sistem ………..………………..………………… 28
A. Identifikasi Sistem ……………….………………………..………………….. 28
B. Analisis Data Awal ……………….………………………………………….. 29
1. Pembersihan Data ……………….……………………………….……… 32
2. Integrasi Data ………………………..…………………………………. 32
3. Seleksi Data ………..…………………………………………………… 32
4. Transformasi Data …….………………………………………………… 36
C. Perancangan Umum Sistem …………………………………………………. 37
1. Masukan Sistem ………….…………………………………………….. 37
1.1. Perancangan Struktur Data …….……………………………….. 39
2. Proses Sistem …………………………………………..………………. 40
3. Keluaran Sistem ……………………………………….……………….. 42
4. Diagram Model Use Case ……………………………….………………. 43
4.1. Narasi Use Case ………..………………………………………. 44
5. Diagram Konteks ……………………………..………………………… 50
6. Diagram Aktivitas ………………………………………….……………. 51
6.1. Diagram Aktivitas Input Data ………………………………….. 51
6.2. Diagram Aktivitas Detail Atribut ………………………………. 51
xiv
6.3. Diagram Aktivitas Input Fold ………………………………….. 52
6.4. Diagram Aktivitas Hitung Posterior …………………………….. 52
6.5. Diagram Aktivitas Simpan File Hasil Klasifikasi ……………… 53
7. Diagram Kelas …….…………………………………………………….. 54
8. Diagram Sekuensial ………..……………………………………………. 55
8.1. Diagram Sekuensial Input Data ………………………………….. 55
8.2. Diagram Sekuensial Detail Atribut ………………………………... 55
8.3. Diagram Sekuensial Input Fold ………………………………….. 56
8.4. Diagram Sekuensial Hitung Posterior …………………………….. 56
8.5. Diagram Sekuensial Simpan File Hasil Klasifikasi ……………… 57
9. Perancangan Antar Muka ………………………….…………………. 57
BAB IV Implementasi Sistem ………………………………………………………….. 64
A. Spesifikasi Software dan Hardware ………………..………………………….. 64
B. Implementasi Use Case ………………………….…………………………….. 64
C. Implementasi Diagram Kelas …………………………………………………. 68
BAB V Analisis Hasil ……………………………………………………………….. 93
A. Analisis Hasil Program ………………………………………………………… 93
B. Kelebihan dan Kekurangan Program …………………………………………… 108
BAB VI Penutup ……………………………………………………………………… 110
A. Kesimpulan …………………..………………………………………………… 110
B. Saran …………………….……………………………………………………… 110
Daftar Pustaka
Lampiran
xv
DAFTAR TABEL
Tabel 2.1 Ilustrasi Penggunaan Teorema Bayesian ………................................... 16
Tabel 2.2 Sekumpulan Data Pelatihan……………………………………………….. 20
Tabel 2.3 Confusion Matrix……….............................................................................. 24
Tabel 2.4 Tabel Interprestasi Besarnya Nilai Koresi ……………………………… 26
Tabel 2.5 Tabel Contoh Hasil Analisis Korelasi di SPSS ……………………….. 26
Tabel 3.1 Tabel Output analisis korelasi dengan menggunakan SPSS ……………. 34
Tabel 3.2 Tabel rangkuman analisis korelasi ……………………………………….. 35
Tabel 3.3 Transformasi Data IPK …………………………………………………. 36
Tabel 3.4 Deskripsi Masukan untuk Data Pelatihan………………………………… 37
Tabel 3.5 Deskripsi Masukan untuk Data Uji………………………………………. 38
Tabel 3.6 Tabel List Data Mahasiswa ………………………………………………. 39
Tabel 5.1 Tabel Confusion Matrix untuk Pengujian pada Fold 1…………………… 95
Tabel 5.2 Tabel Confusion Matrix untuk Pengujian pada Fold 2 …………………… 96
Tabel 5.3 Tabel Confusion Matrix untuk Pengujian pada Fold 3 …………………. 97
Tabel 5.4 Tabel Confusion Matrix untuk Pengujian pada Fold 4 …………………. 98
Tabel 5.5 Tabel Confusion Matrix untuk Pengujian pada Fold 5 …………………. 99
Tabel 5.6 Tabel Confusion Matrix untuk Pengujian pada Fold 6 …………………. 100
Tabel 5.7 Tabel Confusion Matrix untuk Pengujian pada Fold 7 …………………. 101
Tabel 5.8 Tabel Confusion Matrix untuk Pengujian pada Fold 8 …………………. 102
Tabel 5.9 Tabel Confusion Matrix untuk Pengujian pada Fold 9 …………………. 103
Tabel 5.10 Tabel Confusion Matrix untuk Pengujian pada Fold 10 …………………. 104
xvi
Tabel 5.11 Tabel Confusion Matrix untuk Semua Iterasi ………………………….. 105
Tabel 5.12 Tabel Pengujian Menggunakan tenfold Cross-Validation ……………… 106
Tabel 5.13 Tabel Pengujian Cross-validation dengan k bervariasi ……………….. 107
xvii
DAFTAR GAMBAR
Gambar 2.1 Langkah Penambangan Data………………………………………………. 11
Gambar 3.1 Use Case ………………………………………………………………... 43
Gambar 3.2 Diagram Konteks …………………………………………………………. 50
Gambar 3.3 Diagram Aktivitas Input Data ……………………………………………. 51
Gambar 3.4 Diagram Aktivitas Detail Atribut ………………………………………… 51
Gambar 3.5 Diagram Aktivitas Input Fold ………………………………………….. 52
Gambar 3.6 Diagram Aktivitas Hitung Posterior………………………………………. 52
Gambar 3.7 Diagram Aktivitas Simpan File Hasil Klasifikasi ………………………. 53
Gambar 3.8 Diagram Kelas ………………………………………………………….. 54
Gambar 3.9 Diagram Sekuensial Input Data …………………………………………. 55
Gambar 3.10 Diagram Sekuensial Detail Atribut ………………………………………. 55
Gambar 3.11 Diagram Sekuensial Input Fold …………………………………………. 56
Gambar 3.12 Diagram Sekuensial Hitung Posterior ……………………………………. 56
Gambar 3.13 Diagram Sekuensial Simpan File Hasil Klasifikasi ……………………… 57
Gambar 3.14 Halaman Awal …………………………………………………………….. 58
Gambar 3.15 Halaman Awal dengan Submenu ………………………………………… 58
Gambar 3.16 Halaman Input Data ……………………………………………………… 59
Gambar 3.17 Jendela Pilih File Masukan ……………………………………………….. 60
Gambar 3.18 Halaman Proses …………………………………………………………… 61
Gambar 3.19 Halaman Proses Lanjutan ……………………………………………….. 61
Gambar 3.20 Halaman Bantuan …………………………………………………………. 62
xviii
Gambar 3.21 Halaman Tentang …………………………………………………………. 63
Gambar 3.22 Jendela Pertanyaan Konfirmasi Keluar ………………………………….. 63
Gambar 4.1 Halaman Input Data ……………………………………………………… 65
Gambar 4.2 Proses Input Data Berhasil………………………………………………… 66
Gambar 4.3 Lihat Detail Atribut ……………………………………………………… 67
Gambar 4.4 Halaman Proses ………………………………………………………….. 67
1
BAB I
PENDAHULUAN
A. Latar Belakang
Salah satu faktor penentu kesuksesan seorang mahasiswa dalam
menempuh studi di perguruan tinggi adalah potensi akademik. Potensi akademik
bisa terlihat dalam nilai tes masuk akademik. Semakin bagus potensi akademik
seorang mahasiswa mestinya akan semakin sukses ia menempuh studi di
perguruan tinggi. Kesuksesan ini bisa direpresentasikan dengan indeks prestasi
kumulatif. Namun pada kenyataannya tidak semua mahasiswa yang mempunyai
potensi akademik yang bagus mempunyai nilai IPK yang bagus pula. Hal ini
memunculkan dugaan bahwa ada faktor lain yang mempengaruhi kesuksesan
seorang mahasiswa dalam menempuh studi. Faktor lain tersebut bisa berupa
motivasi dan latar belakang mahasiswa. Motivasi bisa tercermin dalam gelombang
test masuk dan prioritas pilihan prodi sedangkan latar belakang mahasiswa bisa
terlihat pada jurusan ketika di SMA.
Maka perlu dijajaki apakah betul faktor yang berhubungan dengan
motivasi dan latar belakang seorang mahasiswa tersebut benar-benar
mempengaruhi keberhasilan studi seorang mahasiswa?
Universitas Sanata Dharma sudah mempunyai data-data kemahasiswaan
yang mencakup data penerimaan mahasiswa baru (PMB) dan data prestasi
akademik mahasiswa dalam bentuk digital. Data digital tersebut bisa
dimanfaatkan untuk diolah menggunakan teknik penambangan data dengan
2
menggunakan algoritma naïve Bayesian sehingga bisa diklasifikasikan data
mahasiswa yang mempunyai prestasi akademik yang kurang/memuaskan/sangat
memuaskan/dengan pujian.
Naïve Bayesian merupakan salah satu metode penambangan data yang
digunakan pada persoalan klasifikasi. Algoritma naïve Bayesian akan menghitung
probabilitas posterior untuk setiap nilai kejadian dari atribut target pada setiap
kasus (sampel data). Selanjutnya, naïve Bayesian akan mengklasifikasikan sampel
data tersebut ke kelas yang mempunyai nilai probabilitas posterior tertinggi. Maka
hal yang akan dilakukan dengan algoritma naïve Bayesian adalah menghitung
probabilitas posterior pada setiap sampel data untuk kelas IPK kurang, IPK
memuaskan, IPK sangat memuaskan, dan IPK dengan pujian.
Pada skripsi ini, penulis akan mengklasifikasikan data mahasiswa yang
mempunyai prestasi akademik kurang/memuaskan/sangat memuaskan/dengan
pujian berdasarkan data penerimaan mahasiswa baru (PMB) dan data prestasi
akademik mahasiswa.
B. Rumusan Masalah
Dari latar belakang di atas, terdapat masalah yaitu :
Bagaimana mengklasifikasikan data mahasiswa yang mempunyai prestasi
kurang/memuaskan/sangat memuaskan/dengan pujian berdasarkan data
penerimaan mahasiswa baru (PMB) dan data prestasi akademik mahasiswa
dengan menggunakan algoritma naïve Bayesian.
3
C. Tujuan
Tujuan pembuatan aplikasi ini adalah untuk :
Mengklasifikasikan data mahasiswa yang mempunyai prestasi
kurang/memuaskan/sangat memuaskan/dengan pujian berdasarkan data
penerimaan mahasiswa baru (PMB) dan data prestasi akademik mahasiswa
dengan menggunakan algoritma naïve Bayesian.
D. Batasan Masalah
Dalam membangun sistem ini terdapat batasan-batasan antara lain :
1. Klasifikasi prestasi mahasiswa hanya berdasarkan data gelombang tes
masuk, pilihan prodi, prioritas pilihan prodi, jurusan di SMA dan nilai
final tes masuk lima komponen : nilai tes penalaran verbal, nilai tes
kemampuan numerik, nilai tes penalaran mekanik, nilai tes hubungan
ruang, nilai tes bahasa Inggris.
2. Data kemahasiswaan yang digunakan adalah data PMB (Penerimaan
Mahasiswa Baru) dan data akademik mahasiswa Teknik Informatika
Fakultas Sains dan Teknologi Universitas Sanata Dharma yang
mengikuti tes melalui jalur reguler dan jalur kerjasama yakni data
gelombang tes masuk mahasiswa, pilihan prodi, prioritas pilihan prodi,
jurusan di SMA dan nilai final tes masuk lima komponen yang terdiri
dari nilai tes penalaran verbal, nilai tes kemampuan numerik, nilai tes
penalaran mekanik, nilai tes hubungan ruang, nilai tes bahasa Inggris .
Data kemahasiswaan yang digunakan tersebut adalah data tahun 2000,
4
2001, 2002, 2003, 2004, 2005, 2006, 2007.
3. Data IPK yang digunakan adalah data IPK sampai semester 4 dengan
alasan bahwa pada akhir semester 4 terdapat evaluasi sisip program
yang menentukan apakah mahasiswa yang bersangkutan boleh
melanjutkan studi atau harus meninggalkan Program Studi yang
bersangkutan. Mahasiswa boleh melanjutkan studi di Program studi
yang bersangkutan apabila pada akhir semester 4 dapat mengumpulkan
sekurang-kurangnya 40 SKS dengan IPK sekurang-kurangnya 2.00.
Sistem yang dibuat ini dapat digunakan oleh Ketua Prodi Teknik
Informatika atau dosen pembimbing akademik untuk memprediksi
apakah pada evaluasi sisip program seorang mahasiswa boleh
melanjutkan studi atau harus meninggalkan Program studi. Dengan
adanya sistem ini baik Ketua Prodi maupun dosen pembimbing
akademik bisa lebih peka dan kritis terhadap mahasiswa-mahasiswa
yang diprediksikan tidak bisa melanjutkan studi dengan membuat
kebijakan tentang bagaimana langkah yang harus diambil untuk
mengupayakan agar mahasiswa-mahasiswa yang diprediksikan tidak
bisa melanjutkan studinya tersebut bisa melanjutkan studi di Program
Studi Teknik Informatika.
4. Data IPK dikategorikan menjadi IPK memuaskan/sangat
memuaskan/dengan pujian sesuai dengan buku panduan akademik
mahasiswa Teknik Informatika dan dengan tambahan kategori kurang
untuk mahasiswa yang memiliki IPK kurang dari 2, 00.
5
5. Perangkat lunak yang digunakan untuk membangun sistem ini adalah
adalah : sistem operasi Microsoft Windows XP profesional SP, bahasa
pemrograman Java.
E. Metodologi Penelitian
Metodologi penelitian dilakukan dengan teknik penambangan data.
Langkah-langkahnya adalah sebagai berikut :
1. Pembersihan data yaitu menghilangkan noice dan menghilangkan data
yang tidak konsisten.
2. Integrasi data yaitu menggabungkan data dari bermacam-macam
tempat penyimpanan data ke dalam satu tempat penyimpanan data
yang koheren.
3. Seleksi data yaitu data yang relevan diambil dari basis data. Pada
langkah ini akan dilakukan analisis korelasi dengan SPSS untuk
analisis fitur. Atribut-atribut data akan dicek apakah relevan untuk
dilakukan penambangan data. Atribut yang tidak relevan ataupun
atribut yang mengalami redundansi akan dibuang. Atribut yang
diharapkan adalah atribut yang bersifat independen.
4. Transformasi data yaitu data ditransformasikan ke dalam bentuk yang
tepat untuk ditambang dengan menampilkan kesimpulan operasi.
5. Penambangan data yaitu mengaplikasikan metode yang tepat untuk
mengekstrak pola data, yaitu dengan menggunakan metode naïve
Bayesian. Metode naïve Bayesian didasarkan pada asumsi bahwa
6
kehadiran/keberadaan fitur tertentu dari sebuah kelas tidak
berhubungan dengan kehadiran/keberadaan fitur lainnya. Artinya, efek
yang ditimbulkan dari sebuah nilai atribut dari sebuah kelas adalah
independen dengan nilai atribut lainnya.
6. Evaluasi pola yaitu mengidentifikasi pola yang benar berdasarkan
beberapa pengukuran yang penting.
7. Presentasi pengetahuan yaitu mempresentasikan informasi yang sudah
ditambang kepada pengguna.
F. Sistematika Penulisan
BAB I PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, batasan
masalah, tujuan, batasan masalah, dan metodologi
penelitian.
BAB II LANDASAN TEORI
Bab ini berisi tentang dasar teori yang yang berkaitan
dengan judul/masalah di tugas akhir yaitu teori tentang
penambangan data dan algoritma naive bayesian.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang cara penerapan konsep dasar yang
telah diuraikan pada bab sebelumnya yaitu pada bab 2
untuk menganalisa dan merancang tentang sistem yang
dibuat.
7
BAB IV IMPLEMENTASI SISTEM
Bab ini berisi tentang implementasi ke program komputer
berdasarkan hasil perancangan yang telah dibuat.
BAB V ANALISIS HASIL
Bab ini berisi tentang analisis perangkat lunak yang sudah
dibuat, beserta kelebihan dan kekurangan pada sistem.
BAB VI PENUTUP
Bab ini berisi tentang kesimpulan dan saran dari penulisan
tugas akhir.
8
BAB II
LANDASAN TEORI
A. Penambangan Data
Sebuah organisasi pasti mempunyai sekumpulan data dengan jumlah yang
besar. Untuk bisa berkompetisi dengan efektif dan bisa mendapatkan banyak
keuntungan dari setiap kesempatan, pengambil keputusan perlu mengidentifikasi
dan menggunakan informasi yang ada dari sekumpulan data tadi. Maka dari itu
diperlukanlah penambangan data.
Penambangan data (data mining) berkenaan dengan mengekstrak atau
menambang informasi/pengetahuan dari sekumpulan data dengan jumlah yang
sangat besar. Secara fungsional, penambangan data adalah proses dari
pengumpulan informasi penting dari sejumlah data yang besar yang tersimpan di
basis data, gudang data, atau tempat penyimpanan informasi lainnya
(Han&Kamber, 2006).
Secara sederhana, penambangan data adalah langkah-langkah dalam
mendapatkan/menemukan pengetahuan (Han&Kamber, 2006). Penemuan
pengetahuan ini merupakan sebuah proses seperti ditunjukkan pada gambar 2.1
dan terdiri dari urutan-urutan sebagai berikut :
1. Pembersihan data (data cleaning)
Pada langkah ini noice dan data yang tidak konsisten akan dihapus.
Langkah pertama yang dilakukan dalam proses pembersihan data (data
cleaning atau disebut juga data cleansing) adalah deteksi ketidakcocokan.
9
Ketidakcocokan tersebut dapat disebabkan oleh beberapa faktor antara lain
desain form masukan data yang kurang baik sehingga menyebabkan
munculnya banyak field, adanya kesalahan petugas ketika memasukkan
data, adanya kesalahan yang disengaja dan adanya data yang busuk.
2. Integrasi data (data integration)
Pada langkah ini akan dilakukan penggabungan data. Data dari bermacam-
macam tempat penyimpanan data akan digabungkan ke dalam satu tempat
penyimpanan data yang koheren. Macam-macam tempat penyimpanan
data tersebut termasuk multiple database, data cube, atau file flat. Pada
langkah ini, ada beberapa hal yang perlu diperhatikan yaitu integrasi
skema dan pencocokan objek, redundansi data, deteksi dan resolusi
konflik nilai data. Selama melakukan integrasi data, hal yang perlu
dipertimbangkan secara khusus adalah masalah struktur data. Struktur data
perlu diperhatikan ketika mencocokkan atribut dari satu basis data ke basis
data lain.
3. Seleksi data (data selection)
Data yang relevan akan diambil dari basis data untuk dianalisis. Pada
langkah ini akan dilakukan analisis korelasi untuk analisi fitur. Atribut-
atribut data akan dicek apakah relevan untuk dilakukan penambangan data.
Atribut yang tidak relevan ataupun atribut yang mengalami redundansi
tidak akan digunakan. Atribut yang diharapkan adalah atribut yang bersifat
independen. Artinya, antara atribut satu dengan atribut yang lain tidak
saling mempengaruhi.
10
4. Transformasi data (data transformation)
Data ditransformasikan ke dalam bentuk yang tepat untuk ditambang.
Yang termasuk dalam langkah transformasi data adalah penghalusan
(smooting) yaitu menghilangkan noise yang ada pada data, pengumpulan
(aggregation) yaitu mengaplikasikan kesimpulan pada data, generalisasi
(generalization) yaitu mengganti data primitif/data level rendah menjadi
data level tinggi), normalisasi (normalization) yaitu mengemas data atribut
ke dalam skala yang kecil, sebagai contoh -1.0 sampai 1.0, dan konstruksi
atribut/fitur (attribute construction/feature construction) yaitu
mengkonstruksi dan menambahkan atribut baru untuk membantu proses
penambangan.
5. Penambangan data (data mining)
Langkah ini adalah langkah yang penting di mana akan diaplikasikan
metode yang tepat untuk mengekstrak pola data.
6. Evaluasi pola (pattern evaluation)
Langkah ini berguna untuk mengidentifikasi pola yang benar dan menarik.
Pola tersebut akan direpresentasikan dalam bentuk pengetahuan
berdasarkan beberapa pengukuran yang penting.
7. Presentasi pengetahuan (knowledge presentation)
Pada langkah ini informasi yang sudah ditambang akan divisualisasikan
dan direpresentasikan kepada pengguna.
Langkah 1 sampai dengan langkah 4 merupakan langkah praproses data di
mana data akan disiapkan terlebih dahulu selanjutnya dilakukan penambangan.
11
Pada langkah penambangan data, pengguna atau basis pengetahuan bisa
dilibatkan. Kemudian pola yang menarik akan direpresentasikan kepada pengguna
dan akan disimpan sebagai pengetahuan yang baru. Sebagai catatan, dalam urutan
proses di atas, penambangan data hanya terdapat pada satu langkah. Walaupun
penambangan data hanya terdapat dalam satu langkah, penambangan data
merupakan langkah yang penting karena bisa menemukan pola tersembunyi yang
nantinya akan dievaluasi.
Gambar 2.1 Langkah Penambangan Data
Sumber : Han&Kamber(2006)
12
Secara umum, pekerjaan penambangan data bisa dikelompokkan menjadi
dua kategori, yakni : deskriptif dan prediktif. Tugas penambangan deskriptif
adalah menggolongkan sifat-sifat umum data dalam basis data. Sedangkan tugas
penambangan prediktif adalah menampilkan kesimpulan dari data yang sekarang
ada untuk membuat sebuah prediksi.
Jenis pola yang dapat diketahui dari penambangan data salah satunya
adalah klasifikasi dan prediksi. Klasifikasi merupakan model yang dibangun
untuk memprediksi label-label kategorikal yang direpresentasikan dengan nilai
diskrit. Prediksi numerik merupakan model yang dibangun untuk memprediksi
fungsi nilai yang kontinyu (continuous-valued function) ataupun nilai yang terurut
(ordered value). Klasifikasi dan prediksi angka ini merupakan jenis permasalahan
prediksi (Han&Kamber, 2006).
Klasifikasi data terdiri dari dua proses. Pada proses pertama, classifier
membangun gambaran konsep atau kelas data yang telah ditentukan sebelumnya.
Langkah ini dinamakan langkah pembelajaran (learning) atau fase pelatihan. Pada
fase pelatihan ini, algoritma klasifikasi yang diterapkan akan membangun sebuah
classifier. Caranya adalah dengan belajar dari sekumpulan data pelatihan yang
diambil dari tuple basis data. Karena label kelas dari setiap tuple pelatihan sudah
tersedia maka fase ini juga dikenal dengan sebutan fase supervised learning.
Pada proses kedua, model langsung digunakan untuk diklasifikasi.
Pertama, akan ditaksir seberapa akurat prediksi yang dibuat oleh classifier. Jika
keakuratan classifier diukur dengan menggunakan data pelatihan, maka taksiran
ini akan baik karena classifier cenderung overfit data. Maka dari itu, perlu
13
digunakan sekumpulan data uji. Data tersebut dipilih secara acak dari sekumpulan
data umum. Data yang diuji ini bersifat independen dari data pelatihan, artinya
data yang diuji tersebut tidak lagi digunakan untuk membuat classifier.
Salah satu cara penyelesaian masalah-masalah yang berkaitan dengan
klasifikasi adalah dengan menggunakan teorema naïve Bayesian yang didasari
oleh teorema Bayesian.
B. Teorema Bayesian
Teorema Bayesian mengungkapkan bahwa hasil probabilitas posterior
sebanding dengan hasil perkalian antara likelihood dengan probababilitas prior.
Probabilitas posterior adalah probabilitas bersyarat dari sebuah hipotesis jika
diberikan data. Likelihood adalah probabilitas bersyarat dari sebuah data jika
diberikan hipotesis. Probabilitas prior adalah probabilitas bahwa hipotesis itu
benar sebelum data terlihat.
Misalkan X adalah tuple data. Dalam istilah Bayesian, X dianggap sebagai
bukti atau kumpulan data pelatihan. Anggap H adalah hipotesis. Untuk masalah
yang berhubungan dengan klasifikasi, akan ditentukan P(H|X), yaitu probabilitas
bersyarat di mana probabilitas hipotesis H ditentukan oleh data X. P(H|X) adalah
probabilitas posterior dari kondisi H terhadap X. P(X|H) adalah probabilitas
posterior dari X berdasarkan H. P(H) adalah probabilitas prior dari H. P(X) adalah
probabilitas prior dari X. Kalkulasi dari probabilitas-probabilitas tersebut adalah
sebagai berikut :
| | …………………………….(2.1)
14
Dimana :
X adalah himpunan data pelatihan.
H adalah hipotesis.
P(H|X) adalah probabilitas posterior, yaitu probabilitas bersyarat dari
hipotesis H setelah data X muncul.
P(H) adalah probabilitas prior dari hipotesis H yaitu probabilitas bahwa
hipotesis H bernilai benar sebelum data X muncul.
P(X) adalah probabilitas dari data X.
P(X|H) adalah probabilitas bersyarat dari X yang berasal dari hipotesis H,
dan biasa disebut dengan likelihood. likelihood ini mudah dihitung
ketika memberikan nilai 1 saat X dan H konsisten, dan memberikan
nilai 0 saat X dan H tidak konsisten.
Contoh, andaikan di sekolah AAA terdapat 60 % siswa putra dan 40%
siswa putri. Siswa laki-laki menggunakan celana panjang. Siswa putri
menggunakan celana panjang dan rok. Jumlah siswa putri yang menggunakan
celana panjang sama dengan jumlah siswa putri yang menggunakan rok. Seorang
pengamat memperhatikan siswa secara random dari kejauhan. Pengamat tersebut
bisa melihat bahwa ada siswa yang menggunakan celana panjang. Berapa
probabilitas bahwa siswa tersebut adalah seorang putri?
Kejadian A adalah kejadian di mana siswa yang diamati adalah seorang
putri dan kejadian B adalah kejadian di mana siswa yang diamati menggunakan
celana panjang. Untuk menghitung P(A|B) pertama perlu diketahui :
15
a. P(A), probabilitas di mana siswa tersebut adalah siswa putri. Selama
pengamat memperhatikan siswa secara acak, artinya semua siswa
mempunyai probabilitas yang sama di mata pengamat, probabilitas
munculnya siswa putri diantara siswa adalah 40% atau 0.4
b. P(B|A), probablilitas siswa menggunakan celana panjang tergantung pada
siswa tersebut adalah siswa putri. Probabilitas ini adalah 0.5
c. P(B), probabilitas siswa yang dipilih secara random adalah siswa yang
menggunakan celana panjang. Karena P (B) = P (B | A) P (A) + P (B | A ') P
(A'), ini adalah 0,5 × 0,4 + 1 × 0,6 = 0,8.
Berdasarkan semua informasi di atas, probabilitas pengamat yang mengamati
seorang siswa yang memakai celana panjang dapat dihitung sebagai berikut :
| |
0.5 0.4
0.8 0.25.
Dengan cara yang lain, untuk memperoleh hasil yang sama. Asumsikan
bahwa ada 100 siswa yang terdiri dari 60 siswa putra dan 40 siswa putri. 60 siswa
putra tersebut memakai celana panjang dan setengah dari siswa putri yaitu 20
orang menggunakan celana panjang. Ini artinya ada 80 siswa yang menggunakan
celana panjang, 20 diantaranya adalah siswa putri. Sehingga, siswa putri yang
menggunakan celana panjang (secara acak) adalah 20/80 =0.25. Jika dipandang
berdasarkan teorima Bayesian, probabilitas munculnya siswa putri adalah 40/100,
probabilitas munculnya siswa putri yang menggunakan celana panjang adalah ½.
Hasil kedua adalah 20/100, tetapi jika diketahui ada siswa yang menggunakan
16
celana panjang maka hapus/abaikan 20 siswa yang tidak menggunakan celana
panjang dan ambil probabilitas dari (20/100)/(80/100) atau 20/80.
Tabel 2.1 Ilustrasi penggunaan teorima Bayesian
Siswa putri Siswa putra Total
Celana panjang 20 60 80
Rok 20 0 20
Total 40 60 100
C. Klasifikasi Naïve Bayesian
Penggolong (classifier) Naïve Bayesian adalah penggolong yang bersifat
statistik. Penggolong ini didasari oleh teorema Bayesian. Penggolong Naïve
Bayesian dapat memprediksi probabilitas kelas, seperti probabilitas tuple yang
termasuk ke dalam kelas tertentu. Penggolong naïve Bayesian didasarkan pada
asumsi bahwa kehadiran/keberadaan fitur tertentu dari sebuah kelas tidak
berhubungan dengan kehadiran/keberadaan fitur lainnya. Artinya, efek yang
ditimbulkan dari sebuah nilai atribut dari sebuah kelas adalah independen dengan
nilai atribut lainnya. Maka rumus 2.1 berubah menjadi
| | | ….. | …………………….(2.3)
Dimana :
X adalah himpunan data pelatihan.
H adalah hipotesis.
P(H|X) adalah probabilitas posterior, yaitu
17
probabilitas bersyarat dari hipotesis H setelah
data X muncul.
P(H) adalah probabilitas prior dari hipotesis H
sebelum X muncul.
P(X) adalah probabilitas dari data X. P(H)
mempunyai nilai yang sama dengan kelas
yang lain atau irrelevant.
| , | , | adalah probabilitas dari X1, X2, Xn untuk
hipotesis H, biasa disebut dengan likelihood.
Karena P(X) irrelevant maka untuk mencari peluang hanya menggunakan
rumus
| | | … . . | ……………….(2.4)
Jika ada P(Xn|H) yang memiliki nilai=0, maka P(H|X)=0. Dengan demikian
penggolong Naïve Bayesian tidak bisa memprediksi record yang salah satu
atributnya memiliki probabilitas bersyarat (likelihood)=0. Untuk mengatasi hal
tersebut dilakukan langkah Laplace Estimator. Laplace Estimator dilakukan
dengan melakukan perhitungan sebagai berikut
| …………………..………………………….(2.5)
Dimana :
adalah jumlah dari Xn..
adalah jumlah total dari kelas Hm.
c jumlah kelas yang ada.
18
Penggolong Naïve Bayesian bekerja seperti berikut :
1. Anggap D adalah kumpulan data pelatihan dari tuple dan D berhubungan
dengan label kelas.
2. Andaikan ada m kelas, C1, C2, … , Cm. Jika disediakan tuple X, penggolong
Naïve Bayesian memprediksi X ke dalam kelas yang mempunyai
probabilitas posterior tertinggi. Maka penggolong Naïve Bayesian
memprediksi tuple X termasuk ke dalam kelas Ci jika dan hanya jika
P(Ci|X)>P(Cj|X) untuk 1 ≤ j ≤ m, j ≠ i. ……………………..(2.6)
Dengan demikian P(Ci|X) akan dimaksimalkan. Kelas Ci untuk setiap
P(Ci|X) yang dimaksimalkan dinamakan maximum posteriori hypothesis.
Berdasarkan teorema Bayes adalah :
| | ………………………………(2.7)
3. Selama P(X) konstan untuk semua kelas maka hanya P(X|Ci)P(Ci) yang
dimaksimalkan. Jika kelas probabilitas prior tidak diketahui, maka kelas-
kelas tersebut diasumsikan sama, yaitu P(C1) = P(C2) = … = P(Cm), oleh
karena itu P(X|Ci) akan dimaksimalkan. Jika tidak, P(X|Ci)P(Ci) yang akan
dimaksimalkan.
4. Misalkan data terdiri dari banyak atribut. Untuk mengurangi kerumitan
komputasi dalam mengevaluasi P(X|Ci), naïve mengasumsikan ada class
conditional independence. Maksudnya, nilai dari atribut-atribut tersebut
bersifat independen satu sama lain. Maka,
| ∏ | ………………………………………(2.8)
| | … . | …………….(2.9)
19
xk merujuk pada nilai atribut Ak untuk tuple X. Untuk setiap atribut, akan
dicek apakah atribut tersebut adalah atribut kategorikal atau atribut yang
nilainya kontinyu. Sebagai contoh, untuk menghitung P(X|Ci), perlu
dipertimbangkan hal berikut ini :
1) Jika Ak adalah atribut kategorikal, maka P(xk|Ci) adalah jumlah
tuple dari kelas Ci dalam D yang mempunyai nilai xk untuk Ak,
dibagi dengan |Ci, D|, |Ci, D| adalah jumlah tuple pada kelas Ci dalam
D.
P(xk | Ci) = |xki|/ Nci………………………………… (2.10)
Dimana :
P(xk|Ci) adalah probabilitas likelihood dari atribut xk dalam
kelas Ci
Xki adalah jumlah atribut xk yang termasuk dalam kelas
Ci
Nci adalah jumlah Ci
2) Jika Ak adalah atribut yang nilainya kontinyu, maka perhitungan
menjadi lebih rumit karena melibatkan distribusi Gaussian dengan
mean µ dan standar deviasi σ. Perhitungannya adalah sebagai
berikut
, μ, √
………………………(2.11)
Maka,
| , μ , ………………………(2.12)
20
Dimana :
P(Xk|Ci) adalah probabilitas likelihood dari atribut xk dalam
kelas Ci.
Xk adalah nilai atribut Xk
µCi adalah nilai rata-rata dari kelas Ci.
σCi adalah nilai standar deviasi dari kelas Ci
5. Untuk memprediksi label kelas X, P(X|Ci)P(Ci) perlu dievaluasi untuk
setiap kelas Ci. Penggolong naïve Bayesian memprediksi label kelas tuple
X adalah Ci jika dan hanya jika P(X|Ci)P(Ci) > P(X|Cj)P(Cj) untuk 1≤ j ≤
m, j ≠ i. Dengan kata lain, prediksi suatu label kelas adalah kelas Ci untuk
P(X|Ci)P(Ci) adalah maksimum.
Contoh, disediakan data sebagai berikut.
Tabel 2.2 Sekumpulan Data Pelatihan
NO Umur Pemasukan Mahasiswa Angka_kredit Kelas:
beli_komputer
1 Muda Tinggi Tidak Baik Tidak
2 Muda Tinggi Tidak Sangat Baik Tidak
3 Setengah baya Tinggi Tidak Baik Ya
4 Tua Menengah Tidak Baik Ya
5 Tua Rendah Ya Baik Ya
6 Tua Rendah Ya Sangat Baik Tidak
7 Setengah baya Rendah Ya Sangat Baik Ya
8 Muda Menengah Tidak Baik Tidak
9 Muda Rendah Ya Baik Ya
21
10 Tua Menengah Ya Baik Ya
11 Muda Menengah Ya Sangat Baik Ya
12 Setengah baya Menengah Tidak Sangat Baik Ya
13 Setengah baya Tinggi Ya Baik Ya
14 Tua Menengah Tidak Sangat Baik Tidak
Data digambarkan dengan atribut-atribut umur, pemasukan, mahasiswa,
dan angka_kredit. Sedangkan atribut label kelas adalah beli_komputer yang terdiri
dari dua nilai yaitu “ya” atau “tidak”. Misalkan C1 adalah kelas beli_komputer =
ya dan C2 adalah kelas beli_komputer=tidak. Data yang akan diklasifikasikan
adalah X = (umur = muda, pemasukkan = menengah, mahasiswa = ya,
angka_kredit = baik). P(X|Ci)P(Ci) perlu dimaksimalkan untuk setiap i = 1, 2.
P(Ci) adalah probabilitas prior (untuk setiap kelas) yang dapat dihitung
berdasarkan data pelatihan pada tabel 2.2.
P(beli_komputer = ya) = 9/14 = 0.643
P(beli_komputer = tidak) = 5/14 = 0.357
Untuk menghitung P(X|Ci), untuk i = 1, 2 akan dihitung probabilitas bersyarat
sebagai berikut
P(umur = muda | beli_komputer = ya) = 2/9 = 0.222
P(umur = muda | beli_komputer = tidak) = 3/5 = 0.600
P(pemasukkan = menengah| beli_komputer = ya) = 4/9 = 0.444
P(pemasukkan = menengah | beli_komputer = tidak) = 2/5 = 0.400
P(mahasiswa = ya| beli_komputer = ya) = 6/9 = 0.667
P(mahasiswa = ya| beli_komputer = tidak) = 1/5 = 0.200
22
P(angka_kredit = tinggi | beli_komputer = ya) = 6/9 = 0.667
P(angka_kredit = tinggi | beli_komputer = ya) = 2/5 = 0.400
Dari probabilitas-probabilitas tersebut, diperoleh
P(X|beli_komputer = ya) = P(umur = muda | beli_komputer = ya) x
P(pemasukkan = menengah| beli_komputer = ya) x
P(mahasiswa = ya| beli_komputer = ya) x
P(angka_kredit = tinggi | beli_komputer = ya)
= 0.222 x 0.444 x 0.667 x 0.667
= 0.044
Dengan cara yang sama,
P(X|beli_komputer = tidak) = 0.600 x 0.400 x 0.200 x 0.400 = 0.019.
Untuk menemukan kelas Ci, maksimalkan P(X|Ci)P(Ci) dengan menghitung
P(X|beli_komputer = ya) P(beli_komputer = ya) = 0.044 x 0. 643 = 0.028
P(X|beli_komputer = tidak) P(beli_komputer = tidak) = 0.019 x 0. 357 = 0.007
Persentasi prediksi untuk beli_komputer = ya adalah :
0.028/(0.028 + 0.007 ) x 100% = 80 %
Persentasi prediksi untuk beli_komputer = tidak adalah :
0.007/(0.028 + 0.007 ) x 100% = 20 %
Maka, penggolong naïve Bayesian memprediksi beli_komputer = ya untuk
pengujian pada tuple x.
23
D. k-fold Cross Validation
Cross Validation adalah salah satu metode yang bisa digunakan untuk
mengukur kinerja dari sebuah model prediktif. Dalam k-fold Cross Validation,
data akan dipartisi secara acak ke dalam k partisi, D1, D2, …Dk, masing-masing D
mempunyai jumlah yang sama. Pada iterasi ke – i partisi Di digunakan sebagai
data uji, sedangkan sisa partisi digunakan sebagai data pelatihan. Maka dari itu
pada iterasi pertama, D1 digunakan sebagai data uji dan D2, D3, ….Dk digunakan
sebagai data pelatihan. Pada iterasi kedua, D2 digunakan sebagai data uji,
sedangakan D1, D3, ….Dk digunakan sebagai data pelatihan. Pada iterasi ketiga,
D3 digunakan sebagai data uji, sedangkan D1, D2, …Dk digunakan sebagai data
pelatihan dan seterusnya. Setiap sample D, hanya digunakan sekali sebagai data
uji dan berkali-kali sebagai data pelatihan.
Untuk pengklasifikasian, pengukuran keakurasian dapat dihitung dengan
cara : seluruh jumlah klasifikasi yang benar dari k iterasi, dibagi dengan seluruh
data.
E. Mengukur Tingkat Keakuratan Penggolong (Classifier)
Keakuratan penggolong dapat diukur dari data uji. Keakuratan penggolong
(jika diberikan data uji) adalah persentasi dari dari tuple data uji yang telah
diprediksi dengan benar oleh penggolong.
Confusion matrix adalah alat yang berguna untuk menganalisis sebagus
apa sebuah penggolong dapat mengenal tuple dari kelas-kelas yang berbeda. Jika
ada m kelas, maka confusion matrix adalah tabel yang berukuran m x m. CMi, j
24
adalah inputan pada baris m yang pertama dan kolom m yang pertama. CMi, j
menunjukkan jumlah tuple dari kelas i yang sudah dilabeli oleh penggolong
sebagai kelas j.
Tabel 2.3 confusion matrix
Jika diberikan dua kelas, ada terminologi tuple positif dan tuple negatif.
Benar positif merujuk pada tuple positif yang dilabeli oleh penggolong secara
benar. Benar negatif merujuk pada tuple negatif yang dilabeli oleh penggolong
secara benar. Salah positif merujuk pada tuple negatif yang dilabeli dengan tidak
benar. Maka, Salah negatif merujuk pada tuple positif yang dilebeli dengan tidak
benar. Sensitivitas (sensitivity) juga merujuk pada angka benar positif. Angka
benar positif adalah ukuran dari tuple positif yang diidentifikasi dengan benar.
Spesifikasi (specificity) merujuk pada angka benar negatif. Angka benar negatif
adalah ukuran dari tuple negatif yang diidentifikasi dengan benar. Sebagai
tambahan, diperlukan perhitungan ketelitian (precision) untuk mendapatkan
persentasi dari tuple yang dilabeli sebagai ‘a’ yang sebenarnya adalah ‘a’.
_ ……………………………………(2.13)
_ ……………………………………..(2.14)
25
__ _
………………………..........(2.15)
Dimana :
t_pos adalah jumlah benar positif.
pos adalah jumlah tuple positif.
t_neg adalah jumlah benar negatif.
neg adalah jumlah tuple negatif.
f_pos adalah jumlah salah positif.
Dengan demikian untuk menghitung keakuratan sebuah penggolong
adalah
….(2.16)
F. Analisis Korelasi
Analisis korelasi merupakan salah satu dari metode statistik. Metode ini
digunakan untuk menyelidiki hubungan antara dua buah variabel atau antar set
variabel. Analisis korelasi mengukur seberapa besar hubungan antara dua variabel
atau antar set variabel.
Nilai korelasi berkisar antara -1 hingga 1. Nilai korelasi -1 berarti bahwa
hubungan antara dua variabel adalah hubungan negatif sempurna. Nilai korelasi 0
berarti bahwa hubungan antara dua variabel dapat diabaikan atau dengan kata lain
tidak ada hubungan antara dua variabel. Niali korelasi 1 berarti bahwa terdapat
hubungan positif sempurna antara dua variabel. Besarnya nilai korelasi antara
26
variabel dapat diklasifikasikan sebagai berikut.
Tabel 2.4 Tabel Interprestasi Besarnya Nilai Koresi
Nilai Korelasi Hubungan Korelasi
0,00 – 0,09 Diabaikan/tidak ada korelasi
0,10 – 0,29 Rendah
0,30 – 0,49 Moderat
0,50 – 0,70 Sedang
> 0,70 Sangat kuat
Untuk mengetahui hubungan antara dua variabel data yang berskala ordinal
digunakan koefisien korelasi Rank Spearman dan Kendall’s Tau. Koefisien
Pearson digunakan untuk mengetahui hubungan antara dua variabel data yang
berskala interval.
Salah satu jenis korelasi adalah korelasi bivariat. Korelasi bivariat merupakan
uji korelasi sederhana antara dua variabel.
Tabel 2.5 Tabel Contoh Hasil Analisis Korelasi di SPSS
Dari tabel 2.5, tabel Contoh Hasil Analisis Korelasi di SPSS di atas, korelasi
dilakukan satu arah (1-tailed) dan nilai signifikansi untuk korelasi tersebut adalah
27
0,05.
Ada tiga bagian yang perlu diperhatikan pada masing-masing cell. Bagian
pertama, merupakan koefisien korelasi. Pada contoh di tabel 2.5 koefisien korelasi
adalah -0,310. Bagian kedua, merupakan nilai signifikasi dari korelasi tersebut.
Pada contoh di tabel 2.5 tersebut nilai signifikasi adalah 0,018. Dan bagian yang
terakhir, 46 merupakan jumlah kasus yang diobservasi yaitu kasus yang
digunakan untuk menghitung koefisien korelasi.
28
BAB III
ANALISIS DAN PERANCANGAN SISTEM
A. Identifikasi Sistem
Setiap tahun Universitas Sanata Dharma menerima calon mahasiswa baru
melalui tes masuk. Ada 3 gelombang tes masuk yaitu gelombang 1, gelombang 2,
dan gelombang 3. Calon mahasiswa yang mengikuti tes masuk berasal dari latar
belakang SMA yang berbeda-beda, dengan jurusan yang berbeda-beda pula.
Sebelum menjalani tes masuk, calon mahasiswa memilih maksimal 3 prodi sesuai
dengan keinginan mereka. Ketiga pilihan prodi tersebut ditempatkan pada pilihan
1, pilihan 2, dan pilihan 3. Ketika menjalani tes masuk, calon mahasiswa
menempuh 5 komponen tes, yaitu tes kemampuan numerik, penalaran verbal,
mekanik, hubungan ruang, dan bahasa Inggris. Semua keterangan tentang data-
data tersebut dikumpulkan dan didokumentasikan oleh pihak universitas.
Data PMB (Penerimaan Mahasiswa Baru) tersebut akan diteliti apakah
mempengaruhi keberhasilan studi mahasiswa yang bersangkutan. Keberhasilan
studi seorang mahasiswa dapat direpresentasikan dengan indeks prestasi
kumulatif. Untuk meneliti apakah ada keterkaitan antara data PMB dengan
prestasi akademik seorang mahasiswa, akan dilakukan proses penambangan data.
Penambangan data akan menemukan informasi/pengetahuan yang
mendeskripsikan mahasiswa dengan data PMB seperti apa yang mempunyai
prestasi akademik kurang/memuaskan/sangat memuaskan/dengan pujian.
Data PMB dan data akademik mahasiswa yang digunakan adalah data
29
mahasiswa prodi Teknik Informatika tahun 2000 sampai dengan tahun 2007. Data
tersebut dibagi menjadi 2 bagian dengan metode pengukuran menggunakan cross-
validation. Bagian pertama digunakan sebagai data pelatihan, dan bagian yang
lainnya digunakan sebagai data uji. Data pelatihan digunakan untuk membuat
sebuah classifier yang menjelaskan karakteristik data mahasiswa yang
mempunyai prestasi akademik kurang/memuaskan/sangat memuaskan/dengan
pujian. Melalui classifier tersebut akan dites sebuah record data yang diambil dari
kumpulan data uji. Maka, record bisa diklasifikasikan ke dalam klasifikasi
mahasiswa yang mempunyai nilai prestasi akademik kurang/memuaskan/sangat
memuaskan/dengan pujian.
B. Analisis Data Awal
Data mentah yang digunakan untuk penelitian ini adalah data PMB dan
data akademik mahasiswa Teknik Informatika yang didapat dari Biro
Administrasi Akademik (BAA) melalui Biro Administrasi dan Perencanaan
Sistem Informasi (BAPSI). Data diberikan dalam format ekstensi xls yang
terdiri dari 8 sheet. Sheet pertama menampung data-data mahasiswa Teknik
Informatika tahun 2007, sheet 2 sampai sheet 8 berturut-turut menampung
data-data mahasiswa Teknik Informatika tahun 2006, 2005, 2004, 2003,
2002, 2001, dan 2000. Data mahasiswa tersebut terdiri dari atribut Nomor,
Gelombang, Pilihan 1, Pilihan 2, Pilihan 3, Asal SMA, Jurusan SMA, Nilai
Tes Masuk Penalaran Verbal (PV), Nilai Tes Masuk Kemampuan Numerik
(KN), Nilai Tes Masuk Penalaran Mekanik (PM), Nilai Tes Masuk Hubungan
30
Ruang (HR), Nilai Tes Masuk Bahasa Inggris (BI), dan IPK Semester 4.
Pada sheet pertama, terdapat 92 data yaitu data mahasiswa yang
diterima di Prodi Teknik Informatika pada tahun 2007. Ada 45 record yang
mempunyai data tidak lengkap. Data yang tidak lengkap tersebut merupakan
data mahasiswa yang atribut pilihan 2 dan atau atribut pilihan 3 kosong, serta
data mahasiswa yang diterima di Prodi Teknik Informatika melalui jalur
prestasi. Mahasiswa yang masuk melalui jalur prestasi tidak mempunyai nilai
tes masuk karena seleksi dilakukan berdasarkan nilai rapor. Jadi, pada sheet 1
data yang tidak lengkap terdiri dari data pilihan 2, pilihan 3, nilai tes masuk
PV (Penalaran Verbal), nilai tes masuk KN (Kemampuan Numerik), nilai tes
masuk PM (Penalaran Mekanik), nilai tes masuk HR (Hubungan Ruang),
nilai tes masuk BI (Bahasa Inggris).
Pada sheet 2 yang menampung data mahasiswa Teknik Informatika
tahun 2006, terdapat 100 data, 41 diantaranya mempunyai data yang tidak
lengkap. Sama seperti sheet 1, data yang tidak lengkap merupakan data
mahasiswa yang atribut pilihan 2 dan atau atribut pilihan 3 kosong serta data
mahasiswa yang masuk melalui jalur prestasi.
Sheet 3 menampung data mahasiswa Teknik Informatika tahun 2005.
Sheet 3 terdapat 76 data. 27 diantaranya mempunyai data yang tidak lengkap.
Sama seperti sheet sebelumnya, data yang tidak lengkap merupakan data
mahasiswa yang atribut pilihan 2 dan atau atribut pilihan 3 kosong serta data
mahasiswa yang masuk melalui jalur prestasi.
Sheet 4 menampung data mahasiswa Teknik Informatika tahun 2004.
31
Sheet 4 terdapat 68 data. 23 diantaranya mempunyai data yang tidak lengkap.
Sama seperti sheet sebelumnya, data yang tidak lengkap merupakan data
mahasiswa yang atribut pilihan 2 dan atau atribut pilihan 3 kosong serta data
mahasiswa yang masuk melalui jalur prestasi.
Sheet 5 menampung data mahasiswa Teknik Informatika tahun 2003.
Dari 66 data, ada 19 data yang memiliki atribut tidak lengkap. Data yang
tidak lengkap merupakan data mahasiswa yang atribut pilihan 2 dan atau
atribut pilihan 3 kosong serta data mahasiswa yang masuk melalui jalur
prestasi.
Sheet 6 menampung 67 data mahasiswa Teknik Informatika tahun
2002. 19 diantaranya mempunyai data yang tidak lengkap berupa atribut IPK
yang kosong, atribut pilihan 2 dan atau atribut pilihan 3 yang kosong, serta
atribut 5 komponen tes kosong.
Terdapat 106 data mahasiswa Teknik Informatika tahun 2001 pada
Sheet 7. Dari 106 data tersebut, terdapat 31 data yang memiliki atribut tidak
lengkap berupa atribut IPK yang kosong, atribut pilihan 2 dan atau atribut
pilihan 3 yang kosong, serta atribut 5 komponen tes kosong.
Sheet terakhir yaitu sheet 8 menampung data mahasiswa Teknik
Informatika tahun 2000. Ada 100 data pada sheet 8. 36 diantaranya memiliki
atribut yang tidak lengkap. Ada beberapa record yang tidak memiliki data
PMB sama sekali (seluruh atribut kosong kecuali atribut IPK). Hal lain
penyebab ketidaklengkapan atribut sama seperti beberapa sheet sebelumnya
yaitu atribut IPK yang kosong, atribut pilihan 2 dan atau atribut pilihan 3
32
yang kosong, serta atribut 5 komponen tes kosong.
1. Pembersihan Data
Pembersihan data (data cleaning) merupakan langkah awal dalam
proses penambangan data. Pada data mentah, terdapat beberapa record
yang mempunyai data yang tidak lengkap (missing value). Pada proses
pembersihan data, record yang mempunyai data yang tidak lengkap
tersebut dibuang.
Pada sheet 1 ada 45 record yang dibuang. 41 record dibuang pada
sheet 2, 27 record pada sheet 3, 23 record pada sheet 4, 19 record pada
sheet 5, 19 record pada sheet 6, 31 record pada sheet 7, dan 36 record
pada sheet 8.
2. Integrasi Data
Pada langkah ini, dilakukan proses penggabungan data. Data mentah
yang diterima disajikan secara terpisah untuk setiap tahunnya (disajikan
per sheet). Data yang disajikan secara terpisah tersebut disatukan dan
disimpan dalam satu tabel pada satu sheet.
3. Seleksi Data
Data yang sudah diintegrasikan dikenai proses seleksi data. Pada
proses seleksi data, dipilih atribut-atribut yang relevan untuk penelitian.
Data mentah yang didapat terdiri dari atribut-atribut berikut ini : Nomor,
Gelombang, Pilihan 1, Pilihan 2, Pilihan 3, Asal SMA, Jurusan SMA,
Nilai Tes Masuk PV (Penalaran Verbal), Nilai Tes Masuk KN
(Kemampuan Numerik), Nilai Tes Masuk PM (Penalaran Mekanik), Nilai
33
Tes Masuk HR (Hubungan Ruang), Nilai Tes Masuk BI (Bahasa Inggris),
dan IPK Semester 4. Atribut yang diperlukan untuk penambangan data
adalah : Gelombang, Pilihan 1, Pilihan 2, Pilihan 3, Jurusan SMA, Nilai
Tes Masuk PV (Penalaran Verbal), Nilai Tes Masuk KN (Kemampuan
Numerik), Nilai Tes Masuk PM (Penalaran Mekanik), Nilai Tes Masuk
HR (Hubungan Ruang), Nilai Tes Masuk BI (Bahasa Inggris), dan IPK
Semester 4. Atribut nomor dan asal SMA tidak dipakai karena kedua
atribut tersebut tidak relevan untuk penelitian.
Pada proses ini juga dilakukan analisis korelasi untuk analisis
variabel dengan menggunakan aplikasi SPSS. Analisis korelasi dilakukan
untuk memastikan apakah 10 atribut yang digunakan untuk penambangan
data bersifat independen satu sama lain. Artinya, antara atribut satu dengan
atribut yang lain tidak saling mempengaruhi.
Analisis korelasi digunakan untuk menyelidiki hubungan antara dua
buah variabel. Analisi korelasi ini akan mengukur seberapa besar
hubungan antara dua variabel atau antar set variabel. Berikut ini adalah
hasil analisis korelasi untuk 10 atribut prediktor yaitu atribut Gelombang,
Pilihan 1, Pilihan 2, Pilihan 3, Asal SMA, Jurusan SMA, Nilai Tes Masuk
PV (Penalaran Verbal), Nilai Tes Masuk KN (Kemampuan Numerik),
Nilai Tes Masuk PM (Penalaran Mekanik), Nilai Tes Masuk HR
(Hubungan Ruang), Nilai Tes Masuk BI (Bahasa Inggris).
34
Tabel 3.1 Tabel output analisis korelasi dengan menggunakan SPSS
35
Koefisien korelasi yang digunakan adalah koefisien Pearson karena
data yang diuji berskala interval. Uji dilakukan dua arah atau dua sisi.
Variabel yang dianggap layak untuk digunakan dalam penelitian dengan
menggunakan algoritma naïve bayesian adalah variabel yang nilai
korelasinya rendah/nilai korelasinya dapat diabaikan. Nilai korelasi dua
variabel rendah berarti kedua variabel tersebut independen satu sama lain.
Nilai korelasi yang rendah atau nilai korelasi yang dapat diabaikan adalah
nilai korelasi yang berkisar antara 0,00 hingga 0,09.
Dari tabel 3.1 dapat dilihat bahwa ada beberapa atribut yang
mempunyai hubungan korelasi dengan atribut lain. Berikut rangkuman
analisisnya.
Tabel 3.2 Tabel rangkuman analisis korelasi
Atribut Independen terhadap
atribut Berkorelasi dengan atribut
Gelombang Pilihan3, Jurusan_SMA,
PV, PM, HR
Pilihan1, Pilihan2, KN, BI
Pilihan1 Jurusan_SMA, PV, KN,
PM, BI
Gelombang, Pilihan2,
Pilihan3, HR,
Pilihan2 Pilihan3, PV, KN, BI Gelombang, Pilihan1,
Jurusan_SMA, HR, PM
Pilihan3 Jurusan_SMA, PV, KN,
BI
Gelombang, Pilihan1,
Pilihan2, PM, HR
Jurusan_SMA PV, PM, HR Gelombang, Pilihan1,
Pilihan2, Pilihan3, KN, BI
PV BI Gelombang, Pilihan1,
Pilihan2, Pilihan3,
36
Jurusan_SMA, KN, PM, HR
KN BI Gelombang, Pilihan1,
Pilihan2, Pilihan3,
Jurusan_SMA, PV, PM, HR
PM BI Gelombang, Pilihan1,
Pilihan2, Pilihan3,
Jurusan_SMA, PV, KN, HR
HR BI Gelombang, Pilihan1,
Pilihan2, Pilihan3,
Jurusan_SMA, PV, KN, PM
Dari tabel 3.2 didapat 6 atribut yang saling independen satu sama lain,
yaitu atribut : Gelombang, Pilihan3, Jurusan_SMA, PV, PM, HR.
1. Transformasi Data
Pada langkah transformasi data, data nilai akademik mahasiswa
dklasifikasikan menjadi memuaskan/sangat memuaskan/dengan pujian
sesuai dengan buku panduan akademik mahasiswa prodi Teknik
Informatika dan dengan tambahan kategori IPK kurang untuk mahasiswa
yang mempunyai IPK < 2, 00. Berikut klasifikasinya:
Tabel 3.3 Transformasi Data IPK
IPK Klasifikasi
3,51 - 4,00 Dengan Pujian
2,76 - 3,50 Sangat Memuaskan
2,00 – 2,75 Memuaskan
< 2, 00 Kurang
37
A. Perancangan Umum Sistem
1. Masukan Sistem
Seperti telah disebutkan sebelumya, data yang akan diteliti dibagi
menjadi dua bagian yaitu data yang digunakan untuk data pelatihan
dan data yang digunakan untuk data uji. Kedua data tersebut akan
menjadi masukan bagi sistem. Data pelatihan terdiri dari 7 atribut, 6
atribut yaitu Gelombang, Pilihan3, Jur_SMA, final_tes_PV,
final_tes_PM, final_tes_HR adalah atribut input, sedangkan atribut
ke-7 yaitu IPK merupakan atribut target. Berikut ini adalah masukan
untuk data pelatihan.
Tabel 3.4 Deskripsi Masukan Untuk Data Pelatihan
No Nama Atribut Keterangan Nilai Atribut 1 Gelombang Gelombang satu, dua, tiga, kerjasama 2 Pilihan3 Pilihan ke 3 AKT, BK, FAR, FIS, IND,
IPAK, MAN, MAT, MEKA, PAK, PBI, PBSID, PEK, PFIS, PGSD, PMAT, PSEJ, PSI, SEJ, SING, TE, TI, TM
3 jur_SMA Jurusan SMA
SMU/MA IPA, SMU/MA IPS, SMU/MA /DUDAYA/ BAHASA, SMK (TEKNIK/ STM), SMK (EKONOMI/SMEA/SMKK), SMF.
4 final_tes_PV Nilai final tes masuk penalaran verbal
0, 00 – 10, 00
5 final_tes_PM Nilai final tes masuk penalaran mekanik
0, 00 – 10, 00
6 final_tes_HR Nilai final tes masuk hubungan
0, 00 – 10, 00
38
ruang 7 IPK IPK
mahasiswa pada semester ke 4
Kurang, Memuaskan, sangat memuaskan, dengan pujian
Sedangkan masukan untuk data uji hampir sama dengan masukan
untuk data pelatihan, hanya saja masukan untuk data uji dianggap
tidak mempunyai atribut IPK; yang ada adalah atribut prediksi.
Masukan untuk data uji juga terdiri dari terdiri dari 7 atribut, 6 atribut
yaitu Gelombang, Pilihan3, Jur_SMA, final_tes_PV, final_tes_PM,
final_tes_HR adalah atribut input dan atribut ke-7 adalah prediksi.
Atribut prediksi digunakan untuk menyimpan hasil uji yang dibuat
oleh penggolong (classifier). Berikut ini adalah masukan untuk data
uji.
Tabel 3.5 Deskripsi Masukan Untuk Data Uji
No Nama Atribut Keterangan Nilai Atribut 1 Gelombang Gelombang satu, dua, tiga, kerjasama 2 Pilihan3 Pilihan ke 3 AKT, BK, FAR, FIS, IND,
IPAK, MAN, MAT, MEKA, PAK, PBI, PBSID, PEK, PFIS, PGSD, PMAT, PSEJ, PSI, SEJ, SING, TE, TI, TM
3 jur_SMA Jurusan SMA
SMU/MA IPA, SMU/MA IPS, SMU/MA /DUDAYA/ BAHASA, SMK (TEKNIK/ STM), SMK (EKONOMI/SMEA/SMKK), SMF.
4 final_tes_PV Nilai final tes masuk penalaran verbal
0, 00 – 10, 00
39
5 final_tes_PM Nilai final tes masuk penalaran mekanik
0, 00 – 10, 00
6 final_tes_HR Nilai final tes masuk hubungan ruang
0, 00 – 10, 00
5 Prediksi Nilai awal adalah kosong. Nantinya akan berisi prediksi dari nilai IPK mahasiswa pada semester ke 4
Kurang, Memuaskan, sangat memuaskan, dengan pujian
1.1. Perancangan Struktur Data
Struktur Data yang digunakan untuk menyimpan data tersebut
berupa List. Data pelatihan ditampung di List Pelatihan dan data
uji ditampung di List data Uji. Ada 7 list yang digunakan untuk
menampung data mahasiswa.
Tabel 3.6 Tabel List Data Mahasiswa
Nama List Fungsi List Gelombang digunakan untuk menampung
data gelombang masuk
mahasiswa baru
List Pilihan3 digunakan untuk menampung
data mahasiswa baru yaitu
pilihan prodi ke 3
list Jur_SMA digunakan untuk menampung
data jurusan mahasiswa ketika
40
di SMA
list tes_PV digunakan untuk menampung
data nilai tes masuk mahasiswa
untuk komponen penalaran
verbal
list tes_PM digunakan untuk menampung
data nilai tes masuk mahasiswa
untuk komponen penalaran
mekanik
list tes_HR digunakan untuk menampung
data nilai tes masuk mahasiswa
untuk komponen hubungan
ruang
list IPK digunakan untuk menampung
data IPK mahasiswa pada
semester 4
2. Proses Sistem
Masukan sistem akan diproses dengan algoritma naïve bayesian.
Berikut ini adalah proses dari sistem :
a. Data masukan akan dibagi ke dalam beberapa fold atau partisi
tertentu (pembagian partisi berdasarkan inputan user) yang
jumlah data untuk setiap partisi adalah sama.
b. Misal user menginputkan jumlah partisi 10 ; pada iterasi
pertama, partisi 1 akan dijadikan sebagai data uji dan partisi 2
– partisi 10 digunakan sebagai data pelatihan. Pada itersai
kedua, partisi 2 akan dijadikan data uji, sedangkan partisi 1
41
dan partisi 3 – partisi 10 akan dijadikan data pelatihan. Pada
iterasi ketiga, partisi 3 akan dijadikan sebagai data uji,
sedangkan partisi 1, partisi 2, partisi 4 – partisi 10 akan
dijadikan data pelatihan. Begitu seterusnya hingga partisi 10
digunakan sebagai data uji dan partisi 1- partisi 9 digunakan
sebagai data pelatihan.
c. Deklarasikan kelas-kelas yang muncul dari atribut target.
Misal C1 untuk kelas IPK=kurang, C2 untuk IPK=memuaskan,
C3 untuk kelas IPK=sangat memuaskan, C4 untuk kelas
IPK=dengan pujian.
d. Untuk setiap record pada partisi data uji lakukan perhitungan
menggunakan data dari sekumpulan partisi data pelatihan
sebagai berikut:
d.1. Hitung Likelihood masing-masing atribut untuk setiap
kelas C1, C2, C3, C4.
d.1.1. Cek Atribut apakah atribut kategorikal atau atribut
kontinyus.
d.1.1.1. Jika Atribut kategorikal, perhitungan
likelihood merujuk pada rumus 2.10
berikut ini
P(xk | Ci) = |xki|/ Nci .
Implementasi rumus 2.10 pada data dapat
dilihat pada lampiran.
42
d.1.1.2. Jika Atribut kontinyus, perhitungan
likelihood merujuk pada rumus 2.11
berikut ini
Implementasi rumus 2.11 pada data dapat
dilihat pada lampiran.
d.2. Hitung probabilitas prior untuk masing-masing kelas C1,
C2, C3, C4. Probabilitas prior dari kelas Cx dapat dihitung
dengan cara membagi jumlah Cx dengan jumlah seluruh
sampel.
d.3. Hitung probabilitas posterior sesuai dengan rumus 2.4
sebagai berikut
d.4. Bandingkan hasil perhitungan probabilitas posterior untuk
kelas C1, C2, C3, C4. Penggolong naïve Bayesian
memprediksi sebuah record ke kelas yang mempunyai
nilai probabilitas posterior tertinggi.
3. Keluaran Sistem
Setiap tahapan proses dalam program mempunyai keluaran sebagai
berikut:
a. Proses input data menampilkan:
1) Jumlah sampel data keseluruhan.
2) Jumlah atribut keseluruhan.
43
3) Detail dari atribut masukan dan atribut target berupa :
a) Nilai-nilai kejadian dari masing-masing atribut masukkan
dan atribut target.
b) Jumlah masing-masing nilai kejadian dari atribut masukkan
dan atribut target.
b. Proses klasifikasi menampilkan:
1) Jumlah fold yang digunakan untuk proses klasifikasi.
2) Kelas-kelas yang akan diklasifikasi.
3) Nomor record data uji pada masing-masing fold (yang artinya :
nomor record yang tidak dicantumkan adalah sebagai data
pelatihan).
4) Hasil prediksi untuk setiap record pada data uji.
5) Jumlah data yang bisa diklasifikasikan dengan benar dan
jumlah data yang gagal diklasifikasikan dengan benar.
6) Tingkat validitas prediksi.
4. Diagram Model Use Case
Gambar 3.1. Use- case
44
4.1 Narasi Use Case
Pengarang : Asteria Indharlina Tanggal : 13 November 2009
Versi :
Nama Use Case Input Data Jenis Use Case : Persyaratan Bisnis Use Case ID KNB-001
Prioritas Tinggi Sumber - Aktor Bisnis Primer
Petugas
Aktor pendukung lainnya
-
Stakeholder lain yang berhubungan
-
Deskripsi Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh petugas. Petugas menginputkan data ke sistem untuk dilakukan proses perhitungan dengan algoritma Naïve Bayesian.
Prakondisi File data yang diinputkan adalah file excel dengan format extention .xls.
Pemicu - Langkah Umum Kegiatan aktor Respon Sistem Langkah 1: Petugas
memilih sub menu input data pada sistem. Langkah 3: Petugas mem-browse file data excel.
Langkah 2 : Sistem merespon dengan menampilkan halaman input data. Langkah 4: Sistem merespon dengan menampilkan data pada tabel yang telah disediakan, dan menampilkan atribut pada tabel yang telah disediakan. Sistem juga menampilkan informasi tentang jumlah sampel data keseluruhan, jumlah atribut, detail atribut
45
berupa nama atribut, nilai kejadian atribut dan jumlah dari masing-masing nilai kejadian atribut.
Langkah alternatif - Kesimpulan Use case ini selesai jika sistem sudah menampilkan
data mahasiswa pada tabel yang telah disediakan, atribut pada tabel disediakan beserta informasi-informasi tentang jumlah sampel data keseluruhan, jumlah atribut dan detail atribut
Pascakondisi Data pada tabel tersebut akan diolah untuk dikenai algoritma naïve bayesian.
Aturan bisnis - Batasan dan spesifikasi Implementasi
-
Asumsi - Masalah terbuka -
Pengarang : Asteria Indharlina Tanggal : 13 November 2009
Versi :
Nama Use Case Lihat Detail Atribut Jenis Use Case : Persyaratan Bisnis Use Case ID KNB-002
Prioritas Tinggi Sumber - Aktor Bisnis Primer
Petugas
Aktor pendukung lainnya
-
Stakeholder lain yang berhubungan
-
Deskripsi Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh petugas. Ketika petugas melakukan aksi klik pada salah satu cell tabel detail atribut, maka sistem akan menampilkan detail atribut berupa nama atribut, nilai kejadian atribut dan jumlah nilai dari masing-masing nilai kejadian atribut.
Prakondisi Petugas sudah mengeksekusi use case “Input Data”. Pemicu - Langkah Umum Kegiatan Aktor Respon Sistem Langkah 1: Sistem
46
Langkah 2 : Petugas melakukan aksi klik (pilih atribut yang akan dilihat detail informasinya) pada salah satu cell tabel detail atribut. Langkah 4 : Petugas melihat detail atribut.
menampilkan atribut pada tabel detail atribut. Langkah 3 : Sistem menampilkan informasi berupa nama atribut, nilai kejadian atribut dan jumlah nilai dari masing-masing nilai kejadian atribut.
Langkah alternatif - Kesimpulan Use case ini selesai jika sistem sudah menampilkan
Detail informasi dari atribut yang dipilih berupa nama atribut, nilai kejadian atribut dan jumlah nilai dari masing-masing nilai kejadian atribut.
Pascakondisi - Aturan bisnis - Batasan dan spesifikasi Implementasi
-
Asumsi - Masalah terbuka -
Pengarang : Asteria Indharlina Tanggal : 13 November 2009
Versi :
Nama Use Case Input Fold Jenis Use Case : Persyaratan Bisnis Use Case ID KNB-003
Prioritas Tinggi Sumber - Aktor Bisnis Primer
Petugas
Aktor pendukung lainnya
-
Stakeholder lain -
47
yang berhubungan Deskripsi Use case ini mendeskripsikan suatu kejadian yang
dilakukan oleh petugas. Untuk melakukan perhitungan probabilitas pada algoritma naïve bayesian, petugas perlu memasukkan jumlah fold (jumlah fold minimal adalah 2 dan jumlah fold maksimal adalah jumlah data keseluruhan itu sendiri) ke sistem.
Prakondisi Petugas sudah mengeksekusi use case “Input Data”. Pemicu - Langkah Umum Kegiatan Aktor Respon Sistem Langkah 1 : Petugas
memasukkan jumlah fold pada field yang telah disediakan. Langkah 2: Petugas menekan tombol OK .
Langkah 3 : Sistem menampilkan hasil prediksi dan tingkat validasi dari prediksi tersebut.
Langkah alternatif - Kesimpulan Use case ini selesai jika sistem sudah menampilkan
hasil prediksi dan tingkat validasi dari prediksi tersebut.
Pascakondisi - Aturan bisnis - Batasan dan spesifikasi Implementasi
-
Asumsi - Masalah terbuka -
48
Pengarang : Asteria Indharlina Tanggal : 13 November 2009
Versi :
Nama Use Case Hitung Posterior Jenis Use Case : Persyaratan Bisnis Use Case ID KNB-004
Prioritas Tinggi Sumber - Aktor Bisnis Primer
Petugas
Aktor pendukung lainnya
-
Stakeholder lain yang berhubungan
-
Deskripsi Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh petugas. Untuk melakukan proses perhitungan posterior, petugas hanya perlu menekan tombol OK setelah melakukan input fold. Perhitungan posterior ini merupakan perhitungan terakhir untuk menentukan hasil klasifikasi dari sebuah record data. Dan tentunya perhitungan posterior sudah melewati tahap-tahap perhitungan seperti : perhitungan prior, perhitungan likelihood baik untuk atribut katergorikal maupun atribut kontinyus, perhitungan laplace estimator seperti telah dijelaskan pada bab 2.
Prakondisi Petugas sudah mengeksekusi use case “Input Data”, use case “input fold”.
Pemicu - Langkah Umum Kegiatan Aktor Respon Sistem Langkah 1 : Petugas
memasukkan jumlah fold pada field yang telah disediakan. Langkah 2: Petugas menekan tombol OK .
Langkah 3 : Secara bertahap sistem melakukan perhitungan prior, perhitungan likelihood baik untuk atribut katergorikal maupun atribut kontinyus, perhitungan laplace estimator, dan perhitungan posterior itu
49
sendiri. Langkah 4 : Sistem menampilkan informasi yang sudah ditambang dengan cara memvisualisasikan dan merepresentasikan hasil prediksi dan tingkat validasi prediksi kepada pengguna.
Langkah alternatif - Kesimpulan Use case ini selesai jika sistem sudah menampilkan
hasil prediksi dan tingkat validasi dari prediksi tersebut.
Pascakondisi - Aturan bisnis - Batasan dan spesifikasi Implementasi
-
Asumsi - Masalah terbuka -
Pengarang : Asteria Indharlina Tanggal : 13 November 2009
Versi :
Nama Use Case Simpan File Hasil Klasifikasi
Jenis Use Case : Persyaratan Bisnis
Use Case ID KNB-005 Prioritas Sedang Sumber - Aktor Bisnis Primer
Petugas
Aktor pendukung lainnya
-
Stakeholder lain yang berhubungan
-
Deskripsi Use case ini mendeskripsikan suatu kejadian yang dilakukan oleh petugas. Petugas boleh menyimpan file hasil prediksi jika sewaktu-waktu memerlukan dokumentasi file tersebut.
Prakondisi Petugas sudah mengeksekusi use case “hitung posterior”.
Pemicu -
50
Langkah Umum Kegiatan Aktor Respon Sistem
Langkah 2 : Petugas menekan tombol SIMPAN. Langkah 3 : Petugas membrowse path tempat file akan disimpan. Langkah 4 : Petugas menekan tombol Save.
Langkah 1: Sistem menampilkan hasil prediksi dan tingkat validasi prediksi Langkah 5 : Sistem menyimpan file.
Langkah alternatif - Kesimpulan Use case ini selesai jika sistem sudah menampilkan
Pesan konfirmasi bahwa file sudah disimpan. Pascakondisi - Aturan bisnis - Batasan dan spesifikasi Implementasi
-
Asumsi - Masalah terbuka -
5. Diagram Konteks
Gambar 3.2. Diagram Konteks
51
6. Diagram Aktivitas
6.1. Diagram Aktivitas Input Data
Gambar 3.3. Diagram Aktivitas Input Data
6.2. Diagram Aktivitas Lihat Detail Atribut
Gambar 3.4. Diagram Aktivitas Detail Atribut
52
6.3. Diagram Aktivitas Input Fold
Gambar 3.5. Diagram Aktivitas Input Fold
6.4. Diagram Aktivitas Hitung Posterior
Gambar 3.6. Diagram Aktivitas Hitung Posterior
53
6.5. Diagram Aktivitas Simpan File Hasil Klasifikasi
Gambar 3.7. Diagram Aktivitas Simpan File Hasil Klasifikasi
54
7. Diagram Kelas
Gambar 3.8. Diagram Kelas
55
8. Diagram Sekuensial
8.1. Diagram Sekuensial Input Data
Gambar 3.9. Diagram Sekuensial Input Data
8.2. Diagram Sekuensial Lihat Detail Atribut
Gambar 3.10. Diagram Sekuensial Detail Atribut
56
8.3. Diagram Sekuensial Input Fold
Gambar 3.11. Diagram Sekuensial Input Fold
8.4. Diagram Sekuensial Hitung Posterior
Gambar 3.12. Diagram Sekuensial Hitung Posterior
57
8.5. Diagram Sekuensial Simpan File Hasil Klasifikasi
Gambar 3.13. Diagram Sekuensial Input Data
9. Perancangan Antarmuka
Aplikasi ini terdiri dari 4 menu utama yaitu Input Data, Bantuan,
Tentang dan Keluar. Saat pertama kali aplikasi dijalankan akan
menampilkan halaman depan seperti gambar 3.14. Kemudian ketika
pengguna sistem mengklik menu akan muncul kontrol GUI JMenuItem
seperti gambar 3.15 yang terdiri dari 4 menu item yaitu Input Data,
Bantuan, Tentang dan Keluar.
58
Gambar 3.14 Halaman Awal
Gambar 3.15 Halaman Awal dengan sub menu
59
Untuk menginputkan data, pengguna sistem harus berada di
halaman Input Data seperti gambar 3.16. Pertama-tama pengguna sistem
harus mem-browse file data yang akan dinputkan. Ketika mengklik
Browse akan muncul jendela untuk memilih file seperti gambar 3.17. Pada
halaman Input data ada dua tabel yaitu tabel untuk menampilkan data dan
tabel untuk menampilkan atribut data. Selain itu ada kontrol GUI
JTextArea yang digunakan untuk menampilkan detail atribut dan panel
yang digunakan untuk menampilkan grafik.
Gambar 3.16 Halaman Input Data
60
Gambar 3.17 Jendela Pilih File Masukan
Tombol Proses pada halaman Input Data akan menampilkan
halaman proses seperti gambar 3.18 berikut ini. Pada halaman ini,
pengguna sistem akan menginputkan jumlah fold dengan kontrol GUI
numericTextField. Tombol KEMBALI digunakan untuk menuju ke
halaman input data, tombol LANJUT digunakan untuk menuju ke halaman
Proses Lanjutan seperti gambar 3.19, sedangkan tombol SIMPAN
digunakan untuk menyimpan file hasil prediksi. Ketika mengklik tombol
SIMPAN akan muncul jendela seperti gambar 3.17
61
Gambar 3.18 Halaman Proses
Gambar 3.19 Halaman Proses Lanjutan
62
Halaman Bantuan berisi petunjuk-petunjuk dalam menggunakan
aplikasi ini. Halaman bantuan ini bisa diakses saat aplikasi pertama kali
dijalankan dengan cara klik Menu | Bantuan, maka akan muncul jendela
seperti gambar 3.20. Sedangkan Halaman Tentang berisi identitas aplikasi.
Halaman tentang ini juga bisa diakses saat aplikasi pertama kali dijalankan
dengan cara klik Menu | Tentang, maka akan muncul jendela seperti
gambar 3.21.
Gambar 3.20 Halaman Bantuan
63
Gambar 3.21 Halaman Tentang
Gambar 3.22 Jendela pertanyaan konfirmasi keluar
Ketika mengklik Menu | Keluar maka akan muncul jendela
pernyataan konfirmasi keluar seperti gambar 3.22.
64
BAB IV
IMPLEMENTASI SISTEM
A. Spesifikasi Software dan Hardware
Spesifikasi software yang digunakan dalam implementasi sistem ini adalah :
Sistem Operasi : Microsoft Windows XP Professional Versi
2.0
Bahasa pemrograman : Java NetBeans IDE 6.5
Spesifikasi Hardware yang digunakan dalam implementasi sistem ini adalah :
Processor : Intel Core 2 Duo 2,1 GHz
Memory : 1 GB DDR 3
Hardisk : 320 GB
B. Implementasi Use-Case
Ada 5 use-case dalam desain sistem yang diimplementasikan, yaitu :
1. Input Data
2. Lihat Detail Atribut
3. Input Fold
4. Hitung Posterior
5. Simpan File Hasil Klasifikasi
Input data ke sistem dilakukan dengan memilih Menu|Input Data. Sistem
menampilkan halaman input seperti gambar 4.1. Kemudian klik tombol
BROWSE untuk memilih file .xls.
65
Gambar 4.1 Halaman Input Data
Jika data berhasil diinputkan ke sistem, maka tabel data mahasiswa akan
berisi record data mahasiswa yang terdiri dari 7 atribut, sedangkan tabel
atribut akan berisi nama-nama atribut saja. Tampilan halaman input data
setelah data mahasiswa berhasil diinputkan ke sistem seperti gambar 4.2.
66
Gambar 4.2 Proses Input data berhasil
Setelah proses input data berhasil, fungsi sistem untuk lihat detail atribut
bisa dilakukan. Lihat detail atribut dilakukan dengan aksi klik di salah satu
cell atribut yang dipilih pada tabel atribut. Detail atribut tersebut muncul pada
JTextArea yang berada di sebelah kanan tabel atribut. Detail atribut yang
muncul berupa nilai kejadian dari atribut tersebut dan jumlah nilai kejadian
untuk masing-masing nilai kejadian.
67
Gambar 4.3 Lihat Detail Atribut
Use case input fold, hitung posterior, dan simpan file hasil klasifikasi
diimplementasikan pada halaman proses sistem seperti pada gambar 4.4
Gambar 4.4 Halaman Proses
68
Pada halaman ini user menginputkan jumlah fold terlebih dahulu sebelum
menekan tombol PROSES. Tombol Proses merupakan fungsi sistem untuk
hitung posterior. Setelah menekan tombol PROSES, maka muncullah hasil
klasifikasi dibagian JTextArea. Hasil klasifikasi ini bisa disimpan dalam
bentuk file dengan menekan tombol SIMPAN.
C. Implementasi Diagram Kelas
Ada 4 kelas yang digunakan dalam pembuatan aplikasi ini, yaitu kelas
Halaman_Awal.java sebagai kelas antar muka, kelas Data_Mahasiswa
sebagai kelas entitas/model, kelas Kontrol.java sebagai kelas kontrol, dan
kelas BarChart.java sebagai kelas tambahan untuk membuat grafik. Kelas
BarChart.java didapatkan dari sumber internet dengan alamat
http://www.java2s.com/Code/Java/2D-Graphics-GUI/Chart.htm.
Metode-metode yang berperan penting terhadap jalannya sistem terdapat
di dua kelas yaitu kelas Kontrol.java dan Halaman_Awal.java. Ada dua
metode yang merupakan inti dari sistem yaitu metode InputFile(File file) dan
Hitung(int jumData, int indeks, String numericTextField_fold).
1. a. Nama kelas: Halaman_Awal.java
b. Nama metode : TampilPanel(int kondisiPanel)
c. Fungsi metode:
Metode ini berfungsi untuk mengatur kemunculan panel.
Parameter inputan bertipe int. Sebagai contoh jika memanggil
69
methode TampilPanel(1), maka panel yang muncul adalah panel
Halaman_Depan.
d. Algoritma metode:
1. Semua variabel di setVisible(false).
2. Cek kondisi jika kondisiPanel sama dengan 1 maka panel
Halaman_Depan di setVisible(true). Jika kondisiPanel sama
dengan 2 maka panel Halaman_Input_Data yang di
setVisible(true). Jika kondisiPanel sama dengan 3 maka
panel Halaman_Bantuan di setVisible(true). Jika
kondisiPanel sama dengan 4 maka panel Halaman_Tentang
yang di setVisible(true). Jika kondisiPanel sama dengan 5
maka panel Halaman_Proses di setVisible(true). Jika
kondisiPanel sama dengan 6 maka panel
Halaman_Panel_lanjutan yang di setVisible(true).
e. Listing
Halaman_Depan.setVisible(false);
Halaman_Input_Data.setVisible(false);
Halaman_Bantuan.setVisible(false);
Halaman_Tentang.setVisible(false);
jButton_browse.setVisible(false);
JButton_Proses.setVisible(false);
numericTextField_fold.setVisible(false);
jTextArea_hasil_test.setVisible(false);
jButton_Save.setVisible(false);
jButton_kembali.setVisible(false);
jButton_lanjut.setVisible(false);
Halaman_Panel_lanjutan.setVisible(false);
if (kondisiPanel == 1) {
Halaman_Depan.setVisible(true);
} else if (kondisiPanel == 2) {
Halaman_Input_Data.setVisible(true);
70
jButton_browse.setVisible(true);
} else if (kondisiPanel == 3) {
Halaman_Bantuan.setVisible(true);
} else if (kondisiPanel == 4) {
Halaman_Tentang.setVisible(true);
} else if (kondisiPanel == 5) {
Halaman_Proses.setVisible(true);
JButton_Proses.setVisible(true);
numericTextField_fold.setVisible(true);
jTextArea_hasil_test.setVisible(true);
jButton_Save.setVisible(true);
jButton_kembali.setVisible(true);
jButton_lanjut.setVisible(true);
} else if (kondisiPanel == 6) {
Halaman_Panel_lanjutan.setVisible(true);
} else {
Keluar.setVisible(true);
}
2. a. Nama kelas: Halaman_Awal.java
b. Nama metode : InputFile(File file)
c. Fungsi metode:
Metode ini berfungsi untuk input data yang bertipe file dengan
ekstensi file adalah xls. Methode ini memerlukan pustaka jxl.jar.
d. Algoritma metode:
1. Deklarasikan variabel-variabel yang dibutuhkan seperti,
workbook, sheet, banyakBaris, banyakKolom, data,
Gelombang, Pilihan3, Jur_SMA, tes_PV, tes_PM, tes_HR,
IPK.
2. Buat perulangan bertingkat untuk mengambil data dari cell,
yang akan dimasukkan ke list atribut kelas entitas (kelas
Data_Mahasiswa).
71
3. Buat perulangan untuk mengambil data dari objek yang
dibuat dari kelas entitas Data_Mahasiswa.
4. Tampilkan data ke tabel.
e. Listing
Data_Mahasiswa dataMhs = new Data_Mahasiswa();
String Gelombang = "";
String Pilihan3 = "";
String Jur_SMA = "";
String tes_PV = "";
String tes_PM = "";
String tes_HR = "";
String IPK = "";
workbook = Workbook.getWorkbook(File);
sheet = workbook.getSheet(0);
banyakKolom = sheet.getColumns();
banyakBaris = sheet.getRows() - 1;
/* deklarasi header tabel */
data = new String[banyakBaris][banyakKolom];
for (int i = 0; i <= banyakBaris; i++) {
for (int j = 0; j < banyakKolom; j++) {
Cell cell = sheet.getCell(j, i);
if (j == 0) {
// mengambil data dari cell,
//kemudian dimasukkan ke list Gelombang
Gelombang = cell.getContents();
dataMhs.setGelombang(Gelombang);
} else if (j == 1) {
Pilihan_3 = cell.getContents();
dataMhs.setPilihan_3(Pilihan_3);
} else if (j == 2) {
Jur_SMA = cell.getContents();
dataMhs.setJur_SMA(Jur_SMA);
} else if (j == 3) {
tes_PV = cell.getContents();
dataMhs.setTes_PV(tes_PV);
} else if (j == 4) {
tes_PM = cell.getContents();
dataMhs.setTes_PM(tes_PM);
} else if (j == 5) {
tes_HR = cell.getContents();
dataMhs.setTes_HR(tes_HR);
} else if (j == 6) {
IPK = cell.getContents();
72
dataMhs.setIPK(IPK);
}
}
}
/*ambil data dari objek dataMhs*/
for (int z = 0; z < banyakBaris; z++) {
data[z][0] = dataMhs.getGelombang().get(z).toString();
data[z][1] = dataMhs.getPil_3().get(z).toString();
data[z][2] = dataMhs.getJur_SMA().get(z).toString();
data[z][3] = dataMhs.getTes_PV().get(z).toString();
data[z][4] = dataMhs.getTes_PM().get(z).toString();
data[z][5] = dataMhs.getTes_HR().get(z).toString();
data[z][6] = dataMhs.getIPK().get(z).toString(); }
/* tampilkan data ke tabel*/
DefaultTableModel tabelData = new DefaultTableModel(data,
header);
jTable_display.setModel(tabelData);
}
}
3. a. Nama kelas: Halaman_Awal.java
b. Nama metode : Save File(File file, JTextArea jta)
c. Fungsi metode:
Metode ini berfungsi untuk menyimpan hasil klasifikasi yang
ditampilkankan dari JTextArea. Hasil klasifikasi tersebut disimpan
dalam bentuk file dengan ekstensi tertentu sesuai dengan ekstensi
yang diinputkan user ketika menyimpan hasil klasifikasi.
d. Algoritma metode:
1. Buat objek dari kelas FileOutputStream(File).
2. Ambil teks dari JTextArea.
3. Ambil ukuran teks dan filenya.
4. Buat buffer
73
5. Tulis data ke file Stream.
6. Tutup file output stream.
e. Listing
FileOutputStream fos = new FileOutputStream(File);
try {
String StrWrite = jta.getText();
int fsize = StrWrite.length();
byte bufOut[] = StrWrite.getBytes();
fos.write(bufOut, 0, fsize);
fos.close();
} catch (IOException ie) {
ie.printStackTrace();
return;
}
4. a. Nama kelas : Halaman_Awal.java
b. Nama metode : TampilGrafik()
c. Fungsi metode:
Metode ini berfungsi untuk menampilkan grafik detail atribut.
Grafik yang ditampilkan berupa grafik batang. Data yang
direpresentasikan pada grafik berupa nama atribut, nilai kejadian
atribut dan jumlah masing-masing nilai kejadian atribut. Methode
ini memerlukan pustaka jfreechart-1.0.9.jar
d. Algoritma metode:
1. Buat objek dari kelas JFrame().
2. Tentukan ukuran dan lokasi frame.
3. Deklarasikan variabel-variabel yang digunakan seperti
values, names.
4. Buat perulangan untuk mendapatkan data yang akan
74
direpresentasikan dengan grafik.
5. Tambahkan grafik (BarChart) ke frame.
6. Frame di setVisible(true).
e. Listing
frameGrafik.dispose();
frameGrafik = new JFrame();
frameGrafik.setSize(395, 215);
frameGrafik.setLocation(750, 432);
int[] values = new int[hasil.size()];
String[] names = new String[hasil.size()];
int xx = 0;
while (hasil.size() > xx) {
values[xx] = (Integer) jumlah.get(xx);
names[xx] = (String) hasil.get(xx);
xx++;
}
frameGrafik.add(new BarChart(values, names,
namaAtribut));
frameGrafik.setVisible(true);
5. a. Nama kelas : Halaman_Awal.java
b. Nama metode : TampilDetailAtribut (JTextArea JTe)
c. Fungsi metode:
Metode ini berfungsi untuk menampilkan detail atribut pada
JTextArea. Data yang ditampilkan berupa nama atribut, nilai
kejadian atribut dan jumlah masing-masing nilai kejadian atribut.
d. Algoritma metode:
1. Deklarasikan variabel-variabel yang digunakan seperti
namaAtribut, Atribut, temp, hasil, jumlah, i, j, x.
2. Buat perulangan untuk mendapatkan nama atribut dari tabel
tabel_tampil_nama_atribut, yang ditampung dalam list
75
Atribut.
3. Jika Atribut mengandung namaAtribut maka
a) Buat perulangan untuk mendapatkan semua nilai
kejadian dari tabel data mahasiswa sesuai dengan
cell atribut yang dipilih.
b) Buat perulangan untuk mengambil nilai yang unik
dari semua nilai kejadian tersebut.
c) Buat perulangan untuk mendapatkan jumlah nilai
kejadian.
d) Nilai kejadian dan jumlah nilai kejadian tersebut
disimpan dalam suatu variabel yaitu detailAtribut.
e) Tampilkan detailAtribut ke JTextArea.
e. Listing
namaAtribut =
(String)tabel_tampil_nama_atribut.
getValueAt(tabel_tampil_nama_atribut.getSelectedRow(), 0);
List headerTabel = new ArrayList();
List temp = new ArrayList();
int i = 0, j = 0, x = 0;
jumlah = new ArrayList();
hasil = new ArrayList();
//mengambil nama atribut
while (banyakKolom > i) {
headerTabel.add(tabel_tampil_nama_atribut.
getValueAt(i, 0));
i++;
}
i = 0;
j = 0;
if (headerTabel.contains(namaAtribut)) {
//mengambil semua nilai kejadian dari tabel data mahasisawa
76
sesuai //dengan kolom atribut yang dipilih
while (banyakBaris > i) {
temp.add(jTable_display.getValueAt(j,headerTabel.
indexOf(namaAtribut)));
j++;
i++;
}
//mengambil nilai unik dari semua nilai kejadian atribut
i = 0;
j = 0;
while (temp.size() > i) {
if (i == 0) {
//mengambil data pertama disimpan ke variabel'hasil'
hasil.add(temp.get(i));
} else {
j = 0;
while (hasil.size() > j) {
if (hasil.contains(temp.get(i))) {
//tidak melakukan apa-apa
} else {
//mengambil data baru (yang berbeda dengan data lama) ditambahkan
//pada variabel 'hasil'
hasil.add(temp.get(i));
}
j++;
}
}
i++;
}
//mendapatkan jumlah nilai kejadian
i = 0;
int x = 0;
while (hasil.size() > i) {
j = 0;
x = 0;
while (temp.size() > j) {
if (hasil.get(i).equals(temp.get(j))) {
x++;
}
j++;
}
jumlah.add(x);
i++;
}
//mengambil nilai kejadian dari atribut yang dipilih
//dan jumlah nilai kejadiannya
i = 0;
77
String dataTampil = "";
while (hasil.size() > i) {
dataTampil += hasil.get(i) + "\t\t" + jumlah.get(i) + "\n";
i++;
}
JTe.setText("Detail Atribut " + namaAtribut +
"\n\nNilai Kejadian\t\tJumlah\n" + dataTampil);
}
6. a. Nama kelas : Halaman_Awal.java
b. Nama metode:
LihatDetailDataKlasifikasi(JTextArea Jta, JTable Jtb, JLabel Jlab)
c. Fungsi metode:
Metode ini berfungsi untuk menampilkan detail data dari data yang
sudah diklasifikasi. Detail data tersebut berupa gelombang,
pilihan3, jurusan SMA, tes penalaran verbal, tes penalaran
mekanik, tes hubungan ruang, dan IPK semester 4.
d. Algoritma metode:
1. Deklarasikan variabel-variabel yang digunakan seperti a, i,
temp, detailData.
2. Buat perulangan untuk mendapatkan string yang diblok
atau di klik 2 kali pada JTextArea.
3. Ambil nilai atau data dari tabel jTable_display sesuai
dengan string yang diblok atau di klik 2 kali tersebut.
4. Simpan dalam variabel detailData.
5. Tampilkan pada Jlabel.
78
e. Listing
int a = 0, i = 0;
String temp = "";
String detailData = "";
while (Jta.getHighlighter().getHighlights().length > a) {
try {
//mendapatkan string yang diblok atau di klik 2 kali
temp = Jta.getDocument().
getText(Jta.getHighlighter().getHighlights()[a].getStartOffset(),
Jta.getHighlighter().getHighlights()[a].getEndOffset() -
Jta.getHighlighter().getHighlights()[a].getStartOffset());
} catch (BadLocationException ex) {
Logger.getLogger(Halaman_Awal.class.getName()).log(Level.SEVERE,
null, ex);
}
try {
while (Jtb.getColumnCount() > i) {
detailData +=
Jtb.getValueAt(Integer.parseInt(temp)- 1, i) + " ";
i++;
}
Jlab.setText(detailData);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,
"Blok atau Klik 2X pada kolom no untuk melihat detail data ");
frameGrafik.dispose();
}
a++;
}
7. a. Nama kelas : Kontrol.java
b. Nama metode:
Hitung(int jumData, int indeks, String numericTextField_fold)
c. Fungsi metode:
Metode ini berfungsi untuk mengklasifikasikan data dengan
79
algoritma Naïve Bayesian. Pengklasifikasian dilakukan dengan
menghitung probabalitas likelihood setiap atribut untuk masing-
masing label kelas, menghitung probabilitas prior untuk masing-
masing label kelas, dan menghitung probabailitas posterior untuk
masing-masing label kelas.
d. Algoritma metode:
1. Deklarasikan variabel-variabel yang digunakan.
2. Jumlah data dibagi dengan nilai fold (nilai fold didapat dari
inputan user).
3. Lakukan partisi data sebanyak hasil bagi jumlah data data
dengan nilai fold.
4. Buat iterasi untuk memproses data tersebut.Pada setiap
iterasi lakukan hal berikut :
a) Dapatkan nilai awal dan nilai akhir dari setiap
partisi.
b) Selama x1 lebih kecil dari x2, masukan x1 dalam list
tes.
c) Buat perulangan pada seluruh data untuk
memasukkan data ke dalam list tes dan list pelatihan.
d) Buat perulangan pada list pelatihan untuk
mendapatkan jumlah nilai kejadian untuk setiap
label kelas.
e) Setiap jumlah nilai kejadian kelas disimpan dalam
80
satu variabel,
f) Tambahkan ke dalam list.
g) Buat perulangan pada list tes untuk melakukan hal
berikut :
1) Buat perulangan pada setiap data atribut
2) Cek apakah atribut tersebut bernilai
kategorikal atau kontinyus
3) Jika atribut kategorikal, maka program
memanggil metode lain yaitu kategorikal().
Jika bukan, maka program memanggil
metode kontinyus().
4) Buat perulangan untuk mendapatkan
probabilitas prior untuk setiap record list
uji dan ditampung pada list.
5) Buat perulangan pada list yang menampung
data kategorikal untuk mendapatkan
probabilitas likelihood kategorikal untuk
setiap label kelas. Jika probabilitas
kategorikal sama dengan nol, maka lakukan
laplace estimator. Kemudian kalikan semua
probablitas likelihood kategorikal.
6) Buat perulangan pada list yang menampung
data kontinyus untuk mendapatkan
81
perkalian semua likelihood kontinyus untuk
setiap label kelas.
7) Tambahkan hasil perkalian semua likelihood
kategorikal dan likelihood kontinyus ke
dalam list posterior.
8) Dapatkan persentasi hasil akhir dari nilai
posterior untuk setiap label kelas.
9) Dapatkan nilai persentasi hasil akhir yang
terbesar.
e. Listing
List temp = new ArrayList();
List temp1 = new ArrayList();
String resultlanjut = "";
String resultakhir = "";
int g = 1;
//membagi jumlah data dengan nilai fold yang diinputkan user
int hasilBagiFold = 0;
if (numericTextField_fold.equalsIgnoreCase("")) {
} else {
hasilBagiFold =
((jumData) / Integer.valueOf(numericTextField_fold));
}
//mempartisi data
//contoh jika data ada 100; fold inputan user 10,
int hasilBagiFold2 = hasilBagiFold;
int i = 1;
int k = 1;
int inFold = Integer.parseInt(numericTextField_fold);
while (inFold >= i) {
if (i == inFold) {
int sisa = (jTable_display.getRowCount()) - hasilBagiFold;
//sisa pembagian fold dimasukan ke partisi terakhir
hasilBagiFold = hasilBagiFold + sisa;
}
temp.add(k + "-" + hasilBagiFold);
k += hasilBagiFold2;
82
i++;
hasilBagiFold = hasilBagiFold + hasilBagiFold2;
}
i = 0;
int x1 = 1, x2 = 0;
int iterasi = 1;
String tampung;
String[] tampung2 = new String[0];
int validasi = 0;
int errvalid = 0;
//M U L A I I T E R A S I
while (i < temp.size()) {
resultakhir += "\nFold " + iterasi + "\n";
resultlanjut += "\nFold " + iterasi + "\n";
iterasi++;
tampung = (String) temp.get(i);
tampung2 = tampung.split("-");
int j = 1;
// mendapatkan nilai awal(x1) dan nilai akhir(x2)
//dari masing-masing partisi data/fold
while (tampung2.length > j) {
if (j == 0) {
x1 = Integer.parseInt(tampung2[j]);
} else {
x2 = Integer.parseInt(tampung2[j]);
}
j++;
}
List Pelatihan = new ArrayList();
List Test = new ArrayList();
int h = 1;
//mendapatkan data tes
//rentang nilai antara x1 dan x2 ditambahkan dalam list Test
while (x1 <= x2) {
Test.add(x1);
x1++;
}
//menjabarkan data Test dan data pelatihan,
//masing-masing dimasukkan dalam List Test dan List Pelatihan
while ((jTable_display.getRowCount()) >= h) {
if ((Test.contains(h))) {
} else {
Pelatihan.add(h);
}
h++;
}
83
int c1 = 0, c2 = 0, c3 = 0, c4 = 0;
int o = 0;
//loop untuk menghitung "Jumlah nilai kejadian" pada atribut kelas
//di data pelatihan
//temp1 : [sangat memuaskan, memuaskan, kurang, dengan pujian]
// Jumlah nilai kejadian disimpan pada variabel c1, c2, c3, c4
while (Pelatihan.size() > o) {
String kategori = String.valueOf(getJTable_display().
getValueAt(Integer.parseInt(Pelatihan.get(o).toString()) - 1,
indeks));
if (temp1.get(0).equals(kategori)) {
c1++;
} else if (temp1.get(1).equals(kategori)) {
c2++;
} else if (temp1.get(2).equals(kategori)) {
c3++;
} else {
c4++;
}
o++;
}
//jumlah nilai kejadian pada data pelatihan
//yang disimpan pada variabel c1, c2, c3, c4 tersebut
//di tampung di list Jum_nilai_Kej_Label_Kelas
List Jum_nilai_Kej_Label_Kelas = new ArrayList();
Jum_nilai_Kej_Label_Kelas.add(c1);
Jum_nilai_Kej_Label_Kelas.add(c2);
Jum_nilai_Kej_Label_Kelas.add(c3);
Jum_nilai_Kej_Label_Kelas.add(c4);
List posterior = new ArrayList();
o = 0;
//loop untuk setiap data testing (per row)
while (Test.size() > o) {
int kol = 0;
List likelihood_kategorikal = new ArrayList();
List likelihood_kontinyus = new ArrayList();
//looping setiap kolom/atribut pada data testing untuk dicocokkan
//dengan data pelatihan(per colomn/atribut)
while (getBanyakKolom() - 1 > kol) {
String datatemp = getJTable_display().
getValueAt(Integer.parseInt(Test.get(o).
toString()) - 1, kol).toString();
//mengecek data kategorikal atau data kontinyus?
if (cekkolomkatagorikal(kol, Integer.
parseInt(Test.get(o).toString()))) {
//jika kategorikal
84
likelihood_kategorikal = kategorikal(Pelatihan, kol, temp1,
datatemp, indeks);
//jika kontinyus maka :
} else {
likelihood_kontinyus = kontinyus(Pelatihan, indeks, kol, temp1,
Jum_nilai_Kej_Label_Kelas, datatemp);
}
kol++;
}
//mendapatkan probabilitas prior untuk setiap record,
// di tampung di list prior
List prior = new ArrayList();
int priorsize = 0;
while (Jum_nilai_Kej_Label_Kelas.size() > priorsize) {
double hasilhit = Double.
parseDouble(Jum_nilai_Kej_Label_Kelas.get(priorsize).
toString()) / Pelatihan.size();
prior.add(hasilhit);
priorsize++;
}
int sizesem = 0;
double sm = Double.parseDouble(prior.get(0).toString());
double m = Double.parseDouble(prior.get(1).toString());
double ku = Double.parseDouble(prior.get(2).toString());
double dp = Double.parseDouble(prior.get(3).toString());
while (likelihood_kategorikal.size() > sizesem) {
List tampsem = (List) likelihood_kategorikal.get(sizesem);
//likelihoot kategorikal
double hitungsm = Double.parseDouble(tampsem.get(0).toString()) /
Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(0).toString());
//laplace estimator
if (hitungsm == 0) {
hitungsm = (Double.parseDouble(tampsem.get(0).toString()) + 1) /
(Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(0).toString() +
temp1.size()));
}
//likelihood kategorikal langsung dikalikan
sm *= hitungsm;
double hitungm = Double.parseDouble(tampsem.get(1).toString()) /
Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(1).toString());
if (hitungm == 0) {
hitungm = (Double.parseDouble(tampsem.get(1).toString()) + 1) /
(Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(1).toString() +
temp1.size()));
}
m *= hitungm;
85
double hitungku = Double.parseDouble(tampsem.get(2).toString()) /
Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(2).toString());
if (hitungku == 0) {
hitungku = (Double.parseDouble(tampsem.get(2).toString()) + 1) /
(Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(2).toString() +
temp1.size()));
}
ku *= hitungku;
double hitungdp = Double.parseDouble(tampsem.get(3).toString()) /
Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(3).toString());
if (hitungdp == 0) {
hitungdp = (Double.parseDouble(tampsem.get(3).toString()) + 1) /
(Double.parseDouble(Jum_nilai_Kej_Label_Kelas.get(3).toString() +
temp1.size()));
}
dp *= hitungdp;
sizesem++;
}
sizesem = 0;
//hasil perkalian semua likelihoot yang kontinyus
while (likelihood_kontinyus.size() > sizesem) {
List tampsem = (List) likelihood_kontinyus.get(sizesem);
sm *= Double.parseDouble(tampsem.get(0).toString());
m *= Double.parseDouble(tampsem.get(1).toString());
ku *= Double.parseDouble(tampsem.get(2).toString());
dp *= Double.parseDouble(tampsem.get(3).toString());
sizesem++;
}
posterior.add(likelihood_kategorikal);
posterior.add(likelihood_kontinyus);
//cari persentasi hasil akhir
double keseluruhan = sm + m + ku + dp;
double persenSM = ((sm / keseluruhan) * 100);
double persenM = ((m / keseluruhan) * 100);
double persenKU = ((ku / keseluruhan) * 100);
double persenDP = ((dp / keseluruhan) * 100);
String feature = temp1.get(0).toString();
double persentaseterpilih = persenSM;
if (persentaseterpilih < persenM) {
persentaseterpilih = persenM;
feature = temp1.get(1).toString();
}
if (persentaseterpilih < persenKU) {
persentaseterpilih = persenKU;
86
feature = temp1.get(2).toString();
}
if (persentaseterpilih < persenDP) {
persentaseterpilih = persenDP;
feature = temp1.get(3).toString();
}
}
i++;
}
setLanjutan(resultlanjut);
return resultakhir;
8. a. Nama kelas : Kontrol.java
b. Nama metode :
kontinyus(List Pelatihan, int indeks, int kol, List temp1, List prior,
String datatemp)
c. Fungsi metode:
Metode ini berfungsi untuk menghitung likelihood atribut
kontinyus. Perhitungan likelihood atribut kontinyus dilakukan
dengan menggunakan distribusi Gausian. Methode ini
mengembalikan nilai bertipe list
d. Algoritma metode:
1. Deklarasikan variabel-variabel yang digunakan.
2. Buat perulangan pada list data pelatihan untuk
mendapatkan jumlah dari data untuk setiap setiap label
kelas.
3. Dapatkan nilai rata-rata untuk setiap label kelasnya.
4. Buat perulangan pada list pelatihan untuk mendapatkan
87
jumlah dari kuadrat nilai rata-rata untuk setiap label kelas.
5. Untuk setiap label kelas, hasil nomor 4 dibagi dengan
jumlah label kelas – 1.
6. Cari standar deviasi untuk masing-masing label kelas
dengan mengakarkuadratkan hasil pembagian pada nomor
5.
7. Lakukan perhitungan Gausian untuk setiap label kelas.
8. Hasil nomor 7 di tambahkan ke suatu list.
9. Kembalikan nilai list.
e. Listing
List likelihood_kontinyus = new ArrayList();
int vv = 0;
double rataSM = 0;
double rataM = 0;
double rataK = 0;
double rataDP = 0;
//loop untuk mencari data kontinyus pada list Pelatihan
//untuk setiap label kelas
//data kontinyus langsung dijumlahkan
while (Pelatihan.size() > vv) {
String kategori =
String.valueOf(getJTable_display().getValueAt(Integer.parseInt(Pel
atihan.get(vv).toString()) - 1, indeks));
double tesnonkategori =
Double.parseDouble(getJTable_display().getValueAt(Integer.parseInt
(Pelatihan.get(vv).toString())- 1, kol).toString());
if (temp1.get(0).equals(kategori)) {
rataSM = rataSM + tesnonkategori;
} else if (temp1.get(1).equals(kategori)) {
rataM = rataM + tesnonkategori;
} else if (temp1.get(2).equals(kategori)) {
rataK = rataK + tesnonkategori;
} else {
rataDP = rataDP + tesnonkategori;
}
vv++;
88
}
//mendapatkan rata-rata
rataSM = rataSM / Double.parseDouble(prior.get(0).toString());
rataM = rataM / Double.parseDouble(prior.get(1).toString());
rataK = rataK / Double.parseDouble(prior.get(2).toString());
rataDP = rataDP / Double.parseDouble(prior.get(3).toString());
vv = 0;
double s21 = 0;
double s22 = 0;
double s23 = 0;
double s24 = 0;
//mencari jumlah (nilai-rata)2
while (Pelatihan.size() > vv) {
String kategori =
String.valueOf(getJTable_display().getValueAt(Integer.parseInt(Pel
atihan.get(vv).toString())-1, indeks));
double tesnonkategori =
Double.parseDouble(getJTable_display().getValueAt(Integer.parseInt
(Pelatihan.get(vv).toString())- 1, kol).toString());
if (temp1.get(0).equals(kategori)) {
s21 = s21 + (Math.pow((tesnonkategori - rataSM), 2));
}
else if (temp1.get(1).equals(kategori)) {
s22 = s22 + (Math.pow((tesnonkategori - rataM), 2));
}
else if (temp1.get(2).equals(kategori)) {
s23 = s23 + (Math.pow((tesnonkategori - rataK), 2));
}
else {
s24 = s24 + (Math.pow((tesnonkategori - rataDP), 2));
}
vv++;
}
double ss21 =
s21 / (Double.parseDouble(prior.get(0).toString()) - 1);
double ss22 =
s22 / (Double.parseDouble(prior.get(1).toString()) - 1);
double ss23 =
s23 / (Double.parseDouble(prior.get(2).toString()) - 1);
double ss24 =
s24 / (Double.parseDouble(prior.get(3).toString()) - 1);
//mencari s
89
s21 = Math.sqrt(ss21);
s22 = Math.sqrt(ss22);
s23 = Math.sqrt(ss23);
s24 = Math.sqrt(ss24);
// mencari likelihood setiap nilai kejadian pada label - gausian
double likelihoodSM = (1 / ((Math.sqrt(2 * Math.PI)) * s21)) *
Math.exp(-((Math.pow((Double.parseDouble(datatemp) - rataSM), 2))
/ (2 * ss21)));
double likelihoodM = (1 / ((Math.sqrt(2 * Math.PI)) * s22)) *
Math.exp(-((Math.pow((Double.parseDouble(datatemp) - rataM), 2))
/ (2 * ss22)));
double likelihoodK = (1 / ((Math.sqrt(2 * Math.PI)) * s23)) *
Math.exp(-((Math.pow((Double.parseDouble(datatemp) - rataK), 2))
/ (2 * ss23)));
double likelihoodDP = (1 / ((Math.sqrt(2 * Math.PI)) * s24)) *
Math.exp(-((Math.pow((Double.parseDouble(datatemp) - rataDP), 2))
/ (2 * ss24)));
List datatesttemp1 = new ArrayList();
datatesttemp1.add(likelihoodSM);
datatesttemp1.add(likelihoodM);
datatesttemp1.add(likelihoodK);
datatesttemp1.add(likelihoodDP);
likelihood_kontinyus.add(datatesttemp1);
return likelihood_kontinyus;
9. a. Nama kelas : Kontrol.java
b. Nama metode :
kategorikal(List Pelatihan, int kol, List temp1, String datatemp, int
indeks)
c. Fungsi metode:
Metode ini berfungsi untuk menghitung likelihood atribut
kategorikal. Methode ini mengembalikan nilai bertipe list.
d. Algoritma metode:
90
1. Deklarasikan variabel-variabel yang digunakan.
2. Buat perulangan pada list data pelatihan untuk
mendapatkan jumlah data kategorikal yang sama dengan
data kategorikal pada list test untuk setiap setiap label
kelas.
3. Untuk setiap label kelas, jumlah nomor 2 disimpan pada
suatu variabel
4. Tambahkan hasil nomor 3 ke suatu list.
5. Kembalikan nilai list.
e. Listing
List likelihood_kategorikal = new ArrayList();
int c1 = 0;
int c2 = 0;
int c3 = 0;
int c4 = 0;
int vv = 0;
//looping data pelatihan untuk dicocokkan dengan deta testing
while (Pelatihan.size() > vv) {
//mengecek data pelatihan dengan data uji yang ditunjuk
//diatas(datatemp)
if ((getJTable_display().
getValueAt(Integer.parseInt(Pelatihan.get(vv).toString()) - 1,
kol).
toString()).equals(datatemp)) {
//mengambil nilai kejadian pada label
//dan menyimpannya pada variable kategori
String kategori = String.valueOf(getJTable_display().
getValueAt(Integer.parseInt(Pelatihan.get(vv).
toString()) - 1, indeks));
//mengecek dan mengincrementkan nilai kejadian
if (temp1.get(0).equals(kategori)) {
c1++;
} else if (temp1.get(1).equals(kategori)) {
c2++;
} else if (temp1.get(2).equals(kategori)) {
c3++;
91
} else {
c4++;
}
}
vv++;
}
List datatesttemp = new ArrayList();
double tem1 = c1;
double tem2 = c2;
double tem3 = c3;
double tem4 = c4;
datatesttemp.add(tem1);
datatesttemp.add(tem2);
datatesttemp.add(tem3);
datatesttemp.add(tem4);
likelihood_kategorikal.add(datatesttemp);
return likelihood_kategorikal;
10. a. Nama kelas : Kontrol.java
b. Nama metode: cekkolomkatagorikal(int a, int b)
c. Fungsi metode:
Metode ini berfungsi untuk mengecek apakah data atribut bertipe
data kategorikal atau tidak. Methode ini mengembalikan nilai
bertipe boolean.
d. Algoritma metode:
1. Deklarasikan variabel yang digunakan yaitu cek yang
dideklarasikan false.
2. Ambil nilai cell.
3. Cek jika tipe cell bertipe label, maka true. Jika tipe cell
bertipe number, maka false.
4. Kembalikan nilai cek.
92
e. Listing
boolean cek = false;
Cell cell = getSheet().getCell(a, b);
if (cell.getType() == CellType.LABEL) {
//atribut kategorikal
cek = true;
} else if (cell.getType() == CellType.NUMBER) {
//atribut kontinyus
cek = false;
}
return cek;
11. a. Nama kelas : Kontrol.java
b. Nama metode: Ambil_Nilai_Kej(List temp1, String value)
c. Fungsi metode:
Metode ini berfungsi untuk mendapatkan nilai kejadian dari
atribut. metode ini mengembalikan nilai bertipe String.
d. Algoritma metode:
1. Deklarasikan variabel yang digunakan yaitu a yang
dideklarasikan sebagai string kosong.
2. Jika temp1 mengandung value maka tidak melakukan apa-
apa. Jika temp1 tidak mengandung value, maka a diset
sama dengan value.
3. Kembalikan nilai a.
e. Listing
String a = "";
if (temp1.contains(value)) {
} else {
a = value; }
return a;
93
BAB V
ANALISIS HASIL
A. Analisis Hasil Program
Untuk mengevaluasi model dari pengklasifikasi naïve bayesian yang
sudah diimplentasikan, penulis memperhatikan dua hal yaitu :
• Bagaimana mengevaluasi kinerja dari pengklasifikasi naïve bayesian?
• Bagaimana mendapatkan pengukuran yang dapat dipercaya?
Confusion matrix merupakan alat yang digunakan untuk menganalisis
sebagus apa pengklasifikasi naïve bayesian dapat mengklasifikasikan record
ke dalam kelas-kelas tertentu. Confusion matrix mengandung informasi
tentang kelas/label yang sebenarnya dan kelas/label hasil klasifikasi. Kinerja
sistem biasanya dievaluasi dengan menggunakan data pada matrik.
Untuk mendapatkan pengukuran yang dapat dipercaya, penulis
menggunakan metode cross-validation. Dalam k-fold cross-validation, data
akan dipartisi secara acak ke dalam k partisi, D1, D2, …Dk, masing-masing D
mempunyai jumlah yang sama. Pada iterasi ke – i partisi Di digunakan
sebagai data uji, sedangkan sisa partisi digunakan sebagai data pelatihan.
Untuk analisis hasil klasifikasi ini, pendekatan yang dilakukan
menggunakan tenfold cross-validation. Jumlah data yang digunakan adalah
431 data. Pendekatan tenfold cross-validation akan membagi jumlah data
menjadi 10 bagian/partisi dengan jumlah masing-masing partisi adalah 43
data, kecuali partisi data ke 10 yang berjumlah 44 (431/10 = 43, sisa 1. Sisa
94
tersebut dimasukkan ke fold/partisi terakhir). Berikut ini merupakan
pembagian data ke dalam fold-fold :
• Fold 1: data ke 1 – 43
• Fold 2 : data ke 44 – 86
• Fold 3 : data ke 87 – 129
• Fold 4 : data ke 130 – 172
• Fold 5 : data ke 173 – 215
• Fold 6 : data ke 216 – 258
• Fold 7 : data ke 259 – 301
• Fold 8 : data ke 302 – 344
• Fold 9 : data ke 345 – 387
• Fold 10 : data ke 388 – 431
Berikut ini merupakan analisis hasil program dengan menggunakan tenfold
cross-validation.
a) Fold 1
Pada iterasi 1, fold 1 menjadi data uji yaitu data 1 - 43, sedangkan
data pelatihan adalah data 44 - 431.
95
Tabel 5.1 Tabel Confusion Matrix untuk Pengujian pada Fold 1
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 4 4 0 8
Memuaskan 0 6 17 0 23
Sangat
Memuaskan 0 0 10 0 10
Dengan
Pujian 0 0 2 0 2
Total 0 10 33 0 43
Berdasarkan confusion matrix untuk data uji pada fold 1, dapat
dihitung :
a. Jumlah total record adalah 43.
b. Record yang bisa diklasifikasikan dengan benar berjumlah
19, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
24, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
b) Fold 2
Pada iterasi 2, fold 2 menjadi data uji yaitu data 44 – 86,
sedangkan data pelatihan adalah data 1 – 43 dan 87 – 431.
96
Tabel 5.2 Tabel Confusion Matrix untuk Pengujian pada Fold 2
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 0 3 0 3
Memuaskan 0 8 3 0 11
Sangat
Memuaskan 0 14 10 0 24
Dengan
Pujian 0 1 4 0 5
Total 0 23 20 0 43
Berdasarkan confusion matrix untuk data uji pada fold 2, dapat
dihitung :
a. Jumlah total record adalah 43.
d. Record yang bisa diklasifikasikan dengan benar berjumlah
18, didapat dari jumlah nilai diagonal tabel.
b. Record yang gagal diklasifikasikan dengan benar berjumlah
25, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
c) Fold 3
Pada iterasi 3, fold 3 menjadi data uji yaitu data 87 – 129,
sedangkan data pelatihan adalah data 1 – 86 dan 130 – 431.
97
Tabel 5.3 Tabel Confusion Matrix untuk Pengujian pada Fold 3
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 1 7 0 8
Memuaskan 0 1 13 0 14
Sangat
Memuaskan 0 3 15 0 18
Dengan
Pujian 0 1 2 0 3
Total 0 6 37 0
Berdasarkan confusion matrix untuk data uji pada fold 3, dapat
dihitung :
a. Jumlah record ada 43.
b. Record yang bisa diklasifikasikan dengan benar berjumlah
16, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
27, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
d) Fold 4
Pada iterasi 4, fold 4 menjadi data uji yaitu data 130 – 172,
sedangkan data pelatihan adalah data 1 – 129 dan 173 – 431.
98
Tabel 5.4 Tabel Confusion Matrix untuk Pengujian pada Fold 4
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 5 1 0 6
Memuaskan 0 6 11 0 17
Sangat
Memuaskan 0 7 11 0 18
Dengan
Pujian 0 0 2 0 2
Total 0 18 25 0 43
Berdasarkan confusion matrix untuk data uji pada fold 4, dapat
dihitung :
a. Jumlah record ada 43
c. Record yang bisa diklasifikasikan dengan benar berjumlah
17, didapat dari jumlah nilai diagonal tabel.
b. Record yang gagal diklasifikasikan dengan benar berjumlah
26, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
e) Fold 5
Pada iterasi 5, fold 5 menjadi data uji yaitu data 173 – 215,
sedangkan data pelatihan adalah data 1 – 172 dan 216 – 431.
99
Tabel 5.5 Tabel Confusion Matrix untuk Pengujian pada Fold 5
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 2 5 0 7
Memuaskan 0 3 8 0 11
Sangat
Memuaskan 0 1 22 0 23
Dengan
Pujian 0 0 2 0 2
Total 0 6 37 0 43
Berdasarkan confusion matrix untuk data uji pada fold 5, dapat
dihitung :
a. Jumlah record ada 43
b. Record yang bisa diklasifikasikan dengan benar berjumlah
25, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
18, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
f) Fold 6
Pada iterasi 6, fold 6 menjadi data uji yaitu data 216 – 258,
sedangkan data pelatihan adalah data 1 – 215 dan 258 – 431.
100
Tabel 5.6 Tabel Confusion Matrix untuk Pengujian pada Fold 6
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 1 6 0 7
Memuaskan 0 6 11 0 17
Sangat
Memuaskan 0 1 18 0 19
Dengan
Pujian 0 0 0 0 0
Total 0 8 35 0 43
Berdasarkan confusion matrix untuk data uji pada fold 6, dapat
dihitung :
a. Jumlah record ada 43
b. Record yang bisa diklasifikasikan dengan benar berjumlah
24, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
19, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
g) Fold 7
Pada iterasi 7, fold 7 menjadi data uji yaitu data 259 – 301,
sedangkan data pelatihan adalah data 1 – 258 dan 302 – 431.
101
Tabel 5.7 Tabel Confusion Matrix untuk Pengujian pada Fold 7
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 1 1 0 2
Memuaskan 0 7 5 0 12
Sangat
Memuaskan 0 5 20 0 25
Dengan
Pujian 0 0 4 0 4
Total 0 13 30 0 43
Berdasarkan confusion matrix untuk data uji pada fold 7, dapat
dihitung :
a. Jumlah record ada 43
b. Record yang bisa diklasifikasikan dengan benar berjumlah
27, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
16, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
h) Fold 8
Pada iterasi 8, fold 8 menjadi data uji yaitu data 302 – 344,
sedangkan data pelatihan adalah data 1 – 301 dan 345 – 431.
102
Tabel 5.8 Tabel Confusion Matrix untuk Pengujian pada Fold 8
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 2 1 0 3
Memuaskan 0 12 9 0 21
Sangat
Memuaskan 0 3 15 0 18
Dengan
Pujian 0 0 1 0 1
Total 0 17 26 0 43
Berdasarkan confusion matrix untuk data uji pada fold 8, dapat
dihitung :
a. Jumlah record ada 43
b. Record yang bisa diklasifikasikan dengan benar berjumlah
27, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
16, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
i) Fold 9
Pada iterasi 9, fold 9 menjadi data uji yaitu data 345 – 387,
sedangkan data pelatihan adalah data 1 – 344 dan 388 – 431.
103
Tabel 5.9 Tabel Confusion Matrix untuk Pengujian pada Fold 9
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 1 3 0 4
Memuaskan 0 11 10 0 21
Sangat
Memuaskan 0 3 13 0 16
Dengan
Pujian 0 0 2 0 2
Total 0 15 28 0 43
Berdasarkan confusion matrix untuk data uji pada fold 9, dapat
dihitung :
a. Jumlah record ada 43
b. Record yang bisa diklasifikasikan dengan benar berjumlah
24, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
19, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
j) Fold 10
Pada iterasi 10, fold 10 menjadi data uji yaitu data 388 – 431,
sedangkan data pelatihan adalah data 1 – 387.
104
Tabel 5.10 Tabel Confusion Matrix untuk Pengujian pada Fold 10
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 3 4 0 7
Memuaskan 0 8 7 0 15
Sangat
Memuaskan 1 4 12 0 17
Dengan
Pujian 0 0 5 0 5
Total 1 15 28 0 44
Berdasarkan confusion matrix untuk data uji pada fold 10, dapat
dihitung :
a. Jumlah record ada 44
b. Record yang bisa diklasifikasikan dengan benar berjumlah
20, didapat dari jumlah nilai diagonal tabel.
c. Record yang gagal diklasifikasikan dengan benar berjumlah
24, didapat dari jumlah total record dikurangi jumlah
record yang bisa diklasifikasikan dengan benar.
105
Tabel confusion matrix di berikut ini adalah confusion matrix
untuk semua iterasi.
Tabel 5.11 Tabel Confusion Matrix untuk Semua Iterasi
Kelas Hasil Prediksi
Total
Kurang Memuaskan
Sangat
Memuaskan
Dengan
Pujian
Kelas
Sebenarnya
Kurang 0 20 34 0 54
Memuaskan 0 68 94 0 162
Sangat
Memuaskan 1 42 146 0 189
Dengan
Pujian 0 2 24 0 26
Total 1 132 298 0 431
Berdasarkan rumus 2.13 nilai sensitivity adalah
Bersasarkan rumus 2.14 nilai specificity adalah
Untuk menghitung accuracy berdasarkan rumus 2.16 adalah
106
Nilai accuracy dipersentasikan menjadi 49, 65 %.
Dari 10 iterasi dengan menggunakan cross-validation, terdapat
214 record yang diklasifikasikan dengan benar, dan 217 record
yang gagal diklasifikasikan dengan benar. Berikut ini adalah tabel
dari setiap pengujian pada setiap foldnya.
Tabel 5.12 Tabel Pengujian menggunakan tenfold cross-validation
Pengujian Data uji
(Fold)
Data pelatihan
(Fold)
Jumlah record yang benar diklasifikasi
Jumlah record yang salah
diklasifikasi
1 1
2, 3, 4, 5,
6, 7, 8, 9,
10
16 27
2 2
1, 3, 4, 5,
6, 7, 8, 9,
10
18 25
3 3
1, 2, 4, 5,
6, 7, 8, 9,
10
16 27
4 4
1, 2, 3, 5,
6, 7, 8, 9,
10
17 26
5 5
1, 2, 3, 4,
6, 7, 8, 9,
10
25 18
6 6
1, 2, 3, 4,
5, 7, 8, 9,
10
24 19
7 7
1, 2, 3, 4,
5, 6, 8, 9,
10
27 16
107
8 8
1, 2, 3, 4,
5, 6, 7, 9,
10
27 16
9 9
1, 2, 3, 4,
5, 6, 7, 8,
10
24 19
10 10 1, 2, 3, 4,
5, 6, 7, 8, 920 24
Jumlah 214 217
Dari tabel 5.11, dapat diketahui tingkat keakuratan dari
seluruh pengujian dengan menggunakan metode tenfold cross-
validation yaitu jumlah record yang telah diklasifikasikan dengan
benar dari semua iterasi dibagi dengan jumlah data keseluruhan,
kemudian dikali 100%. Berikut ini kalkulasinya :
Pengujian dengan meetode k-fold cross-validation ini juga
dilakukan dengan mengganti-ganti nilai k yang bervariasi.
Tabel 5.13 Tabel Pengujian cross-validation dengan k bervariasi
No k Tingkat keakuratan
1 3 49. 1879%
2 20 49.6519%
3 100 49.6519%
4 200 49.6519%
5 400 49.6519%
108
Dari percobaan-percobaan yang dilakukan tersebut,
didapatkan hasil dengan tingkat kesesuaian dengan keadaan
sebenarnya berkisar antara 48% hinggga 50% (Diduga banyaknya
jumlah sampel, atribut untuk klasifikasi, dan korelasi antar atribut
tersebut berpengaruh pada tingkat keakuratan klasifikasi).
B. Kelebihan dan Kekurangan Program
1) Kelebihan Program
Kelebihan program adalah :
a. Program ini juga bisa digunakan untuk klasifikasi atau prediksi
pada data yang berbeda dengan ketentuan file masukan harus
berekstensi xls dan jumlah atribut 7 dengan atribut kelas harus
ditempatkan dikolom ke 7/kolom terakhir.
b. Hasil klasifikasi bisa disimpan dalam bentuk file dengan
format .txt, .doc, maupun . xls.
c. Untuk mendapatkan pengukuran yang dapat dipercaya, metode
yang digunakan adalah k-fold cross-validation. Pengguna
diberi fasilitas untuk menginputkan nilai k (dengan syarat dan
ketentuan berlaku ; nilai k tidak boleh bernilai kurang dari 0, k
tidak boleh bernilai 0, k tidak boleh bernilai 1, dan k tidak
boleh bernilai lebih besar dari jumlah data) demi mendapatkan
pengukuran yang dapat dipercaya tersebut.
d. Hasil klasifikasi dalam versi lengkap (menampilkan data awal
109
dengan seluruh atribut, atribut label, dan hasil klasifikasi) bisa
disimpan dalam bentuk file sehingga berguna untuk penelitian
lebih lanjut.
2) Kelemahan Program
a. Program hanya bisa menerima masukan dengan file
berekstensi xls.
b. Program hanya bisa menerima masukan file yang jumlah
atribut harus 7 ; tidak kurang dari 7 dan tidak lebih dari 7. Agar
program bisa bekerja dengan baik, atribut label harus berada
pada kolom terakhir/kolom ke 7.
110
BAB VI
PENUTUP
A. Kesimpulan
Algoritma naïve bayesian telah digunakan untuk mengklasifikasi prestasi
akademik mahasiswa Teknik Informatika Universitas Sanata Dharma
berdasarkan data penerimaan mahasiswa baru dan data akademik mahasiswa.
Berdasarkan hasil percobaan dapat disimpulkan hal sebagai berikut :
pengujian dilakukan pada 431 record data dengan menggunakan metode k
fold cross-validation khususnya tenfold cross-validation menghasilkan
tingkat keakuratan sebesar 49, 65 %. Pengujian dengan metode k-fold cross-
validation ini juga dilakukan dengan mengganti-ganti nilai k yang bervariasi
menghasilkan tingkat keakuratan yang berkisar antara 48% hinggga 50%.
Hasil dengan tingkat keakuratan tersebut belum bisa dikatakan baik. Diduga
banyaknya jumlah sampel, atribut untuk klasifikasi, dan korelasi antar atribut
tersebut berpengaruh pada tingkat keakuratan klasifikasi.
B. Saran
Saran yang diperlukan untuk perbaikan dan pengembangan program lebih
lanjut adalah :
1. Untuk meningkatkan akurasi, dapat dicoba klasifikasi data PMB dan
prestasi akademik mahasiswa di semester 1 yang diduga
mencerminkan hasil yang belum dipengaruhi faktor-fator luar seperti
111
lingkungan kost, pergaulan, dan faktor lainnya, mengingat banyaknya
faktor yang mempengaruhi indek prestasi seorang mahasiswa.
2. Program bisa menerima masukan tidak hanya file excel berekstensi
xls, tapi juga diharapkan bisa menerima masukan file excel untuk
microsoft office 2007(ekstensi xlsx).
3. Program bisa menerima masukan dari basis data.
4. Program bisa lebih fleksibel dengan menerima masukan dengan
jumlah atribut yang bervariasi.
5. Program bisa lebih fleksibel membaca atribut target walaupun atribut
target ditempatkan di posisi kolom manapun.
Daftar Pustaka
Haryanto, Lilik, Pencarian Karakteristik Calon Mahasiswa Baru Universitas
Sanata Dharma yang Tidak Mendaftar Ulang dengan Menggunakan
Algoritma Pohon Keputusan, Tugas Akhir Program Studi Ilmu
Komputer Jurusan Matematika USD, Yogyakarta, 2008.
J.Han dan M. Kamber, (2006), Data Mining Concept and Techniquies,
Second Edition, Morgan Kaufman Publishers, San Francisco, USA.
Kusrini dan luthfi, EmhaTaufiq, (2009), Algortima Data Mining, Penerbit
Andi, Yogyakarta.
Oracle Data Mining Concept, 2005, Naïve Bayesian, Chapter 15.
Santosa, Budi, (2007), Data Mining Teknik Pemanfaatan Data Untuk
Keperluan Bisnis, Graha Ilmu, Yogyakarta, 5, 75-86.
Sugianto, Masim, Tips Java : Membuat File Excel – Spreadsheet.
http://java.vavai.com/2008/01/25/tips-java-membuat-file-excel-
spreadsheet. Diakes tanggal 23 April 2010.
Tan, Steinbach, dan Kumar, (2006), Introduction to Data Mining, Halminton
Printing, Amerika, USA.
Tim Penelitian dan Pengembangan Wahana Komputer, (2005),
Pengembangan Analisis Multivariate dengan SPSS 12, Penerbit Salemba
Infotek, Jakarta.
Wahyono, Teguh, (2006), Analisis Data Statistik dengan SPSS 14, Elex
Media Komputindo, Jakarta.
Whitten, J.L., Bentley, L.D., Dittman, K.C., (2004), Metode Desain dan
Analisis Sistem Edisi 6, Mc Graw Hill, New York.
Winarno, Andreas Agus dan Gunawan, Ridowati, 2008, Penggunaan metode
Klasifikasi Naïve Bayesian untuk Memprediksi Juara Liga Utama
inggris 2006/2007, Makalah “Prosiding Konferensi Nasional Sistem
Informasi 2008”, Penerbit Informatika, Bandung.
Yamin, Sofyan dan Kurniawam, Heri, (2009), SPSS Complete:Teknik
Analsis Terlengkap dengan Software SPSS, Penerbit Salemba Infotek,
Jakarta.
12 Demo Source and Support, 2009, http://www.java2s.com/Code/Java/2D-
Graphics-GUI/Chart.htm. Diakses tanggal 23 April 2010.
Lampiran | 1
LAMPIRAN 1
Implementasi Rumus 2.10 untuk Perhitungan likelihood pada Atribut Data
Kategorikal
Rumus 2.10 :
P(xk | Ci) = |xki|/ Nci
Lampiran | 2
Likelihood Atribut Gelombang
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lampiran | 3
Likelihood Atribut Pil_3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
Lampiran | 4
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
Lampiran | 5
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 |
_3
Lampiran | 6
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 | _3
_3 |
_3
_3 |
_3
_3 | _3
Lampiran | 7
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 |
_3
_3 | _3
Lampiran | 8
_3 |
_3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
Lampiran | 9
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
_3 | _3
Lampiran | 10
Likelihood Atribut Jur_SMA
_ SMU/MA IPA| _ SMU/MA IPA
_ SMU/MA IP | _ SMU/MA IPS
_ SMU/MA /DUDAYA/ BAHASA|
_ SMU/MA /DUDAYA/ BAHASA
_ SMK TEKNIK/ STM | _ SMK TEKNIK/ STM
_ SMK EKONOMI/SMEA/SMK|
_ SMK EKONOMI/SMEA/SMK
_ | _ SMF
_ SMU/MA IPA| _ SMU/MA IPA
_ SMU/MA IPS| _ SMU/MA IPS
_ SMU/MA /DUDAYA/ BAHASA|
_ _ SMU/MA /DUDAYA/ BAHASA
_ TEKNIK/ STM |
_ TEKNIK/ STM
_ SMK EKONOMI/SMEA/SMK|
_ SMK EKONOMI/SMEA/SMK
Lampiran | 11
_ | _
_ SMU/MA IPA|
_ SMU/MA IPA
_ SMU/MA IPS |
_ SMU/MA IPS
_ SMU/MA /DUDAYA/ BAHASA|
_ _ SMU/MA /DUDAYA/ BAHASA
_ TEKNIK/ STM |
_ TEKNIK/ STM
_ SMK EKONOMI/SMEA/SMK|
_ SMK EKONOMI/SMEA/SMK
_ |
_
_ SMU/MA IPA|
_ SMU/MA IPA
Lampiran | 12
_ SMU/MA IPS|
_ SMU/MA IPS
_ SMU/MA /DUDAYA/ BAHASA|
_ SMU/MA /DUDAYA/ BAHASA
_ TEKNIK/ STM |
_ TEKNIK/ STM
_ SMK EKONOMI/SMEA/SMK|
_ SMK EKONOMI/SMEA/SMK
_ | _
Lampiran | 13
LAMPIRAN 2
Implementasi Rumus 2.11 untuk Perhitungan likelihood pada Atribut Data
Kontinyus
Rumus 2.11 :
, μ,1
√2
Lampiran | 14
Likelihood Atribut final_tes_PV
_ _ | 1
√2
_ _ | 1
√2
_ _ | 1
√2
_ _ | 1
√2
Likelihood Atribut final_tes_PM
_ _ | 1
√2
_ _ | 1
√2
_ _ | 1
√2
_ _ | 1
√2
Likelihood Atribut final_tes_HR
_ _ | 1
√2
_ _ | 1
√2
_ _ | 1
√2
_ _ | 1
√2