• Tidak ada hasil yang ditemukan

PROGRAM STUDI INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2021

N/A
N/A
Protected

Academic year: 2022

Membagikan "PROGRAM STUDI INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2021"

Copied!
115
0
0

Teks penuh

(1)

i

KLASIFIKASI NILAI MATA KULIAH ALGORITMA DAN PEMROGRAMAN BERDASARKAN FAKTOR LINGKUNGAN

MENGGUNAKAN METODE NAÏVE BAYES

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

Program Studi Informatika

Oleh:

Putu Intan Hasri Putri 165314103

PROGRAM STUDI INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA YOGYAKARTA

2021

(2)

ii

CLASSIFICATION OF ALGORITHM AND PROGRAMMING RESULT BASED ON ENVIRONMENTAL FACTORS USING

NAÏVE BAYES METHOD

THESIS

Present as Partial Fulfillment of the Requirements for Obtain Sarjana Komputer Degree

in Informatics Study Program

Created by : Putu Intan Hasri Putri

165314103

INFORMATICS STUDY PROGRAM

FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY

YOGYAKARTA

2021

(3)

iii

HALAMAN PERSETUJUAN PEMBIMBING SKRIPSI

KLASIFIKASI NILAI MATA KULIAH ALGORITMA DAN PEMROGRAMAN BERDASARKAN FAKTOR LINGKUNGAN

MENGGUNAKAN METODE NAÏVE BAYES

Oleh:

Putu Intan Hasri Putri 165314103

Telah disetujui oleh :

Dosen Pembimbing

Agnes Maria Polina, S.Kom., M.Sc. Tanggal : ………

(4)

iv

HALAMAN PENGESAHAN SKRIPSI

KLASIFIKASI NILAI MATA KULIAH ALGORITMA DAN PEMROGRAMAN BERDASARKAN FAKTOR LINGKUNGAN

MENGGUNAKAN METODE NAÏVE BAYES

Dipersiapkan dan ditulis oleh : PUTU INTAN HASRI PUTRI

165314103

Telah dipertahankan di depan Panitia Penguji Pada tanggal ……….

Dan dinyatakan memenuhi syarat

Susunan Panitia Penguji

Nama Lengkap Tanda Tangan

Ketua Dr. Ir. Anastasia Rita Widiart …….………

Sekretaris Ir. Kartono Pinaryanto, S.T., M.Cs. ………

Anggota Agnes Maria Polina, S.Kom., M.Sc. ………

Yogyakarta, ……….

Fakultas Sains dan Teknologi Universitas Sanata Dharma

Dekan,

Sudi Mungkasi, Ph.D

(5)

v

HALAMAN PERSEMBAHAN

“Like a kidult, I will spread my young wings.”

(Seventeen Stray Kids)

Skripsi ini saya persembahkan kepada :

Papa, Mama, Yoyong, para insan berharga serta

Tan Fei Yin

(6)

vi

HALAMAN 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 daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, ……….

Penulis

Putu Intan Hasri Putri

(7)

vii ABSTRAK

Pemrograman adalah salah satu dasar yang harus dimiliki oleh mahasiswa Informatika. Program Studi Informatika Universitas Sanata Dharma Yogyakarta memiliki mata kuliah pemrograman dasar yaitu Algoritma dan Pemrograman. P. Cortez dan A. Silva (2008) menyatakan bahwa terdapat faktor lingkungan yang dapat mempengaruhi nilai mata pelajaran siswa.

Penulis berpikir bahwa dengan mengetahui beberapa faktor terkait lingkungan yang dapat mempengaruhi nilai mata kuliah Algoritma dan Pemrograman, maka mahasiswa baru dapat menentukan langkah terbaik agar dapat berhasil dalam mata kuliah tersebut. Terdapat total 260 data faktor lingkungan dengan 23 atribut yang penulis ambil dari mahasiswa Informatika 2016, 2017, 2018, dan 2019. Penulis menggunakan metode Naïve Bayes dalam mengklasifikasikan nilai mata kuliah Algoritma dan Pemrograman dan menggunakan fold bernilai 5. Pengujian dilakukan dengan mengubah jumlah atribut yang digunakan sehingga diperoleh akurasi tertinggi. Dari hasil pengujian 260 data diperoleh akurasi tertinggi sebesar 89.6154% dengan total 5 atribut menggunakan 5-fold cross validation. Adapun 5 faktor lingkungan yang paling mempengaruhi nilai Algoritma dan Pemrograman adalah studyT, hangOut, freeT, usdReason, dan famRel.

Kata kunci : Naïve Bayes, faktor lingkungan, nilai mata kuliah, Algoritma dan Pemrograman

(8)

viii ABSTRACT

Programming is the basic that must-have for Informatics students. In respect of it, the Informatics Study Program at Sanata Dharma University Yogyakarta has the basic programming subjects, which is the Algorithm and Programming. P. Cortez and A. Silva (2008) stated that there are environmental factors relevant to the results of the student’s subjects. By acknowledging those environmental factors of the new students, the researcher is capable of figuring out the best move which would assist the new students in providing the goal in this subject. There is a total of 260 environmental factors data with 23 attributes taken from the students of Informatics of 2016, 2017, 2018, and 2019. In this study, the researcher involves the Naïve Bayes method of classifying the results of the subjects of the Algorithm and Programming by using a 5-value fold. Testing was done by changing the number of attributes used to provide the highest accuracy. With 260 tested data, resulting in the highest accuracy value of 89.6154%% on the number of attributes 5. The 5-most influence attributes are studyT, hangOut, freeT, usdReason, and famRel.

Key words : Naïve Bayes, the environmental factors, the results of student’s subjects, Algorithm and Programming

(9)

ix

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI

KARYA ILMIAH UNTUK KEPERLUAN KEPENTINGAN AKADEMIS

Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Putu Intan Hasri Putri

NIM : 165314103

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :

KLASIFIKASI NILAI MATA KULIAH ALGORITMA DAN PEMROGRAMAN BERDASARKAN FAKTOR LINGKUNGAN

MENGGUNAKAN METODE NAÏVE BAYES

Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma untuk menyimpan, mengalihkan dalam bentuk media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis.

Demikian pernyataan ini saya buat dengan sebenarnya Dibuat di Yogyakarta

Pada tanggal ………..

Putu Intan Hasri Putri

(10)

x

KATA PENGANTAR

Puji syukur senantiasa penulis panjatkan ke hadirat Tuhan atas rahmat dan berkat sehingga penulis mampu menuntaskan skripsi ini. Penyelesaian skripsi ini juga tidak lepas dari bimbingan, dukungan, bantuan, serta doa dari berbagai pihak.

Maka dari itu penulis ingin mengucapkan terima kasih di kesempatan kali ini kepada :

1. Papa, Mama, dan Yoyong atas limpahan kasih sayang tak terhingga serta doa tiada henti yang menjadi alasan penulis untuk menyelesaikan skripsi ini.

2. Ibu Agnes Maria Polina, S.Kom., M.Sc. selaku pembimbing skripsi, Bapak Eduardus Hardika Sandy Atmaja, S.Kom., M.Cs. selaku pembimbing metode penelitian, serta Ibu Paulina Heruningsih Prima Rosa, M.Sc. selaku dosen pembimbing akademik.

3. Bapak Sudi Mungkasi, P.hD selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta dan bapak Robertus Adi Nugroho, S.T., M.Eng. selaku Ketua Program Studi Informatika Universitas Sanata Dharma Yogyakarta.

4. Segenap dosen dan karyawan baik tingkat program studi, fakultas, dan universitas.

5. Keluarga Tan Kian Tik dan keluarga Dinasti Pasek atas dukungannya serta om Bleky sebagai mentor penulis.

6. Mahasiswa Informatika angkatan 2016, 2017, 2018, dan 2019 atas partisipasinya dalam pengumpulan data penelitian penulis. Terkhusus angkatan 2016 yang sudah menjadi teman seperjuangan penulis.

7. TEARS, Glitzy, dan BEM FST 2018 atas pengalaman berorganisasi dan kekeluargaan yang luar biasa.

8. LB’s++ dan 5eikat atas dukungan sekala-niskala dari Pulau Dewata.

9. Toileterzzz (Palen dan Chunchun) yang sudah menjadi lingkaran terdalam dari fajar tunas hingga detik senja di bangku kuliah serta Bundra sebagai

(11)

xi partner kesehatan mental penulis.

10. Poo’s Angels (ex Ed’s Angels) dan Regu ~ (infinite) yang sudah jatuh bangun bersama selama masa pembuatan proposal, awal serta pertengahan pembuatan skripsi.

11. John F. Kennedy, Jung Yunho, Suppasit Jongcheveevat, Christopher Bahng, serta Choi Seungcheol yang menjadi inspirasi penulis.

12. Prism Refraction dari berbagai server dunia yang menjadi penyemangat dan motivasi penulis.

