• Tidak ada hasil yang ditemukan

Rt.utami Dewi¹, Dhinta Darmantoro², Dana Suliyo Kusumo³. ¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom

N/A
N/A
Protected

Academic year: 2021

Membagikan "Rt.utami Dewi¹, Dhinta Darmantoro², Dana Suliyo Kusumo³. ¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom"

Copied!
6
0
0

Teks penuh

(1)

IMPLEMENTASI REFACTORING PADA PEMROGRAMAN BERORIENTASI ASPEK STUDI KASUS: PERANGKAT LUNAK BANTU ADMINISTRASI PADA KLINIK

KEBIDANAN DAN PENYAKIT KANDUNGAN UMMI BENGKULU

Rt.utami Dewi¹, Dhinta Darmantoro², Dana Suliyo Kusumo³

¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom

Abstrak

Kompleksitas kode yang tinggi (coupling yang tinggi dan cohesion yang rendah) dalam sebuah perangkat lunak merupakan salah satu hambatan di dalam menjaga kelangsungan hidup dan kemudahan untuk berevolusi dengan kebutuhan yang bertambah. Ada berbagai cara untuk mengurangi kompleksitas kode tersebut, salah satunya dengan cara refactoring yang akan mengubah struktur internal dari perangkat lunak dengan tidak mengubah behavior atau fungsionalitasnya. Dimana refactoring menyederhanakan struktur kode-kode dalam perangkat lunak.

Refactoring saat ini digunakan dalam konteks pemrograman berorientasi objek. Namun saat ini telah muncul teknik pemrograman yang baru yaitu pemrograman berorientasi aspek yang

merupakan suatu cara untuk membungkus crosscutting concern sehingga lebih mudah ditangani.

Crosscutting concern merupakan suatu fungsionalitas yang tidak dapat dienkapsulasi ke dalam satu objek yang dapat menyebabkan masalah dalam evolusi dan menjaga kelangsungan hidup perangkat lunak. Berdasarkan hasil analisis, diperoleh bahwa penerapan refactoring dapat mengurangi ketergantungan antar modul (coupling) dan meningkatkan ukuran kekuatan fungsionalitas dari sebuah modul (cohesion).

Tugas Akhir ini menerapkan teknik refactoring ke dalam teknik pemrograman berorientasi aspek yang diadaptasi dari refactoring yang digunakan pada pemrograman berorientasi Objek. Sebagai studi kasus, tugas akhir ini menggunakan Perangkat Lunak Bantu Administrasi pada Klinik Kebidanan dan Penyakit Kandungan UMMI Bengkulu.

Kata Kunci : objek, aspek, refactoring, crosscutting concern, coupling,

Abstract

High code complexity in a software (high coupling and low cohesion) is one of the problem in software maintainance and easy to evolve when the requirement is added. There are several ways to reduce the code complexity, one of them is refactoring, that will change the internal structure of the software but it doesn’t change the behavior or functionality. Refactoring simplify code structure in the software.

Nowadays, refactoring is used in object oriented programming context. However, this days new programming technique appeared, that is aspect oriented programming. Aspect oriented programming is a method to encapsulate crosscutting concern so it is easier to handle.

Crosscutting concern is a function that can’t be encapsulated into an object that can make a problem in evolution and software maintainance. Based on result of analysis, implementing refactoring can reduce coupling between modules and increase the functionality value from a module (cohesion).

This final task implement refactoring technique into the aspect oriented programming that adapted from the refactoring of object oriented programming. For the study case, this final task using administration software clinic of obstetric and gynecology UMMI bengkulu.

Keywords : object, aspect, refactoring, crosscutting concern, coupling,

(2)

1. Pendahuluan

1.1 Latar belakang

Salah satu faktor yang menghabiskan sumber daya terbesar dalam sebuah proses pengembangan perangkat lunak adalah saat menjaga kelangsungan hidupnya. Untuk memenuhi tuntutan kebutuhan tersebut, adanya perbaikan, penyesuaian atau penambahan fitur-fitur ke dalam perangkat lunak.

Permasalahannya, hal itu menyebabkan tingkat kompleksitas kode atas perangkat lunak menjadi semakin tinggi (meningkatnya coupling dan menurunnya cohesion), sehingga semakin sulit bagi developer untuk terus menjaga kelangsungan hidup perangkat lunak.

Dalam mengurangi kompleksitas kode yang semakin tinggi ini dapat menggunakan teknik yang dikenal saat ini adalah dengan memanfaatkan modelling atau lebih dikenal dengan unified modelling language (UML) atau dengan cara melakukan refactoring. Namun jika dilihat dari situasi dimana aplikasi sudah ada dan terdapat keharusan agar dapat senantiasa responsif dalam waktu yang relatif singkat, metode refactoring sepertinya bisa menjadi jawaban yang lebih rasional atas permasalahan-permasalahan di atas.

Teknik refactoring untuk memecahkan masalah diatas selama ini hanya diimplementasikan pada pemrograman berorientasi objek (OOP). Namun ada masalah yang sering muncul dalam OOP, yaitu crosscutting concern.

Crosscutting concern merupakan fungsionalitas yang tidak dapat dienkapsulasi ke dalam satu objek. Crosscutting concern menyebabkan masalah dalam evolusi dan dalam menjaga kelangsungan hidup perangkat lunak. Masalah itu lah yang tidak dapat dipecahkan oleh OOP. Oleh karena itu muncullah teknik pemrograman yang baru yaitu pemrograman berorientasi aspek (AOP).

Refactoring dan AOP merupakan dua teknik yang saling berkontribusi untuk memecahkan masalah evolusi permanen dari perangkat lunak. Refactoring memfasilitasi perubahan kode, sehingga dapat berkembang sejalan dengan perubahan environment dan kebutuhan. AOP memberikan modularisasi yang kuat dan mekanisme komposisi perangkat lunak yang tidak disediakan oleh pendekatan sebelumnya. Oleh karena itu dengan menggabungkan teknik refactoring dan AOP maka diharapkan perangkat lunak tersebut memiliki struktur kode yang lebih sederhana dengan tingkat coupling yang rendah dan cohesion yang tinggi.

1.2 Perumusan masalah

Dalam tugas akhir ini penulis akan menitikberatkan pada penerapan refactoring dengan AOP, yang dalam hal ini adalah sebuah perangkat lunak yang menggunakan teknik AOP. Perangkat lunak yang digunakan adalah perangkat lunak bantu administrasi pada Klinik Kebidanan dan Penyakit Kandungan UMMI Bengkulu yang telah menggunakan AOP. Kemudian perangkat lunak yang telah di-refactoring tersebut dibandingkan dengan perngakat lunak sebelum di-

(3)

Ruang lingkup dalam tugas akhir ini adalah :

1. Tugas akhir ini tidak menjelasakan proses pengubahan dari perangkat lunak berorientasi objek ke perangkat lunak berorientasi aspek, tapi terfokus pada proses refactoring pada perangkat lunak berorientasi aspek.

2. Refactoring dilakukan berdasarkan kaidah-kaidah yang telah ditetapkan [9].

3. Refactoring tidak difokuskan pada Sistem Database yang digunakan oleh perangkat lunak dan kode-kode program yang berhubungan dengan Graphical User Interface (GUI).

4. Analisis dan desain perangkat lunak dimodelkan dalam UML dengan menggunakan Rational Rose.

5. Bahasa pemrograman yang digunakan adalah java dengan menggunakan Borland Jbuilder sebagai IDE dan AspectJ sebagai library untuk penggunaan pemrograman berorientasi Aspek.

6. Database yang digunakan adalah Oracle 9i.

7. Sistem Operasi yang digunakan adalah Microsoft Windows Xp Professional.

1.3 Tujuan

Tujuan tugas akhir ini adalah :

1. Memahami proses-proses refactoring pada suatu perangkat lunak yang menggunakan teknik AOP.

2. Menerapkan refactoring pada perangkat lunak berorientasi aspek, dengan cara mengubah struktur kodenya tanpa mengubah behavior atau fungsionalitas dari perangkat lunak tersebut.

