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

Senin, 17 April 2017

Quantum Computation


Pengertian  Quantum Computation

     Merupakan alat hitung yang menggunakan mekanika kuantum seperti superposisi dan keterkaitan, yang digunakan untuk peng-operasi-an data. Perhitungan jumlah data pada komputasi klasik dihitung dengan bit, sedangkan perhitungan jumlah data pada komputer kuantum dilakukan dengan qubit. Prinsip dasar komputer kuantum adalah bahwa sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, dan bahwa mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.

 Sejarah singkat
  • Pada tahun 1970-an pencetusan atau ide tentang komputer kuantum pertama kali muncul oleh para fisikawan dan ilmuwan komputer, seperti Charles H. Bennett dari IBM, Paul A. Benioff dari Argonne National Laboratory, Illinois, David Deutsch dari University of Oxford, dan Richard P. Feynman dari California Institute of Technology (Caltech).
  • Feynman dari California Institute of Technology yang pertama kali mengajukan dan menunjukkan model bahwa sebuah sistem kuantum dapat digunakan untuk melakukan komputasi. Feynman juga menunjukkan bagaimana sistem tersebut dapat menjadi simulator bagi fisika kuantum. 
  • Pada tahun 1985, Deutsch menyadari esensi dari komputasi oleh sebuah komputer kuantum dan menunjukkan bahwa semua proses fisika, secara prinsipil, dapat dimodelkan melalui komputer kuantum. Dengan demikian, komputer kuantum memiliki kemampuan yang melebihi komputer klasik.
  • Pada tahun 1995, Peter Shor merumuskan sebuah algoritma yang memungkinkan penggunaan komputer kuantum untuk memecahkan masalah faktorisasi dalam teori bilangan.
  • Sampai saat ini, riset dan eksperimen pada bidang komputer kuantum masih terus dilakukan di seluruh dunia. Berbagai metode dikembangkan untuk memungkinkan terwujudnya sebuah komputer yang memilki kemampuan yang luar biasa ini. Sejauh ini, sebuah komputer kuantum yang telah dibangun hanya dapat mencapai kemampuan untuk memfaktorkan dua digit bilangan. Komputer kuantum ini dibangun pada tahun 1998 di Los Alamos, Amerika Serikat, menggunakan NMR (Nuclear Magnetic Resonance).
 Entanglement
     Entanglement adalah efek mekanik kuantum yang mengaburkan jarak antara partikel individual sehingga sulit menggambarkan partikel tersebut terpisah meski Anda berusaha memindahkan mereka. Contoh dari quantum entanglement: kaitan antara penentuan jam sholat dan quantum entanglement. Mohon maaf bagi yang beragama lain saya hanya bermaksud memberi contoh saja. Mengapa jam sholat dibuat seragam? Karena dengan demikian secara massal banyak manusia di beberapa wilayah secara serentak masuk ke zona entanglement bersamaan.

 Pengoperasian Data Qubit
     Komputer kuantum memelihara urutan qubit. Sebuah qubit tunggal dapat mewakili satu, nol, atau, penting, setiap superposisi quantum ini, apalagi sepasang qubit dapat dalam superposisi kuantum dari 4 negara, dan tiga qubit dalam superposisi dari 8. Secara umum komputer kuantum dengan qubit n bisa dalam superposisi sewenang-wenang hingga 2 n negara bagian yang berbeda secara bersamaan (ini dibandingkan dengan komputer normal yang hanya dapat di salah satu negara n 2 pada satu waktu). Komputer kuantum yang beroperasi dengan memanipulasi qubit dengan urutan tetap gerbang logika quantum. Urutan gerbang untuk diterapkan disebut algoritma quantum.
     Sebuah contoh dari implementasi qubit untuk komputer kuantum bisa mulai dengan menggunakan partikel dengan dua putaran menyatakan: “down” dan “up”. Namun pada kenyataannya sistem yang memiliki suatu diamati dalam jumlah yang akan kekal dalam waktu evolusi dan seperti bahwa A memiliki setidaknya dua diskrit dan cukup spasi berturut-turut eigen nilai , adalah kandidat yang cocok untuk menerapkan sebuah qubit. Hal ini benar karena setiap sistem tersebut dapat dipetakan ke yang efektif spin -1/2 sistem.

 Algoritma pada Quantum Computing
     Para ilmuwan mulai melakukan riset mengenai sistem kuantum tersebut, mereka juga berusaha untuk menemukan logika yang sesuai dengan sistem tersebut. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakan dalam sistem kuantum yaitu algoritma shor dan algoritma grover.
  • Algoritma Shor
 Algoritma yang ditemukan oleh Peter Shor pada tahun 1995. Dengan menggunakan algoritma ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode yang disebut kode RSA ini, jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah efektif.
  • Algoritma Grover
