Minggu, 04 Maret 2018

NoSQL (CouchDB) Penjelasan Hingga Penggunaan (1 Jam Bisa CouchDB)

Maret 04, 2018 // by M Faqih Dulqarnain // No comments

Database NoSQL CouchDB

Assalamu’alaikum Wr.Wb.
Kembali lagi di blog saya. Jika pada kesempatan sebelumnya saya membahas penjelasan tentang Basis data (bisa kalian cek di sini), kemudian dilanjutkan dengan pembahasan database yang berjenis SQL dan NoSQL (bisa kalian cek juga di sini), kali ini saya akan lebih spesifik lagi ke contoh salah satu aplikasi database NoSQL yaitu COUCHDB.

Kenapa saya ambil membahas couchDB? Ada 2 hal yang menjadi faktor mengapa saya membahas tentang ini mulai dari umum tentang basis data hingga spesifik ke contoh database nosql. Faktor pertama adalah mendokumentasikan tugas kuliah saya hehehee... dari pada jadi file yang begitu saja di dalam laptop, mending saya posting dan bagikan lagipula menurut saya jenis database ini cukup mudah dipelajari dan diaplikasikan untuk beberapa kasus yang ada. Kedua adalah karena ingin memberikan informasi lebih lanjut ke pembaca sekalian bahwa tidak semata database itu SQL yang kita kenal, namun ada juga jenis database nosql yang populer dan dapat dipelajari untuk diaplikasikan ke contoh kasus yang ada. Patut dipelajari dan patut dipertimbangkan.

Saat ini juga memang masih sedikit artikel yang membahas tentang jenis-jenis database nosql seperti ini, naah karena itu saya juga berharap artikel ini bisa menjadi lebih bermanfaat untuk pengetahuan kita kedepannya.

Mari kita simak bersama. Semoga bermanfaat bagi kita semua.

CouchDB

Dikutip dari website Codepolitan, CouchDB merupakan salah satu database NoSQL berbasis dokumen yang masuk dalam pembinaan Apache Foundation. CouchDB ini merupakan database yang bersifat Open Source. Salah satu database NoSQL yang memiliki konsep sama dengan CouchDB adalah MongoDB. CouchDB juga menjadi salah satu pionir database NoSQL sebelum digandrungi oleh developer di masa kini. CouchDB dibangun menggunakan bahasa pemrograman Erlang yang mengandalkan pada reliabilitas dan konkurensi. CouchDB juga menjadi salah satu basis dalam pengembangan IBM Cloudant, sebuah solusi database berbasis cloud yang ditawarkan IBM kepada enterprise.

Damien Katz adalah yang menciptakan CouchDB pada tahun 2005 saat proyek pengembangan MySQL. Pengambilan nama Couch adalah bersumber dari singkatan cluster of unreliable commodity hardware. Saat itu CouchDB adalah salah satu proyek teratas dari Apache Foundation di tahun 2008 hingga akhirnya di 2009 Damien berhasil membangun perusahaan CouchDB ini dengan nama CouchOne. CouchDB adalah database yang menggunakan perangkat Futon dengan user interface yang sederhana dan sangat mudah membuat developer merancang operasional database. Tak hanya itu, Javascript juga mengambil peran di CouchDB sebagai proses query dalam operasional database.

Saat ini CouchDB memiliki jenis lain yaitu CouchBase yang merupakan versi enterprise dan community dari CouchDB yang masih ditangani langsung oleh Damien dan timnya.

Konsep CouchDB

CouchDB adalah database NoSQL yang dirancang untuk berada dilingkungan kerja dunia website. Hal ini didukung beberapa faktor dasar CouchDB diciptakan.
  • CouchDB adalah basis data yang berbasiskan document oriented.
  • Format penyimpanan data dan pengaplikasiannya adalah format JSON.
  • Karena menggunakan JSON, CouchDB menggunakan Javascript untuk bahasa mengakses datanya.
  • CouchDB menggunakan HTTP sebagai API pendukung karena berbasis Apache.

Jika kita melihat pada logo CouchDB, terdapat 1 kata yang menggambarkan CouchDB, “Relax”. Ataupun ada 1 slogan yang menggambarkan CouchDB dan slogan ini juga ditampilkan pada saat akan memulai CouchDB yang nanti akan kita bahas.
“Apache CouchDB has started. Time to Relax”

Mengapa dikatakan seperti itu...? ini karena alasan utama CouchDB adalah database noSQL yang powerful dan mudah digunakan. Memahami dan mempelajari CouchDB dapat dilakukan dengan mudah secara alamiah bagi kebanyakan orang yang melakukan pekerjaan di dunia Website serta masih cukup mudah juga jika dijelaskan ke orang-orang non-teknis untuk memahaminya.

Dikatakan “relax” juga karena CouchDB mampu menghindari masalah-masalah internal pada server database yang sebagian besar masalah SQL terjadi. CouchDB bersifat penyimpanan cloud yang aman dan mudah diakses. Bahkan jika ada masalah tunggal yang terjadi dikeseluruhan sistem server, request perbaikan tetap akan tertangani dengan baik tanpa mengganggu sistem lainnya yang berhubungan sekalipun dengan trouble yang terjadi. 

Instalasi CouchDB (Windows)

Sebelum kita melakukan proses instalasi, saya jelaskan sedikit tentang perangkat lunak pendukung dari CouchDB yaitu NodeJS sebagai perangkat pendukung untuk bahasa pmerograman Javascript dari sisi server.