13. Paguyuban Dewa Timur, Truna-Truni Tujuh Belas, Persatuan Anak-Anak Nyasar, dkk yang selalu menghibur penulis pada kala suka dan duka.

Terkhusus untuk mas Junaedi dan dik Ayen.

14. Mbah Redto yang sudah menemani penulis selama 7 tahun lamanya sebagai perangkat utama dalam pembelajaran.

15. Seluruh insan yang bertanya “Kapan sidang?”.

16. Pihak-pihak yang turut membantu penulis yang tidak dapat disebutkan satu persatu.

17. Terakhir untuk Feiyin yang akan menyerah waktu itu. Lihat sekarang lu udah ada di titik ini. Buang nafas lu dan tarik lagi untuk langkah selanjutnya.

Penulis menyadari masih banyak kekurangan yang perlu diperbaiki pada skripsi ini. Maka dari itu saran dan kritik yang sekiranya dapat membangun dari pembaca, sangatlah penulis harapkan. Semoga skripsi ini berguna bagi semua pihak yang memerlukan.

(12)

xii

DAFTAR ISI

Halaman Persetujuan Pembimbing Skripsi ... iii

Halaman Pengesahan Skripsi ... iv

Halaman Persembahan ... v

Halaman Keaslian Karya ... vi

Abstak ... vii

Abstract ... viii

Lembar Pernyataan Persetujuan Publikasi ... ix

Kata Pengantar ... x

Daftar Isi ... xii

Daftar Tabel ... xiv

Daftar Gambar ... xvi

BAB I. PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Tujuan ... 2

1.4 Manfaat ... 3

1.5 Batasan Masalah ... 3

1.6 Sistematika Penulisan ... 4

BAB II. LANDASAN TEORI ... 5

2.1 Deskripsi Mata Kuliah Sebagai Landasan Studi Kasus ... 5

2.2 Penambangan Data ... 5

2.3 Klasifikasi ... 7

2.4 Naïve Bayes ... 7

2.5 Laplace Correction ... 9

2.6 Cross Validation ... 9

2.7 Confusion Matrix ... 10

BAB III METODE PENELITIAN... 11

3.1 Data Penelitian ... 11

3.2 Desain Alat Uji ... 17

3.3 Spesifikasi Alat Penelitian ... 22

3.4 Desain User Interface ... 23

BAB IV IMPLEMENTASI SISTEM ... 25

4.1 Implementasi Preprocessing ... 25

4.1.1 Transformasi Data ... 25

4.1.2 Seleksi Data ... 26

4.2 Implementasi Naïve Bayes ... 28

4.3 5-fold Cross Validation ... 30

4.4 Confusion Matix dan Akurasi... 31

4.5 Uji Data Kelompok ... 32

4.6 Uji Data Tunggal ... 32

4.7 User Interface Sistem ... 33

(13)

xiii

BAB V ANALISA HASIL ... 34

5.1 Uji Validasi ... 34

5.1.1 Perhitungan Manual Naïve Bayes ... 34

5.1.2 Pengujian Sistem Dengan 20 Data ... 52

5.1.3 Pengujian 20 Data dengan Weka Tools ... 55

5.1.4 Evaluasi ... 55

5.2 Uji Akurasi ... 55

5.3 Prediksi ... 56

5.3.1 Uji Data Kelompok ... 56

5.3.2 Uji Data Tunggal ... 58

BAB VI PENUTUP ... 60

6.1 Kesimpulan ... 60

6.2 Saran ... 60

Daftar Pustaka ... 61

Lampiran ... 63

(14)

xiv

DAFTAR TABEL

Tabel 2.1 Contoh Confusion Matrix ... 10

Tabel 3.1 Contoh Data ... 13

Tabel 4.1 Contoh Label Data Sebelum Transformasi ... 25

Tabel 4.2 Contoh Label Data Setelah Transformasi ... 25

Tabel 4.3 Peringkat Atribut dari Weka Tools ... 26

Tabel 5.1 Data Hitung Manual ... 34

Tabel 5.2 Pembagian Fold ... 35

Tabel 5.3 Banyak Nilai Atribut studyT Terhadap Kelas (Iterasi 1) ... 36

Tabel 5.4 Banyak Nilai Atribut hangout Terhadap Kelas (Iterasi 1) ... 37

Tabel 5.5 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 1) ... 37

Tabel 5.6 Banyak Nilai Atribut studyT Terhadap Kelas (Iterasi 2) ... 37

Tabel 5.7 Banyak Nilai Atribut hangout Terhadap Kelas (Iterasi 2) ... 37

Tabel 5.8 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 2) ... 38

Tabel 5.9 Banyak Nilai Atribut studyT Terhadap Kelas (Iterasi 3) ... 38

Tabel 5.10 Banyak Nilai Atribut hangout Terhadap Kelas (Iterasi 3) ... 38

Tabel 5.11 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 3) ... 38

Tabel 5.12 Banyak Nilai Atribut studyT Terhadap Kelas (Iterasi 4) ... 39

Tabel 5.13 Banyak Nilai Atribut hangout Terhadap Kelas (Iterasi 4) ... 39

Tabel 5.14 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 4) ... 39

Tabel 5.15 Banyak Nilai Atribut studyT Terhadap Kelas (Iterasi 5) ... 39

Tabel 5.16 Banyak Nilai Atribut hangout Terhadap Kelas (Iterasi 5) ... 40

Tabel 5.17 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 5) ... 40

Tabel 5.18 Laplace Correction – studyTime (Iterasi 1) ... 41

Tabel 5.19 Laplace Correction – hangOut (Iterasi 1)... 41

Tabel 5.20 Laplace Correction – freeTime (Iterasi 1) ... 41

Tabel 5.21 P(studyTime|c) – Iterasi 1 ... 41

Tabel 5.22 P(hangOut|c) – Iterasi 1 ... 42

Tabel 5.23 P(freeTimec) – Iterasi 1 ... 42

Tabel 5.24 P(studyTime|c) – Iterasi 2 ... 42

Tabel 5.25 P(hangOut|c) – Iterasi 2 ... 42

Tabel 5.26 P(freeTimec) – Iterasi 2 ... 43

Tabel 5.27 P(studyTime|c) – Iterasi 3 ... 43

Tabel 5.28 P(hangOut|c) – Iterasi 3 ... 43

Tabel 5.29 P(freeTimec) – Iterasi 3 ... 43

Tabel 5.30 P(studyTime|c) – Iterasi 4 ... 43

Tabel 5.31 P(hangOut|c) – Iterasi 4 ... 44

Tabel 5.32 P(freeTimec) – Iterasi 4 ... 44

Tabel 5.33 P(studyTime|c) – Iterasi 5 ... 44

Tabel 5.34 P(hangOut|c) – Iterasi 5 ... 44

Tabel 5.35 P(freeTimec) – Iterasi 5 ... 44

Tabel 5.36 Data Uji Iterasi 1 ... 45

Tabel 5.37 Kelas Prediksi Data ke-1 ... 46

Tabel 5.38 Kelas Prediksi Iterasi 1 ... 46

Tabel 5.39 Kelas Prediksi Iterasi 2 ... 46

(15)

xv

Tabel 5.40 Kelas Prediksi Iterasi 3 ... 46

Tabel 5.41 Kelas Prediksi Iterasi 4 ... 47

Tabel 5.42 Kelas Prediksi Iterasi 5 ... 47

Tabel 5.43 Kelas Asli dan Kelas Prediksi (Iterasi 1) ... 48

Tabel 5.44 Confusion Matrix Iterasi 1 ... 48

Tabel 5.45 Kelas Asli dan Kelas Prediksi (Iterasi 2) ... 48

Tabel 5.46 Confusion Matrix Iterasi 2 ... 49

Tabel 5.47 Kelas Asli dan Kelas Prediksi (Iterasi 3) ... 49

Tabel 5.48 Confusion Matrix Iterasi 3 ... 49

Tabel 5.49 Kelas Asli dan Kelas Prediksi (Iterasi 4) ... 49

Tabel 5.50 Confusion Matrix Iterasi 4 ... 50

Tabel 5.51 Kelas Asli dan Kelas Prediksi (Iterasi 5) ... 50

Tabel 5.52 Confusion Matrix Iterasi 5 ... 50

Tabel 5.53 Akurasi Seluruh Iterasi... 51

Tabel 5.54 Akurasi Berdasarkan Jumlah Atribut ... 55

Tabel 5.55 Percobaan Uji Data Tunggal ... 59

(16)

xvi

DAFTAR GAMBAR

Gambar 2.1 5-Fold Cross Validation ... 9

Gambar 3.1 Blanko Kuisioner ... 13

Gambar 3.2 Diagram Blok ... 17

Gambar 3.2 Diagram Flowchart Umum Sistem ... 18

Gambar 3.4 Diagram Flowchart Uji Data Tunggal ... 20

Gambar 3.5 Diagram Flowchart Uji Data Kelompok ... 21

Gambar 3.6 Desain User Interface ... 23

Gambar 4.1 User Interface Sistem ... 33

