際際滷

際際滷Share 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

What's hot (20)

penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
Kukuh Setiawan
[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
Membangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaMembangun aplikasi client server dengan java
Membangun aplikasi client server dengan java
Eko 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 Widyatama
DEDE IRYAWAN
Kumpulan catatan Teknik Kompilasi
Kumpulan catatan Teknik KompilasiKumpulan catatan Teknik Kompilasi
Kumpulan catatan Teknik Kompilasi
Rakhmi Khalida, M.M.S.I
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Melina Krisnawati
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
Auliaa Oktarianii
Information System Security - Kriptografi
Information System Security - KriptografiInformation System Security - Kriptografi
Information System Security - Kriptografi
Dudy Ali
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
aiiniR
Testing&implementasi 3
Testing&implementasi 3Testing&implementasi 3
Testing&implementasi 3
aiiniR
Ferli Apriadi - Manajemen Proses
Ferli Apriadi - Manajemen ProsesFerli Apriadi - Manajemen Proses
Ferli Apriadi - Manajemen Proses
belajarkomputer
Strategi pengujian perangkat lunak
Strategi pengujian perangkat lunakStrategi pengujian perangkat lunak
Strategi pengujian perangkat lunak
Ardha Herdianto
Erd sistem informasi akademik
Erd sistem informasi akademikErd sistem informasi akademik
Erd sistem informasi akademik
Diyat Diyat
Ppt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman javaPpt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman java
nur achlish rosyadi
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Yaya610291
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Window
nadiapreviani
Ancaman-Ancaman pada Keamanan Jaringan Komputer
Ancaman-Ancaman pada Keamanan Jaringan KomputerAncaman-Ancaman pada Keamanan Jaringan Komputer
Ancaman-Ancaman pada Keamanan Jaringan Komputer
Fajar Sany
Pertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat LunakPertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat Lunak
Disma Ariyanti W
PM quality management
PM quality managementPM quality management
PM quality management
Bagus Wahyu
PKM KC Mevici Dianresti
PKM KC Mevici Dianresti PKM KC Mevici Dianresti
PKM KC Mevici Dianresti
Mevici Dianresti
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
penanganan kesalahan, optimasi kode, tabel informasi (Teknik Kompilasi)
Kukuh Setiawan
[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
Membangun aplikasi client server dengan java
Membangun aplikasi client server dengan javaMembangun aplikasi client server dengan java
Membangun aplikasi client server dengan java
Eko 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 Widyatama
DEDE IRYAWAN
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Melina Krisnawati
Ragam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan KomputerRagam Dialog :: Interaksi Manusia dan Komputer
Ragam Dialog :: Interaksi Manusia dan Komputer
Auliaa Oktarianii
Information System Security - Kriptografi
Information System Security - KriptografiInformation System Security - Kriptografi
Information System Security - Kriptografi
Dudy Ali
Testing&implementasi 4
Testing&implementasi 4Testing&implementasi 4
Testing&implementasi 4
aiiniR
Testing&implementasi 3
Testing&implementasi 3Testing&implementasi 3
Testing&implementasi 3
aiiniR
Ferli Apriadi - Manajemen Proses
Ferli Apriadi - Manajemen ProsesFerli Apriadi - Manajemen Proses
Ferli Apriadi - Manajemen Proses
belajarkomputer
Strategi pengujian perangkat lunak
Strategi pengujian perangkat lunakStrategi pengujian perangkat lunak
Strategi pengujian perangkat lunak
Ardha Herdianto
Erd sistem informasi akademik
Erd sistem informasi akademikErd sistem informasi akademik
Erd sistem informasi akademik
Diyat Diyat
Ppt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman javaPpt pengenalan dan pemrograman java
Ppt pengenalan dan pemrograman java
nur achlish rosyadi
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptxPertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Pertemuan Ke-5 - Sistem Operasi - Sinkronisasi Proses.pptx
Yaya610291
IMK - Strategi Banyak Window
IMK - Strategi Banyak WindowIMK - Strategi Banyak Window
IMK - Strategi Banyak Window
nadiapreviani
Ancaman-Ancaman pada Keamanan Jaringan Komputer
Ancaman-Ancaman pada Keamanan Jaringan KomputerAncaman-Ancaman pada Keamanan Jaringan Komputer
Ancaman-Ancaman pada Keamanan Jaringan Komputer
Fajar Sany
Pertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat LunakPertemuan 1 Pemodelan Perangkat Lunak
Pertemuan 1 Pemodelan Perangkat Lunak
Disma Ariyanti W
PM quality management
PM quality managementPM quality management
PM quality management
Bagus Wahyu
PKM KC Mevici Dianresti
PKM KC Mevici Dianresti PKM KC Mevici Dianresti
PKM KC Mevici Dianresti
Mevici Dianresti

Viewers also liked (7)

Membuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan javaMembuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan java
Eko 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 TCP
Syauqina Idzni Adzhani
Laporan program chatting client server
Laporan program chatting client serverLaporan program chatting client server
Laporan program chatting client server
Rara Ariesta
Membangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-javaMembangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-java
Ali Muqorrobien
Presentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-TimePresentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-Time
Uliel 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 java
Agung Sulistyanto
Laporan multiclient chatting client server
Laporan multiclient chatting client serverLaporan multiclient chatting client server
Laporan multiclient chatting client server
trilestari08
Membuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan javaMembuat aplikasi chat menggunakan java
Membuat aplikasi chat menggunakan java
Eko 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 TCP
Syauqina Idzni Adzhani
Laporan program chatting client server
Laporan program chatting client serverLaporan program chatting client server
Laporan program chatting client server
Rara Ariesta
Membangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-javaMembangun aplikasi-client-server-dengan-java
Membangun aplikasi-client-server-dengan-java
Ali Muqorrobien
Presentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-TimePresentati Sisteam Antrian Real-Time
Presentati Sisteam Antrian Real-Time
Uliel 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 java
Agung Sulistyanto
Laporan multiclient chatting client server
Laporan multiclient chatting client serverLaporan multiclient chatting client server
Laporan multiclient chatting client server
trilestari08

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

Program chatting
Program chattingProgram chatting
Program chatting
Aisy Cuyy
Laporan program chatting
Laporan program chattingLaporan program chatting
Laporan program chatting
ganteng8
Laporan program chatting1
Laporan program chatting1Laporan program chatting1
Laporan program chatting1
ichsanbarokah
Laporan chatting server dan client
Laporan chatting server dan clientLaporan chatting server dan client
Laporan chatting server dan client
trilestari08
Laporan Chatting Server dan Client
Laporan Chatting Server dan ClientLaporan Chatting Server dan Client
Laporan Chatting Server dan Client
trilestari08
Jeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 JaringanJeni Intro2 Bab10 Jaringan
Jeni Intro2 Bab10 Jaringan
Individual Consultants
Zainal chatting
Zainal chattingZainal chatting
Zainal chatting
Rizal Yugo Prasetyo
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
LiberitoSantos
Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3
sulaiman yunus
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysql
rikysp
Part 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfPart 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdf
AiAdhi
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
Individual Consultants
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
UNIVERSITY 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_function
Polytechnic State Semarang
Tutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xamppTutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xampp
Yoga Pratama Putra
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.ppt
TashidFafri1
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 PEMROGRAMAN
Nur Kholifah Hidayah
Laporan praktikum dpk modul 1
Laporan praktikum dpk modul 1Laporan praktikum dpk modul 1
Laporan praktikum dpk modul 1
Nur Kholifah Hidayah
Program chatting
Program chattingProgram chatting
Program chatting
Aisy Cuyy
Laporan program chatting
Laporan program chattingLaporan program chatting
Laporan program chatting
ganteng8
Laporan program chatting1
Laporan program chatting1Laporan program chatting1
Laporan program chatting1
ichsanbarokah
Laporan chatting server dan client
Laporan chatting server dan clientLaporan chatting server dan client
Laporan chatting server dan client
trilestari08
Laporan Chatting Server dan Client
Laporan Chatting Server dan ClientLaporan Chatting Server dan Client
Laporan Chatting Server dan Client
trilestari08
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
LiberitoSantos
Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3Praktikum pemrograman jaringan-1-3
Praktikum pemrograman jaringan-1-3
sulaiman yunus
Octav android mysql
Octav android mysqlOctav android mysql
Octav android mysql
rikysp
Part 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdfPart 3 & 4 Networking Programming.pdf
Part 3 & 4 Networking Programming.pdf
AiAdhi
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
Individual Consultants
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
UNIVERSITY 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_function
Polytechnic State Semarang
Tutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xamppTutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xampp
Yoga Pratama Putra
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.ppt
TashidFafri1
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 PEMROGRAMAN
Nur Kholifah Hidayah

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
yoyomay93
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
yoyomay93
MultiClient chatting berbasis gambar
MultiClient chatting berbasis gambarMultiClient chatting berbasis gambar
MultiClient chatting berbasis gambar
yoyomay93
Info Client dan Info Server
Info Client dan Info ServerInfo Client dan Info Server
Info Client dan Info Server
yoyomay93
Membuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman JavaMembuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman Java
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 Java
yoyomay93
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
yoyomay93
MultiClient chatting berbasis gambar
MultiClient chatting berbasis gambarMultiClient chatting berbasis gambar
MultiClient chatting berbasis gambar
yoyomay93
Info Client dan Info Server
Info Client dan Info ServerInfo Client dan Info Server
Info Client dan Info Server
yoyomay93
Membuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman JavaMembuat Aplikasi Browser Menggunakan Pemrograman Java
Membuat Aplikasi Browser Menggunakan Pemrograman Java
yoyomay93

Recently uploaded (8)

Topik 11 Employee Engagement dan Analitik Sentimen
Topik 11 Employee Engagement dan Analitik SentimenTopik 11 Employee Engagement dan Analitik Sentimen
Topik 11 Employee Engagement dan Analitik Sentimen
Seta Wicaksana
HIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSK
HIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSKHIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSK
HIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSK
gendhisirma
kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...
kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...
kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...
ekasanjaya2610
com.google.android.apps.photos.Image photolokasi.pdf
com.google.android.apps.photos.Image photolokasi.pdfcom.google.android.apps.photos.Image photolokasi.pdf
com.google.android.apps.photos.Image photolokasi.pdf
DNcen
Soal ulangan mid semester 1 b arab kls 2 haqqu.docx
Soal ulangan mid semester 1 b arab kls 2 haqqu.docxSoal ulangan mid semester 1 b arab kls 2 haqqu.docx
Soal ulangan mid semester 1 b arab kls 2 haqqu.docx
DZAKY60
Paparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdf
Paparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdfPaparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdf
Paparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdf
blendonk45
PPT Pengantar Data Mining Pertemuan 2 .ppt
PPT Pengantar Data Mining Pertemuan 2 .pptPPT Pengantar Data Mining Pertemuan 2 .ppt
PPT Pengantar Data Mining Pertemuan 2 .ppt
Muhammad Nasution
materi Probabilitas dan Staitistik semester 1
materi Probabilitas dan Staitistik semester 1materi Probabilitas dan Staitistik semester 1
materi Probabilitas dan Staitistik semester 1
SyaifuddinRahmad
Topik 11 Employee Engagement dan Analitik Sentimen
Topik 11 Employee Engagement dan Analitik SentimenTopik 11 Employee Engagement dan Analitik Sentimen
Topik 11 Employee Engagement dan Analitik Sentimen
Seta Wicaksana
HIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSK
HIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSKHIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSK
HIPOTESIS DAN UJI HIPOTESIS (1).pptxsN<YGSKSAKMCSK
gendhisirma
kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...
kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...
kelompok 3 jangkauan data dan jangkauan interquartil data kelompok Presentasi...
ekasanjaya2610
com.google.android.apps.photos.Image photolokasi.pdf
com.google.android.apps.photos.Image photolokasi.pdfcom.google.android.apps.photos.Image photolokasi.pdf
com.google.android.apps.photos.Image photolokasi.pdf
DNcen
Soal ulangan mid semester 1 b arab kls 2 haqqu.docx
Soal ulangan mid semester 1 b arab kls 2 haqqu.docxSoal ulangan mid semester 1 b arab kls 2 haqqu.docx
Soal ulangan mid semester 1 b arab kls 2 haqqu.docx
DZAKY60
Paparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdf
Paparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdfPaparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdf
Paparan Panduan Implementasi Kurikulum Cinta_17 Februari 2025.pdf
blendonk45
PPT Pengantar Data Mining Pertemuan 2 .ppt
PPT Pengantar Data Mining Pertemuan 2 .pptPPT Pengantar Data Mining Pertemuan 2 .ppt
PPT Pengantar Data Mining Pertemuan 2 .ppt
Muhammad Nasution
materi Probabilitas dan Staitistik semester 1
materi Probabilitas dan Staitistik semester 1materi Probabilitas dan Staitistik semester 1
materi Probabilitas dan Staitistik semester 1
SyaifuddinRahmad

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