SOCKET PROGRAMMING – TCP & UDP dengan Python

📌 1. Tujuan Praktikum

Setelah mengikuti praktikum ini, mahasiswa mampu:

  1. Memahami konsep dasar komunikasi berbasis socket.
  2. Membedakan cara kerja protokol TCP dan UDP.
  3. Membuat program TCP Client–Server menggunakan Python.
  4. Membuat program UDP Client–Server menggunakan Python.
  5. Menguji proses pengiriman dan penerimaan data antar perangkat.
  6. Menganalisis kelebihan dan kekurangan TCP vs UDP pada IoT.

📘 2. Teori Dasar

2.1 Apa itu Socket?

Socket adalah antarmuka yang memungkinkan dua program berkomunikasi melalui jaringan (LAN/WiFi/Internet).

2.2 TCP (Transmission Control Protocol)

  • Connection-oriented (membangun koneksi dulu)
  • Reliable (ada ACK, retransmit)
  • Urutan data terjaga
  • Cocok untuk data penting: sensor, file, login

Format:

Client → Connect → Send → Receive → Close

2.3 UDP (User Datagram Protocol)

  • Connectionless (tanpa koneksi)
  • Tidak reliable (bisa hilang)
  • Lebih cepat, rendah latency
  • Cocok untuk streaming, video, data cepat IoT

Format:

Send langsung → Tidak menunggu balasan

🧰 3. Alat & Bahan

  • Laptop dengan Python 3.x
  • Text Editor (VSCode / Notepad++)
  • Dua terminal (untuk server & client)
  • Jaringan LAN/WiFi (opsional untuk multi-device)

🛠 4. Praktikum TCP

4.1 Program TCP Server (server_tcp.py)

import socket




HOST = "0.0.0.0"

PORT = 5000




server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server.bind((HOST, PORT))

server.listen()




print("TCP Server berjalan di port", PORT)




conn, addr = server.accept()

print("Terhubung dengan:", addr)




while True:

    data = conn.recv(1024).decode()

    if not data:

        break

    print("Client:", data)

    conn.sendall(("Server menerima: " + data).encode())




conn.close()

server.close()

4.2 Program TCP Client (client_tcp.py)

import socket




HOST = "127.0.0.1"  # ganti dengan IP server jika beda device

PORT = 5000




client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect((HOST, PORT))




while True:

    msg = input("Ketik pesan: ")

    client.sendall(msg.encode())

    response = client.recv(1024).decode()

    print("Server:", response)

🧪 4.3 Langkah Uji Coba TCP

  • Buka terminal 1 → jalankan server
python server_tcp.py
  • Buka terminal 2 → jalankan client
python client_tcp.py
  1. Kirim pesan dari client → lihat response server
  2. Uji koneksi antar laptop (ubah IP server)
  3. Analisis:
    • Latency
    • Apakah pesan selalu sampai?
    • Apa beda jika koneksi terputus?

5. Praktikum UDP

5.1 Program UDP Server (server_udp.py)

import socket




HOST = "0.0.0.0"

PORT = 6000




server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

server.bind((HOST, PORT))




print("UDP Server berjalan di port", PORT)




while True:

    data, addr = server.recvfrom(1024)

    print("Dari", addr, ":", data.decode())

    server.sendto(("Server menerima: " + data.decode()).encode(), addr)

5.2 Program UDP Client (client_udp.py)

import socket




HOST = "127.0.0.1"  # IP server

PORT = 6000




client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)




while True:

    msg = input("Ketik pesan: ")

    client.sendto(msg.encode(), (HOST, PORT))

    data, _ = client.recvfrom(1024)

    print("Server:", data.decode())

🧪 5.3 Langkah Uji Coba UDP

  1. Jalankan server UDP
  2. Jalankan client UDP
  3. Kirim pesan dan perhatikan:
    • Tidak ada koneksi (langsung kirim data)
    • Latency lebih rendah
    • Jika server off → pesan hilang (tidak ada error)

📊 6. Tabel Perbandingan TCP vs UDP

Parameter TCP UDP
Koneksi Ya Tidak
Reliability Sangat tinggi Rendah
Kecepatan Lebih lambat Sangat cepat
Cocok untuk Sensor penting, IoT server Streaming, broadcast, sensor cepat
Urutan data Terjamin Tidak terjamin
Overhead Tinggi Rendah

📚 7. Tugas Praktikum

  1. Modifikasi server TCP untuk menerima beberapa client (multi-threaded).
  2. Buat server UDP yang mengirim data broadcast ke banyak client.
  3. Bandingkan performa TCP vs UDP untuk mengirim 1000 data sensor.
  4. Buat grafik latency penggunaan TCP dan UDP.

📝 8. Laporan Praktikum (Format)

  1. Judul & tujuan
  2. Dasar teori TCP/UDP
  3. Kode program
  4. Hasil uji coba (screenshot)
  5. Analisis perbedaan TCP vs UDP
  6. Kesimpulan
  7. Daftar pustaka

 

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *