Kamis, 11 Juli 2019

Python Socket Programming (Server Client)

Socket adalah mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin. Disini kita akan membangun sebuah socket program diantara dua PC menggunakan bahasa pemograman yaitu Python.

Untuk membangun sebuah aplikasi yang berbasis socket, kita dapat menggunakan 2 jenis socket yang berbeda yaitu :

STREAM SOCKET >< DATAGRAM SOCKET

a. Stream Socket menggunakan TCP (Transmission Control Protocol), salah satu jenis protokol yang  memungkinkan sekumpulan komputer untuk berkomunikasi dan bertukar data didalam suatu jaringan
b. Datagram Socket menggunakan UDP (User Datagram Protocol), salah satu protokol lapisan transport TCP/IP yang mendukung komunikasi yang tidak handal (unreliable), tanpa koneksi antara host-host dalam jaringan yang menggunakan TCP/IP

TCP dan UDP sama-sama berfungsi sebagai protokol pertukaran data, berikut perbedaanya

UDP tidak memerlukan proses koneksi terlebih dahulu untuk dapat mengirimkan data, paket-paket data yang dikirimkan UDP bisa jadi melalui rute yang berbeda-beda, sehingga hasil yang diterima bisa jadi tidak berurutan.
Contohnya jika aplikasi socket pengirim mengirimkan berturut-turut pesan 1, pesan 2, dan pesan 3, maka aplikasi socket penerima belum tentu mendapatkan pesan yang berurutan dimulai dari pesan 1, pesan 2, dan terakhir pesan 3. Bisa saja pesan 2 terlebih dulu diterima, menyusul pesan-pesan yang lain, atau berbagai kemungkinan lainnya. Bahkan, dapat terjadi pesan yang dikirimkan tidak sampai ke penerima karena kegagalan pengiriman paket data.

Sedangkan,

TCP mengharuskan terjadinya koneksi  terlebih dahulu, kemudian mengirimkan paket-paket data secara berurutan, penerima juga dijamin akan menerima data dengan urutan yang benar, dimulai dari data pertama yang dikirimkan hingga data terakhir. TCP dapat menangani data yang hilang, rusak, terpecah, ataupun terduplikasi.

Dari sekilas perbedaan ini, kita dapat menarik kesimpulan bahwa aplikasi socket yang menggunakan TCP memerlukan pertukaran data dua arah yang valid. Sedangkan, aplikasi socket yang menggunakan UDP lebih memprioritaskan pada pengumpulan data.

Karena itu aplikasi socket dengan TCP sering diterapkan untuk aplikasi chat, transfer file, ataupun transaksi-transaksi penting. Sedangkan aplikasi socket dengan UDP cocok diterapkan untuk aplikasi monitoring jaringan, game online, dan aplikasi-aplikasi broadcast.

--------------------------------------------------------------------------------------------------------

Setelah mengetahui perbedaan dari kedua jenis socket, berikut adalah Python programming socket yang pernah saya coba.
Prosedur :
1. Menyiapkan dua buah PC yang sudah terinstall python dan python bisa dipanggil di CMD
Pastiin saat install kalian klik 'Add Python..' yaa

Maksudku bisa terpanggil di command prompt itu kaya gini,


2. Mengkoneksikan kedua PC dengan cara :
     a. Kedua PC berada di satu jaringan yang sama (maksudnya menggunakan jaringan wifi yang   
         sama, disini saya menggunakan hotspot dari hp lalu di tethringkan ke kedua PC)
     b. Setelah satu jaringan, buka commandprompt di masing-masing PC lalu 'ipconfig' untuk
         mengetahui masing-masing IP lalu melakukan PING IP sendiri maupun IP PC yang lain untuk
         memastikan kedua PC benar-benar sudah terkoneksi.
     c. Ingat" IP pada PC server dan client karena setiap script nantinya harus diganti dengan IP" itu.

3. Menuliskan script python socket programming ini, kalau aku menggunakan Notepad++ lalu disimpan dengan format python. Berikut adalah script-script yang sudah pernah aku coba,

a. TCP/IP 

-->Save at Server PC (Server.py)




-->Save at Client PC (Client.py)




Begini cara menggunakannya,
- Membuka idle python di kedua PC, lalu open file Server.py dan Client.py di masing-masing PC lalu buka lagi idle yang masih kosong.
- Perhatikan script pada client.py, ubah nilai HOST menjadi IP Server.
- Pada PC server, klik f5. Lalu diikuti dengan PC client yang juga klik f5.

Nanti tampilannya seperti ini,

server.py sebelum client belum masuk ke chat area (belum klik f5)

server.py ketika client.py sudah klik f5

Tampilan client.py ketika client server sudah berhasil melakukan chat. chat diakhiri client dengan text 'bye'



b. UDP

-->Save at Server PC (Serverudp.py)


-->Save at Client PC (Clientudp.py)




Begini cara menggunakannya,
a. Pada sisi server, membuka program serverudp.py lalu menuliskan IP komputer server di local
    address.
b. Pada sisi client, membuka program clientudp.py lalu menuliskan local address sesuai dengan local address server.
c. Membuka command prompt dan memanggil program serverudp.py maupun clientudp.py di masing-masing PC.

Tampilannya seperti ini,

Tampilan di server

Tampilan di client

Keliatannya perbedaan si TCP dan UDP.
Pada chat yang dilakukan TCP, data yang dikirim berurutan antara server dan client. Sedangkan udp mengirimkan sepaket data secara langsung.

Kalau ada yang salah, kita sharing di kolom Comment aja yaa..

5 komentar:

  1. omg bagus banget berguna banget!!!!!! makasih yaaaaa

    BalasHapus
  2. kak ini saya mau coba pemrograman kk tpi kok gagal koneksi yah?? padahal konek ke inteternet yang sama

    BalasHapus
  3. insightful sekaliii, luar biasa!

    BalasHapus