3. Menganalisis dengan membandingkan perangkat lunak berorientasi aspek sebelum di-refactoring dengan perangkat lunak berorientasi aspek yang telah di-refactoring berdasarkan metrics AOP.

1.4 Metodologi penyelesaian masalah

Metodologi penyelesaian masalah yang akan dilakukan dalam menyelesaikan tugas akhir ini adalah:

1. Studi literatur, dilakukan dengan mencari informasi dan referensi dari buku, makalah, artikel maupun internet yang berkaitan dengan AOP, dan refactoring pada AOP.

2. Pendefinisian masalah-masalah yang berkaitan dengan refactoring pada AOP dan mendefinisikan teknik-teknik refactoring yang akan digunakan pada AOP.

3. Analisis perangkat lunak yang akan di-refactoring, dengan melihat dan memahami behavior dari perangkat lunak Admin Klinik Ummi. Kemudian mempelajari kode-kode programnya untuk melakukan tahapan refactoring.

4. Melakukan penerapan refactoring pada perangkat lunak yang dibangun dengan menggunakan bahasa pemrograman java dan aspectJ sebagai library implementasi AOP. Kemudian menyesuaikan rancangan perangkat lunaknya.

5. Menganalisis hasil refactoring dengan membandingkan perangkat lunak sebelum dan setelah di-refactoring, menggunakan metrics AOP.

6. Pengambilan kesimpulan dan Penyusunan laporan.

(4)

6. Kesimpulan Dan Saran

6.1 Kesimpulan

1. Penerapan refactoring pada perangkat lunak bantu Administrasi Klinik Kebidanan dan Penyakit Kandungan UMMI Bengkulu tidak merubah behavior perangkat lunak, tetapi hanya merubah struktur internal kode program perangkat lunak sehingga perangkat lunak dapat berjalan sesuai dengan fungsionalitas awal sebelum dilakukan refactoring.

2. Nilai LoC untuk perangkat lunak Admin klinik UMMI setelah di-refactoring mengalami penurunan sebanyak 42 baris atau 1.87% dari perangkat lunak sebelum di-refactoring. Sedangkan jika dilihat dari ukuran file class perangkat lunak setelah di-refactoring mengalami kenaikan sebesar 0.11 MB atau naik 9.56% dari perangkat lunak sebelum di-refactoring.

3. Penerapan refactoring pada perangkat lunak Admin klinik UMMI mengakibatkan nilai coupling mengalami penurunan dibandingkan dengan sebelum di-refactoring, baik dari CMC yaitu sebesar 4.76% maupun CFA-nya turun sebesar 42.85%, yang disebabkan karena adanya pemindahan kode-kode program dari beberapa class ke dalam aspek yang baru dibuat. Oleh karena itu jika dalam kode-kode tersebut ada pemanggilan method (untuk CMC) dan field (untuk CFA) dari modul lain, maka terjadilah pengurangan pemanggilannya di dalam class yang bersangkutan, karena pemanggilannya dipindahkan kedalam aspek.

4. Penerapan refactoring pada perangkat lunak Admin klinik UMMI mengakibatkan nilai LCO mengalami kenaikan sebesar 19.83% dibandingkan dengan sebelum di-refactoring, dikarenakan operasi-operasi di dalam class atau aspek lebih banyak menggunakan atau memanipulasi field yang berbeda (penggunaan field yang sama berkurang) karena field-field common atau field yang sama di dalam method banyak yang dipindahkan ke dalam aspek dan mengalami perubahan.

5. Penerapan refactoring pada perangkat lunak Admin klinik UMMI mengakibatkan nilai WOM mengalami kenaikan sebesar 16.28% dibandingkan dengan sebelum di-refactoring, dikarenakan adanya penambahan method untuk mengakses private fields oleh aspek dan juga dikarenakan terbentuknya aspek- aspek baru dari hasil proses refactoring yang menyebabkan bertambahnya advice. Hal ini juga mempengaruhi terjadinya kenaikan nilai CDA sebesar 57.45% (penambahan aspek menyebabkan banyaknya advice-advice yang mempengaruhi modul-modul).

