PM-UMM-02-03/L1informatika.teknik.ummgl.ac.id/wp-content/uploads/2019/... · 2019-10-20 · 4....

64
MODUL PRAKTIKUM DISTRIBUTED SYSTEM - KPT0502323 Disusun Oleh : Mukhtar Hanafi, ST., M. Cs NIDN : 057508191 PM-UMM-02-03/L1 PROGRAM STUDI TEKNIK INFORMATIKA (D3) FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MAGELANG TAHUN 2018

Transcript of PM-UMM-02-03/L1informatika.teknik.ummgl.ac.id/wp-content/uploads/2019/... · 2019-10-20 · 4....

MODUL PRAKTIKUM

DISTRIBUTED SYSTEM - KPT0502323

Disusun Oleh : Mukhtar Hanafi, ST., M. Cs

NIDN : 057508191

PM-UMM-02-03/L1

PROGRAM STUDI TEKNIK INFORMATIKA (D3)

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MAGELANG

TAHUN 2018

i

HALAMAN JUDUL

MODUL PRAKTIKUM

DISTRIBUTED SYSTEM - KPT0502323

Disusun Oleh : Mukhtar Hanafi, ST., M. Cs

NIDN : 057508191

PM-UMM-02-12/L1

Dibiayai dengan Dana Operasional Pengembangan Pendidikan (DOPP)

Program Studi Teknik Informatika (D3)Tahun Akademik 2018/2019

PROGRAM STUDI TEKNIK INFORMATIKA (D3)

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MAGELANG

TAHUN 2018

iii

KATA PENGANTAR

Alhamdulillah segala puji bagi allah swt. yang telah melimpahkan kekuatan dan

hidayahnya sehingga penyusunan modul praktikum Distributed System - KPT0502323 dapat

diselesaikan sesuai dengan jadwal yang telah direncanakan.

Modul praktikum ini disusun untuk mendukung pencapaian kompetensi matakuliah

distributed system melalui praktik di laboratorium. Mahasiswa dipandu untuk mempelajari dan

menguasai teknik sistem terdistribusi untuk mendukung pengembangan aplikasi berbasis web.

Namun penyusun menyadari masih banyak kelemahan dan kekurangan dari modul ini.

Kritik dan saran yang sifatnya membangun sangat diharapkan oleh penyusun demi lebih

baiknya modul praktikum pada masa yang akan datang.

Magelang, Agustus 2018

Penyusun

TATA TERTIB PRAKTIKUM

1. Penggunaan laboratorium komputer disesuaikan dengan jadwal yang telah

ditentukan

2. Peralatan laboratorium yang dipakai dalam praktikum, menjadi tanggung jawab

mahasiswa, oleh karenanya harus hati-hati dalam mempergunakannya

3. Hubungi laboran jika terjadi gangguan komputer laboratorium

4. Dilarang mengubah setingan komputer atau menginstal aplikasi apapun didalam

komputer laboratorium

5. Dilarang bermain game, membuat gaduh atau merusak fasilitas laboratorium

6. Dilarang membawa keluar peralatan laboratorium tanpa seijin laboran atau

asisten

7. Selesai melaksanakan praktikum, tempat kerja tempat kerja harus dibersihkan dan

dirapikan kembali, serta alat-alat yang selesai digunakan dikembalikan pada

tempatnya.

Kepala Laboratorium

Bambang Pujiarto, S.Kom, M.Kom

v

DAFTAR ISI

HALAMAN JUDUL ................................................................................................................... i

PENGESAHAN ......................................................................................................................... ii

KATA PENGANTAR ............................................................................................................... iii

TATA TERTIB PRAKTIKUM ................................................................................................. iv

DAFTAR ISI .............................................................................................................................. v

Modul I Stream ........................................................................................................................... 1

1. Program dalam java melakukan operasi I/O dengan menggunakan Streams .................. 1

2. Byte Stream ..................................................................................................................... 3

3. Contoh Program ............................................................................................................... 5

4. Tugas di laboratorium ...................................................................................................... 6

5. Tugas praktikum .............................................................................................................. 7

Modul II Thread ......................................................................................................................... 8

1. Contoh Program : .......................................................................................................... 10

2. Tugas di laboratorium : ................................................................................................. 11

3. Tugas praktikum : .......................................................................................................... 11

Modul III Thread ..................................................................................................................... 12

1. Menghentikan Thread .................................................................................................... 12

2. Menentukan Prioritas ..................................................................................................... 13

3. Method isAlive() dan Join() .......................................................................................... 14

4. Tugas di laboratorium : ................................................................................................. 15

5. Tugas praktikum : .......................................................................................................... 15

Modul IV Internet Adressing .................................................................................................... 16

1. Contoh program : ........................................................................................................... 17

2. Tugas di laboratorium : ................................................................................................. 18

3. Tugas praktikum : .......................................................................................................... 18

Modul V SOCKET ................................................................................................................... 19

1. Transmission Control Protocol (TCP) ........................................................................... 19

2. User Datagram Protocol (UDP) ..................................................................................... 22

3. Contoh Program : .......................................................................................................... 23

4. Tugas di laboratorium : ................................................................................................. 24

vi

5. Tugas Praktikum : .......................................................................................................... 25

Modul VI Socket MultiClient .................................................................................................. 25

1. Tugas di Laboratorium : ................................................................................................ 27

2. Tugas Praktikum : .......................................................................................................... 27

Modul VII JADE (Java Agent Development Framework) ....................................................... 28

1. Prinsip Kerja JADE ....................................................................................................... 28

2. Behaviour ...................................................................................................................... 32

3. Tugas Praktikum : .......................................................................................................... 33

Modul VIII Komunikasi Antar Agent ...................................................................................... 34

1. Pengiriman Pesan .......................................................................................................... 34

2. Penerimaan Pesan .......................................................................................................... 35

3. Tugas di laboratorium : ................................................................................................. 37

4. Tugas praktikum : .......................................................................................................... 37

Modul IX Message Template ................................................................................................... 38

1. Pengiriman Pesan .......................................................................................................... 38

2. Tugas di laboratorium : ................................................................................................. 41

3. Tugas praktikum : .......................................................................................................... 42

Modul X Agent Lanjut ............................................................................................................. 43

1. Container ....................................................................................................................... 43

2. Tugas di laboratorium : ................................................................................................. 45

3. Tugas praktikum : .......................................................................................................... 45

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………… 1

Modul I Stream

Bahasan : IO Stream

Sasaran : ­ Konsep dari stream

­ Char Stream and Byte Stream (basic IO operation)

Materi :

1. Program dalam java melakukan operasi I/O dengan menggunakan Streams

Streams sendiri adalah adalah abststraksi dari sesuatu yang digunakan untuk

menulis atau menghasilkan dan membaca atau mendapatkan suatu informasi.

Secara umum Stream dalam java dibagi dalam dua bagian besar yaitu Byte Stream dan

Character Stream. Byte Stream sangat cocok untuk digunakan untuk operasi I/O data

biner (byte). Sedangkan Character Stream digunakan untuk menangani operasi I/O

yang menggunakan karakter. Dalam beberapa kasus, seperti menangani operasi I/O

yang menulis dan membaca data yang berupa String, penggunaan character Stream ini

lebih effisien. Semua kelas dan interface yang berhubungan dengan Stream ada dalam

package java.io.*.

Table I.1 Daftar beberapa class ber­type byte Streams

class Deskripsi

BufferedInputStream Byte input Stream yng menggunakan buffer

BufferedOutputStream Byte output Stream yng menggunakan buffer

ByteArrayInputStream Byte input stream yang membaca dari array

bertype byte (InputStream)

ByteArrayInputStream Byte output stream yang menulis ke array bertype

byte (OutputStream)

DataInputStream Byte input stream yang memiliki method untuk

membaca input yang bertype data standart Java.

DataOutputStream Byte output stream yang memiliki method untuk

