Aplikasi Chatting Multithread Client-Server melalui CMD menggunakan JAVA

Aplikasi Chatting Multithread Client-Server melalui CMD menggunakan JAVA 



Please Visit :








     Artikel kali ini akan membahas bagaimana membuat aplikasi chatting di java, namun sebelum kita mencoba mencoba membuat aplikasinya, ada baiknya kita mengetahui terlebih dahulu apa itu Java :

1. Pengertian Java

    Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat olehJames Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.

2. Versi Awal Java
      Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
java.lang: Peruntukan kelas elemen-elemen dasar.
java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
Sumber Wikipedia, http://id.wikipedia.org/wiki/Java [19/04/2013] 


     Setelah kita mengetahui apa itu JAVA, maka kita langsung ke pembahasan saja yaitu bagaimana membuat aplikasi chatting multithread client-server melalui CMD menggunakan program JAVA.

       Pada Aplikasi chatting sebelumnya yang telah dibuat yaitu apabila client mengirim pesan ke server, client harus menunggu terlebih dahulu balasan dari server baru nantinya ia bisa mengirim lagi pesan ke server. Oleh sebab itu pada percobaan kali ini akan di buat Sebuah Aplikasi Chatting menggunakan java, dimana antara client dan server tidak perlu saling menunggu untuk dapat mengirimkan pesan.

Berikut akan dijelaskan langkah-langkahnya mulai dari Spesifikasi kebutuhan, langkah instalasi javanya dan Pembuatan aplikasi chattingnya. 

1. Spesifikasi kebutuhan :
   - Gunakan Windows 7 atau XP 32bit
   - Software Java, download dari Indowebster
      Disini
      Dari 4Shared
      Disini
   - Kabel LAN UTP Cross Over (nantinya digunakan untuk mengkoneksikan antar Komputer)
     Jika ingin melihat cara membuat kabelnya Klik disini
   - Aplikasi Notepad (yang ada di windows)

Karena pada percobaan ini kita akan mencobanya antar komputer, maka gunakanlah kabel LAN , dan atur IP Address pada masing-masing komputer. kita implementasikan saja seperti antara Client dan Server
gunakan saja IP Address Seperti berikut :

Pada server :
IP Address : 192.168.137.1
Netmask : 255.255.255.0

Pada Client :
IP Address : 192.168.137.2
Netmask : 255.255.255.0

PENTING : "PASTIKAN FIREWALL PADA MASING-MASING KOMPUTER DI NON AKTIFKAN"
Karena pada beberapa kasus program ini tidak dapat saling terkoneksi akibat firewall yang aktif pada sistem operasinya.

2. Langkah-langkah Instalasi Java
    - Setelah download File Javanya. ekstrak terlebih dahulu apabila dalam bentuk RAR
    - Jalankan Setupnya.
     - Klik next



     - Klik Next ,dan tunggu prosesnya




    - Proses selesai , klik finish

    Setelah Proses Instalasi Selesai, agar aplikasi java ini dapat di jalankan di command prompt lakukan konfigurasi path pada Environment variabelnya.
Berikut ini langkah-langkahnya :

- Klik Start
- Pada My Computer, Klik kanan dan pilih Properties, lalu pilih tab Advance System Setting
- klik pada Environment Variables, seperti gambar berikut :

 - 

- Klik pada System Variables dan cari bagian path lalu klik Edit.
- Masukkan kalimat berikut di bagian path tersebut, beri pembatas dengan tanda ";" (tanpa petik)
   ;C:\Program Files\Java\jdk1.6.0\bin;
- isi path tersebut di sesuaikan dengan lokasi instalasi program javanya, misalnya di drive C dan pada folder
   Proram files\Java\jdk1.6.0\bin
-Jika sudah Klik OK
-Maka Proses Pun Selesai, selanjutnay saya akan menjelaskan program yang akan di jalankan dengan java
  tersebut.


Berikut ini merupakan Listing Program Javanya :

1. Listing Program Server.java


