Selasa, 06 Juni 2017

PARALLEL COMPUTATION




Gambar Distribusi Komputer Paralel



PENGERTIAN PEMROSESAN PARALEL

Pemrosesan Paralel adalah komputasi dua atau lebih tugas pada waktu bersamaan dengan tujuan untuk mempersingkat waktu penyelesaian tugas-tugas tersebut dengan cara mengoptimalkan resource pada sistem komputer yang ada untuk mencapai tujuan yang sama. Pemrosesan paralel dapat mempersingkat waktu ekseskusi suatu program dengan cara membagi suatu program menjadi bagian-bagian yang lebih kecil yang dapat dikerjakan pada masing-masing prosesor secara bersamaan.

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Performa dalam pemrosesan paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan teknik paralel. 

Adapun proses kerja , pemrosesan paralel membagi beban kerja dan mendistribusikannya pada komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan suatu masalah. Sistem yang akan dibangun akan tidak akan menggunakan komputer yang didesikasikan secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer yang telah ada. Artinya, sistem ini nantinya akan terdiri dari sejumlah komputer dengan spesifikasi berbeda yang akan bekerjasama untuk menyelesaikan suatu masalah.

Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. 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.

Komputasi paralel membutuhkan :
  • Algoritma
  • bahasa pemrograman
  • compiler


Komunikasi data pada sistem paralel memori terdistribusi, memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya bekerja diatas TCP/IP communication layer. Kedua standar ini memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit prosesor.Mesin virtual parallel atau Parallel Virtual Machine (PVM) dan Antarmuka Pengiriman Pesan (MPI) adalah kumpulan library yang memungkinkan kita untuk menulis program pengiriman pesan paralel menggunakan bahasa pemrograman C dan FORTRAN agar bisa berjalan pada system paralel.

Kemampuan sistem paralel tergantung dari kemampuan pemrogram untuk membuat aplikasi terdistribusi ketika dijalankan pada sistem paralel. Jika node slave mempunyai prosessor lebih dari satu maka pemrogram harus memperhitungkan kemungkinan paralelisme 2 level: Paralelisme di dalam slave node (intra-node parallelism) dan paralelisme antar slave node (inter-node parallelism).
Inter-node parallelism menggunakan shared memory dalam node sehingga tidak melakukan pertukaran data secaraexplicit. Sedangkan Inter-node parallelism melakukan pertukaran data lewat media yang menghubungkan antara node slave yang ada.

Terdapat tiga metode untuk mengimplementasikan Inter-node parallelism yaitu :
Dengan cara membuat protokol komunikasi ad hoc level rendah. Contohnya dengan menggunakan socket interface.
Dengan menggunakan distributed communication library. Contohnya dengan menggunakan Message Passing Interface (MPI) library.
Dengan memanfaatkan layer software dengan maksud untuk menyembunyikan interconnect dari programmer.

PVM (Parallel Virtual Machine)

PVM (Parallel Virtual Machine) adalah paket software yang mendukung pengiriman pesan untuk komputasi parallel antar komputer. PVM dapat berjalan diberbagai macam variasi UNIX atau pun windows dan telah portable untuk banyak arsitektur seperti PC, workstation, multiprocessor dan superkomputer.

Sistem PVM terbagi menjadi dua. Pertama adalah daemon, pvmd, yang berjalan pada mesin virtual masing-masing komputer. Mesin virtual akan dibuat,  ketika User mengeksekusi aplikasi PVM. PVM dapat dieksekusi melalui prompt UNIX disemua host. Bagian kedua adalah library interface rutin yang mempunyai banyak fungsi untuk komunikasi antar task . Library ini berisikan rutin yang dapat dipanggil untuk pengiriman pesan, membuat proses baru, koordinasi task dan konfigurasi mesin virtual.

Salah aturan main yang penting dalam PVM adalah adanya mekanisme program master dan slave/worker. Programmer harus membuat Kode master yang menjadi koordinator proses dan Kode slave yang menerima, menjalankan, dan mengembalikan hasil proses ke komputer master. Kode master dieksekusi paling awal dan kemudian melahirkan proses lain dari kode master. Masing-masing program ditulis menggunakan C atau Fortran dan dikompilasi dimasing-masing komputer. Jika arsitektur komputer untuk komputasi paralel semua sama, (misalnya pentium 4  semua), maka program cukup dikompilasi pada satu komputer saja. Selanjutnya hasil kompilasi didistribusikan kekomputer lain yang akan menjadi node komputasi parallel. Program master hanya berada pada satu node sedangkan program slave berada pada semua node.

