0% menganggap dokumen ini bermanfaat (0 suara)
125 tayangan

Java Communication API

Dokumen tersebut membahas tentang Java Communication API yang meliputi arsitektur Java Communication API, keuntungan penggunaan API dibandingkan system call, jenis-jenis system calls, identifikasi port dan internet address menggunakan InetAddress, serta penggunaan socket untuk klien dan server dalam bahasa pemrograman Java.

Diunggah oleh

Cuingq Xcode
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
125 tayangan

Java Communication API

Dokumen tersebut membahas tentang Java Communication API yang meliputi arsitektur Java Communication API, keuntungan penggunaan API dibandingkan system call, jenis-jenis system calls, identifikasi port dan internet address menggunakan InetAddress, serta penggunaan socket untuk klien dan server dalam bahasa pemrograman Java.

Diunggah oleh

Cuingq Xcode
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

Algoritma dan Pemrograman 3

JAVA COMMUNICATION API


A. Arsitektur Java Communication API
Contoh System Call

Dalam contoh program sederhana di atas, dibutuhkan setidaknya ribuan system calls
per detik. Oleh karena itu Kebanyakan programmer membuat aplikasi dengan
menggunakan Application Programming Interface (API). Dalam API itu terdapat fungsi-
fungsi atau perintah-perintah untuk menggantikan bahasa yang digunakan dalam
system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh
programmer. Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan
memanggil system calls sesuai dengan sistem operasinya. Tidak tertutup kemungkinan
nama dari system calls sama dengan nama di API.

Keuntungan memprogram dengan menggunakan API adalah:


1. Portabilitas. Programmer yang menggunakan API dapat menjalankan programnya
dalam sistem operasi mana saja asalkan sudah ter-install API tersebut. Sedangkan
system call berbeda antar sistem operasi, dengan catatan dalam implementasinya
mungkin saja berbeda.
2. Lebih Mudah Dimengerti. API menggunakan bahasa yang lebih terstruktur dan
mudah dimengerti daripada bahasa system call. Hal ini sangat penting dalam hal
editing dan pengembangan.

System call interface ini berfungsi sebagai penghubung antara API dan system call
yang dimengerti oleh sistem operasi. System call interface ini akan menerjemahkan
perintah dalam API dan kemudian akan memanggil system calls yang diperlukan. Untuk
membuka suatu file tersebut user menggunakan program yang telah dibuat dengan
menggunakan bantuan API, maka perintah dari user tersebut diterjemahkan dulu oleh
program menjadi perintah open(). Perintah open() ini merupakan perintah dari API dan
bukan perintah yang langsung dimengerti oleh kernel sistem operasi. Oleh karena itu,

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 1


Algoritma dan Pemrograman 3

agar keinginan user dapat dimengerti oleh sistem operasi, maka perintah open() tadi
diterjemahkan ke dalam bentuk system call oleh system call interface. Implementasi
perintah open() tadi bisa bermacam-macam tergantung dari sistem operasi yang
digunakan.

Jenis System Calls


System call dapat dibedakan menjadi beberapa tipe, diantaranya adalah:
1. Manajemen Proses. System call untuk manajemen proses diperlukan untuk mengatur
proses-proses yang sedang berjalan. Kita dapat melihat penggunaan system calls
untuk manajemen proses pada Sistem Operasi Unix. Contoh yang paling baik untuk
melihat bagaimana system call bekerja untuk manajemen proses adalah Fork. Fork
adalah satu satunya cara untuk membuat sebuah proses baru pada sistem Unix.
2. Manajemen Berkas. System calls yang berhubungan dengan berkas sangat
diperlukan. Seperti ketika kita ingin membuat atau menghapus suatu berkas, atau
ketika ingin membuka atau menutup suatu berkas yang telah ada, membaca berkas
tersebut, dan menulis berkas itu. System calls juga diperlukan ketika kita ingin
mengetahui atribut dari suatu berkas atau ketika kita juga ingin merubah atribut
tersebut. Yang termasuk atribut berkas adalah nama berkas, jenis berkas, dan lain-
lain. Ada juga system calls yang menyediakan mekanisme lain yang berhubungan
dengan direktori atau sistem berkas secara keseluruhan. Jadi bukan hanya
berhubungan dengan satu spesifik berkas. Contohnya membuat atau menghapus
suatu direktori, dan lain-lain.
3. Manajemen Piranti. Program yang sedang dijalankan kadang kala memerlukan
tambahan sumber daya. Jika banyak pengguna yang menggunakan sistem dan
memerlukan tambahan sumber daya maka harus meminta piranti terlebih dahulu.
Lalu setelah selesai, penggunaannya harus dilepaskan kembali dan ketika sebuah
piranti telah diminta dan dialokasikan maka piranti tersebut bisa dibaca, ditulis, atau
direposisi.
4. System Call Informasi atau Pemeliharaan. Beberapa system calls disediakan untuk
membantu pertukaran informasi antara pengguna dan sistem operasi, contohnya
adalah system calls untuk meminta dan mengatur waktu dan tanggal atau meminta
informasi tentang sistem itu sendiri, seperti jumlah pengguna, jumlah memori dan
disk yang masih bisa digunakan, dan lain-lain. Ada juga system calls untuk meminta
informasi tentang proses yang disimpan oleh sistem dan system calls untuk merubah
informasi tersebut.
5. Komunikasi. Terdapat 2 (dua) model komunikasi, diantaranya adalah
a. Message-passing. Pertukaran informasi dilakukan melalui fasilitas komunikasi
antar proses yang disediakan oleh sistem operasi.
b. Shared-memory. Proses menggunakan memori yang bisa digunakan oleh
berbagai proses untuk pertukaran informasi dengan membaca dan menulis data
pada memori tersebut. Dalam message-passing, sebelum komunikasi dapat
dilakukan harus dibangun dulu sebuah koneksi. Untuk itu diperlukan suatu
system calls dalam pengaturan koneksi tersebut, baik dalam menghubungkan
koneksi tersebut maupun dalam memutuskan koneksi tersebut ketika komunikasi
sudah selesai dilakukan. Juga diperlukan suatu system calls untuk membaca dan
menulis pesan (message) agar pertukaran informasi dapat dilakukan.

B. Identifikasi Port
Internet Address
Kelas java.net.InetAddress adalah level tingkat tinggi dari java untuk representasi
sebuah alamat IP, baik IPv4 dan IPv6. Hal ini digunakan oleh sebagian besar kelas-kelas
jaringan lainnya, termasuk Socket, ServerSocket, URL, DatagramSocket,
DatagramPacket, dan lain-lain. Umumnya, itu mencakup nama host dan alamat IP.

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 2


Algoritma dan Pemrograman 3

InetAddress memiliki 3 (tiga) metode statis yang mengembalikan sesuai inisialisasi


objek. Metode tersebut adalah sbb:
1. public static InetAddress getByName(String hostName)
throws UnknownHostException
2. public static InetAddress[] getAllByName(String hostName)
throws UnknownHostException
3. public static InetAddress getLocalHost( )
throws UnknownHostException

Ketiga metode ini dapat membuat koneksi ke server DNS lokal untuk mengisi informasi
dalam objek InetAddress. Metode lainnya di kelas ini, seperti getAddress () dan
getHostName (), sebagian besar bekerja dengan informasi yang diberikan oleh salah
satu dari tiga metode.

Contoh Program

import java.net.*;
class myAddress
{
public static void main (String args[])
{
try
{
InetAddress address = InetAddress.getLocalHost();
System.out.println(address);

}
catch (UnknownHostException e)
{
System.out.println("Could not find this computer's address.");
}
}
}

Port
Nomor-nomor di bawah angka 1024 merupakan port yang umum digunakan dan
ditetapkan oleh IANA (Internet Assigned Number Authority). Tabel berikut ini
(ContohWellKnownPort) menyebutkan beberapa port TCP yang telah umum digunakan.

No. Port Keterangan


TCP
20 File Transfer Protocol/FTP (digunakan untuk saluran data)
21 File Transfer Protocol/FTP (digunakan untuk saluran kontrol)
23 Telnet
25 SMTP yang digunakan untuk mengirim e-mail
53 Domain Name System (DNS) Name Query
67 BOOTP client (Dynamic Host Configuration Protocol [DHCP])
68 BOOTP server (DHCP)
80 Hypertext Transfer Protocol yang digunakan untuk World
Wide Web
110 Post Office Protocol 3/POP3 untuk menerima e-mail
137 NetBIOS Name Service
138 NetBIOS Datagram Service
139 NetBIOS over TCP session service

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 3


Algoritma dan Pemrograman 3

161 Simple Network Management Protocol (SNMP)


445 Server Message Block (SMB)

Socket Untuk Client


Kelas java.net.Socket adalah kelas fundamental Java untuk melakukan operasi TCP
client-side.

import java.net.*;
import java.io.*;
public class myport
{
public static void main(String[] args)
{
Socket theSocket;
String host = "localhost";
for (int i = 0; i <=100; i++)
{
try
{
theSocket = new Socket(host, i);
System.out.println("There is a server on port " + i + " of "
+ host);
}
catch (UnknownHostException e)
{
System.err.println(e);
break;
}
catch (IOException e)
{}
}
}
}

Socket untuk Server


Kelas ServerSocket berisi semua yang diperlukan untuk menulis server di Java. Ini
memiliki konstruktor yang membuat objek baru ServerSocket, metode yang
mendengarkan koneksi pada port tertentu, metode yang mengkonfigurasi opsi server
berbagai soket, dan bermacam-macam metode biasa seperti toString (). Dalam
pemrograman java siklus hidup dasar dari suatu program server adalah:
1. Sebuah ServerSocket yang baru dibuat pada sebuah port tertentu menggunakan
konstruktor ServerSocket ()
2. The ServerSocket mendengarkan upaya koneksi masuk pada port menggunakan
metode accept()
3. Tergantung pada jenis server, baik getInputStream Socket's (), getOutputStream (),
atau keduanya dipanggil untuk mendapatkan input dan output stream yang
berkomunikasi dengan klien
4. Server dan klien berinteraksi sesuai dengan yang telah disepakati protokol sampai
saatnya untuk menutup koneksi
5. Server, klien, atau keduanya menutup koneksi
6. Server kembali ke langkah 2 dan menunggu sambungan berikutnya.

import java.net.*;
import java.io.*;
public class serverport

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 4


Algoritma dan Pemrograman 3
{
public static void main(String[] args)
{
ServerSocket theServer;
for (int i = 1024; i <= 65535; i++)
{
try
{
theServer = new ServerSocket(i);
theServer.close();
}
catch (IOException e)
{
System.out.println("There is a server on port " + i +
".");
}
}
}
}

C. Komunikasi Alat Melalui Port