menuliskan output yang bertype data standart

Java.

FileInputStream Byte input stream yang membaca dari file.

FileOutputStream Byte output stream yang menuliskan ke file.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………… 2

PrintStream Byte output Stream yang menambahkan method

untuk memudahkan proses menulis ke suatu output.

Method yang ditambahkan adalah print() dan

println(). Object yang referensinya dipegang

oleh Sytem.out juga bertipe PrintStream.

Tabel I.2 Daftar beberapa class bertipe Character Streams.

Class Deskripsi

BufferedReader Input character stream yang menggunakan

buffer.

BufferedWriter Output character stream yang menggunakan

buffer.

CharArrayReader Input character Stream yang membaca dari

array bertipe Char.

CharArrayWriter Output character Stream yang menulis ke

array bertipe Char.

FileReader Input character stream yang membaca dari

file.

FileWriter output character stream yang menulis ke file.

InputStreamReader Input stream yang mengkonversi dari byte ke

char

OutputStreamWriter Output stream yang mengkonversi dari char

ke byte

PrintWriter

Output karakter stream yang menambahkan

method untuk memudahkan proses menulis ke

suatu output. Method yang di tambahkan

yaitu print() dan println().

StringReader Input character Stream yang membaca dari

String

StringWriter Output character stream yang menulis ke

String

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………… 3

2. Byte Stream

Class yang mengimplentasikan byte Stream merupakan turunan dari OutputStream.class dan

InputStream.class. Secara umum cara penggunaan class tersebut adalah sama. Secara dasar perlu

diketahui method yang dideklarasikan oleh superclass InputStream dan OutputStream untuk

dapat menggunakan class – class tersebut. Berikut ini dalah daftar method yang dideklarasikan

oleh kedua superclass tersebut :

Table I.3 Daftar method yang didefinisikan oleh class InputStream.

Method Fungsi

Int available() Mengembalikan jumlah byte yang dapat

dibaca / dikembalikan oleh InputStream ini

Void close()

Menutup InputStream dan membebaskan semua resource yang berhubungan dengan Stream ini.

Void mark(intmreadLimit) Menandai posisi saat ini dalam InputStream yang akan tetap valid hingga sebuah ReadLimit byte dibaca.

Boolean markSupported() Mengembalikan nilai true jika stream ini mendukung method mark() dan reset().

Int read() Membaca sejumlah byte berikutnya dari InputStream, dan mengembalikan nilainya sebagai integer.

Int read(byte [] b) Membaca sejumlah byte dari InputStream meletakkannya ke dalam buffer array b dan mengemblikan jumlah byte yang berhasil dibaca.

Int read(byte [] b, int offset,

int length)

Membaca sejumlah byte dari InputStream meletakkannya ke dalam buffer array b mulai dari posisi offset (b[off]) dan mengemblikan jumlah byte yang berhasil dibaca.

Void reset() Mengembalikan posisi pembacaan stream ke posisi dimana terakhir kali method mark() dipanggil.

Long skip() Mengacuhkan / melompati (skip) sejumlah n byte dari InputStream.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………… 4

Tabel I.4 Daftar method yang didefiniskan oleh class OutputStream.

Method Fungsi

Void close()

Menutup OutputStream dan membebaskan

semua resource yang behubungan dengan

stream ini.

Void flush() Mengosongkan buffer dan menuliskan semua

output ke tujuannya.

Void write(byte [] b) Menuliskan isi array ke OutputStream.

Void write(byte [] b, int

offset, int length)

Menuliskan isi array ke OutputStream mulai

dari posisi offset sebanyak length

Abstract void write(int b) Menuliskan sebuah byte data ke outputStream

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………… 5

3. Contoh Program

1. Input karakter

2. Baca file

import java.io.*;

public class inputkarakter

public static void main(String args[])throws IOException

System.out.println("masukkan sembarang karakter");

InputStreamReader in = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(in); char ch = (char)br.read();

System.out.println("Karakter yang dimasukkan yaitu \'"+ ch +"\'");

import java.io.*;

public class bacafile

public static void main(String args[])

FileInputStream input = null;

int data;

//membuka file

try

input = new FileInputStream("f:/template/bacalah.txt");

catch(FileNotFoundException fn) System.out.println("file gak temu");

//membaca data dari dalam file try

while ((data = input.read()) != ‐1)

System.out.print((char) data);

System.out.println();

catch(IOException in)

System.out.println(in.getMessage());

//menutup file try

input.close();

catch(IOException e)

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………… 6

3. Tulis file

4. Tugas di laboratorium

a. Buatlah program yang membaca input text dari keyboard dan menyimpannya dalam

sebuah variable kemudian menampilkan inputan tersebut ke layar. Inputan berupa satu

kalimat atau paragraph.

b. Buatlah program yang membaca input angka bulat maupun pecahan kemudian

menyimpan dalam sebuah variable dan membaca input angka kembali dan

menyimpannya dalam variable kedua lalu outputkan perkalian ke dua variable

tersebut ke layar.

c. buatlah program untuk mengkopi isi sebuah file ke file lain.

import java.io.*;

public class tulisfile

public static void main(String args[])

FileOutputStream out = null;

String data = "ok smangat";

//buka file

try

out= new FileOutputStream("f:/template/about.txt");

catch(FileNotFoundException fn)

System.out.println("File tidak ditemukan");

//menulis

try

for(int i=0; i<data.length(); i++)

//konfersi data

out.write((int)data.charAt(i));

catch(IOException io)

System.out.println(io.getMessage());

//tutup

try

out.close();

catch(IOException eo)

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………… 7

5. Tugas praktikum

a. Buatlah program kalkulator sederhana dengan menggunakan 3 inputan dimana

inputan pertama dan kedua adalah bilangan dan inputan yang ketiga adalah operasi

yang akan digunakan yaitu tambah, kurang, kali, dan bagi.

b. Buatlah program untuk menggabungkan file. Baca sebuah file lalu simpan isi tersebut

ke variable dan membaca file kedua lalu menyimpannya pada variable kedua

kemudian menggambungkan kedua file tersebut dalam satu file.

c. Buatlah program untuk simpan file kedalam direktori d . Sebelum menyimpan

program secara otomatis akan memeriksa apakah di direktori d terdapat folder dengan

nama “penyimpanan”. Apabila belum ada maka program secara otomatis membuat

folder dengan nama “penyimpanan” kemudian file yang ada isinya tersebut disimpan

didalamnya.

d. Buat program simulasi dari dos prompt dalam windows. Jadi setelah membuat file

dengan isinya dan disimpan didirektori tertentu. Untuk mengetahui keberadaan file

ketikkan “dir”. Maka seluruh folder yang ada di direktori terbesut akan muncul dan

kelihatan file yang telah kita buat.

Modul Praktikum Distributed System

Teknik Informatika D3 ………………………………………………………………………… 8

Modul II Thread Bahasan : Thread

Sasaran : ­ Memahami konsep dari Thread

­ Memahami prioritas Thread.

Materi :

­ Multithreading adalah suatu kemampuan yang memungkinkan beberapa

kumpulan instruksi dapat dijalankan secara bersamaan dalam sebuah program.

Satu kumpulan instruksi yang dieksekusi secara independen dinamakan Thread.

­ Pada saat menjalankan program, sebuah thread utama akan dibuat oleh java

untuk mengeksekusi program tersebut, yang dimulai dengan memanggil method

main(). Untuk membuat thread baru yang terpisah dari thread utama, maka harus

membuat class baru yang merupakan turunan dari kelas thread atau

mengimplementasikan interface runnabe.

­ Berikut ini adalah konstructor dan method – method yang telah didefinisikan

kelas thread, antara lain :

Method Deskripsi

static Thread currentThread() Mendapatkan referensi object Thread

yang sedang dieksekusi.

String getName() Mendapatkan nama dari thread.

int getPriority() Mendapatkan prioritas dari thread nilainya

