Perancangan dan Implementasi Perangkat Lunak Informasi
Saham Berbasis Intelligent Mobile Agent Menggunakan Aglets
Abdi Suryadinata
1)Sidiq Syamsul Hidayat
2)Bambang
Riyanto
3)1)
PT. ASTRA HONDA-MOTOR, email:abdi.suryadinata@astra-honda.com
2)
Dept. Telekomunikasi,T. Elektro,Politeknik Negeri Semarang, email:dix@s.ee.itb.ac.id
3)
Lab.Sistem Kontrol dan Komputer,Jurusan Elektroteknik Institut Teknologi Bandung, email:briyanto@lskk.ee.itb.ac.id
Abstrak
-
Pencarian informasi di internet seringmemerlukan 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.
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..
____________________________________________ Paper ini telah disajikan pada Seminar of Intelligent Technolgy and Its Applications (SITIA) 2002, ITS Surabaya, 7 May 2002
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
RPC Based
Host A 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.
App Service App Service App Service Send Agent Disconnected 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
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.
Gbr. 3: Aglets lifestyle
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.
• 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.
Gbr. 4: Arsitektur Sistem
3.2 Desain Sistem
Proses sistem akan dijelaskan melalui Data Flow
Diagram. Context diagram dari sistem informasi
saham digambarkan berikut ini.
Sistem informasi saham User Server Saham kode saham Agen Pencarian informasi saham informasi saham Identitas user
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
Client 192.168.1.2 Server 2 192.168.1.1 Server 1 192.168.1.6 Internet (TCP IP) Search Agent Search Agent Search Agent informasi koneksi informasi koneksi informasi koneksi DatabaseAgent QueryAgent
informasi saham 1 pemrosesan informasi customer 2 pemrosesan informasi saham 3 verifikasi user dan
kode saham 4 Analisis Saham T_saham T_customer informasi user data
customerdata saham
kode saham user agent
data
customer data saham kode
saham
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.
Sistem Analisis Rumah Agen Rumah Agen Rumah Agen Rumah Agen Client Jaringan TCP-IP Message Sistem Client Agen Client Agen Client Agen Client Agen Client Gbr. 7: Sistem Client
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.
4.2 Implementasi User Interface Client
Pada aplikasi ini agen yang diciptakan user akan tinggal di server database yang menjalankan aglet-context 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.
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.
Gbr 8: Tampilan console penciptaan agent
Pada aplikasi ini agen dapat memonitor koneksi
database yang aktif dan mengambil data yang
diinginkan pengguna.
3. 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
menerima kode SQL tersebut untuk melakukan pengambilan data.
Gbr. 9: Tampilan window client
Gbr.10: Tampilan graph pada window client
4. 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.
5. 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.
Tabel 1
Kasus Uji Tujuan Pengujian Hasil yang Diharapkan
Hasil Pengujian Kesimpulan Tombol search Berhasil tidaknya Create agen Agen berhasil diciptakan Agen berhasil dicreate Berhasil Mobilitas agen Mengetahui Mobilitas agen Agen berpindah sesuai planning Agen pindah sesuai planing Berhasil Perubahan Vektop alamat Mengetahui perubahan alamat pada file text
Terjadi perubahan alamat pada file text
perubahan alamat pada file
text
Berhasil
Tombol Graph
Mengetahui keberhasilan koneksi yang dibuat oleh agen DB dan agen query
Berhasil menciptakan graph
Graph berhasil diciptakan
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] Bigus,P.Joseph and Bigus, Jennifer, “Constucting Intelligent Agent Using Java”, second edition, John Wiley & Son, 2001
[2] Danny B. Lange and Mitsuru Oshima, “Programming And Deploying Java Mobile
agents With Aglets”, Addison-Wesley, 1998.
[3] Feng Zhang, Zhenghao Dong, “A New technique: Agent”
[4] Kimble Cheron, Professor Steven A. Demurjian, and Mitch Saba, “Software Agents and Aglets”, Computer Science & Engineering Department, The University of Connecticut. [5] Mahmoud, H Qusay, ”Distributed
Programming With Java”, Manning Pub., 2000.
[6] Mitsuru Oshima, Guenter Karjoth, and Kouichi Ono, “Aglets Specification 1.1 Draft”, 1998. [7] Murch, Richard and Johnson, Tony, Intelligent
Software Agents, Prentice Hall,1998.
[8] Sidiq S Hidayat,”Agen Bergerak Berbasis Java”, Tele, edisi April 2002 (Jurnal Ilmiah T.Elektro Politeknik Negeri Semarang).
[9] Wooldridge, M.J., Jennings, N.R.: Software Engineering with Agents: Pitfalls and Pratfalls,
IEEE Internet Computing, Vol. 3, No. 3,