Pemrograman Jaringan - Analisis Program


Sumber: http://bisakali.net

Pada postingan ini akan membahas mengenai program jaringan sederhana menggunakan java beserta penjelasannya.


TUGAS 1


getIP.java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import java.net.*;
public class getIP {
 public static void main(String args[]) throws Exception {
  InetAddress host = null;
  host = InetAddress.getLocalHost();
  byte ip[] = host.getAddress();
  for (int i=0; i<ip.length; i++) {
   if (i > 0) {
    System.out.print(".");
   }
   System.out.print(ip[i] & 0xff);
  }
  System.out.println();
 }
}

Listing program di atas berfungsi untuk mencetak IP address dari PC yang sedang digunakan. Pada program tersebut menggunakan library java.net.* dan memiliki class yang bernama getIP. Setelah itu dibuat sebuah object bernama host dari class InetAddress. Dari object tersebut akan digunakan fungsi getLocalHost untuk mendapatkan alamat localhost. Selanjutnya dideklarasikan array ip dengan tipe data byte untuk menyimpan ip address yang didapatkan dengan menggunakan fungsi getAddress. Setelah itu akan masuk ke dalam perulangan untuk mencetak isi dari array tersebut.

Adapun output dari program tersebut adalah sebagai berikut:



TUGAS 2


getName.java

1
2
3
4
5
6
7
8
9
import java.net.*;
public class getName {
 public static void main(String args[]) throws Exception {
  InetAddress host = null;
  host = InetAddress.getLocalHost();
  System.out.println("Nama komputer Anda: " +
  host.getHostName());
 }
}

Listing program di atas berfungsi untuk mencetak host name dari PC yang sedang digunakan. Pada program tersebut menggunakan library java.net.* dan memiliki class yang bernama getName. Setelah itu dibuat sebuah object bernama host dari class InetAddress. Dari object tersebut akan digunakan fungsi getLocalHost untuk mendapatkan alamat localhost. Selanjutnya akan dicetak host name PC dengan menggunakan fungsi getHostName.

Adapun output dari program tersebut adalah sebagai berikut:



TUGAS 3

IPtoName.java


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import java.net.*;
public class IPtoName {
 public static void main(String args[]) {
  if (args.length == 0) {
   System.out.println("Pemakaian: java IPtoName <IP address>");
   System.exit(0);
  }
  String host = args[0];
  InetAddress address = null;
  try {
   address = InetAddress.getByName(host);
  } catch (UnknownHostException e) {
   System.out.println("invalid IP - malformed IP");
   System.exit(0);
  }
  System.out.println(address.getHostName());
 }
}

Listing program di atas berfungsi untuk mencetak Nama PC ketika IP address nya telah diketahui. Pada program tersebut menggunakan library java.net.* dan memiliki class yang bernama IPtoName. Pada program ini terdapat percabangan if untuk mengecek panjang array args, apabila nilainya 0 maka program akan mencetak "Pemakaian : java IPtoName ".

Setelah itu program akan keluar dari percabangan tersebut dan mendeklarasikan kembali nilai variabel host yaitu array args 0 dan untuk object address yang meng-instance class InetAddress bernilai null. Selanjutnya terdapat try dan catch, yang berfungsi untuk menangani kesalahan/error. Apabila terdapat kesalahan maka program akan mencetak "Invalid IP - malformed IP" dan program akan keluar. Namun jika tidak ada kesalahan maka program akan mencetak host name PC tersebut.

Adapun output dari program tersebut adalah sebagai berikut:



TUGAS 4

NsLookup.java
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.net.*;
public class NsLookup {
 public static void main(String args[]) {
  if (args.length == 0) {
   System.out.println("Pemakaian: java NsLookup <hostname>");
   System.exit(0);
  }
  String host = args[0];
  InetAddress address = null;
  try {
   address = InetAddress.getByName(host);
  } catch(UnknownHostException e) {
   System.out.println("Unknown host");
   System.exit(0);
  }
  byte[] ip = address.getAddress();
  for (int i=0; i<ip.length; i++) {
   if (i > 0) System.out.print(".");
   System.out.print((ip[i]) & 0xff);
  }
  System.out.println();
 }
}

Listing program di atas berfungsi untuk mencetak IP address PC ketika host name nya telah diketahui. Pada program tersebut menggunakan library java.net.* dan memiliki class yang bernama NsLookup. Pada program ini terdapat percabangan if untuk mengecek panjang array args, apabila nilainya 0 maka program akan mencetak "Pemakaian: java NsLookup ".

Setelah itu program akan keluar dari percabangan tersebut dan mendeklarasikan kembali nilai variabel host yaitu array args 0 dan untuk object address yang meng-instance class InetAddress bernilai null. Selanjutnya terdapat try dan catch, yang berfungsi untuk menangani kesalahan/error. Apabila terdapat kesalahan maka program akan mencetak "Unknown host" dan program akan keluar. Namun jika tidak ada kesalahan maka program akan mencetak IP address PC tersebut dengan menggunakan perulangan, seperti pada program getIP.java.

