Kamis, 28 Mei 2015

Komputasi Paralel

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dan lain-lain.

Konsep Paralelisme

Pemrosesan paralel dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan pelaksanaan kejadian-kejadian, dalam interval waktu yang sama, dalam waktu yang bersamaan atau dalam rentang waktu yang saling tumpang tindih.
Sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika dan lain-lain. Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik, karena masalah numerik merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat tinggi.

Pemrosesan Terdistribusi

Pemrosesan Terdistribusi atau Sistem Terdistribusi adalah Sekumpulan komputer otonom yang terhubung ke suatu jaringan, dimana bagi pengguna sistem terlihat sebagai satu komputer. Pemrosesan terdistribusi berkembang karena kebutuhan untuk dapat memecahkan masalah besar dan kompleks dengan menggunakan berbagai macam aturan divide and conquer. Alasan lain yang mendasar adalah struktur organisasi yang berubah menjadi terdistribusi.

Arsitektur Komputer Paralel

Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai. 
Taksonomi dari model pemrosesan paralel dibuat berdasarkan alur instruksi dan alur data yang digunakan:

SISD Single Instruction Single Datapath, ini prosesor tunggal, yang bukan paralel.

SIMD Single Instruction Multiple Datapath, alur instruksi yang sama dijalankan terhadap banyak alur data yang berbeda. Alur instruksi di sini kalau tidak salah maksudnya ya program komputer itu. trus datapath itu paling ya inputnya, jadi inputnya lain-lain tapi program yang digunakan sama.

MIMD Multiple Instruction Multiple Datapath, alur instruksinya banyak, alur datanya juga banyak, tapi masing-masing bisa berinteraksi.


 MISD Multiple Instruction Single Datapath, alur instruksinya banyak tapi beroperasi pada data yang sama.

Pengantar Thread Programming

Threading / Thread adalah sebuah alur kontrol dari sebuah proses. Konsep threading adalah menjalankan 2 proses ( proses yang sama atau proses yang berbeda ) dalam satu waktu. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Threading dibagi menjadi 2 :

Static Threading
Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan prosesor itu.

Dynamic Multithreading
Teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static threading. Concurrency platform ini menyediakan scheduler yang melakukan load balacing secara otomatis. Walaupun platformnya masih dalam pengembangan namun secara umum mendukung dua fitur : nested parallelism dan parallel loops.

Pengantar Message Parsing, Open MP

Massage Passing merupkan suatu teknik bagaimana mengatur suatu alur komunikasi messaging terhadap proses pada system. Message passing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel , pemrograman-berorientasi objek , dan komunikasi interprocess . Dalam model ini, proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode ke proses lainnya dan dapat melakukan sinkronisasi. Objek didistribusikan dan metode sistem remote doa seperti ONC RPC , CORBA , Java RMI , DCOM , SOAP , . NET Remoting , CTO , QNX Neutrino RTOS , OpenBinder , D-Bus , Unison RTOS dan serupa pesan lewat sistem.

OpenMP (Open Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada berbagai arsitektur, termasuk Unix dan Microsoft Windows platform. OpenMP Terdiri dari satu set perintah kompiler,perpustakaan rutinitas, dan variabel lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model hibrida pemrograman paralel dapat dijalankan pada komputer cluster dengan menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan dengan menggunakan ekstensi OpenMP non-shared memory systems.

Pengantar Pemrograman CUDA GPU

CUDA erat kaitannya dengan GPU atau Graphics Processing Unit. GPU adalah sebuah processor khusus yang dirancang untuk mempercepat, memanipulasi dan mengubah memori yang berfungsi mempercepat pemuatan gambar.

CUDA merupakan suatu cara yang dibuat oleh NVIDIA agar GPU yang ada tidak hanya untuk mengolah  grafis melainkan juga dapat untuk tujuan umum. CUDA sendiri mendukung pemrogrman bahasa C yang dimana dapat terhubung langsung dengan GPU.  untuk melihatnya dapat membuka www.nvidia.com/cuda .

Referensi :

http://ahmadqusyairi.blogspot.com/2010/03/openmp-open-multi-processing.html
http://id.wikipedia.org/wiki/Komputasi_terdistribusi
http://ananda-syaifullah.blogspot.com/2015/05/komputasi-parallel.html
http://jempoluburubur.blogspot.com/2013_05_01_archive.html
http://djuneardy.blogspot.com/2015/05/konsep-arsitektur-paralel-pemrosesan.html

Rabu, 29 April 2015

Definisi Web Science, Sejarah Web dan Arsitektur Web

Definisi Web Science

Web Science merupakan sebuah ilmu desentralisasi sistem informasi. Web Science membutuhkan pemahaman akan Web dan juga fokus pada pengembangan terhadap kebutuhan komunikasi dan representasi.

Web Science merupakan inovasi baru yang diciptakan oleh seorang bernama Tim Berners-Lee yang mensupport dari berdirinya cabang ilmu ini. Tim Berners-Lee juga seorang penemu World Wide Web. Web Science yang dalam bahasa Indonesia berarti jaringan pengetahuan atau dapat diartikan bahwa suatu web yang menyediakan berbagai ilmu pengetahuan didalamnya dan menjadikan wadah / tempat terdapatnya ilmu pengetahuan tersebut. Web science juga dapat melakukan penelitian lintas disiplin dan menjelajah ke berbagai bidang yang sangat khusus di dalam disiplin ilmu.Dalam definisi di jelasakan bahwa web science dapat menyediakan berbagai ilmu pengetahuan, tentunya dalam ilmu pengetahuan terdapat berbagai macam kegunaan diantaranya adalah sebagai berikut :

Web science memiliki berbagai macam kegunaan, seperti halnya :

1. Dapat mencari artikel yang berdampak tinggi dan prosiding konferensi.

2. Dapat menemukan hasil yang relevan dalam bidang-bidang terkait.

3. Dapat mengidentifikasi potensi kolaborator dengan catatan rujukan signifikan.


4. Dapat mengintegrasikan, mencari, menulis, dan bibliografi penciptaan menjadi satu proses yang efisien.

Sejarah Web

Web 1.0
Merupakan teknologi Web generasi pertama yang merupakan revolusi baru di dunia Internet karena telah mengubah cara kerja dunia industri dan media. Pada dasarnya, Website yang dibangun pada generasi pertama ini secara umum dikembangkan untuk pengaksesan informasi dan memiliki sifat yang sedikit interaktif.

Web 2.0
Web 2.0 Istilah Web 2.0 pertama kalinya diperkenalkan oleh O’Reilly Media pada tahun 2004 sebagai teknologi Web generasi kedua yang mengedepankan kolaborasi dan sharing informasi secara online. Menurut Tim O’Reilly, Web 2.0 dapat didefinisikan sebagai berikut: “Web 2.0 adalah revolusi bisnis di industri komputer yang disebabkan oleh penggunaan internet sebagai platform, dan merupakan suatu percobaan untuk memahami berbagai aturan untuk mencapai keberhasilan pada platform baru tersebut.

Web 3.0

definisi untuk Web 3.0 sangat beragam mulai dari pengaksesan broadband secara mobile sampai kepada layanan Web berisikan perangkat lunak bersifat on-demand [Joh07]. Namun, menurut John Markoff, Web 3.0 adalah sekumpulan teknologi yang menawarkan cara baru yang efisien dalam membantu komputer mengorganisasi dan menarik kesimpulan dari data online. Berdasarkan definisi yang dikemukakan tersebut, maka pada dasarnya Semantic Web memiliki tujuan yang sama karena Semantic Web memiliki isi Web yang tidak dapat hanya diekpresikan di dalam bahasa alami yang dimengerti manusia, tetapi juga di dalam bentuk yang dapat dimengerti, diinterpretasi dan digunakan oleh perangkat lunak (software agents)

Arsitektur Web

Arsitektur Website adalah suatu pendekatan terhadap desain dan perencanaan situs yang, seperti arsitektur itu sendiri, melibatkan teknis, kriteria estetis dan fungsional. Seperti dalam arsitektur tradisional, fokusnya adalah benar pada pengguna dan kebutuhan pengguna. Hal ini memerlukan perhatian khusus pada konten web, rencana bisnis, kegunaan, desain interaksi, informasi dan desain arsitektur web. Untuk optimasi mesin pencari yang efektif perlu memiliki apresiasi tentang bagaimana sebuah situs Web terkait dengan World Wide Web.
Sejak web perencanaan isi, desain dan manajemen datang dalam lingkup metode desain, Vitruvian tradisional tujuan komoditas, keteguhan dan kesenangan dapat memandu arsitektur situs, seperti yang mereka lakukan arsitektur fisik dan disiplin desain lainnya. Website arsitektur akan datang dalam ruang lingkup estetika dan teori kritis dan kecenderungan ini dapat mempercepat dengan munculnya web semantik dan web 2.0. Kedua ide menekankan aspek struktur informasi. Strukturalisme adalah sebuah pendekatan untuk pengetahuan yang telah dipengaruhi sejumlah disiplin akademis termasuk estetika, teori kritis dan postmodernisme. Web 2.0, karena melibatkan user-generated content, mengarahkan perhatian arsitek website untuk aspek-aspek struktur informasi.

Suatu pendekatan terhadap desain dan perencanaan situs yang, seperti arsitektur itu sendiri, melibatkan teknis, kriteria estetika dan fungsional. Seperti dalam arsitektur tradisional, fokusnya adalah benar pada pengguna dan kebutuhan pengguna. Hal ini memerlukan perhatian khusus pada konten web, rencana bisnis, kegunaan, desain interaksi, informasi dan desain arsitektur web. Untuk optimasi mesin pencari yang efektif perlu memiliki apresiasi tentang bagaimana sebuah situs Web terkait dengan World Wide Web.
“Website arsitektur” memiliki potensi untuk menjadi istilah yang digunakan untuk disiplin intelektual mengatur konten website. ”Web desain”, dengan cara kontras, menggambarkan tugas-tugas praktis, bagian-bagian-grafis dan teknis, dari merancang dan menerbitkan sebuah situs web. Perbedaan tersebut dibandingkan dengan yang antara tugas mengedit sebuah koran atau majalah dan desain grafis dan pencetakan. Tetapi hubungan antara editorial dan kegiatan produksi adalah lebih dekat untuk publikasi web daripada untuk penerbitan cetak. Tiga standar utama untuk penerapan web services. Standar-standar ini mendukung pertukaran data berbasis XML. Tiga standar tersebut meliputi SOAP, WSDL, dan UDDI. Berikut bakal tak jelaskan secara singkat mengenai standar tersebut. SOAP ( Simple Object Access Protocol ).
Protokol ini mendukung proses pengkodean data (biasanya XML) dan transfernya melalui HTTP (Hyper Text Transfer Language). Dalam konteks web services, SOAP adalah suatu bahasa versi bebas dari protokol RPC (Remote Procedure Caoll) yang berguna untuk proses transaksi melalui HTTP standar. SOAP membuat klien web service dapat memilih beberapa parameter mengenai permintaannya dan memberikannya kpd si penyedia. Ketika penyedia menganggapi permintaan tersebut, maka terjadilah web services.WSDL ( Web Services Description Language ) Merupakan bahasa berbasis XML yang menjelaskan fungsi-fungsi dalam web services. WSDL menyediakan cara untuk memanfaatkan kapabilitas web services. WSDL memberi tahu mesin lain bagaimana memformat/ menterjemahkan permintaan yang diterima berikut respon mereka agar proses web service bisa berjalan. Singkatnya, WSDL adalah bahasa yang memungkinkan berbagai dokumen yang dibuat dalam aplikasi yang berbeda dapat berkomunikasi.
UDDI (Universal Description Discovery and Integration ) Adalah semacam direktori global untuk mengelola web services. Fungsinya mirip dengan Yellow Pages untuk versi web services. UDDI berisi informasi tentang penawaran atau layanan apa yang ditawarkan perusahaan berikut dengan detil teknis bagaimana cara mengaksesnya. Inforamsi tersebut ditulis dalam bentuk file-file WSDL.

Hal lain yang harus Anda ingat adalah setiap halaman website hendaknya tidak lebih dari 2 (dua) level kedalaman atau 2 (dua) kali klik dari halaman depan (home). Bila tidak, spider tidak akan membuat indeks semua halaman website. Halaman depan (home page) website harus memiliki tautan ke halaman-halaman utama, baik melalui isi halaman depan maupun melalui menu website. Masing-masing halaman utama juga harus memiliki tautan ke subhalaman. Satu halaman utama bisa terhubung ke lebih dari satu subhalaman. Sebaliknya setiap subhalaman juga harus memiliki tautan untuk kembali ke halaman utama dan setiap halaman utama harus memiliki tautan untuk kembali ke halaman depan. Spider atau web crawler hanya bisa mengikuti tautan dari satu halaman ke halaman yang lain dan dari satu website ke website yang lain. Oleh karena itu semakin banyak tautan dari website lain yang mengarah ke website Anda maka website Anda akan semakin dikenal oleh mesin pencari.
Selanjutnya, setiap halaman baik itu halaman depan, halaman utama dan subhalaman harus menggunakan kata kunci yang telah Anda pilih. Halaman depan dan halaman-halaman utama harus menggunakan kata-kata kunci yang paling banyak dicari.

Struktur 3 (tiga) lapisan ini menghasilkan sebuah website yang mudah ditelusuri bagi pengunjung dan spider. Selain mengikuti tautan-tautan untuk menemukan website, Anda juga bisa memberikan alamat website Anda kepada spider. Misalnya melalui Googlebot, spidernya Google. Cukup ketikkan alamat website Anda, kemudian spider atau web crawler akan menelusuri semua halaman website dan membuat indeksnya. Sekarang, mari kita bahas halaman-halaman yang ada pada sebuah website.

1. Halaman Depan (Home Page)
Setiap website memiliki halaman depan. Pada umumnya, halaman depan merupakan halaman pertama yang dilihat oleh pengunjung dan juga merupakan halaman yang paling penting dalam mendapatkan urutan pencarian yang tinggi dari mesin pencari, karena mesin pencari memberikan lebih banyak bobot kepada halaman depan darimana halaman lainnya. Halaman depan harus memberikan informasi yang jelas dan singkat kepada pengunjung mengenai apa website Anda, produk dan/atau jasa apa yang tersedia. Halaman depan harus memiliki tautan ke semua halaman website dan setiap halaman harus memiliki tautan untuk kembali ke halaman depan.

2. Halaman Produk/Jasa
Bagian utama dari website berisi penawaran produk dan/atau jasa. Apapun kategori website Anda, yang penting Anda harus menggambarkan secara singkat dan tepat apa yang Anda tawarkan, bantu pengunjung untuk menentukan pilihan dan melakukan transaksi dengan cara yang semudah mungkin. Jumlah halaman produk/jasa hendaknya disesuaikan dengan jumlah produk/jasa yang ditawarkan. Apabila jumlah produk/jasa yang ditawarkan banyak, maka halaman utama produk/jasa bisa berisi ringkasan dari keseluruhan produk/jasa kemudian Anda buat lagi beberapa subhalaman yang berisi detil dari masing-masing produk/jasa.

3. Halaman Informasi
o Profil: berisi sejarah mengenai bisnis atau perusahaan, visi dan misi, siapa saja pengurus inti website atau perusahaan, dan hal-hal penting lainnya mengenai bisnis atau perusahaan.
o FAQ (Frequently Asked Question): berisi pertanyaan-pertayaan umum mengenai produk, jasa, maupun perusahaan.
o Testimoni: berisi kesaksian pelanggan mengenai penggunaan produk dan/atau jasa yang ditawarkan. Halaman ini digunakan untuk membangun reputasi.
o Surat kabar elektronik: berisi berita-berita mengenai produk dan/atau jasa baru, tips-tips, promo-promo yang diadakan, serta pengumuman-pengumuman lain yang mau disampaikan kepada pelanggan.

4. Halaman Keanggotaan
Halaman keanggotaan merupakan bagian yang penting sekali untuk pengembangan website di masa mendatang. Dengan mengetahui siapa saja pengunjung dan perkembangan jumlah pengunjung aktif Anda bisa menganalisa hal-hal yang perlu diperbaiki, memenuhi kebutuhan-kebutuhan pengunjung dengan lebih tepat, sehingga pada akhirnya website Anda bisa terus berkembang. Ada beberapa hal yang sangat penting apabila Anda hendak meminta data pribadi pengunjung website yaitu Anda harus bisa menjaga kerahasiaan data tersebut dan privasi pengunjung, mereka juga harus bisa menghentikan keanggotaannya kapan saja.

5. Halaman Kontak
Halaman kontak berisi cara-cara untuk menghubungi pengurus website, bisa melalui email, telepon, fax, chatting, surat, ataupun dengan cara mengisi formulir pertanyaan atau komentar secara online. Hal ini akan memberikan rasa nyaman kepada pengunjung karena mereka bisa berhubungan dengan pemilik website, mengetahui alamat kantornya, berbicara dengan pengurus website baik untuk bertanya atau untuk menyampaikan keluhan.

Referensi : 
https://aswendy.wordpress.com/2014/03/07/definisi-web-science/
http://www.arsianto.com/2013/04/web-science_21.html
http://laoderahmatputra.blogspot.com/2014/03/pengertian-sejarah-arsitektur-web.html

Quantum Computation

 Quantum Computation

Quantum Computation atau Komputer kuantum adalah alat hitung yang menggunakan sebuah fenomena mekanika kuantum, misalnya superposisi dan keterkaitan, untuk melakukan operasi data. Dalam komputasi klasik, jumlah data dihitung dengan bit; dalam komputer kuantum, hal ini dilakukan dengan qubit. Prinsip dasar komputer kuantum adalah bahwa sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, dan bahwa mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.
Ide mengenai komputer kuantum ini berasal dari beberapa fisikawan antara lain 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).

Pada awalnya Feynman mengemukakan idenya mengenai sistem kuantum yang juga dapat melakukan proses penghitungan. Fenyman juga mengemukakan bahwa sistem ini bisa menjadi simulator bagi percobaan fisika kuantum.

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

Walaupun komputer kuantum masih dalam pengembangan, telah dilakukan eksperimen dimana operasi komputasi kuantum dilakukan atas sejumlah kecil Qubit. Riset baik secara teoretis maupun praktik terus berlanjut dalam laju yang cepat, dan banyak pemerintah nasional dan agensi pendanaan militer mendukung riset komputer kuantum untuk pengembangannya baik untuk keperluan rakyat maupun masalah keamanan nasional seperti kriptoanalisis.

Telah dipercaya dengan sangat luas, bahwa apabila komputer kuantum dalam skala besar dapat dibuat, maka komputer tersebut dapat menyelesaikan sejumlah masalah lebih cepat daripada komputer biasa. Komputer kuantum berbeda dengan komputer DNA dan komputer klasik berbasis transistor, walaupun mungkin komputer jenis tersebut menggunakan prinsip kuantum mekanik. Sejumlah arsitektur komputasi seperti komputer optik walaupun menggunakan superposisi klasik dari gelombang elektromagnetik, namun tanpa sejumlah sumber kuantum mekanik yang spesifik seperti keterkaitan, maka tak dapat berpotensi memiliki kecepatan komputasi sebagaimana yang dimiliki oleh komputer kuantum.

Quantum Entanglement 

Quantum Entanglement adalah satu prinsip penting dalam fizik kuantum walaupun ianya belum benar-benar difahami. Jika kita mempunyai beberapa partikel yang berkait satu sama lain, ukuran untuk quantum state bagi satu saja partikel sudah cukup untuk mengetahui keadaan kuantum partikel yang lainnya.

Partikel-partikel ini berhubung di antara satu sama lain dalam cara yang luar biasa dan dikenali Einstein dengan “ spooky action at a distance”. Ia adalah fenomena kuantum yang luar biasa dan susah diterima akal. Einstein sendiri walaupun menyedari Quantum Entanglement adalah fenomena biasa partikel, dia berharap agar perkara serupa itu tidak ada dalam fizik dan Einstein memang tidak menyukainya. Tetapi adakah “action at a distance” diantara 2 partikel benar-benar berlaku? Ianya diterangkan dalam sebuah teori dikenali Bell Theorem melalui sebuah persamaan matematik dinamakan “Bell inequalities”.

Pengoperasian Data Qubit
 
Pengoperasian pada Data Qubits adalah dengan 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. Jadi dapat disimpulkan bahwa teknologi yang diterapkan pada komputer kuantum mampu melakukan perhitungan pada semua nilai pada waktu yang hampir sama, dengan waktu yang sama komputer konvensional hanyabisa melakukan perhitungan tunggal.

Quantum Gates

Dalam kuantum komputer dan khususnya model rangkaian kuantum perhitungan,sebuah quantum gates atau quantum logic gates adalah dasar kuantum sirkuit operasi pada sejumlah kecil qubit. Mereka adalah blok bangunan sirkuit kuantum, seperti logic gates klasik untuk sirkuit digital konvensional.
Quantum Logic Gates, Prosedur berikut menunjukkan bagaimana cara untuk membuat sirkuit reversibel yang mensimulasikan dan sirkuit ireversibel sementara untuk membuat penghematan yang besar dalam jumlah ancillae yang digunakan.
- Pertama mensimulasikan gerbang di babak pertama tingkat.
- Jauhkan hasil gerbang di tingkat d / 2 secara terpisah.
- Bersihkan bit ancillae.
- Gunakan mereka untuk mensimulasikan gerbang di babak kedua tingkat.
- Setelah menghitung output, membersihkan bit ancillae.
- Bersihkan hasil tingkat d / 2.

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 impulsefrekuensi radio dan dapat dideteksi dengan alat resonansi magnetis nuklir.
Algoritma Shor ini 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.

Referensi :
http://id.wikipedia.org/wiki/Komputer_kuantum
https://sainstory.files.wordpress.com/2012/08/penjelasan-qubit.png?w=483&h=330
http://physciense.blogspot.com/2013/11/apa-itu-quantum-entanglement-siri-1.html
http://seto.citravision.com/berita-45-pengantar-quantum-computation--algoritma-shor.html
http://zhrfatima.blogspot.com/2013/06/quantum-computing.html

Kamis, 26 Maret 2015

Cloud Computing

Cloud Computing diterjemahkan dalam bahasa Indonesia yang artinya komputasi awan, adalah gabungan pemanfaatan teknologi komputer ('komputasi') dan pengembangan berbasis Internet ('awan'). Cloud computing atau komputasi awan merupakan definisi untuk teknologi komputasi grid (grid computing) yang digunakan pada pertengahan hingga akhir tahun 1990-an. Jargon cloud computing atau komputasi awan mulai muncul pada akhir tahun 2007, digunakan untuk memindahkan layanan yang digunakan sehari-hari ke Internet, bukan disimpan di komputer lokal lagi. Pada saat itu, layanan lain termasuk pengolahan kata, spreadsheet, dan presentasi telah dipindahkan ke dalam komputasi awan. Google menyediakan pengolah kata, spreadsheet dan aplikasi presentasi di lingkungan komputasi awan dan terintegrasi dengan Gmail dan Google Calendar, menyediakan lingkungan kantor di web (atau di awan). Microsoft dan perusahaan lain juga bereksperimen dengan mengalihkan program-program ke awan untuk membuatnya lebih terjangkau dan lebih mudah diakses oleh pengguna komputer dan Internet. 

Cloud computing saat ini sangat populer, selain dari pemain besar software seperti Microsoft dan Google, perusahaan lain bermunculan hanya untuk menyediakan layanan berbasis awan sebagai pengganti atau penyempurnaan aplikasi pada PC hari ini. Beberapa dari perusahaan tersebut adalah Zoho.com, sebuah office suite online, Evernote.com, merupakan sebuah situs yang ditujukan untuk catatan online , dan RememberTheMilk.com, manajemen tugas online. Email yang tersedia dalam bentuk web mail merupakan contoh yang sangat kecil dari teknologi cloud computing. Dengan menggunakan layanan email seperti Gmail dan Yahoo Mail, orang tidak perlu lagi menggunakan Outlook atau aplikasi desktop lainnya untuk email mereka. Membaca email dengan browser memungkinkan dilakukan di mana saja sepanjang ada koneksi internet. 

Layanan Cloud Computing

- Infrastructure as a Service (IaaS)

Infrastructure as a Service adalah layanan komputasi awan yang menyediakan infrastruktur IT berupa CPU, RAM, storage, bandwith dan konfigurasi lain. Komponen-komponen tersebut digunakan untuk membangun komputer virtual. Komputer virtual dapat diinstal sistem operasi dan aplikasi sesuai kebutuhan. Keuntungan layanan IaaS ini adalah tidak perlu membeli komputer fisik sehingga lebih menghemat biaya. Konfigurasi komputer virtual juga bisa diubah sesuai kebutuhan. Misalkan saat storage hampir penuh, storage bisa ditambah dengan segera. Perusahaan yang menyediakan IaaS adalah Amazon EC2, TelkomCloud dan BizNetCloud.

- Platform as a Service (PaaS)

Platform as a Service adalah layanan yang menyediakan computing platform. Biasanya sudah terdapat sistem operasi, database, Web Server dan framework aplikasi agar dapat menjalankan aplikasi yang telah dibuat. Perusahaan yang menyediakan layanan tersebutlah yang bertanggung jawab dalam pemeliharaan computing platform ini. Keuntungan layanan PaaS ini bagi pengembang adalah mereka bisa fokus pada aplikasi yang mereka buat tanpa memikirkan tentang pemeliharaan dari computing platform. Contoh penyedia layanan PaaS adalah Amazon Web Service dan Windows Azure.

- Software as a Service (SaaS)

Software as a Service adalah layanan komputasi awan dimana kita bisa langsung menggunakan aplikasi yang telah disediakan. Penyedia layanan mengelola infrastruktur dan platform yang menjalankan aplikasi tersebut. Contoh layanan aplikasi email yaitu gmail, yahoo dan outlook sedangkan contoh aplikasi media sosial adalah twitter, facebook dan google+. Keuntungan dari layanan ini adalah pengguna tidak perlu membeli lisensi untuk mengakses aplikasi tersebut. Pengguna hanya membutuhkan perangkat klien komputasi awan yang terhubung ke internet. Ada juga aplikasi yang mengharuskan pengguna untuk berlangganan agar bisa mengakses aplikasi yaitu Office 365 dan Adobe Creative Cloud.

Grid Computing

Pengertian dari Grid Computing itu sendiri adalah sebuah sistem komputasi terdistribusi, yang memungkinkan seluruh sumber daya (resource) dalam jaringan, seperti pemrosesan, bandwidth jaringan, dan kapasitas media penyimpan, membentuk sebuah sistem tunggal secara vitual. 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. Ide awal komputasi grid dimulai dengan adanya distributed computing, yaitu mempelajari penggunaan komputer terkoordinasi yang secara fisik terpisah atau terdistribusi. Sistem terdistribusi membutuhkan aplikasi yang berbeda dengan sistem terpusat. Kemudian berkembang lagi menjadi parallel computing yang merupakan teknik komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Grid computing menawarkan solusi komputasi yang murah, yaitu dengan memanfaatkan sumber daya yang tersebar dan heterogen serta pengaksesan yang mudah dari mana saja. Globus Toolkit adalah sekumpulan perangkat lunak dan pustaka pembuatan lingkungan komputasi grid yang bersifat open-source. Dengan adanya lingkungan komputasi grid ini diharapkan mempermudah dan mengoptimalkan eksekusi program-program yang menggunakan pustaka paralel. Dan Indonesia sudah menggunakan sistem Grid dan diberi nama InGrid (Inherent Grid). Sistem komputasi grid mulai beroperasi pada bulam Maret 2007 dan terus dikembangkan sampai saat ini. InGrid ini menghubungkan beberapa perguruan tinggi negeri dan swasta yang tersebar di seluruh Indonesia dan beberapa instansi pemerintahan seperti Badan Meteorologi dan Geofisika.

Virtualisasi

Virtualisasi bisa diartikan sebagai pembuatan suatu bentuk atau versi virtual dari sesuatu yang bersifat fisik, misalnya sistem operasi,  perangkat storage /penyimpanan data atau sumber daya jaringan.
Inti dari virtualisasi adalah membuat sebuah simulasi dari perangkat keras, sistem operasi, jaringan maupun yang lainnya. Di bidang teknologi informasi, virtualisasi digunakan sebagai sarana untuk improvisasi skalabilitas dari perangkat keras yang ada.

Virtualisasi bisa diimplementasikan kedalam berbagai bentuk, antara lain :

Network Virtualization : VLAN, Virtual IP, Multilink
Memory Virtualization : pooling memory dari node-node di cluster
Grid Computing : banyak komputer = satu
Application Virtualization : Dosemu, Wine
Storage Virtualization : RAID, LVM
Platform Virtualization : virtual computer

Dengan virtualisasi, beberapa sistem operasi dapat berjalan secara bersamaan pada satu buah komputer. Hal ini tentunya dapat mengurangi biaya yang harus dikeluarkan oleh sebuah perusahaan. Di masa akan datang, teknologi virtualisasi akan banyak digunakan baik oleh perusahaan yang bergerak dibidang teknologi informasi maupun yang tidak murni bergerak di bidang teknologi informasi namun menggunakan teknologi informasi sebagai sarana untuk memajukan usahanya.

Distributed Computation dalam Cloud Computing

Distributed Computation adalah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut. Distributed computing terkait dengan system perangkat keras dan perangkat lunak yang memiliki lebih dari satu elemen pemrosesan atau storage element.

Pada cloud computing, penyimpanan data hanya dilakukan pada server utama, sehingga pengguna hanya dapat mengaksesnya tanpa harus mengetahui infrastruktur pembuatan aplikasinya. Hanya perlu interface software saja untuk mengakses server. Interface ini pada umumnya merupakan web browser yang tersedia dengan banyak pilihan dan tidak berbayar.

Distributed computation merupakan salah satu tujuan dari Cloud Computing, karena menawarkan pengaksesan sumber daya secara parallel, para pengguna juga bisa memanfaatkannya secara bersamaan (tidak harus menunggu dalam antrian untuk mendapatkan pelayanan), terdiri dari banyak sistem sehingga jika salah satu sistem crash, sistem lain tidak akan terpengaruh, dapat menghemat biaya operasional karena tidak membutuhkan sumber daya (resources).

MapReduce dan NoSQL (Not Only SQL)

MapReduce adalah model pemrograman rilisan Google yang ditujukan untuk memproses data berukuran raksasa secara terdistribusi dan paralel dalam cluster yang terdiri atas ribuan komputer. Dalam memproses data, secara garis besar MapReduce dapat dibagi dalam dua proses yaitu proses Map dan proses Reduce. Kedua jenis proses ini didistribusikan atau dibagi-bagikan ke setiap komputer dalam suatu cluster (kelompok komputer yang salih terhubung) dan berjalan secara paralel tanpa saling bergantung satu dengan yang lainnya. Proses Map bertugas untuk mengumpulkan informasi dari potongan-potongan data yang terdistribusi dalam tiap komputer dalam cluster. Hasilnya diserahkan kepada proses Reduce untuk diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim ke pengguna. Untuk menggunakan MapReduce, seorang programer cukup membuat dua program yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan oleh proses Map dan Reduce. Jadi tidak perlu pusing memikirkan bagaimana memotong-motong data untuk dibagi-bagikan kepada tiap komputer, dan memprosesnya secara paralel kemudian mengumpulkannya kembali. Semua proses ini akan dikerjakan secara otomatis oleh MapReduce yang dijalankan diatas Google File System.

NoSQL merupakan suatu bahasan yang jauh dari arti kata yang dibaca. Tidak berarti tanpa sql. Melainkan bagaimana suatu query sql digunakan seminimal mungkin dalam suatu program database. Dengan memanfaatkan teknologi NoSQL ini, diharapkan mampu mengurangi beban server. Selain itu, hal ini juga memudahkan programmer dalam membuat suatu program dan proses pengembangannya.

Berikut adalah contoh penerapan cloud computing untuk bidang pendidikan

Referensi : 
 http://www.cloud-lounge.org/why-use-clouds.htm
http://www.webopedia.com
ttp://gorbyrashid.blogspot.com/2010/05/perbedaan-grid-dan-cloud-computing.html
http://www.excellent.co.id/product-services/vmware/keuntungan-teknologi-virtualisasi-cloud-computing/
 http://bimbimboy.blogspot.com/2014/05/distributed-computation-dalam-cloud.html
 http://seto.citravision.com/berita-39-pengantar-komputasi-cloud--map-reduce-dan-nosql-not-only-sql.html
http://www.vmware.com/virtualization/
http://www.cse.unr.edu
http://computer.howstuffworks.com/cloud-computing/cloud-computing.htm
https://www.youtube.com/watch?v=88ysB-EKA9U