“Pemrograman
Socket (Winsock) dengan VB 6”
Makalah
Disusun
untuk memenuhi mata kuliah Algoritma dan Bhs. Pemrograman (VB I)
Dosen
pengampu :
Tholib
Hariono, S.Kom.
Oleh
Kelompok 3 :
M.
Fikri Rofiudin
Program studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas KH. A. Wahab Hasbullah
Jombang
2015
Kata Pengantar
Puji syukur kami ucapakan syukur
kepada Tuhan YME yang telah melimpahkan rahamat dan karunianya pada kami
sehingga sehingga kami bisa dapat menyelesaikan makalah ini tepat pada
waktunya, makalah ini kami beri judul “Pemrograman
socket (winsock) dengan VB 6”.
Dalam kesempatan ini perkenankan
kami menyampaikan ucapan terima kasih kepada seluruh pihak yang membantu
terselesaikannya penulisan makalah ini
terutama pada Dosen
pengampu Mata Kuliah Algoritma dan Bhs. Pemrograman (VB I) yang
telah memberikan bimbingan kepada kami dan selanjutnya kepada seluruh
teman-teman yang tidak bisa kami sebut satu-persatu akhir kata kami menyadari
bahwa makalah ini masih jauh dari kesempurnaan, baik dari isi maupun teknik
penulisan oleh karna itu pada kesempatan ini kami mengharapkan para pembaca
memerikan sumbangan saran atau kritik yang membangun demi kesempunaan makalah
kami ini. Semoga usaha makalah kami yang singkat ini di Ridhai oleh Tuhan YME,
dan dapat menjadi sumbangan khususnya bagi dunia pendidikan.
Kelompok 3
Daftar Isi
i.
Kata Pengantar
..................................................................................................i
ii.
Daftar Isi
...........................................................................................................ii
BAB I PENDAHULUAN ...........................................................................................1
1. Latar Belakang
..................................................................................................1
2. Tujuan
...............................................................................................................1
BAB II PEMBAHASAN .............................................................................................2
A. Sejarah Socket....................................................................................................2
B. Jenis-jenis Socket...............................................................................................2
C. Socket, TCP dan UDP .......................................................................................3
D. Winsock..............................................................................................................5
E. Socket Programing.............................................................................................6
BAB III PENUTUP .....................................................................................................8
1. Kesimpulan
........................................................................................................8
2. Saran
..................................................................................................................8
DAFTAR PUSTAKA ..................................................................................................9
BAB I
PENDAHULUAN
1. Latar Belakang
Seiring dengan pesatnya perkembangan networking di
dunia ternyata juga sangat memberi dampak positif yang besar terhadap
industri-industri pembuat game seperti yang kita rasakan saat ini dimana banyak
game online yang bermunculan di internet diantarannya seperti xian,
ragnarok, warcraf dan masih banyak lagi. Bagi anda para pembuat, pengembang
game ataupun yang tertarik untuk membuat game, tentunya sangat menginginkan game
yang dihasilkan tidak hanya berjalan secara stand alone tetapi juga di dalam
jaringan (multi player).
Dalam hal ini, Java dapat menjawab dan memberi
solusi kepada para developer untuk membuat game baik di jaringan local
maupun global dengan menyertakan pemrograman socket
agar permasalahan-permasalahan diatas dapat teratasi. Socket adalah sebuah
Class yang disediakan oleh beberapa bahasa pemrograman. Dengan socket, sebuah aplikasi di suatu komputer
dapat membuka koneksi untuk menghubungi aplikasi lain di komputer lainnya. 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.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.
2. Tujuan
Memahami konsep jaringan menggunakan socket (Winsock).
BAB II
PEMBAHASAN
A. Sejarah Socket
Socket adalah mekanisme
komunikasi yang memungkinkan terjadinya pertukaran data antar program atau
proses baik dalam satu mesin maupun antar mesin. Gaya pemrograman socket
sendiri berawal dari sistem Unix BSD yang terkenal dengan kepeloporannya pada
bidang penanganan jaringan, sehingga sering disebut BSD Socket. Socket
pertama kali diperkenalkan di sistem Unix BSD versi 4.2 tahun 1983 sebagai
kelanjutan dari implementasi protokol TCP/IP yang muncul pertama kali pada
sistem Unix BSD 4.1 pada akhir 1981. Hampir setiap variant Unix dan Linux
mengadopsi BSD Socket. Pada lingkungan Unix, socket memberikan keleluasaan
pemrograman gaya Unix yang terkenal dengan ideologinya, Semua di
Unix/Linux adalah file. Komunikasi antar program dapat berlangsung lewat
penggunaan deskriptor file standar Unix dengan bantuan socket.
Keunggulan dari penggunaan socket
adalah anda dapat melakukan komunikasi antar proses/program melalui jaringan
berbasis yang TCP/IP tentunya, bahkan dengan program lain yang berjalan pada
platform non-unix seperti Microsoft Windows, sepanjang program tersebut berbicara
dalam protokol transfer yang sama. Fasilitas-fasilitas yang disediakan oleh
mesin unix seperti rlogin, ssh, ftp, dan lain-lain menggunakan socket sebagai
sarana komunikasi mereka. Socket dibentuk dan digunakan dengan cara yang
berbeda. Komunikasi socket terutama diciptakan untuk tujuan menjembatani
komunikasi antara dua buah program yang dijalankan pada mesin yang berbeda.
Jangan khawatir, ini tentu saja berarti dua program pada mesin yang sama dapat
juga saling berkomunikasi. Kelebihan lain dari komunikasi socket adalah mampu
menangani banyak klien sekaligus (multiple clients).
B.
Jenis Socket
Ada dua golongan socket di Unix yang paling umum dipakai yaitu:
1. Socket Lokal atau AF_UNIX
Socket Lokal adalah socket yang
melakukan komunikasi dengan perantaraan sebuah file yang biasanya diletakkan
pada direktori /tmp atau /usr/tmp ataupun /var/tmp. Socket semacam ini
digunakan umumnya terbatas untuk komunikasi antar aplikasi dalam satu mesin.
2. Socket Networking atau AF_INET
Socket Networking ditujukan untuk
komunikasi antar aplikasi antar mesin dalam lingkungan jaringan TCP/IP.
Identifikasi socket dilakukan dengan sebuahservice identifier yaitu
berupa nomor port TCP/IP yang dapat di sambung oleh client.
Socket Networking memiliki beberapa jenis, yang paling umum digunakan
yaitu:
a. Socket Stream atau SOCK_STREAM
Socket Stream
adalah socket komunikasi full-duplex berbasis aliran (stream)
data. Pada model komunikasi Socket Stream, koneksi dua aplikasi harus dalam
kondisi tersambung dengan benar untuk dapat bertukar data. Ini dapat
dianalogikan seperti komunikasi telepon. Jika sambungan telepon di salah satu
titik putus, maka komunikasi tidak dapat terjadi. Koneksi model seperti ini
akan menjamin data dapat dipertukarkan dengan baik, namun memiliki kelemahan
dalam hal penggunaan jalur data yang relatif besar dan tidak boleh terputus.
b. Socket Datagram atau SOCK_DGRAM
Socket Datagram berkomunikasi
dengan cara yang berbeda. Socket ini tidak membutuhkan koneksi yang tersambung
dengan benar untuk mengirimkan dan menerima data. Model koneksi semacam ini
tidak dapat menjamin data dapat dipertukarkan dengan baik, namun memiliki
keunggulan dalam hal penggunaan jalur data yang minimal. Socket Datagram dapat
dianalogikan dengan komunikasi yang terjadi pada kelas, misalnya pada saat guru
melakukan broadcasting materi pelajaran untuk diterima oleh
setiap murid. Tidak ada yang dapat menjamin materi pelajaran dapat diterima
oleh semua murid dengan baik, kecuali diterapkan metoda rechecking.
Rechecking ini dapat dilakukan baik oleh guru maupun murid. Guru bertanya untuk
memastikan jawaban dari murid benar, atau murid bertanya untuk memastikan
kebenaran materi yang diterimanya. Socket Datagram pun menggunakan metoda ini
untuk menjamin pengiriman data dapat dilakukan dengan baik.
C.
Socket, TCP Dan UDP
a)
Mengenal Socket
Pengertian socket adalah
interface pada jaringan yang menjadi titik komunikasi antar mesin pada Internet
Protocol, dan tentunya tanpa komunikasi ini, tidak akan ada pertukaran data dan
informasi jaringan.
Socket terdiri dari elemen-elemen utama sebagai berikut:
1. Protokol.
2. Local IP.
3. Local Port.
4. Remote IP.
5. Remote Port.
Dalam komunikasi antara dua
pihak, tentunya harus digunakan kesepakatan aturan dan format yang sama agar
komunikasi dapat dimengerti. Seperti halnya dua orang yang menggunakan bahasa
yang sama, maka bahasa di sini berfungsi sebagai protokol. Protokol yang
digunakan dalam socket dapat menggunakan TCP ataupun UDP.
Contoh komunikasi sederhana
adalah komunikasi antara komputer A dan komputer B. Baik komputer A maupun
komputer B harus memiliki identitas unik, yang direpresentasikan oleh IP
masing-masing. Komunikasi yang terjadi melalui port, sehingga baik komputer A
maupun komputer B harus memiliki port yang dapat diakses satu sama lain.
b)
TCP dan UDP
Pemrograman socket adalah cara untuk menggunakan komponen/API (Application
Programming Interface) socket untuk membuat sebuah aplikasi.
Aplikasi socket umumnya terdiri dari dua kategori berdasarkan pengiriman
datanya, yaitu:
a. Datagram socket (menggunakan UDP).
b. Stream socket (menggunakan TCP).
Terdapat perlakuan yang berbeda antara UDP dan TCP, walaupun sama-sama
berfungsi sebagai protokol pertukaran data.
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.
Tidak demikian halnya dengan stream socket yang menggunakan TCP. Jenis ini
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.
D.
Winsock
Untuk pemrograman aplikasi socket
berbasis Windows, maka komponen API yang sering digunakan adalah Winsock
(Win-dows Socket API) yang mendukung interface standar TCP/IP, yang merupakan
protokol jaringan paling popular saat ini (contoh protokol jaringan yang lain
adalah NetBIOS, IPX dari Novell, AppleTalk dari Apple, dan sebagainya).
Pengertian TCP/IP (TCP over IP)
mungkin dapat menjadi sedikit rancu jika diartikan TCP/IP hanya mengizinkan
pengiriman TCP (dan tidak UDP), padahal seperti yang telah kita bahas,
pengiriman socket dapat melalui TCP maupun UDP.
Pengertian TCP/IP di sini
sebenarnya digunakan untuk menunjukkan teknologi jaringan/Internet, termasuk di
dalamnya adalah UDP. Jika Anda menggunakan UDP, dapat juga disebut sebagai
UDP/IP (UDP over IP), tetapi umumnya istilah ini jarang digunakan dan istilah
TCP/IP telah mencakup, baik TCP maupun UDP.
Pada bahasa pemrograman visual
seperti Visual Basic/Delphi, Anda dapat menggunakan control Winsock yang telah
disediakan untuk mengembangkan aplikasi socket.
Walaupun kita akan mencontohkan
aplikasi socket dalam environment Windows, Anda tidak perlu khawatir jika
aplikasi socket yang menggunakan Winsock tidak dapat berkomunikasi dengan
aplikasi socket berbasis Unix/Linux, karena komunikasi tetap dapat terjadi
selama aplikasi tersebut menggunakan protokol jaringan yang sama.
Bagi Anda yang terpaksa hanya menggunakan satu komputer, dapat memanfaatkan
alamat localhost atau 127.0.0.1 yang mengizinkan dua aplikasi berjalan pada
satu mesin komputer dan berkomunikasi satu sama lain.
E.
Socket Programing
Socket adalah sebuah cara untuk
berkomunikasi dengan program atau node lain menggunakan file deskriptor. Di
UNIX (dimana socket diciptakan) kita sering mendengar slogan: “everything is a
file”, jadi untuk berkomunikasi dengan program atau node lain semudah kita
membaca dan menulis file deskriptor. Antarmuka socket dan file adalah mirip,
jika pada file kita membukanya dengan open() sedangkan pada socket kita
manggunakan socket(). Pada file deskriptor yang menjadi tujuan adalah sebuah
file, sedangkan pada socket adalah komputer atau node lain. Intinya ketika kita telah terhubung dengan socket(), maka antarmukanya sama
saja dengan sebuah file. Sebuah abstraksi perangkat lunak yang digunakan
sebagai suatu “terminal” dari suatu hubungan antara dua mesin atau proses yang
saling berinterkoneksi
Penggunaan
socket programming memungkinkan adanya komunikasi antara client dan server.
Salah satu contoh sederhana penggunaan socket programming adalah pembuatan
program untuk chatting. Program tersebut sebenarnya merupakan bentuk aplikasi
berupa komunikasi antara client dan server. Ketika seorang user (client)
melakukan koneksi ke chat server, program akan membuka koneksi ke port yang
diberikan, sehingga server perlu membuka socket pada port tersebut dan
“mendengarkan” koneksi yang datang. Socket sendiri merupakan gabungan antara
host-adress dan port adress. Dalam hal ini socket digunakan untuk komunikasi
antara client dan server.
Socket merupakan fasilitas IPC (Inter Proses Communication) untuk aplikasi
jaringan. Agar suatu socket dapat berkomunikasi dengan socket lainnya, maka
socket butuh diberi suatu alamat unik sebagai identifikasi. Alamat socket
terdiri atas Alamat IP dan Nomer Port. Contoh alamat socket adalah 192.168.29.30: 3000, dimana nomer 3000 adalah nomer
portnya. Alamat IP dapat menggunakan
alamat Jaringan Lokal (LAN) maupun alamat internet. Jadi socket dapat digunakan untuk IPC pada LAN maupun Internet.
BAB III
PENUTUP
1.
Kesimpulan
Socket adalah mekanisme komunikasi yang memungkinkan terjadinya pertukaran
data antar program atau proses baik dalam satu mesin maupun antar mesin. Untuk pemrograman aplikasi socket berbasis Windows,
maka komponen API yang sering digunakan adalah Winsock (Win-dows Socket API)
yang mendukung interface standar TCP/IP, yang merupakan protokol jaringan
paling popular saat ini (contoh protokol jaringan yang lain adalah NetBIOS, IPX
dari Novell, AppleTalk dari Apple, dan sebagainya). ada dua jenis socket yang bisa
digunakan untuk membangun aplikasi, yakni TCP Socketdan 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.
Jadi Socket Programing adalah sebuah cara untuk berkomunikasi
dengan program atau node lain menggunakan file deskriptor. Dan Winsock merupakan standar API jaringan
pada semua varian dari sistem operasi Microsoft Windows. Sampai saat artikel
ini ditulis, Winsock mencapai versi 2.2 yang merupakan penyempurnaan dari versi
2.1.
2.
Saran
Apabila ada kekurangan dalam materi diatas sebaiknya anda search di Google
atau bertanya kepada dosen mata kuliah anda.
DAFTAR PUSTAKA
Mbah Google ^_^