10.1 Konsep dasar jaringan

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

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

Connection Oriented. Kholid F.

PEMROGRAMAN JARINGAN

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

Pemrograman Socket menggunakan TCP

Pemrograman Jaringan

Pemrograman Jaringan 9. Connectionless Oriented Programming

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

Pemrograman Jaringan 6.

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

Membuat Aplikasi Chatting Dengan Java

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

Pemrograman Jaringan

A. TUJUAN PEMBELAJARAN

PEMROGRAMAN SOCKET LANJUTAN

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

Network Programming. Oleh: Idris Winarno (thanks to my sist)

Pemrograman Socket TCP dan Socket UDP

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

Sistem Terdistribusi 4

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

APLIKASI CHAT ANTAR PC

I/O (Input dan Output)

PRAKTIKUM 7 DASAR INPUT OUTPUT

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

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

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

Pemrograman Socket menggunakan UDP

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

Komunikasi Antar Proses

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

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

A. TUJUAN PEMBELAJARAN

IMPLEMENTASI APLIKASI CHEPPYCHAT UNTUK JARINGAN KOMPUTER PADA LOCAL AREA NETWORK

J2ME GUI dan Interkoneksi Client Server

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. mengangkat kasus dan penggunaan teknologi yang berbeda-beda, pada table 2.1

Sistem Terdistribusi

BAB 5 Mendapatkan Input dari Keyboard

BAB II DASAR TEORI. bersifat umum/non-spesifik (general purpose), dan secara khusus dirancang untuk

Bahasa Pemrograman :: Dasar Pemrograman Java

BAB Argument Command-Line dan System Properties

PEMROGRAMAN JARINGAN MODUL 3 STREAM

Lapisan Transport. Menjamin komunikasi yang handal antara dua buah komputer yang terhubung Terdiri atas :

BAB 5 Mendapatkan Input dari Keyboard

PEMROGRAMAN JAVA : STREAM DAN FILE

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. pernah dilakukan oleh beberapa penulis. tentang membangun aplikasi chat berbasis android.

Protokol Jaringan. Oleh : Tengku Mohd Diansyah,ST,M.Kom

BAB 2 INPUT DARI KEYBOARD

Pertemuan ke-1 STREAM DAN IO. A. TUJUAN : Mampu mengimplementasikan kelas-kelas untuk menangani aliran data.

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

A. TUJUAN PEMBELAJARAN

Input Nilai tanpa Case String di Java

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

MODUL 11 J2ME (Java 2 Micro Edition)

Mobile Computing. Ramos Somya

Sistem Terdistribusi

Cara Membaca File Text di JAVA

TCP DAN UDP. Budhi Irawan, S.Si, M.T

PENGANTAR APLIKASI TERDISTRIBUSI (Minggu I Praktikum I)

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

2.1. Sistem Komunikasi

Minggu 6 Transport Layer

Pertemuan III. Referensi Model TCP/IP

Introduction To Stream

BAB III METODE PENELITIAN. ini, diantaranya adalah dengan langkah-langkah sebagai berikut :

PEMROGRAMAN BERORIENTASI OBJEK

game yang dibangun lebih semakin hidup dan terasa nyata, hal ini juga yang membuat para pemain lebih tertarik, bayangkan apabila di dalam suatu

Agenda. Protokol TCP/IP dan OSI Keluarga Protokol TCP/IP

A I S Y A T U L K A R I M A

BAB II LANDASAN TEORI

Badiyanto, S.Kom., M.Kom. PBO java

SUMBER BELAJAR PENUNJANG PLPG

PEMROGRAMAN SOCKET TUGAS SISTEM TERDISTRIBUSI

Pemrograman Jaringan 5.

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

Tujuan Pembangunan Jaringan Komputer. mengantarkan informasi secara tepat dan akurat dari sisi pengirim ke sisi penerima

Mobile Computing Tugas Individu 1

MAKALAH PERBEDAAN TCP/IP DENGAN OSI

Perancangan Sistem dengan Konsep DRM (Manajemen Lisensi Digital) dalam Studi Kasus Penjualan Lagu secara Online

JARINGAN KOMPUTER. Disusun Oleh : Nama : Febrina Setianingsih NIM : Dosen Pembimbing : Dr. Deris Stiawan, M.T., Ph.D.

Dasar Pemrograman Web. Pemrograman Web. Adam Hendra Brata

KOMUNIKASI PENGANTAR DATA TERDISTRIBUSI. Materi: 1. Komunikasi Data 2. Protocol 3. Remote Procedure Call 4. Object Remote

