Senin, 12 Juni 2017

Konfigurasi Web Server pada Linux Ubuntu 64bit

Hai gaes... apa kabar ? baik-baik saja atau bingung bagaimana konfigurasi web server pada linux ubuntu 64bit ? wahhh... gausah bingung lagi berikut akan saya jelaskan bagaimana langkah-langkah menkonfigurasi web server... 
Sebelum kita mulai untuk konfigurasi saya mau bertanya apa sih werb server ? kenapa web server itu sangat diperlukan ? jadi sebenarnya Web Server itu adalah aplikasi yang berada pada server yang bertugas untuk menerima permintaan dari client melalui HTTP atau HTTPS (browser) dan mengirimkan kembali kepada client dalam bentuk sebuah tampilan website HTML. Fungsi utama dari web server yaitu untuk menyimpan, memproses, dan mengirimkan halaman web ke client.



Contoh web server yang paling banyak digunakan diantara lain adalah:

  • Apache (Apache)
  • IIS (Microsoft)
  • Nginx (NGINX, Inc.)
  • GWS (Google)


Kali ini saya akan menjelaskan bagaimana mengkonfigurasikan web server menggunakan Apache pada sistem operasi Linux Ubuntu 14.04 untuk komputer 64bit. Berikut adalah langkah-langkahnya gaes....



  1. Langkah pertama, Install Apache dengan mengeksekusi perintah apt-get install apache2 pada terminal linux seperti pada gambar berikut:
  2.  

  3. Langkah kedua , ketik huruf Y (yes) agar instalasi dapat berjalan.

  4. Langkah ketiga ,  buka browser setelah instalasi dan buka situs localhost untuk memastikan apakah Apache sudah terinstall, jika terlihat seperti pada gambar berikut maka apache sudah berhasil dibuat.

  5. Langkah keempat , adalah memodifikasi tampilan tersebut menjadi halaman web yang diinginkan dengan cara mengedit file index.html yang berada pada direktori /var/www/html/index.html.


  6. Langkah kelima , buka kembali brower dan akses localhost maka akan tampil halaman berikut:

  7. Langkah keenam membuat agar halaman web tersebut dapat diakses oleh client, maka kita harus mengetahui IP Address dari web server tersebut dengan cara mengeksekusi perintah ifconfig pada terminal server

    Terlihat bahwa IP Address web server adalah 192.168.0.14, dan alamat ini juga dapat diakses melalui web browser.

  8. Terakhir lakukan percobaan untuk mengakses alamat 192.168.0.14 pada browser dari sisi pc-server (kiri) dan pc-client (kanan).
     
     Jadi begitu temen-temen cara melakukan konfigurasi web server pada lunux ubuntu 64bit. jangan lupa yang terpenting untuk memperhatikan koneksi pada saat penginstallan apache nya. terima kasih sudah membaca moga bermanfaat...

Pemrograman Jaringan: 5. Membangun Aplikasi Client-Server TCP Sederhana

Pemrograman Jaringan

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();
            }
    }
Program di atas adalah simpleServer.java yang bertindak sebagai server. Server bertugas untuk menerima dan memproses request dari client. Saat program ini dijalankan, maka server akan aktif dengan mencetak "Aplikasi server hidup...". Saat server aktif, server menunggu masukan dari client berupa kata kunci yaitu "salam". Jika client menuliskan kata selain "salam", maka server akan merespon "Maaf, saya tidak mengerti".

Pada saat ini aktifkan client dengan cara membuka program simpleClient.java seperti berikut:

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);
        }
    }
    }
Program ini berperan sebagai client. Client memasukkan kata kunci "salam" dan diteruskan ke server. Jika kata kunci cocok, maka server akan merespon "salam juga".

Output 







Pemrograman Jaringan: 4. NsLookup.java

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

Program di atas adalah NsLookup.java untuk mengetahui IP Address dengan cara menginput nama host pada saat menjalankan program.


Pada saat user menginput nama host, maka program akan langsung menampilkan IP Address yang dimaksud dengan method getAddress(). Namun apabila host salah atau tidak ada, maka akan mencetak "Unknown Host".

