Cloud Computing
Apa itu Cloud Computing?
Cloud
Computing (dalam bahasa Indonesia disebut komputasi awan) adalah proses
pengolahan daya komputasi (baik CPU, RAM, Network Speeds, Software, OS maupun
Storage) melalui jaringan (biasanya lewat internet). Jadi transfer data yang
terjadi bukan secara fisik dan sumber daya komputasi yang dimiliki berada di
lokasi pengguna yang memakai layanannya.
Manfaat Cloud Computing
Komputasi
awan sebenarnya jadi menurunkan permintaan hardware dan software dari sisi si
pengguna. Satu-satunya hal yang harus bisa dijalankan/dilakuka oleh si pengguna
adalah software interface dari sistem komputasi awan, yang bisa jadi
sesederhana saja semacam browser web. Ini pastinya bisa membantu mengurangi
pekerjaan pengguna dengan adanya teknonologi jaringan Cloud yang tanggap dan
otomatis menyelesaikan masalah-masalah IT lainnya.
Bila
Anda bukan dari pihak korporat/pebisnis, Anda juga sebenarnya sudah menggunakan
teknologi komputasi awan. Anda mungkin tidak sadar, beberapa layanan cloud
populer yang telah banyak digunakan semacam email tools GMail, Hotmail atau
Yahoo bahkan sudah didukung teknologi ini.
Saat
mengakses/memakai layanan email, data Anda akan disimpan di server cloud, bukan
di komputer Anda. Teknologi dan infrastruktur di belakang cloud memang tidak
tampak. Jadi, tidak penting lagi apakah layanan cloud didasarkan pada HTTP,
XML, Ruby, PHP atau teknologi spesifik lainnya sejauh itu masih user-friendly
dan juga fungsional tentunya. Anda sebagai pengguna bisa terhubung ke sistem
cloud dari perangkat pribadi Anda sendiri semacam laptop, atau ponsel.
Komputasi
awan juga memang memanfaatkan bisnis kecil secara efektif dengan sumber daya
yang terbatas. Teknologi atau layanan ini bisa kasih akses ke usaha kecil
menengah untuk teknologi yang sebelumnya berada di luar jangkauan mereka. Cloud
computing kini banyak sekali membantu usaha kecil untuk mengubah biaya
pengeluaran mereka malah menjadi untung.
Tipe-tipe Cloud
Ada
empat macam/tipe cloud yang berbeda yang bisa Anda pakai sebagai pengguna,
sesuai dengan kebutuhan bisnis. Berikut adalah keempatnya!
·
Private Cloud
Private
Cloud ini berarti sumber daya cloud-nya digunakan bagi satu organisasi tertentu
saja (secara privat, tidak dibagi ke pengguna/organisasi lain). Metode ini
lebih banyak digunakan buat interaksi semacam intra-bisnis, di mana sumber daya
cloud-nya bisa diatur, dimiliki, dan dioperasikan oleh organisasi satu yang
sama.
·
Community Cloud
Community
cloud mengacu pada penggunaan source bagi komunitas dan organisasi.
·
Public Cloud
Jenis
cloud ini biasanya dipakai buat interaksi tipe B2C (Business to Consumer).
Public Cloud menggunakan sumber daya komputasi yang dimiliki, diatur dan
dioperasikan oleh pemerintah.
·
Hybrid Cloud
Jenis
Cloud yang satu ini bisa digunakan untuk kedua jenis interaksi – B2B (Business
to Business) atau B2C (Business to Consumer). Jadi, sumber daya komputasi
terikat bersama tapi dengan cloud yang berbeda.
Struktur Cloud Computing
Cloud
computing terdiri dari dua komponen yaitu Front End dan juga Back End. Front
End terdiri dari klien Cloud Computing system-nya. Lalu dibagi lagi menjadi dua
yaitu interface dan aplikasi yang diperlukan dalam mengakses platform cloud
computing-nya.
Sementara
Back End mengacu ke cloud itu sendiri, yaitu yang terdiri dari sumber daya.
Sumber daya tersebut diperlukan bagi layanan komputasi awan. Layanannya apa
saja? Ada berbagai layanan yang disediakan teknologi komputasi awan yaitu
virtual machine, server, data storage, security mechanism, dan lain sebagainya.
Jadi, semua layanan itu berada di bawah kendali si provider/penyedia komputasi
awan.
Cloud
computing bisa mendistribusikan sistem file yang kemudian disebar ke banyak
hard disk maupun mesin. Datanya tidak pernah disimpan di satu tempat saja.
Selain itu, jika satu unit gagal bekerja atau memproses, maka yang lain akan
mengambil alih secara otomatis. Inilah canggihnya teknologi Cloud. Ruang disk
pengguna dapat dialokasikan ke sistem file yang terdistribusi, sementara
komponen penting lainnya semacam algoritma dimanfaatan buat alokasi sumber
daya. Intinya, teknologi komputasi awan ini merupakan sistem distribusi yang
kuat dan sangat bergantung ke algoritma yang kuat pula.
Grid Computing
Apa itu Grid Computing
Komputasi
Grid atau Grid Computing adalah kumpulan sumber daya komputer dari berbagai
lokasi untuk mencapai tujuan bersama. Grid dapat dianggap sebagai sistem
terdistribusi dengan beban kerja non-interaktif yang melibatkan sejumlah besar
file.
Komputasi grid dibedakan dari sistem komputasi kinerja
tinggi konvensional seperti komputasi cluster dalam bahwa komputer jaringan
memiliki setiap node diatur untuk melakukan tugas yang berbeda atau
aplikasi. komputer Grid juga cenderung
lebih heterogen dan geografis (dengan demikian tidak secara fisik ditambah)
dari komputer klaster Meskipun grid
tunggal dapat didedikasikan untuk aplikasi tertentu, umumnya grid digunakan
untuk berbagai tujuan.. Grids sering dibangun dengan tujuan umum perpustakaan
software jaringan middleware.
Contoh Grid Computing:
·
Scientific Simulation
Komputasi grid
diimplementasikan di bidang fisika, kimia, dan biologi untuk melakukan simulasi
terhadap proses yang kompleks.
·
Medical Images
Penggunaan data grid dan
komputasi grid untuk menyimpan medical-image. Contohnya adalah eDiaMoND
project.
·
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).
·
Big Science
Data grid dan komputasi grid
digunakan untuk membantu proyek laboratorium yang disponsorioleh pemerintah Contohnya
terdapat di DEISA.
·
E-Learning
Komputasi grid membantu
membangun infrastruktur untuk memenuhi kebutuhan dalam pertukaran informasi
dibidang pendidikan. Contohnya adalah AccessGrid.
·
Visualization
Komputasi grid digunakan untuk
membantu proses visualisasi perhitungan yang rumit.
·
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.
Beberapa konsep dasar dari
grid computing :
·
Sumber daya dikelola
dan dikendalikan secara lokal.
·
Sumber daya berbeda
dapat mempunyai kebijakan dan mekanisme berbeda, mencakup Sumber daya komputasi
dikelola oleh sistem batch berbeda, Sistem storage berbeda pada node berbeda,
Kebijakan berbeda dipercayakan kepada user yang sama pada sumber daya berbeda
pada Grid.
·
Sifat alami dinamis:
Sumber daya dan pengguna dapat sering berubah
·
Lingkungan kolaboratif
bagi e-community (komunitas elektronik, di internet).
·
Tiga hal yang
di-,sharing dalam sebuah sistem grid, antara lain : Resource, Network dan
Proses. Kegunaan / layanan dari sistem grid sendiri adalah untuk melakukan high
throughput computing dibidang penelitian, ataupun proses komputasi lain yang
memerlukan banyak resource komputer.
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.
Kemudian hal yang tidak boleh
dilupakan adalah mengenai keberadaan dari elemen-elemen dari grid computing,
elemen ini tidak bisa dilepaskan dari grid computing. Elemen grid computing
adalah hardware, software, dan brainware
Keuntungan Utama Penggunaan Grid Computing
Teknologi grid computing mampu menjadi solusi bagi
perusahaanperusahaan untuk memiliki suatu sistem informasi yang berteknologi
canggih, yang mampu mendukung kinerja perusahaan, dengan biaya yang lebih
murah.
Kemampuan
teknologi tersebut untuk mendukung kinerja perusahaan tidak diragukan lagi. Teknologi grid computing membuka peluang bagi
adanya kerjasama lintas organisasi, lintas benua, dan lintas bangsa. Selain
itu, terbuka pula peluang untuk
melakukan komputasi yang rumit dengan menggunakan superkomputer yang
canggih, tanpa harus melakukan investasi besar - besaran dalam bidang teknologi
informasi
Grid computing menjadi suatu hal yang menjanjikan bagi
perusahaan disebabkan oleh 3 hal, yaitu:
1. Lebih hemat biaya dalam penggunaan sejumlah tertentu sumber
daya komputer,
2. Sebagai cara untuk memecahkan masalah yang mungkin tidak
dapat dipecahkan tanpa sejumlah besar daya komputasi, dan
3. Karena menunjukkan bahwa sumberdaya dari banyak komputer
dapat kooperatif dan dimanfaatkan secara sinergis, serta dikelola sebagai
sebuah kolaborasi mencapai tujuan bersama
Kekurangan Grid Computing
Kekurangan
pada grid computing yang lebih saya tekankan disini adalah mengenai hambatan
yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid
computing. Hambatan-hambatan tersebut adalah sebagai berikut :
1. Manajemen institusi
yang terlalu birokratis menyebabkan mereka enggan untuk fasilitas yang
dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yang lebih
besar bagi masyarakat luas.
2. Masih sedikitnya sumber daya manusia yang kompeten dalam mengelola grid computing.
3. Kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun
user non teknisi mengenai manfaat dari grid computing itu sendiri.
KONSEP DASAR VIRTUALISASI
Virtualisasi
adalah sebuah teknik yang saat ini banyak diterapkan untuk memenuhi kebutuhan
TI yang semakin tinggi namun diikuti dengan tuntutan untuk mengefisiensikan
biaya yang digunakan semaksimal mungkin.
Virtualisasi adalah teknologi yang telah diterapkan secara luas saat ini
dengan dampak peningkatan operasional dan finansial yang positif. Virtualisasi
adalah konsep dimana akses ke sebuah hardware seperti server diatur sehingga
beberapa operating system (guest operation system) dapat berbagi sebuah
hardware. Tujuan dari virtualisasi
adalah kinerja tingkat tinggi, ketersediaan, keandalan, ketangkasan, atau untuk
membuat dasar keamanan dan manajemen yang terpadu.
Virtualisasi
memungkinkan kita untuk berbagi hardware untuk digunakan beberapa sistem
operasi. Virtualisasi dapat membuat sebuah tempat penyimpanan tunggal yang
besar terlihat menjadi beberapa tempat penyimpanan dengan ukuran yang lebih
kecil.
Setiap
perusahaan memiliki tujuan yang berbeda mengapa menerapkan virtualisasi, salah
satu tujuan yang ingin dicapai perusahaan dapat merupakan salah satu dari hal
berikut :
·
Memungkinkan semua
device yang terhubung dengan jaringan untuk mengakses aplikasi melalui
jaringan, bahkan jika aplikasi tidak pernah dirancangan untuk dapat bekerja di
device tersebut.
·
Isolasi beban
perkerjaan atau aplikasi yang satu dengan yang lainnya untuk meningkatkan
keamanan dan kemudahan pengelolaan lingkungan.
·
Isolasi aplikasi dari
sistem operasi, memungkinkan aplikas untuk tetap berfungsi meskipun dirancang
untuk sistem operasi dengan tipe yang berbeda
·
Isolasi aplikasi dari
sistem operasi, memungkinkan sebuah aplikasi untuk bekerja di sistem operasi
yang asing
·
Meningkatkan jumlah
orang yang dapat didukung oleh aplikasi, dengan mengijinkan untuk menjalan
aplikasi dari mesin-mesin yang berbeda secara bersamaan
·
Mengurangi waktu yang
diperkukan untuk menjalankan apliksi, dengan memisahkan data atau aplikasi itu
sendiri dan menyebar pekerjaan di beberapa sistem
·
Mengoptimalkan
penggunaan sistem tunggal
·
Meningkatkan keandalan
atau ketersediaan dari aplikasi atau beban kerja dengan pengulangan
Beberapa peralatan komputer
dapat divirtualisasikan. Contoh peralatan komputer yang dapat divirtualisasikan
adalah
·
Server. Mulai dari
perspektif akses dan manajemen, sebuah server fisik tunggal dapat menjadi
beberapa server yang biasa disebut dengan virtual server atau virtual machine
(VM)
·
Desktop. Mirip dengan
virtualisasi server, virtualisasi desktop dapat berarti dua hal. Yang pertama,
memungkinkan pengguna untuk menjalankan beberapa sistem operasi desktop (Apple
Mac OS dan Microsoft Windows OS) di dalam komputer yang sama. Yang kedua
virtualisasi memungkinkan data dan layanan yang dimiliki oleh pengguna
diletakkan di komputer yang digunakan bersama dengan data dan layanan milik
orang lain.
·
Storage. Satu tempat
penyimpanan fisik dapat terlihat menjadi beberapa driver virtual. Dengan kata
lain, dengan menggunakan windows yang terpisah di console manajemen yang umum,
administrator IT dapat memperlakukan drive virtual seperti drive fisik.
·
Application. Saat
memvirtualisasi, aplikasi yang ditulis untuk sebuah lingkungan sistem operasi
dapat dijalankan di lingkungan operasi yang lain untuk meningkatkan kecocokan
aplikasi dan kemudahan pengelolaan. Operasi akan diarahkan ke sistem operasi
yang sesuai.
·
Network. Di dalan
jaringan, sebuah router fisik dapat mendukung beberapa, alamat IP untuk membuat
router virtual. Sama seperti sebuah switch Ethernet fisik dapat mendukung
beberapa alamat MAC (media access control) untuk membuat switch virtual. Sebuah
hardware fisik dapat dibagi menjadi beberapa router atau switch virtual untuk
mengurangi biaya.
Distributed Computing
Pengertian
Komputasi
terdistribusi adalah bagian dari bidang ilmu komputer, yang menjelaskan tentang
studi didistribusikan sistem. Sebuah sistem terdistribusi adalah sebuah sistem
perangkat lunak, yang terletak pada komputer jaringan komunikasi dan
mengkoordinasi dengan menggunakan pesan. Komponen dalam interaksi satu dengan
lainnya bertujuan untuk mencapai tujuan yang sama.
Tujuan dan Keuntungan
Tujuan
utama dari sistem komputasi terdistribusi adalah untuk menghubungkan setiap
pengguna dengan sumber daya yang terpisah secara fisik ke dalam suatu sistem
dengan menggunakan cara yang terkoordinasi. Dan dengan memerlukan kapasitas
yang lebih besar dari kapasitas individual komponennya.
Openness
merupakan properti dari sistem terdistribusi dimana setiap sub-sistem secara
terus-menerus terbuka untuk berinteraksi dengan sistem yang lain. Salah satu
masalah yang dihadapi dalam usaha menyatukan sumber daya yang terpisah ini
antara lain adalah skalabilitas, dapat atau tidaknya sistem tersebut
dikembangkan lebih jauh untuk mencakup sumber daya komputasi yang lebih banyak.
Konsekuensinya, sistem
terdistribusi terbuka memberikan beberapa tantangan berikut:
·
Monotonicity.
Sesuatu yang telah
dipublikasikan dalam sistem terbuka (open system) maka tidak dapat diambil
kembali.
·
Pluralism.
Sub-sistem-subsistem berbeda
dalam sistem open distributed dapat mempunyai informasi yang berbeda, dan
mungkin menyebabkan konflik. Tidak ada pengatur kebenaran sentral dalam sistem
open distributed.
·
Unbounded
nondeterminism.
Subsistem-subsistem dapat naik
dan turun, dan link komunikasi dapat masuk dan keluar antar sub-sistem dalam
sistem open distributed. Karena itu, waktu yang diperlukan untuk menyelesaikan
suatu operasi tidak dapat dibatasi dan dipastikan.
Kelemahan dan Kerugian
Jika
tidak direncanakan dengan tepat, suatu distributed system dapat menurunkan
reliabilitas total dari komputasi jika ketidak-tersediaan dari suatu node dapat
menyebabkan gangguan bagi node-node lain. Troubleshooting dan diagnosing
terhadap masalah dalam distributed system dapat menjadi lebih sulit, karena
perlu analisis yang berkaitan dengan node jauh atau menginspeksi komunikasi
antar node di dalam sistem.
Banyak
tipe komputasi tidak cocok bagi lingkungan terdistribusi, biasanya yang
berhubungan dengan jumlah komunikasi jaringan atau sinkronisasi yang dibutuhkan
antar node. Jika bandwidth, latency, atau persyaratan komunikasi begitu
signifikan, maka tidak ada keuntungan dari distributed computing dan kinerja
dapat lebih burukk daripada lingkungan non-distributed.
Arsitektur
Terdapat
banyak arsitektur dari perangkat keras dan perangkat lunak yang sangat
bervariasi dan digunakan untuk distributed computing atau komputasi
terdistribusi. Pada tingkat yang rendah, perlu adanya penghubung antara CPU
dengan CPU lainnya yang berjumlah banyak. Pada tingkat yang lebih tinggi perlu
dibutuhkannya interkoneksi untuk menghubungkan CPU yang ada dengan sistem
komunikasi
Arsitektur
umun yang digunakan oleh Distributed Computing atau Komputasi Terdistribusi
yaitu sebagai berikut :
1. Client-server : klien
menghubungi server untuk pengambilan data, kemudian server memformatnya dan
menampilkannya ke pengguna.
2. 3-tier architecture :
Kebanyakan aplikasi web adalah 3-Tier.
3. N-tier architecture :
N-Tier biasanya menunjuk ke aplikasi web yang menyalurkan lagi permintaan
kepada pelayanan enterprise. Aplikasi jenis ini paling berjasa bagi
kesuksesanserver aplikasi.
4. Tightly coupled (clustered)
: biasanya menunjuk kepada satu set mesin yang sangat bersatu yang menjalankan
proses yang sama secara paralel, membagi tugas dalam bagian-bagian, dan
kemudian mengumpulkan kembali dan menyatukannya sebagai hasil akhir.
5. Peer-to-peer : sebuah
arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan
tertentu atau mengatur sumber daya dalam jaringan. Dan semua kewajiban dibagi
rata ke seluruh mesin, yang dikenal sebagai peer.
6. Space based : Mengacu ke
suatu infrastruktur yang membuat ilusi atau virtualisasi dari satu ruang-alamat
(address-space) tunggal. Data secara transparan direplikasi sesuai dengan
kebutuhan aplikasi.
7. Mobile code : berdasarkan
prinsip arsitektur mendekatkan pemrosesan ke sumber data
8. Replicated repository : Di
mana repository dibuat replikanya dan disebarkan ke dalam sistem untuk membantu
pemrosesan online/offline dengan syarat keterlambatan pembaharuan data dapat
diterima.
Map Reduce
Definisi
Setiap
istilah perlu definisi, dan harus ada kesepakatan akan definisi tersebut biar
tidak terjadi salah pengertian ataupun salah paham diantara para pengguna
istilah tersebut. MapReduce pun punya definisi. 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.
Desain dan Struktur, MapReduce itu sederhana.
Dari
definisinya, MapReduce mungkin terkesan sangat ribet. Untuk memproses sebuah
data raksasa, data itu harus dipotong-potong kemudian dibagi-bagikan ke tiap
komputer dalam suatu cluster. Lalu proses Map dan proses Reduce pun harus
dibagi-bagikan ke tiap komputer dan dijalankan secara paralel. Terus hasil
akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan merepotkan.
Beruntunglah,
MapReduce telah didesain sangat sederhana alias simple. 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.
Program
yang memuat kalkulasi yang akan dilakukan dalam proses Map disebut Fungsi Map,
dan yang memuat kalkulasi yang akan dikerjakan oleh proses Reduce disebut
Fungsi Reduce. Jadi, seorang programmer yang akan menjalankan MapReduce harus
membuat program Fungsi Map dan Fungsi Reduce.
Fungsi
Map bertugas untuk membaca input dalam bentuk pasangan Key/Value, lalu
menghasilkan output berupa pasangan Key/Value juga. Pasangan Key/Value hasil
fungsi Map ini disebut pasangan Key/Value intermediate. Kemudian, fungsi Reduce
akan membaca pasangan Key/Value intermediate hasil fungsi Map, dan
menggabungkan atau mengelompokkannya berdasarkan Key tersebut. Lain katanya,
tiap Value yang memiliki Key yang sama akan digabungkan dalam satu kelompok.
Fungsi Reduce juga menghasilkan output berupa pasangan Key/Value.
Untuk
memperdalam pemahaman, mari kita simak satu contoh. Taruhlah kita akan membuat
program MapReduce untuk menghitung jumlah tiap kata dalam beberapa file teks
yang berukuran besar. Dalam program ini, fungsi Map dan fungsi Reduce dapat
didefinisikan sebagai berikut:
map(String key, String value):
//key : nama file teks.
//value: isi file teks tersebut.
for each word W in value:
emitIntermediate(W,"1");
reduce(String key, Iterator values):
//key : sebuah kata.
//values : daftar yang berisi hasil
hitungan.
int result = 0;
for each v in values:
result+=ParseInt(v);
emit(AsString(result));
Hasil
akhir dari program ini adalah jumlah
dari tiap kata yang terdapat dalam file teks yang dimasukkan sebagai input
program ini.
NoSQL
Apa Itu noSQL Databases?
Database
noSQL adalah Database yang tidak memiliki perintah SQL dan konsep
penyimpanannya semistuktural atau tidak struktural dan tidak harus memiliki
relasi seperti layaknya tabel-tabel MySQL.
Tujuan
dari penggunaan database noSQL adalah untuk model data spesifik dan memiliki
skema fleksibel dalam membuat aplikasi modern. Kebanyakan dalam beberapa kasus
penggunaan Database noSQl berfungsi dalam pengembangan real time application.
Cara
kerja database noSQL yakni dengan menggunakan berbagai model database untuk
mengelolah dan mengakses data, seperti document, key-value, grapik, in-memory
dan search-engine.
Kita akan mengulas beberapa
model database noSQL diatas.
Document,
mendefenisikan database sebagai dokumen artinya penyimpanan data dan proses
manipulasinya dalam bentuk objek dokument. Contoh objek dokument yang sering
diterapkan dalam pemograman adalah format Json. Konsep dari Json merupakan
konsep data yang efesien dalam pembangunan aplikasi karena Json memiliki sifat
yang fleksible, semi struktur dan hirarki. Sehingga memungkinkan program akan
lebih mudah dikembangkan karena document akan menyusaikan penyimpanan data
berdasarkan kebutuhan dari aplikasi. Berikut ini adalah contoh document dengan
konsep data Json.
Key-value,
defenisi database dengan key-value adalah penyimpanan data dengan dengan metode
key-value (nilai kunci) sebagai tempat akses data-data. Contoh database yang
manganut konsep key-value adalah dyamondDB.
Grapik, database jenis grafik
menggunakan node sebagai entitas data dan edge sebagai hubungan antar entitas.
Setiap edge memiliki node awalan dan node akhiran. Edge juga menggambarkan
hubungan antara oratua-anak, kepemilikan, tindakan dan lain sebagainya. Tidak
ada batasan jumlah suatu node untuk terhubung dengan node lainnya. Tujuan dari
database jenis grapik ini adalah jejaring media sosial, grafik pengetahuan dan
mesin rekomendasi. Untuk lebih mudah memahi database grafik anda dapat melihat
gambar dibawah ini tentang relasi pertemanan.
In-Memory,
Database model ini bekerja dengan menyimpan data pada memori utama, yang
familiar dengan perangkat keras pasti akan tau apa nama perangakat tersebut?
yah… betul nama perangkatnya adalah RAM (Random Access Memory). Dengan
penyimpanan data didalam RAM maka aksesnya akan sangat cepat sekali. Tidak ada
perangkat disk manapun yang mampu menyaingi kecepatan dari akses langsung ke
memori utama (RAM) sekali pun itu SSD (Solid State Disc). Jika demikian
bagaimana jika perangkat (server) mati tentunya seluruh data akan hilang. Akan
tetapi cara kerja database jenis ini tidak seperti itu sepenuhnya, karna
database dala in-memory dapat disimpan dalam sebuah disc penyimpanan layaknya
MySQL dan Postgres. Database in-memory cara kerja penyimpanan datanya kedalam
sebuah disk yaitu dengan cara pengambilan log dan snapshot. Anda dapat
perhatikan gambar dibawah ini untuk menjelaskan cara kerjanya.
Search-Engine,
bagi anda yang senang berselancar didunia maya tentunya pernah memakai google
untuk mencari suatu informasi yang berupa konten data baik itu berupa text,
gambar, vidio dan lain-lain. Dalam hal ini search-engine database digunakan
pada saat proses pencarian karena penciptaan dari konsep database search-engine
didedikasikan untuk mesin pencari. Cara kerja dari search-engine database
digunakan untuk mencari data yang sangat panjang, besar dan tidak terstruktur
yakni dengan menggunakan index sebagai sumber informasi untuk pengoptimalan
pencarian.
DAFTAR PUSTAKA
https://www.dewaweb.com/blog/cloud-computing/
http://id.m.wikipedia.org/wiki/Komputasi_grid
http://syahrulzzadie.blogspot.com/2014/10/pengertian-cloud-compunting-grid.html?m=1
http://speedradene.blogspot.com/2013/04/grid-pengertiankelebihandan-kekurangan.html?m=1
http://mersannurhakim.blogspot.com/2015/06/apa-itu-grid-computing.html
https://sis.binus.ac.id/2014/10/11/konsep-dasar-virtualisasi/
http://jaisicamm.blogspot.com/2015/02/distributed-parallel-computing.html
http://www.teknologi-bigdata.com/2013/02/mapreduce-besar-dan-powerful-tapi-tidak.html
https://muhammadiqbal.art.blog/2019/08/23/apa-itu-database-nosql-dan-jenis-jenis-database-nosql/
https://www.dewaweb.com/blog/cloud-computing/
http://id.m.wikipedia.org/wiki/Komputasi_grid
http://syahrulzzadie.blogspot.com/2014/10/pengertian-cloud-compunting-grid.html?m=1
http://speedradene.blogspot.com/2013/04/grid-pengertiankelebihandan-kekurangan.html?m=1
http://mersannurhakim.blogspot.com/2015/06/apa-itu-grid-computing.html
https://sis.binus.ac.id/2014/10/11/konsep-dasar-virtualisasi/
http://jaisicamm.blogspot.com/2015/02/distributed-parallel-computing.html
http://www.teknologi-bigdata.com/2013/02/mapreduce-besar-dan-powerful-tapi-tidak.html
https://muhammadiqbal.art.blog/2019/08/23/apa-itu-database-nosql-dan-jenis-jenis-database-nosql/