23 Bab III
Perancangan Sistem
Pada bab ini menjelaskan desain sistem dan metode yang akan dibuat untuk klasifikasi gizi balita berpotensi gizi buruk, normal atau gizi lebih menggunakan metode Naive Bayes.
3.1 Data
Data diperoleh dari hasil penelitian di UPTD Puskesmas Kec.Pakel Kab.Tulungagung dengan jumlah 209 data dengan 4 atribut, serta 1 output. Data penelitian sesuai dengan pemantauan pertumbuhan dan perkembangan balita menggunakan KMS (Kartu Menuju Sehat) pada posyandu. Sebagai bahan rujukan, standar gizi balita didasarkan. Data atribut yang diperoleh terdiri dari : Jenis kelamin, Umur, pengukuran Tinggi Badan dan Berat Badan.
Table 3.1 Atribut Data Balita
No Data Keterangan
1 Jenis Kelamin Jenis Kelamin Balita (Laki- Laki/Perempuan)
2 Umur Umur balita dalam bulan
3 Tinggi Badan Tinggi Badan Balita (Cm) 4 Berat Badan Berat Badan Balita (Kg)
Data tersebut digunakan dalam proses klasifikasi status gizi balita berdasarkan indeks antropometri BB/TB atau berat badan berdasarkan tinggi badan. Contoh data dapat dilihat pada tabel 3.2.
24
Tabel 3.2 Contoh Data Status Gizi Balita Berdasarkan BB/TB
No.Id Jenis Kelamin
Umur (Bulan)
Berat Badan
(kg)
Tinggi Badan
Klasifikasi BB/TB
1 Laki-Laki 2 4 65 Gizi Kurang
2 Perempuan 5 5,7 66 Gizi Kurang
3 Perempuan 6 5,9 82,2 Gizi Kurang
4 Laki-Laki 8 7,3 68 Normal
5 Laki-Laki 6 6,5 67 Gizi Kurang
6 Perempuan 33 17 95 Gizi Lebih
7 Laki-Laki 56 15,8 108 Normal
Tabel 3.2 data status gizi balita berdasarkan berat badan terhadap tinggi badan (BB/TB), dengan hasil klasifikasi gizi kurang, normal, dan gizi lebih. Untuk data yang lebih lengkap dapat dilihat pada lampiran 2.
3.2 Desain Umum Proses Penelitian
Alur proses penelitian dimulai dengan pengumpulan data, pemrosesan data mentah hingga tahap klasifikasi dengan Naive Bayes digambarkan pada diagram alur gambar 3.1.
25
Gambar 3.1 Diagram Alur Proses Penelitian
Secara umum tahap klasifikasi status gizi balita pada penelitian ini digambarkan pada digram alur gambar 3.1. Tahap awal data status gizi balita melalui proses preprocessing data untuk pengolahan data awal. Dari preprocessing data selanjutnya ditentukan pembobotan nilai atribut untuk mengetahui pengaruh atribut terhadap penentuan klasifikasi status gizi. Tahap berikutnya yaitu klasifikasi dengan metode Naive Bayes, serta tahap terakhir yaitu pengujian terhadap klasifikasi yang nantinya menghasilkan nilai akurasi sebagai hasil akhir kinerja metode Naive Bayes dalam penentuan status gizi balita.
3.3 Tahapan Analisis Metode
Untuk mengetahui apakah klasifikasi dengan metode Naive bayes dapat mengklasifikasikan status gizi balita, maka dilakukan analisis kinerja terhadap metode Naive bayes serta pengaruh pembobotan nilai atribut yang terhadap nilai akurasi. Prosedur tahapan analisis dari penelitian dapat dilihat pada gambar 3.2.
26
Gambar 3.2 Tahap Analisis Kinerja Metode
Gambar 3.2 dapat dilihat bahwa dari desain proses penelitian secara umum, dibagi lagi menjadi beberapa tahap yaitu : tahap preprocessing terdapat promrosesan data kategorial dan data scaling. Tahap selanjutnya yaitu proses pembobotan nilai atribut, proses ini dilakukan dengan mencari nilai eror pada setiap atribut. Nilai eror pada atribut digunakan untuk mengetahui apakah berpengaruh terhadap nilai akurasi yang dihasilkan. Selanjutnya proses klasifikasi, setelah dilakukan preprocessing data dan pembobotan nilai atribut maka dilakukan pengklasifikasian status gizi balita dengan Naive Bayes. Hasil dari kinerja Naive Bayes dilakukan pengujian yang menghasilkan nilai akurasi.
27 3.3.1 Data Preprocessing
Data preprocessing dalam hal ini merupakan proses yang dilakukan pada data mentah, dengan cara mengolah data mentah menjadi data yang lebih siap untuk diproses pada metode dan tools yang digunakan sehingga menghasilkan nilai informasi yang lebih valid[18]. Dalam penelitian ini dilakukan beberapa tahap preprocessing pada data sebelum masuk pada pengolahan data.
3.3.1.1 Data Kategorial
Kategorikal data berisi kumpulan informasi yang bentuk kelompok atau grup, dengan tipe data yang tidak memiliki nilai numerik. Jika dilihat pada tabel 3.2 terdapat variabel dengan data kategorikal yaitu jenis kelamin dan kelas klasifikasi status gizi. Kolom atribut jenis kelamin berisi data laki-laki dan perempuan sedangkan kolom klasifikasi status gizi berisi data gizi buruk, normal dan gizi lebih. Dalam machine learning data seperti ini tidak dapat diproses, sehingga perlu dilakukan perubahan data kategorikal menjadi bentuk biner 0 dan 1.
a. Pemrosesan Data Kategorikal Jenis Kelamin
Pemrosesan data kategorikal yang pertama yaitu pada data atribut jenis kelamin. Proses ini dilakukan dengan cara mengubah nilai pada atribut jenis kelamin dengan nilai biner 0 dan 1, menggunakan fungsi label encoder() pada program python. Digunakan listing program python untuk fungsi label encoder pada gambar 3.3 berikut ini.
Gambar 3.3 Listing Program Pemrosesan Data Kategorikal Jenis Kelamin di Python
Pada gambar 3.3 listing program menggunakan fungsi label encoder, proses ini akan mengubah nilai data kategorikal pada variabel jenis kelamin menjadi nilai biner 1 dan 0. Jadi apabila data variabel jenis kelamin berisi laki-laki dan
28
perempuan maka ketika diubah dengan fungsi label encoder menjadi 0 untuk laki- laki dan 1 untuk perempuan.
b. Pemrosesan Data Kategorikal Klasifikasi BB/TB
Tahap pemrosesan data kategorial selanjutnya yaitu pada variabel klasifikasi BB/TB yang berisi kategori gizi buruk, gizi normal, dan gizi lebih. Atribut ini juga termasuk data kategrorikal, maka dilakukan perubahan ke bentuk tipe data numerik dengan menggunakan fungsi one-hot-encoding pada program python.
Listing program pemrosesan kategorikal data pada variabel klasifikasi BB/TB dapat dilihat pada gambar 3.4
Gambar 3.4 Listing Program Pemrosesan Data Kategorikal Klasifikasi BB/TB di Python
Dapat dilihat pada gambar 3.4 listing program pemrosesan data kategorikal pada variabel klasifikasi BB/TB. Fungsi get_dummies pada listing program digunakan untuk mengubah variabel kategorikal menjadi menjadi numerik dengan melakukan proses one hot encoder. Proses ini akan membuat kolom baru dari variabel kategorikal dalam hal ini variabel “klasifikasi” dimana setiap kategori menjadi kolom baru dengan nilai 0 atau 1. Sebagai contoh kategori nilai gizi buruk misalkan diubah menjadi angka 1 dan kategori yang lain angka 0. Sehingga data bernilai 1 untuk gizi buruk, 0 untuk normal dan 0 untuk gizi lebih.
Selanjutnya untuk kategori data normal misalkan diubah menjadi angka 1 dan 0 untuk kategori yang lain. Maka data menjadi 1 untuk normal, 0 untuk gizi buruk dan 0 untuk gizi lebih. Begitupula dengan kategori gizi lebih.
3.3.1.2 Data Scaling
Proses scaling dilakukan untuk membuat data dengan tipe numerikal memiliki rentang nilai (scale) yang sama, sehingga sistem machine learning dapat belajar dengan cepat. Sebagai contoh pada atribut umur memiliki nilai 1 hingga 60 (dalam bulan) sedangkan pada atribut tinggi badan bisa memiliki nilai hingga
29
diatas 100. Perbedaan rentang nilai inilah yang nantinya bisa menimbulkan masalah dalam model machine learning, sehingga perlu adanya proses scaling sehingga jarak antar data menjadi seragam dan mudah untuk dianalisa. Tahap pertama yang dilakukan dalam proses scaling adalah dengan menghitung nilai rata-rata dengan dan standar deviasi dari masing-masing atribut. Selanjutnya menghitung nilai z-score dengan rumus Xstand (Standarisation). Perhitungan menggunakan rumus Xstand (Standardisation) 3.1 berikut ini.
Xstand = (3.1)
Untuk mempermudah proses data scaling ini maka digunakan pemrograman python dengan listing program pada gambar 3.5.
Gambar 3.5 Listing Program Data Scaling di Python
Pada gambar 3.5 listing program data scaling dengan menggunakan fungsi standardscaler() pada program python. Proses data scaling dilakukan pada variabel prediktor (X) yaitu pada data X_train (data variabel prediktor yang menjadi data latih) dan X_test (data variabel prediktor yang menjadi data tes).
Dengan dilakukannya scaling pada dataset dapat menghasilkan data yang seragam sehingga dapat meningkatkan performa dari machine learning menjadi lebih baik.
3.4 Pembobotan Nilai Variabel
Dalam penelitian ini terdapat 2 jenis variabel yaitu variabel dependen dan variabel independen. Variabel independen (X) merupakan variabel yang berdiri sendiri dan tidak bergantung pada variabel lain. Sedangkan variabel dependen (Y) merupakan variabel yang tersusun atau gabungan dari variabel independen. Pada penelitian ini variabel independen terdiri dari jenis kelamin (X1), umur (X2), berat badan (X3), dan tinggi badan (X4). Sedangkan variable dependen atau Y adalah klasifikasi BB/TB. Proses pembobotan nilai variabel pada penelitian ini
30
menggunakan analisis regresi linier berganda. Analisis regresi linier berganda dilakukan untuk menentukan hubungan antara dua hingga lebih variabel independen yang mempengaruhi hasil klasifikasi[19]. Dari analisis regresi linier berganda menghasilkan nilai eror pada setiap variabel independen yang digunakan sebagai dasar pembobotan nilai. Nilai eror menunjukan bahwa variabel independen tidak 100% berpengaruh terhadap penentuan klasifikasi. Berdasarkan rumus persamaan linier regresi berganda 2.3, maka diperoleh persamaan regresi linier berganda pada pemodelan matematika 3.2 berikut ini.
Y = α + β1X1 + β2X2 + β3X3 + β4X4 (3.2) Keterangan :
Y = Status Gizi
α = Intersep (Konstanta) β = koefisien regresi
X1 = variabel independen jenis kelamin X2 = variabel independen umur
X3 = variabel independen berat badan X4 = variabel independen tinggi badan
Penjelasan terbentuknya koefisien β dimulai dengan contoh susunan data tabel 3.3, dimana data sudah melalui tahap proses scaling data.
Tabel 3.3 Susuan Data
No.Id X1 X2 X3 X4 Y
1 0,878172216 -2,264288177 -2,218077256 -2,487708148 1,964806636 2 0,878172216 -2,116990781 -1,614022705 -2,200582512 1,964806636 3 -1,138728807 -2,043342083 -1,823118511 -2,391999602 1,964806636 4 -1,138728807 -1,969693385 -1,776652776 -0,841521173 1,964806636
... ... ... ... ... ...
209 0,878172216 1,860038919 3,241646572 2,01059347 1,936491673
31
Pada tabel 3.3 terdapat contoh susunan data yang menunjukan variabel independen X1 hingga X4 dan Y sebagai variable dependen. Susunan data ini merupakan data status gizi balita yang telah melalui data scaling pada tahap preprocessing data, berjumlah sebanyak 209 data. Dari persamaan matematika 3.2 untuk menentukan nilai konstanta (β) dari masing-masing atribut (X) dan Y dengan penggunaan matriks. Sehingga didapatkan susunan matriks X dan Y berdasarkan susunan data tabel 3.3 sebagai berikut.
[
]
[ ]
[
]
[
]
x [
]
[
]
Dari persamaan diatas diperoleh nilai β sehingga dapat disusun persamaan regresi dengan persamaan 3.6 berikut ini
Y = 3 + 0,1153 X1 + -5,275 X2 + 1,9385 X3 + 0,1985 X4 (3.3) Langkah selanjutnya yaitu dengan menghitung nilai varians dari X dengan rumus 3.7 berikut ini
var(X) = (3.4)
untuk mencari nilai varian dari x maka menggunakan rumus 3.7, dimana
merupakan nilai dugaan dan adalah nilai invers dari X. Sehingga didapatkan perhitungan untuk nilai varian dari x adalah sebagai berikut
32 var(X) = 0,000469631x
[
]
var(X) = [
]
Dari hasil perhitungan nilai varian dari x, maka tahap selanjutnya dengan mencari nilai eror di setiap varian dari x. Dengan menggunakan rumus 3.8 berikut ini
eror = √ (3.5)
Dari rumus 3.8 diatas dihasilkan nilai perhitungan nilai eror dari masing-masing varian(x) yaitu X1 = 0,075063982, X2 = 4,237218194, X3 = 0,921023317 dan X4
= 3,770593975. Nilai eror pada masing-masing variabel independen (X) ini nantinya akan digunakan untuk melihat pengaruh terhadap hasil klasifikasi.
3.5 Model Klasifikasi Naive Bayes
Naive Bayes menggunakan probabilitas dan metode statistik untuk mengklasifikasi berdasarkan pengalaman masa lalu. Proses klasifikasi menentukan hasil target (Y) dapat diperkirakan berdasarkan peluang pada beberapa sampel uji variabel (X) yang sedang diamati. Dalam proses klasifikasi memerlukan sejumlah pentunjuk untuk menentukan kelas yang sesuai dengan data sampel yang dianalisis. Oleh karena itu terdapat variabel X sebagai prediktor untuk menentukan kelas klasifikasinya. Pada penelitian ini variabel independen (X) yaitu jenis kelamin, berat badan dan tinggi badan, sedangkan variabel dependen (Y) yaitu berupa status gizi kurang, normal dan gizi lebih. Tahap pemodelan klasifikasi dengan metode Naive Bayes dilakukan dengan program python dengan proses sebagai berikut :
33 3.5.1 Data Training dan Data Testing
Machine learning merupakan sebuah sistem yang dirancang untuk mempelajari informasi baru dari data dan memecahkan suatu masalah. Proses belajar yang dilakukan sistem dilakukan melalui data training. Data training merupakan bagian dari dataset yang digunakan melatih sistem untuk membuat prediksi atau menjalankan fungsi sebuah algoritma[18, p. 35]. Setelah proses belajar dari data training, maka kita perlu tahu performa dari sistem dengan cara tes dengan menggunakan data testing. Data testing merupakan bagian dataset yang digunakan untuk menguji performa dari sistem untuk melihat nilai keakuratannya. Pembagian data training dan data testing dilakukan pada program python dengan listing program pada gambar 3.6.
Gambar 3.6 Listing Program Pembagian Data Training dan Data testing Pada gambar 3.6 listing program pembagian data training dan data testing dengan library train_test_split pada program python. X_train merupakan pendefinisian data X (variabel independen) yang dijadikan sebagai data latih(data training), sedangkan x_test merupakan pendefinisian sebagai data X (variabel independen) yang menjadi data testing. Untuk variabel dependen (Y), y_train didefinisikan sebagai data variabel dependen yang dijadikan sebagai data latih (data training), sedangkan y_test pendefinisian sebagai data variabel depanden sebagai data tes.
Pembagian proporsi data test (test_size) dalam penelitian ini digunakan sebesar 25%, sedangkan untuk data latih (data training) sebesar 75%.
3.5.2 Klasifikasi Naive Bayes
Proses klasifikasi dilakukan pada data yang telah di preprocessing, serta telah melalui tahap pembobotan nilai variabel. Data yang digunakan sebanyak 209 data dengan 4 variabel prediktor yang menghasilkan 3 kelas label dimana 43 data bernilai gizi kurang, 122 data bernilai gizi normal dan 44 data dengan nilai gizi lebih. Proses klasifikasi dilakukan dengan program python yang menggunakan listing program pada gambar 3.7
34
Gambar 3.7 Listing Program Naive Bayes di Python
Gambar 3.7 listing program naive bayes sebagai metode yang digunakan untuk klasifikasi status gizi balita, untuk membangun model klasifikasi digunakan data train (x_train) dan y_train (y_train). Sedangkan untuk mengukur sejauh mana model klasifikasi berhasil melakukan klasifikasi menggunakan fungsi predict, dimana proses ini menggunakan data variabel independen(X) yang menjadi data testing (x_test) untuk menghasilkan nilai prediksi.
3.5.3 Evaluasi Model Klasifikasi
Untuk mengetahui performa dari model klasifikasi yang telah terbentuk, maka dilakukan evaluasi pada model klasifikasi. Evaluasi model klasifikasi dilihat dari seberapa besar nilai akurasi yang didapatkan. Nilai akurasi menunjukan kedekatan hasil prediksi dengan nilai yang sebenarnya. Listing program python untuk menghasilkan nilai akurasi pada gambar 3.8 berikut ini.
Gambar 3.8 Listing Program Nilai Akurasi di Python
Pada gambar 3.8 listing program untuk evaluasi model klasifikasi dengan melihat hasil nilai akurasi menggunakan library accuracy_score di python. Nilai akurasi didapatkan dari data variabel dependen (pred_NB) yang dapat diprediksi dengan benar sesuai dengan y_test.
3.6 Klasifikasi Pada Data Baru
35
Selain evaluasi model klasifikasi dengan melihat hasil akurasi, dilakukan juga evaluasi model dengan input data baru. Dalam hal ini data baru yang di input merupakan data yang tidak termasuk ke dalam data test. Dari evaluasi dengan data baru ini maka dapat diketahui apakah model klasifikasi yang telah terbentuk mampu memprediksi data yang belum pernah ada sebelumnya. Untuk menghasilkan prediksi dari input data baru ini maka digunakan listing program python pada gambar 3.9 berikut ini.
Gambar 3.9 Listing Program Prediksi Data Baru di Python
Pada gambar 3.9 listing program untuk prediksi data baru menggunakan library naive bayes di python. Dari listing program dapat dilihat bahwa input data baru menggunakan 4 variabel independen, sebagai contoh pada program di inputkan data dengan value jenis kelamin laki-laki (1), umur 5 bulan, berat badan 17 kg, dan tinggi badan 89 cm, maka menggunakan fungsi predict(test) nantinya didapatkan hasil prediksi dari input data baru tersebut.