Membuat Sebuah Aplikasi Server-Client Sederhana dengan Java

Tugas Mata Kuliah Pemrograman Jaringan dan Piranti Bergerak sebelum mid adalah membuat sebuah aplikasi Server-client sederhana menggunakan java, dengan protokol UDP dan TCP. Yang akan menampilkan NAMA dan NIM dari pembuatnya ketika klien memintanya. Pada dasarnya, aplikasinya adalah server menunggu masukan dari klien kemudian membandingkannya dengan string NAMA atau NIM kemudian memberikan output yang sesuai, kemudian client menampilkan output yang dikirim dari server.

monggo dilanjut…

Salah satu cara untuk menerima dan mengirim data dari dan ke server atau client adalah dengan menggunakan fungsi PrintWriter dan Scanner. PrintWriter berfungsi untuk mengirimkan output stream, dan Scanner untuk menerima input stream dari dan ke server atau client.

Perbedaan antara TCP dan UDP dan aplikasinya menggunakan Java
1. Perbedaan Protokol TCP dan UDP
a. Protokol TCP
TCP( Transmission Control Protocol ) adalah salah satu jenis protokol transfer data. TCP mempunyai karakteristik sebagai protokol yang berorientasi koneksi (Connection oriented). Sebelum terjadi proses tranfer data, maka yang pertama dilakukan adalah kedua belah pihak melakukan caal request dan call accept. Protokol TCP menggunakan jalur data full duplex yang berarti antara kedua host terdapat dua buah jalur, jalur masuk dan jalur keluar sehingga data dapat dikirimkan secara simultan.
Sebuah circuit virtual disiapkan sebelum packet-packet dikirimkan. Pada masing-masing packet terdapat virual circuit identifier yang berisi alamat tujuan packet tersebut. Data yang dikirimkan dalam sebuah protokol TCP maka akan diurutkan dengan sebuah nomor urut dan akan mengharap packet positive acknowledgment. Apabila tidak ada packet positive acknowledgment, maka packet akan dikirim ulang. Oleh karena itu, protokol TCP reliable. Akan tetapi karena harus mengecek setiap packet yang dikirmkan, maka protokol TCP relatif lambat. Pada TCP, hanya bisa melakukan koneksi one-to-one dan tidak bisa melakukan koneksi one-to-many. Karena rute-rute packet sudah ditentukan sebelumnya, maka akan lebih sulit bagi jaringan untuk beradaptasi dengan kemacetan. Apabila sebuah simpul/node mengalami kerusakan/kegagalan, maka seluruh virtual circuit yang melewati simpul tersebut akan hilang.

b.Protokol UDP
UDP ( User Datagram Protocol) adalah jenis transfer data yang lain dari TCP. UDP mempunyai karateristik connectionless (tidak berbasis koneksi). Dengan kata lain, data yang dikirimkan dalam bentuk packet tidak harus melakukan call setup seperti pada TCP. Selain itu, data dalam protokol UDP akan dikirimkan sebagai datagram tanpa adanya nomor identifier. Sehingga sangat besar sekali kemungkinan data sampai tidak berurutan dan sangat mungkin hilang/rusak dalam perjalananan dari host asal ke host tujuan. Tergantung pada host penerima/tujuan, apakah akan meminta kembali pakcet yang rusak atau hilang.
Kelebihan UDP adalah pada saat digunakan pada lightweight protokol, misalnya saja DNS(Domain Name Service). Selain itu protokol UDP lebih fleksibel karena misalnya saja terjadi kemacetan pada salah satu bagian jaringan, maka datagram dapat dialihkan menghindari bagian yang mengalami kemacetan tersebut. Kemudian apabila sebuah simpul(node) mengalami kerusakan/kegagalan, maka pacekt packet berikutnya dapat menemukan jalan/rute pengganti yang melewati simpul tersebut.

2. Implementasi TCP dan UDP dalam Java
Karena UDP merupakan protokol yang connectionless ( tidak berbasis koneksi ) maka sever tidak perlu membuat objek Socket untuk setiap klien. Dengan DatagramPacket maka alamat tujuan sudah terdapat dalam packet, dan socket hanya diperlukan untuk mengetahui local port mana yang listen atau mengirimkan. Selain itu, pada protokol UDP dapat melakukan koneksi lebih dari satu remote host. Socket tidak didedikasikan sebagai sebuah single conection seperti TCP. Dan dengan sebuah DatagramSocket, maka dapat melakukan koneksi untuk menerima dan mengirimkan packet dari dan ke berbagai host.
Dari penjelasan diatas, maka dalam implementasi UDP dalam java tidak menggunakan ServerSocket dan Socket, akan tetapi menggunakan DatagramPacket dan DatagramSocket.

Dan berikut source code dari aplikasi client server TCP dan UDP.

source_code.rar

Apabila postingan ini berguna untuk anda, mohon isi comment. terimakasih.

Mohon koreksi bila ada kesalahan.

31 thoughts on “Membuat Sebuah Aplikasi Server-Client Sederhana dengan Java

  1. harry_kece

    gw blm coba menarik juga ajarin gw donk lebih detail lagi bwt tugas nih hehehehehe
    oia kalo bwt client server trus gw bwt aplikasi penjualan pake java sama mysql ribet gak

    thanks

    Reply
  2. d3ptzz Post author

    @harry_kece: saya biasanya menggunakan PHP untuk membuat aplikasi berbasis database. Tapi saya pikir tidak ada masalah kalau mau pakai Java. Asal sudah ada alur logikanya. Hehehe.. Sudah ada konektornya kan untuk ke database sqlnya?

    Reply
  3. Patthepunk

    mw tanya kan gw buat aplikasi client server voip…nah tu makalah dach gw buat connect database pake sql 2000,gmana ya bsa gak netbean???perlu gak seh Databasenya??voip yang gw buat offline kya yang ada di windows XP…gmana tuch??

    Reply
    1. d3ptzz Post author

      @Patthepunk: Maaf, saya belum pernah membuat aplikasi VoIP, mungkin database diperlukan untuk keperluan mencatat log saja..

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.