Anda di halaman 1dari 8

TUGAS PERANCANGAN PUSAT DATA

JOBSHEET 6

MongoDB

Disusun oleh:

Hany Windri Astuti

TE4B

NIM. 4.31.15.1.08

PROGRAM STUDI SARJANA TERAPAN TEKNIK TELEKOMUNIKASI

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI SEMARANG

2019
Tugas

1. Jelaskan perbedaan antara SQL dengan NoSQL (dalam Bahasa Indonesia)! (Hint:
gunakan tabel perbedaan NoSQL vs SQL sebagai dasar penjelasan Anda)
2. Cari dan jelaskan model/skema ReplicaSet pada MongoDB
3. Cari dan jelaskan fungsi dari server-server yang terlibat dalam ReplicaSet (primary,
secondary, arbiter)
4. Menggunakan Robo 3T, pada kasus MongoDB ReplicaSet, silakan buktikan bahwa
data yang ada pada server primary (port 27017) itu diduplikasi dengan benar di server
secondary (port 37017)

Jawab

1. Perbedaan antara SQL dan NoSQL digambarkan sebagai berikut:

Aspek SQL NoSQL


Untuk database relasional Tidak mengikuti model
database relasional
Menyimpan data dalam bentuk dokumen Disimpan dalam sebuah
Model
JSON (JavaScript Object Notation), tabel
memiliki key / value berpasangan,
disimpan dalam bentuk kolom atau grafik
Fleksibel, karena tidak setiap record yang Solusi untuk record yang
berisi informasi item harus disimpan memiliki property yang
dalam property (data-data) yang sama sama
Property baru dapat ditambahkan ketika Menambahkan property
Data proses pembuatan dilakukan baru memungkinkan
pergantian skema atau
pelengkapan data yang
sebelumnya hilang atau
belum terisi (missing).
Relasi diambil dengan cara melakukan Relasi diambil dengan
denormalisasi data dan merangkum model normalisasi
seluruh data sebagai sebuah objek di menggunakan link sebagai
dalam satu record reference table (domain
table yang
merepresentasikan acuan)
Direkomendasikan untuk data semi Direkomendasikan untuk
terstruktur, kompleks atau bersarang. data terstruktur
Bersifat dinamis atau fleksibel Bersifat statis dan tidak
dapat diubah
Database bersifat schema-agnostic dan Skema harus dikelola dan
Skema berdasarkan aplikasi. Hal ini membuat dijaga agar antara aplikasi
NoSQL mudah untuk diubah-ubah dan dan database saling
dapat dilakukan iterasi (perulangan) untuk terhubung
pengembangannya
ACID (Atomicity, Consistency, Isolation, Mendukung semua
Transaksi Durability) didasarkan pada tiap variasi transaksi ACID
dari solusi
Konsistensi tergantung pada solusi Konsistensi di segala
Konsistensi kondisi
dan Konsistensi, ketersediaan dan performa Konsistensi diprioritaskan
Ketersediaan dapat digandakan untuk memenuhi di atas ketersediaan dan
kebutuhan aplikasi (teorema CAP) performa
Performa dapat dimaksimalkan dengan Pengisian dan update
cara mengurangi konsistensi, jika perlu performa bergantung pada
seberapa cepat penulisan
dilakukan, setangguh
Performa
konsistensi diberlakukan.
Performa dapat
dimaksimalkan dengan
cara menaikkan jumlah
sumber dan
menggunakannya dalam
struktur in-memory (di
dalam memory)
Seluruh informasi tentang entitas secara Informasi tentang entitas
khusus berada pada satu record, sehingga dapat disebar melalui
update dapat dilakukan dengan satu banyak tabel atau baris,
operasi yang membutuhkan link
untuk melengkapi update
atau query
Scalling secara khusus dilakukan secara Scalling secara khusus
horizontal dengan partisi data untuk dilakukan secara vertikal
Scale
menjangkau server dengan lebih sumber
server disediakan

2. Replikasi pada MongoDB disebut dengan ReplicaSet. ReplicaSet adalah suatu grup
MongoDB yang menduduki data set yang sama. Di dalam replicaset, terdapat satu node
yang disebut dengan primary node, bertugs untuk menerima seluruh operasi write dan
selain itu, semua node berfungsi sebagai node secondary. Replica set hanya dapat memiliki
satu primary node. Setelah proses write dilakukan di primary node, MongoDB akan
melakukan replikasi data yang sama ke seluruh node secondary yang ada di replicaset.
Skema replica set ditunjukkan oleh gambar berikut ini:
3. Fungsi server – server dalam ReplicaSet adalah
1) Primary : adalah satu satunya member di dalam replica set yang menerima operasi
write
2) Secondary : melakukan penyalinan primary data set. Untuk melakukan replikasi data,
sebuah secondary server menerapkan operasi dari oplog (operation log) ke data setnya
sendiri secara asinkron. Sebuah replica set dapat memiliki satu atau lebih secondary
node
3) Arbiter : adalah bagian dari replica set namun tidak memegang data. Arbiter
bertugas jika primary mati, maka akan langsung loncat ke secondary node. Jika replica
set memiliki member berjumlah genap, maka arbiter dapat ditambahakn lagi. Arbiter
memerlukan resource yang minim dan tidak membutuhkan dedicated hardware.
4. Replikasi menggunakan Robo 3T
1. Masukkan format coding docker-compose.yml pada folder mongo_replicaset di C:
2. Buka Docker Toolbox lalu buka direktori mongo_replicaset dengan perintah
cd mongo_replicaset
3. Jalankan container

4. Cek status 3 container

5. Cek penggunaan resource


6. Buat connection untuk mongodb_primary

7. Lakukan test connection


8. Buat connection secondary

9. Lakukan Test Connection

10. Connect ke mongodb_primary dan mongodb_secondary


11. Pada mongodb_primary klik kanan lalu Open Shell
12. Buat database sebagai berikut
13. Create database lalu klik Create

14. Create collection dengan nama learning


15. Hasil akhir menjadi seperti di bawah ini

Terlihat bahwa pada mongodb_secondary juga terdapat db_baru dengan collection


learning.