Program PVM terdiri dari master dan slave, dimana program master dieksekusi paling awal dan kemudian melahirkan proses lain. PVM memanggil rutin pvm_spawn() untuk melahirkan satu atau dua proses lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin awalan pvm. Pengiriman dan penerimaan task diidentifikasi dengan TID (Task Identifier). TID ini bersifat unik dan digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang mengembalikan nilai TID sehingga aplikasi user dapat mengidentifikasi task lain disistem.

Message Passing Interface (MPI)

Message Passing Interface (MPI) adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara parallel dengan spesifikasi library pemrograman untuk meneruskan pesan (message-passing), yang diajukan sebagai standar oleh berbagai komite dari vendor, pelaksana dan Pemakai. MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan.

Message Passing Interface bertugas untuk mengirim data antar komputer di dalam sistem paralel (biasanya disebut sebagai node atau host). Job scheduler seperti yang tersirat dari namanya bertugas menerima tugas dari user dan menjadwalkan tugas tersebut pada beberapa node didalam sistem parallel sesuai kebutuhan.

Kemampuan MPI digunakan untuk menginterpretasikan bahasa pemrograman matrik kemampuan dynamic linking dari bahasa tersebut. Fungsi library dari paket MPI dapat digabungkan dengan dynamic extension dengan cara menghubungkan bahasa pemrograman tersebut dengan bahasa C, C++, atau FORTRAN. Hal ini telah dilakukan untuk menciptakan toolbox MPI (MPITB) untuk kebutuhan MATLAB, dan bahasa pemrograman GNU Octave oleh Fernandez Baldomero.

TUJUAN PARALEL PROCESSING

  • Bentuk efisien pemrosesan informasi yang menekankan eksploitas peristiwa bersamaan dalam proses komputasi.
  • Mempercepat kemampuan computer pada saat melakukan proses.
  • Meningkatkan performa, contohnya lebih cepat pada melakukan eksekusi
  • Memaksimalkan keluaran.


KONSEP DASAR PEMROSESAN PARALEL

Pemrosesan paralel menjadi salah satu solusi komputasi dalam skala besar yang menawarkan kecepatan pemrosesan. Dimana, di dalam paralel sebuah permasalahan dipecah menjadi bagian yang terkecil. untuk kemudian setiap bagiannya dieksekusi dua atau lebih prosesor/memory secara simultan. Pada prinsipnya, pemrosesan paralel menyelesaikan problem dalam skala yang besar menjadi bagian-bagian kecil. Tujuan utamanya adalah untuk mempersingkat waktu penyelesaian tugas-tugas dengan cara mengoptimalkan resorce pada sistem komputer yang ada untuk mencapai tujuan yang sama.

