ITS Master 11079 Pembangunan Model Prediksi Defect Pengembangan Perangkat Lunak Menggunakan Metode...
-
Upload
adi-susilo -
Category
Documents
-
view
18 -
download
0
Transcript of ITS Master 11079 Pembangunan Model Prediksi Defect Pengembangan Perangkat Lunak Menggunakan Metode...
5
BAB 2
KAJIAN PUSTAKA
2.1 Cacat Perangkat Lunak (Software Defect)
Cacat perangkat lunak (software defect) didefinisikan sebagai cacat pada
perangkat lunak seperti cacat pada dokumentasi, pada kode program, pada desain
dan hal – hal lain yang menyebabkan kegagalan perangkat lunak. Cacat perangkat
lunak dapat muncul pada berbagai tahap proses pengembangan perangkat lunak
(Pressman, 2001). Cacat perangkat lunak merupakan faktor penting yang
mempengaruhi kualitas perangkat lunak. Kualitas perangkat lunak dapat
ditingkatkan dengan mencegah munculnya cacat perangkat lunak melalui
perbaikan aksi yang mungkin menghasilkan cacat perangkat lunak pada proses
pengembangan perangkat lunak (Boehm dan Basili, 2001).
Teknik pencegahan cacat perangkat lunak pertama kali diusulkan oleh
IBM corporation dan dapat digunakan untuk mencegah munculnya cacat
perangkat lunak di tahap lanjut pada proses pengembangan perangkat lunak
(Chang,2007). Setelah itu, muncul beberapa pendekatan untuk mencegah
munculnya cacat perangkat lunak seperti causal analysis dan prediction model
(Chang,2007).
2.1.1 Teknik Causal Analysis and Resolution (CAR)
Teknik causal analysis and resolution (CAR) berisi dua tahap utama untuk
menentukan sebab – sebab cacat perangkat lunak, yaitu pemilihan cacat perangkat
lunak dan analisa sebab – sebab dari cacat perangkat lunak. Pada pertemuan untuk
analisa sebab – sebab dari cacat perangkat lunak, dilakukan brainstorming untuk
mencari sebab munculnya cacat perangkat lunak. cacat perangkat lunak yang
dianalisa adalah cacat perangkat lunak yang memiliki prioritas tinggi dengan
parameter tingkat keparahan cacat perangkat lunak, kekerapan terjadinya cacat
perangkat lunak dan kerugian yang ditimbulkan cacat perangkat lunak. Terdapat
dua hal yang harus dipertimbangkan dalam melakukan analisa sebab cacat
perangkat lunak, yaitu jumlah cacat perangkat lunak yang dilaporkan dan
6
banyaknya sebab yang menimbulkan cacat perangkat lunak. Jika banyaknya cacat
perangkat lunak yang dilaporkan terlalu kecil, maka akan sulit menarik
kesimpulan penyebab munculnya cacat perangkat lunak. Sedangkan apabila cacat
perangkat lunak yang dilaporkan terlalu banyak, maka proses analisa akan sangat
sulit dilakukan (Mahopatra dan Mohanty, 2001).
2.1.2 Teknik Software Defect Prediction Model
Teknik software prediction model berusaha untuk menemukan sejumlah
pola cacat perangkat lunak yang dapat digunakan untuk memprediksi kemunculan
cacat perangkat lunak di masa mendatang. Sebuah pola cacat perangkat lunak
didefinisikan sebagai sekumpulan attribut yang dapat digunakan untuk
mendeskripsikan dan memprediksikan kemunculan dari cacat perangkat lunak.
Pola cacat perangkat lunak dapat diturunkan dengan menerapkan model statistik
pada perangkat lunak yang mengandung cacat. Untuk menentukan apakah sebuah
perangkat lunak mengandung cacat perangkat lunak, attribut – attribut dari dari
perangkat lunak dibandingkan dengan pola cacat perangkat lunak. Attribut –
attribuat yang digunakan untuk mengukur produk perangkat lunak antara lain
ukuran, kompleksitas, usaha dan sejarah perubahan (Chang 2007).
2.2 Action Based Model
Sebuah aksi (action) merupakan operasi dasar yang dilakukan pada saat
mengeksekusi sebuah langkah (step) pada sebuah proyek perangkat lunak. Sebuah
tugas (task) dapat dianggap sebagai elemen dasar dari work breakdown structure
(WBS) rencana proyek (Chang, 2008). Untuk melaksanakan sebuah task,
serangkaian steps bisa dijadwalkan atau mengadaptasi dari modal proses yang
ada. Pengembang bisa melaksanakan tasks berdasarkan steps yang dijadwalkan.
Pada Gambar 2.1 ditunjukkan bagan work breakdown structure proyek
perangkat lunak serta hubungan antara tasks dan actions, dimana sebuah proyek
dipecah ke dalam beberapa work packages. Masing-masing work packages
meliputi beberapa task. PA1 (prosses asset) dan PA2 menandakan dua modal
proses yang bisa digunakan untuk melakukan task 1. PA1 terdapat beberapa steps
seperti sa1 dan sa2 yang direncanakan untuk dijalankan. Ketika tidak ada modal
7
proses yang layak bisa diadaptasi untuk melaksanakan tasks, steps perlu
dirancang, seperti sa4. Actions (a1-a6) adalah actions sebenarnya yang digunakan
untuk menjalankan planned steps dari tasks. Tabel 2.1 adalah attribut utama yang
digunakan untuk melakukan aksi.
Gambar 2.1 Work Breakdown Structure serta Hubungan Antara Task dan
Performed Actions (Chang,2008)
Action state merepresentasikan hubungan antara aksi yang dilakukan
(performed action) dengan perencanaan tugas (planned task), dimana sebuah aksi
diartikan sebagai aksi terjadwal (Action State=0) jika aksi tersebut adalah
melakukan langkah-langkah yang sudah dijadwalkan (planned step), dan diartikan
sebagai tidak terjadwal jika sebaliknya.
Action type merepresentasikan jenis pengoperasian, seperti pembuatan
modifikasi, atau penghapusan modul. Jika aksi yang dilakukan adalah membuat
modul baru. Jika aksi yang dilakukan adalah pembuatan modul baru maka nilai
dari action state bernilai penambahan modul baru, misal penambahan menu pada
aplikasi atau pembuatan stored procedure baru pada subsistem database. Action
type bernilai modifikasi jika jenis aksi adalah memodifikasi modul yang sudah
ada, misal desain antart muka perangkat lunak yang sudah dibuat namun kurang
8
sesuai dengan keinginan pengguna sehingga membutuhkan modifikasi untk
menyesuaikan dengan keinginan pengguna. Action state akan benilai penghapusan
modul jika aksi yang dilakukan adalah menghapus modul yang sudah ada, misal
penghapusan stored procedure pada database karena dirasa stored procedure
sudah dibutuhkan atau tidak digunakan lagi.
Action complexity menggambarkan kompleksitas sebuah aksi, dan
diperkirakan oleh developer sebelum melakukan aksi. Tinggi, menengah atau
rendahnya tingkat kompleksitas dari suatu aksi semua tergantung dari perkiraan
developer. Jika suatu aksi memang dianggap memiliki tingkat kesulitan yang
tinggi maka nilai dari action complexity adalah high. Action complexity bernilai
median jika aksi tersebut dipandang oleh developer tidak memiliki kompleksitas
yang tinggi atau rendah jadi berada diantarnya sedangkan jika aksi yang dilakukan
dirasa tidak mempunyai tingkat kesulitan yang cukup berarti maka action
complexity akan bernilai low.
Object type merepresentasikan jenis modul yang dilakukan oleh aksi,
seperti dokumen, kode, basisdata, atau konfigurasi sistem. Nilai dari object type
tergantung pada di modul mana aksi tersebut akan dilakukan, misal aksi yang
akan dilakukan adalah mempelajari dokumentasi dari kebutuhan rekayasa
perangkat lunak yang diperoleh dari pelanggan maka object type dapat bernilai
dokumen.
Effort expected merepresentasikan usaha yang dilibatkan dalam
melakukan aksi, dan diperkirakan terlebih dahulu. Dalam pelaksaan aksi satuan
effort effected yang digunakan adalah jam, yaitu banyakanya jam yang dibutuhkan
untuk melaksanakan suatu aksi. Jika dimisalakan untuk membuat suatu modul
dalam aplikasi dibutuhkan waktu 24 jam maka nilai dari effort effected adalah 24
jam.
Action originator adalah orang yang berperan sehingga suatu aksi terjadi
atau akan dilakukan. Pada perangkat lunak yang sudah dikirimkan ke pelanggan
dan ketika masa implementasi ditemukan suatu cacat sehingga pelanggan tersebut
melaporkan kepada pihak pengembang dan ditindaklanjuti dengan melakukan
suatu aksi untuk memperbaiki cacat tersebut, dalam hal ini nilai dari action
originator adalah customer.
9
Tabel 2.1 Attribut Utama dari Aksi (Chang, 2008)
Attribut Keterangan / Nilai
Action ID ID dari aksi yang akan dilakukan
Action Description Deskripsi dari aksi yang akan dilakukan
Action State 0: tidak terjadwal, 1: terjadwal
Action Date Tanggal aksi dilakukan
Action Type N: Membuat modul baru, M: Modifikasi, D:
Penghapusan, A: Penambahan, -: None
Action Complexity 0: low, 5: median, 10: high
Object Type 0: none, 1:document, 2: Database, 3:
Application, 4: System Configuration
Effort Expected Banyaknya jam yang diharapkan untuk
melaksanakan aksi
Effort Used Banyaknya jam yang digunakan untuk
melakukan aksi
Action Originator 0: none,1: customer, 2: user, 3: manager, 4:
programmer
Action Target 0: none, 1: Requirement Development, 2:
requirement development, 3: requirement
development,, 4: Coding, 5:Testing,
6:Maintenance, 7:Support
Number of objects Jumlah objek yang dioperasikan oleh aksi
Reaction ID ID aksi yang menyebabkan aksi dilakukan
Task ID ID unik dari tugas untuk melakukan aksi
berdsarkan WBS
Action target adalah langkah proses dimana aksi dilakukan, seperti
requirement development, design atau coding. Number of objects menunjukkan
jumlah obyek yang dioperasikan oleh aksi. Jumlah obyek dalam hal ini sesuai
dengan attribut object type, misal object type dari aksi yang dilakukan adalah
database maka bisa diperkirakan objek yang terpengaruh adalah database itu
sendiri, aplikasi dan dokumentasi, jika masing-masing dari objek yang
terpengaruh hanya terdapat sebuah database, dokumentasi, aplikasi maka total
dari number of object adalah 3. Task ID merepresentasikan ID tugas yang
dilakukan oleh aksi.
10
Reaction ID adalah id aksi yang menyebabkan aksi lain dilakukan.
Reaction ID hanya akan memiliki nilai jika aksi yang dilakukan disebabkan oleh
aksi yang lain, sebaliknya jika aksi tersebut merupakan general aksi maka
reaction id dapat bernilai kosong.
Dalam prakteknya, eksekusi dari sebuah aksi bukanlah kejadian tunggal,
dan dapat menyebebkan modul lain berubah. Contohnya, perubahan pada DB API
(Database Application Interface) akan mengarah pada semua modul yang
menggunakan API tersebut, dimana model ini mungkin dikembangkan oleh orang
yang berbeda. Untuk merepresentasikan hubungan aksi, reaksi digunakan untuk
menunjukkan bahwa aksi tersebut diakibatkan oleh aksi lain dan ditunjukkan oleh
tindakan R yang mungkin menghasilkan kesalahan, dan mungkin dilaporkan oleh
customer jika tidak dilakukan pada waktunya (modul tertentu tidak berubah ketika
API yang digunakan telah dirubah). Aksi digunakan untuk menghilangkan
kerusakan didefinisikan sebagai Aksi D. Aksi yang bukan R dan bukan D
diartikan sebagai root aksi.
Gambar 2.2 menunjukkan hubungan antara tindakan R dan D. Aksi a1, a2,
a3, a4, a5 dan a6 adalah tindakan terjadwal, yang berarti bahwa tindakan tersebut
memang diharapkan dan dapat dijadwalkan berdasar WBS, sedangkan tindakan
tidak terjadwal adalah tindakan yang tidak bisa diperkirakan, seperti a21
(diakibatkan oleh kerusakan) dan a23 (diakibatkan oleh tindakan lain). Aksi a22
dilakukan untuk menangani kerusakan yang diakibatkan oleh a21, dan
mengakibatkan aksi a24 dan a26 dalam dua tugas yang berbeda. Aksi a25 dapat
berupa reaksi yang tidak dilakukan segera setelah a24 dan menghasilkan cacat
yang harus ditangani oleh a25. Cacat dari sebuah aksi dapat tidak terdeteksi sampai
produk dirilis, dan cacat itu dilaporkan oleh pelanggan, dan cacat yang dilaporkan
bisa sulit untuk dilacak penyebabnya. Cacat yang dilaporkan lalu dianalisa dalam
pertemuan causal analysis.
.
11
Gambar 2.2 Hubungan Antara Satu Aksi dengan Aksi yang Lain pada Sebuah
Proyek Perangkat Lunak (Chang, 2007)
Tabel 2.2 Attribut Utama dari Cacat Perangkat Lunak (Chang, 2007)
Attribut Keterangan / Nilai
Defect ID ID unik dari cacat
Description Deskripsi dari cacat yang dilaporkan
Action Generated Aksi yang menyebabkan cacat
Action Detected Aksi yang mendeteksi cacat
Action Removed Aksi yang digunakan untuk membuang cacat
Severity 1: Exception, 2: Minor, 3: Average, 4: Major, 5: Critical
Object ID Modul yang menyebabkan cacat
Cacat yang dilaporkan dapat ditulis menggunakan atribut yang ditunjukkan
dalam Table 2.2 dimana action generated menunjukkan aksi mana yang
menyebabkan cacat. Menentukan aksi aktual yang menyebabkan cacat tidak lah
mudah ketika interval antara tanggal aksi dan cacat terdeteksi sangat lama.
Stakeholder yang terkait dapat menganalisa action generated dari cacat yang
dilaporkan. Action detected menunjukkan aksi yang dilakukan untuk mendeteksi
cacat, seperti inspeksi atau ulasan pada proses pengembangan oleh pengembang.
Action removed menunjukkan aksi mana yang dilakukan untuk menangani cacat
yang dilaporkan. Severity menunjukkan tingkat keparahan cacat yang dilaporkan.
Disamping atribut aksi dan cacat, atribut tugas, work package, dan proyek
juga disediakan untuk mencatat proses perangkat lunak. Task ID aksi dapat
digunakan untuk menghubungkan tugas. Task progress menunjukkan
12
perkembangan tugas, dan dapat diukur dengan membagi usaha nyata dalam semua
aksi tugas yang dilakukan dengan usaha yang diharapkan. Task status
menunjukkan status tugas, baik terbuka atau tertutup. Task effort estimated adalah
usaha yang dilibatkan dalam melakukan tugas, seperti dipastikan dalam tahap
perencanaan proyek.
2.3 Komponen Action Based Defect Predicition
ABDP membangun model prediksi mengunakan data dari proyek yang
sama berdasarkan pada identifikasi penyebab dari permasalahan untuk
memprediksi aksi yang mungkin dikarenakan permasalahan yang sama, dimana
model prediksi menjadi stabil ketika jumlah dari data yang terkumpul bertambah.
Arsitektur dari ABDP ditunjukkan pada Gambar 2.3 yang meliput lima langkah
yaitu definisi action definition, action submission, action prediction, data
collection, data analysis.
Gambar 2.3 Arsitektur dari Komponen ABDP (Chang,2008)
13
Action definition digunakan untuk mendefinisikan sekumpulan fitur
seperti yang ditunjukkan pada Tabel 2.1 untuk mendiskripsikan attribut dari aksi,
seperti effort, action type / complexity, task, work package dan project. Sasaran
utama dari action definition adalah untuk memperkecil penggunaan effort dan
memperbesar proses dari aplikasi yang ada untuk koleksi data.
Langkah kedua adalah action submission. ABDP komponen disajikan
sebagai sebuah proses iterasi, dimana masing-masing action dilakukan proses
prediksi sebelum dijalankan. Action submission bisa dicapai dengan
menggunakan sebuah proses manajemen sistem dimana actor dapat memasukkan
informasi dari aksi dan memperoleh hasil prediksi secepatnya. Action Prediction
digunakan untuk memprediksi apakah action berikutnya akan menghasilkan
masalah.
2.4 Atribut-Atribut Aksi (Action)
Pada penelitan yang dilakukan oleh (Chang,2008) telah diperoleh sejumlah
atribut yang mempengaruhi apakah sebuah aksi dapat mengakibatkan high defect
atau low defect. Atribut-atribut tersebut diperoleh melalui proses pendefinisian
aksi, pengumpulan data dan analisa data.
2.4.1 Definisi Aksi (Action)
Tujuan utama dari definisi aksi adalah untuk mendefinisikan attribut -
attribut yang akan dikumpulkan dari catatan aksi dan laporan cacat pada proses
pengembangan perangkat lunak. Attribut – attribut ini menjadi kandidat attribut
yang digunakan untuk membangun model prediksi. Attribut – attribut dari cacat
perangkat lunak dan aksi yang digunakan ditunjukkan pada Tabel 2.1 dan Tabel
2.2. Setiap aksi yang dilakukan untuk mencapai tujuan proyek dapat digunakan
sebagai sumber untuk mengumpulkan data. Selain attribut yang didapatkan
langsung dari catatan aksi pada proses pengembangan perangkat lunak dan
laporan cacat perangkat lunak, dapat juga ditambahkan attribut yang relevan,
seperti pengalaman dari orang – orang yang melaksanakan proses pengembangan
perangkat lunak dan dukungan dari lingkungan (seperti dana) untuk melakukan
aksi.
14
2.4.2 Pengumpulan Data
Sebuah pelaksanaan aksi pada proses pengembangan perangkat lunak
dibagi menjadi lima tahap, yaitu tahap perencanaan aksi, prediksi, pelaksanaan
kegiatan, pelaporan hasil kegiatan dan pelaporan cacat perangkat lunak. Gambar
2.4 menunjukkan tahap – tahap dalam melakukan sebuah aksi pada proses
pengembangan perangkat lunak.
Gambar 2.4 Tahap Pelaksanaan Aksi pada Proses Pengembangan Perangkat
Lunak
Tahap – tahap pelaksanaan aksi tersebut akan didokumentasikan.
Dokumentasi tersebut, terutama dokumen perencanaan aksi dan catatan cacat
perangkat lunak digunakan sebagai sumber data untuk mendapatkan nilai attribut
dari aksi dan cacat perangkat lunak yang digunakan untuk menyusun dataset
untuk pembentukan model prediksi.
Perencanaan aksi
Pelaksanaan kegiatan
Prediksi
Laporan kegiatan
Catatan cacat perangkat lunak
15
Pada Gambar 2.4 ditunjukkan bahwa tahap pertama dari pelaksanaan aksi
adalah perencanaan kegiatan. Sebuah kegiatan harus direncanakan dahulu
sehingga attribut – attibut kegiatannya diketahui. Mungkin tidak semua attribut
dari kegiatan dapat diketahui saat tahap perencanaan aksi, namun sebagian besar
attibut yang dibutuhkan untuk melakukan prediksi sudah dapat diketahui sebelum
aksi dilaksanakan.
Pada tahap perencanaan aksi, attribut – attribut dari aksi yang akan
dilakukan ditentukan nilainya. Attribut – attribut yang ditentukan nilainya pada
tahap perencanaan aksi adalah attribut yang terdapat pada Tabel 2.1
Attribut dari aksi yang akan dilakukan digunakan untuk melakukan proses
prediksi apakah aksi tersebut akan menghasilkan high defect atau tidak. Setelah
nilai attribut – attribut aksi diketahui, dilakukan proses prediksi untuk mengetahui
apakah aksi tersebut beresiko menghasilkan high defect. Sebuah aksi dikatakan
menghasilkan high defect jika menghasilkan defect dalam jumlah yang melebihi
ambang batas (threshold) tertentu. Jika pada tahap prediksi sebuah aksi dianggap
akan menghasilkan high defect, maka rencana aksi (attribut – attribut aksi)
tersebut harus direvisi sedemikian hingga ketika dimasukkan pada tahap prediksi,
model prediksi tidak menganggap aksi yang akan dilakukan tidak menghasilkan
high defect lagi.
Setelah tahap prediksi menganggap bahwa aksi yang akan dilakukan tidak
menghasilkan high defect, dilakukan eksekusi aksi. Dari pelaksanaan aksi akan
dihasilkan laporan aksi dan catatan cacat perangkat lunak yang dihasilkan aksi
tersebut. Catatan cacat perangkat lunak yang dihasilkan digunakan untuk
mengecek apakah prediksi yang telah dilakukan sebelumnya telah benar. Dengan
kata lain, dari laporan cacat perangkat lunak dapat diuji akurasi dari tahap
prediksi. Selain itu, laporan cacat perangkat lunak juga digunakan untuk
membangun dataset yang digunakan untuk membuat model prediksi dan uji coba
Tahap pelaporan cacat menangkap attribut - attibut dari cacat yang
dihasilkan oleh aksi tertentu yang telah dilakukan pada proses pengembangan
perangkat lunak. Pada laporan cacat, attribut – attribut yang dicatat adalah attribut
yang dari cacat yang terdapat pada Tabel 2.2.
16
2.4.3 Analisis Data
Analisis data dilakukan dengan menganalisa data aksi dan cacat yang telah
terkumpul. Analisa tersebut bertujuan untuk menghasilkan dataset yang
digunakan untuk membangun model prediksi dan uji coba. Sehingga, tahap
analisa data terdiri atas dua bagian, yaitu (i) tahap preprocessing data dan (ii)
tahap pembuatan model prediksi.
(i) Tahap Preprocessing Data
Data preprocessing mengubah data yang telah terkumpul pada tahap
pengumpulan data menjadi dataset yang digunakan untuk membangun model
prediksi. Pada tahap ini, attribut – attribut dari action yang telah dilakukan beserta
attribut – attribut dari cacat perangkat lunak yang telah terjadi digabung menjadi
sebuah dataset. Selain attribut – attribut dari aksi dan cacat perangkat lunak yang
telah didefinisikan sebelumnya, dapat pula ditambahkan attribut - attribut lain
yang relevan atau attribut turunan.
Karena data attribut aksi dan cacat perangkat lunak yang yang telah
dikumpulkan pada tahap sebelumnya tersebar di beberapa bagian database atau
tabel, maka data perlu ditransformasi menjadi sebuah tabel yang nantinya dapat
diolah oleh algoritma yang menghasilkan model prediksi. Gambar 2.5
menunjukkan proses untuk menghasilkan dataset dari data aksi dan cacat
perangkat lunak yang telah dikumpulkan sebelumnya.
Pada Gambar 2.5 ditunjukkan bahwa attribut – attribut dari aksi dan cacat
perangkat lunak yang telah terjadi digabung dalam baris yang sama pada dataset.
Attribut – attribut gabungan yang ada pada dataset ditunjukkan pada Tabel 2.3.
Pada Tabel 2.3 ditunjukkan bahwa terdapat beberapa attribut yang diturunkan dari
attribut yang telah ada, yaitu : task actions, task modifications, task creations, task
reactions, task D actions, task H defect dan task defect efforts.
17
Gambar 2.5 Proses Pembuatan Dataset (Chang, 2007)
Tabel 2.3 Attribut – Attribut dari Dataset ID Attribut Nilai
1 Action state 0 : terjadwal 1, : tidak terjadwal
2 Action type N : membuat modul baru, M : modifikasi modul yang telah ada, D : menghapus modul, A : menambahkan modul, - : none
3 Caused type Menyatakan hubungan antara performed action ( - : general action, R : reaction, D: defect action )
4 Action complexity
0 : rendah, 5 : sedang, 10 : tinggi
5 Object type 0 : none, 1 : dokumen, 2 : database, 3 : aplikasi, 4 : konfigurasi sistem
6 Effort expected
Numerik, estimasi dari waktu (jam) untuk menyelesaikan action
7 Action originator
0 : none, 1 : customer, 2 : pengguna, 3 : manajer, 4 : programmer
8 Action target 0 : tidak ada, 1 : requirement, 2 : desain pendahuluan, 3 : desain, 4 : coding, 5 : testing, 6 : maintenance, 7 : support
9 Number of object
Banyaknya object yang berhubungan dengan action yang dilakukan
10 Task status 0 : sesuai jadwal, 1 : setelah jadwal, 2 : setelah penyelesaian, 9 : tidak diketahui
11 Task effort estimated
Estimasi usaha yang diperlukan untuk menyelesaikan task
12 Task action Banyaknya action yang dilakukan untuk menyelesaikan task
13 Task modification
Banyaknya action berjenis modifikasi yang dilakukan untuk menyelesaikan task
18
14 Task creation Banyaknya action yang digunakan untuk membuat modul baru
15 Task reaction Banyaknya action R yang diperlukan untuk menyelesaikan task
16 Task D action Banyaknya action D yang diperlukan untuk menyelesaikan task
17 Task H defect Banyaknya action yang menyebabkan high defect
18 Task defect effort
Total usaha yang diperlukan untuk memperbaiki defect pada task
19 Task progress Usaha yang telah dilakukan / estimasi usaha keseluruhan
20 Number of defect
L jika defect 0 – 3 dan H jika lebih dari 3
Attribut - attribut dataset yang ditunjukkan pada Tabel 2.3 dibagi menjadi
dua bagian yaitu attribut antecedent, yaitu attribut nomor 1 - 19 dan attribut
consequent, attribut nomor 20. Attribut antecedent digunakan pada tahap prediksi
sebagai data model prediksi untuk menebak nilai dari attribut consequent. Attribut
consequent merupakan attribut yang menentukan class dari data yang memiliki
attribut antecedent tertentu.
(ii) Tahap Pembuatan Model Prediksi dan Proses Prediksi
Pembuatan model prediksi dibangun dengan decision tree. Decision tree
dibangun mulai dari root node, dimana pemilihannya dilakukan dengan
perhitungan gain ratio dari masing atribut dari dataset. Gambaran umum dari
pembuatan model prediksi dan proses prediksi yang dilakukan oleh (Chang,2007)
ditunjukkan pada Gambar 2.6 dan Gambar 2.7.
Gambar 2.6 ditunjukkan bahwa input dari proses pembangunan decision
tree adalah data training dari input akan dilakukan sebuah proses pembangunan
decision tree, pada proses penentuan class label leaf node menggunakan
mayoritas kelas dan output yang dihasilkan adalah sebuah model prediksi dengan
sebuah decision tree. Gambar 2.7 menunjukkan proses prediksi, proses prediksi
dilakukan dengan memasukkan data test dan model prediksi yang telah dihasilkan
dari proses Gambar 2.6, selanjutnya data test dimasukkan pada model prediksi
dan akan dihasilkan sebuah hasil prediksi yang akan mengkategorikan apakah
sebuah aksi akan menghasilkan high defect atau low defect.
19
STOP
Masukkan data test pada
model prediksi
Masukkan Data test
(attribute sebuah action)
Kategori (High defect
atau low defect)yang
dihasilkan oleh model
prediksi
Proses pembuatan
decision tree
START
Model prediksi yang
terdiri atas sebuah
decision tree
Input Data training
Penentuan class label leaf node
menggunakan mayoritas kelas
Gambar 2.6 Proses Pembangunan Model
Prediksi dengan Single Decision Tree
Gambar 2.7 Proses Prediksi dengan
Single Decision Tree
2.5 Contoh Work Breakdown Structure Proyek AMS-COMFT
Attendance Management System for the Customs Office of the Ministry of
Finance of the Republic of China, Taiwan (AMS-COMFT) adalah system
manajemen kehadiran untuk kantor bea cukai kementrian keuangan Republik
Cina, Taiwan dimana dalam AMS-COMFT terdapat manajemen jadwal, libur, dan
manajemen permintaan overtime, analisa kartu waktu dan pelaporan (Chang,
2008). Proyek tersebut terdiri dari tujuh paket kerja terbagi dalam 22 tugas
terjadwal seperti ditunjukkan dalam Tabel 2.4, dimana nomer yang ditunjukkan
dalam kurung menunjukkan ID work package atau task. Gambar 2.8
menunjukkan hubungan antara aksi dengan work package dimana aksi berfungsi
sebagai operasi dasar yang digunakan untuk menjalankan planned steps yang ada
pada task dari masing-masing work package.
Tabel 2.4 Work Breakdown Structure dari Proyek AMS-COMFT (Chang, 2008)
20
Work Package Tasks
(18) Project Monitor & Control (04) Project Management
(14) Project Planning
(22) Requirements Development (RD)
(24) RD Review
(26) Preliminary Design (PD)
(28) PD Review
(30) Detailed Design (DD)
(06) System Engineering
(42) DD Review
(74) Database Subsystem (DBS)
Development
(67) General Attendance Management
(GAM) Subsystem Development
(71) User Request Management (URM)
Subsystem Development
(79) Time Card Collection (TCC) Subsystem
Modification
(12) Software Development
(82) Software Integration & Testing
(02) System Integration (10) H/S Integration & Testing
(86) Hardware Resource (14) Resources
(90) Software Resource
(62) H/S Purchase (10) Purchase
(65) H/S Integration & Testing
(46) Requirement Management (REQM)
(50) Quality Assurance (QA)
(55) Configuration Management
(04) Project Support
(58) Training
21
Gambar 2.8 Bagian Work Breakdown Structure pada Tabel 2.4 dengan Work
Package Software Development dan Task Database Subsystem
(DBS) Development
Dari Tabel 2.4 misal diambil contoh pada work package software
development dan task database subsystem (DBS) development dan dimisalkan
terdapat dua planned steps yaitu sa1 (database design) dan sa2 (create stored
procedure) dan sebuah aksi a1 (database design) yang digunakan untuk
melaksanakan sa1 seperti yang ditunjukkan pada Gambar 2.8. Pada Gambar 2.8
terlihat bahwa terdapat sa2 yang belum dieksekusi oleh aksi sehingga sebelum sa2
dieksekusi, maka aksi (a2= create stored procedure) yang akan digunakan untuk
mengeksekusi sa2 dapat dilakukan proses prediksi dengan asumsi sudah terdapat
model prediksi, karena aksi yang direncanakan akan mengeksekusi sa2 yang
berada pada WBS maka action statenya adalah terjadwal.
Action type a2 adalah pembuatan modul baru karena pada sa2 dapat
diasumsikan bertujuan untuk membuat stored procedure yang merupakan
subsistem dari database. Action complexity dari a2 bergantung dari sudut pandang
pengembang, jika dianggap tidak terlalu mudah dan tidak terlalu sulit maka action
complexity dapat bernilai sedang. Karena a2 merupakan rencana aksi yang timbul
bukan karena R atau D maka untuk caused typenya adalah general action. Object
22
type pada a2 yaitu database. Jika diperkirakan waktu untuk mengerjakan a2 adalah
12 jam maka nilai dari effort expected adalah 12 jam.
Action originator a2 adalah manajer dengan asumsi bahwa orang yang
punya inisiatif supaya aksi itu dikerjakan adalah manajer proyek. Action target
dari a2 adalah coding karena pembuatan stored procedure bisa dipastikan
menggunakan PL-SQL. Number of object a2 dapat bernilai berapapun sesuai
dengan objek yang terpengaruh dengan adanya rencana aksi a2 dan jenis objek
sesuai dengan object type, jika asumsikan dengan adanya a2 maka yang
terpengaruh adalah sebuah database dan sebuah aplikasi maka nilai number of
object dari a2 adalah 2. Task status dapat bernilai sesuai jadwal jika task tersebut
dikerjakan sesuai dengan jadwal yang telah dibuat.
Task effort estimated merupakan waktu yang dibutuhkan untuk
menyelesaikan task database subsystem (DBS) development jika diasumsikan
effort expected a1 adalah waktu 24 jam maka total waktu untuk menyelesaikan
task database subsystem (DBS) development adalah jumlah effort expected a1 dan
a2 yaitu 36 jam. Task action dari task database subsystem (DBS) development
adalah satu seperti yang ditunjukkan pada Gambar 2.8 dimana hanya terdapat
sebuah action performed yaitu a1. Jika selama pelaksaan task database subsystem
(DBS) development tidak terdapat aksi yang dimodifikasi maka task modification
bernilai 0. Task creations merupakan nilai total dari aksi yang sudah dijalankan
pada task database subsystem (DBS) development dimana action type bernilai N,
jika pada a1 action type bernilai N maka task creations pada task database
subsystem (DBS) development bernilai 1.
Task reaction dan task D action dari task database subsystem (DBS)
development bernilai 0 jika selama pelaksanaan a1 tidak menghasil aksi R dan D,
dan task H defect juga bernilai 0 jika selama pelaksanaan a1 tidak menghasilkan
high defect. Karena belum terdapat cacat selama pelaksaan a1 maka nilai dari task
defect effort adalah 0. Task progress merupakan waktu yang sudah digunakan
selama melaksanakan task database subsystem (DBS) development dibagi dengan
seluruh waktu yang dibutuhkan untuk menyelesaiakan task database subsystem
(DBS) development, jika untuk mengerjakan a1 waktu yang sudah digunakan
adalah 20 jam maka task progress dari task database subsystem (DBS)
23
development adalah 20/36 = 0.55 jam. Sehingga nilai dari a2 yang akan diprediksi
secara keseluruhan adalah seperti ditunjukkan pada Tabel 2.5. Tabel 2.5 Nilai dari a2 yang Akan Diprediksi Sebelum Menjalankan sa2
ID Attribut Nilai
1 Action state 0 : terjadwal
2 Action type N : membuat modul baru 3 Caused type - : general action
4 Action complexity 5 : sedang
5 Object type 2 : database
6 Effort expected 12 jam
7 Action originator 3 : manajer
8 Action target 4 : coding
9 Number of object 2
10 Task status 0 : sesuai jadwal 11 Task effort estimated 36 jam
12 Task action 1
13 Task modification 0 14 Task creation 1
15 Task reaction 0
16 Task D action 0
17 Task H defect 0
18 Task defect effort 0
19 Task progress 0.55
2.6 Klasifikasi
Proses klasifikasi mengolah input berupa kumpulan data. Setiap data
memiliki himpunan attribut x dan kategori kelas y. Pada klasifikasi, data yang
memiliki attribut x dipetakan atau diprediksi nilai y-nya. Model prediksi
merupakan bagian yang bertugas untuk melakukan proses klasifikasi atau prediksi
nilai kategori kelas y berdasarkan nilai attribut x, seperti yang ditunjukkan pada
gambar 2.9
Model prediksi memiliki dua fungsi, yaitu fungsi penggambaran dan
fungsi peramalanPada fungsi penggambaran, model prediksi berfungsi
menggambarkan object – object yang memiliki kelas tertentu. (Tan, Steinbach,
dan Kumar, 2006). Sebagai contoh, model prediksi dapat digunakan untuk
menggambarkan perbedaan antara jenis kendaraan yang berbeda, misalnya antara
24
mobil dengan truk berdasarkan ciri – ciri mobil dan truk.. Fungsi peramalan dari
model prediksi menyatakan bahwa model prediksi digunakan untuk meramalkan
kelas dari sebuah data yang kelasnya (nilai attribut y) belum diketahui bila attribut
yang lain (nilai attribut x) diketahui.
Gambar 2.9 Proses Prediksi atau Klasifikasi Sebuah Data
Untuk membangun model prediksi dari dataset input, digunakan teknik
klasifikasi. Contoh dari teknik klasifikasi antara lain SVM, jaringan syaraf tiruan,
fuzzy, dan lain - lain. Model prediksi yang dibangun dari teknik klasifikasi harus
mampu mengklasifikasikan data training dengan baik dan dapat memprediksi
class label dari data baru yang belum diketahui sebelumnya berdasarkan nilai
attribut x-nya.
Gambar 2.10 Bagan dari Proses Pembuatan Model Prediksi
25
Gambar 2.10 menunjukkan tahap – tahap pembuatan model prediksi Pada
Gambar 2.10 ditunjukkan bahwa pembuatan model prediksi terdiri atas dua tahap.
Tahap pertama adalah tahap induksi, di mana training set diolah menggunakan
learning algorithm atau teknik klasifikasi. Learning algorithm mempelajari
training set dan menghasilkan learn model atau model prediksi. Model prediksi
kemudian digunakan untuk melakukan peramalan. Pada tahap ini model prediksi
digunakan untuk meramalkan class label dari data telah diketahui attribut –
attributnya (nilai attribut x) selain attribut class label (nilai attribut y).
Performa dari model prediksi dapat diukur menggunakan beberapa
metrik. Metrik yang umum digunakan adalah akurasi dan error rate
prediksiseluruhbanyaknya
benarprediksibanyaknyaakurasi
__
__= ......................................................(2.1)
prediksiseluruhbanyaknya
salahprediksibanyaknyarateerror
__
___ = .................................................(2.2)
2.7 Decision tree
Decision tree merupakan sebuah teknik klasifikasi yang menggunakan tree
untuk membangun model prediksinya (Tan, Steinbach dan Kumar, 2006). Gambar
2.11 menunjukkan struktur sebuah decision tree. Seperti yang ditunjukkan pada
Gambar 2.11, sebuah decision tree terdiri atas
1) Root node
Node yang tidak memiliki edge yang mengarah pada dirinya
2) Internal node
Node yang memiliki sebuah edge yang mengarah pada dirinya dan dua atau
lebih edge yang mengarah keluar
3) Leaf node
Node yang memiliki satu edge yang menuju ke dirinya dan tidak memiliki
edge yang menuju keluar
26
Gambar 2.11 Struktur dari Decision Tree
Proses pembuatan decision tree dilakukan dengan menggunakan
pengembangan dari algoritma Hunt. Pada algoritma Hunt, sebuah decison tree
dibangun secara rekursif menggunakan pendekatan greedy dengan membagi data
training menjadi subset yang lebih murni. Misalkan Dt merupakan himpunan data
training yang menjadi elemen node t dan Y = {Y1, Y2,...,Yk} merupakan class
label. Algoritma Hunt yang digunakan untuk membangun decision tree :
1) Step1
Jika semua elemen Dt tergolong satu kelas Yt, maka t merupakan leaf node
dengan class label Yt
2) Step 2
Jika Dt berisi data yang termasuk pada beberapa kelas, sebuah attribute test
condition dipilih untuk mempartisi Dt menjadi subset yang lebih kecil.
Sebuah child node dibuat untuk setiap outcome attribut test condition dan
elemen Dt didistribusikan berdasar nilai outcomenya. Untuk tiap child yang
terbentuk, algoritma Hunt dilakukan lagi secara rekursif
Jika data memiliki beberapa attribut, maka attribut yang digunakan untuk
mempartisi dataset adalah attribut yang menghasilkan gain atau selisih impurity
terbesar. Gain dihitung dengan
27
∑=
−=∆k
jj
j VIN
VNparentI
1
)()(
)( (2.3)
Dengan ∆ adalah gain, I(parent) adalah impurity dataset sebelum diplit, N(Vj)
adalah banyaknya elemen dataset pada child ke j dan N adalah banyaknya elemen
dataset dan I(Vj) adalah impurity dari child ke j.
Pengukuran impurity untuk setiap node dilakukan dengan rumus berikut.
∑−
=
−=1
0
2 )|(1c
i
tipgini (2.4)
∑−
=
−=1
02 )|(log)|(
c
i
tiptipentropy (2.5)
)|(1_ tiperroricationMisclassif −= (2.6)
Dengan )|( tip merupakan proporsi class tertentu pada sebuah node. Pengukuran
impurity dilakukan dengan salah salah satu metrik gini, entropy atau
misclassification error.
Berikut ini contoh pembuatan decision tree. Data training yang
digunakan ditunjukkan pada Tabel 2.6.
Tabel 2.6 Data Training untuk Pembuatan Decision Tree
X Y Z Banyaknya class C1 Banyaknya class C2
0 0 0 5 40 0 0 1 0 15
0 1 0 10 5
0 1 1 45 0
1 0 0 10 5
1 0 1 25 0
1 1 0 5 20
1 1 1 0 15
Split data training dapat dilakukan dengan variabel X, Y atau Z. Gambar
2.12 menunjukkan dataset yang displit menggunakan ketiganya
28
Gambar 2.12 Partisi Dataset dengan Attribut X, Y dan Z
Attribute yang digunakan untuk melakukan split level 1 adalah attribute
yang menghasilkan gain terbesar. Gain terbesar didapatkan dari attribute yang
menghasilkan child dengan impurity terkecil. Jika menggunakan metrik impurity
misclassification error, impurity terkecil dihasilkan bila dataset dipartisi dengan
attribute Z yaitu 0,3
Partisi cabang 0 dari Z dapat dilakukan dengan attribut yang tersisa, yaitu
X dan Y. Gambar 2.13 menunjukkan hasil partisi cabang 0 dari Z menggunakan
attribut X dan Y
Gambar 2.13 Partisi Cabang 0 dari Z dengan Attribut X dan Y
Attribute yang digunakan untuk melakukan split cabang 0 dari Z adalah
attribute yang menghasilkan gain terbesar atau misclassification error terkecil
yaitu attribut Y dengan nilai 0,3
Partisi cabang 1 dari Z dapat dilakukan dengan attribut yang tersisa, yaitu
X dan Y. Gambar 2.14 menunjukkan hasil partisi cabang 1 dari Z menggunakan
attribut X dan Y
29
Gambar 2.14 Partisi Cabang 1 dari Z dengan Attribut X dan Y
Attribute yang digunakan untuk melakukan plit cabang 1 dari Z adalah
attribute yang menghasilkan gain terbesar atau misclassification error terkecil
yaitu attribut Y dengan nilai 0,3. Decision tree yang telah jadi ditunjukkan pada
Gambar 2.15 Decision Tree Dua Level yang Telah Jadi
Leaf node diklasifikasikan sebagai class mayoritas dari dataset yang
menjadi isi leaf node. Sebagai contoh, pada leaf node cabang 0 dari Y, karena
banyaknya data dengan class label C2 melebihi data dengan class label C1 maka
setiap data yang masuk pada leaf node tersebut diklasifikasikan sebagai C2
2.8 Ensemble Method
Untuk meningkatkan akurasi dari proses klasifikasi, salah satu cara yang
dapat dilakukan adalah menggunakan model prediksi yang terdiri atas banyak
classifier (Tan, Steinbach dan Kumar, 2006). Teknik ini dinamakan ensemble
method. Ensemble method membangun model prediksi yang terdiri atas banyak
classifier dan melakukan proses klasifikasi dengan melakukan voting hasil
prediksi classifier – classifiernya. Ada syarat yang harus dipenuhi oleh ensemble
30
method agar memberikan hasil yang lebih baik dari classifier tunggal, yaitu
classifier – classifiernya harus independen satu dengan yang lain dan performa
classifier penyusunnya harus lebih baik dari tebakan random.
Terdapat beberapa cara untuk mengimplementasikan ensemble method.
Salah satunya adalah dengan memanipulasi training set. Pada pendekatan ini,
training set dibuat dengan melakukan Sampling pada training set asli secara
berulang – ulang. Classifier – classifier penyusun model prediksi dibangun dari
training set buatan menggunakan algoritma learning tertentu.
Bagging merupakan salah satu teknik yang mengimplementasikan metode
manipulasi training set. Bagging atau sering disebut bootstrap aggregating
merupakan teknik untuk membuat classifier menggunakan data training baru dari
training set asli dengan teknik sampling with replacement menggunakan uniform
probability distribution. Setiap data training buatan, disebut juga bootstrap,
berukuran sama dengan data training asli. Sampling with replacement berarti
bahwa pada saat sampling, setiap data yang diambil sebagai sample dari data
training asli dapat diambil lagi sebagai sample pada pengambilan sample
berikutnya. Uniform probability distribution berarti bahwa setiap sample dari data
training asli memiliki kemungkinan yang sama untuk diambil. Secara rata – rata,
setiap bootstrap mengandung 63% data training asli karena setiap elemen data
training memiliki peluang 1 – (1 – 1/N)N untuk dipilih sebagai sample, dengan N
adalah ukuran data training.
Algoritma Bagging :
1. For i = 1 to k do // K adalah banyaknya bootstrap
2. Buat sebuah bootstrap sample Di berukuran N
3. Buatlah sebuah classifier Ci menggunakan bootstrap sample Di
4. End for
5. ∑ ==i
iy
yxCxC ))((maxarg)(* δ
6. ( 1(.) =δ ) jika argumennya bernilai true dan sebaliknya
Algoritma bagging adalah algoritma pembuatan ensemble classifier
menggunakan metode bagging. Mula – mula ditentukan dulu banyaknya
bootstrap atau classifier yang akan dibuat yang ditunjukkan pada baris 1. Pada
baris 2 sampai 5, untuk setiap iterasi dilakukan pembuatan bootstrap
31
menggunakan teknik Sampling with replacement dengan uniform probablity
distribution. Dari bootstrap yang didapatkan pada setiap iterasi, dibuat sebuah
classifier untuk masing – masing bootstrap. Model prediksi yang terbentuk terdiri
atas banyak classifier. Jika terdapat data yang akan diklasifikasikan atau
diprediksi class labelnya, maka proses klasifikasi dilakukan dengan melakukan
voting dari classifier – classifier penyusun model prediksi
2.9 Cost Sensitive Learning
Cost sensitive learning merupakan salah satu teknik pembangunan model
yang dalam prosesnya memperhitungkan misclassification cost. Misclassification
cost merupakan kerugian yang ditanggung karena ada data yang gagal
diklasifikasikan ke kelas tertentu atau penalti jika mengklasifikasikan sebuah data
yang sebenarnya termasuk suatu class menjadi class yang lain. C(i, j)
menotasikan cost function yang berarti penalti jika mengklasifikasikan sebuah
data yang sebenarnya berasal dari class i menjadi class j (Tan, Steinbach dan
Kumar, 2006). Dengan demikian, C(+, -) menyatakan cost atau penalti jika
melakukan false negative error, sedangkan C(-, +) menyatakan cost atau penalti
jika melakukan false alarm.
Dari sekumpulan data training, cost total dari dari sebuah model prediksi
C(M) yang dibangun dari data training tersebut adalah
C(-,-) x TN + C(+,-) x FN + C(-,+) x FP + C(+,+) x TP = C(M) .......................(2.7)
Dengan TP merupakan banyaknya data positif yang diklasifikasi positif, FP
merupakan banyaknya data negatif yang diklasifikasi positif, FN merupakan
banyaknya data positif yang diklasifikasi negatif dan TN merupakan banyaknya
data negatif yang diklasifikasi negatif. Pada umumnya, nilai C(+,+) dan C(-,-)
adalah 0 karena tidak ada penalti jika model prediksi melakukan prediksi dengan
benar. Dengan demikian, persamaan 2.10 dapat disederhanakan menjadi
C(+,-) x FN + C(-,+) x FP = C(M) .....................................................................(2.8)
Pada kasus decision tree, cost sensitive learning dapat diintegrasikan pada
algoritma decision tree menggunakan beberapa cara (1) dimasukkan sebagai
kriteria pemilihan attribut yang digunakan untuk melakukan split data training (2)
32
menentukan apakah subtree akan dipangkas (3) memanipulasi bobot dari data
training sehingga algoritma decision tree akan menghasilkan tree dengan total
cost paling rendah (4) memodifikasi aturan pengambilan keputusan class pada
leaf node decision tree
Pada pendekatan terakhir, proses pembuatan decision tree dilakukan
seperti biasa. Namun, setelah tree terbentuk, proses penentuan class label dari leaf
node tidak dilakukan dengan menggunakan class mayoritas isi leaf node. Metode
penentuan class label dari leaf node dilakukan dengan memberikan class label
pada leaf node yang memberikan cost paling kecil.
Untuk memperjelas konsep di atas, dapat digunakan contoh sebagai
berikut. Pada sebuah leaf node dari decision tree terdapat 10 class + dan 100 class
-. Dengan menggunakan algoritma decision tree biasa, maka leaf node tersebut
akan diklasifikasikan sebagai class -, karena class – merupakan class mayoritas
pada leaf node tersebut. Jika menggunakan cost sensitive learning, hasilnya bisa
berbeda. Bila diketahui bahwa C(-,-) = C(+,+) = 0, C(+,-) = 20 dan C(-,+) = 1,
maka cost mengklasifikasikan leaf node sebagai – adalah 200 (berasal dari cost
mengklasifikasikan 10 data dengan class + menjadi -) dan cost
mengklasifikasikan leaf node sebagai + adalah 100 (berasal dari cost
mengklasifikasikan 100 data dengan class - menjadi +). Karena cost
mengklasifikasikan leaf node sebagai + kurang dari cost mengklasifikasikan leaf
node sebagai -, maka leaf node diklasifikasikan sebagai +.
2.10 Metrik Uji Coba
Metrik yang digunakan untuk mengukur performa model prediksi adalah
accuracy dan recall (Chang,2007). Hasil dari pengukuran metrik yaitu berupa
prosentase dimana semakin tinggi persentase yang dihasilkan oleh accuracy dan
recall berarti kontribusi yang diajukan memberikan hasil yang baik namun jika
semakin rendah prosentase yang dihasilkan oleh accuracy dan recall berarti
kontribusi yang diajukan memberikan hasil yang kurang baik. Persamaan
accuracy dan recall ditunjukkan pada persamaan 2.5 dan 2.6 dimana T, F, P dan
N menggambarkan true, false, positive, dan negative, secara berurutan. Dalam
penelitian (Chang,2007) terdapat empat notasi yang digunakan yaitu TP, TN, FP,
33
FN. Huruf pertama akan bernilai T jika hasil prediksi sama dengan data asli yaitu
jika terdapat suatu aksi yang sebenarnya high defect diprediksi sebagai high defect
dan jika terdapat suatu aksi yang sebenarnya low defect diprediksi sebagai low
defect dan akan bernilai F jika sebaliknya. Sedangkan huruf kedua akan bernilai P
jika hasil prediksi menghasilkan high defect dan akan menghasilkan nilai N jika
hasil prediksi menghasilkan low defect. Dalam penelitian ini digunakan konversi
ke notasi lain untuk lebih mempermudah dimana TP = HH, TN = LL, FP = LH,
FN = HL.
Accuracy merupakan metrik untuk mengukur performa model prediksi
dalam memprediksi jenis defect yang dihasilkan data test secara keseluruhan.
%100xHLLHLLHH
LLHHaccuracy
++++= .....................................................(2.9)
Recall merupakan metrik untuk mengukur performa model prediksi dalam
mendeteksi action yang sebenarnya high defect.
%100xHLHH
HHrecall
+= ..................................................................(2.10)
HH adalah banyaknya data tes yang sebenarnya high defect dan diprediksi
high defect oleh model prediksi. LL adalah banyaknya data test yang low defect
dan diprediksi low defect oleh model prediksi. LH merupakan banyaknya data test
yang sebenarnya low defect namun diprediksi high defect oleh model prediksi. HL
merupakan banyaknya data test yang high defect namun diprediksi low defect oleh
model prediksi.
Penggunaan ensemble classification tree bertujuan untuk meningkatkan
accuracy model prediksi, sedangkan penggunaan cost sensitive learning bertujuan
untuk meningkatkan recall model prediksi.