PEMROGRAMAN SOCKET LANJUTAN

dokumen-dokumen yang mirip
A. TUJUAN PEMBELAJARAN

Praktikum Minggu ke-14. Socket Programming

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

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

Pemrograman Socket menggunakan TCP

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

Membuat Aplikasi Chatting Dengan Java

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

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

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

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

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

Modul Praktikum Pemrograman

10.1 Konsep dasar jaringan

APLIKASI CHAT ANTAR PC

LAPORAN RESMI ADMINISTRASI & MANAGEMENT JARINGAN. PRAKTIKUM 3 Pemrograman Socket dengan TCP

BAB 5 Mendapatkan Input dari Keyboard

BAB 5 Mendapatkan Input dari Keyboard

BAB 2 INPUT DARI KEYBOARD

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

Pemrograman Socket menggunakan UDP

Input Nilai tanpa Case String di Java

Sistem Terdistribusi

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

TCP (Transfer Control Protocol) SOCKET PROGRAMMING

Membuat Aplikasi Berbasis Web Di Device Android Mobile

Mendapatkan Input Dari Keyboard

Sistem Terdistribusi

Bahasa Pemrograman :: Dasar Pemrograman Java

M.Octaviano Pratama

PROGRAM STUDI D3 JURUSAN TEKNIK KOMPUTER POLITEKNIK NEGERI SRIWIJAYA PALEMBANG Pemrograman Berorientasi Objek 3 (Mobile And Web Programming)

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

Nama Lengkap : Muiz Lidinillah NIM :

Modul 3 Flow Control dan Input

2.1. Sistem Komunikasi

PENGANTAR APLIKASI TERDISTRIBUSI (Minggu I Praktikum I)

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

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

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

Pemrograman Jaringan 6.

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

Network Programming oleh : Yuliana Setiowati

Pada Java, sebuah objek remote adalah instans dari suatu kelas yang mengimplementasikan antarmuka remote.

Cara Membaca File Text di JAVA

Connection Oriented. Kholid F.

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

2. Pilih instruksi yang dapat digunakan dalam method actionperformed untuk membedakan antara tombol buttonone dan buttontwo.

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

2 TIPE DATA DAN VARIABEL

PRAKTIKUM 17 MENANGANI EXCEPTION

Pemrograman Socket TCP dan Socket UDP

INTRODUCTION TO ANDROID MOBILE APP DEVELOPMENT MUHAMMAD BAGIR., MTI

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

MODUL 14 INTERKONEKSI CLIENT-SERVER ANDROID

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

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

PRAKTIKUM 7 DASAR INPUT OUTPUT

Metode Sequential Searching di Java Console

Pemrograman Jaringan

Tiga Metode Sangat Penting dalam Pemrograman Java Bagi Pemula

BAB 4 ARRAY. number1 = 10; number2 = 20; number3 = 30;

Metode Insertion Sort di Java Console

I/O (Input dan Output)

Tidak ada satupun dari pilihan di atas yang benar karena checked exception tidak bisa ditulis

Java Progamming Multithreading

BAB II VARIABEL DAN TIPE DATA

PRAKTIKUM 6 EXCEPTION

Percobaan 6 Exception

BAB IV IMPLEMENTASI DAN PENGUJIAN

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

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

PEMROGRAMAN JAVA : VARIABEL DAN TIPE DATA

Membuat Kalkulator dengan Java

BAB 4 PROTOKOL TCP UDP - REMOTE

Pertemuan 2 Struktur Kontrol Percabangan

Sistem Tersebar 1 PAGE 10

Mobile Computing. Ramos Somya

BAB IX THREAD Thread ClassThread namavar = new ClassThread(); Namavar.start(); New ClassThread().start();

Mengunci sebuah object: Untuk memastikan bahwa hanya satu thread yang mendapatkan hak akses kedalam method tertentu

PERCOBAAN 6 EXCEPTION

LISTING PROGRAM. Program animasi Frame by Frame dalam bahasa pemrograman Java

Firma Firmansyah Adi B. Resume Web Service

Proses Burst Time Prioritas P P1 7 1 P2 9 3 P P4 19 2

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

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Class Thread juga menyediakan beberapa constants sebagai nilai prioritas. Tabel berikut ini adalah rangkuman dari class Thread.

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

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

SERVLET. 5.1 Membuat Program Servlet

IKG2I4 / Software Project I

Pemrograman Berorientasi Object

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

PEMROGRAMAN JAVA : THREAD

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

Thread. 16 th week Estu Sinduningrum ST,MT

Praktikum 9 Exception Handling

1. Latar Belakang Didalam pembuatan game java sering kali kita mendefinisikan banyak object seperti gambar, dan grafik geometri yang begitu banyak,

Transkripsi:

