Wednesday, June 28, 2017

Rancang Bangun Instalasi dan Konfigurasi Mail Server Dengan Linux Ubuntu 14.04 LTS

Apa itu Mail Server?

Mail Server adalah sebuah aplikasi yang menerima e-mail dari pengguna lokal (dari domain yang sama) maupun pengirim remote dari jaringan lain (internet). Selain itu Mail Server juga mampu mem-forward e-mail tersebut ke Mail Server lainnya untuk dikirim.


Intinya Mail Server adalah yang melayani kalian para user dalam proses pengiriman dan 
penerimaan e-mail seperti halnya kantor pos. Untuk dapat mengirimkan e-mail, sebuah Mail Server harus memiliki sebuah MTA (Mail Transport Agent) didalamnya. Fungsi utamanya adalah untuk mengirimkan e-mail dari Mail

Server lokal ke Mail Server remote. Sebenarnya ada banyak sekali jenis-jenis MTA yang Dapat kalian install di Debian. Beberapa contohnya adalah :
Postfix ,Sendmail ,Qmail ,Exim ,Zimbra


Selain untuk mengirimkan e-mail, Mail Server juga bertugas untuk menerima e-mail menggunakan protokol POP atau IMAP. Untuk itu diperlukan juga sebuah POP dan IMAP  server agar Mail Server dapat berfungsi dengan sempurna dalam menerima email masuk dari MTA Mail Server lain. Contoh POP dan IMAP server yang cukup terkenal adalah Courier dan Dovecot.

Okelah langsung saja kita mulai. Mohon diperhatikan langkah perlangkahnya. Karena konfigurasi ini membutuhkan ketelitian. Jika ada kesalahan satu karakter pun, maka akan mengakibatkan Mail Server tidak berjalan.
  • Pertama yang harus kita lakukan adalah mengintal mail servernya menggunakan postfix dan courier. langkah-langkahnya adalah:  #apt-get install postfix courier-pop courier-imap

  • Maka akan muncul langkah-langkah seperti di bawah ini yaitu postfix configuration:

  • Kita pilih Oke saja pada configurasi postfix pertama ini.
  • Selanjutnya pilih Internet Site pada General Type Mail nya.
  • Masukkan domain yang sudah dikonfigurasikan di dns server. yaitu "diwaw.edu" setelah itu pilih ok.


  • Ketika ia meminta memasukkan postmaster, silahkan anda kosongkan saja, lalu pilih OK.


  • Kemudian akan muncul seperti kotak diatas untuk alamat-alamat penerima email. tidak perlu ditambahkan apapun, default saja lalu pilih OK


  • Pada Force Synchronous updates on mail queue, Kali ini kita pilih NO
  • Setelah itu muncul local networks. bisa kalian tambahkan di paling belakang "0.0.0.0/0" atau di diamkan saja lalu pilih OK.
  • Lalu muncul "mailbox size limit" di 0 kan saja secara default. Lalu pilih OK
  • Setelah itu muncul lagi "local address extension character" kita biarkan simbol "+" saja dan tekan OK

  • Pada internet protocol, kita pilih all saja lalu OK


Setelah sudah konfigurasi postfixnya. Kita akan buat mailboxnya. Yaitu sebagai berikut:

  • Kita buat main folder untuk emailnya dengan perintah: # maildirmake /etc/skel/maildir

  • Kemudian kita edit file main.cf nya dengan perintah : # nano /etc/postfix/main.cf dan kemudian kita tambahkan di paling bawah atau paling akhir dengan = "home_mailbox = Maildir/"

  • Setelah itu ada baiknya kita reconfigure postfixnya, dengan perintah : # dpkg-reconfigure postfix. lalu akan muncul seperti konfigurasi postfix diatas, pilih OK saja hingga akhir.

  • Lalu setelah kita install mailserver yaitu postfix, courier-pop, courier-imap, silahkan anda restart semua service dengan perintah:
    • #Serivce postfix restart
    • #Serivce courier-ipop restart
    • #Serivce courier-imap restart
    • #Serivce bind9 restart

  • Setelah itu kita sudah installasi dan konfigurasi mail server, tinggal kita buat user baru dengan perintah : #adduser [nama user] seperti berikut ini:


  • Setelah itu, barulah kita install SquirrelMailnya. yaitu dengan cara : # apt-get install squirrelmail . Lalu tekan "Y" dan enter jika sistem meminta konfirmasi pemakaian disk space.
  • Setelah terinstall konfigurasi squirrelmail dan apache2 karena mereka saling terkait sesama layanan yang berbasis web, kita harus include konfigurasi squirrel dengan menambahkan baris berikut "/etc/apache2/apache2/conf" tambahkan baris Include "/etc/squirrelmail/apache.conf" Seperti gambar di bawah ini. (buka file dengan vi /etc/apache2/apache2.conf)

  • Lalu setelah itu tinggal kita buka mail servernya dengan browsernya yaitu ketikan "Localhost/squirrelmail

  • Lalu log in dengan user yang sudah kita buat tadi sebelumnya yaitu receiver

  • Maka akan muncul tampilan utama squirrel mail seperti di bawah ini:

  • lalu pilih compose dan coba kirim email ke alamat si penerima yaitu : receive


  • Pilih send, kemudian log in sebagai receiver, maka pesan yang dikirim oleh sender tadi akan muncul.



Sekian Tutorial instalasi dan konfigurasi mail server menggunakan linux ubuntu 14.04 LTS. Mohon dikerjakan dengan sangat teliti. Karena salah satu karakter pun akan membuat mail server kita tidak berjalan. Sekian dan Terima Kasih. Semoga bermanfaat :)

Saturday, June 03, 2017

Pengertian Lengkap Parallel Computation

Assalamualaikum.
Halo apa kabar semuanya? pada postingan kali ini bertepatan dengan bulan Ramadhan 1438H selamat berpuasa semuanya!


Kali ini saya akan menjelaskan mengenai Parallel Computing yang tentunya akan dikupas secara tuntas. Pernahkah kalian mendengar istilah tersebut? apa sih itu? apa sejarahnya? bagaimana cara kerjanya? dan lain-lainya. untuk itu mari kita bahas satu per satu.

Apa itu Computing?



Computing atau Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.

Secara umum iIlmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu.

Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.

Kalo Pararel itu Sendiri Apa Sih?



Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.

Jadi Pararrel Computing itu Apa?



Pararrel Computing atau Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. 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.


Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. 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.

Komputasi paralel membutuhkan:
  • Algoritma
  • Bahasa Pemrograman, dan
  • Compiler
Sebagai besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. 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.

Apa Tujuannya?



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 yg 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.


Bagaimana Sejarahnya Terbentuknya?


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. Untuk melakukan perhitungan komputasi dengan menggunakan 2 atau lebih CPU/Processor dalam suatu komputer yang sama atau komputer yang berbeda dimana dalam hal ini setiap instruksi dibagi kedalam beberapa instruksi kemudian dikirim ke processor yang terlibat komputasi dan dilakukan secara bersamaan disebut dengan Parallel komputasi. Software yang betugas untuk pembagian proses komputasi digunakan Message Parsing Interface (MPI).

Bedanya Komputasi Paralel dengan Multitasking Apa?



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 atau arsitektur komputer pararel yang digunakan, yaitu:
  • SISD
  • SIMD
  • MISD
  • MIMD

Apa Aja Aristektur Komputer Parallel?


  • Komputer SISD (Single Instruction stream-Single Data stream)
Pada komputer jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya overlapping dalam eksekusi setiap bagian instruksi (pipelining). Pada umumnya komputer SISD berupa komputer yang terdiri atas satu buah pemroses (single processor). Namun komputer SISD juga mungkin memiliki lebih dari satu unit fungsional (modul memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut berada dalam kendali sebuah unit pengendali.



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.


  • Komputer SIMD (Single Instruction stream-Multiple Data stream)

Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang berbeda pula.


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).


  • Komputer MISD (Multiple Instruction stream-Single Data stream)

Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian.



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.


  • Komputer MIMD (Multiple Instruction stream-Multiple Data stream)

Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah.


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.