Protocol Jaringan
1. Internet Protokol (IP) adalah protokol lapisan jaringan (network layer dalam OSI
Reference Model) atau protokol lapisan internetwork (internetwork layer dalam
DARPA Reference Model) yang digunakan oleh protokol TCP/IP untuk melakukan
pengalamatan dan routing paket data antar host-host di jaringan komputer berbasis
TCP/IP.
2. Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan
transport (baik itu dalam tujuh lapis model referensi OSI atau model DARPA) yang
berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable).
3. User Datagram Protocol (UDP) adalah salah satu protokol lapisan transport TCP/IP
yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi
(connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP.

Pemrograman Jaringan dengan Java


Pemrograman socket adalah cara untuk menggunakan komponen API (Application
Programming Interface) socket untuk membuat sebuah aplikasi. Java telah menyediakan
paket java.net yang berisi kelas-kelas dan interface yang menyediakan API (Application
Programming Interface) level rendah (Socket, ServerSocket, DatagramSocket) dan level
tinggi (URL, URLConnection). Socket merupakan fasilitas IPC (Inter Proses
Communication) untuk aplikasi jaringan. Cara kerja socket dapat digambarkan seperti
pada gambar berikut:

Client Menghubungi Server

Server Menghubungi Client


Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 5
Algoritma dan Pemrograman 3

Sebuah socket dilengkapi dengan alamat, yang terdiri atas IP address tujuan dan
nomor port. Alamat IP dapat menggunakan alamat jaringan lokal (LAN) maupun
alamat internet. Jadi socket dapat digunakan untuk IPC pada LAN maupun Internet.
Nomor port merupakan bilangan bulat yang digunakan untuk membedakan layanan-
layanan yang berjalan pada komputer server yang sama. Pengguna layanan
menggunakan nomor port ini untuk menghubungi komputer server dengan workstation
(client). Dengan menggunakan nomor port yang standar, komunikasi dapat terjadi antar
beberapa komputer dari jarak jauh untuk mengerjakan berbagai layanan jaringan,
karena baik pengirim maupun penerima saling mengetahui ke mana data harus dikirim
menggunakan nomor port tersebut. Sebagai contoh, semua sistem menggunakan
nomor port 23 untuk aplikasi TELNET atau port 80 untuk aplikasi website. Oleh karena
pada perancangan sistem akan dibuat suatu jenis layanan baru dengan memanfaatkan
socket, maka dapat dibuat nomor port tersendiri untuk aplikasi tersebut.

Paket Java Network


Beberapa kelas java.net yang dapat digunakan dalam menerapkan pemrograman
jaringan adalah:
1. Socket(InetAddress address, int port), untuk membuat sebuah stream socket dan
koneksi ke suatu nomor port pada sebuah komputer yang memiliki alamat IP
2. Socket(String host, int port), untuk membuat sebuah stream socket dan juga koneksi
ke suatu port tertentu pada sebuah komputer berdasar namanya
3. Socket(InetAddress address, int port, InetAddress localAddr,int
localPort)/Socket(String host, int port, InetAddress localAddr, int localPort), untuk
membuat sebuah socket dan mengkoneksikannya ke port yang dituju pada alamat IP
yang disebutkan pada parameter address atau nama host. Selain itu juga akan
dilakukan bind socket ke alamat lokal dan port lokal. (Hal ini dilakukan jika koneksi
antara client dan server membutuhkan nomor port yang sudah ditentukan)
4. getInetAddress(), untuk mendapatkan nama host yang dituju dan alamat Ipnya
5. getPort(), untuk mendapatkan nomor remote host
6. getLocalPort(), untuk mendapatkan nomor port localhost
7. getLocalAddress(), untuk mendapatkan alamat local dimana socket digunakan
8. getInputStream(), mengembalikan objek input stream dari socket
9. getOutputStream(), mengembalikan objek output stream ke socket
10.ServerSocket( int port [, int backlog [, InetAddress bindAddress ]] ), untuk membuat
sebuah server dengan port tertentu, batasan jumlah antrian (backlog), dan alamat IP
bindAddress
11.DatagramSocket(int port), untuk menyatakan penggunaan suatu nomor port sebagai
"pintu" untuk menerima koneksi dari client
12.DatagramSocket(int port, InetAddress laddr), untuk membentuk koneksi dengan
protokol UDP pada alamat IP lokal tertentu dan pada nomor port tertentu
13.DatagramSocket(), untuk membentuk koneksi dengan protokol UDP pada alamat IP
local host dengan penentuan nomor portnya secara random berdasar tersedianya
nomor port yang dapat digunakan
14.DatagramPacket(byte[] buf, int length), untuk mengambil informasi
15. DatagramPacket(byte[] buf, int length, InetAddress address, int port), untuk
membuat paket Datagram yang akan mengirim data. Constructor ini memerlukan
informasi array byte yang akan dikirim dan panjangnya, serta alamat dan port yang
dituju

Komunikasi Obyek melalui Stream


Pada pemrograman socket, umumnya data yang dikirimkan berupa data stream. Stream
memungkinkan juga untuk mengirimkan obyek melalui suatu mekanisme yang disebut
serialisasi objek. Serialisasi objek (Object Serialization) adalah suatu teknik yang

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 6


Algoritma dan Pemrograman 3

memungkinkan program untuk menyimpan status objek ke dalam sebuah file, kemudian
dibaca kembali dari file ke memori atau dikirimkan melalui jaringan.

Staff.java
import java.io.*;
public class Staff implements Serializable{
String nama;
String divisi;
int umur;
public Staff(String nama, String divisi, int umur)
{
this.nama=nama;
this.divisi=divisi;
this.umur= umur;
}
public void print()
{
System.out.println("Data Staff: ");
System.out.println("Nama : " + nama);
System.out.println("Divisi : " + divisi);
System.out.println("Umur : "+ umur);
}

ObjectClient.java
import java.net.*;
import java.io.*;
public class ObjectClient{
private static int SRV_PORT = 5000;
private static ObjectOutputStream os=null;

public static void main(String argv[]) throws Exception{


try{
Socket soketClient= new Socket("127.0.0.1", SRV_PORT);
os= new
ObjectOutputStream(soketClient.getOutputStream());
Staff pegawai= new Staff("Steve","IT",24);
os.writeObject(pegawai);
System.out.println("Client mengirim data pegawai:");
pegawai.print();
}
catch(Exception e){
e.printStackTrace();
}
}
}

ObjectServer.java
import java.net.*;
import java.io.*;
public class ObjectServer {
private static int SRV_PORT=5000;
private static ObjectInputStream is=null;

public static void main(String argv[]) throws Exception{

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 7


Algoritma dan Pemrograman 3
ServerSocket soketServer= new ServerSocket(SRV_PORT);
Socket soketClient= soketServer.accept();
is= new ObjectInputStream(soketClient.getInputStream());
Staff pegawai= (Staff) is.readObject();
System.out.println("Server menerima data Pegawai");
pegawai.print();
}
}

D. Port Serial dan Port Paralel


JavaTM communications API merupakan library tambahan untuk Java agar dapat
digunakan untuk membuat program aplikasi yang dapat dihubungkan ke fax, voice
mail, dan smart card. Library tambahan tersebut memiliki class-class yang dapat
digunakan untuk berkomunikasi dengan device-device yang terhubung dengan
komputer. JavaTM communications API dapat diimplementasikan pada sistem ber-
platform solaris atau Win32. Java TM communications API mendukung untuk komunikasi
RS232 serial port dan IEEE 1284 parallel port. Beberapa fungsi pada Java TM
communications API adalah:
1. Dapat memperlihatkan port-port berguna yang ada pada system
2. Dapat membuka dan mengklaim kepemilikan dari port yang terbuka
3. Dapat memutuskan hubungan dengan port
4. Dapat digunakan untuk berbagai aplikasi
5. Mendukung komunikasi I/O asyncronous dan syncronous
6. Dapat menerima event yang menggambarkan perubahan state pada port

Bahasa pemrograman java mendukung komponen RS232 tersebut yang disebut dengan
javacommapi yang terdiri dari comm.jar, javax.comm.properties, dan win32com.dll
yang dapat diunduh/download pada web site
http://java.sun.com/products/javacomm/index.jsp. Untuk system operasi Ms. Windows
2000 dan XP, hasil install-an sering kali bermasalah. Cara penanganannya adalah
sebagai berikut:
1. Copy comm.jar pada direktori <install-an>\jre\lib\ext
2. Copy win32com.dll pada direktori <install-an>\jre\bin
3. Copy javax.comm.properties pada direktori <install-an>\jre\lib

Hal-hal yang perlu diketahui pada komunikasi yaitu kecepatan pengiriman, data bits,
parity, stop bits, dan flow control.
1. Kecepatan pengiriman, 300 bps sampai dengan 921600
2. Data bits, 5 sampai dengan 8 bits
3. Parity terdiri dari even, odd dan none
4. Stop bits, 1, 1.5 dan 2
5. Flow Control None

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 8


Algoritma dan Pemrograman 3

Properties RS232

Pada salah satu contoh program pada web site www.sun.com untuk menggunakan alat
RS232 adalah SimpleRead.java dan SimpleWrite.java. SimpleRead.java adalah program
untuk membaca data yang didapatkan dari RS232 dan SimpleWrite.java adalah program
untuk mengirimkan data melalui RS232. Dengan catatan kecepatan, data bit, stop bit,
dan parity harus sama antara satu dengan lainnya

Daftar pustaka:
risdawati.staff.gunadarma.ac.id
heri.staff.unisbank.ac.id
thesis.binus.ac.id
johan.big.net.id

Pertemuan 12 - Jeje, SKom, MMSI Universitas Gunadarma 9

Anda mungkin juga menyukai