Stack of Assignments

Parallel Computation


Parallelism Concept
Paralelisme (parallelism) lahir dari pendekatan yang biasa dipergunakan oleh para perancang sistem untuk menerapkan konsep pemrosesan konkuren. Teknik ini meningkatkan kecepatan proses dengan cara memperbanyak jumlah modul perangkat keras yang dapat beroperasi secara simultan disertai dengan membentuk beberapa proses yang bekerja secara simultan pada modul-modul perangkat keras tersebut. Secara formal, pemrosesan paralel adalah sebuah bentuk efisien pemrosesan informasi yang menekankan pada eksploitasi dari konkurensi kejadian-kejadian dalam proses komputasi.Pemrosesan paralel dapat terjadi pada beberapa tingkatan (level) proses. Tingkatan tertinggi pemrosesan paralel terjadi pada proses di antara banyak job (pekerjaan) atau pada program yang menggunakan multiprogramming, time sharing, dan multiprocessing. Multiprogramming kemampuan eksekusi terhadap beberapa proses perangkat lunak dalam sebuah system secara serentak, jika dibandingkan dengan sebuah proses dalam satu waktu, dan timesharing berarti menyediakan pembagian selang waktu yang tetap atau berubah-ubah untuk banyak program. Multiprocessing adalah dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut. Multiprocessing sering diimplementasikan dalam perangkat keras (dengan menggunakan beberapa CPU sekaligus), sementara multiprogramming sering digunakan dalam perangkat lunak. Sebuah sistem mungkin dapat memiliki dua kemampuan tersebut, salah satu di antaranya, atau tidak sama sekali. Pemrosesan paralel dapat juga terjadi pada proses di antara prosedurprosedur atau perintah perintah (segmen program) pada sebuah program.Untuk meningkatkan kecepatan proses komputasi, dapat ditempuh dua cara :
Peningkatan kecepatan perangkat keras.
Komponen utama perangkat keras komputer adalah processor. Meskipun kecepatan processor dapat ditingkatkan terus, namun karena keterbatasan materi pembuatnya, tentu ada suatu batas kecepatan yang tak mungkin lagi dapat dilewati. Karena itu timbul ide pembuatan komputer multiprocessor. Dengan adanya banyak processor dalam satu komputer, pekerjaan bisa dibagi-bagi kepada masing-masing processor. Dengan demikian lebih banyak proses dapat dikerjakan dalam satu saat. Peningkatan kecepatan setiap proses bisa dicapai melalui peningkatan kecepatan perangkat lunak. Kecepatan perangkat lunak sangat ditentukan oleh algoritmanya.
Peningkatan kecepatan perangkat lunak.
Program komputer untuk komputer sekuensial harus menyediakan sederetan operasi untuk dikerjakan oleh prosesor tunggal. Program komputer untuk komputer paralel harus menyediakan sederetan operasi untuk beberapa prosesor untuk dikerjakan secara paralel, termasuk operasi untuk mengatur dan mengitegrasikan prosesor-prosesor yang terpisah tersebut mengerjakan suatu komputasi yang koheren. Kebutuhan akan pembuatan dan pengaturan berbagai aktivitas komputasi paralel menambah dimensi baru proses dari pemrograman komputer. Algoritma untuk problem yang spesifik harus diformulasikan sedemikian rupa, agar menghasilkan aliran operasi paralel yang kemudian akan dieksekusi di prosesor yang berbeda. Karena itu, meskipun arsitektur multiprosesor dan multikomputer mempunyai pontensi yang tinggi untuk meningkatkan kemampuan komputasi, potensi ini akan tercapai melalui pengertian yang baik mengenai bahasa pemrograman paralel dan perancangan algoritma paralel.
Tingkat Paralelisme
Berdasarkan tingkat paralelismenya prosesor paralel dapat dibagi menjadi beberapa tingkat sebagai berikut :
1. Komputer Array :
a. Prosesor array : beberapa prosesor yang bekerja sama untuk mengolah set instruksi yang sama dan data yang berbeda – beda atau biasa disebut SIMD (Single Instruction-stream Multiple Data)
b. Prosesor vektor : beberapa prosesor yang disusun seperti pipeline.
2. Multiprosesor, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang saling berbagi memori.
3. Multikomputer, yaitu sebuah sistem yang memiliki 2 prosesor atau lebih yang masing-masing prosesor memiliki memori sendiri.
Jenis-Jenis Pemrosesan Paralel
Pemrosesan paralel dapat dibagi ke dalam beberapa klasifikasi, sebagai berikut :
1. Berdasarkan simetri penjadwalannya, pemrosesan parallel dapat dibagi dalam beberapa jenis:
a) Asymmetric Multiprocessing (ASMP)
b) Symmetric Multiprocessing (SMP)
c) ClusteringPoliteknik Telkom Sistem Komputer
2. Berdasarkan aliran instruksi dan datanya, pemrosesan parallel dapat dibagi dalam beberapa jenis:
a) SISD (Single Instruction on Single Data Stream)
b) SIMD (Single Instruction on Multiple Data Stream)
c) MISD (Multiple Instruction on Single Data Stream)
d) MIMD (Multiple Instruction on Multiple Data Stream)
3. Berdasarkan kedekatan antar prosesor, pemrosesan parallel dapat dibagi dalam beberapa jenis:
a) Multikomputer (Loosely Coupled/ local memory) dengan memori yang terdistribusi
b) Multiprosesor (Tightly Coupled/ global memory) dengan memori yang dapat digunakan bersama (shared memory)

