PENDAHULUAN TINJAUAN PUSTAKA

dokumen-dokumen yang mirip
Studi Literatur Implementasi Perhitungan Metrics Pengumpulan Data Implementasi Perhitungan Metrics Analisis Hasil Perhitungan Metrics

EVALUASI KUALITAS PERANGKAT LUNAK DENGAN METRICS BERORIENTASI OBJEK

EVALUASI KUALITAS PERANGKAT LUNAK BERORIENTASI OBJEK RHAMDANI

Mengukur Tingkat Reusability dan Efficiency dari Kode Program dengan Pendekatan Fuzzy Logic

PENGGUNAAN PROGRAM CKJM UNTUK ANALISIS PAKET REMOTE METHOD INVOCATION. Abstrak

PENGUKURAN SOFTWARE METRIC TERHADAP IMPLEMENTASI FRAMEWORK LARAVEL PADA PEMBANGUNAN APLIKASI BERBASIS WEB STUDI KASUS : JURNAL LOGIC

Fuzzy Model for Predicting Reusability Factor of a Software. Model Fuzzy untuk Memprediksi Faktor Reusability Sebuah Perangkat Lunak

PEMERINGKATAN SOFTWARE APLIKASI BERDASARKAN PROPERTI KUALITAS DISAIN DAN METRICS FOR OBJECT ORIENTED SOFTWARE MENGGUNAKAN ANALYTIC HIERARCHY PROCESS

ABSTRAK. Kata Kunci: computer based test, software metric, rekrutmen, turnover pegawai, autograder. Universitas Kristen Maranatha

PERBANDINGAN PENERAPAN OOP DAN AOP PADA APLIKASI YANG DIBANGUN DENGAN FRAMEWORK ASP.NET MVC WEB APPLICATION

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

Teknik Pengujian (2) Whitebox Testing

Teknik Informatika S1

BAB II TINJAUAN PUSTAKA. definisi ringkas dan formal dari sistem Informasi.

PENGEMBANGAN APLIKASI MOBILE OBJEK WISATA DI PULAU MADURA MENGGUNAKAN METODE UNIFIED APPROACH (UA) SKRIPSI. Oleh: DIAH ULFA AFIFAH NIM.

KONSEP MANAJEMEN PROYEK

KONSEP MANAJEMEN PROYEK

PENGUJIAN PERANGKAT LUNAK

Materi. Definisi Test Case White Box Testing Blackbox Testing Teknik Testing yang Lain Penggunaan Metode Tes

Nama : Rendi Setiawan Nim :

TEKNIK PENGUJIAN PERANGKAT LUNAK (Software Testing Techniques)

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

Dasar-Dasar Pengujian Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

Teknik Informatika S1

Konsep Pemrograman Berbasis Obyek

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

EVALUASI DAN PERBAIKAN KUALITAS DESAIN DIAGRAM KELAS

UNIVERSITAS BINA NUSANTARA. Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2007/2008

BAB I PENDAHULUAN. 1.1 Latar Belakang

Teknik Informatika S1

Manajemen kualitas proyek (Project Quality Management)

PERANCANGAN BERORIENTASI OBJEK

MANAJEMEN PROYEK PERANGKAT LUNAK PROYEK Proyek adalah suatu kegiatan mengkoordinasikan segala sesuatu dengan menggunakan perpaduan sumber daya

Gambar (a) PDL for test design

BAB I PENDAHULUAN. Pemrograman Berorientasi Objek atau Object Oriented Programming (OOP) telah

14. PENGUJIAN PERANGKAT LUNAK Dasar-dasar Pengujian 14.2 Teknik Pengujian 14.3 Strategi Pengujian dan V&V

MUHAMMAD SYARIF NURDIN

Kata kunci : SDB (save deposit box), RUP (rational unified process), product metric, metric

BAB 6 METODE PENGUJIAN

