Jenis NoSQL: dokument, kolom, graf, key-value
Berikut adalah **Modul 12: Basis Data NoSQL dan Big Data**, dengan penjelasan lengkap tentang **jenis-jenis NoSQL** (dokumen, kolom, graf, key-value) **beserta pendekatan simulasi atau integrasi dari MySQL di Ubuntu 24.04**.
---
- π **Modul 12.1: Basis Data NoSQL dan Big Data**
- π― **Tujuan Pembelajaran**
- Memahami konsep dasar basis data NoSQL dan penerapannya dalam skenario Big Data. - Mengenali empat jenis utama NoSQL: **document**, **key-value**, **column-family**, dan **graph**. - Mempelajari pendekatan integrasi atau simulasi NoSQL menggunakan MySQL di Ubuntu 24.04.
---
- π **1. Apa itu NoSQL?**
NoSQL adalah tipe basis data yang **tidak menggunakan relasi tradisional** (table-join seperti pada RDBMS). Cocok untuk: - Data **tidak terstruktur atau semi-terstruktur**. - Skala **besar** dan butuh kecepatan **horizontal scalability**. - **Replikasi otomatis**, **partisi data**, dan **resiliensi tinggi**.
---
- 𧩠**2. Jenis-jenis NoSQL**
- ποΈ 2.1 **Dokumen (Document Store)**
- Menyimpan data dalam bentuk dokumen (biasanya format JSON, BSON). - Cocok untuk data fleksibel seperti artikel, user profile, produk. - Contoh DB: **MongoDB**, CouchDB.
π **Simulasi di MySQL:** ```sql CREATE TABLE user_profile (
id INT PRIMARY KEY, data JSON
);
INSERT INTO user_profile VALUES (1, '{"nama": "Andi", "alamat": {"kota": "Bandung", "kodepos": 40123}}'); SELECT JSON_EXTRACT(data, '$.alamat.kota') FROM user_profile; ```
π§ͺ *Keterangan:* MySQL mendukung **tipe data JSON** sejak versi 5.7, memungkinkan kita menyimpan dan memproses data seperti document store.
---
- π 2.2 **Key-Value Store**
- Penyimpanan sederhana: **key** β **value** - Cocok untuk session, cache, konfigurasi. - Contoh DB: **Redis**, DynamoDB.
π **Simulasi di MySQL:** ```sql CREATE TABLE config_store (
config_key VARCHAR(100) PRIMARY KEY, config_value TEXT
);
INSERT INTO config_store VALUES ('theme', 'dark'), ('language', 'id'); SELECT config_value FROM config_store WHERE config_key = 'theme'; ```
π§ͺ *Keterangan:* Walau tidak secepat Redis, MySQL bisa meniru skema key-value untuk kebutuhan dasar konfigurasi atau metadata.
---
- π 2.3 **Kolom (Column Family)**
- Menyimpan data berbasis kolom, bukan baris. - Cocok untuk data besar seperti log, time series, analitik. - Contoh DB: **Apache Cassandra**, HBase.
π **Simulasi di MySQL:** MySQL tetap berbasis row-store, tapi bisa **mimic skema kolom** menggunakan pivot-like structure: ```sql CREATE TABLE sensor_data (
id INT AUTO_INCREMENT PRIMARY KEY, waktu DATETIME, suhu DOUBLE, kelembapan DOUBLE
); ```
π Untuk efisiensi baca berdasarkan kolom tertentu, bisa gunakan **INDEX**: ```sql CREATE INDEX idx_suhu ON sensor_data(suhu); ```
π§ͺ *Catatan:* Untuk true column-oriented storage, gunakan sistem seperti ClickHouse atau Cassandra.
---
- π§ 2.4 **Graf (Graph Database)**
- Menyimpan **node** dan **edge** untuk mewakili relasi kompleks. - Cocok untuk sosial media, rekomendasi, analisa jaringan. - Contoh DB: **Neo4j**, ArangoDB.
π **Simulasi di MySQL:** ```sql -- Node: User CREATE TABLE user (
id INT PRIMARY KEY, nama VARCHAR(50)
);
-- Edge: Hubungan antar user CREATE TABLE hubungan (
dari_user INT, ke_user INT, jenis_hubungan VARCHAR(50), FOREIGN KEY (dari_user) REFERENCES user(id), FOREIGN KEY (ke_user) REFERENCES user(id)
);
-- Query: Siapa teman Andi? SELECT u2.nama FROM user u1 JOIN hubungan h ON u1.id = h.dari_user JOIN user u2 ON h.ke_user = u2.id WHERE u1.nama = 'Andi' AND h.jenis_hubungan = 'teman'; ```
π§ͺ *Catatan:* Pendekatan ini hanya menyimulasikan struktur graph; untuk traversal graf kompleks seperti DFS/BFS, butuh DB asli seperti Neo4j.
---
- ποΈ **3. Hubungan NoSQL dan Big Data**
NoSQL sangat cocok untuk skenario Big Data karena: - Bisa **di-scale horizontal** dengan mudah. - Tidak bergantung pada skema tetap (schema-less). - Cocok untuk data volume besar dan kecepatan tinggi (velocity).
- Contoh skenario Big Data di Indonesia**:
- **E-commerce** menyimpan jutaan user profile (document). - **IoT** sensor kota (column family). - **Analisis jejaring sosial** (graph). - **Pengaturan caching** skala besar (key-value Redis).
---
- π§ͺ **4. Instalasi dan Integrasi di Ubuntu 24.04**
Jika ingin eksperimen nyata dengan NoSQL di Ubuntu:
```bash
- MongoDB (Document)
sudo apt install -y mongodb
- Redis (Key-Value)
sudo apt install -y redis
- Neo4j (Graph)
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add - echo 'deb https://debian.neo4j.com stable 5' | sudo tee /etc/apt/sources.list.d/neo4j.list sudo apt update sudo apt install neo4j ```
---
- β **Kesimpulan**
| Jenis NoSQL | Karakteristik | Contoh DB | Simulasi MySQL | |--------------|-------------------------------|---------------|----------------| | Dokumen | JSON fleksibel | MongoDB | Tipe data JSON | | Key-Value | Sangat cepat, sederhana | Redis | Kunci & nilai | | Kolom | Big data & time-series | Cassandra | Simulasi tabel | | Graf | Node-edge relationship | Neo4j | Tabel relasi |
MySQL dapat digunakan untuk **simulasi dasar NoSQL** jika arsitektur belum bisa beralih ke database khusus.
---
Kalau kamu mau, Gipy bisa bantu buat versi PowerPoint atau PDF juga. Mau sekalian?