Distributed Processing
Mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.

Architectural Parallel Computer
Dalam taksonomi arsitektur paralel ada dua keluarga arsitektur paralel yang banyak diterapkan adalah: SIMD dan MIMD, dimana untuk mesin yang murni MISD tidak ada.













Arsitektur SIMD
Mesin SIMD secara umum mempunyai karakteristik sbb:
1.       Mendistribusi proses ke sejumlah besar hardware
2.       Beroperasi terhadap berbagai elemen data yang berbeda
3.       Melaksanakan komputasi yang sama terhadap semua elemen data
Peningkatan kecepatan pada SIMD proporsional dengan jumlah hardware (elemen pemroses)
yang tersedia.

Arsitektur MISD
Prosesor pipeline adalah prosesor MISD yang bekerja berdasarkan prinsip pipelining. Pada pipeline proses dapat dibagi menjadi beberapa tahap dan beberapa proses dapat dilaksanakan secara simultan. Pada gambar dibawah dapat dilihat perbedaan proses serial dengan pipeline













Waktu eksekusi lebih cepat dibandingkan dengan proses serial.
Prinsip pipelining dapat digunakan pada dua level yang berbeda:
1. Pipeline unit aritmatika
2. Pipeline unit kontrol Waktu eksekusi lebih cepat dibandingkan dengan proses serial.

Operasi pipeline dapat dilaksanakan secara siklus yaitu cyclic pipeline, dimana dapat dibagi dalam 5 tahap:
• Operasi baca (dari shared memories)
• Operasi transfer (memori ke elemen pemroses)
• Operasi eksekusi (di elemen pemroses)
• Operasi transfer (elemen pemroses ke memori)
• Operasi simpan (di shared memories)


Quantum Computation


Pendahuluan
Secara definisi, komputer quantum adalah komputer yang memanfaatkan fenomena-fenomena dari mekanika quantum, seperti quantum superposition dan quantum entanglement dalam proses komputasi data. Komputer quantum dapat jauh lebih cepat dari komputer konvensional pada banyak masalah, salah satunya yaitu masalah yang memiliki sifat berikut:
1. Satu-satunya cara adalah menebak dan mengecek jawabannya berkali-kali
2. Terdapat n jumlah jawaban yang mungkin
3. Setiap kemungkinan jawaban membutuhkan waktu yang sama untuk mengeceknya
4. Tidak ada petunjuk jawaban mana yang kemungkinan benarnya lebih besar: memberi jawaban dengan asal tidak berbeda dengan mengeceknya dengan urutan tertentu.
Contoh dari masalah itu misalnya password cracker yang mencoba menebak password dari file terenkripsi (dengan asumsi passwordnya memiliki panjang maksimal). Untuk masalah seperti di atas, waktu yang dibutuhkan oleh komputer quantum untuk menyelesaikannya proporsional dengan akar dari n. Hal ini dapat membuat waktu yang dibutuhkan dari tahunan menjadi hitungan menit.
Proses komputasi dilakukan pada partikel ukuran nano yang memiliki sifat mekanika quantum, maka
satuan unit informasi pada Komputer Quantum disebut quantum bit, atau qubit. Berbeda dengan bitbiasa, nilai sebuah qubit bisa 0, 1, atau superposisi dari keduanya. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakan dalam sistem quantum yaitu Algoritma Shor dan Algoritma Grover (Yaitu sebuah algoritma kuantum yang menawarkan percepatan kuadrat dibandingkan pencarian linear klasik untuk list tak terurut. Sebagian besar algoritma pencarian, seperti pencarian linear, pencarian biner dan pohon pencarian biner yang self-balancing, dapat dikembangkan dengan sedikit tambahan costuntuk menemukan semua nilai yang kurang dari atau lebih dari sebuah kunci, operasi ini disebut pencarian jangkauan (range search). Pengecualin ada pada tabel hash, yang tidak dapat melakukan pencarian tersebut secara efisien).