1 – 10. Semakin tinggi nilainya maka

prioritas thread tsb semakin tinggi.

Boolean isAlive() Mengetes thread apakah masih aktif!

void join() Menunggu

dieksekusi. .

hingga thread ini selesai

Modul Praktikum Distributed System

Teknik Informatika D3 ………………………………………………………………………… 9

void join(long millis)

void join(long millis, int nanos)

void run() Method yang pertama kali akan

dieksekusi saat threat dibuat.

String setName() Menset nama dari thread.

static void sleep(long millis)

static void sleep(long millis, int nanos)

Menangguhkan eksekusi dari thread

yang sedang berjalan untuk sementara

waktu

void start()

Byte output Stream yang menambahkan

method untuk memudahkan proses

menulis ke suatu output. Method yang

ditambahkan adalah print() dan

println(). Object yang referensinya

dipegang oleh Sytem.out juga bertipe

PrintStream.

void setDaemon(Boolean on) Bila nilai on adalah true maka akan

memanggil thread ini terlebih dahulu

sebelum menjalankan

Modul Praktikum Distributed System

Teknik Informatika D3 ………………………………………………………………………… 10

1. Contoh Program :

package java_thread;

import java.util.logging.Level;

import java.util.logging.Logger;

class HaloThread extends Thread

String s;

public HaloThread (String ss)

this.s = ss;

@Override

public void run()

for (int i = 0; i < 10; i++)

System.out.println(s+" "+i +" : Haloo");

try

sleep(300);

catch (InterruptedException ex)

Logger.getLogger(HaloThread.class.getName()).log(Level.SEVERE, null, ex);

public class Main public static void main(String[] args)

HaloThread h1 = new HaloThread(" TH 1 ");

HaloThread h2 = new HaloThread(" TH 2 ");

HaloThread h3 = new HaloThread(" TH 3 ");

h1.start();

h2.start(); h3.start();

Modul Praktikum Distributed System

Teknik Informatika D3 ………………………………………………………………………… 11

2. Tugas di laboratorium :

a. Program 1

1) Buatlah buatlah sebuah class Kirim yang merupakan turunan dari class thread

dimana dalam kelas ini terdapat procedure yang pertama kali dijalankan.

Procedure tersebut mengoutputk proses bilangan ganjil ke layar yang di ulang

sebanyak 10 kali.

2) Lalu buatlah class Terima yang juga merupakan turunan dari class thread

dimana dalam kelas ini terdapat procedure yang pertama kali dijalankan.

Procedure tersebut mengoutputkan proses cari yang genap ke layar yang di

ulang sebanyak 10 kali.

3) Buatlah kelas utama dengan nama ThreadUtama yang didalamnya

menjalankan kelas terima dan kelas kirim secara bersama sama.

b. Buatlah class – class seperti pada program 1 hanya saja class Kirim dan class Terima

mengimplementasikan interface Runnable

3. Tugas praktikum :

Buatlah class – class seperti pada program 1 hanya saja class Kirim mengimplementasikan

interface Runnable dan class Terima turunan Class Thread.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 12

Modul III Thread Bahasan : Thread

Sasaran : - Memahami konsep dari Thread

- Memahami prioritas Thread.

Materi :

1. Menghentikan Thread

Thread yang telah dijalankan secara otomatis akan dihentikan ketika semua proses (kode yang

terdapat dalam method run()) telah selesai dieksekusi. Meskipun demikian kita bisa

menghentikan secara manual. Kelas Thread sebenarnya mendefinisikan method stop() namun ini

sudah bersifat deprecated (tidak direkomendasikan lagi untuk digunakan) dan sebagai gantinya

kita bias gunakan variable bertipe boolean untuk pengontrolnya. Sebagai berikut contoh

programnya :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 13

2. Menentukan Prioritas

Prioritas thread digunakan oleh penjadwal thread untuk menentukan thread mana yang

seharusnya dikerjakan terlebih dahulu. Dalam hal ini rentang level dari MIN_PRIORITY sampai

MAX_PRIORITY, yaitu 1 sampai 10. Dengan NORM_PRIORITY memiliki nilai 5. Berikut

contoh programnya :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 14

3. Method isAlive() dan Join()

Pada kasus-kasus pemrograman tertentu , kita ingin menjadikan Thread utama sebagai Thread

yang terakhir dihentikan . untuk melakukan hal itu kita perlu memanggil method join() untuk

semua kelas anak. Apabila kita ingin mengetahui apakah suatu thread dalam keadaan aktif atau

tidak, kita dapat memanggil method isAlive(). Berikut kelas main pada contoh sebelumnya yang

telah diberi method join() dan isAlive() :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 15

4. Tugas di laboratorium :

1. Buat program tulisan berjalan secara horizontal dengan berbasis GUI. Didalamnya

terdapat tombol untuk memberhentikan maupun menjalankan lagi animasi tersebut.

Berikut ini gambaran layout programnya :

2. Buat modifikasi program diatas dengan menambahkan pergerakan vertikal dari tulisan.

Untuk Contoh sebagai berikut :

5. Tugas praktikum :

1. Buat pengembangan program Thread diatas untuk membuat animasi. Ada 3 pilihan :

a. Orang berjalan

b. Burung terbang

c. Kupu – kupu terbang

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 16

Modul IV Internet Adressing

Bahasan : - InetAddress class

Sasaran : - Konsep dari kelas InetAddress

Materi :

- Class InetAddress di gunakan utuk menampilkan alamat IP (internet Protokol)

dengan menggunkan aplikasi java networking. Tidak seperti kebanyakan class

lain, di dalam class ini tidak ada public Constructor. Akan tetapi di dalamnya

terdapat 2 static method yang mengembalikan nilai inetaddress.

- Berikut ini adalah konstructor dan method – method yang telah didefinisikan

kelas InetAddress, antara lain :

Method / Procedure Deskripsi

byte[] getAddress() Mengembalikan nilai Alamat IP dalam

format byte array.

static InetAddress[]

getAllByName (String hostname)

throws

java.net.UnknownHostException,

java.lang.SecurityException

Mengembalikan nilai inetAddress dari

hostname dalam bentuk array.

static InetAddress getByName (

String hostname ) throws java.

net.UnknownHostException,

java.lang.SecurityException

Mengembalikan nilai inetAddress dari

hostname

String getHostAddress() Mengembalikan nilai String alamat IP

dalam format dotted decimal

static InetAddress getLocalHost()

throws

java.net.UnknownHostException,

java.lang.SecurityException

Mengembalikan nilai inetAddress dari

local hostname

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 17

String getHostName() throws

java.lang.SecurityManager

Mengembalikan nilai String nama

hostname.

boolean isMulticastAddress() Mengembalikan nilai true jika

inetAddress tersebut adalah

multicastAddress

String toString() Mengembalikan nilai String dari

inetAdress

1. Contoh program :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 18

2. Tugas di laboratorium :

1. Buatlah sebuah program untuk ping alamat komputer laen. Inputan bisa dilakukan

dengan dua cara.

a. Inputkan alamat hostnya.

b. Inputkan nama hostnya

2. Kadang dalam suatu jaringan terdapat satu nama host dengan beberapa alamat host.

Buatlah program untuk mendapatkan semua alamat host tersebut. Sebagai contoh :

a. Nama Host : www.google.com

b. Alamat Host :

1. www.google.com/74.125.235.52

2. www.google.com/74.125.235.51

3. www.google.com/74.125.235.49

4. www.google.com/74.125.235.48

5. www.google.com/74.125.235.50

3. Tugas praktikum :

1. Buatlah program aplikasi untuk mengecek koneksi jaringan lokal atau scan ip dari ip

pertama hingga akhir secara berulang-ulang sehingga memungkinkan si user dapat

mengetahui PC mana yang aktif dan tidak sewaktu-waktu.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 19

Modul V SOCKET

Bahasan : - Dasar Socket dan Server Socket

- Dasar Socket UDP

