Anda di halaman 1dari 6

Jurnal FASILKOM Vol. 4 No.

2 Oktober 2006

PEMROGRAMAN SOCKET DENGAN JAVA DALAM


MENGEMBANGKAN SOFTWARE DENGAN
ARSITEKTUR CLIENT SERVER

Ahmad Nurul Fajar


Dosen FASILKOM - UIEU
nurul.fajar@lecturer.indonusa.ac.id

Abstrak
Pemrograman socket atau Socket Programming adalah salah satu
cara yang dapat digunakan untuk mengembangkan software dengan
arsitektur Client Server. Aplikasi yang dikembangkan menggunakan
teknik seperti ini banyak digunakan untuk dunia internet, security
dan para internet hacker khususnya. Pemahaman tentang protokol,
socket, port, OSI layer, API, dan pengalamatan sangat diperlukan
bila ingin melakukan teknik ini. Bahasa Java merupakan salah satu
bahasa yang sangat mendukung untuk membuat pemrograman socket

Kata Kunci: Pemrograman Socket, Java, Client Server

Pendahualuan three tiered. Komponen yang


Dalam mengembangkan berada di antara client dan server
perangkat lunak (software) dengan ini sering disebut dengan busi-
menggunakan arsitektur client server ness logic. Dengan adanya kom-
ada beberapa teknik yang bisa ponen business logic dapat
digunakan, pemilihan teknik tersebut mengurangi beban database ser-
disesuaikan dengan kebutuhan. ver karena terjadi sharing
Arsitektur Client server dapat pekerjaan dengan business logic
dikelompokkan menjadi : o Arsitektur many tiered
o Arsitektur two tiered  Pengembangan lebih lanjut dari
 Merupakan arsitektur client kedua arsitektur sebelumnya.
server dengan lingkungan tradi- Aplikasi didistribusikan ke lebih
sional yang biasanya hanya dari tiga platform yang biasanya
melibatkan client sebagai user dilakukan dengan membagi pro-
interface dan server sebagai ses bisnis.
pengolah database yang sering
disebut dengan database server Pemrograman Socket
o Arsitektur three tiered Socket adalah sebuah abs-
 Merupakan perluasan dari arsi- traksi perangkat lunak yang digu-
tektur two tiered dengan menam- nakan sebagai suatu terminal dari
bahkan komponen yang disebut suatu hubungan antara dua mesin
“middleware”, karena middle- atau proses yang saling berinter-
ware inilah yang memainkan koneksi. Pada masing-masing mesin
peranan penting dalam arsitektur tersebut harus terpasang socket. Bila

88
Jurnal FASILKOM Vol. 4 No.2 Oktober 2006

kita berbicara tentang client server sehingga antara client dan server bisa
identik dengan pemrograman jari- saling berhubungan.
ngan (network). Socket dibutuhkan

Clients
Server user
ports space

TCP/UDP Socket API TCP/UDP kernel


space

IP IP

Ethernet Adapter Ethernet Adapter

Sumber: www.javaworld.com
Gambar 1. hubungan server-client
Pembahasan pemrograman socket. Hal yang harus
Kita dapat menggunakan diperhatikan adalah API (Application
bahasa pemrograman Java, C++/C, Programming Interface) Karena API
Visual Basic.net dan bahasa pemro- merupakan interface yang akan digu-
graman lainnya untuk membangun nakan dalam jaringan
aplikasi dengan menggunakan

Sumber: www.javaworld.com
Gambar 2. Penciptaan socket

89
Jurnal FASILKOM Vol. 4 No.2 Oktober 2006

TCP Server
socket()
bind()

TCP Client listen()


socket() accept()
connection establishment
connect()
data request read()
write()

data reply write()


read()

close() end-of-file notification read()


close()
Sumber: www.javaworld.com
Gambar 3 Interaksi TCP Client-Server

Address, Port dan Socket c) Kotak surat yang ada dirumah


Ilustrasi dari ketiga kata di kita adalah “Port”
atas seperti berikut : d) Kantor pos adalah “network/
a) Misalkan kita adalah “aplikasi” jaringan”
b) Alamat rumah kita adalah e) “Socket” adalah kunci yang
“address” atau IP memberikan akses untuk menuju
Port yang tepat/benar
Socket Desriptor

Int fd /* used by accept() */

Int newfd /* used by Alice */

contoh : Pemrograman Socket dengan


int fd; /* socket descriptor */ TCP
if ((fd = socket(AF_INET, Ilustrasi pemrograman socket
SOCK_STREAM, 0)) < 0) } dengan TCP adalah
perror(“socket”); a) Client harus menghubungi server
exit(1);} b) Proses pada server harus berjalan
dahulu pertama kali

90
Jurnal FASILKOM Vol. 4 No.2 Oktober 2006