Entanglement
Entanglement adalah efek mekanik kuantum yang mengaburkan jarak antara partikel individual sehingga sulit menggambarkan partikel tersebut terpisah meski Anda berusaha memindahkan mereka. Contoh dari quantum entanglement: kaitan antara penentuan jam sholat dan quantum entanglement. Mohon maaf bagi yang beragama lain saya hanya bermaksud memberi contoh saja. Mengapa jam sholat dibuat seragam? Karena dengan demikian secara massal banyak manusia di beberapa wilayah secara serentak masuk ke zona entanglement bersamaan.

Pengoperasian Data Qubit
Komputer kuantum memelihara urutan qubit. Sebuah qubit tunggal dapat mewakili satu, nol, atau, penting, setiap superposisi quantum ini, apalagi sepasang qubit dapat dalam superposisi kuantum dari 4 negara, dan tiga qubit dalam superposisi dari 8. 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). Komputer kuantum yang beroperasi dengan memanipulasi qubit dengan urutan tetap gerbang logika quantum. Urutan gerbang untuk diterapkan disebut algoritma quantum.
Sebuah contoh dari implementasi qubit untuk komputer kuantum bisa mulai dengan menggunakan partikel dengan dua putaran menyatakan: “down” dan “up”. Namun pada kenyataannya sistem yang memiliki suatu diamati dalam jumlah yang akan kekal dalam waktu evolusi dan seperti bahwa A memiliki setidaknya dua diskrit dan cukup spasi berturut-turut eigen nilai , adalah kandidat yang cocok untuk menerapkan sebuah qubit. Hal ini benar karena setiap sistem tersebut dapat dipetakan ke yang efektif spin -1/2 sistem.


Quantum Gates
Gerbang kuantum biasanya direpresentasikan sebagai matriks. Sebuah gerbang yang bekerja pada k qubit diwakili oleh 2 x 2 k k matriks kesatuan. Jumlah qubit dalam input dan output dari gerbang harus sama. Tindakan dari gerbang kuantum ditemukan dengan mengalikan matriks mewakili gerbang dengan vektor yang mewakili keadaan kuantum. Tidak seperti banyak gerbang logika klasik, gerbang logika kuantum yang reversibel (model komputasi dimana proses komputasi sampai batas tertentu adalah reversibel, yaitu waktu-dibalik).

Algoritma Shor
Algoritma Shor (Algoritma Shor untuk faktorisasi bilangan yang merupakan kategori waktu-polinomial menunjukkan bahwa komputer quantum memiliki kemampuan melebihi komputer quantum dalam kenyataan bahwa komputer quantum dapat bekerja secara lebih efisien daripada komputer klasik. Algoritma Shor memberikan sebuah contoh bagaimana memanfaatkan sifat-sifat keadaan kuantum dan mengeksploitasinya sedemikian sehingga dapat menyelesaikan masalah tertentu. Hal ini mendorong penelitian mengenai bagaimana merancang algoritma yang dapat memanfaatkan fenomena kuantum.)

http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2008-2009/Makalah2008/Makalah0809-087.pdf
http://id.scribd.com/doc/60026708/Algoritma-Kuantum-untuk-Faktorisasi-Bilangan
http://vespaunikk.wordpress.com/2011/05/27/algoritma-kuantum/
http://commintech.wordpress.com/2010/05/03/great-computer-komputer-ajib/