Sederhananya, semakin banyak yang bisa dilakukan secara bersamaan (dalam waktu yang sama) di dalam paralel, semakin banyak pekerjaan yang bisa diselesaikan. Lantas apa yang membedakan pemrosesan paralel dengan serial. Pada pemrosesan serial jelas terlihat bahwa proses dijalankan di komputer tunggal dengan satu CPU, selain itu problem dipecah dalam instruksi dengan eksekusi berurutan (hanya satu eksekusi dalam satu waktu (lihat ilustrasi pemrosesan serial pada Gambar 1).


Gambar 1. Ilustrasi Pemrosesan Tunggal (Serial)


Berbeda dengan pemrosesan yang dilakukan secara paralel dimana problem yang diselesaikan dijalankan menggunakan banyak CPU, problem dipecah menjadi bagian yang dapat dikerjakan secara bersamaan. Setiap bagian yang dipecah menjadi instruksi yang terurut dan dieksekusi secara simultan di CPU yang berbeda (lihat ilustrasi pemrosesan paralel pada Gambar 2).


Gambar 2. Ilustrasi Pemrosesan Paralel

Jika dilihat pada Gambar 2 pada pemrosesan paralel di setiap instrusinya dijalankan secara serial dalam waktu yang bersamaan antar CPU yang bekerja mengeksekusi data. Dengan kata lain, model arsitektur paralel ini dapat diklasifikasikan ke dalam taksonomi Flynn pada model SIMD (Single Instruction Multiple Data), dimana Michael J. Flynn membedakan arsitektur komputer multiprosesor berdasarkan dimensi instruksi dan data, kemudian dibagi menjadi single atau multiple. SIMD merupakan tipe komputer paralel karena semua processing unit (PU)-nya mengeksekusi instruksi yang sama dalam satu waktu, selain itu proses pada setiap PU boleh dengan data yang berbeda-beda. Dapat dicontohkan pada problem spasial penerapan tipe komputer ini digunakan untuk pemrosesan grafik seperti pada komputer dengan GPU.

ARSITEKTUR PARALEL

Arsitektur paralel komputer menurut Klasifikasi Flynn’s:

SISD

Single Instruction – Single Data. Komputer ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional. Menurut mereka tipe komputer ini tidak ada dalam praktik komputer paralel karena bahkan mainframe pun tidak lagi menggunakan satu prosesor. Klasifikasi ini sekedar untuk melengkapi definisi komputer paralel. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

SIMD

Single Instruction – Multiple Data. Komputer ini memiliki lebih dari satu prosesor, tetapi hanya mengeksekusi satu instruksi secara paralel pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu komputer paralel yang menggunakan arsitektur ini. 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

Multiple Instructions – Single Data. Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena sistemnya tidak mudah dipahami. Sampai saat ini belum ada komputer yang menggunakan model MISD.

MIMD

Multiple Instructions – Multiple Data. Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Sistem komputer paralel dibedakan dari cara kerja memorinya menjadi shared memory dan distributed memory. Shared memory berarti memori tunggal diakses oleh satu atau lebih prosesor untuk menjalankan instruksi sedangkan distributed memory berarti setiap prosesor memiliki memori sendiri untuk menjalankan instruksi. Adapun komponen-komponen utama dari arsitektur komputer paralel cluster PC antara lain:

  • Prosesor (CPU). Bagian paling penting dalam sistem, untuk multicore terdapat lebih dari satu core yang mengakses sebuah memori (shared memory).
  • Memori. Bagian ini dapat diperinci lagi menjadi beberapa bagian penyusunnya seperti RAM, cache memory dan memori eksternal.
  • Sistem Operasi. Software dasar untuk menjalankan sistem komputer.
  • Cluster Middleware. Antarmuka antara hardware dan software.
  • Programming Environment dan Software Tools. Software yang digunakan untuk pemrograman paralel termasuk software pendukungnya.
  • User Interface. Software yang menjadi perantara hardware dengan user.
  • Aplikasi. Software berisi program permasalahan yang akan diselesaikan.
  • Jaringan. Penghubung satu PC (prosesor) dengan PC yang lain sehingga memungkinkan pemanfaatan sumberdaya secara simultan.



HUBUNGAN ANTARA KOMPUTASI MODERN DAN PARALLEL PROCESSING

Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat. Kinerja komputasi dengan menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yangada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer saja.Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan membagi-bagitugas untuk masing-masing CPU tersebut. Jadi, satu masalah terbagi-bagi penyelesaiannya.Tetapi ini untuk masalah yang besar saja, komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.

KINERJA KOMPUTASI DENGAN PARALLEL PROCESSING

Komputasi Paralel merupakan salah satu teknologi paling menarik sejak ditemukannya komputer pada tahun 1940-an. Terobosan dalam pemorosesan parallel selalu berkembang dan mendapatkan tempat disamping teknologi-teknologi lainnya sejak Era Kebangkitan (1950-an), Era Mainframe (1960-an), Era Minis (1970-an), Era PC (1980-an), dan Era Komputer Paralel (1990-an). Dengan berbagai pengaruh atas perkembangan teknologi lainnya, dan bagaimana teknologi ini mengubah persepsi terhadap komputer, dapat dimengerti betapa pentingnya komputasi parallel itu.

Inti dari komputasi parallel yaitu hardware, software, dan aplikasinya. Paralel prosesing merupakan suatu pemrosesan informasi yang lebih mendekatkan pada manipulasi rata-rata dari elemen data terhadap satu atau lebih penyelesaian proses dari sebuah masalah. Dengan kata lain komputasi parallel adalah komputer dengan banyak processor dapat melakukan parallel processing dengan cara membagi-bagi proses ke source-source yang dimiliki.

Paradigma pemrosesan parallel bergantung pada model SIMD (single instruction multiple data), dan paradigma functional dataflow yang memperkenalkan konsep model MIMD (Multiple Instrution Multiple Data). Suatu program parallel memerlukan koordinasi ketika sebuah tugas bergantung pada tugas lainnya. Ada dua macam bentuk koordinasi pada komputer parallel : asynchronous dan synchronous. Bentuk synchronous merupakan koordinasi pada hardware yang memaksa semua tugas agar dilaksanakan pada waktu yang bersamaan dengan mengesampingkan adanya ketergantungan tugas yang satu dengan yang lainnya. Sementara bentuk asynchronous mengandalkan mekanisme pengunci untuk mengkoordinasikan processor tanpa harus berjalan bersamaan.

KELEBIHAN DAN KEKURANGAN 

Kelebihan:

  • Waktu eksekusi lebih cepat.
  • Throughput jadi lebih tinggi.


Kerugian:

  • Perangkat keras lainnya yang dibutuhkan.
  • Kebutuhan daya juga lebih.
  • Tidak baik untuk daya rendah dan perangkat mobile.
  • Parallel processing adalah salah satu teknik komputasi modern.
  • Karena membutuhkan banyak prosesor maka biaya mahal.


SUMBER

https://id.wikipedia.org/wiki/Komputasi_paralel
http://djuneardy.blogspot.co.id/2015/05/konsep-arsitektur-paralel-pemrosesan.html
http://www.gudangmateri.com/2009/12/pemrosesan-paralel.html
http://edybillstephen.ilearning.me/2015/03/27/komputasi-paralel-dengan-parallel-virtual-machine/
http://astikaayuningtyas.blogspot.co.id/2016/09/konsep-dasar-pemrosesan-paralel_65.html 

Rabu, 03 Mei 2017

PEMROGRAMAN JARINGAN #5 Server - Client

Dalam artikel kali ini, kita akan membahas tentang salah satu program yang dibuat dalam pemrograman jaringan yaitu file simpleServer.java. Program ini sebagai server yang akan menerima dan memproses data dari client. 
 
Jika program berhasil dijalankan maka akan menampilkan baris kalimat Aplikasi server hidup dan jika client sudah terhubung dengan servernya, maka client akan diminta untuk memasukkan kata kunci yaitu salam. Jika kata kunci tidak sesuai, maka server akan menampilkan baris kalimat Maaf, saya tidak mengerti.
 
Berikut listing program file simpleServer.java.


Gambar Listing Program File simpleServer.java

Selanjutnya, kita akan membahas tentang salah satu program yang dibuat dalam pemrograman jaringan yaitu file simpleServer.java. Program ini adalah sebagai client.
 
Jika program ini berhasil dijalankan, maka Client akan diminta untuk memasukkan kata kuncinya yaitu salam. Kata kunci tersebut akan diproses oleh program simpleServer dan dibalas oleh server berupa tulisan salam juga yang akan tampil pada halaman Client yang aktif.
 
Berikut listing program file simpleClient.java.
 
 

Gambar Listing Program File simpleClient.java
 
OUTPUT
 
Gambar Hasil Running Program
 
 
 
SUMBER

PEMROGRAMAN JARINGAN #4 NsLookup.java

Dalam artikel kali ini, kita akan membahas tentang salah satu program yang dibuat dalam pemrograman jaringan yaitu file NsLookup.java. Program ini berguna untuk menampilkan IP jika nama komputer user yang dimasukkan sesuai. Berikut listing program file NsLookup.java.

Gambar Listing Program File NsLookup.java

LOGIKA PROGRAM


Pada baris pertama, import java.net adalah salah package dari java yang digunakan untuk mendukung pemrograman socket/jaringan. Baris selanjutnya, terdapat public class getIP yang berfungsi untuk mendeklarasikan kelas dengan nama getIP. Kemudian public static void main merupakan deklarasi main method/fungsi utama. Sintaks InetAddress host = null; berfungsi untuk memanggil kelas InetAddress yang memuat fungsi-fungsi jaringan. Sintaks String host = args[0] berfungsi mendeklarasikan kembali nilai variabel host yaitu array 0
 
Sintaks getAddress() berfungsi untuk pengecekan nama komputer user yang sudah dimasukkan, lalu program akan menampilkan IP jika nama komputer yang dimasukkan user nya benar. Jika salah, maka akan muncul tulisan Unknown Host. Berikut hasil running program diatas.

Gambar Hasil Running Program

 
 
 
SUMBER

Selasa, 02 Mei 2017

PEMROGRAMAN JARINGAN #3 IPtoName.java

Dalam artikel kali ini, kita akan membahas tentang salah satu program yang dibuat dalam pemrograman jaringan yaitu file IPtoName.java. Program ini berguna untuk menampilkan nama komputer user jika IP yang dimasukkan sesuai dengan IP komputer tersebut. Berikut listing program file IPtoName.java.

Gambar Listing Program File IPtoName.java

LOGIKA PROGRAM

Pada baris pertama, import java.net adalah salah package dari java yang digunakan untuk mendukung pemrograman socket/jaringan. Baris selanjutnya, terdapat public class IPtoName yang berfungsi untuk mendeklarasikan kelas dengan nama IPtoName. Kemudian public static void main merupakan deklarasi main method/fungsi utama. Selanjutnya terdapat percabangan if yang berfungsi untuk mengecek IP. Sintaks Try..Catch digunakan untuk mendapatkan IP tersebut valid atau tidak, kemudian akan menghasilkan alamat IP dari komputer. Berikut adalah hasil running program diatas.
 
 
Gambar Hasil Running Program


SUMBER 

PEMROGRAMAN JARINGAN #2 getName.java

Dalam artikel kali ini, kita akan membahas tentang salah satu program yang dibuat dalam pemrograman jaringan yaitu file getName.java. Program ini berguna untuk untuk mengetahui dan menampilkan komputer yang digunakan oleh user. Berikut listing program file getName.java.

Gambar Listing Program File getName.java


LOGIKA PROGRAM


Pada baris pertama, import java.net adalah salah package dari java yang digunakan untuk mendukung pemrograman socket/jaringan. Baris selanjutnya, terdapat public class getName yang berfungsi untuk mendeklarasikan kelas dengan nama getName. Kemudian public static void main... throws Exception merupakan deklarasi main method/fungsi utama. Sintaks InetAddress host = null; berfungsi untuk memanggil kelas InetAddress yang memuat fungsi-fungsi jaringan. Sintaks host = InetAddress.getLocalHost( ); berguna untuk mendapatkan hak akses Local Host dari komputer yang berfungsi untuk membaca data-data dari komputer user. Sintaks host.getHostName() berfungsi untuk menampilkan nama dari komputer user. Berikut ini adalah hasil dari running getName.java.


Gambar Hasil Running Program



SUMBER
http://achsan.staff.gunadarma.ac.id/Downloads/files/42645/get+Name.txt
 

PEMROGRAMAN JARINGAN #1 getIP.java

Dalam artikel kali ini, kita akan membahas tentang salah satu program yang dibuat dalam pemrograman jaringan yaitu file getIP.java. Program ini berguna untuk mendapatkan IP dari komputer yang sedang digunakan. Berikut listing program file getIP.java.


Gambar Listing Program File getIP.java

LOGIKA PROGRAM

Pada baris pertama, import java.net adalah salah package dari java yang digunakan untuk mendukung pemrograman socket/jaringan. Baris selanjutnya, terdapat public class getIP yang berfungsi untuk mendeklarasikan kelas dengan nama getIP. Kemudian public static void main... throws Exception merupakan deklarasi main method/fungsi utama. Sintaks InetAddress host = null; berfungsi untuk memanggil kelas InetAddress yang memuat fungsi-fungsi jaringan. Sintaks host = InetAddress.getLocalHost( ); berguna untuk mendapatkan hak akses Local Host dari komputer yang berfungsi untuk membaca data-data dari komputer user. Sintaks byte ip[ ] = host.getAddress( ); berfungsi untuk menampung IP.

Pada blok program diatas juga terdapat perulangan for dimana kondisi yang ada adalah (int i=0; i<ip.lenght; i++). Kemudian terdapat juga percabangan if di dalam perulangan yang akan menghasilkan angka IP dari komputer yang digunakan. Berikut hasil running program diatas.


Gambar Hasil Running Program



SUMBER


















Sabtu, 22 April 2017

QUANTUM COMPUTATION

 
 
 
 
PENGERTIAN 
 
Komputasi kuantum adalah bidang studi difokuskan pada teknologi komputer berkembang berdasarkan prinsip-prinsip teori kuantum , yang menjelaskan sifat dan perilaku energi dan materi pada kuantum (atom dan subatom) tingkat. Pengembangan komputer kuantum , jika praktis, akan menandai lompatan maju dalam kemampuan komputasi jauh lebih besar daripada yang dari sempoa ke modern superkomputer , dengan keuntungan kinerja di alam miliar kali lipat dan seterusnya. 
 
Komputer kuantum, mengikuti hukum fisika kuantum, akan memperoleh kekuatan pengolahan yang besar melalui kemampuan untuk berada di beberapa negara, dan untuk melakukan tugas-tugas menggunakan semua kemungkinan permutasi secara bersamaa. Kini pusat penelitian di komputasi kuantum termasuk MIT, IBM, Oxford University, dan Los Alamos National Laboratory.
 
QUANTUM ENTANGLEMENT
 
Entanglement merupakan keadaan dimana dua atom yang berbeda berhubungan sedemikian hingga satu atom mewarisi sifat atom pasangannya. “Entanglement adalah esensi komputasi kuantum karena ini adalah jalinan kualitas yang berhubungan dengan lebih banyak informasi dalam bit kuantum dibanding dengan bit komputing klasik,” demikian Andrew Berkley, salah satu peneliti. 
 
Quantum entanglement terjadi ketika partikel seperti foton, elektron, molekul besar seperti buckyballs, dan bahkan berlian kecil berinteraksi secara fisik dan kemudian terpisahkan; jenis interaksi adalah sedemikian rupa sehingga setiap anggota yang dihasilkan dari pasangan benar dijelaskan oleh kuantum mekanik deskripsi yang sama (keadaan yang sama), yang terbatas dalam hal faktor penting seperti posisi, momentum, perputaran, polarisasi. 
 
PENGOPERASIAN DATA QUBIT
 
Proses komputasi dilakukan pada partikel ukuran nano yang memiliki sifat mekanika quantum, maka satuan unit informasi pada Komputer Quantum disebut quantum bit, atau qubit. Berbeda dengan bit biasa, nilai sebuah qubit bisa 0, 1, atau superposisi dari keduanya. State dimana qubit diukur adalah sebagai vektor atau bilangan kompleks. Sesuai tradisi dengan quantum states lain, digunakan notasi bra-ket untuk merepresentasikannya.
 
Pure qubit state adalah superposisi liner dari kedua state tersebut. Lebih jelasnya, sebuah pure qubit state dapat direpresentasikan oleh kombinasi linear dari state|0> dan state |1> : Dengan Î± dan Î² adalah amplitudo probabilitas yan dapat berupa angka kompleks. State space dari sebuah qubit secara geometri dapat direpresentasikan Bloch sphere.
  
Bloch sphere adalah ruang 2 dimensi yang merupakan geometri untuk permukaan bola. Dibandingkan bit konvensional yang hanya dapat beradai di salah satu kutub, Qubit dapat berada dimana saja dalam permukaan bola. Untuk penerapan fisiknya, semua sistem 2 level, selama ukurannya cukup kecil untuk hukum mekanika quantum berlaku. Berbagai jenis implementasi fisik telah dikemukakan, contohnya antara lain: polarisasi cahaya, spin elektron, muatan listrik, dll.
 
SUPERPOSISI QUANTUM
 
Superposisi quantum adalah inti perbedaan antara qubit dengan bit biasa. Dalam keadaan superposisi, sebuah qubit akan bernilai |0> dan |1> pada saat bersamaan. Menurut interpretasi Copenhagen, bila dilakukan pengukuran terhadap qubit, maka hanya akan muncul satu state saja. State lainnya “kolaps” dalam arti hancur dan tidak mungkin diambil kembali. 
 
Pemanfaatan sifat superposisi qubit ini adalah Paralellisme Quantum. Paralelisme Quantum muncul dari kemampuan quantum register untuk menyimpan superposisi dari base state. Maka setiap operasi pada register berjalan pada semua kemungkinan dari superposisi secara simultan. Karena jumlah state yang mungkin adalah 2n, dengn n adalah jumlah qubit pada quantum register, kita dapat melakukan pada komputer quantum satu kali operasi yang membutuh kan waktu eksponensial pada komputer konvensional. Kelemahan dari metode ini adalah, semakin besar base state yang bersuperposisi, semakin kecil kemungkinan hasil pengukuran dari nilai hasil pengukuran tersebut benar. Kelemahan ini membuat pararellisme quantum tidak berguna bila operasi dilakukan pada nilai yang spesifik. Namun kelemahan ini tidak begitu berpengaruh pada fungsi yang memperhitungkan nilai dari semua input, bukan hanya satu. Sebagaimana ditunjukkan pada Algoritma Shor. 
 
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.

KELEBIHAN DAN KEKURANGAN

Jika komputer kuantum dapat dibangun, sangat berguna untuk decoding dan encoding informasi rahasia. Komputer kuantum juga bisa digunakan untuk mencari database besar di sebagian kecil dari waktu yang jika menggunakan komputer konvensional akan memerlukan waktu yang sangat lama, komputer kuantum juga untuk mempelajari mekanika kuantum, atau bahkan merancang komputer kuantum lainnya. Komputer kuantum dalam satu langkah komputasi dapat melakukan operasi matematis pada 2N input berlainan yang tersimpan dalam superposisi koheren N qubit. Untuk melakukan hal yang sama, suatu komputer konvensional harus mengulang operasi sejumlah 2N kali atau harus digunakan 2N prosesor konvensional yang bekerja bersamaan. komputer kuantum melakukan semua perhitungan secara bersamaan (karena ada multiple states semuaperhitungan dapat berlangsung secara simultan di semua state). Komputer kuantum dengan jumlah transistor yang sama dengan komputer sekarang bisa lebih cepat jutaan kali. 30 qubit komputer kuantum bisa menghasilkan 10 terflops atau 10 bilyun operasi poin-mengambang per detik.

Tapi komputasi kuantum masih dalam tahap awal pengembangan, pun begitu telah banyak ilmuwan komputer meyakini teknologi masa depan ini sangat dibutuhkan untuk membuat sebuah komputer kuantum praktis, yang mana harus memiliki setidaknya beberapa lusin qubit, sehingga dapat memecahkan berbagai masalah dunia maya dan dunia nyata. ).komputer kuantum Belum merupakan sebuah perangkat yang bisa digunakan, namun untuk komputasi kuantum (sebuah sistem perangkat keras dan lunak yang akan membuat perangkat komputer kuantum) sudah ada perusahaan yang telah didirikan termasuk D-wave System.

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 

http://chachados.blogspot.co.id/2013/05/komputasi-kuantum.html
http://mohammadmahareza.blogspot.co.id/2015/06/pengantar-quantum-computation.html
http://rifqo-muhammad.blogspot.co.id/2016/04/quantum-computation.html
http://maya-ardiati-fst12.web.unair.ac.id/artikel_detail-117049-Prokom-Artikel%20Quantum%20Computing%20Dan%20Quantum%20Crypto.html

Mobile Computing






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.
Mobile Computing yang dalam pengertiannya adalah menggunakan komputer dimana saja. Mobile computing adalah seperangkat benda atau teknologi yang memiliki teknologi canggih yang sering disebut sebagai mobile computer (portable computer) dan mampu melakukan komunikasi dengan jaringan tanpa kabel (nirkabel) walaupun user atau pengguna dari alat tersebut sedang melakukan perpindahan.
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
SEJARAH MOBILE COMPUTING
Berikut dibahas sedikit mengenai sejarah perkembangan mobile computer, yakni :
  • Dynabook (1968) : Alan kay mengembangkan sebuah komputer portabel yang nantinya menawarkan sebuah media elektronik yang modern yang diperuntukan untuk anak anak. Graphical control interface dengan icon pada Komputer ini merupakan cikal bakal dari system operasi yang ada saat ini.
  • Gir Compass 1100 (1982) : Teknologi ini di rancang dan di kembangkan oleh gird sangat terdepan . cover nya dapat dilipat dan teringrasi sebauh flatscreen serta casing dari magnesium yang ultralight. Namun ini di teruskan dan dikembangkan oleh bil moggridge ini terlalu mahal dengan harga mencapai dengan US$ 10.000. hanya kalangan militer AS dan NASA saja yang dapat membelinya.
  • Oseborne 1 (1981) : IBM 1311 diperkenalkan pada tanggal 11 oktober 1962 hardisk ini bisa menyipan sampai dengan 2 juta karakter pada diskpack yang dapat di ganti (1316). Ketebalan hardisk ini mencapai 4 inci dan berat 4,5 kg dan memiliki 6 disk yang berukuran 6 disk yang berukuran 14 inci dan permukaan yang dapat ditulis.
  • Compaq Portable (1983) : Laptop pertama yang kompetibel dengan IBM ditawarkan oleh Compaq. Berat dan tanpa batrai lantaran masih menggunakan system operasi MS DOS laptop ini tidak popular.
  • Gavilan SC (1984) : Touchpad pertama ini ditawarkan oleh laptop Gavilan dan berada di atas keyboard. Model komputer ini sudah dilipat dan menyediakan laya LCD serta processor intel 80168 yang kompetibel dengan harga MS DOS.
  • Bondwell 2 (1985) : Walaupun era CP /M yang sudah lewat tetapi kehadiran ini tetap sukses dengan RAM sebesar 64 Kb floppy drive 3.5 inci dan layer LCD laptop ini menjadi jawara di eranya.
  • COMPAQ SLT 286 (1988) : Laptop pertama yan sudah dilengkapi dengan batrai hardisk dan LCD. Layarnya menawarkan resolusi VGA penuh.notebook ini ditujukan untuk kalangan bisnis. Tidak heran harganya mencapai harga mobil pada saat itu.
  • USB interface (1997) : Setelah penganalan port interface USB hamper semua perangkat terhubung dengan notebook computer portable mendadak menjadi universal.
  • WLAN untuk semua (1999) : Berkat penggunaan WLAN notebook kini tidak lagi statis hotspot menghubungkan perangkat ini ke internet dan jaringan kantor serta dapat diakses dimana saja.

