PENGEMBANGAN AGENT SERVER SEBAGAI ANTARMUKA ANTARA AGENT DENGAN SERVER DATABASE PADA SISTEM MANAJEMEN KELAS BERBASIS MULTI-AGENT DENGAN MENGGUNAKAN JADE Arman, F. Astha Ekadiyanto, Martius Teknik Elektro, Fakultas Teknik Universitas Indonesia Kampus Baru UI Depok, Jawa Barat 1624, Indonesia dammerung@ymail.com, astha@ee.ui.ac.id, lord_tius@yahoo.com Abstrak. Pemrograman berorientasi (AOP) dalam pengembangan perangkat lunak termasuk sebuah paradigma yang masih relatif baru. AOP memodelkan aplikasi sebagai sekumpulan komponen yang disebut. Sebuah perangkat lunak memiliki sifat yang serupa dengan agen manusia. juga memiliki kemampuan untuk mengerjakan tugas rumit yang diberikan kepadanya secara otomatis, dan mampu berkomunikasi dan bekerja sama dengan lain untuk menyelesaikan tugasnya. Salah satu middleware yang digunakan untuk pengembangan aplikasi multi- adalah JADE yang berjalan pada bahasa pemrograman Java. Untuk melakukan eksplorasi terhadap pemrograman berorientasi, maka dalam penulisan skripsi ini akan dibahas tahapan-tahapan yang dilakukan pada pengembangan Sistem Manajemen Kelas berbasis multi-. Bagian Sistem Manajemen Kelas yang dibahas pada skripsi ini adalah penggunaan Server sebagai antarmuka yang menghubungkan Kelas dengan server database. Optimasi terhadap Server juga telah dilakukan terutama dengan penggunaan class BehaviourPool dan connection pooling yang berdasarkan hasil pengujian mampu mengurangi waktu pemrosesan sebesar 16% pada beban di atas 10 permintaan. Abstract. Oriented Programming (AOP) in software development is a relatively new paradigm. AOP models an application as a collection of components called s. A software has similar behaviour as human. An also has the ability to carry a complex task assigned to them automatically, and communicate and cooperate with other s to complete their tasks. One of several middlewares that is used to develop a multi- application is JADE which is run on Java programming language. To explore oriented programming, this thesis will analyse several phases in developing based Class Management System. Part of Class Management System that will be analysed in this thesis is the use of Server as an interface that connects Class with database server. Optimization on Server was done by using BehaviourPool class and connection pooling which based on testing result can reduce processing time by 16% at request rate above 10 requests/second. 1. PENDAHULUAN Pendekatan berbasis dalam pengembangan perangkat lunak masih tergolong relatif baru. Pendekatan ini dapat mempermudah perancangan sebuah sistem perangkat lunak yang rumit dengan memecah permasalahan menjadi beberapa bagian dan menugaskan penyelesaian bagian-bagian permasalahan tersebut kepada beberapa yang memiliki keahlian yang berbeda-beda dan dapat berkumunikasi serta saling bekerja sama Salah satu middleware yang digunakan untuk mengembangkan perangkat lunak berbasis adalah JADE (Java DEvelopment Framework). JADE sepenuhnya dibuat dalam bahasa pemrograman Java. Skripsi ini mencoba melakukan eksplorasi terhadap pendekatan berbasis dengan mengembangkan sebuah aplikasi berbasis untuk mengatur kegiatan perkuliahan secara otomatis dengan menggunakan JADE yang diberi nama Sistem Manajemen Kelas. Selain itu pengujian juga dilakukan terhadap aplikasi Sistem Manajemen Kelas untuk mengetahui sejauh mana kemampuan dari aplikasi berbasis yang dibuat dengan menggunakan JADE. Skripsi ini tidak membahas tahap perancangan, implementasi, dan pengujian dari pada ruang kelas dan departemen, karena bagian tersebut dikerjakan oleh pemrogram lain yang ikut mengembangkan aplikasi Sistem Manajemen Kelas.
2. PERENCANAAN, ANALISA, DAN PERANCANGAN APLIKASI SISTEM MANAJEMEN KELAS Sistem manajemen kelas memiliki 3 jenis ruangan yang menjadi tempat implemetasinya, yaitu ruang kelas, gedung departemen, dan ruang server. dan mahasiswa di ruang kelas dapat mengisi absen, petugas dan dosen di gedung departemen dapat melihat informasi kelas yang sedang berlangsung dan mengubah jadwal kuliah. Komputer di ruang server berfungsi untuk menyediakan data yang diperlukan oleh komputer kelas. Selain itu komputer kelas dan departemen dapat saling bertukar pesan. Ilustrasi skenario Sistem Manajemen Kelas ditunjukkan pada Gambar 1. Perencanaan Apakah solusi berbasis merupakan yang terbaik? YA Analisa Use Case Penentuan jenis awal Penentuan tanggung jawab Penentuan hubungan antar Perbaikan Informasi penempatan TIDAK Gunakan teknik lainnya Perancangan Spesifikasi Interaksi Message Template Deskripsi untuk pendaftaran dan pencarian Yellow Pages Interaksi dengan database Interaksi dengan pengguna Behaviour internal Implementasi Gambar 2. Gambaran umum dari metodologi untuk menganalisa dan merancang sistem multi Administrator Ruang Server Petugas Petugas FTUI Gambar 1. Skenario Sistem Manajemen Kelas 2.1. Metode yang Digunakan Tahap perancangan aplikasi Sistem Manajemen Kelas dilakukan dengan mengacu pada sebuah whitepaper oleh Magid Nikraz et.al. [9], yang membahas sebuah metodologi yang digunakan dalam menganalisa dan merancang sebuah sistem multi-. Berdasarkan whitepaper tersebut, terdapat 6 langkah yang harus dilakukan pada tahap analisa, dan 10 langkah pada tahap perancangan. Tahap perencanaan, implementasi, dan pengujian tidak dijelaskan pada whitepaper ini. Gambaran umum dari semua tahap tersebut ditunjukkan pada Gambar 2. Dari semua tahapan yang diperlihatakan pada Gambar 2, tidak seluruhnya dijelaskan pada skripsi ini karena adanya pembagian tugas, sehingga sebagian tahap perancangan akan dikerjakan oleh pemrogram lain dalam satu tim. Tetapi seluruh tahapan pada proses analisa akan dijelaskan untuk memberi gambaran umum yang utuh mengenai Sistem Manajemen Kelas. 2.2. Perencanaan Tujuan dari pengembangan aplikasi Sistem Manajemen Kelas adalah untuk mengeksplorasi kemampuan dan fitur-fitur yang dimiliki sistem multi-. Oleh sebab itu, pertanyaan yang terdapat pada tahap perencanaan, yaitu: Apakah solusi berbasis merupakan solusi yang terbaik? tidak digunakan sebagai dasar pemilihan sebagai dasar pengembangan aplikasi Sistem Manajemen Kelas. 2.3. Analisa Dari tahap analisa dan diperoleh dua jenis diagram, yaitu diagram (Gambar 3), dan diagram informasi penempatan (Gambar 4). dan Database Jadwal Kuliah Kelas Server Yellow Pages Gambar 3. Diagram / AMS Diagram menunjukkan jenis-jenis yang terdapat pada sistem dan arah komunikasi yang terjadi di antar semua tersebut.
Gambar 4. Diagram inforomasi penempatan Diagram penempatan menunjukkan lokasi penempatan masing-masing yang terdapat pada sistem. 2.4. Perancangan Pada tahap perancangan ditentukan prinsip kerja dari Server, Dalam melayani permintaan Kelas, Server bertindak sebagai transducer. kelas hanya perlu mengirimkan pesan dengan format tertentu sesuai dengan jenis permintaan dan membiarkan Server mengurus semua transaksi dengan server database. Untuk melakukan tugas tersebut diperlukan behaviour yang berfungsi untuk mendengarkan dan memproses permintaan Kelas. Prinsip kerja dari behaviour tersebut ditunjukkan pada Gambar 5. Gambar 6. Struktur database untuk Sistem Manajemen Kelas Untuk pengkodean behaviour yang berfungsi untuk melayani permintaan Kelas, digunakan 2 jenis behaviour, yaitu CyclicBehaviour untuk mendengarkan pesan permintaan yang masuk, dan OneShotBehaviour untuk memproses permintaan yang diterima. Selain itu terdapat juga sebuah FSMBehaviour untuk menjamin hubungan dengan server database. Diagram keadaan dari FSMBehaviour tersebut ditunjukkan pada Gambar 7. FSMBehaviour memiliki sebuah kelemahan, yaitu tidak menghentikan behaviour yang dijalankan dari child behaviour jika FSMBehaviour mengalami restart. Untuk mengatasi masalah tersebut digunakan class BehaviourPool yang berfungsi untuk menyimpan referensi dari semua objek behaviour yang dijalankan, dan menghentikannya jika FSMBehaviour mengalami reset. Gambar 5. Diagram peralihan keadaan Server untuk tanggung jawab melayani permintaan Kelas 3. IMPLEMENTASI Pada tahap implementasi dilakukan pengkodean dari rancangan yang telah dibuat. Untuk struktur database yang digunakan dapat dilihat pada Gambar 6. Gambar 7. Diagram keadaan untuk FSMBehaviour pada Server Untuk mengoptimalkan waktu pemrosesan permintaan Kelas, digunakan teknik connection pooling dengan menggunakan dua buah class, yaitu class ConnectionPool untuk menampung objek Connection, dan class ConnectionPoolManager yang berisi beberapa static method untuk mengakses
class ConnectionPool. Prinsip kerja kedua class tersebut ditunjukkan pada Gambar 8. 25 Efisiensi Penggunaan Connection Pooling pada Server 20 Efisiensi (%) 15 10 5 0 0 5 10 15 20 25 Beban (permintaan) Gambar 10. Grafik efisiensi penggunaan connection pooling pada Server Gambar 8. Diagram sequence untuk proses pengambilan objek Connection dari pool pada Server 4. PENGUJIAN Pengujian terhadap pengaruh connection pooling terhadap peningkatan kinerja Server dilakukan dengan mengukur waktu pemrosesan yang dibutuhkan Server pada saat menggunakan connection pooling dan juga saat tidak menggunakan connection pooling. Grafik hasil pengukuran ditunjukkan pada Gambar 9. Dari data pengujian dihitung persentase penurunan waktu pemrosesan. Grafik presentase penurunan waktu pemrosesan (efisiensi) terhadap beban permintaan ditunjukkan pada Gambar 10. Dari gambar tersebut dapat dilihat bahwa nilai optimal sebesar 21.67% dicapai pada beban 8 permintaan, dan nilai saturasi efisiensi berada pada nilai 16%. Lama Pemrosesan (ms) 2500 2000 1500 1000 500 0 Perbandingan Lama Pemrosesan Permintaan Jadwal Harian pada Server 1450.33 1933.49 2015.985 1422.51 1 Permintaan 10 Permintaan 2428.96 20 Permintaan 2395.75 Dengan Connection Pooling Tanpa Connection Pooling Gambar 9. Grafik hasil pengujian kinerja Server Pengujian kedua dilakukan terhadap penggunaan memori Server. Pengujian dilakukan dengan mengamati penggunaan memori setelah beberapa proses restart pada kondisi menggunakan dan tidak menggunakan class BehaviourPool. Grafik hasil pengujian ditunjukkan pada Gambar 11. Besar Pemakaian (Kilobyte) 102000.00 98000.00 94000.00 90000.00 86000.00 82000.00 78000.00 Pemakaian Memori pada Server 1 2 3 4 5 6 7 8 9 10 11 Tanpa BehaviourPool class Setelah Restart ke-x Dengan BehaviourPool class Gambar 11. Diagram rata-rata pemakaian memori sebelum dan sesudah penggunaan class BehaviourPool Dari Gambar 11 dapat dilihat bahwa penggunaan memori Server tanpa menggunakan class BehaviourPool akan terus meningkat setiap kali dilakukan restart. Sebaliknya penggunaan memori Server setelah menggunakan class BehaviourPool akan cenderung konstan. Pengujian yang terakhir dilakukan terhadap aliran data yang dihasilkan Server saat mengirim jadwal kuliah harian. Pengukuran dilakukan dengan menggunakan Wireshark. Grafik I/O yang dihasilkan Wireshark ditunjukkan pada Gambar 12. Dari Gambar 12 dapat dilihat bahwa besar paket yang dihasilkan Server saat mengirim jadwal kuliah harian rata-rata sebesar 2000 bytes. Oleh sebab itu, penggunaan Server pada lingkungan LAN (Local Area Network) yang berkecepatan 100 Mbps tidak akan mengganggu kinerja jaringan.
Gambar 12. Hasil pengukuran aliran data yang dihasilkan Server saat mengirim jadwal kuliah harian dengan mnggunakan I/O Graph 5. KESIMPULAN Setelah melakukan pengembangan dan pengujian terhadap aplikasi Sistem Manajemen Kelas didapat beberapa kesimpulan sebagai berikut: 1. Efisiensi penggunaan connection pooling dalam memproses permintaan jadwal kuliah harian memiliki nilai efisiensi saturasi sebesar 16% dengan titik optimal pada beban sebesar 8 permintaan dengan efisiensi tertinggi sebesar 21.67%. 2. Penggunaan class BehaviourPool untuk menghentikan behaviour saat Server di-restart dapat menekan bertambahnya penggunaan memori dengan menghentikan semua behaviour yang terdaftar saat Server di-restart. 3. Komunikasi antar pada Sistem Manajemen Kelas hanya memerlukan sumber daya jaringan yang minimal, sehingga pengaplikasiannya tidak banyak membebani jaringan. 4. Pendekatan dapat mempermudah pengembangan sebuah perangkat lunak karena dapat memecah permasalahan menjadi bagian-bagian yang dikerjakan oleh yang berbeda. 5. Penggunaan JADE sangat mempermudah proses pengembangan aplikasi berbasis dengan tersedianya berbagai alat bantu tambahan beserta API yang disediakan oleh bahasa pemrograman Java. [3 ] (2008). About the Java Technology. Diakses 5 Juni 2008. http://java.sun.com/docs/books/tutorial/getstart ed/intro/definition.html [4 ] Hyacinth S. Nwana, (2008). Software s: An Overview. Diakses pada 6 Juni 2008. http://s.umbc.edu/introduction/ao/ [5 ] Bellifemine, Fabio et.al., Developing Multi System with JADE (John Wiley &Sons, Ltd, 2007) hal 3-4 [6 ] Fabio Bellifemine, Giovanni Caire, dan Tiziana Trucco, JADE Administrator s Guide, diakses 5 Juni 2008. http://jade.tilab.com/doc/administratorsguide.pd f [7 ] (2008). MySQL 5.1 Reference Manual. Diakses pada 9 Juni 2008. http://dev.mysql.com/doc/refman/5.1/en/introdu ction.html [8 ] Delisle, Marc (2006). Creating Your MySQL Database: Practical Design Tips and Techniques (Packt Publishing, 2006) hal 10 [9 ] Nikraz, Magid et.al., A Methodology for the Analysis and Design of Multi- System Using JADE (Telecom Italia Lab, 2006) hal 13-14 DAFTAR ACUAN [1 ] Clark S. Lindsey, (2004). History of Java. Diakses 5 Juni 2008. http://www.particle.kth.se/~lindsey/javacourse/ Book/Part1/Java/Chapter01/history.html [2 ] James Gosling, Henry McGilton (1996). The Java Language Environment. Diakses 5 Juni 2008. http://java.sun.com/docs/white/langenv/intro.do c2.html#349