Monday, April 16, 2012

Pengertian Socket dan Pemrogramman socket / Socket Programming

1. Pengertian Socket

Socket adalah sebuah Class yang disediakan oleh beberapa bahasa pemrograman. Dengan socket, sebuah aplikasi di suatu komputer dapat Tentu saja aplikasi di komputer yang dihubungi menerima koneksi juga
menggunakan socket. Dengan kata lain socket adalah suatu Class yang digunakan oleh aplikasi untuk saling berhubungan. berikut ini menunjukkan bagaimana suatu aplikasi berhubungan dengan aplikasi lainnya.

Paradigma pada aplikasi jaringan berlaku model client-server. Aplikasi yang menginisialisasi koneksi, disebut aplikasi client. Sedangkan aplikasi yang menerima inisialisasi disebut sebagai aplikasi server. Oleh karena itu, jika kita membangun suatu aplikasi jaringan yang lengkap, maka kita harus membuat aplikasi client maupun aplikasi server.
Lebih lanjut mengenai socket, ada dua jenis socket yang bisa digunakan untuk membangun aplikasi, yakni TCP Socket dan UDP Socket. Perbedaan utamanya adalah, di model TCP digunakan konsep connection oriented dan reliable data transfer, sedangkan di model UDP digunakan konsep connectionless oriented dan unreliable data transfer. Sebuah aplikasi dapat menggunakan salah satu dari jenis Socket tersebut disesuaikan dengan peruntukan aplikasi tersebut. Aplikasi berbasis TCP biasanya adalah aplikasi yang membutuhkan ketepatan data hingga 100% tapi tidak memperdulikan
lama pengiriman, sedangkan aplikasi berbasis UDP biasanya adalah aplikasi yang tidak terlalu mempedulikan ketepatan data tapi sangat peduli dengan delay pengiriman. Contoh aplikasi TCP adalah web browser, sedangkan UDP adalah Video Converence.
     Untuk membangun aplikasi hal pertama yang perlu dilakukan adalah menganalisa jenis aplikasi kita, kebutuhan bandwidth, kebutuhan ketersampaian data dan sensitifitas terhadap delay. Berdasarkan hal ini kita bisa menentukan protokol apa yang kita gunakan, entah TCP atau UDP.

2. Pemrograman Socket Menggunakan TCP

Cara kerja aplikasi yang menggunakan TCP dapat digambarkan oleh di bawah ini :

Detail dari proses tersebut adalah :
  1. Untuk bisa melakukan koneksi client server, program server harus berjalan terlebih dahulu
  2. Di sisi server disediakan sebuah socket, yang disebut welcoming socket yang fungsinya untuk mendeteksi adanya permintaan koneksi dari sisi client. 
  3. Di sisi client terdapat client socket. Jika ingin menghubungi server, maka melalui client socket-nya, client membuat inisialisai koneksi ke welcoming socket milik server, dengan mode three-way handshake.
  4. Setelah welcoming socket menerima inisialisasi koneksi dari client socket, aplikasi server akan membuat connection socket di sisi server. Dengan connection socket ini, client socket dan connection socket berinteraksi satu sama lain untuk mengirim dan menerima data.
  5. Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor.
3. Pemrograman Socket Menggunakan UDP

Contoh aplikasi untuk UDP socket berikut ini menggunakan kasus yang sama dengan kasus yang digunakan oleh TCP socket, yaitu :

  1. Client membaca inputan dari keyboard, kemudian mengirimkan hasilnya ke server melalui socket-nya.
  2. Server membaca data yang dikirim oleh client di connection socket
  3. Server mengubah data menjadi huruf besar
  4. Server mengirimkan data yang telah diubah menuju client melalui socket-nya.
  5. Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor

Perbedaan utama antara aplikasi berbasis TCP dengan aplikasi berbasis UDP adalah di aplikasi UDP tidak ada welcoming socket. Pada UDP tidak ada socket khusus untuk permintaan inisialisai koneksi. Setiap data yang datang ditangani lansung oleh server socket.







6 comments:

  1. Makasih ya mas,,, artikelnya sangat membantu :)

    ReplyDelete
    Replies
    1. Sama sama gann.. jangan sungkan-sungkan

      Delete
    2. gann... bagaimana cara mendapatkan socket web browser? beli atau rent dimana gan ?

      Delete
    3. Socket secara teknologi gratis gann, mungkin biaya hanya untuk biaya development dan license klo ada.

      Delete
  2. permisi gan, saya ada sedikit tulisan tentang protokol WebSocket yang saya terapkan ke dalam beberapa bahasa pemrograman berikut gan http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html ditunggu feedbacknya ya gan, semoga menambah wawasan bersama gan.. terima kasih..

    ReplyDelete