Jenis Mobile Computing :
  1. Laptop :
    laptop merupakan komputer portabel, kecil dan dapat dibawa kemana saja dengan sangat mudah yang terintegrasi pada sebuah casing.  Laptop kegunaannya sama dengan Komputer desktop, yang membedakannya hanya ukuran sehingga memudahkan pemakai untuk membawanya kemana-mana.
  2. Wearable computer :
    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.
  3. PDA :
    sebuah alat elektronik yang berbasis komputer dan berbentuk kecil serta dapat dibawa kemana-mana. 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.
  4. Smart phone :
    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.
  5. Carputer :
    Carputer adalah suatu perangkat komputasi yang terpasang di mobil. Carputer ini beroperasi sebagai nirkabel, GPS, bluetooth kompatibel, GPS, pemutar DVD, dan perangkat lunak pengolah kata. Carputer ini biasanya digunakan untuk  memutar MP3, bermain game, menonton film, music video, dan bisa juga untuk GPS. Untuk menambahkan GPS, perlu ditambahkan modul dan software peta pada carputer tersebut. Sumber daya pada carputer tersebut berasal dari daya yang dihasilkan dari sari baterai mobil yang kapasitasnya terbatas. Sistem operasi carputer umumnya adalah dari open source misalnya linux, atau ada juga yang menggunakan windows.
  6. UMPC : UMPC adalah komputer yang posisinya berada di antara komputer tablet dan ponsel pintar. Di dunia komputer, UMPC merupakan kategori baru. UMPC lahir dari ide Bill Gates, pendiri Microsoft. Setahun lalu, dalam konferensi Windows Hardware Engineering, Gates mencetuskan idenya soal komputer ekstramini yang bisa dibawa ke mana-mana, berlayar sentuh, dapat memutar film dan lagu, bisa untuk bermain game, dapat digunakan untuk mengerjakan tugas kantor, dan berharga kurang dari US$ 500 (Rp 4,6 juta).
Konsep Mobile computing
  • Mobilitas
    • Handoff : kapan melakukannya, Pilih jaringan.
    • Proses Migrasi: aplikasi infrastruktur pendukung yang mengikuti mobilitas
  • Privasi dan Keamanan
    • Otentikasi
    • Otorisasi
    • Enkripsi: keamanan
Pendukung Mobile Computing
  • Hardware:
    • Computing Unit (Central Processing Unit)
    • Memory
    • Storage
    • Communication: Wireless (WiFi/Wimax, CDMA/GSM/3G, Bluetooth, dll)
    • Sensing Device: camera dll
    • Displace Devices: LCD Display, dll
  • Software:
    • Operating System:Microsoft Windows Mobile/CE, Symbian, RIM, Palm, Linux, Savale
    • GUI
    • Applications: cell phone applications, calendar, dll
    • Java ME, popular untuk game
    • Symbian, general purpose, didukung Nokia
    • Android adalah berbasis Linux
    • iPhone , hanya pada Mac OS X
    • Palm OS, kuat di US
MANFAAT

Perangkat mobile dapat digunakan untuk berbagai macam keperluan. Fitur utama termasuk akses langsung ke data dan cara-cara yang lebih fleksibel dalam melakukan bisnis. Hal ini sering mungkin untuk melaksanakan tugas-tugas yang sama yang akan di kantor pada saat bergerak, karena banyak perangkat mobile mengoperasikan software yang sama seperti PC kantor, contoh :
  • kita dapat menggunakan laptop dan handheld untuk membuat presentasi , memeriksa tingkat saham , membuat kutipan , dan memesan secara online saat customer premises.
  • laptop yang ideal untuk 'desking panas' , dan jenis-jenis kerja yang fleksibel , seperti homeworking dan bekerja saat bepergian jauh dari kantor.
  • laptop dan handheld memungkinkan pengguna untuk tetap berhubungan melalui email sementara keluar dari kantor.
 