Dikutip juga dari Codepolitan tentang NodeJS, adalah sebuah perangkat lunak yang didesain untuk mengembangkan aplikasi berbasis web dan ditulis dalam sintaks bahasa pemrograman JavaScript. Bila selama ini kita mengenal JavaScript sebagai bahasa pemrograman yang berjalan di sisi client/browser saja, maka Node.js ada untuk melengkapi peran JavaScript sehingga bisa juga berlaku sebagai bahasa pemrograman yang berjalan di sisi server, seperti halnya PHP, Ruby, Perl, dan sebagainya. Node.js dapat berjalan di sistem operasi Windows, Mac OS X dan Linux tanpa perlu ada perubahan kode program. Node.js memiliki pustaka server HTTP sendiri sehingga memungkinkan untuk menjalankan server web tanpa menggunakan program server web seperti Apache atau Nginx. Untuk lebih jelasnya tentang NodeJS bisa teman-teman baca artikel tentang NodeJS di Codepolitan karena intinya NodeJS ini digunakan sebagai pengganti apache sebagai sisi server.


Balik ke instalasi, berikut ini akan saya jabarkan langkah-langkah instalasi CouchDB versi Windows.
  • Silahkan lakukan akses ke website resmi CouchDB di couchdb.apache.org
  • Selanjutnya langsung saja click Download untuk mendownload versi terbaru dari CouchDB (perhatikan jenis OS kalian dan tipe arsitektur PC/Laptop kalian, x64 atau x86). Namun sebagai catatan, CouchDB versi yang terbaru sampai saat artikel ini diterbitkan, masih mengalami beberapa error jika digunakan sehingga membuat versi terbaru ini belum stabil sepenuhnya. Oleh karena itu, saya menyarankan agar kalian dapat men-download versi sebelum yang terbaru dari CouchDB yang sudah stabil sepenuhnya yaitu versi 2.0.0. Kalian dapat menemukannya di website archive dari apache di sini dan memilih sesuai dengan versi PC/Laptop kalian kemudian pilih versi 2.0.0 (Pilih ekstensi .msi agar bisa diinstal dengan mudah di windows kalian).

  • Setelah di-download, lakukan proses instalasi seperti biasanya proses instalasi program di windows hingga selesai.
  • Setelah proses instalasi selesai, untuk membuka CouchDB ini ada 2 cara; yang pertama kalian dapat membukanya dengan memasukkan alamat ke browser kalian “localhost:5984/_utils/”; atau dengan cara kedua yang sekaligus membuktikan bahwa telah terinstal dengan baik couchDB di perangkat kalian, yaitu dengan membuka menu dan mencari ikon aplikasi Apache CouchDB Fauxton. Jika proses instalasi benar dilakukan, maka tampilan CouchDb akan seperti gambar berikut.

  • Setelah berhasil membuka CouchDB, di apache couchDB tersebut lakukan pengaturan Admin untuk mendapatkan hak akses penuh sama seperti jika kita menggunakan SQL. Pada pembuatan admin ini, isikan username dan password sesuai keinginan kalian dan disarankan yang mudah untuk diingat.
  • Setelah melakukan pembuatan Admin, kita belum sepenuhnya dapat menggunakan CouchDB, kita harus melakukan verifikasi CouchDB yang kita instal. Gunanya adalah untuk memastikan sistem menerima semua data dari CouchDB yang terinstal agar dapat kita gunakan dan kita dapat menggunakan semua fitur yang ada di couchDB. (Seringnya sih terverifikasi semua, kalo ada yang tidak terverifikasi silahkan uninstal, dan instal ulang kembali couchDB)
  • Setelah terverifikasi semua, CouchDB berarti siap untuk kita gunakan.

Menggunakan CouchDB


Setelah tadi kita melakukan proses instalasi, kini saatnya kita dapat menggunakan CouchDB. Di sini saya akan menjabarkan langkah-langkah sederhana yang dapat kita lakukan untuk memulai menggunakan database hingga menggunakannya di projek website kita secara sederhana.
  • Memulai membuat database di CouchDB dengan klik menu database dan klik “Create Database” di kanan atas. Pada contoh ini, dibuat database dengan nama “mycompany”.

  • Setelah database berhasil dibuat, pengguna dapat langsung menambahkan dokumen data baru. CouchDB adalah database NoSQL yang berbasis dokumen dan berwujud JSON. JSON sendiri adalah  adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3-Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. 

  • Berikut adalah contoh isi data untuk database CouchDB. 

  • Setelah beberapa data dibuat, maka pengguna dapat membuat “view” dengan klik all documents dan klik “new view”.

  • Pengguna mengisikan nama design dan mengisikan value tampilan yang akan menjadi dokumen JSON. Setelah dibuat view pada database maka tampilan fungsi JSON yang siap digunakan terlihat seperti gambar berikut. 

  • Selanjutnya kita akan menggunakan hasil JSON dari couchDB ke dalam projek web.
  • Pertama siapkan folder pada local disk C; dan buat folder Project dan folder “couchcompany”. Berikut dalam dilihat dari gambar-gambar berikut.

  • Setelah itu dapat kita buat project baru dengan menggunakan menggunakan cmd dengan memanfaatkan tool Node.js sebagai berikut.

  • Dengan menggunakan Node.js dari NPM source code untuk menggunakan JSON ini sudah tersedia lengkap dan siap digunakan. Kegunaan node.js adalah untuk membangun API baru untuk sebuah project. API ini akan menjadi server mini pada perangkat dengan menggunakan perintah dari CMD.
  • Dokumentasi untuk mengetahui source code dari node.js bisa dilihat pada link berikut. “https://www.npmjs.com/package/node-couchdb”
  • Berikut adalah data hasil JSON yang telah dimasukkan ke dalam web.

  • Setelah berhasil mendefinisikan JSON ke dalam web app, dapat dibuat secara sederhana dari web app, proses input data dengan menggunakan CouchDB. Hasil dari pembuatan web app sederhana tersebut memiliki sistem dari halaman web, mengirim data JSON untuk disimpan ke database dan dari CouchDB akan kembali mengirim hasil data yang juga berupa JSON.


