124x Filetype PDF File size 0.68 MB Source: repository.its.ac.id
PENGUKURAN KUALITAS DAN PERBAIKAN STRUKTUR CODE PERANGKAT LUNAK BERBASIS OBJECT ORIENTED PROGRAMMING MENGGUNAKAN METRIK CHIDAMBER DAN KEMERER. (STUDI KASUS SOFTWARE ACCOUNTING XYZ.) 1) 2) Aula Ayubi , Feby Artwodini Muqtadiroh, S.Kom, M.T. , Amna Shifia Nisafani, S.Kom, 3) M.Sc. Jurusan Sistem Informasi, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya (60111) – Indonesia 1) 2) 3) e-mail: aulaayubi@gmail.com , febyherbowo@gmail.com , mafaniseventh@gmail.com ABSTRAK Peningkatan kualitas sebuah perangkat lunak mempunyai peran yang penting dalam praktek rekayasa perangkat lunak. Pendekatan engineering menginginkan bahwa kualitas perangkat lunak dapat diukur secara kuantitatif dalam bentuk angka yang dapat dipahami oleh orang lain. Object Oriented Programming (OOP) seringkali menjadi pilihan pengembang dalam membangun perangkat lunak. Pengukuran kualitas software berdasarkan aspek object oriented dengan menggunakan Metrik Chidamber dan Kemerer. Metrik tersebut mempunyai enam metrik di dalamnya yaitu Weighted Method per Class (WMC), Depth of Inheritance Tree (DIT), Number OF Children (NOC), Response For a Class (RFC), Coupling Between Object Classes (CBO) dan Lack of Cohesion Method (LCOM). Karakteristik kualitas yang dapat diukur menggunakan metrik ini berdasarkan ISO/IEC 9126-1 adalah efficiency, understandability, reusability, dan maintainability/testability. Sehingga pengembang software dapat mengetahui sejauh mana kualitas konsep object oriented yang ada pada kode perangkat lunak tersebut. Hasil akhir yang diharapkan dari tugas akhir ini adalah perbaikan kode program berupa class diagram yang lebih baik berdasarkan kualitas yang telah dipilih. Kata kunci: Pengukuran Kualitas, Object Oriented Programming (OOP), Metrik Chidamber dan Kemerer, ISO/IEC 9126-1 1. PENDAHULUAN Pengembang perangkat lunak saat ini lebih cenderung Saat Salah satu faktor penting dari suatu perangkat menggunakan konsep Object Oriented Programming lunak adalah kualitas [1]. Kualitas perangkat lunak akan (OOP) yang memudahkan untuk membangun perangkat mempengaruhi baik buruknya suatu kinerja dari lunak. Beragamnya pola implementasi berorientasi object perusahaan yang bersangkutan dalam menjalankan menimbulkan perbedaan pendapat dalam melihat kualitas bisnisnya. Perangkat lunak yang berkulitas akan sebuah perangkat lunak [7]. memudahkan perusahaan dalam menjalankan proses bisnisnya sehingga sumber daya yang dikeluarkan oleh Metrik Chidamber dan Kemerer telah dipilih dalam perusahaan akan semakin efisien dan efektif. pengerjaan tugas akhir ini karena pada penulisan Peningkatan kualitas sebuah perangkat lunak sebelumnya telah menghasilkan pemetaan antara Metrik mempunyai peran yang penting dalam praktek rekayasa Chidamber dan Kemerer dengan properti kualitas [11] perangkat lunak [2]. Oleh karena itu pengukuran kualitas [12] [13]. Metrik Chidamber dan Kemerer merupakan perangkat lunak sangat dibutuhkan agar Perangkat lunak salah satu kumpulan metrik yang digunakan untuk dapat diperbaiki secara terus menerus. Pengukuran mengukur kualitas perangkat lunak melalui kode program kualitas akan memberikan pandangan bagi organisasi atau pada perangkat lunak tersebut. Metrik Chidamber dan perusahaan dalam mengalokasikan sumber dayanya Kemerer mengukur kualitas perangkat lunak berdasarkan sehingga biaya yang dikeluarkan sesuai dengan enam metrik dengan melihat pada perspektif desain perencanaan. berorientasi object [14]. Salah satu pengukuran kualitas perangkat lunak Pengukuran perangkat lunak dengan menggunakan adalah pengukuran kualitas kode program pada perangkat studi kasus Software Accounting XYZ akan lunak tersebut [5]. Pendekatan engineering menginginkan menghasilkan nilai kuantitatif yang akan kualitas perangkat lunak dapat diukur secara kuantitatif merepresentasikan tingkat efficiency, understandability, dalam bentuk angka yang dapat dipahami oleh orang lain. reusability, dan maintainability/testability software Faktor efisiensi pada kode program akan mempengaruhi accounting XYZ. Sehingga tugas akhir ini akan dapat manajemen perusahaan terkait perangkat lunak tersebut. menghasilkan nilai kuantitatif yang mempresentasikan Banyak metode pengukuran kualitas kode program kualitas Software Accounting XYZ. Tugas akhir ini juga seperti metode LOC, Function Point, dan Cocomo [6]. menghasilkan rekomendasi perbaikan struktur kode program berupa class diagram berdasarkan design pattern. Hasil tugas akhir ini diharapkan dapat menjadi referensi Metrik Chidamber dan Kemerer mempunyai enam bagi pengembang Software Accounting XYZ untuk metrik yaitu Weighted Method per Class (WMC), Depth memeperbaiki desain kode program perangkat lunak of Inheritance Tree (DIT), Number OF Children (NOC), tersebut. Response For a Class (RFC), Coupling Between Object 2. TINJAUAN PUSTAKA Classes (CBO) dan Lack of Cohesion Method (LCOM). 2.1 Object Oriented Programming Tabel 1. Pemetaan Metrik Chidamber dan Kemerer Pemograman berorientasi object adalah teknik dengan Kode Program membuat suatu program berdasarkan object [15]. Object Pendekatan berorientasi object mulai berkembang karena Source Metrik Oriented adanya kesulitan dalam pengembangan sistem pada skala Construct besar untuk menghasilkan sistem yang berkualitas sesuai Object Oriented Weighted Method per Class/Method dengan biaya dan waktu yang ada . Pendekatan ini (New) Class (WMC) menggabungkan data dan proses secara bersamaan dalam Object Oriented Depth of Inheritance bentuk object, hal tersebut menjadi kelebihan dari (New) Tree (DIT) Inheritance pendekatan ini karena kode program menjadi lebih mudah Object Oriented Number OF Children digunakan kembali. Pendekatan ini memperkenalkan (New) (NOC) Inheritance istilah class, object, atribut dan method. Object Oriented Response For a Class Setiap object mempunyai field/atribut dan method. (New) (RFC) Class/Message Field/atribut adalah segala sesuatu yang berhubungan Object Oriented Coupling Between dengan karakteristik object. Method merupakan fungsi (New) Object Classes (CBO) Coupling atau segala sesuatu yang dapat dilakukan oleh object. Object Oriented Lack of Cohesion Class adalah tempat object tersebut berada [15]. (New) Method (LCOM) Class/Cohesion Object mempunyai dua karakteristik yaitu variabel atau field sebagai status dan method sebagai perilaku dari sebuah object. Object menyimpan statusnya pada variabel Penelitian sebelumnya telah menghasilkan kategori dari dan mendefinisikan perilakunya melalui sebuah method. Metrik Chidamber dan Kemerer [24] [25] yang telah ada Method akan mengakses nilai dari field object dan pada Tabel 2, hijau mewakili kategori good, kuning sebagai mekanisme utama komunikasi antar object, mewakili kategori medium, merah mewakili kategori bad. sehingga dunia luar tidak perlu mengetahui bagaimana object dapat saling berkomunikasi melalui sebuah Tabel 2. Nilai Metrik Chidamber dan Kemerer method. Method adalah sebuah operasi pada sebuah Metrik object dan didefinisikan dalam deklarasi class. Message Chidamber Hijau Kuning Merah adalah permintaan dari object lain untuk melakukan dan sebuah operasi/fungsi. Object tersebut menjawab message Kemerer dengan sebuah method. Cohesion adalah tingkat method WMC dalam class yang direlasikan ke class lain. Desain DIT berorientasi objek yang efektif memaksimumkan NOC cohesion karena meningkatkan encapsulation. Cohesian CBO yang tinggi mengindikasikan subdivisi class yang baik. RFC Coupling adalah method dalam sebuah class memanggil method pada class lain. Inheritance adalah hirarki class, terdapat superclass dan subclass yang mewarisi atribut 2.3 ISO/IEC 9126-1 atau method dari superclass. Package merupakan ISO 9126 merupakan best practice dalam melakukan sekelompok class dan interface yang saling terkait [16]. evaluasi terhadap kualitas produk perangkat lunak. Pemograman object mempunyai empat ciri-ciri ISO/IEC 9126 adalah standar internasional yang yaitu abstraksi (abstraction), pembungkusan diterbitkan oleh ISO/IEC, standar ini dibagi menjadi (encapsulation), pewarisan (inheritance) dan empat bagian yang masing-masing menjelaskan model polimorfisme (polymorphism) [17]. kualitas, metrik eksternal, metrik internal, dan metrik 2.2 Metrik Chidamber dan Kemerer kualitas [32] Metrik merupakan suatu prosedur yang ISO/IEC 9126 mempunyai enam model kualitas yang memasangkan karakteristik tertentu pada entitas yang telah dicantumkan dalam ISO/IEC 9126-1. ISO/IEC diamati menjadi sebuah nilai numerik [1]. Nilai numerik 9126-1 (bagian pertama dari ISO 9126) membagi model pada metrik akan memberikan pengetahuan pengamat kualitas perangkat lunak (software quality model) mengenai nilai yang terlalu tinggi atau terlalu rendah, menjadi enam karakteristik yaitu fungsionalitas terlalu banyak atau terlalu sedikit. Manfaat metrik sangat (Functinability), kehandalan (Reliability), kebergunaan tergantung pada apa yang akan dicapai dari hasil (Usability), efisiensi (Efficiency), keterpeliharaan pengukuran yang telah dilakukan. (Maintainability) dan portabilitas (Portability) [32]. Metrik Chidamber dan Kemerer adalah salah satu metrik yang digunakan untuk mengukur kualitas disain sebuah perangkat lunak berdasarkan enam metrik dengan melihat pada perspektif desain berorientasi object [22]. Tabel 3. Pemetaan Quality Model ISO/IEC 9126-1 adalah suatu dokumen yang sangat penting untuk dimiliki dengan Metrik Chidamber dan Kemerer dan dipahami. Dimana design patterns bukan sekedar Properti Kualitas Software Parameter Metric menyediakan solusi terbaik dalam memecahkan suatu Efficiency LCOM, CBO, DIT, NOC masalah, tetapi lebih dari pada itu patterns membuat Understandbility WMC, RFC, DIT desain perangkat lunak menjadi lebih efektif, fleksible WMC, LCOM, CBO, DIT, dan waktu penyelesaikan desain perangkat lunak juga Reusability/ Replaceability NOC lebih efisien. Maintainability WMC, RFC, DIT, NOC. Ada banyak Design Patterns yang sudah diakui kemampuannya, diterima dan diaplikasikan oleh banyak Tabel 4. Deskrip Kriteria dan Subkriteria ISO/IEC praktisi. Design Patterns yang cukup populer adalah yang 9126-1 diperkenalkan The Gang of Four (GoF) - Erich Gamma, Kriteria/Sub Kriteria Deskripsi Kriteria/Sub Kriteria Richard Helm, Ralph Johnson dan John Vlissides. Dalam ISO/IEC 9126-1 ISO/IEC 9126-1 The Gang of Four (GoF) terdapat 23 Pattern yang dibagi Kemampuan produk software yang menjadi 3 kelompok besar. memungkinkan pengguna untuk Pada Gang of Four Patterns, terdapat tiga katalog Understandability memahami apakah software tersebut design patterns yaitu creational, structural, dan cocok, dan bagaimana hal itu dapat behavioral. Creational patterns berhubungan dengan digunakan untuk tugas-tugas dan penciptaan objek. Pola-pola ini berkisar seputar objek ketentuan penggunaan tertentu mana yang diciptakan, siapa yang menciptakannya, serta Kemampuan produk software untuk berapa banyak objek diciptakan. Structural patterns Efficiency dipahami, dipelajari, digunakan dan berhubungan dengan struktur statis objek dan kelas. Pola- atraktif bagi pengguna, bila pola dalam structural patterns dapat dilihat pada saat digunakan dalam kondisi tertentu program di-compile melalui struktur inheritance, Kemampuan produk software untuk properties, serta agregasi objek-objek. Behavioral dimodifikasi. Modifikasi dapat patterns terkait perilaku run-time program. Pola-pola ini mencakup koreksi, perbaikan atau berkaitan dengan algoritma serta interaksi antar objek saat Maintainability adaptasi dari perangkat lunak untuk perubahan lingkungan, dan program berjalan. Penekanan behavioral patterns lebih persyaratan dan spesifikasi pada komposisi objek ketimbang inheritance [34]. fungsional Kemampuan produk software yang 2.5 Class Diagram akan digunakan di tempat produk Pembuatan class diagram akan dilakukan setelah proses Replaceability software lain yang ditentukan untuk tujuan yang sama dalam lingkungan analisa kode program yang menghasilkan code yang sama. dependency. Sebuah ketergantungan (dependencies) mengandung tiga unsur yaitu sumber (source), target dan Tabel 5. Korelasi Metrik Chidamber dan Kemerer tipe ketergantungan (dependency kind) [37]. dengan ISO/IEC 9126-1 Desirabl Effici Underst Maint Replace Tabel 6. Code dependency Metric e Value ency andabili ainabi ability Depend ty lity Source ency Target Deskripsi WMC ↓ ↑ ↑ ↑ Kind DIT ↓ ↑ ↑ ↑ ↑ class/int class/int class/interface extends NOC ↓ ↑ ↑ ↑ erface extends erface (perluasan) terhadap CBO ↓ ↑ ↑ class/interface/ yang lain. RFC ↓ ↑ ↑ class/int class/int class/interface pada LCOM ↓ ↓ ↓ ↓ erface contains erface source berisi sebuah 2.4 Design Pattren class/interface yang lain. Dalam membuat desain sebuah perangkat lunak class/int class/interface/ pada biasanya menggunakan asumsi atau pemahaman yang erface contains field source berisi field dari bersifat subjektif sehingga dibutuhkan gambaran secara class yang lain. method pada source formal dari masalah dan pemecahannya. Design patterns method returns class/int mengembalikan sebuah adalah unsur-unsur rancangan yang seringkali muncul erface nilai berdasarkan pada berbagai sistem yang berbeda. Setiap pemakaian class/interface yang lain. patterns akan menguji pattern tersebut di berbagai situasi. method pada source Sebuah design pattern harus mendokumentasikan method has class/int mendeklarasikan sebuah permasalahan, pemecahan, serta akibat-akibat param erface parameter berdasarkan penggunaannya. Class diagram adalah salah satu bentuk class/interface yang lain. dari interprestasi dari suatu pattern dengan memanfaatkan method pada source kemampuan UML yang sudah berorentasi pada mendeklarasikan perancangan yang berbasiskan objek (OOP) [34]. method throws class/int class/interface/ yang lain erface dalam Dalam pengembangan perangkat lunak sering terjadi mengirim/melempar permasalahan yang terjadi berulang-ulang, sehingga clause-nya. seorang arsitek mungkin akan banyak menghabiskan method pada source waktu dalam memberikan solusi dengan masalah yang method calls methods memanggil method pada serupa. Pada saat merancang perangkat lunak, patterns class yang lain. Depend diukur nilai Metrik Chidamber dan Kemerer-nya dan Source ency Target Deskripsi selanjutnya dihitung average (rata-rata) nya. Kind 3.3 Tahap pembahasan hasil method pada source Tahap pembahasan hasil meliputi empat tahapan methods acceses field mengakses field pada yaitu Analisa perhitungan Metrik Chidamber dan class yang lain. Kemerer, membuat class diagram baru, menghitung nilai is of class/int field pada source Metrik Chidamber dan Kemerer, dan membuat field type erface didasarkan pada kesimpulan serta saran. class/interface yang lain. remote objek yang 4. HASIL DAN PEMBAHASAN any referenc class/int dipanggil oleh objek lain es erface melalui remote object Berikut merupakan hasil dan pembahasan dalam refernces. penelitian ini. 4.1 Analisa Hasil Perhitungan Metrik Chidamber dan Tabel 7. Pemetaan Dependency Kind dan Relationship Kemerer Class Diagram Perhitungan pada bab sebelumnya telah Relations Deskripsi Dependency Kind menghasilkan nilai metrik metrik chidamber dan kemerer hip pada Software Accounting XYZ. telah didapatkan nilai Associatio Class yang memiliki Contains class yang memerlukan perbaikan. Terdapat dua class ns atribut berupa class lain Referencess dengan warna merah yang menunjukkan kategori bad, atau class yang harus Is Of Type sehingga harus dirubah. Terdapat 22 class yang mengetahui ekstensi class lain menunjukkan kategori medium, sehingga diperlukan Dependen Operasi suatu class yang Retruns perbaikan hingga mencapai status green atau good. cies menggunakan class lain Has Param atau field/atribut class Throws Tabel 8. Class yang Memerlukan Perbaikan lain Calls Nama Accesses Package Class Metrik Nilai Kategori Nesting Sebuah class yang appLayer accounts WMC 69 Medium didefinisikan didalam List class (outer class) lain. appLayer configs WMC 222 Bad Realizatio Sebuah class yang Implements appLayer appLaye WMC 132 Bad n mengimplementasikan (Interface) r.entry interface dataLay Generaliz Class yang Extendss dataLayer er.DB CBO 40 Medium ation menunjukkan hubungan appLaye warisan (inheritance) appLayer r.Messa CBO 18 Medium dengan class lainnya. ges appLayer account CBO 15 Medium 3. METODOLOGI PENELITIAN appLayer accounts CBO 19 Medium Metode pengerjaan penelitian ini terdiri dari 3 tahap. List Masing-masing tahap memiliki proses yang disesuaikan appLayer client CBO 56 Medium dengan tujuan tahap. appLayer configs CBO 41 Medium appLayer entry CBO 24 Medium 3.1 Tahap perancangan appLayer.t taxList CBO 16 Medium Tahap perancangan meliputi dua tahapan yaitu axRelated analisa kode program dan pembuatan class diagram. appLayer.t transacti Analisa kode program Software Accounting XYZ ransaction on CBO 26 Medium dengan memetakan code yang ada dan menemukan Related dependencies masing-masing code. Sehingga code appLayer.t transacti Software Accounting XYZ akan lebih mudah untuk ransaction ons CBO 18 Medium diukur nilainya terhadap Metrik Chidamber dan Kemerer. Related Class diagram dibuat berdasarkan hasil analisa dari GUILayer Message CBO 40 Medium tahapan sebelumnya yaitu analisa code program yang s menghasilkan code dependency. Code dependency dapat GUILayer balance CBO 15 Medium Window memudahkan pembuatan class diagram dengan bantuan GUILayer todoWin CBO 14 Medium pemetaan antara relasi pada class diagram dengan dow dependency kind. appLayer entry RFC 112 Medium 3.2 Tahap implementasi 4.2 Membuat Class Diagram Baru Tahap implementasi meliputi perhitungan Metrik Pada bagian ini dijelaskan bagaimana membuat class Chidamber dan Kemerer, yang terdiri dari Metrik WMC, diagram baru sehingga dapat memperoleh nilai Metrik DIT, NOC, CBO, RFC, dan LCOM. Chidamber dan Kemerer yang lebih baik. Pembuatan Tahapan implementasi ini melakukan perhitungan class diagram berdasarkan pedoman design pattern Metrik Chidamber dan Kemerer. Code Dependency dan bagian refactoring. Class diagram dapat menjadi acuan untuk menghitung nilai Metrik Chidamber dan Kemerer. Setiap class akan
no reviews yet
Please Login to review.