Membuat Aplikasi Chatting Dengan Java

dokumen-dokumen yang mirip
PEMROGRAMAN SOCKET LANJUTAN

Pemrograman Socket menggunakan TCP

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

A. TUJUAN : Dapat mengimplementasi-kan kelas-kelas Java yang digunakan dalam pemrogaman jaringan.

10.1 Konsep dasar jaringan

APLIKASI CHAT ANTAR PC

Network Programming 2010 Pertemuan-4. Pemrograman Socket. Husni. Husni.trunojoyo.ac.id Komputasi.wordpress.

Program Java Sesi 1. Arief Susanto

MENGGUNAKAN TCP SOCKET. Oleh: M. Ghazali a.k.a. ghanoz 2480

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

A. TUJUAN PEMBELAJARAN

PENGANTAR APLIKASI TERDISTRIBUSI (Minggu I Praktikum I)

Sistem Terdistribusi

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

Sistem Terdistribusi

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

Riwayat Pendidikan: SDK Lemuel II, Pos Pengumben, Jakarta Barat SMPK Lemuel, Pos Pengumben, Jakarta Barat SMUN 78, Kemanggisan, Jakarta Barat

Introduction To Stream

Modul 3 Flow Control dan Input

Mobile Computing Tugas Individu 1

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

Pertemuan 3 Struktur Perulangan pada Java

M.Octaviano Pratama

Berhitung dengan mudah dan cepat menggunakan freeware Eigenmath

Socket pada UDP. Husni Husni.trunojoyo.ac.id Komputasi.wordpress.com

BAB 2 INPUT DARI KEYBOARD

Input Nilai tanpa Case String di Java

Latihan Ujian Pemrograman Berorientasi Objek. Semester Genap 2016/2017

Struktur Data dan Algoritma IKI10400 Semester Gasal 2010/2011 Fakultas Ilmu Komputer Universitas Indonesia

A. TUJUAN PEMBELAJARAN 1. Mengetahui cara menangani exception dengan cara melempar exception. 2. Mengetahui cara membuat sendiri class exception.

PRAKTIKUM 17 MENANGANI EXCEPTION

Mendapatkan Input Dari Keyboard

Modul Praktikum Pemrograman

Integrasi Animasi Dengan Java

Nama Lengkap : Muiz Lidinillah NIM :

Cara Membaca File Text di JAVA

Pertemuan 2 Struktur Kontrol Percabangan

PEMOGRAMAN JAVA. Yoannita. Tipe Data (ii) : Array Exception Handling

Bahasa Pemrograman :: Dasar Pemrograman Java

Pemrograman Socket menggunakan UDP

I/O (Input dan Output)

Network Programming 2010 Jaringan & Aplikasinya. Husni Husni.trunojoyo.ac.id

Pemrograman Socket TCP dan Socket UDP

PRAKTIKUM 7 DASAR INPUT OUTPUT

Praktikum 9 Exception Handling

pembuat game seperti yang kita rasakan saat ini dimana banyak game online

BAB III IMPLEMENTASI. Sistem pada server pengendali lampu dengan Raspberry Pi ini. kemudian server akan menunggu klien melakukan request permintaan

Nama Penulis Pendahuluan. Isi. Lisensi Dokumen:

Sudarma Sopian Pendahuluan. Isi. Lisensi Dokumen:

Ari Angga Wijaya

Pengingat Jadwal Kegiatan Otomatis dengan Google Calendar

Connection Oriented. Kholid F.

SUMBER BELAJAR PENUNJANG PLPG

Berikut merupakan salah satu contoh dari pesan SOAP (SOAP Message):

Fajar Yusran Zebua DASAR ANIMASI

Metode Insertion Sort di Java Console

Pembelian Tiket Pesawat dengan menggunakan Google Form

BAB Argument Command-Line dan System Properties

Tutorial Web Service JAX-WS Konverter Suhu dengan NetBeans

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

Praktikum Exception Handling

NETWORK PROGRAMMING. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

Menambah Lokasi Jaringan FTP pada My Computer

PEMROGRAMAN JARINGAN MODUL 3 STREAM

Moh Sulhan

Indowebster media penyimpanan berbasis Cloud Computing

Sudarma Sopian Blog: Pendahuluan. Isi. Lisensi Dokumen:

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 5 Dosen : Bella Hardiyana S. Kom

Tutorial Editor Pico. Askari Azikin

Imam Prasetyo Apa sih Protokol POP?

LAMPIRAN. Berikut ini adalah kode program transmisi video yang diinstall pada sisi user. public static void main(string args[]) throws Exception

BAB 1 KONSEP DASAR JAVA

UAS JAVAUAS JAVA. Fibonaci Naik :

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Analysis protocol TCP, UDP, dan monitoring protocol SSL

