Sabtu, 07 April 2018

Mengerjakan Penelitian Tugas Akhir Ilmu Komputer Bagian 1


Saya merupakan mahasiswa tingkat akhir di STMIK Nusa Mandiri dengan jurusan Ilmu Komputer. Saat ini saya sedang menyusun tugas akhir untuk memenuhi salah satu syarat kelulusan, tugas akhir yang harus dikerjakan yaitu melakukan penelitian dibidang ilmu komputer. Bidang garapan (research field) saya ialah rekayasa perangkat lunak (software  engineering) dengan topik penelitian (research topic) cacat perangkat lunak (software defect).

Tujuan saya menulis pengalaman saat mengerjakan tugas akhir ini ialah untuk pembelajaran bagi saya kedepannya ketika akan melakukan penelitian lagi sehingga saya bisa mengevaluasi dari apa yang saya lakukan saat ini supaya nanti ada gambaran apa yang kemudian harus dilakukan.
Dalam tulisan ini saya akan membagi pengalaman mengerjakan tugas akhir ini kedalam beberapa bagian, diantaranya:
1.    Memahami mata kuliah yang dipelajari dan keterkaitannya terhadap cabang ilmu.
Saat kuliah saya harus tahu mata kuliah apa yang saya pelajari dan itu bagian dari cabang ilmu apa, dengan begitu saya bisa fokus mempelajari cabang ilmu tersebut dengan mencari bahan tambahan diluar perkuliahan. Dari semua mata kuliah yang saya pelajari ternyata semuanya ada keterkaitan satu sama lain dengan cabang ilmu rekayasa perangkat lunak (software engineering) jadi saya putuskan untuk tugas akhir akan menggarap bidang ilmu rekayasa perangkat lunak.

2.    Mempelajari masalah yang sedang tren dibidang rekayasa perangkat lunak
Setelah saya memutuskan untuk fokus di rekayasa perangkat lunak kemudian saya mencari tahu masalah apa saja yang sedang tren menjadi bahan penelitian dibidang rekayasa perangkat lunak, caranya dengan menuliskan dimesin pencari seperti google.com dengan kata kunci “research tren on software engineering” cara ini saya dapatkan dari artikelnya romisatriawahono.net, isu yang saya dapatkan dari beberapa paper yang saya baca salah satunya cacat perangkat lunak (fault prediction/software defect) sehingga saya memutuskan topik penelitian yang saya ambil tentang cacat perangkat lunak.

3.    Mencari masalah penelitian
Selanjutnya saya masuk kebagian yang cukup memakan waktu karena dibagian ini saya harus mencari masalah penelitian dibidang cacat perangkat lunak, untungnya saya dapat trik dari artikelnya romisatriawahono.net. Saya mulai mengumpulkan beberapa review paper yang berhubungan dengan cacat perangkat lunak dan membacanya, selanjutnya saya juga mulai mencari technical paper untuk mengetahui hasil eksperimen penelitian sebelumnya. Bagi yang belum tahu, technical paper adalah paper penelitian yang didalamnya berisi hasil eksperimen dari penelitian mengenai topik yang spesifik dan ada hasil yang didapatkan, kalau review paper adalah kumpulan technical paper dengan topik yang sama kemudian ditarik benang merah dari paper-paper yang dipelajari dan dituangkan kedalam sebuah paper.
Masalah penelitian yang saya dapatkan dari hasil mempelajari review paper dan technical paper ialah masalah ketidakseimbangan kelas (imbalanced class) dan kebisingan data (noisy data) pada dataset khususnnya dataset publik NASA MDP.
  
4.    Mencari metode untuk prediksi cacat perangkat lunak
Dari review paper yang saya baca ada beberapa metode yang paling sering digunakan kemudian saya mencari technical papernya untuk membandingkan beberapa metode tersebut, dari beberapa paper yang saya rangkum hasilnya seperti tabel 1.

Tabel 1. Perbandinga metode cacat perangkat lunak
Sumber
Metode
Imbalance Class
Features Selection
Validasi
Datasets
AUC
(Wahono, 2014)
Logistic Regression
-
-
10 Fold Cross Validation
9 NASA
0.797
(Wahono, 2014)
Logistic Regression
Bagging
GA dan PSO
10 Fold Cross Validation
9 NASA
0.794
(Rianto, 2015)
Logistic Regression
Resampling
-
10 Fold Cross Validation
10  NASA
0.856
(Wahono, 2014)
Naive Bayes
Bagging
GA dan PSO
10 Fold Cross Validation
9 NASA
0.781
(Putri, 2015)
Naive Bayes
SMOTE
Information Gain
10 Fold Cross Validation
9 NASA
0.797
(Saifudin, 2015)
Naive Bayes
ADABoost
-
10 Fold Cross Validation
10 NASA
0.603
(Saifudin, 2015)
Naive Bayes
Bagging
-
10 Fold Cross Validation
10 NASA
0.614
(Funitha, 2016)
Hybrid Neuro-Fuzzy Systems with Naïve Bayes
Bagging
Genetic Ant Colony Optimization (GACO)
Cross Validation
4 NASA
 -

Dari beberapa metode yang ada saya kumpulkan semuanya dan saya rangkum kedalam beberapa metode yang menunjukan hasil yang lebih baik dari metode lainnya, seperti terlihat pada tabel 1.
Dari tabel 1 dapat dilihat hasil dari penelitian sebelumnya mengenai masalah ketidakseimbangan keals dan seleksi atribut dengan beberapa metode yang digunakan menunjukan AUC tertinggi dimiliki oleh penelitian yang dilakukan oleh (Rianto, 2015) namun pada penelitian tersebut hanya melakukan resampling terhadap dataset dan tidak melakukan seleksi atribut untuk menemukan atribut yang relevan, berdasarkan hal tersebut saya putuskan untuk melanjutkan penelitian beliau dengan menambahkan teknik seleksi atribut.