Pertemuan 4 Array pada Java

Modul Praktikum Pemrograman

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

KOMUNIKASI. Universitas Informatika dan Bisnis Indonesia. 2.1 Komunikasi Data

26/09/2013. Pertemuan III. Elisabeth, S.Kom - FTI UAJM. Referensi Model TCP/IP

TCP/IP (singkatan dari "Transmission Control Protocol")

Nama Lengkap : Muiz Lidinillah NIM :

HTTP Protocol Ketika sebuah alamat web (atau URL) yang diketik ke dalam web browser, web browser melakukan koneksi ke web service yang berjalan pada

BAB III ANALISIS PRAKTEK KERJA LAPANGAN. bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan

BAB II DASAR TEORI. Teknologi TCP/IP adalah hasil penelitian dan pengembangan protocol

JARINGAN KOMPUTER Layanan Dari TCP dan UDP Protocol

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

Pengenalan Internet. Arrummaisha A

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

Muhammad Zen Samsono Hadi, ST. Msc.

BAB 3 PERANCANGAN SISTEM

Transkripsi:

Bab 10 Jaringan Java mengijinkan anda untuk mempermudah mengembangkan aplikasi yang mengerjakan berbagai pekerjaan melalui jaringan. Ini adalah suatu cita-cita pembuatan Java yang menjadi salah satu kekuatan Java sejak dibuat dengan internet di dalam cita-cita. Sebelum mempelajari tentang jaringan dalam Java. Pertama-tama anda akan diperkenalkan kepada beberapa konsep dasar jaringan. Setelah menyelesaikan bab ini, anda diharapkan dapat : 1.Mengerti konsep dasar jaringan IP addres protokol ports client/server socket 2.Membuat aplikasi menggunakan paket jaringan Java ServerSocket Socket MulticastSocket DatagramPacket 10.1 Konsep dasar jaringan Jika sebelumnya anda suda mengetahui, internet adalah jaringan global dengan berbagai jenis komputer yang berbeda yang tersambung dalam berbagai jalan. Walaupun terdapat perbedaan dalam software dan hardware yang disambung bersama, hal tersebut sangatlah bagus dimana internet masih berfungsi. Hal ini memungkinkan karena standar komunikasi memiliki ketetapan dan juga keselarasan. Standar ini menjamin kesesuaian dan kekuatan komunikasi diantara luasnya sistem pada internet. Mari kita melihat beberapa standar yang berlaku. 10.1.1 IP Adress Pada setiap komputer yang terkoneksi dengan internet memiliki alamat IP unik. Alamat IP secara logika hampir sama dengan alamat pengiriman surat tradisional dimana memiliki arti bahwa alamat yang bersifat unik tersebut mewakili dari keterangan sebuah objek. Alamat tersebut diwakilkan dalam 32-bit nomor yang digunakan sebagai pengenal yang bersifat unik dari setiap komputer yang tersambung dengan internet. 192.1.1.1 adalah contoh dari sebuah alamat IP. Mereka juga bisa ditulis dengan bentuk simbol seperti docs.rinet.ru. 10.1.2 Protokol Sejak terdapat jenis komunikasi yang berbeda-beda yang mungkin terjadi pada internet,disana harus pula ada suatu jumlah yang sama untuk mekanisme penangangan mereka. Setiap jenis komunikasi membutuhkan protokol yang spesifik dan unik. Protokol mengatur peraturan dan standar dimana menetapkan jenis komunikasi internet yang khusus. Hal tersebut menjelaskan format data yang dikirim lewat internet, seiring dengan bagaimana dan kapan itu dikirim. Pengenalan Pemrograman 2 1

