• Tidak ada hasil yang ditemukan

BAB II 2 JAVA, AGENT, JADE, DAN MYSQL

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB II 2 JAVA, AGENT, JADE, DAN MYSQL"

Copied!
21
0
0

Teks penuh

(1)

BAB II

2

JAVA, AGENT, JADE, DAN MYSQL

2.1 JAVA

Java merupakan sebuah bahasa pemrograman tingkat tinggi yang berorientasi objek yang dikembangkan oleh Sun Microsystems. Kemampuannya untuk dijalankan pada berbagai jenis arsitektur komputer dan ketersediannya sebagai perangkat lunak gratis membuat bahasa pemrograman Java lebih banyak dikenal dan digunakan daripada bahasa pemrograman berorientasi objek lainnya.

2.1.1 Sejarah Bahasa Pemrograman Java

Pada tahun 1991, James Gosling dan Patrick Naughton membentuk Green

Project yang bertujuan untuk menemukan cara agar peralatan elektronik dapat saling berkomunikasi satu dengan lainnya. Mereka menyadari bahwa peralatan elektronik konsumen memiliki CPU yang berbeda-beda dan memori yang terbatas. Untuk mengatasi masalah tersebut, James Gosling mulai mengembangkan bahasa pemrograman baru yang diberi nama Oak pada bulan April 1991.

Bahasa pemrograman Oak dibuat berdasarkan bahasa pemrograman C++. Agar Oak dapat digunakan pada peralatan elektronik konsumen, maka James Gosling memangkas fitur-fitur bahasa pemrograman C++ menjadi seminimal mungkin. Selain itu Oak juga memiliki kemampuan untuk berjalan di berbagai jenis CPU.

Pada bulan Agustus 1991, Oak berhasil menjalankan program pertamanya, dan pada Oktober 1992, Green Project berhasil menciptakan *7 (Gambar 2.1) yang berfungsi untuk mengatur berbagai peralatan rumah tangga secara nirkabel.

Karena industri video-on-demand yang menjadi sasaran pemasaran *7 masih merupakan industri yang baru berkembang, maka pasar tanggapan terhadap *7 tidak terlalu baik. Kegagalan tersebut menyebabkan Green Project beralih ke pengembangan aplikasi on-line dan CD-ROM berbasis Oak. Seiring dengan peralihan ini, nama bahasa pemrograman Oak dan GreenProject mengalami perubahan menjadi Java, dan FirstPerson.

(2)

Gambar 2.1. Perangkat *7 dengan user interface eksperimental

Akhirnya pada Maret 1995, FirstPerson meluncurkan Java 1.0a kepada publik dengan slogan WORA (Write Once, Run Anywhere). Setelah peluncuran pertama ini, bahasa pemrograman Java semakin dikenal dan digunakan secara luas. Banyak web browser segera mengimplementasikan kemampuan untuk menjalakan Java applet yang aman. Dengan datangnya Java 2, ditambahkan beberapa konfigurasi untuk menjalankan Java di platform yang berbeda. Sebagai contoh J2EE diperuntukkan bagi aplikasi di tingkat perusahaan, dan J2ME dikhususkan bagi aplikasi pada perangkat bergerak.

2.1.2 Fitur-fitur Bahasa Pemrograman Java

Persyaratan dari bahasa pemrograman Java berasal dari lingkungan komputasi dimana perangkat lunak harus dijalankan. Perkembangan internet dan

World-Wide Web yang pesat telah membawa kita kepada cara baru dalam memandang pengembangan dan pendistribusian perangkat lunak. Oleh sebab itu, teknologi Java harus memungkinkan pengembangan aplikasi yang aman, berkinerja tinggi, dan tangguh yang dapat bekerja pada beberapa platform dalam jaringan yang heterogen dan terditribusi [2].

Persyaratan-persyaratan di atas terdiri dari beberapa kata kunci. Kata-kata kunci tersebut akan dijelaskan dalam sub-sub bab berikut ini [2] [3].

2.1.2.1 Sederhana, Berorientasi Objek, dan Dikenal

Sederhana berarti bahasa pemrograman Java dapat dilakukan tanpa membutuhkan pelatihan pemrogram yang ekstensif. Konsep dasar bahasa pemrograman Java adalah dapat dimengerti dengan cepat, sehingga seorang pemrogram dapat menjadi produktif sejak awal.

(3)

Sistem Java menyediakan platform pengembangan berorientasi objek yang bersih dan efisien agar perangkat lunak dapat berfungsi pada lingkungan jaringan yang semakin rumit.

Pengembangan bahasa pemrograman Java yang menyerupai C++ membuat bahasa pemrograman Java menjadi bahasa yang dikenal. Dengan digunakannya fitur-fitur dari C++, pemrogram dapat berpindah ke Java platform dengan cepat dan segera menjadi produktif.

2.1.2.2 Tangguh dan Aman

Bahasa pemrograman Java dirancang untuk membuat perangkat lunak yang dapat diandalkan. Bahasa pemrograman ini menyediakan pemeriksaan pada proses compile, dan pemeriksaan tingkat kedua di saat menjalankan program.

Teknologi Java dirancang untuk beroperasi di lingkungan yang terdistribusi dimana keamanan menjadi faktor yang sangat penting. Dengan adanya fitur keamanan, teknologi Java memungkinkan pemrogram membangun aplikasi yang tidak dapat diserang dari luar.

2.1.2.3 Tidak Tergantung Arsitektur dan Mudah Dibawa

Teknologi Java dirancang untuk mendukung aplikasi yang akan dijalankan dalam lingkungan jaringan yang heterogen. Pada lingkungan semacam itu, aplikasi harus memiliki kemampuan untuk dieksekusi pada berbagai jenis arsitektur perangkat keras. Di dalam berbagai jenis platform perangkat keras ini, aplikasi harus dapat dieksekusi di atas berbagai sistem operasi dan berkomunikasi dengan berbagai antarmuka bahasa pemrograman.

Ketidak-tergantungan terhadap arsitektur merupakan salah satu bagian dari sistem yang sepenuhnya mudah dibawa. Program yang dibuat dengan bahasa pemrograman Java akan memiliki arti yang sama di setiap platform. Dalam teknologi bahasa pemrograman Java, platform yang tidak tergantung arsitektur dan mudah dibawa dikenal dengan nama Java Virtual Machine.

(4)

2.1.2.4 Berkinerja Tinggi

Kinerja selalu menjadi pertimbangan dalam pemrograman. Java platform mencapai kinerja yang tinggi dengan menggunakan skema dimana interpreter dapat bekerja dengan kecepatan penuh tanpa perlu memeriksa run-time

environment. Sebuah garbage collector bekerja sebagai background thread dengan prioritas rendah untuk memastikan tersedianya memori pada saat dibutuhkan.

2.1.2.5 Interpreted, Threaded, dan Dinamis

Java interpreter dapat mengeksekusi bytecodes secara langsung pada semua jenis peralatan dimana interpreter dan sistem runtime dijalankan. Selain itu teknologi Java juga memiliki kemampuan multithreading yang memungkinkan pemrogram untuk membangun aplikasi dengan banyak aktifitas thread yang berjalan bersamaan.

Jika Java Compiler bersifat ketat dalam pemeriksaan kesalahan, sistem bahasa dan runtime Java bersifat dinamis pada tahap penghubungan. Class hanya dihubungkan seperlunya saja. Modul kode baru dapat dihubungkan sesuai permintaan dari berbagai sumber, termasuk dari sumber antar jaringan.

2.1.3 Java Platform

Sebuah platform adalah lingkungan perangkat keras atau lunak dimana program berjalan [3]. Sebagian besar platform dapat dijelaskan sebagai kombinasi dari sistem operasi dan perangkat keras di bawahnya. Java platform berbeda dari sebagian besar platform lainnya karena hanya terdiri dari perangkat lunak yang berjalan di atas platform perangkat keras lain. Java platform terdiri dari 2 bagian:

• Java Virtual Machine

• Java Application Programming Interface (API)