Sumber:
http://achsan.staff.gunadarma.ac.id/Downloads/files/42647/Nslookup.txt

Pemrograman Jaringan: 3. IPtoName.java

Pemrograman Jaringan
 


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

Pada program di atas akan menampilkan nama komputer dari suatu IP Address yang dimasukkan. IP Address yang dimasukkan akan di cek dengan method getHostName() lalu program akan mencetak nama host dari pemilik IP Address tersebut.

Apabila IP Address yang dimasukkan salah atau tidak tersedia, maka komputer akan mencetak "invalid IP - malformed IP".

Sumber:
http://achsan.staff.gunadarma.ac.id/Downloads/files/42646/IPtoName.txt

Pemrograman Jaringan: 2. getName.java

Pemrograman Jaringan

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


Kode program getName.java berfungi untuk mencetak nama dari suatu host.

  • import java.net.* berfungsi untuk mengimport library yang berhubungan dengan jaringan
  • lalu definisikan class InetAddress dengan variabel host
  • lalu host akan menampung ip address dari komputer
  • kemudian program akan mencetak string dan nama dari host dengan method getHostName()
Sumber:

Pemrograman Jaringan: 1. getIP.java

Pemrograman Jaringan
 
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();
    }
}
 
Terdapat kode program dengan bahasa pemrograman Java getIP.java. Kode program tersebut berfungsi untuk menampilkan alamat IP komputer. 
  • Pada baris ke-4, terdapat pendefinisian variable host dari class InetAddress.
  • Kemudian baris ke-5, variabel host menampung sementara IP Address yang didapatkan dari method getLocalHost()
  • Lalu terdapat variabel ip dengan tipe data byte array untuk menampung alamat dari host
  • Lalu terdapat perulangan untuk mencetak IP Address secara dotted decimal. 
Sumber:

Minggu, 21 Mei 2017

Paralel Computation (Komputasi Paralel)


Pengertian Paralel Computation

Parallel computation adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan maka akan makin cepat.

Cheap Offers: http://bit.ly/gadgets_cheap
Parallel computation adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan maka akan makin cepat.

Cheap Offers: http://bit.ly/gadgets_cheap
Komputasi paralel merupakan salah satu teknik komputasi, dimana proses komputasinya dilakukan oleh beberapa resources (komputer) yang independen, secara bersamaan. Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar (di industri keuangan, bioinformatika, dll) atau dalam memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi), dll. Dalam menyelesaikan suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel.

Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara paralel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah / operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel ) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing). Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

           Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yang anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua. Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.

Pengertian Paralel Programming 
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupunbanyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paraleladalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secarabersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Komputasi paralel membutuhkan:
  • algoritma
  • bahasa pemrograman
  • compiler


Sebagai besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih darisatu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.
Contoh struktur dari parallel processing sbb :



Bahasa Pemprograman Pada Paralel Computation

Parallel Virtual Machine (PVM)
        PVM adalah suatu perangkat lunak yang mampu mensimulasikan pemrosesan paralel pada jaringan komputer. Saat ini ada dua bahasa pemrograman yang didukung oleh PVM, yaitu FORTRAN dan C. Versi PVM yang paling umum digunakan berbasis UNIX, meskipun ada juga PVM berbasis Windows. Cara kerja PVM adalah dengan membuat (spawning) proses-proses anak yang akan dikirim ke processor-processor yang tersebar di jaringan komputer. Dengan PVM bisa ditentukan berapa jumlah processor yang akan dilibatkan dalam proses komputasi.

Network File System (NFS)
        Salah satu protocol yang dipergunakan pada komputasi parallel adalah Network File System (NFS). NFS adalah protokol yang dapat membagi sumber daya melalui jaringan. NFS dibuat untuk dapat berdiri sendiri baik dari segi mesin, jenis sistem operasi maupun jenis protokol transport yang digunakan. NFS memperbolehkan user yang telah diijinkan untuk mengakses file-file yang berada di remote host seperti mengakses file yang berada di lokal. Kegunaan dari NFS pada komputasi parallel adalah untuk melakukan sharing data sehingga setiap node slave dapat mengakses program yang sama pada node master

