Anak Indonesia Asli

Home » Artikel » Era Baru Evolusi Software

Era Baru Evolusi Software

Aspect Oriented Programming

Pemrograman berorientasi objek kini sudah sangat popular dalam dunia rekayasa perangkat lunak. Dengan menggunakan 3 konsep utama, Encapsulate(Enkapsulasi), Inheritance(Penurunan), dan Polymorphic. Ketiga konsep ini menjadi landasan kuat pada pemograman beroriantasi objek yang dapat menigkatkan readability (mudah dibaca dan dipelajari), reusability (mudah dikegunakan kembali), dan dekomposisi permasalahan (pemodulan). Object menjadi kunci utama keberhasilan OOP karena mengurangi tingkat kompleksitas dalam pemrograman dan memungkinkan maintenance yang relatif lebih mudah terhadap perangkat lunak itu sendiri. Namun, masalah muncul jika di dalam object-object atau kelas-kelas yang berbeda terdapat suatu aspek tertentu yang unik. Untuk mengubah suatu aspek dari perangkat lunak yang dibangun, maka beberapa object dan definisi kelas harus dimodifikasi. Hal ini dapat menjadi suatu masalah yang cukup mengganggu, terutama dalam menangani perangkat lunak yang kompleks dan berskala besar. Kemudian dikenal istilah Tangling, yang artnya dalam suatu objek terdapat aspek lain dari objek itu sendiri, sebagai contoh pada objek bisnis terdapat penanganan loging. Adapula scattering yang artinya, beberapa aspek yang sama muncul pada setiap layer/modul. Dan kedua hal ini cenderung sering muncul secara bersamaan.

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.

Grid Computing

Grid computing merupakan bentuk komputasi paralel yang berbasis jaringan antar perangkat komputer yang tersambung melalui interface jaringan konvensional seperti ethernet. Kelebihan utama dari system grid adalah tiap computer yang terhubung dalam jaringan dapat memproduksi hasil yang serupa dengan multiprocessor pada supercomputer, sehingga dari segi biaya dapat lebih murah daripada harus membeli sebuah supercomputer sendiri. Akan tetapi kekurangan yang paling mendasar adalah bahwa kecepatan koneksi yang dipakai oleh grid (biasanya adalah menggunakan interface ethernet) jauh lebih lambat daripada kecepatan bus komputer pada superkomputer.

Perbedaan yang amat mencolok antara Grid Computing dengan super komputer adalah mengenai masalah sentralisasi. Pada metode super computer, sumber daya yang ada berpusat pada satu tempat yaitu di tempat mesin itu berada sehingga system ini tidak akan berjalan apabila satu-satunya sumber daya tersebut mati. Hal ini berbeda dengan metode Grid Computing karena sumber daya yang ada menyebar sehingga apabila ada satu sumber daya (node) yang mati maka tugas yang masih belum terselesaikan akan dibagi ke dalam node-node yang masih hidup sehingga keberlangsungan dari sistem lebih terjamin.

Penjelasan mengenai arsitektur model dari grid computing itu sendiri tercantum pada gambar 1.

 

untitled.jpg


Web 3.0

 

