Membuat Aplikasi Chatting
Dengan Java
Sudah tidak asing lagi kata chatting di telinga kita. Chating di internet atau mengobrol lewat internet itu memang asyik dan menyenangkan sehingga tak jarang seseorang yang pergi ke warung internet hanya untuk chating saja sampai berjam-jam.
Dengan chating lewat internet siapa saja bisa mendapatkan banyak teman dari penjuru dunia. Hal keamanan merupakan faktor penting bagi kita dalam berbagi informasi. Misalnya, jika bos kita ingin mendengar laporan kerja karyawan maka jika kita memberitahu dengan SMS, email dan lain sebagainya.
Nah, sekarang mari kita mencoba membuat program chatting yang sangat berguna dan meningkatkan keamanan data sehingga mengurangi orang yang tidak diinginkan masuk ke dalam forum kita dan ‘mencuri’ data kita.
Disini kita akan belajar membuat sendiri program chatting tersebut dalam hal permrograman, dan program aplikasi yang akan kita gunakan yaitu menggunakan bahasa java. Java adalah bahasa yang handal, mudah dipelajari bagi pengguna C++, rumus umum dasar java menyerupai C++ akan tetapi ada juga yang tidak mirip, java lebih mengkhususkan diri untuk full objek.
Jadi kita akan buat masing-masing server dan client akan menjalankan dua program. Lho kok dua program? Karena disini kita akan menyajikan program yang mengirim data (tulisan) dari server ke klien dan dari klien ke server. Jadi disini kita akan dihadapkan pada bagaimana menyatukan dua program pada masing-masing computer sehingga masing-masing computer hanya menjalankan satu program saja.
Yuuk langsung saja kita buat bersama J
Listing programnya sebagai berikut
1. Server mengirim data ke Client
// program server: simpan dalam ServerKu1.java
// kompile menjadi ServerKu1.class
Import java.net.*;
import java.io.*;
public class ServerKu1 {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(2002);
System.out.println("Menunggu Klien...");
Socket s = ss.accept();
System.out.println("Klien telah masuk");
System.out.println("Server pada port = "+
s.getLocalAddress().getHostAddress() + " : " + s.getLocalPort());
System.out.println("Client pada port = "+
s.getInetAddress().getHostAddress() + " : " + s.getPort());
PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String greeting = "";
while(!(greeting=br.readLine()).equals("")) { pw.println(greeting); }
pw.close(); s.close(); ss.close();
} catch (Exception e) { e.printStackTrace(); }
}
}
// program klien : Simpan dalam ClientKu1.java
// kompile menjadi ClientKu1.class
import java.net.*;
import java.io.*;
public class ClientKu1 {
public static void main(String[] args) {
try {
Socket s = new Socket("127.0.0.1",2002);
System.out.println("Komunikasi terhubung");
System.out.println("Client pada port = "+
s.getLocalAddress().getHostAddress() + " : "+ s.getLocalPort());
System.out.println("Server pada port = "+
s.getInetAddress().getHostAddress() + " : "+ s.getPort());
BufferedReader br = new BufferedReader( new InputStreamReader(s.getInputStream()));
System.out.println("Menunggu pesan...");
String greeting = "";
while ((greeting=br.readLine())!=null) { System.out.println(greeting); }
System.out.println("Selesai");
br.close();
s.close();
}
catch (Exception e) { e.printStackTrace(); }
}
}
2. Client mengirim data ke Server
// program server : Simpan dalam ServerKu2.java
// kompile menjadi ServerKu2.class
import java.net.*;
import java.io.*;
public class ServerKu2 {
public static void main(String args[]) {
int port;
ServerSocket server_socket;
BufferedReader input;
try {
port = Integer.parseInt(args[0]);
}
catch (Exception e) {
System.out.println("port = 2000 (Standarnya)");
port = 2000;
}
try {
server_socket = new ServerSocket(port);
System.out.println("Server menunggu klien di port " +
server_socket.getLocalPort());
// server mondar-mandir disini
while(true) {
Socket socket = server_socket.accept();
System.out.println("Hubungan baru diterima " +
socket.getInetAddress() +
":" + socket.getPort());
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// menampilakan data yang diterima
try {
while(true) {
String message = input.readLine();
if (message==null) break;
System.out.println(message);
}
}
catch (IOException e) {
System.out.println(e);
}
// Client menutup hubungan
try {
socket.close();
System.out.println("Client telah menutup hubungan");
}
catch (IOException e) {
System.out.println(e);
// program client : Simpan dalam ClientKu2.java
// kompile menjadi ClientKu2.class
import java.net.*;
import java.io.*;
public class ClientKu2 {
public static void main(String[] args) {
int port = 2002;
String server = "localhost";
Socket socket = null;
String lineToBeSent;
BufferedReader input;
PrintWriter output;
int ERROR = 1;
// read arguments
if(args.length == 2) {
server = args[0];
try {
port = Integer.parseInt(args[1]);
}
catch (Exception e) {
System.out.println("server port = 1500 (Standarnya)");
port = 2002;
}
}
// Koneksi ke server
try {
socket = new Socket(server, port);
System.out.println("Terkoneksi ke server " +
socket.getInetAddress() +
":" + socket.getPort());
}
catch (UnknownHostException e) {
System.out.println(e);
System.exit(ERROR);
}
catch (IOException e) {
System.out.println(e);
System.exit(ERROR);
}
try {
input = new BufferedReader(new InputStreamReader(System.in));
output = new PrintWriter(socket.getOutputStream(),true);
Untuk mengkompile dan menjalankannya, maka ikuti langkah berikut :
Server ke Client
1. Kompile ServerKu1.java :
C:\> javac ServerKu1.java
Jalankan program :
C:\> java ServerKu1
Output :

2. Kompile ClientKu1.java :
C:\> javac ClientKu1.java
Jalankan program :
C:\> java ClientKu1
Output :
Setelah ClientKu1.class dijalankan maka anda bisa mengetikkan kalimat di jendela
Server dan akan di tampilkan di jendela klien. Untuk mengakhiri koneksi, anda bisa
menekan enter dua kali atau menutup dari jendela windows.
Client ke Server
1. Kompile ServerKu2.java :
C:\> javac ServerKu2.java
Jalankan program :
C:\> java ServerKu2
Output :
2. Kompile ClientKu2.java :
C:\> javac ClientKu2.java
Jalankan program :
C:\> java ClientKu2
Output :
Setelah ServerKu2.class dan ClientKu2.class di jalankan, sekarang kesempatan
bagi anda untuk menulis pesan di klien dan nantinya akan di teruskan ke server.

Nah, sekarang adalah suatu tantangan bagi anda untuk menyatukan dua program ini menjadi
satu program saja. Selamat mencoba!.









Tidak ada komentar:
Posting Komentar