Adapun output dari program tersebut adalah sebagai berikut:



TUGAS 5


simpleServer.java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.io.*;
import java.net.*;
public class simpleServer {
 public final static int TESTPORT = 5000;
 public static void main(String args[]) {
  ServerSocket checkServer = null;
  String line;
  BufferedReader is = null;
  DataOutputStream os = null;
  Socket clientSocket = null;
  try {
   checkServer = new ServerSocket(TESTPORT);
   System.out.println("Aplikasi Server hidup ...");
  } catch (IOException e) {
   System.out.println(e);
  }
  try {
   clientSocket = checkServer.accept();
   is = new BufferedReader(newInputStreamReader(clientSocket.getInputStream()));
   os = new DataOutputStream(clientSocket.getOutputStream());
  } catch (Exception ei) {
   ei.printStackTrace();
  }
  try {
   line = is.readLine();
   System.out.println("Terima : " + line);
   if (line.compareTo("salam") == 0) {
    os.writeBytes("salam juga");
   } else {
   os.writeBytes("Maaf, saya tidak mengerti");
   }
  } catch (IOException e) {
   System.out.println(e);
  }
  try {
   os.close();
   is.close();
   clientSocket.close();
  } catch (IOException ic) {
   ic.printStackTrace();
  }
 }
}

simpleClient.java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.io.*;
import java.net.*;
public class simpleClient {
 public final static int REMOTE_PORT = 5000;
 public static void main(String args[]) throws Exception {
  Socket cl = null;
  BufferedReader is = null;
  DataOutputStream os = null;
  BufferedReader stdin = new BufferedReader(new
  InputStreamReader(System.in));
  String userInput = null;
  String output = null;
  // Membuka koneksi ke server pada port REMOTE_PORT
  try {
   cl = new Socket(args[0], REMOTE_PORT);
   is = new BufferedReader(new
   InputStreamReader(cl.getInputStream()));
   os = new DataOutputStream(cl.getOutputStream());
  } catch(UnknownHostException e1) {
   System.out.println("Unknown Host: " + e1);
  } catch (IOException e2) {
   System.out.println("Erorr io: " + e2);
  }
  // Menulis ke server
  try {
   System.out.print("Masukkan kata kunci: ");
   userInput = stdin.readLine();
   os.writeBytes(userInput + "\n");
  } catch (IOException ex) {
   System.out.println("Error writing to server..." + ex);
  }
  // Menerima tanggapan dari server
  try {
   output = is.readLine();
   System.out.println("Dari server: " + output);
  } catch (IOException e) {
   e.printStackTrace();
  }
  // close input stream, output stream dan koneksi
  try {
   is.close();
   os.close();
   cl.close();
  } catch (IOException x) {
   System.out.println("Error writing...." + x);
  }
 }
}

Listing di atas merupakan dua buah program yang saling berhubungan, yaitu simpleServer.java dan simpleClient.java. Untuk menjalankan kedua program ini yaitu dapat dengan menghubungkan 2 PC yang berbeda ataupun dalam 1 PC yang sama namun menggunakan 2 buah konsol. Pada kedua program ini menggunakan library java.io dan java.net. Program yang pertama harus dijalankan yaitu program server, ketika dijalankan maka program server akan terhubung ke socket 5000 yang disimpan pada variabel TESTPORT kemudian mencetak "Aplikasi server hidup". Setelah itu terdapat percabangan untuk menerima input dari client. Program server akan mencetak "Terima : " pada konsol server, lalu apabila server menerima input "salam" dari client, maka server akan mengirimkan "salam juga" kepada client. Namun jika yang di input client bukan "salam juga", maka server akan mengirimkan "Maaf, saya tidak mengerti".

Kemudian pada program client juga akan melakukan koneksi ke socket 5000 yang disimpan pada variabel REMOTE_PORT sehingga dapat terhubung dengan server. Pada program ini akan mencetak "Masukkan kata kunci: " yang kemudian user diminta untuk melakukan input. Hasil input tersebut kemudian akan dikirimkan ke server dan dilakukan pengecekan dengan kondisi yang ada pada server. Kemudian dari hasil kondisi server tersebut akan dikirimkan lagi ke client dan di cetak "Dari server: " beserta "salam juga" atau "Maaf, saya tidak mengerti", tergantung hasil dari apa yang diinput oleh user tadi.

Adapun output dari kedua program tersebut adalah sebagai berikut: 



Unknown

Hi there! You just read Pemrograman Jaringan - Analisis Program. Thank you for stopping by, hope you enjoy & find this article useful+helpful. Cheers! ☺♥

No comments:

Post a Comment

Ada komentar? Silakan tulis dengan sopan ya.. Terimakasih ☺

Powered by Blogger.