Komputasi Awan (Cloud Computing)

Pendahuluan
Seperti yang telah didefinisikan oleh Wikipedia, Cloud Computing adalah gabungan pemanfaatan teknologi komputer (computing) dan pengembangan berbasis internet (cloud). Cloud Computing juga adalah suatu metoda komputasi dimana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan, sehingga pengguna dapat mengaksesnya lewat internet, tanpa mengetahui apa yang ada didalamnya, atau memiliki kendali terhadap infrakstruktur teknologi yang membantunya.
Cloud computing mempunyai 3 tingkatan layanan yang diberikan kepada pengguna, yaitu:
  1. Infrastructure as service, hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
  2. Platform as a service, hal ini memfokuskan pada aplikasi dimana dalam hal ini seorang developer tidak perlu memikirkan hardware dan tetap fokus pada pembuatan aplikasi tanpa harus mengkhawatirkan sistem operasi, infrastructure scaling, load balancing dan lain-lain. Contohnya yang sudah mengimplementasikan ini adalah Force.com dan Microsoft Azure Investment.
  3. Software as a service: Hal ini memfokuskan pada aplikasi dengan Web-based interface yang diakses melalui Web Service dan Web 2.0. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti Facebook.


GRID Computing
Grid Computing atau Komputasi Grid merupakan salah satu dari tipe Komputasi Parallel, yang berarti penggunaan sumber daya yang melibatkan banyak komputer yang terpisah secara geografis namun terhubung oleh jalur komunikasi termasuk internet. Sistem tersebut menggunakan standard dan protokol yang bersifat terbuka (tidak terpaut pada suatu implementasi atau produk tertentu). Komputasi grid disusun dari kesepakatan-kesepakatan terhadap masalah yang fundamental, dibutuhkan untuk mewujudkan komputasi bersama dalam skala besar. Kesepakatan dan standar yang dibutuhkan adalah dalam bidang autentikasi, otorisasi, pencarian sumberdaya, dan akses terhadap sumber daya. Komputasi Grid digunakan untuk meriset sesuatu yang membutuhkan super komputer seperti riset iklim, riset menemukan obat dan riset tentang kesenian.


Virtualisasi
Virtualisasi adalah sebuah teknologi, yang memungkinkan Anda untuk membuat versi virtual dari sesuatu yang bersifat fisik, misalnya sistem operasi, storage data atau sumber daya jaringan. Proses tersebut dilakukan oleh sebuah software atau firmware bernama Hypervisor. Hypervisor inilah yang menjadi nyawanya virtualisasi, karena dialah layer yang "berpura-pura" menjadi sebuah infrastruktur untuk menjalankan beberapa virtual machine. Dalam prakteknya, dengan membeli dan memiliki satu buah mesin, Anda seolah-olah memiliki banyak server, sehingga Anda bisa mengurangi pengeluaran IT untuk pembelian server baru, komponen, storage, dan software pendukung lainnya.
Jenis Virtualisasi
Virtualisasi adalah istilah yang dapat digunakan dengan berbagai topik tetapi subjek yang paling populer di mana Virtualisasi digunakan adalah Operating System. Operating System Virtualization berarti bahwa beberapa Sistem Operasi yang dijalankan secara bersamaan pada hardware yang sama. Jenis lain dari Virtualizations termasuk Virtualisasi Software, Virtualisasi Jaringan, Virtualisasi Penyimpanan dan Virtualisasi Server.


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


Map Reduce dan NoSQL
MapReduce
MapReduce merupakan model pemrograman yang diadaptasi dari pemrograman fungsional yang diimplementasikan untuk mengolah dataset yang sangat besar. Tujuan dari MapReduce adalah merancang suatu abstraksi baru yang memungkinkan pengguna untuk membuat antarmuka pemrograman sederhana dan menyembunyikan detail yang rumit dari pararelisasi, fault-tolerance, distribusi data, dan load balancing dalam pustaka pemrogramannya. Hasilnya menunjukkan bahwa penerapan MapReduce dapat menyederhanakan antarmuka pemrograman yang dapat mendukung paralelisasi dan distribusi komputasi skala besar secara otomatis.

