Sistem Deteksi Cacat Perangkat Lunak Berbasis Aturan Menggunakan Decision Tree

  

Sistem Deteksi Cacat Perangkat Lunak Berbasis

Aturan Menggunakan Decision Tree

Bayu Priyambadha

  Metode klasifikasi dapat dijadikan sebagai alat deteksi sebuah data. Beberapa metode klasifikasi telah dikembangkan dan digunakan pada kasus pendeteksian cacat untuk meningkatkan kualitas perangkat lunak (Bouktif dkk, 2010; Catal, 2010; Iliev dkk, 2012; Khoshgoftaar & Seliya, 2002; Zhang, 2009; Zhang dkk, 2007). Dalam sebuah ulasan menyatakan bahwa, beberapa peneliti telah menggunakan metode machine learning dan statistika untuk melakukan prediksi terhadap cacat perangkat lunak (Catal, 2010). Salah satu metode adalah metode klasifikasi berdasarkan aturan (rule-based classification) (Chen & Hung, 2009). Dengan metode ini, aturan atau rule menjadi inti pemrosesan pada proses klasifikasi. Proses pembentukan aturan merupakan proses yang tidak mudah. Sebuah sistem klasifikasi berbasis aturan akan sangat efektif apabila aturan dapat dibangkitkan secara otomatis. Terdapat beberapa penelitian yang membahas tentang optimalisasi pembentukan rule (Chen & Hung, 2009). Di sisi lain, banyak penelitian yang menggunakan NASA Defect

  Universitas Brawijaya

  bayu.priyambadha@ub.ac.id Siti Rochimah

  Jurusan Teknik Informatika Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember

  siti@its-sby.edu ABSTRAK

  Penjaminan kualitas perangkat lunak dapat dilakukan di setiap langkah dalam proses pengembangan perangkat lunak. Cacat adalah hal yang harus dihindari dalam pengembangan perangkat lunak. Pendeteksian cacat sedini mungkin merupakan sebuah langkah penjaminan kualitas perangkat lunak. Indikator cacat pada perangkat lunak dapat diketahui dari kompleksitas kode program yang dikembangkan. Dalam penelitian ini digunakan tiga metode pengukuran kompleksitas kode antara lain yaitu, Lines of Code (LOC),

  McCabe’s Cyclomatic Complexity

  dan Halstead’s Volume. Tujuan penelitian ini adalah otomatisasi proses pendeteksian cacat pada perangkat lunak berdasarkan nilai kompleksitas kode program dengan menggunakan metode klasifikasi berbasis aturan. Aturan-aturan pada metode klasifikasi dibangkitkan menggunakan algoritma Decision Tree. Aturan-aturan tersebut diterjemahkan menjadi Semantic Web Rule Language (SWRL) untuk diimplementasikan pada sebuah ontologi. Ontologi dan SWRL disimulasikan pada aplikasi Protégé sehingga proses deteksi dapat dilakukan dengan cara otomatis. Sistem pendeteksi cacat berbasis aturan dengan pembangkit aturan

  decision tree menghasilkan tingkat keakuratan sebesar 0,933,

  yang berarti bahwa sebanyak 93% dari data dapat diprediksi dengan benar.

  Kata Kunci

  Aturan, Decision Tree, Deteksi Cacat, Kualitas Perangkat Lunak, Perangkat Lunak.

  Program Studi Teknik Informatika Program Teknologi Informasi dan Ilmu Komputer

  untuk melakukan simulasi pendeteksian cacat pada perangkat lunak (Bouktif dkk, 2010; Catal, 2010; Zhang, 2009; Zhang dkk, 2007). Namun, sangat sedikit informasi yang menjelaskan tentang penerapan metode klasifikasi berbasis aturan pada dataset NASA dengan proses pembangkitan aturan secara otomatis. Pada penelitian Tappolet dkk (2010) dijelaskan sebuah mekanisme analisa perangkat lunak khususnya pendeteksian code smell dengan pendekatan semantik web. Cacat dapat mungkin ditimbulkan karena adanya code smell dalam kode program. Pendekatan semantik yang digunakan adalah menggunakan ontologi sebagai representasi data dan adanya aturan yang diterapkan untuk proses pendeteksian. Proses pendefinisian aturan dilakukan dengan cara manual dengan menggunakan DL (Description

  Dataset

1. PENDAHULUAN

  , cacat atau defect adalah kesalahan langkah, proses dan pendefinisian data pada program komputer atau perangkat lunak. Proses penemuan cacat pada perangkat lunak sering kali memakan waktu yang sangat panjang, sehingga dapat berpengaruh terhadap biaya yang dikeluarkan pihak pengembang (Zhang dkk, 2007). Biaya akan dapat dipangkas apabila proses penemuan cacat perangkat lunak dapat dipercepat. Oleh karena itu, sebuah cara yang efektif dan efisien diperlukan oleh pengembang perangkat lunak untuk mendeteksi cacat dalam pengembangan perangkat lunak.

  Terminology (1990)

  Logic

  ). Dalam hal ini, pembangkitan sebuah aturan secara otomatis dirasa akan sangat berguna dalam peningkatan kecepatan dalam proses deteksi cacat. Penelitian ini bertujuan untuk merancang mekanisme otomatis proses pendeteksian cacat pada perangkat lunak berdasarkan nilai kompleksitas kode program dengan menggunakan metode klasifikasi berbasis aturan. Aturan-aturan pada metode klasifikasi dibangkitkan menggunakan algoritma Decision Tree berdasarkan dari dataset yang diperoleh dari NASA Defect

  Dataset.

  Pada

  NASA Defect Dataset

  , data yang dipertimbangkan menjadi acuan pembangkitan aturan adalah metrik-metrik kompleksitas kode. Penelitian Zhang (2009) dan Zhang dkk (2007) menyimpulkan bahwa pendeteksian cacat dapat diliat dari tingkat kompleksitas kode.

  Dalam pengembangan sebuah perangkat lunak, seorang manajer harus mempertimbangkan faktor waktu dan biaya agar tidak mengalami kerugian. Manajer pengembang perangkat lunak sering kali mengalami kesulitan dalam penentuan biaya dan waktu pada fase pengujian (Zhang dkk, 2007). Fase pengujian perangkat lunak adalah fase dimana dilakukan pengujian terhadap perangkat lunak sebelum perangkat lunak tersebut diberikan kepada pihak klien. Fase pengujian berkaitan dengan usaha menjaga kualitas perangkat lunak yang dihasilkan. Dalam fase tersebut dapat ditemukan beberapa cacat perangkat lunak (Catal, 2010). Menurut IEEE Standard Glossary of Software Engineering