Sasaran : - Konsep dari kelas Socket Client TCP.

- Konsep dari kelas Socket Server.

- Konsep dari kelas Socket UDP.

Materi :

1. Transmission Control Protocol (TCP)

Class Socket Client di gunakan utuk merequest data ke server dalam hal ini server socket

class. Class ini menggunakan TCP sebagai protokolnya dan untuk membuat komunikasi

antara server dan client dibutuhkan string input dan string output seperti pada bab

sebelumnya.

Berikut ini adalah method dan konstraktor pada socket client

Method / Procedure Deskripsi

public Socket (InetAddress a,

int p)

thows java.io.IOExeption, java.lang.SucurityExeption

Membuat koneksi socket kepada ip address a

dengan port p

public Socket (String a, int p) throws

java.io.IOExeption, java.lang.SecurityExeption$

Membuat sebuah socket client dimana

dihubungkan dengan diberikan nomor port pada hosttertentu.

public void close ()

throws

java.io.IOExeption, java.lang.SecurityExeption$

Menutup koneksi socket

InetAddress getInetAddress ()

throws java.io.IOExeption,

Mengembalikan nilai InetAddress dari

komputer yang terkoneksi dengan socket.

InputStream getInputStream ()

throws java.io.IOExeption.

Mengembalikan class inputStream yang

membaca data yang dikirim oleh komputer yang dikoneksikan dengan socket

OutputStream getOutputStream

throws java.io.IOExeption.

Menerima kembali output stream yang

berhubungan dengan socket ini.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 20

public boolean isClosed() Thows

Java.net.SocketExeption

Mendeteksi apakah socket telah tertutup atau

tidak

Int getPort() Mengembalikan port number yang digunakan.

Langkah-langkah untuk menciptakan kelas client sederhana:

1. Membuat kelas object socket :

Socket client = new Socket(server, port_id);

2. Membuat I/O streams untuk berkomunikasi dengan server.

is = new DataInputStream(client.getInputStream());

os = new DataOutputStream(client.getOutputStream());

3. Membuat I/O untuk menerima tanggapan dari server :

Menerima informasi dari server: String line = is.readLine();

Mengirim informasi ke server: os.writeBytes("Hello\n");

4. Tutup socket ketika selesai:

client.close();

Untuk mengilustrasikan langkah-langkah diatas perhatikan dan coba contoh program berikut

untuk klien :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 21

Materi (Server Socket) :

Digunakan untuk membuat server dengan alamat port yang ditentukan pada local

machine. Dimana Client Server Socket akan menunggu request dari Client Soctket.

Berikut metode method dan konstraktor dari Server Socket

Method / Procedure Deskripsi

ServerSocket(int port) Ketika sebuah server menetapkan suatu port

tertentu, sebuah port 0 menugaskan sebuah server kepada port bebas manapun.

ServerSocket(int port, int backlog) Ketika sebuah server menetapkan suatu port

tertentu, panjang antrian maksimum untuk

koneksi yang akan datang berdasarkan pada parameter backlog.

Socket accept()

throws

java.io.IOExeption, java.lang.SecurityExeption

Metode yang digunakan untuk menunggu client

meminta koneksi. Dan jika sudah terjadi

permintaan maka akan mengembalikan Class Socket.

public void close () throws

java.io.IOExeption

Menutup server socket tersebut

public int getLocalPort() Mengembalikan port dimana socket juga membatasi

public boolean isClosed() Mendeteksi apakah socket tertutup atau belum

Langkah-langkah untuk menciptakan kelas server sederhana:

1. Membuat Server Socket :

ServerSocket server = new ServerSocket( PORT );

2. Menunggu Request dari client :

Socket client = server.accept();

3. Menciptakan I/O streams untuk komunikasi dengan client :

DataInputStream is = new DataInputStream(client.getInputStream());

DataOutputStream os = new DataOutputStream(client.getOutputStream());

4. Membuat I/O untuk menerima tanggapan dari client :

Menerima informasi dari client: String line = is.readLine();

Mengirimkan informasi ke client: os.writeBytes("Hello\n");

5. Menutup Socket :

client.close();

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 22

Untuk mengilustrasikan langkah-langkah diatas perhatikan dan coba contoh program berikut

untuk server :

2. User Datagram Protocol (UDP)

- User Datagram Protocol adalah Connetionless protocol (tidak menggunakan string ).

Digunakan untuk mengirim data biner dari satu komputer ke komputer lainnya.

- Adapun kelebihan dari UDP yaitu:

o Tidak seperti TCP yang harus menstabilkan koneksi (menggunakan stream) UDP

tidak perlu melakukannya.

o Cepat, data dapat langsung dikirim tanpa pemeriksaan koneksi.

- Sedangkan kekurangannya yaitu :

o Banyak data yang hilang.

o Banyak kesalahan pengiriman.

- Java Mensuport UDP dalam dua kelas yaitu:

- java.net.DatagramPacket

Merupakan class untuk membangun packet data.

- java.net.DatagramSocket

Merupakan class untuk mengirim dan menerima paket data.

- Metode-metode dalam datagram packet.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 23

Method / Procedure Deskripsi

DatagramPacket(byte[ ] buffer, int Length) Metode yang digunakan untuk membuat

datagram packet sebagai penerima dari UDP packet yang masuk.

DatagramPacket(byte[ ] buffer, intLength,

inetAddress Des, int DestinationPort)

Digunakan untuk membuat packet yang

akan dikirim alamat IP Des dengan port destinationPort.

inetAddress getAddress() Mengembalikan IP Address dari alamat

pengirim packet.

Byte[ ] getdata Mengembalikan nilai byte dari datagram packet tersebut

int getPort() Mengembalikan nilai port dari pembuat packet

- Metode metode Datagram Socket.

Method / Procedure Deskripsi