Pemrograman dengan MapReduce telah sukses diterapkan penggunaannya oleh Google untuk berbagai tujuan, salah satunya adalah Google indexing. Dalam kinerjanya, Google menerapakan ribuan mesin yang bekerja pada ratusan terabytes data dengan lokasi server yang tersebar di beberapa lokasi. Jenis arsitektur seperti ini dapat mengurangi waktu kinerja yang diperlukan. Pembangunan arsitektur Google dengan menggunakan MapReduce memerlukan waktu hanya dalam beberapa jam saja dibandingkan dengan tidak menerapkan MapReduce yang memerlukan waktu selama berbulan bulan. Penggunaan library dalam MapReduce memiliki beberapa keuntungan seperti load balancing, optimasi perangkat penyimpanan yang nantinya akan meningkatkan keefisiensian sistem dan kemudahan dalam penggunaannya. Mudahnya, MapReduce bekerja dengan membagi proses menjadi dua fase, yaitu tahap map dan tahap reduce.

NoSQL

Ukuran data yang sangat besar menimbulkan permasalahan dari segi skalabilitas, karena pertambahan data yang terjadi setiap saat. Peningkatan kemampuan server secara vertikal yang dimiliki Relational Database Management System (RDBMS) terbatas pada penambahan prosesor, memori, dan media penyimpanan dalam satu node server yang terbatas. Sedangkan peningkatan kemampuan server secara horizontal yang meliputi penambahan perangkat server baru dalam suatu jaringan memerlukan biaya yang mahal dan sulit dalam pengelolaannya. Salah satu cara yang diterapkan oleh website berskala besar untuk mengatasi permasalahan tersebut adalah dengan menggunakan NoSQL.

NoSQL Database
Generasi terbaru dari perangkat lunak internet sangat tergantung pada penggunaan sistem basis data. Kenyataanya untuk meningkatkan kemampuan dan kecepatan operasi, pengembang dapat merelaksasikan beberapa aturan ketat yang ada pada RDBMS seperti consistency dan atomicity. Sebagai realisasinya jenis basis data baru telah diperkenalkan beberapa tahun lalu yang dikenal dengan NoSQL (singkatan dari Not-Only-SQL). Beberapa aplikasi berbasis web yang telah menerapkan penggunaan NoSQL diantaranya adalah Google dengan BigTable, Amazon dengan Dynamo, dan Facebook dengan Cassandra dan Hadoop.

Konsep Non-Relational dalam basis data NoSQL meliputi hirarki, graf, dan basis data berorientasi obyek yang sudah terlebih dahulu ada sejak tahun 1960 sebelum akhirnya basis data relasional muncul pada tahun 1970.
NoSQL sendiri adalah tipe database yang sangat jauh berbeda dengan konsep RDBMS ataupun ODBMS. Perbedaan utamanya sendiri yaitu karena tidak mengenal istilah dan tidak menggunakan konsep schema. Selain itu kalau di dalam konsep DBMS biasanya sebelum insert data kita harus mendefinisikan terlebih dahulu struktur tabel seperti data dan ukurannya, pada NoSQL kita dapat menyimpan data tanpa perlu mendefinisikan tipe data dan ukurannya lagi. Adapun beberapa database NoSQL yang ada saat ini yaitu Cassandra, Big Table, CouchDB, Redis, Riak, Dynamo dan lainnya.



Source:
http://id.wikipedia.org/wiki/Komputasi_awan
http://ilhamsk.com/apa-itu-cloud-computing/
http://octianaeni.blogspot.com/2011/11/cloud-computing-komputasi-awan.html
http://azuharu.net/grid-computing/pengertian-grid-computing/
http://www.locus.co.id/?pg=13
http://hannareina.blogspot.com/2013_04_01_archive.html






Komputasi Modern (Teori dan Implementasi Komputasi)

