Parallel Computation (2)

D. Pengantar 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. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network. Threading dibagi menjadi 2 :

  • Static Threading

Teknik ini biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan thread berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang hendak menggunakan prosesor itu.

  • Dynamic Multithreading

Teknik ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan protokol komunikasi, load balancing, dan kerumitan lain yang ada pada static threading. 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.

E. Pengantar Message Passing, Open MP

Massage Passing merupkan suatu teknik bagaimana mengatur suatu alur komunikasi messaging terhadap proses pada system. Message passing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel , pemrograman-berorientasi objek , dan komunikasi interprocess . Dalam model ini, proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode ke proses lainnya dan dapat melakukan sinkronisasi. Objek didistribusikan dan metode sistem remote doa seperti ONC RPC , CORBA , Java RMI , DCOM , SOAP , . NET Remoting , CTO , QNX Neutrino RTOS , OpenBinder , D-Bus , Unison RTOS dan serupa pesan lewat sistem.Paradigma Message passing yaitu :

  1. Banyak contoh dari paradigma sekuensial dipertimbangkan bersama-sama.
  2. Programmer membayangkan beberapa prosesor, masing-masing dengan memori, dan menulis sebuah program untuk berjalan pada setiap prosesor.
  3. Proses berkomunikasi dengan mengirimkan pesan satu sama lain

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

F. Pengantar Pemograman CUDA CPU

GPU ( Graphical Processing Unit ) 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, 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.

Penggunaan Multi GPU dapat mempercepat waktu proses dalam mengeksekusi program karena arsitekturnya yang natively parallel. Selain itu Peningkatan performa yang terjadi tidak hanya berdasarkan kecepatan hardware GPU saja, tetapi faktor yang lebih penting adalah cara membuat kode program yang benarbenar bisa efektif berjalan pada Multi GPU.

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

CUDA merupakan singkatan dari Compute Unified Device Architecture, didefinisikan sebagai sebuah arsitektur komputer parallel, dikembangkan oleh Nvidia. Teknologi ini dapat digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D, dan lain sebagainya. VGA – VGA dari Nvidia yang sudah menggunakan teknologi CUDA antara lain : Nvidia GeForce GTX 280, GTX 260,9800 GX2, 9800 GTX+,9800 GTX,9800 GT,9600 GSO, 9600 GT,9500 GT,9400 GT,9400 mGPU,9300 mGPU,8800 Ultra,8800 GTX,8800 GTS,8800 GT,8800 GS,8600 GTS,8600 GT,8500 GT,8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU, dan seri sejenis untuk kelas mobile ( VGA notebook ).

Singkatnya, CUDA dapat memberikan proses dengan pendekatan bahasa C, sehingga programmer atau pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek. Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya meng-edit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia, sudah mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.

Sumber:

Parallel Computation

A. Pararellelism Concept

Konsep parallel system merupakan suatu bentuk penawaran solusi dari proses computing yang terlalu berat, sehingga dapat dipecah sedemikian hingga tidak memberatkan system kerja komputer itu sendiri. Konsep program parallel :

–  Memerintahkan set instruksi (pandangan programmer).

–  File executable (pandangan sistem operasi)

Komputasi paralel didefinisikan sebagai penggunaan sekumpulan sumberdaya komputer secara simultan untuk menyelesaikan permasalahan komputasi. Secara prinsip komputer paralel membagi permasalahan sehingga menjadi lebih kecil untuk dikerjakan oleh setiap prosesor / CPU dalam waktu yang bersamaan/simultan / concurrent dan prinsip ini disebut paralelisme.

Sebenarnya prinsip paralelisme juga sudah diterapkan dalam komputer serial misal dengan pipelining dan superscalar-nya namun demikian tidak memberikan solusi terbaik dalam hal meningkatkan performansi dikarenakan terbatasnya kemampuan untuk menambah kecepatan prosesor dan fenomena memory bottleneck.  Tingkat paralelisme dalam komputasi khususnya pada prosesor di antaranya :

–  Paralelisme bit-level. Contoh : prosesor 32 bit dan prosesor 64 bit.

–  Paralelisme instruction set-level. Contoh : CISC dan RISC.

–  Paralelisme thread-level. Contoh : Intel hyperthreading.

Paralelisme lain yang juga berkembang dalam komputasi paralel adalah paralelisme data dan paralelisme fungsi. Perkembangan teknologi prosesor : prosesor singlecore superscalar, chip multiprocessor, prosesor multicore, hingga prosesor cell memberikan kontribusi terhadap peningkatan performansi komputer parallel.

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

C. Architectual Parallel Computer

Michael J. Flynn menciptakan satu diantara sistem klasifikasi untuk komputer dan program paralel, yang dikenal dengan sebutan Taksonomi Flynn. Flynn mengelompokkan komputer dan program berdasarkan banyaknya set instruksi yang dieksekusi dan banyaknya set data yang digunakan oleh instruksi tersebut.

  1. SISD (Single Instruction stream, Single Data stream).

Komputer tunggal yang mempunyai satu unit kontrol, satu unit prosesor dan satu unit memori Instruksi dilaksanakan secara berurut tetapi boleh juga overlap dalam tahapan eksekusi (overlap) Satu alur instruksi didecode untuk alur data tunggal.

  1. SIMD (Single Instruction stream, Multiple Data stream).

Komputer yang mempunyai beberapa unit prosesor di bawah satu supervisi satu unit common control. Setiap prosesor menerima instruksi yang sama dari unit kontrol, tetapi beroperasi pada data yang berbeda.

  1. MISD (Multiple Instruction stream, Single Data stream).

Sampai saat ini struktur ini masih merupakan struktur teoritis dan belum ada komputer dengan model ini.

Sumber :

http://seto.citravision.com/berita-46-parallel-computation–parallelism-concept.html

http://myblogisland.blogspot.co.id/2013/04/parallel-computation.html

Pengantar Quantum Computasional

A. Pendahuluan

Quantum Computation sendiri adalah bidang studi yang difokuskan pada teknologi komputer berkembang berdasarkan prinsip-prinsip teori kuantum , yang menjelaskan sifat dan perilaku energi dan materi pada kuantum (atom dan subatom) tingkat.

Quantum Computer adalah alat untuk perhitungan yang menggunakan langsung dari kuantum mekanik fenomena, seperti superposisi dan belitan , untuk melakukan operasi pada Data. Cara kerja quantum computer sendiri berbeda dengann komputer bisanya. Dalam komputasi klasik, jumlah data dihitung dengan bit dalam komputer kuantum hal ini dilakukan dengan qubit (quantum bit) yang berarti jika di komputer biasa hanya mengenal 0 atau 1, dengan qubit sebuah komputer quantum dapat mengenal keduanya secara bersamaan dan itu membuat kerja dari komputer quantum itu lebih cepat dari pada komputer biasa.

B. Entanglement

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. Dari sumber 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.

C. Pengoperasian Data Bit

Qubit merupakan kuantum bit , mitra dalam komputasi kuantum dengan digit biner atau bit dari komputasi klasik. Sama seperti sedikit adalah unit dasar informasi dalam komputer klasik, qubit adalah unit dasar informasi dalam komputer kuantum . Dalam komputer kuantum, sejumlah partikel elemental seperti elektron atau foton dapat digunakan (dalam praktek, keberhasilan juga telah dicapai dengan ion), baik dengan biaya mereka atau polarisasi bertindak sebagai representasi dari 0 dan / atau 1. Setiap partikel-partikel ini dikenal sebagai qubit, sifat dan perilaku partikel-partikel ini (seperti yang diungkapkan dalam teori kuantum ) membentuk dasar dari komputasi kuantum. Dua aspek yang paling relevan fisika kuantum adalah prinsip superposisi dan Entanglement

a.jpg

Bit digambarkan oleh statusnya, 0 atau 1. Begitu pula, qubit digambarkan oleh status quantumnya. Dua status quantum potensial untuk qubit ekuivalen dengan 0 dan 1 bit klasik. Namun dalam mekanika quantum, objek apapun yang memiliki dua status berbeda pasti memiliki rangkaian status potensial lain, disebut superposisi, yang menjerat kedua status hingga derajat bermacam-macam.

D. Quantum Gates

Gate sendiri dalam bahasa Indonesia adalah Gerbang.jadi Quantum Gates adalah sebuah gerbang kuantum yang dimana berfungsi mengoperasikan bit yang terdiri dari 0 dan 1 menjadi qubits. dengan demikian Quantum gates mempercepat banyaknya perhitungan bit pada waktu bersamaan.

E. Algoritma Shor 

Algoritma Shor, dinamai matematikawan Peter Shor , adalah algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor dirumuskan pada tahun 1994.  Inti dari algoritma ini merupakan bagaimana cara menyelesaikan faktorisasi terhaadap bilanga interger atau bulat yang besar.

Efisiensi algoritma Shor adalah karena efisiensi kuantum Transformasi Fourier , dan modular eksponensial. Jika sebuah komputer kuantum dengan jumlah yang memadai qubit dapat beroperasi tanpa mengalah kebisingan dan fenomena interferensi kuantum lainnya, algoritma Shor dapat digunakan untuk memecahkan kriptografi kunci publik skema seperti banyak digunakan skema RSA. Algoritma Shor terdiri dari dua bagian:

– Penurunan yang bisa dilakukan pada komputer klasik, dari masalah anjak untuk masalah ketertiban -temuan.

– Sebuah algoritma kuantum untuk memecahkan masalah order-temuan.

