Kemudian muncullah Aspect-Oriented Programming, dimana metode ini menyusun masalah-masalah kedalam satuan unit yang disebut aspek. Secara garis besar AOP merupakan metode pemograman yang menghadirkan konsep untuk memotong silang (crosscut) permasalahan tangling dan scattering. Tangling dalam artian bawa terdapat hal-hal lain didalam suatu Object yang sebenarnya tidak berhubungan langsung, namun hanya merupakan technical concerns semata. Sedangkan scattering lebih kepada pengkodean yang muncul pada banyak tempat, sebagai contoh kode program untuk akses user password yang bisa terjadi pada beberapa layer. Kedua hal diatas, telah menyebabkan source code menjadi tidak bersih dan tidak independent. Untuk itulah dibutuhkan madul yang dapat melakukan crosscutting concern terhadap permasalahan diatas, inilah yang dinamakan Aspect. Sebagai contoh, security dapat dikatakan sebuah aspect, tanpa merusak design asli dari system. Maka dalam hal ini Aspek dapat dikatakan sebagai suatu modul yang meng-enkasulapsi perilaku yang mempengaruhi kelas-kelas (dan object-object) tertentu. Dengan AOP, tiap aspek dapat dijabarkan sebagai unit-unit yang terpisah dan kemudian disatukan oleh Aspect Weaver(sebagai kompilasi). Bila kita bandingkan dengan Object-Oriented Programming (OOP), security dijadikan sebagai sebuah class, dan tidak dapat digunakan crosscutting concern, AOP sendiri merupakan penyempurna dari metode OOP tersebut.
Salah satu implementasi dari AOP ialah pada pemrograman Java dengan AspectJ, pada C/C++ dengan AspectC, AspectNet untuk C# dan .Net dan beberapa macam lainnya. Pada pelatihan ini digunakan implementasi dengan bahasa Java, yaitu AspectJ. Aspect adalah cara memodularisasi crosscutting concerns seperti cara memodularisi concern pada OOP. AspectJ menambahkan kepada Java dengan suatu konsep, yang disebut join point (dari crosscutting concerns) dan menambahkan beberapa konstraktor baru seperti pointcut, advice, inter-type declaration, dan aspect. Pointcut dan advice secara dinamic mempengaruhi program flow. Declarasi inter-type secara statis mempengaruhi hirarki kelas program. dan aspect meng-encapsulasi beberapa konstruktor baru tersebut. Dalam setiap modul aspect (pada Java) akan dikenal adanya Join Point, Pointcuts, Advice, inter-type declarations dan aspect sebagai program itu sendiri.
Sebuah join point dideklarasikan dengan baik dalam program flow. Sedangkan pointcut akan mengambil join point dan nilai dari point tersebut. Suatu potongan advice adalah kode yang dieksekusi manakala suatu join point dicapai. Kedua komponen ini disebut sebagai komponen dinamik dari AspectJ. AspectJ juga mempunyai jenis deklarasi Intertype yang membolehkan programmer untuk memodifikasi stuktur program statik, yakni anggota dari kelas dan hubungan antar kelas. Aspect dari AspectJ adalah unit modularitas untuk suatu crosscutting concern. Aspect ini bersifat seperti kelas java pada umumnya, yaitu termasuk pointcut, advice, dan deklarasi inter-type.
OMG! it's a great article, Share Oh!
0 komentar:
Post a Comment