Untuk lebih jelasnya disertai demonstrasi lengkap dari penjabaran yang saya jelaskan mulai dari awal CouchDB, instalasi, hingga penggunaan, teman-teman dapat melihatnya secara lebih detail di video berikut:


Dalam video tersebut, saya dan teman-teman saya menjabarkan apa yang tertulis di artikel ini secara lebih detail. Selain itu, dalam video tersebut juga saya dan teman-teman saya ada menjelaskan hal-hal yang tidak kami jelaskan pada artikel ini karena mungkin panjangnya cerita jika dijabarkan dalam tulisan maupun karena mungkin lebih enak dibicarakan daripada dijelaskan secara tulisan.

Penutup

Demikian postingan kali ini. Saya berharap apa yang saya sampaikan dapat bermanfaat dan menambah wawasan kita seputar dunia database. Segala yang ada dalam artikel ini, juga saya terangkan dalam bentuk video agar teman-teman lebih mudah memahaminya. Lebih kurangnya mohon dimaafkan dan bila ada kesalahan mohon koreksi saya di kolom komentar. Sekian dari saya,

Terima Kasih dan Wassalamu’alaikum Wr.Wb.

Sabtu, 24 Februari 2018

SQL dan NOSQL (Pengertian dan Pembahasan)

Februari 24, 2018 // by M Faqih Dulqarnain // No comments

Assalamu’alaikum Wr.Wb...

Selamat datang kembali pada blog saya, para pembaca sekalian. Pada postingan kali ini, saya akan memberikan informasi lain, namun masih berkaitan sekali dengan postingan sebelumnya tentang Basis Data. Jika pada postingan sebelumnya saya membahas seputar pengertian dan pembahasan tentang apa itu basis data, kali ini saya akan lebih spesifik (bisa dikatakan) jenis dari bahasa basis data.

SQL dan NoSQL

Di dunia programmer, untuk basis data kita akan lebih sering menggunakan model SQL atau yang merupakan singkatan dari (Structure Query Language). SQL sendiri adalah sekumpulan perintah khusus yang digunakan untuk mengakses data dalam database yang relational. SQL merupakan bahasa komputer yang mengikuti standar (American National Standart Institute) atau ANSI untuk memanajemen database realtional. Dengan SQL kita dapat melakukan akses, melihat data, mengambil data, menambah, mengubah dan menghapus data dari database yang sudah dibuat.
Terdapat 3 (tiga) jenis perintah SQL, yaitu DDL, DML dan DCL.
  • DDL atau Data Definition Language. DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal ini database dan table. Perintah SQL yang termasuk dalam DDL antara lain : CREATE, ALTER, RENAME, DROP.
  • DML atau Data Manipulation Language. DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain : SELECT, INSERT, UPDATE, DELETE.
  • DCL atau Data Control Language. DCL merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user, baik terhadap server, database, table maupun field. Perintah SQL yang termasuk dalam DCL antara lain : GRANT, REVOKE.       

SQL adalah bahasa dalam basis data yang hampir selalu kita gunakan. Namun, ada lawan dari SQL yang agak jarang kita kenal dalam merancang basis data. Bahkan mungkin bisa saya katakan referensi tentang lawan dari SQL ini, masih belum banyak beredar. Lawan tersebut adalah NoSQL (Not Only SQL).

NOSQL menurut Wikipedia adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NOSQL mungkin tidak membutuhkan skema tabel dan umumnya menghindari operasi join dan berkembang secara horizontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang di dalamnya mencakup sistem menejemen database relasional. NOSQL adalah database generasi terbaru yang mengarahkan kepada database yang tidak berelasi (non-relational), dapat disebarkan kepada siapapun (open-source) dan berskala horizontal (horizontal scale).

NoSQL sangat berguna pada data-data yang terus-menerus berkembang, dimana  data tersebut sangat kompleks sehingga sebuah database relational tidak lagi bisa mengakomodir. Salah satu bentuknya adalah ketika suatu data saling berhubungan satu sama lain, maka akan muncul proses duplikasi data. Dimana data saling memanggil ke beberapa permintaan, tambahan data baru, perubahan data, dan lain-lain dengan key yang sama. Karena faktor hubungan antar data yang sama terjadi terus-menerus, mendorong faktor redudansi data, data menjadi berlipat-lipat, dan pada akhirnya akan menyebabkan crash pada database berkonsep RDBMS (Relational Database Manajement System).

Harus ada cara lain untuk menanggulangi masalah ini,  dan NoSQL lah solusinya. NoSQL menyederhanakan proses yang terjadi dalam sistem basis data relasional. Dimana hal-hal yang menyebabkan redudansi, dihilangkan sehingga trafik server akan seimbang. Penyederhanaan proses ini memungkinkan data direplikasi di banyak server secara mudah dan menjamin ketersediaan data.