STUDI EMPIRIS HUBUNGAN METRIK KOHESI DENGAN KECENDERUNGAN KESALAHAN PADA APLIKASI BERORIENTASI OBJEK

Rekayasa Perangkat Lunak

TESTING & IMPLEMENTASI SISTEM 4KA. Teknik Pengujian Perangkat Lunak. helen.staff.gunadarma.ac.id

Testing is the exposure of a system to trial input to see wheter it produces corect output Adalah proses eksekusi suatu program dengan maksud

Konsep Pemrograman Berorientasi Obyek

White Box Testing dan Black Box Testing, Perbedaannya Serta Contohnya.

TESTING PROGRAM. Pertemuan Nurul Adhayanti

Dasar-dasar Pengujian Perangkat Lunak. Minggu ke 5

Chapter 3 Software Quality Factors

BAB 2 BAB 2 LANDASAN TEORI

KUALITAS PERANGKAT LUNAK: MODULARITAS PUSTAKA TEXT PRE-PROCESSING. Abstract

ANALISIS SISTEM INFORMASI DATA NILAI SISWA BERBASIS PHP DI SMK YPKK 1 SLEMAN

BAB III METODOLOGI PENELITIAN

BAB I. PENDAHULUAN. Legacy System adalah sistem yang sudah sangat lama beroperasi di dalam

ANALISA & PERANCANGAN SISTEM

TUGAS MAKALAH. Testing dan Implementasi Sistem White Box Testing

Testing dan Implementasi Sistem

Pendekatan-Pendekatan Pengembangan Sistem Hanif Al Fatta M.kom

SISTEM INFORMASI HARGA POKOK PRODUKSI KAYU LAPIS PADA PT. KTC

DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

Hubungan antara rencana pengujian dan proses pengembangan system. Tim RPL 1 3

BAB 1 PENDAHULUAN. diantaranya kompleksitas, ukuran, keandalan, kualitas, waktu, usaha, biaya,

Praktikum Blind Search (BFS dan DFS)

Dibuat Oleh : 1. Andrey ( )

Rancang Bangun Reusability Metric Tool pada Bahasa PHP

Tujuan Perkuliahan. PENGANTAR RPL (Pert. 2 chapter 1 Pressman) Agenda. Definisi Software (Perangkat Lunak) Lunak) 23/09/2010

BAB 1. PENDAHULUAN. 1.1 Latar Belakang

MEMAHAMI PENGGUNAAN UML

Object Oriented Programming 1

BAB 1 PENDAHULUAN. Dalam pengembangan perangkat lunak, tim developer membangun cetak

PERBANDINGAN MAINTAINABILITY, FLEKSIBILITY, TESTABILITY PADA CMS OPEN SOURCE E-COMMERCE

Kakas Bantu Perhitungan Nilai Kopling Menggunakan Metrik Cognitive Weighted Coupling Between Object

TESTING & IMPLEMENTASI SISTEM 4KA. Mengukur Produktivitas Perangkat Lunak. helen.staff.gunadarma.ac.id

PENGEMBANGAN PERANGKAT LUNAK. Setia Wirawan

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

White Box Testing Merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case.

Rahmady Liyantanto Blog : liyantanto.wordpress.com

Jawaban Tugas Akhir Matrikulasi Semester Ganjil 2009/2010

Pengantar Analisis dan Desain Berbasis Obyek. Object Oriented Analysis and Design

1. Penggunaan Pemodelan

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah 1.2 Perumusan Masalah

DAFTAR ISTILAH. Activity Diagram

Aplikasi yang pendekatannya sistematis, disiplin, bisa terukur untuk pengembangan operasional dan pembuatan software. Tools. Methods.

BAB III PERANCANGAN PROGRAM

Pengantar Analisis dan Desain Berbasis Obyek (Object Oriented Analysis and Design)

Konsep Manajemen sebuah Proyek bisa difokuskan pada beberapa komponen berikut ini:

Nama : Rendi Setiawan Nim :

PENGEMBANGAN PERANGKAT LUNAK. Karmilasari