Public Dataram Socket (intPort

trows

java.net.SocketExeption

Konstraktor untuk membuat server

datagram socket dimana konstraktor ini

akan melayani penerimaan packet pada

port P dan pengiriman packet .

Viod close menutup socket

Void receive( datagramPacket Packet)

trows java.io.IOExeption

Metode ini digunakan untuk membaca UDP packet dan menukar packet

dengan packet yang masuk.

Void send (datagramPacket packet)

trows java.io.IOExeption

Metode ini digunakan untuk mengirim

UDP packet.

3. Contoh Program :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 24

4. Tugas di laboratorium :

a. Buatlah program untuk mengecek port yang terbuka dari satu host (port scanner).

Diantara inputan awal dan inputan akhir.

b. Buatlah program klien untuk mengirim data String kepada socket server

c. Buatlah program untuk membaca data String yang diinputkan oleh socket client,

kemudian server menjawab sesuai pilihan dari client.

d. Buatlah program chating satu sisi, yaitu client menginputkan data String ke

Server

e. Buatlah program untuk menerima data yang dikirim oleh server (program yang

dibuat oleh instruktur) dengan mengimplementasikan UDP protocol.

f. Buatlah program untuk mengirim data dari inputan Keyboard.

g. Buatlah program untuk membuat chat satu sisi dimana client mengirim data ke

server secara berulang-ulang.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 25

5. Tugas Praktikum :

a. Buatlah program chatting menggunakan GUI.

b. Buatlah 2 program yaitu program client dan program server sebagai Billing

Warnet. Dengan mengunakan UDP dan BAB sebelumnya.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 25

Modul VI Socket MultiClient

Bahasan : Socket Multi Client

Sasaran : Konsep dari Socket Multi Client

Materi :

- Agar suatu aplikasi server dapat menjalankan lebih dari satu pemanggilan method yang

sama, proses server harus “menggandakan dirinya ” , dimana tiap proses server hasil

penggandaaan tersebut akan berinteraksi dengan client. Dengan demikian didalam server

harus terdapat lebih dari satu thread untuk menangani lebih dari satu Client. Oleh karena

itu diperlukan server yang mendukung multithread.

- Langkah-langkah untuk menciptakan kelas Server Multithread :

Terdapat 2 kelas dimana kelas yang pertama untuk Server Socket :

1. Membuat Server Socket :

ServerSocket server = new ServerSocket( PORT );

2. Menunggu Request dari beberapa client dengan memanggil kelas yang kedua

menggunakan perulangan :

while (true)

new server(ss.accept(), urut).start();

dan kelas yang kedua untuk Penanganan Thread yang melayani Request dari tiap Client

:

1. Menciptakan kelas Thread dengan implement runnable atau kelas turunannya.

2. Menciptakan I/O streams untuk komunikasi dengan tiap client :

PrintWriter out = new PrintWriter(sc.getOutputStream(), true);

3. Membuat I/O untuk menerima atau mengirim tanggapan dari atau ke client :

out.println("Selamat Datang Client ke- " + angka);

Untuk mengilustrasikan langkahlangkah diatas perhatikan dan coba contoh program berikut

untuk klien :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 26

Langkah-langkah untuk menciptakan kelas client sederhana :

1. Membuat kelas object socket :

Socket client = new Socket(server, port_id);

2. Membuat I/O streams untuk berkomunikasi dengan server.

BufferedReader in = new BufferedReader(new InputStreamReader(sk.getInputStream()));

3. Membuat I/O untuk menerima tanggapan dari server :

Menerima informasi dari server: String line = is.readLine();

Mengirim informasi ke server: os.writeBytes("Hello\n");

4. Tutup socket ketika selesai: client.close();

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 27

1. Tugas di Laboratorium :

a. Buatlah program klien untuk mengirim data String kepada socket server yang

mendukung multithread.

b. Buatlah program untuk membaca data String yang diinputkan oleh socket client,

kemudian server yang mendukung multithread menjawab sesuai pilihan dari client.

c. Buatlah program chating satu sisi, yaitu client menginputkan data String ke Server

2. Tugas Praktikum :

Buatlah program chatting MultiClient menggunakan GUI.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 28

Modul VII JADE (Java Agent Development

Framework)

Bahasan : lingkungan JADE (Java Agent Development Framwork)

Sasaran : Konsep dan implementasi dari JADE (Java Agent Development Framwork)

Materi :

Istilah middleware dalam dunia komputer biasanya diberikan kepada suatu obyek yang bertugas

menjembatani heterogenitas lingkungan seperti sistem operasi, aplikasi, bahasa pemrograman,

jaringan, dan lain-lain sehingga kerumitan menjadi transparan bagi pengguna atau aplikasi yang

menggunakannya.

JADE (Java Agent Development Framework) adalah middleware yang dapat digunakan untuk

mengembangkan dan menjalankan aplikasi peer to peer yang berdasarkan pada paradigma agent.

Sesuai namanya bahasa pemrograman yang digunakan untuk mengembangkan agent dalam

JADE adalah Java.

1. Prinsip Kerja JADE

JADE sebagai middleware yang memberikan fasilitas untuk pengembangan sistem berbasiskan

agent menyediakan :

1. Runtime environment yang menjadi tempat di mana agent dapat berjalan dan harus aktif

pada host dimana agent akan bekerja.

2. Pustaka berupa kelas-kelas yang dapat/harus digunakan untuk mengembangkan agent.

3. Sekumpulan graphic tool yang digunakan untuk melakukan administrasi dan monitoring

terhadap aktivitas agent yang sedang berjalan pada runtime environment.

Runtime environement dalam JADE dikenal dengan istilah container. Satu host dapat

menjalankan lebih dari satu container dan setiap container bisa menangani beberapa agent.

Sekumpulan container yang aktif disebut sebagai platform. Sebuah platform dapat memiliki

container yang berasal dari host yang berbeda-beda. Satu platform harus memiliki satu container

yang memiliki atribut sebagai main container yang aktif. Semua container yang aktif dan ingin

bergabung dalam sebuah platform harus bergabung dengan mendaftarkan diri

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 29

u ment -gui lalu OK

pada main container dan tidak boleh beratribut sebagai main container

normal container.

atau disebut juga

Selain menerima pendaftaran dari normal container sebuah main container selalu memiliki dua

buah agent yang aktif secara otomatis ketika main container dijalankan. Kedua agent itu adalah:

1. AMS (Agent Management System) yang menyediakan naming service yang memastikan

setiap agent dalam platform memiliki identitas yang unik. Selain itu AMS dapat

merepresentasikan otoritas dalam platform di mana melalui AMS kita dapat menjalankan

atau menghentikan agent dalam container yang terdaftar.

2. DF (Directory Facilitator) adalah agent yang berfungsi sebagai “yellow pages” bagi

platform. Melalui DF sebuah agent dapat mencari agent yang aktif

diberikan agent tersebut.

dan layanan yang

Langkah-langkah untuk menjalankan JADE dengan mengikut sertakan RAM (Remote Agent

Management) :

1. Mempersiapkan libraries sesuai dengan versi yang digunakan :

Misalkan JADE versi 4 hanya perlu jade.jar dan commons-codec-1.3.jar, sedangkan versi di

bawahnya terdapat tambahan iiop.jar, http.jar, jadeTools.jar

2. Melakukan konfigurasi dengan cara klik kanan di project -> set configuration ->

customize -> kemudian buat configurasi baru dan mengisi main class

dengan jade.Boot dan arg

3. Setelah dijalankan akan muncul tampilan gui dari JADE sebagai berikut :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 30

Berikut kode program untuk membuat agent baru :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 31

Langkah menjalankan kode program diatas yaitu :

- Jalankan projectnya kemudian muncul RAM ,kemudian klik kanan di main container -

> Start new agent :

- Isikan nama agent, argumen serta pilih kelas agen yang ingin dijalankan.

- Dengan menekan button “ok” maka agen baru akan berjalan sesuai dengan kode

program yang diisikan.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 32

2. Behaviour

Pekerjaan yang sebenarnya dari agen terletak dalam suatu 'Behaviour'. Behaviour merupakan

suatu tugas yang agen dapat melakukan dan diimplementasikan sebagai object dari suatu kelas

dari kelas turunan Behaviour. Terdapat beberapa macam behaviour dengan sifat yang berbeda-

beda, seperti :

- ‘One-Shoot’ Behaviour yang memiliki sifat pengerjaan hanya satu fase eksekusi.

Ketika OneShootBehaviour dijalankan maka pada akhirnya secara otomatis akan

menjalankan metode done() yang berada didalam kelas OneShootBehaviour sehingga

proses akan berhenti.

- ‘Cyclic’ Behaviour yang memiliki sifat pengerjaan yang tidak akan pernah berhenti dan

berulang-ulang.

- TickerBehaviour memiliki sifat pengerjaan berulang-ulang dan dalam satu proses

terdapat waktu jeda yang ditentukan sebelum menjalankan proses selanjutnya.

Berikut contoh kode program untuk menjalankan behaviour :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 33

3. Tugas Praktikum :

a. Jalankan kode program contoh diatas sehingga akan menghidupkan JADE.

b. Ubahlah kode program behaviour menjadi OneShootBehaviour, TickerBehaviour ,

dan CyclicBehaviour sehingga diketahui perbedaan dari ketiga behaviour tersebut!

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 34

Modul VIII Komunikasi Antar Agent

Bahasan : -

Sasaran : Konsep dan implementasi dari JADE (Java Agent Development Framwork)

Materi :

Komunikasi antar agent merupakan fitur penting dalam JADE. Untuk komunikasi antar

platform, pesan akan diubah dari representasi java internal JADE, menjadi sintak- sintak, kode-

kode, dan protokol-protokol transport yang mengikuti aturan FIPA (Foundation for Intellegent

Physical Agent). FIPA sendiri adalah sebuah lembaga internasional yang mengembangkan

standar-standart terkait dengan teknologi agen. Komunikasi antar agent dapat tercapai ketika

terdapat pengiriman dan penerimaan pesan antara 2 atau lebih agent.

1. Pengiriman Pesan

Berikut ini adalah method dan konstraktor dasar pada pengiriman pesan

Method / Procedure Deskripsi

ACLMessage msg = new

ACLMessage(ACLMessage.INFORM)

thows

jade.lang.acl.ACLMessage

Memanggil Class Object ACLMessage untuk

tempat dari pesan yang akan dikirim. Nama

dari Class Object ACLMessage yaitu “msg”

Public void setContent() throws

jade.lang.acl.ACLMessage

Memanggil Methode dari kelas ACLMessage

untuk pengisian pesan

Public void addReceiver()

throws jade.lang.acl.ACLMessage

Methode yang digunakan untuk menambah

nama agent sebagai penerima pesan

Public void send()

throws jade.lang.acl.ACLMessage

Mengirimkan pesan sesuai dengan agent tujuan

Langkah-langkah untuk menciptakan kelas pengirim pesan sederhana:

1. Menambahkan Behavior untuk pengiriman. Untuk contoh pengiriman menggunakan

TickerBehavior :

addBehaviour(new TB(this, 1000));

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 35

2. Membuat kelas object ACLMessage :

ACLMessage msg = new ACLMessage(ACLMessage.INFORM);

3. Membuat Methode untuk agent tujuan, sebagai contoh agent tujuannya “siti” :

msg.addReceiver(new AID("siti", AID.ISLOCALNAME));

4. Membuat Methode untuk pengisian pesan :

msg.setContent("#" + myAgent.getLocalName() + "# ");

5. Memanggil Methode untuk pengiriman pesan:

myAgent.send(msg);

Untuk mengilustrasikan langkah-langkah diatas perhatikan dan coba contoh program berikut

untuk mengirim pesan :

2. Penerimaan Pesan

Berikut metode method dan konstraktor dari Penerima Pesan :

Method / Procedure Deskripsi

Public void receive()

throws jade.lang.acl.ACLMessage

Methode untuk penerima kiriman

Public void getContent() throws

jade.lang.acl.ACLMessage

Methode untuk membaca isi dari pesan yang

didapat

import jade.core.AID;

import jade.core.Agent;

import jade.core.behaviours.*;

import jade.lang.acl.*;

public class ngirim extends Agent protected void setup( )

addBehaviour(new TB(this, 1000));

class TB extends TickerBehaviour TB(Agent a, int i)

super(a, i);

@Override

protected void onTick()

System.out.println("NC Kirim Matriks : " + myAgent.getLocalName());

ACLMessage msg = new ACLMessage(ACLMessage.INFORM);

msg.setContent("#" + myAgent.getLocalName() + "# ");

msg.addReceiver(new AID("keterima", AID.ISLOCALNAME));

myAgent.send(msg);

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 36

Public void createReply() throws

jade.lang.acl.ACLMessage

Methode untuk membalas kiriman pesan secara

otomatis.

ACLMessage msg =new Memanggil Class Object ACLMessage untuk

ACLMessage() memanggil methode yang digunakan untuk

throws penerimaan dan membalas pesan otomatis

jade.lang.acl.ACLMessage

Langkah-langkah untuk menciptakan kelas penerimaan sederhana:

1. Menambahkan Behavior untuk penerimaan. Untuk contoh penerimaan menggunakan

CyclicBehavior :

addBehaviour (new Nm_Bhvior(this));

2. Membuat kelas object ACLMessage dan memanggil Metode untuk penerimaan :

ACLMessage msg = myAgent.receive();

3. Membuat Methode untuk pembacaan isi pesan dan simpan dalam variable String :

String title = msg.getContent();

Untuk mengilustrasikan langkah-langkah diatas perhatikan dan coba contoh program berikut

untuk Penerima :

import jade.core.Agent;

import jade.core.behaviours.*;

import jade.core.AID;

import jade.lang.acl.*;

public class terima extends Agent

@Override

protected void setup()

addBehaviour (new Nm_Bhvior(this));

class Nm_Bhvior extends CyclicBehaviour

public Nm_Bhvior(Agent a)

super(a);

public void action ( )

ACLMessage msg = myAgent.receive();

if (msg!=null

String title = msg.getContent();

System.out.println("NM terima pesan "+title);

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 37

Ketika kode program diatas dijalankan dan tampilan sniff diaktifkan , maka akan tampak antara

agent pengirim melakukan pengiriman informasi secara terus menerus dan diterima oleh agent

keterima. Selanjutnya untuk menjalankan sniff dilakukan dengan "do sniff this agent" maka

untuk menghentikannya pun hanya tinggal klik kanan pada agent lalu "do not sniff this agent".

Berikut gambaran tampilan sniff :

3. Tugas di laboratorium :

a. Buatlah program kirim dan terima pesan, namun ketika menerima pesan terdapat

balasan ke pengirim pesan secara otomatis.

b. Buatlah program pengecekan dalam penerimaan ketika pesan yang diterima

sesuai dengan kriteria maka akan dibalas dan ketika tidak sesuai program tidak

membalasnya.

c. Buat program chating satu sisi

4. Tugas praktikum :

Buatlah program chatting menggunakan GUI.

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 38

Modul IX Message Template

Bahasan : Message Template

Sasaran : Konsep dan implementasi dari JADE (Java Agent Development Framwork)

Materi :

Message Template digunakan untuk menjamin bahwa pesan yang diterima oleah suatu agen,

adalah yang tepat dan di proses dengan behaviour yang tepat pula. Oleh karena itu dengan

adanya Message Template pada setiap behaviour yang menerima pesan, maka penyaringan

pesan yang masuk akan lebih mudah.

1. Pengiriman Pesan

Berikut ini adalah method dan konstraktor dasar penggunaan Message Template

Method / Procedure Deskripsi

MessageTemplate nama =

MessageTemplate.and();

thows

jade.lang.acl.*;

Memanggil Class Object

MessageTemplate untuk tempat dari

template. Nama dari Class Object

MessageTemplate yaitu “nama”

Public void MatchSender(new

AID("broker", AID.ISLOCALNAME))

throws

jade.lang.acl.*;

Memanggil Methode dari kelas

MessageTemplate untuk penyeleksian

agen pengirim pesan. nama agen yang

diperbolehkan : broker

Public void

MatchPerformative(ACLMessage.INFORM)

throws

jade.lang.acl.*;

Methode yang digunakan untuk

pengecekkan performativenya

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 39

Untuk mengilustrasikan langkah-langkah diatas perhatikan dan coba contoh program berikut untuk

pengiriman pesan :

Untuk Penerima :

import jade.core.AID;

import jade.core.Agent; import jade.core.behaviours.*; import jade.lang.acl.*; public class ngirim extends Agent protected void setup() addBehaviour(new TB(this, 1000)); class TB extends TickerBehaviour TB(Agent a, int i) super(a, i);

@Override protected void onTick() System.out.println("NC Kirim Matriks : " + myAgent.getLocalName()); ACLMessage msg = new ACLMessage(ACLMessage.INFORM); msg.setContent("#" + myAgent.getLocalName() + "# "); msg.addReceiver(new AID("keterima", AID.ISLOCALNAME)); myAgent.send(msg);

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 40

import jade.core.Agent;

import jade.core.behaviours.*;

import jade.core.AID; import jade.lang.acl.*; public class terima extends Agent @Override protected void setup() addBehaviour (new Nm_Bhvior(this)); class Nm_Bhvior extends CyclicBehaviour public Nm_Bhvior(Agent a) super(a); public void action () MessageTemplate dari_broker1 =

MessageTemplate.and(MessageTemplate.MatchSender(new AID("pengirim", AID.ISLOCALNAME)), MessageTemplate.MatchPerformative(ACLMessage.INFORM)); ACLMessage msg = myAgent.receive(); if (msg!=null)

String title = msg.getContent(); System.out.println("NM terima pesan "+title);

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 41

Ketika kode program diatas dijalankan dan tampilan sniff diaktifkan , maka akan tampak antara

agent pengirim melakukan pengiriman informasi secara terus menerus dan diterima oleh agent

keterima. Selanjutnya untuk menjalankan sniff dilakukan dengan "do sniff this agent" maka

untuk menghentikannya pun hanya tinggal klik kanan pada agent lalu "do not sniff this agent".

Berikut gambaran tampilan sniff :

2. Tugas di laboratorium :

a. Buat program yang mengilustrasikan 3 bagian yaitu pembeli, broker serta supliyer.

Dengan alur kerja sebagai berikut :

Pembeli melakukan pemesanan dan broker bertugas mengantarkan pesanan kepada

supliyer dan jika di supliyer ada maka barang akan diantarkan ke broker dan broker

memberikannya ke pembeli !

b. Buat seperti no.1 dengan ditambahkan supliyer ada 2 yaitu supliyer obat dan supliyer

barang rumah tangga !

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 42

3. Tugas praktikum :

Buat program aplikasi yang mengilustrasikan persoalan sama seperti no.2 namun kasus yang

berbeda!

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 43

Modul X Agent Lanjut

Bahasan : Container dan studi kasus

Sasaran : Konsep dan implementasi dari JADE (Java Agent Development Framwork)

Materi :

1. Container

Setiap bagian dari JADE runtime environment disebut container, karena dapat menampung

beberapa agent. 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 djalankan.oleh karena itu, main container harus menjadi container

pertama yang dijalankan pada sebuah platform JADE.

Jika terdapat main container lain yang dijalankan disuatu tempat, maka main container akan

membentuk pada platform yang berbeda. sedangkan cara membentuk container baru sebai

berikut :

saat set konfigurasi pada bagian argument diisi -gui -container -container-name jual

dengan demikian, maka akan tercipta container baru dengan nama jual.

Langkah-langkah :

Misal terdapat 2 agent dimana class client dinamakan “pengirim” dan class server dinamakan

“Penerima” dengan ip 192.168.1.2 sebagai server dan ip 192.168.1.1 sbg client

- utk server, pada Configuration default (ip 192.168.1.2)

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 44

- lalu untuk Configuration server (ip 192.168.1.2)

- running Configuration default terlebih dahulu baru server

- utk Configuration client (ip 192.168.1.1)

- running client tanpa menjalankan default

Maka hasil :

Modul Praktikum Distributed System

Teknik Informatika D3 ……………………………………………………………………… 45

2. Tugas di laboratorium :

Lakukan kerja praktikum secara berkelompok sebanyak 3 orang jadi terdapat komputer

dalam 1 kelompok.

a. Buat implementasi contoh program pada modul 9 menggunakan 2 komputer.

b. Buat implementasi yang mengilustrasikan 3 bagian yaitu pembeli, broker serta

supliyer. Dengan alur kerja sebagai berikut :

Pembeli melakukan pemesanan dan broker bertugas mengantarkan pesanan

kepada supliyer dan jika di supliyer ada maka barang akan diantarkan ke broker

dan broker memberikannya ke pembeli !

c. Buat implementasi seperti no.2 dengan menambahkan inputan keyboard pada pembeli !

d. Buat seperti no.1 dengan ditambahkan supliyer ada 2 yaitu supliyer obat dan

supliyer barang rumah tangga !

3. Tugas praktikum :

Memberikan laporan progres dari kelas reguler (Wajib)

PANDUAN KESELAMATAN KERJA DAN PRAKTIKUM

LABORATORIUM KOMPUTER

FAKULTAS TEKNIK

UNIVERSITAS MUHAMMDIYAH MAGELANG

2018

Panduan keselamatan kerja dan praktikum D3 1

PENDAHULUAN

Panduan ini menjelaskan tentang tata cara penggunaan fasilitas ruang

kelas dan laboratorium praktek, posisi tubuh dan kesehatan serta

kebiasaan kerja bagi para pengguna komputer. Selain itu, panduan ini

memuat informasi tentang keamanan masalah listrik dan mekanis, yang

berlaku untuk perangkat Komputer pada umumnya.

Panduan keselamatan kerja dan praktikum D3 2

PERINGATAN

PERINGATAN! Mungkin terdapat risiko cedera fisik yang parah akibat pola

bekerja yang salah dengan komputer. Baca dan patuhi rekomendasi dalam

Panduan ini untuk meminimalkan risiko cedera dan untuk meningkatkan

kenyamanan Anda.

Sejumlah studi telah mengemukakan, bahwa mengetik untuk jangka

waktu yang panjang, pengaturan stasiun kerja yang tidak benar,

kebiasaan kerja yang keliru, kondisi dan hubungan kerja yang membuat

stres, atau masalah kesehatan Anda pribadi, dapat dikaitkan dengan

kecederaan.

Kecederaan ini antara lain:

1. carpal tunnel syndrome [gejala kompleks yang disebabkan oleh

setiap keadaan yang menekan saraf medianus dalam saluran karpal

pergelangan tangan],

2. tendinitis [peradangan tendon],

3. tenosynovitis [peradangan sarung tendon] dan gangguan

musculoskeletal [berkenaan dengan otot dan rangka].

Tanda-tanda peringatan gangguan ini terjadi pada tangan, pergelangan

tangan, lengan, bahu, leher atau punggung, antara lain:

1. Mati rasa, rasa terbakar atau kesemutan

2. Rasa perih, sakit atau ngilu

3. Rasa nyeri, berdebar-debar atau bengkak

4. Kejang atau kaku

5. Rasa lemas atau dingin

Gejala dapat dirasakan sewaktu mengetik, sewaktu menggunakan mouse,

atau pada saat tidak bekerja dengan tangan, termasuk di malam hari

ketika gejala-gejala ini membuat Anda terbangun dari tidur.

Jika anda mengalami gejala tersebut, terasa nyeri atau gangguan terus-

menerus maupun terjadi berulang-kali, yang menurut Anda mungkin

berkaitan dengan penggunaan komputer, Anda harus segera

memeriksakan diri ke dokter ahli. Semakin dini masalah ini didiagnosis dan

Panduan keselamatan kerja dan praktikum D3 3

diobati dengan benar, semakin kecil kemungkinan masalah ini

berkembang menjadi kondisi kelumpuhan.

Cedera pada praktek laboratorium dapat berupa:

1. Luka lecet atau sayatan.

2. Tersengat listrik

3. Luka Bakar

Panduan keselamatan kerja dan praktikum D3 4

DAFTAR ISI

Pendahuluan .................................................................................... i

Peringatan .................................................................................... ii

Daftar Isi .................................................................................... iii

I. Panduan Umum ............................................................ 2

II. Panduan Laboratorium Praktek ...................................... 5

III. Panduan Penanggulangan ............................................. 6

Panduan keselamatan kerja dan praktikum D3 1

I. PANDUAN UMUM

A. Mengutamakan lingkungan kerja yang nyaman dan aman.

Untuk meningkatkan kenyamanan dan keamanan pada ruang kelas

dan laboratorium, diharapkan untuk mematuhi peraturan berikut:

1. Menjaga Keamanan

Dilarang membawa senjata api/tajam, dan cairan kimia yang

mudah terbakar.

2. Menjaga Perangkat kerja

Dilarang merusak, menulis, dan membawa magnet berkekuatan

besar karena dapat mengganggu kinerja PC.

3. Menjaga Kebersihan

Dilarang membawa makanan dan minuman yang dapat tumpah

dan buanglah sampah pada tempatnya.

B. Metode Penggunaan PC

Untuk pengguna perangkat PC disarankan untuk

1. Menyesuaikan posisi tubuh

Duduklah dengan benar, bersandar dan jangan condong ke depan

saat menggunakan PC, jangan terpaku pada satu posisi tubuh

sepanjang hari, Pastikan Anda tidak bersandar terlalu jauh ke

belakang.

2. Variasikan posisi tubuh

3. Mata

SARAN

a. Ingat untuk mengerdipkan mata

b. Sewaktu melihat monitor, ingatlah untuk mengerdipkan mata

Anda. Meskipun mengerdipkan mata adalah hal yang biasanya

Anda lakukan tanpa berpikir, namun Anda bisa jadi kurang

sering melakukannya sewaktu menggunakan komputer

(sejumlah studi telah menunjukkan, bahwa pada komputer,

rata-rata, orang mengerdipkan mata 1/3 dari biasanya).

Mengedipkan mata akan menjaga agar mata Anda terlindungi

dan terlumasi secara alami serta mencegah kekeringan,

sumber ketidak-nyamanan yang umum.

c. Sering mengistirahatkan mata dengan cara memfokuskan

pada titik yang jauh.

Panduan keselamatan kerja dan praktikum D3 2

Bekerja pada komputer untuk waktu yang lama bisa merupakan

tugas yang menuntut penglihatan dan dapat menyebabkan mata

Anda teriritasi dan letih. Oleh sebab itu, Anda harus memberikan

perhatian khusus terhadap perawatan penglihatan, termasuk

rekomendasi berikut ini:

a. Mengistirahatkan mata Anda

Sering-seringlah mengistirahatkan mata Anda. Secara berkala,

berpalinglah dari monitor dan memfokuskan pada titik yang

jauh. Hal Ini juga merupakan waktu yang tepat untuk

meregang tubuh, menarik napas dalam-dalam dan rileks.

b. Membersihkan layar monitor dan kacamata

Jagalah kebersihan layar monitor dan kacamata atau lensa

kontak Anda. Jika Anda menggunakan saringan pengurang

silau, bersihkan menurut petunjuk produsen.

c. Memeriksakan mata Anda

Untuk memastikan, bahwa penglihatan Anda terperbaiki

secara memadai, periksakanlah mata Anda secara teratur

pada spesialis mata. Jika Anda mengenakan lensa bifocal,

trifocal atau progresif, mungkin Anda merasakan, bahwa Anda

harus menahan posisi tubuh yang tidak nyaman untuk

menggunakan kacamata saat bekerja dengan komputer.

Sampaikan hal ini kepada spesialis mata Anda dan mintalah

resep kacamata khusus yang sesuai untuk bekerja dengan

monitor computer.

4. Gunakan posisi ketik yang benar, hindari hal berikut:

a. Jangan bertumpu pada pergelangan tangan Anda

Sewaktu mengetik, jangan tumpukan atau menyandarkan

pergelangan tangan pada permukaan meja kerja, paha atau

sandaran telapak tangan (kadang disebut sandaran

pergelangan tangan). Menyandarkan telapak tangan seraya

mengetik dapat berbahaya, karena pergelangan tangan serta

jari-jari Anda dapat tertekuk dan tertahan. Cara ini juga dapat

menyebabkan tekanan pada pangkal pergelangan tangan

Anda. Sandaran pergelangan tangan didesain untuk

menyediakan penopangan sewaktu Anda beristirahat sejenak,

saat tidak sedang mengetik (misalnya, saat Anda membaca

dari layar).

Panduan keselamatan kerja dan praktikum D3 3

b. Jangan tekuk pergelangan tangan ke arah dalam.

c. Jangan sandarkan telapak tangan atau menekuk pergelangan

tangan ke bawah saat Anda mengetik.

5. Aturlah ketinggian dan sudut pandang monitor, jangan melihat

monitor dari samping

6. Jangan posisikan papan ketik dan alat penunjuk pada tingkat dan

jarak yang berbeda.

7. Penggunaan Mouse

HINDARI! : Jangan cengkeram atau menjepit mouse kuat-kuat.

SARAN:

a. Kenyamanan menunjuk

Sewaktu menggunakan mouse, trackball, atau alat penunjuk

yang lain, jangan dicengkeram dan klik tombol dengan

Panduan keselamatan kerja dan praktikum D3 4

sentuhan ringan. Jagalah agar tangan dan jari tetap rileks

sepanjang waktu baik sewaktu aktif menggunakan alat atau

sekadar meletakkan tangan pada alat selagi berhenti sejenak.

Untuk waktu istirahat yang lebih lama, lepaskan dan rilekskan

tangan dan jari Anda.

b. Bertukar tangan

Untuk mengistirahatkan tangan, mungkin Anda bisa

menggunakan tangan yang satunya lagi untuk mengendalikan

mouse atau trackball. Gunakan seluruh tangan dan bahu

untuk menggerakkan mouse, jangan hanya sandarkan

pergelangan tangan Anda. Jangan menyandarkan atau

menumpukan pergelangan tangan sewaktu menggunakan alat

penunjuk; biarkan pergelangan tangan, lengan dan bahu Anda

bebas bergerak.

c. Pergelangan tangan harus tetap berada pada posisi nyaman

yang netral dan alat penunjuk sejajar dengan lengan bawah

Anda.

d. Jangan gerakkan alat penunjuk terlalu jauh dari papan ketik

karena ini menyebabkan Anda harus menekuk pergelangan

tangan ke samping.

8. Penggunaan LCD projector

Hindari hal berikut: Menatap langsung ke arah proyektor yang

sedang menyala.

Set tingkat contrast dan brightness sesuai keadaan pencahayaan.

Matikan lampu /redupkan pencahayaan jika tampilan dari LCD

tidak memadai.

Panduan keselamatan kerja dan praktikum D3 5

II. PANDUAN LABORATORIUM PRAKTEK

Bagian panduan ini untuk pelaksanaan kuliah praktek bongkar-pasang

perangkat computer dan jaringan.

Untuk keselamatan anda, mohon patuhi ketentuan berikut:

1. Pembongkaran

a. Matikan daya listrik yang mengalir ke perangkat sebelum

membongkar.

b. Selalu "grounding" kan tubuh anda dan perangkat yang

dibongkar sebelum menyentuh komponen computer, hal ini

mencegah tersengat listrik statis.

c. Berhati-hati saat melepas komponen, selalu mengacu pada

langkah-langkah yang dijelaskan instruktur.

d. Gunakan peralatan yang tepat untuk pekerjaan yang spesifik.

Jangan gunakan perangkat bantu (obeng/tang) yang tidak sesuai

dengan kebutuhan.

e. Letakkan komponen yang telah dilepas pada tempat yang

disediakan.

2. Pemasangan

a. Matikan daya listrik yang mengalir ke perangkat sebelum

instalasi

b. Berhati-hati saat memasang komponen, selalu mengacu pada

langkah-langkah yang dijelaskan instruktur.

c. Berhati-hati saat menggunakan peralatan, khususnya tang

crimping, dan obeng, pisau (memiliki sisi tajam).

d. Jangan memaksakan instalasi suatu komponen, jika tidak bisa

terpasang, segera hubungi instuktur.

Panduan keselamatan kerja dan praktikum D3 6

III. PANDUAN PENANGGULANGAN

Bagian ini menjelaskan langkah-langkah yang harus dilakukan jika terjadi

kecelakan atau kesalahan.

1. Jika perangkat mengalami hubungan singkat

Jika perangkat mengeluarkan asap, dan atau percikan api, segera

putuskan hubungan listrik ke perangkat dan menghubungi petugas /

instruktur.

2. Jika perangkat terbakar

Segera padamkan dengan fire extinguisher yang tersedia. Atau

segera laporkan pada petugas

3. Jika perangkat tidak bekerja (hardware)

Segera laporkan kepada instruktur dan atau asisten lab petugas,

jangan berusaha untuk memperbaikinya sendiri.

4. Jika mengalami luka mekanis (lecet /tergores) segera hubungi

instruktur (jika saat kelas berjalan) dan melakukan pengobatan.

5. Jika mengalami luka bakar, segera lakukan pertolongan pertama dan

meminta bantuan medis.