Contoh nyata dari pengguna NoSQL adalah situs jejaring sosial facebook.com. Facebook menggunakan database NoSQL untuk menanggulangi kedinamisan data yang terus berkembang semakin besar. Tidak akan bisa server SQL biasa menangani data seluruh facebook secara relational, NoSQL yang digunakan facebook dapat mengakomodir dinamisnya data yang berkembang menjadi tetap mudah di akses dan ringan dijalankan walau digunakan oleh sekian banyak orang.

Konsep Penyimpanan NoSQL

Sebagian besar sistem NOSQL pada masa awal tidak berusaha untuk memberikan atomicity, konsistensi, isolasi dan daya tahan jaminan, bertentangan dengan praktik yang berlaku di antara sistem database relasional. Namun di kemudian hari, beberapa database NOSQL dengan pembaruan terkini sudah mampu mengintegrasikan database yang non-relasional ke dalam bentuk database relasional sehingga dapat mempermudah pengguna yang masih belum akrab dengan bahasa standar yang diterapkan NOSQL.

Dilihat dari cara penyimpanan data saja basis data NOSQL tersebar dari cara penyimpanan :
  • Key-value based (disimpan dalam bentuk kunci-isi berpasangan)
  • Document based (disimpan dalam bentuk dokumen-dokumen)
  • Column based (disimpan dalam bentuk kolom-kolom)
  • Graph based (disimpan dalam bentuk grafik atau diagram)

Perbedaan SQL dan NoSQL

Berikut adalah gambaran perbedaan lingkup kerja antara NoSQL dan SQL dalam dunia database.

Dari gambar yang telah diperlihatkan sebelumnya, secara garis besar perbedaan antara SQL dengan NoSQL adalah sebagai berikut:


SQL (Structure Query Language)
NoSQL (Not Only SQL)
·     Wajib relational dalam menyusun data
·     Setiap tabel harus didefinisikan
·    Standar pada suatu tabel 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 tabel, bahkan untuk beberapa NoSQL, tidak memerlukan tabel yang jelas (model graph dan Key-value)
·      Tidak ada standar yang harus diikuti untuk menyusun data pada tabel bahkan data yang tersusun bisa secara dinamis berkembang tanpa perlu penyusunan standar tabel
·   Sifat NoSQL adalah database horizontal yang semakin melebar ke samping utnuk 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


Contoh Jenis-jenis Aplikasi Database NoSQL

Secara singkat, berikut ini juga akan saya sampaikan beberapa database NoSQL yang populer digunakan di dunia.

  • MongoDB
MongoDB merupakan basis data yang paling populer diantara basis data NoSQL lainnya untuk saat ini. 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.

MongoDB merupakan basis data NoSQL yang document based. Ia menyimpan data-datanya dalam suatu dokumen JSON yang disebut BSON (Binary JSON).

Dikembangkan sejak tahun 2009, mongoDB sekarang telah mendukung hampir semua bahasa pemrograman untuk dapat berinteraksi dengan mongoDB. Tak hanya bahasa pemrograman, beragam framework terkenal pun sudah dapat menggunakan mongoDB untuk menyimpan datanya sehingga kita tidak akan kesulitan untuk mengintegrasikan aplikasi yang kita buat dengan basis data ini.

  • 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.

Basis data ini juga merupakan proyek open source serta dikembangkan dalam bahasa pemrograman Erlang oleh karena itu kita bisa ikut berkontribusi dalam pengembangan CouchDB agar basis data ini lebih baik.

  • 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. 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).

  • Redis
Redis adalah basis data open source dan 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.

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.

  • 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.

Rilis pertama Riak muncul pada tanggal 17 Agustus 2009. Basho Technologies merupakan perusahaan yang mengembangkan Riak.

  • 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.

Dalam menambahkan maupun mengambil data, Neo4j memiliki bahasa sendiri yang disebut Cypher.

Neo4j ditulis dalam bahasa Java dengan lisensi GPL V3 oleh Neo Technologies artinya Neo4j termasuk basis data yang open source.

  • 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.

OrientDB menawarkan dua edisi yakni Community Edition yang tersedia secara gratis dan Enterprise Edition yang merupakan aplikasi komersial dikembangkan oleh tim yang sama yang mengembangkan engine OrientDB.

Jika anda pernah menggunakan mongoDB maupun Neo4j, anda bisa melihat perbedaan diantara OrientDB vs mongoDB dan OrientDB vs Neo4j disitus resminya.

OrientDB dapat digunakan bersama JavaScript, .NET, node.js, php, Scala, Ruby, Python, C, Clojure, Java, dan Perl.

Penutup

Masih banyak contoh lainnya database NoSQL yang populer digunakan, namun saya rasa yang telah saya jabarkan adalah database NoSQL yang lebih populer dari yang lainnya. Sumber-sumber untuk referensi database NoSQl ini, memang tidak sebanyak database SQL, namun jika menurut pendapat saya, untuk mempelajarinya tidaklah sulit.

Gunakanlah ketelitian dan kecermatan anda dalam memilih akan menggunakan database apa untuk project anda. Semua project memang bisa menggunakan database SQL. Namun, tidak semua project juga dapat dikerjakan secara SQL utuh. NoSQL adalah alternatif pilihan ketika data yang dibangun, adalah data besar dengan tingkat kompleksitas rumit dan mudah berkembang kapan saja.