Pada bahasa pemrograman Java, semua kode sumber pertama-tama ditulis dalam file teks dangan ekstensi .java. Kode sumber tersebut kemudian diterjemahkan ke dalam file .class oleh javac compiler. Sebuah file .class

(5)

bytecodes yang merupakan bahasa dari Java Virtual Machine (Java VM). Urutan proses pengembangan perangkat lunak pada Java diilustrasikan pada Gambar 2.2.

Gambar 2.2. Urutan proses pengembangan perangkat lunak dengan

menggunakan Java

Karena Java VM tersedia pada banyak sistem operasi yang berbeda, maka file .class yang sama dapat dijalankan pada berbagai sistem operasi yang

berbeda. Kemampuan ini diilustrasikan pada Gambar 2.3.

Gambar 2.3. Kemampuan Java untuk menjalankan aplikasi yang sama di

beberapa platform yang berbeda

API merupakan sekumpulan perangkat lunak yang siap digunakan yang menyediakan banyak kegunaan. API dikelompokkan lagi menjadi kumpulan dari

class dan antarmuka yang berhubungan yang disebut package.

Sebagai lingkungan yang tidak tergantung pada platform, Java dapat menjadi sedikit lebih lambat daripada bahasa pemrograman lain. Namun

(6)

perkembangan pada compiler dan virtual machine semakin membawa kinerja

Java mendekati bahasa pemrograman lainnya dengan tidak mengurangi kemudahannya untuk dipindahkan. Susunan dari Java platform ditunjukkan pada Gambar 2.4.

Gambar 2.4. API dan Java Virtual Machine memisahkan program dari perangkat

keras dibawahnya

2.2 PENGERTIAN AGENT

Dalam bidang ilmu komputer, istilah agent atau agent perangkat lunak adalah sebuah perangkat lunak yang bertindak untuk seorang pengguna atau program lainnya dalam hubungan perwakilan [4]. Tindakan sebagai perwakilan dari pangguna atau program lainnya berarti agent memiliki kuasa untuk menentukan apakah tindakannya tersebut benar. Sebuah agent dapat menentukan apakah dirinya akan bekerja sama dengan agent lain, atau berkompetisi untuk mencapai tujuannya sendiri.

Dari konsep di atas, sebuah agent memiliki sifat-sifat sebagai berikut [5]: • otomatis:

Sebuah agent harus dapat bekerja tanpa campur tangan secara langsung dari manusia, dan memiliki kemampuan untuk mengatur keadaan internalnya.

• sosial:

Sebuah agent dapat bekerja sama dengan manusia atau agent lainnya dalam mencapai tujuannya,

• reaktif:

Agent harus dapat mempelajari lingkungannya dan merespon secara berkala terhadap perubahan di lingkungannya,

(7)

• proaktif:

Agent tidak hanya bertindak untuk merespon keadaan lingkungannya, tetapi juga dapat beringkah laku dalam mencapai suatu tujuan dengan mengambil inisiatif,

• bergerak:

Agent dapat memiliki kemampuan untuk berpindah antara simpul yang berbeda pada jaringan komputer,

• rasional:

Agent selalu bertindak untuk mencapai tujuannya dan tidak pernah mencegah pencapaian tujuannya,

• dapat belajar:

Agent dapat menyesuaikan dirinya dengan lingkungannya dan dengan keinginan dari penggunanya.

2.3 JADE

JADE (Java Agent DEvelopment Framework) merupakan sebuah kerangka kerja perangkat lunak yang diimplementasikan sepenuhnya dalam bahasa Java. JADE memudahan implementasi dari Multi-Agent System (MAS) melalui

middle-ware yang bekerja sesuai spesifikasi FIPA (Foundation for Intelligent Physical

Agent).

Karena sepenuhnya diimplementasikan dalam bahasa pemrograman Java, maka JADE juga mendapatkan seluruh keuntungan dari bahasa pemrograman tersebut, termasuk ketidak-tergantungan pada arsitektur platform. Agent platform pada JADE dapat didistribusikan di beberapa mesin yang berbeda, dan tidak perlu menggunakan sistem operasi yang sama.

Secara umum, JADE terdiri dari beberapa bagian, yaitu:

