JAVA Journal of Electrical and Electronics Engineering, Vol. 1, No. 1, April 2003
40
Perancangan dan Implementasi Perangkat Lunak Informasi Saham Berbasis Intelligent Mobile Agent Menggunakan Aglets Abdi Suryadinata1)
Sidiq Syamsul Hidayat2)
Bambang Riyanto3)
1)
PT. ASTRA HONDA-MOTOR, email:
[email protected] Dept. Telekomunikasi,T. Elektro,Politeknik Negeri Semarang, email:
[email protected] 3) Lab.Sistem Kontrol dan Komputer,Jurusan Elektroteknik Institut Teknologi Bandung, email:
[email protected]
2)
Abstrak - Pencarian informasi di internet sering memerlukan waktu yang lama dan melelahkan. Terlebih lagi mencari informasi data saham yang sangat banyak dan tersebar di beberapa tempat bursa. Agar pencarian dapat dilakukan dengan cepat dan mudah, maka digunakan perangkat lunak berbasis intelligent mobile agent yang bertindak untuk memonitor dan mengambil data saham tersebut, serta menampilkannya kepada user. Perangkat lunak ini menggunakan tiga buah agen yaitu agen pencari, agen database dan agen query. Dalam disain ini, agen diharapkan memiliki mobilitas lintas host, mampu melakukan pencarian database serta mampu menampilkan grafik moving average bagi klien. Percobaan dilakukan dengan menggunakan jaringan local area network dengan menggunakan 3 rumah agen yang memiliki data saling lepas. Tools yang digunakan untuk implementasi ialah JDK 1.1.8 dari Sun Microsystems dan Aglets 1.1.0 dari IBM. Keywords: agent, aglet, mobile agent, intelligent agent, intelligent mobile agent, multi agent system, mobile agent, informasi saham. 1. PENDAHULUAN Perkembangan teknologi dan informasi dewasa ini tumbuh sangat cepat. Hal ini berdampak pada kondisi kerja yang sangat cepat. Agar dapat mengambil keputusan dengan cepat maka dibutuhkan informasi yang tepat. Untuk itu, timbul ide untuk mendelegasikan tugas-tugas yang kompleks dan menghabiskan waktu yang lama kepada suatu perangkat lunak, yaitu software agent. Mengingat di Indonesia belum banyak aplikasi yang menggunakan software agent, maka pada penelitian ini dibuat suatu perangkat lunak agen yang dapat membantu pengguna dalam melakukan investasi saham. Pemilihan aplikasi agen ini didasari oleh kenyataan bahwa data-data saham merupakan data yang terus berubah dan lokasi saham yang tersebar secara geografis. Selain proses yang memakan waktu, koneksi dan keadaan server database yang dituju sering down merupakan potensi penghambat pekerjaan user. ____________________________________________ Paper ini telah disajikan pada Seminar of Intelligent Technolgy and Its Applications (SITIA) 2002, ITS Surabaya, 7 May 2002
Dalam mengembangkan sistem ini dibutuhkan perancangan agen terdistribusi yang melibatkan banyak agen (multi agent). Pada sistem multi agen, agen-agen ini mempunyai fungsi sendiri-sendiri dan dapat saling berkomunikasi dan memberikan informasi. Agen dapat mendelegasikan tugasnya terhadap agen lain untuk mencapai tujuan yang diinginkan. Pada sistem ini dibuat tiga jenis agen yaitu search agent yang mencari server database saham, database agent yang bertugas untuk melakukan koneksi database dan query agent yang bertugas untuk mengirimkan perintah SQL. 1.1. Perangkat Lunak Agen Belum ada kesepakatan umum tentang difinisi agen [7], namun pengertiannya dapat dilihat dalam dua perspektif, yaitu user perspektif dan sistem perspektif.[4] User perspektif mendifinisikan agen sebagai perangkat lunak yang bertindak sebagai perantara/agen atau broker bagi user, memperbolehkan user mendelegasikan tugas kepadanya, serta melakukan pekerjaan seperti yang diperintahkan user. Sedang dalam perspektif sistem, agen adalah perangkat lunak yang mengenali lingkungan kerjanya dan memiliki sifat-sifat agen yang dimandatkan. Secara esensial agen adalah objek software dengan 3 ciri utama [2] 1. menyatu dengan lingkungannya 2. memiliki sifat-sifat yang dimandatkan: Reactive -- dapat merasakan perubahan pada lingkungannya dan bertindak sesuai dengan perubahan lingkungan tersebut. Autonomous -- memiliki kontrol terhadap tindakannya sendiri. Goal-driven – bersifat pro-active untuk mencapai tujuan Temporally continuous – dapat melanjutkan proses eksekusi di tempat lain. 3. memiliki salah satu atau lebih sifat-sifat berikut Communicative – dapat berkomunikasi dengan agen lain Mobile – dapat berpindah dari satu host ke host lain Learning – beradaptasi sesuai dengan pengalaman sebelumnya; Believable – dapat dipercaya pada tingkat end-user, agen tidak akan merusak data user..
JAVA Journal of Electrical and Electronics Engineering, Vol. 1, No. 1, April 2003
Bila kita membicarakan tentang software agent, maka ada tiga ‘sumbu’ untuk mengukur kemampuan agen, yaitu: agency, intelligence, dan mobility[1]. Agency merujuk pada sifat-sifat otonom, intelligence menunjukan kemampuan agen untuk menangkap dan menerapkan pengetahuan tertentu dan menyelesaikan masalah. Sedangkan mobility menunjukan kemampuan berpindah melalui jaringan. Intelligent agent harus dapat mengenali kejadian tertentu, mengartikan kejadian tersebut, dan mengambil tindakan selaku user. Intelligent agent juga dapat diklasifikasikan berdasar fungsinya, yaitu: interface agent dan information agent. Interface agent bertindak sebagai asisten pribadi yang akan menyelesaikan tugas-tugas user. Sedang information agent digunakan mencari informasi untuk user.[1] Agen bergerak nantinya akan banyak digunakan diberbagai sektor karena memiliki berbagai keuntungan. Ada beberapa alasan pendukungnya antara lain [2] 1. mengurangi trafik jaringan karena hanya menggunakan jaringan saat berpindah saja.
App
Service
Host A
RPC Based
Host B
App
Service
Mobile agent-based approach Gbr 1: RPC dan Mobile Agent
2. mengatasi network latency, sistem real time yang kritis, dimana latensi tak dibolehkan, mobile agent memberikan solusi yang baik, karena agen dapat berpindah dari pusat kontroler ke kontroler lokal dan dapat menjalankan program secara langsung di kontroler lokal. 3. enkapsulasi protocols Agen mengkapsulasi protokol untuk mengakomodasi berbagai protocol, sehingga mobile agen dapat berpindah ke remote host dalam rangka membangun “channel” yang didasarkan pada protokol yang dimiliki. 4. asynchronous dan autonomous, agen dapat ditugaskan dan dikirim ke jaringan. Kemudian agen akan independent menjalankan tugas serta beroperasi asinkronous dan outonomos. Agen dapt ditarik kembali (retract) bila peralatan dihubungkan kembali ke jaringan. 5. beradaptasi secara dinamis dengan lingkungan, mobile agent memiliki kemampuan beradaptasi dengan lingkungannya, dan bereaksi otonom untuk merubah lingkungan seperti memperbaiki kondisi lingkungan untuk menyelesaikan suatu permasalahan.
41
App
Service
Send Agent
App
Service
Disconnected App
Service
Reconnect and Return
Gbr 2: asynchronous dan autonomous
6. heterogen, komputer jaringan pada dasarnya heterogen baik software maupun hardware. Mobile agent independent terhadap komputer dan transport layer dan hanya tergantung pada lingkungan eksekusi sehingga agen menyediakan kondisi optimal untuk sistem integrasi. 7. robust dan fault-tolerant, kemampuan bereaksi terhadap situasi tidak menguntungkan dan memiliki toleransi terhadap kesalahan. Bila host akan shutdown, semua agen yang sedang berjalan di host tersebut akan diberitahu dan diberi waktu untuk dispatch dan melanjutkan operasi ke host lain dalam jaringan. 2. AGLET 2.1 Aglet Model Aglet merupakan mobile agent yang cerdas dan gesit berbasis java [2]. Nama aglet diturunkan dari gabungan dua kata agent dan applet [5] dikembangkan oleh lembaga riset IBM, merupakan gabungan object java bergerak yang dapat mempertahankan thread eksekusinya sendiri dan dapat berkomunikasi dengan aglet lainnya. [3] Aglet menggunakan model call-back berbasis pada model delegasi event java. Selama daur hidupnya, aglet menerima berbagai macam event sebagai respon dari aksinya. Sebagai contoh, jika ia dideaktivasi ke suatu media penyimpan yang tetap, event yang persistence terjadi sesaat sebelum deaktivasi. Metoda call-back yang berhubungan dengan on-deactivating didefinisikan sehingga jika ada event aktivasi ke media penyimpan tersebut maka metode tersebut akan beraksi sesaat setelah aktivasi. Selanjutnya aglet dapat menentukan apa yang harus ia lakukan ketika suatu event tertentu terjadi. [3] Aglet berkomunikasi dengan lingkungannya (aglet host) melalui object aglet context. Untuk berinteraksi dengan yang lain, aglet pergi ke aglet proxy. Aglet proxy beraksi sebagai antarmuka dari sebuah aglet dan menyediakan suatu cara untuk mengakses aglet dibelakangnya. Dengan cara ini, aglet proxy menjadi pelindung agen dari agen lain yang tak dikenal. [6]
42
JAVA Journal of Electrical and Electronics Engineering, Vol. 1, No. 1, April 2003
2.2 Pola Hidup Aglet Berikut ini merupakan pola hidup dari suatu aglet mulai dari ia diciptakan sampai dimatikan [2] • Created : Menghasilkan aglet baru : state agen tersebut diinisialisasi, dan thread utamanya mulai dieksekusi. • Cloned : Menghasilkan aglet kembarannya : state saat ini dari agen yang asli diduplikasi pada clonenya, tetapi ia mempunyai ID yang berbeda. • Retracted : Menarik kembali agen yang telah dikirim dari remote host. Kode dan data kembali dengannya. • Deactivated : aglet diperintahkan untuk menghentikan proses eksekusi, kode dan data disimpan pada disk. • Activated : aglet diaktifkan kembali , kode dan data direstore dari disk. • Disposed : aglet dimatikan.
•
•
Agen query diciptakan untuk melakukan pencarian kode saham kemudian membuat file text yang berisi daftar kode saham dan alamat database. Selanjutnya sistem akan melakukan pengambilan data dan mengolah informasi tersebut menjadi grafik moving average.
Server 1 192.168.1.6
Server 2 192.168.1.1
Search Agent informasi koneksi
Search Agent informasi koneksi
Internet (TCP IP)
informasi Search Agent koneksi DatabaseAgent
QueryAgent
Gbr. 3: Aglets lifestyle
Client 192.168.1.2
Gbr. 4: Arsitektur Sistem
3. PERANCANGAN Pada bagian ini akan diterangkan desain sistem keseluruhan. 3.1 Skenario Pada sistem ini client akan mengunjungi suatu agent server yang akan memberikan informasi tentang saham yang diinginkan client. Langkah kerjanya ialah sebagai berikut : • User/client mengisikan login melalui GUI di bagian Client • Agen Database melakukan pengecekan apakah nama login sudah ada atau belum. kalau belum ada akan mengirimkan pesan untuk memasukkan nama login yang lain. • Setelah login diterima maka client memasukkan parameter yang dicari yaitu kode saham dan alamat kemungkinan database berada kemudian client menciptakan agen pencari (search agent). • Agen pencari mulai mencari koneksi dan pindah dari satu rumah agen ke rumah agen lain berdasarkan itinerary. • Agen pencari pulang kembali ke client memberikan informasi daftar rumah agen yang aktif. • Agen database diciptakan berdasarkan daftar rumah agen yang aktif.
3.2 Desain Sistem Proses sistem akan dijelaskan melalui Data Flow Diagram. Context diagram dari sistem informasi saham digambarkan berikut ini. Identitas user Agen Pencarian informasi saham User
kode saham
Sistem informasi saham
Server Saham
informasi saham
Gbr. 5: Diagram kontek sistem
Dari Gambar 5 di atas terlihat bahwa user memberikan informasi dirinya, agen pencari dan kode saham. Pada sistem ini sebenarnya kode saham sudah termasuk dalam agen pencari. Tetapi, untuk pertama kali dan bila user ingin mencari saham yang lain maka user perlu memasukkan variabel tersebut. Sistem akan memberikan informasi saham kepada user yang diberikan melalui agen pencari. DFD level 1 dari sistem ini di gambarkan pada Gambar 6
JAVA Journal of Electrical and Electronics Engineering, Vol. 1, No. 1, April 2003 informasi user
1 pemrosesan informasi customer
data customer
2 pemrosesan informasi saham data saham
T_customer
kode saham
3 verifikasi user dan kode saham
informasi saham
4.1 Implementasi Database Saham Aplikasi ini terdiri dari dua bagian utama yaitu database saham dan aplikasi client-user analisis saham. Mysql digunakan untuk membuat database utama dan untuk melakukan koneksi dengan JAVA menggunakan JDBC-mysql sebagai driver nya, sehingga program dalam bahasa JAVA dapat melakukan query terhadap database.
T_saham
data data saham customer kode saham
4 Analisis Saham
user agent
Gbr. 6: DFD Level1
Dari DFD diatas terlihat ada empat proses dalam sistem ini yaitu : • Pemrosesan informasi client Pada proses ini client memberikan informasi dirinya berupa nama login dan password untuk dapat mengakses data saham. • Pemrosesan informasi saham Pemrosesan informasi saham ini didapat dari jaringan TCP-IP, namun disini digunakan pseudo site. Saat informasi saham diterima sistem, sistem akan melakukan pengecekan apakah data saham yang diterima baru. Jika data baru, akan dilakukan penambahan data saham pada daftar saham. • Proses verifikasi user dan kode saham Pada proses ini, sistem melakukan pengecekan informasi user dan kode saham yang dibawa oleh agen. Sistem melakukan pengecekan informasi saham terlebih dulu. Bila informasi user valid maka dilakukan pengecekan kode saham, bila kode saham valid maka akan dilanjutkan dengan proses predikasi saham • Proses analisis saham Proses ini hanya melakukan perhitungan analisis teknikal dari saham yang diminta user.
4. IMPLEMENTASI Aplikasi ini dibangun dengan menggunakan bahasa JAVA yaitu JDK 1.1.8 keluaran SUN Microsystem. Sedangkan untuk platform pembuatan mobile agent menggunakan API aglet development kit versi 1.1.0 yang dikembangkan oleh IBM dengan framework berbasis JAVA.
Rumah Agen Agen Client
Sistem Client Sistem Analisis
Agen Rumah Agen Client Message Client
Jaringan TCP-IP
Agen Client
Rumah Agen
Agen Client
Rumah Agen
Gbr. 7: Sistem Client
43
4.2 Implementasi User Interface Client Pada aplikasi ini agen yang diciptakan user akan tinggal di server database yang menjalankan agletcontext tahiti. Dengan menggunakan tahiti maka agen yang dispatch dapat dilihat di server bahwa ia sedang berada di tempatnya. Berdasarkan hal-hal tesebut maka tidak dibuat suatu GUI khusus untuk rumah agen pada server. Agar user dapat berinteraksi dengan agennya maka dibuat suatu GUI yang memudahkan user untuk mengatur parameter-parameter yang akan dibawa oleh agen. Agar user dapat menciptakan agennya sendiri maka pada client dibuat suatu rumah agen yang built in dengan sistem analisis saham client. Untuk itu pada client ditambahkan kemampuan server agen yaitu aglet context. Dengan aglet context maka user dapat menciptakan agennya sendiri dan agen dari tempat lain dapat berinteraksi dengan agennya.
5. PENGUJIAN 5.1 Desain Pengujian Untuk melakukan pengujian sistem ini maka dibuat dua buah host agen yang masing-masing memiliki database. Pada database tersebut disiapkan data saham yang masing-masing terpisah sehingga tidak mungkin ada dua saham yang sama berada pada satu database. Pengujian ini dimaksudkan untuk melihat mobilitas agen dan kemampuan client untuk meng-create agen. Untuk mengisi database saham, dibuat suatu program untuk mengisi data saham yang berubah setiap hari sehingga dapat mewakili kasus uji sistem ini. 5.2 Hasil Pengujian Dari hasil pengujian terlihat bahwa agen dapat pergi ke rumah agen sesuai dengan planning yang dituju, hal itu diperlihatkan dengan sampainya agen ke tempat-tempat tujuan rumah agen yang dapat dilihat dari Tahiti dan perubahan alamat pada file text. Hasil pengujian secara lengkap dapat dilihat pada Tabel 1. Sementara tampilan dari hasil pengujian dapat dilihat pada Gambar 8 dan 10. Sementara pada tampilan window client terlihat seperti pada Gambar 9. Agar client dapat menciptakan agen maka pada bagian client diambil sebagian kemampuan server yaitu host agent. Dengan adanya host agent tersebut maka agen dapat diciptakan dan tinggal di client dan mampu menerima pesan-pesan dari agen lain.
JAVA Journal of Electrical and Electronics Engineering, Vol. 1, No. 1, April 2003
44
menerima kode SQL tersebut pengambilan data.
5.3 Evaluasi Pengujian Dari hasil pengujian terlihat bahwa aplikasi ini telah memenuhi kriteria sistem multi agen dan intelligent mobile agent. Mengacu pada definisi yang telah disebutkan sistem ini dapat digolongkan pada sistem : 1. Mobile agent yaitu agen pada aplikasi ini dapat berpindah-pindah antar rumah agen ke rumah agen yang lain. 2. Otonom yaitu agen mampu memonitor lingkungannnya dan mampu bekerja untuk mencapi tujuan yang ditetapkan.
untuk melakukan
Gbr. 9: Tampilan window client
Gbr.10: Tampilan graph pada window client
4. Gbr 8: Tampilan console penciptaan agent
3.
Pada aplikasi ini agen dapat memonitor koneksi database yang aktif dan mengambil data yang diinginkan pengguna. Multi agent, yaitu agen dapat bekerja sama untuk mencapai tujuan yang sama. Pada aplikasi ini ditunjukkan oleh agen query dan agen database. Agen query mengirimkan perintah SQL sesuai apa yang didefinisikan user dan agen database
5.
Fault-tolerant, bila jaringan putus maka agen dapat tinggal di rumah agen dengan tetap menyimpan informasi dan state eksekusi program serta dapat kembali jika koneksi jaringan tersambung. Berdasakan fungsinya, sistem agen ini termasuk intelligent, karena mampu mengenali database server yang aktif maupun tidak, serta dapat melakukan aksi tertentu terhadap kondisi database yang dikunjungi.
Kasus Uji
Tujuan Pengujian
Tombol search
Berhasil tidaknya Create agen
Tabel 1 Hasil yang Diharapkan Agen berhasil diciptakan
Mobilitas agen Perubahan Vektop alamat Tombol Graph
Mengetahui Mobilitas agen Mengetahui perubahan alamat pada file text
Agen berpindah sesuai planning Terjadi perubahan alamat pada file text
Mengetahui keberhasilan koneksi yang dibuat oleh agen DB dan agen query
Berhasil menciptakan graph
Hasil Pengujian
Kesimpulan
Agen berhasil dicreate
Berhasil
Agen pindah sesuai planing perubahan alamat pada file text Graph berhasil diciptakan
Berhasil Berhasil
Berhasil
JAVA Journal of Electrical and Electronics Engineering, Vol. 1, No. 1, April 2003
6. KESIMPULAN Perangkat lunak berbasis agen dapat membantu untuk mengambil informasi dari beberapa lokasi yang terhubung ke jaringan TCP-IP karena kemampuan mobilitasnya. Kemampuan agen membawa kode dan state program membuat perangkat lunak berbasis agen dapat terhindar dari koneksi jaringan yang kurang baik. Bila dibandingkan dengan pengambilan data konvensional seperti RMI dan CORBA, maka kelebihan dari sistem berbasis agen ini ialah mampu menyimpan informasi yang ia dapatkan tanpa terganggu koneksi jaringan. Sifat agen yang otonom juga membantu agen dalam berinteraksi dengan lingkungan sehingga ia dapat bekerja mencari tujuan yang ditetapkan walaupun ia berada pada remote area. Kemampuan agen bekerja sama dengan agen lain membantu developer perangkat lunak membuat sistem multi-agen yang lebih komplek dengan membagi tugas kepada beberapa agen.
PUSTAKA ACUAN [1]
[2]
[3] [4]
[5]
[6] [7] [8]
[9]
Bigus,P.Joseph and Bigus, Jennifer, “Constucting Intelligent Agent Using Java”, second edition, John Wiley & Son, 2001 Danny B. Lange and Mitsuru Oshima, “Programming And Deploying Java Mobile agents With Aglets”, Addison-Wesley, 1998. Feng Zhang, Zhenghao Dong, “A New technique: Agent” Kimble Cheron, Professor Steven A. Demurjian, and Mitch Saba, “Software Agents and Aglets”, Computer Science & Engineering Department, The University of Connecticut. Mahmoud, H Qusay, ”Distributed Programming With Java”, Manning Pub., 2000. Mitsuru Oshima, Guenter Karjoth, and Kouichi Ono, “Aglets Specification 1.1 Draft”, 1998. Murch, Richard and Johnson, Tony, Intelligent Software Agents, Prentice Hall,1998. Sidiq S Hidayat,”Agen Bergerak Berbasis Java”, Tele, edisi April 2002 (Jurnal Ilmiah T.Elektro Politeknik Negeri Semarang). Wooldridge, M.J., Jennings, N.R.: Software Engineering with Agents: Pitfalls and Pratfalls, IEEE Internet Computing, Vol. 3, No. 3, May/June 1999, pp. 20-27 (Journal Paper).
45