[PROGJAR] ANALISA PROGRAM
Kali ini saya akan menganalisa beberapa program
yaitu getIP.java, getName.java, IptoName.java, NsLookup.java, dan program
client-server sederhana. Berikut adalah analisanya
1.
getName.java
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());}}
ANALISA
Program diatas adalah program untuk
mengetahui nama komputer yang sedang dipakai. Program ini berguna supaya kita
bisa jalankan program lain (program simpleClient.java dan program
NsLookup.java) yang berkolerasi dengan program ini. Program ini menggunakan
library .net yang digunakan java untuk program yang terhubung dengan jaringan. Inti
dari program ini terdapat pada kodingan host.getHostName() yang berfungsi untuk
mendapatkan hostname komputer yang sedang dipakai.
OUTPUT PROGRAM
2.
getIP.java
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();}}
ANALISA
Program diatas adalah program untuk
mengetahui alamat IP komputer yang sedang dipakai. Program ini berguna supaya
kita bisa jalankan program lain (program IPtoName.java) yang berkolerasi dengan
program ini. Program ini menggunakan library .net yang digunakan java untuk
program yang terhubung dengan jaringan. Inti dari program ini terdapat pada
kodingan byte ip[] = host.getAddress()
yang
berfungsi untuk mendapatkan alamat IP komputer yang sedang dipakai. Tipe data
byte dipakai karena memiliki rentang nilai 0 s/d 255 yang memang dipakai untuk
memberikan alamat IP komputer. Setelah itu terdapat blok for
Untuk mengeluarkan output dari hasil perintah host.getAddress
.
OUTPUT PROGRAM
3. IptoName.java
ANALISA
3. IptoName.java
import java.net.*;
public class IPtoName {
public
static void main(String args[]) {
if
(args.length == 0) {
System.out.println("Pemakaian:
java IPtoName ");
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());}}
ANALISA
Program diatas
adalah program untuk mengetahui nama komputer yang sedang dipakai menggunakan
alamat IP komputer yang diinput. Program ini menggunakan library .net yang
digunakan java untuk program yang terhubung dengan jaringan. Inti program diatas adalah System.out.println(address.getHostName()) untuk
mengeluarkan input hostname yang diperoleh dari proses kodingan address = InetAddress.getByName(host) yaitu kodingan proses pengambilan nama computer dengan
alamat IP yang kita masukkan sebelumnya dan disimpan di variable
host. Jika alamat yang
diinput salah, maka akan
menampilkan output error dengan tulisan “Invalid IP – Malformed IP” dan program
akan berhenti dan keluar.
import java.net.*;
public class NsLookup {
public
static void main(String args[]) {
if
(args.length == 0) {
System.out.println("Pemakaian:
java NsLookup ");
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();}}
ANALISA
Program diatas
adalah kebalikan dari program IptoName.java. Program ini untuk mengetahui alamat
IP komputer yang sedang dipakai menggunakan hostname komputer yang diinput. Sama
seperti sebelumnya, program ini juga menggunakan library .net yang digunakan
java untuk program yang terhubung dengan jaringan. Pada kodingan address =
InetAddress.getByName(host) adalah
kodingan proses pengambilan alamat IP komputer dengan hostname yang kita masukkan
sebelumnya dan disimpan di variable host. Jika alamat yang diinput salah, maka akan menampilkan output error
dengan tulisan “Unknown Host” dan program akan berhenti dan keluar. Lalu pada
baris byte[] ip = address.getAddress() adalah untuk mengambil alamat IP
komputer yang diperoleh dari proses sebelumnya. Untuk mengeluarkan output alamat
IP tersebut digunakan blok for sama seperti program getIP.java
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();}}}
ANALISA
Program diatas adalah program server
untuk menyediakan layanan kepada client. Apabila program ini berhasil dijalankan
akan mengeluarkan output "Aplikasi Server hidup ..." dan
menunggu permintaan dari client. Dengan menggunakan perintah accept, berarti
program ini menerima permintaan dari client. Apabila client telah mengirimkan
pesan berupa tulisan “salam” maka otomatis server akan mengirimkan pesan “salam
juga” ke client yang hanya ditampilkan pada tampilan client. Apabila bukan
tulisan “salam” maka server akan mengirimkan pesan “maaf, saya tidak mengerti”.
Program ini hanya dapat melakukan satu kali permintaan yang diterima setalah
itu program akan berhenti dan keluar.
OUTPUT PROGRAM
b.
simpleClient.java
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);}}}
ANALISA
Program diatas adalah program client
untuk meminta layanan kepada server. Saat dijalankan, program ini harus menyertakan
hostname server agar terhubung dengan server yang sesuai dengan begitu client
dapat mengirimkan permintaannya. Apabila program ini berhasil dijalankan akan
mengeluarkan input "Masukkan kata kunci: "dan apabila kita input sesuai dengan kata kunci
yang ada di program server maka server akan mengirimkan output “salam juga”. Apabila bukan tulisan “salam” maka server
akan mengirimkan pesan “maaf, saya tidak mengerti” di tampilan output client. Program
ini hanya dapat melakukan satu kali permintaan yang diterima setalah itu
program akan berhenti dan keluar.
0 komentar: