Jumat, 11 Mei 2012

Pemrograman Internet Dengan Socket dan Indy




Pemrograman Internet Dengan Socket dan Indy



Pemrograman internet adalah proses mengimplementasikan algoritma dengan menggunakan pemrograman sehingga sebuah computer dapat saling vberkomunikasi dalam suatu jaringan melalui protokol, antarmuka basis data, pemrograman GUI atau struktur infiramsi.
Salah satu pemrograman yang penting dalam lingkup client-server ini adalah pemrograman socket. Dengan mempelajari teknik pemrograman socket, dapat diketahui bagaimana cara sebuah computer dapat mengirim pesan berupa teks, citra video, musik dan lainnya melalui internet.
Apa itu Socket?
Socket adalah salah satu titik akhir dari jalur komunikasi dua arah antara dua program yang berjalan pada jaringan dengan protocol TCP/IP atau UDP. Socket terhubung pada sebuah nomor port sehingga lapisan TCP dapat mengidentifikasi aplikasi di mana pengiriman data ditujukan. Socket merupakan sebuah aplikasi yang dibuat, dikontrol, antarmuka system operasi di mana aplikasi dapat saling mengirim dan menerima pesan dari atau pada aplikasi yang lain.
Definisi tentang socket sebagai berikut:
a.       Mengizinkan suatu proses unik untuk berkomunikasi satu dengan yang lain.
b.      Memberitahukan proses mana untuk menulis atau membaca.
c.       Komunikasi pada mesin yang sama, jaringan dan internet.
d.      Komunikasi dua arah membuatnya cocok untuk model client-server
e.       Dibentuk tahun 1980an oleh Berkeley Unix Distribution.
Ada dua macam protocol yamg dapat digunakan pada socket :
a.       TCP, bersifat connection –oriented dan reliable.
o   Connection-oriented, untuk melakukan komunikasi diperlukan koneksi terlebih dahulu.
o   Reliable, menjamin sampainya paket data ke computer tujuan dan melakukan pengecekan. Apabila data paket data yang hilang atau rusak maka socket TCP akan meminta paket data yang rusak sampai semua paket data yang diterima dalam kondisi yang baik.
b.      UDP, bersifat connectionilist, menjamin komunikasi.
Konsep lain yang berhubungan dengan soket, yaitu PORT. Port digunakan untuk memberikan alamat koneksi pada suatu komputer. Dengan kata lain, jika alamat IP digunakan untuk memberikan alamt pada komputer yang berbeda, port digunakan untuk memberikan alamat pada komputer yang sama.
Standar port:
80   à HTTP (Hypertext Transfer Protocol)
23   à Telnet
25   à SMTP (Simple Mail Transfer Protokol)
21   à FTP (File Transfer Protocol)
110 à POP3 (Post Office Protocol, versi 3)
69   à TFTP
161 à SNMP
Komunikasi socket jaringan memang tidak mengenal lelah, pertukaran data terjadi terus-menerus dan memegang peranan vital. Jika oleh karena suatu hal komunikasi berhenti karena maintenance, kerusakan, ataupun sebab lainnya, maka dapat dipastikan para penggunanya akan kecewa.
Maka dari itu, komunikasi jaringan selalu diusahakan tidak terhenti. Demikianlah tugas berat yang harus dilakukan socket jaringan. Sebelum membahas lebih jauh, apakah sebenarnya pengertian socket itu?
Pengertian socket adalah interface pada jaringan yang menjadi titik komunikasi antarmesin 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.

Tipe Socket
Untuk tipe socket ada 2 macam, Stream socket dan Datagram socket:
a.       Stream socket, adalah komunikasi continous stream dari karakter (menggunakan protocol TCP)
b.      Datagram socket, adalah pembacaan seluruh pesan dengan segera (menggunakan protocol UDP)
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.
Port
Salah satu elemen penting yang digunakan dalam aplikasi socket adalah port. Port merupakan sebuah koneksi data virtual yang digunakan aplikasi untuk bertukar data secara langsung.
Terdapat banyak port di dalam sebuah sistem komputer dengan fungsinya masing-masing. Sebagai contoh, dalam mengirim e-mail digunakan service SMTP yang umumnya menggunakan port 25. Sementara service POP3 untuk menerima e-mail menggunakan port 110, port 80 digunakan untuk HTTP, port 443 digunakan untuk HTTPS, dan seterusnya.


Nomor-nomor port dikategorikan dalam tiga jenis sebagai berikut:
  1. Well-known ports.
Merupakan port yang telah digunakan secara internal oleh sistem Windows, misalnya port untuk koneksi Internet, service FTP, dan seterusnya. Port yang telah digunakan ini adalah port 0 sampai dengan port 1023.
  1. Registered ports.
Port ini dapat digunakan dalam aplikasi Anda, range-nya adalah port 1024 hingga port 49151, cukup banyak port yang tersedia yang bebas Anda pilih sehingga Anda tidak perlu kuatir kekurangan port untuk aplikasi Anda.
  1. Dynamic/Private ports.
Dari port 49152 sampai dengan port 65535.
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 seterusnya).
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 kolunikasi tetap dapat terjadi selama aplikasi tersebut menggunakan protokol jaringan yang sama.
Kalau demikian, untuk mencoba aplikasi socket, apakah mutlak diperlukan setidaknya jaringan dengan minimal dua komputer yang saling terkoneksi? 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.
Indy ( Internet Direct )
Lalu apa indy itu ? indy adalah komponen open source yang terdiri dari protocol internet yang sudah begitu popular, seperti HTTP, FTP, SMTP, TCP, UDP, Gopher, Whois dan lain-lain, karena open source maka kita dapat mempelajari semua kode program yang ada untuk dikembangkan. kemudahan yang lain adalah indy mendukung protocol sampai 120 protokol, sebelumya protocol adalah aturan standar atau ketentuan dalam komunikasi jaringan, jadi dalam komunikasi jaringan sudah dibentuk aturan baku dalam proses data.
Untuk pemograman indy dapat menggunakan bahasa pemograman seperti Borland Delphi, Borland C++ builder, Visual Studio.net, C#, dan untuk platform (berbeda system operasi ) dapat digunakan pula di Linux, .Net Framework, dan Win32.

Tidak ada komentar:

Posting Komentar