Sabtu, 09 Maret 2013

Review Materi Modul 1 (+Soal)

- perbedaan antara web if monta rbtc
    ukuran bit data yang dikirim
    Respond Code :
    if 200            
    rbtc 302 200 404    
    monta 304 200        

- jumlah paket yg dikirimkan oleh web server ketika download (berapa)
    4

- perbedaan antara persisten dan non-persisten
    persisten : satu koneksi TCP bisa digunakan berkali-kali
    non-persisten : koneksi baru diikuti dengan koneksi TCP yg baru

- perbedaan autentifikasi http dengan metode basic dan digest
    basic : user pass tanpa enkripsi, jadi langsung
    digest : dienkripsi , jadi perlu diubah

- perintah ftp untuk melihat, upload, download
    melihat -> pwd
    upload -> send
    download -> get

- ftp copy, paste, remove apa aja
    copy -> send
    paste -> put
    remove -> delete

- ketika mencari ip dengan alamat if dan monta, apa yg ditemukan
    if dns nya di IF (local dns server)
    monta di bawahnya IF, kalau nyari ke atasnya (IF)
    rbtc sama dengan monta

- host -t MX its.ac.id -> untuk apa?
    mengecek apakah ada server email its

- perbedaan ketika mengirim email menggunakan mail client dan webmail
    mail client :
Email client adalan layanan email bisa akses dengan menggunakan aplikasi email client (outlook express, eudora, thunderbird, foxmail, dll). kelebihan yang paling utama adalah proses buka email yang lebih cepat karena tidak terganggu iklan.

    webmail :
web email atau webmail adalah layanan email yang bisa diakses menggunakan web browser internet explorer, firefox dan opera, google crome, safari, netcape dan lain-lain. Kelebihan webmail bisa dibuka komputer  yang berbeda secara langsung tanpa harus mensetting ulang layanan. Manfaat menggunakan web mail email yaitu email yang kita kirim akan dapat diakses dari mana saja. Berbeda jika kita menggunakan aplikasi lain seperti Outlook Express, Mozilla’s Thunderbird dimana email tersebut hanya dapat diakses dari komputer tertentu. dan Salah satunya kerugian kita mengakases email lewat webmail adalah harus terhubung dengan koneksi internet jika ingin mengecek atau membaca email di akun pengguna itu sendiri.

- perbedaan perintah ketika menerima email, menggunakan POP3 IMAP SMTP
    SMTP -> HALO, RCPT TO, MAIL FROM
    POP3 -> USER, LIST, STAT, RETR, DELE, TOP, RSET, QUIT
    IMAP -> LIST, STAT, CREATE, CHOOSE, FETCH, POP

Tutorial Socket Programming Java



Program Client Server Sederhana
Source Code Client
package klayen;

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

public class Klayen {

    public static void main(String[] args) throws UnknownHostException, IOException {
       
        try
        {
            Socket sock = new Socket("localhost",9999);
            PrintStream pr = new PrintStream(sock.getOutputStream());
           
            System.out.print("Enter something : ");
           
            InputStreamReader rd = new InputStreamReader(System.in);
            BufferedReader ed = new BufferedReader(rd);
            
            String temp = ed.readLine();
           
            pr.println(temp);
           
            BufferedReader gt = new BufferedReader(new InputStreamReader(sock.getInputStream()));
           
            String tm = gt.readLine();
            System.out.print(tm);
        }
        catch(Exception ex){}
    }
}

Source Code Server
package pelayan;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Pelayan {


    public static void main(String[] args)
    {
        try
        {
            ServerSocket ser = new ServerSocket(9999) ;
            Socket sock = ser.accept();
           
            BufferedReader ed = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            String tmp = ed.readLine();
            System.out.println("I Received : "+tmp);
           
            PrintStream pr = new PrintStream(sock.getOutputStream());
            String str = "Hello!";
            pr.println(str);
        }
        catch (Exception ex)
        {
            System.out.println("zonk kwe");
        }
    }
}

===========================================================

Program Client Server Lanjut