Demikian postingan kali ini. Semoga memberikan manfaat yang cukup bagi pembaca sekalian. Pada postingan berikutnya nanti saya masih akan berencana untuk menjelaskan 1 contoh aplikasi database NoSQL yang menurut pemahaman saya, cukup mudah digunakan secara lebih detail... Yaaa hitung-hitung menambah referensi penggunaan salah satu contoh database NoSQL...
Jadi silahkan ikuti terus blog ini.
Semoga ilmu yang diberikan, bermanfaat. Kurang lebihnya mohon dimaafkan...
Dan Terima kasih sudah membaca di blog ini.
Wassalamu’alaikum Wr.Wb...

Segala sumber yang didapat pada postingan kali ini adalah sebagai berikut:




Selasa, 20 Februari 2018

Basis Data (Database) Pengertian dan Pembahasan

Februari 20, 2018 // by M Faqih Dulqarnain // No comments

Assalamu’alaikum pembaca sekalian.
Kali ini saya akan memberikan informasi yang Insya Allah bermanfaat bagi pembaca sekalian yang membutuhkan. Sebelumnya mohon maaf, karena tema postingan di blog ini akan sangat random. Setidaknya akan selalu konsisten seperti yang tertera pada halaman “About” yaitu membahas seputar kehidupan, dunia IT, dan travelling yang saya lakukan.


Kali ini saya akan membahas tentang Database. Nantinya postingan ini akan bersambung karena ada yang ingin saya sampaikan kepada pembaca sekalian. Kritik dan saran sangat dibutuhkan bila saat penyampaian, ada kesalahan. Selamat membaca...


Database (Basis Data)

Dimulai dengan kalimat pengantar yang membahana.
Teknologi yang semakin maju pada zaman sekarang ini, semakin memudahkan setiap manusia dalam menjalani segala aktifitas. Mulai dari perseorangan, sampai suatu organisasi menikmati segala tingkat kemajuan teknologi sekarang ini. Kemajuan teknologi ini diiringi dengan semakin banyaknya informasi yang tersampaikan atau dibuat seseorang untuk orang lain. Berkembangannya informasi ini bermula dari data-data mentah yang siap diolah untuk suatu tujuan tertentu. Karena hal tersebut, sering bahkan selalu saja data yang diperoleh haruslah terorganisir sedemikian rupa untuk menjadi informasi yang utuh. Naah... dari sinilah akan dibahas yang namanya Database atau Pangkalan data yang menjadi cabang ilmu pengetahuan yang membahas tentang organisasi sekumpulan data.

Data

Dimulai secara singkat membahas tentang data. Menurut beberapa ahli yang saya baca :
  • Data adalah sekumpulan baris fakta yang mewakili peristiwa yang terjadi pada organisasi atau pada lingkungan fisik sebelum diolah ke dalam format yang bisa dimengerti dan digunakan manusia. (Raymon McLeod, Jr )
  • Data yaitu kumpulan fakta-fakta kasar yang menunjukan kejadian yang terjadi dalam organisasi atau lingkungan fisik sebelum fakta tersebut diolah dan ditata mejadi bentuk yang dapat dipahami. (Kenneth C. Laudon. Jane P. Louden)

Basis Data dan Konsepnya


Masuk ke bagian utama pembahasan kali ini yaitu, pengertian database adalah kumpulan data-data yang tersimpan, tersusun, dan saling terhubung satu sama lain pada suatu komputer serta digunakan perangkat lunak untuk mengakses maupun mengelolanya sehingga dapat dihasilkan informasi yang berguna. Atau secara singkatnya definisi database yaitu kumpulan data yang tersimpan pada suatu komputer dan saling terhubung antara satu sama lain sehingga dapat digunakan untuk tujuan tertentu.

Saya sampaikan juga, pengertian database menurut beberapa ahli yang saya baca sebagai berikut:
  • Sekumpulan data organisasi untuk melayani banyak aplikasi secara efisien dengan memusatkan data dan mengendalikan redundansi data. (Kenneth C. Laudon. Jane P. Louden, 2010).
  • Menurut S. Attre, Database yaitu sebuah koleksi data-data yang saling berinteraksi yang ada dalam suatu organisasi atau enterprise dengan macam-macam penggunaan.
  • Menurut Chou, Database merupakan kumpulan informasi yang bermanfaat yang diorganisasikan dalam tatacara yang khusus sehingga dapat digunakan untuk berbagai kebutuhan suatu organisasi.
  • Kumpulan file-file yang saling berelasi, relasi tersebut ditunjukkan dengan kunci dari tiap file yang ada untuk digunakan dalam satu lingkup perusahaan, instansi (Kristanto, 1994).