Gambar 5.1 Hasil Pengujian Validasi Sistem dengan 20 Data ... 52

Gambar 5.2 Confusion Matrix 1 ... 53

Gambar 5.3 Confusion Matrix 2 ... 53

Gambar 5.4 Confusion Matrix 3 ... 53

Gambar 5.5 Confusion Matrix 4 ... 54

Gambar 5.6 Confusion Matrix 5 ... 54

Gambar 5.7 Akurasi Uji Validasi dengan Weka Tools ... 55

Gambar 5.8 Upload dan Tampil Data Uji Data Kelompok ... 57

Gambar 5.9 Hasil Klasifikasi Uji Data Kelompok ... 57

Gambar 5.10 Uji Data Tunggal ... 58

(17)

1

BAB I. PENDAHULUAN

1.1 Latar Belakang

Pemrograman adalah salah satu keahlian dasar yang harus dimiliki oleh seorang mahasiswa jurusan Informatika. Program Studi Informatika Universitas Sanata Dharma memiliki mata kuliah pemrograman bagi mahasiswa baru di semester satu yaitu mata kuliah Algoritma dan Pemrograman. Hal ini bertujuan sebagai pembekalan mahasiswa baru untuk mengembangkan kemampuannya sebagai mahasiswa Informatika yang dikenal dengan kemahirannya dalam coding. Nilai pemrograman yang tinggi akan menunjang mahasiswa dapat berhasil dengan baik pula pada mata kuliah di semester berikutnya, terutama mata kuliah yang membutuhkan prasyarat Algoritma dan Pemrograman. Selain itu memungkinkan juga bagi mahasiswa untuk dapat menjadi asisten dosen dan menjadi delegasi untuk lomba pemrograman.

Selain proses pembelajaran yang mahasiswa alami, penulis ingin mengetahui apakah ada faktor lingkungan yang mempengaruhi nilai mata kuliah Algoritma dan Pemrograman bagi mahasiswa Informatika. Analisis pengetahuan oleh model prediksi terbaik menunjukan bahwa ada faktor lingkungan yang relevan yang mempengaruhi nilai siswa seperti alasan memilih sekolah, pekerjaan dan pendidikan orang tua, konsumsi alkohol, ataupun waktu yang dihabiskan bersama teman. Atribut yang ada pada penelitian mereka telah ditinjau oleh para professional sekolah dan diujikan kepada kelompok kecil berisikan 15 siswa untuk mendapatkan umpan balik (Cortez, P. dan A. Silva. 2008).

Penulis berpikir bahwa dengan mengetahui beberapa faktor terkait lingkungan yang dapat mempengaruhi nilai mata kuliah Algoritma dan Pemrograman, maka mahasiswa baru dapat menentukan langkah yang terbaik agar dapat berhasil dalam mata kuliah Algoritma dan Pemrograman.

Selain itu perlu diteliti seberapa besar faktor lingkungan tersebut dapat mempengaruhi nilai mata kuliah Algoritma dan Pemrograman mahasiswa

(18)

jurusan Informatika Universitas Sanata

Metode Naïve Bayes Classifier dapat bekerja dengan sangat baik dalam melakukan klasifikasi. Merujuk pada penelitian Naziah, et.al (2015) yang berjudul Penerapan Teknik Data Mining Untuk Klasifikasi Ketepatan Waktu Lulus Mahasiswa Informatika Universitas Telkom Menggunakan Algoritma Naive Bayes Classifier, penelitian tersebut mencapai akurasi 86%. Pada jurnal Xhemali (2009), menyatakan bahwa metode Naïve Bayes Classifier mempunyai keakurasian yang lebih baik dibanding model classifier lainnya dimana metode tersebut cepat, konsisten, mudah dalam maintenance, dan akurat.

Mengetahui bahwa faktor lingkungan dari penelitian Cortez, P. dan A.

Silva (2008) dapat mempengaruhi nilai siswa, penulis ingin mengetahui seberapa besar faktor lingkungan tersebut dapat mempengaruhi nilai mata kuliah Alpro mahasiswa jurusan Informatika Universitas Sanata Dharma dalam bentuk klasifikasi menggunakan metode Naïve Bayes.

1.2 Rumusan Masalah

1.2.1 Apakah metode Naïve Bayes dapat melakukan klasifikasi nilai mata kuliah Algoritma dan Pemrograman berdasarkan pengaruh faktor lingkungan?

1.2.2 Berapa akurasi dari klasifikasi nilai mata kuliah Algoritma dan Pemrograman berdasarkan faktor lingkungan?

1.2.3 Faktor lingkungan apa sajakah yang dapat mempengaruhi mahasiswa dalam pencapaian nilai mata kuliah Algoritma dan Pemrograman?

1.3 Tujuan

1.3.1 Mengetahui apakah metode Naïve Bayes dapat melakukan klasifikasi nilai mata kuliah Algoritma dan Pemrograman berdasarkan faktor lingkungan

1.3.2 Mengetahui akurasi dari klasifikasi nilai mata kuliah Algoritma dan

(19)

Pemrograman berdasarkan faktor lingkungan menggunakan metode Naïve Bayes.

1.3.3 Mengetahui faktor lingkungan apa sajakah yang mempengaruhi mahasiswa dalam pencapaian nilai mata kuliah Algoritma dan Pemrograman.

1.4 Manfaat

1. Menambah pengetahuan, kemampuan, dan pengalaman penulis dalam mempelajari dan mengimplementasi metode Naïve Bayes.

2. Menjadi referensi bagi pembaca dalam mempelajari dan mengimplementasi metode Naïve Bayes.

3. Menjadi acuan awal bagi Program Studi untuk memberikan perlakuan yang sesuai terhadap mahasiswa baru khususnya dalam kelas mata kuliah Algoritma dan Pemrograman.

1.5 Batasan Masalah

Dalam penelitian yang penulis lakukan memiliki batasan-batasan masalah, sebagai berikut :

1. Atribut dari dataset yang digunakan merujuk pada dataset dari penelitian P. Cortez dan A. Silva. 2008. Using Data Mining to Predict Secondary School Student Performance.

2. Data merupakan data primer dari mahasiswa Informatika Universitas Sanata Dharma angkatan 2016 sampai 2019 yang mana data mengasumsikan kondisi mahasiswa di semester 1.

3. Pengumpulan data menggunakan kuesioner.

4. Metode dalam mengklasifikasikan data adalah metode Naïve Bayes Classifier.

5. Kelas yang digunakan hanya kelas A, B, dan C sesuai dengan data yang penulis dapatkan.

(20)

1.6 Sistematika Penulisan BAB I Pendahuluan

Bab ini menguraikan mengenai latar belakang masalah, rumusan masalah, batasan masalah, tujuan penelitian, dan sistematika penulisan.

BAB II Landasan Teori

Bab ini menguraikan dan menjelaskan mengenai teori-teori yang berkaitan dengan judul dan masalah topik yang dibahas, meliputi Deskripsi Mata Kuliah Sebagai Landasan Studi Kasus, Penambangan Data, Klasifikasi, Naïve Bayes, Laplace Correction, Cross Validation, dan Confusion Matrix.

BAB III Metode Penelitian

Bab ini menguraikan mengenai langkah-langkah rencana yang dilakukan dalam penelitian ini seperti cara memperoleh, mengolah, menganalisis data, beserta rancangan sistem yang akan penulis bangun menggunakan metode Naïve Bayes Classifier.

BAB IV Implementasi Sistem

Bab ini menguraikan mengenai hal-hal yang berhubungan dengan implementasi sistem berdasarkan perancangan sistem yang telah dibuat.

BAB V Analisis Hasil

Bab ini menguraikan mengenai analisa pengujian sistem serta hasil implementasi program dari sistem yang telah dibuat.

BAB VI Kesimpulan

Bab ini berisi kesimpulan serta saran untuk pengembangan penelitian.

(21)

5

BAB II. LANDASAN TEORI

2.1 Deskripsi Mata Kuliah Sebagai Studi Kasus

Algoritma dan Pemrograman (Alpro) adalah mata kuliah pemrograman pertama yang para mahasiswa dapatkan di semester I program studi Informatika Universitas Sanata Dharma Yogyakarta. Mata kuliah yang menggunakan Java sebagai bahasa pemrogramannya ini akan menjadi landasan dari mata kuliah pemrograman lainnya seperti Pemrograman Berorientasi Obyek 1 dan 2, Struktur Data Linier, Struktur Data Non Linier, dan lain sebagainya (Priyatma, 2018).

Sesuai dengan nama mata kuliahnya, Alpro membahas mengenai bagaimana menyusun suatu algoritma yang dapat memecahkan suatu permasalahan. Mata kuliah ini juga mengajarkan dasar-dasar yang mahasiswa perlukan dalam melakukan pemrograman seperti komponen utama dalam pemrograman yaitu data dan perintah, ataupun mengenai proses persyaratan (if, else) dan perulangan (for, while).

2.2 Penambangan Data