2. PENELITIAN TERDAHULU

   Pengumpulan Data Penelitian ini menggunakan dataset dari NASA public dataset yang diterbitkan oleh repositori PROMISE. Dataset untuk kepentingan penelitian ini adalah dataset yang memuat catatan cacat perangkat lunak yang terjadi pada NASA. Dari data yang diambil, hanya beberapa elemen data yang dipertimbangkan, yaitu Line of Code (LOC),

  ) dapat diekstrak dari sebuah dataset yang di dalamnya terdapat label (class) untuk setiap datanya. Chen & Hung (2009) menyimpulkan pada akhir penelitiannya bahwa, dengan melakukan peringkasan aturan terdapat dua keuntungan. Pertama, aturan lebih mudah dibaca, lebih ringkas dan lebih mudah untuk digunakan sebagai classifier. Kedua, lebih akurat dibandingkan dengan metode biasa.

  2.4 Evaluasi Penelitian Terdahulu

  Dari beberapa penelitian yang sudah dilakukan (Bouktif dkk, 2010; Catal, 2010; Iliev dkk, 2012; Khoshgoftaar & Seliya, 2002; Zhang, 2009; Zhang dkk, 2007; Tappolet dkk, 2010), maka di penelitian ini, dirancang sebuah metode deteksi cacat dengan pendekatan berbasis aturan (rule-based system) dengan proses pembangkitan aturan (rule) secara otomatis dengan menggunakan Decision Tree. Proses pembangkitan aturan berdasarkan pada dataset NASA dari repositori PROMISE.

  Proses pembangkitan aturan secara otomatis ini sebagai penambahan dari beberapa implementasi sistem serupa dalam penelitian terdahulu.

  3. METODOLOGI

  Penelitian ini dikerjakan dengan beberapa langkah, antara lain pengumpulan data, pendefinisian rule dan klasifikasi data. Gambar 1 menggambarkan urutan metode dalam penyelesaian penelitian ini.

  Gambar 1. Urutan Metode

  McCabe’s Cyclomatic Complexity

  Hung (2009) menjelaskan bahwa, aturan asosiatif (associative

  dan Halstead’s Volume karena ketiga metrik tersebut merupakan metrik untuk mengukur tingkat kompleksitas kode program (Zhang, 2009). Beberapa atribut yang digunakan dalam penentuan cacat dijelaskan pada Tabel 1.

  Tabel 1. Atribut-atribut NASA Dataset (Promise Software Engineering Repository )

  Atribut Keterangan Loc

  McCabe LOC

  V(g)

  McCabe cyclomatic complexity Pengumpulan Data

  Pendefinisian Rule Klasifikasi Data

  Perhitungan Akurasi

  rule

  associative rule menggunakan metode decision tree. Chen &

  2.1 Hubungan Line of Code dan Defect

  Metode tersebut berfungsi untuk mencari hubungan antara beberapa atribut pada sebuah data (Chen & Hung, 2009). Pada penerapannya metode ini sering digunakan pada database berskala besar untuk mencari pola data. Chen & Hung (2009) telah melakukan sebuah penelitian untuk merangkum beberapa

  2.3 Associative Classification Rules Association Rule adalah sebuah metode pada data mining.

  Zhang (2009) dan Zhang dkk (2007) mengungkapkan bahwa ada hubungan antara karakteristik eksternal (kualitas) dengan karakteristik internal (ukuran) perangkat lunak. Jumlah baris program atau Line of Code (LOC) adalah metrik pengukuran ukuran perangkat lunak. Terdapat hubungan antara LOC dengan cacat perangkat lunak. Dimana, cacat berpengaruh terhadap kualitas perangkat lunak yang dihasilkan. Selain itu terdapat indikator lain yang dapat dipertimbangkan dalam pendeteksian cacat antara lain, McCabe’s Cyclomatic

  Complexity dan Halstead’s Volume. McCabe’s Cyclomatic Complexity dan Halstead’s Volume adalah atribut yang sering

  atau secara umum digunakan untuk menghitung tingkat kompleksitas kode program (Zhang dkk, 2007).

  2.2 Overview Metode Pendeteksi Cacat

  2.2.1 Metode Machine Learning dan Statistika

  Menurut Catal (2010), dalam penelitian kurung waktu tahun 1990

  • – 2009, telah dilakukan penelitian yang berkaitan dengan pendeteksian cacat perangkat lunak. Penelitian yang berkaitan dengan pendeteksian cacat pada perangkat lunak rata-rata menggunakan pendekatan machine learning dan statistika dengan menggunakan dataset NASA dari repositori PROMISE. Bouktif dkk (2010), melakukan pengelompokan terhadap metode deteksi cacat yang sudah pernah dilakukan menjadi dua golongan. Pertama, fakta atau pengetahuan direpresentasikan dalam bentuk hubungan sebab akibat, contohnya adalah

  Khoshgoftaar & Seliya (2002), menggunakan metode klasifikasi kualitas perangkat lunak berbasis tree. Pada penelitian ini, proses klasifikasi menggunakan algoritma SPRINT Decision Tree. Algoritma Decision Tree adalah alat pendukung keputusan yang tergambar dalam bentuk tree yang menghubungkan antara fakta. Fakta-fakta tersebut terhubung dalam hubungan sebab akibat. Algoritma SPRINT memiliki kemampuan untuk memangkas beberapa cabang berdasarkan prinsip MDL (Minimum Description Length). Algoritma ini berfungsi untuk membentuk sebuah model estimasi kualitas perangkat lunak dengan memprediksi kemungkinan terjadinya kesalahan dari klas modul pada perangkat lunak. Model tree yang dihasilkan merupakan representasi hubungan sebab akibat dari fakta-fakta yang ada. Dengan fitur yang lebih baik dibandingkan dengan algoritma decision tree biasa, SPRINT memiliki tingkat akurasi yang lebih baik.

  banyak lagi. Golongan kedua adalah representasi pengetahuan dengan pendekatan statistika dan relasi regresi, contohnya

  decision tree, bayesian classifier, rule based system dan masih

  2.2.2 Metode Ontologi

  Iliev dkk (2012) telah melakukan pendeksian cacat perangkat lunak dengan pendekatan ontologi. Menurut Iliev dkk (2012), ontologi, penalaran dan klasifikasi otomatis merupakan teknik

  Artificial Intelligence . Dalam penelitian tersebut digunakan

  informasi yang ada pada dokumen desain, spesifikasi kebutuhan dan dokumen testing. Tappolet dkk (2010) dijelaskan sebuah mekanisme analisa perangkat lunak khususnya pendeteksian code smell dengan pendekatan semantik web. Dalam penelitian ini Tappolet menggunakan ontologi sebagai representasi data dan aturan sebagai pemroses data. Aturan berasosiasi dengan fitur

  reasoner untuk melakukan pembangkitan informasi tambahan

  dari fakta-fakta yang terdapat pada ontologi. Fakta-fakta tersebut menjadi dasar dalam analisa keberadaan code smell pada kode. Pada penelitian Tappolet, aturan didefinisikan secara manual dalam bentuk DL (Description Logic).

  neural network, regression tree, dan linear regresion .

  <80 >=80

  Gambar 2 menjelaskan hubungan LOC_TOTAL dengan cacat perangkat lunak. Dari skema tree tersebut, jumlah LOC lebih dari sama dengan 80 menunjukkan adanya kemungkinan cacat. Sebaliknya, jumlah LOC kurang dari 80 menunjukkan tidak adanya kemungkinan cacat. Skema diatas dapat diterjemahkan menjadi aturan yang kemudian direpresentasikan dalam sintak SWRL. Rule pertama dapat digambarkan sebagai berikut : Loc_total(?x), greaterThanEqual(?x,80) => Defect(?x) Rule kedua digambarkan sebagai berikut : Loc_total(?x), lessThan (?x,80) => Not_Defect(?x) SWRL yang dihasilkan pada proses ini akan diterapkan pada sebuah ontologi untuk disimulasikan pada Protégé. Protégé adalah sebuah aplikasi editor ontologi, dimana disana dapat dibuat sebuah ontologi dan aturan untuk melakukan simulasi pencarian atau penemuan data (Noy dkk, 2001). Proses klasifikasi secara otomatis dilakukan dengan memasukkan data kode pada Protégé untuk dianalisa akan berdampak cacat (defect) atau tidak. Data kode yang dimasukkan dalam sistem adalah berupa informasi kompleksitas kode berdasarkan metrik

  Web Rule Language (SWRL) yang nantinya diterapkan pada

  ontologi sebagai simulasi proses klasifikasi. Semantic Web

  Rule Language (SWRL) adalah sebuah aturan yang

  diimplementasikan pada ontologi, yang berfungsi untuk menghubungkan fakta-fakta dengan hubungan sebab akibat (Horrocks dkk, 2004). Proses transformasi dari bentuk tree ke bentuk SWRL dilakukan dengan cara manual.

  Berikutnya dijelaskan sebuah contoh mekanisme transformasi dari tree menjadi aturan. Dalam contoh ini, diasumsikan skema yang tergambar pada Gambar 2 adalah skema yang muncul setelah proses pembangkitan tree dengan metode decision tree. Angka 80 yang muncul pada skema tersebut adalah angka yang tidak sebenarnya yang berfungsi sebagai contoh kasus dalam penjelasan transformasi dari tree menjadi aturan.

  Gambar 2. Contoh Gambaran Aturan dalam Notasi Pohon

  LOC , McCabe’s Cyclomatic Complexity dan Halstead’s Volume .

  Total_Op Total operators Total_Opnd Total operands branchCount

   Klasifikasi Data Pada penelitian ini, pedekatan yang dilakukan adalah pendeteksian cacat perangkat lunak dilakukan dengan sebuah alat yang disebut ontologi. Data dari dataset diseleksi menggunakan ontologi sehingga secara otomatis dapat diklasifikasikan sebagai cacat atau tidak cacat. Proses klasifikasi melibatkan ontologi itu sendiri dan SWRL rule yang telah didefinisikan sebelumnya. Skema proses klasifikasi data digambarkan pada Gambar 3.

  Gambar 3. Skema Proses Klasifikasi

  Ontologi yang sudah ditambahkan dengan SWRL sebagai rule berperan sebagai classifier. Keduannya dijalankan pada Protégé. Protégé memiliki fitur aplikasi reasoner yang berfungsi sebagai engine untuk mengaktifkan rule yang sudah dimasukkan. Apabila rule sudah aktif maka proses klasifikasi data dapat dilakukan.

  Proses klasifikasi adalah proses melakukan pencarian sebuah data yang dilakukan terhadap sebuah ontologi. Data inputan sistem adalah kompleksitas kode berdasarkan tiga metrik. Data tersebut direpresentasikan sebagai individu data pada ontologi. Individu data menjadi kunci untuk melakukan pencarian pada ontologi. Ketika proses pencarian dilakukan terhadap ontologi, disanalah terjadi proses inferensi individu data oleh reasoner yang sudah aktif. Aturan yang sudah ditanamkan pada ontologi akan diterapkan pada individu-individu data. Hasil akhir dari

  LOC_TOTAL Defect Non-Defect

  Dataset Ontologi

  Count of branch  Pendefinisian Rule Pendefinisian rule adalah tahapan yang paling penting. Rule berfungsi sebagai classifier data sehingga diketahui bahwa data tergolong rawan cacat atau tidak. Rule digali dari pola data yang ada pada dataset NASA. Metode penggalian rule (aturan) menggunakan metode yang ada pada kelompok model pertama yang didefinisikan oleh Bouktif dkk (2010). Dalam kelompok pertama terdapat beberapa metode antara lain, decision tree dan bayesian. Dalam penelitian ini, rule atau aturan dibangkitkan dengan menggunakan metode decision tree, karena metode tersebut dapat menghasilkan representasi data dalam bentuk tree. Dari tree yang dihasilkan tersebut, dapat diambil beberapa hubungan sebab akibat yang nantinya dapat dirubah menjadi sebuah aturan. Aturan yang dihasilkan dari proses pembangkitan menggunakan decision tree, diterjemahkan menjadi Semantic

  Unique operands

  Ev(g)

  B Halstead T Halstead time estimator lOCode

  McCabe essential complexity

  iv(g) McCabe design complexity N

  Halstead total operators + operands

  V Halstead volume L Halstead program length D Halstead difficulty

  I Halstead intelligence E

  Halstead effort

  Halstead line count

  Uniq_Op Unique operators Uniq_Opnd

  lOComment

  Halstead count of lines of comments

  lOBlank

  Halstead count of blank lines

  lOCodeAndComment

  Count of Code and Comments

  • SWRL Status Cacat
proses ini adalah status cacat sebuah kode (cacat atau tidak cacat).

   Perhitungan Akurasi Rumus untuk menghitung tingkat keakuratan adalah rumus yang sama pada penelitian Zhang (2009). Rumus tersebut tergambar pada seperti berikut.

  =

  (1) Dimana, TP (True Positif) adalah data yang benar cacat (Defect) dan diprediksi sebagai cacat. TN (True Negatif) adalah data yang bukan cacat (Not Defect) tetapi diprediksi bukan cacat (Not Defect). FP (False Positif) adalah data yang sebenarnya bukan cacat (Not Defect) tetapi diprediksi cacat (Defect). Dan, FN (False Negatif) adalah data yang sebenarnya cacat (Defect) dan diprediksi bukan cacat (Not Defect). Sedangkan P adalah jumlah data aktual cacat (Defect), dan N adalah jumlah data aktual bukan cacat (Not Defect).

  Studi kasus dilakukan dengan menerapkan 3 tahapan yang sudah dijelaskan sebelumnya. Penerapan studi kasus dilakukan pada dataset NASA PC1. Dari dataset NASA PC1 didapatkan 21 atribut data yang mewakili nilai Line of Code (LOC),

  McCabe’s Cyclomatic Complexity dan Halstead’s Volume.

  Pembangunan ontologi dilakukan dengan merancang klas-klas pengetahuan tentang kode, cacat (defect) dan kompleksitas kode, lalu menghubungkan setiap class. Sehinggan terbentuk sebuah domain pengetahuan tentang kode, cacat dan kompleksitas kode. Ontologi pada penelitian ini digambarkan pada Gambar 4.

  Proses pembangkitan aturan pada penelitian ini menduduki posisi yang sangat penting. Aturan merupakan sebuah proses logika yang berfungsi sebagai alat klasifikasi data. Rule dibangkitkan dengan menggunakan metode decision tree. Dalam penelitian ini pembangkitan aturan menggunakan weka. Weka adalah aplikasi yang menyediakan fungsi algoritma- algoritma machine learning secara komprehensif sehingga mudah untuk digunakan (Hall dkk, 2009). Dengan menggunakan Weka, proses pembangkitan tree dapat dilakukan dengan lebih cepat. Hasil yang didapatkan dari weka berdasarkan dataset NASA PC1 dapat digambarkan pada Gambar 5.

4. STUDI KASUS

  

Gambar 4. Ontologi Sistem

  lOComment <= 31 | lOBlank <= 6 | | L <= 0.42: false (697.0/9.0) | | L > 0.42 | | | uniq_Opnd <= 4: false (42.0/1.0) | | | uniq_Opnd > 4 | | | | lOBlank <= 0: true (8.0) | | | | lOBlank > 0: false (5.0) | lOBlank > 6 | | locCodeAndComment <= 0 | | | lOComment <= 1 | | | | E <= 6345.71 | | | | | L <= 0.1: false (15.0) | | | | | L > 0.1 | | | | | | uniq_Op <= 12: false (18.0/4.0) | | | | | | uniq_Op > 12: true (3.0) | | | | E > 6345.71 | | | | | D <= 13.73: true (4.0) | | | | | D > 13.73: false (17.0/2.0) | | | lOComment > 1: false (143.0/7.0) | | locCodeAndComment > 0 | | | uniq_Op <= 28 | | | | locCodeAndComment <= 9 | | | | | I <= 27.6: false (19.0) | | | | | I > 27.6

  | | | | | | lOBlank <= 12 | | | | | | | lOComment <= 9 | | | | | | | | lOComment <= 0: false (7.0) | | | | | | | | lOComment > 0 | | | | | | | | | locCodeAndComment <= 4: true (13.0/2.0) | | | | | | | | | locCodeAndComment > 4 | | | | | | | | | | v(g) <= 3: false (2.0) | | | | | | | | | | v(g) > 3: true (3.0/1.0) | | | | | | | lOComment > 9: false (10.0/1.0) | | | | | | lOBlank > 12: false (41.0/4.0) | | | | locCodeAndComment > 9 | | | | | L <= 0.04: true (4.0) | | | | | L > 0.04: false (4.0/1.0) | | | uniq_Op > 28: false (21.0) lOComment > 31 | uniq_Op <= 27 | | locCodeAndComment <= 17 | | | lOComment <= 60: false (16.0/1.0) | | | lOComment > 60: true (2.0) | | locCodeAndComment > 17: true (2.0) | uniq_Op > 27: true (13.0/2.0)

  Gambar 5. Model Tree

  Satu aturan diwakili oleh hubungan cabang pohon (tree) dari puncak hingga cabang yang memuat label (class). Dari hasil yang tergambar pada gambar 5, dihasilkan 24 aturan untuk melakukan klasifikasi data. Aturan-aturan tersebut akan dirubah ke dalam bentuk SWRL sehingga dapat diimplementasikan pada ontologi. Penggabungan SWRL ke dalam ontologi dilakukan dengan menggunakan tool Protégé. Beberapa aturan yang sudah diterjemahkan ke dalam SWRL dengan menggunakan Protégé dapat digambarkan dalam Gambar 6. Tahapan terakhir studi kasus ini adalah proses klasifikasi yang dilakukan pada dataset NASA PC1 oleh ontologi yang sudah dibangun sebelumnya. Proses klasifikasi dilakukan dengan memasukkan seluruh data pada dataset NASA PC1 ke dalam ontologi sebagai individu code (kode). Dataset NASA memiliki cukup banyak data. Data yang dimiliki oleh dataset NASA berjumlah 1109 data. Tahapan selanjutnya adalah dengan menjalankan reasoner Pellet yang ada di Protege sebagai engine penalaran. Reasoner dijalankan untuk melakukan proses penalaran terhadap data yang ada dengan menerapkan SWRL yang sudah didefinisikan. Dengan reasoned Pellet yang ada pada Protégé, aturan bisa berfungsi sesuai dengan apa yang sudah didefinisikan dengan sintak SWRL.

  5. ANALISA HASIL

  Pada tahap studi kasus, data yang digunakan sebagai data percobaan adalah data NASA PC1. Data tersebut sama dengan data yang digunakan dalam pembangkitan aturan. Hasil dari proses klasifikasi dapat dijelaskan pada Tabel 2. Dari data pada tabel tersebut, didapatkan data yang masuk dalam kategori cacat (defect) adalah 51 data, dan yang masuk dalam kategori bukan cacat (Not Defect) berjumlah 1058 data.

  Tabel 2. Hasil Klasifikasi Klas Jumlah Data

  Defect

  51 Not Defect 1058 Total Code 1109

  Pada dataset NASA PC1 terdapat informasi bahwa jumlah data yang memiliki klasifikasi defect adalah 77 data, sedangkan yang memiliki klasifikasi not defect adalah 1032 data. Data hasil klasifikasi dapat digambarkan dalam tabel kecocokan sebagaimana pada Tabel 3.

  Gambar 6. SWRL pada Protégé

  7. REFERENSI _____ . IEEE Standard Glossary of Software Engineering Terminology

  . IEEE std 610.12-1990. 1990 _____. Promise Software Engineering Repository . http://promise.site.uottawa.ca/SERepository/datasets-page.html. Diakses pada Kamis, 26 September 2013. Bouktif, S., Ahmed, F., Khalil, I., Antoniol, G. A Novel

  Composite Model Approach to Improve Software Quality Prediction

  . Elsevier Information and Software Technology. 52 : 1298

  • – 1311. 2010 Catal, C. Software Fault Prediction : A Literature Review and

  Current Trends . Elsevier Expert Systems with Application. 38 :

  4626

  • – 4636. 2010 Chen, Y., Hung, L. Using Decision Trees to Summarize Associative Classification Rules. Expert Systems with Application (2009). 2338-2351. 2009 Hall, M., National, H., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., & Witten, I. H. The WEKA Data Mining Software : An Update. SIGKDD Explorations, 11(1), 10–18. 2009

  Horocks, I., Patel-Schneider, P.F., Boley, H., Tabet, S., Grosof,

  26 September 2013. 2004 Iliev, M., Karasneh, B., Chaudron, M.R.V., Essenius, E.

  B., Dean, M. SWRL: A Semantic Web Rule Language Combining OWL and RuleML. http://www.w3.org/Submission/SWRL/. Diakses pada Kamis,

  Automated Prediction of Defect Severity Based on Codifying Design Knowledge Using Ontologies . RAISE 2012. 2012

  Khoshgoftaar, T.M., Seliya, N. Software Quality Classification Modeling Using The SPRINT Decision Tree Algorithm . IEEE. 2002 Noy, Natalya F. and McGuinness, Deborah L. Ontology Development 101: A Guide to Creating Your First Ontology . 2001 Tappolet, J., Kiefer, C., Bernstein, A. Semantic Web Enabled

  Software Analysis . Web Semantics: Science, Services and

  Agents on the World Wide Web. 8 (2). 225-240. 2010 Zhang, H. An Investigation of the Relationships Between Lines

  of Code and Defects . ICSM 2009. 2009

  Zhang, H., Zhang, X., Gu, M. Predicting Defective Software

  Components from Code Complexity Measures . 13th IEEE

  Hasil proses klasifikasi dengan menggunakan sistem berbasis aturan (rule-based system) dengan pembangkit aturan berupa decision tree, dapat menghasilkan keakuratan klasifikasi sebesar 0,933, atau sebanyak 93% data dapat diprediksi dengan benar. Kompleksitas kode program adalah salah satu informasi dimana dapat digunakan sebagai indikator kemungkinan terjadi cacat (Defect) pada sebuah kode program. Pada penelitian berikutnya, akan dievaluasi lebih mendalam khususnya pada proses pembangkitan aturan, sehingga penentuan atura dapat dilakukan lebih optimal. Kualitas aturan juga akan dievaluasi agar hasil proses pembangkitan aturan menghasilkan aturan yang berfungsi dengan baik. Pengoptimalan penggunaan ontologi sebagai domain pengetahuan dimana dapat dimanfaatkan sebagai sebuah alat untuk melakukan pengklasifikasian secara semantik akan dilakukan. Sehingga proses klasifikasi dapat dilakukan berdasarkan konteks data. Selain itu perlu adanya penggunaan dataset yang berbeda dalam melakukan percobaan. Sehingga dapat diketahui berapa tingkat keakuratan model klasifikasi yang dihasilkan terhadap data yang berbeda.

  6. KESIMPULAN

  Pendeteksian cacat pada perangkat lunak merupakan suatu hal yang penting dalam menjamin kualitas perangkat lunak. Otomatisasi proses pendeteksian cacat perangkat lunak berbasis aturan dapat memangkas waktu dan biaya yang dialokasikan pada fase testing, karena dengan proses yang otomatis ini proses deteksi cacat dapat dilakukan dalam waktu yang relatif singkat dibandingkan dengan cara manual. Proses pembangkitan aturan (rule) terbukti dapat dilakukan dengan menggunakan metode decision tree.

  50 (FN)

  16 Bayu Priyambadha, Siti Rochimah Tabel 3. Tabel Kecocokan Data Aktual Total Defect Not Defect P r e d i k s i Defect

  (TP)

  27 (TN)

  24 (P’)

  51 Not

  Defect

  (FP)

  1008 (N’)

  Oleh karena itu perlu adanya optimasi pada proses pembangkitan aturan, sehingga dapat dipilih aturan-aturan yang paling optimal.

  1058

  Total

  (P)

  77 (N) 1032 1109

  Tabel 3 menjelaskan kecocokan data prediksi dan data aktual. Dari tabel tersebut didapatkan kategori TP (True Positif) berjumlah 27 data, TN (True Negatif) berjumlah 24 data, FP (False Positif) berjumlah 51 data, dan FN (False Negatif) berjumlah 1007 data. Sehingga dari tabel kecocokan tersebut, dapat dihitung tingkat keakuratan dari sistem pada penelitian ini. Sehingga dapat disimpulkan bahwa tingkat keakuratan sistem deteksi cacat pada penelitian ini adalah 0,933. Dengan kata lain bahwa, data pada dataset NASA PC1 dideteksi sebesa 93% benar.

  Terdapat kelemahan dalam penelitian ini, khususnya pada proses pembangkitan rule dengan metode decision tree. Pada penerapannya, tidak semua aturan yang terbentuk menghasilkan data. Dengan kata lain bahwa, terdapat beberapa aturan yang tidak berfungsi sebagai classifier. Oleh karena itu aturan-aturan tersebut tidak akan berpengaruh apabila tidak digunakan. Sebaliknya, apabila tetap dimasukkan ke dalam ontologi, aturan tersebut akan memberatkan proses klasifikasi data. Keadaan tersebut terjadi diasumsikan karena beberapa sifat yang dimiliki oleh decision tree, yaitu :

   Kemungkinan munculnya relasi yang salah.  Kekurangan dalam memprediksi nilai yang kontinyu (continuous value).

  International Sysmposion on Pacific Rim Dependable Computing. 2007 .