SlideShare a Scribd company logo
1 of 12
Download to read offline
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

What's hot

Interaksi Manusia Dan Komputer 4
Interaksi Manusia Dan Komputer 4Interaksi Manusia Dan Komputer 4
Interaksi Manusia Dan Komputer 4Hide Maru
 
Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaDevandy Enda
 
Pertemuan 3 activity
Pertemuan 3 activityPertemuan 3 activity
Pertemuan 3 activityheriakj
 
[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktoprizki adam kurniawan
 
[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)rizki adam kurniawan
 
Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan functionErwin Setiawan
 
Membangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaMembangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaEko Kurniawan Khannedy
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaDEDE IRYAWAN
 
Pengolahan transaksi pada MySQL
Pengolahan transaksi pada  MySQLPengolahan transaksi pada  MySQL
Pengolahan transaksi pada MySQLPutra Andry
 
Pertemuan 7 camera
Pertemuan 7 cameraPertemuan 7 camera
Pertemuan 7 cameraheriakj
 
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal Report
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal ReportInsert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal Report
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal ReportRahmat Taufiq Sigit
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLDejiko Chaem
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasiHidayatullah Aldy
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Asnita Meydelia C K
 

What's hot (20)

Mengenal Program Jahat Komputer
Mengenal Program Jahat KomputerMengenal Program Jahat Komputer
Mengenal Program Jahat Komputer
 
Interaksi Manusia Dan Komputer 4
Interaksi Manusia Dan Komputer 4Interaksi Manusia Dan Komputer 4
Interaksi Manusia Dan Komputer 4
 
Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada java
 
Fungsi (function)
Fungsi (function)Fungsi (function)
Fungsi (function)
 
Pertemuan 3 activity
Pertemuan 3 activityPertemuan 3 activity
Pertemuan 3 activity
 
[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop[PBO] Pertemuan 11 - GUI Java Desktop
[PBO] Pertemuan 11 - GUI Java Desktop
 
[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)[RPL2] Class Diagram dan Relasinya (2)
[RPL2] Class Diagram dan Relasinya (2)
 
Java 8 features
Java 8 featuresJava 8 features
Java 8 features
 
Sistem Operasi
Sistem OperasiSistem Operasi
Sistem Operasi
 
Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan function
 
Membangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaMembangun aplikasi client server dengan java
Membangun aplikasi client server dengan java
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
 
Pengolahan transaksi pada MySQL
Pengolahan transaksi pada  MySQLPengolahan transaksi pada  MySQL
Pengolahan transaksi pada MySQL
 
Pertemuan 7 camera
Pertemuan 7 cameraPertemuan 7 camera
Pertemuan 7 camera
 
Java IO
Java IOJava IO
Java IO
 
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal Report
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal ReportInsert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal Report
Insert, Edit, Delete pada VB 2010 dengan DB Mysql dan Crystal Report
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
 
Interupsi
InterupsiInterupsi
Interupsi
 
Modul praktikum sistem operasi
Modul praktikum sistem operasiModul praktikum sistem operasi
Modul praktikum sistem operasi
 
Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"Pemrograman Berorientasi Objek "Pengenalan JAVA"
Pemrograman Berorientasi Objek "Pengenalan JAVA"
 

Viewers also liked

Membuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan javaMembuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan javaEko Kurniawan Khannedy
 
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCP
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCPAplikasi Chatting dengan Client-Server Menggunakan Protokol TCP
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCPSyauqina Idzni Adzhani
 
Laporan program chatting client server
Laporan program chatting client serverLaporan program chatting client server
Laporan program chatting client serverRara Ariesta
 
Membangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-javaMembangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-javaAli Muqorrobien
 
Presentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-TimePresentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-TimeUliel Azmie
 
Aplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan javaAplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan javaAgung Sulistyanto
 
Laporan multiclient chatting client server
Laporan multiclient chatting client serverLaporan multiclient chatting client server
Laporan multiclient chatting client servertrilestari08
 

Viewers also liked (7)

Membuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan javaMembuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan java
 
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCP
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCPAplikasi Chatting dengan Client-Server Menggunakan Protokol TCP
Aplikasi Chatting dengan Client-Server Menggunakan Protokol TCP
 
Laporan program chatting client server
Laporan program chatting client serverLaporan program chatting client server
Laporan program chatting client server
 
Membangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-javaMembangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-java
 
Presentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-TimePresentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-Time
 
Aplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan javaAplikasi sms sederhana dengan gammu dan java
Aplikasi sms sederhana dengan gammu dan java
 
Laporan multiclient chatting client server
Laporan multiclient chatting client serverLaporan multiclient chatting client server
Laporan multiclient chatting client server
 

Similar to Membuat Aplikasi Chatting Client Server Dengan Pemrograman Java

Program chatting
Program chattingProgram chatting
Program chattingAisy Cuyy
 
Laporan program chatting
Laporan program chattingLaporan program chatting
Laporan program chattingganteng8
 
Laporan program chatting1
Laporan program chatting1Laporan program chatting1
Laporan program chatting1ichsanbarokah
 
Laporan chatting server dan client
Laporan chatting server dan clientLaporan chatting server dan client
Laporan chatting server dan clienttrilestari08
 
Laporan Chatting Server dan Client
Laporan Chatting Server dan ClientLaporan Chatting Server dan Client
Laporan Chatting Server dan Clienttrilestari08
 
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdfhusni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdfLiberitoSantos
 
Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3sulaiman yunus
 
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysqlrikysp
 
Part 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfPart 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfAiAdhi
 
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanJeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanUNIVERSITY Of LAMPUNG
 
Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Helmi Mahfudhatul
 
Modul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_functionModul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_functionPolytechnic State Semarang
 
Tutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xamppTutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xamppYoga Pratama Putra
 
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptTashidFafri1
 
Socket Programming TCP Echo Client Server (Python)
Socket Programming  TCP Echo Client Server  (Python)Socket Programming  TCP Echo Client Server  (Python)
Socket Programming TCP Echo Client Server (Python)Lusiana Diyan
 
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMAN
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMANPENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMAN
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMANNur Kholifah Hidayah
 

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

Program chatting
Program chattingProgram chatting
Program chatting
 
Laporan program chatting
Laporan program chattingLaporan program chatting
Laporan program chatting
 
Laporan program chatting1
Laporan program chatting1Laporan program chatting1
Laporan program chatting1
 
Laporan chatting server dan client
Laporan chatting server dan clientLaporan chatting server dan client
Laporan chatting server dan client
 
Laporan Chatting Server dan Client
Laporan Chatting Server dan ClientLaporan Chatting Server dan Client
Laporan Chatting Server dan Client
 
Jeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 JaringanJeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 Jaringan
 
Zainal chatting
Zainal chattingZainal chatting
Zainal chatting
 
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdfhusni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
husni-sister2017_05c_pemrograman_socket_java_server_detail.pdf
 
Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3
 
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysql
 
Part 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfPart 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdf
 
Jeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik TambahanJeni J2 Me Bab11 Topik Topik Tambahan
Jeni J2 Me Bab11 Topik Topik Tambahan
 
Jeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahanJeni j2 me-bab11-topik-topik tambahan
Jeni j2 me-bab11-topik-topik tambahan
 
Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_Tugas_pemrograman3_1100631026_Helmi_MH_
Tugas_pemrograman3_1100631026_Helmi_MH_
 
Modul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_functionModul3 algoritma dan pemrograman procedure dan_function
Modul3 algoritma dan pemrograman procedure dan_function
 
Tutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xamppTutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xampp
 
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.ppt
 
Socket Programming TCP Echo Client Server (Python)
Socket Programming  TCP Echo Client Server  (Python)Socket Programming  TCP Echo Client Server  (Python)
Socket Programming TCP Echo Client Server (Python)
 
Laporan praktikum dpk modul 1
Laporan praktikum dpk modul 1Laporan praktikum dpk modul 1
Laporan praktikum dpk modul 1
 
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMAN
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMANPENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMAN
PENGENALAN SSISTEM OPERASI, IDE VISUAL C++, DAN ALGORITMA PEMROGRAMAN
 

More from yoyomay93

Melihat Nama PC Menggunakan Aplikasi Pemograman Java
Melihat Nama PC Menggunakan Aplikasi Pemograman JavaMelihat Nama PC Menggunakan Aplikasi Pemograman Java
Melihat Nama PC Menggunakan Aplikasi Pemograman Javayoyomay93
 
Mengambil IP Pada PC Menggunakan Bahasa Pemrograman Java
Mengambil IP Pada PC  Menggunakan Bahasa Pemrograman JavaMengambil IP Pada PC  Menggunakan Bahasa Pemrograman Java
Mengambil IP Pada PC Menggunakan Bahasa Pemrograman Javayoyomay93
 
MultiClient chatting berbasis gambar
MultiClient chatting berbasis gambarMultiClient chatting berbasis gambar
MultiClient chatting berbasis gambaryoyomay93
 
Info Client dan Info Server
Info Client dan Info ServerInfo Client dan Info Server
Info Client dan Info Serveryoyomay93
 
Membuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman JavaMembuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman Javayoyomay93
 

More from yoyomay93 (6)

Melihat Nama PC Menggunakan Aplikasi Pemograman Java
Melihat Nama PC Menggunakan Aplikasi Pemograman JavaMelihat Nama PC Menggunakan Aplikasi Pemograman Java
Melihat Nama PC Menggunakan Aplikasi Pemograman Java
 
Mengambil IP Pada PC Menggunakan Bahasa Pemrograman Java
Mengambil IP Pada PC  Menggunakan Bahasa Pemrograman JavaMengambil IP Pada PC  Menggunakan Bahasa Pemrograman Java
Mengambil IP Pada PC Menggunakan Bahasa Pemrograman Java
 
MultiClient chatting berbasis gambar
MultiClient chatting berbasis gambarMultiClient chatting berbasis gambar
MultiClient chatting berbasis gambar
 
Info Client dan Info Server
Info Client dan Info ServerInfo Client dan Info Server
Info Client dan Info Server
 
Membuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman JavaMembuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman Java
 
Membuat
Membuat Membuat
Membuat
 

Recently uploaded

Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfAuliaAulia63
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxzidanlbs25
 
PPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptxPPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptxsitifaiza3
 
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxPENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxheru687292
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxImahMagwa
 
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptxBAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptxchleotiltykeluanan
 
Contoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningContoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningSamFChaerul
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Shary Armonitha
 

Recently uploaded (9)

Geologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdfGeologi Jawa Timur-Madura Kelompok 6.pdf
Geologi Jawa Timur-Madura Kelompok 6.pdf
 
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptxUKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
UKURAN PENTYEBARAN DATA PPT KELOMPOK 2.pptx
 
PPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptxPPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptx
 
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptxPENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
PENGENDALIAN MUTU prodi Blitar penting untuk dimiliki oleh masyarakat .pptx
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptx
 
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptxBAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
 
Contoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningContoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data mining
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
Sistem operasi adalah program yang bertindak sebagai perantara antara user de...
 

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. }