Object Oriented Analysis and Design -Pendahuluan- Nisa ul Hafidhoh

TEKNIK PENGUJIAN PERANGKAT LUNAK PERTEMUAN 14

Dibuat Oleh : 1. Andrey ( )

Tujuan 04/07/ :01

PERANCANGAN BERORIENTASI OBJEK

THE SOFTWARE PROCESS

Perancangan Perangkat Lunak

RENCANA PEMBELAJARAN SEMESTER (RPS)

Pemograman Berorientasi Objek

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

Unified Modelling Language (UML)

Transkripsi:

1 Latar Belakang PENDAHULUAN Desain berorientasi objek merupakan suatu konsep yang banyak digunakan oleh pengembang perangkat lunak saat ini. Hal ini dikarenakan kemudahan yang ditawarkan di dalam desain berorientasi objek dari sisi pengembangan dan perawatannya. Dengan kata lain, desain berorientasi objek merupakan pendekatan yang efektif untuk membangun perangkat lunak yang flexibel. Pengembangan berorientasi objek ternyata membutuhkan pendekatan yang berbeda dengan pengembangan struktural. Perbedaan tersebut terdapat pada tahap desain dan implementasinya. Perbedaan ini yang kemudian menimbulkan permasalahan dalam penggunaan metrics untuk mengevaluasi kualitas perangkat lunak berorientasi objek. Traditional metrics seperti Cyclomatic Complexity (CC), yang digunakan untuk mengevaluasi desain terstruktur, ternyata tidak dapat digunakan begitu saja dalam desain berorientasi objek. Bahkan beberapa traditional metrics tidak dapat digunakan sama sekali dalam lingkungan berorientasi objek. Oleh karena itu, dibutuhkan metrics yang dapat merefleksikan desain berorientasi objek. Banyak penelitian yang mengajukan object oriented metrics. Salah satu penelitian tersebut dilakukan oleh Chidamber & Kemerer (1994). Chidamber & Kemerer, yang merupakan pelopor dalam penelitian object oriented metrics, mengajukan enam buah object oriented metrics. Metrics tersebut adalah Weighted Methods per Class (WMC), Depth of Inheritance Tree (DIT), Number of Children (NOC), Coupling Between Object (CBO), Response for A Class (RFC), dan Lack of Cohesion in Methods (LCOM). Keenam metrics tersebut dapat digunakan di dalam lingkungan berorientasi objek. Penelitian ini membahas penggunaan Chidamber & Kemerer object oriented metrics untuk mengevaluasi kualitas perangkat lunak berorientasi objek. Perangkat lunak yang digunakan adalah perangkat lunak ERP yang berorientasi objek yang dikembangkan oleh Ernita (2008). Tujuan Penelitian Tujuan dari penelitian ini adalah: 1 Menerapkan object oriented metrics untuk melakukan evaluasi perangkat lunak berorientasi objek. 2 Menganalisis efektivitas object oriented metrics yang digunakan. Ruang Lingkup Penelitian Ruang lingkup penelitian ini adalah : 1 Metrics yang digunakan adalah object oriented metrics yang diajukan oleh Chidamber & Kemerer (1994). 2 Perhitungan metrics dilakukan dengan bantuan tool Chidamber & Kemerer Java Metrics (CKJM). Manfaat Penelitian Penelitian ini diharapkan dapat melakukan estimasi kualitas perangkat lunak ERP yang berorientasi objek melalui faktor-faktor kualitas perangkat lunak. Selain itu, hasil perhitungan metrics dapat digunakan sebagai acuan untuk memperbaiki desain perangkat lunak ERP (Ernita 2008). TINJAUAN PUSTAKA Kualitas Perangkat Lunak Kualitas perangkat lunak dapat memiliki banyak arti bergantung dari siapa yang memandangnya. Bila dilihat dari sudut pandang customer, perangkat lunak yang baik adalah perangkat lunak yang memuaskan kebutuhan customer. Dengan demikian, perangkat lunak tersebut dikatakan memiliki kualitas yang baik. Lain halnya jika dilihat dari sudut pandang pengembang. Pengembang perangkat lunak akan melihat produk perangkat lunak dari dalam perangkat lunak itu sendiri. Pengembang yang menggunakan pemikiran berorientasi objek memiliki tujuan pada terpenuhinya karakterisktik tertentu. Terpenuhinya karakteristik - karakteristik tersebut merupakan kualitas dari sudut pandang pengembang (El-Ahmadi 2006). Dengan kata lain, jika diinginkan kualitas perangkat lunak yang tinggi, haruslah ditentukan karakteristik apa saja yang diinginkan. Karakteristik tersebut berupa faktor-faktor kualitas. Faktor-faktor tersebut dapat dilihat pada gambar 1.

