SlideShare a Scribd company logo
Membuat Aplikasi Client Server
Dengan Bahasa Pemrograman Java
Oleh :
Yohana Damayanti
(061130701312)
6CD
JURUSAN TEKNIK KOMPUTER
POLITEKNIK NEGERI SRIWIJAYA
PALEMBANG
1.1 PENDAHULUAN
Bahasa pemrograman java banyak diaplikasikan dalam berbagai program
maupun aplikasi yang berbasis PC atau mobile. Salah satu penerapannya adalah pada
program chatting, dipilihnya bahasa java sebagai bahasa pembuatan program ini
dikarenakan dalam java memiliki kelas thread sebagai kelas default yang tidak
dimiliki oleh bahasa pemrograman lain. Program chat ini terdiri dari dua sisi, yaitu
sisi client dan server. Dalam pembuatan aplikasi chatting ini, kita harus menyiapkan
dua buah PC/Laptop atau lebih untuk satu dijadikan sebagai server, dan yang lainnya
dijadikan sebagai Client.
1.2 PEMBAHASAN
1.2.1 Hasil runing program
1.2.1.1 Server
Gambar 1.1 Hasil Running Program Server Menunggu Client
Gambar 1.2 Hasil Running Program Ketika Server Menerima Client Baru
Gambar 1.3 Hasil Running Program dengan input obrolan dari client 1,2 dan 3
1.2.1.2 Client
Gambar 1.4 Hasil Running Tampilan Pada Client 1
Gambar 1.5 Hasil Running Tampilan Pada Client 2
Gambar 1.6 Hasil Running Tampilan Pada Client 3
Gambar 1.7 Hasil Running Program pada Client 1 melakukan chatting
Gambar 1.8 Hasil Running Program pada Client 2 melakukan chatting
Gambar 1.9 Hasil Running Program pada Client 3 melakukan chatting
1.2.2 Pembahasan Source Code
1.2.2.1 Pembahasan kelas Server
public class iniserver {
private static ServerSocket serverSocket;
private static final int PORT = 1111;
Kode diatas merupakan perintah agar socket server hanya dapat diakses oleh
sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas. iniserver
merupakan nama kelas program javanya.
public static void main(String[] args) throws IOException {
try {
serverSocket = new ServerSocket(PORT);
System.out.println("Server berjalan, menunggu client...");
} catch (IOException ioEx) {
System.out.println("nTidak dapat mensetup port!");
System.exit(1);
}
Kode diatas merupakan perintah untuk membuat sebuar socket server
bernama serverSocket. “Server berjalan, menunggu client…” akan muncul ketika
program dijalankan. "nTidak dapat mensetup port!" akan muncul ketika program
dijalankan saat masih ada program yang sama yang dijalankan.
do {
Socket client = serverSocket.accept();
System.out.println("nClient baru diterima.n");
ClientHandler handler = new ClientHandler(client);
handler.start();
} while (true);
Kode diatas merupakan perintah untuk menunggu client terhubung / connect
pada server. Selama masih ada client yang ingin masuk maka server tetap bisa
menerima client tersebut.
class ClientHandler extends Thread {
private Socket client;
private Scanner input;
private PrintWriter output;
private Scanner userEntry;
public ClientHandler(Socket socket) {
client = socket;
try {
input = new Scanner(client.getInputStream());
output = new PrintWriter(client.getOutputStream(), true);
userEntry = new Scanner(System.in);
} catch (IOException ioEx) {
//ioEx.printStackTrace();
Kode diatas merupakan thread untuk mensetup referensi ke socket. Input
merupakan Scanner untuk mendapatkan input. Output merupakan perintah agar
menerima masukan dari keyboard.
public void run() {
String received;
String message;
do {
received = input.nextLine();
System.out.println(received);
System.out.print("");
System.out.print("server: ");
message = userEntry.nextLine();
output.println(message);
} while (!received.equals("QUIT"));
Kode diatas berfungsi untuk menerima dan mengirimkan pesan pada input stream
socket. Program diatas akan terus berjalan selama client tidak mengirimkan pesan
QUIT.
try {
if (client != null) {
System.out.println("Menutup
koneksi...");
client.close();
}
} catch (IOException ioEx) {
System.out.println("Penutupan koneksi
gagal!");
Kode diatas berfungsi untuk mengakhiri program.
1.2.2.2 Pembahasan kelas Client
public class Client {
private static InetAddress host;
private static final int PORT = 1111;
public static void main(String[] args) {
try {
host = InetAddress.getLocalHost();
} catch (UnknownHostException uhEx) {
System.out.println("nHost ID tidak
ditemukan!n");
System.exit(1);
}
sendMessages();
}
Kode diatas merupakan perintah agar socket server hanya dapat diakses oleh
sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas. client
merupakan nama kelas program javanya.
private static void sendMessages() {
Socket socket = null;
try {
socket = new Socket(host, PORT);
Scanner networkInput = new
Scanner(socket.getInputStream());
PrintWriter networkOutput = new
PrintWriter(socket.getOutputStream(),
true);
Scanner userEntry = new Scanner(System.in);
String message, response;
do {
System.out.print("klien 1: ");
message = userEntry.nextLine();
networkOutput.println(message);
response = networkInput.nextLine();
System.out.println("nSERVER> " + response);
} while (!message.equals("QUIT"));
Kode diatas merupakan perintah untuk mensetup stream untuk masukan dari
keyboard, yang kemudian di scan oleh scanner UserEntry dan di simpan dalam string
message. Setelah itu program akan mengirimkan pesan ke server dan menunggu
server merespon pesan tersebut. Kode akan berjalan selama message tidak
menampilkan QUIT.
try {
System.out.println("nMenutup
koneksi...");
socket.close();
} catch (IOException ioEx) {
System.out.println("Gagal menutup
koneksi!");
System.exit(1);
Kode diatas merupakan perintah untuk mengakhiri program ketika user akan
keluar.
1.3 Lampiran
1.3.1 Kelas Server
Berikut adalah listing program aplikasi chatting kelas server:
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class iniserver {
private static ServerSocket serverSocket;
private static final int PORT = 1111;
public static void main(String[] args) throws IOException {
try {
serverSocket = new ServerSocket(PORT);
System.out.println("Server berjalan, menunggu
client...");
} catch (IOException ioEx) {
System.out.println("nTidak dapat mensetup port!");
System.exit(1);
}
do {
//Menunggu koneksi dari client...
Socket client = serverSocket.accept();
System.out.println("nClient baru diterima.n");
//Buat thread untuk menangani komunikasi dengan client
ini
//lewatkan socket yang relevan ke contructor dari
thread ini
ClientHandler handler = new ClientHandler(client);
handler.start(); //menjalankan thread yang telah
dibuat
} while (true);
}
}
class ClientHandler extends Thread {
private Socket client;
private Scanner input;
private PrintWriter output;
private Scanner userEntry;
public ClientHandler(Socket socket) {
//Set up referensi ke socket yang berasosiasi...
client = socket;
try {
input = new Scanner(client.getInputStream());
output = new PrintWriter(client.getOutputStream(),
true);
userEntry = new Scanner(System.in);
} catch (IOException ioEx) {
//ioEx.printStackTrace();
}
}
public void run() {
String received;
String message;
do {
//Terima pesan dari client pada input stream socket...
received = input.nextLine();
System.out.println(received);
System.out.print("");
System.out.print("server: ");
message = userEntry.nextLine();
//Kirim pesan (message)ke client pada output stream
socket...
//Terima respon dari client pada stream input socket...
output.println(message);
//Ulangi sampai client mengirimkan pesan 'KELUAR'...
} while (!received.equals("KELUAR"));
try {
if (client != null) {
System.out.println("Menutup koneksi...");
client.close();
}
} catch (IOException ioEx) {
System.out.println("Penutupan koneksi gagal!");
}
}
}
1.3.2 Kelas Client
Berikut adalah listing program aplikasi chatting kelas client:
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Client {
private static InetAddress host;
private static final int PORT = 1111;
public static void main(String[] args) {
try {
host = InetAddress.getLocalHost();
} catch (UnknownHostException uhEx) {
System.out.println("nHost ID tidak ditemukan!n");
System.exit(1);
}
sendMessages();
}
private static void sendMessages() {
Socket socket = null;
try {
socket = new Socket(host, PORT);
Scanner networkInput = new
Scanner(socket.getInputStream());
PrintWriter networkOutput = new
PrintWriter(socket.getOutputStream(), true);
//Set up stream untuk masukan dari keyboard...
Scanner userEntry = new Scanner(System.in);
String message, response;
do {
System.out.print("klien 1: ");
message = userEntry.nextLine();
//Kirim pesan (message)ke server pada output stream
socket...
//Terima respon dari server pada stream input
socket...
networkOutput.println(message);
response = networkInput.nextLine();
//Tampilkan respon dari server...
System.out.println("nSERVER> " + response);
} while (!message.equals("KELUAR"));
} catch (IOException ioEx) {
//ioEx.printStackTrace();
} finally {
try {
System.out.println("nMenutup koneksi...");
socket.close();
} catch (IOException ioEx) {
System.out.println("Gagal menutup koneksi!");
System.exit(1);
}
}
}
}

More Related Content

PPTX
Mikrotik ppt
PDF
Instalasi dan Konfigurasi PNETLab pada Oracle VirtualBox
PPTX
Penjelasan Materi Web Server
DOCX
Makalah mikrotik
PPTX
FTP Server
PDF
Internet dan Layanan Aplikasi Terdistribusi
PPT
Sistem operasi jaringan
PPTX
Presentasi web security
Mikrotik ppt
Instalasi dan Konfigurasi PNETLab pada Oracle VirtualBox
Penjelasan Materi Web Server
Makalah mikrotik
FTP Server
Internet dan Layanan Aplikasi Terdistribusi
Sistem operasi jaringan
Presentasi web security

What's hot (20)

PPTX
Instal dan Konfigurasi MikroTik via VirtualBox #1
DOCX
Laporan Konfigurasi Dasar Mikrotik
PPTX
Presentasi MIKROTIK ROUTERBOARD
DOCX
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCP
PDF
Visual basic materi pembelajaran dasar
PDF
Modul One Day Workshop Proxmox Automation With Ansible
DOCX
Praktikum jaringan komputer 3 dns server eksperimen
DOCX
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
PDF
Membangun Server Virtualisasi dengan Proxmox Virtual Environment (PVE) 5.3
PPTX
Struktur sistem Terdistribusi
PDF
CREST CCT Exam Prep Notes
DOCX
Tugas RPL SRS Erwan
PDF
Artikel sistem operasi komputer
DOCX
Contoh Makalah Routing Dinamis
PDF
Kerangka Acuan Kerja (Pengembangan Aplikasi Web Pengajuan Tugas Akhir)
PPTX
Pengenalan mikrotik revisi
PPTX
Metasploit
DOCX
Tugas makalah routing
PPTX
DHCP server
PPT
Linux
Instal dan Konfigurasi MikroTik via VirtualBox #1
Laporan Konfigurasi Dasar Mikrotik
Presentasi MIKROTIK ROUTERBOARD
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCP
Visual basic materi pembelajaran dasar
Modul One Day Workshop Proxmox Automation With Ansible
Praktikum jaringan komputer 3 dns server eksperimen
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
Membangun Server Virtualisasi dengan Proxmox Virtual Environment (PVE) 5.3
Struktur sistem Terdistribusi
CREST CCT Exam Prep Notes
Tugas RPL SRS Erwan
Artikel sistem operasi komputer
Contoh Makalah Routing Dinamis
Kerangka Acuan Kerja (Pengembangan Aplikasi Web Pengajuan Tugas Akhir)
Pengenalan mikrotik revisi
Metasploit
Tugas makalah routing
DHCP server
Linux
Ad

Viewers also liked (7)

PDF
Membuat aplikasi chat menggunakan java
PDF
Membangun aplikasi client server dengan java
PDF
Laporan program chatting client server
PDF
Membangun aplikasi-client-server-dengan-java
PPTX
Presentati Sisteam Antrian Real-Time
PDF
Aplikasi sms sederhana dengan gammu dan java
PDF
Laporan multiclient chatting client server
Membuat aplikasi chat menggunakan java
Membangun aplikasi client server dengan java
Laporan program chatting client server
Membangun aplikasi-client-server-dengan-java
Presentati Sisteam Antrian Real-Time
Aplikasi sms sederhana dengan gammu dan java
Laporan multiclient chatting client server
Ad

Similar to Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java (20)

PDF
Program chatting
DOCX
Laporan program chatting
DOCX
Laporan program chatting1
PDF
Laporan chatting server dan client
PDF
Laporan Chatting Server dan Client
PDF
Jeni Intro2 Bab10 Jaringan
PDF
Zainal chatting
PDF
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
PDF
Praktikum pemrograman jaringan-1-3
PDF
Octav android mysql
PDF
Part 3 & 4 Networking Programming.pdf
PDF
Jeni J2 Me Bab11 Topik Topik Tambahan
PDF
Jeni j2 me-bab11-topik-topik tambahan
PDF
Tugas_pemrograman3_1100631026_Helmi_MH_
DOCX
Modul3 algoritma dan pemrograman procedure dan_function
PPTX
Tutorial membuat sertifikat ssl menggunakan xampp
PPT
Chapter 10. Operasi IO.ppt
DOCX
Socket Programming TCP Echo Client Server (Python)
DOCX
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMAN
PDF
Laporan praktikum dpk modul 1
Program chatting
Laporan program chatting
Laporan program chatting1
Laporan chatting server dan client
Laporan Chatting Server dan Client
Jeni Intro2 Bab10 Jaringan
Zainal chatting
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
Praktikum pemrograman jaringan-1-3
Octav android mysql
Part 3 & 4 Networking Programming.pdf
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni j2 me-bab11-topik-topik tambahan
Tugas_pemrograman3_1100631026_Helmi_MH_
Modul3 algoritma dan pemrograman procedure dan_function
Tutorial membuat sertifikat ssl menggunakan xampp
Chapter 10. Operasi IO.ppt
Socket Programming TCP Echo Client Server (Python)
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMAN
Laporan praktikum dpk modul 1

More from yoyomay93 (6)

PDF
Melihat Nama PC Menggunakan Aplikasi Pemograman Java
PDF
Mengambil IP Pada PC Menggunakan Bahasa Pemrograman Java
PDF
MultiClient chatting berbasis gambar
PDF
Info Client dan Info Server
PDF
Membuat Aplikasi Browser Menggunakan Pemrograman Java
PDF
Membuat
Melihat Nama PC Menggunakan Aplikasi Pemograman Java
Mengambil IP Pada PC Menggunakan Bahasa Pemrograman Java
MultiClient chatting berbasis gambar
Info Client dan Info Server
Membuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat

Recently uploaded (13)

PDF
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
PPTX
Paper sirosis hepatis dr siti taqwa.jdusp
PPTX
upn “veteran” Jawa TIMUR tentang analisis data.pptx
PPTX
Proposal Riset_BRImo Conversatinal Banking.pptx
PPTX
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
PPTX
OK PENGARUH MARKETING MIX TERHADAP RECOMMENDATION INTENTION DAN REPURCHASE IN...
PPTX
PPT Kelas 10. Teks Hasil Observasi (Minggu 1).pptx
PPTX
PPT KEL 6 MIKRO_20250723_182933_0000.pptx
PPTX
PPT VIRUS & BAKTERI KEL. 1_20250723_184908_0000.pptx
PDF
SLOT 2 Slide Presentation PELAKSANAAN EKSA ILKBS oleh Ts Dr Loke.pdf
PDF
GERUDUK MJKN aplikasi mobile JKN persentation
PPTX
PRESNTASI pembangunan perumahan komersil dua lantai
PDF
Llama Implementations from Scratch - Avalon AI.pdf
LK - SIMULASI SIKLUS INKUIRI KOLABORATIF.pdf
Paper sirosis hepatis dr siti taqwa.jdusp
upn “veteran” Jawa TIMUR tentang analisis data.pptx
Proposal Riset_BRImo Conversatinal Banking.pptx
EFEKTIVITAS EKSTRAK DAUN INDIGOFERA.pptx
OK PENGARUH MARKETING MIX TERHADAP RECOMMENDATION INTENTION DAN REPURCHASE IN...
PPT Kelas 10. Teks Hasil Observasi (Minggu 1).pptx
PPT KEL 6 MIKRO_20250723_182933_0000.pptx
PPT VIRUS & BAKTERI KEL. 1_20250723_184908_0000.pptx
SLOT 2 Slide Presentation PELAKSANAAN EKSA ILKBS oleh Ts Dr Loke.pdf
GERUDUK MJKN aplikasi mobile JKN persentation
PRESNTASI pembangunan perumahan komersil dua lantai
Llama Implementations from Scratch - Avalon AI.pdf

Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java

  • 1. Membuat Aplikasi Client Server Dengan Bahasa Pemrograman Java Oleh : Yohana Damayanti (061130701312) 6CD JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG
  • 2. 1.1 PENDAHULUAN Bahasa pemrograman java banyak diaplikasikan dalam berbagai program maupun aplikasi yang berbasis PC atau mobile. Salah satu penerapannya adalah pada program chatting, dipilihnya bahasa java sebagai bahasa pembuatan program ini dikarenakan dalam java memiliki kelas thread sebagai kelas default yang tidak dimiliki oleh bahasa pemrograman lain. Program chat ini terdiri dari dua sisi, yaitu sisi client dan server. Dalam pembuatan aplikasi chatting ini, kita harus menyiapkan dua buah PC/Laptop atau lebih untuk satu dijadikan sebagai server, dan yang lainnya dijadikan sebagai Client. 1.2 PEMBAHASAN 1.2.1 Hasil runing program 1.2.1.1 Server Gambar 1.1 Hasil Running Program Server Menunggu Client
  • 3. Gambar 1.2 Hasil Running Program Ketika Server Menerima Client Baru Gambar 1.3 Hasil Running Program dengan input obrolan dari client 1,2 dan 3
  • 4. 1.2.1.2 Client Gambar 1.4 Hasil Running Tampilan Pada Client 1 Gambar 1.5 Hasil Running Tampilan Pada Client 2 Gambar 1.6 Hasil Running Tampilan Pada Client 3
  • 5. Gambar 1.7 Hasil Running Program pada Client 1 melakukan chatting Gambar 1.8 Hasil Running Program pada Client 2 melakukan chatting Gambar 1.9 Hasil Running Program pada Client 3 melakukan chatting
  • 6. 1.2.2 Pembahasan Source Code 1.2.2.1 Pembahasan kelas Server public class iniserver { private static ServerSocket serverSocket; private static final int PORT = 1111; Kode diatas merupakan perintah agar socket server hanya dapat diakses oleh sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas. iniserver merupakan nama kelas program javanya. public static void main(String[] args) throws IOException { try { serverSocket = new ServerSocket(PORT); System.out.println("Server berjalan, menunggu client..."); } catch (IOException ioEx) { System.out.println("nTidak dapat mensetup port!"); System.exit(1); } Kode diatas merupakan perintah untuk membuat sebuar socket server bernama serverSocket. “Server berjalan, menunggu client…” akan muncul ketika program dijalankan. "nTidak dapat mensetup port!" akan muncul ketika program dijalankan saat masih ada program yang sama yang dijalankan. do { Socket client = serverSocket.accept(); System.out.println("nClient baru diterima.n"); ClientHandler handler = new ClientHandler(client); handler.start(); } while (true); Kode diatas merupakan perintah untuk menunggu client terhubung / connect pada server. Selama masih ada client yang ingin masuk maka server tetap bisa menerima client tersebut. class ClientHandler extends Thread { private Socket client; private Scanner input; private PrintWriter output;
  • 7. private Scanner userEntry; public ClientHandler(Socket socket) { client = socket; try { input = new Scanner(client.getInputStream()); output = new PrintWriter(client.getOutputStream(), true); userEntry = new Scanner(System.in); } catch (IOException ioEx) { //ioEx.printStackTrace(); Kode diatas merupakan thread untuk mensetup referensi ke socket. Input merupakan Scanner untuk mendapatkan input. Output merupakan perintah agar menerima masukan dari keyboard. public void run() { String received; String message; do { received = input.nextLine(); System.out.println(received); System.out.print(""); System.out.print("server: "); message = userEntry.nextLine(); output.println(message); } while (!received.equals("QUIT")); Kode diatas berfungsi untuk menerima dan mengirimkan pesan pada input stream socket. Program diatas akan terus berjalan selama client tidak mengirimkan pesan QUIT. try { if (client != null) { System.out.println("Menutup koneksi..."); client.close(); } } catch (IOException ioEx) { System.out.println("Penutupan koneksi gagal!"); Kode diatas berfungsi untuk mengakhiri program. 1.2.2.2 Pembahasan kelas Client
  • 8. public class Client { private static InetAddress host; private static final int PORT = 1111; public static void main(String[] args) { try { host = InetAddress.getLocalHost(); } catch (UnknownHostException uhEx) { System.out.println("nHost ID tidak ditemukan!n"); System.exit(1); } sendMessages(); } Kode diatas merupakan perintah agar socket server hanya dapat diakses oleh sendiri. Port = 1111 merupakan port yang disiapkan pada server diatas. client merupakan nama kelas program javanya. private static void sendMessages() { Socket socket = null; try { socket = new Socket(host, PORT); Scanner networkInput = new Scanner(socket.getInputStream()); PrintWriter networkOutput = new PrintWriter(socket.getOutputStream(), true); Scanner userEntry = new Scanner(System.in); String message, response; do { System.out.print("klien 1: "); message = userEntry.nextLine(); networkOutput.println(message); response = networkInput.nextLine(); System.out.println("nSERVER> " + response); } while (!message.equals("QUIT")); Kode diatas merupakan perintah untuk mensetup stream untuk masukan dari keyboard, yang kemudian di scan oleh scanner UserEntry dan di simpan dalam string message. Setelah itu program akan mengirimkan pesan ke server dan menunggu server merespon pesan tersebut. Kode akan berjalan selama message tidak menampilkan QUIT. try { System.out.println("nMenutup koneksi..."); socket.close(); } catch (IOException ioEx) { System.out.println("Gagal menutup koneksi!"); System.exit(1);
  • 9. Kode diatas merupakan perintah untuk mengakhiri program ketika user akan keluar. 1.3 Lampiran 1.3.1 Kelas Server Berikut adalah listing program aplikasi chatting kelas server: import java.io.*; import java.net.*; import java.util.Scanner; public class iniserver { private static ServerSocket serverSocket; private static final int PORT = 1111; public static void main(String[] args) throws IOException { try { serverSocket = new ServerSocket(PORT); System.out.println("Server berjalan, menunggu client..."); } catch (IOException ioEx) { System.out.println("nTidak dapat mensetup port!"); System.exit(1); } do { //Menunggu koneksi dari client... Socket client = serverSocket.accept(); System.out.println("nClient baru diterima.n"); //Buat thread untuk menangani komunikasi dengan client ini //lewatkan socket yang relevan ke contructor dari thread ini ClientHandler handler = new ClientHandler(client); handler.start(); //menjalankan thread yang telah dibuat } while (true); } } class ClientHandler extends Thread { private Socket client; private Scanner input; private PrintWriter output; private Scanner userEntry; public ClientHandler(Socket socket) { //Set up referensi ke socket yang berasosiasi...
  • 10. client = socket; try { input = new Scanner(client.getInputStream()); output = new PrintWriter(client.getOutputStream(), true); userEntry = new Scanner(System.in); } catch (IOException ioEx) { //ioEx.printStackTrace(); } } public void run() { String received; String message; do { //Terima pesan dari client pada input stream socket... received = input.nextLine(); System.out.println(received); System.out.print(""); System.out.print("server: "); message = userEntry.nextLine(); //Kirim pesan (message)ke client pada output stream socket... //Terima respon dari client pada stream input socket... output.println(message); //Ulangi sampai client mengirimkan pesan 'KELUAR'... } while (!received.equals("KELUAR")); try { if (client != null) { System.out.println("Menutup koneksi..."); client.close(); } } catch (IOException ioEx) { System.out.println("Penutupan koneksi gagal!"); } } } 1.3.2 Kelas Client Berikut adalah listing program aplikasi chatting kelas client: import java.io.*; import java.net.*; import java.util.Scanner;
  • 11. public class Client { private static InetAddress host; private static final int PORT = 1111; public static void main(String[] args) { try { host = InetAddress.getLocalHost(); } catch (UnknownHostException uhEx) { System.out.println("nHost ID tidak ditemukan!n"); System.exit(1); } sendMessages(); } private static void sendMessages() { Socket socket = null; try { socket = new Socket(host, PORT); Scanner networkInput = new Scanner(socket.getInputStream()); PrintWriter networkOutput = new PrintWriter(socket.getOutputStream(), true); //Set up stream untuk masukan dari keyboard... Scanner userEntry = new Scanner(System.in); String message, response; do { System.out.print("klien 1: "); message = userEntry.nextLine(); //Kirim pesan (message)ke server pada output stream socket... //Terima respon dari server pada stream input socket... networkOutput.println(message); response = networkInput.nextLine(); //Tampilkan respon dari server... System.out.println("nSERVER> " + response); } while (!message.equals("KELUAR")); } catch (IOException ioEx) { //ioEx.printStackTrace(); } finally { try { System.out.println("nMenutup koneksi..."); socket.close(); } catch (IOException ioEx) { System.out.println("Gagal menutup koneksi!"); System.exit(1); } } }
  • 12. }