Deployment HASIL DAN PEMBAHASAN 4.1.

10. Pemilihan bahasa implementasi JADE menyediakan aplikasi untuk pengkodean yaitu bahasa SL dan bahasa LEAP. Bahasa SL merupakan bahasa yang mudah dibaca oleh manusia sedangkan bahasa LEAP adalah bahasa konten yang tidak dapat dibaca oleh manusia. Bahasa LEAP biasa digunakan untuk sistem dengan penggunaan piranti bergerak, misalnya telepon selular sedangkan SL adalah bahasa yang dapat digunakan untuk implementasi sistem yang akan diterapkan dengan kemampuan komputer yang tinggi. Dalam SPK investasi multiagen, bahasa SL lebih cocok untuk diterapkan dalam pengkodeannya. Selengkapnya, untuk implementasi dapat digunakan kelas Slcodec yang telah disediakan Fabio, 2008.

4.4. Deployment

Tahapan implementasi dilakukan dengan memetakan hasil rancangan yang diperoleh ke dalam kode program. Program aplikasi yang digunakan adalah JADE versi 3.6 API dengan standar FIPA. Menurut Arenas 2003 tahapan implementasi dapat dimulai dengan pendefinisian arsitektur sistem dan antar muka pengguna. Berdasarkan dua tahapan awal yang telah ditentukan, maka dapat didefinisikan arsitektur sistem. Arsitektur sistem untuk SPK investasi biodisel multiagen adalah sebagai berikut Gambar 24: Gambar 24 Arsitektur SPK investasi biodisel multiagen Aplikasi teknis produksi Aplikasi penentu ketersediaan sumberdaya dan pasar Agen Penyedia data dan bahan Agen Manajemen Agen DM DM DM Agen Directory Facilitator Berdasarkan arsitektur yang telah didefinisikan maka dapat dijabarkan bahwa ke semua agen yang telah didefinisikan dalam dua tahapan utama menempati posisi sesuai dengan tingkat interaksi yang dilakukan. Agen penyedia data dan model berinteraksi dengan aplikasi pendukung yang memberikan data untuk sub model pembentuk SPK. Agen DM berfungsi melakukan komunikasi dengan DM sebagai end user dalam memberikan masukan dan mendapatkan hasil berupa penjelasan hasil inferensi yang diberikan oleh agen manajemen maupun agen penyedia data dan model. Sebagai pengatur tiap layanan yang diberikan agen diserahkan kepada agen fasilitator direktori, Dalam tahapan deployment pengaplikasian arsitektur yang telah didefinisikan dalam platform JADE dapat diawali dengan tahapan berikut ini : 1. Membuat agen Tipe agen dapat dibuat dengan memperluas kelas jade.core.Agent dan mendefinisikan kembali metode setup. Tiap instance agen diidentifikasikan oleh sebuah Agent Identifier AID yang terdapat dalam kelas jade.coreAID. Dalam AID terdapat nama yang unik dan alamat agen. Sebuah agen dapat mengambil AID yang dimilikinya melalui metode kelas agen getAID. Potongan kode di bawah ini menunjukkan pengambilan agen melalui AID dan nama agen yang telah didefinisikan dalam jade.core.Agent. Pendefinisian nama agen dengan AID dapat dilakukan dengan format sebagai berikut : – AID id = new AIDlocalname, AID.ISLOCALNAME; – AID id = new AIDname, AID.ISGUID Sesuai dengan siklus hidupnya, agen mencapai status berakhir, maka pendefinisian status berakhir terminate dapat dibuat dalam kode program sebagai berikut : import jade.core.Agent; public class AgenDM extends Agent { protected void setup { System.out.println“AgenDM: “ + getAID. getName; } } 2. Mendefinisikan tugas agen Terdapat kelas dalam JADE yang mendefinisikan kelas behaviour internal. Untuk pendefinisian kelas OneShotbehaviour dan CyclicBehaviour dapat dikodekan sebagai berikut : Behaviour dalam agen dapat didefinisikan melalui kelas jade.core.behaviours.Behaviour. Untuk membuat sebuah agen dapat mengeksekusi tugas tertentu, maka perlu dibuat instance yang berkaitan dengan sub kelas behaviour tersebut dan memanggil metode addBehaviour pada kelas Agen. Tiap sub kelas harus dapat mengimplementasikan - Public void action - Public boolean done 3. Menentukan komunikasi agen protected void takeDown { System.out.println“The agent “+getAID.getName+” terminating.”; } import jade.core.; import jade.lang.acl.; import jade.core.behaviours.; public class MyOneShotBehaviour extends OneShotBehaviour { public void action { melakukan operasi X } } import jade.core.; import jade.lang.acl.; import jade.core.behaviours.; public class MyCyclicBehaviour extends CyclicBehaviour { public void action { melakukan operasi Y } } Dalam melakukan interaksi dan berkomunikasi, agen melakukan pengiriman dan penerimaan pesan. Dalam pengiriman pesan kode yang diperlukan adalah sebagai berikut : Dalam SPK multiagen inivestai biodisel, user agen DM dapat mengirimkan teks atau pesan kepada user lain, misalnya user agen DM bidang sumberdaya dapat mengirimkan hasil CPO kepada user agen DM bidang produksi.vPenerimaan pesan dapat dikodekan sebagai berikut : Dalam komunikasi antar agen juga didefinisikan protokol interaksi. Dalam SPK multiagen investasi biodisel digunakan protokol interaksi sebagai berikut : 1. FIPA Propose Dalam protokol ini agent dapat berlaku sebagai inisiator atau responder. Sebagai inisiator, maka behaviour yang dapat digunakan adalah ProposeInitiator yang terdapat di dalam kelas AchieveREInitiator. public void action { ACLMessage msg = new ACLMessageACLMessage.INFORM; msg.addReceivernew AIDagentName, AID.ISLOCALNAME; msg.setContent“…”; myAgent.sendmsg; } public void action { ACLMessage msg = AgentDM.receive; if msg = null { pesan diterima,akan diproses String content = msg.getContent; jika memerlukan balasan ACLMessage reply = msg.createReply; reply.setPerformativeACLMessage.INFORM; reply.setContent“…”; ... } else { block; } } Dalam protokol ini, perlu diperhatikan masa waktu apabila tidak terdapat respon dari responder. Besaran masa waktu dapat diberikan melalui pengiriman parameter reply-by dalam pesan ACL yang dilewatkan oleh agen. Sebagai responder, behaviour yang dapat digunakan adalah ProposeResponder. Dalam behaviour ini perlu diperhatikan pesan yang tepat yang dikirimkan sebagai argumen konstruktornya. 2. FIPA-Contract Net Seperti FIPA-propose, dalam FIPA-Contract Net, agen dapat berlaku sebagai inisiator ataupun responder. Sebagai inisiator, maka behaviour yang digunakan adalah ContractNetInitiator yang terdapat dalam kelas AchieveREInitiator. Bila agen berlaku sebagai responder, maka behaviour yang dapat digunakan adalah ContractNetResponder. 3. FIPA-Request Dalam melakukan penerimaan dan pengiriman pesan, maka agen perlu melewatkan argumen. Pengiriman dan penerimaan pesan dapat dilakukan dengan membuat objek ACLmessage dan memanggil metode send dari kelas agen. Metode receive dari kelas agen dipanggil ketika agen akan menerima pesan. Potongan kode yang dapat digunakan dalam melewatkan argumen adalah seperti yang disajikan pada Gambar 24. 4. Interaksi dengan Agen Fasilitator Direktori Agent Fasilitator Direktori FD adalah agen yang mengatur registrasi dan pencarian layanan. Komunikasi yang digunakan agen FD adalah menggunakan ACL. Ontologi dan bahasa yang dimengerti oleh FD adalah sesuai dengan standardisasi FIPA. Dalam JADE, terdapat kelas jade.domain.DFService yang menyediakan metode yang menyediakan fasilitas interaksi dengan FD. Metode tersebut di antaranya : register,modify.geregister,search. Dalam SPK investasi multiagen, agenFD kemudian dapat mengatur layanan yang disediakan oleh agen untuk digunakan oleh agen lain. Sebagai contoh, user agen ketersediaan sumberdaya dapat mencari layanan yang disediakan oleh agen penyedia data dan model untuk menentukan apakah sumberdaya yang tersedia memenuhi pasar biodisel. Pencarian dapat dilakukan melalui definisi ontologi dengan konsep parameter dan model. Ketika agen melakukan registrasi layanan dalam agen FD, maka agen tersebut harus menggunakan deskripsi yang dapat diimplementasikan dengan kelas jade.domain.FIPA-AgentMAnagement.DFAgentDescription. Deskripsi yang termasuk di dalamnya adalah tipe layanan, nama layanan, bahasa, ontologi dan protokol interaksi.

4.5. Analisis Sistem