pm-umm-02-03/l1informatika.teknik.ummgl.ac.id/wp-content/uploads/2019/... · 2019-10-20 · 4....
TRANSCRIPT
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 bertype 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.