0% found this document useful (0 votes)
87 views

Laporan Praktikum Pemrograman Jaringan

This document summarizes Robertus's network programming practicum report. It discusses two practicums: 1. Creating a client-server application with code examples for both the client and server programs. The client sends messages to the server and the server receives them. 2. Creating a threaded application with a MyThread class that implements Runnable and prints the current date and time every second using the sleep method. The report provides code snippets and explanations of how the programs work, such as establishing connections, reading/writing streams, and using threads. Screenshots show the client and server interacting by exchanging messages.

Uploaded by

jenly mangande
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views

Laporan Praktikum Pemrograman Jaringan

This document summarizes Robertus's network programming practicum report. It discusses two practicums: 1. Creating a client-server application with code examples for both the client and server programs. The client sends messages to the server and the server receives them. 2. Creating a threaded application with a MyThread class that implements Runnable and prints the current date and time every second using the sleep method. The report provides code snippets and explanations of how the programs work, such as establishing connections, reading/writing streams, and using threads. Screenshots show the client and server interacting by exchanging messages.

Uploaded by

jenly mangande
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

LAPORAN

PRAKTIKUM PEMROGRAMAN JARINGAN

DISUSUN
OLEH :
ROBERTUS (216611037)

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS KRISTEN INDONESIA TORAJA
2017/2018
A. Praktikum 1 : Membuat Aplikasi Client Server
1. Kode Program
a. Aplikasi Client

package appclient;

import java.io.*;
import java.net.*;

public class AppClient {

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

Socket client = null;


InputStream in = null;
OutputStream out = null;
byte[] recvMsgSize = new byte[64];

try {
client = new Socket ("localhost",8881);
in = client.getInputStream();
out = client.getOutputStream();
} catch (IOException e) {
System.out.println(e.getMessage());
System.exit(-1);
}

String fromServer;
String fromUser;

in.read(recvMsgSize);
fromServer = new String(recvMsgSize);
System.out.println("Server:"+fromServer);
fromUser = "Salam dari Client";
System.out.println("Kirim ke server:"+fromUser);
out.write(fromUser.getBytes());
fromUser = "Ini data dari client";
System.out.println("Kirim ke Server:"+fromUser);
out.write(fromUser.getBytes());
fromUser = "Keluar";
System.out.println("Kirim ke server:"+fromUser);
out.write(fromUser.getBytes());
out.close();
in.close();
client.close();
}
}

b. Aplikasi Server

package appserver;

import java.io.*;
import java.net.*;

public class AppServer {

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


ServerSocket server = null;
Socket client = null;
byte[] receiveBuf = new byte[64];
int recvMsgSize;

try {
server = new ServerSocket(8881);
System.out.println("Server started");
client = server.accept();
System.out.println("Client connected");
} catch (IOException e) {
System.out.println(e.getMessage());
System.exit(-1);
}

InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
String data;
data = "Salam dari server";
out.write(data.getBytes());
java.util.Arrays.fill(receiveBuf, (byte)0);

while(true) {
recvMsgSize = in.read(receiveBuf);
data = new String(receiveBuf);
if(data.trim().equals("Keluar")) {
out.write(data.getBytes());
break;
}
java.util.Arrays.fill(receiveBuf, (byte)0);
System.out.println("Client: "+data);
}

out.close();
in.close();
client.close();
server.close();
}
}

2. Penjelasan Program
a. Aplikasi Client
 package appclient  appclient adalah nama package
 import java.io.*  mengimpor paket java.io agar kita dapat menggunakan
class-class untuk proses input dan output di java
 import java.net.*  mengimpor paket java.net agar kita dapat
menggunakan class-class yang berhubungan dengan jaringan
 public class AppClient  AppClient merupakan nama class yang bersifat
public
 public static void main(String args[]) throws IOException  merupakan
method utama yang memberi pengecualian Input/Output
 Socket client = null  membuat variabel client yang akan digunakan
sebagai socket dan nilainya null(tidak ada)
 InputStream in = null  membuat variabel in yang akan digunakan untuk