Dalam wikipedia menyebutkan, Pangkalan data atau basis data (bahasa Inggris: database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.

Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan objek yang diwakili suatu basis data, dan hubungan di antara objek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan di mana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.

Jadi secara konsep basis data atau database adalah kumpulan dari data-data yang membentuk suatu berkas (file) yang saling berhubungan (relation) dengan tatacara yang tertentu untuk membentuk data baru atau informasi. Atau basis data (database) merupakan kumpulan dari data yang saling berhubungan (relasi) antara satu dengan yang lainnya yang diorganisasikan berdasarkan skema atau struktur tertentu. Pada komputer, basis data disimpan dalam perangkat hardware penyimpan, dan dengan software tertentu dimanipulasi untuk kepentingan atau keguanaan tertentu. Hubungan atau relasi data biasanya ditunjukkan dengan kunci (key) dari tiap file yang ada. Data merupakan fakta atau nilai (value) yang tercatat atau merepresentasikan deskripsi dari suatu objek. Data yang merupakan fakta yang tercatat dan selanjutnya dilakukan pengolahan (proses) menjadi bentuk yang berguna atau bermanfaat bagi pemakainya akan membentuk apa yang disebut informasi. Bentuk informasi yang kompleks dan terintegrasi dan pengolahan sebuah database dengan komputer akan digunakan untuk proses pengambilan keputusan pada manajemen akan membenuk Sistem Informasi Manajemen (SIM), data basis data merupakan item terkecil dan terpenting untuk membangun basis data yang baik dan valid.

Sifat dan Tujuan Basis Data

Sifat dan tujuan dari database
Data dalam basis data bersifat integrated dan shared:
  • Terpadu (integrated), berkas-berkas data yang ada pada basis data saling terkait (terjadi dependensi data);
  • Berbagi data (shared), data yang sama dapat dipakai oleh sejumlah pengguna dalam waktu yang bersamaan. Sering dinamakan sebagi sistem multiuser

Data merupakan suatu sumber yang sangat berguna bagi hampir disemua organisasi. Dengan tersedianya data yang melimpah, maka masalah pengaturan data secara efektif menjadi suatu hal yang sangat penting dalam pengembangan sistem informasi manajemen. Oleh karena itu, tujuan dari diadakannya pengaturan data adalah sebagai berikut:
  • Menyediakan penyimpanan data untuk dapat digunakan oleh organisasi saat sekarang dan masa akan datang.
  • Sebagai cara pemasukan data sehingga sehingga memudahkan tugas operator dan menyangkut pula waktu yang diperlukan oleh pemakai untuk mendapatkan data serta hak-hak yang dimiliki terhadap data yang ditangani
  • Pengendalian data untuk setiap siklus agar data selalu up to date dan dapat mencerminkan perubahan spesifik yang terjadi di setiap sistem.
  • Pengamanan data terhadap kemungkinan penambahan, modifikasi, pencurian, dan gangguan-gangguaan lain.

Struktur Basis Data


Suatu basis data memiliki jenjang struktur sebagai berikut.
  • Karakter, merupakan bagian data terkecil yang berupa angka, huruf, atau karakter khusus yang membentuk sebuah item data atau field. Contoh A,B,X,Y,2,1,2,9,0,=,<,> dan sebagainya.
  • Field/item, merupakan representasi suatu atribut dan record (rekaman/tupel) yang sejenis yang menunjukkan suatu item dari data. Contoh field nama (berisi data nama-nama pegawai), field departemen (berisi data bagian atau spesifikasi pekerjaan), dan lain sebagainya.
    Syarat-syarat pembentukan Field Name pada tabel:
    ü  Harus Unik atau Spesifik
    ü  Boleh disingkat
    ü  Pemisah sebagai pengganti spasi dalam pembentuk field adalah tanda lambang "_" Contoh: Kode Barang menjadi KdBarang, KodeBrg, Kd_Brg, Kd_Barang.
    Dalam sistem manajemen basisdata, terdapat tiga macam field:
    §  Harus diisi (required)
    §  Dapat diabaikan (optional)
    §  Penghitungan dari field lainnya (calculated). Pengguna tidak dapat memasukan data pada jenis field yang terakhir (calculated).
  • Record/rekaman/tupel: Kumpulan dari field membentuk suatu record atau rekaman. Record menggambarkan suatu unit data individu yang tertentu. Contoh: file pegawai, dimana tiap-tiap recordnya berisi kumpulan data nama, alamat, departemen, yang dapat mewakili tiap-tiap data.
  • File, merupakan kumpulan dari record-record yang menggambarkan satu kesatuan data yang sejenis. Contoh file pegawai berisi data tentang semua yang berhubungan dengan pegawai seperti nama pegawai, alamat pegawai, departemen, yang dapat mewakili tiap-tiap data.
  • Database, merupakan kumpulan dari file atau tabel yang membentuk suatu database. Contoh database pegawai PT Maju Terus terdiri atas file pegawai, file gaji, file golongan, dan sebagainya.

Fitur-fitur Basis Data

  • Pengaturan Basis Data Relasional : Table, Record, Field. Format basis data yang sangat sering digunakan, terutama untuk PC (Personal Computer) adalah basis data relasional, dimana data diorganisasikan dalam bentuk table-tabel yang terhubung satu sama lain. Setiap tabel berisi baris dan kolom; baris data dinamakan record, dan kolom dinamakan field.
  • Penghubung Record (key). Pada basis data relasional, key disebut juga key field, sort key, index, atau keyword adalah field yang digunakan untuk mengurutkan data. Key biasanya berupa pengidentifikasi unik, seperti NIP (nomor induk pegawai) atau NIM (nomor induk mahasiswa). Sebagian besar sistem manajemen basis data membolehkan kita memakai lebih dari 1 key sehingga kita bisa mengurutkan record dalam banyak cara. Key pertama bernama primary key, yang harus memiliki nilai unik untuk setiap record. Sedangkan field lain yang mengidentifikasikan record di tabel lain dinamakan foreign key. Key yang disebut terakhir inilah yang digunakan untuk menghubungkan data (cross-reference) di antara tabel-tabel relasional.
  • Query. Daya tarik perangkat lunak basis data terletak pada kemampuannya untuk mencari record secara cepat. Sebagai contoh, sebagian kantor administrasi kampus membutuhkan data anda untuk beragam keperluan: registrasi, financial, asrama, dan lain-lain. Salah satu kantor dapat melakukan query pada record-yaitu mencari dan menampilkan record dengan menampilkannya di layar komputer, baik sekedar dilihat maupun diperbarui. Jika anda pindah, maka field alamat anda perlu diperbarui. Seseorang yang mencari data anda bisa membuat query, “Tampilkan alamat dari [nama Anda]”. Setelah record tersebut ditampilkan, field alamat dapat diubah. Oleh karena itu, kantor-kantor lain yang menggunakan dokumen anda pun bisa melihat alamat baru anda.
  • Formula. Dengan memakai perangkat lunak basis data, anda bisa secara mudah mencari dan mengubah urutan record pada tabel, dengan kata lain dapat diurutkan dalam beberapa cara. Macam pengurutan adalah secara alfabetis, numerik, geografis, atau pengurutan lain. Contohnya, data dapat diurut berdasarkan propinsi, umur atau KTP. Bahkan perangkat lunak basis data juga berisi formula matematis bawaan untuk keperluan analisis data. Fitur ini, misalnya, dapat digunakan untuk mencari nilai rata-rata IP (indeks prestasi) mahasiswa pada jurusan atau kelas yang berbeda.
  • Hasil Pencarian. Setelah melakukan query, mengurutkan dan menganalisis record dan field, selanjutnya anda bisa langsung menyimpannya di hardisk maupun CD (compact disk). Anda bisa memformat dalam banyak cara, mengubah heading dan gaya tulisan. Anda juga bisa mencetaknya dikertas sebagai bentuk laporan, misalnya daftar pegawai berikut alamat dan nomor telepon terbaru. Hal yang umum dilakukan adalah mencetak hasilnya (nama dan alamat) sebagai label amplop. Anda pun bisa menggunakan perintah Copy untuk menyalin hasil pencarian ke lembaran program pengolah kata. Anda bisa pula menyalinnya ke pesan e-mail atau menempatkannya sebagai lampiran di e-mail untuk dikirim ke orang lain.

Manfaat dari Basis Data


Adapun keuntungan atau manfaat dari penggunaan database diantaranya seperti:
  • Meminimalkan Redudansi. Redudansi merupakan penyimpanan data yang sama dalam berkas yang berbeda-beda jadi jika data di update akan terjadi secara berulang-ulang. Maka dengan database, redudansi data dapat di minimalkan bahkan bisa dihindari.
  • Integritas Data. Data yang sama akan saling berelasi, jika ada perubahan pada suatu data maka data yang sama pada file yang sama akan mengalami perubahan. Integritas data sangat penting pada database karena dapat memastikan keakuratan, konsitensi, aksesbilitas dan juga kualitas yang tinggi pada suatu data.
  • Independensi Data. Pada database data-data yang ada tidak bergantung pada softwere yang mengaksesnya, sebab struktur data pada database dirancang bedasarkan kebutuhan akan informasi jadi bukan berdasarkan softwere. Independensi juga dimana seseorang tidak bisa melakukan perubahan data jika data tersebut sedang diakses oleh orang lain.
  • Data Shared. Dengan sistem database maka kita dapat berbagi data atau informasi dengan pengguna lain, sehingga data tersebut dapat digunakan secara bersama-sama.
  • Keamanan Data. Dengan sistem database kita dapat meningkatkan keamanan terhadap suatu data atau informasi sehingga tidak mudah untuk diakses orang lain, misalnya dengan memberikan password atau hak akses pada data tersebut.
  • Kemudahan Akses. Database dapat mempermudah user dalam mendapatkan data yang diperlukannya, dengan berbagi data yang ada dan tentunya dengan hak akses yang telah diberikan untuk mengakses database tersebut.

Lingkungan Basis Data


Di wikipedia membahas tentang lingkungan basis data yang berisi, Lingkungan basis data adalah sebuah habitat di mana terdapat basis data untuk bisnis. Dalam lingkungan basis data, pengguna memiliki alat untuk mengakses data. Pengguna melakukan semua tipe pekerjaan dan keperluan mereka bervariasi seperti menggali data (data mining), memodifikasi data, atau berusaha membuat data baru. Masih dalam lingkungan basis data, pengguna tertentu tidak diperbolehkan mengakses data, baik secara fisik maupun logis. (Koh, 2005, dalam Janner Simarmata & Imam Paryudi 2006: 33).

Bahasa Pada Basis Data

Terdapat dua jenis bahasa komputer yang digunakan saat kita ingin membangun dan memanipulasi sebuah basis data, yaitu:
  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)