Penambangan Data (Data Mining) atau Knowledge Discovery in Databases (KDD) adalah suatu proses pengumpulan dan pemakaian data untuk menemukan pola hubungan dan informasi yang berguna dalam set data yang berskala besar. Adapun proses KDD (Han dan Kamber, 2006), meliputi :

1. Pembersihan data

Pada tahap ini terjadi proses untuk menghilangkan noise dan data yang tidak relevan. Pembersihan data atau data cleaning termasuk proses membersihkan dan memperbaiki missing values ataupun membuang duplikasi data.

(22)

2. Integrasi data

Pada tahap data integration ini terjadi proses penggabungan data dari berbagai sumber data yang berbeda.

3. Seleksi data

Data selection ini adalah proses memilih atribut atau data yang relevan untuk penambangan data dari kumpulan data yang ada.

4. Transformasi data

Pada tahap transformation ini, data yang telah diseleksi diubah menjadi bentuk yang sesuai yang diperlukan dalam proses penambangan data.

5. Penambangan data

Pada tahap data mining ini dilakukan proses pencarian informasi dengan pengaplikasian metode tertentu.

6. Evaluasi pola

Pattern evaluation ini adalah proses untuk mengidentifikasi pola informasi berdasarkan ukuran yang diberikan.

7. Presentasi pengetahuan

Pada langkah Knowledge presentation ini dilakukan proses untuk menyajikan visualisasi yang mudah dipahami oleh pengguna.

Metode penambangan data dapat dibedakan menjadi enam kelompok yang didasarkan pada teknik dan tugas yang dilakukan, antara lain (Kusrini

& Luthfi, 2009) : 1. Deskripsi

Dalam deskripsi, tugas utamanya adalah untuk menggambarkan pola dan kecenderungan yang ada dalam data. Deskripsi juga memberikan kemungkinan penjelasan untuk suatu kecenderungan atau pola.

2. Klasifikasi

Klasifikasi adalah pembedaan kelas data dalam beberapa kategori dengan tugas utamanya untuk memperkirakan kelas dari objek

(23)

yang tidak ketahui labelnya.

3. Estimasi

Hampir sama dengan klasifikasi, estimasi mengelompokan data dengan variabel target adalah numerik bukan kategori.

4. Prediksi

Prediksi juga hampir sama denga klasifikasi dan estimasi. Prediksi akan menghasilkan nilai yang merujuk ke masa yang akan datang.

5. Klaster

Klaster adalah pengelompokan data yang memiliki kemiripan satu sama lain ke dalam satu kelompok.

6. Asosiasi

Dalam dunia bisnis, asosiasi lebih sering disebut dengan analisis keranjang belanja. Asosiasi memungkinkan untuk menemukan suatu hubungan antara atribut tertentu dalam satu waktu.

2.3 Klasifikasi

Klasifikasi menurut Kamus Besar Bahasa Indonesia adalah penggolongan sistematis dalam kelompok-kelompok menurut standar yang ditetapkan. Klasifikasi dapat diartikan sebagai proses memasukan suatu objek data ke dalam kelompok tertentu dari sejumlah kelompok yang ada.

Pendekatan ciri suatu kelompok adalah acuan dari klasifikasi. Semakin dekat ciri suatu objek dengan ciri suatu kelompok, maka semakin mungkin objek tersebut termasuk ke dalam kelompok tersebut.

2.4 Naive Bayes

Thomas Bayes, seorang ilmuwan Inggris mengemukakan metode pengklasifikasian yang diberi nama sesuai dengan namanya yaitu metode Naïve Bayes. Metode ini secara sederhana memprediksi peluang di masa depan berdasarkan pengalaman di masa sebelumnya. Pengklasifikasian ini mengasumsikan bahwa seluruh atribut tidak saling tergantung atau independen (Patil, 2013). Seluruh atribut yang terlibat akan memberikan

(24)

kontribusi dalam pengambilan keputusan dengan bobot atribut yang sama penting (Kusumadewi, 2009). Persamaan Naive Bayes dituliskan pada persamaan 2.1.

Keterangan :

x : Data dengan kelas yang belum diketahui c : Hipotesis data merupakan suatu kelas spesifik

P(c|x) : Probabilitas hipotesis c terhadap kondisi x (posteriori probability) P(c) : Probabilitas hipotesis c (prior probability)

P(x|c) : Probabilitas berdasarkan kondisi x pada hipotesis c P(x) : Probabilitas x

Proses klasifikasi Naïve Bayes memerlukan beberapa petunjuk untuk menentukan kelas mana yang sesuai dengan sample yang dianalisis (Saleh, 2015). Maka dari itu metode Naïve Bayes dapat disesuaikan menjadi persamaan 2.2 di bawah ini.

Pada persamaan 2.2, variabel c merepresentasikan kelas dan variabel f1…fn merepresentasikan karakteristik petunjuk yang diperlukan dalam klasifikasi.

Persamaan 2.2 menjelaskan bahwa peluang sample karakteristik tertentu dalam kelas c (Posterior) sama dengan peluang munculnya kelas c (Prior) dikali dengan peluang munculnya karakteristik sample pada kelas c (Likehood), lalu dibagi dengan peluang munculnya karakteristik sample secara global (Evidence). Maka dari itu, persamaan 2.2 dapat diuraikan menjadi persamaan 2.3.

P (c|x) (2.1)

P(c|f1...fn) (2.2)

P(c|x) = P(c) x P(x1|c) x P(x2|c) x … x P(xn|c) (2.3)

(25)

2.5 Laplace Correction

Laplace Correction adalah suatu metode yang dapat ditambahkan di dalam Naïve Bayes untuk mengatasi nilai probabilitas akhir sama dengan 0 (Rizki, Muhammad. 2021). Persamaan Naïve Bayes merupakan proses perkalian yang mana nilai P(xn|c) bisa bernilai 0 dan apa pun yang dikali dengan 0 akan menghasilkan 0. Maka hasil prediksi untuk kelas bisa bernilai 0 semua sehingga tidak bisa membandingkan nilai tertingginya untuk menentukan kelas prediksi. Di sinilah Laplace Correction dapat berfungsi.

Laplace Correction dapat digunakan dalam pencarian P(x|c) dimana setiap perhitungan datanya dapat ditambah 1. Persamaan 2.4 adalah persamaan dari Laplace Correction.

(2.4) Keterangan :

ρi : Probabilitas dari atribut mi

mi : Jumlah sampel dari nilai atribut terhadap kelas sampel k : Jumlah nilai atribut

n : Jumlah masing-masing kelas sampel

2.6 Cross Validation

Pendekatan cross validation atau k-fold cross validation dapat memecah data menjadi k bagian dengan ukuran yang sama. Proses akan berjalan sebanyak k kali dimana setiap proses berjalan, data akan menjadi data uji tepat satu kali dan menjadi data latih sebanyak k-1 kali (Prasetyo, 2014).

(26)

Keseluruhan Data

Training Testing

Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 i=1 Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 i=2 Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 i=3 Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 i=4 Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 i=5 Fold 1 Fold 2 Fold 3 Fold 4 Fold 5 Gambar 2.1 5-Fold Cross Validation

Gambar 2.1 menjelaskan bagaimana kinerja dari 5-fold cross validation. Setiap fold akan memiliki kesempatan menjadi data uji sebanyak 1 kali dan menjadi data latih sebanyak 4 kali. Fold manapun yang memiliki nilai tertinggi dalam klasifikasi adalah skenario pembagian data terbaik dari sistem.

2.7 Confusion Matrix

Confusion Matrix adalah sebuah teknik untuk mencari akurasi yang berupa sebuah tabel hasil kerja proses klasifikasi.

Tabel 2.1 Contoh Confusion Matrix

Kelas Prediksi (j)

1 0

Kelas asli (i)

1 f11 f10

0 f01 f00

Pada tabel 2.1 diperlihatkan kasus klasifikasi dua kelas yaitu kelas 1 dan kelas 0. Setiap fij melambangkan jumlah dari kelas i dengan hasil prediksi dari kelas j. Sebagai contoh bahwa f11 adalah jumlah data kelas 1 yang diprediksikan sebagai 1 juga. Untuk menghitung akurasi digunakan persamaan seperti pada persamaan 2.4.

Akurasi x 100% (2.4)

(27)

11

BAB III. METODE PENELITIAN

3.1 Data Penelitian

Data pada penelitian ini adalah data dari mahasiswa Program Studi Informatika Universitas Sanata Dharma angkatan 2016 sampai 2019 dengan jumlah data adalah 260. Pengumpulan data dilakukan dengan menggunakan kuesioner. Bentuk data siap pakai adalah file .csv.

Seperti yang sudah dibahas pada Bab I, atribut data yang penulis gunakan merujuk pada dataset pada penelitian milik P. Cortez dan A. Silva yang menggunakan atribut faktor lingkungan dari siswa sekolah menengah dengan label data adalah nilai mata pelajaran Matematika dan Bahasa Portugis.