Muhammad Fikri Hidayatullah

Cara Installasi Operating Sistem Mikrotik Pada PC

4shared sebagai media penyimpanan berbasis Cloud Computing

Membuat Daftar bersama pada Spreadsheet Google Drive

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

ARRAY, SORTING & SEARCHING

Praktikum Minggu ke-14. Socket Programming

Perulangan / Looping

KONVERSI DATA DAN INPUT DATA

if (ekspresi_boolean) { Pernyataan1; } else { Pernyataan2; }

LAPORAN PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK

1. Mana diantara pilihan-pilihan berikut ini yang merupakan penulisan loop yang benar?

Pertemuan III [STRUKTUR KONTROL] CariGrade.java Program mencari grade nilai menggunakan struktur control if-else

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

ALGORITMA, FLOWCHART dan PSEUDO-CODE

MODUL PRAKTIKUM Matematika Informatika 2

Ainul Fuad Farhan

Otomasi Shell Script Lanjut

PRAKTIKUM 6 EXCEPTION

Metode Sequential Searching di Java Console

Transkripsi:

Membuat Aplikasi Chatting Dengan Java M Zainal Arifin agendogget@yahoo.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com. Sudah tidak asing lagi bagi kita tentang chating di internet. 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 anda 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 lewat ICQ, email dan sebagainya serasa tidak efektif bila kita menginginkan komunikasi dua arah yang saling bertemu dan menjamin keamanan tinggi sehingga menciptakan suasana yang akrab dan nyaman. Dalam hal ini anda bisa memakai program chating mirc32, ICQ, dan sebagainya yang sudah disediakan oleh warung internet. Apakah orang lain yang tidak diinginkan bisa menyusup dan mengambil data kita?, tentu saja bisa. Sebab kebanyakan program chating justru memilih dari segi kegunaan yang umum. Nah, sekarang kita akan mencoba membuat program chating yang sangat berguna dan meningkatkan keamanan data sehingga mengurangi orang yang tidak diinginkan masuk ke dalam forum kita dan mencuri data kita. Hal yang menarik disini adalah kita akan membuat sendiri program chating ini. Dalam hal permrograman ini saya menggunakan bahasa java yang sudah kita kenal selama beberapa tahun ini. Java adalah bahasa yang handal, mudah dipelajari bagi pengguna C++, rumus umum dasar java menyerupai C++ dan ada juga yang tidak mirip, tetapi java lebih mengkhususkan diri untuk full obyek. Begini ceritanya, masing-masing server dan client akan menjalankan dua program. Lho kok dua program?, karena saya akan menyajikan program yang mengirim data (tulisan) dari server ke klien dan dari klien ke server. Jadi disini anda akan dihadapkan pada bagaimana menyatukan dua program pada masing-masing computer sehingga masing-masing computer hanya menjalankan satu program saja. Lebih efektif bukan?, untuk itulah anda bisa memilih dan 1

memodifikasi port, kemananan dan sebagainya secara acak dari kedua program berikut yang menurut anda memiliki kehandalan. 2

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) { 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(); 3

// 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) { 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 4

// 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; port = Integer.parseInt(args[0]); catch (Exception e) { System.out.println("port = 2000 (Standarnya)"); port = 2000; 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 while(true) { String message = input.readline(); if (message==null) break; System.out.println(message); catch (IOException e) { System.out.println(e); // Client menutup hubungan socket.close(); System.out.println("Client telah menutup hubungan"); catch (IOException e) { System.out.println(e); 5

6

// 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]; port = Integer.parseInt(args[1]); catch (Exception e) { System.out.println("server port = 1500 (Standarnya)"); port = 2002; // Koneksi ke server 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); input = new BufferedReader(new InputStreamReader(System.in)); output = new PrintWriter(socket.getOutputStream(),true); 7

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 : 8

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 : 9

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

11

Nah, sekarang adalah suatu tantangan bagi anda untuk menyatukan dua program ini menjadi satu program saja. Selamat mencoba!. BIOGRAFI PENULIS M Zainal Arifin, lahir di Malang, 7 agustus 1980. Mengikuti pendidikan SD sampai Kuliah di Malang. Masih menempuh kuliah jurusan Matematika di Universitas Brawijaya Malang. Menggeluti dunia pemrograman sejak tahun 1997 dan sekarang telah menulis beberapa artikel tentang jaringan dan pemrograman di majalah komputer. Sekarang sedang melakukan penelitian tentang teknologi suara dengan program java dengan teman-teman. Sangat tertarik dengan teknologi java terutama pada jaringan komputer dan mobile. Penulis dapat dihubungi melalui : Email: agendogget@yahoo.com 12