Jujur, secara umum saya agak kecewa dengan pertanyaan
mahasiswa tingkat akhir yang masuk lewat email, inbox FB dan group FB Intelligent Systems yang saya kelola. Bukan kecewa
dengan kuantitas pertanyaan, tapi kecewa dengan kualitas pertanyaan yang
seharusnya tidak pantas diajukan mahasiswa yang sedang mengerjakan
skripsi/tesis/disertasi. Pertanyaan yang membuktikan bahwa banyak
mahasiswa yang: (1) tidak memahami alur mengerjakan penelitian, (2) tidak
memahami bahwa penelitian itu seharusnya dimulai dengan studi literatur, (3) tidak
berhasil memformulasikan pertanyaan penelitian, (4) dan secara umum tidak
memahami dengan baik metode penelitian. Saya mencoba memberikan gambaran
ringkas dan praktis bagaimana tahapan melakukan penelitian lewat tulisan ini.
Tulisan saya buat khusus untuk mahasiswa di jurusan komputer, tapi secara umum
juga bisa digunakan untuk mahasiswa jurusan lain.
1. TENTUKAN BIDANG GARAPAN KITA (RESEARCH FIELD)
Banyak mahasiswa yang sampai detik-detik terakhir mau
skripsi/tesis masih belum mengerti akan menggeluti bidang (field)
apa di disiplin ilmu computing. Ini agak mengherankan, karena ini berarti
mahasiswa tidak memahami isi mata kuliah yang 3-4 tahun dia ikuti, sehingga
akhirnya tidak mengerti minat dan ketertarikannya di bidang (filed)
apa. Ketika saya dulu mengikuti program undergraduate (S1) di Saitama
University, Jepang, semester 4-5 pun saya sudah bisa menentukan minat dan
ketertarikan saya kira-kira di bidang mana. Pada semester 5, saya juga
sudah harus menentukan akan masuk ke lab penelitian apa (yang disusun
berdasarkan bidang garapan (research field)). Sebenarnya kalau kurikulum
di kampus kita sudah benar, satu mata kuliah itu menunjukkan satu cabang dari
disiplin ilmu komputer, dan otomatis menunjukkan bidang penelitian yang bisa
kita garap. Cara lain untuk melihat bidang garapan adalah dengan melihat
journal ilmiah (transaction) yang ada di asosiasi bidang computing,
contohnya adalah list transaction di ACM, dan IEEE Computer Society. Beberapa bidang garapan di
disiplin ilmu computing, misalnya adalah: Software Engineering, Data
Mining (Knowledge Discovery in Database), Image Processing, Information Retrieval,
Networking, Human Computer Interaction, Soft Computing, Computational
Intelligence, dsb. Sekarang yang penting adalah segera tentukan mana bidang
garapan anda.
Sebagai contoh, saya memutuskan bahwa ketertarikan
saya adalah pada bidang software engineering. Saya lanjutkan gerakan
saya ke tahap kedua, menentukan topik penelitian saya.
2. TENTUKAN TOPIK/TEMA PENELITIAN KITA (RESEARCH
TOPIC)
Setelah bidang garapan ditentukan, sekarang tentukan
topik penelitian kita. Cara termudah menentukan topik atau tema penelitian
kita adalah dengan membaca buku, paper, artikel yang berjudul
“research trends on” dengan diikuti nama bidang yang kita pilih. Contohnya
gunakan keyword: “research trends on software engineering”, kombinasi keyword
pencarian selain itu adalah “research challenge on”, “research topics
on”, dsb. Dari beberapa paper yang kita baca, kita akan ngerti tren
penelitian di bidang yang kita garap apa saja. Kita juga bisa
menganalisa tren penelitian yang muncul di bidang garapan kita
dengan melihat issue (paling tidak sekitar 3 tahun terakhir) dari
journal/transaction yang berhubungan. Beberapa contoh paper tentang
research trend di suatu bidang ada di bawah:
- Liao at al., Data Mining Techniques and Applications: a Decade Review from 2000 to 2011, Expert Systems with Applications 39 (2012)
- Shafay Shamail and Malik Jahan Khan, Research Trends in Software Engineering, 2008
- Kitchenham et al., Systematic Literature Reviews in Software Engineering, Information and Software Technology 51 (2009)
Sebagai contoh, dari membaca series IEEE Transaction on
Software Engineering, dan saya perkuat dengan tulisan Shafay Shamail dan
Kitchenham di atas, saya memutuskan akan mengambil topik penelitian tentang Software
Defect/Fault Prediction. Saya lanjutkan gerakan saya ke tahap berikutnya
yaitu, menentukan masalah penelitian dari topik penelitian yang saya pilih.
3. TENTUKAN MASALAH PENELITIAN KITA (RESEARCH
PROBLEMS)
Setelah ketemu topik atau tema penelitian, kita
maju lagi lebih dalam, kita harus berhasil menemukan masalah penelitian
yang ingin kita angkat dari topik penelitian tersebut. Ini tahapan yang paling
sulit dalam penelitian, dan paling memakan banyak waktu, tapi kalau
masalah penelitian sudah ketemu, jalan penelitian akan mulai
terlihat. Bagaimana cara menentukan masalah penelitian? Cara tercepat adalah
membaca paper dari journal ilmiah, dan mulai dari paper yg sifatnya review
baru kemudian paper yg sifatnya technical. Note that, paper di journal ada dua
jenis. Jenis yang pertama adalah “review paper”, yang membahas review
atau survey suatu topik penelitian. Jenis yang kedua adalah “technical
paper”, yang membahas aspek teknis dari perbaikan metode/algoritma (method
improvement) beserta hasil eksperimen dan evaluasi yang telah dilakukan.
Mulailah dengan membaca paper berjenis “review paper”, karena akan sangat
membantu kita dalam memahami topik penelitian kita secara
mendalam dan komprehensif.
Metode yang digunakan untuk mereview penelitian dan
merangkumkannya dalam “review paper” sudah mulai distandardkan oleh para
peneliti. Di bidang ilmu software engineering, banyak peneliti yang merujuk ke
metode Kitchenham dalam membuat “review paper”, dan judul menggunakan
terminologi yang sama yaitu “Systematic Literature Review” atau disingkat SLR.
Jadi kalau kita ingin menemukan “review paper” yang bagus, coba searching
dengan keyword: “systematic literature review”, disamping tentunya tetap harus
dicoba dengan menggunakan keyword ”review on” atau “survey on”, atau
lebih dalam ke masalah penelitian dengan “research problem on” atau “research
challenge on”. Contoh “review paper” yang baik adalah seperti di bawah.
Ketika saya mengambil topik penelitian tentang software defect/fault
prediction, maka paper pertama dari Hall et al. 2012 adalah paper yang
wajib saya baca pertama kali.
- Hall et al., A Systematic Literature Review on Fault Prediction Performance in Software Engineering, IEEE Transaction on Software Engineering, Vol. 38 No 6 (2012)
- Wen et al., Systematic Literature Review of Machine Learning based Software Development Effort Estimation Models, Information and Software Technology 54 (2012)
- Yang & Wu, 10 Challenging Problems in Data Mining Research, International Journal of Information Technology & Decision Making, Vol. 5, No. 4 (2006)
- Liao et al., Intrusion Detection System: A Comprehensive Review, Journal of Network and Computer Applications 36 (2013)
- Breivold et al., A systematic review of software architecture evolution research, Information and Software Technology 54 (2012) 16
Jangan berhenti, kejar semua “technical paper” yang
ada di daftar referensi “review paper” di atas. Usahakan konsentrasi ke paper
yang diterbitkan dalam journal yang diindex oleh ISI (thomson) atau SCOPUS
(elsevier), supaya kita tidak pusing dengan paper conference yang kadang dibuat
asal-asalan. Masalah penelitian juga kadang bisa kita temukan di bagian future
work/research yang biasanya diletakkan sebelum conclusion dari suatu
paper. Masalah penelitian bisa merupakan masalah baru, yang orang belum pernah
mencoba memecahkannya (originality di masalah penelitian), bisa juga masalah
yang sudah dicoba dipecahkan orang dengan cara dia, dan kita ingin memecahkan
masalah tersebut dengan cara kita (originality di metode untuk memecahkan
masalah) (Dawson, 2009).
Misalnya, bidang garapan saya adalah software
engineering, di mana topik penelitian saya adalah tentang prediksi cacat
software (software defect prediction). Dari hasil studi literatur (baik
review paper maupun technical paper), masalah penelitian yang saya angkat ada
dua, yaitu adanya masalah ”noisy attributes” dan “class
imbalance” pada data set, yang akhirnya menyebabkan akurasi dan
konsistensi (kehandalan) yang rendah pada prediksi cacat software. Saya
kemudian susun landasan referensi yang memperkuat masalah penelitian yang
saya angkat. Rangkuman masalah penelitian (Research Problems (RP)) dan
literatur yang mendukung (literature supports) adalah seperti di bawah.
Dari rangkuman di bawah, terlihat bahwa masalah penelitian (research problem)
yang saya angkat ada dua, saya rangkumkan dalam RP1 (Research Problem 1) dan
RP2 (Research Problem 2).
4. RANGKUMKAN METODE-METODE YANG ADA (STATE-OF-THE-ART
METHODS)
Lakukan studi literatur lagi, pelajari semua
penelitian yang tujuannya memecahkan masalah yang sama dengan yang kita
lakukan. Pahami metode/algoritma terkini yang mereka gunakan untuk memecahkan
masalah penelitian mereka (yang juga menjadi masalah penelitian kita). Ini yang
saya sebut dengan existing methods (metode-metode yang ada) atau state-of-the-art
methods, pada artikel sebelumnya tentang kiat menyusun latar
belakang masalah penelitian.
Dalam bidang computing, metode biasanya berupa
algoritma yang secara sistematis, logis dan matematis menyelesaikan masalah.
Setiap bidang penelitian (field) di computing memiliki metode/algoritma yang
khas untuk menyelesaikan masalah di bidangnya, meskipun beberapa kadang bias
digunakan secara bersama. Contohnya pada bidang image processing, algoritma
neural network digunakan untuk melakukan pengenalan (recognition) wajah,
sidik jari. dsb. Note that identification process di image processing
menganut trilogi detection-segmentation-recognition. Pada bidang data
mining, algoritma neural network biasanya dipakai untuk proses estimasi
dan juga prediksi rentet waktu. Bidang data mining biasanya membagi algoritma
ke dalam 5 peran: estimasi, prediksi/forecasting, klasifikasi, klastering dan
asosiasi. Contoh lain tentang metode, ada di artikel: kiat menyusun latar
belakang masalah penelitian.
5. TENTUKAN METODE YANG KITA USULKAN (PROPOSED
METHOD)
Inilah kekuatan dari penelitian kita. Kita harus bisa
menentukan, membangun dan mengusulkan suatu metode/model (proposed
method/model), yg kita harapkan bisa lebih baik bila dibandingkan
dengan metode-metode yang ada saat ini. Dan keunggulan metode yg kita
usulkan tersebut harus dilandasi (reference), dibuktikan secara matematis, dan
secara empiris lewat hasil eksperimen dan perbandingan dengan metode
yang adas saat ini. Metode atau model yang kita usulkan itu tidak harus
benar-benar baru, dalam artian, bisa saja dari state-of-the-art methods
yang ada dan terakhir muncul (secara publikasi adalah yang paling baru), kita
kemudian “menambahkan” sesuatu (algoritma, koefisien, formula, dsb), yang
akhirnya ketika kita bandingkan dengan metode original, metode kita lebih baik
(lebih cepat, lebih akurat, lebih konsisten, dsb). “Penambahan” yang kita
lakukan dan akhirnya membuat pemecahan masalah menjadi lebih baik itulah yang
disebut dengan kontribusi penelitian (contribution).
Setelah kita yakin dengan metode yang kita usulkan
(tentu harus dilandasi secara kokoh oleh literatur terkini), maka kita susun
Research Questions (RQ) dan Research Objective (RO) dari penelitian kita.
Penelitian yang baik dan terencana harus tersusun sejak awal
desain korelasi antara RP – RQ – RO. Contohnya, dari RP di tahap 3, saya
membuat desain penelitian saya (korelasi RP-RQ-RO) seperti gambar di bawah.
Untuk masalah “noisy attributes” saya mencoba menjawab dengan mencari “metode
(algoritma) attribute weighting apa yang paling baik untuk prediksi cacat
software?”, ini akan menjadi RQ1 saya . Setelah saya berhasil membandingkan
secara empiris berbagai metode attribute weighting yang ada. Maka saya akan
mengambil satu algoritma (metode) yang terbaik/terkini/state-of-the-art
tersebut, dan kemudian mengusulkan improvement (perbaikan) dari algoritma
tersebut. Sehingga untuk RQ2 saya, saya desain menjadi “bagaimana pengaruh
metode attribute weighting yang saya usulkan (perbaiki) pada tingkat
akurasi pada prediksi cacat software?”. Sedangkan RO-nya sendiri akan
menyesuaikan dari RQ yang ada. Untuk RP2 juga secara umum mirip, hanya bukan
masalah akurasi yang saya selesaikan, tapi konsisten dan reliability
(kehandalan) dari classifier.
Jadi dapat disimpulkan bahwa desain penelitian saya
terdiri dari dua masalah penelitian (RP1 dan RP2), empat pertanyaan penelitian
(RQ1-RQ4) dan empat tujuan penelitian (RO1-RO4). Desain penelitian ini akan
menjaga konsistensi dan kesinkronan penelitian kita, sehingga kita tidak
bingung ketika merangkumkan penelitian kita dalam bentuk
skripsi/tesis/disertasi. Dimulai dari dua masalah penelitian di RP1-RP2, ada 4
eksperimen yang kita lakukan untuk menjawab RQ1-RQ4, dan ada 4 kesimpulan yang
akan kita tarik dari hasil penelitian yang kita lakukan.
Dilihat dari 5 tahapan memulai penelitian di atas,
kita harus banyak baca paper. Di mana sumber literatur yang baik? Pertama coba
ke google dan google scholar dulu. Untuk bidang komputer,
berlangganan ACM plus dengan digital library yang berisi jutaan paper hanya
18USD/tahun. Silakan klik di link ini untuk
jadi member. Terus,
kira-kira berapa paper yang harus kita baca untuk menghasilkan penelitian yang
baik? Patokan umum dan best practice untuk melakukan penelitian yang
benar, lurus dan berkualitas, untuk level s1 kita paling tidak harus baca 20-70
paper, untuk level s2 kita sebaiknya membaca 70-200 paper, dan untuk level s3
diperlukan literatur sekitar 200-600 paper. Ini juga
sekaligus menjawab pertanyaan mahasiswa yang sering ngeluh, banyak baca
paper kok malah tambah pusing? Silakan ikuti best practice ini, maka kepala
akan nyaman. Kepala jadi pusing ternyata bukan karena kita banyak membaca, tapi
karena yang kita baca memang ”belum banyak”
Welcome to the jungle!
Tidak ada komentar:
Posting Komentar