import java.io.*;
import java.net.*;
import java.lang.*;
public class Server {
public static void main(String[] args) throws IOException {
final int port = 444;
System.out.println("**************************************************");
System.out.println("*  Aplikasi Chatting Java Melalui Command Line   *");
System.out.println("**************************************************");
System.out.println("*               TEKNIK KOMPUTER                  *");
System.out.println("*             Raden Abdul Hadi Haq               *");
System.out.println("*                 M.Darmansyah                   *");
System.out.println("**************************************************");
System.out.println("*Ketikkan Pesan dengan kata 'exit' untuk keluar  *");
System.out.println("**************************************************");
System.out.println("   Server Menunnggu Koneksi Pada Port = "+port   );
System.out.println("**************************************************");


ServerSocket ss = new ServerSocket(port);
Socket clientSocket = ss.accept();
System.out.println("Server Menerima Koneksi Dari "+clientSocket.getInetAddress()+" on port "+clientSocket.getPort());
RecieveFromClientThread recieve = new RecieveFromClientThread(clientSocket);
Thread thread = new Thread(recieve);
thread.start();
SendToClientThread send = new SendToClientThread(clientSocket);
Thread thread2 = new Thread(send);
thread2.start();
}}
class RecieveFromClientThread implements Runnable
{
Socket clientSocket=null;
BufferedReader brBufferedReader = null;

public RecieveFromClientThread(Socket clientSocket)
{
this.clientSocket = clientSocket;
}
public void run() {
try{
brBufferedReader = new BufferedReader(new InputStreamReader(this.clientSocket.getInputStream()));

String messageString;
while(true){
while((messageString = brBufferedReader.readLine())!= null){
if(messageString.equals("EXIT"))
{
break;
}
System.out.println("Pesan Client: " + messageString);
System.out.println("Kirim Pesan Anda: ");
}
this.clientSocket.close();
System.exit(0);
}

}
catch(Exception ex){System.out.println(ex.getMessage());}
}
}
class SendToClientThread implements Runnable
{
PrintWriter pwPrintWriter;
Socket clientSock = null;

public SendToClientThread(Socket clientSock)
{
this.clientSock = clientSock;
}
public void run() {
try{
pwPrintWriter =new PrintWriter(new OutputStreamWriter(this.clientSock.getOutputStream()));

while(true)
{
String msgToClientString = null;
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

msgToClientString = input.readLine();

pwPrintWriter.println(msgToClientString);
pwPrintWriter.flush();
System.out.println("Kirim Pesan Anda:");

if(msgToClientString.equals("exit"))
break;
}
clientSock.close();}catch(Exception ex){System.out.println(ex.getMessage());}
}
}





2. Listing Program Client.java  



import java.io.*;
import java.net.Socket;
public class Client {
  private static Socket sock = null;
public static void main(String[] args)
{
  // The default port.
   int portNumber = 444;
   // The default host.
   String host = "127.0.1.1";

   if (args.length < 2) {

 System.out.println("***********************************************************************");
     System.out.println("*            Jika Melakukan Koneksi Dari Komputer Lain                *");
     System.out.println("*  Gunakan Perintah: java Client \n   *");
 System.out.println("***********************************************************************");

   } else {

     host = args[0];
     portNumber = Integer.valueOf(args[1]).intValue();
    }
try {
      sock = new Socket(host, portNumber);
SendThread sendThread = new SendThread(sock);
Thread thread = new Thread(sendThread);thread.start();
RecieveThread recieveThread = new RecieveThread(sock);
Thread thread2 =new Thread(recieveThread);thread2.start();
} catch (Exception e) {System.out.println(e.getMessage());}
}
}
class RecieveThread implements Runnable
{
Socket sock=null;
BufferedReader recieve=null;

public RecieveThread(Socket sock) {

this.sock = sock;
}//end constructor
public void run() {
try{
recieve = new BufferedReader(new InputStreamReader(this.sock.getInputStream()));//get inputstream
String msgRecieved = null;
while((msgRecieved = recieve.readLine())!= null)
{
System.out.println("Dari Server: " + msgRecieved);
System.out.println("Kirim Pesan Anda:");
}
}catch(Exception e){System.out.println(e.getMessage());}
}//end run
}//end class recievethread
class SendThread implements Runnable
{
Socket sock=null;
PrintWriter print=null;
BufferedReader brinput=null;

public SendThread(Socket sock)

{
this.sock = sock;
}//end constructor
public void run(){
try{
if(sock.isConnected())
{
System.out.println("***********************************************************************");
System.out.println("         Client connected to "+sock.getInetAddress() + " on port "+sock.getPort());
System.out.println("***********************************************************************");
System.out.println("*           Ketikkan Pesan dengan kata 'exit' untuk keluar            *");
System.out.println("***********************************************************************");
this.print = new PrintWriter(sock.getOutputStream(), true);
while(true){
System.out.println("Kirim Pesan Anda:");
brinput = new BufferedReader(new InputStreamReader(System.in));
String msgtoServerString=null;
msgtoServerString = brinput.readLine();
this.print.println(msgtoServerString);
this.print.flush();

if(msgtoServerString.equals("exit"))

break;
}//end while
sock.close();}}catch(Exception e){System.out.println(e.getMessage());}
}//end run method
}//end class




