Professional Documents
Culture Documents
DISUSUN
OLEH :
ROBERTUS (216611037)
package appclient;
import java.io.*;
import java.net.*;
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.*;
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
package SimpleThread;
import java.util.Calendar;
import java.text.SimpleDateFormat;
b. Class Main
package SimpleThread;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main {
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
package InputStream;
import java.io.*;
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();
}
*/
input.close();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
}
b. Aplikasi OutputStream
package OutputStream;
import java.io.*;
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