2 Gambar 1 Faktor-faktor kualitas perangkat lunak (El-Ahmadi 2006). Definisi faktor-faktor tersebut sebagai berikut: Reliability Menurut Jawadekar (2004), reliability adalah tingkat ketepatan fungsi-fungsi perangkat lunak tanpa adanya kesalahan. Reusability Reusability adalah tingkat kemampuan perangkat lunak atau bagian perangkat lunak untuk dapat digunakan ulang di lain tempat sebagai komponen yang reusable (Jawadekar 2004). Usability Usability adalah tingkat usaha yang dibutuhkan untuk mempelajari, mengoperasikan, dan menggunakannya untuk tujuan yang diinginkan (Jawadekar 2004). Maintainability Maintainability adalah tingkat usaha untuk mengetahui letak kesalahan dan memperbaikinya. Faktor ini dapat dipecah menjadi tiga subfaktor, masing-masing understandability, modifiability, dan testability (El-Ahmadi 2006). Understandability Understandability terkait dengan peningkatan kompleksitas psikologis (SATC 1995). Modifiability Modifiability dari segi flexibility adalah tingkat kemudahan sebuah sistem atau komponen agar dapat dimodifikasi untuk penggunaan dalam suatu aplikasi atau lingkungan (IEEE Std. 610.12 diacu dalam Barbacci 2004). Testability Menurut Jawadekar (2004), testability adalah tingkat usaha yang dibutuhkan untuk menguji perangkat lunak dalam proses quality assurance. Availability Availabillity adalah tingkat kemudahan suatu sistem atau komponen agar dapat dioperasikan dan diakses ketika ingin digunakan (IEEE Std. 610.12, diacu dalam Barbacci 2004). Complexity El-Ahmadi (2006) menyatakan masih terdapat satu faktor lagi yang tidak secara langsung terkait dalam hierarki faktor pada gambar 1. Faktor tersebut adalah complexity. Complexity dibagi menjadi dua jenis, yaitu complexity of problem dan complexity of solution. Complexity of problem adalah jumlah sumber daya yang dibutuhkan untuk sebuah solusi yang optimal terhadap sebuah permasalahan. Complexity of solution terdiri dari time complexity dan space complexity. Time complexity terkait dengan sumber daya waktu sedangkan space complexity terkait dengan sumber daya memori (Fenton & Pfleeger 1997). Complexity berpengaruh pada understandability, modifiability, dan testability (El-Ahmadi 2006). Semua faktor kualitas tersebut dapat diukur secara kuantitatif menggunakan metrics. Penjelasan metrics dapat dilihat pada subbab selanjutnya. Metrics Sarker (2005) membagi metrics ke dalam dua kategori, yaitu project based metrics dan design based metrics. Project based metrics terdiri dari process, product, dan resources sedangkan design based metrics terdiri dari traditional metrics dan object oriented metrics. Gambar 2 memperlihatkan hierarki metrics tersebut. Process metrics, disebut juga management metrics, berhubungan dengan proses dalam mengembangkan sebuah sistem (Systa & Yu 1999). Process metrics biasanya digunakan untuk: Membantu memprediksi ukuran akhir sebuah sistem, Memprediksi tingkat usaha yang dibutuhkan dalam sebuah proyek,