Perkembangan di Indonesia
        Di Indonesia, usaha untuk membangun infrastruktur mesin paralel sudah dimulai sejak era 90-an, meski belum pada tahap serius dan permanen. Namun untuk pemrograman paralel sudah sejak awal menjadi satu mata-kuliah wajib di banyak perguruan tinggi terkait. Baru pada tahun 2005 dimulai pembuatan infrastruktur mesin paralel permanen, misalnya yang dikembangkan oleh Grup Fisika Teoritik dan Komputasi di P2 Fisika LIPI. Didorong oleh perkembangan pemrograman paralel yang lambat, terutama terkait dengan sumber daya manusia (SDM) yang menguasainya, mesin paralel LIPI ini kemudian dibuka untuk publik secara cuma-cuma dalam bentuk LIPI Public Cluster (LPC)[3]. Saat ini LPC telah dikembangkan lebih jauh menjadi gerbang komputasi GRID di Indonesia dengan kerjasama global menjadi IndoGRID.
        Pada tahun berikutnya, dengan dukungan dana dari proyek Inherent DiktiFasilkom UI juga membangun mesin paralel[4]. Sementara itu pada tahun 2009, ITB membuat kluster hibrid CPU dan GPU yang pertama di Indonesia dengan kemampuan hingga 60 inti CPU dan 1920 inti GPU.

Komponen dan Arsitekur paralelcomputation
    Komputasi Paralel merupakan teknik untuk melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer yang independen secara bersamaan. Biasanya digunakan untuk kapasitas yang pengolahan data yang sangat besar (lingkungan industri, bioinformatika dll) atau karena tuntutan komputasi yang banyak. Pada kasus yang kedua biasanya ditemukannya kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimai komputasi) dll. Untuk melakukan berbagai jenis komputasi paralel diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang nantinya dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan suatu masalah. Untuk itu maka digunakannya perangkat lunak pendukung yang biasa disebut middleware yang berperan untuk mengatur distribusi antar titik dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Salah satu middleware yang asli dikembangkan di Indonesia adalah OpenPC yang dipelopori oleh GFTK LIPI dan diimplementasikan di LIPI Public Center.
    Komputasi paralel berbeda dengan multitasking. Multitasking itu sendiri adalah komputer dengan processor tunggal yang dapat mengeksekusi beberapa tugas secara bersamaan. Sedangkan komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann. Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui 4 model komputasi yang digunakan, yaitu:
  • SIMD
  • SIMD
  • MISD
  • MIMD

 SISD
     Merupakan singkatan dari Single Instruction, Single Data yaitu satu-satunya yang menggunakan arsitektur Von Neumann, karena pada model ini hanya menggunakan 1 processor saja. Oleh karena itu model ini dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
SIMD
    Merupakan singkatan dari Single Instruction, Multiple Data. Model ini menggunakan banyak processor dengan instruksi yang sama, namun dengan data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
MISD
    Merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Sebagai contoh, dengan menggunakan kasus yang sama pada contoh model SIMD namun cara untuk menyelesaikannya yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
MIMD
     Pada Multiple Instruction, Multiple Data biasanya menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Sumber :
https://celoteh-galang.blogspot.co.id/2016/06/apa-itu-parallel-computation.html
http://gina-itsme.blogspot.co.id/2013/06/parallel-processing-dan-hubungan-dengan.html
http://djuneardy.blogspot.co.id/2015/05/konsep-arsitektur-paralel-pemrosesan.html
http://smilenickynick.blogspot.co.id/2014/06/komputer-paralel-arsitektur-dan.html
https://dikky12.wordpress.com/2011/04/01/parallel-processing/

Parallel computation adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan maka akan makin cepat.

Cheap Offers: http://bit.ly/gadgets_cheap
Parallel computation adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk meningkatkan performa komputer karena semakin banyak proses yang bisa dikerjakan secara bersamaan maka akan makin cepat.

Cheap Offers: http://bit.ly/gadgets_cheap