c) Server harus menciptakan atau proses lain, baru kemudian kita akan
membuat socket untuk menyam- mendapatkan input stream dan
bungkan request/panggilan client output stream untuk pertukaran
d) Client menghubungi server datanya. Terdapat dua buah class
dengan: yang tersedia pada Java untuk
o Membuat server client local mendukung koneksi dengan tipe
TCP connection-oriented yaitu :
o Memberikan alamat IP dan - java.net.serversocket, digunakan
nomor port dari proses server server untuk listen koneksi
e) Ketika client menciptakan - java.net.socket, digunakan client
socket : client TCP melakukan untuk menginisialisasi koneksi
koneksi ke server TCP
f) Ketika dihubungi oleh client : Setelah client membentuk suatu
Server TCP membuat socket baru koneksi socket dengan proses server,
untuk proses server sehingga bisa Server socket akan mengembalikan
berkomunikasi dengan client status server ke client melalui
Hal-hal yang harus diper- koneksi yang telah terbentuk sebe-
lukan/dibutuhkan untuk komunikasi lumnya. Java juga menyediakan
socket adalah : suatu class yang mendukung tipe
a) IP Address sumber koneksi connectionless, yaitu:
b) Port sumber “java.net.datagram.socket”.
c) IP Address tujuan Secara umum pada paket java.net
d) Port tujuan berisi clas class dan interface yang
menyediakan API (Application
Java Socket Program Interface) level terendah
Pada bahasa pemrograman (TCP dan UDP) dan level tinggi.
Java, socket dibutuhkan untuk mem-
buat suatu hubungan ke mesin atau Class Socket TCP

Proses Proses
Socket Socket

TCP dengan TCP dengan


buffer, buffer,
variablel variablel

Sumber: www.javaworld.com
Gambar 4. class socket TCP

Untuk class socket TCP: b) Socket yang baru dibuat dengan


a) Digunakan oleh client dan server menggunakan constructor socket
()
c) 4 konstruktor dan 2 protected

91
Jurnal FASILKOM Vol. 4 No.2 Oktober 2006

Untuk class ServerSocket TCP = new BufferedReader(new


a) Digunakan untuk server nputStreamReader(System.in))
b) Socket yang baru diciptakan b. Buat socket client untuk
dengan menggunakan connect ke server
constructor ServerSocket() Socket clientSocket = new
c) 3 constructor socket (“hostname”, 6789)
d) Gunakan fungsi accept() untuk c. Buat output stream ke socket
mendapatkan koneksi selanjutnya DataOutputStream out to
server=new
Contoh Pemrograman Socket DataOutputStream(clientSoc
dengan TCP ket.getOutputStream())
Contoh aplikasi client server: d. Buat Input stream ke socket
1) Client membaca kalimat dari bufferedReader
standard input (inform inFromServer=new Buffered
Userstream), mengirim ke server Reader(new InputStream
melalui socket Reader(clientSocket.getInput
(OutToServerstream) Stream()))
2) Server membaca kalimat dari e. Kirim kalimat ke server
socket $Sentence=inFromUser.readLi
3) Server mengkonversi kalimat ne()
menjadi huruf besar, lalu OutToServer.writeBytes(sente
mengirim kembali ke client nce+’ \n’
4) Client membaca, mencetak kali- f. Baca kalimat dari server
mat yang telah diubah dari socket modifiedSentence=
(InFromServerStream) inFromServer.readLine()
5) Untuk mengakhiri socket bila System.out.println(“Dari
telah selesai digunakan, socket server :” + modifiedSentence)
harus ditutup clientSocket.close()
a. Status = close (s) 4. Untuk class server
b. Status “ 0” jika sukses dan “- a. Buat socket Welcome
1” jika error ServerSocket Welcome =
Beberapa hal yang perlu diperhatikan new ServerSocket(6789))
untuk membuat aplikasi seperti di b. Buat inputstream ke socket
atas antara lain adalah: c. Buat outputstream ke socket
1. Meng-import library yang ada d. Baca kalimat dari socket
pada Java clientSentence=
Library java yang harus diimport inFromClient.readLine()
antara lain adalah : e. Tulis kalimat ke socket
Import java.io.* outToClient.writeBytes
Import java.net.*;
2. Kemudian kita membuat class Kesimpulan
untuk client dan class untuk Pemahaman protokol-proto-
server kol internet dan OSI layer akan
3. Untuk class client sangat membantu kita untuk me-
a. Buat input stream ngembangkan pemrograman socket,
bufferedReader inFromUser karena pemrograman jaringan tidak

92
Jurnal FASILKOM Vol. 4 No.2 Oktober 2006

hanya sebatas dua atau tiga komputer


saja akan tetapi juga jutaan bahkan
ratusan juta komputer yang terhu-
bung dan bisa saling berkomunikasi.
Mengingat banyaknya komputer
yang saling berkomunikasi sudah
tentu akan berdampak positif dan
negatif. Kebutuhan akan kemanan/
security internet sangat terasa
belakangan ini, dengan pemahaman
dan pengembangan pemrograman
socket lebih lanjut tentunya ini
merupakan peluang yang menjan-
jikan.

Daftar Pustaka
http://geeks.netindonesia.net/blogs/a
gus/default.aspx
http://www.osix.net/modules/article/i
ndex.php?id=25
http://peopleenterprise.com/files/9/c_
language/default.aspx
http://java.sun.com/docs/books/tutori
al/networking/sockets/index.h
tml
http://java.sun.com/developer/online
Training/Programming/Basic
Java2/socket.html
http://www.javaworld.com/javaworld
http://www.cafeaulait.org/slides/sd20
03west/sockets/
http://jan.netcomp.monash.edu.au/dis
tjava/socket/lecture.html
http://www.awprofessional.com/artic
les/article.asp?p=27633&seq
Num=5&rl=1

93

Anda mungkin juga menyukai