ada banyak rasa saat coding. ada keringat dan air mata dalam mencoding. keringat saat kau berusaha menyelami makna dalam setiap ilmu coding. dan air mata disaat tiada orang yang dapat membantumu, ketika program dalam keaadaan bugging. apapun rasa dalam mencoding. cobalah untuk mengerjakan sendiri. sampai kau bisa. dan benar-benar bisa.

Thursday 14 March 2013

Pemrograman Socket : Client -Server dengan java

Haloo sobat pembaca? masih cinta code ? hihi baiklah.. kali ini kita akan belajar bahasa baru yaitu Java. Oke, mungkin bagi sebagian besar Anda para programmer mungkin sudah mengenalnya lebih dulu. Namun, disini saya akan menshare apa yang telah saya dapatkan pada sesi praktikum Jaringan Komputer

Pada pembahasan ini, kita akan membuat sebuah program chatting. dimana chatting ini terjadi antara client dan server. Server akan memberikan pilihan menu pada client yaitu angka 1 dan 2. angka 1 menunjukkan pilihan percakapan chatting yang akan terjadi terus. dan pilihan 2 untuk menu mengakhiri percakapan. Program ini dapat dijalankan pada NetBeans

Berikut adalah code yang saya kerjakan pada sesi lab :3
a. Server

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package coba;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Ika Ayu Rahmania
 */
public class Server {

