Anda di halaman 1dari 7

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 1

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 wellknown 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.
2

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

Gambar 2 Langkah-langkah membuat socket programming 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 .

Membuat program berbasis jaringan di sisi server 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()

Membuat program berbasis jaringan di sisi klien dengan python :


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()

Jalankan program server-tcp dengan perintah :


Python server-tcp.py

Jalankan program klien-tcp dengan perintah :


Python klien-tcp.py

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 .

Membuat program berbasis jaringan di sisi server 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)

Membuat program berbasis jaringan di sisi klien dengan python :


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()

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 ?