Tipe-tipe Basis Data


Penjelasan tipe-tipe basis data ini saya dapatkan dari kunjungan saya ke web pelajaran.co.id. pada web tersebut menjelaskan untuk menyimpan ataupun mengambil data dari database kita memebutuhkan perangkat lunak yang sering disebut dengan DBMS (database management system atau sistem managemen basis data). Terdapat sekitar 12 tipe database, diantaranya:
  • Operational Database. Database ini menyimpan data rinci yang diperlukan untuk mendukung operasi dari seluruh organisasi. Mereka juga disebut subject-area databases (SADB), transaksi database, dan produksi database. Contoh: database pelanggan, database pribadi, database inventaris, akuntansi database.
  • Relational Database. Dari tahun 2009,  relational database merupakan standar komputasi bisnis dan merupakan database yang paling umum digunakan pada saat ini. Manfaat database ini yaitu untuk menghindari adanya data rangkap atau double, dapat tersusun dengan suatu format yang standar dari sebuah data, bisa mengamankan data, bisa menentukan kualitas dari sebuah informasi, juga bisa mengatasi masalah data yang sulit diakses.
  • Analytical Database. Analytical database merupakan database yang digunakan untuk menyimpan informasi dan data yang diambil dari operasional dan eksternal database. Database ini terdiri dari data dan informasi yang diringkas dan paling banyak digunakan oleh suatu organisasi manajemen maupun End-user lainnya.
  • External Database. External database yaitu tipe database yang menyediakan akses ke eksternal, data milik pribadi online tersedia untuk biaya pada pengguna akhir ataupun organisasi dari layanan komersial. Operational database adalah database yang menyimpan data secara rinci yang dibutuhkan untuk mendukung operasi dari seluruh organisasi. Biasa juga disebut dengan SADB (subject-area databases), transaksi, dan produksi database. Contohnya: database inventaris, database pribadi, database pelanggan, dan akuntansi database.
  • Distribute Database. Distributed database yaitu kelompok kerja lokal database dan departemen di kantor-kantor dan lokasi kerja yang lainnya. Dalam database ini terdapat dua segmen yaitu user database dan operasional yang datanya digunakan dan dihasilkan hanya pada pengguna situs tersebut.
  • Data Warehouse. Data warehouse merupakan sebuah data warehouse yang menyimpan data dari tahun-tahun sebelumnya hingga saat ini. Data warehouse merupakan sumber utama data yang telah terintegrasi sehingga dapat digunakan dan dimanfaatkan oleh para pengguna seluruh organisasi yang profesional. Perkembangan yang terjadi akhir ini dari data warehouse yaitu digunakan sebagai Shared nothing architecture untuk mendukung dan memfasilitasi ekstrem scalling.
  • End-user Database. End-user database yaitu database yang terdiri dari file-file data yang dikembangkan dari end-user dalam workstation. Contohnya berbagai koleksi dokumen dalam word processing, spreadsheet maupun download file.
  • Real Time Database. Real time database yaitu sebuah sistem pengolahan yang dirancang dalam menangani beban kerja suatu negara yang bisa berubah-ubah, mengandung data terus menerus dan sebagian tidak berpengaruh pada waktu. Database ini bermanfaat bagi orang-orang hukum, akuntansi, perbankan, multi media dan analisis data yang ilmiah.
  • Document Oriented Database. Document oriented database merupakan salah satu program komputer yang dirangkai untuk sebuah aplikasi yang berorientasi pada dokumen. Sistem ini dapat diterapkan sebagai lapisan diatas database relasional ataupun objek database.
  • In Memory Database. Yaitu database yang bergantung pada memori untuk penyimpanan data dalam sebuah komputer.
  • Navigational Database. Dalam navigasional database ini, queries menjumpai benda bagi yang mengikuti referensi dari objek tertentu.
  • Hypermedia Database on The Web. Hypermedia database on the web adalah sekumpulan halaman multimedia yang saling berkaitan dalam sebuah situs web, yang terdiri dari home page, dan hyperlink dari multimedia seperti gambar, teks, grafik audio dan lain sebagainya.