Sebelum melakukan penyebaran kuesioner, penulis terlebih dahulu menghilangkan beberapa atribut dari atribut data rujukan. Beberapa atribut yang dihapus meliputi :

a. age

Atribut ini menjelaskan umur siswa dengan value adalah 15 sampai 22.

b. paid

Atribut ini menjelaskan apakah siswa mengikuti kelas tambahan berbayar yang diadakan oleh pihak sekolah dengan value ya atau tidak.

c. absence

Atribut ini menjelaskan berapa kali siswa tidak mengikuti pembelajaran di kelas dengan value adalah 0 sampai 93.

(28)

d. failCourse

Atribut ini menjelaskan berapa banyak siswa gagal dalam mata pelajaran dengan value 0, 1, 2, 3, atau lainnya.

e. school

Atribut ini menjelaskan sekolah mana yang siswa bersangkutan berasal. Value atribut ini meliputi Gabriel Pereira atau Mousinho da Silveira.

f. alcWD

Atribut ini menjelaskan konsumsi alkohol siswa pada hari kerja dengan value adalah dari 1 (sangat rendah) hingga 5 (sangat tinggi).

g. alcWE

Atribut ini menjelaskan konsumsi alkohol siswa pada hari libur dengan value adalah dari 1 (sangat rendah) hingga 5 (sangat tinggi).

Untuk atribut age, umur rata-rata mahasiswa tidaklah terlalu jauh. Untuk atribut paid, Universitas Sanata Dharma tidak menerapkan kelas tambahan yang berbayar. Untuk atribut absence, standar yang digunakan di Universitas Sanata Dharma adalah 75% kehadiran. Ketika nilai kehadiran tidak mencapai 75% maka nilai mahasiswa otomatis F, maka dari itu atribut ini dihapus. Untuk atribut failCourse, data mahasiswa diasumsikan diambil pada kondisi mereka di semester 1 yang tentu saja belum ada mata kuliah yang diulang. Lalu atribut school karena pada penelitian P. Cortez dan A.

Silva, pengambilan data dilakukan di dua instansi yang berbeda, sehingga pada penelitian ini atribut school dihapuskan. Sedangkan untuk konsumsi alkohol, penulis merasa bahwa mengkonsumsi alkohol bukanlah budaya dari masyarakat Indonesia. Dari penghapusan beberapa atribut ini, data awal memiliki 1 label dan 23 atribut. Gambar 3.1 merupakan blanko kuisioner yang penulis bagikan. Terdapatnya asal SMA/SMK pada blanko kuisioner karena semula penulis mengambil data di BAPSI yang hanya berisikan jenis kelamin, asal sekolah, serta nilai Alpro. Namun karena data BAPSI tidak digunakan, maka Asal SMA/SMK dapat diabaikan.

(29)

Gambar 3.1 Blanko Kuisioner

(30)

Berikut adalah penjelasan dari masing-masing atribut beserta value atribut yang digunakan pada gambar 3.1, dimana value atribut ditranformasi manual menjadi bentuk angka, meliputi :

a. gender

Atribut ini menjelaskan jenis kelamin dari mahasiswa dengan value pria=1 atau wanita=2.

b. addArea

Atribut ini menjelaskan daerah tempat tinggal mahasiswa dengan value adalah perkotaan=1 atau selain perkotaan=2. Dimana perkotaan secara khusus adalah kota Yogyakarta.

c. famSize

Atribut ini menjelaskan jumlah dari keluarga inti mahasiswa dengan value ≤3=1 atau >3=2.

d. pStatus

Atribut ini menjelaskan status pernikahan orang tua mahasiswa dengan value tinggal bersama=1 atau tinggal terpisah=2.

e. mEdu

Atribut ini menjelaskan pendidikan terakhir ibu dengan value tidak bersekolah=1, SD=2, SMP=3, SMA=4, atau Perguruan Tinggi=5.

f. pEdu

Atribut ini menjelaskan pendidikan terakhir ayah dengan value tidak bersekolah=1, SD=2, SMP=3, SMA=4, atau Perguruan Tinggi=5.

g. mJob

Atribut ini menjelaskan pekerjaan ibu dengan value pendidik=1, bidang kesehatan=2, PNS=3, tidak bekerja=4, atau lainnya=5.

h. pJob

Atribut ini menjelaskan pekerjaan ayah dengan value pendidik=1, bidang kesehatan=2, PNS=3, tidak bekerja=4, atau lainnya=5.

i. usdReason

(31)

Atribut ini menjelaskan alasan mahasiswa masuk ke Univeristas Sanata Dharma dengan value dekat dari rumah=1, reputasi USD=2, sesuai referensi prodi=3, atau lainnya=4.

j. guardian

Atribut ini menjelaskan mengenai siapa wali utama dari mahasiswa dengan value ayah=1, ibu=2, atau lainnya=3.

k. travelT

Atribut ini menjelaskan waktu yang ditempuh mahasiswa dari tempat tinggal ke kampus dengan value <15 menit=1, 15-30 menit=2, >30 menit-1jam=3, atau >1 jam=4.

l. studyT

Atribut ini menjelaskan berapa lama waktu yang dihabiskan mahasiswa untuk belajar di luar kelas selama seminggu. Value atribut ini meliputi <2 jam=1, 2-5 jam=2, >5-10 jam=3, atau >10 jam=4.

m. bimbel

Atribut ini menjelaskan apakah mahasiswa mengikuti bimbingan belajar pemrograman dengan value ya=1 atau tidak=2.

n. famEduSupp

Atribut ini menjelaskan apakah mahasiswa memiliki dukungan pendidikan dari keluarga dengan value ya=1 atau tidak=2.

o. nonAkademik

Atribut ini menjelaskan apakah mahasiswa mengikuti kegiatan non akademik dengan value ya=1 atau tidak=2.

p. tk

Atribut ini menjelaskan apakah mahasiswa mengikuti jenjang pendidikan taman kanak-kanak dengan value ya=1 atau tidak=2.

q. s2

Atribut ini menjelaskan apakah mahasiswa nantinya ingin mengambil jenjang pendiidkan yang lebih tinggi dengan value ya=1 atau tidak=2.

(32)

r. intAkses

Atribut ini menjelaskan apakah mahasiswa memiliki akses internet di tempat tinggalnya dengan value ada=1 atau tidak=2.

s. Romance

Atribut ini menjelaskan apakah mahasiswa terlibat dalam hubungan asmara dengan value ya=1 atau tidak=2.

t. famRel

Atribut ini menjelaskan skala hubungan mahasiswa dengan keluarganya. Value dari atribut ini adalah skala 1 sampai 3.

u. health

Atribut ini menjelaskan skala kesehatan mahasiswa. Value dari atribut ini adalah skala 1 (rendah) sampai 4 (sangat baik).

v. freeT

Atribut ini menjelaskan skala waktu luang mahasiswa. Value dari atribut ini adalah skala 1 (sangat rendah) sampai 5 (sangat tinggi).

w. hangOut

Atribut ini menjelaskan skala waktu mahasiswa bersenang-senang dengan kawannya. Value dari atribut ini adalah skala 1 (sangat rendah) sampai 5 (sangat tinggi).

x. alpro

Atribut ini merupakan label yang mana menjelaskan nilai mata kuliah Algoritma dan Pemrograman mahasiswa dengan value A, B, dan C. Label hanya sampai A, B, dan C karena tidak ada label D, E, dan F dalam pengumpulan data.

(33)

3.2 Desain Alat Uji

Gambar 3.2 Diagram Blok

Gambar 3.2 menggambarkan bagaimana proses dari penelitian ini.

Data harus melalui tahap preprocessing (seleksi atribut) sebelum menjadi data set siap pakai. Pada tahap preprocessing, atribut yang akan digunakan nantinya harus melalui tahap seleksi terlebih dahulu dimana atribut mana yang memilki kontribusi di klasifikasi nantinya. Dalam modeling, training data dan testing data diolah menggunakan metode Naïve Bayes yang akan didapatkan hasil akurasinya. Setelah itu dapat dilakukan uji data kelompok dan uji data tunggal untuk mendapatkan klasifikasi.

Gambar 3.3 akan menggambarkan alur data yang sistem gunakan.

Dimana proses berjalan dari inputan berupa data awal hingga menjadi output berupa nilai akurasi.

(34)

Gambar 3.3 Diagram Flowchart Umum Sistem

(35)

Algoritma Umum Sistem : 1. Baca data awal.

2. Tahap preprocessing dimana terjadi transformasi dan seleksi atribut (mengurutkan peringkat atribut) :

a. Ubah kelas yang sebelumnya A menjadi 1, B menjadi 2, dan C menjadi 3.

b. Urutkan atribut berdasarkan ranking dari information gain.

3. Bagi data menjadi 5 bagian, masukan ke masing-masing variabel fold(1) sampai fold(5).

4. Untuk masing-masing fold lakukan : a. Hitung P(c) data latih

P(c) = total label c pada data latih / total data latih.

b. Hitung P(x|c) data latih

