BAB II

7
1 B B II D S R PEMROGR M N J RING N 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 s isi 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

description

modul jarkom bab 2

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 ?