BAB 1 PENDAHULUAN 1.1
Latar Belakang
Sistem agen bergerak merupakan salah satu perkembangan baru di dunia rekayasa perangkat lunak (Damasceno, Garcia, Romanovsky, & Lucena, 2006). Dibandingkan dengan sistem-sistem yang ada sebelumnya sistem agen bergerak memiliki keunikan tersendiri. Sistem agen bergerak membutuhkan tambahan fitur yang tidak konvensional dibanding sistem pemrograman yang sudah ada (Badjonski, Ivanovic, & Budimac, 2005). Sistem agen bergerak muncul akibat adanya tuntutan dari perkembangan teknologi perangkat lunak dan jaringan. Sistem klien server menghubungkan antar klien yang statik dan server yang juga statik. Dengan adanya perkembangan teknologi bergerak, klien bisa bergerak atau berpindah lokasi bahkan server pun bisa berpindah. Perpindahan yang terjadi bisa secara fisik ataupun dalam bentuk perangkat lunak (Roman, Julien, Huang, & Louis, 2002). Perpindahan secara fisik berbentuk perpindahan perangkat keras dari satu lokasi ke lokasi lain. Di sisi perangkat lunak, sistem agen bergerak pun memiliki keunikan dibanding dengan sistem konvensional yang ada sebelumnya. Perangkat lunak agen bergerak memiliki entitas yang bisa berpindah dari satu tempat atau lokasi eksekusi ke lokasi eksekusi yang lain. Banyak keunggulan dan keuntungan yang dimiliki oleh sistem agen bergerak. Keunggulan dan keuntungan sistem agen bergerak itu diantaranya adalah: agen bergerak dapat mengurangi beban jaringan, agen bergerak dapat mengatasi kelambatan jaringan, agen bergerak dapat meng-enkapsulasi protokol, agen bergerak dapat dieksekusi secara asinkron dan mandiri, agen bergerak dapat beradaptasi secara dinamis dan reaktif, agen bergerak merupakan sistem yang heterogen, dan agen bergerak dapat bertahan dan memiliki toleransi terhadap kegagalan (Yu, Cao, Wen, & Lu, 2006) (Lange & Oshima, 1998). Dari karakteristik-karakteristik tersebut sistem agen bergerak sangat menjanjikan untuk menjadi model dan formula untuk pengembangan sistem yang sesuai dengan tuntutan teknologi. Ketertarikan para pengembang sistem dan peneliti terhadap sistem agen bergerak ini juga dibuktikan dengan dibuatnya standarisasi FIPA (Foundation Intellegent for Physical Agent) dan keputusan OMG (Object Management Group) untuk meng-
1
2 eluarkan sebuah standar yang dinamakan MASIF (Marche & Quemener, 2003). Keseriusan komunitas-komunitas riset itu dalam membuat standar untuk mengembangkan standar tersebut membuktikan bahwa teknologi agen ini menjanjikan. Namun keunggulan-keunggulan itu ternyata tidak lantas membuat aplikasi agen bergerak secara cepat banyak dipakai oleh para pengembang perangkat lunak. Teknologi yang menjanjikan ini masih memerlukan aplikasi-aplikasi yang sesuai dan mudah digunakan untuk memecahkan masalah yang memiliki karakteristik yang sama dengan agen bergerak. Sistem perangkat lunak agen bergerak merupakan sebuah sistem yang kompleks (Kulesza, Alves, Garcia, De Lucena, & Borba, 2006). Dalam sistem perangkat lunak, masalah yang kompleks itu biasanya dipecah-pecah menjadi bagianbagian yang kecil atau biasanya disebut modularisasi. Untuk memecahkan masalah kompleksitas tersebut biasanya menggunakan metode, teknik dan alat bantu untuk mempermudah pengembang sistem. Dalam sistem rekayasa perangkat lunak konsep modularisasi yang banyak dipakai sekarang adalah modularisasi sistem berorientasi objek (Kulesza et al., 2006). Sistem berorientasi objek membagi masalah yang kompleks tersebut menjadi objek-objek yang memiliki hubungan dan hirarki dengan objek yang lain (Lun, Fong, & Hau, 2003). Modularisasi berorientasi objek ini memiliki sifat yang alamiah karena lebih sesuai dengan karakter dan cara berfikir manusia. Sifat-sifat seperti pewarisan, enkapsulasi, polimorfisme yang dimiliki pendekatan berorientasi objek ini ternyata banyak membantu dalam memecahkan masalah yang kompleks dan membuat solusinya. Sampai sejauh ini pengembangan perangkat lunak agen bergerak lebih banyak menggunakan pendekatan berorientasi objek (Henderson-Sellers, 2005). Namun beberapa analisis penelitian terdahulu menyebutkan bahwa ada hal-hal yang membuat tidak bisa sepenuhnya sistem berorientasi objek itu bisa digunakan untuk memecahkan masalah sistem agen bergerak (Nugroho & Srinivasan, 2000) (Batory, Cardone, & Smaragdakis, 2000). Penggunaan pendekatan berorientasi objek untuk pengembangan sistem agen bergerak merupakan sebuah pendekatan konvensional dengan menggunakan alat bantu, metode dan teknik yang sudah tersedia dan banyak dipakai. Namun perbedaan karakteristik yang menyebabkan konsep agen tidak bisa sepenuhnya didekati menggunakan konsep berorientasi objek(Batory et al., 2000). Hal ini juga dipaparkan oleh Nugroho and Srinivasan (2000) bahwa orientasi objek tidak dapat secara elegan mengatasi masalah mekanisme komposisi ketika ada fitur-fitur seperti mobilitas dan konkurensi ditambahkan ke dalam fungsionalitas dari program. Dengan munculnya pergerakan (mobilitas) untuk objek-objek dapat membuat sebuah kete-
3 rikatan yang kuat antara masalah pergerakan (mobilitas) dan masalah komputasi. Konkurensi dan sinkronisasi tugas-tugas yang telah ada menjadi tidak selaras lagi dengan konsep berorientasi objek, hal ini mengakibatkan apa yang disebut inheritance anomaly (Matsuoka & Yonezawa, 1997). Implementasi agen bergerak menggunakan pemrograman berorientasi objek memerlukan penyusunan program secara manual dalam pembuatan aplikasinya karena kriteria penyusunan programnya berbeda dari yang ditawarkan oleh bahasanya. Salah satu ciri khas sistem agen bergerak yaitu dinamisasi (Baldoni, Baroglio, Martelli, & Patti, 2005). Di dalam sistem bergerak ada unit atau entitas yang berpindah secara dinamis sesuai dengan fungsinya. Dibutuhkan sebuah rekayasa tambahan untuk bisa memodelkan sistem bergerak dengan pendekatan berorientasi objek. Belum selesai masalah pemodelan dinamisasi menggunakan pendekatan objek, ternyata tidak bisa diabaikan juga tentang karakter bawaan yang ada dalam pendekatan berorientasi objek. Ketika pendekatan berorientasi objek ini digunakan untuk memecahkan masalah yang kompleks ternyata beberapa unit fungsi bisa muncul berulang di beberapa sub bagian program (Kellens, Mens, & Tonella, 2007). Jika unit-unit fungsi tersebut digambarkan dalam sebuah diagram dekomposisi, maka unit-unit itu terlihat menyebar di beberapa bagian objek program. Hal ini sebenarnya melanggar aturan dekomposisi unit fungsi. Satu fungsi seharusnya hanya berada di satu objek atau kelas, tidak seharusnya dipanggil secara berulang atau di definisikan ulang di unit lain dalam satu program yang sama. Kebiasaan yang muncul dalam pemrograman berorientasi objek itu disebut scattering dan tangling. Dua masalah tersebut diistilahkan dengan irisan perhatian(crosscutting concern) (Ceccato et al., 2005). Istilah perhatian (concern) diambil dari dokumen IEEE Std 1471-2000 (IEEE, 2000). Inilah yang disebut di atas sebagai sebuah permasalahan bawaan dalam pendekatan berorientasi objek. Karakter irisan perhatian ini akan muncul setiap pendekatan berorientasi objek itu digunakan dalam mengembangkan sebuah perangkat lunak. Fungsi-fungsi yang sering muncul dalam aplikasi yang dikembangkan dengan pendekatan berorientasi objek diantaranya adalah fungsi pencatatan (log) dan fungsi pengelolaan kesalahan (error management) (Yokomori, Siy, Yoshida, Noro, & Inoue, 2011). Sama halnya ketika sistem agen bergerak tersebut dikembangkan dengan pendekatan berorientasi objek. Tentu masalah irisan perhatian ini akan terbawa juga dalam sistem agen bergerak. Masalah irisan perhatian ini menjadi masalah yang rumit karena sifat ini muncul dari mulai aras desain program. Metode, teknik dan alat bantu yang ada dalam analisis, desain dan pengembangan berorientasi objek sulit untuk menghapus karakteristik irisan
4 perhatian ini. Permasalah perhatian yang beririsan ini juga mengakibatkan sistem agen bergerak yang menggunakan pendekatan berorientasi objek memiliki komposisi struktur program yang kompleks (Seiter, Palmer, & Kirschenbaum, 2006). Hal ini mengakibatkan cara pandang terhadap program menjadi tidak sederhana, program memiliki nilai mampu guna ulang (reusability) dan kemampuan pemeliharaan (maintability) yang rendah (SantAnna, Garcia, Chavez, Pereira de Lucena, & Staa, 2003). Design Pattern merupakan sebuah solusi untuk memecahkan masalah umum dalam desain berorientasi objek. Masalah bawaan seperti perhatian yang beririsan dianggap bisa diselesaikan dengan menggunakan design pattern (Hachani & Bardou, 2002). Ketika menggunakan design pattern, guna ulang dapat dilakukan dalam dua cara yaitu: pola-pola (patterns) sendiri yang diguna ulang sebagai desain yang dapat diguna ulang, dan penggunaan pola-pola yang mungkin meringankan penggunaan kembali perangkat lunak yang dikembangkan. Namun, karena polapola tersebut merupakan bagian dalam pendekatan berorientasi objek, yang dalam sistemnya memiliki koleksi objek (atau kelas) yang menunjukkan entitas domain aplikasi, maka design pattern berorientasi objek umumnya didefinisikan oleh kolaborasi antara beberapa kelas. Masalah kolaborasi dalam pendekatan objek merupakan masalah yang kompleks, sehingga pendekatan dengan design pattern pun secara mendasar tidak bisa memperbaiki komposisi berorientasi objek untuk memisahkan perhatian yang beririsan. Satu cara untuk mengatasi masalah bawaan dari pendekatan berorientasi objek untuk sistem agen bergerak adalah menggunakan pendekatan berorientasi aspek. Pendekatan berorientasi aspek ini pertama kali diperkenalkan oleh Kiczales et al. (1997). Pendekatan berorientasi aspek menyediakan sebuah konstruksi yang memisahkan perhatian yang beririsan itu menjadi sebuah unit terpisah. Pendekatan berorientasi aspek ini memperbaiki pendekatan berorientasi objek tanpa mengubah karakter dasar pendekatan objek. Pada pendekatan aspek, unit fungsi atau perhatian yang menyebar (scattering) dan kusut (tangling) atau diistilahkan perhatian yang beririsan ini dienkapsulasi menjadi sebuah unit yang terpisah yang kemudian disebut aspek (aspect) (He & Bai, 2006). Dalam unit aspek ini dimuat metodemetode yang beririsan sehingga hanya akan didefinisikan satu kali saja di dalam keseluruhan kode yang dibuat. Dari mulai aras desain, unit aspek ini dimunculkan untuk menampung unit fungsionalitas yang menjadi masalah dalam pendekatan objek. Pada tahap pengkodean, unit ini benar-benar menjadi sebuah unit sejenis kelas dalam objek. Dalam unit aspek ini didefinisikan titik mana tempat fungsi itu ak-
5 an dieksekusi, detail fungsi dan kapan fungsi itu eksekusi. Dengan mendefinisikan detail fungsi satu kali tapi dengan penjelasan dititik mana saja akan dieksekusi maka ketika kode itu dijalankan akan memanggil unit fungsi yang disebutkan dalam unit aspek. Dengan karakteristik yang dimiliki, pemrograman berorientasi aspek ini bisa memperbaiki karakterisasi pemrograman sistem agen bergerak yang memiliki kelemahan bawaan akibat dari pendekatan berorientasi objek. Garcia, Kulesza, and Lucena (2005) mengusulkan penggunaan konsep berorientasi aspek dalam sistem agen bergerak. Dalam proposalnya juga mengusulkan sebuah arsitektur agen bergerak dengan pendekatan aspek yaitu arsitektur berbasis mediator. Arsitektur berbasis mediator memiliki konstruksi ikatan antar perhatian-perhatian dalam sistem agen bergerak yang terlalu bebas. Fleksibilitas menjadi ciri dari arsitektur ini. Namun dengan memiliki arsitektur yang terlalu bebas maka arsitektur ini tidak secara kuat mencirikan sistem agen bergerak. Pendekatan arsitektur yang lain juga diusulkan oleh Kendall (1999) dengan arsitektur agen berlapis (layered agent architecture). Arsitektur agen berlapis digambarkan dengan beberapa lapisan (layer). Arsitektur berlapis ini membangun sebuah gaya komposisi dimana semua interaksi memiliki fitur aliran informasi dua arah, dan hanya lapisan yang berdampinganlah yang dapat berkomunikasi satu sama lain. Namun komposisi seperti ini membuat interaksi antar komponen menjadi sangat terbatas. Hal ini bertentangan dengan karakteristik agen yang harus dapat berinteraksi dengan yang lainnya dalam berbagai cara. Dalam hal ini, mengembangkan sebuah sistem agen bergerak tidak bisa hanya fokus pada aras implementasi. Beberapa proposal (Gray, 1996) (Tripathi et al., 2002) (Badjonski et al., 2005) hanya menawarkan pemecahan pada sisi implementasi. Pemecahan seperti itu tidak dapat mengatasi masalah dengan kebutuhan sistem agen bergerak yang kompleks. Pengembangan secara komprehensif diperlukan untuk mendapatkan sebuah perangkat lunak agen bergerak yang utuh. Untuk membantu pengembangan perangkat lunak, kerangka perangkat lunak (framework) merupakan salah satu alat bantu yang penting. Kerangka perangkat lunak agen bergerak menyediakan fungsi-fungsi generik yang bisa digunakan untuk pengembangan aplikasi agen bergerak. Pada perkembangan teknologi, kerangka perangkat lunak sampai saat ini masih memegang peranan dalam pengembangan aplikasi (Kulesza et al., 2006). Kerangka yang masih banyak dipakai sampai saat ini adalah kerangka yang berorientasi objek. Alasan utama dibalik ini adalah karena pemrograman berorientasi objek sangat banyak dipakai oleh para pengembang sistem perangkat lunak. Seperti yang digambarkan di paragrap sebelumnya bahwa sifat berorientasi objek tidak bisa sepenuhnya mengkarakterisasi sifat agen, sehing-
6 ga dalam perspektif ini, adalah suatu hal yang penting untuk mengembangkan kerangka berorientasi agen yang tidak memiliki masalah bawaan berorientasi objek. Kulesza et al. (2006) mengidentifikasi 3 masalah yang muncul dalam pengembangan agen menggunakan kerangka berorientasi objek. Tiga masalah tersebut adalah: • Kompleksitas Kolaborasi Objek. Kerangka OO mendefinisikan satu set kelas abstrak dan konkrit yang dapat digunakan untuk mengaplikasikan arsitektur perangkat lunak. Kolaborasi yang kompleks antara kelas-kelas tersebut harus diimplementasikan. Kolaborasi ini merupakan fungsi umum yang digunakan secara bersama oleh beberapa aplikasi dalam kerangka. Setiap kelas di dalam kerangka secara umum harus memainkan peran yang berbeda, yang berarti bahwa mereka harus berkolaborasi dengan kelas yang lainnya untuk melaksanakan tugasnya masing-masing (Wang & Zhao, 2012). Oleh karena itu, untuk memahami dan memelihara kelas dalam kerangka menjadi sebuah tugas yang sulit. Riehle and Gross (1998) menganalisis masalah kolaborasi obyek yang kompleks dan dampaknya pada desain kerangka. Mereka menunjukkan bagaimana kompleksitas kerangka berorientasi objek menjadi semakin kompleks ketika kelas-kelas internal kerangka memainkan banyak peran yang berbeda-beda. • Ketidakmampuan untuk memodularisasi fitur opsional kerangka. Batory et al. (2000) membahas kesulitan kerangka untuk memodularisasi fitur opsional. Fitur opsional merupakan fungsi dalam kerangka yang tidak digunakan dalam setiap instan yang ada dalam kerangka. Fitur-fitur tersebut menggambarkan beberapa alternatif pengembangan biasanya mengadopsi untuk menangani masalah berikut ini: (i)untuk mengimplementasikan fitur opsional dalam kode kelas konkrit selama proses Instansiasi ; dan (ii) untuk membuat dua kerangka yang berbeda, satu menangani fitur opsional dan yang lainnya tanpa fitur opsional. Oleh karena itu, beberapa modul dalam kerangka perlu direplikasi hanya demi mengungkap fitur opsional. • Irisan Komposisi Fitur dalam Integrasi Kerangka. Mattsson and Bosch (1997) telah menganalisis masalah dan penyebab yang berkaitan dengan integrasi kerangka berorientasi objek. Untuk setiap masalah yang diajukan, mereka juga mengusulkan beberapa solusi berorientasi objek. Kombinasi dua kerangka kerja dapat juga dilihat sebagai komposisi satu set baru fitur (direpresentasikan sebagai sebuah kerangka) dalam struktur dari kerangka yang lain. Komposisi-komposisi tersebut dianggap beririsan.
7 Pengembangan dengan kerangka berorientasi objek masih belum bisa mengkarakterisasi sistem agen. Pendekatan berorientasi aspek merupakan solusi yang bisa mengatasi kelemahan pendekatan berorientasi objek dalam pengembangan sistem agen bergerak. Yang menjadi pertanyaan berikutnya adalah bagaimana dengan menggunakan kerangka berorientasi aspek, seperti AspectJ atau Spring, untuk mengembangkan sistem agen bergerak. Dalam sistem agen bergerak, perhatian yang beririsan itu digunakan secara spesifik untuk memodularisasi perhatian-perhatian yang menjadi karakteristik sistem agen bergerak. Secara umum dalam kerangka pemrograman berorientasi aspek yang generik, unit aspek atau interceptor digunakan untuk pemisahan perhatian yang umum. Aplikasi agen bisa dikembangkan dengan kerangka pemrograman berorientasi aspek, namun memerlukan usaha yang lebih dibandingkan menggunakan kerangka pemrograman agen bergerak yang memang secara spesifik digunakan untuk mengembangkan sistem agen. Untuk pengembangan kerangka pemrograman berorientasi aspek diperlukan kustom untuk membuat semua metode sesuai kebutuhan dalam sistem agen. Dalam kerangka agen sudah disediakan metode-metode instan yang bisa digunakan sesuai kebutuhan untuk pengembangan sistem agen. Menggunakan kerangka berorientasi aspek untuk sistem agen bergerak membutuhkan banyak pengembangan karena kerangka berorientasi aspek hanya merupakan kerangka program untuk kegunaan umum (general purpose programming). Disisi lain untuk mengembangkan sebuah kerangka berorientasi aspek untuk agen bergerak dari nol (from scratch) pada penelitian ini memerlukan lebih banyak energi, tim yang lebih besar, dan waktu yang lama. Karena pendekatan berorientasi aspek memiliki karakteristik yang sama dengan pendekatan berorientasi objek namun memiliki fitur tambahan, maka pada pengembangan dapat menggunakan sebuah kerangka berorientasi objek dengan cara ditransformasi menjadi kerangka agen berorientasi aspek. Kerangka agen berorientasi objek tersebut kemudian dianalisis struktur objeknya dan diidentifikasi apakah memiliki perhatian yang beririsan. Hasil identifikasi terhadap perhatian yang beririsan ini kemudian dimasukan kedalam sebuah unit baru dalam struktur yang merupakan tambahan dari struktur objek atau kelas yang sudah ada. Unit itu disebut unit aspek. Dalam pemrograman berorientasi aspek, unit aspek ini sejenis kelas tapi memiliki fitur dan fungsi yang berbeda. Proses transformasi struktur dari kerangka berorientasi objek menjadi kerangka berorientasi aspek ini disebut refactoring. Fowler, Beck, Brant, Opdyke, and Roberts (1999) adalah yang pertama kali memperkenalkan refactoring untuk proses perubahan struktur dari program berorientasi objek. Proses refactoring kemudian dipakai dalam pengubahan dari pendekatan objek
8 menjadi aspek. Beberapa penelitian yang menggunakan refactoring dalam modularisasi perhatian yang beririsan adalah Binkley, Ceccato, Harman, Ricca, and Tonella (2005), Hannemann (2006), B. C. da Silva, Figueiredo, Garcia, and Nunes (2009), dan Kristiansen, Stolz, Oslo, and Bergen (2014). Dalam pendekatan aspek, proses refactoring ini memperbaiki struktur program sehingga bersih dari irisan perhatian. Dengan demikian penelitian ini bisa menghasilkan sebuah paradigma pemrograman yang bersih (clean programming) dari pemanggilan ulang kode-kode yang sama. Pengulangan-pengulangan tersebut akan mengakibatkan penumpukkan baris-baris kode yang sama dan menyebar di banyak unit. Hasil proses refactoring tidak mengubah tingkah laku program pada aras hasil aplikasi karena yang dirubah hanya aras bawahnya yaitu aras arsitektur sampai kode. Namun cara ini perlu dibuktikan dalam dengan membuat sebuah kerangka dan mengujinya. Didalam sistem agen bergerak sendiri muncul kenyataan bahwa di beberapa pengembangan sistem agen bergerak tidak dapat memodularisasi perhatian secara memuaskan (Garcia, Kulesza, & Sant’Anna, 2006). Secara umum, perhatianperhatian tersebut saling mempengaruhi dan sulit untuk dipisahkan. Pemisahan modul-modul dan masalah kompleksitas program juga masih menjadi masalah dasar dalam pengembangan sistem agen bergerak. Sistem agen bergerak melibatkan sejumlah perhatian, yaitu: kemandirian, pembelajaran, mobilitas, penanganan error, dan sadar konteks. Pemodelan, perancangan dan implementasi dari beberapa perhatian tersebut merupakan sebuah tantangan karena irisan dari perhatian dalam sistem agen mengakibatkan kompleksitas bertambah.
1.2
Perumusan Masalah dan Batasan Penelitian
Dari hal-hal yang menjadi latar belakang, beberapa masalah yang dibahas dalam penelitian ini adalah: • Pendekatan berorientasi objek yang sampai saat ini banyak dipakai dalam pengembangan sistem tidak bisa mengkarakterisasi sistem agen bergerak secara utuh. Beberapa karakteristik unik sistem agen bergerak seperti dinamisasi dan mobilitas menjadi pembeda ketika pengembangan sistem agen menggunakan pendekatan berorientasi objek. • Pendekatan berorientasi objek memiliki sifat bawaan yaitu masalah perhatian yang beririsan yang diakibatkan oleh pemanggilan berulang terhadap fungsifungsi yang sama di beberapa unit program. Hal ini yang mengakibatkan sis-
9 tem agen bergerak yang dikembangkan dengan pendekatan berorientasi objek memiliki struktur yang kompleks dan modularisasi yang tidak bersih. • Kompleksitas struktur program agen bergerak dengan pendekatan berorientasi objek mengakibatkan nilai guna ulang dan nilai kemampuan pemeliharaan yang rendah, serta cara pandang terhadap program tidak sederhana. • Metode, teknik dan alat bantu yang ada dalam analisis, desain dan pengembangan berorientasi objek sulit untuk menghapus karakteristik irisan perhatian. Diperlukan sebuah pendekatan baru untuk menjadi solusi masalah ini. Satu solusi yang dipilih adalah pendekatan berorientasi aspek. Dari karakteristik dasarnya, pendekatan berorientasi aspek memperbaiki modularisasi • Pada sisi arsitektur agen bergerak yang telah ada adalah arsitektur berlapis dan arsitektur berbasis mediator. Arsitektur berlapis dan arsitektur berbasis mediator memiliki kelemahan dan kelebihan. Dari sisi arsitektur diperlukan sebuah arsitektur yang baru yang mempermudah dalam pengembangan sistem agen bergerak. • Kerangka perangkat lunak merupakan alat bantu yang bisa digunakan dalam pengembangan aplikasi agen. Namun kerangka perangkat lunak agen bergerak yang ada lebih banyak menggunakan pendekatan berorientasi objek. Kerangka perangkat lunak agen bergerak berorientasi objek bisa di transformasi dengan proses refactoring. Namun proses transformasi ini masih perlu dibuktikan dengan pengembangan kerangka dan pengujian. Dari rumusan permasalah di atas, maka penelitian ini berada dalam lingkup dan batasan sebagai berikut: • Konsep berorientasi objek menjadi analisis dasar dalam mengembangkan sistem agen bergerak • Kerangka perangkat lunak diperlukan sebagai alat bantu pengembangan agen bergerak. Kerangka agen berorientasi objek menjadi materi awal untuk mengembangkan kerangka agen bergerak. • Pengembangan sistem agen dari aras arsitektur sampai implementasi diperlukan untuk mendapat sistem agen yang utuh / komprehensif.
10
1.3
Keaslian Penelitian
Penelitian ini mengembangkan sebuah kerangka yang memodularisasi perhatianperhatian yang ada dalam sistem agen bergerak dengan menggunakan pendekatan berorientasi aspek. Beberapa kerangka yang telah ada terdahulu dikembangkan dengan pendekatan berorientasi objek. Aglets, JADE, Jason adalah salah kerangka agen yang dikembangkan dengan pendekatan berorientasi objek. Dengan pendekatan berorientasi objek ini masih memiliki sekumpulan masalah sehingga dalam penelitian ini perlu pendekatan yang beda untuk mengatasi masalah bawaan itu. Pendekatan yang digunakan dalam penelitian ini adalah pendekatan berorientasi aspek. Pendekatan berorientasi aspek ini mampu memodularisasi perhatian-perhatian yang beririsan. Sehingga dengan pendekatan berorientasi aspek ini bisa menghasilkan sebuah kerangka memiliki nilai guna ulang, nilai kemampuan pemeliharaan yang lebih baik dan memiliki modularisasi yang bersih dan bisa mengkarakterisasi sistem agen bergerak. Penelitian ini dikembangkan dari aras arsitektur. Pentingnya pendekatan dari mulai aras arsitektur adalah untuk dapat menggambarkan sebuah sistem agen bergerak yang utuh. Salah satu arsitektur agen adalah arsitektur agen berlapis yang diusulkan oleh Kendall (1999). Dari sisi komposisi model berlapis ini tidak bisa menangani untuk interaksi antar agen yang bisa dilakukan dalam berbagai cara, sementara dalam arsitektur agen berlapis itu hanya lapisan tertentu yang bisa digunakan untuk berinteraksi. Arsitektur yang lain yang pernah dikembangkan adalah arsitektur berbasis mediator yang diusulakan oleh Garcia et al. (2005). Arsitektur berbasis mediator ini merupakan arsitektur yang memiliki keterikatan yang longgar. Komposisi bergaya bebas. Setiap perhatian baru bisa dimasukkan. Dari sisi lain arsitektur berbasis mediator lebih mencirikan suatu model yang umum dan tidak mencirikan sebuah model agen yang kuat. Pendekatan berorientasi aspek yang digunakan untuk mengembangkan sistem agen bergerak juga telah diusulkan dan dikembangkan oleh beberapa penelitian seperti oleh Constantinides, Bader, and Elrad (2007) dan Garcia, Chavez, and Choren (2007) serta Garcia et al. (2005), namun dalam penelitian-penelitian itu tidak lebih spesifik menunjukkan masalah guna-ulang dan pemeliharaannya, serta tidak menunjukkan sebuah sistem yang bisa ditinjau lebih sederhana.
11
1.4
Tujuan
Tujuan umum dari penelitian ini adalah mengembangkan kerangka agen bergerak dengan menggunakan pendekatan sistem berorientasi aspek. Sedangkan tujuan khusus dari penelitian ini adalah: 1. Merancang arsitektur yang dapat mengkarakterisasi sistem agen bergerak yang memiliki komposisi yang lebih sederhana ditinjau dari sisi komponenkomponen penyusunnya, memiliki nilai guna ulang dan kemampuan untuk pemeliharaan yang lebih baik dari pendekatan berorientasi objek. 2. Merancang proses transformasi dari aras arsitektur sampai aras implementasi. Proses transformasi tersebut mengacu pada pendekatan berorientasi aspek yang digunakan untuk mengkarakterisasi sistem agen bergerak. 3. Menyusun sebuah pembuktian konsep dari arsitektur dan proses transformasi yang dirancang dalam bentuk kerangka perangkat lunak agen bergerak berorientasi aspek. 4. Membangun paradigma pemrograman yang didasarkan pada arsitektur yang dirancang. Selain itu bisa menunjukkan sebuah konsep pemrograman yang memiliki modularisasi yang memiliki nilai guna-ulang, nilai mampu-pelihara, dan modularisasi kode yang lebih baik dibandingkan dengan menggunakan pendekatan berorientasi objek.
1.5
Manfaat
Salah satu hasil yang dicapai dari penelitian ini adalah arsitektur kerangka agen bergerak yang memperbaiki masalah yang diakibatkan penggunaan pendekatan berorientasi objek. Kerangka tersebut bisa memberikan kontribusi untuk mendukung dalam pengembangan aplikasi-aplikasi di lingkungan bergerak baik di lingkungan akademik maupun industri. Dengan dikembangkannya kerangka sistem agen bergerak yang berorientasi aspek ini diharapkan bisa memberi manfaat sebagai berikut: • Memberikan solusi untuk mengatasi masalah kompleksitas dalam pengembangan sistem agen bergerak sehingga komposisi program bisa dipandang lebih sederhana. Dengan ini pengembang program tidak sulit dalam mendefinisikan sistem agen bergerak dan mengimplementasikannya.
12 • Memberikan sebuah panduan untuk membangun sistem agen bergerak dengan menggunakan proses transformasi dari arsitektur sampai implementasi. Panduan ini bisa membantu para pengembang program untuk mendefinisikan kebutuhan dan mengimplementasikan kebutuhan tersebut ke dalam aplikasi agen bergerak. • Dengan paradigma pemrograman yang dibangun dalam penelitian ini, proses pengembangan agen bergerak dapat memisahkan permasalahan kompleksitas yang dibawa oleh pendekatan berorientasi objek. Penggunaan pendekatan berorientasi aspek dalam pengembangan sistem agen bergerak dapat membuat sebuah konsep pengembangan yang bersih dalam modularisasi.
1.6
Sistematika Penulisan
Penulisan laporan ini disusun dalam 5 bab. Isi dari tiap bagian tersebut adalah sebagai berikut: • Bab 1 membahas tentang latar belakang yang mendorong penelitian ini dilakukan. Masalah-masalah yang muncul kemudian di garis bawahi dalam perumusan masalah. Keaslian penelitian disediakan untuk menunjukkan posisi penelitian ini. Bagian lain yang penting dalam bab ini adalah tujuan dan manfaat penelitian. • Bab 2 dalam laporan penelitian ini membahas tentang tinjauan pustaka dan landasan teori serta pertanyaan penelitian. Bagian awal membahas tentang kajian hasil survey ke beberapa hasil penelitian terdahulu. Kajian-kajian pustaka itu terutama yang berhubungan dengan beberapa bidang yaitu: agen bergerak, pendekatan berorientasi objek, pendekatan berorientasi aspek, dan proses transformasi dari pendekatan objek menjadi aspek yang merupakan domain-domain penting dalam penelitian ini. Landasan teori mendiskusikan beberapa landasan keilmuan yang dikembangkan dan mendukung penelitian ini. Dibagian akhir dari bagian ini dibahas tentang pertanyaan penelitian • Bab 3 adalah metodologi penelitian membahas tentang materi penelitian, prosedur penelitian, rancangan penelitian, cara mengukur dan memvalidasi hasil penelitian. Materi penelitian menjelaskan tentang materi yang dipakai dalam penelitian ini yang secara keseluruhan berupa perangkat lunak. Langkahlangkah penelitian dijelaskan didalam pembahasan prosedur penelitian. Pem-
13 bahasan tentang rancangan penelitian dimulai dengan membuat deskripsi sistem agen bergerak dan menganalisis kebutuhan. Pembahasan berikutnya adalah menjelaskan tentang arsitektur yang diusulkan dan menunjukkan irisan perhatian dalam kerangka agen bergerak. Perancangan model kerangka dideskripsikan untuk menggambarkan konstruksi kerangka agen bergerak yang dirancang. Perancangan proses transformasi atau refactoring dijelaskan sebelum menjelaskan cara mengukur dan memvalidasi hasil penelitian. Beberapa ukuran atau metrik dijelaskan dalam cara mengukur dalam penelitian. Validasi menjelaskan kerangka agen yang lain yang digunakan sebagai pembanding. • Bab 4 menguraikan tentang hasil dan pembahasan dalam penelitian. Implementasi penggalian aspek dijadikan pembahasan awal bab ini. Pembahsan berikutnya adalah implementasi aspek dan menggabungkan aspek dan AspectJ. Untuk mendukung pembahasan hasil dibahas dua studi kasus yang masing-masing ditulis dalam 2 pembahasan berbeda. Bagian berikutnya adalah membahas tentang pembahasan hasil dan catatan kritis dari hasil penelitian. Akhir bagian hasil dan pembahasan ini membahas tentang kontribusi penelitian. • Kesimpulan dan saran adalah bagian terakhir dari penelitian ini membahas tentang kesimpulan dari hasil penelitian dan beberapa keterbatasan masalah dan saran untuk penelitian selanjutnya.