    /**
     * @param args the command line arguments
     */ 
    
    
    public static void main(String[] args) throws IOException {
       
        
        int port=1234;
        ServerSocket server = new ServerSocket(port);
        
        
        while(true){
            try {
                System.out.println("Tunggu pesan .....");
                Socket socket = server.accept();
                
                //System.out.println("Mulai :\n1. Lanjut\n2. Mutung dech \n");
                //System.out.println("1. Lanjut");
                //System.out.println("2. Mutung");     
                
                ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
                String sesuatu = (String) ois.readObject();
                
                
                ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
                
                
                if(sesuatu.equals("1"))
                {
                   oos.writeObject("Halo lagi apa nich\nMulai :\n1. Lanjut\n2. Mutung dech \n");
                   System.out.println("si Clien mengirimkan : ");
                   System.out.println(sesuatu);
                }
                else
                {
                    System.out.println(sesuatu);
                    System.out.println("si Clien mengirimkan : ");
                    oos.writeObject("Memutuskan hubungan kita :3 ");
                   
                    //break;
                }
                
//                ois.close();
//                oos.close();
//                socket.close();
                
                //System.out.println("Tunggu pesan dari client... ");
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            }
        }


b. Client
/* Client
 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package coba;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Ika Ayu Rahmania
 */
public class Client {

    /**
     * @param args the command line arguments1111
     */
    public static void main(String[] args) throws IOException, IOException, ClassNotFoundException {
        System.out.println("1. Lanjut\n2. Mutung dech \n");
        while(true)
        {
            try {
                // TODO code application logic here
            InetAddress host = InetAddress.getLocalHost();
            Socket socket = new Socket(host.getHostName(), 1234);



                ObjectOutputStream ngirim = new ObjectOutputStream(socket.getOutputStream());
                Scanner sc = new Scanner(System.in);
                String sesuatu =  sc.next();

                ngirim.writeObject(sesuatu);

                ObjectInputStream nerima = new ObjectInputStream(socket.getInputStream());
                String message = (String)nerima.readObject();

                System.out.println(message);
                nerima.close();
                ngirim.close();
                socket.close();
                if(message.equals("Memutuskan hubungan kita :3"))
                {
                    break;
                }



            }
             catch (ClassNotFoundException ex) {
                Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
            } catch (UnknownHostException ex) {
                Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}


dan berikut merupakan hasil screenshot apabila program tersebut dijalankan
 Hasil run diatas menunjukkan bahwa Client memilih angka 1 dan memutuskan untuk terus melakukan percakapan chatting
dan diatas adalah hasil ketika client memilih angka 2, yaitu memutuskan percakapan

tentang Wireshark dan tutorialnya


Wireshark adalah satu dari tool Network Analyzer yang digunakan untuk melihat dan menganalisa paket jaringan, pengembangan protokol jaringan serta edukasi bagi yang ingin memperdalam ilmu nya dalam jaringan komputer. Aplikasi ini juga dapat menangkap paket-paket data/informasi yang ada dalam jaringan yang kita ingin lihat. Semua jenis paket informasi dalam berbagai format protokol pun akan dengan mudah ditangkap dan dianalisa. Karenanya tak jarang tool ini juga dapat dipakai untuk sniffing (memperoleh informasi penting seperti password email atau account lain) dengan menangkap paket-paket yang berseliweran di dalam jaringan dan menganalisanya. Wireshark dapat membaca data secara langsung dari Ethernet, Token-Ring, FDDI, serial (PPP dan SLIP), 802.11 wireless LAN, dan koneksi ATM.


WireShark memiliki beberapa kegunaan, seperti :

  1. Untuk trobleshooting masalah-masalah jaringan
  2. untuk memeriksa keamanan jaringan
  3. untuk mendebug implementasi protokol jaringan
  4. untuk mempelajari protokol jaringan secara detail
  5. untuk sniffing  
Cara Wireshark bekerja
1. paket sniffer
Packet sniffer menangkap pesan/data/informasi yang sedang dikirim atau diterima oleh computer. Paket sniffer juga akan menyimpan atau menampilkan isi protocol yang berbeda  pada bagian Capture Message. Packet sniffer bersifat pasif. Packet sniffer mengamati pesan yang sedang dikirim dan diterima oleh aplikasi dan protocol yang berjalan di computer,tapi dia sendiri tidak mengirimkan paket apapun.
2. paket capture
Packet Capture library menerima salinan dari setiap frame link-layer yang dikirim atau diterima oleh computer. Pesan ditukar oleh layer protocol yang lebih tinggi seperti HTTP,FTP,TCP,UDP,DNS,atau IP yang semuanya itu kemudian dienkapsulasi pada frame link-layer yang ditransmisikan oleh media fisik,misalnya kabel eternet.
3. paket analyzer
Packet analyzer harus mengerti struktur semua pesan yang ditukar oleh protocol. Contohnya misal kita ingin menampilkan berbagai macam fields pada pesan yang ditukarkan oleh protocol HTTP.

Berikut adalah cara menjalankan Wireshark :)
1. Buka terminal, ketikkan sudo wireshark
  maka akan muncul Wireshark seperti gambar diatas
2. Kemudian pada wireshark, pada menu Interface list, pilih wlan0 untuk menjalankan
3. nah berikut adalah tampilan wireshark

 4. berikut adalah cara untuk mencari IP kita melalui terminal. kemudian, kita ketikkan IP kita pada Filter Wireshark seperti ip.src == 192.168.0.103 untuk mengetahui aktivitas terjadinya paket-paket data pada komputer kita. caranya buka terminal dan ketikkan ifconfig


 5. setelah itu, anda dapat menggunakan wireshark sesuai dengan kebutuhan. dibawah ini akan saya beri contoh hasil praktikum kami yaitu  untuk mengetahui transfer paket-paket data melalui Wireshark saat membuka situs RBTC

Mengetahui Transfer paket-paket data melalui Wireshark
Berikut adalah contoh apabila kita sedang mengakes website RBTC. Pada sesi lab kemarin kita telah belajar bila mengakses its.ac.id , rbtc.if.its.ac.id  serta mengakses integra.
Kali ini kami mendokumentasikan salah satunya yaitu ketika mengakses RBTC



















gambar diatas adalah cuplikan ketikan kita membuka situs rbtc.if.its.ac.id. Oke, saya akan menjelaskan beberapa bagian dari Wireshark diatas :
a. Bagian yang berwarna hijau adalah daftar paket-paket yang berhasil ditangkap.
b. Kotak yang terdapat dibawah daftar paket adalah detail dari paket yang terpilih.
c. Bagian selanjutnya yang terletak di bawah detail paket adalah detail paket dalam format heksadesimal

d. Pada bagian daftar paket terdapat kolom-kolom sebagai berikut
    - Time : menampilkan waktu saat paket tersebut tertangkap
    - Source : menampilkan IP sumber dari paket data tersebut
    - Destination : menampilkan IP tujuan dari paket data tersebut
    - Protocol : menampilkan protocol apa yang dipakai oleh paket data
    - Info : menampilkan informasi mendetail tentang paket data tersebut

Mendeteksi server dan IP Adress suatu web

Halo, coding.. sudah lama saya tidak menulis cerita-cerita haru untukmu
Oke. Kali ini kita belajar agak serius. Saya akan membahas tentang materi yang saya dapatkan pada praktikum jaringan komputer. yaitu mendeteksi server dan IP adress pada suatu web. Web yang akan kita akses adalah web kampus tercinta, its.ac.id.
:)

pertama pada terminal kita ketikkan host -t MX its.ac.id maka akan tampil server-server dari web its.ac.id seperti gambar dibawah ini 












Kemudian setelah kita mengetahui servernya, kita akan mencari IP address salah satu dari server tersebut. Misalnya vmail.its.ac.id. Maka ketikkan pada terminal traceroute vmail.its.ac.id . Karena pada saat sesi lab, laptop belum terinstal paket traceroute, maka ada baiknya kita menginstal paket tersebut terlebih dahulu. Dengan mengikuti petunjuk terminal yang ada. Kemudian setelah instalasi berhasil, lakukan perintah tadi di atas, yaitu traceroute vmail.its.ac.id
















Lalu akan muncul hasil traceroutr to vmail.its.ac.id (202.46.129.11). ini merupakan IP Address dari alamat vmail.its.ac.id. Kemudian dibawahnya juga akan tampil list beberapa yang mengandung sejumlah IP. Maksudnya, disini kita telah melewati beberapa router, urut dari nomer 1 sampai no 6. Kita telah melewati IP 192.168.1.1  kemudian menuju 10.151.62.1  begitu seterusnya sampai tepat menuju sasaran request kita yaitu IP dari mail vmail.its.ac.id yaitu 202.46.129.11 sehingga informasi dari IP yang kita dapatkan adalah sama dengan list terakhir IP yang kita dapatkan















dan dapat kita simpulkan dari 6 poin poin yang muncul pada terminal kita diatas adalah jalannya komputer kita, (melalui IP adresskita) menuju IP adress tujuan kita (yaitu web its.ac.id). jadi, pertama kita melewati router 10.151.62.1 kemudian dan seterusnya sampai bertemu pada server its di IP 202.46.129.11