Senin, 14 Mei 2018

TUGAS PEMOGRAMAN JARINGAN

 getIP
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();
}
}

Logika Program
 Statement diatas digunakan untuk melihat alamat IP pada komputer. Pertama-tama, program akan mengimport seluruh isi library java.net. Lalu program akan mendeklarasikan variable host. Setelah itu program akan memberikan nilai kepada variable host dengan memanfaatkan fungsi getLocalHost yang akan mengambil nama host dari komputer. Setelah itu program mengambil nama host berikutnya program akan menjalankan fungsi getAddress untuk mengambil alamat IP berdasarkan host yang sebelumnya sudah tersedia dan disimpan kedalam variable ip. Untuk menampilkan alamat IP yang sudah diambil sebelumnya digunakan pengulangan for dimana didalamnya tedapat percabangan if yang jika nilai i > 0 maka akan mencetak “.” selanjutnya program akan mencetak 1 element dari variabel ip berdasarkan indeks yang diberikan sekaligus menjadikan value dari elemen tersebut menjadi unsigned value sehingga dapat dibaca secara benar.

Output Program
 

getName 

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());
}
} 
Logika Program 
Statement diatas digunakan untuk menampilkan nama host yang dimiliki oleh sebuah komputer. Pertama-tama program akan mengimport library java.net. Lalu program akan mendeklarasikan variable host. kemudian program akan memberikan nilai kepada variable host dengan cara menggunakan fungsi getLocalHost yang akan mengambil nama host dari komputer tersebut. Setelah itu, program akan mencetak “Nama komputer anda” yang diikuti dengan nama host yang diambil menggunakan fungsi getHostName.
Output Program
 
IPtoName
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());
}
}
Logika Program
 Statement diatas digunakan untuk mengganti alamat IP pada komputer menjadi nama host komputer. Program diawali dengan mengimport library java.net. Lalu program akan membuat sebuah class yang berisi perintah untuk memasukkan alamat ip komputer yang kemudian di simpan ke dalam variable host. Kemudian program akan mencoba untuk merubah ip yang tersimpan dalam variable host menjadi nama host dengan perintah InetAddress.getByName(host), apabila IP yang dimasukkan salah maka program akan tertutup, jika IP yang dimasukkan benar, maka program akan mencetak nama host yang di dapatkan dengan perintah System.out.println(address.getHostName()).
Output Program
 
NsLookup
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();
}
}
 

Logika Program 
Statement ini berfungsi untuk melihat IP address dari nama host berdasarkan argumen dari user. Pada baris awal program akan mengimport library java.net. Lalu program memiliki kondisi pertama jika user tidak memberikan argumen apapun maka akan mencetak “Pemakaian: java NsLookup <hostname>” lalu sistem akan keluar. Jika terdapat argument maka akan disimpan kedalam variable host bertipe data string berdasarkan argument dari user saat menjalankan program. dan juga program akan mendeklarasiakn variabel address, dimana variabel address akan digunakan untuk memperoleh nama host. Setelah itu program akan mencoba mencari IP dari string host yang sebelumnya sudah diperoleh, jika gagal maka akan mengeluarkan tulisan “Unknown host” dan sistem akan keluar. Apabila sukses maka alamat ip akan disimpan kedalam variable ip array yang bertipe data array. Untuk menampilkan alamat IP yang sudah diambil sebelumnya digunakan pengulangan for yang mana didalamnya tedapat percabangan if yang jika nilai i>0 maka akan mencetak “.” selanjutnya program akan mencetak 1 element dari variabel ip berdasarkan indeks yang diberikan sekaligun menjadikan value dari elemen tersebut menjadi unsigned value sehingga dapat dibaca secara benar.
Output Program
 
Client – Server TCP
simpleServer
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(new
InputStreamReader(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();
}
}
}
Logika Program
Pertama-tama program akan mengimport seluruh isi dari library java.io dan java.net. lalu program akan membuat variable baru yaitu testport yang memiliki tipe data integer untuk menampung alamat port yang nantinya akan digunakan, selain itu program juga mendeklarasikan variable checkServer, line, is, os, dan clientsocket. Setelah itu program akan mencoba port yang ada dengan menjalakan objek ServerSocket dengan argument Testport, jika sukses program akan mencetak “Aplikasi Server Hidup …” dan jika terjadi kesalahan maka program akan menjalankan IOException. Setelah itu program akan menerima data yang dikirim oleh client dengan fungsi accept() dan program akan membalas pesan yang diberikan oleh client berdasarkan  nilai yang diberikan, jika pesan yang diberikan merupakan “salam” maka program akan menjawab “salam juga”, selain itu program akan menjawab “Maaf, saya  tidak mengerti”.

 
simpleClient

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);
}
}
}
Logika Program
Pertama-tama program akan mengimport seluruh isi dari library java.io dan java.net. . lalu program akan membuat variable baru yaitu testport yang memiliki tipe data integer untuk menampung alamat port yang nantinya akan digunakan, selain itu program juga mendeklarasikan variable checkServer, line, is, os, dan clientsocket. Setelah itu program akan melakukan pengecekan IP yang diberikan dalam argument oleh user apakah sesuai dengan server yang sedang berjalan. Setelah itu program akan menunggu inputan dari user yang nantinya akan dikirimkan ke server. Setelah itu program akan menunggu balasan dari server dan akan menampilkan balasan tersebut pada sisi client.
Output Program
 
 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihdSQ7isPHbh_ftadaRxrH6DdtbtaiFP_LBCVzCupA_qCJQiUuooaDwtIeZZqDNeGOYG3PezjnR-xVZlZY7A_9eTh57HNzve-k3NLZndPYj4zcBjRjrFycUcz91eoz5kN6tdwktbRVv02p/s1600/outputclientserver.png