3 Dan menentukan apakah sebuah proyek sesuai dengan jadwal. Gambar 2 Hierarki metrics (Sarker 2005). Product metrics, disebut juga quality metrics, digunakan untuk mengontrol kualitas dari produk perangkat lunak. Metrics ini digunakan untuk perangkat lunak yang belum selesai dibuat agar dapat diprediksi properti dan kompleksitas hasil akhir perangkat lunak tersebut (Sarker 2005). Resources adalah entitas yang dibutuhkan dalam aktifitas proses pengembangan. Resources yang diukur adalah semua input dalam menghasilkan perangkat lunak (Sarker 2005). Pada sistem berorientasi objek, traditional metrics umumnya digunakan dalam ruang lingkup methods yang terdiri atas operasioperasi sebuah class. Beberapa contoh traditional metrics antara lain cyclomatic complexity (CC), source line of code (SLOC), dan comment percentage (CP). Object oriented metrics digunakan untuk merefleksikan perangkat lunak berorientasi objek. Beberapa contoh object oriented metrics yang telah diajukan antara lain Chidamber & Kemerer (CK) metrics, MOOD, dll. Penjelasan tentang object oriented metrics akan dijelaskan lebih detil pada subbab selanjutnya. Object Oriented Metrics Systa & Yu (1999) membagi object oriented metrics ke dalam tiga kategori, yaitu inheritance metrics, complexity metrics, dan communication metrics. Inheritance metrics mengukur hierarki pewarisan (inheritance), complexity metrics memperkirakan kompleksitas perangkat lunak, dan communication metrics mengukur pasangan (coupling) dan keterpaduan (cohesion) antar class. Object oriented metrics yang diajukan oleh Chidamber & Kemerer (1994) adalah: Complexity metrics terdiri dari weighted methods per class (WMC). Inheritance metrics terdiri dari depth of inheritance tree (DIT) dan number of children (NOC). Communication metrics terdiri dari coupling between object (CBO), response for a class (RFC), dan lack of cohesion in method (LCOM). Penjelasan mengenai definisi, sudut pandang, nilai batas atas, dan faktor-faktor kualitas apa saja yang terkait dengan masingmasing metrics dapat dilihat pada subbab selanjutnya. Weighted Methods per Class (WMC) Misalkan sebuah class C 1 memiliki methods M 1, M 2,, M n dan c 1, c 2,, c n adalah kompleksitas tiap method tersebut, maka: Kompleksitas methods dapat didefinisikan oleh masing-masing pengembang (Chidamber & Kemerer 1994). Penelitian ini menggunakan cyclomatic complexity untuk perhitungan kompleksitas tiap method. Semakin banyak jumlah method sebuah class, semakin besar pula pengaruh pada class yang mewarisinya. Akibatnya, semakin besar upaya dan waktu yang dibutuhkan untuk maintenance dan testing (Chidamber & Kemerer 1994; Lindroos 2004). Selain itu, class yang memiliki banyak method yang kompleks berarti class tersebut semakin spesifik. Hal ini dapat membatasi kemungkinan reuse (Chidamber & Kemerer 1994; Systa & Yu 1999; Lindroos 2004). Dari kedua sudut pandang tersebut dapat disimpulkan bahwa WMC terkait dengan beberapa faktor-faktor kualitas, yaitu maintainability (testability), usability, dan reusability. RefactorIT menyarankan nilai batas atas WMC sebesar 50 untuk sebuah class. WMC yang didefiniskan RefactorIT menggunakan cyclomatic complexity dalam perhitungan kompleksitas tiap method. Depth of Inheritance Tree (DIT) Kedalaman sebuah class dalam hierarki pewarisan diukur oleh DIT. Apabila terdapat multiple inheritance, DIT didapat dari panjang

