Selasa, 02 Juli 2013

Parallel Computation

a.       Konsep Paralel

Computation Parallel adalah salah satu teknik untu melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya komputasi parallel ini diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel ini maka diperlukanlah infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah.

b.       Distributed Processing
Distributed Processing adalah kemampuan untuk melakukan keseluruhan pemrosesan data yang dilakukan secara bersamaan antara server pusat (komputer) dengan komputer client melalui jalur komunikasi. Distributed processing ini merupakan suatu sistem pada jaringan komputer yang menghubungkan antara server komputer dan komputer client. 

c.   Architectural Parallel Computer
Untuk mengetahui tentang  perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:

1.      SISD, yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.

2.      SIMD, yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).

3.      MISD, yang merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.

4.      MIMD, yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.


d.       Pengantar Thread Programming
Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik.
Jenis-jenis Thread Berdasarkan Waktu Penciptaannya :

1. Static threads
Jumlah thread yang akan dibuat ditentukan saat penulisan dan kompilasi program. Tiap thread langsung dialokasikan stack tetap. Keunggulannya sederhana., dan kelemahannya tidak fleksibel.

2. Dynamic threads
Penciptaan dan penghancuran thread “on-the-fly” saat eksekusi. Penciptaan thread biasanya    menspesifikasikan fungsi utama thread (seperti pointer ke procedure) dan ukuran stack, dapat juga ditambah parameter-parameter lan seperti prioritas panjadwalan. Keunggulannya fleksibel dan kelemahannya lebih rumit.


e.      Pengantar Message Passing, OpenMP

1.      Message Passing
Message passing merupakan salah satu model pemrograman aplikasi pararel yang banyak digunakan. Setiap proses yang bekerja bersama secara paralel dapat berkomunikasi satu sama lain dengan cara mengirim pesan. Proses-proses ini dapat berdiri sendiri dan tidak perlu berbagi apa-apa, termasuk sumber daya prosesor dan memori.
Dalam message passing, setidaknya ada dua operasi dasar yang dimiliki oleh program untuk berkirim pesan, yaitu operasi pengiriman pesan (send) dan operasi untuk menerima pesan (receive).

2.      OpenMP (Open Multi-Processing)
OpenMP 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 system.

f .   Sebuah GPU (Graphical Processing Unit) pada awalnya adalah sebuah prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses yang realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan rendering saja melainkan bisa untuk proses komputasi secara umum.
CUDA singkatan dari Compute Unified Device Architecture , merupakan teknologi anyar dari produsen kartu grafis Nvidia, dan mungkin belum banyak digunakan orang secara umum. Kartu grafis lebih banyak digunakan untuk menjalankan aplikasi game, namun dengan teknologi CUDA ini kartu grafis dapat digunakan lebih optimal ketika menjalankan sebuah software aplikasi. Fungsi kartu grafis Nvidia digunakan untuk membantu Processor (CPU) dalam melakukan kalkulasi dalam proses data.



Senin, 24 Juni 2013

Quantum Computation

a.       Quantum Computation
Quantum Computation merupakan sebuah komputer yang canggih nantinya, berbeda dengan komputer yang kita pakai saat ini. Komputer yang biasa kita gunakan sehari-hari merupakan komputer digital. Quantum Computer memanfaatkan fenomena yang disebut superposisi. Quantum Komputer tidak menggunakan Bits tetapi Quantum Bits (QUBITS). Karena kemampuannya untuk berada di bermacam keadaan, komputer kuantum memiliki potensi untuk melaksanakan berbagai perhitungan secara simultan sehingga jauh lebih cepat dari komputer digital.


b.      Entanglement
Entanglement Quantum yang di istilahkan “perbuatan sihir jarak jauh” merupakan sifat dasar mekanika kuantum. Entanglement memungkinkan informasi kuantum tersebar dalam puluhan ribu kilometer dan hanya dibatasi oleh seberapa cepat dan seberapa banyaknya pasangan entanglement dapat bekerja dalam ruang.


c.       Pengoperasian Data QUBIT
Komputer digital sangat berbeda dengan komputer kuantum. Komputer digital bekerja dengan bantuan microprosessor yang berbentuk chip atau biasa dikenal dengan istilah CPU (Central Processing Unit) dan merupakan “jantung”nya komputer. Memory komputer menggunakan sistem binary atau sistem angka basis 2 yaitu 0 dan 1 yang dikenal sebagai BIT. Quantum Computer memanfaatkan fenomena yang disebut superposisi. Jadi dalam mekanika kuantum, suatu partikel bisa berada dalam dua keadaan sekaligus. Dalam komputer kuantum, selain 0 dan 1, dikenal juga superposisi dari keduanya. Ini berarti keadaannya bisa berupa 0 dan 1, bukan hanya 0 atau 1 seperti di komputer digital biasa.


d.      Algoritma Shor
Komputer Quantum menggunakan Algoritma Shor. Algoritma Shor didasarkan oleh sebuah teori bilangan : fungsi F(a) = xamod n adalah fungsi periodik jika x adalah bilangan bulat yang relatif prima dengan n, n akan menjadi bilangan bulat yang akan difaktorkan. Algoritma quantum shor memanfaatkan pararellisme quantum untuk melakukannya hanya dengan satu langkah.

  


Sabtu, 15 Juni 2013

Komputasi Cloud

a. Pendahuluan

Cloud Computing atau yang biasa disebut Komputasi Awan adalah suatu teknologi yang memanfaatkan layanan internet yang mana menggunakan pusat server yang bersifat virtual yang tujuannya untuk memberikan layanan jasa dari teknologi informasi, serta pemeliharaan data dan aplikasi. Contoh dari penyedia jasa layanan cloud computing seperti Google, Microsoft Cloud, Facebook dan lain-lain.

Cloud Computing memungkikan untuk mengakses data dari mana saja dan menggunakan perangkat fixed atau mobile device menggunakan internet cloud sebagai tempat penyimpanan data, aplikasi dan lainnya yang dapat dengan mudah mengambil data, download aplikasi dan berpindah ke cloud lainnya. 


b. GRID Computing

Grid Computing merupakan penggunaan sumber daya yang melibatkan banyak komputer dan terpisah secara geografis tetapi tetap tersambung melalui jalur komunikasi yang berfungsi untuk memecahkan persoalan komputasi skala besar. Jalur komunikasi yang menghubungkan komputer-komputer tersebut adalah internet. 



c. Virtualisasi

Virtualisasi yaitu sebuah teknologi yang memungkinkan untuk membuat versi virtual dari yang bersifat fisik, misalnya sumber daya jaringan. Proses dari virtualisasi ini dilakukan oleh sebuah sebuah firmware atau software.

Jadi dapat disimpulkan bahwa cloud computing adalah sebuah teknologi yang menggabungkan antara virtualisasi dan grid computing yang mana seluruh beban proses komputasi yang ada akan didistribusikan ke berbagai server yang saling terhubung didalam cloud, sehingga proses kerjanya akan lebih ringan.



d. Distributed Computation dalam Cloud Computing

Distributed computation dalam cloud computing merupakan sebuah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak memecahkan masalah dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut.



e. Map Reduce dan NoSQL ( Not Only SQL)

Map Reduce merupakan framework dari aplikasi yang terdistribusi. Framework software ini diperkenalkan oleh google dan digunakan untuk mendukung distributed computing yang mana dijalan di atas data yang sangat besar dan dijalankan secara simultan dibanyak komputer.

NoSQL merupakan sebuah konsep mengenai penyimpanan database yang non rasional. 


f. NoSQL Database

NoSQL merupakan sistem manajemen database yang berbeda dari database relasional. NoSQL ini adalah istilah untuk menyatakan berbargai hal yang didalamnya termasuk database sederhana yang berisikan key dan value seperti Memcache, atau non-database relational seperti MongoDB,Cassandra,CouchDB, dan lain-lain.




Rabu, 17 April 2013

TEORI KOMPUTASI MODERN


Komputasi

       Perkembangan teknologi komputer sangat pesat sehingga terlahirlah makna bahwa komputer merupakan mesin komputasi yang sangat populer pada era saat ini. Perlu kita ketahui apa arti dari komputasi itu sendiri. Komputasi adalah suatu cara yang dapat digunakan untuk melakukan pencarian solusi dari data yang telah diinput dengan menggunakan algoritma. Komputasi ini merupakan bagian dari ilmu komputer berpadu dengan ilmu matematika. Secara umum pengertian dari ilmu komputasi itu adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). 

Komputasi Modern

         Komputasi modern adalah suatu cara untuk melakukan pencarian solusi/ pemecahan masalah dari data input dengan menggunakan suatu algoritma tertentu.  Komputasi telah diimplementasikan dibeberapa cabang ilmu. Berikut adalah implementasi komputasi :


      a. Fisika

Fisika merupakan salah satu cabang ilmu yang memanfaatkan suatu tools yang dapat memudahkan dalam pemecahan suatu masalah perhitungan dengan mudah dan cepat. Tools tersebut adalah komputer, maka dapat disebut sebagai Fisika Komputasi. Pada bidang fisika ini komputer dapat menyelesaikan suatu perhitungan yang rumit dengan cepat, dan bahkan terkadang manusia tidak dapat menyelesaikan perhitungan tersebut. Salah satu penerapan Fisika Komputasi ini adalah memecahkan permasalahan dalam medan magnet.

 

b.    Kimia

Kimia komputasi merupakan salah satu cabang kimia yang menggunakan hasil teori kimia yang diterjemahkan ke dalam komputer untuk menghitung sifat molekul ataupun perubahannya. Kimia komputasi ini juga dapat dilakukan untuk mekanisme reaksi dan menjelaskan pengamatan pada reaksi di laboratorium, serta dapat memahami sifat dan perubahan yang terjadi.


c.    Matematika

Matematika komputasi merupakan ilmu yang mengintegrasikan matematika terapan dan ilmu komputer. Beberapa masalah yang terjadi pada bidang sains, teknik biasanya dimodelkan secara matematika dan kemudian disimulasikan dengan bantuan komputer yang mana tujuannya untuk mendapatkan solusi dari masalah tersebut. Penerapan teknik komputasi matematika meliputi metode numerik, scientific computing, scientific data mining, dan lain-lain.


d.    Ekonomi

Pada bidang ilmu ekonomi komputasi mempelajari tentang komputasi keuangan, agent-based computational modelling, computational econometrics dan statistika pengembangan alat bantu dalam pendidikan komputasi ekonomi.


e.    Geografi

Salah satu penerapan komputasi pada bidang geografi ini adalah komputasi awan.


Jumat, 19 Oktober 2012

Bisnis Informatika

Pada zaman sekarang perkembangan teknologi informatika dalam dunia bisnis sangat berkembang.  Pada lingkungan bisnis, kehadiran teknologi informatika  sangat membantu proses bisnis yang ada dan dapat mengoptimalkan efisiensi bisnis berbasis teknologi informatika. Perlu kita ketahui apa yang dimaksud dengan bisnis informatika?

Bisnis merupakan suatu organisasi yang menyediakan barang dan jasa yang bertujuan untuk mendapatkan keuntungan. Dalam arti luas bisnis adalah istilah umum yang menggambarkan semua aktifitas dan institusi yang memproduksi barang & jasa dalam kehidupan sehari – hari. Dapat disimpulkan bahwa bisnis adalah kegiatan yang dilakukan individu atau sekelompok orang (organisasi) yang menciptakan nilai (create value) melalui penciptaan barang dan jasa untuk memenuhi kebutuhan masyarakat dan memperoleh keuntungan melalui transaksi.

             Dalam Bisnis terdapat beberapa Aspek :
                   • Keuntungan individu dan kelompok
                   • Penciptaan Nilai
                   • Penciptaan Barang dan Jasa
                   • Keuntungan melalui Transaksi

Informatika berkaitan erat dengan teknologi informasi. Teknologi Informasi adalah suatu teknologi yang digunakan untuk mengolah data, termasuk memproses, mendapatkan, menyusun, menyimpan, memanipulasi data dalam berbagai cara untuk menghasilkan informasi yang berkualitas, yaitu informasi yang relevan, akurat dan tepat waktu, yang digunakan untuk keperluan pribadi, bisnis, dan pemerintahan dan merupakan informasi yang strategis untuk pengambilan keputusan. Peran yang dapat diberikan oleh aplikasi teknologi informasi ini adalah mendapatkan informasi untuk kehidupan pribadi seperti informasi tentang kesehatan, hobi, rekreasi, dan rohani. Kemudian untuk profesi seperti sains, teknologi, perdagangan, berita bisnis, dan asosiasi profesi. Sarana kerjasama antara pribadi atau kelompok yang satu dengan pribadi atau kelompok yang lainnya tanpa mengenal batas jarak dan waktu, negara, ras, kelas ekonomi, ideologi atau faktor lainnya yang dapat menghambat bertukar pikiran. Perkembangan Teknologi Informasi memacu suatu cara baru dalam kehidupan, dari kehidupan dimulai sampai dengan berakhir, kehidupan seperti ini dikenal dengan e-life, artinya kehidupan ini sudah dipengaruhi oleh berbagai kebutuhan secara elektronik.Teknologi informasi tidak hanya terbatas pada teknologi komputer melainkan mencakup juga teknologi komunikasi untuk mengirim atau menyebarkan informasi.

