Saturday, 15 April 2017

Tugas Pengganti (No SQL)


NoSQL adalah istilah yang dikenal dalam teknologi komputasi untuk merujuk kepada kelas yang luas dari sistem manajemen basis data yang di identifikasikan dengan tidak mematuhi aturan pada model sistem manajemen basis data relasional yang banyak digunakan.
NoSQL tidak dibangun terutama dengan table dan umumnya tidak menggunakan SQL untuk memanipulasi data, sehingga sering ditafsirkan sebagai “tidak hanya SQL”.

Ketika kita berbicara tentang database, maka pikiran kita langsung tertuju ke perintah “select * from table”, atau Oracle, PostgreSQL, MySQL dan SQL server. Dua hal diatas adalah database Relasional yang cukup populer ditelinga programer atau mahasiswa IT. Namun Apa itu database NoSQL? Database NoSQL adalah database yang tidak menggunakan realasi antar tabel dan tidak menyimpan data dalam format tabel kaku (kolom yang fix) seperti layaknya Relasional Database.

A.    Pengelompokan database noSQL
Secara umum, database noSQL dibagi menurut format penyimpanan dokmentnya . Berikut ini adalah pengelompokan database noSQL berdasarkan model (penyimpanan) datanya
1.      Document Database contohnya MongoDB, seiap satu object data disimpan dalam satu dokumen. Dokumen sendiri bisa terdiri dari key-value, dan value sendiri bisa berupa array atau key-value bertingkat.
2.      Graph , Format penyimpanan data dalam struktur graph. Format ini sering dipakai untuk data yang saling berhubungan seperti jejaring social. Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.
3.      Key – Value,  contoh database jenis ini adalah Apache Cassandra.
4.      Object Database. Format database yang disimpan dalam object object, Object disini sama dengan pengertian object di Pemrograman beroreintasi object , Contoh databasenya adalah Db4o.
5.      Tipe lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu populer.

B.     Kelebihan NoSQL di banding Relasional Database
1.      NoSQL bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
2.      Menggunakan OOP dalam pengaksesan atau manipulasi datanya.
3.      NoSQL tidak mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL sangat cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini adalah Dynamic Schema.
4.      Autosharding, istilah sederhananya, jika database noSQL di jalankandi cluster server (multiple server) maka data akan tersebar secara otomatis dan merata keseluruh server.

Kekurangan dari database NoSQL sendiri , minimal bagi saya adalah Hostingnya mahal. beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting database noSQL. Selain itu, saya belum pernah menemukan hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.
Selain itu, karena bervariasinya produk dan format penyimpanan, berpindah antar satu produk database ke produk noSQL lainnya perlu waktu untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar lagi dari awal, berbeda dengan database RDMS.


Pengantar MongoDB
 

MongoDB adalah salah satu produk database noSQL  OPEN SOURCE yang menggunakan struktur data JSON untuk menyimpan datanya. MongoDB adalah salah satu database noSQL yang paling populer di internet. MongoDB sering dipakai untuk aplikasi berbasis Cloud, Grid Computing, atau Big Data.

A.    Format Dokumen /Struktur data di MongoDB
  

  
B.     Terminologi dan konsep MongoDB 
Berikut ini adalah terminologi dan konsep yang perlu anda tahu di MongoDB, untuk memudahkan anda, maka akan saya buat tabel perbandingan dengan konsep yang ada di SQL database.

  
Untuk primary key, walaupun penamaan istilahnya sama, namun dalam sisi implementasi sangat berbeda. Primary key di RDBMS adalah kolom unik di tabel yang didefinisikan sendiri oleh user . MongoDB secara otomatis membuatkan primary key di field _id dan akan terisi secara otomatis

C.     Pemakai MongoDB
MongoDB telah dipakai oleh perusahaan besar seperti SourceForge.net, CodeAcademy, FourSquare dan Craiglist.

Berikut adalah tutorial penginstallan Mongo DB






Sumber :



Friday, 14 April 2017

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 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. Cloud Computing atau bisa disebut juga Komputasi awan adalah suatu penggabungan antara teknologi komputer yang telah berkembang dengan basis internet yang juga telah berkembang. Mengapa disebut sebagai komputasi awan karena komputasi kita anggap sebagai komputer dan internet sebagai awan dimana bekerja tidak kelihatan oleh mata manusia.
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.     Distributed Computation dalam Cloud Computing 
Distributed Computing adalah ilmu yang memecahkan masalah besar dengan memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah tersebut. Distributed computing terkait dengan system perangkat keras dan perangkat lunak yang memiliki lebih dari satu elemen pemrosesan atau storage element.
Pada cloud computing, penyimpanan data hanya dilakukan pada server utama, sehingga pengguna hanya dapat mengaksesnya tanpa harus mengetahui infrastruktur pembuatan aplikasinya. Hanya perlu interface software saja untuk mengakses server. Interface ini pada umumnya merupakan web browser yang tersedia dengan banyak pilihan dan tidak berbayar.
Cloud computing dipecah ke dalam beberapa kategori yang berbeda berdasarkan jenis layanan yang disediakan. SaaS (Software as a Service) adalah kategori komputasi awan di mana sumber daya utama yang tersedia sebagai layanan perangkat lunak aplikasi. PaaS (Platform as a Service) adalah kategori / penerapan komputasi awan di mana penyedia layanan memberikan platform komputasi atau solusi tumpukan untuk pelanggan mereka melalui internet. IaaS (Infrastructure as a Service) adalah kategori komputasi awan di mana sumber daya utama yang tersedia sebagai layanan yang infrastruktur perangkat keras. DaaS (Desktop sebagai Layanan), yang merupakan layanan muncul-Aas berkaitan dengan memberikan pengalaman seluruh desktop melalui internet. Ini kadang-kadang disebut sebagai virtualisasi desktop / virtual desktop atau desktop host.
Bidang ilmu komputer yang berkaitan dengan sistem terdistribusi disebut komputasi terdistribusi. Sebuah sistem terdistribusi terdiri dari lebih dari satu komputer self-directed berkomunikasi melalui jaringan. Komputer-komputer ini menggunakan memori lokal mereka sendiri. Semua komputer dalam sistem terdistribusi berbicara satu sama lain untuk mencapai tujuan bersama tertentu. Atau, pengguna yang berbeda pada setiap komputer mungkin memiliki kebutuhan individu yang berbeda dan sistem terdistribusi akan melakukan koordinasi sumber daya bersama (atau bantuan berkomunikasi dengan node lain) untuk mencapai tugas-tugas masing-masing. Node berkomunikasi menggunakan message passing. Komputasi terdistribusi juga dapat diidentifikasi sebagai menggunakan sistem terdistribusi untuk memecahkan masalah besar tunggal dengan melanggar itu dengan tugas, masing-masing yang dihitung masing-masing komputer dari sistem terdistribusi. Biasanya, mekanisme toleransi berada di tempat untuk mengatasi kegagalan komputer individu. Struktur (topologi, delay dan kardinalitas) dari sistem ini tidak dikenal di muka dan itu bersifat dinamis. Komputer individu tidak harus tahu segala sesuatu tentang seluruh sistem atau masukan lengkap (untuk masalah yang akan dipecahkan).

Sumber:


Pengantar Komputasi Grid


Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.
Komputasi Grid atau Grid Computing merupakan salah satu dari tipe Komputasi Paralel, adalah penggunaan sumber daya yang melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk Internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.
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.

A.    Latar Belakang
Perkembangan kecepatan prosesor berkembang sesuai dengan Hukum Moore, meskipun demikian bandwith jaringan komputer berkembang jauh lebih pesat. Semakin cepatnya jalur komunikasi ini membuka peluang untuk menggabungkan kekuatan komputasi dari sumber-sumber komputasi yang terpisah. Perkembangan ini memungkinkan skala komputasi terdistribusi ditingkatkan lebih jauh lagi secara geografis, melintasi batas-batas domain administrasi yang sudah ada.
Pesatnya perkembangan teknologi komputer di negara-negara maju, membuat para penelitinya semakin haus akan tenaga komputasi yang dapat menjawab tantangan dan permasalahan yang mereka hadapi. Walaupun sudah memiliki supercomputer dengan kapasitas yang sangat tinggi , apa yang sudah ada ini pun dirasa tetap kurang, karena mereka berusaha memecahkan permasalahan yang lebih besar lagi. Setelah semua komputer yg dimiliki seorang "peneliti haus tenaga komputasi" dipergunakan habis-habisan untuk memecahkan masalahnya, setelah berbagai cara untuk memecahkan masalah dicoba, dan dipilih yang paling efisien, tetapi tetap masalahnya belum bisa dipecahkan juga, apa yang harus dia lakukan? Komputasi grid adalah salah satu jawaban dari pertanyaan ini.

B.     Alasan suatu sistem melakukan komputasi grid
1.     Sistem tersebut melakukan koordinasi terhadap sumberdaya komputasi yang tidak berada dibawah suatu kendali terpusat. Seandainya sumber daya yang digunakan berada dalam satu cakupan domain administratif, maka komputasi tersebut belum dapat dikatakan komputasi grid.
2.    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, misalnya TCP/IP.
3.   Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.

C.     Konsep dasar dari Komputasi Grid
1.      Sumber daya dikelola dan dikendalikan secara lokal.
2.  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.
3.      Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah.
4.      Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet).

D.    Keuntungan dasar dari penerapan komputasi Grid
Secara generik, keuntungan dasar dari penerapan komputasi Grid, yaitu:
1.      Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle
2.    Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas
3.     Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik
4.      Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baik

E.     Contoh Grid Computing
1.      Scientific Simulation
Komputasi grid diimplementasikan di bidang fisika, kimia, dan biologi untuk melakukan simulasi terhadap proses yang kompleks.

2.      Medical Images
Penggunaan data grid dan komputasi grid untuk menyimpan medical-image. Contohnya adalah eDiaMoND project.

3.      Computer-Aided Drug Discovery (CADD)
Komputasi grid digunakan untuk membantu penemuan obat. Salah satu contohnya adalah: Molecular Modeling Laboratory (MML) di University of North Carolina (UNC).

4.      Big Science
Data grid dan komputasi grid digunakan untuk membantu proyek laboratorium yang disponsori oleh pemerintah Contohnya terdapat di DEISA.

5.      E-Learning
Komputasi grid membantu membangun infrastruktur untuk memenuhi kebutuhan dalam pertukaran informasi dibidang pendidikan. Contohnya adalah AccessGrid.

6.      Visualization
Komputasi grid digunakan untuk membantu proses visualisasi perhitungan yang rumit.

7.      Microprocessor design
Komputasi grid membantu untuk mengurangi microprocessor design cycle dan memudahkan design center untuk membagikan resource lebih efisien. Contohnya ada diMicroprocessor Design Group at IBM Austin.

Sumber :