• Tidak ada hasil yang ditemukan

Studi Kasus Evolusi Proyek Perangkat Lunak Open Source Weka

N/A
N/A
Protected

Academic year: 2021

Membagikan "Studi Kasus Evolusi Proyek Perangkat Lunak Open Source Weka"

Copied!
5
0
0

Teks penuh

(1)

Source Weka

Andi Wahju Rahardjo Emanuel Program Studi S1 Teknik Informatika

Fakultas Teknologi Informasi, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri no. 65, Bandung 40164

awreman@gmail.com

Abstract — Open Source Software (OSS) is one of the

noticeable phenomena in Information Technology. There are currently many studies about the evolutions of Open Source Software Projects to shed the knowledge about their success, but the evolution of Weka, a Java-based Open Source Datamining tool, was never been examined. There are 34 versions of Weka that are measured using SONAR in terms of packages, classes, functions, and NCLOC as well as their software metrics reflecting modularity such as NCLOC per class, class per package, function per class, average Package Quality, Software Architecture (SA), and Modularity Index.

The result shows the architecture quality of Weka is excellent, but the average package quality should be improved.

Keywords — architecture quality, evolution, modularity index,

package quality, Open Source, Weka.

I. PENDAHULUAN

Sistem perangkat lunak kode terbuka atau yang lebih dikenal sebagai Open Source Software (OSS) merupakan salah satu fenomena di dunia teknologi informasi yang patut dicermati. Suatu proses pembuatan perangkat lunak yang awalnya hanya merupakan proyek eksperimen dari kalangan akademisi dan para pengembang perangkat lunak itu akhirnya berkembang dengan pesat dengan menghasilkan berbagai macam produk perangkat lunak yang dapat bersaing dan mungkin melebihi kemampuan dari perangkat lunak yang bersifat tertutup dan komersial (proprietary). Beberapa contoh perangkat lunak Open Source populer seperti server web Apache, browser web Mozilla, sistem operasi Debian, sistem operasi bergerak Android, dan lain sebagainya. Salah satu penyebab perangkat lunak Open Source tersebut berkembang dengan pesat dikarenakan karakteristik khususnya yaitu kode sumber yang bisa diunduh, dikembangkan dan dimodifikasi oleh semua orang. Sekelompok orang yang mengembangkan perangkat lunak tersebut akhirnya bertranformasi menjadi komunitas yang juga ikut berkembang bersama dengan sistem perangkat lunaknya [1].

Sifat dari proyek-proyek perangkat lunak Open Source yang terbuka untuk semua orang memungkinkan perkembangan atau evolusi dari proyek-proyek tersebut untuk dipelajari dengan seksama. Mempelajari dan meneliti dari proyek-proyek tersebut khususnya yang dianggap baik dan berhasil akan memberikan acuan bagi banyak orang

yang ingin mengembangkan aplikasi secara Open Source dan juga dapat menunjukkan praktek-praktek pengembangan perangkat lunak yang baik. Salah satu aspek yang bisa dipelajari dari proyek-proyek tersebut adalah faktor evolusi sistem perangkat lunaknya dengan melakukan pengukuran-pengukuran metrics perangkat lunak dari berbagai versinya. Salah satu proyek perangkat lunak Open

Source berbasis Java yang dapat dianggap berhasil dan

dijadikan studi kasus di sini adalah proyek perangkat lunak

Weka.

Weka merupakan perangkat lunak yang berisi berbagai algoritma machine learning untuk berbagai tugas-tugas yang biasa dilakukan pada saat data mining [2]. Weka dikembangkan secara Open Source dan secara berkelanjutan dipelihara oleh Machine Learning Group di Universitas

Waikato di Selandia Baru