4 maksimum dari node ke root pada tree tersebut (Chidamber & Kemerer 1994). Penelitian ini menggunakan perangkat lunak berorientasi objek dengan bahasa pemrograman Java sehingga tidak ada multiple inheritance dalam implementasinya. Selain itu, setiap class merupakan turunan dari class Object sehingga DIT setiap class pada pemrogaman Java minimal 1. Class Object sendiri memiliki DIT = 0. RefactorIT menyarankan nilai batas atas DIT sebesar 5 untuk sebuah class. Semakin dalam sebuah class dalam sebuah hierarki pewarisan, semakin besar pula potensi penggunaan ulang method yang diwarisinya (Chidamber & Kemerer 1994; Systa & Yu 1999; Lindroos 2004). Selain itu, semakin dalam sebuah class dalam hierarki pewarisan maka semakin banyak method yang dimilikinya, baik method pada class itu sendiri maupun method yang diwarisinya. Hal ini mengakibatkan class tersebut semakin kompleks (Systa & Yu 1999 dalam Lindroos 2004). Kedua sudut pandang tersebut menjelaskan bahwa DIT berpengaruh pada faktor reusability dan complexity. El-Ahmadi (2006) menyatakan bahwa complexity mempengaruhi understandability, modifiability, dan testability. Jadi, secara keseluruhan DIT berpengaruh pada reusability, understandability, modifiability, dan testability. Number of Children (NOC) NOC adalah jumlah subclasses langsung yang mewarisi sebuah class pada hierarki class (Chidamber & Kemerer 1994). Semakin besar NOC maka semakin tinggi reusability. Hal ini dikarenakan pewarisan merupakan bentuk dari reuse. Selain itu, semakin besar NOC maka semakin besar upaya dan waktu untuk testing. (Chidamber & Kemerer 1994; SATC 1995; Lindroos 2004; Sarker 2005). Dari sudut pandang di atas, dapat disimpulkan bahwa NOC berpengaruh pada reusability dan testability. RefactorIT menyarankan nilai batas atas NOC sebesar 10 untuk sebuah class. Coupling between Object (CBO) CBO didefinisikan untuk sebuah class, yaitu banyaknya class yang terpasangkan oleh class yang diukur. Sebuah class A dikatakan terpasangkan dengan class B jika class A menggunakan method atau instance variable pada class B (Chidamber & Kemerer 1994). CBO yang berlebihan merupakan perusak desain modular dan mengurangi reuse. Semakin tidak tergantung sebuah class dengan class lain maka semakin mudah class tersebut digunakan ulang untuk aplikasi lain (Lindroos 2004). Selain itu, class dengan CBO yang besar berarti semakin sensitif class tersebut terhadap perubahan pasangan class-nya. Hal ini mengakibatkan upaya untuk maintenance class tersebut semakin besar (Chidamber & Kemerer 1994; Systa & Yu 1999; Lindroos 2004). Dengan demikian, dapat disimpulkan bahwa CBO terkait dengan reusability dan maintainability. Nilai batas atas metric ini, sampai saat ini, belum dapat ditemukan. Akan tetapi, berdasarkan sudut pandang di atas dapat disimpulkan bahwa semakin kecil nilai CBO maka akan semakin baik kualitas desain class tersebut. Response for A Class (RFC) RFC adalah RS. RS didefinisikan sebagai berikut: Dimana, adalah himpunan method yang dipanggil oleh method i dan adalah himpunan semua method yang ada di class tersebut (Chidamber & Kemerer 1994). RefactorIT menyarankan nilai batas atas RFC sebesar 50 untuk sebuah class walaupun RFC sebesar 100 untuk sebuah class masih bisa diterima. Semakin banyak method yang dapat dipanggil sebagai respon sebuah pesan, semakin besar juga upaya dan waktu untuk testing. Hal ini dikarenakan tester membutuhkan pemahaman yang tinggi terhadap class tersebut sebelum melakukan testing (Chidamber & Kemerer 1994; Lindroos 2004). Selain itu, semakin banyak method yang dapat dipanggil pada sebuah class, semakin besar kompleksitas class tersebut. Ini berarti semakin besar upaya pemeliharaan class tersebut (El-Ahmadi 2006). Sudut pandang di atas menyatakan bahwa RFC terkait dengan maintainability (understandability, modifiability, dan testability). Lack of Cohesion in Methods (LCOM) Misalkan sebuah class C 1 dengan n buah methods M 1, M 2,, M n. Lalu {I j } adalah himpunan instance variable yang digunakan oleh method M i. Dengan demikian terdapat n buah himpunan I 1, I 2,, I n.

5 Kemudian P = {I i, I j I i I j = Ø} dan Q = {I i, I j I i I j Ø}. Jika semua n himpunan {I 1 }, {I 2 },, {I n } adalah Ø maka P = Ø. LCOM diharapkan rendah pada sebuah class (cohesiveness tinggi) karena menaikkan encapsulation. LCOM yang tinggi (cohesiveness rendah) menandakan sebuah class yang semestinya dipecah menjadi 2 atau lebih class. Selain itu, LCOM yang tinggi menandakan kompleksitas yang tinggi (Chidamber & Kemerer 1994; Lindroos 2004). Dari sudut pandang tersebut, dapat ditarik kesimpulan bahwa LCOM berpengaruh terhadap maintainability (understandability, modifiability, dan testability). Sampai saat ini, belum dapat ditemukan berapa besar nilai batas atas metric ini. Akan tetapi, dari definisi Chidamber dan Kemerer (1994), nilai LCOM bergantung pada jumlah methods pada sebuah class. Dengan demikian, terdapat nilai maksimum LCOM pada class tersebut, yaitu ketika Q = 0. Berdasarkan sudut pandang dan nilai maksimum LCOM dapat ditarik kesimpulan bahwa semakin kecil nilai aktual LCOM dibanding nilai maksimumnya, semakin baik cohesiveness class tersebut (Rosenberg, 1998). Cyclomatic Complexity (CC) CC, disebut juga McCabe cyclomatic complexity, digunakan untuk evaluasi kompleksitas sebuah method (Rosenberg et. al. 1997 diacu dalam Sarker 2005). CC adalah jumlah test cases yang dibutuhkan untuk menguji methods secara komprehensif (Rosenberg 1998). Perhitungannya dapat dilakukan dengan menggambarkan urutan program sebuah method menjadi graph dengan semua path yang mungkin terjadi. Kompleksitasnya dihitung dengan rumus: Gambar 3 Perhitungan CC dengan graph (Rosenberg 1998). Ada cara lain untuk menghitung v(g). Andersson dan Vestergren (2004) merumuskannya sebagai berikut: dimana, P adalah jumlah predicate nodes yang ada dalam graph G. Predicate node adalah sebuah node yang merepresentasikan pernyataan Boolean di dalam code sehingga terdapat dua buah outgoing edges. Method dengan CC yang rendah umumnya lebih baik (El-Ahmadi 2006). CC yang rendah berarti semakin baik dalam faktor testability dan understandability. Semakin kompleks sebuah method (CC tinggi) maka semakin tinggi testability dan understandability. Akan tetapi, method yang memiliki CC yang rendah bukan berarti method tersebut tidak kompleks. Hal ini mungkin berarti bahwa method tersebut melakukan message passing dalam implementasinya (SATC 1995). METODE PENELITIAN dimana, v(g) adalah cylomatic complexity untuk graf G. e adalah jumlah edges pada graf G, dan n adalah jumlah nodes pada graf G. Gambar 3 menjelaskan bagaimana perhitungan CC pada sebuah graf. Gambar 4 Diagram metodologi penelitian. Penelitian ini dilaksanakan dengan mengikuti tahap-tahap seperti pada gambar 4. Penelitian ini diawali dengan studi literatur,