welcome to my blog, please read this post, thank you...

Labels

Tampilkan postingan dengan label Softskill. Tampilkan semua postingan
Tampilkan postingan dengan label Softskill. Tampilkan semua postingan

Kamis, 23 Mei 2013

Parallel Computation


Parallelism Concept

Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.

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

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. Maka diperlukan perangkat lunak pendukung yang disebut 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 dari komputasi paralel adalah meningkatkan kinerja komputer dalam menyelesaikan berbagai masalah. Dengan membagi sebuah masalah besar ke dalam beberapa masalah kecil, membuat kinerja menjadi cepat.


Distributed Processing

Didistribusikan pengolahan paralel menggunakan pemrosesan paralel pada beberapa mesin. Salah satu contoh dari hal ini adalah bagaimana beberapa komunitas memungkinkan pengguna untuk mendaftar dan mendedikasikan komputer mereka sendiri untuk memproses beberapa data set yang diberikan kepada mereka oleh server. Ketika ribuan pengguna mendaftar untuk ini, banyak data dapat diproses dalam jumlah yang sangat singkat.

Parallel distributed computing dapat dibentuk dari :
  •          Ada : digunakan konsep pertemuan yang menggabungkan fitur RPC dan monitor.
  •          PVM (Parallel Virtual Machine) untuk mendukung workstation clusters
  •          MPI (Message-Passing Interface) programming GUI untuk parallel computers.


Architectural Parallel Computer

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

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

3    3. Komputer MISD (Multiple Instruction stream-Single Data stream)
Komputer jenis ini memiliki 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.

4    4. Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer MIMD murni terdapat interaksi di antara pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses.


Pengantar Thread Programming

Dalam pemrograman komputer, sebuah thread adalah informasi terkait dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Dari program point-of-view, sebuah thread adalah informasi yang dibutuhkan untuk melayani satu pengguna individu atau permintaan layanan tertentu. Jika beberapa pengguna menggunakan program atau permintaan bersamaan dari program lain yang sedang terjadi, thread yang dibuat dan dipelihara untuk masing-masing proses. Thread memungkinkan program untuk mengetahui user sedang masuk didalam program secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Salah satu informasi thread disimpan dengan cara menyimpannya di daerah data khusus dan menempatkan alamat dari daerah data dalam register. Sistem operasi selalu menyimpan isi register saat program interrupted dan restores ketika memberikan program kontrol lagi. 

Terdapat 2 buah teknik pada thread, yaitu :
1    1. 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.

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


Pengantar Massage Passing, OpenMP

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. Paradigma Message passing yaitu :
  • Banyak contoh dari paradigma sekuensial dipertimbangkan bersama-sama.
  • Programmer membayangkan beberapa prosesor, masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada setiap prosesor. 
  • Proses berkomunikasi dengan mengirimkan pesan satu sama lain.

OpenMP merupakan API yang mendukung multi-platform berbagi memori multiprocessing pemrograman C , C + + , dan Fortran , pada kebanyakan arsitektur prosesor dan system operasi , termasuk Solaris , AIX , HP-UX , GNU / Linux , Mac OS X , dan Windows platform. Ini terdiri dari satu set perintah kompiler, rutinitas library, dan variable lingkungan yang mempengaruhi perilaku run-time. OpenMP dikelola oleh nirlaba teknologi konsorsium OpenMP Arsitektur Review Board (ARB atau OpenMP), bersama-sama didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak, termasuk AMD , IBM , Intel , Cray , HP , Fujitsu , Nvidia , NEC , Microsoft , Texas Instruments , Oracle Corporation , dan banyak lagi.


PengantarPemrograman CUDA GPU

CUDA (Compute Unified Device Architecture) merupakan suatu framework dari bahasa pemrograman yang mendukung bahas C , dimana mampu berkomunikasi langsung dengan GPU dan sangat mudah bekerjasama untuk segala multi-threading  parallel execution hampir diseluruh prosesor pada GPU. CUDA menggukan konsep nvcc sebagai ORM dalam object programmingnya. CUDA merupakan produk dari NVIDIA sebagai produsen graphic komputer ternama.

GPU (Graphics Processing Unit) merupakan prosesor yang didedikasikan untuk render cepat dalam pemrosesan polygon baik itu texturing dan shading. Terdiri atas banyak core namun masih menggunakan arsitektur yang sederhana, sehingga harganya relative murah dan di produksi secara masal untuk berbagai keperluan misalnya peneilitian/ilmuah.

Dalam permainan komputer industri, GPU yang digunakan tidak hanya untuk rendering grafis tetapi juga dalam perhitungan fisika permainan (efek fisik seperti puing-puing, asap, api, cairan). CUDA juga telah digunakan untuk mempercepat aplikasi non-grafis dalam biologi komputasi , kriptografi dan bidang lainnya oleh urutan besarnya atau lebih.



Referensi 

Rabu, 22 Mei 2013

Komputasi Cloud


Pendahuluan

Cloud Computing (Komputasi Awan) adalah suatu konsep umum yang mencakup SaaS, Web 2.0, dengan menggabungkan pemanfaatan teknologi komputer dan disajikan dalam bentuk suatu layanan. Yang dimaksud dengan Saas dan Web 2.0 adalah sebuah software as a service atau perangkat lunak yang berbentuk layanan, digunakan untuk mengembangkan suatu aplikasi yang berbasis web (Internet). Misalnya Facebook, didalam social networking ini memiliki berbagai aplikasi seperti game, acara undangan, tautan dan sebagainya. Dengan SaaS dan Web 2.0, pencipta Facebook menggunakannya untuk aplikasi tersebut dengan syarat harus melalui internet atau system online.

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.        
                                                                                                     
Tanpa kita sadari sebenarnya kita sudah sering menggunakan aplikasi dengan sistem berbasis cloud computing. Contoh lainnya seperti Hotmail, Yahoo!Mail atau Gmail. Untuk melihat email, kita bisa melakukannya di mana saja, yang penting ada internet dan browser. Software dan data kita tidak tersimpan di komputer yang kita pakai melainkan terletak di cloud server. 


Pengantar Komputasi GRID

Menurut definisi Grid Computing atau Komputasi Grid merupakan salah satu dari tipe Komputasi Paralel, adalah penggunaan sumber daya yang 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 komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.


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.

Beberapa konsep dasar dari Komputasi Grid, yaitu :
  • Sumber daya dikelola dan dikendalikan secara lokal.
  • Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda, mencakup Sumber daya komputasi dikelola oleh sistem batch berbeda, Sistem storage berbeda pada node berbeda, Kebijakan berbeda dipercayakan kepada user yang sama pada sumber daya berbeda pada Grid.
  • Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah
  • Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet)



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. Virtualisasi bisa diimplementasikan kedalam berbagai bentuk, antara lain :
  • Network Virtualization : VLAN, Virtual IP (untclustering), 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
Keuntungan Penggunaan Virtualisasi :
  • Pengurangan Biaya Investasi Hardware.
  • Kemudahan Backup & Recovery.
  • Kemudahan Deployment. Server virtual dapat dikloning sebanyak mungkin dan dapat dijalankan pada mesin lain dengan mengubah sedikit konfigurasi.
  • Mengurangi Panas ruang server/data center.
  • Mengurangi Biaya Space.
  • Kemudahan Maintenance & Pengelolaan.
  • Standarisasi Hardware.
  • Kemudahan Replacement.

Kerugian Penggunaan Virtualisasi :
  • Satu Pusat Masalah, jika server induk bermasalah, semua sistem virtual machine didalamnya tidak bisa digunakan.
  • Virtualisasi membutuhkan spesifikasi server yang lebih tinggi untuk menjalankan server induk dan mesin virtual didalamnya.
  • Satu Pusat Serangan. Penempatan semua server dalam satu komputer akan menjadikannya sebagai target serangan.


Distributed Computation Dalam Cloud Computing

Seperti yang telah di jelaskan sebelumnya, cloud computing adalah teknologi yang memberikan berbagai jenis sumber daya sebagai layanan, terutama melalui internet. Sedangkan komputasi terdistribusi adalah konsep menggunakan sistem terdistribusi terdiri dari banyak node diatur sendiri untuk memecahkan masalah yang sangat besar (yang biasanya sulit untuk diselesaikan dengan satu komputer). Cloud computing pada dasarnya adalah penjualan dan model distribusi untuk berbagai jenis sumber daya melalui internet, sedangkan komputasi terdistribusi dapat diidentifikasi sebagai jenis komputasi, yang menggunakan sekelompok mesin untuk bekerja sebagai satu kesatuan untuk memecahkan masalah skala besar. Komputasi terdistribusi mencapai hal ini dengan memecah masalah ke tugas sederhana, dan menugaskan tugas-tugas ke node individu.


Map Reduce dan NoSQL (Not Only SQL)

Map reduce adalah sebuah framework pemrograman untuk memproses data yang berukuran besar, biasanya digunakan untuk komputasi terdistribusi pada kumpulan komputer.

NoSQL adalah tipe database yang sangat jauh berbeda dengan konsep RDBMS(Relational Database Management System) ataupun ODBMS(Objecy Oriented Database Management System). Perbedaan utamanya karena tidak mengenal istilah relation dan tidak menggunakan konsep schema. Kalau biasanya dapatmenggunakan query 'Join’ di sini tidak bisa menggunakannya karena setiap tabel berdiri sendiri tanpa tergantung dengan tabel lainnya alias independen.

Selain itu di dalam konsep DBMS biasanya sebelum insert data diharuskan untuk mendefinisikan terlebih dahulu struktur tabel seperti tipe data dan ukurannya, di konsep NoSQL ini bisa menyimpan data tanpa perlu mendefinisikan tipe data dan ukurannya lagi. Jadi lebih fleksibel bila ada perubahan di masa mendatang.  Adapun beberapa database NoSQL yang ada saat ini yaitu Cassandra, Big Table, CouchDB, Redis, Riak, Dynamo dan lainnya.


NoSQL Database

NoSQL adalah yang cepat, portabel, sistem manajemen database relasional tanpa batas sewenang-wenang, (selain memori dan kecepatan prosesor) yang berjalan di bawah, dan berinteraksi dengan, NoSQL ini kompatibel dengan "Relational Model".

NoSQL merupakan turunan dari sistem database RDB. Yang terakhir dikembangkan di RAND Organisasi oleh Walter W. Hobbs. Beberapa Perl script termasuk dengan NoSQL masih sangat dekat dengan RDB yang asli, sehingga pangsa kredit yang baik bagi mereka pergi ke penulis asli. Seperti namanya, NoSQL bukan merupakan database SQL melainkan tingkat alat shell, seperti yang dijelaskan dalam Filsafat NoSQL. Bentuk setiap file data adalah suatu relasi, atau tabel, dengan baris dan kolom informasi.

