Welcome to my blog, hope you enjoy reading
RSS

Jumat, 10 Agustus 2018

FTP dan Web Server



Pada postingan kali ini kita akan membahas cara konfigurasi FTP dan web server. Disini kita menggunakan Virtualbox sebagai media untuk menjalankan sistem operasi, dan sistem operasi yang kita pakai yaitu linux dengan distro ubuntu untuk server dan clientnya.
·           Pertama jalankan VM Ubuntu Server yang sudah dibuat, serta login dengan user dan password yang telat dibuat. Lalu jalankan perintah seperti berikut :

·           Setelah itu akan masuk tampilan konfigurasi. Lalu cari pada bagian seperti gambar di bawah ini :
Dan hapus tanda pagar “#” (komentar) di depan kata write_enable agar mengaktifkan fungsi write_enabled, yang berarti akan membolehkan semua form FTP untuk menjalankan perintah.

·           Kemudian hapus tanda pagar (komentar) di depan masing masing download dan upload ascii, yang berarti akan memperbolehkan semua aktifitas download dan upload ascii.

·           Selanjutnya hapus komentar (#) dan ubah pesan pembuka ketika telah berhasil membuka koneksi dengan sever seperti gambar berikut :

·           Selanjutnya simpan file tersebut dengan menekan Ctrl + X à Y untuk mengkonfirmasi penyimpanan, dan restart service vsftpd dengan menggunakan perintah seperti berikut :

·           Setelah itu kita akan memeriksa status servicenya dengan perintah seperti berikut :
Terlihat pada tampilan di atas status servicenya adalah active (running).

·           Selanjutnya buat sebuah user baru dengan perintah adduser seperti contoh berikut :
Lalu isi informasi mengenai user yang akan kita tambahkan dan jika sudah maka tekan Y untuk melanjutkan.

·           Selanjutnya adalah cek status dari web server nginx, dengan perintah seperti berikut :
Terlihat statusnya adalah active (running).

·           Selanjutnya masuk ke directory tempat penyimpanan web server nginx secara default.

·           Lalu gunakan perintah ls untuk melihat isi directory. Maka akan tampil seperti berikut :

·           Kemudian buka index.nginx-debian.html dengan nano text editor dengan cara seperti berikut :

·           Setelah itu ubah isi dari file index.nginx-debian.html seperti gambar di bawah ini :
Selanjutnya simpan file tersebut dengan menekan Ctrl + X à Y untuk mengkonfirmasi penyimpanan.

·           Kemudian buka VM Ubuntu Client tanpa menutup VM Ubuntu server. Lalu buka terminal dan masukan perintah seperti berikut :

·           Perintah tersebut akan menampilkan respond dari server, seperti berikut :

·           Buka web browser pada client dan masukan alamat seperti berikut :
Maka akan tampil tampilan isi file index.nginx-debian.html yang sudah kita buat sebelumnya di Ubuntu server.

·           Setelah berhasil membuat komunikasi melalui protokol HTTP, selanjutnya akan membuat komunikasi dengan menggunakan protokol FTP, masukan perintah seperti berikut :

·           Lalu login dengan user yang telah di buat, maka akan muncul tampilan berikut :

·           Selanjutnya untuk menjelajahi isi server melalui protokol FTP dengan web browser, masukan halaman web berikut di address bar browser :

Maka akan muncul pop-up message untuk login terlebih dahulu, lalu akan muncul tampilan directory home dari user yang kita gunakan untuk login pada FTP.




Sabtu, 04 Agustus 2018

Cara Membuat Aplikasi Client-Server TCP Sederhana



LISTING PROGRAM
simpleServer.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();
    }
  }
}

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;
    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);
    }
    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);
    }
    try {
      output = is.readLine();
      System.out.println("Dari server: " + output);
    } catch (IOException e) {
      e.printStackTrace();
    }
    try {
      is.close();
      os.close();
      cl.close();
    } catch (IOException x) {
      System.out.println("Error writing...." + x);
    }
  }
}


