Anda di halaman 1dari 24

SISTEM BASIS DATA

MAKALAH COUCHDB

Laporan ini disusun untuk memenuhi salah satu tugas mata kuliah sistem basis data

Dosen : Wildan Budiawan Zulfikar, S.T, M.Kom

Disusun oleh :

Arham Aulia Nugraha (1177050 )

Dilla saldilla (1177050 )

Hazli Alfadli (1177050 )

Nurlela (1177050125)

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SUNAN GUNUNG DJATI BANDUNG

GANJIL 2019/2020
KATA PENGANTAR

Segala puji bagi Allah SWT yang telah melimpahkan rahmat dan hidayah-Nya,
sehingga penulisan makalah yang berjudul “CouchDB” ini dapat diselesaikan. Penulis
mengucapkan terima kasih kepada seluruh pihak-pihak yang telah membantu dalam
pembuatan makalah ini baik secara langsung maupun tidak langsung.

Penulisan makalah ini dalam rangka untuk memenuhi tugas mata kuliah Sistem Basis
Data dan diharapkan dengan adanya makalah ini pembaca dapat menambah wawasan
tentang CouchDB. Penulis menyadari dalam penulisan makalah ini masih kurang sempurna.
Oleh karena itu, segala kritik yang bersifat membangun akan penulis terima dengan tangan
terbuka.

i
DAFTAR ISI

ii
BAB I
PENDAHULUAN

1.1. Latar Belakang Masalah


Teknologi pada zaman ini sudah sangat berkembang dengan pesat, sejalan
sengan kegunaan dan manfaat yang didapat dari berbagai macam teknologi yang
sangat membantu dalam menyelesaikan pekerjaan manusia, salah satunya dalam hal
penyimpanan data.
Sebuah data yang akan disimpan harus tersimpan dengan aman dan mudah
untuk dimanipulasi sehingga dibutuhkan suatu Database Management System
(DBMS), yaitu salah satunya adalah CouchDB.

1.2. Rumusan Masalah


1.2.1 Bagaimana sejarah CouchDB?
1.2.2 Bagaimana cara melakukan installasi dan konfigurasi CouchDB?
1.2.3 Bagaimana cara mengeksekusi CURD pada CouchDB?
1.2.4 Bagaimana konektivitas CouchDB?
1.2.5 Apa kelebihan dan kekurangan CouchDB?

1.3 Tujuan Masalah


1.3.1 Untuk mengetahui sejarah CouchDB
1.3.2 Untuk mengetahui cara melakukan installasi dan konfigurasi CouchDB
1.3.3 Untuk mengetahui cara mengeksekusi CURD pada CouchDB
1.3.4 Untuk mengetahui bagaimana konektivitas couchDB
1.3.5 Untuk mengetahui kelebihan dan kekurangan CouchDB

1
BAB II

ISI

2.1 Sejarah CouchDB

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. Adapun Konsep dari CouchDB adalah database NoSQL yang dirancang untuk
berada dilingkungan kerja dunia website. Hal ini didukung beberapa faktor dasar CouchDB
diciptakan yaitu 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 dan CouchDB
menggunakan HTTP sebagai API pendukung karena berbasis Apache.

2
2.2 Instalasi CouchDB (windows)
Sebelum kita melakukan proses instalasi, pendukung dari CouchDB yaitu NodeJS
sebagai perangkat pendukung untuk bahasa pmerograman Javascript dari sisi server.

berikut ini akan saya jabarkan langkah-langkah instalasi CouchDB versi Windows.
1. Silahkan lakukan akses ke website resmi CouchDB di https://couchdb.apache.org/
2. Selanjutnya langsung saja click Download disarankan men-download versi sebelum
yang terbaru dari CouchDB yang sudah stabil sepenuhnya yaitu versi 2.0.0 (Pilih
ekstensi .msi agar bisa diinstal dengan mudah).

3. Setelah di download, lakukan proses instalasi seperti biasanya , kemudian pilih next
untuk melanjutkan

3
4. Klik install

4
5. untuk membuka CouchDB ini ada 2 cara; yang pertama kita dapat membukanya
dengan memasukkan alamat ke browser “localhost:5984/_utils/”; atau dengan cara
kedua yaitu dengan membuka menu dan mencari ikon aplikasi Apache CouchDB
Fauxton. Jika proses instalasi benar dilakukan, maka tampilan CouchDb akan seperti
gambar berikut.

5
6. 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 kita dan disarankan yang mudah untuk diingat.

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

6
8. buka tab Setup akan terlihat ada dua opsi "Configure cluster" dan "Configure Single
Node".Cluster digunakan untuk beberapa server dan untuk pengaturan besar. Untuk
aplikasi basis data yang sederhana, kita harus memilih "configure single node".Ketika
mengklik "configure single node", maka harus mengisi beberapa kredensial.

9. Setelah terverifikasi semua, CouchDB berarti siap untuk kita gunakan.


