20
BAB III
METODOLOGI PENELITIAN DAN PERANCANGAN SISTEM
3.1. Sistematika Penelitian
Sistematika penelitian dalam “Implementasi Algoritma Random Forest Classifier Dalam Melakukan Klasifikasi Kelayakan Edibilitas Pada Jamur” yang dilakukan dapat dijabarkan dengan detail sebagai berikut:
1. Studi Literatur
Studi literatur dilakukan dengan mencari, membaca, dan mempelajari ilmu tentang topik permasalahan terkait dari jurnal, karya tulis ilmiah, dan buku. Teori terkait dengan penelitian seperti teori tentang jamur, praprosesing, data mining, decision tree, ensemble learning, random forest, serta cara deploy algoritma ke aplikasi.
2. Pengumpulan Bahan Penelitian
Bahan–bahan yang digunakan dalam melakukan penelitian ini berupa dataset mushroom classification yang diperoleh berdasarkan referensi dari penelitian yang
dilakukan Pranoto (2019), yang merujuk kepada
https://www.kaggle.com/uciml/mushroom-classification. Dengan jumlah sampel dari dataset yang digunakan sebanyak 8124 dan terdapat 3916 data jamur berlabel poisonous (p) dan 4208 data jamur berlabel edible (e).
3. Perancangan Aplikasi
Aplikasi yang dibuat mempunyai rancangan alur kerja merupakan gabungan dari sistem antarmuka dan routing saat klasifikasi dilakukan sesuai dengan kebutuhan.
21 4. Implementasi
Proses implementasi algoritma dimulai dari pembuatan model klasifikasi dengan menggunakan bahasa pemrograman Python pada Jupyter Notebook sebagai bahan observasi yang akan dijelaskan pada metodologi penelitian. Dilanjutkan dengan pengimplementasian algoritma pada aplikasi berbasis web dengan menggunakan framework Flask dan model yang disimpan dengan Pickle.
5. Pengujian Data dan Sistem
Pengujian data dilakukan dengan perhitungan manual dengan menggunakan persamaan yang digunakan dalam pembuatan random forest, meliputi pembuatan decision tree dengan menggunakan entropy. Pengujian data juga dapat dilakukan pada Jupyter Notebook dengan memasukan array berupa nilai dari setiap atribut dan mengeluarkan klasifikasi berdasarkan label kelas target. Untuk pengujian sistem dilakukan dengan melakukan percobaan langsung ketika aplikasi telah dibangun dan mengeluarkan output sesuai dengan model yang telah dibangun sebelumnya.
6. Penulisan Laporan
Melakukan penulisan laporan penelitian dari tahap awal hingga akhir sebagai bahan dokumentasi tentang penelitian yang telah dilakukan.
3.2. Metodologi Penelitian
Penelitian akan dilakukan dalam beberapa tahap dengan alur yang divisualisasikan dengan flowchart pada Gambar 3.1.
22 Gambar 3.1 Flowchart Alur Implementasi Algoritma Random Forest
23 1. Dataset
Jumlah sampel dari dataset yang digunakan sebanyak 8124 data ciri jamur dengan 23 jenis atribut, yaitu: cap shape, cap surface, cap color, bruises, odor, gill attachment, gill spacing, gill size, gill color, stalk shape, stalk root, stalk surface above ring, stalk surface below ring, veil type, veil color, ring number, ring type, spore print color, population, habitat, dan class sebagai label hasil dari klasifikasi jamur yang akan dilakukan. Data dibagi ke dalam 2 label edible dan poisonous dengan pembagian data edible sebanyak 3916 data dan poisonous sebanyak 4208 dengan perbandingan 48:52, berikut visualisasi pada Gambar 3.2.
Gambar 3.2 Visualisasi Data Dalam Dataset 2. Praproses
Praproses merupakan tahap untuk menormalisasi data yang diperoleh dari dataset. Ini dilakukan agar data dapat menjadi lebih sesuai sehingga proses penelitian menjadi lebih mudah dan efektif untuk mendapatkan nilai yang lebih akurat dan mengurangi waktu komputasi. Praproses yang digunakan pada penelitian ini adalah eliminating useless feature, handling missing values, integer encoding. Flowchart alur dari praproses divisualisasikan pada Gambar 3.2.
Gambar 3.3 Flowchart Pra-Proses
24 A. Eliminating Useless Feature
Eliminasi fitur atau predictor yang tidak berguna akan berdampak pada training time yang dilakukan oleh model (Kononenko, 2014). Pada dataset mushroom classification yang digunakan, terdapat 1 atribut yang hanya memiliki 1 nilai, yaitu atribut ‘veil type’, sehingga fitur ‘veil type’ dieliminasi dengan tujuan mereduksi training time dan mengurangi data yang harus diinput oleh pengguna pada aplikasi.
B. Handling Missing Values
Missing data atau missing values, didefinisikan sebagai nilai dari data yang tidak tersimpan dalam observasi. Missing values dapat mengurangi keakuratan statistik dari suatu penelitian dan menghasilkan estimasi yang bias dan mengarah pada kesimpulan yang tidak valid (Kang, 2013). Dalam dataset mushroom classification yang digunakan, terdapat 1 atribut yang memiliki missing values dengan jumlah yang cukup besar, yaitu atribut ‘stalk-root’. Pendekatan yang dilakukan dalam menangani missing values ini adalah dengan melakukan observasi pada data-data yang ada pada dataset. Missing values yang ada pada ‘stalk-root’
diisi dengan berdasarkan pertimbangan kelas dan beberapa atribut terkait seperti
‘stalk-shape’, dan ‘stalk-surface’.
C. Integer Encoding
Data yang terdapat pada dataset yang digunakan merupakan categorical data.
Data kategorical merupakan predictor yang mengandung nilai berupa label daripada nilai numerik. Beberapa algoritma dalam pembelajaran mesin tidak dapat beroperasi menggunakan data kategorikal secara langsung (Brownlee, 2017).
25 Algoritma tersebut membutuhkan variabel input numerikal untuk melakukan operasinya. Termasuk algoritma random forest, algoritma ini diharuskan untuk menggunakan variabel nilai berupa numerikal sehingga klasifikasi jamur pada penelitian ini mengharuskan konversi nilai-nilai yang ada pada dataset menjadi data numerikal. Konversi dapat dilakukan dengan Integer Encoding, setiap data kategorikal yang berbeda dikonversikan menjadi data integer atau numerikal.
3. Bagi Data
Dalam melakukan prediksi dengan pembelajaran mesin, dibutuhkan pembagian data. Data dibagi menjadi dua bagian berdasarkan tujuannya, yaitu data train digunakan untuk melatih model pembelajaran sebagai contoh agar model dapat sesuai dengan parameter, sedangkan data test digunakan untuk melakukan evaluasi model dan pengujian model data yang sudah dilatih pada data train.
Melakukan pembagian data sesuai dengan decision tree yang diinginkan ke dalam data train dan data test dengan rasio 80:20, dimana data train 80% dan data test 20% dan divisualisasikan pada Gambar 3.4.
Gambar 3.4 Visualisasi Pembagian Data Pada Dataset
Dalam melakukan pembagian data, digunakan fungsi train_test_split yang didapatkan dari sklearn.model_selection. Fungsi ini akan membagi data ke dalam data test dan data train sesuai dengan parameter yang diberikan. Parameter yang akan diberikan dapat dilihat pada implementasi sistem.
26 4. Pembuatan Model
Model merupakan fungsi dari pembelajaran yang akan diimplementasikan.
Model yang akan dibuat adalah random forest classifier dengan parameter yang digunakan adalah sebagai berikut.
A. Random_State
Parameter yang menerima data integer untuk melakukan generate angka acak untuk mengontrol ke-acakan pada bootstraping dari sampel dalam membuat decision tree atau dalam sampel fitur yang perlu dipertimbangkan ketika mencari split node dalam membuat decision tree.
B. N_Estimator
Parameter ini digunakan untuk mendeklarasikan jumlah decision tree yang akan dibuat. Secara optimal pohon yang dibentuk pada klasifikasi ditentukan dengan √𝑝 dan untuk regresi menggunakan p/3 dimana p merupakan jumlah predictor yang digunakan. Dalam melakukan klasifikasi jamur, maka digunakan
√𝑝 sehingga parameter n_estimator yang digunakan pada penelitian ini diberikan nilai 4.
C. Min_Samples_Split
Parameter ini menerima integer yang digunakan untuk menentukan jumlah data sampel yang digunakan dalam memecah internal node pertama pada decision tree. Nilai dari parameter yang digunakan pada penelitian ini adalah 813 yang merupakan 10% dari jumlah data dengan tujuan untuk menekan overfitting (Mantanovani, 2018).
27 D. Max_Features
Merupakan parameter yang menerima integer untuk menentukan atribut atau fitur yang digunakan dalam menentukan split terbaik pada pembentukan decision tree. Pada penelitian ini, max_feature akan ditetapkan menjadi 21 sesuai dengan atribut yang ada pada dataset klasifikasi jamur.
E. Criterion
Parameter criterion merupakan parameter yang menunjukan fungsi yang digunakan dalam melakukan pembentukan decision tree dan mengukur kualitas dari split tersebut. Criterion mendukung fungsi ‘gini’ dan ‘entropy’. Mengingat nilai yang ada pada dataset klasifikasi jamur merupakan variabel diskrit, maka digunakan ‘entropy’ sebagai nilai dari parameter criterion.
5. Klasifikasi dengan RF
Klasifikasi akan dilakukan saat model yang dibuat telah dievaluasikan kepada data test dan data train yang ada. Setelah menyesuaikan, proses klasifikasi dilakukan dengan menerapkan algoritma random forest. Semua proses klasifikasi dilakukan dengan python, untuk mengklasifikasikan jamur menjadi kelas edible dan poisonous dengan 21 atribut. Setiap atribut berisikan kategori dari setiap atribut jamur.
6. Validasi dan Akurasi
Melakukan validasi dengan evaluasi performa, yakni menggunakan confusion matrix. Dari confusion matrix akan didapatkan nilai variabel untuk menghitung accuracy, precision, dan recall. Kemudian nilai ini akan digunakan untuk melakukan komputasi nilai F1.
28 7. Perancangan dan Pembuatan Aplikasi
Perancangan dan pembuatan aplikasi dilakukan dalam beberapa tahap, sebagai berikut:
3.7.1 Flowchart
Pada bagian ini, akan dijelaskan alur kerja aplikasi flowchart yang menjadi target pembuatan pada penelitian ini. Target aplikasi adalah aplikasi sederhana yang akan melakukan klasifikasi berdasarkan input user tentang karakteristik fisik yang terdapat pada jamur. Berikut merupakan flowchart dari aplikasi sederhana untuk klasifikasi.
Gambar 3.5 Flowchart Umum Aplikasi Klasifikasi Jamur
29 Pada gambar 3.5, digambarkan alur kerja dari aplikasi untuk klasifikasi jamur berdasarkan ciri dan karakteristik jamur secara garis besar. Input ciri merupakan awal dari klasifikasi yang mengharuskan user untuk memasukan input berupa karakteristik yang ada pada jamur, seperti ciri pada tudung, batang, dan insang. Form yang telah diinput oleh pengguna akan dikonversi menjadi tipe data np.array untuk nantinya dilakukan klasifikasi. Model didapatkan dari impor file Pickle yang telah dibuat sebelumnya.
Hasil klasifikasi merupakan target label, yakni Edible dan Poisonous.
Edible merupakan label untuk jamur yang dapat dikonsumsi, sedangkan poisonous merupakan label untuk jamur yang tidak dapat dikonsumsi atau beracun. Ketika sistem tidak menemukan label yang menjadi target atau ada kegagalan sistem, maka sistem akan menampilkan error message. Setelah klasifikasi berhasil dilakukan dan ditampilkan, pengguna masih dapat melakukan klasifikasi lagi dengan mengulangi tahap dari pertama, yaitu
‘input ciri’.
3.7.2 Perancangan Antarmuka
Perancangan antarmuka aplikasi ditargetkan akan menampilkan satu halaman, yakni untuk klasifikasi pada halaman utama. Pada rancangan halaman utama terdapat 2 bagian utama. Salah satu bagian utama akan menampilkan beberapa dropdown sesuai dengan jumlah atribut yang dibutuhkan untuk melakukan klasifikasi. Rancangan antarmuka untuk bagian dropdown atribut dapat dilihat pada detail berikut ini:
30 Gambar 3.6 Mockup Antarmuka Bagian Input Dan Submit
Pada gambar 3.6, dapat dilihat mockup bagian input dan submit untuk melakukan klasifikasi. Terdapat beberapa grup untuk mengelompokkan atribut pada bagian yang sama, seperti pada insang terdapat atribut tipe dan warna. Selain itu terdapat satu buah tombol untuk melakukan submit atribut yang telah dipilih untuk diklasifikasikan.
Gambar 3.7 Mockup Antarmuka Bagian Hasil Klasifikasi
31 Pada gambar 3.7, dapat dilihat mockup bagian utama untuk menampilkan hasil klasifikasi. Bagian {{ result }} merupakan hasil klasifikasi dari ciri yang telah disubmit sebelumnya. Klasifikasi dihasilkan dari ciri yang diproses dengan menggunakan model yang telah dibuat.