Konsep dari protokol tentunya tidak terlalu asing untuk kita. Mengingat sudah beberapa kali anda telah menggunakan jenis percakapan ini : "Hallo." "Hallo. Selamat siang. Bolehkah saya berbicara dengan Joan?" "Okay, mohon tunggu sebentar." "terima kasih."... Ini adalah protokol sosial yang digunakan ketika dalam pembicaraan melalui telepon. Jenis protokol tipe ini memberikan kita kepercayaan untuk mengetahui apa yang harus dilakukan dalam situasi tersebut. Mari kita lihat beberapa protokol penting yang digunakan pada internet. Tanpa banyak kata, Hypertext Transfer Protocol (HTTP) adalah salah satu protokol yang sering digunakan. Digunakan untuk mentransfer dokumen HTML pada Web. Kemudian, ada juga File Transfer Protocol (FTP) dimana lebih umum dibandingkan dengan HTTP dan mengijinkan anda untuk mentransfer file biner pada intenet. Kedua protokol tersebut memiliki peraturan masing-masing dan standar dalam pengiriman data. Java juga dapat mendukung kedua protokol tersebut. 10.1.3 Port Sekarang, protokol hanya bisa dipertimbangkan manakala digunakan dalam konteks suatu jasa. Sebagai contoh, protokol HTTP digunakan ketika anda menyediakan isi Web melalui layanan HTTP. Setiap komputer pada internet dapat menyediakan berbagai jenis layanan melalui berbagai jenis protokol yang mendukung. Masalahnya, bagaimanapun, kita harus mengetahui jenis layanan sebelum sebuah informasi dapat ditransfer. Untuk itulah port digunakan. Port adalah 16-bit nomor dimana mengenal setiap layanan yang ditawarkan oleh server jaringan. Untuk menggunakan layanan khusus dan oleh karena itu, jalur komunikasi yang melewati protokol tertentu, anda perlu untuk menyambungkan pada port yang sesuai. Port dihubungkan dengan nomor dan beberapa nomor bersifat spesifik yang berhubungan dengan jenis layanan khusus. Port dengan layanan pekerjaan tertentu disebut port standar. Sebagai contoh, layanan FTP terletak pada port 21 sedangkan layanan HTTP terletak pada port 80. Jika anda ingin menggunakan file transfer FTP, anda perlu terhubung dengan port 21 pada komputer anda. Sekarang, semua standar layanan tertentu diberikan nilai port dibawah 1024. port dengan nilai diatas 1024 disediakan untuk komunikasi custom. Jika terdapat kasus dimana port dengan nilai diatas 1024 telah digunakan oleh beberapa komunikasi custom, anda harus mencari nilai lainnya yang tidak digunakan. 10.1.4 Paradigma client/server Paradigma client/server adalah dasar untuk Java networking framework. Tentunya, penetapan ini terdiri dari dua elemen besar, yaitu client dan server. Client adalah mesin yang membutuhkan beberapa jenis informasi sedangkan server adalah mesin yang menyimpan informasi dan menunggu untuk menyampaikannya pada client. Paradigma ini menjelaskan sebuah skenario sederhana. Tentunya, client terhubung dengan sever dan meminta informasi. Kemudian server mengingat permintaan dan mengembalikan informasi yang tersedia kepada client. Pengenalan Pemrograman 2 2

10.1.5 sockets Gambar1.1.4: Client/Server model Konsep umum jaringan yang terakhir sebelum kita membahas lebih dalam tentang Java networking adalah dengan memperhatikan sockets. Kebanyakan pemrograman Java network menggunakan jenis khusus dari komunikasi jaringan yang diketahui sebagai sockets. Socket adalah software abstrak untuk media input atau output komunikasi. Socket digunakan oleh Java untuk mengatasi komunikasi pada jaringan level rendah. Jalur komunikasi ini memungkinkan untuk mentransfer data melalui port khusus. Singkatnya, socket adalah point terkahir untuk komunikasi antara dua mesin. 10.2 The Java Networking Package package dari java.net menyediakan banyak class yang berguna untuk pengembangan aplikasi jaringan. Untuk daftar lengkap dari class jaringan dan interface, dapat merujuk ke dokumentasi API. Kita akan fokus pada empat class yaitu : ServerSocket, Socket, MulticastSocket, dan DatagramPacket class. 10.2.1 ServerSocket and the Socket class class ServerSocket menyediakan fungsi-fungsi dasar dari sebuah server. Tabel berikut menjelaskan dua dari empat konstruktor pada ServerSocket class : Pengenalan Pemrograman 2 3