Lakukan perulangan untuk mencari nilai P(x|c). Misal untuk P(usdReason|c) dengan nilai atribut usdReason adalah 1, 2, 3, dan 4 :

P(1|c) = jumlah atribut usdReason bernilai 1 yang berlabel c / jumlah kelas c pada data latih.

P(2|c) = jumlah atribut usdReason bernilai 2 yang berlabel c / jumlah kelas c pada data latih.

Begitu seterusnya hingga seluruh nilai atribut usdReason juga nilai atribut-atribut lainnya mendapatkan nilainya.

c. Perhitungan Laplace Correction. Algoritma untuk menghitungnya adalah :

- Cek apakah P(x|c) ada yang bernilai 0.

- Jika ada, tambah 1 untuk semua jumlah atribut x lalu jumlah kelas c pada data latih ditambah sesuai dengan banyaknya nilai atribut x. Jika tidak lanjut ke langkah d.

- Ulangi perhitungan b.

d. Hitung P(c|x) pada tiap data uji.

P(A|nilai atribut data uji yang berlabel A) = P(A) * P(nilai

(36)

atribut data uji usdReason|A) * P(nilai atribut data uji hangOut|A) * P(nilai atribut data uji freeT|A) * P(nilai atribut data uji famRel|A) * P(nilai atribut data uji studyT|A).

Begitu seterusnya untuk kelas B dan kelas C.

e. Bandingkan hasil P(c|x) dimana yang terbesar = hasil klasifikasi.

5. Membandingkan hasil klasifikasi dengan label asli lalu memasukan ke confusion matrix.

6. Menghitung akurasi untuk masing-masing fold.

7. Menghitung akurasi total.

8. Selesai.

Sedangkan untuk Gambar 3.4 akan menggambarkan alur data dari data uji tunggal yang nantinya akan menghasilkan keluaran hasil klasifikasi.

(37)

Gambar 3.4 Diagram Flowchart Uji Data Tunggal

Algoritma Uji Data Tunggal :

1. Baca data set, masuk ke model sebagai data latih.

2. Masukan data uji tunggal, masuk ke model.

3. Hasil klasifikasi keluar.

4. Selesai.

Gambar 3.5 menggambarkan alur data dari data uji kelompok yang nantinya akan menghasilkan keluaran hasil klasifikasi.

Gambar 3.5 Diagram Flowchart Uji Data Kelompok

Algoritma Uji Data Kelompok :

1. Baca data set, data set masuk ke model sebagai data latih.

2. Baca data uji kelompok, masuk ke model.

(38)

3. Hasil klasifikasi keluar.

4. Selesai.

3.3 Spesifikasi Alat Penelitian 3.3.1 Perangkat keras :

1. Asus-PC X450CA

2. Processor Intel® Core™ i3-3217U CPU @ 1.80GHz (4 CPUs), ~1.8ghZ

3. RAM 2048MB 3.3.2 Perangkat lunak :

1. Sistem Operasi Windows 7 Ultimate 64-bit.

2. Microsoft Excel 2013 3. Matlab 2016b

4. Draw.io

5. Weka Tools 3.8.3

(39)

3.4 Desain User Interface

Gambar 3.6 adalah perancangan desain interface dalam penelitian ini yang terbagi menjadi 3 bagian yaitu Panel1, Panel2, dan Panel3. Panel1 berisikan klasifikasi dengan data latih dan data uji dari keseluruhan data penelitian, Panel2 untuk klasifikasi menggunakan data uji berkelompok, dan Panel3 untuk klasifikasi data uji tunggal.

Gambar 3.6 Desain User Interface

Berikut adalah penjelasan dari masing-masing label pada desain : A : Tombol untuk mengunggah seluruh data penelitian.

B : Tabel yang menampilkan seluruh data yang diunggah.

C : Text field untuk memasukkan jumlah atribut dari keseluruhan data.

D : Tombol untuk menginputkan jumlah atribut yang tertulis di C ke dalam sistem sehingga terjadi proses pemilihan atribut.

E : Tabel yang menampilkan seluruh data dengan jumlah atribut yang telah dimasukan di C.

(40)

F : Tombol klasifikasi Naive Bayes sesuai dengan jumlah atribut yang diinginkan.

G : Text field yang menampilkan akurasi dari klasifikasi.

H : Tabel untuk menampilkan matriks cross validation dari klasifikasi fold 1 sampai dengan fold 5.

I : Tombol untuk mengunggah data uji berkelompok.

J : Tabel yang menampilkan data uji berkelompok.

K : Tombol untuk mengklasifikasikan data uji berkelompok.

L : Tabel yang menampilkan hasil klasifikasi dari data uji berkelompok.

M : Text field yang memasukan nilai atribut untuk menjadi data uji tunggal

N : Tombol untuk mengunggah data uji tunggal yang dilanjutkan dengan proses klasifikasi.

O : Text field yang menampilkan hasil klasifikasi dari data uji tunggal

(41)

25

BAB IV. IMPLEMENTASI SISTEM

4.1 Implementasi Preprocessing 4.1.1 Tranformasi Data

Transformasi data adalah tahap mengubah label klasifikasi yang awalnya bertipe string menjadi numerik. Bisa dilihat pada tabel 4.1 yang merupakan label data sebelum dilakukan transformasi sedangkan tabel 4.2 adalah label data setelah dilakukan transformasi.

Tabel 4.1 Contoh Label Data Sebelum Transformasi Label

C A B A

Tabel 4.2 Contoh Label Data Setelah Transformasi Label Setelah Transformasi

C 3

A 1

B 2

A 1

for i = 1 : m

if (strcmp(raw(i,numCols),'A')) num(i,numCols)=1;

elseif (strcmp(raw(i,numCols),'B')) num(i,numCols)=2;

else

num(i,numCols)=3;

end end

(42)

4.1.2 Seleksi Data

Pada tahap ini sistem akan mengurutkan peringkat kontribusi atribut berlandaskan pada information gain yang didapat pada Weka Tools seperti yang terlihat pada tabel 4.3.

Tabel 4.3 Peringkat Atribut dari Weka Tools

Peringkat Atribut Information

Gain

1 studyT 0.541

2 hangOut 0.516

3 freeT 0.493

4 usdReason 0.392

5 famRel 0.337

6 pEdu 0.046

7 pJob 0.044

8 travelT 0.045

9 mJob 0.033

10 health 0.033

11 Tk 0.029

12 famSize 0.018

13 gender 0.018

14 mEdu 0.015

15 guardian 0.012

16 romance 0.011

17 bimbel 0.012

18 s2 0.009

19 addArea 0.005

20 pStatus 0.004

21 intAkses 0.004

22 nonAkademik 0.002

23 famEduSupp 0.001

(43)

rank =

[12,23,22,9,20,6,8,11,7,21,16,3,1,5,10,19,13,17,2,4,18,15,14];

data = xlsread(outputfile);

if jmlAtrib > size(rank,2)-1 jmlAtrib = size(rank,2);

end

if numCols-1 == 23 for i=1:jmlAtrib if i==1

dataPakai = data(:,rank(i));

else

dataPakai = [dataPakai,data(:,rank(i))];

end end

dataPakai = [dataPakai, data(:,numCols)];

elseif jmlAtrib < numCols-1 for i=1:jmlAtrib

if i==1

dataPakai = data(:,i);

else

dataPakai = [dataPakai,data(:,i)];

end end

dataPakai = [dataPakai, data(:,numCols)];

else

dataPakai = data ; end

(44)

4.2 Implementasi Naïve Bayes

Berikut merupakan implementasi dari Naïve Bayes yang diikuti dengan Laplace Correction. Untuk source code di bawah hanya untuk satu atribut.

Souce Code lengkap ada pada bagian Lampiran.

function output = NB(dataTr, labelTr, dataTs)

A = find(labelTr(:) == 1);

B = find(labelTr(:) == 2);

C = find(labelTr(:) == 3);

probA = length(A)/length(labelTr);

probB = length(B)/length(labelTr);

probC = length(C)/length(labelTr);

%P(X|C)

[m,n] = size(dataTr);

%P(studyT)--- if 1<=n

studyT = zeros(4,3);

for i=1:m

if(isequal(dataTr(i,1),1)&&isequal(labelTr(i,1),1)) studyT(1,1) = studyT(1,1)+1;

elseif (isequal(dataTr(i,1),1)&&isequal(labelTr(i,1),2)) studyT(1,2) = studyT(1,2)+1;

elseif (isequal(dataTr(i,1),1)&&isequal(labelTr(i,1),3)) studyT(1,3) = studyT(1,3)+1;

elseif (isequal(dataTr(i,1),2)&&isequal(labelTr(i,1),1)) studyT(2,1) = studyT(2,1)+1;

elseif (isequal(dataTr(i,1),2)&&isequal(labelTr(i,1),2)) studyT(2,2) = studyT(2,2)+1;

elseif (isequal(dataTr(i,1),2)&&isequal(labelTr(i,1),3)) studyT(2,3) = studyT(2,3)+1;

elseif (isequal(dataTr(i,1),3)&&isequal(labelTr(i,1),1)) studyT(3,1) = studyT(3,1)+1;

elseif (isequal(dataTr(i,1),3)&&isequal(labelTr(i,1),2)) studyT(3,2) = studyT(3,2)+1;

elseif (isequal(dataTr(i,1),3)&&isequal(labelTr(i,1),3)) studyT(3,3) = studyT(3,3)+1;

elseif (isequal(dataTr(i,1),4)&&isequal(labelTr(i,1),1)) studyT(4,1) = studyT(4,1)+1;

elseif (isequal(dataTr(i,1),4)&&isequal(labelTr(i,1),2)) studyT(4,2) = studyT(4,2)+1;

elseif (isequal(dataTr(i,1),4)&&isequal(labelTr(i,1),3)) studyT(4,3) = studyT(4,3)+1;

end end

(45)

for x=1:4

studyT(x,1)=studyT(x,1)+1;

studyT(x,2)=studyT(x,2)+1;

studyT(x,3)=studyT(x,3)+1;

end

elseif (isequal(studyT(y,2),0)) for x=1:4

studyT(x,1)=studyT(x,1)+1;

studyT(x,2)=studyT(x,2)+1;

studyT(x,3)=studyT(x,3)+1;

end

elseif (isequal(studyT(y,3),0)) for x=1:4

studyT(x,1)=studyT(x,1)+1;

studyT(x,2)=studyT(x,2)+1;

studyT(x,3)=studyT(x,3)+1;

end end

end

%==========================================

studyTM = [studyT(:,1)/length(A) studyT(:,2)/length(B) studyT(:,3)/length(C)] ;

end

%---TESTING--- data = zeros(1,n);

output1 = 1; output2 = 1; output3 = 1;

%studyT--- if 1<=n

switch dataTs(1,1) case 1

data(1,1)=1;

case 2

data(1,1)=2;

case 3

data(1,1)=3;

case 4

data(1,1)=4;

end

output1 = output1*studyTM(data(1,1),1);

output2 = output2*studyTM(data(1,1),2);

output3 = output3*studyTM(data(1,1),3);

end

%---P(kelas)--- output1 = output1*probA;

output2 = output2*probB;

output3 = output3*probC;

if output1>output2 && output1>output3 output = 1;

elseif output2>output1 && output2>output3 output = 2;

else

output = 3;

end

(46)

4.3 5-fold Cross Validation

Pada tahap ini dilakukan pembagian data ke dalam 5 fold.

fold1 = atribut(1:range,:);

fold2 = atribut(range+1:range*2,:);

fold3 = atribut(range*2+1:range*3,:);

fold4 = atribut(range*3+1:range*4,:);

fold5 = atribut(range*4+1:range*5,:);

dataTs1 = fold1;

dataTr1 = [fold2; fold3; fold4; fold5];

dataTs2 = fold2;

dataTr2 = [fold1; fold3; fold4; fold5];

dataTs3 = fold3;

dataTr3 = [fold1; fold2; fold4; fold5];

dataTs4 = fold4;

dataTr4 = [fold1; fold2; fold3; fold5];

dataTs5 = fold5;

dataTr5 = [fold1; fold2; fold3; fold4];

label1 = label(1:range);

label2 = label(range+1:range*2,:);

label3 = label(range*2+1:range*3,:);

label4 = label(range*3+1:range*4,:);

label5 = label(range*4+1:range*5,:);

labelTs1 = label1;

labelTr1 = [label2; label3; label4; label5];

labelTs2 = label2;

labelTr2 = [label1; label3; label4; label5];

labelTs3 = label3;

labelTr3 = [label1; label2; label4; label5];

labelTs4 = label4;

labelTr4 = [label1; label2; label3; label5];

labelTs5 = label5;

labelTr5 = [label1; label2; label3; label4];

(47)

4.4 Confusion Matrix dan Akurasi

Setiap fold dihitung akurasinya masing-masing yang mana hasil akurasi tersebut digunakan untuk menghitung akurasi total.

for i=1:size(dataTs1,1)

hasil(i,1) = NB(dataTr1, labelTr1, dataTs1(i,:));

end

cf1 = confusionmat(hasil, labelTs1);

output1 = sum(diag(cf1))/sum(sum(cf1))*100;

set(handles.matrix1,'data',cf1);

for i=1:size(dataTs2,1)

hasil(i,1) = NB(dataTr2, labelTr2, dataTs2(i,:));

end

cf2 = confusionmat(hasil, labelTs2);

output2 = sum(diag(cf2))/sum(sum(cf2))*100;

set(handles.matrix2,'data',cf2);

for i=1:size(dataTs3,1)

hasil(i,1) = NB(dataTr3, labelTr3, dataTs3(i,:));

end

cf3 = confusionmat(hasil, labelTs3);

output3 = sum(diag(cf3))/sum(sum(cf3))*100;

set(handles.matrix3,'data',cf3);

for i=1:size(dataTs4,1)

hasil(i,1) = NB(dataTr4, labelTr4, dataTs4(i,:));

end

cf4 = confusionmat(hasil, labelTs4);

output4 = sum(diag(cf4))/sum(sum(cf4))*100;

set(handles.matrix4,'data',cf4);

for i=1:size(dataTs5,1)

hasil(i,1) = NB(dataTr5, labelTr5, dataTs5(i,:));

end

cf5 = confusionmat(hasil, labelTs5);

output5 = sum(diag(cf5))/sum(sum(cf5))*100;

set(handles.matrix5,'data',cf5);

akurasi = (output1+output2+output3+output4+output5)/5;

(48)

4.5 Uji Data Kelompok

Pada tahap ini mencari klasifikasi dari data berkelompok yang diunggah dari sistem.

4.6 Uji Data Tunggal

Pada tahap ini mencari klasifikasi dari data yang diinputkan melalui user interface langsung.

global row1; load atribut; load label;

atribut = atribut(:,1:5);

label = label;

testing = row1(:,:);

tampil = row1(:,:);

ukuran = testing(:,1);

[m,n] = size(ukuran);

for i=1:m

hasil(i) = NB(atribut, label, cell2mat(testing(i,:)));

if hasil(i) == 1 output{i,1}='A';

elseif hasil(i) == 2 output{i,1}='B';

else

output{i,1}='C';

end end

gabung = [tampil, output];

load atribut;

load label;

training = atribut(:,1:5);

a1 = str2num(get(handles.atribut1, 'String'));

a2 = str2num(get(handles.atribut2, 'String'));

a3 = str2num(get(handles.atribut3, 'String'));

a4 = str2num(get(handles.atribut4, 'String'));

a5 = str2num(get(handles.atribut5, 'String'));

inputan = [a1,a2,a3,a4,a5];

hasil = NB(training, label, inputan);

if hasil == 1

set(handles.fieldKDTunggal, 'String', 'A') elseif hasil ==2

set(handles.fieldKDTunggal, 'String', 'B') else

set(handles.fieldKDTunggal, 'String', 'C') end

(49)

4.7 User Interface Sistem

Gambar 4.1 User Interface Sistem

User Interface Sistem ini terbagi atas tiga panel. Panel pertama adalah tampilan untuk melakukan klasifikasi Naïve Bayes menggunakan file dari data mentah yang ada. Dalam pengaplikasiannya, hal pertama yang dilakukan adalah mengunggah file lalu memasukan jumlah atribut yang ingin digunakan dalam perhitungan. Lalu tombol akurasi akan menampilkan hasil akurasi total bersamaan dengan Confusion matrix dari masing-masing fold.

Panel kedua adalah panel untuk uji klasifikasi data kelompok yang dalam pengaplikasiannya hanya perlu memilih file atribut data berkelompok dengan mengklik tombol upload data lalu mengklik tombol klasifikasi untuk mengetahui hasil klasifikasinya.

Panel ketiga adalah tampilan untuk uji data tunggal. Setiap textfield harus diisi dengan angka, menyesuaikan dengan nilai atribut masing- masing atribut. Tombol klasifikasi akan menampilkan hasil klasifikasi berdasarkan nilai atribut yang tertulis.

(50)

34

BAB V. ANALISIS HASIL

5.1 Uji Validasi

5.1.1 Perhitungan Manual Naïve Bayes

Perhitungan manual menggunakan Excel dengan data yang digunakan sebanyak 20 data dengan tiga atribut serta penggunaan 5-fold sebagai pembagi data uji dan data latih. Tabel 5.1 adalah data yang digunakan untuk Uji Validasi.

Tabel 5.1 Data Hitung Manual

Data ke- studyT hangOut freeT kelas

1 4 1 4 A

2 3 1 2 A

3 3 3 3 B

4 4 2 4 C

5 3 2 3 A

6 2 2 5 C

7 4 1 4 A

8 2 3 4 B

9 3 1 4 A

10 4 3 4 B

11 4 1 5 C

12 2 2 3 B

13 4 3 2 B

14 2 2 3 B