Hambatan runtime dari algoritma Shor adalah kuantum eksponensial modular yang jauh lebih lambat dibandingkan dengan kuantum Transformasi Fourier dan pre-/post-processing klasik. Ada beberapa pendekatan untuk membangun dan mengoptimalkan sirkuit untuk eksponensial modular. Yang paling sederhana dan saat ini yaitu pendekatan paling praktis adalah dengan menggunakan meniru sirkuit aritmatika konvensional dengan gerbang reversibel , dimulai dengan penambah ripple-carry. Sirkuit Reversible biasanya menggunakan nilai pada urutan n ^ 3, gerbang untuk n qubit. Teknik alternatif asimtotik meningkatkan jumlah gerbang dengan menggunakan kuantum transformasi Fourier , tetapi tidak kompetitif dengan kurang dari 600 qubit karena konstanta tinggi.

D. Distributed dalam Cloud Computing

Distributed computing merupakan bidang ilmu komputer yang mempelajari sistem terdistribusi. Sebuah sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan komputer. Komputer yang saling berinteraksi untuk mencapai tujuan bersama. Suatu program komputer yang berjalan dalam sistem terdistribusi disebut program didistribusikan, dan didistribusikan pemrograman adalah proses menulis program tersebut. Distributed computing juga mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah komputasi. Dalam distributed computing, masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan oleh satu komputer.

Map Reduce dan No SQL (Not Only SQL)

MapReduce adalah model pemrograman rilisan Google yang ditujukan untuk memproses data berukuran raksasa secara terdistribusi dan paralel dalam cluster yang terdiri atas ribuan komputer. Dalam memproses data, secara garis besar MapReduce dapat dibagi dalam dua proses yaitu proses Map dan proses Reduce. Kedua jenis proses ini didistribusikan atau dibagi-bagikan ke setiap komputer dalam suatu cluster (kelompok komputer yang salih terhubung) dan berjalan secara paralel tanpa saling bergantung satu dengan yang lainnya.

Nosql adalah sebuah memcache dari bagian database sederhana yang berisi key dan value. Database ini bersifat struktur storage dimana sistem databasenya yang berbeda dengan sistem database relasional. Nosql tidak membutuhkan skema table dan menghindari operasi join dan berkembang secara horizontal. Selain itu NoSQL merupakan suatu bahasan yang jauh dari arti kata yang dibaca. Tidak berarti tanpa sql query. Melainkan bagaimana suatu sql query digunakan seminimal mungkin dalam suatu program database. Dengan memanfaatkan teknologi NoSQL ini, diharapkan mampu mengurangi beban server. Selain itu, hal ini juga memudahkan programmer dalam membuat suatu program dan proses pengembangannya.

Jadi, Map Reduce danNoSQL (Not Only SQL) adalah sebuah pemogramaan framework guna untuk membantu user mengembangankan sebuah data yang ukuran besar dapat terdistribusi satu sama lain. Map-Reduce adalah salah satu konsep teknis yang sangat penting di dalam teknologi cloud terutama karena dapat diterapkannya dalam lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas aplikasi kita.

E. Map reduce dan non Sql

Map Reduce

MapReduce merupakan sebuah konsep dimana data yang kontinue dipecah menjadi bagian data / komponen data kecil dan didistribusikan melalui mesin-mesin yang terhubung secara cluster. Bisa dibilang map reduce merupakan sebuah framework yang digunakan untuk mempercepat proses pengolahan data pada konsep cloud computing. Dalam memproses data, MapReduce dibagi menjadi 2 proses utama, yaitu Map dan Reduce. Proses Map bertugas utnuk mengumpulkan informasi dari potongan-potongan data yang terditribusi dalam tiap komputer dalam cluster (kelompok komputer yang saling terhubung). Hasilnya deserahkan kepada proses Reduce untuk diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim ke pengguna.

Salah satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang dilakukan Google. Dengan inspirasi dari functional programming map dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google Big Table.

NoSQL

Nosql adalah sebuah memcache dari bagian database sederhana yang berisi key dan value. Database ini bersifat struktur storage dimana sistem databasenya yang berbeda dengan sistem database relasional. Nosql tidak membutuhkan skema table dan menghindari operasi join dan berkembang secara horizontal. Selain itu NoSQL merupakan suatu bahasan yang jauh dari arti kata yang dibaca. Tidak berarti tanpa sql query. Melainkan bagaimana suatu sql query digunakan seminimal mungkin dalam suatu program database. Dengan memanfaatkan teknologi NoSQL ini, diharapkan mampu mengurangi beban server. Selain itu, hal ini juga memudahkan programmer dalam membuat suatu program dan proses pengembangannya. Penjelasan lebih mengenai NoSQL database akan dijelaskan pada sub bab dibawah ini.

Database NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan data dan desain database yang berguna untuk set yang sangat besar data terdistribusi. NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skala bilitas dan kinerja data yang besar yang database relasional tidak dirancang untuk menangani.NoSQL ini sangat berguna ketika perusahaan perlu untuk mengakses dan menganalisis sejumlah besar data terstruktur atau data yang disimpan dari jarak jauh pada beberapa virtual server di awan.

Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarang bahasa query terstruktur (SQL) Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupe.

Pengantar Komputasi Cloud

A. Pendahuluan

Perkembangan teknologi di era ini menggunakan konsep – konsep seperti social networking, open, share, colaborations, mobile, easy maintenance, one click, terdistribusi, scalability, concurency, dan transparan. Sampai saat ini trend teknologi Cloud Computing (Komputasi Awan) masih terus diteliti dalam penelitian – penelitian para pakar IT dunia. Dengan berbagai kelebihan dan kekurangan, Cloud Computing hadir dengan memudahkan akses data dari mana saja dan kapan saja, karena dengan memanfaatkan internet dan menggunakan perangkat fixed atau mobile device menggunakan internet cloud sebagai tempat penyimpanan data, aplikasi dan lainya. Teknologi ini akan memberikan banyak keuntungan baik dari sisi pemberi layanan (provider) atau dari sisi user. Penerapan teknologi ini memberikan dampak yang sangat signifikan bagi pengembangan teknologi itu sendiri, baik dari sisi pengguna maupun dari sisi industri. Pengguna diuntungkan dengan semakin mudahnya memperoleh atau mengunduh data secara cepat dan mudah karena banyak layanan yang dibuka oleh pihak industri. Keuntungan bagi pihak industri pun tidak kalah besar dengan kemudahan yang didapat oleh pengguna, karena dengan semakin majunya teknologi cloud computing akan semakin memudahkan industri untuk memasarkan produk dan menyebarkan informasi secara meluas keseluruh penjuru dunia. Cloud computing adalah gabungan pemanfaatan teknologi komputer dan pengembangan berbasis internet.

B. Pengantar Kompter Grid

Grid computing adalah suatu bentuk cluster (gabungan) komputer-komputer yang cenderung tak terikat batasan geografi. Ide awal komputasi grid dimulai dengan adanya distributed computing, yaitu mempelajari penggunaan komputer terkoordinasi yang secara fisik terpisah atau terdistribusi. Sistem terdistribusi membutuhkan aplikasi yang berbeda dengan sistem terpusat. Kemudian berkembang lagi menjadi parallel computing yang merupakan teknik komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Komputer Grid memiliki beberapa konsep dasar, yaitu:

  • Sumber daya dikelola dan dikendalikan secara lokal.
  • Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda, mencakup Sumber daya komputasi dikelola oleh sistem batch berbeda, Sistem storage berbeda pada node berbeda, Kebijakan berbeda dipercayakan kepada user yang sama pada sumber daya berbeda pada Grid.
  • Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah.
  • Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet).
  • Tiga hal yang di-,sharing dalam sebuah sistem grid, antara lain : Resource, Network dan Proses. Kegunaan / layanan dari sistem grid sendiri adalah untuk melakukan high throughput computing dibidang penelitian, ataupun proses komputasi lain yang memerlukan banyak resource komputer.

C. Virtualisasi

Ada dua istilah yang sedang popouler saat ini dalam hal teknologi komputasi, yaitu Virtualisasi dan Cloud computing, namun saat ini sepertinya banyak yang menganggap bahwa virtualisasi dan cloud computing adalah hal yang sama, padahal sebenarnya cloud computing itu lebih dari sekedar 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.

PROTOKOL

Protokol adalah sekumpulan aturan yang mendefinisikan bagaimana peralatan-peralatan dalam jaringan saling berkomunikasi. Secara umum fungsi protokol adalah sebagai penghubung dalam komunikasi data sehingga proses penukaran data bisa berjalan dengan baik dan benar. Secara khusus, fungsi protokol adalah sebagai berikut :

A. Fragmentasi dan Re-assembly
Pembagian informasi yang dikirim menjadi beberapa paket data dari sisi pengirim. Jika telah sampai di penerima, paket data tersebut akan digabungkan menjadi paket berita yang lengkap.

B. Enkapsulasi
Enkapsulasi (Encaptulation) adalah proses pengiriman data yang dilengkapi dengan alamat, kode-kode koreksi, dan lain-lain.

C. Kontrol Konektivitas
Membangun hubungan komunikasi berupa pengiriman data dan mengakhiri hubungan dari pengirim ke penerima.

D. Flow Control
Fungsi dari Flow Control adalah sebagai pengatur jalannya data dari pengirim ke penerima.

E. Error Control
Tugasnya adalah mengontrol terjadinya kesalahan sewaktu data dikirimkan.

F. Pelayanan Transmisi
Fungsinya adalah memberikan pelayanan komunikasi data yang berhubungan dengan prioritas dan keamanan data.

Macam-macam Protokol :

A. Net Beui
Net Beui merupakan protocol yang banyak digunakan dalam jaringan lokal berbasis SO windows. Protocol ini sangat baik dan cepat untuk bersharing data namun protocol ini tidak dapat dirouting.

B. IPx & SPx ( Internetwork paket exchange / Sequnce paket exchange )
Protocol hampir sama bahkan mirip dengan NetBeui hanya saja perbedaanya protocol ini dapat di routing jadi dapat memungkinkan terjadinya MAN.