6. Penerapan refactoring pada perangkat lunak berorientasi aspek mengakibatkan berkurangnya keterkaitan antar modul dan menyebabkan bertambahnya pengaksesan atau penggunaan atribut yang berbeda dalam satu modul.

7. Penerapan refactoring pada perangkat lunak berorientasi aspek dapat juga mengakibatkan penambahan aspek sehingga operasi-operasi yang terdapat pada

(5)

6.2 Saran

Teknik refactoring yang diimplementasikan pada tugas akhir ini dapat dibuat menjadi sebuah tools yang dapat mempermudah developer untuk melakukan refactoring pada perangkat lunak AOP maupun OOP.

(6)

Daftar Pustaka

[1] AspectJ Team. 2003. The AspectJTM Programming Guide. Palo Alto:

Palo Alto Research Center.

[2] Ceccato, Mariano and Tonella, Paolo. 2004. Measuring the Effect of Software Aspectization. Centro per la ricerca Scientifica e Technologica 38050 Povo (Trento), Italy.

[3] Effendi, Syaiful. 2005. The Implementation Of Test Driven Development In Extreme Programming Environment Case Study:

Borrowing-Book System In STT Telkom Library. Jurusan Teknik Informatika Sekolah Tinggi Teknologi Telkom. Bandung.

[4] Imansyah, Ridho Nur. 2005. Design and Implementation of Aspect Oriented Programming Case Study : Administration Software Clinic of Obstetric and Gynecology UMMI Bengkulu. Jurusan Teknik Informatika Sekolah Tinggi Teknologi Telkom. Bandung.

[5] Iwamoto, Masanori and Zhao, Jianjun. 2005. Refactoring Aspect- Oriented Programs. Departement of Computer Science and Engineering.Fukuoka Institute of Technology, Japan.

[6] Kiselev, Ivan. 2003. Aspect-Oriented Programming With AspectJ.

SAMS. USA.

[7] Mahendra, Adhari C. 2004. Pengantar Pemrograman Berbasis Aspek (AOP). www.ilmukomputer.com.

[8] Monteiro, Miguel P. 2004. Catalogue Of Refactorings For

AspectJ Technical Report UM-DI-GECSD-200402. Universidade Dominho. Portugal.

[9] Monteiro, Miguel P, and fernandes, Joao M. 2005. Towards a Catalog of Aspect-Oriented Refactorings. AOSD 05 Chicago IIIionis USA.

[10] Pressman, Roger S. 2001. Software Engineering: A Practitioner’s Approach, Edisi Kelima. New York: McGraw-Hill.

Referensi

Dokumen terkait

Hasil uji parsial (Uji t) penelitian ini menunjukan bahwa semua variabel bebas (job embeddedness dan kepuasan kerja) secara parsial berpengaruh negatif dan

Adapun permasalahan yang akan diteliti dalam tugas akhir ini adalah bagaimana mengimplementasikan berbagai tingkatan QoS dengan menggunakan arsitektur Diffserv pada jaringan

Hubungan Tingkat Kemandirian dalam Melakukan Aktivitas Kehidupan Sehari-Hari dan Status Gizi pada Usia Lanjut di Panti Sosial Tresna Werdha Sabai Nan Aluih

Pembalakan ilegal terjadi secara luas dan sistematis dibanyak wilayah Indonesia, dan pada tahun 2000, memasuki sekitar 50 sampai 70 persen kebutuhan kayu

//Kagungane pangeran kang jati / kabeh yayi pan ana ing sira / malekat tunggal jatine / kang mukarabah rumuhun / maring Allah ingkang sajati / kabeh yayi wus ana

Kuesioner tersebut mencakup berbagai pertanyaan menyangkut: (a) profil/karakteristik sosio-demografis responden; (b) profil/karakteristik usahatani; (c) persepsi dan

komputer tidak berbeda antara pria dan wanita. Implikasinya adalah seorang pengajar yang hendak memberikan materi tentang teknologi komputer maupun materi kuliah

Besarnya displacement horisontal bored pile walls untuk kedua tipe tanah yang ditinjau dengan penambahan sirtu di atas lapisan soft clay dapat dilihat pada Tabel 4.3 dan