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
https://upload.wikimedia.org/wikipedia/id/3/35/Desktop_virtualization.jpg
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
:
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.
Linknya di bawah buat download ebooknya
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
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
: