Blockchain dan basis data terdesentralisasi
Berikut adalah **Modul 13: Tren Terkini dalam Basis Data – Blockchain dan Basis Data Terdesentralisasi** lengkap dengan contoh implementasi di **Ubuntu 24.04**.
---
- **Modul 13: Tren Terkini dalam Basis Data**
- **Topik: Blockchain dan Basis Data Terdesentralisasi**
- **Modul 13: Tren Terkini dalam Basis Data**
---
- **1. Tujuan Pembelajaran**
Setelah mempelajari modul ini, mahasiswa diharapkan mampu: - Memahami konsep dasar blockchain sebagai basis data terdesentralisasi. - Menjelaskan perbedaan antara basis data terpusat dan terdesentralisasi. - Menerapkan simulasi blockchain sederhana menggunakan Python di Ubuntu 24.04. - Mengenal proyek blockchain populer seperti **IPFS**, **BigchainDB**, atau **Ethereum (Geth)**.
---
- **2. Konsep Dasar**
- **2.1 Blockchain**
Blockchain adalah struktur data terdistribusi yang terdiri dari rantai blok yang saling terhubung, di mana setiap blok berisi data dan hash kriptografi dari blok sebelumnya. Sifat utama: - Immutable (tidak dapat diubah) - Terdistribusi - Transparan - Konsensus diperlukan untuk validasi data baru
- **2.2 Basis Data Terdesentralisasi**
Berbeda dari DBMS konvensional, data tidak disimpan di satu server pusat, melainkan didistribusikan ke banyak node. Setiap node menyimpan salinan data dan berpartisipasi dalam konsensus jaringan.
---
- **3. Perbandingan**
| Aspek | Basis Data Konvensional | Blockchain / Terdesentralisasi | |---------------------|-------------------------|-------------------------------| | Arsitektur | Terpusat | Terdesentralisasi | | Keamanan | Kontrol akses | Kriptografi dan konsensus | | Skalabilitas | Vertikal/Horizontal | Terbatas (bergantung sistem) | | Transparansi | Terbatas | Publik (tergantung sistem) | | Contoh | MySQL, PostgreSQL | Ethereum, BigchainDB, IPFS |
---
- **4. Contoh Implementasi Blockchain Sederhana di Ubuntu 24.04 (Python)**
- **Langkah 1: Instalasi Python**
```bash sudo apt update sudo apt install python3 python3-pip ```
- **Langkah 2: Buat Simulasi Blockchain**
- File: blockchain.py**
```python import hashlib import json from time import time
class Block:
def __init__(self, index, timestamp, data, previous_hash): self.index = index self.timestamp = timestamp self.data = data self.previous_hash = previous_hash self.hash = self.calculate_hash()
def calculate_hash(self): content = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}" return hashlib.sha256(content.encode()).hexdigest()
class Blockchain:
def __init__(self): self.chain = [self.create_genesis_block()]
def create_genesis_block(self): return Block(0, time(), "Genesis Block", "0")
def get_last_block(self): return self.chain[-1]
def add_block(self, data): last_block = self.get_last_block() new_block = Block(len(self.chain), time(), data, last_block.hash) self.chain.append(new_block)
def print_chain(self): for block in self.chain: print(f"Index: {block.index}, Hash: {block.hash}, Data: {block.data}\n")
- Simulasi
if __name__ == "__main__":
chain = Blockchain() chain.add_block("Transaksi 1: A → B") chain.add_block("Transaksi 2: B → C") chain.add_block("Transaksi 3: C → A") chain.print_chain()
```
- **Jalankan Program**
```bash python3 blockchain.py ```
---
- **5. Contoh Basis Data Terdesentralisasi Nyata**
- **5.1 BigchainDB**
BigchainDB adalah sistem basis data terdesentralisasi dengan fitur blockchain.
- Instalasi Docker di Ubuntu 24.04:**
```bash sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker ```
- Jalankan BigchainDB Node (via Docker):**
```bash docker run -d --name bigchaindb -p 9984:9984 \
-e BIGCHAINDB_DATABASE_BACKEND=mongodb \ -e BIGCHAINDB_SERVER_BIND=0.0.0.0:9984 \ bigchaindb/bigchaindb
```
- **5.2 IPFS (InterPlanetary File System)**
IPFS menyimpan file secara desentralisasi.
```bash sudo apt install ipfs ipfs init ipfs daemon ```
Tambahkan file ke jaringan: ```bash ipfs add hello.txt ```
---
- **6. Use Case Blockchain sebagai Basis Data**
- **Supply Chain:** Melacak asal-usul dan pergerakan barang secara transparan. - **Sertifikasi & Dokumen:** Menyimpan ijazah, sertifikat, dan kontrak legal. - **Identitas Digital:** Sistem identitas tanpa pusat kendali. - **Voting Sistem:** Pemilu digital dengan transparansi tinggi.
---
- **7. Kesimpulan**
Blockchain memperkenalkan paradigma baru dalam pengelolaan data: transparansi, imutabilitas, dan desentralisasi. Di Ubuntu 24.04, simulasi dan eksperimen dengan Python, BigchainDB, dan IPFS memungkinkan pemahaman lebih dalam tentang masa depan basis data yang lebih terbuka dan aman.
---
Kalau kamu tertarik eksplorasi lebih lanjut (misal implementasi **Ethereum smart contract di Ubuntu**), tinggal bilang aja!