Apa Itu Message Passing Interface?


MPI adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel. Proses yang dijalankan oleh sebuah aplikasi dapat dibagi untuk dikirimkan ke masing – masing compute node yang kemudian masing – masing compute node tersebut mengolah dan mengembalikan hasilnya ke komputer head node. Untuk merancang aplikasi paralel tentu membutuhkan banyak pertimbangan – pertimbangan diantaranya adalah latensi dari jaringan dan lama sebuah tugas dieksekusi oleh prosesor.


MPI ini merupakan standard yang dikembangkan untuk membuat aplikasi pengirim pesan secara portable. Sebuah komputasi paralel terdiri dari sejumlah proses, dimana masing-masing bekerja pada beberapa data lokal. Setiap proses mempunyai variabel lokal, dan tidak ada mekanisme suatu proses yang bisa mengakses secara langsung memori yang lain. Pembagian data antar proses dilakukan dengan message passing, yaitu dengan mengirim dan menerima pesan antar proses.

MPI menyediakan fungsi-fungsi untuk menukarkan antar pesan. Kegunaan MPI yang lain adalah
  1. Menulis kode paralel secara portable,
  2. Mendapatkan performa yang tinggi dalam pemrograman paralel, dan
  3. Menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang tidak begitu cocok dengan model data paralel.

Sedangkan 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.


Komunikasi dapat berlangsung bila masing-masing komputer mempunyai hak akses ke filesystem semua komputer. Akses kefile system dilakukan melalui protokol rsh yang berjalan di unix atau windows. Berikut adalah langkah pengaturan pada masing-masing komputer :
  1. Buat file hostfile yang berisi daftar node komputer dan nama user yang akan dipakai untuk komputasi parallel. Bila nama user pada semua komputer sama misalnya nama user riset pada komputer C1, C2,C3 dan C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan bila nama user di masing-masing komputer berbeda.
  2. Daftarkan IP masing-masing komputer pada file /etc/hosts/hosts.allow dan /etc/hosts/hosts.equiv.
  3. Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui konsole PVM. Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat digunakan.

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.

Secara umum, langkah implementasi komputasi parallel sebagai berikut :
  1. Jalankan PVM daemon pada setiap mesin dalam cluster
  2. Jalankan program master pada master daemon
  3. Master daemon akan menjalankan proses slave.

Bagaimana Perkembangan Komputasi Pararel 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). 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 Dikti, Fasilkom UI juga membangun mesin paralel. 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.

Sekian penjelasan saya mengenai Parallel Computing, Terima kasih sudah membaca :)

Sumber & Referensi:
https://en.wikipedia.org/wiki/Parallel_computing
http://computer-science.infokelaskaryawan.com/en3/2587-2471/Komputasi-Paralel
https://staff.blog.ui.ac.id/herik/2008/07/02/pemrograman-paralel-dengan-parallel-virtual-machine
Google Image

Saturday, April 22, 2017

Quantum Computation


Halo, Apa kabar semuanya? Pernah gak sih kalian mendengar istilah "Quantum Computation"? pasti sangat asing bukan di telingan kalian. di telinga saya saja sangat asing hehe.. Nah untuk itu yuk kita bahas apa itu Quantum Computation?  Bagaimana perkembangannya? Apa keuntungan dan kerugiannya? dan lainnya yang berhubungan dengan istilah tersebut? yuk mari kita kupas tuntas Quantum Computation itu.

Apa Sih Quantum Computer?


Merupakan alat hitung yang menggunakan mekanika kuantum seperti superposisi dan keterkaitan, yang digunakan untuk peng-operasi-an data. Dalam mekanika kuantum, suatu partikel bisa berada dalam dua keadaan sekaligus. Inilah yang disebut keadaan superposisi. Dalam komputer kuantum, selain 0 dan 1, dikenal pula superposisi dari keduanya. Ini berarti keadaannya bisa berupa 0 dan 1, bukan hanya 0 atau 1 seperti di komputer digital biasa. Komputer kuantum tidak menggunakan Bits tetapi QUBITS (Quantum Bits).