Algoritma Grover adalah sebuah algoritma kuantum yang menawarkan percepatan kuadrat dibandingkan pencarian linear klasik untuk list tak terurut. Algoritma Grover menggambarkan bahwa dengan menggunakan pencarian model kuantum, pencarian dapat dilakukan lebih cepat dari model komputasi klasik. Dari banyaknya algoritma kuantum, algoritma grover akan memberikan jawaban yang benar dengan probabilitas yang tinggi. Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma. Algoritma Grover juga dapat digunakan untuk memperkirakan rata-rata dan mencari median dari serangkaian angka, dan untuk memecahkan masalah Collision.

 Implementasi Quantum Computing
     Pada 19 Nov 2013 Lockheed Martin, NASA dan Google semua memiliki satu misi yang sama yaitu mereka semua membuat komputer kuantum sendiri. Komputer kuantum ini adalah superkonduktor chip yang dirancang oleh sistem D – gelombang dan yang dibuat di NASA Jet Propulsion Laboratories.
     NASA dan Google berbagi sebuah komputer kuantum untuk digunakan di Quantum Artificial Intelligence Lab menggunakan 512 qubit D -Wave Two yang akan digunakan untuk penelitian pembelajaran mesin yang membantu dalam menggunakan jaringan syaraf tiruan untuk mencari set data astronomi planet ekstrasurya dan untuk meningkatkan efisiensi searchs internet dengan menggunakan AI metaheuristik di search engine heuristical. 
     A.I. seperti metaheuristik dapat menyerupai masalah optimisasi global mirip dengan masalah klasik seperti pedagang keliling, koloni semut atau optimasi swarm, yang dapat menavigasi melalui database seperti labirin. Menggunakan partikel terjerat sebagai qubit, algoritma ini bisa dinavigasi jauh lebih cepat daripada komputer konvensional dan dengan lebih banyak variabel. 
     Penggunaan metaheuristik canggih pada fungsi heuristical lebih rendah dapat melihat simulasi komputer yang dapat memilih sub rutinitas tertentu pada komputer sendiri untuk memecahkan masalah dengan cara yang benar-benar cerdas . Dengan cara ini mesin akan jauh lebih mudah beradaptasi terhadap perubahan data indrawi dan akan mampu berfungsi dengan jauh lebih otomatisasi daripada yang mungkin dengan komputer normal

Sumber :
https://amoekinspirasi.wordpress.com/2014/05/15/pengertian-quantum-computing-dan-implementasinya/
http://djuneardy.blogspot.co.id/2015/04/quantum-computing-entanglement.html

Mobile Computing


Pengertian mobile computing 

adalah kemampuan teknologi untuk menghadapi perpindahan/pergerakan manusia dalam penggunaan komputer secara praktis. Beberapa pengertian tentang mobile computing diantaranya :
 
      1.     Mobile computing merupakan paradigma baru dari teknologi yang mampu melakukan komunikasi. walaupun user melakukan perpindahan.
    2.  Merupakan kemajuan teknologi komputer, sering disebut sebagai mobile computer (portable computer) yang dapat berkomunikasi dengan jaringan tanpa kabel (nirkabel).
      3.      Merupakan sekumpulan peralatan(hardware), data, dan perangkat lunak aplikasi yang bermobilisasi/berpindahlokasi.
     4.   Merupakan kelas tertentu dari system terdistribusi dimana beberapa node dapat melepaskan diri dari operasi terdistirbusi, bergerak bebas, dan melakukan koneksi kembali pada jaringan yang berbeda.
          5.      Tidak sama dengan wireless computing.