Konstruktor ServerSocket ServerSocket(int port) Ketika sebuah server menetapkan suatu port tertentu. Sebuah port 0 menugaskan sebuah server kepada port bebas manapun. Panjang antrian maksimun untuk koneksi yang akan datang diatur sebanyak 50 sebagai defaultnya. ServerSocket(int port, int backlog) Ketika sebuah server menetapkan suatu port tertentu.panjang antrian maksimum untuk koneksi yang akan datang berdasarkan pada parameter backlog. Berikut adalah beberapa dari class method : Tabel 1.2.1a: Konstruktor ServerSocket public Socket accept() Metode ServerSocket Menyebabkan server untuk menunggu dan mendengarkan dari koneksi client, lalu menerimanya. public void close() Menutup socket server. Client tidak dapat lagi terhubung ke server hingga dibuka kembali public int getlocalport() Mengembalikan port dimana socket juga membatasi public boolean isclosed() Mendeteksi apakah socket tertutup atau belum Tabel 1.2.1b: Metode ServerSocket Contoh yang berhasil melakukan implementasi sebuah server sederhana, dimana sebuah informasi sederhana dikirim oleh client. import java.net.*; import java.io.*; public class EchoingServer { public static void main(string [] args) { ServerSocket server = null; Socket client; try { server = new ServerSocket(1234); Pengenalan Pemrograman 2 4

//1234 is an unused port number catch (IOException ie) { System.out.println("Cannot open socket."); System.exit(1); while(true) { try { client = server.accept(); OutputStream clientout = client.getoutputstream(); PrintWriter pw = new PrintWriter(clientOut, true); InputStream clientin = client.getinputstream(); BufferedReader br = new BufferedReader(new InputStreamReader(clientIn)); pw.println(br.readline()); catch (IOException ie) { Ketika ServerSocket class mengimplementasikan server socket, Socket class mengimplementasikan client socket. Socket class memiliki delapan konstruktor, dua diantaranya siap dipanggil. Langsung saja kita lihat dua konstruktor tersebut. Socket(String host, int port) Konstruktor Socket Membuat sebuah socket client dimana dihubungkan dengan diberikan nomor port pada host tertentu. Socket(InetAddress address, int port) Membuat sebuah socket client dimana dihubungkan dengan diberikan nomor port pada alamat IP tertentu. Berikut adalah beberapa dari class method : Tabel 1.2.1c: Konstruktor Socket Metode Socket public void close() Menutup socket client public InputStream getinputstream() Menerima kembali input stream yang berhubungan dengan socket ini. public OutputStream getoutputstream() Menerima kembali output stream yang berhubungan dengan socket ini. public InetAddress getinetaddress() Pengenalan Pemrograman 2 5

Metode Socket Mengembalikan alamat IP kepada socket ini pada saat masih terhubung. public int getport() Mengembalikan remote port kepada socket ini pada saat masih terhubung. public boolean isclosed() Mendeteksi apakah socket telah tertutup atau tidak Tabel 1.2.1d: Metode Socket Contoh yang berhasil melakukan implementasi sebuah client sederhana, dimana mengirim data kepada server. import java.io.*; import java.net.*; public class MyClient { public static void main(string args[]) { try { //Socket client = new Socket("133.0.0.1", 1234); Socket client = new Socket(InetAddress.getLocalHost(), 1234); InputStream clientin = client.getinputstream(); OutputStream clientout = client.getoutputstream(); PrintWriter pw = new PrintWriter(clientOut, true); BufferedReader br = new BufferedReader(new InputStreamReader(clientIn)); BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Type a message for the server: "); pw.println(stdin.readline()); System.out.println("Server message: "); System.out.println(br.readLine()); pw.close(); br.close(); client.close(); catch (ConnectException ce) { System.out.println("Cannot connect to the server."); catch (IOException ie) { System.out.println("I/O Error."); 10.2.2 MulticastSocket dan DatagramPacket class class MulticastSocket sangat berguna untuk aplikasi yang mengimplementasikan komunikasi secara berkelompok. Alamat IP untuk kelompok multicast berkisar diantara 224.0.0.0 hingga 239.255.255.255. Meskipun begitu, alamat 224.0.0.0 telah dipesan dan seharusnya tidak digunakan. class ini memiliki tiga konstruktor tetapi kita akan membahas satu dari ketiga konstruktor ini. Pengenalan Pemrograman 2 6

Konstruktor MulticastSocket MulticastSocket(int port) Membuat multicast socket dibatasi dengan pemberian nomor port Tabel 1.2.2a: Konstruktor MulticastSocket Tabel berikutnya memberikan penjelasan beberapa metode MulticastSocket. Metode MulticastSocket public void joingroup(inetaddress mcastaddr) Bergabung dengan kelompok multicast pada alamat tertentu public void leavegroup(inetaddress mcastaddr) Meninggalkan kelompok multicast pada alamat tertentu public void send(datagrampacket p) Metode turunan dari class DatagramSocket. Mengirim p dari socket ini. Tabel 1.2.2b:Metode MulticastSocket Sebelum seorang dapat mengirim pesan kepada kelompok, pertama kali seorang tersebut seharusnya menjadi anggota dari multicast kelompok dengan menggunakan metode joingroup. Sekarang seorang anggota dapat mengirim pesan melalui metode send. Jika anda telah selesai berbicara dengan kelompok, anda dapat menggunakan metode leavekelompok untuk melepaskan keanggotaan anda. Sebelum melihat contoh dalam menggunakan class multicastsocket, pertama-tama mari kita lihat ke class DatagramPacket. Perhatikan bahwa dalam metode send dari class multisocket, dibutuhkan parameter yaitu objek DatagramPacket. Sehingga, kita harus mengerti objek jenis ini sebelum menggunakan metode send. Class DatagramPacket digunakan untuk mengirim data melalui conectionless protokol seperti multicast. Masalah yang ditimbulkan bahwa pengiriman packet tidak terjamin. Mari kita perhatikan dua dari enam konstruktor. DatagramPacket(byte[] buf, int length) Konstruktor DatagramPacket Konstruktor dari datagrampacket untuk menerima paket dengan panjang length. Seharusnya kurang dari atau sama dengan ukuran dari buffer buf. DatagramPacket(byte[] buf, int length, InetAddress address, int port) Konstruktor dari datagrampacket untuk mengirim paket dengan panjang length dengan nomor port tertentu dan host tertentu. Tabel 1.2.2c:Konstruktor DatagramPacket Pengenalan Pemrograman 2 7

Berikut adalah beberapa metode menarik dari class DatagramPacket. Metode DatagramPacket public byte[] getdata() Mengembalikan buffer dimana data telah disimpan public InetAddress getaddress() Mengembalikan alamat IP mesin dimana paket yang dikirim atau yang diterima public int getlength() Mengembalikan panjang data yang dikirim atau diterima public int getport() Mengembalikan nomor port pada remote host dimana paket yang dikirim atau yang diterima Table 1.2.2d: Metode DatagramPacket Contoh multicast kita juga mengandung dua class, server dan client. Server menerima pesan dari client dan mencetak pesan tersebut. Berikut adalah class server import java.net.*; Berikut adalah class client public class ChatServer { public static void main(string args[]) throws Exception { MulticastSocket server = new MulticastSocket(1234); InetAddress group = InetAddress.getByName("234.5.6.7"); //getbyname Mengembalikan alamat IP yang diberikan oleh Host server.joingroup(group); boolean infinite = true; /* Server terus-menerus menerima data dan mencetak mereka */ while(infinite) { byte buf[] = new byte[1024]; DatagramPacket data = new DatagramPacket(buf, buf.length); server.receive(data); String msg = new String(data.getData()).trim(); System.out.println(msg); server.close(); import java.net.*; import java.io.*; public class ChatClient { public static void main(string args[]) throws Exception { MulticastSocket chat = new MulticastSocket(1234); Pengenalan Pemrograman 2 8

InetAddress group = InetAddress.getByName("234.5.6.7"); chat.joingroup(group); String msg = ""; System.out.println("Type a message for the server:"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); msg = br.readline(); DatagramPacket data = new DatagramPacket(msg.getBytes(), 0, msg.length(), group, 1234); chat.send(data); chat.close(); 10.3 Latihan 10.3.1 Trivia Server Buatlah sebuah server yang berisi satu set pertanyaan yang mudah. Secara sederhana, akan ada sekitar 5-10 pertanyaan. Client yang terhubung ke server mengirim sebuah permintaan untuk sebuah pertanyaan atau jawaban sebuah pertanyaan, Client mengirim pesan permintaan. Untuk jawaban dari sebuah pertanyaan, client mengirim pesan jawaban. Ketika menerima pesan permintaan, secara acak server akan memilih satu pertanyaan dari koleksi yang ada. Dia mengirimkan pertanyaan yang dipilih sesuai dengan nomor yang bersangkutan kepada client. Ketika server menerima pesan jawaban dari client, dia menginformasikan user bahwa user perlu mengirimkan jawaban sesuai dengan nomor pertanyaan kepada server. Jawaban itu harus dalam format <no pertanyaan>#<jawaban anda>. Berikut adalah contoh skenario : Client: "permintaan" Server: "3#Siapa pembuat Java?" Client: "jawaban" Server: "Berikan jawabanmu dengan format: <nomor pertanyaanr>#<jawaban anda>" Client: "3#James Gosling" Server: Kerja yang bagus!... Pengenalan Pemrograman 2 9