Jadi dapat kita simpulkan BISNIS INFORMATIKA adalah suatu kegiatan yang dilakukan individu atau sekelompok orang (organisasi) yang memiliki nilai (value) dengan tujuan mendapatkan keuntungan (profit) yang dilakukan dengan bantuan teknologi informasi.
Bisnis informatika bermunculan dari berbagai disiplin yang menggabungkan aspek manajemen bisnis, teknologi informasi, dan informatika. Tujuan bisnis informatika adalah mengintegrasikan sepenuhnya ilmu pengetahuan komputer dan administrasi bisnis dalam satu bidang. Sebuah bidang usaha seperti informatika adalah bersifat interdisipliner, yang berarti itu menggabungkan beberapa bidang studi dan keahlian menjadi satu. Bisnis dalam bidang informatika ini memiliki fungsi ganda artinya dapat menguntungkan bahkan dapat merugikan suatu pihak, tergantung actor dibalik berkembangnya suatu bisnis teknologi. Saat ini internet tidak hanya digunakan untuk mencari informasi semata, namun kini internet dapat digunakan untuk mencari teman dalam jejaring social, dan dapat menjual barang secara online.

Senin, 21 Mei 2012

ALGORITMA PADA GAME CHECKERS (STRAWBERRY PROLOG)

 
Game checkers adalah suatu permainan papan dengan menggunakan keterampilan murni dari dua pemain yang mengikuti sejumlah aturan-aturan dalam permainan, dan berusaha untuk memenangkan permainan dengan cara memakan semua bidak lawan dalam papan atau dengan membuat semua bidak lawan tidak dapat melakukan gerakan.
Pada game checkers algoritma yang digunakan adalah algoritma minimax. Algoritma minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kehilangan nilai maksimal. algoritma ini diterapkan pada game yang dimainkan oleh dua orang pemain.
Dalam pembuatan program game ini dibuat berdasarkan prosedur minimax untuk mendapatkan langkah terbaik dari posisi yang ada. Setiap posisi memiliki nilai yang dapat dihasilkan dari langkah terbaik, dengan berasumsi bahwa AI akan selalu mencoba memaksilmalkan nilai, ketika lawan akan mencoba untuk meminimalkannya nilai, ketika lawan akan mencoba untuk meminimalkannya. Ketika prosedur minimax mencapai akar pada pohon pencarian, akan menghasilkan langkah terbaik dengan asumsi lawan akan menggunakan kriteria evaluasi yang sama.
Perkembangan checkers menggunakan algoritma minimax banyak dipengaruhi algoritma lain seperti algoritma alpha beta yang diterapkan oleh samuel. Untuk menerapkan algoritma minimax pada game checkers diperlukan suatu fungsi optimasi tertentu. Salah satu fungsi optimasi yang paling dasar adalah membatasi kedalaman dari pohon pencarian.


http://id.wikipedia.org/wiki/Minimax

Senin, 09 April 2012

Analisa Sebuah Game



GAME CHECKERS
Game checkers adalah suatu permainan papan dengan menggunakan keterampilan murni dari dua pemain yang mengikuti sejumlah aturan-aturan dalam permainan, dan berusaha untuk memenangkan permainan dengan cara memakan semua bidak lawan dalam papan atau dengan membuat semua bidak lawan tidak dapat melakukan gerakan.
Game checkers akan menampilkan sebuah papan berukuran 8x8 yang terdiri dari 64 kotak yang nantinya akan menjadi area permainan. Pada papan tersebut terdapat 24 buah pion dengan pembagian 12 buah pion berwarna merah untuk lawan (komputer)  dan 12 buah pion berwarna putih untuk user. Pion-pion ini dapat berjalan ke segala arah tepat satu kotak. Game ini akan membuat user melatih berfikir dalam menyusun strategi secara logika .
                                         Tampilan Awal Game Checkers


Aturan bermain game ini :
·      Game ini dijalankan secara diagonal diatas bidak catur, dimana pemain dan komputer hanya dapat           berjalan maju secara diagonal. Seperti pada gambar dibawah ini


·     Pemain dan komputer dapat memakan pion lawan apabila terdapat ruang kosong di depan bidak pion lawan tersebut, dan harus memakannya agar pionnya dapat berjalan kembali. Saat memakan pion lawan, pemain atau komputer dapat memakannya lebih dari satu kali.


Tampilan saat ingin memakan pion lawan


Tampilan setelah pion merah memakan pion putih (pion lawan)

·      Komputer (pion lawan/pion putih) diberi pembelajaran untuk menghalangi jalan pemain (pion merah) dan memakan pion pemain (pion merah) untuk mencapai Goal (Tujuan). Begitu juga sebaliknya user (pion merah) harus menghalangin jalan lawan (pion putih) dan memakan pion lawan (pion putih) untuk mencapai goal.

 http://en.wikipedia.org/wiki/English_draughts