BPP Pemrograman Jaringan
BPP Pemrograman Jaringan
PEMROGRAMAN JARINGAN
Oleh:
Felix Andreas Sutanto, M.Cs
LABORATORIUM KOMPUTER
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS STIKUBANK SEMARANG
PRAKTIKUM 1
Pemrograman Jaringan
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami protocol jaringan seperti TCP, UDP dan SCTP
2. Mengenal kemampuan Java untuk pemrograman jaringan
1. Protocol Jaringan
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.
Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan transpor (baik
itu dalam tujuh lapis model referensi OSI atau model DARPA) yang berorientasi sambungan
(connection-oriented) dan dapat diandalkan (reliable).
UDP, singkatan dari User Datagram Protocol, adalah salah satu protokol lapisan transpor TCP/IP
yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless)
antara host-host dalam jaringan yang menggunakan TCP/IP.
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.
4. Tugas
Tuliskan struktur program java yang memanfaatkan kemampuan java dalam menangani jaringan.
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
PRAKTIKUM 2
Stream
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami penggunaan stream.
2. Membuat program pemanfaatan stream.
1. Stream
Stream digunakan untuk menangani proses I/O di Java. Input stream digunakan untuk membaca
data dan output stream untuk menulis data. Kelas stream yang berbeda, seperti
java.io.FileInputStream dan sun.net.TelnetOutputStream, digunakan untuk membaca dan
menulis sumber data tertentu. Namun, semua output stream memiliki metode dasar yang sama
untuk menulis data dan input stream menggunakan metode dasar yang sama untuk membaca
data.
Subclass dari OutputStream menggunakan metode untuk menulis data pada media tertentu.
Misalnya, FileOutputStream menggunakan metode ini untuk menulis data ke dalam file. Metode
dasar OutputStream adalah write (int b). Metode ini mengambil sebuah integer dari 0 sampai 255
sebagai sebuah argumen dan menulis byte sesuai dengan output stream.
Subclass dari InputStream menggunakan metode ini untuk membaca data dari media tertentu.
Misalnya, FileInputStream membaca data dari file. Sebuah TelnetInputStream membaca data
dari koneksi jaringan. Sebuah ByteArrayInputStream membaca data dari sebuah array byte.
Metode dasar InputStream adalah membaca noargs () method. Metode ini membaca satu byte
data dari sumber input stream dan mengembalikannya sebagai int dari 0 sampai 255.
3. Contoh Program
Listing 2.1
import java.io.*;
class input1
{
public static void main(String[] args) throws IOException
{
String str;
BufferedReader br;
br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Masukkan Nama Anda : ");
str= br.readLine();
System.out.println("Hello "+ str);
}
}
Listing 2.2
import java.io.*;
class input2
{
public static void main(String[] args) throws IOException
{
int angka1, angka2;
BufferedReader br;
br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Masukkan Angka1 : ");
4. Tugas
Buatlah program untuk input nim, nama, nilai uts dan uas.
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
10
PRAKTIKUM 3
Internet Address
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami internet address clas
2. Membuat program penerapan internet address clas
1. 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 banyak lagi.
Umumnya, itu mencakup nama host dan alamat IP.
InetAddress memiliki tiga metode statis yang mengembalikan sesuai inisialisasi objek. Metode
tersebut adalah:
public static InetAddress getByName(String hostName)
throws UnknownHostException
public static InetAddress[] getAllByName(String hostName)
throws UnknownHostException
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.
2. Contoh Program
import java.net.*;
class myAddress
{
public static void main (String args[])
{
try
{
InetAddress address = InetAddress.getLocalHost();
System.out.println(address);
}
11
12
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
13
PRAKTIKUM 4
URL
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami tentang URL
2. Membuat program untuk menerapkan URL Class
1. URL Class
Kelas URL adalah cara paling sederhana untuk sebuah program Java untuk menemukan dan
mengambil data dari jaringan. Anda tidak perlu khawatir tentang rincian protokol yang
digunakan, format data yang diambil, atau bagaimana berkomunikasi dengan server, anda cukup
memberitahu URL dan mendapatkan data untuk Anda.
Kelas java.net.URL adalah sebuah abstraksi dari Uniform Resource Locator (URL) seperti
http://www.hamsterdance.com/ atau ftp://ftp.redhat.com/pub/. Listing program berikut adalah
contoh penggunaan kelas URL yang meliputi pengecekan URL dan berbagai cara penulisannya
menggunakan kelas URL.
URL terdiri dari lima bagian, yaitu Skema atau dikenal sebagai protokol, kewenangan, path,
fragmen pengenal, juga dikenal sebagai bagian atau ref serta string query. Contohnya adalah
sebagai berikut:
http://java.sun.com:80/docs/books/tutorial/index.html#DOWNLOADING
Contoh penerapannya adalah sebagai berikut:
import java.net.*;
public class urltest1 {
public static void main (String args[]) {
URL webURL, ftpURL;
try {
webURL = new URL("http://www.macfaq.com/vendor.html");
System.out.println(webURL);
ftpURL = new URL("ftp://ftp1.macfaq.com/pub/");
System.out.println(ftpURL);
}
catch (MalformedURLException e) {
System.err.println("URL Salah");
}
}
}
Universitas Stikubank Fakultas Teknologi Informasi
14
Contoh program akan membaca data dari URL www.unisbank.ac.id. Hasil dari program adalah
kode-kode HTML penyusun web.
import java.net.*;
import java.io.*;
public class URLConnectionReader
{
public static void main(String[] args) throws Exception
{
URL alamat = new URL("http://www.unisbank.ac.id");
URLConnection yc = alamat.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
15
16
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
17
PRAKTIKUM 5
SOCKET
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami penggunaan port.
2. Memahami penggunaan socket untuk server dan client.
1. Port
Nomor-nomor di bawah angka 1024 merupakan port yang umum digunakan dan ditetapkan oleh
IANA (Internet Assigned Number Authority). Tabel 5.1 berikut ini menyebutkan beberapa port
TCP yang telah umum digunakan.
Tabel 5.1. Contoh Well Known Port
Nomor port TCP
20
21
23
25
53
67
68
80
110
137
138
139
161
445
Keterangan
File Transfer Protocol/FTP (digunakan untuk saluran data)
File Transfer Protocol/FTP (digunakan untuk saluran kontrol)
Telnet
SMTP yang digunakan untuk mengirim e-mail
Domain Name System (DNS) Name Query
BOOTP client (Dynamic Host Configuration Protocol [DHCP])
BOOTP server (DHCP)
Hypertext Transfer Protocol yang digunakan untuk World Wide Web.
Post Office Protocol 3/POP3 untuk menerima e-mail.
NetBIOS Name Service
NetBIOS Datagram Service
NetBIOS over TCP session service
Simple Network Management Protocol (SNMP)
Server Message Block (SMB)
18
19
20
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
21
PRAKTIKUM 6
TCP Socket
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami socket TCP
2. Membuat implementasi program.
1. Socket TCP
Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan transpor yang
berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable). TCP memiliki
karakteristik sebagai berikut:
1. Berorientasi sambungan (connection-oriented): Sebelum data dapat ditransmisikan antara
dua host, dua proses yang berjalan pada lapisan aplikasi harus melakukan negosiasi untuk
membuat sesi koneksi terlebih dahulu. Koneksi TCP ditutup dengan menggunakan proses
terminasi koneksi TCP (TCP connection termination).
2. Full-duplex: Untuk setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua
buah jalur, yakni jalur keluar dan jalur masuk. Dengan menggunakan teknologi lapisan
yang lebih rendah yang mendukung full-duplex, maka data pun dapat secara simultan
diterima dan dikirim. Header TCP berisi nomor urut (TCP sequence number) dari data
yang ditransmisikan dan sebuah acknowledgment dari data yang masuk.
3. Dapat diandalkan (reliable): Data yang dikirimkan ke sebuah koneksi TCP akan
diurutkan dengan sebuah nomor urut paket dan akan mengharapkan paket positive
acknowledgment dari penerima. Jika tidak ada paket Acknowledgment dari penerima,
maka segmen TCP (protocol data unit dalam protokol TCP) akan ditransmisikan ulang.
Pada pihak penerima, segmen-segmen duplikat akan diabaikan dan segmen-segmen yang
datang tidak sesuai dengan urutannya akan diletakkan di belakang untuk mengurutkan
segmen-segmen TCP. Untuk menjamin integritas setiap segmen TCP, TCP
mengimplementasikan penghitungan TCP Checksum.
4. Byte stream: TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk
dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan (kontigu). Nomor urut
TCP dan nomor acknowlegment dalam setiap header TCP didefinisikan juga dalam
bentuk byte. Meski demikian, TCP tidak mengetahui batasan pesan-pesan di dalam byte
stream TCP tersebut. Untuk melakukannya, hal ini diserahkan kepada protokol lapisan
aplikasi (dalam DARPA Reference Model), yang harus menerjemahkan byte stream TCP
ke dalam "bahasa" yang ia pahami.
22
2. Program Server
import java.io.*;
import java.net.*;
public class simpleServer
{
public final static int TESTPORT = 1234;
public static void main(String args[])
{
ServerSocket checkServer = null;
String line;
BufferedReader is = null;
DataOutputStream os = null;
Socket clientSocket = null;
try
{
checkServer = new ServerSocket(TESTPORT);
System.out.println("Server Ready ...");
}
catch (IOException e)
{
System.out.println(e);
}
try
{
clientSocket = checkServer.accept();
is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
23
24
25
4. Tugas
Buatlah program untuk memasukkan nama anda ke server dari suatu client.
26
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
27
PRAKTIKUM 7
UDP Socket
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami UDP Socket.
2. Mengimplementasikan UDP socket pada server dan client.
1. UDP Socket
User Datagram Protocol (UDP), adalah salah satu protokol lapisan transpor TCP/IP yang
mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara
host-host dalam jaringan yang menggunakan TCP/IP. UDP memiliki karakteristik-karakteristik
berikut:
1. Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus
dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi.
2. Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa
adanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan
di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama
transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP
mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan
secara periodik atau dengan menggunakan waktu yang telah didefinisikan.
3. UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan
aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan
TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process
Identification.
4. UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan
UDP.
2. Program Server
import java.net.*;
import java.io.*;
class ServerDatagram
{
public static DatagramSocket ds;
public static int clientport=800,serverport=900;
public static void main (String args[]) throws Exception
{
byte buffer[]= new byte[1024];
ds= new DatagramSocket (serverport);
Universitas Stikubank Fakultas Teknologi Informasi
28
3. Program Client
import java.net.*;
import java.io.*;
class ClientDatagram
{
public static DatagramSocket d;
public static byte buffer[] = new byte [1024];
public static int clientport=800,serverport =900;
public static void main (String args[]) throws Exception
{
d= new DatagramSocket (clientport);
System.out.println ("Client sedang menunggu server mengirimkan data ");
System.out.println ("tekan Ctrl + C untuk mengakhiri ");
while (true)
{
DatagramPacket p = new DatagramPacket (buffer, buffer.length);
d.receive (p);
String ps= new String (p.getData(),0,p.getLength());
System.out.println("From Server: "+ ps);
}
}
}
4. Tugas
Modifikasilah program diatas agar menjadi program yang dapat digunakan untuk saling
mengirim pesan pada beberapa komputer.
29
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
30
PRAKTIKUM 8
Komunikasi Antar Obyek
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami cara komunikasi obyek melalui stream.
2. Memahami cara komunikasi obyek melalui socket.
31
32
33
34
35
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
36
PRAKTIKUM 9
Multicast Socket
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami tentang multicast Socket.
2. Mampu membuat program sederhana.
1. Multicast Socket
Multicasting lebih luas daripada unicast, multicasting mengirimkan data dari satu host ke host
yang berbeda, namun tidak untuk semua orang, data hanya pergi ke klien yang telah menyatakan
bergabung dengan kelompok multicast tertentu.
Di Java, multicast data menggunakan kelas java.net.MulticastSocket, sebuah subclass dari
java.net.DatagramSocket. Perilaku MulticastSocket adalah sangat mirip dengan
DatagramSocket's. Anda memasukkan data Anda pada objek DatagramPacket yang Anda kirim
dan terima dengan MulticastSocket. Konstruktor ini melemparkan SocketException jika Socket
tidak dapat dibuat. Sebagai contoh:
try {
MulticastSocket ms = new MulticastSocket( );
// send some datagrams...
}
catch (SocketException se) {
System.err.println(se);
}
2. Contoh Program
MulticastSniffer.java
import java.net.*;
import java.io.*;
public class MulticastSniffer {
public static void main(String[] args) {
InetAddress group = null;
int port = 0;
try {
37
MulticastSender.java
import java.net.*;
import java.io.*;
38
39
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
40
PRAKTIKUM 10
Aplikasi Terapan
Tujuan Instruksional
Setelah mengikuti praktikum ini, Mahasiswa diharapkan mampu untuk:
1. Memahami proses pengiriman email
2. Membuat program untuk mengirim email
41
2. Membuat Program
Bahasa Java telah menyediakan paket untuk mengakses socket melalui paket java.net. Adapun
kelas yang akan digunakan untuk mengakses socket server adalah kelas Socket. Format
penggunaannya adalah sebagai berikut:
Socket(nama_server/ip_address, port)
Untuk mengirimkan perintah ke server saat koneksi terjadi digunakan bantuan paket java.io
seperti DataOutputStream untuk menginput perintah ke server dan BufferedReader untuk
mendapatkan respon dari server.
import java.net.*;
import java.io.*;
public class emailku
{
public static void main(String[] argc)
{
Socket s1;
DataOutputStream p1=null;
BufferedReader d1=null;
String recvreply;
try
42
43
3. Tugas
Modifikasi program diatas supaya dapat mengirimkan email secara flexibel. (Semua input
diberikan oleh pemakai program).
44
Judul Tugas
Program Studi
TTD Dosen :
Nilai :
45
46