PERKIRAAN BIAYA PERANGKAT LUNAK DENGAN JARINGAN SARAF TIRUAN PROPAGASI BALIK
YOHAN WAHYUDI
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2009
PERKIRAAN BIAYA PERANGKAT LUNAK DENGAN JARINGAN SARAF TIRUAN PROPAGASI BALIK
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
YOHAN WAHYUDI G64104084
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2009 ii
ABSTRACT YOHAN WAHYUDI. Perkiraan Biaya Perangkat Lunak dengan Jaringan Saraf Tiruan Propagasi Balik. Supervised by PANJI WASMANA. In line with the advance of technology, human needs for software are also growing. Software is used to help people to lighten their work. This has caused the software becomes increasingly complex and the production cost also become increasingly expensive. No wonder if the software developers need a method of cost estimation that estimates accurately for the efficiency and effectiveness of the company. With this, the company can be protected from loss due to incorrect cost estimates. This study uses data from the COCOMO 81 derived from the Boehm journals in 1981, entitled Software engineering economics. This data group consists of 63 projects each have 17 main attributes, namely, a numerical type of 15 Cost Driver (CD), the size of the project in Kilo Lines of Code (KLOC), and the actual cost of the project in the Person of the Month (PM). Data are grouped into two parts, namely training data and test data in the form of 15 types of Cost Drivers and the size of the project (KLOC), this data is transformed into the range [0.1, 0.9] according to the sigmoid function of range. In this research, the neural network is used to do the software cost estimation. The network architecture used was the multilayer perceptron with a back propagation learning algorithm. The number of neuron in the hidden layer is determined from the optimal architecture which provides a best estimation value. Once found the best architecture which is has the optimal number of neuron, conducted the evaluation. The evaluation method used is the Mean Magnitude Error (MRE) and Pred (l). MRE is the error between the actual and estimated value while Pred (l) is prediction at the level L. Results of research indicate that there are relation between the types of project with the MRE. There is a tendency for this technique provides a high accuracy if the actual value of the test data is big. Poor accuracy obtained at the small value of actual test data. This research resulted in the value of Mean MRE (MMRE) of 76%, Median MRE (MRE Med) of 23% and Pred (0.25) of 52%. On this research, normalization of the target data has not been conducted so that the error generated in the process of evaluation is big. Keyword: Software Cost Estimation, Neural Network, Backpropagation, k-fold cross validation
iii
Judul Nama NIM
: Perkiraan Biaya Perangkat Lunak dengan Jaringan Saraf Tiruan Propagasi Balik : Yohan Wahyudi : G64104084
Menyetujui:
Pembimbing,
Panji Wasmana, S.Kom, M.Si NIP 197801102005011003
Mengetahui: Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Dr. Drh. Hasim, DEA NIP 196103281986011002
Tanggal Lulus:
iv
RIWAYAT HIDUP Penulis dilahirkan di Purworejo pada tanggal 10 Oktober 1986 dari pasangan Trisno Djunaedi dan Suwarni. Penulis merupakan anak pertama dari empat bersaudara. Pada tahun 1998, penulis lulus dari SDK Penabur Purworejo, lalu pada tahun yang sama melanjutkan pendidikan di SLTP NEGERI 1Purworejo. Pada tahun 2001, penulis lulus dari SLTP dan melanjutkan sekolah di SMU Negeri 1 Purworejo hingga tahun 2004. Pada tahun yang sama lulus seleksi masuk IPB melalui jalur Seleksi Penerimaan Mahasiswa Baru IPB. Penulis memilih Program Studi Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam. Pada akhir masa perkuliahan, penulis melaksanakan kerja praktek di Balai Besar Industri Agro selama dua bulan dari tanggal 2 Juli 2007 sampai dengan 25 Agustus 2007. Kegiatan utama dalam rangka kerja praktek tersebut adalah pengembangan Sistem Informasi Perpustakaan Balai Besar Industri Agro. Selama menuntut ilmu di IPB, penulis aktif dalam beberapa kegiatan kemahasiswaan, yaitu sebagai Wakil Koordinator Komisi Kesenian Unit Kegiatan Mahasiswa Persekutuan Mahasiswa Kristen IPB periode 2005/2006 dan anggota Himpunan Mahasiswa Ilmu Komputer (HIMALKOM) periode 2005/2006.
v
PRAKATA Puji syukur kepada Tuhan Yang Maha Esa atas berkat dan karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir yang berjudul Perkiraan Biaya Perangkat Lunak dengan Jaringan Saraf Tiruan Propagasi Balik. Tugas akhir ini merupakan salah satu syarat untuk menyelesaikan jenjang pendidikan Strata Satu Program Studi Ilmu Komputer di Institut Pertanian Bogor. Penulis mengucapkan terima kasih kepada ayah, ibu, dan adik-adikku tercinta (Dewi, Sari, dan Montes) atas doa, kasih dan dukungan yang selalu diberikan. Penulis juga mengucapkan terima kasih kepada Bapak Panji Wasmana, S.Kom, M.Si selaku pembimbing yang telah membimbing penulis dalam menyelesaikan tugas akhir. Penulis juga mengucapkan terima kasih kepada Dr. Ir. Bapak Agus Buono, M.Si, M.Kom dan Bapak Aziz Kustiyo, S.Si, M.Kom yang bersedia menjadi penguji pada tugas akhir penulis. Penyelesaian karya ilmiah ini tidak lepas dari bantuan beberapa pihak, oleh karena itu penulis mengucapkan terima kasih kepada teman-teman Komkes, terutama Komkes’41 atas doa dan dukungan yang diberikan, Maryo, Andri, Mas Irwan, dan saudara-saudara kelompok kecil, temanteman Ilkomerz’41 atas semangat yang diberikan, William, Martin, Edo, Afris, Jefry, Mada, Sandro, Sammy, dan teman-teman satu kos lainnya atas kebersamaannya selama ini serta Semua pihak lain yang telah membantu penulis dan tidak dapat disebutkan satu persatu. Akhir kata, semoga penelitian ini dapat bermanfaat.
Bogor, Agustus 2009
Yohan Wahyudi
vi
DAFTAR ISI Halaman DAFTAR TABEL ..........................................................................................................................viii DAFTAR GAMBAR .....................................................................................................................viii DAFTAR LAMPIRAN ..................................................................................................................viii PENDAHULUAN............................................................................................................................. 1 Latar Belakang ............................................................................................................................. 1 Tujuan........................................................................................................................................... 1 Ruang Lingkup ............................................................................................................................. 1 Manfaat......................................................................................................................................... 1 TINJAUAN PUSTAKA .................................................................................................................... 1 Perkiraan Biaya Perangkat Lunak ................................................................................................ 1 Cost Driver ................................................................................................................................... 2 Effort Multipliers .......................................................................................................................... 2 Model Pengembangan Proyek ...................................................................................................... 2 Intermediate COCOMO (Cost Constructive Model) .................................................................... 2 JST Propagasi Balik ..................................................................................................................... 3 Perkiraan Biaya Perangkat Lunak dengan JST ............................................................................. 4 K-Fold Cross Validation .............................................................................................................. 4 Evaluasi Model Perkiraan Biaya Perangkat Lunak ...................................................................... 4 METODE PENELITIAN .................................................................................................................. 5 Kerangka Pemikiran ..................................................................................................................... 5 Studi Literatur............................................................................................................................... 5 Pengambilan Data......................................................................................................................... 5 Pelatihan ....................................................................................................................................... 6 Pengujian ...................................................................................................................................... 6 Lingkungan Pengembangan ......................................................................................................... 6 HASIL DAN PEMBAHASAN ......................................................................................................... 6 Setting Jaringan Saraf Tiruan ....................................................................................................... 6 Pemilihan Jumlah hidden layer yang optimal .............................................................................. 7 Karakteristik Jaringan Saraf Tiruan .............................................................................................. 9 DAFTAR PUSTAKA ..................................................................................................................... 11
vii
DAFTAR TABEL Halaman 1. Daftar CD (Saliu 2003) …………………………........................................................ 2 2. Koefisien Model Pengembangan Proyek...................................................................... 2 3. Struktur Jaringan Propagasi Balik standar ................................................................... 6 4. Nilai MMRE, Med MRE dan Pred(0.25) pada 10-fold cv…………………….…….. 8 5. Nilai MMRE, Med MRE dan Pred(0.25) pada 15-fold ............................................... 9 6. Perbandingan galat antara data set 1 dan data set 2...................................................... 10
DAFTAR GAMBAR Halaman 1. Grafik fungsi sigmoid biner…………………............................................................. 3 2. Grafik fungsi linear...................................................................................................... 3 3. Model Perkiraan Biaya dengan JST............................................................................. 4 4. Metode Penelitian...........................................................................................……….. 5 5. Grafik Nilai MMRE pada 10-fold crossvalidation……………..………….………… 6 6. Grafik Nilai Median MRE pada 10-fold cross validation …………….…….………. 7 7. Grafik Perbandingan Antara Nilai Aktual dan Nilai Estimasi..……………...…….… 8 8. Grafik Nilai MRE …………………………………………………………………… 10 9. Grafik Scatter antara MRE dan Nilai Aktual Proyek …..…………………………… 11
DAFTAR LAMPIRAN Halaman 1. Kelompok data COCOMO 81………………………………….................................. 14 2. Tabel Effort Multiplier pada COCOMO ……………………………………………. 16 3. Agregat Galat COCOMO 81 pada 10-fold cross validation…………………………. 17 4. Grafik Boxplot Min MRE dan Pred(0.25) pada 10-fold cross validation……...……. 18 5. Grafik Boxplot MMRE pada 10-fold cross validation….………………………….... 19 6. Grafik Boxplot Median MRE pada 10-fold cross validation..………………………. 19 7. Boxplot Max MRE pada 10-fold cross validation……….………….………………. .19 8. Agregat Galat COCOMO 81 pada 15-fold cross validation…………………………. 20 9. Grafik Boxplot Min MRE dan Pred(0.25) pada 15-fold cross validation..…………. 21 10. Grafik Boxplot Mean MRE dan Med MRE pada 15-fold cross validation….………. 22 11. Grafik Boxplot Max MRE pada 15-fold cross validation...…………………………. 22 12. Hasil Pengujian dan Nilai MRE dengan Data Latih yang Diperbanyak.……………. 23 13. Agregat Galat……………………………………………..…………………………. 23 14. Grafik Boxplot Nilai Aktual, Nilai Estimasi dan Nilai MRE .……...........……… 24
viii
PENDAHULUAN Latar Belakang Dewasa ini kebutuhan manusia semakin meningkat seiring dengan berkembangnya teknologi. Majunya perkembangan teknologi memberi warna tersendiri bagi peradaban manusia. Berbicara tentang teknologi tentu tidak akan terlepas dari perangkat lunak karena merupakan salah satu komponen penyusunnya. Sejalan dengan majunya teknologi, kebutuhan manusia akan perangkat lunak juga semakin bertambah. Perangkat lunak sering digunakan untuk membantu pekerjaan manusia yang makin berat. Hal ini menyebabkan perangkat lunak menjadi semakin kompleks dan biaya pembuatannya pun menjadi semakin mahal. Tidak heran kalau pihak pengembang software memerlukan metode perkiraan biaya pengembangan yang akurat untuk menghindari kerugian akibat perkiraan biaya yang salah. Perkiraan biaya pengembangan perangkat lunak yang terlalu tinggi atau terlalu rendah akan menyebabkan proyek ditolak karena terlalu mahal, terpaksa membuang fitur yang penting dan mungkin proyek jadi terbengkalai (Al-Sakran 2006). Perkiraan biaya yang akurat akan membuat pekerjaan menjadi efektif dan efisien. Peneliti konvensional menggunakan metode algoritmik seperti Constructive Cost Model (COCOMO, COCOMOII, SLIM) dan perkiraan biaya dengan analogi dalam memperkirakan biaya pembuatan perangkat lunak. Pada kenyataannya metode yang disebutkan di atas tidak bisa memperkirakan hasil biaya dengan akurat (Hasan Al-Sakran 2006). Alternatif lain dalam memodelkan perkiraan biaya software adalah dengan menggunakan metode non-algoritmik seperti jaringan saraf tiruan, logika fuzzy dan algoritme genetika (Saliu 2003). Metode diatas diharapkan dapat memperkirakan biaya dengan akurat. Dalam penelitian ini, diterapkan jaringan saraf tiruan untuk melakukan perkiraan biaya perangkat lunak. Metode jaringan saraf tiruan ini diharapkan dapat memperkirakan biaya dengan lebih akurat.
Tujuan Tujuan dari penelitian ini adalah mengembangkan model perkiraan biaya perangkat lunak berbasis jaringan saraf tiruan kemudian menganalisis kinerja penerapan jaringan saraf tiruan dalam memperkirakan biaya pembuatan suatu perangkat lunak. Ruang Lingkup Penelitian ini hanya menitikberatkan pada pengembangan model perkiraan biaya perangkat lunak dengan menggunakan model jaringan saraf tiruan. Dalam penelitian ini, digunakan suatu Backpropagation Neural Network untuk melakukan learning dan testing terhadap pola himpunan data COCOMO. Data yang digunakan pada penelitian ini adalah kelompok data COCOMO 81 versi intermediate. Manfaat Penelitian ini memberi manfaat berupa pemodelan perkiraan biaya perangkat lunak menggunakan jaringan saraf tiruan propagasi balik. Penelitian ini juga memberikan informasi kinerja jaringan saraf tiruan untuk perkiraan biaya perangkat lunak.
TINJAUAN PUSTAKA Perkiraan Biaya Perangkat Lunak Perkiraan biaya perangkat lunak adalah suatu proses untuk memperkirakan biaya yang diperlukan dalam pengembangan perangkat lunak (Leung 1990). Perkiraan biaya perangkat lunak mengacu pada perkiraan jumlah biaya, waktu dan staffing level yang diperlukan untuk membangun perangkat lunak (Saliu 2003). Secara umum metode perkiraan biaya perangkat lunak dibagi menjadi dua pemodelan yaitu, metode pemodelan algoritmik dan non-algoritmik (Saliu 2003). Pemodelan algoritmik diturunkan dari analisis statistik proyek-proyek yang pernah ada, contohnya, Constructive Cost Model (COCOMO) dan Software Life Cycle Management (SLIM). Metode pemodelan non-algoritmik meliputi Price to win, Parkinson, expert judgement dan machine learning approaches (fuzzy, neural network, analogy based).
1
Cost Driver Dalam pengembangan perangkat lunak terdapat faktor-faktor yang mempengaruhi biaya pengembangan yang disebut dengan Cost Driver (CD). Jumlah CD sebanyak 15 yang dikelompokkan dalam empat grup. Daftar CD dapat dilihat pada Tabel 1. Tabel 1 Daftar CD (Saliu 2003) Cost Driver
Simbol
Produk
Keandalan perangkat lunak
Rely
Ukuran basis data
Data
Kompleksitas produk
Cplx
Batasan waktu eksekusi
Time
Batasan tempat penyimpanan utama
Stor
Mesin Virtual
Virt
Waktu turnaround komputer
Turn
Kemampuan analisis
Acap
Pengalaman dalam aplikasi
Aexp
Kemampuan programer
Pcap
Pengalaman dalam mesin virtual
Vexp
Pengalaman dalam bahasa pemrograman
Lexp
Penggunaan program modern
Modp
Penggunaan peralatan perangkat lunak
Tool
Jadwal pengembangan yang diperlukan
Sced
Personil
Proyek
Model Pengembangan Proyek Ada tiga macam model pengembangan dalam proyek pembuatan perangkat lunak dalam COCOMO, yaitu: 1 Organik
Grup
Platform
Daftar effort multipliers dapat dilihat pada Lampiran 1 (Saliu 2003).
Effort Multipliers Tiap – tiap CD pada perkiraan biaya perangkat lunak memiliki kategori. Kategori tersebut dinyatakan dalam variabel linguistik: very low, low, nominal, high dan very high. Kategori – kategori tersebut mewakili sebuah nilai, nilai tersebut adalah effort multipliers.
Dalam model organik, perangkat lunak dikembangkan oleh tim yang terdiri atas orang-orang yang berpengalaman dalam sistem terkait. Ukuran perangkat lunak yang dihasilkan mencapai lebih dari 50 Kilo Delivery Source Instruction (50 KDSI). 2 Semidetached Model pengembangan semidetached berupa campuran dari karakteristik model organik dan embedded. Ukuran dari produk yang dihasilkan dapat mencapai 300 KDSI. 3 Embedded Faktor utama yang membedakan model embedded dengan model lainnya adalah pengoperasian dengan batasan yang ketat. Produk harus dioperasikan dalam hubungan perangkat keras, perangkat lunak, regulasi dan prosedur operasional yang kuat. Setiap model pengembangan proyek memiliki suatu nilai koefisien. Nilai koefisien tersebut digunakan dalam menghitung perkiraan biaya perangkat lunak. Nilai koefisien untuk tiap-tiap model pengembangan proyek dapat dilihat pada Tabel 2 dimana A adalah B adalah scaling coefficient untuk effort. Tabel 2 Koefisien model pengembangan proyek Model
A
B
Organik
3.2
1.05
Semidetached
3.0
1.12
Embedded
2.8
1.2
Intermediate COCOMO (Cost Constructive Model) Model Intermediate COCOMO adalah pengembangan lebih lanjut dari versi basic yang menghitung biaya perkiraan perangkat lunak hanya dengan mengunakan ukuran
2
perangkat lunak dan model pengembangan proyek saja. Dalam Intermediate COCOMO terdapat penambahan atribut perhitungan yang digunakan yaitu Cost Driver,, yang terdiri atas 15 jenis. Dengan demikian, perkiraan biaya perangkat lunak tidak hanya berdasarkan ukuran ran dan model proyek tapi juga bergantung dari lingkungan pengembangan. Persamaanya untuk perkiraan biaya perangkat lunak pada Intermediate COCOMO adalah sebagai berikut:
dengan adalah biaya estimasi (dalam Man-Months), SIZE adalah ukuan perangkat lunak dalam KLOC (Kilo Kilo Lines Of Codes), Codes A dan B adalah koefisien untuk tiap model proyek (organik, semi-detached detached, dan embedded) dan adalah effort multiplier untuk tiap-tiap atribut pada Cost Driver. Driver
sesuai dengan galat yang didefinisikan. didefinisikan Proses penyesuaian ini disebut pembelajaran. Dalam metode pembelajaran propagasi balik, fungsi aktivasi pada masukan dan keluaran haruslah berbentuk fungsi yang dapat dideferensialkan. Hal ini disebabkan pada tahap propagasi balik, fungsi yang digunakan adalah fungsi deferensial dari fungsi aktivasi tersebut. Fungsi aktivasi yang digunakan dalam penelitian ini adalah sigmoid biner pada lapisan tersembunyi dan fungsi linear pada lapisan keluaran. Fungsi sigmoid ini mempunyai daerah hasil dalam interval 0 sampai 1. Berikut adalah grafik fungsi sigmoid biner.
JST Propagasi Balik Menurut Fauset (1994), ada tiga tahap pelatihan pada JST propagasi balik, yaitu pelatihan input yang bersifat umpan maju (feed forward), ), penghitungan propagasi balik galat yang diperoleh, dan penyesuaian bobot. Jaringan ini menggunakan metode pembelajaran ajaran terbimbing ((supervised learning). ). Adapun cara kerja JST diawali dengan inisialisasi bobot dan bias. Selanjutnya pola input dan target dimasukkan ke dalam jaringan. Pola masukan ini akan berubah bersamaan dengan propagasi pola tersebut ke lapisan-lapisan pisan berikutnya hingga menghasilkan output. Output ini akan dibandingkan dengan target, jika hasil perbandingan menghasilkan galat yang minimum maka proses pembelajaran akan berhenti. Jika galatnya belum minimum maka JST akan mengubah bobot yang ada pada hubungan antar neuron dengan suatu aturan tertentu agar nilai keluaran lebih mendekati nilai target. Proses pengubahan bobot dilakukan dengan cara mempropagasikan kembali nilai koreksi galat keluaran JST ke lapisan-lapisan lapisan sebelumnya (propagasi balik). Kemudian Ke dari lapisan masukan, pola akan diproses lagi untuk mengubah nilai bobot sampai akhirnya memperoleh keluaran JST baru. Demikian seterusnya proses ini dilakukan berulang berulangulang sampai nilai yang sama atau minimal
Gambar 1. Grafik fungsi sigmoid biner. Persamaan fungsi sebagai berikut: =
sigmoid
biner
adalah
,
dengan turunannya, .
Berikut adalah grafik dari fungsi linear
Gambar 2. Grafik fungsi linear. linear Persamaan fungsi liear adalah sebagai berikut
dengan turunannya,
3
Perkiraan Biaya Perangkat Lunak dengan JST Banyak model jaringan saraf tiruan yang digunakan untuk memprediksi biaya perangkat lunak. Model ini dapat dikelompokkan ke dalam dua kategori utama. Kategori pertama adalah feed-forward networks yang tidak memiliki loop dalam jaringan tersebut. Kategori kedua adalah jaringan dengan feedback yang memiliki loop rekursif. Dari berbagai model jaringan saraf tiruan, yang sering digunakan adalah model JST feedforward multi layer perceptron dengan algoritme pembelajaran backpropagation (Ali Idri et al. 2002). Model jaringan ini menghasilkan output (effort) dengan mempropagasikan input mula-mula (cost drivers) dari layer masukan hingga layer terakhir. Tiap neuron dalam jaringan tersebut menghitung fungsi non linear dari input dan meneruskan hasilnya sampai ke layer output. Fungsi aktivasi yang sering digunakan adalah fungsi Sigmoid.
memperkirakan biaya perangkat lunak. Metode ini menghasilkan MMRE sebesar 492.58%.
K-Fold Cross Validation K-Fold Cross Validation dilakukan untuk membagi data penelitian dan data pengujian. K-Fold Cross Validation membagi data contoh secara acak ke dalam K subset yang saling bebas. Satu subset digunakan sebagai data pengujian dan K-1 subset sebagai data pelatihan. Proses cross validation akan diulang sampai K kali. Data awal dibagi menjadi K subset yang saling bebas secara acak, yaitu S1, S2, …, Sk, dengan ukuran setiap subset kira-kira sama. Pelatihan dan pengujian dilakukan sebanyak K kali. Pada proses ke-i, subset Si diperlakukan sebagai data pengujian dan subset lainnya diperlakukan sebagai data pelatihan. Pada proses pertama S2, …, Sk menjadi data pelatihan dan S1 menjadi data pengujian, Pada proses kedua S1, S3, …, Sk menjadi data pelatihan dan S2 menjadi data pengujian, dan seterusnya (Fu 1994, diacu dalam Noorniawati 2007). Evaluasi Model Perkiraan Biaya Perangkat Lunak Standar untuk evaluasi biaya perangkat lunak adalah Magnitude of Relative Error (MRE) (Briand et al. 1999).
| | ,
MRE dihitung untuk setiap pengujian i yang biayanya telah diperkirakan. Agregat nilai MRE pada banyak pengujian, misal N, dapat diperoleh melalui Mean MRE (MMRE) (Briand et al. 1998). Gambar 3. Model Perkiraan Biaya dengan JST Penelitian sejenis menggunakan JST dilakukan oleh Wittig dan Finnie pada tahun 1997. Mereka mencoba memprediksi biaya pengembangan perangkat lunak dengan menggunakan metrik set Desharnias dan Australian Software Metrics Association (ASMA). Hasilnya cukup memuaskan dengan mendapatkan MMRE 29% untuk Desharnais dan 17% untuk ASMA. Ardiansyah, (2007) menggunakan metode analogy based estimation untuk
∑
| !"#" |
,
Nilai MMRE sensitif pada pengujian individual yang memiliki MRE yang sangat besar. Untuk itu, agregat yang tidak sensitif pada nilai pencilan besar perlu digunakan, yaitu median dari MRE pada N pengujian (MdMRE) (Briand et al. 1998). Variable lainnya adalah MRE minimal (min MRE), MRE maksimal (max MRE), dan standar deviasi MRE (SDMRE) (Idri et al. 2001). Pengujian dapat dikatakan makin baik jika
4
nilai MMRE, MdMRE, min MRE, dan max MRE makin kecil. Standar evaluasi lain yang sering digunakan adalah prediksi pada level l, disebut juga Pred(l). Prediksi level l mengukur persentasi dari suatu hasil perkiraan yang mempunyai MRE l% dari nilai aktualnya. Hasil evaluasi dikatakan acceptable jika setelah dilakukan penghitungan dengan l yang bernilai 0.25 menghasilkan akurasi yang bernilai kurang dari atau sama dengan 0.75 (Conte et al. 1986). Berikut ini adalah persamaan mencari nilai Prediksi pada level l.
$%&'(
untuk
,
dengan N adalah jumlah total dari data latih dan k adalah banyaknya hasil perkiraan yang mempunyai nilai MRE kurang dari atau sama dengan l.
METODE PENELITIAN Kerangka Pemikiran Tahapan yang dilakukan pada penelitian ini secara garis besar terdiri atas beberapa langkah, seperti yang ditunjukkan oleh skema penelitian pada Gambar 4 :
Studi Literatur Studi pustaka dilakukan untuk membantu memahami langkah-langkah dalam metode yang digunakan dalam penelitian ini. Selain itu, perlu dipelajari sistem dan cara kerja jaringan saraf tiruan serta metode evaluasi yang digunakan. Referensi-referensi yang digunakan pada penelitian ini dapat dilihat dalam daftar pustaka. Pengambilan Data Data yang dipakai pada penelitian ini adalah data dari kelompok data COCOMO 81. Data ini berasal dari jurnal Boehm pada tahun 1981 yang berjudul Software engineering economics. Kelompok data ini terdiri atas 63 proyek masing-masing memiliki 17 atribut utama, yaitu, 15 jenis CD (Cost Driver) yang bertipe numerik, ukuran dari proyek dalam satuan Kilo Lines of Code (KLOC), dan biaya aktual proyek dalam satuan Person Month (PM). Satu atribut tambahan berupa nomor id proyek. Daftar atribut utama untuk kelompok data COCOMO 81 dapat dilihat pada Lampiran1.
Preprocessing Data Data yang akan digunakan adalah data COCOMO 81 yang terdiri atas 63 proyek pengerjaan perangkat lunak. Data ini diproses terlebih dahulu sebelum digunakan oleh sistem. Prosesnya meliputi pengacakan data, normalisasi data (mengonversi data menjadi berinterval 0.1-0.9) dan mengelompokkan data menjadi suatu dataset. Pada tahap normalisasi data, data ditransformasi sehingga range data menjadi [0.1-0.9]. Persamaan perubahan rangenya sebagai berikut :
)*
0.8 . ') ( / 0.1 ,
dengan a adalah data minimum dan b adalah data maksimum. Pada penelitian ini tidak dilakukan normalisasi pada kelompok data effort. Normalisasi hanya dilakukan pada 15 jenis Cost Driver dan ukuran proyek (KLOC). Selanjutnya data ini akan dibagi menjadi dua yaitu data latih dan data uji. Pengujian dan pelatihan dilakukan dengan metode k-fold cross validation. Dalam penelitian ini digunakan 10-fold dan 15-fold cross validation. Gambar 4. Metode penelitian
5
Pelatihan Arsitektur jaringan saraf tiruan yang digunakan untuk pelatihan adalah multilayer perceptron dengan algoritme pembelajaran backpropagation dan fungsi aktivasinya yaitu sigmoid. Pelatihan Jaringan Saraf tiruan dalam MATLAB dapat dilakukan dengan berbagai macam algoritme training seperti trainlm, traingd, traincgb dan lain sebagainya. Pada penelitian ini digunakan algoritme training trainlm karena menurut Hagan, M. T. (1994) algoritme ini lebih cepat 10-100 kali dibandingkan dengan algoritma gradien biasa. Pada ukuran network yang moderat algoritme ini juga memiliki waktu konvergensi tercepat dan dapat menghasilkan mean square error yang terkecil jika dibandingkan dengan algoritma lainnya. Pengujian Pengujian dilakukan dengan membandingkan hasil perkiraan yang diberikan jaringan saraf tiruan dengan data aktualnya. Pada tahap pengujian ini, dilakukan validasi berulang kali sampai jaringan saraf tiruan menujukkan hasil terbaiknya. Dalam penelitian ini dilakukan perulangan sampai tiga kali. Tingkat akurasi pendugaan dihitung dengan menggunakan fungsi MRE seperti berikut ini :
| |
Selain digunakan fungsi MRE sebagai evaluasi, tingkat akurasi juga akan ditentukan dengan nilai MMRE, MdMRE dan Pred(l). Lingkungan Pengembangan Perangkat lunak yang digunakan dalam penelitian ini adalah sebagai berikut :
• Mircrosoft Windows XP Profesional • Microsoft Office Excel 2007 • MATLAB 7.0.1 Perangkat keras yang digunakan adalah sebagai berikut : • PC Intel Pentium IV 2.8 GHz • DDRAM 512 MB • hardisk dengan kapasitas 80 GB • monitor VGA dengan resolusi 1024x768 pixel
HASIL DAN PEMBAHASAN Bab ini terdiri atas tiga bagian yaitu: 1. 2. 3.
Setting Jaringan Saraf Tiruan Pemilihan Jumlah Hidden Layer Optimal Karakteristik Jaringan Saraf tiruan
Setting Jaringan Saraf Tiruan Model jaringan saraf tiruan dapat dibedakan menurut arsitektur jaringan, algoritme learning dan fungsi aktifasinya (Idri et al. 2002). Pada penelitian ini digunakan arsitektur jaringan multilayer perceptron dengan algoritme pembelajaran backpropagation dan fungsi aktivasinya adalah sigmoid. Arsitektur backpropagation sendiri umumnya memliki tiga lapis beserta neuronneuronnya. Lapisan pertama adalah lapisan input, lapisan kedua adalah lapisan tersembunyi (hidden layer) dan lapisan ketiga adalah lapisan output. Lapisan tersembunyi bisa terdiri atas satu atau lebih lapisan dan memiliki jumlah neuron yang bervariasi. Jumlah neuron pada lapisan tersembunyi akan dicari nilai optimalnya. Hal ini dilakukan dengan cara melakukan perubahan jumlah neuron pada lapisan tersembunyi secara iterasi. Pada pembahasan ini akan terlihat kinerja arsitektur jaringan saraf tiruan yang dipilih dalam memperkirakan biaya perangkat lunak. Jaringan Saraf Tiruan ini memiliki 16 neuron input, satu buah neuron output dan neuron pada layer tersembunyi yang diiterasi. Pada proses pelatihan, digunakan algoritme training trainlm, batas toleransi 10-4, learning rate 0.01, dan maksimal epoch dibatasi 10000. Struktur jaringan saraf tiruan selengkapnya dapat dilihat pada Tabel 3. Tabel 3 Struktur jaringan propagasi balik standar yang digunakan dalam penelitian KARAKTERISTIK Neuron input
SPESIFIKASI Ada 16 neuron yaitu, Cost driver yang berjumlah 15 jenis dan ukuran dari proyek dalam KLOC
6
Lanjutan Tabel 3 KARAKTERISTIK
SPESIFIKASI
Neuron layer
hidden
Dilakukan iterasi jumlah neuron mulai dari 1 sampai 63
Neuron layer
output
1 yaitu perkiraan biaya software dalam person month
Fungsi Aktivasi hidden layer
Sigmoid biner
Fungsi aktivasi output layer
Linear
Toleransi galat
10-4
Target epoch
10000
Learning rate
0.01
Algoritme training
Trainlm
Pemilihan Jumlah hidden layer yang optimal
MMRE
Seperti yang disebutkan dalam metode penelitian, dari penelitian ini dapat juga diperoleh artistektur terbaik dari jaringan saraf tiruan yang dipilih. Dalam hal ini penelitian hanya difokuskan untuk mencari jumlah neuron yang optimal pada lapisan layer tersembunyi. Untuk mencari jumlah neuron yang optimal, pelatihan dilakukan dengan jumlah neuron yang bervariasi (diiterasi dari 1 sampai 63). Pengujian dilakukan dengan metode 10 dan 15-fold cross validation.
Jumlah neuron pada lapisan tersembunyi yang optimal diindikasikan oleh hasil nilai mean mre, median mre, dan Pred(l) yang diperoleh pada saat pengujian data. Semakin akurat nilai pendugaannya, nilai mmre akan semakin mendekati angka nol. Nilai yang ekstrem atau nilai yang berbeda jauh dari data yang lainnya akan sangat berpengaruh pada hasil mean mre oleh karena itu digunakan perhitungan dengan median mre (MdMRE) untuk mengatasi masalah distorsi data tersebut. Prediksi level l mengukur persentasi dari suatu hasil perkiraan yang mempunyai MRE l% dari nilai aktualnya. Seperti yang telah dijabarkan sebelumnya, untuk validasi digunakan metode k-fold cross validation. Penelitian ini menggunakan 10 dan 15-fold cross validation sebagai perbandingan. Grafik uji 10-fold cross validation untuk nilai mean MRE dapat dilihat pada Gambar 5 berikut ini. Dari Gambar 5 tersebut dapat dilihat bahwa nilai mean MRE berubah seiring dengan pertambahan hidden layer. Nilai mean MRE yang paling tinggi terdapat pada arsitektur dengan 1 hidden neuron, nilai mean MRE yang dihasilkan sangat besar yaitu mencapai 1748,7 hal ini dikarenakan jaringan belum dapat mengenali pola dengan benar. Nilai mean MRE terendah dihasilkan pada neuron dengan jumlah hidden layer 2 yaitu 5,677. Nilai mean MRE setalah itu berfluktuatif dan grafik menunjukkan bahwa nilai mean MRE cenderung membesar. Semakin tinggi nilai mean MRE semakin besar pula kemungkinan sistem untuk melakukan kesalahan dalam pendugaan.
2000 1800 1600 1400 1200 1000 800 600 400 200 0 1 3 5 7 9 111315171921232527293133353739414345474951535557596163 Hidden Layer Gambar 5. Grafik Nilai MMRE pada 10-fold cross validation
7
Dari grafik pada Gambar 5 di atas juga dapat dilihat bahwa ada satu nilai mean MRE yang sangat tinggi, jauh melebihi nilai lainnya. Nilai mean MRE yang sangat tinggi pada beberapa hidden layer selain disebabkan oleh banyaknya pendugaan yang kurang akurat, disebabkan juga oleh terdapatnya nilai pencilan yang berbeda jauh dari hasil rata-rata. Seperti grafik pada Gambar 5 yang memperlihatkan adanya nilai MMRE yang
ekstrim melebihi nilai yang lainnya. Hal ini dikarenakan sistem melakukan perkiraan yang menghasilkan output 647.89 Di sinilah kelemahan pengukuran menggunakan mean MRE dimana mean sensitif terhadap nilai pencilan. Oleh karena adanya distorsi/nilai pencilan dalam data maka digunakan juga median MRE dan Pred(l) untuk mencari nilai terbaik. Grafik nilai median MRE untuk 10fold dapat dilihat pada Gambar 6 berikut ini.
60
Median MRE
50 40 30 20 10 0 1 3 5 7 9 111315171921232527293133353739414345474951535557596163 Hidden Layer Gambar 6. Grafik Nilai Median MRE pada 10-fold cross validation diurutkan berdasarkan nilai Pred(l), cetakan Seperti yang terlihat dalam grafik pada hitam menunjukkan tingkat akurasi yang Gambar 6, nilai median MRE yang terkecil terbaik dalam kolom tersebut. Data dicapai oleh arsitektur yang memiliki 6 buah selengkapnya dapat dilihat pada Lampiran 3. neuron pada hidden layer. Nilai median MRE terbaik yang dihasilkan adalah 0,875 yaitu Tabel 4 Nilai MMRE, Med MRE dan pada jumlah hidden neuron sama dengan 6. Pred(0.25) pada 10-fold cv Nilai median MRE yang paling besar Hidden dihasilkan oleh arsitektur dengan 58 hidden MMRE Med MRE Pred(0.25) Layer neuron yaitu 31,216. Nilai pred(0.25) yang paling baik berada pada arsitektur yang memiliki 2 buah hidden neuron yaitu sebesar 17,46%. Prediksi pada level l didefinisikan sebagai persentase jumlah dari hasil data testing yang memiliki nilai galat tidak lebih dari l% dibagi total data testing. Dalam hal ini pred(0.25)=17,46% artinya sebanyak 17,46% data testing memiliki nilai MRE 0.25 dari nilai aktualnya. Tabel perbandingan antara MMRE, Median MRE dan Pred(l) dapat dilihat pada Tabel 4. Sebagai pembanding disertakan juga hasil tes menggunakan 15-fold cross validation. Pada tabel di bawah ini hanya disertakan 10 buah data yang memiliki tingkat akurasi paling baik. Peringkat akurasi
2
0.895
5.678
0.175
1
0.956
1748.7
0.159
35
5.301
119.84
0.127
3
0.907
20.858
0.111
4
0.921
21.717
0.111
18
0.984
88.094
0.111
5
1.6
25.332
0.095
6
0.875
84.318
0.095
9
1.714
18.312
0.095
12
3.097
116.14
0.095
8
Tabel 5 Nilai MMRE, Med MRE dan Pred(0.25) pada 15-fold cv
Hidden Layer
MMRE
Med MRE
Pred(0.25)
2
0.971
8.371
0.159
14
7.673
27.542
0.143
44
6.82
125.12
0.127
4
1.546
74.27
0.111
9
0.965
156.01
0.111
15
1.328
57.867
0.111
3
1.322
10.404
0.095
7
1.795
61.264
0.095
8
1.285
105.75
0.095
10
1.348
100.21
0.095
Tabel 5 menunjukkan perbandingan antara nilai MMRE, Median MRE dan Pred(0.25) pada 15-fold cv. Uji validasi dengan menggunakan 15-fold cv menunjukkan bahwa nilai MMRE dan Pred(0.25) yang terbaik berada pada arsitektur yang memiliki jumlah neuron dua pada layer tersembunyi. Di lain pihak, nilai Median MRE pada 15-fold cv terbaik berada pada arsitektur dengan lima buah hidden neuron. Dari kedua uji validitas dapat ditarik kesimpulan bahwa arsitektur jaringan saraf tiruan yang paling optimal adalah arsitektur yang menggunakan dua buah neuron pada lapisan layer tersembunyinya. Hal ini
dikarenakan nilai MMRE dan nilai Pred(0.25) paling baik ditemukan pada arsitektur dengan dua hidden neuron. Kita tidak memilih nilai Median MRE yang paling kecil karena pada neuron dimana didapati nilai Median MRE yang paling kecil didapati juga nilai MMRE yang besar dan nilai Pred(0.25) yang kecil. Disamping itu nilai Median MRE pada neuron dengan dua layer tersembunyi juga tidak terpaut jauh dengan nilai Median MRE yang terkecil. Karakteristik Jaringan Saraf Tiruan Pada kedua pengujian sebelumnya didapat nilai rata-rata galat/ kesalahan yang cukup besar. Selanjutnya akan diterapkan metode yang seperti leave-one-out cross validation untuk melakukan validasi. Pertama-tama data dibagi ke dalam dua kategori yaitu data latih dan data uji. Satu buah data dijadikan sebagai data uji sedangkan sisanya digunakan sebagai data latih. Proses pengujian ini dilakukan sebanyak 21 kali secara bergantian. Hasil pengujian dapat dilihat pada Gambar 7 berikut ini. Untuk data hasil pengujian selengkapnya dapat dilihat dalam Lampiran 12. Grafik pada Gambar 7 adalah grafik perbandingan antara nilai aktual dan nilai estimasi. Secara keseluruhan, untuk pengujian pada tahap ini menunjukkan kinerja yang lebih baik dibandingkan dengan kedua pengujian sebelumnya. Hal ini dapat dilihat dari grafik nilai estimasi yang sudah sangat mendekati nilai aktualnya juga pada galat/ MRE yang didapat. Grafik MRE dapat dilihat pada Gambar 8.
12000
Estimasi
10000 8000 6000 Nilai Aktual 4000 Nilai Estimasi 2000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Data Set Gambar 7. Grafik Perbandingan Antara Nilai Aktual dan Nilai Estimasi
9
7 6
MRE
5 4 3 MRE
2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Data Set Gambar 8. Grafik Nilai MRE Grafik pada Gambar 8 menunjukkan nilai MRE yang didapat pada saat pengujian. Jika dibandingkan dengan grafik pada pengujian sebelumnya dapat dilihat bahwa MRE yang dihasilkan pada percobaan ini menunjukkan angka yang lebih kecil. Hal ini berarti galat yang terjadi juga kecil sehingga menghasilkan perkiraan yang lebih akurat. Berikut ini adalah Tabel 6 yang menunjukkan nilai MRE dan Pred(l) yang dihasilkan oleh sistem. Tabel 6 Nilai MRE dan Pred(0.25) Nilai Min MRE
7.38x10-12
Max MRE
5.90
Median MRE
0.23
Mean MRE
0.76
Pred(0.25)
0.52
Nilai Pred(0.25) pada tahap ini mencapai nilai 52% berarti hasil estimasi sistem yang memiliki nilai MRE di bawah 25% adalah sebanyak 52%. Angka yang cukup tinggi bila dibandingkan dengan nilai Pred(0.25) yang sebelumnya yaitu 15.9% untuk 15-fold cross validation dan 17.5% untuk 10-fold cross validation. Yang membedakan percobaan ini dengan yang sebelumnya yaitu jumlah data latih yang jauh lebih banyak. Hal ini membuktikan bahwa secara umum keakuratan jaringan bertambah sejalan dengan makin
banyaknya proyek yang digunakan sebagai data latih. Menurut Conte, Dunsmore dan Sen suatu model perkiraan biaya perangkat lunak yang bagus harus mempunyai nilai Pred(0.25) kurang dari sama dengan 75%. Pada penelitian ini diperoleh nilai MMRE terbaik sebesar 76% dan nilai Pred(0.25) terbaik sebesar 52%. Nilai-nilai ini ternyata masih jauh dari ukuran baik menurut standar ukur di atas. Jaringan saraf tiruan bekerja berdasarkan prinsip pembelajaran dimana sistem mencoba mengenali pola masukan dari data training untuk mengetahui nilai keluaran. Karena bekerja berdasarkan prinsip tersebut jaringan saraf tiruan membutuhkan data training yang sangat besar. (Hasan Al-Sakran, 2006). Banyak studi membuktikan bahwa pendekatan dengan jaringan saraf tiruan menghasilkan output yang kurang akurat ketika data latih berbeda dari data uji (Serluca 1995). Berikut ini adalah beberapa faktor yang menyebabkan jaringan saraf tiruan kurang akurat dalam melakukan estimasi:
• •
•
Proyek yang baru sangat berbeda dari proyek yang ada dalam proses pelatihan Terlalu sedikitnya proyek yang digunakan sebagai data latih dalam proses pelatihan Tidak adanya relasi yang jelas antara CD yang dipilih (input sistem) dengan effort (keluaran sistem).
10
Selanjutnya akan dilihat sebaran yang terjadi pada hasil pengujian ini. Akan dibuat suatu grafik scatter yang memperlihatkan sebaran nilai aktual dan MRE pada evaluasi. Grafik scatter dapat dilihat pada Gambar 9 berikut ini. Pada Gambar 9 terlihat bahwa ada garis linear yang makin menuju ke titik nol pada
saat nilai aktual semakin besar. Hal ini menunjukkan adanya keterkaitan antara jenis proyek dengan nilai MRE. Ada kecenderungan teknik ini memberikan akurasi yang tinggi jika nilai aktual pada data uji besar dan hasil akurasi yang kecil didapat pada saat nilai aktual pada data uji kecil.
1.4 1.2
MRE
1 Dataset
0.8
Linear (Dataset)
0.6 0.4 0.2 0 0
200
400
600
800
Nilai Aktual Gambar 9. Grafik Scatter antara MRE dan Nilai Aktual Proyek
KESIMPULAN DAN SARAN Kesimpulan Penelitian ini menghasilkan beberapa kesimpulan di antaranya adalah jaringan saraf tiruan backpropagation dapat digunakan dalam melakukan perkiraan biaya perangkat lunak jika memiliki jumlah data training yang cukup untuk mengenali pola data masukan. Biasanya jumlah data training yang dibutuhkan cukup besar. Penambahan hidden layer tidak selalu membuat sistem lebih akurat dalam melakukan estimasi. Dalam penelitian ini diperoleh hidden layer yang optimal adalah dua buah neuron dengan nilai MMRE sebesar 5.67, Median MRE sebesar 0.89 dan Pred(0.25) sebesar 17%. Pada pengujian dengan menggunakan data latih yang lebih banyak didapati galat/ kesalahan yang minimal. Nilai MMRE yang dihasilkan adalah sebesar 0.76, Median MRE sebesar 0.23 dan Pred(0.25) sebesar 52%. Hasil penelitian menunjukkan bahwa ada kaitan antara jenis proyek dengan MRE. Ada kecenderungan teknik ini memberikan akurasi yang tinggi jika nilai aktual pada data uji besar. Hasil akurasi yang kecil didapat pada saat nilai aktual pada data uji kecil.
Saran Penelitian ini masih memerlukan pengembangan lebih lanjut. Hal yang mungkin untuk dikembangkan adalah :
•
• •
Kelompok data ini memiliki beberapa outlier (terdapat data yang berbeda jauh dengan data yang lainnya). Hal ini dapat mengurangi keakuratan sistem dalam melakukan perkiraan sehingga nilai-nilai outlier tersebut perlu dihilangkan Melakukan normalisasi pada data target Mengkalibrasi dahulu data COCOMO sebelum dilakukan proses estimasi - Proyek dalam database sangat bervariasi sehingga kalibrasi lokal dalam suatu grup dapat meningkatkan akurasi model.
DAFTAR PUSTAKA Al-Sakran, H. 2006. Software Cost Estimation Model Based on Integration of Multiagent and Case-Based Reasoning. Journal of Computer Science Vol.2, hlm. 276-282
11
Ardiansyah. 2007. Analisis Metode Analogy Based Estimation untuk Perkiraan Biaya Perangkat Lunak. [Skripsi]. Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor.
Serluca, C. 1995. An Investigation into Software Effort Estimation using a Backpropagation Neural Network [tesis]. Bournemouth University
Briand, Lionell. Et al. 1999. An Assessment and Comparison of Common Software Cost Estimation Modeling Techniques [catatan penelitian]. International Software Engineering Network Technical Report. Conte, S., Dunsmore, H., and Shen, V. 1986. Software Engineering Metrics and Models. Benjamin/Cummings, Menlo Park, California. Fausett, Laurene. 1994. Fundamental of Neural Networks Architectures, Algorithms, and Application. Prentice Halls, New Jersey. Hagan, M. T., and M. Menhaj. 1994. Training feedforward networks with the Marquardt algorithm [catatan penelitian]. IEEE Transactions on Neural Networks, vol. 5, no.6, hlm. 989-993. Idri, Ali. et al. 2002. Can Neural Network be easily Interpreted in Software Cost Estimation?. Di dalam : World Congress on Computational Intelligence. Honolulu, Hawaii. Jong Jek Siang. 2005. Jaringan Saraf Tiruan dan Pemrogramannya Menggunakan Matlab. Andi : Yogyakarta. Leung, Hareton. dan Zhang Fan. 2001. Software Cost Estimation. Departement of Computing, The Hong Kong Polytechnic University. Noorniawati VY. 2007. Metode Support Vector Machine untuk Klasifikasi pada Sistem Temu Kembali Citra [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Promise Software Engineering Repository dataset. 2004. http://www.promisedata.org. Saliu, Moshood Omolade. 2003. Adaptive Fuzzy Logic Based Framework For Software Development Effort Prediction. King Fahd University of Petroleum & Minerals.
12
LAMPIRAN
Lampiran 1 Kelompok data COCOMO 81 No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
rely 0.88 0.88 1 0.75 0.88 0.75 0.75 1.15 1.15 1.4 1.4 1.15 1.15 1.15 1.4 1.4 1.4 1.15 1.15 1.4 1 1.15 1.15 0.88 1.15 0.94 1.15 1.15 0.88 0.88
data 1.16 1.16 1.16 1.16 0.94 1 1 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94 1 1 1.16 1.08 1.08 1.16 1 1 1 1.16 1 0.94 1.08 1 1
cplx 0.7 0.85 0.85 0.7 1 0.85 1 1.3 1.3 1.3 1.3 1.3 1.3 1.65 1.3 1.3 1.3 1.15 1 1.3 1.15 1 1 0.85 1.3 0.85 1.15 1.3 1 1
time 1 1 1 1 1 1 1 1.66 1.3 1.11 1.11 1.11 1.11 1.3 1.3 1.3 1.3 1.3 1.11 1.11 1.06 1.27 1.08 1.06 1.15 1.07 1.35 1.11 1 1
stor 1.06 1.06 1 1 1 1.21 1 1.56 1.21 1.56 1.56 1.06 1.06 1.56 1.06 1.56 1.56 1.21 1.21 1.21 1.14 1.06 1.06 1.06 1.06 1.06 1.21 1.21 1 1
virt 1.15 1 0.87 0.87 0.87 1 0.87 1.3 1.15 1 1 1 1.15 1.15 1.15 1 1 1 0.87 1.15 0.87 1 1 1 1 1.15 1 1.15 1 1
turn 1.07 1.07 0.94 1 1 1 0.87 1 1 1.07 1.07 1 1 1 0.87 0.87 0.87 1.07 0.94 1.07 0.87 1 1 0.87 0.87 1.07 0.87 1.07 1 1
acap 1.19 1 0.86 1.19 1 1.46 1 0.71 0.86 0.86 0.86 0.86 0.71 0.86 0.86 0.86 0.86 0.86 0.71 0.71 0.86 0.86 0.86 1 0.86 0.86 1 0.86 1.1 1
aexp 1.13 0.91 0.82 0.91 1 1 1 0.91 1 0.82 0.82 0.82 1 1 1.13 1 0.82 1 0.91 0.82 1 0.82 0.82 1.29 1 1 1 1 1.29 1.29
pcap 1.17 1 0.86 1.42 0.86 1.42 1 1 0.86 0.86 0.86 0.86 0.7 0.7 0.86 0.86 0.86 1 1 1.08 1 0.86 0.86 1 0.86 0.86 1 0.86 0.86 0.86
vexp 1.1 0.9 0.9 1 0.9 0.9 0.9 1.21 1.1 0.9 0.9 1 1.1 1.1 1.21 1 1 1 1 1.1 1 0.9 0.9 1.1 1.1 1.1 1 1.1 1 1
lexp 1 0.95 0.95 0.95 0.95 0.95 0.95 1.14 1.07 1 1 0.95 1 1.07 1.14 1 1 1 1 1.07 1 1 1 0.95 1 1 1 1.07 1 1
modp 1.24 1.1 0.91 1.24 1.24 1.24 0.91 1.1 0.91 1 1 0.91 0.82 1.1 0.91 1 1 1.24 0.91 1.24 0.91 0.91 1 0.82 0.82 0.91 0.82 1.1 0.91 0.91
tool 1.1 1 0.91 1 1 1.1 0.91 1.1 1 1 1 1 1 1.24 1 1 1 1.1 0.91 1 0.91 1 1 0.83 0.91 1.1 1.1 1.1 0.91 0.91
sced 1.04 1 1 1.04 1 1 1 1.08 1 1 1 1.08 1 1.23 1.23 1 1 1.08 1 1.08 1 1.23 1.23 1 1.08 1.08 1.08 1 1.23 1.23
Ukuran Perangkat lunak (kloc) 113 293 132 60 16 4 6.9 22 30 29 32 37 25 3 3.9 6.1 3.6 320 1150 299 252 118 77 90 38 48 9.4 13 2.14 1.98
PM 2040 1600 243 240 33 43 8 1075 423 321 218 201 79 60 61 40 9 11400 6600 6400 2455 724 539 453 523 387 88 98 7.3 5.9
14
Lanjutan No rely 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
1.4 0.88 1.4 1.15 0.75 0.88 0.88 1 1 1 0.88 0.88 1 0.88 0.88 0.88 0.75 0.88 1 1.15 0.88 0.88 0.88 1 0.88 1.15 1 1.4 1 1.15 1 0.88 1
data 1.08 1.08 1.08 1.08 0.94 1.05 0.94 1 1 0.94 0.94 1.04 1.04 1.04 1.04 1.04 0.94 0.94 1 1 1 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94 0.94
cplx 1 0.85 1.3 1 1.3 0.81 0.7 1.15 1.15 1.3 1 1.07 1.07 1.07 1.07 1.07 1.3 0.85 0.85 1 1 0.85 1.15 1 0.7 1.3 1.15 1.3 1.15 1.3 1.15 1.3 1.15
time 1.48 1 1.48 1.06 1.06 1 1 1 1 1 1 1 1 1.06 1 1 1 1 1 1.3 1 1 1.11 1 1 1.3 1.11 1.66 1.06 1.11 1 1.11 1
stor 1.56 1 1.56 1 1.21 1 1.06 1 1 1 1 1.06 1.21 1.21 1.06 1.06 1 1 1 1.21 1 1.06 1.21 1.06 1 1.21 1.21 1.21 1.06 1.06 1 1.21 1
virt 1.15 1 1.15 1 1.15 0.87 1 0.87 0.87 1 0.87 0.87 0.87 0.87 0.87 0.87 0.87 0.87 1 1 1 1.15 1.3 1.15 0.87 1 1.3 1 1 1 0.87 1.15 1
turn 1.07 1 0.94 0.87 1 0.87 1 0.87 1 0.87 0.87 1.07 1.07 1.07 1.07 1.07 0.87 1 0.87 0.87 1.15 1 1 0.87 0.87 1 1 1 0.87 1 0.87 1 0.87
acap 0.86 0.71 0.86 1 1 1.19 0.86 0.71 0.71 0.86 1 0.86 0.86 1 1 1 0.71 1.19 0.71 0.86 1.19 1 0.71 1 0.86 0.86 1 0.71 1 0.86 0.86 0.78 0.71
aexp 0.82 0.82 0.82 1 0.91 1 0.82 0.91 0.82 0.82 0.82 1 1 1 1 1 0.82 0.91 1 1 1 1 1 0.82 0.82 0.91 1 0.82 1 1.13 1 0.82 0.82
pcap 0.86 1 0.86 1 1 1.17 0.86 1 0.7 1.17 0.7 0.93 1 1 1 0.86 0.7 1.17 0.7 0.86 1.42 1 0.7 1 1.17 1 1 0.7 1 0.86 0.86 0.7 0.86
vexp 1.1 1 0.9 1 1.1 0.9 1 0.9 1 1 0.9 0.9 0.9 0.9 0.9 0.9 1.1 0.9 1.1 1.1 1 1.1 1.1 1 0.9 1.1 1.1 0.9 1 1.1 0.9 1.21 1
lexp 1.07 1 1 1 1 0.95 1 0.95 0.95 1 0.95 0.95 0.95 0.95 0.95 0.95 1.07 0.95 1 1 0.95 1.07 1.07 0.95 0.95 1.07 1.07 0.95 1 1.07 1 1.14 1
modp 1 1.1 0.91 0.91 1.24 1 1 0.82 0.91 1.1 0.91 0.95 1 1.1 1 1 1.1 1.1 0.82 1 1.24 1.24 1 0.91 1.1 1.1 1.1 0.91 0.91 1.1 0.82 0.91 0.82
tool 1 1.1 0.91 1.1 1.24 0.91 1 0.91 1.1 1 0.91 0.95 1 1 0.95 1 1 1 0.91 1 1.1 1.1 1.1 1.1 1 1.1 1.1 1 1 1.1 1 1.24 1
sced 1 1 1 1.23 1 1.04 1 1 1 1 1 1.04 1.04 1.04 1.04 1.04 1.04 1.04 1 1 1.04 1 1.08 1 1 1.08 1.23 1 1 1.08 1 1 1
Ukuran Perangkat lunak (kloc) 62 390 42 23 13 15 60 15 6.2 3 5.3 45.5 28.6 30.6 35 73 23 464 91 24 10 8.2 5.3 4.4 6.3 27 17 25 23 6.7 28 9.1 10
PM 1063 702 605 230 82 55 47 12 8 8 6 45 83 87 106 126 36 1272 156 170 122 41 14 20 18 958 237 130 70 57 50 38 15
15
Lampiran 2 Tabel Effort Multiplier pada COCOMO
COCOMO I - EFORT MULTIPLIERS RATING COST DRIVER
V. LOW
LOW
NOMINAL
HIGH
V. HIGH
EX. HIGH
(PRODUCT)
RELY
0.75
0.88
1.00
1.15
1.40
.
..
DATA
.
0.94
1.00
1.08
1.16
.
..
CPLX
0.70
0.85
1.00
1.15
1.30
1.65
(COMPUTER)
TIME
.
.
1.00
1.11
1.30
1.66
..
STOR
.
.
1.00
1.06
1.21
1.56
..
VIRT
.
0.87
1.00
1.15
1.30
.
..
TURN
.
0.87
1.00
1.07
1.15
.
(PERSONNEL)
ACAP
1.46
1.19
1.00
0.86
0.71
.
..
AEXP
1.29
1.13
1.00
0.91
0.82
.
..
PCAP
1.42
1.17
1.00
0.86
0.70
.
..
VEXP
1.21
1.10
1.00
0.90
.
.
..
LEXP
1.14
1.07
1.00
0.95
.
.
PROJECT
MODP
1.24
1.10
1.00
0.91
0.82
.
..
TOOL
1.24
1.10
1.00
0.91
0.83
.
..
SCED
1.23
1.08
1.00
1.04
1.10
.
16
Lampiran 3 Agregat Galat COCOMO 81 pada 10-fold cross validation Hidden Layer
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
Min MRE
0.116 0.047 0.092 0.036 0.167 0.042 0.358 0.001 0.017 0.083 0.072 0.226 0.009 0.066 0.083 0.205 0.006 0.068 0.092 0.045 0.104 0.059 0.18 0.341 0.166 0.029 0.135 0.085 0.143 0.386 0.001 0.041 0.19 0.015 0.063 0.313 0.002 0.187 0.313 0.023
MAX MRE
66.188 32.173 208.45 156.24 149.24 958.74 381.4 441.53 109.07 542.23 325.97 1816.4 98.536 317.51 782.66 464.72 970.4 740.42 1120.2 234.86 540.18 559.13 340.39 258.38 611.12 402.96 701.71 487.64 176.31 1432.3 228.06 1084.9 3236.4 553.88 1932.8 630.07 3252.9 470.5 2025.7 1588.4
MED MRE
0.956 0.895 0.907 0.921 1.6 0.875 2.767 2.242 1.714 2.234 7.016 3.097 4.806 9.015 1.485 6.269 4.358 0.984 4.869 6.947 2.667 4.16 9.542 5.914 11.044 5.59 3.604 7.611 3.946 7.443 6.956 7.048 18.536 19.83 5.301 8.861 11.63 13.821 9.706 8.852
MMRE
1748.7 5.678 20.858 21.717 25.332 84.318 28.091 32.824 18.312 42.77 44.921 116.14 31.281 101.06 59.213 42.923 71.133 88.094 83.774 58.196 76.955 89.466 50.731 68.839 169.61 73.916 73.419 83.342 65.838 113.04 79.626 91.101 106.09 67.352 119.84 90.151 114.06 115.56 80.016 93.428
PRED(0.25)
0.159 0.175 0.111 0.111 0.095 0.095 0.032 0.048 0.095 0.079 0.063 0.095 0.079 0.063 0.079 0.079 0.063 0.111 0.063 0.063 0.063 0.048 0.032 0.016 0.048 0.048 0.048 0.079 0.032 0.016 0.079 0.032 0.016 0.063 0.127 0 0.063 0.032 0.048 0.032
17
Lanjutan Hidden Layer
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
Min MRE
0.025 0.233 0.059 0.054 0.17 0.033 0.235 0.04 0.072 0.094 0.139 0.005 0.265 0.042 0.29 0.04 0.029 0.055 0.088 0.019 0.034 0.189 0.085
MAX MRE
587.87 2970 1452.3 1077.2 284 885.58 383.97 1279 2180.1 363.92 1600.8 1247.3 514.01 2916.9 2121.4 826.06 1423.2 1265.5 3080.2 926.68 2334.2 1509.7 3000
MED MRE
7.967 11.344 9.081 4.461 14.662 10.239 16.536 9.794 15.226 18.552 16.284 13.115 18.664 14.749 16.036 27.256 20.968 51.393 18.983 18.489 25.655 21.649 26.468
MMRE
101.13 120.21 159.14 79.749 69.091 82.885 78.81 91.6 110.61 130.53 123.66 91.421 130.4 102.83 142.65 96.755 186.83 130.73 200.33 131.07 120.69 138.79 164.21
PRED(0.25)
0.032 0.032 0.032 0.095 0.032 0.079 0.032 0.032 0.063 0.016 0.016 0.079 0 0.048 0.016 0.016 0.095 0.079 0.079 0.048 0.032 0.048 0.048
Lampiran 4 Grafik Boxplot Min MRE dan Pred(0.25) pada 10-fold cross validation 0.4
Data
0.3
0.2
0.1
0.0 Min MRE
PRED(0.25)
18
Lampiran 5 Grafik Boxplot MMRE pada 10-fold cross validation 2000
MMRE
1500
1000
500
0
Lampiran 6 Grafik Boxplot Median MRE pada 10-fold cross validation
50
MED MRE
40
30
20
10
0
Lampiran 7 Grafik Boxplot Max MRE pada 10-fold cross validation 3500
3000
MAX MRE
2500
2000
1500
1000
500
0
19
Lampiran 8 Agregat Galat COCOMO 81 pada 15-fold cross validation Hidden Layer
Min MRE 1
MAX MRE
MED MRE
MMRE 14.104
PRED(0.25)
0.137
46.477
1.52
0.063
2
0.08
34.867
0.971
8.371
0.159
3
0.057
24.793
1.322
10.404
0.095
4
0.094
245.11
1.546
74.27
0.111
5
0.043
240.78
0.78
144.01
0.079
6
0.055
849.28
0.939
49.137
0.079
7
0.12
1422.4
1.795
61.264
0.095
8
0.012
2737
1.285
105.75
0.095
9
0.007
511.97
0.965
156.01
0.111
10
0.054
114.06
1.348
100.21
0.095
11
0.01
1314.2
3.688
79.115
0.079
12
0.091
236.6
1.829
107.35
0.079
13
0.448
89.03
4.506
50.326
0.048
14
0.02
427.22
7.673
27.542
0.143
15
0.069
891.54
1.328
57.867
0.111
16
0.119
106.09
2.848
83.291
0.079
17
0.008
305.42
3.791
59.233
0.048
18
0.017
222.72
4.158
94.819
0.063
19
0.191
372.07
3.356
95.088
0.079
20
0.022
207.53
4.951
140.96
0.079
21
0.078
62.335
3.006
99.844
0.079
22
0.216
753.86
5.757
89.282
0.079
23
0.278
232.53
4.279
65.588
0.079
24
0.151
227.5
5.512
61.439
0.079
25
0.163
589.72
4.374
61.574
0.048
26
0.047
1431.8
4.485
98.264
0.032
27
0.193
183.24
10.169
108.7
0.016
28
0.192
188.22
3.201
65.295
0.095
29
0.179
300.9
8.446
160.19
0.048
30
0.259
231.58
10.018
111.12
0.048
31
0.263
1367.4
33.207
87.937
0
32
0.269
1385.2
5.881
86.281
0.048
33
0.406
557.8
13.589
68.592
0.063
34
0.079
971.8
7.347
76.309
0.048
35
0.261
1075.8
31.209
121.67
0.032
36
0.371
2620.5
11.477
119.87
0.048
37
0.058
950.42
10.255
95.16
0.048
38
0.19
2075.1
9.57
102.75
0.048
39
0.131
1598.5
8.325
93.965
0.032
40
0.1
965.64
8.328
94.638
0.063
20
Lanjutan Hidden Layer
Min MRE
MAX MRE
MED MRE
MMRE
PRED(0.25)
41
0.175
806.06
22.761
79.588
0.032
42
0.227
1387.6
18.339
117.15
0.016
43
0.239
566.02
5.27
76.012
0.079
44
0.026
2632.5
6.82
125.12
0.127
45
0.369
1707
23.497
139.54
0.032
46
0.07
1883
7.838
121.06
0.048
47
0.527
1076.7
20.102
104.34
0.032
48
0.426
1391.9
23.708
87.742
0.048
49
0.103
241.56
9.158
79.282
0.032
50
0.253
3326.3
18.892
133.97
0.032
51
0.108
1688.9
4.654
132.2
0.095
52
0.518
1904.7
14.787
116.77
0.032
53
0.328
1264.5
14.831
130.76
0
54
0.119
1084.3
9.381
73.857
0.079
55
0.186
835.47
14.185
112.31
0.032
56
0.105
3185.6
9.315
200.95
0.032
57
0.03
543.98
28.328
55.674
0.048
58
0.103
602
28.56
78.44
0.063
59
0.741
2949.9
36.866
213.51
0
60
0.234
2071.3
17.267
207.59
0.032
61
0.188
2638.1
30.607
149.15
0.032
62
0.019
6445.2
33.511
224.98
0.032
63
0.102
2270
22.574
111.19
0.063
Lampiran 9 Grafik Boxplot Min MRE dan Pred(0.25) pada 15-fold cross validation 0.8 0.7 0.6
Data
0.5 0.4 0.3 0.2 0.1 0.0 Min MRE
PRED(0.25)
21
Lampiran 10 Grafik Boxplot Mean MRE dan Med MRE pada 15-fold cross validation 250
200
Data
150
100
50
0 MMRE
MED MRE
Lampiran 11 Grafik Boxplot Max MRE pada 15-fold cross validation 7000 6000
MAX MRE
5000
4000
3000
2000
1000
0
22
Lampiran 12 Hasil Pengujian dan Nilai MRE dengan Data Latih yang Diperbanyak Nilai Aktual
Nilai Estimasi
MRE
1600
5616.1
2.51
8
26.519
2.315
423
428.22
0.012
218
245.05
0.124
9
62.136
5.904
11400
11274
0.011
6400
6400
5.93x10-10
2455
2453.8
0.001
539
539
7.38x10-12
453
107.4
523
644.72
702
881.31
82
30.427
12
7.778
8
12.066
1272
1257.8
156
61.054
122
99.375
41
50.592
0.763 0.233 0.255 0.629 0.352 0.508 0.011 0.609 0.185 0.234
70
69.996
5.58x10-05
57
130.11
1.283
Lampiran 13 Agregat Galat Galat Max MRE
5.904
Min MRE
7.384x10-12
Median MRE
0.234
STD MRE
1.379
Pred(25)
0.524
Mean MRE
0.759
23
Lampiran 14 Grafik Boxplot Nilai Aktual, Nilai Estimasi dan Nilai MRE
12000
10000
Data
8000
6000
4000
2000
0 Nilai Estimasi
MRE
Nilai Aktual
24