SlideShare a Scribd company logo
NETWORK PROGRAMMING
Sukriadi Shafar
Prodi Informatika
Universitas Wallacea
1
PROTOKOL
Protokol adalah suatu aturan atau mekanisme
dimana dua komputer atau lebih dapat saling
berinterkoneksi.
Protokol mendefinisikan suatu format paket data
yang akan dipertukarkan untuk menunjang
mekanisme tersebut.
Protokol yang banyak digunakan adalah TCP/IP.
Internet menggunakan TCP/IP.
2
PENGANTAR
JARINGAN
Fungsi utama protokol TCP/IP adalah menyediakan
sebuah mekanisme komunikasi point to point.
Komunikasi dibentuk dengan dua aliran data (stream).
Satu stream membaca data (stream input) dari satu
proses ke proses lain, sedangkan satunya lagi
mengirim data (stream output).
Artinya ada stream input dan stream output dari tiap
proses untuk melakukan komunikasi.
3
PENGANTAR
JARINGAN
Dalam jaringan komputer terdiri atas kumpulan
komputer yang berdiri sendiri (otonom) dan saling
bekerja sama
Untuk dapat berkomunikasi dengan komputer lain,
masing-masing komputer diberi identitas pada level
aplikasi berupa alamat IP (Internet Protocol) seperti
192.168.29.251.
Namun mengenali alamat komputer berdasarkan
penomeran IP bukanlah hal yang mudah, cara lain
terdapat layanan Naming, seperti DNS (Domain
Naming Service)
Tugas layanan naming semacam ini menerjemahkan
alamat komputer yang user-friendly, seperti
www.google.com menjadi alamat IP seperti
66.102.7.104.
4
PORT
Protokol TCP/IP memiliki port yang digunakan sebagai mekanisme untuk mengidentifikasi sebuah
proses.
Port merupakan pintu masuk datagram dan paket data.
Port data dibuat mulai dari 0 sampai dengan 65.536.
Alamat port 0 - 65535
 Port 0 - 1023 → well known port
Misal port 80 untuk HTTP
21 untuk FTP
110 untuk POP3
23 untuk Telnet
25 untuk SMTP
 Port 1024 – 49151 → registered port
 Port 49152 – 65535 → Dynamic port / Private Port
5
TIPE PEMROGRAMAN JARINGAN
Komunikasi Stream atau Connection Oriented communication
Komunikasi datagram atau Connectionless communication
6
CONNECTION
ORIENTED
Protokol standar : TCP (Transmission Control Protokol)
TCP akan membuat setup koneksi dengan soket tujuan
terlebih dulu. Setelah koneksi terbentuk, tidak
dibutuhkan mengirimkan informasi soket pengirim tiap
kali data dikirimkan. Ini karena proses tujuan akan
mengidentifikasi setiap data yang tiba pada soket
tujuan sebagai data dari pengirim.
Koneksi yang terbentuk pada TCP bersifat dua arah
(bidirectional).
7
CONNECTION
ORIENTED
TCP melakukan transmisi data per segmen, artinya
paket data dipecah dalam jumlah yang sesuai
dengan besaran paket, kemudian dikirim satu persatu
hingga selesai.
Agar pengiriman data sampai dengan baik, maka
pada setiap paket pengiriman, TCP akan
menyertakan nomor seri (sequence number).
Pada sisi soket penerima, paket-paket data ini akan
disimpan, diurutkan kembali, dan akhirnya
digabungkan kembali menjadi data besar.
TCP adalah protocol yang reliable yang senantiasa
menunggu konfirmasi dari pihak soket penerima (soket
penerima harus mengirim balik sebuah sinyal
ACKnowledge dalam satu periode yang ditentukan).
8
CONNECTION ORIENTED
Bila pada waktunya sang penerima belum juga
memberikan ACK, maka terjadi “ time out “ yang
menandakan pegiriman paket gagal dan harus
diulang kembali.
Konsekuensinya adalah TCP menimbulkan overhead
lalulintas jaringan yang tinggi
Di Java diimplementasikan dengan class Socket dan
ServerSocket.
9
CONNECTIONLESS
Standar protokol komunikasi datagram dikenal dengan UDP (User
Datagram Protocol)
Pada UDP, setiap kali paket data dikirim, informasi soket client turut
dikirimkan. Mengirim paket secara individu.
UDP merupakan protocol yang unreliable (tidak handal). Ketika paket
data dikirimkan, UDP tidak mengecek kembali apakah data yang
dikirim sampai tujuan. Jadi dengan UDP tidak ada kepastian bagi sisi
pengirim bahwa datanya sudah sampai ke tujuan dengan keadaan
baik.
Konsekuensinya adalah TCP menimbulkan overhead lalulintas jaringan
lebih tinggi dibanding UDP.
10
CONNECTIONLESS
Connectionless lebih cepat daripada Connection Oriented, namun
connectionless tidak menjamin pengiriman.
Di Java diimplementasikan dengan class DatagramPacket dan
DatagramSocket.
11
PEMROGRAMAN
CLIENT/SERVER
Suatu model umum yang diterapkan untuk pemrograman jaringan
adalah model client/server.
Melibatkan dua hal:
 Client
 Server
Client : melakukan permintaan untuk suatu informasi atau mengirim
sebuah perintah ke suatu aplikasi server.
Server : menerima permintaan dari client, kemudian memproses
berdasarkan permintaan tsb dan akan mengembalikan sesuatu ke
client sebagai suatu hasil dari pemrosesan yang sudah dilakukan.
12
SOCKET
Socket adalah sebuah abstraksi
perangkat lunak yang digunakan
sebagai suatu "terminal" dari suatu
hubungan antara dua mesin atau
proses yang saling berinterkoneksi. Di
tiap mesin yang saling
berinterkoneksi harus terpasang
socket.
13
SOCKET
Connection Oriented
 Class yang mendukung adalah java.net.ServerSocket dan java.net.Socket
Connectionless
 Class yang mendukung adalah java.net.DatagramSocket