(http://www.cs.waikato.ac.nz/~ml). Karena perangkat lunak Weka ini sering dipakai sebagai perangkat pendukung penelitian data mining dan machine learning, maka perangkat lunak ini dapat dianggap sebagai ad hoc untuk penelitian di bidang tersebut. Penelitian terhadap evolusi kode sumber dari proyek Weka ini menjadi penting.

II. STUDI YANG BERHUBUNGAN DENGAN EVOLUSI

PERANGKAT LUNAK OPEN SOURCE

Suatu proyek perangkat lunak, tidak terkecuali perangkat lunak Open Source, akan mengalami suatu perkembangan atau evolusi. Studi tentang evolusi perangkat lunak pertama kali dilakukan oleh Lehman yang mengidentifikasi 8 tahapan pada evolusi perangkat lunak [3]. Setelah itu, berbagi studi telah telah dilakukan untuk meneliti perkembangan dari proyek-proyek perangkat lunak Open

Source seperti di Sistem Operasi Debian Linux [4],

perangkat grafis JFreeChart [5], perangkat mindmapping

Freemind [6], Arla and Mozilla [7], Sistem Operasi FreeBSD [8], Web Server Apache & Browser Web Mozilla

[9][10], Grass [11], dan masih banyak lagi.

Salah satu metode untuk melakukan pengamatan terhadap perkembangan suatu perangkat lunak, termasuk perangkat lunak berbasis Open Source, adalah dengan mengukur nilai-nilai metrics-nya. Pionir dari pengukuran perangkat lunak adalah Chidamber dan Kemerer yang pertama kali mencetuskan berbagai metrics perangkat lunak untuk bahasa pemrograman berorientasi obyek [12].

(2)

Kemudian berbagai macam teknik pengukuran ditemukan dan diaplikasikan untuk mencermati berbagai macam proyek-proyek perangkat lunak Open Source seperti penelitian efisiensi kode sumber dari 100 proyek OSS berbasis bahasa C [13], penelitian code commits dari 9 proyek OSS [14], dan analisa statistik dan datamining terhadap lebih dari 130 K proyek OSS dari portal

sourceforge [15].

Meskipun perangkat Weka sudah dianggap perangkat ad

hoc dalam melakukan penelitian-penelitian bertemakan datamining dan machine learning, ternyata perangkat lunak Weka itu sendiri tidak pernah dipelajari proses evolusinya.

III. EVOLUSI DARI WEKA

Berikut adalah versi-versi Weka yang berhasil dikumpulkan dan diukur metrics-metrics-nya dengan

menggunakan perangkat SONAR

(http://www.sonarsource.org). Dari sekitar 42 versi yang terdapat pada website proyek dan portal sourceforge pada bulan Oktober 2012, hanya 34 versi yang berhasil direkam dan diukur seperti yang ditunjukkan pada Tabel I.

Adapun metrics-metrics perangkat lunak yang dikumpulkan melalui perangkat SONAR ditunjukkan dalam tabel 2. Metrics nomor 1 sampai dengan 4 merupakan metrics yang tersedia dari SONAR, sedangkan metrics nomor 5 sampai 8 merupakan metrics gabungan yang juga didapat dari perangkat SONAR. Metrics nomor 8-10 merupakan metrics tambahan yang telah dirumuskan dalam publikasi sebelumnya untuk mengetahui tingkat modularitas dari perangkat lunak Open Source berbasis Java [6][15].

TABELI

DAFTAR VERSI-VERSI WEKA YANG BERHASIL DIREKAM

No Nama Proyek Tanggal Rilis 1 Weka_3.4.4 7 Maret 2005 2 Weka_3.4.7 22 Desember 2005 3 Weka_3.4.10 26 Januari 2007 4 Weka_3.4.12 19 Desember 2007 5 Weka_3.4.13 15 Juli 2008 6 Weka_3.4.15 4 Juni 2009 7 Weka_3.4.16 12 Januari 2010 8 Weka_3.4.17 29 Juli 2010 9 Weka_3.4.18 9 Desember 2010 10 Weka_3.4.19 30 Juni 2011 11 Weka_3.5.0 4 Juli 2005 12 Weka_3.5.1 1 Oktober 2005 13 Weka_3.5.2 22 Desember 2005

No Nama Proyek Tanggal Rilis 21 Weka_3.6.3 29 Juli 2010 22 Weka_3.6.4 9 Desember 2010 23 Weka_3.6.5 30 Juni 2011 24 Weka_3.6.6 30 Oktober 2011 25 Weka_3.6.7 11 Mei 2012 26 Weka_3.6.8 15 Agustus 2012 27 Weka_3.7.0 5 Juli 2009 28 Weka_3.7.1 12 Januari 2010 29 Weka_3.7.2 29 Juli 2010 30 Weka_3.7.3 9 Desember 2010 31 Weka_3.7.4 30 Juni 2011 32 Weka_3.7.5 31 Oktober 2011 33 Weka_3.7.6 11 Mei 2012 34 Weka_3.7.7 15 Agustus 2012 TABELII

METRICS UNTUK MENGUKUR WEKA

No Metrics Keterangan Nilai Ideal

1 Package Jumlah package Tidak ada

2 Class Jumlah class Tidak ada

3 NCLOC Jumlah baris kode tanpa baris komentar

Tidak ada 4 Function Jumlah fungsi / methods

dalam sebuah class

Tidak ada 5 NCLOC per

class

Jumlah rata-rata NCLOC per class

80 - 100 6 class per

package

Jumlah rata-rata class per package

10-16 7 Function

per class

Jumlah rata-rata methods per class

4-7 8 SA Nilai kualitas arsitektur

sistem

1 9 Rata - Rata

PQ

Rata-rata kualitas package 1

10 Modularity Index

Nilai indeks modularitas 1 Pada kolom terakhir dicantumkan nilai ideal yang bisa dicapai oleh metrics-metrics tersebut. Nilai ideal, khususnya pada nomor 5-10 didapatkan berdasarkan formulasi

Modularity Index pada publikasi sebelumnya [6][15].

(3)

A. Packages

Gambar 1 menunjukkan evolusi dari jumlah package dari berbagai versi Weka yang berhasil direkam.

Gambar 1 Evolusi Jumlah Package pada Weka

Dari Gambar 1 atas dapat diketahui bahwa jumlah

package dari Weka cenderung stagnan di veri 3.4.4 sampai

dengan 3.4.10 di sekitar 54 packages. Mulai versi 3.5.0 sampai versi 3.7.1 terjadi peningkatan jumlah package secara signifikan yang menandakan peningkatan jumlah fitur yang ada dalam Weka. Pada versi 3.7.2 dan seterusnya terjadi penurunan jumlah package menjadi sekitar 75

package yang menandakan terjadinya penataan kembali

fitur-fitur yang ada.

B. Class

Pada Gambar 2 menunjukkan perkembangan jumlah

class dari berbagai versi weka yang berhasil direkam.

Gambar 2 Evolusi NCLOC pada Weka

Pada Gambar 2 di atas dapat diketahui bahwa perkembangan jumlah class pada berbagi versi dari Weka memiliki kecenderungan yang sama dengan perkembangan jumlah package yang ditunjukkan pada gambar 1. Jumlah class pada Weka telah meningkat hampir dua kali lipat sejak versi 3.4.4 sampai dengan versi 3.7.7.

C. NCLOC

Pada Gambar 3 ditunjukkan perkembangan jumlah

NCLOC dari berbagai versi Weka yang berhasil direkam.

Gambar 3 Evolusi NCLOC pada Weka

Dari Gambar 3 di atas dapat dilihat bahwa terjadi peningkatan jumlah NCLOC yang signifikan sejak versi awal yaitu versi 3.4.4 sampai dengan versi 3.6.0. Mulai versi 3.6.0 sampai dengan versi 3.7.1 jumlah NCLOC relatif stabil dan terjadi penurunan mulai versi 3.7.2 yang juga seiring dengan penurunan jumlah class maupun package.

D. Function

Gambar 4 di bawah ini menunjukkan evolusi dari jumlah

function (method) dari berbagai versi Weka yang berhasil

direkam.

Gambar 4 Evolusi Jumlah Function pada Weka

Gambar 4 di atas menunjukkan trend yang serupa dengan apa yang ditunjukkan pada evolusi package, class maupun

NCLOC. Jumlah function cenderung landai di kisaran

9000-an mulai versi 3.4.4 sampai deng9000-an 3.4.19 d9000-an kemudi9000-an menanjak dengan cepat sampai versi 3.6.0 seiring dengan peningkatan jumlah class dan package. Mulai dari versi 3.6.1 dan selanjutnya jumlah function cenderung stabil.

E. NCLOC per Class

Gambar 5 di bawah ini menunjukkan perkembangan rata-rata NCLOC per class pada berbagai versi dari Weka yang berhasil direkam.

(4)

Gambar 5 Evolusi Rata-Rata NCLOC per class dalam Weka

Dari gambar 5 diatas dapat diketahui bahwa rata-rata

NCLOC per class di proyek Weka sudah melampaui dari

nilai yang dianjurkan (80-100) yaitu di kisaran 180-192 mulai dari versi 3.4.4 sampai dengan versi 3.7.1. Nilai NCLOC per class yang melampaui dari nilai yang dianjurkan berarti adanya ketidakefisienan dalam pengkodean. Di versi 3.7.2 dan seterusnya terlihat mulai adanya pembenahan yang signifikan pada jumlah rata-rata

NCLOC per class sehingga mulai mendekati nilai yang

dianjurkan.

F. Class per Package

Gambar 6 dibawah ini menunjukkan rata-rata class per

package dari berbagai versi Weka yang berhasil direkam

Gambar 6 Evolusi Rata-Rata class per package dalam Weka

Dari Gambar 6 di atas dapat dilihat bahwa jumlah class

per package dari berbagai versi Weka masih dalam batas

kewajaran yang seharusnya yaitu berkisar antara 10-16 class per package. Pada versi 3.7.1 dan seterusnya diketahui bahwa jumlah class per package sudah mulai melampaui nilai yang dianjurkan yang menandakan kecenderungan adanya ketidakefisienan dalam penulisan kode sumber.

G. Function per Class

Gambar 7 dibawah ini menunjukkan rata-rata function per

class dari berbagai versi Weka yang berhasil direkam.

Gambar 7 Evolusi Rata-Rata function per class dalam Weka

Gambar 7 di atas menunjukkan bahwa nilai rata-rata

function per class dari berbagai versi Weka masih diatas

nilai yang dianjurkan yaitu melebihi nilai 10. Meskipun mulai versi 3.7.2 telah dilakukan berbagai pembenahan yang berarti, namun dalam segi rata-rata function per class ternyata belum menunjukkan peningkatan yang berarti.

H. System Architecture (SA)

Gambar 8 di bawah ini menunjukkan nilai dari SA yang

merupakan besaran kualitas arsitektur dari Weka. Nilai SA itu sendiri merupakan nilai yang pertama kalinya dicetuskan oleh Ammar [16] yang kemudian diadopsi oleh penulis pada saat formulasi Modularity Index [5][6].

Gambar 8 Evolusi SA dalam Weka

Gambar 8 di atas menunjukkan bahwa nilai kualitas arsitektur dari berbagai versi dari Weka cenderung baik di kisaran nilai 0,7 dari versi 3.4.4 sampai dengan versi 3.7.1. Pengecualian terjadi mulai dari versi 3.5.1 yang nilainya menurun drastis menjadi 0,1 yang menandakan adanya kesalahan arsitektur yang terjadi. Mulai dari versi 3.7.2 dan seterusnya terjadi peningkatan secara signifikan nilai SA

yang menandakan perombakan yang cukup besar dari segi arsitektur sehingga nilai SA sudah mendekati nilai idealnya

di 0,9. Perombakan ini juga dapat dilihat di gambar-gambar sebelumnya terutama di gambar 1 dan 2 yang menunjukkan penurunan jumlah packages dan class di versi-versi tersebut.

I. Rata-Rata PQ

Gambar 9 menunjukkan perkembangan dari nilai rata-rata Package Quality (PQ) dari berbagai versi Weka yang

berhasil direkam. Nilai PQ merupakan suatu nilai

ternormalisasi yang menandakan kualitas dari sebuah

(5)

Gambar 9 diatas menunjukkan bahwa terjadi penurunan yang cukup signifikan dalam segi rata-rata kualitas package mulai versi 3.6.0 sampai dengan versi 3.7.7. Secara keseluruhan nilai rata-rata kualitas package berbagai versi

Weka ini adalah tidak baik yang menandakan kualitas

pengkodean di tingkat package dan class yang masih perlu dibenahi.

J. Modularity Index

Gambar 10 menunjukkan perkembangan dari nilai

Modularity Index dari berbagai versi Weka yang berhasil

direkam. Modularity Index adalah suatu metrics perangkat lunak yang menandakan tingkat modularitas dari suatu proyek perangkat lunak Open Source berbasis Java. Nilai

Modularity Index didapatkan dari perkalian SA dengan

rata-rata PQ [6].

Gambar 10 Evolusi Modularity Index dalam Weka

Gambar 10 di atas menunjukkan bahwa nilai Modularity

Index dari berbagai versi Weka masih belum menggembirakan. Nilai Modularity Index yang masih belum baik ini lebih banyak dipengaruhi oleh faktor rata-rata kualitas package yang kurang baik (Gambar 8) dibandingkan dengan nilai SA yang sudah baik (Gambar 7).

V. SIMPULAN

Dari berbagai macam hasil grafik dan analisa berbagai macam metrics-metrics perangkat lunak yang didapatkan dari berbagai versi dari Weka, maka dapat disimpulkan bahwa:

1. Proyek perangkat lunak Open Source Weka telah mengalami perkembangan yang pesat, yang ditandai dengan perkembangan jumlah functions (methods),

class, dan package yang pesat.

2. Kualitas arsitektur dari Weka sudah sangat baik yang ditandai dengan nilai kualitas arsitektur (SA) yang

sebagian besar melebihi angka 0,7 dan bahkan sudah mencapai nilai 0,9 di versi-versi 3.7.x.

3. Praktek pengkodean dari Weka masih dapat diperbaiki lagi karena beberapa indikatornya (NCLOC per class,

function per class, class per package) masih jauh dari

nilai idealnya.

4. Tingkat modularitas (nilai Modularity Index) dari Weka masih dapat ditingkatkan lagi, terutama dalam hal perbaikan praktek pengkodean. Kontribusi nilai

kualitas arsitektur (SA) dalam Modularity Index sudah

baik dan maksimal.

UCAPAN TERIMA KASIH

Terima kasih atas dukungan yang sangat besar dari Universitas Kristen Maranatha, khususnya Fakultas Teknologi Informasi dan Program Studi S1 Teknik Informatika.

DAFTAR PUSTAKA

[1] K. Nakakoji, Y. Yamamoto, Y. Nishinaka, K. Kishida,& Y. Ye, Evolution Patterns of Open Source Software Systems and Communities, ACM IWPSE 2002, pp 76-85.

[2] M. Hall, E. Frank, J. Holmes, B. Pfahringer, P. Reutemann, & I.H. Witten, The WEKA Data Mining Software: An Update, SIGKDD Explorations, Volume 11, Issue 1, 2009.

[3] M.M. Lehman, Laws of Software Evolution Revisited, proceeding of

the 5th European Workshop on Software Process Technology, 1996,

pp 108-124.

[4] S. Spaeth & M. Stuermer, “Sampling in Open Source Development: The Case for Using the Debian GNU/Linux Distribution”,

proceedings of the 40thIEEE Hawaii International Conference on

System Sciences, 2007.

[5] A.W.R. Emanuel, R. Wardoyo, J.E. Istiyanto, & K.Mustofa, Modularity Index Metrics for Java-Based Open Source Software Projects, International Journal of Advanced Computer Science and

Applications (IJACSA), Vol. 2 No. 11, November 2012

[6] A.W.R. Emanuel, D.J. Surjawan, Revised Modularity Index to Measure Modularity of OSS Projects with Case Study of Freemind,

International Journal of Computer Applications (IJCA), Vol. 59 No.

12, December 2012

[7] A. Capiluppi & J.F. Ramil, Studying the Evolution of Open Source Systems at Different Levels of Granularity: Two Case Studies, IEEE

IWPSE, 2004.

[8] T. Dinh-Trong & J.M. Bieman, Open Source Software Development: A Case Study of FreeBSD, proceedings of the 10th IEEE International

Symposium on Software Metrics, 2004.

[9] A. Mockus, R.T. Fielding & J. Herbsleb, Two Case Studies of Open Source Software Development: Apache and Mozilla, ACM

Transaction on Software Engineering and Methodology, Vol. II No. 3

Juli 2002, pp. 309-346

[10] T. Koponen & V. Hotti, Open Source Software Maintenance Process

Framework, Open Source Application Spaces: Fifth Workshop on

Open Source Software Engineering, 2005

[11] S. Bouktif, G. Antoniol & E. Merlo, A Feedback Based Quality Assessment to Support Open Source Software Evolution: the GRASS Case Study, 22nd IEEE International Conference on Software

Maintenance, 2006.

[12] S.R. Chidamber & C.F. Kemerer, A Metrics suite for Object Oriented Design, IEEE Transaction on Software Engineering, Vol. 20 No. 6 June 1994, pp 476-493.

[13] I. Alsmadi & K. Magel, Open Source Evolution Analysis, 22nd IEEE

International Conference on Software Maintenance, 2006.

[14] A. Alali, H. Kagdi & J.I. Maletic, What’s a Typical Commit? A Characterization of Open Source Software Repositories, The 16th

IEEE International Conference on Program Comprehension, 2008. [15] A.W.R. Emanuel, R. Wardoyo, J.E. Istiyanto, & K.Mustofa, “Success

Rule of OSS Projects using Datamining 3-Itemset Association Rule”,

International Journal of Computer Science Issues (IJCSI), Vol. 7

Issue 6, November 2010.

[16] H. Ammar, M. Shereshevsky, A. Mili, W. Rabie, N. Radetsky. (2008). Software Architecture Metrics, Seminar Presentation, Faculty of Information Science & Engineering, Management & Science

University. [Online]. Tersedia:

http://www.docstoc.com/docs/6802629/Software-Architecture-Metrics

Gambar

Gambar 3 Evolusi NCLOC pada Weka
Gambar 5 Evolusi Rata-Rata NCLOC per class dalam Weka
Gambar 10 Evolusi Modularity Index dalam Weka

Referensi

Dokumen terkait

Dalam penjilidan kembali bahan pustaka atau buku pada Perpustakaan Universitas HKBP Nommensen di lakukan dengan menggunakan lem.. Penjilidan dengan menggunakan paku dan hekter

Saseleh sane mamurda "Geguritan Kontaboja Annalisis Struktur dan Makna " puniki kasusun pinaka piranti mitegepin silih tunggil syarat anggen ngrereh gelar

Lepas dari khilaf dan segala kekurangan, penulis merasa sangat bersyukur telah menyelesaikan skripsi yang berjudul “Analisis Kinerja Keuangan Bank Syariah Sebelum dan

Klien disebut pula help, yaitu orang yang perlu memperoleh perhatian sehubungan dengan masalah yang di hadapinya. Klien juga bisa disebut dengan seseorang

h) Menu selanjutnya adalah Overview, dimana konfigurasi pada tahap sebelum-sebelumnya akan ditampilkan sebelum paket CMS Joomla di instalasi. Ada hal yang harus diperhatikan

Tri Hita Karana pada hakikatnya adalah “sikap hidup yang seimbang antara memuja Tuhan dengan mengabdi pada sesama manusia serta mengembangkan kasih sayang

Penulis juga mengucapkan terima kasih kepada seluruh tenaga pengajar Program Studi Magister (S2) Ilmu Hukum, Program Pascasarjana Universitas Udayana, khususnya

Oleh itu, Ibu bapa, guru- guru dan orang dewasa akan menjadi agen atau tonggak utama dalam merealisasikan aspek ini dalam