Lompat ke isi

Pemrograman berorientasi agen

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Pemrograman berorientasi agen/Agent-oriented programming (AOP) merupakan sebuah paradigma pemrograman, di mana pembuatan perangkat lunak berpusat pada konsep agen perangkat lunak (software agent). Berkebalikan dengan pemrograman berorientasi objek yang memiliki objek (yang menyediakan method dengan variabel parameter) sebagai inti utamanya, AOP yang ditentukan secara eksternal (dengan antarmuka dan kemampuan pesan) sebagai inti utamanya. Agen-agen ini dapat dianggap sebagai abstraksi terhadap objek. Pesan yang ditukarkan diinterpretasikan oleh "agen" penerima, dengan cara yang spesifik untuk setiap kelas agennya

Secara historis, konsep pemrograman yang berorientasi agen dan gagasan untuk memusatkan perangkat lunak terhadap konsep Agen diperkenalkan oleh Yoav Shoham dalam studi kecerdasan buatannya pada tahun 1990.[1][2] Agen-agennya spesifik hanya untuk paradigma miliknya, karena masing-masing hanya memiliki satu metode dengan satu parameter. Seperti yang dikutip dari artikel Yoav Shoham pada tahun 1990 mengenai perbedaan dasar antara AOP dan OOP:

... pemrograman berorientasi agen (AOP), bisa dianggap sebagai spesialisasi dari pemrograman berorientasi objek.

OOP AOP
Unit dasar objek agen
Parameter yang menentukan keadaan unit dasar tidak terikat keyakinan, komitmen, kemampuan, pilihan, ...
Proses komputasi metode pemindahan pesan dan respon metode pemindahan pesan dan respon
Tipe-tipe pesan tidak terikat menginformasikan, meminta, menawarkan, menjanjikan, menolak, ...
Batasan terhadap method tidak ada kejujuran, konsistensi, ...

Kerangka kerja

[sunting | sunting sumber]

Terdapat beberapa kerangka kerja AOP (pemrogaman berorientasi agen), yang juga disebut platform agen, yang mengimplementasikan paradigma pemrograman Shoham. Contoh-contoh berikut ini menunjukkan cara memprogram agen dasar sebagai program hello-world.

Untuk platform Java, salah satu kerangka kerja yang digunakan adalah JADE.[3]

Berikut adalah contoh dasar[4] dari agen yang menjalankan kode.

package helloworld;
import jade.core.Agent;

public class Hello extends Agent {
	
	protected void setup() { 
		System.out.println("Hello World. ");
		System.out.println("My name is "+ getLocalName()); 
	}
	
	public Hello() {
		System.out.println("Constructor called");
	}

}

Inti dari model AOP JADE adalah bahwa antarmuka pemrogramannya (API) mendukung Bahasa Komunikasi Agen FIPA standar.

Agent Speak (Jason)

[sunting | sunting sumber]

AgentSpeak adalah bahasa pemrograman berorientasi agen yang didasarkan pada pemrograman logika dan arsitektur belief-desire-entention (BDI).

Untuk menterjemahkan secara harfiah konsep-konsep berorientasi agen ke dalam skema yang tidak disamarkan seperti JADE, di balik Java dan orientasi objek, Agent Speak[5] (Jason) menyediakan “bahasa alami” untuk agen.

started.

+started <- .print("Hello World. ").

GOAL adalah bahasa pemrograman agen untuk memprogram agen-agen kognitif. Agen-agen GOAL menentukan pilihan tindakan mereka berdasarkan keyakinan dan tujuan mereka. Bahasa ini menyediakan blok-blok dasar untuk merancang dan mengimplementasikan agen-agen kognitif melalui konstruksi pemrograman yang memungkinkan dan memudahkan manipulasi keyakinan dan tujuan agen, serta mengatur proses pengambilan keputusannya. Bahasa ini menyediakan kerangka kerja pemrograman yang intuitif berdasarkan akal sehat atau penalaran praktis.

Bahasa SARL

[sunting | sunting sumber]

SARL[6] menyediakan abstraksi dasar untuk pemrograman sistem multi-agen.[7] Ia menggunakan sintaksis mirip skrip (terinspirasi oleh Scala dan Ruby).

