Minggu, 11 Mei 2014

Quantum Computing dan Implementasi

Quantum Computing
Quantum Computing atau dalam Bahasa Indonesia disebut Komputer Kuantum yang merupakan sebuah komputer dengan trobosan baru dalam teknologi komputer yang ada saat ini. Komputer Kuantum dapat didefinisikan sebagai komputer yang memanfaatkan fenomena-fenomena dari mekanika quantum, seperti quantum superposition dan quantum entanglement dalam proses komputasi data.

Mengutip dari Wikipedia 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).

Komputer quantum dapat jauh lebih cepat dari komputer konvensional pada banyak masalah, salah satunya yaitu masalah yang memiliki sifat berikut:
1. Satu-satunya cara adalah menebak dan mengecek jawabannya berkali-kali
2. Terdapat n jumlah jawaban yang mungkin
3. Setiap kemungkinan jawaban membutuhkan waktu yang sama untuk mengeceknya
4. Tidak ada petunjuk jawaban mana yang kemungkinan benarnya lebih besar: memberi jawaban dengan asal tidak berbeda dengan mengeceknya dengan urutan tertentu

Entanglement
Entanglement adalah sebuah keadaan yang ganjil di mana dua partikel tetap terkoneksi secara erat, meski terpisah dengan jarak yang sangat jauh, seperti dua mata dadu yang harus selalu menunjukkan jumlah yang sama ketika diputar. Untuk pertama kalinya, ilmuwan telah menemukan partikel-partikel yang tergabung (entangled) setelah partikel-partikel tersebut diukur (measured) dan bahkan dalam keadaan tidak eksis lagi.

Data Qubit
Sebuah qubit adalah unit dasar informasi dalam sebuah komputer kuantum. Sementara sedikit dapat mewakili hanya satu dari dua kemungkinan seperti 0, atau 1 atau ya atau tidak, qubit dapat mewakili lebih: 0 atau 1, 1 dan 0, probabilitas terjadinya setiap saat dikombinasikan dengan qubit lebih, dan semua yang secara bersamaan. 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.

Quantum Gates
Untuk memanipulasi sebuah qubit, maka menggunakan Quantum Gates (Gerbang Kuantum). Cara kerjanya yaitu sebuah gerbang kuantum bekerja mirip dengan gerbang logika klasik. Gerbang logika klasik mengambil bit sebagai input, mengevaluasi dan memproses input dan menghasilkan bit baru sebagai output.

Algoritma Shor
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. Menghitung fungsi ini di komputer konvensional untuk jumlah yang eksponensial akan membutuhkan waktu eksponensial pula. 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.

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.

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 atau untuk memeriksa untuk kesalahan menggunakan perangkat lunak insinyur manusia.

Sabtu, 03 Mei 2014

Penerapan Cloud Computing


Definisi Cloud Computing
Cloud Computing ( Komputasi Awan ) merupakan gabungan pemanfaatan teknologi komputer dan perkembangan internet. Dalam hal ini awan diartikan sebagai metafora dari internet. Awan dalam cloud computing merupakan abstraksi dan insfratrukstur yang kompleks yang disembunyikan. Cloud Computing merupakan suatu metode komputasi dimana kapabalitas terkait teknologi informasi disajikan dalam suatu layanan sehingga pengguna (user) dapat mengaksesnya lewat internet, tanpa mereka mengetahui apa yang ada dan apa yang terjadi di dalamnya. Cloud Computing dapat diartikan sebagai proses penggunaan aplikasi (software) yang berjalan diatas sebuah jaringan, artinya pengguna aplikasi tidak perlu melakukan proses instalasi untuk menjalankan aplikasi cloud computing, cukup dengan mengakses jaringan yang menyediakan fasilitas cloud computing maka pengguna dapat menggunakan aplikasi tersebut.

Cara Kerja Cloud Computing
Prinsip kerja cloud computing berawal dari prinsip fleksibelitas dimana pengguna lebih dimanjakan dengan berbagai kemudahan dalam penggunaan komputer. Pada intinya, prinsip kerja cloud computing mengutamakan internet sebagai alat untuk mempermudah pengguna komputer. Proses kerja cloud computing menggunakan internet sebagai sistem utama sebagai pengolah maupun sebagai aplikasi. Semua data atau perintah yang dikirim akan disimpan atau diolah di dalam internet. Cloud computing juga menerapkan prinsip on-demand, yang membuat cloud computing dapat digunakan di mana saja dan kapan saja.

Cloud Computing bekerja dengan cara demikan :
  • Komputer client (pengguna) meminta request kepada komputer server untuk mengakses data aplikasi yang digunakan.
  • Request yang disampaikan menggunakan TCP/IP sebagai protokol pengaturnya, setelah request yang dimaksud dipahami oleh server maka server merespon kembali request tersebut kepada komputer client.
  • Pada komputer client respon yang diterima diterjemah kan kembali melalui TCP/IP agar dapat ditampilkan sesuai request.

Penerapan Cloud Computing
Jenis jasa cloud computing dibagi menjadi 3, yaitu:
  • SaaS (Software as a Service)
Layanan aplikasi  yang dapat langsung dimanfaatkan penguna dengan berlangganan seperti Microsoft Office 365 dan sebagainya.
  • PaaS (Platform as a Service)
Layanan penyedia modul siap pakai yang digunakan untuk mengembangkan aplikasi, berjalan di atas platform tersebut seperti pengembangan game di Facebook, Google Android, dan sebagainya.

  • IaaS (Infrastructure a Service)
Layanan yang menyewakan perangkat untuk menjalankan aplikasi meliputi media penyimpanan, processing power, memory, sistem operasi, dan kapasitas.

Contoh perusahaan yang menerapkan cloud computing adalah Dropbox Inc. Dropbox menyediakan layanan yang memungkinkan pengguna untuk menyimpan file-file yang berada di komputer mereka ke storage dropbox dengan cara sinkronisasi. Dengan begitu ketika terjadi perubahan pada file yang berada di komputer pengguna, maka file yang berada di storage akan diubah juga. Dengan adanya layanan ini pengguna dapat memback-up data dan juga dapat mengaksesnya dimanapun mereka berada.

Sejarah Dropbox

Pendiri Dropbox, Drew Houston mendapatkan ide mengenai Dropbox setelah USB Drive miliknya beberapa kali tertinggal ketika ia menjadi murid di MIT. Ia mengatakan bahwa layanan yang tersedia saat itu bermasalah dengan penggunaan internet yang tidak dimaksimalkan, ukuran data yang besar, banyaknya error dan kesalahan, serta tidak praktis dan membingungkan banyak orang. Houston lalu mendirikan Dropbox Inc. pada tahun 2007, dan tidak lama setelah itu mendapatkan dana awal dari Y Combinator. Dropbox secara resmi diluncurkan pada acara TechCrunch 50, sebuah konferensi teknologi tahunan pada tahun 2008.

Dropbox

Dropbox adalah file hosting layanan dioperasikan oleh perusahaan Dropbox Inc. yang menawarkan penyimpanan cloud, file sinkronisasi, dan perangkat lunak klien. Dropbox memungkinkan penggunauntuk membuat folder khusus pada setiap kompouter mereka, yang kemudian Dropbox mensinkronisasikan sehingga tampak menjadi folder yang sama (dengan isi yang sama) terlepas dari komputer yang digunakan untuk melihatnya. File yang ditempatkan dalam folder ini juga dapat diakses melalui situs web dan ponsel aplikasi.

Dropbox menyediakan perangkat lunak untuk Microsoft Windows, Mac OS, Linux, Android, iOS, BlackBerry OS, dan browser web, serta Port resmi untuk Symbian, Windows Phone dan MeeGo.

Website Dropbox


Pada website Dropbox, pengguna dapat membuat atau registrasi account. Pada website ini juga dapat meng-unduh aplikasi Dropbox yang dapat diperoleh untuk komputer pribadi ataupun smartphone.
Tempat Penyimpanan
  • Pada komputer pribadi
Jika sudah memiliki account dan telah melakukan peng-installan aplikasi Dropbox ke dalam komputer pribadi atau smartphone. Aplikasi yang diinstall di komputer pribadi, maka akan terdapat folder Dropbox yang terdapat file-file yang telah disimpan.


  • Pada website Dropbox
Gambar di bawah ini adalah tampilan dalam Dropbox, jika telah memiliki account. Pada website, komputer pribadi maupun smartphone sudah tersinkronisasi.


Keuntungan dan Kerugian Menggunakan Cloud Computing
Keuntungan :
1.     Kemudahan akses
2.     Efisiensi biaya
3.     Fleksibilitas dalam menambah kapasitas
4.    Kemudahan untuk monitoring dan server management

Kerugian :
1.     Kerahasiaan data tidak terjamin
2.    Sangat bergantung pada koneksi internet
3.    Tingkat keamanan yang belum terjamin
4. Service level, kemungkinan service performance yang kurang konsisten dari provider.

Kelompok 4 :
Angga Casidy
Budi Widiyanto
Fahmi Firdaus
Mahin Aufa
Nur Haidah
Riyanto Adam
Surahma Jaya

Kamis, 01 Mei 2014

Teknologi Game


Permainan (game) merupakan aplikasi yang banyak digunakan sebagai suatu bentuk hiburan yang sering kali dijadikan sebagai penghilang rasa penat yang disebabkan oleh aktivitas yang dinikmati para pengguna media elektronik saat ini. Game juga dapat diartikan sebagai arena keputusan untuk pemain beraksi, diamana terdapat target yang harus dicapai.

Menurut Wikipedia secara umum game (permainan) adalah sebuah aktivitas rekreasi dengan tujuan bersenang-senang, mengisi waktu luang, atau berolahraga ringan. Permainan biasanya dilakukan sendiri atau bersama-sama. Sedangkan computer game adalah permainan video yang dimainkan pada komputer pribadi, dan bukan pada konsol permainan, maupun mesin ding-dong.

Beberapa platforms yang digunakan pada game :
1. PC
Biasanya aplikasi gamenya menggunakan bahasa C++ atau C.
Waktu pengembangannya 3-6 bulan, tergantung kompleksitas gamenya.

2. Web Based Games
Aplikasi game dimana diletakkan pada server di Internet, dimana user hanya perlu menggunakan akses internet dan browser untuk mengakses gamenya.
Waktu pengembangannya lebih singkat, 1-2 bulan.

3. SmartPhones/Pocket PC(PCC)
Aplikasi game yang berjalan pada system operasi Windows Mobile 2003, 2004, 5.0 sampai sekarang.
Usernya:
karakter pengusaha/ eksekutif muda sangat cocok apabila menggunakan media PocketPC/SmartPhones sebagai bagian aktivitas kegiatan advertising.
Waktu pengembangan biasanya memerlukan waktu 3-6 bulan tergantung dengan kompleksitas games tersebut.

4. Mobile Phone
Aplikasi game menggunakan bahasa:  JAVA(jar), Symbian(sys), dan sekarang menggunakan PHYTON.
Usernya dari semua kalangan, biasanya untuk mengisis waktu luang. Waktu pengembangannya relative lebih pendek, sekitar 1-3 bulan.

Dalam proses pembuatan suatu game dibutuhkan algoritma untuk dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Dalam proses pembuatan game terdapat beberapa algoritma yang digunakan, diantaranya :
  • MINIMAX, Sebuah prosedur pencarian yang melihat kedepan, memperhatikan apa yang akan terjadi, kemudian yang digunakan untuk memilih langkah berikutnya. Algoritma ini biasanya diterapkan dalam game yang melibatkan dua pemain yang saling bergantian
  • ALPHA-BETA PRUNING, Algoritma ini merupakan improvisasi dari algoritma minimax. Algoritma ini untuk meningkatkan efisiensi fungsi minimax dalam hal pencarian, kemudian fungsi evaluasi ditambahkan sepasang nilai alpha dan beta. Algoritma ini akan berhenti mengevaluasi langkah ketika terdapat paling tidak satu kemungkinan yang ditemukan dan membuktikan bahwa langkah tersebut lebih buruk jika dibandingkan dengan langkah yang diperiksa sebelumnya.
  • FUZZY, Logika fuzzy merupakan pengembangan dari logika boolean. Sistem fuzzy atau logika fuzzy adalah salah satu bahasa soft computing yang memiliki karakteristik dan keunggulan dalam menangani permasalahan yang bersifat ketidakpastian dan kebenaran parsial. Logika fuzzy merupakan pengembangan dari logika boolean yang hanya memiliki nilai true (1) atau false (0).
  • ALGORITMA GENETIKA, Algoritma genetika adalah algoritma yang berusaha menerapkan pemahaman mengenai evolusi alamiah pada tugas-tugas pemecahanmasalah (problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu kumpulan (populasi) untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness.
  • ALGORITMA AI (ARTIFICIAL INTELEGENCE), Kecerdasan Buatan (Artificial Intelligence) merupakan cabang terpenting dalam dunia computer yang membuat agar mesin (computer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan manusia. Pada awalnya diciptakan computer hanya berfungsi sebagai alat hitung. Tapi sekarang peran computer makin mendominasi kehidupan manusia. Komputer di harapkan data diberdayakan untuk mengerjakan segala sesuatu yang biasa dikerjakan oleh manusia.
Referensi :