Menggunakan CouchDB

7
2.3 Membuat Objek dan Eksekusi CRUD pada CouchdB

1. Membuat database, disini kami membuat database mahasiswa

2. Membuat dokumen

8
9
10
2.4 Konektivitas

Pergi ke folder C. Buat nama folder "couchemployees" dalam folder "proyek" yang
sudah dibuat.

Buka command prompt dan pergi ke lokasi.

1. <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"
><span class="google-src-text" style="direction: ltr; text-align: left">Start npm ini
t</span> Mulai npm init</span>   

Buat file sebagai "app.js", dengan kode berikut:

Sekarang titik masuknya adalah app.json

1. <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"
><span class="google-src-text" style="direction: ltr; text-align: left">const express 
= require('express');</span> const express = membutuhkan ('express');</span> 

11
<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><s
pan class="google-src-text" style="direction: ltr; text-align: left">const bodyParser 
= require('body-parser');</span> const bodyParser = membutuhkan ('body-
parser');</span> <span class="notranslate" onmouseover="_tipon(this)" onmouse
out="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left
">const path = require('path');</span> const path = butuhkan ('path');</span> 
<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><s
pan class="google-src-text" style="direction: ltr; text-align: left">const NodeCouchd
b = require('node-couchdb');</span> const NodeCouchdb = membutuhkan ('node-
couchdb');</span> <span class="notranslate" onmouseover="_tipon(this)" onmou
seout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left
">const app = express();</span> app const = express ();</span> <span class="
notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="go
ogle-src-text" style="direction: ltr; text-align: left">app.set('view engine', 'ejs')
;</span> app.set ('view engine', 'ejs');</span> <span class="notranslate" onmou
seover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" styl
e="direction: ltr; text-align: left">app.set('views', path.join(__dirname, 'views'))
;</span> app.set ('views', path.join (__ dirname, 'views'));</span> <span class=
"notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="go
ogle-src-text" style="direction: ltr; text-align: left">app.use (bodyParser.json())
;</span> app.use (bodyParser.json ());</span> <span class="notranslate" onmo
useover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" styl
e="direction: ltr; text-align: left">app.use(bodyParser.urlencoded({extended: false})
);</span> app.use (bodyParser.urlencoded ({extended: false}));</span> <span 
class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span cla
ss="google-src-text" style="direction: ltr; text-align: left">app.get('/', function(req,re
s){ res.send('Working........'); });</span> app.get ('/', function (req, res) {res.send 
('Bekerja ........');});</span> <span class="notranslate" onmouseover="_tipon(this
)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-
align: left">app.listen(3000, function(){ console.log('Server is started om Port 3000')
; });</span> app.listen (3000, function () {console.log ('Server dimulai dari Port 30
00');});</span>   

12
Sekarang gunakan perintah berikut:

npm instal body-parser ejs node-couchdb --save

13
Jalankan kode berikut untuk memulai server lokal:

1. <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"
><span class="google-src-text" style="direction: ltr; text-align: left">node ap
p</span> aplikasi simpul</span>   

14
Sekarang server dimulai:

Buka browser lokal: localhost: 3000

Daftar Database
Edit file app.js dengan kode berikut:

1. <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"
><span class="google-src-text" style="direction: ltr; text-align: left">const express 
= require('express');</span> const express = membutuhkan ('express');</span> 
<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><s
pan class="google-src-text" style="direction: ltr; text-align: left">const bodyParser 
= require('body-parser');</span> const bodyParser = membutuhkan ('body-
parser');</span> <span class="notranslate" onmouseover="_tipon(this)" onmouse
out="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left
">const path = require('path');</span> const path = butuhkan ('path');</span> 
<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><s
pan class="google-src-text" style="direction: ltr; text-align: left">const NodeCouchd
b = require('node-couchdb');</span> const NodeCouchdb = membutuhkan ('node-
couchdb');</span> <span class="notranslate" onmouseover="_tipon(this)" onmou
seout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left
">const couch = NodeCouchdb({ auth:{ user: 'ajeet' password: '12345' } })
;</span> const couch = NodeCouchdb ({auth: {user: 'ajeet' password: '12345'}});
</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_ti
poff()"><span class="google-src-text" style="direction: ltr; text-align: left
">couch.listDatabases().then(function(dbs){ console.log(dbs); });</span> couch.lis

15
tDatabases (). then (function (dbs) {console.log (dbs);});</span> <span class="n
otranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="goo
gle-src-text" style="direction: ltr; text-align: left">const app = express();</span> 
app const = express ();</span> <span class="notranslate" onmouseover="_tipon(t
his)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; te
xt-align: left">app.set('view engine', 'ejs');</span> app.set ('view engine', 'ejs')
;</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_ti
poff()"><span class="google-src-text" style="direction: ltr; text-align: left
">app.set('views', path.join(__dirname, 'views'));</span> app.set ('views', path.joi
n (__ dirname, 'views'));</span> <span class="notranslate" onmouseover="_tipon
(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; 
text-align: left">app.use (bodyParser.json());</span> app.use (bodyParser.json ())
;</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_ti
poff()"><span class="google-src-text" style="direction: ltr; text-align: left
">app.use(bodyParser.urlencoded({extended: false}));</span> app.use (bodyParse
r.urlencoded ({extended: false}));</span> <span class="notranslate" onmouseove
r="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" styl
e="direction: ltr; text-align: left">app.get('/', function(req,res){ res.send('Working....
....'); });</span> app.get ('/', function (req, res) {res.send ('Bekerja ........');});</
span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff
()"><span class="google-src-text" style="direction: ltr; text-align: left
">app.listen(3000, function(){ console.log('Server is started on Port 3000'); })
;</span> app.listen (3000, function () {console.log ('Server dimulai pada Port 3000'
);});</span>   

Buat folder "view" dan kemudian buat file "index.ejs" di dalamnya, dengan kode
berikut:

1. <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"
><span class="google-src-text" style="direction: ltr; text-align: left">Hello World!
</span> Halo Dunia!</span>   

Sekarang ubah file "app.js":

1. <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"
><span class="google-src-text" style="direction: ltr; text-align: left">const express 
= require('express');</span> const express = membutuhkan ('express');</span> 
<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><s

16
pan class="google-src-text" style="direction: ltr; text-align: left">const bodyParser 
= require('body-parser');</span> const bodyParser = membutuhkan ('body-
parser');</span> <span class="notranslate" onmouseover="_tipon(this)" onmouse
out="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left
">const path = require('path');</span> const path = butuhkan ('path');</span> 
<span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><s
pan class="google-src-text" style="direction: ltr; text-align: left">const NodeCouchd
b = require('node-couchdb');</span> const NodeCouchdb = membutuhkan ('node-
couchdb');</span> <span class="notranslate" onmouseover="_tipon(this)" onmou
seout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left
">const couch = NodeCouchdb({ auth:{ user: 'ajeet' password: '12345' } })
;</span> const couch = NodeCouchdb ({auth: {user: 'ajeet' password: '12345'}});
</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_ti
poff()"><span class="google-src-text" style="direction: ltr; text-align: left
">couch.listDatabases().then(function(dbs){ console.log(dbs); });</span> couch.lis
tDatabases (). then (function (dbs) {console.log (dbs);});</span> <span class="n
otranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="goo
gle-src-text" style="direction: ltr; text-align: left">const app = express();</span> 
app const = express ();</span> <span class="notranslate" onmouseover="_tipon(t
his)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; te
xt-align: left">app.set('view engine', 'ejs');</span> app.set ('view engine', 'ejs')
;</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_ti
poff()"><span class="google-src-text" style="direction: ltr; text-align: left
">app.set('views', path.join(__dirname, 'views'));</span> app.set ('views', path.joi
n (__ dirname, 'views'));</span> <span class="notranslate" onmouseover="_tipon
(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; 
text-align: left">app.use (bodyParser.json());</span> app.use (bodyParser.json ())
;</span> <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_ti
poff()"><span class="google-src-text" style="direction: ltr; text-align: left
">app.use(bodyParser.urlencoded({extended: false}));</span> app.use (bodyParse
r.urlencoded ({extended: false}));</span> <span class="notranslate" onmouseove
r="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" styl
e="direction: ltr; text-align: left">app.get('/', function(req,res){ res.render('index'); 
});</span> app.get ('/', function (req, res) {res.render ('index');});</span> <spa
n class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()"><span c
lass="google-src-text" style="direction: ltr; text-align: left">app.listen(3000, functio
n(){ console.log('Server is started on Port 3000'); })</span> app.listen (3000, func
tion () {console.log ('Server dimulai pada Port 3000');})</span>   

17
2.5 Kelebihan dan Kekurangan CouchDB

18
Kelebihan NoSQL

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.

Kekurangan NoSQL

1. Hostingnya mahal. beberapa layanan di luar negeri mencharge biaya 100-200USD


untuk hosting database noSQL.
2. Sulitnya mencari hosting Cpanel yang mendukung database CouchDB atau database
noSQL lainnya.
3. Susah berpindah antar database karena format penyimpanan berbeda setiap database
noSQL.

19
BAB III
KESIMPULAN

3.1 Kesimpulan
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 Ap.ache 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 y

20
DAFTAR PUSTAKA

http://lea.si.fti.unand.ac.id/2019/04/couchdb-sebagai-salah-satu-database-nosql/

https://mfaqihdzulqarnain.blogspot.com/2018/03/nosql-penjelasan-couchdb.html

https://translate.google.com/translate?hl=id&sl=en&u=https://www.javatpoint.com/couchdb-
tutorial&prev=search

iii

Anda mungkin juga menyukai