Karena kemampuannya untuk berada di bermacam keadaan (multiple states), komputer kuantum memiliki potensi untuk melaksanakan berbagai perhitungan secara simultan sehingga jauh lebih cepat dari komputer digital. Kini Sebuah perkembangan teknologi baru telah lahir yaitu Komputer Quantum, debutnya pada tanggal 13 February, 20 tahun lebih cepat dari jadwal sebelumnya.Kemampuan komputasi nya yang luar biasa ( dapat melakukan 64000 operasi secara simultan).

Dengan latar belakang Hukum Moore, Bahwa secara bertahap ukuran circuit chip akan semakin kecil didalam paket chip silikon dan nantinya akan tercapai suatu titik dimana masing-masing elemen tidak akan lebih luas dari ukuran beberapa atom. (Bisa dilihat HP, PDA dan Komputer-komputer sekarang yang makin kecil dan tipis aja..) Ini dikarenakan dalam skala atomik terdapat kelakuan dan sifat dari sirkuit yang memenuhi hukum fisika mekanika kuantum.

Bagaimana Sejarah Quantum Computation?



  • 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).
  • Saat ini piha google sudah melakukan percobaan dan pembuatan tentang computer kuantum ini. Google meneraplan Algoritma yang sama telah diterapkan pada produk lab Google yakni Google Image Swirl dimana secara cerdas komputer bisa menentukan dan mengelompokkan mana gambar mobil Jaguar dengan mana gambar binatang Jaguar. Atau misalnya mana kelompok gambar buah Apel dengan kelompok gambar komputer apple. Ini adalah salah satu contoh pengembangan computer kuantum yang dibuat google.


Perbedaan Dengan Komputer Biasa/Klasik Apa?


Memori komputer klasik merupakan string dari 0s dan 1s, dan ia mampu melakukan perhitungan hanya pada sekumpulan bilangan secara simultan. Memori komputer kuantum merupakan sebuah keadaan kuantum yang mrupakan superposisi dari bilangan-bilangan yang berbeda. Sebuah komputer kuantum dapat melakukan perhitungan klasik reversible secara bebas pada semua bilangan secara bersamaan.

Pelaksanaan sebuah komputasi pada bilangan yang berbeda pada saat yang sama dan kemudian penginterferesian semua hasil untuk mendapatkan satu jawaban, menjadikan sebuah komputer kuantum jauh lebih kuat daripada komputer klasik (West, 2000).


Sepanjang sejarah komputasi, bit tetap merupakan unit komputasi dasar informasi. Mekanika kuantum memungkinkan pengkodean informasi dalam bit kuantum (qubit). Tidak seperti bit klasik, yang hanya bisa menyimpan nilai tunggal – baik 0 atau 1 – qubit dapat menyimpan baik 0 dan 1 pada saat yang sama.

Selanjutnya, register kuantum 64 qubit dapat menyimpan nilai 264 sekaligus. Komputer Kuantum dapat melakukan perhitungan pada semua nilai-nilai ini pada saat yang sama. Namun, penggalian hasil dari perhitungan paralel masif telah terbukti sulit, membatasi jumlah aplikasi yang telah menunjukkan peningkatan kecepatan yang signifikan dibandingkan komputasi klasik.



Paralelisme klasik juga dapat meningkatkan jumlah nilai yang ditangani secara bersamaan, tapi lama sebelum mencapai jumlah paralelisme yang dicapai oleh sebuah komputer kuantum, sebuah sistem klasik kehabisan ruang. Untuk sistem klasik, jumlah paralelisme meningkat dalam proporsi langsung dengan ukuran sistem.

Entanglement? Apa Hubungannya?