Dari definisi diatas kita dapat memahami mengapa kita membutuhkan mobile computing. Kata kuncinya adalah kita manusia dinamis yang senantiasa bergerak dan berkembang dari satu keadaan ke keadaan yang lain. Sehingga membutuhkan suatu device yang mampu mengikuti pergerakan kita. Bergerak disini dilihat dari dua sisi yaitu orang dan device.
Pergerakan dari User
      -          Perpindahan posisi geografis
      -          Perpindahan jaringan komunikasi
      -          Perpindahan peralatan komunikasi
      -          Perpindahan antara aplikasi
Pergerakan dari Device
      -          Perpindahan posisi geografis
      -          Perpindahan jaringan komunikasi

Jenis Mobile Computing


·         Laptop merupakan komputer portabel, kecil dan dapat dibawa kemana saja dengan sangat mudah yang terintegrasi pada sebuah casing. Berat laptop berkisar dari 1 sampai 6 kilogram tergantung ukurannya, bahan dan spesifikasi. Sumber listrik berasal dari baterai atau A/C adaptor yang dapat digunakan untuk mengisi ulang baterai dan untuk menyalakan laptop itu sendiri. Laptop kegunaannya sama dengan Komputer desktop, yang membedakannya hanya ukuran sehingga memudahkan pemakai untuk membawanya kemana-mana.

·         Wearable Computer atau komputer yang dipakaikan di tubuh manusia. Contohnya adalah Computer Gletser Ridgeline W200. W200 ini terbuat dari paduan magnesium bertulang yang memaksimalkan kekuatan dan meminimalkan berat keseluruhan. Pada hanya 10,2 ons dan dibentuk pada kontur lengan, W200 yang mengkombinasikan fitur yang sama dari sebuah komputer standar dengan sebuah perangkat yang memberikan kenyamanan dan ergonomis pergelangan tangan instrumen aus. W200 ini memiliki sebuah 3.5 “layar warna dengan layar sentuh, keyboard backlit dan baterai hot swappable. Fungsi nirkabel dari W200 memastikan konektivitas berkelanjutan terlepas dari lokasi pengguna dengan plug and play Wi-Fi, Bluetooth dan modul GPS. Menggunakan CE Windows atau sistem operasi Linux, unit cepat dapat dikonfigurasi untuk mengakses sistem host remote melalui kabel terintegrasi atau antarmuka nirkabel. Operasi bebas dari tangan-W200 yang mengatasi keterbatasan fisik yang terkait dengan komputer genggam normal. Hal ini memungkinkan pengguna kebebasan penuh untuk melanjutkan kegiatan sehari-hari dengan menggunakan kedua tangan sedangkan komputer memiliki akses penuh pada setiap saat. Selain kompas elektronik, sistem juga mengintegrasikan fitur terbaru dan paling inovatif, seperti tilt dan perhitungan diam, yang memungkinkan penghematan baterai kritis ketika unit tidak digunakan. Kegunaan tangan-bebas dari W200 membuatnya kepentingan khusus untuk Layanan Darurat, Keamanan, Pertahanan, Gudang, Lapangan Logistik dan setiap wilayah di mana akses ke sejumlah besar informasi yang diperlukan. W200 punggung bukit itu bergabung baris gletser saat komputer kasar dikembangkan untuk pengumpulan data.

·          PDA(Personal Digital Assistants) adalah sebuah alat elektronik yang berbasis komputer dan berbentuk kecil serta dapat dibawa kemana-mana.  Menurut  sepengetahuan saya PDA banyak digunakan sebagai pengorganisir pribadi pada awalnya, tetapi karena perkembangannya, kemudian bertambah banyak fungsi kegunaannya, seperti kalkulator, penunjuk jam dan waktu, permainan komputer, pengakses internet, penerima dan pengirim surat elektronik (e-mail), penerima radio, perekam video, dan pencatat memo. Selain dari itu dengan PDA (komputer saku) ini, kita dapat menggunakan buku alamat dan menyimpan alamat, membaca buku-e, menggunakan GPS dan masih banyak lagi fungsi yang lain. Bahkan versi PDA yang lebih canggih dapat digunakan sebagai telepon genggam, akses internet, intranet, atau extranet lewat Wi-Fi atau Jaringan Wireless. Salah satu ciri khas PDA yang paling utama adalah fasilitas layar sentuh