C. Protokol yang dikembangkan oleh OSI / ISO
Protocol ini sudah digunakan oleh beberapa institusi, sayangnya segala informasi tantang protocol ini harus debeli melaui ISO dan hal ini yang menyebabkan perkembangan ISO’OSI menjadi Lambat.

D. TCP / IP ( Transmition Control Protocol / Internet Protocol )
TCP / IP adalah protocol yang digunakan di jaringan global karena memiliki sistem pengalamatan yang baik dan memiliki sistem pengecekan data. saat ini terdapat 2 versi TCP/IP yang berbeda dalam sistem penomoran, yaitu IPv4 ( 32 bit ) dan IPv6 ( 128 bit ).

 

Protokol yang banyak digunakan di internet adalah adalah protokol TCP/IP yang terdiri dari empat lapisan, yaitu lapisan application, transport, internet dan network accsess. Masing-masing lapisan memiliki fungsi yang berbeda-beda.

Lapisan application bertugas mengatur interaksi antara pengguna komputer dengan program aplikasi yang dipakai.lapisan transport berfungsi untuk memecah data dari lapisan application menjadi segmen-segmen dan membangun hubungan dari satu titik ke titik lainnya.Lapisan internet bertugas untuk mengirim packet atau datagram(sekelompok data) dari satu lokasi kelokasi lainnya.Lapisan network accsess bertanggung jawab untuk memindahkan data dari satu lokasi ke lokasi lainnya.

Alamat IP terdiri dari dua bagian, yaitu bagian alamat jaringan dan bagian alamat host. Yang disebut host adalah perangkat-perangkat yang ada di dalam sebuah jaringan seperti komputer (server dan client), router dan sebagainya. Perangakat-perangkat tersebut digabungkan menjadi satu jaringan. Setiap alamat IP memiliki alamat host sekaligus alamat jaringan.

Alamat IP digunakan untuk pengalamatan komputer ataupun peralatan lain yang terhubung ke internet. Alamat IP memiliki format bilangan binner ukuran 32 bit (32 digit), namun untuk memudahkan pembacaan, alamat IP dibuat dalam membentuk empat angka desimal yang dipisahkan dengan titik. Masing-masing angka desimal tersebut disebut oktet karena terdiri dari delapan digit bilangan biner. Saat ini banyak sekali peralatan yang terkoneksi ke internet sehingga alamat IP yang masih tersedia saat ini menjadi terbatas. Untuk itu, ada beberapa hal yang kemudian dilakukan untuk menghemat alamat IP, yaitu IP private dan subnetting.

A. Ip private
Salah satu menghemat IP adalah dengan menggunakan IP private untuk host yang tidak secara langsung terkoneksi keinternet. Penggunaan IP private digabungkan dengan network address translation (NAT) dimana hanya satu buah alamat IP yang digunakan di internet di seluruh jaringan.
Sebuah server NAT berfungsi sebagai jalan keluar masuk jaringan tersebut ke dan dari internet. Sering kali server ini di sebut server gateway.

B. Subnetting
Kadang-kadang dalam sebuah jaringan, tidak semua alokasi IP yang tersedia digunakan, hal ini sangat memboroskan alamat IP yang sifatnya terbatas. Untuk itu maka digunakan subnetting dimana ukuran besarnya jaringan tidak dibagi menurut kelas melainkan lebih bebas sesuai keperluan. IP ini sering juga disebut IP classless.

Saat ini, alamat IP yang banyak digunakan di internet adalah Ipv4 yang sebentar lagi hampir habis digunakan. Oleh karena itu, diciptakan Ipv6 yang memiliki daya tampung yang lebih besar. Ipv6 memiliki panjang 16 byte (128 bit/digit) dengan format penulisan dalam delapan bilangan heksa decimal yang masing-masing dipisahkan oleh titik dua.

Domain name Sistem (DNS) berfungsi menerjemahkan sebuah alamat yang berupa kata-kata alamat IP. Hal ini digunakan untuk memudahkan manusia untuk mengingat sebuah alamat di internet karena pada dasarnya manusia lebih mudah mengingat kata dari pada angka.

DNS bertugas menerjemahkan nama domain seperti http://www.gmail.com menjadi alamat IP yang di menegrti oleh komputer. Ketika DNS menerima sebuah permintaan, server DNS dapat melakukan salah satu dari empat hal berikut sesuai dengan kondisi yang ditemui. Menjawab permintaan tersebut karena server DNS sudah mengetahui alamat IP dari domain yang diminta.Menghubungkan server DNS lain untuk mencari alamat IP dari domain yang diminta.

Mengirimkan pemberitahuan kepada pihak yang meminta bahwa ia tidak tahu domain yang dimaksud dan memberitahu alamat IP dari server DNS yang mengetahui domain tersebut.Mengembalikan pesan kesalahan bahwa domain yang dimaksud tidak valid.aplikasi-aplikasi terdistribusi memiliki lebih dari satu komponen yang dapat saling berkomunikasi. Dalam sebuah aplikasi terdistribusi perlu adanya protokol atau standar supaya setiap aplikasi yang berlainan vendor atau pembuatan dapat saling berkomunikasi dengan baik. Dalam membuat aplikasi terdistribusi, program yang dibuat perlu memiliki toleransi yang tinggi terhadap kesalahan

