Nama Anggota Kelompok :
1. Kelvin Bun - (55414804) - Pengantar Komputasi GRID
2. Sarah Ramadhanty Putri (5A414038) - Virtualisasi
3. Rastiko Kuncorojati - (58414937) - Map Reduce dan NoSQL (Not Only SQL)
4. Hendika Julbahri Arbansya Surbakti - (54414736) - NoSQL Database
1. Kelvin Bun - (55414804) - Pengantar Komputasi GRID
2. Sarah Ramadhanty Putri (5A414038) - Virtualisasi
3. Rastiko Kuncorojati - (58414937) - Map Reduce dan NoSQL (Not Only SQL)
4. Hendika Julbahri Arbansya Surbakti - (54414736) - NoSQL Database
Kelas : 4IA20
Mata Kuliah : Pengantar Komputasi Modern
Dosen : Lely Prananingrum
I. VIRTUALISASI
A. Pengertian Grid Computing
Komputasi Grid
adalah penggunaan sumber daya yang melibatkan banyak komputer yang
terdistribusi dan terpisah secara geografis untuk memecahkan persoalan
komputasi dalam skala besar. Grid computing merupakan cabang dari distributed
computing.Grid komputer memiliki perbedaan yang lebih menonjol dan di terapakan
pada sisi infrastruktur dari penyelesaian suatu proses. Grid computing adalah
suatu bentuk cluster (gabungan) komputer-komputer yang cenderung tak terikat
batasan geografi. Di sisi lain, cluster selalu diimplementasikan dalam satu
tempat dengan menggabungkan banyak komputer lewat jaringan.
Grid Computing erat
kaitannya dengan metode komputasi paralel. Metode ini dapat membagi kerja
komputer menjadi beberapa bagian sehingga, tidak memberatkan kerja komputer itu
sendiri dan mempercepat kerja komputer.
Grid Computing
memanfaatkan kekuatan pengolahan berbagai unit komputer, dan menggunakan
kekuatan proses untuk menghitung satu pekerjaan. Pekerjaan itu sendiri
dikontrol oleh satu komputer utama, dan dipecah menjadi beberapa tugas yang
dapat dilaksanakan secara bersamaan pada komputer yang berbeda. Tugas-tugas ini
tidak perlu saling eksklusif, sebagai tugas lengkap pada berbagai unit
komputasi, hasil dikirim kembali ke unit pengendali, yang kemudian membentuk keluaran kohesif. Salah satu
komponen yang terpenting juga dalam grid computing adalah konektifitas atau
jaringan.
B. Konsep Grid
Computing
Beberapa
konsep dasar dari grid computing :
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)
5.
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. Cara Kerja Grid Computing
Menurut
tulisan singkat oleh Ian Foster ada check-list yang dapat digunakan untuk
mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :
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.
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.
D. Komponen Grid Computing
Komponen-komponen grid computing
adalah:
·
Gram (Grid Resources Allocation
& Management)
Komponen ini dibuat
untuk mengatur seluruh sumberdaya komputasi yang tersedia dalam sebuah sistem
komputasi grid. Pengaturan ini termasuk eksekusi program pada seluruh komputer
yang tergabung dalam sistem komputasi grid, mulai dari inisiasi, monitoring,
sampai dengan penjadwalan dan koordinasi antar proses yang terjadi dalam sistem
tersebut. Juga dapat berkoordinasi dengan sistem-sistem pengaturan sumber daya
yang telah ada sebelumnya. Dengan mekanisme ini program-program yang telah
dibuat sebelumnya tidak perlu dibangun ulang atau bila dimodifikasi,
modifikasinya minimum.
·
RFT/GridFTP (Reliable File
Transfer/Grid File Transfer Protocol)
Komponen ini dibuat
agar pengguna dapat mengakses data yang berukuran besar dari semua simpul
komputasi yang telah tergabung dalam sebuah sistem komputasi secara efisien.
Hal ini tentu saja berpengaruh karena kinerja komputasi tidak hanya bergantung
pada kecepatan komputer yang tergabung dalam mengeksekusi program, tapi juga
seberapa cepat data yang dibutuhkan dapat diakses. Data yang diakses juga tidak
selalu ada pada komputer yang mengeksekusi.
·
MDS (Monitoring and Discovery Services)
Komponen ini dibuat
untuk memonitoring proses komputasi yang sedang dijalankan agar dapat
mendeteksi masalah yang timbul dengan segera. Sedangkan fungsi disovery
dibuat agar pengguna mampu mengetahui keberadaan sumber daya komputasi beserta
karakteristiknya.
·
GSI (Grid Security
Infrastructure)
Komponen
ini dibuat untuk mengamankan sistem komputasi grid secara keseluruhan. Komponen
ini membedakan teknologi GT4 dengan teknologi-teknologi sebelumnya. Dengan
menerapkan mekanisme keamanan yang tergabung dengan komponen-komponen komputasi
grid lainnya, sistem ini dapat diakses secara luas tanpa sedikitpun mengurangi
tingkat keamanannya. Sistem keamanan ini dibangun dengan segala komponen yang
telah diuji, mencakup proteksi data, autentikasi, delegasi dan autorisasi.
E. Kelemahan Dan Kelebihan Grid Computing
Kelebihan Grid Computing
Beberapa
kelebihan dari grid computing adalah:
·
Perkalian dari sumber daya:
Resource pool dari CPU dan storage tersedia ketika idle.
·
Lebih cepat dan lebih besar:
Komputasi simulasi dan penyelesaian masalah dapat berjalan lebih cepat dan
mencakup domain yang lebih luas.
·
Software dan aplikasi: Pool
dari aplikasi dan pustaka standard, akses terhadap model dan perangkat
berbeda, metodologi penelitian yang lebih baik.
·
Data: Akses terhadap sumber
data global dan hasil penelitian lebih baik.
·
Ukuran dan kompleksitas dari
masalah mengharuskan orang-orang dalam beberapa organisasi berkolaborasi dan
berbagi sumber daya komputasi, data dan instrumen sehingga terwujud bentuk
organisasi baru yaitu virtual organization.
Kekurangan Grid Computing
Kekurangan pada
grid computing yang lebih ditekankan disini adalah mengenai hambatan yang
dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid
computing. Hambatan-hambatan tersebut adalah sebagai berikut :
·
Manajemen institusi yang
terlalu birokratis menyebabkan mereka enggan untuk merelakan fasilitas yang
dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yang lebih
besar bagi masyarakat luas.
·
Masih sedikitnya sumber daya
manusia yang kompeten dalam mengelola grid computing.
·
Kurangnya pengetahuan yang
mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid
computing itu sendiri.
Sumber :
I. VIRTUALISASI
Dalam ilmu komputer, virtualisasi (bahasa Inggris: virtualization) adalah istilah umum yang mengacu kepada abstraksi dari sumber daya komputer. Definisi lainnya adalah "sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal; atau dapat juga termasuk definisi untuk membuat beberapa sumber daya fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber daya logikal."
II. Fungsi Virtualisasi
Secara umum fungsi virtualisasi data center adalah sebagai berikut.
1. Pengurangan Biaya Investasi Hardware.
2. Kemudahan Backup& Recovery.
3. Kemudahan Deployment.
4. Mengurangi Panas.
5. Mengurangi Biaya Space.
6. Kemudahan Maintenance& Pengelolaan.
7. Standarisasi Hardware.
8. Kemudahan Replacement.
Dalam teknologi virtualisasi sebuah server dipecah kedalam virtual environment , dan setiap virtual environment dapat diinstall sistem operasi yang berbeda dari sistem operasi server fisik atau sistem operasi dari virtual environment lain nya. Ketiaka Virtual environment berjalan dia tidak tau tentang resource yang digunakan sehingga dalam teknologi virtualisasi diperlukan sebuah Hypervisor yang mengkoordinasi komunikasi dan instruksi antara virtual environment dengan resource fisik / psical resource. Hypervisor inilah yang dipegang oleh administrator dari sebuah server yang mengimplementasikan teknologi virtualisasi untuk mengatur virtual environment.
Ada 2 jenis Hypervisor dalam dunia virtualisasi saat ini :
Ada 2 jenis Hypervisor dalam dunia virtualisasi saat ini :
1. Hypervisor Type 1 (Bare Metal Hypervisor)
Dikatakan Bare Metal hypervisor karena hypervisor ini mengakses langsung hardaware fisik tanpa bantuan sistem operasi, dan biasnaya untuk menggunakan hypervisor type 1 kita harus menginstall hypervisor sebagai sistem operasi (Bukan diinstall dalam sistem operasi).
Contoh Hypervisor Type 1 diantaranya : KVM , Red hat Enterprise Virtualisation (RHEV),XEN/Citrix XenServer,Hyper-V,VMware vSphere/ESXi
2. Hypervisor Type 2 (Hosted Hypervisor
Jenis Hypervisor ini memerlukan sistem operasi untuk berjalan, karena jenis hyper visor ini berjalan diatas sistem operasi.
Contoh Hypervisor Type 2 diantaranya : VMware Work station , VMware Player ,Virtual Box
III. Jenis dan Tipe Virtualisasi
Pembagian berikut ini berdasarkan hasil akhir dari penerapan teknologi virtualisasi, walau dalam prakteknya akan sangat komplek dan hampir mirip dalam konfigurasi.Untuk saat ini implementasi virtualisasi dalam dunia komputer dapat dikategorikan sebagai berikut :
1. Virtualisasi Server
Virtualisasi Server adalah penggunaan teknologi virtualisasi dengan tujuan untuk memecah resource fisik server kedalam beberapa Virtual server yang nantinya akan diinstall berbagai macam sistem operasi sesuai kebutuhan atau bisa juga virtual server ini dijual /disewakan oleh pihak hosting, kita sering mendengarnya dengan istilah VPS (Virtual Private Server).
2. Virtualisasi Desktop
Virtualisasi desktop merupakan teknologi software yang memisahkan desktop environment dan aplikasi desktop yang terinstall dengan resource fisik ketika desktop diakses oleh user. Virtualisasi desktop biasanya digunakan bebarengan dengan virtualisasi aplikasi dan user provile management systems atau sekarang lebih dikenal dengan “Virtualisasi User” dimana dalam 1 komputer bisa diakses oleh ratusan user dalam 1 waktu tanpa mengganggu user lain nya. Virtualisasi user atau desktop bisa diakses menggunakan remote desktop atau menggunakan cloud interface /browser sehingga lebih flexible.
3. Virtualisasi Aplikasi
Virtualisasi aplikasi memungkinkan kita untuk menjalankan sebuah aplikasi tanpa harus menginstall aplikasi tersebut bahkan bisa menjalankan nya secara remote dengan menggunakan web interface atau cloud interface. Pada dasarnya aplikasi akan dibungkus kedalam sebuah runtime environment (seperti virtual machine) dan ketika aplikasi dijalankan aplikasi tersebut berjalan diatas virtual environment yang telah di bundle bersamanya yang menjadikan aplikasi menjadi portable. Virtual environment akan berjalan diatas sistem operasi dan aplikasi berjalan diatas virtual environment sehingga aplikasi benar-benar terisolasi dari OS fisik.
Ada beberapa pilihan/metode akses user ke virtual aplikasi antara lain :
· User mengakses virtual aplikasi yang telah diintegrasikan dengan webserver melelui web browser atau cloud interface (streaming)
· User mengkopi aplikasi yang sudah dibundle dengan runtime environment (yang menjadikan aplikasi ini portable tanpa perlu install) dan mengekseskusinya langsung di mesin yang dia miliki/pakai tanpa install dan setting apapun
Ada beberapa produk yang digunakan untuk membuat Virtualisasi aplikasi antara lain : Microsoft App-V, VMware Thinapp,Symantec Workspace Virtualization,Spoon,Cameyo
Ada beberapa produk yang digunakan untuk membuat Virtualisasi aplikasi antara lain : Microsoft App-V, VMware Thinapp,Symantec Workspace Virtualization,Spoon,Cameyo
- Virtualisasi Network
Virtualisasi network merupakan proses penggabungan network hardware dan software kedalam satu virtual unit(Network Server) yang menyediakan container yang berfungsi seperti halnya perangkat network fisik. virtualisasi network biasanya digunakan oleh developer untuk mengetest sistem dan aplikasi yang sedang dikembangkannya.
- Virtualisasi Storage
Virtualisasi storage menyediakan media penyimpan (storage) yang terisolasi (terpisah dari resource fisik),aman dan mudah dalam fail over dan backup. salah satu contoh implementasi virtualisasi storage yang gampang kita lihat adalah fasilitas cloud storage seperti DropBox dan Google drive yang menyediakan /menyewakan cloud storage bagi pelanggannya dengan menawarkan flexibilitas dimana user bisa mengakses storage kapanpun dan dimanapun.
Sumber:
MapReduce dan NoSQL (Not Only SQL)
A. MAPREDUCE
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. Proses Map bertugas untuk
mengumpulkan informasi dari potongan-potongan data yang terdistribusi dalam
tiap komputer dalam cluster. Hasilnya diserahkan kepada proses Reduce untuk
diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim
ke pengguna. Untuk menggunakan MapReduce, seorang programer cukup membuat dua
program yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan
oleh proses Map dan Reduce. Jadi tidak perlu pusing memikirkan bagaimana
memotong-motong data untuk dibagi-bagikan kepada tiap komputer, dan
memprosesnya secara paralel kemudian mengumpulkannya kembali. Semua proses ini
akan dikerjakan secara otomatis oleh MapReduce yang dijalankan diatas Google
File System.
Tujuan
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.
Tahapan proses MapReduce
MapReduce
memiliki dua tahap dalam memproses data yaitu map danreduce. Tahap
pertama dari MapReduce disebut map.
·
Map melakukan transformasi setiap data elemen input
menjadi data elemen output. Map dapat dicontohkan dengan suatu
fungsi toUpper(str) yang akan mengubah setiap huruf kecil (lowercase)
menjadi huruf besar (uppercase). Setiap data elemen huruf kecil (lowercase)
yang menjadi input dari fungsi ini akan ditransformasi menjadi data output
elemen yang berupa huruf besar (uppercase). Map memiliki
fungsi yang dipanggil untuk setiap input yang menghasilkan output pasangan intermediate <key, value>.
·
Reduce adalah tahap yang dilakukan setelah mapping selesai. Reduce akan
memeriksa semua value input dan mengelompokkannya menjadi
satu value output. Reduce menghasilkan output pasangan
intermediate . Sebelum memasuki tahap reduce, pasangan intermediate <key, value>
dikelompokkan berdasarkan key, tahap ini dinamakan tahap shuffle.
B. NoSQL (Not Only SQL)
NoSQL adalah istilah untuk menyatakan
berbagai hal yang didalamnya termasuk database sederhana yang
berisikan key dan value seperti Memcache, ataupun yang lebih canggih
yaitu non-database relational seperti MongoDB, Cassandra, CouchDB,
dan yang lainnya.
Wikipedia
menyatakan NoSQL adalah sistem menejemen database yang berbeda
dari sistem menejemen database relasional yang klasik dalam beberapa hal. NoSQL
mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan
berkembang secara horisontal. Akademisi menyebut database seperti ini
sebagai structured storage, istilah yang didalamnya mencakup sistem
menejemen database relasional.
Kesimpulan
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.
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. Dan juga terinspirasi dari Google, pada ranah open source terlihat
percepatan pengembangan framework lainnya yang juga bersifat terdistribusi dan
menggunakan konsep yang sama, project open source tersebut bernama Apache
Hadoop.
NoSQL Database
A. Pengertian No Sql
Berbeda dengan
SQL Database, dari namanya saja sudah bisa ditebak bahwa nosql database adalah
kebalikan dari sql database. Tidak relational / tanpa relation. Database nosql
atau yang biasa disebut NoSQL database / cloud database merupakan penyimpanan
data / database yang tidak terstruktur.
Nosql database
tidak seperti sql database yang menggunakan tabel dalam penyusunan datanya,
nosql database menggabungkan semua database tidak membedakan jenis2nya dan
tanpa karakteristik umum. Tapi nosql database ini memiliki kecepatan yang super
cepat dibanding dengan sql database, pencariannya lebih terfokus. Nosql
sebetulnya tidak 100% menyimpan data dengan cara tidak terstruktur, terkadang
ada miripnya dengan sql database dengan sedikit susunan pada saat2 tertentu.
Bedanya nosql
database ini menyusun bagian didalam bagian lainnya (subset). Jadi setiap
bagian akan memiliki beberapa bagian lagi didalamnya. Nosql ini cocok dan biasa
digunakan untuk penyimpanan aplikasi atau data yang sangat besar. Karena dengan
menggunakan nosql data dapat diakses dengan sangat fleksibel dan sangat sedikit
kemungkinan error ketika mengakses banyak data dengan format yang berbeda-beda.
B.
Karakteristik
NoSql
1.
NoSQL tidak menggunakan model data relasional
dengan demikian tidak menggunakan bahasa SQL .
2.
NoSQL toko volume data yang besar .
3.
Dalam lingkungan terdistribusi (data menyebar
ke mesin yang berbeda ) , kita menggunakan NoSQL tanpa ketidaksesuaian .
4.
Jika ada kesalahan atau kegagalan ada di
setiap mesin , maka dalam hal ini tidak akan ada penghentian pekerjaan .
5.
NoSQL adalah database open source, yaitu kode
sumbernya tersedia untuk semua orang dan bebas menggunakannya tanpa overhead .
6.
Memungkinkan data NoSQL untuk menyimpan dalam
catatan yang tidak memiliki apapun skema tetap.
7.
NoSQL tidak menggunakan konsep ACID properti .
8.
NoSQL adalah horizontal scalable menyebabkan
kinerja tinggi dalam cara linear .
9.
Hal ini memiliki struktur yang lebih
fleksibel..
C.
Pengelompokan
NoSQL ( Jenis Penyimpanan Data )
1 . Key value databases
Key value
databases nama itu sendiri menyatakan bahwa itu adalah kombinasi dari dua hal
yang merupakan kunci dan nilai . Ini adalah salah satu low profile sistem
database ( tradisional) . Key Value database ( KV ) adalah ibu dari semua database
NoSQL .
- Key adalah
sebuah identifikasi unik untuk entri data tertentu. Kunci tidak harus diulang
jika digunakan.
- Value adalah jenis data yang ditunjuk oleh
kunci.
Contohnya:
Dynamo, Riak, Redis, MemcacheDB, Project Voldemort
2 . Document
Stores Databases
Document
Stores Databases adalah mereka database NoSQL yang menggunakan catatan sebagai
dokumen. Jenis Document Stores Databases terstruktur (teks ) atau semi -
terstruktur ( XML ) dokumen yang biasanya hirarki di nature . Di sini setiap dokumen
terdiri
Dari satu
set kunci dan nilai-nilai yang hampir sama seperti ada dalam database Key Value
. Setiap database yang berada di Document Stores Databases dipindahkan ke field
dengan menggunakan pointer dengan menggunakan teknik hashing . Document Stores
Databases adalah skema bebas dan tidak tetap di nature . Struktur Document
Stores Databases digambarkan pada Gambar
di bawah ini
Contohnya:
MarkLogic, MongoDB, Couchbase
3 . Columnar
Database
Columnar
Database juga dikenal sebagai database keluarga kolom karena mereka adalah
database berorientasi kolom . Contohnya: HBase, Accumulo, Cassandra
Ada dua
jenis database berorientasi kolom yang detail seperti yang diberikan di bawah
ini :
( 1 )
Wide-Column data stores:
Ini adalah
salah satu jenis database NoSQL . Menyimpan data Kolom lebar adalah mereka
database yang digunakan untuk pengolahan web ,streaming data dan dokumen .
( 2 ) Column
oriented databases:
Untuk
memahami database berorientasi kolom mari kita mengambil contoh database bank yang
diberikan dalam gambar 9 yang bidang atribut adalah EmpID , Gaji dan penunjukan
dan nilai-nilai sesuai dengan itu adalah seperti yang digambarkan dalam
database .
4 . Graph
databases.
Database
Grafik didasarkan pada teori graf . Secara umum, kita melihat grafik yang
biasanya terdiri dari node \ , sifat dan tepi .
Database
NoSQL Grafik terdiri dari :
( 1 ) Node
mewakili entitas
( 2 )
Properti merupakan atribut
( 3 ) Tepi
mewakili hubungan .
Struktur
Graph databases adalah sebagai berikut:
Contohnya:
Neo4J, OrientDB, Allegro, Virtuoso
D.
Peranan Data dan Arsitektur di NoSql
Ada empat komponen dalam blok bangunan nya. :
1. Modelling Language: Ini menggambarkan struktur
database dan juga mendefinisikan skema yang itu didasarkan. data adalahyang
disimpan dalam bentuk baris dan kolom menggunakan XML format. Dan setiap data
(nilai) sesuai dengan itu ditugaskan kunci yang unik. Untuk akses data lebih
cepat, model dibangun di lingkungan yang sesuai.
2. Database
Struktur: Setiap basis data sementara bangunan menggunakan struktur data
sendiri, dan menyimpan data menggunakan perangkat penyimpanan permanen.
3.
Database bahasa Query: Semua operasi
yang dilakukan pada database yang membuat, merubah, membaca dan menghapus.
4. Transaksi:
Dalam setiap transaksi dalam data, mungkin ada jenis kesalahan atau kegagalan,
kemudian, mesin tidak akan berhenti kerja.
E. 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.
F. Kekurangan
dari database NoSQL
1. 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.
2. Perlu
waktu untuk belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra,
maka anda harus belajar lagi dari awal, berbeda dengan database RDMS.
G. Contoh-contoh
Aplikasi NoSQL Database
1. MongoDB
Merupakan basis data yang
paling populer diantara basis data NoSQL lainnya. Hal ini dikarenakan
pemasangan maupun penggunaan mongoDB tidaklah sulit atau merepotkan
penggunanya. Selain itu mongoDB juga merupakan salah satu basis data yang open
source sehingga pengembangan mongoDB sendiri cukup pesat karena setiap orang
bisa berpartisipasi untuk mengembangkannya.
2. CouchDB
Apache CouchDB, biasa
disebut dengan CouchDB saja, merupakan basis data NoSQL yang dikembangkan oleh
Apache. CouchDB lebih dulu muncul jauh sebelum mongoDB yaitu pada tahun 2005.
CouchDB tidak menyimpan datanya dalam tabel melainkan dalam dokumen seperti
halnya mongoDB.
3. Cassandra
Cassandra merupakan
sebuah sistem penyimpanan data terdistribusi untuk menangani jumlah data yang
sangat besar dan terstruktur. Cassandra juga dikembangkan Apache, pengembang
yang sama untuk basis data CouchDB.
4. Redis
Lagi-lagi basis data open
source, redis merupakan basis data berbasis key-value paling populer menurut
situs DB-Engines.com. Redis merupakan singkatan dari REmote DIctionary Server.
Basis data ini dikembangkan oleh Salvatore Sanfilippo pada tahun 2009 dan ditulis
dalam bahasa C. Redis banyak dipilih karena memiliki fitur in-memory,
networked, dan durabilitas tinggi.
5. Riak
Riak merupakan basis data
NoSQL terdistribusi yang menyimpan datanya dalam bentu key-value. Riak
menawarkan fitur high availability, fault tolerance, operational simplicaity,
dan scalability. Riak memiliki dua versi yakni Open source edition dan
Enterprise edition. Enterprise edition menawarkan dukungan berbayar intensif
dari pengembangnya. Pengguna Open source edition dapat bermigrasi kapan saja ke
Enterprise edition jika dibutuhkan.
6. Neo4J
Neo4j merupakan basis
data NoSQL dengan sistem graf. Apabila berurusan dengan basis data berbasis
graf, maka Neo4j lah yang paling dikenal. Neo4j menyimpan relasi antar objek
dalam struktur seperti graf, dimana setiap objek merujuk ke objek lainnya
secara langsung.
7. OrientDB
OrientDB merupakan basis
data graf terdistribusi generasi kedua. Basis data ini dibuat dalam bahasa Java
oleh Orient Technologies LTD dan dirilis pertama kali tahun 2010. OrientDB
diklaim sangat cepat dan mampu menyimpan 220.000 record per detik diperangkat
standar.