KELEBIHAN
 
Dengan menggunakan mobile computing, kita akan memperoleh banyak sekali Kelebihan. Kelebihan tersebut antara lain:
  • 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.   
  • Keefektifan 
Dengan menggunakan mobile computing, lebih banyak pekerjaan dapat diselesaikan karena   fleksibilitas dalam hal tempat bekerja.
KEKURANGAN
Selain dari manfaat-manfaat yang dimiliki oleh mobile computing, mobile computing juga memiliki kekurangan. Kekurangan tersebut antara lain: 

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.
 
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.
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.
Konsumsi tenaga
Mobile computing sangat bergantung pada daya tahan baterai.

PENERAPAN DALAM KEHIDUPAN

Dalam kehidupan sehari-hari dapat kita lihat dalam penggunaan perangkat mobile seperti smartphone atupun tablet dimana pada perangkat tersebut kita dapat melakukan kegiatan komputasi.

Contoh-contoh-Applikasi Mobile Computing : BBM(Blackberry Massanger), WhatsApp, Bayar listrik online, dll. Mobile applications yang sudah ada saat ini.
Diantaranya adalah :
  • Kendaraan(untuk pemantauan dan koordinasi, GPS)
  • Peralatan Emergensi(akses kedunia luar)
  • Akses web dalam keadaan bergerak
  • Location aware services
  • Information services
  • Disconnected operations (mobile agents)
  • Entertaintment(network game groups)
SUMBER
http://siscayunida.blogspot.co.id/2012/05/definisi-mobile-computing-beberapa.html
http://worldnews-online-worldpedia.blogspot.co.id/2015/04/normal-0-false-false-false-in-ja-x-none.html
http://ndy2andy.blogdetik.com/2010/03/24/mobile-computing-komputer-bergerak/
https://4d1kurn14.wordpress.com/2010/04/25/mobile-computing/