Belitan adalah istilah yang digunakan dalam teori kuantum untuk menggambarkan cara bahwa partikel energi/materi dapat menjadi berkorelasi, diduga dan diprediksi berinteraksi satu sama lain terlepas dari seberapa jauh mereka berada. Keadaan ini tidak memiliki analogi klasiknya. Keadaan terbelit, seperti pasangan EPR yang akan kita bahas segera, bertanggung jawab atas sebagian besar pencapaian paralelisme sistem kuantum. Dengan demikian, komputasi yang memanfaatkan paralelisme kuantum sering disebut pengolahan informasi “belitan” yang disempurnakan (entanglement–enhanced information processing ).

Menurut mekanika kuantum kekuatan luar yang bekerja pada dua partikel dari sistem kuantum dapat menyebabkan mereka menjadi terbelit. Keadaan kuantum dari sistem ini dapat berisi semua posisi spin (momen magnetik internal) dari setiap partikel. Spin total sistem hanya bisa sama untuk nilai diskrit tertentu dengan probabilitas yang berbeda. Pengukuran spin total sistem kuantum tertentu menunjukkan bahwa posisi spin beberapa partikel tidak independen dari yang lainnya.

Untuk sistem tersebut, ketika orientasi spin dari satu partikel diubah dengan beberapa alasan, orientasi spin dari partikel lain akan berubah secara otomatis dan cepat. Hukum yang yang telah dikembangkan sejauh ini tentang kecepatan cahaya tidak taati dalam kasus ini, karena perubahan orientasi spin terjadi segera. Setidaknya ada hipotesis untuk menggunakan fenomena ini dalam komputasi kuantum.

Kecepatan komunikasi dibatasi oleh kecepatan cahaya karena tidak ada sesuatupun dapat melakukan perjalanan lebih cepat dari kecepatan cahaya. Pertanyaannya adalah bagaimana partikel dari sistem kuantum berkomunikasi ketika mereka mengubah orientasi spinnya dan akibatnya keadaan vektornya. Ilmuwan terkenal menghabiskan banyak waktu membahas masalah ini. Ide Einstein, bahwa beberapa “parameter tersembunyi” yang tidak diketahui dari sistem kuantum berkontribusi terhadap efek ini, telah ditolak secara teoritis dan eksperimental.

Hal ini adalah salah satu contoh yang menunjukkan perbedaan antara realitas klasik dan kuantum. Efek sistem kuantum ini dapat menjelaskan banyak aspek alam (misalkan karakteristik kimia dari atom dan molekul) dan telah dibuktikan melalui oleh eksperimen.

Sedangkan Qubits? Apa itu Qubits?


Dalam mekanika kuantum, apabila sistem memiliki dua atau lebih peluang yang memungkinkan, ia dapat menjelajahi mereka secara bersamaan. Setiap sistem dua keadaan, seperti jalur foton, dapat mewakili qubit. Dalam komputer kuantum, kita malah mungkin menggunakan dua orbit elektron dalam atom untuk mewakili qubit. Atom bisa eksis dalam superposisi dari 0 dan 1, mirip seperti lonceng yang dipukul dapat bergetar pada dua frekuensi yang berbeda secara bersamaan.


Dalam sebuah percobaan yang terkenal, cahaya dari satu sumber melewati dua celah, menciptakan sebuah pola interferensi pada layar. Bahkan ketika sumber cahaya hanya memancarkan satu foton pada suatu waktu, pola interferensi muncul. Standar teori kuantum mendalilkan bahwa setiap foton bergerak pada kedua jalur (path) sekaligus. Dengan demikian, partikel dapat berada di dua tempat pada saat yang sama. Dalam situasi tersebut, kita mengatakan bahwa posisi partikel berada dalam superposisi dari dua keadaan. Dua jalur perjalanan partikel dapat mewakili dua keadaan dari sebuah bit, 0 dan 1.

Apa Saja Algoritma Pada Quantum Computation?


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


Yaitu sebuah algoritma kuantum yang efisien bisa menguraikan pada pengali jumlah besar. Algortima ini merupakan pusat pada sistem yang menggunakan teori bilangan untuk memperkirakan periodisitas dari urutan nomor. Ditemukan oleh Peter Shor. Algortima ini di perbaharui oleh Lov Grover dari Bell Labs pada tahun 1996, dengan algoritma yang sangat cepat dan terbukti menjadi yang tercepat mungkin untuk mencari melalui database tidak terstruktur.


Algoritma ini sangat efisien sehingga hanya membutuhkan rata-rata, sekitar akar N persegi pencarian untuk menemukan hasil yang diinginkan, sebagai lawan pencarian dalam komputasi klasik, yang pada kebutuhan rata-rata N / 2 pencarian. N adalah jumlah total elemen.

Algoritma Shor didasarkan dari sebuah teori bilangan: fungsi F(a) = xamod n adalah feungsi periodik jika x adalah bilangan bulat yang relatif prima dengan n. Dalam Algoritma Shor, n akan menjadi bilangan bulat yang hendak difaktorkan. 

Pada masalah ini algoritma quantum shor memanfaatkan pararellisme quantum untuk melakukannya hanya dengan satu langkah. Karena F(A) adalah fungsi periodik, maka fungsi ini memiliki sebuah periode r. Diketahui x0mod n = 1, maka xr mod n =1, begitu juga x2r mod n dan seterusnya.

Algoritma Grover


Algoritma Grover adalah sebuah algoritma kuantum untuk mencari database disortir dengan entri N di O ( N1 / 2 ) waktu dan menggunakan O ( log N ) ruang penyimpanan (lihat notasi O besar ) . Lov Grover dirumuskan itu pada tahun 1996 . Dalam model komputasi klasik , mencari database unsorted tidak dapat dilakukan dalam waktu kurang dari waktu linier (jadi hanya mencari melalui setiap item optimal ) .

Algoritma Grover menggambarkan bahwa dalam model kuantum pencarian dapat dilakukan lebih cepat dari ini ; sebenarnya waktu kompleksitas O ( N1 / 2 ) adalah asimtotik tercepat mungkin untuk mencari database unsorted dalam model kuantum linear . Ini menyediakan percepatan kuadrat , seperti algoritma kuantum lainnya , yang dapat memberikan percepatan eksponensial atas rekan-rekan mereka klasik . Namun, bahkan percepatan kuadrat cukup besar ketika N besar .

Seperti banyak algoritma kuantum , algoritma Grover adalah probabilistik dalam arti bahwa ia memberikan jawaban yang benar dengan probabilitas tinggi . Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma. ( Sebuah Contoh Bahasa dari algoritma kuantum deterministik adalah algoritma Deutsch – Jozsa , Yang Selalu menghasilkan jawaban Yang BENAR).

Bagaimana Implementasi Quantum Computation?


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. Dengan menggunakan desentralisasi, segerombolan kuantum AI, dimungkinkan untuk mensimulasikan perilaku muncul juga, seperti Langton itu semut, yang bisa melihat munculnya kecerdasan simulasi berbasis kuantum yang bisa pergi sejauh untuk menciptakan robot selular realistis pada komputer.


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.

Selain itu, dimungkinkan untuk menggunakan metaheuristik untuk melakukan koreksi kesalahan pada perangkat lunak menggunakan jaringan syaraf tiruan dengan membandingkan pemecahan sebuah komputer kuantum dengan perangkat lunak program reguler dari komputer biasa masalah dioptimalkan. Karena komputer biasa tidak kuantum mekanik, mereka harus diprogram klasik. Namun, dengan menggunakan metaheuristik kuantum dimungkinkan untuk melakukan optimasi masalah menggunakan kecerdasan buatan pada sebuah komputer kuantum dan kemudian dibandingkan dengan arsitektur baris perintah dalam software konvensional pada komputer klasik , yang mungkin terlalu rumit untuk memodifikasi.


Sekian & Terima Kasih sudah membaca :)

Sumber & Referensi:

https://id.wikipedia.org/wiki/Komputer_kuantum
http://raisaigaekklesia.blogspot.co.id/2014/05/quantum-computing.html
https://amoekinspirasi.wordpress.com/2014/05/15/pengertian-quantum-computing-dan-implementasinya/
http://ilmuti.org/wp-content/uploads/2014/05/Thiofany_Angelius_Dachi_Komputer_Kuantun.pdf
Google Image