BAB | II LANDASAN TEORI II 1 BAB II LANDASAN TEORI Konsep ...
BAB II
description
Transcript of BAB II
-
1
BAB II
DASAR PEMROGRAMAN JARINGAN KOMPUTER
2.1 Tujuan
Memahami & Mampu Mengimplementasikan Dasar Pemrograman Jaringan Komputer
menggunakan TCP
Memahami & Mampu Mengimplementasikan Dasar Pemrograman Jaringan Komputer
menggunakan UDP
2.2 Pemrograman Socket
Setelah memahami beberapa protokol penting yang ada pada aplikasi berbasis jaringan
seperti HTTP, FTP, dan SMTP, praktikum bab dua kali ini akan melakukan eksplorasi bagaimana
program atau aplikasi berbasis jaringan tersebut ditulis. Pada aplikasi berbasis jaringan, kita
memahami bahwa secara umum aplikasi terdiri dari satu pasang program yang berada pada dua
end-system yang berbeda. Ketika kedua program tersebut dieksekusi, proses klien dan server
tercipta dan saling mengkomunikasikan dengan membaca atau menulis pada sebuah socket.
Dengan pemahaman diatas, dapat disimpulkan ketika seorang pengembang perangkat lunak
membuat sebuah aplikasi berbasis jaringan, maka pengembang tersebut harus memperhatikan
tugas utama yaitu menulis program pada sisi klien maupun server.
Pemrograman Socket dengan TCP
Pada aplikasi berbasis jaringan, proses berjalan pada dua mesin yang berbeda yang
berkomunikasi satu sama lain melalui sebuah socket. Pada gambar 1, dapat dianalogikan bahwa
proses adalah sebuah rumah, dan socket merupakan sebuah pintu dari rumah. Dan seorang
pengembang perangkat lunak hanya memiliki kontrol yang sangat sedikit dalam sisi layer
transport. Sisi server harus selalu siap dalam melayani permintaan klien, dan proses pada klien
akan melakukan inisiasi koneksi TCP ke server. Ketika klien membuat soket, klien harus
melakukan spesifikasi alamat dari sebuah proses yang dijalankan pada sisi server dengan
memberikan nama atau alamat IP dan juga nomor port pada sisi server. Ketika proses three way
handshaking terjadi ( akan dijelaskan lebih spesifik pada transport layer ), klien akan melakukan
proses mengetuk pintu pada server proses (welcome socket). Ketika server mendengar
ketukan pintu tersebut, server akan membuat socket baru (connection socket) yang
didedikasikan untuk melayani klien. Pada pemrograman jaringan komputer, terdapat istilah
-
2
stream yang merupakan sebuah urutan karakter yang mengalir menuju atau keluar pada sebuah
proses. Input Stream merupakan sumber input proses seperti keyboard. Dan standard output
Stream dapat dicontohkan ketika hasil tampilan ditunjukkan pada layar monitor.
Gambar 1 Proses komunikasi melalui soket TCP
Sumber : Kurose, Computer Network Top Down Approach
Perlu menjadi perhatian bahwa ketika sebuah proses dibuat pada masing-masing
end-system terdapat dua buah socket yang diciptakan disisi server yaitu welcoming
socket yang digunakan untuk melakukan proses listen dan three way handshake pada
sisi klien, dan connection socket yang digunakan untuk saling mempertukarkan pesan.
Langkah-langkah ketika membuat sebuah program dengan socket ditunjukkan pada
gambar 2. Langkah-langkahnya adalah sebagai berikut :
1. Sisi server membuat welcoming socket pada port kesekian (bukan pada well-
known port) , yang akan menunggu setiap permintaan yang nantinya akan
diberikan oleh klien.
2. Server menunggu permintaan dari klien, ketika sisi klien membuat socket dan
menghubungi server (bisa melalui alamat IP maupun hostname) melalui port
yang telah diberikan, server akan membuat connection socket yang akhirnya
menghubungkan TCP connection antara klien dengan server.
3. Klien mengirimkan request menggunakan client socket, dan server membaca
permintaan klien pada connection socket.
-
3
4. Server membalas permintaan klien melalui connection socket, dan sisi klien
menerimanya melalaui client socket.
5. Server menutup connection socket dan klien menutup client socket.
Sumber : Kurose, Computer Network Top Down Approach
Praktikum Dasar Pemrograman Jaringan menggunakan TCP
Pada praktikum dasar pemrograman jaringan, akan digunakan bahasa pemrograman python
dalam implementasi pemrograman antara klien dengan server. Sebelum memulai menulis
bahasa program silahkan unduh dan install compiler python. Berikut adalah langkah-langkah
yang harus praktikan kerjakan. Silahkan membuat file dengan ekstensi .py, misal untuk sisi
server gunakan file server-tcp.py untuk klien gunakan file klien-tcp.py .
Gambar 2 Langkah-langkah membuat socket programming
-
4
Membuat program berbasis jaringan di sisi server dengan python :
Membuat program berbasis jaringan di sisi klien dengan python :
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind((,serverPort))
serverSocket.listen(1)
print The server is ready to receive
while 1:
connectionSocket, addr = serverSocket.accept()
sentence = connectionSocket.recv(1024)
capitalizedSentence = sentence.upper()
connectionSocket.send(capitalizedSentence)
connectionSocket.close()
from socket import *
serverName = servername
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = raw_input(Input lowercase sentence:)
clientSocket.send(sentence)
modifiedSentence = clientSocket.recv(1024)
print From Server:, modifiedSentence
clientSocket.close()
-
5
Jalankan program server-tcp dengan perintah :
Jalankan program klien-tcp dengan perintah :
Hasil Pengamatan Praktikum dengan TCP
1. Jelaskan apa yang terjadi ketika program server-tcp dijalankan ?
2. Pada baris program server-tcp jelaskan maksud dari masing-masing baris.
3. Jelaskan apa yang terjadi ketika program klien-tcp dijalankan ?
4. Pada baris program klien-tcp jelaskan maksud dari masing-masing baris.
5. Apa yang terjadi ketika program klien-tcp dan server-tcp dijalankan secara
bersamaan, dan apa yang terjadi ketika pada klien-tcp menuliskan kata halo ?
Pemrograman Socket dengan UDP
Pada pemrograman dengan UDP, tidak diperlukan proses three way handshake seperti yang
dilakukan pada TCP. pada setiap paket yang dikirimkan pengirim juga secara eksplisit menyertakan IP
address dan port tujuan, pada sisi penerima akan dilakukan ekstraksi IP address pengirim dan port
pada setiap paket yang diterima. Pada pengiriman UDP data bisa hilang di tengah jalan dan diterima
tidak secara berurutan. UDP menyediakan unreliable transfer dari kelompok byte (datagram) antara
klien dengan server.
Praktikum Dasar Pemrograman Jaringan menggunakan UDP
Berikut adalah langkah-langkah yang harus praktikan kerjakan. Silahkan membuat file
dengan ekstensi .py, misal untuk sisi server gunakan file server-udp.py untuk klien gunakan
file klien-udp.py .
Python server-tcp.py
Python klien-tcp.py
-
6
Membuat program berbasis jaringan di sisi server dengan python :
Membuat program berbasis jaringan di sisi klien dengan python :
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET, SOCK_DGRAM)
serverSocket.bind(('', serverPort))
print The server is ready to receive
while 1:
message, clientAddress = serverSocket.recvfrom(2048)
modifiedMessage = message.upper()
serverSocket.sendto(modifiedMessage, clientAddress)
from socket import *
serverName = hostname
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_DGRAM)
message = raw_input(Input lowercase sentence:)
clientSocket.sendto(message,(serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print modifiedMessage
clientSocket.close()
-
7
Hasil Pengamatan Praktikum dengan UDP
1. Jelaskan apa yang terjadi ketika program server-udp dijalankan ?
2. Pada baris program server-udp jelaskan maksud dari masing-masing baris.
3. Jelaskan apa yang terjadi ketika program klien-udp dijalankan ?
4. Pada baris program klien-udp jelaskan maksud dari masing-masing baris.
5. Apa yang terjadi ketika program klien-udp dan server-udp dijalankan secara
bersamaan, dan apa yang terjadi ketika pada klien-udp menuliskan kata halo ?