Rabu, 26 Juni 2013

Pengantar Komputasi Cloud , Pengantar Quantum Computation dan Parallel Computation

Pengantar Quantum Computation
A. Pendahuluan
Quantum Computation ini menjadi bukti bahwa teknologi komputer sangat liar dalam perkembangan dan kemajuannya, tiap tahun ada saja inovasi dan terkadang terdapat evolusi didalamnya, sangat signifikan dan tentu hasilnya sungguh sangat mengagumkan. Tapi manusia modern sekarang selalu mengimpikan memiliki sebuah komputer canggih yang sering disebut Supercomputer, merupakan perangkat komputer hebat yang memiliki kecepatan super, nah, komputer yang layak menyandang predikat tersebut adalah Komputer Kuantum.

Teori ini pertama kali dilontarkan oleh seorang fisikawan yang bernama Paul Benioff 20 tahun silam, dia jugalah orang pertama yang mengimplementasikan teori fisika kuantum pada komputer di tahun 1981.

Apa sih sebenarnya Komputer Kuantum itu? Menurut beberapa sumber terkemuka macam wikipedia menyebutkan bahwa alat perhitungan yang menggunakan langsung dari kuantum mekanik fenomena, seperti superposisi dan belitan, untuk melakukan operasi pada data disebut Komputer Kuantum.

Lantas apa bedanya dengan komputer konvensional? Selain angka dasar 0 dan 1, komputer kuantum juga mengenal superposisi dari keduanya. Ini mengubah keadaan yang jika pada Komputer Konvensional hasil output nya berupa 0 ATAU 1, maka di kuantum, bisa ditemukan output 0 DAN 1. Komputer Kuantum juga tidak menggunakan bits pada umumnya, teknologi ini menggunakan QUBITS yang berarti Quantum Bits. Kemampuannya untuk berada di berbagai macam keadaanmembuat komputer kuantuk memiliki potensi untuk melaksanakan berbagai perhitungan secara simultan. Dan dampaknya komputer kuantum bisa jauh lebih cepat dari komputer digital.

B. Entanglement
Sebuah fenomena yang dihasilkan dari mekanika kuantum dan dimanfaatkan untuk teknologi komputer kuantum. Rumusannya seperti ini, terdapat 2 buah atom yang telah mendapatkan gaya tertentu, keduanya bisa masuk pada keadaan entangled. Keadaan ini memungkinkan kedua atom-atom tersebut akan tetap berhubungan walaupun jarak memisahkan keduanya. Ini dibuktikan dengan sebuah analogi yang menggambarkan sepasang manusia yang memiliki telepati yang jika salah satu dicubit maka yang lain akan merasakan sakit juga. Perlakuan terhadapa salah satu atom akan mempengaruhi keadaan atom yang menjadi pasangannya. Sikon ini sungguh cepat dan seakan-akan mengalahkan kecepatan cahaya!

C. Pengoperasian Data Qubits
Kedua nilai yang disimpan pada setiap qubit akan selalu mempengaruhi operasi komputer kuantum. Selain itu, sebuah n qubits sama-sama ber-superposisi dari 0 dan 1, dia berperan untuk mengkodekan 2n nilai. Komputer kuantum dapat menghitung nilai keseluruhannya sekaligus. Keadaan paralel ini memiliki istilah Paralelisme Kuantum. Setiap rangkaian yang tercipta selalu memiliki rangkaian kuantum yang sesuai. Kesimpulannnya, teknologi yang diterapkan pada komputer kuantum mampu melakukan perhitungan pada semua nilai pada waktu yang hampir sama, dengan waktu yang sama komputer konvensional hanya bisa melakukan perhitungan tunggal.

D. Algoritma Shor
Bentuk Algoritma Shor yang sederhana adalah mem-faktorkan bilangan 15, dimana untuk melakukannya dibutuhkan komputer kuantum 7 quabit. 7 quabit ini digambarkan oleh para ahli kimia dengan menciptakan 7 putaran nukleus. Nukleus ini terdiri dari 5 atom fluorin dan 2 atom karbon yang dapat berinteraksi satu dengan yang lain sebagai qubit.. Kedua jenis atom tersebut dapat di program dengan menggunakan impulse frekuensi radio dan dapat dideteksi dengan alat resonansi magnetis nuklir.

Algoritma Shor ini juga menarik minat para ilmuwan IBM untuk mengontrol sebuah tabung kecil yang berisikan 1 miliar atau didefinisikan 10 pangkat 8 dari molekul-molekul ini untuk dapat menjalankan algoritma shor. Tujuannya cuma satu yakni untuk mengindentifikasi secara tepat 3 dan 5 sebagai faktor 15. Sepele memang tapi kontrol yang dibutuhkan untuk mengkalkulasi nya sungguh sangat rumit.

Source :
http://id.wikipedia.org/wiki/Komputer_kuantum
http://www.faktailmiah.com/2010/08/06/kemajuan-jaringan-kuantum-dengan-entanglement-foton-pada-kubit-keadaan-padat.html











Pengantar Komputasi Cloud
A.Pendahuluan
Perkembangan teknologi di era ini menggunakan konsep - konsep seperti social networking, open, share, colaborations, mobile, easy maintenance, one click, terdistribusi, scalability, concurency, dan transparan. Sampai saat ini trend teknologi Cloud Computing (Komputasi Awan) masih terus diteliti dalam penelitian - penelitian para pakar IT dunia. Dengan berbagai kelebihan dan kekurangan, Cloud Computing hadir dengan memudahkan akses data dari mana saja dan kapan saja, karena dengan memanfaatkan internet dan menggunakan perangkat fixed atau mobile device menggunakan internet cloud sebagai tempat penyimpanan data, aplikasi dan lainya. Teknologi ini akan memberikan banyak keuntungan  baik dari sisi pemberi layanan (provider) atau dari sisi user. Penerapan teknologi ini memberikan dampak yang sangat signifikan bagi pengembangan teknologi itu sendiri, baik dari sisi pengguna maupun dari sisi industri. Pengguna diuntungkan dengan semakin mudahnya memperoleh atau mengunduh data secara cepat dan mudah karena banyak layanan yang dibuka oleh pihak industri. Keuntungan bagi pihak industri pun tidak kalah besar dengan kemudahan yang didapat oleh pengguna, karena dengan semakin majunya teknologi cloud computing akan semakin memudahkan industri untuk memasarkan produk dan menyebarkan informasi secara meluas keseluruh penjuru dunia. Cloud computing adalah gabungan pemanfaatan teknologi komputer dan pengembangan berbasis internet.

Kelebihan Cloud Computing:
Kelebihan paling menonjol dari cloud computing adalah kemudahan akses. Untuk mengerjakan suatu pekerjaan tidak mesti berada dihadapan satu komputer yang sama. Misal anda diberi tugas oleh oleh atasan anda untuk membuat sebuah bahan presentasi dengan format aplikasi power point, karena pada komputer anda tidak ada aplikasi power pointnya maka anda bisa membuatnya di Google Docs (Google Drive) ataupun skydrive nya windows. Cukup koneksi ke internet, login ke akun google atau hotmail. Outlook mail, maka anda pun sudah bisa membuat bahan presentasi secara online. Fleksibilitas, seperti contoh diatas, bahan presentasi yang kita buat tidak perlu di simpan di hardisk yang akan memakan ruang space. Dimanapun anda berada ataupun kemanapun anda berpergian file - file tersebut bisa dibuka dimana saja asalkan ada koneksi internet. Andaikata anda akan pergi ke perusahaan cabang anda, anda tidak perlu lagi repot - repot membawa laptop ke cabang perusahaan anda, karena semua file - file tersimpan diawan. Penghematan adalah kelebihan lain dari cloud computing.

Kekurangan Cloud Computing:
Hal yang paling wajib dalam cloud computing adalah koneksi internet, internet bisa dibilang jalan satu - satunya untuk menuju ke cloud computing, ketika tidak ada koneksi internet ditempat kita berada, maka jangan harap bisa menggunakan sistem cloud computing. Hal ini masih menjadi hambatan khususnya bagi Indonesia, karena belum semua wilayah di tanah air terjangkau oleh akses internet, ditambah lagi sekalipun ada koneksi internet, koneksinya belum stabil dan kurang memadai. Kerahasiaan dan keamanan adalah salah satu hal yang paling diragukan pada komputasi awan. Karena dengan menggunakan sistem cloud computing ini berarti kita mempercayakan sepenuhnya atas keamanan dan kerahasiaan data - data kepada perusahaan penyedia server komputasi awan (cloud computing). Contoh yang paling sederhana adalah ketika anda menyimpan foto - foto anda di facebook dengan beberapa konfigurasi privasi yang diberikan kepada kita, maka selebihya kita mempercayakan keamanan file - file tersebut kepada facebook. Andaikata foto - foto tersebut hilang kita tidak bisa menuntut karena kita memanfaatkan jasa tersebut secara cuma - cuma alias gratis.

B. Pengantar Komputasi Grid
Komputasi Grid sebenarnya  merupakan sebuah aplikasi pengembangan dari jaringan komputer (network). Hanya saja, tidak seperti jaringan komputer konvensional yang berfokus pada komunikasi antar piranti (device), aplikasi pada grid computing dirancang untuk memanfaatkan sumber daya pada terminal dalam jaringannya. Grid Computing biasanya diterapkan untuk menjalankan sebuah fungsi yang terlalu kompleks atau terlalu intensif untuk dikerjakan oleh satu sistem tunggal. Seperti halnya pengguna internet yang mengakses berbagai situs web dan menggunakan berbagai protokol  seakan - akan dalam sebuah sistem yang berdiri sendiri, maka pengguna aplikasi Grid Computing seolah - olah akan menggunakan sebuah virtual komputer dengan kapasitas pemrosesan data yang sangat besar.
Menurut definisi Grid Computing atau Komputasi Grid merupakan salah satu dari tipe data komputasi paralel. Karena penggunaan sumber daya nya melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber - sumber komputer yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas - batas domain administrasi yang ada.

Beberapa konsep dasar dari komputasi grid:
  • Sumber daya dikelola dan dikendalikan secara lokal
  • Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda 

Secara generik, keuntungan dasar dari penerapan komputasi grid, yaitu: 
1.     Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle
2.     Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah dapat berjalan lebih cepat dan mencakup domain yang lebih luas
3.     Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik.
4.     Data: Akses terhadap sumber data global, dan hasil penelitian lebih baik.
C. Virtualisasi 

 Ada dua istilah yang sedang popouler saat ini dalam hal teknologi komputasi, yaitu Virtualisasi dan Cloud computing, namun saat ini sepertinya banyak yang menganggap bahwa virtualisasi dan cloud computing adalah hal yang sama, padahal sebenarnya cloud computing itu lebih dari sekedar virtualisasi.

Virtualisasi adalah sebuah teknologi, yang memungkinkan anda untuk membuat versi virtual dari sesuatu yang bersifat fisik, misalnya sistem operasi, storage data atau sumber daya jaringan. Proses tersebut dilakukan oleh sebuah software atau firmware bernama Hypervisor. Hypervisor inilah yang menjadi nyawanya virtualisasi, karena dialah layer yang "berpura - pura" menjadi sebuah infrastruktur untuk menjalankan beberapa virtual machine. Dalam prakteknya, dengan membeli dan memiliki satu buah mesin, anda seolah - olah memiliki banyak server, sehingga anda bisa mengurangi pengeluaran IT untuk pembelian server baru, komponen, storage, dan software pendukung lainnya. 

D.  Distributed Computation dalam Cloud Computing

Komputasi terdistribusi merupakan bidang ilmu komputer yang mempelajari sistem terdistribusi. Sebuah sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan komputer. Komputer yang saling berinteraksi untuk mencapai tujuan bersama. Suatu program komputer yang berjalan dalam sistem terdistribusi disebut program didistribusikan, dan didistribusikan pemrograman adalah proses menulis program tersebut. Distributed computing juga mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah komputasi. Dalam distributed computing, masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan oleh satu komputer.

E. Map Reduce dan NoSQL (Not Only SQL)

Map-Reduce adalah salah satu konsep teknis yang sangat penting di dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita.
Salah satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google Big Table. 
Dan juga terinspirasi dari Google, pada ranah open source terlihat percepatan pengembangan framework lainnya yang juga bersifat terdistribusi dan menggunakan konsep yang sama, project open source tersebut bernama Apache Hadoop.

NoSQL adalah istilah untuk menyatakan berbagai hal yang didalamnya termasuk database sederhana yang berisikan key dan value seperti Memcache, ataupun yang lebih canggih yaitu non-database relational seperti MongoDBCassandraCouchDB, dan yang lainnya.
Wikipedia menyatakan NoSQL adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NoSQL mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan berkembang secara horisontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem menejemen database relasional.

 F. NoSQL Database

Database NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan data dan desain database yang berguna untuk set yang sangat besar data terdistribusi.

NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skalabilitas dan kinerja data yang besar yang database relasional tidak dirancang untuk menangani. NoSQL ini sangat berguna ketika perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual server di awan. .

Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarang bahasa query terstruktur (SQL). Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupel.


sumber:










April 1, 2011
Pengertian
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat programberjalan 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.
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanyadiperlukan saat kapasitas yangdiperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karenatuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel inidiperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkandengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itudiperlukan aneka perangkat lunak pendukung yang biasa disebut sebagaimiddleware yangberperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnyapemakai 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) 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

http://dikky12.files.wordpress.com/2011/04/11.jpg?w=300&h=245
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 :
http://dikky12.files.wordpress.com/2011/04/22.jpg?w=540

Aristektur Komputer Parallel
1.     Komputer SISD (Single Instruction stream-Single Data stream)
2.     Komputer SIMD (Single Instruction stream-Multiple Data stream)
3.     Komputer MISD (Multiple Instruction stream-Single Data stream)
4.     Komputer MIMD (Multiple Instruction stream-Multiple Data stream)