BAB I PENDAHULUAN
1.1
Latar Belakang Pemrograman Berorientasi Objek atau Object Oriented Programming (OOP) telah
menjadi paradigma utama pemrograman dalam beberapa tahun terakhir, yang menggeser paradigma pemrograman terstruktur. OOP mempunyai kelebihan dalam meningkatkan readability (mudah dibaca dan dipelajari), reusability (mudah digunakan kembali), dan dekomposisi permasalahan (permodulan) [1]. Tetapi permasalahan akan muncul jika didalam objek-objek atau kelas-kelas yang berbeda terdapat suatu aspek tertentu yang unik. Hal ini akan menimbulkan permasalahan yaitu: Code scattering yaitu munculnya beberapa kode program yang sama pada kelas atau objek dilingkungan core concern sebuah aplikasi. Code tangling yaitu bercampurnya kode program core concern dengan cross cutting concern, hal ini menjadikan struktur program tersebut tidak dapat ditelusuri dengan baik karena adanya code-code yang sama di beberapa bagian yang berbeda dalam program, mengakibatkan menjadi sulit dikelola dan diubah. Selain itu adanya permasalahan inheritance anomaly yang ditemukan pada tahun 1993 oleh Matsuoka dan Yonezawa [27], merujuk pada masalah yang timbul oleh interaksi antara inheritance dan concurrency pada concurrent object oriented languages (COOLs), hal ini mengakibatkan kegagalan pewarisan dimana sebuah mekanisme penggunaan kembali suatu kode (code-reuse) tidak berjalan dengan semestinya. Kemudian muncul jenis paradigma baru yaitu Pemrograman Berorientasi Aspek atau Aspect Oriented Programming (AOP) yang dikembangkan untuk memperbaiki paradigma OOP, dimana paradigma AOP ini diperkirakan akan berkembang pesat dan menjadi salah satu acuan sebagai paradigma pemrograman bagi programmer. AOP merupakan sebuah teknik yang melengkapi OOP dan berfungsi untuk mengatasi masalah cross cutting concern
dan inheritance anomaly. Jika AOP dianalogikan dengan proses normalisasi pada pada perancangan basis data, maka AOP merupakan teknik normalisasi cross cutting concern yang tersebar pada sebuah sistem, dan mengelompokkan cross cutting concern tersebut menjadi sebuah aspect [2]. Di samping itu dengan paradigma AOP ini juga dapat digunakan untuk mengatasi masalah inheritance anomaly yang ada di OOP. Pada penelitian ini pengembangan web menjadi pilihan untuk dianalisis karena sampai saat ini masih banyak aplikasi-aplikasi yang dibuat berbasis web sehingga harapannya penelitian ini dapat dijadikan sebagai acuan oleh banyak programmer terutama yang berbasis web. 1.1.1 Perumusan Masalah Berdasarkan latar belakang yang telah disampaikan maka diperlukan adanya analisis perbandingan penerapan teknik perangkat lunak Object Oriented Programming (OOP) dengan Aspect Oriented Programming (AOP) dan sejauh mana kelebihan menerapkan paradigma AOP dibandingkan dengan paradigma OOP. 1.1.2 Pertanyaan Penelitian 1. Manakah antara penerapan teknik OOP dibandingkan dengan teknik AOP yang lebih baik, berdasarkan kaidah-kaidah perangkat lunak yang berkualitas ? 2. Apakah kelebihan dan kekurangan antara teknik OOP dan AOP ? 1.1.3 Batasan Masalah Dalam penelitian ini akan menganalisis perbedaan penerapan teknik OOP dengan AOP yang diterapkan pada program aplikasi yang dibangun menggunakan bahasa C# dengan framework ASP.NET MVC Web application, dengan batasan masalah sebagai berikut: 1. Permasalahan yang akan dibandingkan yaitu cross cutting concern dan inheritance anomaly. 2. Untuk permasalahan cross cutting concern, dibatasi pada fungsionalitas program yang meliputi: fungsi pencatatan (logging), otorisasi (Authorization), dan penanganan
kesalahan (Exception handling), yang akan diimplementasikan pada kedua paradigma pemrograman tersebut. 3. Kaidah-kaidah yang menunjukkan kualitas dari perangkat lunak, yang akan digunakan untuk membandingkan kedua paradigma pemrograman ini meliputi:
Reusability yaitu kemampuan source code yang dibuat dapat digunakan kembali lagi baik pada aplikasi lain maupun pada aplikasi itu sendiri.
Understanbility yaitu kemudahan dalam memahami source code yang dibuat.
Maintenace yaitu kemudahan dalam pemeliharaan perangkat lunak.
Testability yaitu kemudahan dalam pengujian terhadap perangkat lunak.
1.1.4 Keaslian Penelitian Beberapa penelitian yang ada diantaranya, melakukan penelitian manfaat penerapan AOP pada programming library untuk penggambaran diagram statistik chart2d dan studi kasus penerapan AOP pada Card Fraud Monitoring yaitu aplikasi untuk melakukan preotorisasi transaksi berbasis kartu dan pencegahan fraud berdasarkan data kebiasaan transaksi nasabah. Sedangkan untuk penelitian yang kami lakukan menganalisis perbedaan penerapan teknik OOP dengan AOP yang diterapkan pada program aplikasi yang dibangun menggunakan bahasa C# dengan framework ASP.NET MVC Web application, dengan permasalahan cross cutting concern dan inheritance anomaly, dimana untuk cross cutting concern batasan fungsionalitas programnya meliputi: fungsi pencatatan (logging), otorisasi (Authorization),
dan
penanganan
kesalahan
(Exception
handling),
yang
akan
diimplementasikan pada kedua paradigma pemrograman tersebut. Dimana kriteria-kriteria untuk
membandingkan
kedua
paradigma
pemrograman
ini
meliputi
reusability,
understandability, maintainability dan testability, untuk menunjukkan kualitas dari perangkat lunak. 1.1.5 Manfaat Penelitian Hasil penelitian ini diharapkan dapat mengetahui kelebihan maupun kekurangan penerapan paradigma AOP pada suatu aplikasi, sehingga dapat dijadikan pertimbangan untuk menerapkan paradigma AOP pada aplikasi yang akan dibangun, khususnya pada aplikasi yang dibangun menggunakan bahasa C# dengan framework ASP.NET MVC Web Application . 1.2
Tujuan Penelitian Sesuai dengan perumusan masalah yang telah disampaikan sebelumnya, maka
penelitian ini bertujuan untuk membuktikan kelebihan penerapan teknik AOP dibandingkan dengan teknik OOP, dengan mengevaluasi berdasarkan kaidah-kaidah perangkat lunak yang
berkualitas menggunakan beberapa metode metric.