InputStream dan nilainya null(tidak ada)
 OutputStream out = null  membuat variabel out yang akan digunakan
untuk OutputStream dan nilainya null(tidak ada)
 byte[] recvMsgSize = new byte[64]  membuat variabel receiveBuf yang
bertipe array byte dengan jumlah indeks 64
 try {} catch () {}  ditempatkan pada kode yang mungkin mengalami
pengecualian atau kode yang dilindungi, digunakan juga untuk menangani
pesan error dan melanjutkan jalannya program tanpa harus berhenti
karena error.
 client = new Socket ("localhost",8881)  isi dari variabel client yaitu
socket baru dengan localhost dan port 8881 untuk terhubung ke server
 in = client.getInputStream()  mengambil kembalian input stream untuk
socket dan disimpan di variabel in
 out = client.getOutputStream()  mengambil kembalian OutputStream
untuk socket dan disimpan di variabel out
 System.out.println(e.getMessage())  menampilkan detail pesan
 System.exit(-1)  mengakhiri proses yang berjalan saat bernilai -1
 String fromServer  membuat variabel fromServer bertipe String
 String fromUser  membuat variabel fromUser bertipe String
 in.read(recvMsgSize)  membaca nilai byte dari variabel recvMsgSize ke
var in
 fromServer = new String(recvMsgSize)  membuat variabel fromServer
berisi nilai String dari variabel recvMsgSize
 fromUser = "Salam dari Client"  isi dari variabel fromUser
 System.out.println("Kirim ke server:"+fromUser)  menampilkan tulisan
Kirim ke server dan nilai dari variabel fromUser
 out.write(fromUser.getBytes())  menulis nilai byte pada variabel
fromUser ke variabel out
 out.close()  menutup OutputStream
 in.close()  menutup InputStream
 client.close()  menutup socket

b. Aplikasi Server
 package appserver  appserver merupakan nama paket dari aplikasi
server
 import java.io.*  mengimport paket java.io agar kita dapat
menggunakan class-class untuk proses input dan output di java
 import java.net.*  mengimport paket java.net agar kita dapat
menggunakan class-class yang berhubungan dengan jaringan komputer
 public class AppServer AppServer merupakan nama class yang bersifat
public
 public static void main(String[] args) throws IOException  merupakan
method utama yang memberi pengecualian Input/Output
 ServerSocket server = null;  membuat variabel server yang akan
digunakan sebagai serversocket dan nilainya null(tidak ada)
 Socket client = null;  membuat variabel client yang akan digunakan
sebagai socket dan nilainya null(tidak ada)
 byte[] receiveBuf = new byte[64];  membuat variabel receiveBuf yang
bertipe array byte dengan jumlah indeks 64
 int recvMsgSize;  membuat variabel recvMsgSize dengan tipe int
 try {} catch () {}  ditempatkan pada kode yang mungkin mengalami
pengecualian atau kode yang dilindungi, digunakan juga untuk menangani
pesan error dan melanjutkan jalannya program tanpa harus berhenti
karena error.
 server = new ServerSocket(8881)  server kini berisi ServerSocket baru
yang menuju ke port 8881
 System.out.println("Server started")  menampilkan tulisan server
started
 client = server.accept()  client menunggu koneksi ke socket dan
diterima oleh server
 System.out.println("Client connected")  menampilkan tulisan client
connected ketika client sudah terhubung ke server
 IOException e  class pengecualian
 System.out.println(e.getMessage());  menampilkan detail pesan
 System.exit(-1)  mengakhiri proses yang berjalan saat bernilai -1
 InputStream in = client.getInputStream()  membuat variabel in dan
nilainya merupakan kembalian input stream untuk socket
 OutputStream out = client.getOutputStream()  membuat variabel out
dan nilainya merupakan kembalian output stream untuk socket
 String data  membuat variabel data dengan tipe String
 data = "Salam dari server"  isi dari variabel data
 out.write(data.getBytes())  menulis nilai byte pada variabel data ke
