Mengenal Pemrograman Jaringan dengan Java Socket Wiranti Sri Utami
[email protected]
Abstrak Perkembangan dunia komputer saat ini sudah sangat cepat ditandai dengan perkembangan jaringan komputer dan perkembangan bahasa pemrograman. Dalam hal ini dibutuhkan suatu program yang dapat melakukan integrasi dengan sistem lain yang dapat berjalan diatas suatu teknologi jaringan cukup tinggi, sehingga mengharuskan kita untuk lebih banyak belajar apa yang terjadi didalam proses komunikasi jaringan dan bagaimana cara memprogramnya, yang dalam hal ini penulis mencoba untuk angkat menjadi sebuah artikel yang berjudul mengenal pemrograman jaringan dengan java socket. Dalam pemrograman jaringan, kita membutuhkan bahasa pemrograman java yang memanfaatkan teknologi komunikasi jaringan untuk dapat mengirimkan data dari sebuah proses ke proses lainnya melalui pipa yang menghubungkan keduanya. Java telah menyediakan paket java.net yang berisi kelas-kelas dan interface seperti socket, serversocket, dan datagramsocket. Dalam pemrograman jaringan, setelah membuat sebuah pipa data antara dua proses maka masing-masing proses akan memegang satu ujung, setiap ujung dari pipa data ini disebut socket. Aliran data antara kedua socket ini disebut data stream. Masing-masing socket menggenggam dua stream, yaitu output stream dan input stream.
Kata Kunci : pemrograman jaringan, java, socket
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Pendahuluan Tujuan dari penulisan artikel ini, agar para pembaca dapat mengenal pemrograman jaringan dengan java socket. Manfaat dari tulisan artikel ini yaitu pembaca dapat mengetahui bagaimana cara mengembangkan aplikasi client server sederhana dimana sebuah server berjalan dapat menghubungi sebuah client yang dapat mengirimkan sebuah pesan “hallo world!” dari server ke client. Penulis berharap dengan adanya artikel ini menjadi langkah awal terbentuknya generasi baru yang memiliki daya kreatifitas tinggi khususnya dalam bidang komputer dengan mengembangkan teknologi komunikasi jaringan dengan bahasa pemrograman java yang didalamnya terdapat socket. Pada bab pembahasan akan dibahas lebih lanjut mengenai pemrograman jaringan dengan java socket, serta dibahas langkah-langkah membuat sebuah aplikasi client server dengan java socket.
Pembahasan Pemrograman
jaringan
dengan
java
socket
dikembangkan
untuk
menyambungkan proses-proses komputasi yang dapat berjalan dalam mesin-mesin yang berbeda yang terhubung dalam suatu jaringan komputer. Berikut ini terdapat contoh pemrograman jaringan dengan java socket, diantaranya sebagai berikut :
Web browser mengakses web server melalui jaringan.
Aplikasi basis data, dimana didalamnya terdapat client dan server yang berada di mesin komputer yang terpisah, dan dapat berinteraksi didalam jaringan.
Aplikasi e-mail dimana terdapat mail client yang dapat berkomunikasi dengan mail server. Didalam pemrograman jaringan dengan java socket, terdapat sebuah proses yang
dapat mengirimkan data ke proses yang lain dengan menuliskannya ke output stream yang dimiliki sebuah socket. Sebuah proses dapat menerima data dengan membaca data yang diterima dari input stream yang dimiliki oleh sebuah socket. Dengan cara ini maka Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
dapat terjadi pertukaran data, dan dapat terjadi sebuah komunikasi dan interaksi antara dua proses yang berbeda meskipun diantara keduanya terpisah dalam jaringan. Didalam proses ini dapat terpisah akan tetapi terjaring, baik dalam intranet, extranet maupun internet, dan tidak membatasi apabila dalam satu proses berada antar benua seperti halnya proses yang terjadi berada di afrika tengah dan proses lainnya berada di tengah samudra pasifik. Kelas-kelas untuk mengembangkan pemrograman jaringan dengan java socket dikumpulkan dalam package java.net, yang memiliki dua kelas utama yaitu sebagai berikut :
java.net.serversocket, package ini digunakan untuk membangun sebuah server
java.net.socket, package ini digunakan untuk membangun pipa antara server dan client Untuk membuat pemrograman jaringan dengan java socket, kita harus
meyiapkan hal-hal berikut ini :
Kita perlu terlebih dahulu menginstall java development kit (jdk).
Setelah menginstall jdk masukkan list program aplikasi client server dengan java socket pada sebuah directory, yang dalam hal ini penulis memasukkan list program
aplikasi
client
server
pada
directory
“C:\Documents
and
Settings\RATIH SD\Java\jdk1.6.0_07\bin”.
Langkah-langkah membuat sebuah aplikasi client server dengan java socket Berikut ini terdapat langkah-langkah untuk membuat sebuah aplikasi client server yang dapat mengirimkan sebuah pesan “hallo world!” dari server ke client, yaitu sebagai berikut : 1. Langkah 1 : Membuat list program HalloWorldServer.java dengan text editor Buatlah list program
berikut ini dan simpanlah dengan nama file
HalloWorldServer.java pada directory yang sudah dibuat sebelumnya. import java.io.*; import java.net.*; Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
public class HalloWorldServer { private String namaServer; private ServerSocket serverSocket; public HalloWorldServer(String namaServer, int port) throws IOException { this.namaServer = namaServer; System.out.println("Menghidupkan server bernama :" + namaServer + " di port : " + port); serverSocket = new ServerSocket(port); } public void operateService() throws IOException { System.out.println(namaServer + " menanti connection ... "); Socket socket = serverSocket.accept(); String alamatClient = socket.getInetAddress().getHostAddress(); System.out.println(namaServer + " menangkap connection dari " + alamatClient); InputStream inputStream = socket.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); OutputStream outputStream = socket.getOutputStream(); PrintWriter printWriter = new PrintWriter(outputStream, true); String namaClient = bufferedReader.readLine(); System.out.println(namaServer + " membaca nama client : " + namaClient); System.out.println(namaServer + " mengirim pesan : "); String pesanDikirim = "Pesan dari " + namaServer + ", untuk " + namaClient + " di " + alamatClient + " : Hallo World !"; System.out.println(pesanDikirim); printWriter.println(pesanDikirim); bufferedReader.close(); printWriter.close(); socket.close(); System.out.println(namaServer + " menutup connection."); } } Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
2. Langkah 2 : Membuat list program HalloWorldServerApp.java dengan text
editor Buatlah list program
berikut ini dan simpanlah dengan nama file
HalloWorldServerApp.java pada directory yang sudah dibuat sebelumnya. public class HalloWorldServerApp { public static void main(String[] args) { if(args.length<2) { System.out.println("Cara penggunaan :java HalloWorldServerApp
<port>"); System.exit(0); }
try { String namaServer = args[0]; String portStr = args[1]; int port = Integer.parseInt(portStr); HalloWorldServer server = new HalloWorldServer(namaServer, port); server.operateService(); } catch(java.io.IOException ioe) { ioe.printStackTrace(); } } } Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
3. Langkah 3 : Membuat list program HalloWorldClient.java dengan text editor Buatlah list program
berikut ini dan simpanlah dengan nama file
HalloWorldClient.java pada directory yang sudah dibuat sebelumnya. import java.io.*; import java.net.*; public class HalloWorldClient { private String namaClient; private String alamatServer; private int port; public HalloWorldClient(String namaClient, String alamatServer, int port) { System.out.println("Membuat client dengan nama : " + namaClient); this.namaClient = namaClient; this.alamatServer = alamatServer; this.port = port; } public void connectToServer() throws IOException { System.out.println(namaClient + " menghubungi server di alamat " + alamatServer + " di " + port); Socket socket = new Socket(alamatServer, port); InputStream inputStream = socket.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); OutputStream outputStream = socket.getOutputStream(); PrintWriter printWriter = new PrintWriter(outputStream, true); System.out.println(namaClient + " mengirim data tentang nama ke server."); printWriter.println(namaClient); System.out.println(namaClient + " menangkap pesan dari server : "); String pesan = bufferedReader.readLine();
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
System.out.println(pesan); bufferedReader.close(); printWriter.close(); System.out.println(namaClient + " menutup connection."); socket.close(); } }
4. Langkah 4 : Membuat list program HalloWorldClientApp.java dengan text editor Buatlah list program
berikut ini dan simpanlah dengan nama file
HalloWorldClientApp.java pada directory yang sudah dibuat sebelumnya. public class HalloWorldClientApp { public static void main(String[] args) { if(args.length<3) { System.out.println("Cara penggunaan:java HalloWorldClientApp <nomorPortdariServer>"); System.exit(0); } try { String namaClient = args[0]; String alamatServer = args[1]; String portStr = args[2]; int port = Integer.parseInt(portStr); HalloWorldClient client = new HalloWorldClient (namaClient, alamatServer, port); client.connectToServer(); } catch(java.io.IOException ioe) { ioe.printStackTrace(); } } }
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
5. Langkah 5 : Persiapkan dua buah program command prompt Untuk menjalankan aplikasi client server, kita harus menyiapkan dua buah program command prompt dengan langkah-langkah berikut ini klik StartAll ProgramsAccessoriesCommand Prompt. Setelah itu, kita melakukan perubahan directory pada kedua program command prompt tersebut ke directory yang sudah kita buat sebelumnya. -
Menyiapkan program command prompt pertama untuk menjalankan aplikasi server dan mengubah file directory, seperti contoh gambar dibawah ini penulis memasukkan aplikasi server pada directory C:\Documents and Settings\RATIH SD\Java\jdk1.6.0_07\bin.
gambar : program command prompt pertama untuk menjalankan aplikasi server
-
Menyiapkan program command prompt pertama untuk menjalankan aplikasi client dan mengubah file directory, seperti contoh gambar dibawah ini penulis memasukkan aplikasi client pada directory C:\Documents and Settings\RATIH SD\Java\jdk1.6.0_07\bin.
gambar : program command prompt pertama untuk menjalankan aplikasi client Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
6. Langkah 6 : Meng-compile helloworldserverapp.java pada program command prompt pertama Melalui
program
command
prompt
kita
mulai
meng-compile
file
HelloWorldServerApp.java dengan menjalankan perintah javac, sebagai berikut : javac HelloWorldServerApp.java
Apabila kita menjalani aplikasi client server dengan mengikuti langkah-langkah dengan benar, maka kita akan menemukan file HelloWorldServerApp.class, dan HelloWorldServer.class didalam directory yang sama.
7. Langkah 7 : Meng-compile helloworldclientapp.java pada program command prompt kedua Melalui
program
command
prompt
kita
mulai
meng-compile
file
HelloWorldClientApp.java dengan menjalankan perintah javac, sebagai berikut : javac HelloWorldClientApp.java
Apabila kita menjalani aplikasi client server dengan mengikuti langkah-langkah dengan benar, maka kita akan menemukan file HelloWorldClientApp.class, dan HelloWorldClient.class didalam directory yang sama.
8. Langkah 8 : Menjalankan aplikasi helloworldserverapp pada program command prompt pertama Untuk menjalankan aplikasi helloworldserverapp pada program command prompt pertama kita harus memasukkan perintah java, sebagai berikut : java HelloWorldServerApp
Setelah itu akan muncul pesan “cara pengguna : java HalloWorldServerApp <port>”, kemudian kita jalankan aplikasi helloworldserverapp dengan perintah berikut ini : java HalloWorldServerApp HelloWorldServer 8080
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Tampilan yang muncul pada command prompt pertama :
gambar : tampilan aplikasi HalloWorldServerApp pada program command prompt pertama
9. Langkah 9 : Menjalankan aplikasi helloworldclientapp pada program command prompt kedua Untuk menjalankan aplikasi helloworldclientapp pada program command prompt pertama kita harus memasukkan perintah java, sebagai berikut : java HelloWorldClientApp
Setelah itu akan muncul pesan “cara pengguna : java HalloWorldClientApp <nomorPortdariServer>”, kemudian kita jalankan aplikasi helloworldclientapp dengan perintah berikut ini : java HalloWorldClientApp [email protected] localhost 8080
Tampilan yang muncul pada command prompt kedua :
gambar : tampilan aplikasi HalloWorldClientApp pada program command prompt kedua
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
10. Langkah 10 : Perkembangan komunikasi aplikasi client-server dengan java socket -
Pada saat HalloWorldServerApp mendapat connection, akan ditemukan catatan pada program command prompt pertama berikut ini : HalloWorldServer mengangkap connection dari 127.0.0.1 HalloWorldServer membaca nama client : [email protected] HalloWorldServer mengirim pesan : Pesan dari HalloWorldServer, untuk [email protected] di 127.0.0.1 : Hallo World !
-
Pada saat HalloWorldClientApp mendapat connection, akan ditemukan catatan pada program command prompt kedua berikut ini : [email protected] mengirim data tentang nama ke server. [email protected] menangkap pesan dari server : Pesan dari HalloWorldServer, untuk [email protected] di 127.0.0.1 : HalloWorld !
-
Setelah server mengirimkan pesan Hallo World ! ke client, keduanya menutup connection. Pada client menutup connection sebagai berikut : [email protected] menutup connection
-
Pada server menutup connection sebagi berikut : HalloWorldServer menutup connection
Penutup Demikianlah artikel ini dibuat dengan judul “mengenal pemrograman jaringan dengan java socket”, semoga artikel ini dapat bermanfaat bagi para pembaca dan penulis berharap dengan adanya artikel ini semoga para pembaca tidak hanya dapat mengenal
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
pemrograman jaringan dengan java socket, para pembaca pun semoga dapat mencoba membuat sebuah aplikasi client server dengan teknologi java socket yang dapat mengirimkan sebuah pesan seperti pesan “hallo world !” dari server ke client.
Referensi http://ikc.dinus.ac.id/berseri/eko-java/jaringan.php http://wahyuganteng72.blogspot.com/2011/02/jaringan-network-dalampemrograman.html http://sumarna.staff.gunadarma.ac.id/.../4.+TCP+Socket.pdf http://lecturer.ukdw.ac.id/anton/download/PEMROGRAMAN%20JARINGANModul6.pdf http://andipublisher.com/produk-1202004184-pemrograman-jaringan-dengan-javacd.html http://felix.staff.unisbank.ac.id/files/2011/03/BPP-Pemrograman-Jaringan.pdf http://firmanfujiansyah.wordpress.com/category/pemrograman-jaringan/
Biografi Wiranti Sri Utami. Lahir di Tangerang, pada bulan November. Telah menyelesaikan pendidikan dasar dan menengah di SD Negeri 2 Teluknaga dan SMP Negeri 1 Teluknaga. Menamatkan SMA di SMA Negeri 6 Tangerang pada tahun 2008. Menempuh pendidikan Profesional IT selama 2 tahun di CEP-CCIT FTUI (Continuing Education Program - Center for Computing Information Technology Faculty of Engineering - University of Indonesia), jurusan Software Engineering – Java Programming pada tahun 2008-2010. Saat ini wiranti bekerja di Lion Air Bandara Soekarno-Hatta sebagai Administrator dan melanjutkan kuliah S1 di STMIK Raharja mengambil jurusan Teknik Informatika, konsentrasi Software Engeenering. Informasi lebih lanjut dapat melalui email penulis : [email protected] Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org