Ingin melihat akan seperti apa perkembangan web di masa depan, maka Web 3.0 adalah jawabannya. Terobosan ini merupakan bukti bahwa teknologi  World Wide Web selalu berkembang.
Dunia maya (baca: Internet) telah banyak mempengaruhi kehidupan manusia dewasa ini. Semakin banyak orang yang menggantungkan perkembangan informasinya kepada Internet, sehingga teknologi yang dipergunakan dalam pembangunan sebuah situs web pun terus berkembang.
Dari era pertama web dikembangkan (Web 1.0), dimana pengunjung hanya bisa mencari (searching) dan melihat-lihat (browsing) data informasi yang ada di web, kemudian bergeser pada era pengembangan web kedua (Web 2.0) di mana pengunjung mulai dapat melakukan interaksi dengan diatur oleh sistem yang ada pada web.
Jenis interaksi yang dapat dilakukan pada era kedua ini antara lain untuk saling bertukar informasi (sharing), eksploitasi informasi, dan juga pembuatan komunitas-komunitas online seperti yang marak saat ini, seperti Friendster, Multiply, YouTube, dan lain-lain. Masing masing komunitas ini mempunyai kepentingannya sendiri dalam saling bertukar data maupun informasi yang mereka himpun.
Dalam era inilah sebenarnya interaksi sosial dalam dunia maya mulai dikembangkan. Dan mulai dari era ini pulalah ide untuk mengembangkan aspek sosial sebuah web mulai dipikirkan.
Aspek sosial yang dimaksud, terutama adalah aspek interaksi. Bagaimana sebuah web dapat memberikan sebuah interaksi sesuai dengan kebutuhan informasi setiap pemakaianya, merupakan sebuah tantangan utama dikembangkannya versi Web 3.0 ini.
Walaupun hanya bersifat virtual 3D, namun ternyata banyak yang mengharapkan perkembangan teknologi web ini dapat memenuhi kebutuhan setiap bidang informasi, bahkan setiap orang yang mengunjunginya.
Jika dianalogikan dalam kehidupan nyata, masyarakat kini ingin diperlakukan seperti seorang pengunjung butik dalam mendapatkan apa yang diinginkannya. Bukan seperti pengunjung supermarket yang dibiarkan mencari dan mendapatkan sendiri barang yang dinginkannya. Pengunjung sebuah web ingin dimengerti kemauannya oleh ‘toko’ penyedia informasi (dalam hal ini website).
Inilah yang dimaksud dengan tantangan bagaimana sebuah web dapat mengerti dan membantu pengunjung dalam berinteraksi dengan semua informasi yang ada. Sehingga tak mengherankan jika kemudian ciri dari pengembangan web generasi ketiga ini adalah web yang bersifat ‘nyata’, benar-benar ada interaksi yang terjadi, kemudian dapat memberikan arahan atau ‘anjuran’ kepada pengunjung dalam mendapatkan informasi yang diharapkannya, dan tentu saja juga tetap bersifat ‘provide’ atau mampu menyediakan informasi yang dibutuhkan.
Web 3.0 sendiri merupakan sebuah proyek pengembangan semantic web, yaitu sebuah sistem web yang dapat melacak setiap kaitan dari kata-kata yang terangkai, berkaitan dengan arti setiap kata yang dipakai. Tujuannya tentu saja agar web dapat menjadi media umum untuk bertukar informasi melalui dokumen-dokumen yang bahasanya dapat dimengerti oleh sistem, sehingga para pengunjung web dapat dengan mudah mencari data yang tepat atau minimal berkaitan dekat dengan apa yang kita maksud.
Web 3.0 sendiri merupakan sebuah realisasi dari pengembangan sistem kecerdasan buatan (artificial intelegence) untuk menciptakan global meta data yang dapat dimengerti oleh sistem, sehingga sistem dapat mengartikan kembali data tersebut kepada pengunjung dengan baik.
Saat ini adaptasi Web 3.0 mulai dikembangkan oleh beberapa perusahaan di dunia seperti secondlife, Google Co-Ops, bahkan di Indonesia sendiri juga sudah ada yang mulai mengembangkannya, yaitu Li’L Online (LILO) Community.
Permasalahan lain yang potensial muncul adalah, sebagai teknologi masa depan, Web 3.0 juga membutuhkan kecepatan akses Internet yang memadahi dan spesifikasi komputer yang tidak enteng, hal ini disebabkan tak lain karena teknologi ini secara visual berbasis 3D.
Sedangkan seperti yang kita tahu biaya akses Internet dengan kecepatan tinggi di Indonesia ini masih terbilang mahal bagi masyarakat umum. Belum lagi jika dihitung dari biaya spesifikasi perangkat komputer yang dibutuhkan, mungkin masyarakat Indonesia yang ingin menikmati kecanggihan layanan berbasis teknologi Web 3.0 masih harus menarik nafas penjang. Namun karena Web 3.0 sendiri masih dalam pengembangan, seiring dengan berlalunya waktu sebagai masyarakat Indonesia kita masih bisa mengharapkan bahwa biaya komunikasi, dalam hal ini koneksi Internet kecepatan tinggi akan semakin murah nantinya, sehingga terjangkau bagi masyarakat luas.


2 Comments

  1. tata50 says:

    artikelnya, keren

  2. suci says:

    asik ktmu jg tgsnya…thank’s

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: