Sabtu, 23 Juni 2018

Hubungan Teori Komputasi sampai Kompuasi Paralel

Menurut saya hubungan yang dimulai dari teori komputasi sampai paralel komputasi yaitu :

Pada pertama kita membahas tentang teori awal tentang komputasi, Komputasi merupakan ilmu komputer untuk memecahakan suatu algoritma. Terdapat salah satu teknik komputasi  yang dilakukan secara bersamaan yaitu teknik komputasi parallel, teknik ini memerlukan kapasitas yang sangat besar karna harus mengolah data yang cukup besar. Kemudian Cloud Computing yang berarti Komputer Awan yang dimana kalo kita menyimpan data pada server kita bisa membukanya lagi dimana saja dan kapan saja, tujuan hingga implementasinya seperti google drive, dropbox . Kemudian Komputasi Quantum dimana tingkat kebagusannya lebih dari Cloud Computing dimana membahas algoritma yang dibuat dan masa yang akan datang pada Komputasi Quantum, Komputer kuantum beroperasi dengan prinsip yang benar-benar berbeda dengan komputer yang sudah ada sebelumnya, yang membuatnya sangat cocok untuk memecahkan masalah matematika tertentu, seperti menemukan bilangan prima yang sangat besar. Terakhir Komputasi Parallel yang mempunyai metode dimana komputer yang terpisah-pisah bisa menjadi satu untuk pengerjaannya dan ada juga penjelasan dari Komputasi Parallel yang berkembang di Indonesia. Kemudian keterkaitannya dengan pararel computing dan computer kuantum adalah dalam memproses data tersebut diperlukan computer yang cepat dan handal untuk mengolah data tersebut menjadi informasi yang berguna dan bermanfaat. Contohnya dalam membuat kecerdasan buatan, bahwa computer kuantum akan lebih cepat melakukan operasi-operasi tersebut

Parallel Computing

Parallel Computing (Komputasi Parallel)

Pengertian Komputasi Parallel

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

Latar Belakang Mengapa Komputasi Paralel Ada

Pada umumnya sebuah perangkat lunak dibangun dengan menggunakan paradigma komputasi serial, di mana perangkat lunak tersebut dirancang untuk dieksekusi oleh sebuah sebuah mesin yang mempunyai sebuah CPU. Pada komputasi serial, permasalahan diselesaikan dengan serangkaian instruksi yang dieksekusi satu demi satu oleh CPU, di mana hanya satu instruksi yang bisa berjalan pada satu waktu saja. Hal ini akan memunculkan permasalahan untuk eksekusi  program yang membutuhkan sumber daya komputasi (prosesor dan memori) yang besar, yaitu waktu eksekusi yang panjang, padahal beberapa instruksi atau kumpulan instruksi sebenarnya dapat dieksekusi secara bersamaan tanpa mengganggu kebenaran program. Permasalahan yang muncul dalam komputasi serial tersebut dapat diatasi dengan menggunakan komputasi paralel, di mana waktu eksekusi program dapat dipersingkat dengan membagi program menjadi task-task yang dapat dikerjakan secara terpisah untuk kemudian dieksekusi secara  paralel. Tidak semua task dapat dikerjakan secara terpisah (sebagai contoh adalah penghitungan deret Fibonacci), sehingga tidak semua permasalahan dapat memperoleh keuntungan jika solusi  permasalahan tersebut dieksekusi secara paralel. Dalam pembagian task , diperlukan juga  pembangunan graf ketergantungan task untuk menentukan ketergantungan antar task (saat suatu task membutuhkan hasil komputasi dari task lain). Pembagian pogram menjadi task -task juga harus memperhatikan granularity (perbandingan antara waktu komputasi dengan waktu komunikasi) dari task -task tersebut. Semakin besar granularity (coarse-grained ), akan semakin kecil beban yang dibutuhkan untuk interaksi antar task.

Tujuan Utama Komputasi Paralel

Tujuan utama penggunaan komputasi paralel adalah untuk mempersingkat waktu eksekusi  program yang menggunakan komputasi serial. Beberapa alasan lain yang menjadikan suatu  program menggunakan komputasi paralel antara lain :
  1. Untuk permasalahan yang besar, terkadang sumber daya komputasi yang ada sekarang  belum cukup mampu untuk mendukung penyelesaian terhadap permasalahan tersebut.
  2. Adanya sumber daya non-lokal yang dapat digunakan melalui jaringan atau internet. 
  3. Penghematan biaya pengadaan perangkat keras, dengan menggunakan beberapa mesin yang murah sebagai alternatif penggunaan satu mesin yang bagus tapi mahal, walaupun menggunakan n buah prosesor.
  4.  Adanya keterbatasan kapasitas memori pada mesin untuk komputasi serial.

Hukum yang Berlaku dalam Parallel Processing

  1. Hukum Amdahl (Inggris: Amdahl’s law) adalah prinsip dasar dalam peningkatan kecepatan proses suatu komputer jika hanya sebagian dari peralatan perangkat keras ataupun perangkat lunak-nya yang diperbaharui/ditingkatkan kinerjanya. Nama Amdahl diambil dari nama seorang arsitektur komputer terkenal di perusahaan IBM, Gene Amdahl yang pertama kali mencetuskan bentuk formulasi ini.
Formulasi atau hukum ini banyak dipakai dalam bidang komputasi paralel untuk meramalkan peningkatan kecepatan maksimum pemrosesan data (secara teoretis) jika jumlah prosesor di dalam komputer paralel tersebut ditambah.
Hukum Amdahl ini dinyatakan dalam bentuk:
dengan:
  • {\displaystyle P_{k}\ } adalah prosentase jumlah instruksi
  • {\displaystyle S_{k}\ } adalah faktor percepatannya (1 menyatakan tanpa percepatan),
  • {\displaystyle k\ } menyatakan tiap bagian yang dipercepat/diperlambat, dan
  • {\displaystyle n\ } adalah jumlah bagian atau prosesor keseluruhan dalam proses percepatan ini.
2.Hukum Gustafson

Pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran Gustafson, sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.


Hambatan Komputasi Paralel


Penggunaan komputasi paralel sebagai solusi untuk mempersingkat waktu yang dibutuhkan untuk eksekusi program mempunyai beberapa hambatan. Hambatan-hambatan tersebut antara lain adalah :

  1. Hukum Amdahl : percepatan waktu eksekusi program dengan menggunakan komputasi paralel tidak akan pernah mencapai kesempurnaan karena selalu ada bagian program yang harus dieksekusi secara serial.
  2. Hambatan yang diakibatkan karena beban jaringan : dalam eksekusi program secara paralel, prosesor yang berada di mesin yang berbeda memerlukan pengiriman dan  penerimaan data (atau instruksi) melalui jaringan. Untuk program yang dibagi menjadi task-task yang sering membutuhkan sinkronisasi, network latency menjadi masalah utama. Permasalahan ini muncul karena ketika suatu task membutuhkan data dari task yang lain, state ini dikirimkan melalui jaringan di mana kecepatan transfer data kurang dari kecepatan prosesor yang mengeksekusi instruksi task   Hal ini menyebabkan task tersebut harus menunggu sampai data sampai terlebih dahulu, sebelum mengeksekusi instruksi selanjutnya. Jumlah waktu yang dibutuhkan untuk berkomunikasi melalui jaringan antar dua titik adalah jumlah dari startup time, per-hop time, dan per-word transfer time.
  3. Hambatan yang terkait dengan beban waktu untuk inisiasi task, terminasi task, dan sinkronisasi.

Arsitektur Komputasi Paralel

Taksonomi Flynn membagi arsitektur komputer paralel dengan menggunakan sudut pandang instruksi dan data, sehingga terdapat empat jenis arsitektur komputer paralel :
  1. SISD (Single Instruction, Single Data). Arsitektur ini adalah arsitektur yang mewakili komputer serial, di mana hanya ada satu prosesor dan satu aliran masukan data (memori) sehingga hanya ada satu task yang dapat dieksekusi pada suatu waktu. Arsitektur von Neumann termasuk dalam jenis ini. SISD 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 (Single Instruction, Multiple Data). Pada arsitektur ini, eksekusi sebuah instruksi akan dilakukan secara bersamaan oleh beberapa prosesor, di mana suatu prosesor dapat menggunakan data yang berbeda dengan prosesor lain. Karakteristik lain dari arsitektur ini adalah alur eksekusi instruksi yang deterministik (state dari instruksi dan data pada suatu waktu dapat dengan mudah diketahui). Arsitektur ini cocok untuk program yang dapat dibagi menjadi task-task yang mempunyai derajat keteraturan yang tinggi, misalnya sistem pengolah grafik. 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 (Multiple Instruction, Single Data). Pada arsitektur ini, berbagai instruksi akan dieksekusi secara bersamaan oleh beberapa prosesor dengan menggunakan data yang sama. Arsitektur ini kurang populer karena hanya sedikit permasalahan yang membutuhkan solusi dengan menggunakan karakteristik arsitektur ini. Contoh permasalahan yang mungkin membutuhkan arsitektur ini antara lain adalah multiple frequency filter dan program pemecah sandi yang menggunakan beberapa algoritma kriptografi sekaligus. 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 (Multiple Instruction, Multiple Data). Pada arsitektur ini, berbagai instruksi dapat dieksekusi oleh beberapa prosesor di mana masing-masing prosesor dapat menggunakan data yang berbeda. Eksekusi instruksi pada arsitektur ini dapat dilakukan secara sinkron (pada suatu rentang waktu, jumlah instruksi yang dieksekusi oleh semua prosesor adalah sama) maupun asinkron, deterministik maupun non-deterministik. Selain itu, arsitektur ini dapat melakukan pekerjaan sesuai dengan karakteristik dari ketiga asitektur sebelumnya. 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.
Perbedaan antara Komputasi Tunggal dengan Komputasi Parallel :
1. Komputasi Tunggal
2. Komputasi Parallel

Arsitektur Memori pada Komputasi Paralel 

Pada umumnya, ada dua buah arsitektur memori pada komputer paralel, yaitu shared memory dan distributed memory.

Shared memory 
Arsitektur ini menyediakan global addressing sehingga berbagai prosesor mempunyai cara pengaksesan memori yang seragam. Setiap perubahan pada suatu lokasi memori oleh suatu prosesor akan selalu terlihat oleh prosesor lain. Kelebihan dari arsitektur ini antara lain adalah pengaksesan memori yang user friendly dan performansi yang baik dalam penggunaan data bersama antar task. Sedangkan kekurangannya antara lain adalah kurangnya skalabilitas ketika terjadi penambahan prosesor, di mana akan terjadi peningkatan traffic antara prosesor ke shared memory dan antara cache coherent system dengan memori sebenarnya.
Berdasarkan frekuensi akses, ada dua jenis shared memory : 
  1. Uniform Memory Access (UMA). Setiap prosesor memiliki hak pengaksesan yang seragam dengan prosesor lain
  2. Non Uniform Memory Access (NUMA). Tidak semua prosesor memiliki hak yang sama dalam mengakses memori
Distributed memory
Arsitektur ini mempunyai karakteristik di mana setiap prosesor memiliki memorinya masing-masing, sehingga eksekusi instruksi dapat berjalan secara independen antara satu prosesor dengan yang lain. Prosesor akan menggunakan jaringan ketika membutuhkan akses ke memori non lokal. Akses ini sepenuhnya menjadi tanggung jawab  penulis program. Kelebihan dari arsitektur ini adalah terjaganya skalabilitas ketika terjadi  penambahan prosesor. Sedangkan kekurangannya adalah penulis program harus berurusan dengan detail komunikasi data antara prosesor dan memori non lokal.
Distributed Processing atau Distributed Computing System adalah sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan komputer dan saling bekerjasama untuk mengerjakan tugas-tugas tertentu. Yang dimaksud dengan peralatan pemrosesan dataadalah peralatan komputasi yang dapat mengeksekusi sendiri sebuah program.
Sekumpulan peralatan yang saling terhubung akan mendistribusikan berbagai macam hal, dianataranya adalah:
  • Processing Logic / Pemrosesan secara logis
  • Fungsi. Beberapa fungsi sistem komputer dapat didelegasikan ke beberapa hardware atau software
  • Data
  • Kontrol
Kriteria Distributed Processing
Pemrosesan terdistribusi (Distributed Processing) dapat dikelompokkan berdasarkan beberapa kriteria, yaitu:
  • Degree of Computing / tingkat hubungan : Tinggi atau rendah ? Jumlah data yang saling digunakan dibandingkan dengan jumlah pemrosesan lokal
  • Struktur antar hubungan : kuat atau lemah ? Jika komponen di Share dikatakan kuat ?
  • Kesalingtergantungan komponen-komponen : Kuat atau lemah dalam mengekseskusi proses.
  • Keselarasan antar komponen : selaras atau tidak selaras ?

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.
Contoh:
Sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Threading dibagi menjadi 2, yaitu :
  1. Static Threading. Teknik ini biasa digunakan untuk komputer dengan chip multi processors 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. Dynamic Multithreading. 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).

Perkembangan di Indonesia

Di Indonesia, usaha untuk membangun infrastruktur mesin paralel sudah dimulai sejak era 90-an, meski belum pada tahap serius dan permanen. Namun untuk pemrograman paralel sudah sejak awal menjadi satu mata-kuliah wajib di banyak perguruan tinggi terkait. Baru pada tahun 2005 dimulai pembuatan infrastruktur mesin paralel permanen, misalnya yang dikembangkan oleh Grup Fisika Teoritik dan Komputasi di P2 Fisika LIPI. Didorong oleh perkembangan pemrograman paralel yang lambat, terutama terkait dengan sumber daya manusia (SDM) yang menguasainya, mesin paralel LIPI ini kemudian dibuka untuk publik secara cuma-cuma dalam bentuk LIPI Public Cluster (LPC). Saat ini LPC telah dikembangkan lebih jauh menjadi gerbang komputasi GRID di Indonesia dengan kerjasama global menjadi IndoGRID.
Pada tahun berikutnya, dengan dukungan dana dari proyek Inherent Dikti, Fasilkom UI juga membangun mesin paralel. Sementara itu pada tahun 2009, ITB membuat kluster hibrid CPU dan GPU yang pertama di Indonesia dengan kemampuan hingga 60 inti CPU dan 1920 inti GPU.

Sumber

Sabtu, 19 Mei 2018

Pengantar Quantum Computation

Definisi

Quantum Computation atau komputer kuantum adalah sebuah alat untuk perhitungan, dimana perhitungan ini menggunakan langsung fenomena kuantum mekanik dan perhitungan ini seperti superposisi dan belitan untuk melakukan operasi pada data. Kuantum komputer berbeda dari komputer tradisional yang didasarkan pada transistor. Perbedaan komputer kuantum dengan komputer klasik adalah pada sebuah komputer klasik memiliki memori terdiri dari bit, dimana tiap bit mewakili salah satu atau nol. Sedangkan sebuah komputer kuantum mempertahankan urutan qubit. Sebuah qubit tunggal dapat mewakili satu, nol, atau, krusial. 
Quantum computing dibuat untuk melakukan operasi pada data yang mempermudah penggunanya untuk mengolah data. Pengembangan computer kuantum, jika praktis, akan menandai lompatan maju dalam kemampuan komputasi jauh lebih besar dari pada yang dari sempoa ke superkomputer modern, dengan keuntungan kinerja di alam miliar kali lipat dan seterusnya. Melakukan komputasi yang kompleks seperti yang dilakukan quantum computer dalam melakukan perhitungan intergerfactorization, yaitu jika terdapat bilangan maka akan dicoba untuk dituliskan sebagai perkalian bilangan prima.

Sejarah Singkat

  • Pada tahun 1970-an pencetusan atau ide tentang komputer kuantum pertama kali muncul oleh para fisikawan dan ilmuwan komputer, seperti 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).
  • Feynman dari California Institute of Technology yang pertama kali mengajukan dan menunjukkan model bahwa sebuah sistem kuantum dapat digunakan untuk melakukan komputasi. Feynman juga menunjukkan bagaimana sistem tersebut dapat menjadi simulator bagi fisika kuantum.
  • Pada tahun 1985, Deutsch menyadari esensi dari komputasi oleh sebuah komputer kuantum dan menunjukkan bahwa semua proses fisika, secara prinsipil, dapat dimodelkan melalui komputer kuantum. Dengan demikian, komputer kuantum memiliki kemampuan yang melebihi komputer klasik.
  • Pada tahun 1995, Peter Shor merumuskan sebuah algoritma yang memungkinkan penggunaan komputer kuantum untuk memecahkan masalah faktorisasi dalam teori bilangan.
  • Sampai saat ini, riset dan eksperimen pada bidang komputer kuantum masih terus dilakukan di seluruh dunia. Berbagai metode dikembangkan untuk memungkinkan terwujudnya sebuah komputer yang memilki kemampuan yang luar biasa ini. Sejauh ini, sebuah komputer kuantum yang telah dibangun hanya dapat mencapai kemampuan untuk memfaktorkan dua digit bilangan. Komputer kuantum ini dibangun pada tahun 1998 di Los Alamos, Amerika Serikat, menggunakan NMR (Nuclear Magnetic Resonance).

Keunggulan Komputasi Kuantum


Komputer kuantum memanfaatkan sebuah fenomena yang dinamakan super posisi yaitu dalam mekanika kuantum, suatu partikel bisa berada dalam dua keadaan sekaligus. Komputer kuantum juga menggunakan Qubits yaitu kemampuan untuk berada di berbagai macam keadaan. Komputer kuantum memiliki potensi untuk melaksanakan berbagai perhitungan secara simultan atau lebih rinci sehingga jauh lebih cepat dari komputer digital. Jadi intinya komputer kuantum lebih baik kemampuannya dan lebih cepat dibandingkan dengan komputer digital.

Perbandingan dengan Komputer Konvensional


Quantum Computer dapat memproses jauh lebih cepat daripada komputer konvensional. Pada dasarnya, quantum computer dapat memproses secara paralel, sehingga berkomputasi jauh lebih cepat. Quantum Computer 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.

Quantum Entanglement


Entanglement sendiri merupakan bagian dari Quantum Computation. Entanglement adalah suatu teori mekanika quantum yang menggambarkan seberapa cepat dan betapa kuatnya keterhubungan partikel-partikel pada Quantum computer yang dimana jika suatu partikel diperlakukan “A” maka akan memberikan dampak “A” juga ke partikel lainnya.
Ada juga pemahaman lain tentang Entanglement menurut Albert Einsten “Entanglement Kuantum” di istilahkan “Perbuatan Sihir Jarak Jauh” yang merupakan sifat dasar mekanika kuantum. Entanglement memungkinkan informasi kuantum tersebar dalam puluhan ribu kilometer, dan hanya dibatasi oleh seberapa cepat dan seberapa banyak pasangan entanglement dapat bekerja dalam ruang.
Pengertian lain yang saya dapatkan dari internet : [Quantum entanglement]  merupakan fenomena yang menghubungkan dua partikel sedemikian rupa sehingga perubahan yang terjadi pada satu partikel seketika itu juga tercermin dalam partikel lainnya, meski mungkin secara fisik diantara mereka terpisah beberapa tahun cahaya.

Pengoperasian Data Qubit


Sebuah qubit adalah unit dasar informasi dalam sebuah komputer kuantum. Sementara sedikit dapat mewakili hanya satu dari dua kemungkinan seperti 0 / 1, ya / tidak, qubit dapat mewakili lebih: 0 / 1, 1 dan 0, probabilitas terjadinya setiap saat dikombinasikan dengan qubit lebih, dan semua yang secara bersamaan. Secara umum komputer kuantum dengan qubit n bisa dalam superposisi sewenang-wenang hingga 2 n negara bagian yang berbeda secara bersamaan (ini dibandingkan dengan komputer normal yang hanya dapat di salah satu negara n 2 pada satu waktu).

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.

Quantum Gates


Quantum Gates / Gerbang Quantum merupakan sebuah aturan logika / gerbang logika yang berlaku pada quantum computing. Prinsip kerja dari quantum gates hampir sama dengan gerbang logika pada komputer digital. Jika pada komputer digital terdapat beberapa operasi logika seperti AND, OR, NOT, pada quantum computing gerbang quantum terdiri dari beberapa bilangan qubits, sehingga quantum gates lebih susah untuk dihitung daripada gerang logika pada komputer digital.

Algoritma pada Quantum Computing


Algoritma Shor 

Algoritma yang ditemukan oleh Peter Shor pada tahun 1995. Dengan menggunakan algoritma ini, sebuah komputer kuantum dapat memecahkan sebuah kode rahasia yang saat ini secara umum digunakan untuk mengamankan pengiriman data. Kode yang disebut kode RSA ini, 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.

Algoritma Shor bergantung pada hasil dari teori bilangan. Hasil ini adalah: fungsi periodik. Dalam konteks algoritma Shor, n akan menjadi bilangan yang akan difaktorkan. Jika dua bilangan tersebut adalah coprime itu berarti bahwa pembagi umumnya adalah 1. Perhitungan fungsi ini untuk jumlah eksponensial, dari itu akan mengambil waktu eksponensial pada komputer klasik. Algoritma Shor memanfaatkan paralelisme kuantum untuk melakukan jumlah eksponensial operasi dalam satu langkah.

Algoritma Grover

Algoritma Grover adalah sebuah algoritma kuantum yang menawarkan percepatan kuadrat dibandingkan pencarian linear klasik untuk list tak terurut. Algoritma Grover menggambarkan bahwa dengan menggunakan pencarian model kuantum, pencarian dapat dilakukan lebih cepat dari model komputasi klasik. Dari banyaknya algoritma kuantum, algoritma grover akan memberikan jawaban yang benar dengan probabilitas yang tinggi. Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma. Algoritma Grover juga dapat digunakan untuk memperkirakan rata-rata dan mencari median dari serangkaian angka, dan untuk memecahkan masalah Collision.

Manfaat - Manfaat Komputer Quantum di Masa Depan:


1. Kriptografi dan Algoritma Peter Shor
Pada tahun 1994 Peter Shor (Bell Laboratories) menemukan algoritma kuantum pertama yang secara prinsip dapat melakukan faktorisasi yang efisien. Hal ini menjadi sebuah aplikasi kompleks yang hanya dapat dilakukan oleh sebuah komputer kuantum. Pemfaktoran adalah salah satu masalah yang paling penting dalam kriptografi. Misalnya, keamanan RSA (sistem keamanan perbankan elektronik) ‐ kriptografi kunci publik ‐ tergantung pada pemfaktoran dan hal itu akan menjadi masalah yang besar. Karena banyak fitur yang bermanfaat dari komputer kuantum, para ilmuwan berupaya lebih untuk membangunnya. Apabila, pemecahan segala jenis enkripsi saat ini memerlukan waktu hampir seabad pada komputer yang ada, mungkin hanya memakan waktu beberapa tahun pada komputer kuantum (Maney, 1998).

2. Kecerdasan Buatan (Artificial Intelligence)
Seperti telah dijelaskan sebelumnya bahwa computer kuantum akan jauh lebih cepat dan konsekuensinya akan mampu melaksanakan sejumlah besar operasi dalam periode waktu yang sangat singkat. Di sisi lain, peningkatan kecepatan operasi akan membantu komputer untuk belajar lebih cepat meskipun dengan menggunakan salah satu metode yang paling sederhana, yaitu ”mistake bound model for learning”.

3. Manfaat Lain
Kinerja tinggi akan memungkinkan kita untuk mengembangkan algoritma kompresi yang kompleks, pengenalan suara dan citra, simulasi molekular, keacakan sesungguhnya (true randomness) dan komunikasi kuantum. Keacakan sangat penting dalam simulasi. Simulasi Molekular sangat penting untuk pengembangan aplikasi simulasi pada bidang kimia dan biologi. Dengan bantuan komunikasi kuantum baik pengirim maupun penerima akan diberitahukan jika ada penyusup yang akan mencoba untuk menangkap sinyal. Qubits juga memungkinkan lebih banyak informasi yang dapat dikomunkasikan per bit. Komputer kuantum menjadikan
komunikasi lebih aman.

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.

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

Sumber:

Rabu, 11 April 2018

Cloud Computing

Cloud Computing? pasti banyak dari kita yang sudah sering dengar kata tersebut, atau jika belum pernah dengar, mungkin pernah dengar istilah dalam bahasa Indonesia-nya, yaitu “Komputasi Awan”. Seiring dengan perkembangan jaman, teknologi ini juga mengalami perkembangan kearah pencapaian kemudahan dan kenyamanan luar biasa dalam melakukan kegiatan sehari-hari  yang dianggap tidak mungkin dapat dikerjakan dalam waktu singkat. Baik berupa interaksi sosial, marketing, dan kegiatan yang dapat menarik minat pengguna lainya. Pengembangan teknologi computasi berbasis internet sekarang ini lebih diarahkan kepada proses pengaplikasian sistem yang mudah dan tidak memerlukan banyak waktu atau tenaga. 
Apa sebenarnya cloud computing itu? Cloud Computing atau Komputasi Awan adalah pemanfaatan teknologi komputer dalam memberikan layanan komputasi dengan konsep layanan yang diberikan melalui media internet. Aplikasi yang dijalankan oleh Cloud Computing tidak berada di komputer, namun berada di komputer lain yang dihubungkan dengan media internet. Sehingga kita tidak perlu melakukan instalasi pada server. Tetapi pengguna harus terhubung ke internet untuk bisa mengakses dan menjalankan aplikasi yang berada di server tersebut. Beberapa contoh aplikasi yang menggunakan cloud computing antara lain seperti Email Service, Google drive, OneDrive, Dropbox. 


Layanan Cloud Computing

Berikutinya akan kita bahas apa saja jenis layanan dari Cloud Computing ini. NIST sendiri membagi jenis layanan Cloud Computing menjadi tiga sebagai berikut: 

1. Software as a Service (SaaS)
SaaS adalah layanan dari Cloud Computing dimana kita tinggal memakai software (perangkat lunak) yang telah disediakan. Kita cukup tahu bahwa perangkat lunak bisa berjalan dan bisa digunakan dengan baik. Contoh dari layanan SaaS ini antara lain adalah: 
  • Layanan produktivitas: Office365, GoogleDocs, Adobe Creative Cloud, dsb 
  • Layanan email: Gmail, YahooMail, LiveMail, dsb 
  • Layanan social network: Facebook, Twitter, Tagged, dsb 
  • Layanan instant messaging: YahooMessenger, Skype, GTalk, dsb

Selain contoh diatas, tentu masih banyak lagi yang lain. Dalam perkembangannya, banyak perangkat lunak yang dulu hanya kita bisa nikmati dengan menginstall aplikasi tersebut di komputer kita (on-premise) mulai bisa kita nikmati lewat Cloud Computing. Keuntungan dari SaaS ini adalah kita tidak perlu membeli lisensi software lagi, kita tinggal berlangganan ke cloud provider dan tinggal bayar berdasarkan pemakaian.

2. Platform as a Service (PaaS)
PaaS adalah layanan dari Cloud Computing dimana kita menyewa “rumah” berikut lingkungan-nya, untuk menjalankan aplikasi yang kita buat. Kita tidak perlu pusing untuk menyiapkan “rumah” dan memelihara “rumah” tersebut. Yang penting aplikasi yang kita buat bisa berjalan dengan baik. Untuk pemeliharaan “rumah” ini (sistem operasi, network, database engine, framework aplikasi, dll) menjadi tanggung jawab dari penyedia layanan. 

Sebagai analogi, misal-nya kita sewa kamar hotel, kita tinggal tidur di kamar yang sudah kita sewa, tanpa peduli bagaimana “perawatan” dari kamar dan lingkungan kamar. Yang penting, kita bisa nyaman tinggal disana, jika suatu saat kita dibuat tidak nyaman, tinggal cabut dan pindah ke hotel lain yang lebih bagus layanan-nya. Contoh penyedia layanan PaaS: Amazon Web Service, Windows Azure, GoogleApp Engine.

Keuntungan dari PaaS adalah kita sebagai pengembang bisa fokus pada aplikasi yang kita buat, “rumah” untuk aplikasi kita menjadi tanggung jawab cloud provider.

3. Infrastructure as a Service (IaaS)
IaaS adalah layanan dari Cloud Computing dimana kita bisa “menyewa” infrastruktur IT (unit komputasi, storage, memory, network dsb). Kita bisa definisikan berapa besar-nya unit komputasi (CPU), penyimpanan data (storage), memory (RAM), bandwith, dan konfigurasi lain-nya yang akan kita sewa. Untuk lebih mudahnya, layanan IaaS ini adalah seperti kita menyewa komputer yang masih kosong, dimana kita konfigurasikan sendiri komputer ini, untuk kita kita gunakan sesuai dengan kebutuhan kita dan bisa kita install sistem operasi dan aplikasi apapun diatas-nya.


Contoh penyedia layanan IaaS : Amazon EC2, Rackspace Cloud, Windows Azure, dsb Keuntungan dari IaaS ini adalah kita tidak perlu membeli komputer fisik, dan konfigurasi komputer virtual tersebut bisa kita rubah (scale up/scale down) dengan mudah. Sebagai contoh, saat komputer virtual tersebut sudah kelebihan beban, kita bisa tambahkan CPU, RAM, Storage dsb dengan segera.


Karakteristik Cloud Computing

Cloud service biasanya memiliki beberapa karakteristik, diantaranya adalah:
  1. Sangat cepat di deploy, sehingga cepat berarti instant untuk implementasi.
  2. Biaya start-up teknologi ini mungkin akan sangat murah atau tidak ada dan juga tidak ada investasi kapital.
  3. Biaya dari service dan pemakaian akan berdasarkan komitmen yang tidak fix.
  4. Service ini dapat dengan mudah di upgrade atau downgrade dengan cepat tampa adanya Penalty.
  5. Service ini akan menggunakan metode multi-tenant (Memungkinkan banyak customer dalam 1 platform).
  6. Kemampuan untuk meng-customize service akan menjadi terbatas.

Cara Kerja Sistem Cloud Computing

Sistem Cloud bekerja menggunakan internet sebagai server dalam mengolah data. Sistem ini memungkinkan pengguna untuk login ke internet yang tersambung ke program untuk menjalankan aplikasi yang dibutuhkan tanpa melakukan instalasi. Infrastruktur seperti media penyimpanan data dan juga instruksi/perintah dari pengguna disimpan secara virtual melalui jaringan internet kemudian perintah – perintah tersebut dilanjutkan ke server aplikasi. Setelah perintah diterima di server aplikasi kemudian data diproses dan pada proses final pengguna akan disajikan dengan halaman yang telah diperbaharui sesuai dengan instruksi yang diterima sebelumnya sehingga konsumen dapat merasakan manfaatnya.
Contohnya lewat penggunaan email seperti Yahoo ataupun Gmail. Data di beberapa server diintegrasikan secara global tanpa harus mendownload software untuk menggunakannya. Pengguna hanya memerlukan koneksi internet dan semua data dikelola langsung oleh Yahoo dan juga Google. Software dan juga memori atas data pengguna tidak berada di komputer tetapi terintegrasi secara langsung melalui sistem Cloud menggunakan komputer yang terhubung ke internet.

Kelebihan Cloud Computing
1. Data terpusat
Salah satu yang bisa dianggap keunggulan teknologi ini adalah data terpusat berada di server. Kelebihan ini memungkinkan Anda mengakses mesin cloud Anda dari mana pun selama ada sambungan internet. Misalnya, jika Anda memiliki data di Google Drive yang sinkron antara komputer di rumah dan di smartphone, Anda bisa mengakses data tersebut di waktu yang sama karena data Anda sudah menggunakan server dari Google Drive.
2. Fleksibel
Teknologi ini memiliki fleksibilitas dengan memudahkan dalam mengakses data Anda di mana pun dan kapan pun jika terhubung dengan jaringan layanan/internet. Misalkan, jika Anda dapat mengakses data yang tersimpan di Google Drive dari komputer rumah, Anda juga dapat mengakses data tersebut dari smartphone atau perangkat lain yang terhubung dengan internet.
3. Memiliki skalabilitas yang tinggi
Keuntungan lainnya, Anda dapat menambah atau mengurangi spesifikasi/sumber daya dari kapasitas server yang digunakan. Misal, jika RAM Anda penuh karena banyaknya yang mengakses aplikasi Anda, Anda tidak perlu membeli RAM baru, tetapi cukup meminta kepada cloud provider untuk menambah/upgrade beberapa GB saja. Selain itu Anda juga dapat mengurangi/downgrade RAM ke spesifikasi semula.
4. Investasi
Dengan teknologi cloud computing, Anda dapat menghemat biaya investasi untuk membeli sebuah server/komputer fisik. Misal, jika Anda memiliki perusahaan dan membutuhkan sumber daya yang besar dalam menjalankan aplikasi, Anda tidak perlu membeli hard drive baru dan tidak perlu juga memikirkan biaya-biaya lainnya seperti maintenance, listrik, lisensi, dan lain-lain. Walhasil, Anda dapat berorientasi pada profit dan perkembanga bisnis.

Kekurangan Cloud Computing
1. Kerahasiaan data tidak terjamin
Selalu ada risiko data user dapat diakses oleh orang lain yang tidak berkepentingan.
2. Sangat bergantung pada koneksi internet
Internet merupakan satu-satunya jalan menuju cloud computing. Ketika tidak ada koneksi internet di tempat Anda, atau jalur internet menuju cloud provider sedang bermasalah, secara otomatis akses ke mesin cloud computing Anda akan terputus.
3. Tingkat keamanan yang belum terjamin
Dengan menggunakan sistem komputasi awan berarti Anda mempercayakan sepenuhnya atas keamanan dan kerahasiaan data-data kepada cloud provider. Saat mengalami gangguan, Anda tidak dapat menuntut pihak server karena kesalahan data-data tersebut.

Sumber:

Rabu, 14 Maret 2018

Komputasi Modern dan Implementasi

Teori Komputasi

Teori komputasi adalah cabang ilmu komputer dan matematika yang membahas apakah dan bagaimanakah suatu masalah dapat dipecahkan pada model komputasi, menggunakan algoritme. Bidang ilmu ini terutama membahas hal terkait komputabilitas dan kompleksitas, dalam kaitannya dengan formalisme komputasi.
Untuk melakukan studi komputasi dengan ketat, ilmuwan komputer bekerja dengan abstraksi matematika dari komputer yang dinamakan model komputasi. Ada beberapa model yang digunakan, namun yang paling umum dipelajari adalah mesin Turing. Sebuah mesin Turing dapat dipikirkan sebagai komputer pribadi meja dengan kapasitas memori yang tak terhingga, namun hanya dapat diakses dalam bagian-bagian terpisah dan diskret. Ilmuwan komputer mempelajari mesin Turing karena mudah dirumuskan, dianalisis dan digunakan untuk pembuktian, dan karena mesin ini mewakili model komputasi yang dianggap sebagai model paling masuk akal yang paling ampuh yang dimungkinkan. Kapasitas memori tidak terbatas mungkin terlihat sebagai sifat yang tidak mungkin terwujudkan, namun setiap permasalahan yang "terputuskan" (decidable) yang dipecahkan oleh mesin Turing selalu hanya akan memerlukan jumlah memori terhingga. Jadi pada dasarnya setiap masalah yang dapat dipecahkan (diputuskan) oleh meisn Turing dapat dipecahkan oleh komputer yang memiliki jumlah memori terbatas.

Teori komputasi dibagi lagi menjadi 3 ranting :
1. Teori otomata (automata theory)
2. Teori komputabilitas (computability theory)
3. Teori kompleksitas (computational complexity theory)

Teori komputabilitas bertujuan untuk memeriksa apakah persoalan komputasi dapat dipecahkan pada suatu model komputasi teoritis. Dengan kata lain, teori komputabilitas mengklasifikasikan persoalan sebagai dapat dipecahkan (solvable) atau persoalan yang tidak dapat dipecahkan (unsolvable). Teori kompleksitas bertujuan untuk mengkaji kebutuhan waktu dan ruang untuk memecahkan persoalan yang diselesaikan dengan pendekatan yang berbeda-beda.

Dengan kata lain, teori kompleksitas mengklasifikasikan persoalan sebagai persoalan mudah (easy) atau persoalan sukar (hard). Teori komputabilitas memperkenalkan beberapa konsep yang digunakan di dalam teori kompleksitas. Teori otomata mengacu pada definisi dan sifat-sifat model komputasi. Di dalam teori komputasi, model komputasi yang sering dipakai adalah Mesin Turing.

