Pendahuluan
Pengertian Cloud Computing
Cloud computer merupakan sebuah gabungan pemanfaatan teknologi komputer (komputasi)
pada jaringan dengan pengembangan berbasis internet yang mempunyai fungsi untuk
menjalankan program melalui komputer
yang terkoneksi pada waktu yang sama, perlu diketahui tidak semua computer yang
terkoneksi dengan internet menggunakan Cloud
Coumputing.
Teknologi
komputer berbasis sistem Cloud ini
adalah teknologi yang menjadikan internet sebagai pusat server untuk mengelola
data dan juga aplikasi pengguna. Kasarnya teknologi Cloud Computing mengizinkan para pengguna untuk menjalankan program
tanpa harus instalasi terlebih dahulu.
Manfaat Cloud
Computing
Berikut merupakan
manfaat yang ada pada teknologi berbasis sistem cloud :
1. Data Tersimpan di Server Secara Terpusat
Cloud Computing memungkinkan kita untuk menyimpan segala bentuk data secara terpusat
pada server. Selain itu, pengguna juga
tak perlu repot repot lagi menyediakan infrastruktur seperti data center, media
penyimpanan/storage dll karena semua telah tersedia secara virtual.
2.
Keamanan Data
Cloud Computing memberikan keamanan pada data pengguna yang dapat disimpan dengan aman
melalui server yang disediakan oleh penyedia layanan seperti jaminan platform
teknologi, jaminan ISO, data pribadi.
3.
Fleksibilitas dan Skalabilitas
Cloud Computing merupakan teknologi yang sangat fleksibel dan dapat diakses dimana dan
kapan saja dengan catatan bahwa pengguna terkoneksi dengan internet sehingga
memberikan kemudahan untuk aktifitas pengelolaan data. Selain itu, user juga
dapat dengan mudah meningkatkan atau mengurangi kapasitas penyimpanan data
tanpa perlu membeli peralatan tambahan seperti hardisk atau alat – alat
penyimpanan non virtual lainnya.
4.
Investasi Jangka Panjang
Karena model penyimpanan Cloud Computing ini bersifat virtual, maka
pengalokasian biaya untuk membeli alat – alat penyimpanan non virtual akan
berkurang.
Cara Kerja Sistem Cloud Computing
Cara
Cloud Computing bekerja menggunakan sebuah perantara internet sebagai server
dalam mengolah data. Cara ini akan memungkinkan user untuk login ke program
untuk menjalankan aplikasi yang dibutuhkan tanpa harus melakukan instalasi pada
program terlebih dahulu. Instruksi/perintah dari pengguna akan disimpan secara
virtual melalui jaringan internet yang telah terkoneksi pada komputer kemudian
perintah – perintah tersebut dilanjutkan ke server aplikasi. Setelah perintah
yang telah disimpan secara virtual tersebut
diterima di server aplikasi, kemudian data akan diproses dan pada proses
terakhir user akan disajikan dengan sebuah halaman yang telah diperbaharui
sesuai dengan instruksi yang diterima sebelumnya.
Contohnya
nyata dari pengaplikasian Cloud Computing adalah seperti Yahoo ataupun Gmail.
Data yang aplikasi punya pada server disalurkan secara global tanpa harus
mendownload/menginstall perangkat lunak tertentu untuk menggunakannya. User
hanya memerlukan koneksi internet yang tersambung ke device 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.
Jenis-jenis Cloud Computing
1. Infrastructure as a Service
(IaaS)
Infrastructure as a Service (IaaS) merupakan layanan Cloud
Computing yang dapat menyediakan infrastruktur IT berupa CPU, RAM, storage,
bandwith dan konfigurasi lain. Komponen-komponen tersebut digunakan untuk
membangun komputer virtual.
2. Platform as a Service (PaaS)
Platform as a Service (PaaS) merupakan sebuah service yang menyediakan computing platform. Biasanya
PaaS sudah terdapat pada sistem operasi, database, web server dan framework
aplikasi agar dapat menjalankan aplikasi yang telah dibuat. Vendor atau
perusahaan yang menyediakan layanan yang bertanggung jawab untuk pemeliharaan
computing platform nya. Manfaat dari service PaaS ini bagi pengembang adalah
mereka bisa fokus pada aplikasi yang mereka buat tanpa memikirkan tentang
pemeliharaan dari computing platform karena bagian dari pemeliharaan sudah akan
ditanggung oleh penyedia. Contoh penyedia layanan PaaS adalah Amazon Web
Service dan Windows Azure.
3. Software as a Service (SaaS)
Software as a Service (SaaS) merupakan sebuah layanan Cloud
Computing yang dimana kita dapat langsung menggunakan aplikasi yang telah
disediakan oleh penyedia. Penyedia layanan mengelola infrastruktur dan platform
yang menjalankan aplikasi tersebut.
Nama : Rizqi Kukuh Pambudi
NPM : 59414741
Sumber Materi :
Ardi, Malvin. Pengertian, Manfaat, Jenis-Jenis dan Contoh
Cloud Computing. Dikutip dari situs : https://bfl-definisi.blogspot.co.id/.
14 Maret 2018
Gus, Wak. Cara Kerja
dan Contoh Cloud Computing. Dikutip dari situs : http://pusatteknologi.com/. 14 Maret 2018
Pengantar Grid Computing
Grid
Komputing adalah sebuah arsitektur yang mengahasilkan sistem informasi yang
berbiaya rendah dan lebih adaptif terhadap perubahan bisnis. Dengan arsitektur
ini komponen dari hardware dan software yang modular dan independen akan dapat
dikoneksikan dan disatukan untuk memenuhi kebutuhan. Implementasi dari grid
computing ajan menghasilkan pusat komputasi data yang tangguh dengan struktur
biaya variatif yang disesuaikan dengan kebutuhan. Permasalahan yang bisa diselesaikan
dengan arsitektur ini adalah : permaslahan pada aplikasi yang menyebabkan
hardware tidak berfungsi maksimal, kasus monolitik (yaitu sistem sulit
digunakan karena mahalnya ongkos pengelolaan dan sulitnya dilakukan perubahan
pada sistem), informasi yang terpecah-pecah sehingga tidak bisa dimanfaatkan
secara maksimal. Komputasi grid memiliki tiga karakteristik penting yaitu:
1.
Pemakaian bersama sumber daya yang
terkoordinasi (setara) yang tidak berada di bawah suatu kendali terpusat.
2.
Menggunakan protokol-protokol dan
interface yang standar, terbuka dan serbaguna.
3.
Dapat memberikan kualitas layanan
(QoS) yang tinggi.
Menurut
IDC grid computing merupakan generasi kelima dalam komputasi yaitu : host-based
computing, remote access, klien/server, multitier, grid computing. Secara
singkat grid computing berarti menyatukan seluruh sumberdaya TI yang terpisah
secara geografiske dalam sekumpulan layanan yang bisa digunakan secara
bersama-sama untuk memenuhi kebutuhan komputing perusahaan, pada
pengembangannya hal ini difokuskan untuk meningkatkan kemampuan komputsi, akses
data dan kapasitas penyimpanan data. Secara kontinyu metode arsitektur ini
menganalisa permintaan terhadap sumberdaya dan mengatur suplai yang di
sesuaikan terhapda permintaan tersebut. Dimana data disimpan atau komputer yang
akan memproses tidak perlu dipikirkan. Peneyelesaia pmaslaah monolitik dapat
diselesaikan dengan mengatur keseimbanga suplai dan sumber daya yang fleksibel.
Berikut ini merupakan sumber daya yang dikelola oleh grid computing :
1.
Sumberdaya Infrasturuktur
Mencakup keseluruhan hardware seperti penyimpanan, prosessor, memori,
dan jaringan. Software untuk pengelolaan hardware seperti database, manajemen
penyimpanan, manajemen sitem, server aplikasi, dan sistem operasi
2.
Sumberdaya Aplikasi
Adanya logika bisnis dan arus proses dalam software aplikasi, berupa
aplikasi paketatau aplikasi buatan. Ditulis dalam bahasa pemrograman dan
merefleksikan tingkat kompleksitas, contohnya software pengambil pesanan dari
seseorang pelanggan dan mengirimkan balsan, proses untuk cetak slip gaji dan
lainnya.
3.
Sumberdaya informasi
Informasi cenderung terfragmentasi dalam perusahaan, sehingga sulit
untuk memandang bisnis dalam satu kesatuan. Grid computing melihat informasi
adalah sumber daya, yang mencakup keseluruhan data pada perusahaan dan
menjadikan metadata sebagai data yang bisa bermakna. Data bisa berbentuk struktur,
semi-terstruktur, tersimpan di lokasi manapun seperti database maupun sistem
file local.
Nama : Nawang Widyastuti
NPM : 57414875
Sumber
:
Pahlevi,
Said Mirza. Komputasi Grid dan Pararel. Dikutip dari situs :
http://digilib.batan.go.id. 14 Maret 2018
Rahayu,Nur
Wijayaning. Arsitektur Grid Computing pada Oracle 10g. Dikutip dari situs :
journal.uii.ac.id. 14 Maret 2018
Yasa,
Ghufran Ibnu. Keamanan pada Grid Computing. Dikutip dari situs :
https://jurnal.ar-raniry.ac.id. 14 Maret 2018
Virtualization
Virtualisasi,
sepertinya sudah tidak asing bagi yang bekerja di bidang Teknologi Informasi.
Istilah yang banyak digunakan untuk melakukan optimasi sistem virtual diatas sesuatu hardware.
Why Virtualize?
“Virtualization means that
Applications can use a resource without any concern for where it resides, what
the technical interface is, how it has been implemented, which platform it
uses, and how much of it is available.”
Rick
F. Van der Lans
in Data Virtualization for
Business Intelligence Systems
Virtualisasi
adalah sebuah teknologi yang memungkinkan untuk membuat sebuah versi virtual
dari sesuatu yang bersifat fisik. Sebagai contohnya yaitu sistem operasi,
storage/ penyimpanan data ataupun sumber daya jaringan.
Setelah
virtualisasi terdapat istilah Hypervisor,
dimana inilah yang menjadi inti dari virtualisasi. Karena terdapat layer/
lapisan yang berpura-pura menjadi sebuah infrastruktur dalam menjalankan virtual machine.
5
Alasan melakukan virtualisasi :
1.
Sharing, penggunaan bersama
resource dengan komputasi yang besar. E.g Servers
2.
Isolation, memproteksi dari sistem
lain yang digunakan. E.g Virtual Private Newtork
3.
Aggregating, menggabungkan banyak
resouce menjadi satu. E.g storage
4.
Dynamics, persiapan terhadap
perubahan, alokasi sumber daya, dan lainya. E.g Virtual Machines
5.
Ease of Management, mudah untuk
didistribusikan, proses deploy dan testing.
Beberapa keuntungan dari
virtualisasi
1.
Minimize hardware costs
2.
Easy move VMs to other data
centers
3.
Consolidate idle workloads
4.
Conserve power
5.
Easier automation (Lower OpEx)
6.
Scalability and Flexibility
Virtualisasi dalam pembagian
komputasi :
1.
Storage
Virtual memory (L1, L2, L3)
Virtual CD, Virtual Disk (RAID), Cloud Storage
2.
Computing
Virtual Desktop
Virtual Server
Virtual Datacenter
Vms, Cloud
3.
Networking
Virtual channels
Virtual LANs
Virtual Private Network
Server Virtualization
Concepts
Host
OS, dijalankan di perangkat keras/ diatas hardware langsung.
Guest
OS, dijalankan diatas sistem operasi seperti Windows XP mode di Windows 7.
Hypervisor,
software untuk mendukung banyak virtual machines.
Type
1 : Berjalan di atas perangkat keras. E.g Xen, VMware ESXi
Type
2 : Berjalan diatas sistem operasi. E.g Ms Virtual Px, Virtualbox VMs
Type
0 : Gabungan antara Type 1 dan Type 2. E.g Linux KVM
Levels
of Virtualization
Virtualization
Products
·
Microsoft Virtual PC
·
Xen
·
Oracle VM Virtualbox
·
Microsoft Hyper-V
·
Linux KVM
·
User-Mode Linux (UML)
·
VMware ESX/ESXi
File
System for VMs
·
Using VMware’s example :
·
All physical disk are clustered in
to Pools
·
Each VM has a virtual disk in some
pool with extension .vmdk
·
The disk is formatted using
Virtual Machine File System (VMFS)
·
Thin Provisioning
·
Thick Provisioning
·
Linked Clone
·
Non-Linked Disk
·
Persistent/Non-Persistent
Nama : Indra Nugraha
NPM : 55414297
Reference
:
https://www.cse.wustl.edu/~jain/cse570-13/ftp/m_05srv.pdf
http://cdn.ttgtmedia.com/searchServerVirtualization/downloads/Virtualization_FD_Chapter_1.pdf
https://adhibarfan.wordpress.com/2016/04/21/pengantar-komputasi-cloud/
Pengertian
Distribusi Komputasi
Sistem komputasi terdistribusi adalah seperangkat
mesin komputasi yang dihubungkan oleh jaringan untuk mencapai tujuan bersama
dalam menjalankan pekerjaan atau aplikasi. Sebuah cluster komputer atau
jaringan workstation adalah contoh sistem komputasi terdistribusi.
Pengertian
Cloud Computing
Cloud Computing merupakan suatu model komputasi yang
dimana sumber daya seperti daya komputasi, media penyimpanan(storage),
jaringan(network), dan software dijalankan sebagai layanan melalui media
jaringan, bahkan dapat diakses di tempat manapun selama terkoneksi dengan
jaringan internet. Cloud Computing juga mengubah pandangan komputasi dengan
menggeser perangkat keras dan biaya kepegawaian dalam mengelola pusat
komputasi.
Cloud computing mempunyai tiga tingkatan layanan yang
diberikan kepada pengguna, yaitu:
Infrastructure as service, hal ini di dalamnya
meliputi Grid untuk virtualized server, storage & network. Contohnya
seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
Platform as a service, dalam 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. Contoh yang sudah
mengimplementasikan ini seperti Force.com dan Microsoft Azure investment.
Software as a service: Hal ini berfokus 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.
Kelebihan
dan kekurangan Cloud Computing
Kelebihan Cloud Computing:
1.
Menghemat
biaya investasi awal untuk pembelian sumber daya.
2.
Bisa
menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan
berkembang dengan cepat.
3.
Membuat
operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang
tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
4.
Menjadikan
kolaborasi yang terpercaya dan lebih ramping.
5.
Mengehemat
biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem
informasi yang dibangun.
Kekurangan Cloud Computing:
1.
Komputasi
awan tidak dapat dilakukan jika tidak dapat terhubung ke Internet.
2.
Apabila
koneksi internet yang lambat, maka cloud computing tidak lagi optimal untuk
digunakan.
3.
Fitur
yang ditawarkan tidak selengkap aplikasi desktop.
4.
Data yang
disimpan dalam awan secara umum tidaklah aman karena diperbanyak di beberapa
mesin.
5.
Satu
Pusat Serangan. Penempatan semua server dalam satu komputer akan menjadikannya
sebagai target serangan.
Nama : Ahmad Hari Ramadhan
NPM : 50414562
Sumber :
Febiani , Putri. Distributed Computation dalam Cloud
Computing. Dikutip dari situs :
http://putrifebiani.blogspot.co.id/2014/05/distributed-computation-dalam-cloud.html
>. Diakses 13 Maret 2018.
Hwang, Kai, Geoffrey C. Fox, dan Jack J. Dongara.
Distributed and Cloud Computing From Parallel Processing to the Internet of
Things. 225 Wyman Street, Waltham, MA 02451, USA.
MapReduce dan NoSQL
MapReduce
MapReduce
merupakan sebuah model pemrograman yang dirilis oleh Google dengan tujuan untuk
memproses data yang berukuran besar yang dipecah menjadi komponen data kecil
terdistribusi melalui ribuan komputer yang terhubung secara cluster. MapReduce
sering digunakan oleh orang yang terbiasa dengan solusi pengolahan data skala
clustering.
MapReduce
merupakan pembagian dua proses yaitu proses Map dan proses Reduce. Cara kerja
masing – masing proses sama halnya yaitu dengan mendistribusikan data – data
yang sudah dibagi ke setiap komputer dalam suatu cluster dengan cara paralel
sehingga tidak saling bergantung dengan lainnya. Proses Map bertugas untuk
mengumpulkan informasi dari pecahan data yang terdistribusi dalam cluster
tersebut dan hasil dari proses Map akan di proses lebih lanjut pada proses
Reduce sehingga menghasilkan hasil akhir dimana hasil akhir tersebut akan
dikirim ke pengguna. Hasil akhir tersebut berupa file teks yang biasanya
disimpan di HDFS secara terdistribusi.
Tahap
proses MapReduce :
MapReduce
memiliki tiga tahap, yaitu tahap map, tahap shuffle, dan tahap reduce.
1.
Tahap Map akan memproses data
inputan berupa file yang tersimpan dalam HDFS (hadoop distributed file system)
yang merupakan sistem file terdistribusi yang bersifat fault-tolerant dan
mendukung pengolahan Big Data. Inputan tersebut selanjutnya diubah menjadi
tuple antara key dan value.
2.
Tahap Reduce merupakan tahap
gabungan dari tahap shuffle dan tahap reduce, sehingga tetap disebut menjadi
tahap reduce. Tahap ini memproses inputan dari hasil proses map, kemudian
dilakukan tahap shuffle dan reduce dengan hasil data set yang baru akan
disimpan kembali di HDFS.
Keuntungan MapReduce
1.
Scalability
MapReduce menjadi platform yang terukur karena kemampuan untuk menyimpan
dan mendistribusikan data yang besar pada banyak server. Seperti halnya dalam
organisasi bisnis, pemrograman MapReduce memungkinkan organisasi bisnis untuk
menjalani aplikasi dari sejumlah besar node dengan melibatkan penggunaan ribuan
terabyte data.
2.
Solusi Biaya yang Efektif
Pada sistem manajemen database relasional tradisional, biaya yang besar
akan digunakan untuk mencapai skala yang sederajat dengan Hadoop yang hanya
untuk memproses data. Adanya pemrograman MapReduce mampu memungkinkan
penyimpanan dan pengolahan data dengan cara yang terjangkau dan dapat digunakan
di lain waktu, sehingga menghemat biaya yang besar.
3.
Flexibility
Pemgrograman MapReduce dapat digunakan karena memiliki akses ke
barbagai sumber data dan dapat beroperasi pada jenis data terstruktur maupun
tidak terstruktur.
3.
Proses lebih cepat
Metode penyimpanan sistem file terdistribusi menerapkan sistem pemetaan
untuk mencari data dalam cluster dan pengolahan data menggunakan pemrograman
MapReduce umumnya berada pada server yang sama, sehingga memungkinkan proses
data yang lebih cepat bahkan dengan volume data yang besar dan tidak
terstruktur.
4.
Keamanan dan Otentikasi
Keamanan yang diberikan pemrograman MapReduce adalah bekerja dengan
HDFS dan keamanan HBase yang hanya disetujui oleh pengguna untuk beroperasi
pada data yang tersimpan dalam sistem.
5.
Proses Paralel
Cara proses kerja yang dilakukan MapReduce adalah membagi tugas dengan
cara eksekusi yang dilakukan secara parallel.
6.
Ketersediaan
Ketersediaan yang dimaksud adalah ketika terjadi kegagalan pada saat
data dikirim ke seluruh jaringan, sehingga mempengaruhi node tertentu, maka
akan selalu ada salinan lain yang masih bisa diakses kapan pun. Dengan memiliki
kemampuan untuk mengenali kesalahan secara cepat dan memberikan solusi pemulihan
dengan cepat dan otomatis, hal inilah yang merupakan salah satu keuntungan yang
di dapat jika menggunakan pemrograman MapReduce.
7.
Model Pemrograman Sederhana
Pemrograman MapReduce didasarkan pada model pemrograman sederhana dan
dapat menggunakan Java yang pada dasarnya dapat membantu programmer untuk
mengembangkan program MapReduce yang menangani tugas – tugas dengan lebih
efisien.
NoSQL
NoSQL
dengan kepanjangan dari “Not Only SQL” merupakan suatu database sederhana
berisikan key dan value yang berbeda dengan sistem manajemen database
relasional dalam beberapa hal sehingga merupakan konsep penyimpanan data secara
non-relasional. Beberapa contoh database seperti Memcache atau yang lebih
canggih yaitu non-database relational seperti MongoDB, Cassandra, CouchDB, dan
lainnya.
NoSQL
juga disebut sebagai sebuah pendekatan untuk pengolahan data dan desain
database untuk data terdistribusi dengan set yang sangat besar. NoSQL sangat
berguna bagi keperluan perusahaan untuk mengakses dan menganalisis sejumlah
besar data terstruktur, karena NoSQL mencakup berbagai teknologi dan arsitektur
yang berusaha memecah masalah skala bilitas dan kinerja data yang besar.
Beberapa
kelebihan NoSQL sebagai berikut :
1.
NoSQL mampu menampung data
terstruktur, semi terstruktur, dan tidak terstruktur dengan efisien dalam skala
yang besar.
2.
Pada pengaksesan atau manipulasi
data, NoSQL menggunakan metode OOP.
3.
NoSQL tidak mengenal schema tabel
dengan format data yang kaku, sehingga NoSQL sangat cocok pada data yang tidak
terstruktur.
4.
Adanya istilah autosharding,
dimana database NoSQL yang dijalankan pada multiple server maka data tersebut
secara otomatis akan tersebar merata keseluruh server.
Adapun
kekurangan yang dimiliki NoSQL, seperti :
1.
NoSQL dikenal memiliki hosting
yang mahal, sehingga perlu mengeluarkan biaya yang lebih untuk hosting database
NoSQL. Jumlah biaya hosting NoSQL pada dua tahun lalu berkisar 100 – 200 USD.
2.
Untuk menggunakan database NoSQL,
tidak hanya belajar atau menggunakan satu saja dari beberapa contoh database
NoSQL, jika terjadi perpindahan dari satu produk database ke produk NoSQL
lainnya maka pengguna harus mempelajari produk NoSQL lainnya dari awal karena
setiap produk memiliki variasi dan bentuk format penyimpanan yang berbeda.
Nama : Elfrida Lestari Sinaga
NPM : 53414492
Referensi :
Pasma
D, Aprian. 2015. “Cloud Computing, Grid Computing, Virtualisasi, dan NoSQL”.
Tersedia :
http://zumzeros.blogspot.co.id/2015/03/cloud-computing-grid-computing.html.
Diakses : 14 Maret 2018.
Febiani,
Putri. 10 Mei 2015. “Map Reduce dan NoSQL”. Tersedia :
http://putrifebiani.blogspot.co.id/2014/05/map-reduce-dan-nosql.html. Diakses :
14 Maret 2018.
Firian,
Audimas. 25 April 2017. “MapReduce”. Tersedia :
http://layarinformatika.blogspot.co.id/2017/04/mapreduce.html. Diakses : 13
Maret 2018.
KONSEP DASAR NoSQL
Pada
bagian ini akan menjelaskan fitur apa saja yang dimiliki oleh basis data NoSQL
dan tidak dimiliki oleh RDMBS terutama dalam hal bagaimana cara mendistribusi
data dan melakukan query dalam
beberapa server yang sama.
Eric brewer menyatakan bahwa NoSQL
didasarkan pada teori CAP yaitu pemilihan dua dari tiga aspek yang harus
dipenuhi oleh basis data yaitu Consistency,
Avaibility, dan Partition-Tolerance.
(1) Consistency Avaibility (CA), artinya bagaimana suatu sistem dalam keadaan konsisten setelah eksekusi
suatu operasi. Sistem terdistribusi biasanya dianggap konsisten jika setelah
operasi update beberapa penulis, semua pembaca melihat pembaruannya di beberapa
sumber data bersama.
(2)
Consistency Partition- Tolerance (CP) berseberangan
dengan Avaiability dalam penyimpanan
data. Diartikan sebagai kemampuan sistem untuk terus beroperasi dengan adanya
partisi jaringan. Ini terjadi jika dua atau lebih node jaringan muncul yang
(sementara atau permanen) tidak dapat terhubung satu sama lain.
(3)
Avaibility Partition-Tolerance, artinya
bagaimana sistem dalam kondisi tersedia
yang berarti bahwa sistem harus dirancang dan diimplementasikan dengan
cara yang memungkinkannya melanjutkan operasi (misal mengijinkan operasi baca
dan tulis) seperti contohnya node dalam cluster crash atau beberapa bagian
perangkat keras atau perangkat lunak rusak karena upgrade.
Dalam basis data
NoSQL penerapan konsep tersebut diterjemahkan dalam empat konsep dasar yaitu Non-Relational, MapReduce, Schema Free, dan Horizontal Scaling.
Non-Relational
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. Penggunaan basis data non-relational
kembali merebak seiring dengan bertambahnya aplikasi berbasis web yang
memerlukan banyak penyimpanan data. Meskipun memiliki kelemahan pada
konsistensi dan redundansi data, namun basis data non-relational dapat menyelesaikan beberapa permasalahan terkait
dengan avaiability, dan partition tolerance. Tugas pengecekan
konsistensi dan redundansi data diserahkan pada sisi aplikasi, sedangkan basis
data non-relational hanya bertugas
memanipulasi penyimpanan saja.
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
Schema-Free
NoSQL
dan RDBMS mempunyai perbedaan dalam hal penerapan skema basis data. Dalam basis
data relasional, sebuah tabel didesain dengan peraturan skema yang ketat. NoSQL
menyimpan data dengan aturan yang lebih longgar. Dalam artian, NoSQL tidak
memiliki tabel, kolom, primary dan foreign key, join, dan relasi seperti pada
RDBMS.
Manfaat
dalam penggunaan schema-free adalah
penghematan dalam media penyimpanan. Dalam basis data relasional, setiap field
yang ada dalam tabel harus mempunyai nilai, walaupun nilai itu kosong (null). Model data schema-free artinya setiap baris memungkinkan memiliki nilai
sebanyak yang telah didefinisikan dalam tiap fields, dan tidak perlu menggunakan nilai yang memang tidak
diperlukan. Kelemahan dalam penggunaan schema-free
yaitu menimbulkan lemahnya pendefinisian struktur yang memungkinkan terjadinya
penggunaan basis data yang tidak konsisten.
Horizontal Scaling
Horizontal scaling memungkinkan basis data dijalankan pada beberapa server untuk
meningkatkan kemampuan perangkat penyimpanan dan meningkatkan efisiensi waktu.
Hal ini memerlukan kemampuan dinamis pemartisian data dalam serangkaian node (seperti storage hosts) dalam suatu cluster
server. Kemampuan untuk meningkatkan kemampuan dengan menambahkan beberapa
komputer sangatlah penting dilakukan untuk data yang jumlahnya banyak, karena vertical scaling dilakukan dengan
meningkatkan kemampuan spesifikasi single server (misalnya penambahan prosesor,
memori, dan peralatan penyimpanan) terbatas untuk dilakukan dan lebih mahal. Horizontal scaling berarti memungkinkan
dilakukannya penambahan server dalam satu jaringan dan user tidak sadar jika
ada hardware yang diganti dari sisi
server (transparent).
MODEL DATA RELASIONAL NOSQL
Bagian
ini berisi penjelasan empat model data NoSQL, yaitu column-oriented,
document-oriented, object-oriented dan graph-oriented
Column-oriented
Penerepan
column-oriented menggunakan distribusi
multidimensional map indexed dengan
sebuah key. Setiap kolom digabungkan menjadi sebuah column families. Super-column
merupakan gabungan dari kolom dengan nama yang umum dan digunakan untuk
pemodelan tipe data yang komplek. Baris secara unik mengidentifikasikan data
yang terdapat dalam column dan super-column. Column Family merupakan bagian dari suatu unit abstraksi yang
berisi baris kunci yang tergabung dalam column
dan super column yang memiliki
struktur data yang tinggi. Keyspace
merupakan level tertinggi dari unit informasi. Kumpulan column families sebenarnya merupakan subordinat dari satu keyspace. Pada intinya model data column-oriented memungkinkan suatu
aplikasi secara bebas untuk mengembangkan bagaimana informasi disusun berdasarkan
suatu desain schema.
Document-oriented
Basis
data yang memiliki model data document-oriented sangat bermanfaat untuk
suatu domain yang bentuk masukannya dokumen yang tidak terstruktur seperti web
pages, wikis, discussion forums, dan blogs. Data tersimpan dalam
basis data yang mencakup serangkaian dokumentasi yang berisi beberapa atribut
dan nilai dengan masing-masing id yang unik dan metadata. Basis data ini tidak pernah
melakukan overwrite document, melainkan menambahkan dokumen baru ke
basis data bila diperlukan seperti ketika terjadi proses update.
Object-oriented
Basis data
berorientasi objek adalah model basis data di mana informasi direpresentasikan
dalam bentuk objek yang digunakan dalam pemrograman berorientasi obyek. Dokumen
yang ada dalam suatu cluster, dapat berupa fisik, logis atau in-memory,
yang digunakan untuk menyimpan link ke dalam data. Cluster adalah
cara yang sangat umum untuk mengelompokkan record, hal ini merupakan
suatu konsep yang tidak ada dalam basis data relasional. Cara ini dapat
mengelompokkan semua record pada jenis tertentu, atau dengan nilai-nilai
tertentu. Model database ini menggunakan
segmen data untuk menyimpan isi record. Segmen data mirip dengan file
physical cluster yang menggunakan dua atau lebih file, yaitu satu
atau beberapa file dengan ekstensi "oda" (Orient
Data) dan hanya satu file dengan ekstensi "odh" (Orient
data Holes).
Graph-oriented
Basis data
grafik adalah basis data yang menggunakan struktur grafik yang berisi node,
edge, dan properti untuk mewakili dan menyimpan informasi. Basis data grafik diperlukan
untuk data grafik yang berskala besar. Basis
data grafik memetakan secara langsung objek ke aplikasi dan lebih
intuitif untuk menggambarkan data set asosiatif. Beberapa keuntungan
dari basis data grafik adalah
: Intuitive, dimengerti oleh pikiran manusia, yaitu menggambarkan
entitas dan hubungan sebagai grafik masalah umum yang akrab dengan manusia; Elemental
untuk ilmu komputer, yaitu grafik, terutama grafik pohon (seperti binary-tree,
B+ tree, red-black tree) berfungsi sebagai struktur data dasar dalam ilmu
komputer dan berbagai masalah (shortest path dan max-flow) dapat
diubah dan diselesaikan dengan algoritma grafik; Ubiquitous, yaitu
pemodelan ER ke model jejaring sosial selalu dikelilingi oleh grafik
baik di komputer ataupun dalam kenyataan.
Nama : Biyanka Pinasthi
NPM : 52414204
Referensi :
http://www.timestored.com/time-series-data/what-is-a-column-oriented-database