LOGIKA PROGRAM
Pada program kali ini kita akan membuat aplikasi client-server TCP sederhana, dan disini kita akan menggunakan bahasa pemrogrograman java.
SERVER
import java.io.*;
import java.net.*;
Program ini akan memanggil semua fungsi yang terdapat pada library java.io dan java.net. Library java.io yaitu library untuk proses input dan output melalui data stream, sedangkan java.net yaitu library untuk implementasi jaringan.
public class simpleServer {
  public final static int TESTPORT = 5000;
Nama class pada program ini yaitu simpleServer, dan kita akan mendeklarasikan port 5000 yang akan digunakan sebagai jalur komunikasi.
  public static void main(String args[]) {
    ServerSocket checkServer = null;
    String line;
    BufferedReader is = null;
    DataOutputStream os = null;
    Socket clientSocket = null;
Kemudian kita akan mendeklarasikan variable yang akan dipakai di dalam program ini, yaitu : checkServer sebagai ServerSocket yang bernilai null (kosong), is sebagai BufferedReader yang bernilai null (kosong), os sebagai DataOutputStream yang bernilai null (kosong), clientSocket sebagai socket yang bernilai null (kosong), dan line dengan tipe data string.
    try {
      checkServer = new ServerSocket(TESTPORT);
      System.out.println("Aplikasi Server hidup ...");
    } catch (IOException e) {
      System.out.println(e);
    }
Pada blok try pertama, checkServer akan diberi nilai yaitu berupa nomor port. Selanjutnya server akan mencetak Aplikasi Server hidup ... pada layar monitor. Jika ada error yang terjadi pada saat server dijalankan, maka error tersebut akan ditangani oleh catch.
    try {
      clientSocket = checkServer.accept();
      is = new BufferedReader(new
      InputStreamReader(clientSocket.getInputStream()));
      os = new DataOutputStream(clientSocket.getOutputStream());
    } catch (Exception ei) {
      ei.printStackTrace();
    }
Blok try kedua digunakan untuk inisiasi is dan os sebagai objek input dan output, serta untuk menerima request client dengan clientsocket.
    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);
    }
Blok try ketiga digunakan untuk menerima dan mengirim pesan. Variable line digunakan sebagai variable penampung inputan dari client, lalu server akan mencetak Terima : diikuti dengan pesan yang diterima dari client.
Jika server menerima pesan salam, maka server akan membalas pesan salam juga. Jika server menerima pesan lainnya maka server akan membalas Maaf, saya tidak mengerti”.
    try {
      os.close();
      is.close();
      clientSocket.close();
    } catch (IOException ic) {
      ic.printStackTrace();
    }
  }
}
Blok try keempat digunakan untuk menutup input, ouput, dan koneksi.


CLIENT
import java.io.*;
import java.net.*;
Program ini akan memanggil semua fungsi yang terdapat pada library java.io dan java.net. Library java.io yaitu library untuk proses input dan output melalui data stream, sedangkan java.net yaitu library untuk implementasi jaringan.
public class simpleClient {
  public final static int REMOTE_PORT = 5000;
Nama class pada program ini yaitu simpleClient, dan kita akan mendeklarasikan port 5000 yang akan digunakan sebagai jalur komunikasi.
  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;

Kemudian kita akan mendeklarasikan variable yang akan dipakai di dalam program ini, yaitu : cl sebagai Socket yang bernilai null (kosong), is sebagai BufferedReader yang bernilai null (kosong), os sebagai DataOutputStream yang bernilai null (kosong), serta userInput dan output yang bernilai null (kosong) dengan tipe data string.
    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);
    }
Pada blok try pertama digunakan untuk memulai koneksi dengan server menggunakan port yang telah dideklarasikan sebelumnya. Jika terjadi error pada saat koneksi, maka catch akan berjalan dan memberikan pesan error yang terjadi.
    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);
    }
Blok try kedua digunakan untuk menuliskan atau mengirim pesan ke server. Pertama program akan mencetak Masukkan kata kunci: . Kemudian client akan menginput pesan yang akan disimpan di dalam variable userInput, dan akan dikirimkan ke server dengan perintah os.writeBytes().
    try {
      output = is.readLine();
      System.out.println("Dari server: " + output);
    } catch (IOException e) {
      e.printStackTrace();
    }
Blok try ketiga digunakan untuk menerima pesan dari server dan menampilkannya. Program akan mencetak string Dari server: diikuti dengan variable output, yang merupakan pesan dari server.  
    try {
      is.close();
      os.close();
      cl.close();
    } catch (IOException x) {
      System.out.println("Error writing...." + x);
    }
  }
}
Blok try keempat digunakan untuk menutup input, ouput, dan koneksi.


OUTPUT PROGRAM
·           Compile file simpleServer.java dan simpleClient.java

·           Jalankan simpleServer.java

·           Buka command prompt baru, lalu jalankan simpleClient.java, dan masukkan pesan untuk server.


·           Jika client memasukkan pesan salam, maka pada sisi server akan masuk pesan salam, dan server akan membalas pesan dari client dengan salam juga.

·           Jika client memasukkan pesan selain dari salam, maka pada sisi server tetap akan masuk pesan yang dikirim oleh client, tetapi server akan membalas pesan dari client dengan Maaf, saya tidak mengerti.