Komputasi bisa diartikan sebagai proses perhitungan atau pemecahan masalah menggunakan algoritma komputer. Asal muasal lahirnya proses komputasi berasal dari kegiatan hitung menghitung yang dilakukan manusia sejak berabad-abad silam. Manusia mulai mengenal angka dan cara menghitung, misalnya menghitung barang hasil barter, sistem kalender dan rasi bintang. Alat-alat yang digunakan pada masa itu juga masih sangat sederhana seperti pena, kertas dan batu.
Zaman semakin berkembang, proses perhitungan sudah semakin sulit dan kompleks. Sehingga tidak bisa mengandalkan otak manusia saja serta alat-alat yang tidak mendukung. Berdasarkan hal-hal tersebut diciptakanlah sebuah cara yang disebut Komputasi Modern untuk memecahkan perhitungan yang lebih rumit. Alat-alat baru pun bermunculan untuk mendukung komputasi modern, contohnya komputer. Namun komputer tidak hanya bisa menyelesaikan proses hitung menghitung, komputer juga memiliki kemampuan untuk menyelesaikan banyak tugas manusia. 

Komputasi juga sering diartikan sebagai sebuah komputer secara fisik. Sebagai contoh dari sistem fisik yaitu komputer digital, komputer quantum, komputer penganalisa DNA, dan komputer molekular. Sudut pandang ini dipelajari di cabang ilmu teori fisik yang disebut Physic of Computation. Bahkan ada sudut pandang yang lebih radikal berbasis dalil Digital Physic yang menyatakan bahwa evolusi alam semesta itu sendiri adalah sebuah proses komputasi – disebut Pancomputationalism.


Sejarah Komputasi
Ilmu atau sains berdasarkan obyek kajiannya dibedakan antara Fisika, Kimia, Biologi dan Geologi. Ilmu dapat pula digolongkan berdasarkan metodologi dominan yang digunakannya, yaitu ilmu pengamatan/percobaan (observational/experimental science), ilmu teori (theoretical science) dan ilmu komputasi (computational science). Yang terakhir ini bisa dianggap bentuk yang paling baru yang muncul bersamaan dengan perkembangan kekuatan pemrosesan dalam komputer dan perkembangan teknik-teknik metode numerik dan metode komputasi lainnya.
Dalam ilmu (sains) tradisional seperti Fisika, Kimia dan Biologi, penggolongan ilmu berdasarkan metodologi dominannya juga mewujud, yang ditunjukkan dengan munculnya bidang-bidang khusus berdasarkan penggolongan tsb. lengkap dengan jurnal-jurnal yang relevan untuk melaporkan hasil-hasil penelitiannya. Sebagai contoh dalam kimia, melengkapi kimia percobaan (experimental chemistry) dan kimia teori (theoretical chemistry), berkembang pula kimia komputasi (computational chemistry), seperti juga di bidang Biologi dikenal Biologi Teori (theoretical biology) serta Biologi Komputasi (computational biology), lengkap dengan jurnalnya seperti Journal of Computational Chemistry dan Journal of Computational Biology. Cara penggolongan yang digunakan berbeda dengan cara penggolongan lain berdasarkan obyek kajian, seperti penggolongan kimia atas Kimia Organik, Kimia Anorganik, dan Biokimia.
Walaupun dengan titik pandang yang berbeda, ilmu komputasi sebagai bentuk ketiga dari ilmu (sains) telah banyak disampaikan oleh berbagai pihak, antara lain Stephen Wolfram dengan bukunya yang terkenal: A New Kind of Science, dan Jurgen Schimhuber.

Implementasi Komputasi di Berbagai Bidang Ilmu Pengetahuan
  • 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.


Source:

http://vanish73.wordpress.com/2010/02/18/komputasi/
http://my.opera.com/aviciena/blog/show.dml/8170711
http://id.wikipedia.org/wiki/Komputasi
http://stobbrengga.blogspot.com/2012/06/komputasi-dan-penerapannya.html

Deteksi Tepi Menggunakan Matlab

MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi numerik dan merupakan suatu bahasa pemrograman matematika lanjutan yang dibentuk dengan dasar pemikiran menggunkan sifat dan bentuk matriks.


GUIDE pada MATLAB
GUIDE atau GUI builder merupakan sebuah graphical user interface (GUI) yang
dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider, menu dan lain-lain. Untuk Memulai GUIDE Matlab dapat dilakukan dengan dua cara, yaitu:
ü  Melalui command matlab dengan mengetikkan: >> guide
ü  Klik tombol Start Matlab dan pilihlah MATLAB, lalu pilih GUIDE (GUI Bulder).
Lalu akan muncul window seperti di bawah ini:

Pilih Blank GUI (Default) à OK. Setelah memilih OK, maka window di bawah ini akan muncul.

Setelah kita masuk ke dalam fitur GUI seperti gambar di atas, buatlah tampilan untuk program Deteksi Tepi dengan meletakkan 1 Static Text sebagai judul, 2 Axes untuk menampilkan sebuah grafik atau gambar (image) dan 6 Push Button yang akan menghasilkan tindakan jika di klik. Berikut tampilannya. File ini ber-ext .fig.

Untuk mengatur inspector tool yang digunakan, klik double pada tool. Berikut tampilan inspector pushbutton1.

Untuk penulisan coding di Push Button, klik kanan pada Push Button >> View Callbacks >> Callbacks. Ini bertujuan untuk mempermudah letak dalam menulis coding. Di bawah komentar itulah kita menulis codingnya.
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
[namafile,direktori]=uigetfile({'*.jpg';'*.bmp';'*.png';'*.tif'},'Buka Gambar')
if isequal(namafile,0)
return;
end
eval(['cd ''' direktori ''';']);
I=imread(namafile);
set(proyek.figure1,'CurrentAxes',proyek.axes1);
set(imshow(I));
set(proyek.figure1,'Userdata',I);
set(proyek.axes1,'Userdata',I);

  •  Deteksi Tepi
Deteksi tepi (Edge Detection) pada suatu citra suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah :
  •   Untuk menandai bagian yang menjadi detail citra.
  • Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena error atau adanya efek dari proses akuisisi citra Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya.

Macam-macam metode untuk proses deteksi tepi ini, antara lain:
  • Metode Robert: Metode Robert adalah nama lain dari teknik differensial yang dikembangkan di atas, yaitu differensial pada arah horisontal dan differensial pada arah vertikal, dengan ditambahkan proses konversi biner setelah dilakukan differensial. Teknik konversi biner yang disarankan adalah konversi biner dengan meratakan distribusi warna hitam dan putih. Metode Robert ini juga disamakan dengan teknik DPCM (Differential Pulse Code Modulation).
  • Metode Prewitt: Metode Prewitt merupakan pengembangan metode Robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian yang dikenal sebagai fungsi untuk membangkitkan HPF.
  • Metode Sobel: Metode Sobel merupakan pengembangan metode Robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi Laplacian dan Gaussian yang dikenal sebagai fungsi untuk membangkitkan HPF. Kelebihan dari metode sobel ini adalah kemampuan untuk mengurangi noise sebelum melakukan perhitungan deteksi tepi.
  • Metode Canny: Operator Canny merupakan deteksi tepi yang optimal. Operator Canny menggunakan Gaussian Derivative Kernel untuk menyaring kegaduhan dari citra awal untuk mendapatkan hasil deteksi tepi yang halus.
  • Metode Laplacian of Gaussian (LOG): Metode ini akan mendeteksi zero crossing ,untuk menentukan garis batas antara hitam dan putih, yang terdapat pada turunan kedua dari citra yang bersangkutan. Kekurangann dari penerapan perator laplacian adalah sangat sensitif terhadap noise, namun demikian edge detection dengan operator ini dapat di tingkatkan hasilnya dengan menerapkan thresholding.

Di bawah ini merupakan source code untuk membuat program menggunakan metode-metode tersebut:
Metode Robert
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'roberts');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Metode Prewitt
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'prewitt');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Metode Sobel
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'sobel');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

Metode Canny
% --- Executes on button press in pushbutton8.
function pushbutton8_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton8 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'canny');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);


 Metode Laplacian of Gaussian (LOG)
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
proyek=guidata(gcbo);
I=get(proyek.axes1,'Userdata');
gray=rgb2gray(I);
BW=edge(gray,'log');
set(proyek.figure1,'CurrentAxes',proyek.axes2);
set(imshow(BW));
set(proyek.axes2,'Userdata',A);
redo_Callback(hObject,eventdata, handles);

 Berikut outputnya :

Tampilan saat file tugas.m di run. Masukkan gambar menggunakan tombol “Open”.


 Deteksi Tepi Prewitt

          
Deteksi Tepi Roberts

                       
Deteksi Tepi Canny

   
Deteksi Tepi Sobel


Deteksi Tepi Laplacian of Gaussian (LOG)





Back to Top