Pada J2SE telah disediakan paket java.net yang berisi class dan interface
yang menyediakan API (Application Programming Interface) level rendah
(Socket, ServerSocket, DatagramSocket) dan level tinggi (URL,
URLConnection).
14
SOCKET
Agar suatu socket dapat berkomunikasi dengan socket lainnya, maka socket butuh
diberi suatu alamat unik sebagai identifikasi.
Alamat socket terdiri atas Alamat IP dan Nomer Port. Contoh alamat socket adalah
192.168.29.30: 3000, dimana nomer 3000 adalah nomer portnya. Alamat IP dapat
menggunakan alamat Jaringan Lokal (LAN) maupun alamat internet.
Mengapa dibutuhkan nomer port? Apakah nomer IP komputer tujuan saja tidak
cukup? Nomer port dibutuhkan karena proses yang berjalan pada suatu komputer
umumnya lebih dari satu. Sehingga dibutuhkan tambahan informasi sebagai
identifikasi proses yang hendak dihubungi.
15
SOCKET
Jika IP computer diibaratkan adalah nomer telepon suatu perusahaan, maka
nomer port adalah nomer ekstensinya.
Suatu proses yang hendak berkomunikasi dengan proses lain lewat mekanisme
socket haruslah mengikatkan dirinya dengan salah satu port pada
komputernya. Pengikatan diri ini disebut dengan binding.
16
CLASS INETADDRESS
Class yang berfungsi untuk mengambil informasi alamat IP suatu komputer.
Class ini bersifat static dan tidak memiliki konstruktor.
Menyediakan fungsi yang dapat digunakan untuk mendapatkan alamat IP.
 getByName(namaHost)
menerima sebuah string nama host dan mengembalikan alamat IP sesungguhnya berdasarkan DNS
berupa object InetAddress. Untuk menampilkannya gunakan method toString().
 getLocalHost()
akan mengembalikan informasi alamat IP dan nama host pada komputer lokal.
 getHostName()
Gets the host name for this IP address
 getHostAddress()
Returns the IP address string in textual presentation.
 getAllByName : akan mengembalikan informasi alamat IP dan nama host pada komputer lokal.
17
CLASS INETADDRESS
Program di bawah ini untuk mengetahui nama komputer lokal.
18
CLASS INETADDRESS
program untuk mendapatkan nama komputer dari Alamat IP.
D4 PENS-ITS 19
CLASS INETADDRESS
Buatlah program di bawah ini, masukkan misal www.detik.com maka akan ditampilkan
Alamat IP dari www.detik.com. Masukkan host name : java.sun.com, berapakah Alamat
IPnya?
D4 PENS-ITS 20
MODEL APLIKASI CLIENT SERVER
21
MODEL
APLIKASI
CLIENT
SERVER
Pada sisi aplikasi server, suatu soket server dibentuk (1) dan
melakukan operasi listen (2). Operasi ini pada intinya menunggu
permintaan koneksi dari sisi client.
Pada sisi client, dibentuk suatu soket biasa. Pada saat soket client (3),
informasi alamat soket server dilewatkan sebagai argumen dan soket
client akan otomatis mencoba meminta koneksi ke soket server.
Pada saat permintaan koneksi client sampai pada server, maka server
akan membuat suatu soket biasa. Soket ini yang nantinya akan
berkomunikasi dengan soket pada sisi client. Setelah itu soket server
dapat kembali melakukan listen (4) untuk menunggu permintaan
koneksi dari client lainnya. Langkah 4 ini umumnya hanya dilakukan
jika aplikasi server mengimplementasikan multithreading.
Setelah tercipta koneksi antara client dan server, maka keduanya
dapat saling bertukar pesan (5). Salah satu atau keduanya kemudian
dapat mengakhiri komunikasi dengan menutup soket (6).
22
PEMROGRAMAN SOCKET TCP
Java menyediakan obyek Socket dan ServerSocket untuk komunikasi soket TCP.
ServerSocket digunakan pada sisi aplikasi server, sedangkan Socket digunakan baik
pada sisi aplikasi server maupun client.
23
KOMUNIKASI SOCKET TCP DI SERVER
Buatlah sebuah objek ServerSocket. Konstruktor ServerSocket memerlukan
port number (1024-65535) sebagai argumen. Sebagai contoh :
ServerSocket servSock = new ServerSocket(1234);
Server akan menunggu koneksi dari client pada port 1234
Server dalam kondisi menunggu (listen). Operasi ini pada intinya
menunggu permintaan koneksi dari sisi client.
Socket link = servSock.accept();
24
KOMUNIKASI SOCKET TCP DI SERVER
Buat input dan output stream. Stream ini digunakan untuk berkomunikasi dengan client. Objek
InputStreamReader digunakan untuk menerima respon dari client. Sedangkan PrintWriter
untuk mengirimkan data ke client.
BufferedReader in = new BufferedReader(new
InputStreamReader(link.getInputStream()));
PrintWriter out = new PrintWriter(link.getOutputStream(),true);
Saling berkirim dan menerima pesan. Gunakan method readLine() untuk menerima data dan
method println() untuk mengirim data.
out.println("Message " + numMessages + ":" + message);
message = in.readLine();
Menutup socket
link.close();
25
KOMUNIKASI SOCKET TCP DI CLIENT
Bangun koneksi ke server. Buatlah sebuah objek Socket, yang mempunyai konstruktor
dengan dua argumen:
 IP address server
 Port Number
Port number untuk server dan client haruslah sama.
Socket link = new Socket(InetAddress.getLocalHost(),1234);
Buat input dan output stream. Stream ini digunakan untuk berkomunikasi dengan client.
Objek InputStreamReader digunakan untuk menerima respon dari client. Sedangkan
PrintWriter untuk mengirimkan data ke client.
BufferedReader in = new BufferedReader(new
InputStreamReader(link.getInputStream()));
PrintWriter out = new PrintWriter(link.getOutputStream(),true);
26
KOMUNIKASI SOCKET TCP DI CLIENT
Saling berkirim dan menerima pesan. Gunakan method readLine() untuk
menerima data dan method println() untuk mengirim data.
out.println("Message " + numMessages + ":" + message);
message = in.readLine();
Menutup socket
link.close();
27
APLIKASI TCP 1 – APLIKASI SERVER
Buatlah program Server dan Client. Program server hanya bisa terkoneksi
dengan 1 client.
28
APLIKASI TCP 1 – APLIKASI SERVER
29
APLIKASI TCP 1 – APLIKASI SERVER
30
APLIKASI TCP 1 – APLIKASI CLIENT
31
APLIKASI TCP 1 – APLIKASI CLIENT
32
APLIKASI TCP 1 – APLIKASI CLIENT
33
MENJALANKAN APLIKASI TCP 1
Jalankan TCPEchoServer terlebih dahulu
Selanjutnya jalankan TCPEchoClient tulislah message “Java”.
Maka pada server akan menampilkan “Java”
34
SERVER
CLIENT
MENJALANKAN APLIKASI TCP 1
Tambahkan sebuah client lagi
Apa yang terjadi ? Pada saat client 2 menuliskan message maka server tidak menerima
message dari client 2
35
SERVER CLIENT
APLIKASI TCP 2
(MULTI CLIENT)
- SERVER
Program server dapat menangani lebih
dari 1 client
36
APLIKASI TCP 1
(MULTI CLIENT)
- SERVER
37
APLIKASI TCP 2
(MULTI CLIENT)
- SERVER
D4 PENS-ITS 38
APLIKASI TCP 2
(MULTI CLIENT) -
CLIENT
D4 PENS-ITS 39
D4 PENS-ITS 40
MENJALANKAN APLIKASI TCP 2
Jalankan MultiEchoServer terlebih dahulu
Selanjutnya jalankan MultiEchoClient tulislah message “Client 1”.
Maka pada server akan menampilkan “Client 1”
Jalankan kembali MultiEchoClient tulislah message “Client 2”.
Maka pada server akan menampilkan “Client 2”
41
SERVER
CLIENT 1
CLIENT 2
KOMUNIKASI SOCKET DATAGRAM
Untuk protokol UDP, perbedaannya adalah socket di sisi server
sama dengan socket di sisi client dan tidak ada operasi listen
pada sisi server.
Kemudian saat paket data dikirimkan alamat socket client harus
disertakan sebagai argumen.
42
KOMUNIKASI SOCKET DATAGRAM
DI SERVER
Buatlah sebuah objek DatagramSocket. Konstruktor DatagramSocket mempunyai satu argument yaitu no
port.
DatagramSocket dgramSocket = new DatagramSocket(1234);
Buat buffer untuk datagram yang masuk.
byte[] buffer = new byte[256];
Buatlah sebuah objek DatagramPacket untuk datagram yang masuk. Konstruktor dari objek ini
memerlukan dua argumen yaitu array byte dan besar dari array ini
DatagramPacket inPacket = new DatagramPacket(buffer,buffer.length);
Menerima datagram yang masuk
dgramSocket.receive(inPacket);
Menerima alamat pengirim dan port yang masuk (dari client)
InetAddress clientAddress = inPacket.getAddress();
int clientPort = inPacket.getPort();
43
KOMUNIKASI
SOCKET
DATAGRAM DI
SERVER
Mengambil data dari buffer. Untuk memudahkan penanganan, maka data di ambil sebagai string.
Konstruktor String yang digunakan mempunyai 3 argumen yaitu
 Array dengan tipe byte
 Posisi awal array yang akan diambil(posisi 0)
 Jumlah byte yang akan diambil (sama dengan besar buffer)
String messageIn = new
String(inPacket.getData(),0,inPacket.getLength());
Buatlah datagram respon. Buatlah sebuah objek DatagramPacket, dengan konstruktor yang memerlukan 3
argument.
 Array dengan tipe byte yang berisi message response
 Besar response
 Alamat client
 No port
DatagramPacket outPacket = new DatagramPacket(messageOut.getBytes(),
messageOut.length(), clientAddress, clientPort);
Kirim datagram response
dgramSocket.send(outPacket);
Close DatagramSocket.
dgramSocket.close();
44
KOMUNIKASI
SOCKET
DATAGRAM DI
CLIENT
1. Buatlah sebuah objek DatagramSocket. Pembuatan objek DatagramSocket
hampir sama seperti pada program server tapi untuk client tidak
menggunakan no port
DatagramSocket dgramSocket = new DatagramSocket();
2. Buatlah datagram yang akan keluar (disertakan alamat client). Lihat langkah
7 pada server.
DatagramPacket outPacket = new
DatagramPacket(messageOut.getBytes(),
messageOut.length(), clientAddress, clientPort);
3. Kirim message datagram.
dgramSocket.send(outPacket);
4. Buatlah sebuah buffer untuk datagram yang masuk.
byte[] buffer = new byte[256];
5. Buatlah sebuah objek DatagramPacket untuk datagram yang masuk.
Konstruktor dari objek ini memerlukan dua argumen yaitu array byte dan
besar dari array ini
DatagramPacket inPacket = new
DatagramPacket(buffer,buffer.length);
45
KOMUNIKASI
SOCKET
DATAGRAM DI
CLIENT
6. Menerima datagram yang masuk
dgramSocket.receive(inPacket);
7. Mengambil data dari buffer. Untuk memudahkan
penanganan, maka data di ambil sebagai string.
Konstruktor String yang digunakan mempunyai 3
argumen yaitu
 Array dengan tipe byte
 Posisi awal array yang akan diambil(posisi 0)
 Jumlah byte yang akan diambil (sama dengan besar
buffer)
String messageIn = new
String(inPacket.getData(),0,inPacket.getLength());
8. Close DatagramSocket.
dgramSocket.close();
46
APLIKASI UDP -
UDPECHOSERVER
47
APLIKASI UDP -
UDPECHOSERVER
48
APLIKASI UDP - UDPECHOSERVER
49
APLIKASI UDP -
UDPECHOCLIENT
50
51
MENJALANKAN APLIKASI UDP
Jalankan UDPEchoServer terlebih dahulu
Selanjutnya jalankan UDPEchoClient tulislah message “Client 1”.
Maka pada server akan menampilkan “Message Received”
52
SERVER CLIENT
MULTICAST UDP
Multicast is a special feature of UDP protocol that enable programmer to send
message to a group of receivers on a specific multicast IP address and port.
Multicast has advantage in this scenario.
Let us say I want to send “Hello” message to 100 computers on my network.
Perhaps, my first solution is to send the “Hello” message to each of them via
UDP or TCP.
Sumber
http://lycog.com/programming/multicast-programming-java/
53
MULTICAST UDP
http://lycog.com/programming/multicast-programming-java/
What a problem is this scenario?
There are 3 generic problems:
 Consume a lot of processing power on sender as it needs to send to every
receiver
 Bandwidth flooding
 The arrival time is not the same for every receiver
54
MULTICAST PRINCIPAL
55
MULTICAST
Multicast adalah sebuah teknik di mana sebuah data
dikirimkan melalui jaringan ke sekumpulan komputer
yang tergabung ke dalam sebuah grup tertentu, yang
disebut sebagai multicast group. Multicasting
merupakan sebuah cara pentransmisian data secara
connectionless(komunikasi dapat terjadi tanpa adanya
negosiasi pembuatan koneksi), dan klien dapat
menerima transmisi multicast dengan mencari di mana
lokasinya, seperti halnya ketika kita membuka sebuah
stasiun radio untuk mendengarkan siaran radio.
Multicast sebenarnya merupakan mekanisme
komunikasi one-to-many, atau point-to-multipoint, dan
berbeda dengan cara transmisi unicast
56
MULTICAST CHARACTERISTICS
Multicast is using UDP under the hood. So sending and receiving data are
much the same as UDP
The big noticeable from UDP
 Sender should address packages to an IP number in the range between 224.0.0.1 and
239.255.255.254. Please see the full range of Multicast IP Address
 Receivers must join multicast group to receive packet
Several multicast sockets can be bound simultaneously to the same port
(Contrary to UDP and TCP)
Multicast is viable for video conference, service discovery application, etc.
57
MULTICAST IN JAVA
MulticastSocket: extension of DatagramSocket
 MulticastSocket socket = new MulticastSocket(8888);
Join and Leave group
 joinGroup(InetAddress group)
 leaveGroup(InetAddress group)