·         SmartPhone adalah ponsel yang menawarkan kemampuan canggih, boleh dikata kemampuannya menyerupai kemampuan PC (komputer). Umumnya suatu ponsel dikatakan sebagai smartphone bila dapat berjalan pada software operating system yang lengkap dan memiliki interface dan platform standar bagi pengembang aplikasi. Sementara itu ada yang mengatakan smartphone adalah ponsel sederhana dengan fitur canggih seperti kemampuan mengirim dan menerima email, menjelajah internet dan membaca e-book, built in full keyboard atau external USB keyboard, atau memiliki konektor VGA. Dengan kata lain, smartphone adalah miniatur komputer dengan kemampuan ponsel .

Kelebihan dan Kekurangan Mobile Computing

Dengan menggunakan mobile computing, kita akan memperoleh banyak sekali Kelebihan. Kelebihan tersebut antara lain: 

          1.      Mobilitas
Anda tidak perlu mengikat diri ke tempat tertentu. Anda dapat melakukan pekerjaan Anda saat duduk di mobil atau kereta api. Anda dapat berkomunikasi dengan orang lain sambil duduk di mana saja di dunia. Anda dapat chatting online dengan teman-teman Anda dan anggota keluarga sambil duduk di pantai. Anda dapat melakukan pekerjaan kantor Anda sambil duduk di mana saja. 

2.      Keefektifan
Dengan menggunakan mobile computing, lebih banyak pekerjaan dapat diselesaikan karena   fleksibilitas dalam hal tempat bekerja 

Kemudian Kekurangannya antara lain :
  
      1.      Rendahnya jaringan bandwidth
Pengguna mobile dapat terhubung ke jaringan nirkabel melalui berbagai jaringan komunikasi termasuk radio nirkabel, wireless Local Area Network (LAN), nirkabel selular, satelit, dll Setiap jaringan nirkabel menyediakan kapasitas bandwidth yang berbeda. Namun, bandwidth nirkabel ini terlalu kecil dibandingkan dengan jaringan tetap seperti ATM (Asynchronous Transfer Mode) yang dapat memberikan kecepatan hingga 155Mbps.

 2.      Biaya komunikasi asimetrik
Kapasitas bandwidth yang berbeda antara hilir komunikasi dan komunikasi upstream telah menciptakan sebuah lingkungan baru yang disebut Lingkungan Komunikasi asimetrik. Bahkan, ada dua situasi yang dapat mengakibatkan komunikasi asimetri, Salah satunya adalah karena kemampuan perangkat fisik. Misalnya, server memiliki pemancar siaran kuat, sedangkan klien mobile memiliki kemampuan transmisi kecil. Yang lain adalah karena pola aliran informasi dalam aplikasi. Misalnya, dalam situasi dimana jumlah server jauh lebih sedikit daripada jumlah klien, itu adalah asimetris karena ada tidak kapasitas yang cukup untuk menangani permintaan simultan dari beberapa klien.

3.      Koneksi yang lemah
pengguna Mobile sering terputus dari jaringan. Hal ini mungkin terjadi karena beberapa alasan, termasuk kegagalan sinyal, jangkauan sinyal yang kurang luas, area blank spot, dan penghematan daya. Tetapi hal ini juga bisa menguntungkan karena modus aktif membutuhkan seribu kali power lebih besar daripada perangkat dalam kondisi standby atau mode sleep. Sinyal radio nirkabel mungkin juga akan melemah karena jarak yang jauh dari sumber sinyal dimana pengguna bergerak.  

4.      Konsumsi tenaga
            Mobile computing sangat bergantung pada daya tahan baterai.

 
Tool untuk Mobile Computing
- GPS (Global Positioning System)
- Wireless (Acess)
- GIS (Location)


Contoh-contoh-Applikasi Mobile Computing : BBM(Blackberry Massanger), WhatsApp, Bayar listrik online, dll.

Hardware & Software
Dengan dukungan Mobile Computing, seseorang dimanapun berada, tetap dapat bekerja dan melakukan aktifitas business dengan konsep Mobile Computing
- Mobile/Migrasi
- Security
- Authentication
- Privacy

Hardware Computing :
- Laptop (Computing Unit)
- LCD (Display Unit)
- Wireless (Comunication Unit)

Sofware Computing :
- Operating System
- GUI
- Application, Cell phone application, Calendar dll
- Java ME, Popular untuk game
- Mobile Operation System
Mobile Operation System :
- Java Mobile
- Symbian for Nokia
- Android berbasis Linux
- I phone mac OSX
- Palm OS (PDA)
- Blackberry System
- Dll


Sumber :