Langkah-Langkah Menjalankan Kode Program Diatas :


1. Copykan kode program Server.java ke notepad

2. Simpan dengan cara :
3. Pastikan File namenya adalah Server.java , karena pada public classnya digunakan nama Server, 
    sehingga harus disimpan dengan nama Server.java
4. Pastikan juga Save As type adalah All File

5. Lakukan Hal sama dengan kode program Client.java, simpan dengan nama Client.java

Langkah-langkah Menjalankan Program di Command Prompt :

1. Buka Command Prompt, klik start - all program - accessories - Command Prompt
2. pindah ke drive tempan kita menyimpan file java tersebut, pada contoh disini saya menyimpannya di folder   
    chatmulti di drive C:\ 
    untuk pindah ke drive C:\chatmulti\ ketikkan perintah "cd \chatmulti" (tanpa petik)
3. Compile file java yang kita simpan tadi  dengan format :
     javac nama_file.java
     Jadi :
     javac Server.java
     javac Client.java

     Seperti Gambar Berikut :
     

4. Jalankan file Server.java dengan perintah
     java Server 
    Sehingga tampilannya seperti berikut ini :
    

5. Dari gambar di atas dapat dilihat bahwa server mengunngu koneksi dari Client, Program di atas di 
    jalankan di komputer server
6. Untuk mengetesnya, maka kita akan menjalankan program Client.java nya di komputer Client

7. Lakuka Proses compile file Client.java di komputer Clientnya dan jalankan program Client.java tersebut 
    di Command prompt dengan format :
    java Client  ip_Server no_port
    jadi :
    java 192.168.137.1 444
    
    Hasilnya seperti gambar berikut ini :
    
    
    

   Dapat dilihat bahwa komputer client telah terhubung ke Server dan program Chatting Client juga telah terhubung ke Server : 

Client dapat mengirim beberapa pesan ke server : 
seperti gambar berikut :



Pada Servernya :


Untuk Mengakhiri program Chat tersebut, anda hanya perlu megetikkan "exit" (tanpa petik)


Dari Program yang telah di buat di atas dapat diketahui bahwa dengan menggunakan fungsi socket pada java, antara komputer client dan server dapat saling terhubung. dan dengan Fungsi Thread antara komputer client dan server dapat saling terus menerus berkomunikasi tanpa harus saling menunggu balasan. karena fungsi thread tersebut akan menjalankan proses pengiriman pesan dan penyimpan pesan di saat yang bersamaan.


Tambahan : 
Pada percobaan yang saya lakukan, program berjalan dengan sukses
apabila pada saat anda yang menjalankan dan terdapat error anda dapat melihat dimana letak error tersebut saat anda mengcompilenya.  Dan pastikan bahwa saat anda menyimpan program tersebut. program benar-benar berekstensi .java, bukan .java.txt . 
Pastikan juga koneksi anda sudah terhubung dengan benar, untuk memastikannya lakukan ping. dan pastikan firewall beserta antivirus dalam keadaan off. karena pada beberapa kasus , program client tidak dapat dijalankan karena di filter oleh firewall dan antivirus. 



DOWNLOAD FILE PDF 
lengkapnya

Penulis : Hadi ~ Sebuah blog yang menyediakan berbagai macam informasi

Artikel Aplikasi Chatting Multithread Client-Server melalui CMD menggunakan JAVA ini dipublish oleh Hadi pada hari Kamis, 16 Mei 2013. Semoga artikel ini dapat bermanfaat.Terimakasih atas kunjungan Anda silahkan tinggalkan komentar.sudah ada 2 komentar: di postingan Aplikasi Chatting Multithread Client-Server melalui CMD menggunakan JAVA
 

2 komentar:

  1. bang kalo gak pakai kabel lan tapi pake jaringan adhoc lan boleh?
    tolong dijawab bang

    BalasHapus
  2. bang klo misalnya clientnya ada 2 atau lebih gimana codingnya bang ?

    BalasHapus