package helloworld
import io.sarl.core.Initialize
agent HelloWorldAgent {
        on Initialize {	
             println("Hello World.")
        }
}

PADE (Python Agent DEvelopment)

[sunting | sunting sumber]

PADE[8] adalah paket Python untuk mengembangkan agen cerdas dalam bahasa Python. Kerangka kerja ini mematuhi standar FIPA dan ACL.

class AgenteHelloWorld(Agent):
    def __init__(self, aid):
        super(AgenteHelloWorld, self).__init__(aid=aid)
        display_message(self.aid.localname, "Hello World!")

Middleware

[sunting | sunting sumber]

Salah satu cara untuk mengimplementasikan dukungan AOP yang modular atau dapat dikembangkan adalah dengan mendefinisikan antarmuka pemrograman aplikasi (API) AOP standar untuk fungsi middleware yang diimplementasikan sebagai agen perangkat lunak. Misalnya, layanan direktori dapat diimplementasikan sebagai FIPA Directory Facilitator atau agen perangkat lunak DF; manajemen lifecyle untuk memulai, menghentikan, menangguhkan, dan melanjutkan agen dapat diimplementasikan sebagai FIPA Agent Management Service atau agen AMS.[9] Keuntungan dari pendekatan AOP adalah bahwa ia mendukung peran yang lebih dinamis antara pengguna dan penyedia aplikasi, layanan, dan jaringan yang berbeda. Misalnya, secara tradisional, jaringan dan layanan biasanya dikelola oleh penyedia jaringan dan layanan atas nama pelanggan dan ditawarkan sebagai layanan jaringan virtual tunggal, tetapi pelanggan sendiri kini semakin berdaya untuk mengintegrasikan dan mengelola layanan mereka sendiri. Hal ini dapat dicapai melalui AOP dan antarmuka pemrograman aplikasi (API) untuk agen middleware yang dapat mengelola komunikasi secara fleksibel dan dinamis.[10]

Referensi

[sunting | sunting sumber]
  1. Shoham, Y. (1990). Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department.
  2. Shoham, Y. (1993). "Agent-Oriented Programming". Artificial Intelligence. 60 (1): 51–92. CiteSeerX 10.1.1.123.5119. doi:10.1016/0004-3702(93)90034-9.
  3. Bellifemine, Fabio; Poggi, Agostino; Rimassa, Giovanni (28). "JADE: a FIPA2000 compliant agent development environment". AGENTS '01: Proceedings of the fifth international conference on Autonomous agents: 216–217. doi:10.1145/375735.376120. ;
  4. "Rootdev". rootdev.nl. Diarsipkan dari asli tanggal 2 July 2011. Diakses tanggal 18 September 2022.
  5. Anand S. Rao, 1996. AgentSpeak(L): BDI Agents Speak Out in a Logical Computable Language. Proceedings of Seventh European Workshop on Modelling Autonomous Agents in a Multi-Agent World (MAAMAW-96).
  6. Rodriguez, Sebastian; Gaud, Nicolas; Galland, Stéphane (2014). "SARL: A General-Purpose Agent-Oriented Programming Language". 2014 IEEE/WIC/ACM International Joint Conferences on Web Intelligence (WI) and Intelligent Agent Technologies (IAT). hlm. 103–110. doi:10.1109/wi-iat.2014.156. ISBN 978-1-4799-4143-8. S2CID 15508257.
  7. SARL website
  8. "Python Agent DEvelopment framework — Pade 1.0 documentation".
  9. Poslad, S (2007). "Specifying Protocols for Multi-agent System Interaction". ACM Transactions on Autonomous and Adaptive Systems. 2 (4): 15–es. doi:10.1145/1293731.1293735. S2CID 9477595.
  10. Poslad, S.; Pitt, J.; Mamdani, A.; Hadingham, R.; Buckle, P. (1999). Hayzelden, A.; Bigham, J. (ed.). Agent-oriented middleware for integrating customer network services. In: Software Agents for Future Communication Systems. hlm. 221–242. doi:10.1007/978-3-642-58418-3_9.