• sebuah runtime environment sebagai tempat hidupnya agent JADE yang harus diaktifkan terlebih dahulu sebelum satu atau lebih agent dapat dijalankan pada sebuah host,

• sekumpulan class (library) yang dapat digunakan oleh para pemrogram dalam mengembangkan agent, dan

(8)

• seperangkat peralatan dengan GUI (Graphical User Interface) untuk mengatur dan memantau aktifitas dari agent yang sedang berjalan.

Salah satu peralatan penting yang disediakan JADE adalah RMA (Remote

Monitoring Agent) dan Introspector Agent. RMA berfungsi untuk mengawasi keadaan semua agent pada platform lokal maupun remote dan menyediakan beberapa pilihan untuk mengubah keadaan dan memindahkan agent. Sedangkan

Introspector Agent berfungsi untuk menampilkan keadaan agent beserta seluruh

behaviour yang aktif, dan pesan yang dikirim dan diterima. Tampilan RMA dan Introspector Agent ditunjukkan pada Gambar 2.5 dan 2.6.

(9)

Gambar 2.6. Tampilan Introspector Agent

2.3.1 Container dan Platform

Setiap bagian dari JADE runtime environment disebut container, karena dapat menampung beberapa agent. Sedangkan sekumpulan container yang aktif disebut platform [5]. Sebuah main container harus selalu aktif di dalam sebuah

platform. Semua container lainnya pada platform yang sama akan mendaftar pada

main container segera setelah semua container tersebut dijalankan. Oleh karena itu, main container harus menjadi container pertama yang dijalankan pada sebuah

platform JADE.

Jika terdapat main container lain yang dijalankan di suatu tempat, maka

main container tersebut akan membentuk pada platform yang berbeda. Agent pada JADE diidentifikasi oleh sebuah nama yang unik, dan dengan mengetahui nama agent lainnya maka agent tersebut dapat saling berkomunikasi meskipun terletak di container maupun platform yang berbeda. Ilustrasi mengenai container dan platform ditunjukkan pada Gambar 2.7.

2.3.2 AMS dan DF

Perbedaan lain yang dimiliki main container dibandingkan dengan

(10)

dijalankan secara otomatis saat main container dijalankan. Kedua agent tersebut adalah AMS (Agent Management System) dan DF (Directory Facilitator).

AMS menyediakan layanan penamaan untuk menjamin keunikan nama dari setiap agent, dan merepresentasikan pihak yang berwenang di dalam sebuah

platform.

DF menyediakan layanan Yellow Pages dimana setiap agent dapat menemukan agent lainnya yang menyediakan layanan yang dibutuhkannya.

Gambar 2.7. Container dan Platform

2.3.3 Agent Class

Membuat sebuah agent pada JADE dapat dilakukan dengan mendefinisikan sebuah class dengan extends jade.core.Agent, dan mengimplementasikan setup() method seperti contoh di bawah ini.

import jade.core.Agent;

public class ContohAgent extends Agent { protected void setup() {

// Mulai inisialisasi agent pada bagian ini }

(11)

Method setup() dimaksudkan untuk menginisialisasi agent. Sedangkan

tugas agent yang sebenarnya terdapat pada behaviour.

2.3.4 Menjalankan agent JADE melalui terminal

Cara menjalankan agent pada platform JADE melalui terminal tidak jauh berbeda dengan cara menjalankan program Java pada umumnya.

Kode sumber dari agent dapat di-compile dengan perintah:

javac –classpath <JADE-CLASSES> ContohAgent.java

dimana ContohAgent.java adalah kode sumber dari agent yang akan dijalankan. Untuk menjalankan agent yang telah di-compile, maka JADE runtime harus dijalankan terlebih dahulu, dan nama dari agent harus dipilih dengan perintah:

java –classpath <JADE-CLASSES>;. jade.Boot agent1:ContohAgent

Perintah di atas menjalankan JADE runtime dan agent ContohAgent dengan nama agent1.

Perintah di atas dapat digabung dengan beberapa perintah tambahan seperti:

• -container

Digunakan untuk membuat container biasa yang akan bergabung dengan

platform yang sudah ada.

• -host <nama/alamat host>

Digunakan untuk menentukan nama host dari main container tujuan.

• -port <nomor port>

Digunakan untuk menentukan nomor port yang digunakan oleh main

container tujuan.

• -local-host

Digunakan untuk menentukan host dimana container ini akan dijalankan. Nilai awalnya adalah localhost.

• -local-port

Digunakan untuk menentukan nomor port dimana container ini dapat dihubungi. Nilai awalnya adalah 1099.

Daftar lengkap mengenai perintah yang dapat digunakan terdapat pada [6] beserta penjelasan masing-masing perintah.

(12)

2.3.5 Agent Behaviour

Sebuah behaviour merepresentasikan tugas yang dapat dilakukan oleh sebuah agent yang diimplementasikan sebagai object dari sebuah class dengan

extends jade.core.behaviours.Behaviour. Method addBehaviour()

digunakan pada agent class untuk menambahkan sebuah behaviour ke daftar tugas yang harus dilakukan oleh sebuah agent. Behaviour dapat ditambahkan setiap saat, baik saat agent baru dijalankan, maupun dari dalam behaviour lain.

Setiap class yang menggunakan behaviour harus mengimplementasikan

method action() yang mendefinisikan kegiatan yang harus dilakukan ketika behaviour tersebut dijalankan. Method done() mengembalikan sebuah nilai

boolean untuk menunjukkan apakah behaviour sudah selesai dijalankan dan

dapat dikeluarkan dari daftar behaviour yang harus dilakukan oleh agent.

Behaviour pada JADE dibagi menjadi 3 jenis utama, yaitu: one-shot

behaviour, cyclic behaviour, dan generic behaviour [5].

2.3.5.1 One-shot Behaviour

Behaviour ini dirancang untuk selesai dalam 1 fase eksekusi, dimana

method action() hanya dieksekusi sekali saja. Pada behaviour ini method done() telah diimplementasikan dengan mengembalikan nilai true.

2.3.5.2 Cyclic Behaviour

Behaviour ini dirancang agar tidak pernah selesai dengan method

action() yang terus menjalankan operasi yang sama secara berulang-ulang. Pada

behaviour ini method done() akan selalu mengembalikan nilai false.

2.3.5.3 Generic Behaviour

Behaviour ini menggunakan pemicu keadaan dan menjalankan operasi yang berbeda tergantung dari nilai keadaannya. Kondisi yang harus dipenuhi diletakkan pada method done() sehingga behaviour ini selesai jika kondisi yang

(13)

2.3.6 Komunikasi Agent

Kemampuan berkomunikasi merupakan salah satu fitur paling penting yang dimiliki oleh agent. Paradigma komunikasi yang digunakan didasarkan pada

asynchronous message passing (Gambar 2.8.), dimana setiap agent memiliki kotak surat (message queue) sebagai tempat JADE runtime meletakkan surat yang dikirim oleh agent lain. Setiap message queue menerima pesan, agent yang bersangkutan akan diberitahu. Tetapi kapan dan bagaimana agent mengambil surat dari message queue ditentukan sepenuhnya oleh pemrogram.

Gambar 2.8. Asynchronous message passing pada JADE

Format pesan yang digunakan pada JADE mengikuti ketentuan yang didefinisikan pada struktur pesan FIPA-ACL (Agent Communication Language). Parameter-parameter yang terdapat pada setiap pesan ACL ditunjukkan pada Tabel 2.1.

Tabel 2.1. Parameter pada pesan ACL Parameter Deskripsi

Performative Jenis tindakan komunikatif dari pesan

sender Identitas dari pengirim pesan

receiver Identitas dari penerima pesan

reply-to Agent yang menjadi tujuan diteruskannya pesan dalam urutan percakapan

content Isi dari pesan

language Bahasa yang digunakan untuk mengekspresikan parameter pada isi

encoding Pengkodean spesifik dari isi pesan

ontology Referensi dari ontology yang memberi arti dai simbol di isi pesan

protocol Protokol interaksi yang digunakan untuk membentuk pecakapan

conversation-id Identitas unik dari sebuah percakapan

reply-with Ekspresi yang digunakan oleh agent yang merespon untuk mengidentifikasi

pesan

in-reply-to Referensi dari kegiatan sebelumnya yang menjadi penyebab pesan balasan

(14)

2.3.6.1 Mengirim Pesan

Mengirim pesan kepada agent lain dilakukan dengan mengisi parameter yang terdapat pada objek ACLMessage, dan memanggil method send() dari class Agent. Contoh kode yang digunakan untuk mengirimkan pesan adalah sebagai berikut:

ACLMessage pesan = new ACLMessage(); pesan.setPerformative(ACLMessage.INFORM);

pesan.addReceiver(new AID(“AgentTujuan”, AID.ISLOCALNAME)); pesan.setContent(“Isi Pesan”);

send(pesan);

2.3.6.2 Menerima Pesan

Sebuah agent dapat mengambil pesan yang tedapat dalam message queue dengan menggunakan method receive(). Method ini mengembalikan pesan

pertama yang terdapat di dalam message queue, atau null jika tidak terdapat pesan.

ACLMessage terima = receive(); If (terima != null) {

// Proses pesan yang diterima }

2.3.6.3 Memilih Pesan dari Message Queue

Sebuah agent dapat memilih pesan yang akan diambil dari message queue dengan menggunakan template bersama dengan method receive(). Ketika

sebuah template ditentukan, maka method receive() akan mengembalikan pesan pertama yang sesuai dengan template, dan membiarkan pesan yang lain yang tidak sesuai. Template untuk menerima pesan diimplementasikan sebagai objek dari

classjade.lang.acl.MessageTemplate yang menyediakan sekumpulan method untuk membentuk template secara sederhana dan fleksibel.

Contoh di bawah ini mengaplikasikan template untuk menerima pesan dengan performative CFP, dan membiarkan pesan-pesan lainnya:

Private MessageTemplate mt =

(15)

Public void action() {

ACLMessage terima = myAgent.receive(mt); if (terima != null) {

// Pesan CFP diterima dan diproses }

else {

block(); }

}

2.3.7 Layanan Yellow Pages

Layanan yellow pages pada JADE memungkinkan agent untuk menemukan agent lain yang tersedia pada suatu saat secara dinamis.

2.3.7.1 Agent DF

Layanan yellow pages memungkinkan agent untuk mengumumkan deskripsi dari satu atau lebih layanan yang disediakannya agar dapat ditemukan dan digunakan oleh agent lain.

Setiap agent dapat mengumumkan layanannya dan mencari layanan yang disediakan oleh agent lain. Pendaftaran, pembatalan, perubahan, dan pencarian dapat dilakukan setiap saat selama agent hidup.

Layanan yellow pages pada JADE disediakan oleh sebuah agent khusus, yaitu DF (Directory Facilitator). Setiap platform JADE harus memiliki sebuah

agent DF awal dengan nama ‘df@<nama-platform>’. Agent DF lainnya dapat dijalankan jika dibutuhkan, dan beberapa agent DF dapat disatukan untuk menyediakan katalog yellow pages tunggal.

2.3.7.2 Berinteraksi dengan DF

Karena DF merupakan agent, maka DF dapat berkomunikasi dengan agent lainnya dengan saling bertukar pesan ACL. Untuk mempermudah proses interaksi ini, JADE menyediakan jade.domain.DFService class yang memungkinkan

(16)

2.3.7.3 Mengumumkan layanan

Sebuah agent yang ingin mengumumkan layannya harus menyediakan AID, daftar layanannya, dan, jika diperlukan, juga daftar bahasa dan ontology yang harus digunakan oleh agent lain untuk berinteraksi dengannya.

Untuk mengumukan layanan, agent harus membuat deskripsi yang sesuai dan memanggil static method register() dari DFService class. Contoh

pengumuman layanan ditunjukkan pada kode di bawah ini:

protected void setup() {

DFAgentDescription dfd = new DFAgentDescription(); dfd.setName(getAID());

ServiceDescription sd = new ServiceDescription(); sd.setType(“Jenis Layanan”); sd.setName(“Nama Layanan”); dfd.addService(sd); try { DFService.register(this, dfd); }

catch (FIPAException fe) { fe.printStackTrace(); }

Saat agent diberhentikan, layanan yang terdaftar pada DF harus diberhentikan. Contoh kode untuk pemberhentian pengumuman layanan adalah sebagai berikut:

protected void takedown() { try {

DFService.deregister(this); }

catch (FIPAException fe) { fe.printStackTrace(); }

2.3.7.4 Mencari layanan

Sebuah agent yang ingin mencari layanan harus menyediakan deskripsi layanan kepada DF berupa template. Hasil dari pencarian adalah daftar semua deskripsi yang sesuai dengan template.

(17)

Static method search() dari DFService class dapat digunakan seperti

pada contoh berikut:

private Vector daftarAgent; protected void setup() {

addBehaviour(new TickerBehaviour(this, 60000) { protected void onTick( {

DFAgentDescription template = new DFAgentDescription();

ServiceDescription sd = new ServiceDescription(); sd.setType(“Jenis Layanan”);

template.addService(sd); try {

DFAgentDescription[] hasil = DFService.search(myAgent, template);

daftarAgent.clear();

for (int I = 0; I < hasil.length; ++i) {

daftarAgent.addElement(hasil[i].getName()); }

}

catch (FIPAException fe) { fe.printStacktrace(); }

} }); }

Pada contoh di atas, mekanisme pencarian layanan dilakukan pada class

TickerBehaviour, sehingga pencarian dilakukan secara berulang-ulang pada selang waktu yang telah ditentukan.

2.4 MYSQL

MySQL merupakan sebuah relational database management system (RDBMS) yang mendukung multi-thread, multi-user, dan SQL (Structured Query

Language) database server [7].

MySQL dimiliki dan disponsori oleh perusahaan MySQL AB yang merupakan bagian dari Sun Microsystems. Kode sumber dari proyek MySQL

(18)

tersedia di bawah lisensi GPL (GNU General Public License), dan berbagai perjanjian proprietary lainnya.

2.4.1 Konsep Relational Model

Konsep relational model pertama kali diusulkan oleh Dr. Edgar F. Codd pada tahun 1970. Model ini kemudian dijelaskan dalam 12 peraturan yang dikenal dengan nama Codd’s Twelve Rules.

Sebuah database management system (DBMS) yang ideal akan memenuhi semua peraturan tersebut. Tetapi, pada saat melakukan perancangan database, peraturan yang dianggap paling penting adalah peraturan pertama dan kedua saja [8]. Di bawah ini dijelaskan ringkasan dari kedua peraturan tersebut.

1) Peraturan 1

Peraturan ini menyatakan bahwa data terletak di dalam tabel-tabel. Sebuah tabel mengelompokan informasi mengenai subyek tertentu. Baris mendeskripsikan informasi mengenai sebuah hal, sedangkan kolom mendeskripsikan karakteristik dari setiap hal. Perpotongan antara baris dan kolom berisi sebuah nilai dari atribut spesifik sebuah hal tunggal.

2) Peraturan 2

Data tidak diambil atau direferensikan oleh lokasi fisik. Data harus diperoleh dengan mereferensikan tabel, key yang unik, dan satu atau beberapa nama kolom.

2.4.2 Instalasi MySQL Community Server

Untuk menjalankan MySQL Community Server sebagai service pada

Windows dilakukan dengan membuat sebuah file konfigurasi dengan nama

my.ini, atau menggunakan file konfigurasi awal yang sudah disediakan oleh

MySQL. Untuk memudahkan proses instalasi, masukkan lokasi folder bin pada direktori mysql ke dalam PATH pada environment variable Windows.

Setelah file konfigurasi ditentukan, masukkan perintah:

(19)

Setelah server MySQL ter-install sebagai service, maka server MySQL akan dijalankan secara otomatis setiap kali sistem operasi dijalankan. Server MySQL sebagai service dapat dihentikan dengan menggunakan perintah:

mysqld --remove.

Untuk mengakses server MySQL dengan menggunakan command prompt, dapat digunakan perintah:

mysql -u <user> -p <password>.

2.4.3 MySQL Administrator

MySQL Administrator merupakan sebuah program tambahan yang disediakan oleh MySQL untuk mempermudah pengawasan dan pengaturan lingkungan MySQL dengan menampilkan data secara grafis. Tampilan dari MySQL Administrator ditunjukkan pada Gambar 2.9.

Gambar 2.9. Tampilan MySQL Administrator

MySQL Administrator juga menyertakan MySQL Query Browser yang berguna untuk memasukkan, membaca, dan mengubah hasil query MySQL secara grafis. Tampilan MySQL Query Browser ditunjukkan pada Gambar 2.10.

(20)

Gambar 2.10. Tampilan MySQL Query Browser

2.4.4 JDBC

JDBC (Java Database Connectivity) merupakan API untuk bahasa pemrograman Java yang mendefinisikan cara megakses database. JDBC menyediakan beberapa method untuk mengambil dan mengubah data di dalam

database.

2.4.4.1 Menghubungkan Java dengan MySQL

Untuk menghubungkan Java dengan MySQL, dibutuhkan driver

Connector-J yang disediakan oleh MySQL. Sampai tulisan ini dibuat,

Connector-J sudah tersedia sampai versi 5.2 secara gratis.

Mendefinisikan driver Connector-J dapat dilakukan dengan menggunakan perintah:

Class.forName(“com.mysql.jdbc.driver”).newInstance();

Hubungan antara Java dengan MySQL direpresentasikan sebagai objek dari Connection class pada paket java.sql. Objek Connection dapat diinisialisasi dengan menggunakan perintah:

Connection conn =

DriverManager.getConnection(url,username,password);

(21)

2.4.4.2 Connection pooling

Proses inisialisasi dan autentikasi hubungan pada MySQL memakan waktu yang cukup lama, sehingga dapat menurunkan kinerja pada sistem yang banyak melakukan akses terhadap database MySQL.

Untuk mengatasi masalah tersebut dapat digunakan connection pooling.

Connection pooling merupakan teknik pemrograman yang menggunakan sebuah penampungan yang berisi objek-objek dari Connection class yang telah diibuat

sebelumnya. Setiap program yang ingin mengakses database dapat mengambil objek Connection dari penampungan. Dengan cara ini waktu yang diperlukan

untuk proses inisialisasi dan autentikasi saat pembentukan objek Connection

dapat dihilangkan. Prinsip kerja connection pooling diiliustrasikan pada Gambar 2.11.

Gambar

Gambar 2.1. Perangkat *7 dengan user interface eksperimental
Gambar 2.3. Kemampuan Java untuk menjalankan aplikasi yang sama di  beberapa platform yang berbeda
Gambar 2.4. API dan Java Virtual Machine memisahkan program dari perangkat  keras dibawahnya
Gambar 2.5. Tampilan Remote Monitoring Agent
+7

Referensi

Dokumen terkait

Klub Surabaya Fever telah mengakui atletnya sebagai aset namun belum melakukan sesuai standar yang berlaku maupun menggunakan konsep akuntansi sumber daya manusia.. Akuntan

Perancangan ini bertujuan untuk menciptakan sebuah fasilitas pusat pelatihan tata rias dan rambut yang mampu melayani berbagai kebutuhan para siswa dan siswi serta

legal, juga akan berperan penting dalam upaya mencegah terjadinya peredaran rokok ilegal tersebut. Berdasarkan uraian latar belakang yang telah disampaikan di atas, maka

Definisi Pengelolaan Sumberdaya Hutan adalah kegiatan yang meliputi penyusunan rencana pengelolaan sumberdaya hutan, pemanfaatan sumberdaya hutan dan kawasan hutan,

Murabahah adalah suatu skema jual beli antara penjual dan pembeli atau dalam dunia perbankan antara bank dan nasabah, dimana nasabah ingin membeli suatu barang kepada

Fokus utama dalam penelitian ini adalah memahami dan menganalisis bagaimana pembagian kelas sosial pada masyarakat nelayan, dan untuk mengetahui faktor yang

[r]