58
EXAMPLE
Example below is to send multicast message with indexing to multicast IP
(224.2.2.3) and port 8888. If the client wish to receive multicast message, it
must join the group with multicast ip (224.2.2.3) and port 8888.
59
D4 PENS-ITS 60
61
MULTICASTRECEIVER
62
MULTICASTSENDER 1
63
MULTICASTSENDER 2
64
MULTICASTSOCKET
SERVER.JAVA
MulticastSocketServer.java
MulticastSocketClient.java
SERVER / SENDER
Client / Receiver

More Related Content

Similar to Part 3 & 4 Networking Programming.pdf

Bab jenis protokol jaringan
Bab jenis protokol jaringanBab jenis protokol jaringan
Bab jenis protokol jaringan
krisdjayanti1
 
Transpot layer
Transpot layerTranspot layer
Transpot layer
Aji Retnawan
 
Protokol_jaringan.ppt
Protokol_jaringan.pptProtokol_jaringan.ppt
Protokol_jaringan.ppt
divaarmeylia
 
ppt kelompok 5.pptx
ppt kelompok 5.pptxppt kelompok 5.pptx
ppt kelompok 5.pptx
ArifBahySefitra1
 
04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server
Ayu Karisma Alfiana
 
Modul 3 - Jaringan Komputer
Modul 3 - Jaringan KomputerModul 3 - Jaringan Komputer
Modul 3 - Jaringan Komputer
jagoanilmu
 
Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02rizkiinrl
 
pemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputerpemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputer
alisofyan13
 
Jaringan Komputer : Konsep TCP/IP
Jaringan Komputer : Konsep TCP/IPJaringan Komputer : Konsep TCP/IP
Jaringan Komputer : Konsep TCP/IP
Achmad Solichin
 
Marauli te,cr kerja internet
Marauli te,cr kerja internetMarauli te,cr kerja internet
Marauli te,cr kerja internetmarauli
 
MikroTik Fundamental by Akrom Musajid.pdf
MikroTik Fundamental by Akrom Musajid.pdfMikroTik Fundamental by Akrom Musajid.pdf
MikroTik Fundamental by Akrom Musajid.pdf
globalkomputer
 
1penge.ppt
1penge.ppt1penge.ppt
rizkii
rizkiirizkii
rizkii
rizkiinrl
 
Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02rizkiinrl
 

Similar to Part 3 & 4 Networking Programming.pdf (20)

I wayan diana
I wayan dianaI wayan diana
I wayan diana
 
9. tcp ip
9. tcp ip9. tcp ip
9. tcp ip
 
Bab jenis protokol jaringan
Bab jenis protokol jaringanBab jenis protokol jaringan
Bab jenis protokol jaringan
 
Transpot layer
Transpot layerTranspot layer
Transpot layer
 
Protokol_jaringan.ppt
Protokol_jaringan.pptProtokol_jaringan.ppt
Protokol_jaringan.ppt
 
Materi 2
Materi 2Materi 2
Materi 2
 
internet layer protokol
internet layer protokolinternet layer protokol
internet layer protokol
 
ppt kelompok 5.pptx
ppt kelompok 5.pptxppt kelompok 5.pptx
ppt kelompok 5.pptx
 
04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server
 
Modul 3 - Jaringan Komputer
Modul 3 - Jaringan KomputerModul 3 - Jaringan Komputer
Modul 3 - Jaringan Komputer
 
Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02
 
TRANSPORT LAYER UDP TCP
TRANSPORT LAYER UDPTCPTRANSPORT LAYER UDPTCP
TRANSPORT LAYER UDP TCP
 
pemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputerpemrograman socket pada jaringan komputer
pemrograman socket pada jaringan komputer
 
Jaringan Komputer : Konsep TCP/IP
Jaringan Komputer : Konsep TCP/IPJaringan Komputer : Konsep TCP/IP
Jaringan Komputer : Konsep TCP/IP
 
Marauli te,cr kerja internet
Marauli te,cr kerja internetMarauli te,cr kerja internet
Marauli te,cr kerja internet
 
MikroTik Fundamental by Akrom Musajid.pdf
MikroTik Fundamental by Akrom Musajid.pdfMikroTik Fundamental by Akrom Musajid.pdf
MikroTik Fundamental by Akrom Musajid.pdf
 
1penge.ppt
1penge.ppt1penge.ppt
1penge.ppt
 
rizkii
rizkiirizkii
rizkii
 
rizki ppt
rizki pptrizki ppt
rizki ppt
 
Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02Rizkitecrkerjainternet 131119222943-phpapp02
Rizkitecrkerjainternet 131119222943-phpapp02
 

More from AiAdhi

Network Security-pentingnya-keamanan-internet-11-1997.ppt
Network Security-pentingnya-keamanan-internet-11-1997.pptNetwork Security-pentingnya-keamanan-internet-11-1997.ppt
Network Security-pentingnya-keamanan-internet-11-1997.ppt
AiAdhi
 
Ethical Hacking and Network Defense.pdf
Ethical Hacking and Network Defense.pdfEthical Hacking and Network Defense.pdf
Ethical Hacking and Network Defense.pdf
AiAdhi
 
Kumpulan Soal UAS Algoritma Pemograman.pptx
Kumpulan Soal UAS Algoritma Pemograman.pptxKumpulan Soal UAS Algoritma Pemograman.pptx
Kumpulan Soal UAS Algoritma Pemograman.pptx
AiAdhi
 
CYBER LAW.ppt
CYBER LAW.pptCYBER LAW.ppt
CYBER LAW.ppt
AiAdhi
 
Part 1 Etika Dan Aturan Dunia Siber.pdf
Part 1 Etika Dan Aturan Dunia Siber.pdfPart 1 Etika Dan Aturan Dunia Siber.pdf
Part 1 Etika Dan Aturan Dunia Siber.pdf
AiAdhi
 
Part 2 Routing Internet.pdf
Part 2 Routing Internet.pdfPart 2 Routing Internet.pdf
Part 2 Routing Internet.pdf
AiAdhi
 
Part 1 Osi Layer.pdf
Part 1 Osi Layer.pdfPart 1 Osi Layer.pdf
Part 1 Osi Layer.pdf
AiAdhi
 
Ordik-2017-Materi-3-Kewirausahaan.pptx
Ordik-2017-Materi-3-Kewirausahaan.pptxOrdik-2017-Materi-3-Kewirausahaan.pptx
Ordik-2017-Materi-3-Kewirausahaan.pptx
AiAdhi
 
Bab_08_faktor_X.ppt
Bab_08_faktor_X.pptBab_08_faktor_X.ppt
Bab_08_faktor_X.ppt
AiAdhi
 