15 4 1 5 C

16 3 1 4 A

17 3 1 5 A

18 2 1 1 C

19 2 3 3 B

20 4 2 1 C

(51)

1. Membagi data 5.1 ke dalam 5 fold yang mana setiap fold nantinya akan menjadi data uji dan sisanya menjadi data latih.

Tabel 5.2 Pembagian Fold

Data ke- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2. Menghitung P(c) untuk masing-masing Fold.

a. Menghitung jumlah kelas pada data latih Iterasi 1 (fold 1 sebagai data uji)

A = 5 B=6 C=5

Iterasi 2 (fold 2 sebagai data uji) A = 5 B=6 C=5

Iterasi 3 (fold 3 sebagai data uji) A = 6 B=5 C=5

Iterasi 4 (fold 4 sebagai data uji) A = 6 B=5 C=5

Iterasi 5 (fold 5 sebagai data uji) A = 6 B=6 C=4

b. Membagi langkah a dengan banyaknya data latih Jumlah data latih = 16

Iterasi 1

P(A) = 5/16 P(B)=6/16 P(C)=5/16 = 0.3125 =0.375 =0.3125

Fold 1 Fold 2 Fold 3 Fold 4 Fold 5

(52)

Iterasi 2

P(A) = 5/16 P(B)=6/16 P(C)=5/16 = 0.3125 =0.375 =0.3125

Iterasi 3

P(A) = 6/16 P(B)=5/16 P(C)=5/16 = 0.375 =0.3125 =0.3125

Iterasi 4

P(A) = 6/16 P(B)=5/16 P(C)=5/16 = 0.375 =0.3125 =0.3125

Iterasi 5

P(A) = 6/16 P(B)=6/16 P(C)=4/16 = 0.375 =0.375 =0.25

3. Menghitung P(x|c)

a. Mencari banyak nilai atribut yang berpasangan dengan masing-masing kelas pada data latih yang ditunjukan oleh tabel 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10, 5.11, 5.12, 5.13, 5.14, 5.15, 5.16, dan 5.17.

Iterasi 1

Tabel 5.3 Banyak Nilai Atribut studyT Terhadap Kelas (Iterasi 1)

studyTime A B C

1 0 0 0

2 0 4 2

3 4 0 0

4 1 2 3

(53)

Tabel 5.4 Banyak Nilai Atribut hangOut Terhadap Kelas (Iterasi 1)

Tabel 5.5 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 1)

Iterasi 2

Tabel 5.6 Banyak Nilai Atribut studyT Terhadap Kelas (Iterasi 2)

Tabel 5.7 Banyak Nilai Atribut hangOut Terhadap Kelas (Iterasi 2)

hangOut A B C

1 4 0 3

2 1 2 2

3 0 4 0

4 0 0 0

freeTime A B C

1 0 0 2

2 0 1 0

3 1 3 0

4 3 2 0

5 1 0 3

studyTime A B C

1 0 0 0

2 0 3 1

3 4 1 0

4 1 2 4

hangOut A B C

1 5 0 3

2 0 2 2

3 0 4 0

4 0 0 0

(54)

Tabel 5.8 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 2)

Iterasi 3

Tabel 5.9 Banyak Nilai Atribut studyTime Terhadap Kelas (Iterasi 3)

Tabel 5.10 Banyak Nilai Atribut hangOut Terhadap Kelas (Iterasi 3)

Tabel 5.11 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 3)

freeTime A B C

1 0 0 2

2 1 1 0

3 0 4 0

4 3 1 1

5 1 0 2

studyTime A B C

1 0 0 0

2 0 3 2

3 4 1 0

4 2 1 3

hangOut A B C

1 5 0 2

2 1 1 3

3 0 4 0

4 0 0 0

freeTime A B C

1 0 0 2

2 1 1 0

3 1 3 0

4 3 1 1

5 1 0 2

(55)

Iterasi 4

Tabel 5.12 Banyak Nilai Atribut studyTime Terhadap Kelas (Iterasi 4)

Tabel 5.13 Banyak Nilai Atribut hangOut Terhadap Kelas (Iterasi 4)

Tabel 5.14 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 4)

Iterasi 5

Tabel 5.15 Banyak Nilai Atribut studyTime Terhadap Kelas (Iterasi 5)

studyTime A B C

1 0 0 0

2 0 3 1

3 4 1 0

4 2 2 3

studyTime A B C

1 0 0 0

2 0 3 2

3 4 1 0

4 2 1 3

hangOut A B C

1 5 0 2

2 1 1 3

3 0 4 0

4 0 0 0

freeTime A B C

1 0 0 2

2 1 0 0

3 1 3 0

4 3 2 1

5 1 0 2

(56)

Tabel 5.16 Banyak Nilai Atribut hangOut Terhadap Kelas (Iterasi 5)

Tabel 5.17 Banyak Nilai Atribut freeTime Terhadap Kelas (Iterasi 5)

b. Memasukan Laplace Correction Langkah :

1. Ketika angka di suatu kolom pada langkah 3.a = 0, maka seluruh isi kolom tersebut ditambah dengan 1 dan jumlah kelas pada data latih (langkah 2.a) ditambah dengan banyaknya nilai atribut. Jika tidak lanjut ke langkah 3.

2. P(x|c) = (langkah 3.a+1) / (P(c)+banyaknya nilai atribut) 3. P(x|c) = langkah 3.a / P(c)

Penerapan Laplace Correction dapat dilihat pada tabel 5.18, 5.19, dan 5.20.

hangOut A B C

1 5 0 2

2 1 2 2

3 0 4 0

4 0 0 0

freeTime A B C

1 0 0 0

2 1 1 0

3 1 3 0

4 4 2 1

5 0 0 3

(57)

Iterasi 1

Tabel 5.18 Laplace Correction – studyTime (Iterasi 1)

studyTime A B C

1 0+1=1 0+1=1 0+1=1

2 0+1=1 4+1=5 2+1=3

3 4+1=5 0+1=1 0+1=1

4 1+1=2 2+1=3 3+1=4

Jumlah kelas data latih 5+4=9 6+4=10 5+4=9 Tabel 5.19 Laplace Correction – hangOut (Iterasi 1)

hangOut A B C

1 4+1=5 0+1=1 3+1=4

2 1+1=2 2+1=3 2+1=3

3 0+1=1 4+1=5 0+1=1

4 0+1=1 0+1=1 0+1=1

Jumlah kelas data latih 5+4=9 6+4=10 5+4=9 Tabel 5.20 Laplace Correction – freeTime (Iterasi 1)

freeTime A B C

1 0+1=1 0+1=1 2+1=3

2 0+1=1 1+1=2 0+1=1

3 1+1=2 3+1=4 0+1=1

4 3+1=4 2+1=3 0+1=1

5 1+1=2 0+1=1 3+1=4

Jumlah kelas data latih 5+5=10 6+5=11 5+5=10 P(x|c) Iterasi 1

Tabel 5.21 P(studyTime|c) - Iterasi 1

studyTime A B C

1 1/9=0.111111 1/10=0.1 1/9=0.111111 2 1/9=0.111111 5/10=0.5 3/9=0.333333 3 5/9=0.555556 1/10=0.1 1/9=0.111111 4 2/9=0.222222 3/10=0.3 4/9=0.444444

Gambar

Tabel 2.1 Contoh Confusion Matrix
Gambar 3.1 Blanko Kuisioner
Gambar 3.2 Diagram Blok
Gambar 3.3 Diagram Flowchart Umum Sistem
+7

Referensi

Dokumen terkait

Mengingat gelegar rangka pengaku bersama dengan konfigurasi deknya tidak dapat menghasilkan kekakuan torsional yang besar dari sistem, maka hal-hal tersebut menyebabkan

The assembly process of the ex module is presented, including laser processing of the substrate, inkjet printing of the circuit layout, component attachment using isotropically

Oleh karena itu sesuai dengan tujuan Pembangunan Nasional pada umumnya, dan pembangunan ekonomi khususnya di Indonesia hal paling penting yang sangat mendukung proses

14.2 Terhadap Dokumen Isian Kualifikasi terlambat yang disampaikan melalui pos/jasa pengiriman, Panitia Pengadaan Barang/Jasa Kantor Penanaman Modal Daerah membuka sampul luar

Bagaimana fungsi DCS dalam proses industri, secara khusus seri C-200 produksi Honeywell yang dipakai di Unit Utilitas Batu Bara (UUBB) PT Petrokimia

Penelitian tentang penggunaan Facebook di antara anggota komunitas DTLS ini bertujuan untuk mengetahui dinamika proses produksi pesan antaranggota, fungsi media

dilarapkeun dina pangajaran nulis, salasahijina nya éta Cooperative Integrated Reading and Composition (CIRC). Modél pangajaran CIRC sorangan bisa kagolong kana

- Nilai kekerasan yang relatif rendah sehingga dicoba untuk meningkatkan kekerasan pada permukaannya dengan proses vanadisasi dan diperoleh bahan yang