Contoh Beberapa Aplikasi Database


Di postingan ini, saya juga akan menjabarkan sekilas beberapa contoh aplikasi database yang populer dikalangan masyarakat.
  • MySQL. Setiap pengguna dapat menggunakan MySQL secara bebas, karena software database ini gratis. Pada umumnya MySQL dapat digunakan untuk mengelola database yang cukup banyak dan bisa digunakan untuk aplikasi berbasis web. MySQL menggunakan bahasa SQL (Structured Query Language) untuk mengakses data yang ada dalam database.
  • Oracle. Oracel merupakan salah satu aplikasi database yang terkenal, dikembangkan oleh Oracle Corporaton. Aplikasi atau sofware database ini umumnya digunakan oleh perusahaan-perusahaan besar karena aplikasi database ini berbayar. Oracle menggunakan bahasa SQL (Structured Query Language) untuk mengakses data yang ada dalam database.
  • Microsoft Access. Aplikasi database Microsoft Acces merupakan anggota dari Microsoft Office yang dikeluarkan oleh Microsoft. Pada umumnya aplikasi database ini digunakan untuk perusahaan kecil sampai menengah.
  • Microsoft SQL Server. Merupakan aplikasi database yang juga dikeluarkan oleh microsoft, atau sering disebut juga dengan SQL server. Pada umumnya SQL server dirancang untuk aplikasi atau software yang berbasis kepada client-server. Aplikasi database ini berbayar dan ada juga yang gratis tapi memiliki keterbatasan.


Demikian pembahasan mengenai Basis Data kali ini. Informasi yang saya sampaikan ini hanyalah sebagian kecil saja namun, saya harap dapat cukup bermanfaat bagi pembaca sekalian.
Postingan tentang basis data ini adalah pengantar untuk postingan berikutnya yang akan saya sampaikan. Semoga pembaca sekalian dapat terus mengunjungi blog ini untuk menantikan postingan-postingan berikutnya.
Kurang lebihnya mohon maaf, Terima Kasih.
Wassalamu'alaikum...