Praktikum 11 PEMROGRAMAN SOCKET LANJUTAN A. TUJUAN PEMBELAJARAN 1. Siswa memahami konsep aplikasi client server di jaringan. 2. Siswa memahami konsep pemprograman socket lanjut. 3. Siswa mampu melakukan socket programming dengan multi thread B. DASAR TEORI Pada praktikum sebelumnya anda telah membuat program aplikasi client-server. Kelemahan dari program sebelumya adalah tiap server hanya bisa melayani satu koneksi. Padahal dalam aplikasi sebenarnya setiap aplikasi server mempunyai kemampuan menerima koneksi lebih dari satu. Pemrograman Java menawarkan dua buah solusi, yaitu dengan menggunakn thread dan menggunakan RMI (Remote Method Invocation). Pada praktikum ini, kita akan berfokus pada solusi dengan menggunakan multithread. Seperti yang sudah anda pelajari pada mata kuliah sistem operasi, pada proses single thread proses akan menjalakan bagian program secara terurut, dan memakai resources secara bergantian. Berbeda dengan multi thread, dimana thread saling berbagi bagian program dan resources dengan thread lain yang mengacu pada proses yang sama. Pada praktikum ini kita akan mempelajari strategi penggunaan multithread pada pemrograman client-server. Pada sisi aplikasi server terdapat penambahan 1 buah class bernama clienthandler yang digunakan untuk melayani koneksi ke client. Main class dari aplikasi server memanggil thread yang berisi class tersebut apabila ada aplikasi client yang meminta koneksi.

C. Contoh Program C.1. Program Utama(Main Program) Aplikasi Server dengan Multithread 1. /** 2. * @author ferry 3. */ 4. 5. import java.io.ioexception; 6. import java.net.serversocket; 7. 8. public class TCPEchoServerThread { 9. 10. private static ServerSocket servsock; 11. private static final int PORT = 12345; 12. 13. public TCPEchoServerThread() { 14. } 15. 16. public void start() { 17. try { 18. servsock = new ServerSocket(PORT); 19. 20. while (true) { 21. Thread clientthread = new Thread(new clienthandler(servsock.accept())); 22. clientthread.start(); 23. } 24. } catch (IOException e) { 25. e.printstacktrace(); 26. } finally { 27. try { 28. System.out.println("Menutup koneksi..."); 29. servsock.close(); 30. } catch (IOException e) { 31. System.out.println("Tidak dapat memustukan koneksi"); 32. e.printstacktrace(); 33. System.exit(1); 34. } 35. } 36. } 37. 38. public static void main(string[] args) { 39. TCPEchoServerThread es = new TCPEchoServerThread(); 40. System.out.println("Server telah berjalan di komputer ini pada port " +PORT); 41. es.start(); 42. } 2

43. } C.2. Program Aplikasi Server Untuk Melayani Koneksi Client 1. import java.io.bufferedreader; 2. import java.io.ioexception; 3. import java.io.inputstreamreader; 4. import java.io.printwriter; 5. import java.net.*; 6. 7. class clienthandler implements Runnable { 8. 9. private static int numconnections; 10. private int connectionid = 0; 11. Socket link; 12. 13. public clienthandler(socket s) { 14. connectionid = numconnections++; 15. System.out.println("Melayani koneksi ke-"+ connectionid); 16. link = s; 17. } 18. 19. public void run() { 20. PrintWriter out = null; 21. BufferedReader in = null; 22. int nummessages = 0; 23. 24. try { 25. out = new PrintWriter(link.getOutputStream(), true); 26. in = new BufferedReader(new InputStreamReader(link.getInputStream())); 27. String message=in.readline(); 28. while (!message.equals("close") ) { 29. System.out.println("Pesan diterima : [" +message.tostring() + "] dari client " + connectionid +" dalam " + message.length() + " bytes"); 30. nummessages++; 31. out.println("isi Pesan " + nummessages + ":" + message); 32. message = in.readline(); 33. } 34. } catch (Exception e) { 35. e.printstacktrace(); 36. } finally { 37. out.close(); 38. try { 39. in.close(); 40. link.close(); 3

41. System.out.println("Menutup koneksi, #" + connectionid); 42. } catch (IOException e) { 43. e.printstacktrace(); 44. } 45. } 46. } 47. } D. PERCOBAAN 1. Tulis kembali program C1,C2 dalam editor yang anda sukai. 2. Jalankan program Aplikasi Server C1! 3. Jalankan program netstat -ap TCP. Catat alamat IP sumber, alamat IP tujuan dan nomor port yang sedang dalam keadaan menunggu ( listen() ). 4. Jalankan program client! Amati perubahan yang sedang terjadi pada komputer anda dengan menggunakan perintah pada nomor 3. 5. Jalankan program sebanyak 2 client lagi! Kirim 3 pesan yang berbeda. Pesan terakhir adalah close. Catat hasil pada aplikasi server dan aplikasi client. 6. Buat flowchart untuk menggambarkan interaksi program C1,C2 dan aplikasi client! E. LAPORAN RESMI 1. Buat program grup chat client-server sederhana dengan kebutuhan sebagai berikut : a. Terdapat 1 buah aplikasi server sebagai perantara komunikasi antara aplikasi client (client lebih dari satu) b. Aplikasi server : i. Menampilkan dan mencatat client yang telah melakukan koneksi ke server. ii. Melakukan broadcast pesan yang diterima ke semua client yang telah terkoneksi ke server dengan mencantumkan asal pengirim dan waktu pengiriman. 4

c. Aplikasi client i. Mengirimkan pesan ke server ii. Menerima pesan broadcast dari server DAFTAR PUSTAKA 1. http://www.oracle.com/technetwork/java/javase/documentation/index.html 2. URL http://www.ustudy.in/node/7214 5