I.
Pendahuluan
NoSQL database (singkatan dari Not Only
SQL) adalah tipe database yang sangat jauh berbeda dengan konsep – konsep yang
kita kenal seperti RDBMS maupun ODBMS. Perbedaan utamanya sendiri, karena pada NoSQL
kita tidak mengenal istilah relation dan tidak menggunakan konsep schema (schema-less),
yang berarti pada NoSQL masing – masing tabel berdiri sendiri tanpa tergantung
pada tabel lainnya atau bisa dibilang independen. Dalam konsep ODBMS dan RDBMS dimana harus memiliki
struktur tabel, seperti tipe data, panjang ukuran data, dan lainnya yang harus
selalu didefinisikan terlebih dahulu sebelum dilakukannya penyimpanan data,
sangat berbeda dengan konsep NoSQL.
Dalam konsep NoSQL, data bisa disimpan tanpa perlu mendefinisikan tipe data dan
ukurannya terlebih dahulu. Hal ini
menyebabkan data menjadi lebih fleksibel bila programmer ingin melakukan
perubahan di masa mendatang pada source code. Kurang lebih sudah 2 dekade
bahasa SQL digunakan oleh para developer, transaksi data setiap hari semakin
bertambah dan para developer merasakan adanya kekurangan pada bahasa SQL. Salah
satunya adalah pada saat proses data diminta, SQL memerlukan memori yang besar.
Jika database kita kecil hal tersebut tidak masalah, namun jika database kita
besar itu akan mengurangi kinerja dari database kita. Dari latar belakang
kondisi tersebut banyak developer mulai mencari cara untuk mengatasinya, dan
pada tahun 2000 muncul sebuah gerakan yang disebut “noSQL Movement” yang diprakasai
oleh Johan Oskarsson. Pergerakkan ini menghasilkan sebuah mekanisme dimana
untuk mengambil data tidak lagi menggunakan bahasa SQL. NoSQL bukan merupakan
bahasa, NoSQL adalah sebuah mekanisme untuk menyimpan data dan mengambil data
yang dilakukan oleh database kita. NoQSL tidak membutuhkan data model
relational dan bahasa SQL untuk melakukan hal tersebut. NoSQL menggunakan
metadata pada database kita dan memanfaatkan index dari data tersebut.
II.
Contoh Jenis – Jenis Aplikasi Database
NoSQL
a. MongoDB,
merupakan database yang paling populer diantara database NoSQL lainnya. Hal ini
dikarenakan pemasangan maupun penggunaan mongoDB tidaklah sulit bagi
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. MongoDB merupakan database NoSQL
yang document based, yang artinya mongoDB menyimpan data – datanya dalam suatu
dokumen JSON yang disebut BSON (Binary JSON).
b. CouchDB,
merupakan database 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. Basis data
ini juga merupakan proyek open source serta dikembangkan dalam bahasa
pemrograman Erlang.
c. Cassandra
adalah sebuah sistem penyimpanan data terdistribusi untuk menangani jumlah data
yang sangat besar dan terstruktur. Cassandra juga dikembangkan oleh Apache. Kemampuan
Cassandra dalam menyimpan data dengan jumlah yang sangat besar tidak diragukan
lagi, puluhan perusahaan besar telah mempercayakan Cassandra sebagai salah satu
penunjang kerja mereka diantaranya: Facebook, Digg, IBM, Reddit, Rackspace,
Apple, Twitter dan beberapa lainnya. Cassandra juga merupakan aplikasi open
source yang ditulis dalam bahasa Java dengan lisensi Apache License 2.0. Untuk
memproses datanya, Cassandra menggunakan bahasa sendiri yang mirip dengan SQL
yaitu Cassandra Query Language (CQL).
d. Redis
adalah database open source dan merupakan database berbasis key-value paling
populer menurut situs DB-Engines.com. Redis merupakan singkatan dari REmote
DIctionary Server. Database 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. Redis mendukung banyak
bahasa pemrograman seperti ActionScript, C/C++, C#, Clojure, Common LIsp, Dart,
Erlang, Go, Haskell, Haxe, Io, Java, JavaScript (Node.js), Lua, Objective-C,
Perl, PHP, Pure Data, Python, R, Ruby, Scala, Smalltalk, dan Tcl.
e. Riak
merupakan database NoSQL terdistribusi yang menyimpan datanya dalam bentuk
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. Riak pertama kali dirilis pada tanggal 17
Agustus 2009. Basho Technologies merupakan perusahaan yang mengembangkan Riak.
Pada kesempatan kali ini penulis akan
membahas topik mengenai “Pengenalan NoSQL Database: JSON”, khususnya mengenai
JSON yang merupakan bagian terpenting dari NoSQL database.
III.
Karakteristik NoSQL
Berikut adalah beberapa karakterisitik –
karakteristik penting yang dimiliki oleh NoSQL database, antara lain :
a.
Schema-free atau bebas skema dan menjadi
lebih dinamis,
b.
Easy replication support,
c.
Simple API,
d.
Terdistribusi,
e.
Scalable secara horizontal.
IV.
Perbandingan antara SQL dengan NoSQL
Berikut adalah table perbandingan antara
SQL dengan NoSQL :
SQL (Structure Query Language)
|
NoSQL (Not Only SQL)
|
·
Wajib relational dalam menyusun data
·
Setiap table harus di definisikan
·
Standar pada suatu table jelas dan
terstruktur
·
Sifat SQL adalah database yang cenderung
vertikal (atas ke bawah)
·
Untuk memperbesar skala, harus menambah
daya CPU, SSD, RAM dan perangkat keras lainnya pada 1 server
|
·
Tidak memerlukan kriteria relational
dalam menyusun data
·
Tidak perlu mendefinisikan table, karena
menggunakan model graph dan key-value
·
Sifat NoSQL adalah database horizontal
yang semakin melebar ke samping untuk mengikuti perkembangan data pada jenis
yang sama namun terdapat penambahan pada data lain yang tidak dapat dibedakan
dengan data sebelumnya
·
Untuk memperbesar skala, hanya perlu
penambahan server DB yang di cluster untuk load balancing.
|
V.
Apa itu JSON.
JSON atau JavaScript Object Notation
berdasarkan wikipedia adalah sebuah file format standar yang menggunakan
tulisan yang dapat di baca oleh manusia dan mesin untuk melakukan pertukaran
data, yang di dalamnya berisi pasangan
antara key dan value. Berikut adalah penjelasan yang lebih rinci mengenai JSON
:
·
Format pertukaran data tekstual yang sangat
ringan.
·
Sintaksnya sangat sederhana dan jelas untuk
dibaca.
·
Dapat dikenali dan digunakan pada beragam
bahasa pemrograman.
·
Tiap bahasa pemrograman memiliki cara
tersendiri untuk berinteraksi dengan JSON.
·
Dibuat berdasarkan format Object pada
javascript.
·
Digunakan juga untuk file konfigurasi
walaupun tidak disarankan karena JSON tidak support untuk komentar /
dokumentasi, sedangkan file konfigurasi butuh komentar atau dokumentasi.
·
JSON tidak memiliki method.
·
Tipe file JSON memiliki ekstensi .json
·
Format JSON dibuat dan diusulkan oleh
Douglas Crockford.
VI.
Penulisan JSON
Penulisan pada JSON sendiri sangat
sederhana dan lebih mudah untuk di pahami karena cara penulisannya adalah
seperti berikut, { “key” : “value” } dimana key selalu dibungkus menggunakan
kutip dua (“ ”) dan valuenya bisa beragam. Isi dari value nya dapat berisi
seperti berikut :
a) Boolean
- true / false
b) Array
– [“value1”, “value2”, …) dapat berisi
string, int, bahkan object lagi.
c) String
– teks / Unicode, dibungkus menggunakan kutip dua
(“ “)
d) Object
– { “key” : “value” }
e) Number
– integer / float
f) Null
– null
Berikut adalah contoh sederhana dari
penulisan JSON yang telah saya lakukan.
Dan hasilnya seperti pada gambar dibawah
ini :
Dari 2 buah gambar diatas, kita dapat
mengetahui bahwa penulisan dari JSON ini lebih mudah dibuat dan dibaca serta
lebih sederhana karena hanya bermodalkan key dan value tadi.
VII.
Bekerja dengan JSON
Pada bahasa pemrograman PHP terdapat 2 buah
method yaitu json_encode() dan json_decode(). json_encode() untuk mengubah
array atau object yang ada menjadi json agar dapat diakses pengguna lain,
sedangkan json_decode(), pengguna mengambil file json lalu diubah menjadi array
agar lebih mudah di manipulasi. Untuk mengakses
file json dari tempat lain kita dapat menggunakan function file_get_contents().
Berikut adalah contoh penulisannya :
json_encode()
·
Mengubah array associative menjadi JSON
json_decode() & file_get_contents()
·
Membaca file json, lalu mengubahnya menjadi
array associative
Sumber
No comments:
Post a Comment