SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
MEMBANGUN APLIKASI CLIENT SERVER DENGAN BAHASA
PEMROGRAMAN JAVA
Oleh :
AINI MAISI
(0611 3070 1291)
6CD
JURUSAN TEKNIK KOMPUTER
POLITEKNIK NEGERI SRIWIJAYA
PALEMBANG
MEMBANGUN APLIKASI CLIENT SERVER DENGAN BAHASA
PEMROGRAMAN JAVA
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);
}
}
}
}

Weitere ähnliche Inhalte

Was ist angesagt?

How to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggurHow to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - ngangguridsecconf
 
Mpi comm accept
Mpi comm acceptMpi comm accept
Mpi comm acceptscholaani
 
“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan
“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan
“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahanidsecconf
 
Bypass web security dengan menggunakan teknik XST (Cross Sites Tracing)
Bypass web security dengan menggunakan  teknik XST (Cross Sites Tracing)Bypass web security dengan menggunakan  teknik XST (Cross Sites Tracing)
Bypass web security dengan menggunakan teknik XST (Cross Sites Tracing)Mark Thalib
 
Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2Fitrahdede
 

Was ist angesagt? (7)

How to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggurHow to hack #IDSECCONF2014 ctf online challenge - nganggur
How to hack #IDSECCONF2014 ctf online challenge - nganggur
 
Mpi comm accept
Mpi comm acceptMpi comm accept
Mpi comm accept
 
Bab ii
Bab iiBab ii
Bab ii
 
“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan
“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan
“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan
 
What's about Dev-C++
What's about Dev-C++What's about Dev-C++
What's about Dev-C++
 
Bypass web security dengan menggunakan teknik XST (Cross Sites Tracing)
Bypass web security dengan menggunakan  teknik XST (Cross Sites Tracing)Bypass web security dengan menggunakan  teknik XST (Cross Sites Tracing)
Bypass web security dengan menggunakan teknik XST (Cross Sites Tracing)
 
Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2Fitrah hi hukum tugas so 2
Fitrah hi hukum tugas so 2
 

Ähnlich wie MEMBANGUN APLIKASI CHAT JAVA

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
 
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
 
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
 
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
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONDimas Prawira
 
pemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputerpemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputeralisofyan13
 
JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJurnal IT
 
Tugas pemrograman III_1100631028
Tugas pemrograman III_1100631028Tugas pemrograman III_1100631028
Tugas pemrograman III_1100631028Edwin Prassetyo
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsIndividual Consultants
 
Pengantar Sistem Informasi Akuntansi 2
Pengantar Sistem Informasi Akuntansi 2Pengantar Sistem Informasi Akuntansi 2
Pengantar Sistem Informasi Akuntansi 2Lailani Fitria
 
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptTashidFafri1
 

Ähnlich wie MEMBANGUN APLIKASI CHAT JAVA (20)

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_
 
Tutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xamppTutorial membuat sertifikat ssl menggunakan xampp
Tutorial membuat sertifikat ssl menggunakan xampp
 
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
 
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
 
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSONTutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
Tutorial pembuatan REST Service pada Support System menggunakan Servlet dan GSON
 
pemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputerpemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputer
 
JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdfJENI-J2ME-Bab11-Topik-topik Tambahan.pdf
JENI-J2ME-Bab11-Topik-topik Tambahan.pdf
 
Tugas pemrograman III_1100631028
Tugas pemrograman III_1100631028Tugas pemrograman III_1100631028
Tugas pemrograman III_1100631028
 
Jeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic ServletsJeni Web Programming Bab 2 Basic Servlets
Jeni Web Programming Bab 2 Basic Servlets
 
Pengantar Sistem Informasi Akuntansi 2
Pengantar Sistem Informasi Akuntansi 2Pengantar Sistem Informasi Akuntansi 2
Pengantar Sistem Informasi Akuntansi 2
 
Chapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.pptChapter 10. Operasi IO.ppt
Chapter 10. Operasi IO.ppt
 

Kürzlich hochgeladen

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
 
Contoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningContoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningSamFChaerul
 
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
 
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
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxmariaboisala21
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxImahMagwa
 
PPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptxPPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptxsitifaiza3
 
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptxBAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptxchleotiltykeluanan
 
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
 

Kürzlich hochgeladen (9)

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
 
Contoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data miningContoh Algoritma Asosiasi pada data mining
Contoh Algoritma Asosiasi pada data mining
 
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
 
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...
 
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptxMARIA NOVILIA BOISALA FASILITATOR PMM.pptx
MARIA NOVILIA BOISALA FASILITATOR PMM.pptx
 
Menggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptxMenggunakan Data matematika kelas 7.pptx
Menggunakan Data matematika kelas 7.pptx
 
PPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptxPPT ANEMIA pada remaja maupun dewasapptx
PPT ANEMIA pada remaja maupun dewasapptx
 
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptxBAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
BAGAIAMANA PANCASILA MENJADI SISTEM ETIKA.pptx
 
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
 

MEMBANGUN APLIKASI CHAT JAVA

  • 1. MEMBANGUN APLIKASI CLIENT SERVER DENGAN BAHASA PEMROGRAMAN JAVA Oleh : AINI MAISI (0611 3070 1291) 6CD JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG
  • 2. MEMBANGUN APLIKASI CLIENT SERVER DENGAN BAHASA PEMROGRAMAN JAVA 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.
  • 8. 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...");
  • 9. 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 {
  • 10. 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(); }
  • 11. } 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();
  • 12. //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); } } } }