variabel out
 java.util.Arrays.fill(receiveBuf, (byte)0)  memberikan nilai byte
terhadap setiap elemen bytes array
 while(true)  melakukan perulangan selama masih bernilai TRUE
 recvMsgSize = in.read(receiveBuf)  recvMsgSize sekarang berisi nilai
byte yang terbaca dari input stream dan menyimpannya ke dalam array
 data = new String(receiveBuf)  data sekarang berisi nilai String dari
variabel receiveBuf
 if(data.trim().equals("Keluar"))  jika data yang terbaca adalah
“Keluar”
 out.write(data.getBytes());  tuliskan ke output stream nilai byte
data
 break;  hentikan decision
 System.out.println("Client: "+data)  menampilkan tulisan Client dan
nilai dari variabel data
 out.close()  menutup OutputStream
 in.close()  menutup InputStream
 client.close()  menutup Socket
 server.close()  menutup ServerSocket

3. Hasil Program
a. Aplikasi Client

b. Aplikasi Server
 Sebelum terhubung dengan client
 Setelah terhubung dengan client

B. Praktikum 2 : Membuat Aplikasi Thread


1. Kode Program
a. Class MyThread

package SimpleThread;

import java.util.Calendar;
import java.text.SimpleDateFormat;

public class MyThread implements Runnable {

public void run() {


try {
while (true) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat dt = new SimpleDateFormat("dd-MM-yyyy
HH:mm:ss");
System.out.println("Run on "+dt.format(cal.getTime()));
Thread.sleep(1000);
}
}
catch(Exception ex) {
}
}
}

b. Class Main

package SimpleThread;

import java.util.logging.Level;
import java.util.logging.Logger;
public class Main {

public static void main(String[] args) {


Runnable obj = new MyThread();
Thread thread1 = new Thread(obj);
thread1.start();
}
}

2. Penjelasan Program
a. Class MyThread
 package SimpleThread  SimpleThread merupakan nama package
 import java.util.Calendar  Mengimpor paket java.util.Calendar untuk
pengaturan kalender seperti tahun, bulan, tanggal, jam, dll.
 import java.text.SimpleDateFormat  mengimpor paket
java.text.SimpleDateFormat untuk mengatur format tanggal
 public class MyThread implements Runnable  MyThread merupakan
nama class yang bersifat public yang dapat menjalankan fungsi thread
 public void run()  membuat method procedure bersifat public dengan
nama run
 try {} catch () {}  ditempatkan pada kode yang mungkin mengalami
pengecualian atau kode yang dilindungi, digunakan juga untuk menangani
pesan error dan melanjutkan jalannya program tanpa harus berhenti
karena error.
 while (true)  perulangan akan terus terjadi selama bernilai TRUE
 Calendar cal = Calendar.getInstance()  membuat variabel bernama cal
yang bertipe Calendar dan nilainya akan mengembalikan waktu saat ini
dengan zona waktu default
 SimpleDateFormat dt = new SimpleDateFormat()  membuat variabel
bernama dt dengan tipe SimpleDateFormat untuk menentukan format
dan uraian tanggal sesuai dengan format tanggal yang diisi pada
SimpleDateFormat(). contoh: dd-MM-yyyy HH:mm:ss
 System.out.println("Run on ")  Menampilkan tulisan Run on
 dt.format()  mengatur format tanggal dan waktu menjadi string agar dapat
ditampilkan
 cal.getTime()  Mengembalikan tanggal dan waktu saat ini
 Thread.sleep(1000)  pengeksekusian thread akan terhenti sementara
selama 1000 milisekon
 (Exception ex)  class pengecualian

b. Class Main
 package SimpleThread  SimpleThread merupakan nama package
 import java.util.logging.Level  Mengimpor java.util.logging.Level untuk
mengatur logging level yang digunakan untuk mengontrol logging output
 import java.util.logging.Logger  Mengimpor java.util.logging.Logger
untuk mengatur pesan log untuk setiap sistem atau komponen aplikasi
 public class Main  Main merupakan nama class yang bersifat public
 public static void main(String[] args)  method utama dalam java
 Runnable obj = new MyThread()  Membuat variabel bernama obj yang
dapat menjalankan thread dengan nilainya diambil dari class MyThread
yang dibuat
 Thread thread1 = new Thread(obj)  membuat variabel thread1 dengan
tipe Thread dan variabel obj sebagai objeknya
 thread1.start()  variabel thread1 akan mulai dijalankan

3. Hasil Program

C. Praktikum 3 : Membuat Aplikasi Data Stream


1. Kode Program
a. Aplikasi InputStream

package InputStream;

import java.io.*;

public class Main {

public static void main(String[] args) {


String inputFile = "c:\\Users\\Rmy\\Desktop\\mydata.txt";
try {
InputStream input = new FileInputStream(inputFile);
/* int byteData = input.read();

while(byteData != -1) {
String strData = new String(new byte[] {(byte) byteData});
System.out.println("Data : "+strData);
System.out.println("Data byte : "+byteData);
byteData = input.read();
}
*/

byte[] myData = new byte[10];


int data = input.read(myData);
while (data != -1) {
String strData = new String(myData);
System.out.println("Data: " + strData);
System.out.println("Panjang data terbaca: " + data);
data = input.read(myData);
}

input.close();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
}

b. Aplikasi OutputStream

package OutputStream;

import java.io.*;

public class Main {


public static void main(String[] args) {
String source = "C:\\Users\\Rmy\\Desktop\\mydata.txt";
String dest = "C:\\Users\\Rmy\\Desktop\\Mydataout.txt";
try {
InputStream input = new FileInputStream(source);
byte[] byData = new byte[10];
int data = input.read(byData);

OutputStream output = new FileOutputStream(dest);

while(data !=-1) {
String strData = new String(byData);
System.out.println("Read Data: "+strData);
System.out.println("Panjang pembacaan data: "+data);
System.out.println("Tulis ke file .....");
output.write(byData);
System.out.println("done.");
data = input.read(byData);
}
input.close();
output.close();
System.out.println("Done.");
}catch(IOException e) {
System.err.println(e.getMessage());
}
}
}

2. Penjelasan Program
a. Aplikasi InputStream
 package InputStream  InputStream merupakan nama package
 import java.io.*  mengimport paket java.io agar kita dapat
menggunakan class-class untuk proses input dan output di java
 public class Main  Main merupakan nama class yang bersifat public
 public static void main(String[] args)  method utama dalam java
 String inputFile = "c:\\Users\\Rmy\\Desktop\\mydata.txt"  membuat
variabel inputFile bertipe string dimana isinya terdapat pada file
mydata.txt pada direktori c:\\Users\\Rmy\\Desktop\\mydata.txt
 try {} catch () {}  ditempatkan pada kode yang mungkin mengalami
pengecualian atau kode yang dilindungi, digunakan juga untuk menangani
pesan error dan melanjutkan jalannya program tanpa harus berhenti
karena error.
 InputStream input = new FileInputStream(inputFile)  membuat
variabel input sebagai inputStream kemudian isinya merupakan
FileInputStream pada variabel inputFile
 int byteData = input.read()  membuat variabel byteData bertipe int dan
nilainya terbaca dari variabel input
 /* ........ */  kode program yang terdapat didalamnya tidak akan
dijalankan
 while(byteData != -1)  perulangan akan terus berjalan selama byteData
tidak bernilai -1 dan akan terhenti jika byteData bernilai -1
 String strData = new String(new byte[] {(byte) byteData})  membuat
variabel strData bertipe String dan isinya merupakan hasil casting dari
nilai byte variabel byteData
 System.out.println("Data : "+strData)  menampilkan tulisan Data dan
nilai dari variabel strData
 System.out.println("Data byte : "+byteData)  menampilkan tulisan Data
byte dan nilai dari byteData
 byteData = input.read()  membaca nilai byte data dari input stream.
 byte[] myData = new byte[10]  membuat variabel myData dengan tipe
byte array sebanyak 10 indeks
 int data = input.read(myData)  membuat variabel data dengan tipe int
dan isinya merupakan hasil pembacaan variabel input yang disimpan
dalam variabel myData dalam bentuk array
 while (data != -1)  perulangan akan terus berjalan selama data tidak
bernilai -1 dan akan terhenti jika data bernilai -1
 String strData = new String(myData)  membuat variabel strData dengan
tipe String dan isinya merupakan nilai String dari variabel array myData
 System.out.println("Data: " + strData)  menampilkan tulisan Data dan
nilai dari variabel strData
 System.out.println("Panjang data terbaca: " + data)  menampilkan
tulisan Panjang data terbaca dan nilai dari variabel data
 data = input.read(myData)  membaca nilai byte data dari variabel
myData
 input.close()  menutup input stream
 IOException e  class pengecualian
 System.err.println(e.getMessage())  untuk menampilkan detail pesan

b. Aplikasi OutputStream
 package OutputStream  OutputStream merupakan nama package
 import java.io.*  mengimpor paket java.io agar dapat menggunakan
class-class dan method untuk proses input dan output di java
 public class Main  Main merupakan nama class yang bersifat public
 public static void main(String[] args)  method utama dalam java
 String source = "C:\\Users\\Rmy\\Desktop\\mydata.txt"  membuat
variabel source bertipe string dimana isinya terdapat pada file mydata.txt
pada direktori c:\\Users\\Rmy\\Desktop\\mydata.txt
 String dest = "C:\\Users\\Rmy\\Desktop\\Mydataout.txt"  membuat
variabel dest bertipe string dimana isinya terdapat pada file mydata.txt
pada direktori c:\\Users\\Rmy\\Desktop\\Mydataout.txt
 try {} catch() {}  ditempatkan pada kode yang mungkin mengalami
pengecualian atau kode yang dilindungi, digunakan juga untuk menangani
pesan error dan melanjutkan jalannya program tanpa harus berhenti
karena error.
 InputStream input = new FileInputStream(source)  membuat variabel
input sebagai inputStream kemudian isinya merupakan FileInputStream
pada variabel source
 byte[] byData = new byte[10]  membuat variabel byData dengan tipe
byte array sebanyak 10 indeks
 int data = input.read(byData)  membuat variabel data dengan tipe int
dan isinya merupakan hasil pembacaan variabel input yang disimpan
dalam variabel byData dalam bentuk array
 OutputStream output = new FileOutputStream(dest)  membuat variabel
output sebagai OutputStream kemudian isinya merupakan
FileOutputStream pada variabel dest
 while(data !=-1)  perulangan akan terus berjalan selama data tidak
bernilai -1 dan akan terhenti jika data bernilai -1
 String strData = new String(byData)  membuat variabel strData dengan
tipe String dan isinya merupakan nilai String dari variabel array byData
 System.out.println("Read Data: "+strData)  menampilkan tulisan Read
Data dan nilai dari variabel strData
 System.out.println("Panjang pembacaan data: "+data)  menampilkan
tulisan Panjang pembacaan data dan nilai dari variabel data
 System.out.println("Tulis ke file .....")  menampilkan tulisan tulis ke
file.....
 output.write(byData)  menulis byte data variabel byData ke variabel
output yang merupakan FileOutputStream
 System.out.println("done.")  menampilkan tulisan done
 data = input.read(byData)  membaca nilai byte data dari variabel
byData
 input.close()  menutup InputStream
 output.close()  menutup OutputStream
 System.out.println("Done.")  menampilkan tulisan Done.
 IOException e  class pengecualian
 System.err.println(e.getMessage())  menampilkan detail pesan

3. Hasil Program
a. Aplikasi InputStream
 Pembacaan data per karakter

 Pembacaan data sesuai indeks array


b. Aplikasi OutputStream
 Pembacaan data berdasarkan indeks array

 Hasil penulisan ke fileOutputStream Mydataout.txt

You might also like