Blockchain dan basis data terdesentralisasi

From OnnoWiki
Jump to navigation Jump to search

Berikut adalah **Modul 13: Tren Terkini dalam Basis Data – Blockchain dan Basis Data Terdesentralisasi** lengkap dengan contoh implementasi di **Ubuntu 24.04**.

---

    1. **Modul 13: Tren Terkini dalam Basis Data**
      1. **Topik: Blockchain dan Basis Data Terdesentralisasi**

---

      1. **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)**.

---

      1. **2. Konsep Dasar**
        1. **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

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

---

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

---

      1. **4. Contoh Implementasi Blockchain Sederhana di Ubuntu 24.04 (Python)**
        1. **Langkah 1: Instalasi Python**

```bash sudo apt update sudo apt install python3 python3-pip ```

        1. **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")
  1. 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()

```

        1. **Jalankan Program**

```bash python3 blockchain.py ```

---

      1. **5. Contoh Basis Data Terdesentralisasi Nyata**
        1. **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

```

        1. **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 ```

---

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

---

      1. **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!