01.-Materi-Metode-Pengabdian.ppt
01.-Materi-Metode-Pengabdian.ppt01.-Materi-Metode-Pengabdian.ppt
01.-Materi-Metode-Pengabdian.ppt
AiAdhi
 
BUMDES Untuk Kewirausahaan Desa.pptx
BUMDES Untuk Kewirausahaan Desa.pptxBUMDES Untuk Kewirausahaan Desa.pptx
BUMDES Untuk Kewirausahaan Desa.pptx
AiAdhi
 

More from AiAdhi (11)

Network Security-pentingnya-keamanan-internet-11-1997.ppt
Network Security-pentingnya-keamanan-internet-11-1997.pptNetwork Security-pentingnya-keamanan-internet-11-1997.ppt
Network Security-pentingnya-keamanan-internet-11-1997.ppt
 
Ethical Hacking and Network Defense.pdf
Ethical Hacking and Network Defense.pdfEthical Hacking and Network Defense.pdf
Ethical Hacking and Network Defense.pdf
 
Kumpulan Soal UAS Algoritma Pemograman.pptx
Kumpulan Soal UAS Algoritma Pemograman.pptxKumpulan Soal UAS Algoritma Pemograman.pptx
Kumpulan Soal UAS Algoritma Pemograman.pptx
 
CYBER LAW.ppt
CYBER LAW.pptCYBER LAW.ppt
CYBER LAW.ppt
 
Part 1 Etika Dan Aturan Dunia Siber.pdf
Part 1 Etika Dan Aturan Dunia Siber.pdfPart 1 Etika Dan Aturan Dunia Siber.pdf
Part 1 Etika Dan Aturan Dunia Siber.pdf
 
Part 2 Routing Internet.pdf
Part 2 Routing Internet.pdfPart 2 Routing Internet.pdf
Part 2 Routing Internet.pdf
 
Part 1 Osi Layer.pdf
Part 1 Osi Layer.pdfPart 1 Osi Layer.pdf
Part 1 Osi Layer.pdf
 
Ordik-2017-Materi-3-Kewirausahaan.pptx
Ordik-2017-Materi-3-Kewirausahaan.pptxOrdik-2017-Materi-3-Kewirausahaan.pptx
Ordik-2017-Materi-3-Kewirausahaan.pptx
 
Bab_08_faktor_X.ppt
Bab_08_faktor_X.pptBab_08_faktor_X.ppt
Bab_08_faktor_X.ppt
 
01.-Materi-Metode-Pengabdian.ppt
01.-Materi-Metode-Pengabdian.ppt01.-Materi-Metode-Pengabdian.ppt
01.-Materi-Metode-Pengabdian.ppt
 
BUMDES Untuk Kewirausahaan Desa.pptx
BUMDES Untuk Kewirausahaan Desa.pptxBUMDES Untuk Kewirausahaan Desa.pptx
BUMDES Untuk Kewirausahaan Desa.pptx
 

Recently uploaded

UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik DosenUNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
AdrianAgoes9
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
gloriosaesy
 
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptxSOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
astridamalia20
 
Koneksi Antar Materi modul 1.4 Budaya Positif
Koneksi Antar Materi modul 1.4 Budaya PositifKoneksi Antar Materi modul 1.4 Budaya Positif
Koneksi Antar Materi modul 1.4 Budaya Positif
Rima98947
 
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakatPPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
jodikurniawan341
 
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
smp4prg
 
Diseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptxDiseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptx
LucyKristinaS
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Fathan Emran
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
asyi1
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
widyakusuma99
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
agusmulyadi08
 
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxForm B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
EkoPutuKromo
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
lindaagina84
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
setiatinambunan
 
Karakteristik Manusia Komunikan dalam Bingkai Psikologi Komunikasi
Karakteristik Manusia Komunikan dalam Bingkai Psikologi KomunikasiKarakteristik Manusia Komunikan dalam Bingkai Psikologi Komunikasi
Karakteristik Manusia Komunikan dalam Bingkai Psikologi Komunikasi
AdePutraTunggali
 
untuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawasuntuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawas
TEDYHARTO1
 
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
agusmulyadi08
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
MirnasariMutmainna1
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
Nur afiyah
 
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptxSEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
bobobodo693
 

Recently uploaded (20)

UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik DosenUNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
UNTUK DOSEN Materi Sosialisasi Pengelolaan Kinerja Akademik Dosen
 
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBIVISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
VISI MISI KOMUNITAS BELAJAR SDN 93 KOTA JAMBI
 
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptxSOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
SOSIALISASI PPDB TAHUN AJARAN 2024-2025.pptx
 
Koneksi Antar Materi modul 1.4 Budaya Positif
Koneksi Antar Materi modul 1.4 Budaya PositifKoneksi Antar Materi modul 1.4 Budaya Positif
Koneksi Antar Materi modul 1.4 Budaya Positif
 
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakatPPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
PPT LANDASAN PENDIDIKAN.pptx tentang hubungan sekolah dengan masyarakat
 
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdfPENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
PENGUMUMAN PPDB SMPN 4 PONOROGO TAHUN 2024.pdf
 
Diseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptxDiseminasi Budaya Positif Lucy Kristina S.pptx
Diseminasi Budaya Positif Lucy Kristina S.pptx
 
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 5 Fase C Kurikulum Merdeka
 
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdfRHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
RHK Jabatan Kep Sekolah dan Bukti Dukung.pdf
 
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
LAPORAN TUGAS TAMBAHAN PEMBINA PRAMUKA..
 
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagjaPi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
Pi-2 AGUS MULYADI. S.Pd (3).pptx visi giru penggerak dan prakrsa perubahan bagja
 
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docxForm B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
Form B8 Rubrik Refleksi Program Pengembangan Kompetensi Guru -1.docx
 
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docxINSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
INSTRUMEN PENILAIAN PRAKTIK KINERJA KS Dok Rating Observasi (1).docx
 
ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_ppt landasan pendidikan Alat alat pendidikan PAI 9_
ppt landasan pendidikan Alat alat pendidikan PAI 9_
 
Karakteristik Manusia Komunikan dalam Bingkai Psikologi Komunikasi
Karakteristik Manusia Komunikan dalam Bingkai Psikologi KomunikasiKarakteristik Manusia Komunikan dalam Bingkai Psikologi Komunikasi
Karakteristik Manusia Komunikan dalam Bingkai Psikologi Komunikasi
 
untuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawasuntuk observasi kepala sekolah dengan pengawas
untuk observasi kepala sekolah dengan pengawas
 
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
PI 2 - Ratna Haryanti, S. Pd..pptx Visi misi dan prakarsa perubahan pendidika...
 
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...Modul Projek  - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
Modul Projek - Modul P5 Kearifan Lokal _Menampilkan Tarian Daerah Nusantara_...
 
ppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdfppt profesionalisasi pendidikan Pai 9.pdf
ppt profesionalisasi pendidikan Pai 9.pdf
 
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptxSEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
SEMINAR PPG DAN PPL ppg prajabatan 2024.pptx
 

Part 3 & 4 Networking Programming.pdf

  • 1. NETWORK PROGRAMMING Sukriadi Shafar Prodi Informatika Universitas Wallacea 1
  • 2. PROTOKOL Protokol adalah suatu aturan atau mekanisme dimana dua komputer atau lebih dapat saling berinterkoneksi. Protokol mendefinisikan suatu format paket data yang akan dipertukarkan untuk menunjang mekanisme tersebut. Protokol yang banyak digunakan adalah TCP/IP. Internet menggunakan TCP/IP. 2
  • 3. PENGANTAR JARINGAN Fungsi utama protokol TCP/IP adalah menyediakan sebuah mekanisme komunikasi point to point. Komunikasi dibentuk dengan dua aliran data (stream). Satu stream membaca data (stream input) dari satu proses ke proses lain, sedangkan satunya lagi mengirim data (stream output). Artinya ada stream input dan stream output dari tiap proses untuk melakukan komunikasi. 3
  • 4. PENGANTAR JARINGAN Dalam jaringan komputer terdiri atas kumpulan komputer yang berdiri sendiri (otonom) dan saling bekerja sama Untuk dapat berkomunikasi dengan komputer lain, masing-masing komputer diberi identitas pada level aplikasi berupa alamat IP (Internet Protocol) seperti 192.168.29.251. Namun mengenali alamat komputer berdasarkan penomeran IP bukanlah hal yang mudah, cara lain terdapat layanan Naming, seperti DNS (Domain Naming Service) Tugas layanan naming semacam ini menerjemahkan alamat komputer yang user-friendly, seperti www.google.com menjadi alamat IP seperti 66.102.7.104. 4
  • 5. PORT Protokol TCP/IP memiliki port yang digunakan sebagai mekanisme untuk mengidentifikasi sebuah proses. Port merupakan pintu masuk datagram dan paket data. Port data dibuat mulai dari 0 sampai dengan 65.536. Alamat port 0 - 65535  Port 0 - 1023 → well known port Misal port 80 untuk HTTP 21 untuk FTP 110 untuk POP3 23 untuk Telnet 25 untuk SMTP  Port 1024 – 49151 → registered port  Port 49152 – 65535 → Dynamic port / Private Port 5
  • 6. TIPE PEMROGRAMAN JARINGAN Komunikasi Stream atau Connection Oriented communication Komunikasi datagram atau Connectionless communication 6
  • 7. CONNECTION ORIENTED Protokol standar : TCP (Transmission Control Protokol) TCP akan membuat setup koneksi dengan soket tujuan terlebih dulu. Setelah koneksi terbentuk, tidak dibutuhkan mengirimkan informasi soket pengirim tiap kali data dikirimkan. Ini karena proses tujuan akan mengidentifikasi setiap data yang tiba pada soket tujuan sebagai data dari pengirim. Koneksi yang terbentuk pada TCP bersifat dua arah (bidirectional). 7
  • 8. CONNECTION ORIENTED TCP melakukan transmisi data per segmen, artinya paket data dipecah dalam jumlah yang sesuai dengan besaran paket, kemudian dikirim satu persatu hingga selesai. Agar pengiriman data sampai dengan baik, maka pada setiap paket pengiriman, TCP akan menyertakan nomor seri (sequence number). Pada sisi soket penerima, paket-paket data ini akan disimpan, diurutkan kembali, dan akhirnya digabungkan kembali menjadi data besar. TCP adalah protocol yang reliable yang senantiasa menunggu konfirmasi dari pihak soket penerima (soket penerima harus mengirim balik sebuah sinyal ACKnowledge dalam satu periode yang ditentukan). 8
  • 9. CONNECTION ORIENTED Bila pada waktunya sang penerima belum juga memberikan ACK, maka terjadi “ time out “ yang menandakan pegiriman paket gagal dan harus diulang kembali. Konsekuensinya adalah TCP menimbulkan overhead lalulintas jaringan yang tinggi Di Java diimplementasikan dengan class Socket dan ServerSocket. 9
  • 10. CONNECTIONLESS Standar protokol komunikasi datagram dikenal dengan UDP (User Datagram Protocol) Pada UDP, setiap kali paket data dikirim, informasi soket client turut dikirimkan. Mengirim paket secara individu. UDP merupakan protocol yang unreliable (tidak handal). Ketika paket data dikirimkan, UDP tidak mengecek kembali apakah data yang dikirim sampai tujuan. Jadi dengan UDP tidak ada kepastian bagi sisi pengirim bahwa datanya sudah sampai ke tujuan dengan keadaan baik. Konsekuensinya adalah TCP menimbulkan overhead lalulintas jaringan lebih tinggi dibanding UDP. 10
  • 11. CONNECTIONLESS Connectionless lebih cepat daripada Connection Oriented, namun connectionless tidak menjamin pengiriman. Di Java diimplementasikan dengan class DatagramPacket dan DatagramSocket. 11
  • 12. PEMROGRAMAN CLIENT/SERVER Suatu model umum yang diterapkan untuk pemrograman jaringan adalah model client/server. Melibatkan dua hal:  Client  Server Client : melakukan permintaan untuk suatu informasi atau mengirim sebuah perintah ke suatu aplikasi server. Server : menerima permintaan dari client, kemudian memproses berdasarkan permintaan tsb dan akan mengembalikan sesuatu ke client sebagai suatu hasil dari pemrosesan yang sudah dilakukan. 12
  • 13. SOCKET Socket adalah sebuah abstraksi perangkat lunak yang digunakan sebagai suatu "terminal" dari suatu hubungan antara dua mesin atau proses yang saling berinterkoneksi. Di tiap mesin yang saling berinterkoneksi harus terpasang socket. 13
  • 14. SOCKET Connection Oriented  Class yang mendukung adalah java.net.ServerSocket dan java.net.Socket Connectionless  Class yang mendukung adalah java.net.DatagramSocket Pada J2SE telah disediakan paket java.net yang berisi class dan interface yang menyediakan API (Application Programming Interface) level rendah (Socket, ServerSocket, DatagramSocket) dan level tinggi (URL, URLConnection). 14
  • 15. SOCKET Agar suatu socket dapat berkomunikasi dengan socket lainnya, maka socket butuh diberi suatu alamat unik sebagai identifikasi. Alamat socket terdiri atas Alamat IP dan Nomer Port. Contoh alamat socket adalah 192.168.29.30: 3000, dimana nomer 3000 adalah nomer portnya. Alamat IP dapat menggunakan alamat Jaringan Lokal (LAN) maupun alamat internet. Mengapa dibutuhkan nomer port? Apakah nomer IP komputer tujuan saja tidak cukup? Nomer port dibutuhkan karena proses yang berjalan pada suatu komputer umumnya lebih dari satu. Sehingga dibutuhkan tambahan informasi sebagai identifikasi proses yang hendak dihubungi. 15
  • 16. SOCKET Jika IP computer diibaratkan adalah nomer telepon suatu perusahaan, maka nomer port adalah nomer ekstensinya. Suatu proses yang hendak berkomunikasi dengan proses lain lewat mekanisme socket haruslah mengikatkan dirinya dengan salah satu port pada komputernya. Pengikatan diri ini disebut dengan binding. 16
  • 17. CLASS INETADDRESS Class yang berfungsi untuk mengambil informasi alamat IP suatu komputer. Class ini bersifat static dan tidak memiliki konstruktor. Menyediakan fungsi yang dapat digunakan untuk mendapatkan alamat IP.  getByName(namaHost) menerima sebuah string nama host dan mengembalikan alamat IP sesungguhnya berdasarkan DNS berupa object InetAddress. Untuk menampilkannya gunakan method toString().  getLocalHost() akan mengembalikan informasi alamat IP dan nama host pada komputer lokal.  getHostName() Gets the host name for this IP address  getHostAddress() Returns the IP address string in textual presentation.  getAllByName : akan mengembalikan informasi alamat IP dan nama host pada komputer lokal. 17
  • 18. CLASS INETADDRESS Program di bawah ini untuk mengetahui nama komputer lokal. 18
  • 19. CLASS INETADDRESS program untuk mendapatkan nama komputer dari Alamat IP. D4 PENS-ITS 19
  • 20. CLASS INETADDRESS Buatlah program di bawah ini, masukkan misal www.detik.com maka akan ditampilkan Alamat IP dari www.detik.com. Masukkan host name : java.sun.com, berapakah Alamat IPnya? D4 PENS-ITS 20
  • 22. MODEL APLIKASI CLIENT SERVER Pada sisi aplikasi server, suatu soket server dibentuk (1) dan melakukan operasi listen (2). Operasi ini pada intinya menunggu permintaan koneksi dari sisi client. Pada sisi client, dibentuk suatu soket biasa. Pada saat soket client (3), informasi alamat soket server dilewatkan sebagai argumen dan soket client akan otomatis mencoba meminta koneksi ke soket server. Pada saat permintaan koneksi client sampai pada server, maka server akan membuat suatu soket biasa. Soket ini yang nantinya akan berkomunikasi dengan soket pada sisi client. Setelah itu soket server dapat kembali melakukan listen (4) untuk menunggu permintaan koneksi dari client lainnya. Langkah 4 ini umumnya hanya dilakukan jika aplikasi server mengimplementasikan multithreading. Setelah tercipta koneksi antara client dan server, maka keduanya dapat saling bertukar pesan (5). Salah satu atau keduanya kemudian dapat mengakhiri komunikasi dengan menutup soket (6). 22
  • 23. PEMROGRAMAN SOCKET TCP Java menyediakan obyek Socket dan ServerSocket untuk komunikasi soket TCP. ServerSocket digunakan pada sisi aplikasi server, sedangkan Socket digunakan baik pada sisi aplikasi server maupun client. 23
  • 24. KOMUNIKASI SOCKET TCP DI SERVER Buatlah sebuah objek ServerSocket. Konstruktor ServerSocket memerlukan port number (1024-65535) sebagai argumen. Sebagai contoh : ServerSocket servSock = new ServerSocket(1234); Server akan menunggu koneksi dari client pada port 1234 Server dalam kondisi menunggu (listen). Operasi ini pada intinya menunggu permintaan koneksi dari sisi client. Socket link = servSock.accept(); 24
  • 25. KOMUNIKASI SOCKET TCP DI SERVER Buat input dan output stream. Stream ini digunakan untuk berkomunikasi dengan client. Objek InputStreamReader digunakan untuk menerima respon dari client. Sedangkan PrintWriter untuk mengirimkan data ke client. BufferedReader in = new BufferedReader(new InputStreamReader(link.getInputStream())); PrintWriter out = new PrintWriter(link.getOutputStream(),true); Saling berkirim dan menerima pesan. Gunakan method readLine() untuk menerima data dan method println() untuk mengirim data. out.println("Message " + numMessages + ":" + message); message = in.readLine(); Menutup socket link.close(); 25
  • 26. KOMUNIKASI SOCKET TCP DI CLIENT Bangun koneksi ke server. Buatlah sebuah objek Socket, yang mempunyai konstruktor dengan dua argumen:  IP address server  Port Number Port number untuk server dan client haruslah sama. Socket link = new Socket(InetAddress.getLocalHost(),1234); Buat input dan output stream. Stream ini digunakan untuk berkomunikasi dengan client. Objek InputStreamReader digunakan untuk menerima respon dari client. Sedangkan PrintWriter untuk mengirimkan data ke client. BufferedReader in = new BufferedReader(new InputStreamReader(link.getInputStream())); PrintWriter out = new PrintWriter(link.getOutputStream(),true); 26
  • 27. KOMUNIKASI SOCKET TCP DI CLIENT Saling berkirim dan menerima pesan. Gunakan method readLine() untuk menerima data dan method println() untuk mengirim data. out.println("Message " + numMessages + ":" + message); message = in.readLine(); Menutup socket link.close(); 27
  • 28. APLIKASI TCP 1 – APLIKASI SERVER Buatlah program Server dan Client. Program server hanya bisa terkoneksi dengan 1 client. 28
  • 29. APLIKASI TCP 1 – APLIKASI SERVER 29
  • 30. APLIKASI TCP 1 – APLIKASI SERVER 30
  • 31. APLIKASI TCP 1 – APLIKASI CLIENT 31
  • 32. APLIKASI TCP 1 – APLIKASI CLIENT 32
  • 33. APLIKASI TCP 1 – APLIKASI CLIENT 33
  • 34. MENJALANKAN APLIKASI TCP 1 Jalankan TCPEchoServer terlebih dahulu Selanjutnya jalankan TCPEchoClient tulislah message “Java”. Maka pada server akan menampilkan “Java” 34 SERVER CLIENT
  • 35. MENJALANKAN APLIKASI TCP 1 Tambahkan sebuah client lagi Apa yang terjadi ? Pada saat client 2 menuliskan message maka server tidak menerima message dari client 2 35 SERVER CLIENT
  • 36. APLIKASI TCP 2 (MULTI CLIENT) - SERVER Program server dapat menangani lebih dari 1 client 36
  • 37. APLIKASI TCP 1 (MULTI CLIENT) - SERVER 37
  • 38. APLIKASI TCP 2 (MULTI CLIENT) - SERVER D4 PENS-ITS 38
  • 39. APLIKASI TCP 2 (MULTI CLIENT) - CLIENT D4 PENS-ITS 39
  • 41. MENJALANKAN APLIKASI TCP 2 Jalankan MultiEchoServer terlebih dahulu Selanjutnya jalankan MultiEchoClient tulislah message “Client 1”. Maka pada server akan menampilkan “Client 1” Jalankan kembali MultiEchoClient tulislah message “Client 2”. Maka pada server akan menampilkan “Client 2” 41 SERVER CLIENT 1 CLIENT 2
  • 42. KOMUNIKASI SOCKET DATAGRAM Untuk protokol UDP, perbedaannya adalah socket di sisi server sama dengan socket di sisi client dan tidak ada operasi listen pada sisi server. Kemudian saat paket data dikirimkan alamat socket client harus disertakan sebagai argumen. 42
  • 43. KOMUNIKASI SOCKET DATAGRAM DI SERVER Buatlah sebuah objek DatagramSocket. Konstruktor DatagramSocket mempunyai satu argument yaitu no port. DatagramSocket dgramSocket = new DatagramSocket(1234); Buat buffer untuk datagram yang masuk. byte[] buffer = new byte[256]; Buatlah sebuah objek DatagramPacket untuk datagram yang masuk. Konstruktor dari objek ini memerlukan dua argumen yaitu array byte dan besar dari array ini DatagramPacket inPacket = new DatagramPacket(buffer,buffer.length); Menerima datagram yang masuk dgramSocket.receive(inPacket); Menerima alamat pengirim dan port yang masuk (dari client) InetAddress clientAddress = inPacket.getAddress(); int clientPort = inPacket.getPort(); 43
  • 44. KOMUNIKASI SOCKET DATAGRAM DI SERVER Mengambil data dari buffer. Untuk memudahkan penanganan, maka data di ambil sebagai string. Konstruktor String yang digunakan mempunyai 3 argumen yaitu  Array dengan tipe byte  Posisi awal array yang akan diambil(posisi 0)  Jumlah byte yang akan diambil (sama dengan besar buffer) String messageIn = new String(inPacket.getData(),0,inPacket.getLength()); Buatlah datagram respon. Buatlah sebuah objek DatagramPacket, dengan konstruktor yang memerlukan 3 argument.  Array dengan tipe byte yang berisi message response  Besar response  Alamat client  No port DatagramPacket outPacket = new DatagramPacket(messageOut.getBytes(), messageOut.length(), clientAddress, clientPort); Kirim datagram response dgramSocket.send(outPacket); Close DatagramSocket. dgramSocket.close(); 44
  • 45. KOMUNIKASI SOCKET DATAGRAM DI CLIENT 1. Buatlah sebuah objek DatagramSocket. Pembuatan objek DatagramSocket hampir sama seperti pada program server tapi untuk client tidak menggunakan no port DatagramSocket dgramSocket = new DatagramSocket(); 2. Buatlah datagram yang akan keluar (disertakan alamat client). Lihat langkah 7 pada server. DatagramPacket outPacket = new DatagramPacket(messageOut.getBytes(), messageOut.length(), clientAddress, clientPort); 3. Kirim message datagram. dgramSocket.send(outPacket); 4. Buatlah sebuah buffer untuk datagram yang masuk. byte[] buffer = new byte[256]; 5. Buatlah sebuah objek DatagramPacket untuk datagram yang masuk. Konstruktor dari objek ini memerlukan dua argumen yaitu array byte dan besar dari array ini DatagramPacket inPacket = new DatagramPacket(buffer,buffer.length); 45
  • 46. KOMUNIKASI SOCKET DATAGRAM DI CLIENT 6. Menerima datagram yang masuk dgramSocket.receive(inPacket); 7. Mengambil data dari buffer. Untuk memudahkan penanganan, maka data di ambil sebagai string. Konstruktor String yang digunakan mempunyai 3 argumen yaitu  Array dengan tipe byte  Posisi awal array yang akan diambil(posisi 0)  Jumlah byte yang akan diambil (sama dengan besar buffer) String messageIn = new String(inPacket.getData(),0,inPacket.getLength()); 8. Close DatagramSocket. dgramSocket.close(); 46
  • 49. APLIKASI UDP - UDPECHOSERVER 49
  • 51. 51
  • 52. MENJALANKAN APLIKASI UDP Jalankan UDPEchoServer terlebih dahulu Selanjutnya jalankan UDPEchoClient tulislah message “Client 1”. Maka pada server akan menampilkan “Message Received” 52 SERVER CLIENT
  • 53. MULTICAST UDP Multicast is a special feature of UDP protocol that enable programmer to send message to a group of receivers on a specific multicast IP address and port. Multicast has advantage in this scenario. Let us say I want to send “Hello” message to 100 computers on my network. Perhaps, my first solution is to send the “Hello” message to each of them via UDP or TCP. Sumber http://lycog.com/programming/multicast-programming-java/ 53
  • 54. MULTICAST UDP http://lycog.com/programming/multicast-programming-java/ What a problem is this scenario? There are 3 generic problems:  Consume a lot of processing power on sender as it needs to send to every receiver  Bandwidth flooding  The arrival time is not the same for every receiver 54
  • 56. MULTICAST Multicast adalah sebuah teknik di mana sebuah data dikirimkan melalui jaringan ke sekumpulan komputer yang tergabung ke dalam sebuah grup tertentu, yang disebut sebagai multicast group. Multicasting merupakan sebuah cara pentransmisian data secara connectionless(komunikasi dapat terjadi tanpa adanya negosiasi pembuatan koneksi), dan klien dapat menerima transmisi multicast dengan mencari di mana lokasinya, seperti halnya ketika kita membuka sebuah stasiun radio untuk mendengarkan siaran radio. Multicast sebenarnya merupakan mekanisme komunikasi one-to-many, atau point-to-multipoint, dan berbeda dengan cara transmisi unicast 56
  • 57. MULTICAST CHARACTERISTICS Multicast is using UDP under the hood. So sending and receiving data are much the same as UDP The big noticeable from UDP  Sender should address packages to an IP number in the range between 224.0.0.1 and 239.255.255.254. Please see the full range of Multicast IP Address  Receivers must join multicast group to receive packet Several multicast sockets can be bound simultaneously to the same port (Contrary to UDP and TCP) Multicast is viable for video conference, service discovery application, etc. 57
  • 58. MULTICAST IN JAVA MulticastSocket: extension of DatagramSocket  MulticastSocket socket = new MulticastSocket(8888); Join and Leave group  joinGroup(InetAddress group)  leaveGroup(InetAddress group) 58
  • 59. EXAMPLE Example below is to send multicast message with indexing to multicast IP (224.2.2.3) and port 8888. If the client wish to receive multicast message, it must join the group with multicast ip (224.2.2.3) and port 8888. 59
  • 61. 61