Source Code Client
package socketprogramming;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Client {
   
    private static void baca(InputStream is)
    {
        try
        {
            while(true)
            {
                int c = is.read();
                System.out.print((char)c);
               
                if((char)c == '\n')
                    break;
            }
        }
        catch(Exception ex){}
    }

    public static void main(String[] args)
    {
        try
        {
            Socket s = new Socket("10.151.36.149",23234);
            InputStream is = s.getInputStream();
            OutputStream os = s.getOutputStream();
           
            System.out.println("Berhasil...");
            baca(is);
               
            InputStreamReader rd = new InputStreamReader(System.in);
            BufferedReader ed = new BufferedReader(rd);
            String pesan = ed.readLine() + "\r\n";
            os.write(pesan.getBytes());
            os.flush();
               
            baca(is);

            os.close();
            is.close();
            s.close();           
        }
        catch (UnknownHostException ex)
        {
            System.out.println("503 Bad Gateway");
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch (IOException ex)
        {
            System.out.println("404");
            Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
 

Source Code Server
package socketprogramming;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Server {
   
    private static void baca(InputStream is){
        try{
            while(true){
                int c = is.read();
                System.out.print((char)c);
               
                if((char)c == '\n')
                    break;
            }
        }
        catch(Exception ex){}
    }
   
    private static String getRespons(InputStream is){
        String y = "";
        try
        {
            while(true)
            {
                int c = is.read();
                y = y + (char)c;
                if((char)c == '\n')
                    break;
            }
            return y;
        }
        catch(Exception ex){return y;}
    }
   
    public static void main(String[] args)
    {
        try
        {
            ServerSocket ss = new ServerSocket(11000);
            Socket xs = ss.accept();
           
            InputStream is = xs.getInputStream();
            OutputStream os = xs.getOutputStream();
           
            String respon = "Masukkan username : \r\n";
            os.write(respon.getBytes());
           
            String xy = getRespons(is);
            System.out.print(xy + "is connected\n");
            if(xy.equalsIgnoreCase("user\r\n") || xy.equalsIgnoreCase("admin\r\n"))
            {
                respon = "Server : Selamat datang " + xy;
                os.write(respon.getBytes());
            }
            else
            {
                respon = "User tidak diketahui....\n";
                os.write(respon.getBytes());
            }
               
            os.close();
            is.close();
            xs.close();
           
        }
        catch (IOException ex)
        {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }       
    }
}


==========================================================

Program Client Server Menghitung

Source Code Client
package socketintellegent;

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

public class SocketIntellegentClient {
    public static void main(String[] args)
    {
        try
        {
            Socket ss = new Socket("localhost",9999);
            PrintStream pr = new PrintStream(ss.getOutputStream());
            System.out.print("Masukkan ekspresi : ");
           
            InputStreamReader rd = new InputStreamReader(System.in);
            BufferedReader ed = new BufferedReader(rd);
            String temp = ed.readLine();
           
            pr.println(temp);
           
            BufferedReader gt = new BufferedReader(new InputStreamReader(ss.getInputStream()));
            String tm = gt.readLine();
            System.out.println(tm);
        }
        catch(Exception ex){}
    }
}


Source Code Server
package socketintellegent;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;


public class SocketIntellegentServer {
   
    private static int Hitung(String y)
    {
        int angka = 0;
        char t = 'a';
        String x = "";
        for(int i = 0; i < y.length(); i++)
        {
            if(y.charAt(i) != ' ')
            {
                if(y.charAt(i) > 47 && y.charAt(i) < 58)
                    x+=y.charAt(i);
                else
                {
                    t = y.charAt(i);
                    angka = Integer.parseInt(x);
                    x = "";
                }
            }
        }
        if(t == '+')
            angka+=(Integer.parseInt(x));
        else if(t == '-')
            angka-=(Integer.parseInt(x));
        else if(t == '*')
            angka*=(Integer.parseInt(x));
        else if(t == '/')
            angka/=(Integer.parseInt(x));
        else if(t == '%')
            angka%=(Integer.parseInt(x));
       
        return angka;
    }
   
    public static void main(String[] args)
    {
        try
        {
            ServerSocket ss = new ServerSocket(9999);
            Socket sock = ss.accept();
           
            BufferedReader ed = new BufferedReader(new InputStreamReader(sock.getInputStream()));
            String tmp = ed.readLine();
            tmp = Integer.toString(Hitung(tmp));
            PrintStream pr = new PrintStream(sock.getOutputStream());
            pr.println(tmp);
        }
        catch (Exception ex)
        {
            System.out.print("zonk\n");
        }       
    }
   
}


==========================================================

Tutorial Filezilla



FTP adalah singkatan dari File Transfer Protokol. Fungsi FTP secara umum adalah sebagai sarana untuk meng-Upload dan Men-Download data/file dari komputer clien (FTP Client) ke server internet (FTP Server). Kita bisa menggunakan Filezilla sebagai software FTP nya.
FTP client adalah komputer yang merequest koneksi ke FTP server untuk tujuan tukar menukar file (mengupload atau mendownload file). FTP server menjalankan software yang digunakan untuk tukar menukar file, yang selalu siap memberian layanan FTP apabila mendapat request dari FTP client.
FTP sebenarnya cara yang tidak aman untuk mentransfer file karena file tersebut ditransfer melalui clear text tanpa di enkripsi terlebih dahulu. Mode text yang dipakai untuk transfer data adalah format ASCII atau format Binary. Secara default, FTP menggunakan mode ASCII untuk transfer data.
Karena pengirimannya tanpa enkripsi, maka username, password, data yang ditransfer, maupun perintah yang dikirim dapat di sniffing oleh orang dengan menggunakan protocol analyzer (Sniffer).
Solusi yang digunakan adalah dengan menggunakan SFTP (SSH FTP) yaitu FTP yang berbasis pada SSH atau menggunakan FTPS (FTP over SSL) sehingga data yang dikirim terlebih dahulu dienkripsi (dikodekan).
Jika kita menggunakan FTP untuk masuk ke server hosting, maka kita diminta untuk memasukkan username dan password, kemudian diarahkan ke lokasi data kita di server internet tadi. Dari sini kita dapat melakukan operasi-operasi file kita seperti; Download, Upload, Copy, Paste, Move, Delete, Rename, Change Mode, Buat/hapus Folder dll.
Perintah yang dijalankan di FTP pada dasarnya sama dengan perintah-perintah yang dijalankan pada DOS. Contoh perintah yang dijalankan di FTP:
  • ! – menjalankan perintah tertentu pada komputer lokal
  • ? – Menampilkan deskripsi untuk perintah ftp
  • append – menambahkan sebuah file lokal ke sebuah file pada komputer remote
  • ascii – Menentukan jenis transfer file ASCII, default
  • bell – Menampilkan bel berbunyi setelah setiap perintah transfer file selesai (default = OFF)
  • binary – Mengatur tipe transfer file ke biner
  • bye – Mengakhiri sesi FTP
  • cd – Perubahan direktori kerja pada komputer remote
  • close – Mengakhiri sesi FTP dan kembali ke perintah awal
  • debug – debug (default = OFF)
  • delete – Menghapus file tunggal pada komputer remote
  • dir – Menampilkan daftar direktori file remote dan subdirektori
  • disconnect – Disconnects dari komputer remote, mempertahankan prompt ftp
  • get – Salin file tunggal remote ke komputer lokal
  • glob – Menampilkan nama file globbing (karakter wildcard) (default = ON)
  • hash – Menampilkan hash-tanda (#) pencetakan untuk setiap blok data ditransfer (default = OFF)
  • help – Menampilkan deskripsi untuk perintah ftp
  • lcd -  Perubahan direktori kerja di komputer lokal
  • literal – Mengirim argumen, verbatim, ke server FTP remote
  • ls – Menampilkan daftar singkat dari remote file direktori dan subdirektori
  • mdelete – Menghapus satu atau lebih file pada komputer remote
  • mdir – Menampilkan daftar direktori file remote dan subdirektori
  • mget – Salin satu atau lebih file remote ke komputer lokal
  • mkdir – Membuat direktori remote
  • mls - Menampilkan daftar singkat dari remote file direktori dan subdirektori
  • mput – Salinan satu atau lebih file lokal ke komputer remote
  • open – menghubungkan ke server FTP tertentu
  • prompt – Menampilkan prompt (default = ON)
  • put – Salinan file lokal tunggal ke komputer remote
  • pwd – Menampilkan direktori saat ini pada komputer remote (harfiah, “p rint w orking d irectory”)
  • quit – Mengakhiri sesi FTP dengan komputer remote dan ftp keluar (sama seperti “bye”)
  • quote – Mengirim argumen, verbatim, ke server FTP jauh (sama seperti “literal”)
  • recv – Salinan file remote ke komputer lokal
  • remotehelp – Menampilkan help untuk perintah remote
  • rename – Mengganti nama file remote
  • rmdir – Menghapus sebuah direktori remote
  • send – Salinan file lokal ke komputer remote (sama seperti “meletakkan”)
  • status – Menampilkan status saat ini dari koneksi FTP
  • trace – Menampilkan pelacakan paket (default = OFF)
  • type - Mengatur atau menampilkan jenis transfer file (default = ASCII)
  • user – Specifes pengguna ke komputer remote
verbose – matikan modus verbose (default = ON)