Beberapa model komputasi :
  •         Finite State Automata (FSA)/Finite State Machine (FSM)
  •         Push Down Automata (PDA)
  •          Mesin Turing (Turing Machine) atau TM

Komputasi Modern


Komputasi modern bisa disebut sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:
1.    Akurasi (bit, Floating poin)
2.    Kecepatan (Dalam satuan Hz)
3.    Problem volume besar (Down sizing atau paralel)
4.    Modeling (NN dan GA)
5.    Kompleksitas (Menggunakan teori Big O)

Jenis-jenis komputasi modern :


1. Mobile computing
    Mobile computing atau komputasi bergerak memiliki beberapa penjelasan, salah satunya  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. Berdasarkan penjelasan tersebut, untuk kemajuan teknologi kearah yang lebih dinamis membutuhkan perubahan dari sisi manusia maupun alat. Dapat dilihat contoh dari perangkat komputasi bergerak seperti GPS, juga tipe dari komputasi bergerak seperti smart phone, dan lain sebagainya.

2. Grid Computing 
    Grid Computing atau komputasi grid menggunakan komputer yang terpisah oleh geografis, didistribusikan dan terhubung oleh jaringan untuk menyelesaikan masalah komputasi skala besar, ada beberapa daftar yang dapat digunakan untuk mengenali sistem komputasi grid, adalah:
  • Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
  • Sistem menggunakan standart dan protocol yang terbuka.
  • Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas        komponen individu pelayanan komputasi grid.
3.Cloud Computing 
    Cloud Computing atau 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.

Perbedaan diantara ketigannya adalah:
  • Komputasi Mobile menggunakan teknologi komputer yang bekerja seperti handphone,        sedangkan komputasi grid dan cloud menggunakan komputer.
  • Biaya untuk tenaga komputasi mobile lebih mahal dibandingkan dengan komputasi grid dan      cloud.
  • Komputasi mobile tidak membutuhkan tempat dan mudah dibawa kemana – mana,      sedangkan grid dan cloud membutuhkan tempat yang khusus.
  • Untuk komputasi mobile, proses tergantung si pengguna. Komputasi grid proses tergantung pengguna mendapatkan server atau tidak, dan komputasi cloud prosesnya membutuhkan jaringan internet sebagai penghubungnya.

Implementasi komputasi modern di berbagai bidang:

Pada bidang Matematika

Terdapat numerical analysis yaitu sebuah algoritma dipakai untuk menganalisa masalah – masalah matematika.
Contohnya: 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.

Pada bidang Fisika

Terdapat Computational Physics yang mempelajari algoritma numerik untuk memecah kan teori kuantitatif fisika yang ada
Contohnya: menyelesaikan permasalahan medan magnet dengan menggunakan komputasi fisika, dalam hal ini menentukan besarnya medan magnet dan membandiangkan hubungan antara medan magnet dengan panjang kawat.

Pada bidang Kimia 

Terdapat Computational Chemistry yaitu penggunaan ilmu komputer untuk  membantu menyelesaikan masalah kimia, contohnya penggunaan super komputer untuk menghitung struktur dan sifat molekul.
Contohnya: 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.

Pada bidang Geografi 

Terdapat penggunaan komputasi yang diterapkan pada GIS (Geographic Information System) yang berguna untuk menyimpan, memanipulasi dan menganalisa informasi geografi.
Contohnya : Teknologi Sistem Informasi Geografis dapat digunakan untuk investigasi ilmiah, pengelolaan sumber daya, perencanaan pembangunan, kartografi dan perencanaan rute. Misalnya, GIS bisa membantu perencana untuk secara cepat menghitung waktu tanggap darurat saat terjadi bencana alam, atau GIS dapat digunaan untuk mencari lahan basah (wetlands) yang membutuhkan perlindungan dari polusi.

Pada bidang Geologi  

Pada bidang geologi teori komputasi biasanya digunakan untuk pertambangan, sebuah sistem komputer digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah.
Contohnya : Pertambangan dan digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah.

Pada bidang  Ekonomi  

Terdapat Computational Economics yang mempelajari titik pertemuan antara ilmu ekonomi dan ilmu komputer mencakup komputasi keuangan, statistika, pemrograman yang di desain khusus untuk komputasi ekonomi dan pengembangan alat bantu untuk pendidikan ekonomi.
Contohnya : mempelajari 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.

Pada bidang  Biologi 

Terdapat Bioinformatics merupakan aplikasi dari teknologi informasi dan   ilmu komputer dalam penelitian bidang biologi molekuler.
Contohnya, Tes DNA atau RNA serta Pembacaan Sidik Jari dan Pembacaan retina / iris.
Banyak manfaat yang terjadi dengan adanya komputasi modern, diantaranya adalah:
  1. Perhitungan-perhitungan kompleks yang bisa mencapai ribuan data dapat dengan mudah dikerjakan manuisa dengan bantuan komputer. Hal ini tentunya dapat mengurangi waktu, biaya dan lain sebagainya.
  2. Lahirnya komputer dapat membantu pekerjaan manusia, dalam berbagai bidang. Misalnya pada bidang kedokteran, pertanian, astronomi, teknologi, ekonomi dan lainnya. Bahkan komputer sekarang telah ada dalam hampir semua bidang di dunia ini.

Sumber: