Difference between revisions of "Blockchain dan basis data terdesentralisasi"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Berikut adalah **Modul 13: Tren Terkini dalam Basis Data – Blockchain dan Basis Data Terdesentralisasi** lengkap dengan contoh implementasi di **Ubuntu 24.04**. --- ## **M...")
 
 
Line 1: Line 1:
Berikut adalah **Modul 13: Tren Terkini dalam Basis Data – Blockchain dan Basis Data Terdesentralisasi** lengkap dengan contoh implementasi di **Ubuntu 24.04**.
+
Berikut adalah '''Modul 13: Tren Terkini dalam Basis Data – Blockchain dan Basis Data Terdesentralisasi''' lengkap dengan contoh implementasi di '''Ubuntu 24.04'''.
  
---
+
==Tren Terkini dalam Basis Data==
 +
==Topik: Blockchain dan Basis Data Terdesentralisasi==
  
## **Modul 13: Tren Terkini dalam Basis Data** 
+
==1. Tujuan Pembelajaran==
### **Topik: Blockchain dan Basis Data Terdesentralisasi**
 
 
 
---
 
 
 
### **1. Tujuan Pembelajaran**
 
  
 
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
 
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
- Memahami konsep dasar blockchain sebagai basis data terdesentralisasi.
+
* Memahami konsep dasar blockchain sebagai basis data terdesentralisasi.
- Menjelaskan perbedaan antara basis data terpusat dan terdesentralisasi.
+
* Menjelaskan perbedaan antara basis data terpusat dan terdesentralisasi.
- Menerapkan simulasi blockchain sederhana menggunakan Python di Ubuntu 24.04.
+
* Menerapkan simulasi blockchain sederhana menggunakan Python di Ubuntu 24.04.
- Mengenal proyek blockchain populer seperti **IPFS**, **BigchainDB**, atau **Ethereum (Geth)**.
+
* Mengenal proyek blockchain populer seperti '''IPFS''', '''BigchainDB''', atau '''Ethereum (Geth)'''.
  
---
+
==2. Konsep Dasar==
  
### **2. Konsep Dasar**
+
'''2.1 Blockchain'''
  
#### **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:
 
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)
+
* Immutable (tidak dapat diubah)
- Terdistribusi
+
* Terdistribusi
- Transparan
+
* Transparan
- Konsensus diperlukan untuk validasi data baru
+
* Konsensus diperlukan untuk validasi data baru
 +
 
 +
'''2.2 Basis Data Terdesentralisasi'''
  
#### **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.
 
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==
  
### **3. Perbandingan**
+
{| class="wikitable"
 +
! 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
 +
|}
  
| Aspek              | Basis Data Konvensional | Blockchain / Terdesentralisasi |
+
==4. Contoh Implementasi Blockchain Sederhana di Ubuntu 24.04 (Python)==
|---------------------|-------------------------|-------------------------------|
 
| 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    |
 
  
---
+
'''Langkah 1: Instalasi Python'''
  
### **4. Contoh Implementasi Blockchain Sederhana di Ubuntu 24.04 (Python)**
+
sudo apt update
 +
sudo apt install python3 python3-pip
  
#### **Langkah 1: Instalasi Python**
+
'''Langkah 2: Buat Simulasi Blockchain'''
```bash
 
sudo apt update
 
sudo apt install python3 python3-pip
 
```
 
  
#### **Langkah 2: Buat Simulasi Blockchain**
+
'''File: blockchain.py'''
**File: blockchain.py**
 
```python
 
import hashlib
 
import json
 
from time import time
 
  
class Block:
+
import hashlib
    def __init__(self, index, timestamp, data, previous_hash):
+
import json
        self.index = index
+
from time import time
        self.timestamp = timestamp
+
        self.data = data
+
class Block:
        self.previous_hash = previous_hash
+
    def __init__(self, index, timestamp, data, previous_hash):
        self.hash = self.calculate_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()
  
    def calculate_hash(self):
+
'''Jalankan Program'''
        content = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}"
 
        return hashlib.sha256(content.encode()).hexdigest()
 
  
class Blockchain:
+
python3 blockchain.py
    def __init__(self):
 
        self.chain = [self.create_genesis_block()]
 
  
    def create_genesis_block(self):
+
==5. Contoh Basis Data Terdesentralisasi Nyata==
        return Block(0, time(), "Genesis Block", "0")
 
  
    def get_last_block(self):
+
'''5.1 BigchainDB'''
        return self.chain[-1]
 
  
    def add_block(self, data):
+
BigchainDB adalah sistem basis data terdesentralisasi dengan fitur blockchain.
        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):
+
'''Instalasi Docker di Ubuntu 24.04:'''
        for block in self.chain:
 
            print(f"Index: {block.index}, Hash: {block.hash}, Data: {block.data}\n")
 
  
# Simulasi
+
sudo apt install docker.io
if __name__ == "__main__":
+
sudo systemctl start docker
    chain = Blockchain()
+
sudo systemctl enable docker
    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**
+
'''Jalankan BigchainDB Node (via Docker):'''
```bash
 
python3 blockchain.py
 
```
 
  
---
+
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. Contoh Basis Data Terdesentralisasi Nyata**
 
  
#### **5.1 BigchainDB**
+
'''5.2 IPFS (InterPlanetary File System)'''
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.
 
IPFS menyimpan file secara desentralisasi.
  
```bash
+
sudo apt install ipfs
sudo apt install ipfs
+
ipfs init
ipfs init
+
ipfs daemon
ipfs daemon
 
```
 
  
 
Tambahkan file ke jaringan:
 
Tambahkan file ke jaringan:
```bash
 
ipfs add hello.txt
 
```
 
  
---
+
ipfs add hello.txt
  
### **6. Use Case Blockchain sebagai Basis Data**
+
==6. Use Case Blockchain sebagai Basis Data==
  
- **Supply Chain:** Melacak asal-usul dan pergerakan barang secara transparan.
+
* '''Supply Chain:''' Melacak asal-usul dan pergerakan barang secara transparan.
- **Sertifikasi & Dokumen:** Menyimpan ijazah, sertifikat, dan kontrak legal.
+
* '''Sertifikasi & Dokumen:''' Menyimpan ijazah, sertifikat, dan kontrak legal.
- **Identitas Digital:** Sistem identitas tanpa pusat kendali.
+
* '''Identitas Digital:''' Sistem identitas tanpa pusat kendali.
- **Voting Sistem:** Pemilu digital dengan transparansi tinggi.
+
* '''Voting Sistem:''' Pemilu digital dengan transparansi tinggi.
  
---
+
==7. Kesimpulan==
  
### **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.
  
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.
 
  
---
+
==Pranala Menarik==
  
Kalau kamu tertarik eksplorasi lebih lanjut (misal implementasi **Ethereum smart contract di Ubuntu**), tinggal bilang aja!
+
* [[Database]]
 +
* [[Database: Kuliah]]

Latest revision as of 16:54, 6 May 2025

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

Tren Terkini dalam Basis Data

Topik: Blockchain dan Basis Data Terdesentralisasi

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

sudo apt update
sudo apt install python3 python3-pip

Langkah 2: Buat Simulasi Blockchain

File: blockchain.py

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

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:

sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

Jalankan BigchainDB Node (via Docker):

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.

sudo apt install ipfs
ipfs init
ipfs daemon

Tambahkan file ke jaringan:

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.


Pranala Menarik