Selasa, 29 September 2015

Pemrograman Client Server Menggunakan Socket

Bagaimana Memrograman Client Server Menggunakan Socket
Pendahuluan

Keseluruhan proses dan cara kerja di mesin Anjungan Tunai Mandiri menggunakan pemrograman klien server. Kita nasabah bank lokal tercatat dan dapat dipantau pada BI(Bank Indonesia), kita melakukan transaksi kartu kredit juga tercatat pada BI, Kita berbelanja pada minimarket transaksi kita tercatat di pusat minimarket tersebut. Pada dasarnya kita mengakses aplikasi web seperti forum, chatting, semua tercatat dan terpantau oleh komputer server. Contoh tersebut adalah salah satu bentuk pemrograman aplikasi klien server.

Setiap transaksi yang berhubungan dengan komputer pasti tercatat. Bahkan posisi kita sekalipun mungkin sudah tercatat seperti aplikasi google map. Hidup kita sudah tidak sendirian, karena kita akan semakin terhubung dengan internet dan jaringan semakin tidak ada privasi. Mesin ATM yang kita gunakan untuk bertransaksi tercatat pada bank sehingga dapat terbaca oleh BI.

Siapapun kita, yang hidup di era teknologi saat ini berhubungan dengan aplikasi berbasis klien dan server. Seperti halnya, aplikasi web sosial seperti Facebook, forum, Whatsapp, Line menggunakan prinsip klien dan server.

Dengan kondisi tersebut, masih banyak yang tidak tahu tentang cara kerja aplikasi klien server. Oleh karena itu, kita akan membahas mengenai sistem dan cara kerjanya. Hal ini dapat bermanfaat karena kita jika menginginkan membangun aplikasi serupa maka kita dapat melakukannya dengan benar. Selain itu juga kita dapat mengetahui dan berhati-hati dalam menyebarkan informasi, baik pribadi maupun umum.

Pembahasan

Pada dasarnya aplikasi klien server itu seperti dua manusia yang saling bercakap-cakap. Dalam percakapan manusia, terdapat seorang yang memberikan informasi dan lainnya mendengerkan. Setelah itu terdapat proses membalas informasi dan lainnya mendengarkan balasan tersebut. Dari percakapan tersebut terdapat proses memberi, menerima, membalas, dan menerima balasan.

Aplikasi klien memberikan request kepada server, kemudian server mengenalinya dan memberikan balasan balik sesuai yang diminta klien. Untuk kemudian diterima oleh klien dan menampilkan hasil dari server. Seperti pada proses percakapan manusia, terlebih dahulu kedua belah pihak harus saling mengenal. Komputer klien dan server terlebih dahulu harus saling mengenal juga.

Salah satu proses pengenalan aplikasi klien dengan server adalah melalui identitas seperti port. Port komputer yang sedang dijalankan merupakan sambungan menggunakan jaringan. Sehingga, masing-masing mempunyai identitas unik. Identitas ini tersimpan pada kode IP(internet protocol). Hal ini merupakan konsep yang disediakan oleh TCP(transfer control protocol) dengan menyediakan fasilitas berupa koneksi dan komunikasi antar perangkat dengan jarak yang jauh.

Hubungan yang terjadi pada TCP melalui socket. Socket digunakan untuk menghubungkan klien dengan server. Hubungan ini seperti adanya kabel yang dihubungkan antara klien dengan server. Peran dari socket disini adalah menerapkan prinsip TCP yaitu menghubungkan dan mengkomunikasikan port dan IP aplikasi klien dengan aplikasi server. Oleh karena itu socket mengandung informasi port dan informasi IP masing-masing perangkat.

Melalui prinsip socket ini kita dapat membangun aplikasi berbasis klien server. Salah satu bahasa pemrograman yang mendukung pengenalan socket ini adalah java. Pemrograman java memiliki java class socket yang akan menangani komunikasi antar socket. Karena pada dasarnya socket bisa terdapat lebih dari satu dalam aplikasi klien server. Berikut salah satu contoh pemrograman klien server menggunakan bahasa pemrograman java.

DateServer.java
package edu.lmu.cs.networking;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

/**
* A TCP server that runs on port 9090. When a client connects, it
* sends the client the current date and time, then closes the
* connection with that client. Arguably just about the simplest
* server you can write.
*/
public class DateServer {

/**
* Runs the server.
*/
public static void main(String[] args) throws IOException {
ServerSocket listener = new ServerSocket(9090);
try {
while (true) {
Socket socket = listener.accept();
try {
PrintWriter out =
new PrintWriter(socket.getOutputStream(), true);
out.println(new Date().toString());
} finally {
socket.close();
}
}
}
finally {
listener.close();
}
}
}

Dari Sisi Klien, dengan class DateClient.

package edu.lmu.cs.networking;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;

import javax.swing.JOptionPane;

/**
* Trivial client for the date server.
*/
public class DateClient {

/**
* Runs the client as an application. First it displays a dialog
* box asking for the IP address or hostname of a host running
* the date server, then connects to it and displays the date that
* it serves.
*/
public static void main(String[] args) throws IOException {
String serverAddress = JOptionPane.showInputDialog(
"Enter IP Address of a machine that is\n" +
"running the date service on port 9090:");
Socket s = new Socket(serverAddress, 9090);
BufferedReader input =
new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = input.readLine();
JOptionPane.showMessageDialog(null, answer);
System.exit(0);
}
}

Selamat Mencoba

Daftar Pustaka





Tidak ada komentar:

Posting Komentar