Keterangan :

  1. Konsep Komunikasi Data (Muhammad Adli)
    https://muhammadadly.wordpress.com/2016/03/22/konsep-komunikasi-data/
  2. Protokol (Reza Firmansyah)
    https://rezaafirmansyah.wordpress.com/2016/03/22/protokol/
  3. OSI Model (Yogi)
    http://zonayogiee.blogspot.co.id/2016/03/osi-model.html
  4. Contoh Protokol sesuai OSI (Heru Agus)
    https://agusherrup.wordpress.com/2016/03/22/contoh-protocol-sesuai-osi/
  5. Remote Procedure Call (Bayu Septian)
    http://b-youself.blogspot.co.id/2016/03/remote-procedure-call-rpc.html

Keterkaitan antara Mobile Computing dan Cloud Computing

Pengertian mobile computing adalah kemampuan teknologi untuk menghadapi perpindahan/pergerakan manusia dalam penggunaan komputer secara praktis

Apa itu mobilitas ? Beberapa pengertian tentang mobile computing diantaranya :

  • Mobile computing merupakan paradigma baru dari teknologi yang mampu melakukan komunikasi walaupun user melakukan perpindahan.
  • Merupakan kemajuan teknologi komputer, sering disebut sebagai mobile computer (portable computer) yang dapat berkomunikasi dengan jaringan tanpa kabel (nirkabel).
  • Merupakan sekumpulan peralatan(hardware), data, dan perangkat lunak aplikasi yang bermobilisasi/berpindahlokasi.
  • Merupakan kelas tertentu dari system terdistribusi dimana beberapa node dapat melepaskan diri dari operasi terdistirbusi, bergerak bebas, dan melakukan koneksi kembali pada jaringan yang berbeda.
  • Tidak sama dengan wireless computing.

Dari definisi diatas kita dapat memahami mengapa kita membutuhkan mobile computing. Kata kuncinya adalah kita manusia dinamis yang senantiasa bergerak dan berkembang dari satu keadaan ke keadaan yang lain. Sehingga membutuhkan suatu device yang mampu mengikuti pergerakan kita. Bergerak disini dilihat dari dua sisi yaitu orang dan device.

Orang bergerak

  • Perpindahan posisi geografis
  • Perpindahan jaringan komunikasi
  • Perpindahan peralatan komunikasi
  • Perpindahan antara aplikasi

Device bergerak

  • Perpindahan posisi geografis
  • Perpindahan jaringan komunikasi

Jenis Mobile Computing

  • Laptop
  • Wearable computer
  • PDA
  • Smart phone
  • Carputer
  • UMPC

Aflikasi Mobile Computing :

  • GPR (Global Positioning System)
  • Wireless (Acess)
  • GIS (Location)

Dengan dukungan Mobile Computing, seseorang dimanapun berada, tetap dapat bekerja dan melakukan aktifitas business dengan konsep Mobile Computing

  • Mobile/Migrasi
  • Security
  • Authentication
  • Privacy

Hardware Computing :

  • Laptop (Computing Unit)
  • LCD (Display Unit)
  • Wireless (Comunication Unit)

Sofware Computing :

  • Operating System
  • GUI
  • Application, Cell phone application, Calendar dll
  • Java ME, Popular untuk game
  • Mobile Operation System

Mobile Operation System :

  • Java Mobile
  • Symbian for Nokia
  • Android berbasis Linux
  • I phone mac OSX
  • Palm OS (PDA)
  • Blackberry System
  • Dll

Pengertian Cloud Computing adalah Cloud computing pada dasarnya adalah menggunakan Internet-based service untuk mensupport business process, Kata-kata “Cloud” sendiri merujuk kepada simbol awan yang di dunia TI digunakan untuk menggambarkan jaringan internet (internet cloud). Cloud computing adalah gabungan pemanfaatan teknologi komputer (‘komputasi‘) dan pengembangan berbasis Internet (‘awan’). Cloud /awan merupakan metafora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan computer, awan (cloud) dalam Cloud Computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya adalah suatu moda komputasi dimana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan (as a service), sehingga pengguna dapat mengaksesnya lewat Internet (“di dalam awan”) tanpa pengetahuan tentangnya, ahli dengannya, atau memiliki kendali terhadap infrastruktur teknologi yang membantunya.

Layanan Cloud Computing

Layanan  cloud memiliki  3  karakteristik  yang membedakan dengan penempatan  layanan traditional blain antara  lain dijual sesuai kebutuhan (on demand), biasanya dalam hitungan menit  atau  jam;  bersifat  elastis,  pengguna  dapat  memilih sedikit atau banyaknya  layanan yang diinginkan pada suatu waktu  tertentu;  dan  layanan  tersebut  sepenuhnya  dikelola oleh vendor tersebut (konsumen hanya membutuhkan komputer dan akses internet). Beberapa inovasi virtualisasi yang berpengaruh,  distributed  computing,  peningkatan  akses  jaringan  internet yang cepat dan  lemahnya ekonomi menjadi faktor yang mempercepat keberadaan cloud computing.
Terdapat tiga komponen platform = computer desktop, mobile devices dan cloud, dengan memperhatikan masalah kemudahan dan keamanan, dimungkinkan dapat dengan mudah para user untuk pindah dari satu aplikasi ke aplikasi lain dimana saja.

Teknologi cloud akan memberikan kontrak kepada user untuk service pada 3 tingkatan:

  • Infrastructure as Service, hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
  • Platform-as-a-service: hal ini memfokuskan pada aplikasi dimana dalam hal ini memungkinkan developer untuk tidak memikirkan hardware dan tetap fokus pada application development nya tampa harus mengkhawatirkan operating system, infrastructure scaling, load balancing dan lainya. Contoh nya yang telah mengimplementasikan ini adalah Fcomdan Microsoft Azure investment.
  • Software-as-a-service: Hal ini memfokuskan pada aplikasi denga Web-based interface yang diakses melalui Web Service dan Web 2.0. contohnya adalahGoogle Apps, com dan social network application seperti FaceBook.

Beberapa investor saat ini masih mencoba untuk mengekplorasi adopsi teknologi cloud ini untuk dijadikan bisnis sebagaimana  Amazon dan Google telah memiliki penawaran khusus pada untuk teknologi cloud,Microsoft dan IBM juga telah melakukan investasi jutaan dollar untuk ini.

MANFAAT DARI PENGGUNAAN MOBILE COMPUTING DAN CLOUD COMPUTING

Berbagai manfaat yang saya lihat dapat dipetik dari sini, diantaranya adalah:

  1. Dunia industri tidak perlu menginvestasikan infrastruktur publik yang tentunya memerlukan biaya tidak sedikit. Bisnis bisa lebih fokus ke fungsionalitas daripada memusingkan detil teknis yang memakan waktu, biaya dan tenaga. Aplikasi yang bisa dialihkan ke layanan ini contohnya adalah aplikasi CRM (Customer Relationship Management) atau SCM (Supply Chain Management).
  2. Untuk pengembang aplikasi maka saatnya sebagai individu maupun bagian dari tim developer dapat lebih fokus ke pengembangan ide dan imajinasi untuk mendapatkan hasil akhir produk. Dengan kelengkapan infrastruktur yang sudah ada dapat membantu implementasi aplikasi dengan cepat sehingga meningkatkan produktivitas.
  3. Bagi kita sebagai praktisi, pemberi jasa atau bergerak di industri solusi IT, kesempatan baru tentu sangat terbuka. Dengan pengembangan terkini yang telah bergeser dari pengembangan aplikasi desktop yang sangat bergantung kepada sistem operasi ke arah pengembangan platform SOA dan berdaya jangkau global hal ini berpeluang membuka pasar baru yang tidak terbatas.
  4. Bagi pebisnis di bidang infrastruktur tentunya ini menjadi peluang yang besar karena dengan meningkatnya penggunaan layanan SaaS ini akan meningkatkan penggunaaan bandwidth internet. Pasar akan makin besar dan biaya yang telah dikeluarkan untuk pembangunan infrastruktur akan makin cepat kembali sehingga dapat memberikan harga yang sangat bersaing.

Integrasi aplikasi dengan berbagai device. Dengan infrastruktur yang ditawarkan terutama oleh Google dan Micosoft Live Mesh, maka integrasi aplikasi kita dengan layanan mereka lainnya terutama di layanan aplikasi mobile device – seperti misalnya Google Android – akan sangat terbuka lebar. Dan seperti yang Anda tahu, pasar mobile selalu meningkat signifikan dari tahun ke tahun.

Pentingnya Komputasi Modern

Komputasi modern ini melakukan perhitungan dengan menggunakan komputer yang canggih dimana pada computer tersebut tersimpan sejumlah algoritma untuk menyelesaikan masalah perhitungan secara efektif dan efisien.

Dari sana dapat terlihat bahwa komputasi modern dapat dimanfaatkan untuk memecahkan masalah-masalah seperti dibawah ini:
1  .Modeling (NN & GA)
Modeling merupakan suatu hal yang penting dalam melakukan suatu perhitungan yang rumit. Bayangkan saja jika kita dihadapi dalam suatu masalah perhitungan yang banyak dan kompleks, tetapi tidak ada model matematika yang kita miliki. Perhitungan akan berjalan berantakan dan tidak akan mendapatkan hasil yang akurat. Maka dari itu komputasi modern membutuhkan modeling sebelum melakukan perhitungan.
2. Problem Volume Besar (Down Sizzing atau paralel)
Data yang besar tentu membutuhkan suatu cara penyelesaian yang khusus. Karena data yang besar dapat menjadi masalah jika ada yang terlewatkan. Oleh karena itu digunakan metode Down Sizzing atau paralel pada komputasi modern untuk menangani masalah volume yang besar. Dengan metode ini data yang besar diparalelkan dalam pengolahannya sehigga dapat diorganisir dengan baik.
3. Akurasi (big, Floating point)
Akurasi tentu merupakan masalah yang paling penting dalam memecahkan masalah. Karena itu pada komputasi modern dilakukan perhitungan bagaimana bisa menghasilkan suatu jawaban yang akurat dari sebuah masalah. Tentu kita pernah mendengar tipe data floating point yang biasa digunakan untuk menyimpan data numerik dalam bentuk pecahan. Tipe data tersebut memiliki range penyimpanan numerik yang besar, sehingga dapat digunakan oleh komputer untuk melakukan komputasi yang akurat.
4. Kompleksitas (Menggunakan Teori big O)
Komputasi modern dirancang untuk menangani masalah yang kompleks, sehingga diterapkan pada komputer. Dengan menggunakan teori Big O, maka komputasi modern dapat melakukan perhitungan untuk memecahkan masalah kompleksitas yang kerap dihadapi.
5. Kecepatan (dalam satuan Hz)
Manusia pasti menginginkan masalah dapat diselesaikan dengan cepta. Karena itu perhitungan masalah kecepeatan adalah suatu hal yang penting. Komputasi harus dapat dilakukan dalam waktu yang cepat ketika mengolah suatu data. Sehingga perlu metode kecepatan untuk mengolah perhitungan dalam waktu singkat.
Manfaat lainnya dari komputasi modern yang sering kita dengar sekarang ini adalah tentang pembacaan sidik jari dan scan retina mata. itu dinamakan dengan teknik biometric.

Implementasi Komputasi Pada Bidang Matematika

Implementasi komputasi modern di bidang matematika ada numerical analysis yaitu sebuah algoritma dipakai untuk menganalisa masalah – masalah matematika. Bidang analisis numerik sudah sudah dikembangkan berabad-abad sebelum penemuan komputer modern.Interpolasi linear sudah digunakan lebih dari 2000 tahun yang lalu. Kalkulator mekanik juga dikembangkan sebagai alat untuk perhitungan tangan. Kalkulator ini berevolusi menjadi komputer elektronik pada tahun 1940. Kemudian ditemukan bahwa komputer juga berguna untuk tujuan administratif. Tetapi penemuan komputer juga mempengaruhi bidang analisis numerik, karena memungkinkan dilakukannya perhitungan yang lebih panjang dan rumit. Selain itu juga terdapat istilah-istilah seperti Probabilitas, Algoritma, dan Kalkulus yang ternyata sangat dibutuhkan dalam perkembangan Ilmu Komputer.

  1. Probabilitas

Probabilitas suatu kejadian adalah angka yang menunjukkan kemungkinan terjadinya suatu kejadian. Nilainya di antara 0 dan 1. Kejadian yang mempunyai nilai probabilitas 1 adalah kejadian yang pasti terjadi, dan tentu tidak akan mengejutkan sama sekali.

  1. Algoritma

Penemu algoritma sendiri yang tercatat dalam sejarah awal adalah dari seorang yang bernama Abu Abdullah Muhammad Ibn Musa al Khwarizmi. Al Khwarizmi adalah seorang ahli matematika dari Uzbekistan yang hidup di masa tahun 770-840 masehi. Di literatur barat ia lebih terkenal dengan sebutan Algorizm. Kata algoritma sendiri berasal dari sebutannya ini. Algoritma adalah suatu prosedur yang tepat untuk memecahkan masalah dengan menggunakan bantuan komputer serta menggunakan suatu bahasa pemrogaman tertentu seperti bahasa Pascal, Visual Basic, Java, dan masih banyak lagi bahasa yang lain.

  1. Kalkulus

Kalkulus adalah cabang ilmu matematika yang mencakup limit, turunan, integral, dan deret tak terhingga Kalkulus mempunyai aplikasi yang luas dalam bidang sains dan teknik dan digunakan untu memecahkan masalah yang kompleks yang mana aljabar tidak cukup untuk menyelesaikannnya. Kalkulus digunakan di setiap cabang sains fisik, sains komputer, statistik, teknik, ekonomi, bisnis, kedokteran, dan di bidang-bidang lainnya. Komputer membaca data dalam bentuk bilang biner sementara cara mencari bilangan biner dipelajari dalam ilmu kalkulus.

 

Penjelasan Teori Komputasi

Teori komputasi adalah cabang ilmu komputer dan matematika yang membahas apakah dan bagaimanakah suatu masalah dapat dipecahkan pada model komputasi, menggunakan algoritma. Bidang ilmu ini terutama membahas hal terkait komputabilitas dan kompleksitas, dalam kaitannya dengan formalisme komputasi.

Secara Umum ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model serta teknik penyelesaian numerik dan penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu(sains).

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.