NoSQL cenderung menjadi bias mendukung Linux . Ini berarti bahwa, di mana pun itu penting, NoSQL yang menggunakan versi GNU dari berbagai perintah UNIX, seperti yang adalah orang-orang biasanya ditemukan di Linux. NoSQL adalah Free Software , dirilis di bawah GNU General Public License . Karena itu, sepenuhnya memenuhi syarat juga sebagai Open Source Software. NoSQL telah ada selama lebih dari satu dekade sekarang dan tidak ada hubungannya dengan bayi yang baru lahir Gerakan NoSQL , yang telah menerima hype akhir-akhir ini. Sementara mantan adalah paket perangkat lunak didefinisikan-baik, adalah sebuah database relasional untuk semua efek dan hanya tidak sengaja tidak menggunakan SQL sebagai bahasa query, pendatang baru ini kebanyakan konsep (dan tidak berarti novel yang baik), yang berangkat dari model relasional sama sekali dan karena itu seharusnya lebih tepat disebut "NoREL", atau sesuatu seperti itu.

Beban kerja database modern biasanya termasuk scaling untuk data set (misalnya 3 TB Digg untuk lencana hijau, 50 TB Facebook untuk pencarian kotak masuk atau's 2 eBay PB data keseluruhan), per-server kinerja, dan skema kaku. Sistem NoSQL sering memberikan jaminan konsistensi lemah seperti konsistensi akhirnya dan transaksi terbatas pada item data tunggal, walaupun seseorang dapat memaksakan penuh ASAM jaminan dengan menambahkan lapisan middleware tambahan. Tidak menyediakan kemampuan relasional membuatnya lebih mudah untuk penyimpanan data skala tidak harus membayar biaya yang berkaitan dengan jaminan relasional yang mungkin tidak diperlukan oleh proyek yang menggunakan database.

Beberapa sistem NoSQL mempekerjakan arsitektur terdistribusi , dengan data yang dimiliki secara berlebihan di beberapa server, sering menggunakan tabel hash didistribusikan . Dengan cara ini, sistem dapat ditingkatkan dengan mudah dengan menambahkan lebih banyak server, dan kegagalan server dapat ditolerir. Mempromosikan antarmuka yang sangat sederhana seperti array asosiatif atau-nilai pasangan kunci. Sistem lain, seperti native XML database , mempromosikan dukungan dari XQuery standar.




Referensi 

Teori Komputasi Modern

Pendahuluan

Pada kesempatan kali ini, saya akan membahas mengenai Teori Komputasi, sebelum membahas lebih dalam sebaiknya kita mengetahui terlebih dahulu pengertian dari teori dan komputasi.
Teori adalah serangkaian bagian atau variabel, definisi, dan dalil yang saling berhubungan yang menghadirkan sebuah pandangan sistematis mengenai fenomena dengan menentukan hubungan antar variabel, dengan menentukan hubungan antar variabel, dengan maksud menjelaskan fenomena alamiah. Sedangkan komputasi adalah  cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma atau proses menjalankan urutan langkah-langkah (algoritma) dalam menyelesaikan masalah. dari pengertian yang telah dijelaskan diatas, maka Teori Komputasi adalah cabang ilmu komputer dan matematika yang membahas bagaimanakah suatu masalah dapat dipecahkan dengan model komputasi dengan menggunakan algoritma.


Sejarah Komputasi Modern

Pada awal abad 20, banyak kebutuhan komputasi ilmiah bertemu dengan semakin canggih komputer analog, yang menggunakan mekanis atau listrik langsung model masalah sebagai dasar perhitungan. Namun, ini tidak dapat diprogram dan umumnya tidak memiliki fleksibilitas dan keakuratan komputer digital modern.
George stibitz secara internasional diakui sebagai ayah dari komputer digital modern. Sementara bekerja di laboratorium bel di November 1937, stibitz menciptakan dan membangun sebuah relay berbasis kalkulator ia dijuluki sebagai "model k". Beliau adalah orang pertama yang menggunakan sirkuit biner untuk melakukan operasi aritmatika. Kemudian model menambahkan kecanggihan yang lebih besar termasuk aritmatika dan kemampuan pemrograman kompleks.
Salah satu tokoh yang sangat mempengaruhi perkembangan komputasi modern adalah John von Neumann (1903-1957). Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern.
Konrad Zuse’s electromechanical “Z mesin”.Z3 (1941) sebuah mesin pertama menampilkan biner aritmatika, termasuk aritmatika floating point dan ukuran programmability. Pada tahun 1998, Z3 operasional pertama di dunia komputer itu dianggap sebagai Turing lengkap.
Selanjutnya komputer Colossus ditemukan pada tahun 1943, berkemampuan untuk membatasi kemampuan program pada alat ini menunjukkan bahwa perangkat menggunakan ribuan tabung dapat digunakan lebih baik dan elektronik reprogrammable.Komputer ini digunakan untuk memecahkan kode perang Jerman.
The Harvard Mark I ditemukan pada 1944, mempunyai skala besar, merupakan komputer elektromekanis dengan programmability terbatas.
Lalu lahirlah US Army’s Ballistic Research Laboratory ENIAC ditemukan pada tahun 1946, komputer ini digunakan unutk menghitung desimal aritmatika dan biasanya disebut sebagai tujuan umum pertama komputer elektronik.


Macam - Macam Komputasi Modern

1. Mobile computing atau komputasi bergerak
Komputasi bergerak merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan perubahan dari sisi manusia maupun alat. Contohnya : GPS, smartphone dan lain sebagainya. 

2. Grid computing
Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan dan terhubung oleh jaringan untuk menyelasaikan masalah komputasi skala besar.
Ada beberapa daftar yang dapat dugunakan untuk mengenali sistem komputasi grid, adalah :
- Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
- Sistem menggunakan standard dan protocol yang terbuka.
- Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen   individu pelayanan komputasi grid.

3. Cloud computing
Komputasi cloud merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet. Komputasi cloud menggambarkan pelengkap baru, konsumsi dan layanan IT berbasis model dalam internet, dan biasanya melibatkan ketentuan dari keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.


Implementasi Komputasi Modern

Komputasi modern dapat diimplementasikan pada berbagai macam bidang, seperti :
  • Fisika : menyelesaikan permasalahan medan magnet dengan menggunakan komputasi fisika, dalam hal ini menentukan besarnya medan magnet dan membandiangkan hubungan antara medan magnet dengan panjang kawat.
  • Kimia : algoritma dan program komputer dapat digunakan untuk memungkinkan peramalan sifat-sifat atom dan molekul. Kajian komputasi juga dapat dilakukan untuk menjelajahi mekanisme reaksi dan menjelaskan pengamatan pada reaksi di laboratorium, serta memahami sifat dan perubahan pada sistem makroskopis melalui simulasi yang berlandaskan hukum-hukum interaksi yang ada dalam sistem.
  • Matematika : penerapan teknik-teknik komputasi matematika meliputi metode numerik, scientific computing, metode elemen hingga, metode beda hingga, scientific data mining, scientific process control dan metode terkait lainnya untuk menyelesaikan masalah-masalah real yang berskala besar.
  • Ekonomi : mempeljarai titik pertemuan antara ekonomi dan komputasi, meliputi agent-based computational modelling, computational econometrics dan statistika, komputasi keuangan, computational modelling of dynamic macroeconomic systems dan pengembangan alat bantu dalam pendidikan komputasi ekonomi.
  • Biologi : merupakan penerapan berupa aplikasi dari teknologi informasi dan ilmu komputer terhadap bidang biologi molekuler.
  • Geografi : komputasi awan didefinisikan sebagai sebuah model yang memungkinkan kenyamanan, akses on-demand terhadap kumpulan sumber daya komputasi (contohnya jaringan, server, media penyimpanan, aplikasi, dan layanan komputasi) yang konfigurasinya dapat dilakukan dengan cepat dan disertai sedikit usaha untuk mengelola dan berhubungan dengan penyedia layanannya.

Referensi :

Senin, 22 April 2013

Pengantar Quantum Computation


PENDAHULUAN
Sebelum masuk ke Quantum Computation (Komputasi Kuantum), saya akan membahas mengenai Quantum Computer (Komputer Kuantum). Komputer kuantum  adalah alat untuk perhitungan yang menggunakan langsung dari kuantum mekanik fenomena, seperti superposisi dan belitan , untuk melakukan operasi pada Data .

Komputasi kuantum adalah bidang studi yang difokuskan pada teknologi komputer berkembang berdasarkan prinsip-prinsip teori kuantum , yang menjelaskan sifat dan perilaku energi dan materi pada kuantum (atom dan subatom) tingkat. Pengembangan komputer kuantum , jika praktis, akan menandai lompatan maju dalam kemampuan komputasi jauh lebih besar daripada yang dari sempoa ke modern superkomputer , dengan keuntungan kinerja di alam miliar kali lipat dan seterusnya. Komputer kuantum, mengikuti hukum fisika kuantum, akan memperoleh kekuatan pengolahan yang besar melalui kemampuan untuk berada di beberapa negara, dan untuk melakukan tugas-tugas menggunakan semua kemungkinan permutasi secara bersamaan. kini pusat penelitian di komputasi kuantum termasuk MIT, IBM, Oxford University, dan Los Alamos National Laboratory.

Unsur-unsur penting dari komputasi kuantum berasal dengan Paul Benioff, bekerja di Argonne National Labs, pada tahun 1981. Dia berteori sebuah operasi komputer klasik dengan beberapa prinsip kuantum mekanik. Tapi secara umum diterima bahwa David Deutsch dari Universitas Oxford memberikan dorongan penting untuk penelitian komputasi kuantum. Pada tahun 1984, ia berada di sebuah konferensi teori komputasi dan mulai bertanya-tanya tentang kemungkinan merancang sebuah komputer yang didasarkan hanya pada aturan kuantum, kemudian diterbitkan kertas terobosan beberapa bulan kemudian. Dengan ini, lomba mulai mengeksploitasi ide-idenya. Namun, sebelum kita menggali ke dalam apa yang dia mulai, itu bermanfaat untuk melihat pada latar belakang dunia kuantum.


ENTANGLEMENT
Entanglement adalah efek mekanik kuantum yang mengaburkan jarak antara partikel individual sehingga sulit menggambarkan partikel tersebut terpisah meski Anda berusaha memindahkan mereka.

Entanglement adalah esensi komputasi kuantum karena ini adalah jalinan kualitas yang berhubungan dengan lebih banyak informasi dalam bit kuantum dibanding dengan bit komputing klasik,” demikian Andrew Berkley, salah satu peneliti. Temuan terbaru ini mendekatkan jalan menuju komputer kuantum dan mengindikasikan bahwa persimpangan Josephson pada akhirnya dapat digunakan untuk membangun komputer supercanggih.


PENGOPERASIAN DATA QUBIT
Ilmu informasi quantum dimulai dengan menggeneralisir sumberdaya fundamental informasi klasik—bit—menjadi bit quantum, atau qubit. Sebagaimana bit merupakan objek ideal yang diabstraksi dari prinsip-prinsip fisika klasik, qubit adalah objek quantum ideal yang diabstraksi dari prinsip-prinsip mekanika quantum. Bit bisa direpresentasikan dengan kawasan-magnetik pada cakram, voltase pada sirkuit, atau tanda grafit yang dibuat pensil pada kertas. Pemfungsian status-status fisikal klasik ini sebagai bit tidak bergantung pada detil bagaimana mereka direalisasikan. Demikian halnya, atribut-atribut qubit adalah independen dari representasi fisikal spesifik sebagai pusingan nukleus atom atau, katakanlah, polarisasi photon cahaya.

Bit digambarkan oleh statusnya, 0 atau 1. Begitu pula, qubit digambarkan oleh status quantumnya. Dua status quantum potensial untuk qubit ekuivalen dengan 0 dan 1 bit klasik. Namun dalam mekanika quantum, objek apapun yang memiliki dua status berbeda pasti memiliki rangkaian status potensial lain, disebut superposisi, yang menjerat kedua status hingga derajat bermacam-macam. Status-status qubit yang diperkenankan persisnya merupakan semua status yang harus bisa dicapai, secara prinsip, oleh bit klasik yang ditransplantasikan ke dalam dunia quantum. Status-status qubit ekuivalen dengan titik-titik di permukaan bola, di mana 0 dan 1 sebagai kutub selatan dan utara [lihat boks di bawah]. Kontinum status antara 0 dan 1 membantu perkembangan banyak atribut luar biasa informasi quantum.


ALGORITMA SHOR
Sebuah komputer kuantum tidaklah sama dengan komputer klasik. Hal ini tidak dalam hal kecepatan saja, namun juga dalam hal pemrosesan informasi. Sebuah komputer kuantum dapat mensimulasikan sebuah proses yang tidak dapat dilakukan oleh komputer klasik.

Selama ini, sebuah komputer bekerja didasarkan hukum-hukum fisika klasik. Informasi didefinisikan secara positif, direpresentasikan secara material dan diproses berdasarkan hukum-hukum fisika klasik. Ketika para fisikawan masuk ke dalam teori kuantum dalam pemrosesan informasi, mereka diharuskan untuk mengubah pandangan mereka mengenai pemrosesan informasi. Lebih jauh lagi, mereka harus mengembangkan sebuah sistem logika baru yang mengikuti hukum-hukum fisika kuantum. Sistem logika baru ini disebut dengan logika kuantum. Sistem logika kuantum berbeda sama sekali dengan sistem logika yang selama ini dipakai, yaitu sistem logika yang dikembangkan oleh Aristoteles.

Dengan sistem logika yang baru, para ilmuwan harus memikirkan sebuah algoritma yang berbeda untuk memproses informasi. Inilah yang sebenarnya merupakan inti dari komputer kuantum. Beberapa algoritma telah dikembangkan dan yang di antaranya telah berhasil ditemukan adalah algoritma Shor yang ditemukan oleh Peter Shor pada tahun 1995. Lewat algoritma Shor ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode ini disebut kode RSA. Jika disandikan melalui kode RSA, data yang dikirimkan akan aman karena kode RSA tidak dapat dipecahkan dalam waktu yang singkat. Selain itu, pemecahan kode RSA membutuhkan kerja ribuan komputer secara paralel sehingga kerja pemecahan ini tidaklah efektif.


Referensi
http://ery-prima.blogspot.com/2012/05/komputasi-kuantum.html
http://www.fisikanet.lipi.go.id/utama.cgi?artikel&1170379173
http://sainstory.wordpress.com/2012/08/11/aturan-sederhana-untuk-dunia-quantum-yang-kompleks/

Selasa, 16 Oktober 2012

Teori Bisnis Informatika

Teori bahasa informatika itu apa ya?? ada yang tau?? oke, saya akan menjelaskan pengertian bisnis informatika dan juga memberikan beberapa contoh dari bisnis informatika tersebut.

Apa itu "BISNIS"??

Bisnis merupakan suatu organisasi yang menjual barang atau jasa kepada konsumen atau bisnis lainnya, untuk mendapatkan laba. Secara historis kata bisnis dari bahasa Inggris business, dari kata dasarbusy yang berarti "sibuk" dalam konteks individu, komunitas, ataupun masyarakat. Dalam artian, sibuk mengerjakan aktivitas dan pekerjaan yang mendatangkan keuntungan.

Apa itu "INFORMATIKA"?

Informatika merupakan disiplin ilmu yang mempelajari transformasi fakta berlambang yaitu data maupun informasi pada mesin berbasis komputasi. Disiplin ilmu ini mencakup beberapa macam bidang, termasuk di dalamnya: sistem informasi, ilmu komputer, ilmu informasi, teknik komputer dan aplikasi informasi dalam sistem informasi manajemen. Secara umum informatika mempelajari struktur, sifat, dan interaksi dari beberapa sistem yang dipakai untuk mengumpulkan data, memproses dan menyimpan hasil pemrosesan data, serta menampilkannya dalam bentuk informasi. Aspek dari informatika lebih luas dari sekedar sistem informasi berbasis komputer saja, tetapi masih banyak informasi yang tidak dan belum diproses dengan komputer.

Jadi, "BISNIS INFORMATIKA" itu apa??

Setelah melihat pengertian dari bisnis dan informatika, maka Bisnis Informatika adalah suatu kegiatan yang dilakukan individu atau kelompok orang yang menjual barang atau jasa dengan tujuan mendapatkan keuntungan yang dilakukan dengan bantuan teknologi informasi. Teknologi informasi  disini mencakup semua hal yang berkaitan dengan teknologi informasi seperti internet.

Jadi dapat disimpulkan bahwa bisnis informatika mempunyai arti dan tujuan yang tidak berbeda jauh dengan bisnis biasa, tetapi mempunyai berbedaan yang sangat mencolok apabila dilihat dari cara melakukan bisnis tersebut.

Pada era perkembangan teknologi yang semakin canggih, sangat memungkinkan sekali orang lebih tertarik untuk melakukan bisnis dengan bantuan teknolgi informasi. Alasanya dengan bisnis seperti ini akan sangat menghemat waktu, biaya dan lain-lain. 

Contoh dari Bisnis Informatika sebagai berikut : 
  • E-Commerce
E-Commerce merupakan suatu usaha yang berkaitan dengan jual beli suatu barang dan jasa dengan bantuan internet, atau dengan kata lain menggunakan bantuan elektronik. Sekarang ini banyak sekali web-web penyedia e-commerce seperti : www.kaskus.ustokobagus.com, dll. Dengan adanya e-commerce kita tidak perlu jauh-jauh pergi ketempat toko barang yang kita inginkan, tetapi cukup duduk manis dirumah dan pesan barang yang di inginkan. Tentu bisnis seperti ini juga memiliki kelemahan yaitu kita harus terhubung dengan internet, selain itu barang yang dilihat di foto belum tentu sama seperti yang diharapkan.

  • Jasa Warnet
Bisnis warnet juga termasuk dalam bisnis informatika karena secara tidak langsung bisnis ini dilakukan dengan bantuan media teknologi informasi. Perkembangan bisnis warnet sangat pesat sekali seiring dengan perkembagan internet, kita ambil contoh saja yaitu perkembangan jejaring sosial seperti facebooktwitter , game online , dll. Semua itu akan menarik seseorang untuk datang ke tempat warnet, tentu usaha warnet merupakan peluang bisnis yang menjanjikan.

  • Penyedia Jasa Berita dan Infotainment Online
Bisnis ini merupakan bisnin yang menyediakan jasa berita secara online. Dengan bantuan ini kita akan mendapat kan berita yang kita inginkan secara cepat dan tentunya up to date. Penyedia jasa ini seperti goal.com , detik.com , kapanlagi.com, dll.


Referensi :

Minggu, 20 Mei 2012

GAME ALGORITHMS (Game Pacman = Algoritma Greedy)

Pada pembahasan “Game Algorithms” ini saya akan melanjutkan dari penulisian yang sebelumnya, yaitu “Analisa Game Pacman”.

Persoalan karakter musuh Pacman dalam menentukan arah mana yang harus dijalaninya untuk semakin mendekatkan dirinya kepada karakter Pacman dapat dikategorikan sebagai persoalan optimasi, dan persoalan optimasi cukup efektif dipecahkan dengan menggunakan algoritma Greedy. Persoalan optimasi pada musuh Pacman ini termasuk persoalan minimasi, yaitu mencari rute terpendek saat ini dari posisi karakterk musuh ke posisi karakter Pacman.
Dalam bahasa Indonesia,  Greedy adalah rakus. Prinsip dari algoritma Greedy adalah memilih keputusan yang terbaik pada setiap langkahnya (optimum lokal). Keputusa n – keputusan lokal yang diambil pada akhirnya menjadi solusi optimum yang mutlak (optimum global).

Elemen-elemen dari algoritma greedy adalah sebagai berikut  :
·         Himpunan Kandidat
·         Himpunan Solusi, yaitu himpunan bagian dari himpunan kandidat yang merupakan solusi atas permasalahan.
·         Fungsi Seleksi, yaitu fungsi yang di dalamnya memiliki unsur greedy, yang digunakan untuk menyeleksi himpunan kandidat.
·         Fungsi Layak, yaitu untuk memeriksa apakah solusi yang dipilih merupakan solusi yang layak atau tidak.
·         Fungsi Objektif,yaitu solusi yang dihasilkan optimum.

Kekurangan dari algoritma greedy adalah solusi akhir yang dibentuk oleh fungsi seleksi tidak selalu menghasilkan solusi global yang paling optimum. Hal ini dikarenakan algoritma greedy tidak memeriksa semua kemungkinan dan hanya mengambil yang terbaik relatif terhadap fungsi seleksi yang didefinisikan. Meskipun demikian, algoritma greedy sangat cocok diterapkan untuk mendapatkan solusi yang mendekati optimum. Untuk dapat menghasilkan solusi yang semakin mendekati optimum, hal yang sangat menentukan adalah pemilihan fungsi seleksi, karena fungsi tersebut yang menentukan langkah mana yang diambil di tiap tahap. Strategi atau pendekatan algoritma greedy pada suatu persoalan bukan hanya satu, namun bisa menjadi sangat banyak, dan masing – masing strategi bisa menghasilkan solusi yang berbeda-beda. Karena algoritma greedy tidak menjamin optimalitas solusi, maka pemilihan fungsi seleksi pada algoritma ini menjadi sangat penting.

Elemen-elemen algoritma greedy pada permasalahan musuh Pacman sebagai berikut :
·         Himpunan Kandidat : himpunan titik-titik (node) yang merupakan posisi yang dapat dilalui oleh musuh Pacman.
·         Himpunan Solusi : himpunan titik-titik yang dipilih adalah rute yang berakhir pada posisi karakter Pacman.
·         Fungsi Seleksi : titik (node) yang dipilih semakin mendekati posisi karakter Pacman.
·         Fungsi Layak : titik yang dipilih dapat dilalui (bukan tembok atau karakter musuh lain).
·         Fungsi Objektif : rute yang dipilih adalah rute yang paling optimum (dalam hal ini, paling pendek).

Fungsi seleksi pada persoalan ini dapat dijabarkan sebagai berikut  :
·         Jika karakter Pacman ada di sebelah kanan karakter musuh saat ini, maka musuh pindah ke kanan, jika tidak pindah ke kiri.  
·         Jika karakter Pacman ada di sebelah atas karakter musuh saat ini, maka musuh pindah ke atas, jika tidak pindah ke bawah.

Sebelum karakter musuh dipindahkan, sebaiknya dicek terlebih dahulu apakah langkah pemindahan tersebut sah / layak (tidak ada dinding / tembok atau karakter musuh lain yang menghalangi).
Dibawah ini merupakan program yang digunakan untuk menentukan arah pergerakan karakter musuh pada pacman,yaitu dengan menggunakan dua variabel bernama “musuh” dan “pacman” yang masing-masing merepresentasikan karakter musuh dan karakter pacman. Masing-masing tipe tersebut memiliki atribut X dan Y yang menunjukkan posisi absis dan ordinat tipe tersebut pada labirin permainan pacman. Algoritmanya sebagai berikut  :
·         Fungsi seleksi :
procedure gerakMusuh(m:musuh,p:pacman)
{
if(p.X() >= m.X and isOK(m.X+1, m.Y)) then
pindahKanan(m)
else
if(p.Y()>= m.Y and (isOK(m.X, m.Y+1)) then
pindahAtas(m)
else
if(isOK(m.X, m.Y - 1) then
pindahBawah(m)
else
if(isOK(m.X-1, Y)) then
pindahKiri(m)
}

·         Fungsi layak : untuk menentukan apakah di posisi x dan y terdapat dinding atau karakter musuh lain yang menghalangi.
function isOK(x, y:integer)-> boolean
{
if(noDinding(x,y) && noMusuh(x,y))
è true
else
è false
}

Algoritma di atas menentukan bahwa karakter musuh pada pacman akan berjalan sampai disuatu percabangan, saat itu juga fungsi gerakkan musuh di atas akan dipanggil secara berulang-ulang.


Referensi :

Nugroho Chandra, Timotius (2010),  Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Pac-Man, Institut Teknologi Bandung, Bandung (diakses tanggal 10 Oktober  2011).

Selasa, 10 April 2012

Analisa Game Pacman

Pacman adalah sebuah permainan video arkade yang cukup terkenal. Cara bermainnya mudah yaitu pemain (pacman) diharuskan memakan makanan (berbentuk titik-titik kecil) dan sebuah bulatan besar (energizer) sampai habis di dalam sebuah labirin yang berliku-liku. Tidak hanya menghabiskan makanan tersebut, pemain juga harus menghindari 4 ‘hantu’ yang berkeliaran secara random untuk menangkap pemain. Jika pemain bertemu dengan hantu-hantu tersebut maka pemain dinyatakan gagal dan harus mengulangi dari awal lagi. Tetapi pemain bisa mengalahkan hantu tersebut dengan memakan energizer yang terdapat di pojokkan labirin. Jika pemain memakan titik besar tersebut, maka para hantu akan ketakutan dan berusaha menjauh dari pemain[1]. Dalam hal ini pemain bisa memakan hantu tersebut dan mendapatkan bonus yang besar, tetapi para hantu yang termakan tidak mati begitu saja, mereka kembali ke posisi semula dan kembali mengejar pemain. Pemain dinyatakan menang jika semua makanan habis tak tersisa dan pemain akan memasuki level berikutnya.

Pergerakan para hantu ini dipengaruhi oleh kecerdasan buatan atau Artificial intelligence (AI), dimana para hantu diberi kecerdasan untuk menentukan langkah dan mengambil keputusan akan bergerak kemana dengan menentukan rute yang paling pendek (minimum), tujuannya adalah menangkap pemain. Setiap hantu harus memiliki pemikiran berbeda dan memiliki kemampuan bekerja sama untuk mengejar pemain, sehingga permainan akan tampak lebih menarik. Persoalan mendekati karakter Pacman ini dapat diselesaikan dengan berbagai macam cara, salah satunya dengan menggunakan algoritma greedy[3].

Untuk melakukan hal ini, kita harus memberikan prioritas yang berbeda-beda pada masing-masing musuh, maka dengan sendirinya dia akan bergerak ke arah yang berbeda.
Kita ambil contoh dari keempat hantu itu, misalnya hantu yang berwarna merah. Hantu merah ini memulai gerakannya diluar rumah hantu. Dan digambarkan sebagai ancaman pertama yang muncul karena gerakannya hampir selalu di belakang pemain, begitu juga untuk ketiga hantu yang lainnya, mereka memiliki karakteristik masing-masing untuk mengejar target[2]. Berikut merupakan tampilan awal dari game Pacman :



Hantu yang berwarna merah akan terus mengikuti targetnya, jika target ke kanan maka hantu akan ke kanan, jika ke kiri maka dia juga ke kiri. Untuk hantu-hantu yang lainnya juga memiliki kemampuan dan karakteristik yang berbeda, misalkan hantu biru yang baru keluar dari rumah hantunya, dia ikut mengejar pemain, maka dengan menggunakan kemampuan yang diprogramkan, dapat dilihat apakah saat mengejar targetnya dia akan mendapat halangan (dinding labirin) atau tidak, maka disinilah para hantu di berikan kecerdasan untuk mengambil sebuah keputusan yang baik[2].

Cara Kerja
Kami akan menjelaskan cara kerja dari karakter musuh pacman tersebut dengan memberikan salah satu contoh keadaan dalam permainan pacman. Pada contoh kasus ini diasumsikan bahwa karakter Pacman tidak bergerak (diam saja di tempat), untuk menentukan apakah rute yang dipilih dari hasil algoritma greedy merupakan yang paling optimum atau tidak[3].  Berikut tampilannya :


Misal fungsi seleksi gerakkanMusuh diterapkan pada musuh Pacman yang berwarna oranye (gambar yang dilingkari). Posisi karakter musuh oranye berada di sebelah kiri karakter Pacman yang berwarna kuning, maka karakter musuh oranye seharusnya bergerak ke kanan, namun karena adanya dinding yang menghalangi, maka dilakukan pengecekan lagi terhadap perbandingan posisi Y dan didapati posisi karakter musuh oranye berada di sebelah atas karakter Pacman dan tidak ada dinding maupun karakter musuh lain yang menghalangi di atasnya, maka karakter musuh oranye dipindahkan ke atas[3]. Hasil pergerakan pertama adalah sebagai berikut :


Setelah itu, diterapkan lagi algoritma greedy untuk kedua kalinya, posisi karakter oranye sekarang ada di sebelah kiri karakter Pacman dan tidak ada yang menghalangi di sebelah kanannya, jadi karakter musuh bisa bergerak ke kanan[3], seperti tampilan berikut ini :


Setelah bergerak ke kanan, algoritma greedy diterapkan lagi dan karakter musuh berada di atas Pacman, maka karakter musuh digerakkan ke bawah sampai bertemu dengan karakter Pacman : jarak yang ditempuh untuk menemukan Pacman adalah jarak yang paling pendek[3].

Untuk kasus ini, algoritma greedy menghasilkan solusi yang optimal. Namun sesuai dengan dasar teori, algoritma greedy tidak selalu dapat menghasilkan solusi yang optimal karena algoritma greedy tidak memeriksa semua kemungkinan[3].

Contoh kasus berikut adalah kasus lain dari permainan pacman yang ternyata tidak dapat diselesaikan secara optimum oleh algoritma greedy seperti contoh kasus pertama di atas, namun solusi yang dihasilkan tidak terlalu buruk[3].


Pada contoh kasus yang kedua, tetap diasumsikan bahwa karakter Pacman tidak bergerak, selain itu, karakter musuh juga tidak ikut bergerak. Misal fungsi seleksi diterapkan pada karakter musuh warna oranye. Pada gambar 5, karena musuh oranye ada di sebelah kiri posisi Pacman, maka musuh digerakkan ke kanan[3]. Hasil pergerakan pertama sebagai berikut :


Setelah digerakkan ke kanan, posisi karakter musuh masih tetap di sebelah kiri Pacman, namun  musuh tidak bisa bergerak ke kanan lagi karena terhalang dinding, setelah dicek, ternyata karakter musuh berada di sebelah atas Pacman, maka sesuai dengan algoritma greedy yang telah ditetapkan, karakter musuh digerakkan ke bawah[3]. Hasil pergerakan kedua sebagai berikut :


Setelah digerakkan ke bawah, posisi karakter musuh oranye ada di sebelah kiri dan di bawah Pacman. Algoritma greedy diterapkan sekali lagi dan karakter musuh seharusnya digerakkan ke kanan, namun karena ada karakter musuh lainnya di sana, maka karakter musuh oranye digerakkan ke bawah sekali lagi[3]. Hasil pergerakan ketiga seperti berikut :

Pada hasil pergerakan ketiga diatas, karakter oranye bergerak ke bawah sekali lagi, dan dari sini terlihat bahwa rute yang ditempuh oleh karakter musuh oranye sudah tidak mungkin menjadi optimal lagi jika dibandingkan dengan solusi optimal (rute terpendek) seperti contoh kasus pertama[3]. Berikut tampilannya :


Solusi yang telah dicapai oleh algoritma greedy hingga pada gambar 8 di atas menunjukkan bahwa algoritma greedy yang dipilih ternyata tidak selalu menghasilkan solusi yang paling optimal. Namun demikian, karena objektif dari karakter musuh Pacman ini tidak harus selalu bergerak pada rute yang merupakan solusi paling optimum, maka algoritma greedy cukup baik untuk mendapatkan hampiran-hampiran yang mendekati solusi paling optimum tersebut[3].


Sumber :
[1]  Birch, Chad (2010), Understanding Pac-Man Ghost Behaviour, (diakses tangga l9 Oktober 2011 ) (http://gameinternals.com/post/2072558330/understanding-pac-man-ghost-behavior)

[2]  Pittman, jamey (2010), Pac-Man Dossier, (diakses tanggal 9 Oktober 2011)

[3]   Nugroho Chandra, Timotius (2010),  Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Pac-Man, Institut Teknologi Bandung, Bandung (diakses tanggal 10 Oktober  2011)