Difference between revisions of "Prinsip-prinsip pelindungan data pribadi"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Berikut adalah lanjutan dari **Modul 9: Proteksi Data Pribadi**, dengan fokus pada **Prinsip-Prinsip Pelindungan Data Pribadi**, dilengkapi dengan **contoh implementasi teknis...")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Berikut adalah lanjutan dari **Modul 9: Proteksi Data Pribadi**, dengan fokus pada **Prinsip-Prinsip Pelindungan Data Pribadi**, dilengkapi dengan **contoh implementasi teknis di MySQL Ubuntu 24.04**.
+
==Tujuan Pembelajaran==
 
 
---
 
 
 
## 🛡️ **Modul 9 (Lanjutan): Proteksi Data Pribadi**
 
### 📌 Topik: Prinsip-Prinsip Pelindungan Data Pribadi dan Contohnya
 
 
 
---
 
 
 
### 🎯 **Tujuan Pembelajaran**
 
 
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu:
 
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu:
- Menjelaskan prinsip-prinsip utama perlindungan data pribadi.
+
* Menjelaskan prinsip-prinsip utama perlindungan data pribadi.
- Menghubungkan prinsip-prinsip tersebut ke dalam praktik sistem basis data.
+
* Menghubungkan prinsip-prinsip tersebut ke dalam praktik sistem basis data.
- Mengimplementasikan fitur keamanan dan kontrol di MySQL untuk mendukung kepatuhan terhadap perlindungan data.
+
* Mengimplementasikan fitur keamanan dan kontrol di MySQL untuk mendukung kepatuhan terhadap perlindungan data.
 
 
---
 
  
## 📚 **9.7 Prinsip-Prinsip Pelindungan Data Pribadi**
+
==Prinsip-Prinsip Pelindungan Data Pribadi==
  
 
Berikut adalah prinsip-prinsip yang umum digunakan secara internasional (juga tercantum dalam UU No. 27/2022 tentang Pelindungan Data Pribadi di Indonesia):
 
Berikut adalah prinsip-prinsip yang umum digunakan secara internasional (juga tercantum dalam UU No. 27/2022 tentang Pelindungan Data Pribadi di Indonesia):
  
| Prinsip                    | Penjelasan                                                                                 | Contoh Praktik di MySQL Ubuntu 24.04                           |
+
{| class="wikitable"
|---------------------------|---------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
+
! Prinsip                    !! Penjelasan !! Contoh Praktik di MySQL Ubuntu 24.04
| **1. Persetujuan (Consent)**         | Data hanya boleh dikumpulkan dan digunakan jika telah disetujui oleh subjek data.      | Tabel harus mencatat status persetujuan pengguna.             |
+
|-
| **2. Tujuan Terbatas (Purpose Limitation)** | Data hanya boleh digunakan untuk tujuan yang sah dan disetujui.                        | Gunakan peran (role-based access) untuk membatasi penggunaan. |
+
| '''1. Persetujuan (Consent)'''         || Data hanya boleh dikumpulkan dan digunakan jika telah disetujui oleh subjek data.      || Tabel harus mencatat status persetujuan pengguna.
| **3. Minimalisasi Data (Data Minimization)** | Hanya data yang benar-benar dibutuhkan yang boleh dikumpulkan.                        | Jangan buat kolom berlebihan; hindari menyimpan data sensitif jika tidak perlu. |
+
|-
| **4. Akurasi (Accuracy)**           | Data harus dijaga agar tetap akurat dan diperbarui.                                    | Gunakan constraint dan validasi.                               |
+
| '''2. Tujuan Terbatas (Purpose Limitation)''' || Data hanya boleh digunakan untuk tujuan yang sah dan disetujui.                        || Gunakan peran (role-based access) untuk membatasi penggunaan.
| **5. Penyimpanan Terbatas (Storage Limitation)** | Data tidak boleh disimpan lebih lama dari yang diperlukan.                            | Terapkan mekanisme penghapusan otomatis berdasarkan waktu.     |
+
|-
| **6. Integritas dan Kerahasiaan (Security)** | Data harus dilindungi dari akses tidak sah atau pelanggaran.                          | Gunakan GRANT/REVOKE, enkripsi, dan backup.                   |
+
| '''3. Minimalisasi Data (Data Minimization)''' || Hanya data yang benar-benar dibutuhkan yang boleh dikumpulkan.                        || Jangan buat kolom berlebihan; hindari menyimpan data sensitif jika tidak perlu.
| **7. Akuntabilitas (Accountability)**       | Pengendali data harus dapat menunjukkan kepatuhan terhadap prinsip ini.                | Catat log akses atau audit trail.                             |
+
|-
 
+
| '''4. Akurasi (Accuracy)'''           || Data harus dijaga agar tetap akurat dan diperbarui.                                    || Gunakan constraint dan validasi.
---
+
|-
 +
| '''5. Penyimpanan Terbatas (Storage Limitation)''' || Data tidak boleh disimpan lebih lama dari yang diperlukan.                            || Terapkan mekanisme penghapusan otomatis berdasarkan waktu.
 +
|-
 +
| '''6. Integritas dan Kerahasiaan (Security)''' || Data harus dilindungi dari akses tidak sah atau pelanggaran.                          || Gunakan GRANT/REVOKE, enkripsi, dan backup.
 +
|-
 +
| '''7. Akuntabilitas (Accountability)'''       || Pengendali data harus dapat menunjukkan kepatuhan terhadap prinsip ini.                || Catat log akses atau audit trail.
 +
|}
  
## 🛠️ **9.8 Contoh Implementasi di MySQL Ubuntu 24.04**
+
==Contoh Implementasi di MySQL Ubuntu 24.04==
  
### 🧩 1. **Pencatatan Persetujuan**
+
1. '''Pencatatan Persetujuan'''
  
```sql
+
CREATE TABLE pengguna (
CREATE TABLE pengguna (
+
    id INT PRIMARY KEY AUTO_INCREMENT,
    id INT PRIMARY KEY AUTO_INCREMENT,
+
    nama VARCHAR(100),
    nama VARCHAR(100),
+
    email VARCHAR(100),
    email VARCHAR(100),
+
    setuju_pdp BOOLEAN DEFAULT FALSE,
    setuju_pdp BOOLEAN DEFAULT FALSE,
+
    tanggal_setuju TIMESTAMP NULL
    tanggal_setuju TIMESTAMP NULL
+
);
);
 
```
 
  
---
 
  
### 🔒 2. **Kontrol Akses Berdasarkan Tujuan**
+
2. '''Kontrol Akses Berdasarkan Tujuan'''
  
 
Misalnya hanya admin yang boleh mengakses semua data:
 
Misalnya hanya admin yang boleh mengakses semua data:
  
```sql
+
-- Buat user terbatas
-- Buat user terbatas
+
CREATE USER 'survey_user'@'localhost' IDENTIFIED BY 'safePass123';
CREATE USER 'survey_user'@'localhost' IDENTIFIED BY 'safePass123';
+
 +
-- Hanya izinkan akses kolom non-sensitif
 +
GRANT SELECT(nama, email) ON mydb.pengguna TO 'survey_user'@'localhost';
  
-- Hanya izinkan akses kolom non-sensitif
 
GRANT SELECT(nama, email) ON mydb.pengguna TO 'survey_user'@'localhost';
 
```
 
  
---
+
3. '''Validasi Akurasi Data'''
  
### ✅ 3. **Validasi Akurasi Data**
+
CREATE TABLE mahasiswa (
 +
    nim VARCHAR(10) PRIMARY KEY,
 +
    nama VARCHAR(100) NOT NULL,
 +
    email VARCHAR(100),
 +
    ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00)
 +
);
  
```sql
+
4. '''Penghapusan Otomatis Data Lama (Retention Policy)'''
CREATE TABLE mahasiswa (
 
    nim VARCHAR(10) PRIMARY KEY,
 
    nama VARCHAR(100) NOT NULL,
 
    email VARCHAR(100),
 
    ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00)
 
);
 
```
 
  
---
+
DELETE FROM log_akses
 
+
WHERE waktu_akses < NOW() - INTERVAL 1 YEAR;
### 🧹 4. **Penghapusan Otomatis Data Lama (Retention Policy)**
 
 
 
```sql
 
DELETE FROM log_akses
 
WHERE waktu_akses < NOW() - INTERVAL 1 YEAR;
 
```
 
  
 
> Bisa dijalankan otomatis lewat cron job di Ubuntu.
 
> Bisa dijalankan otomatis lewat cron job di Ubuntu.
  
---
 
  
### 🔐 5. **Keamanan: Enkripsi Manual dan Pembatasan Akses**
+
5. '''Keamanan: Enkripsi Manual dan Pembatasan Akses'''
  
**Enkripsi data email (opsional, manual):**
+
'''Enkripsi data email (opsional, manual):'''
  
```sql
+
-- Contoh hanya ilustrasi, enkripsi dilakukan di level aplikasi
-- Contoh hanya ilustrasi, enkripsi dilakukan di level aplikasi
+
INSERT INTO pengguna (nama, email)
INSERT INTO pengguna (nama, email)
+
VALUES ('Budi', AES_ENCRYPT('budi@mail.com', 'kunci_rahasia'));
VALUES ('Budi', AES_ENCRYPT('budi@mail.com', 'kunci_rahasia'));
 
```
 
  
---
 
  
### 📋 6. **Akuntabilitas: Logging Akses (Manual Logging)**
+
6. '''Akuntabilitas: Logging Akses (Manual Logging)'''
  
```sql
+
CREATE TABLE log_akses (
CREATE TABLE log_akses (
+
    user VARCHAR(50),
    user VARCHAR(50),
+
    waktu_akses TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    waktu_akses TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+
    tindakan VARCHAR(255)
    tindakan VARCHAR(255)
+
);
);
+
 +
-- Insert log saat pengguna mengakses data
 +
INSERT INTO log_akses (user, tindakan) VALUES ('admin', 'Lihat tabel pengguna');
  
-- Insert log saat pengguna mengakses data
+
> Untuk logging otomatis, perlu integrasi dengan aplikasi atau trigger.
INSERT INTO log_akses (user, tindakan) VALUES ('admin', 'Lihat tabel pengguna');
 
```
 
  
> Untuk logging otomatis, perlu integrasi dengan aplikasi atau trigger.
+
==Ringkasan Praktik MySQL untuk Prinsip PDP==
  
---
+
{| class="wikitable"
 +
! Prinsip        !! Fitur MySQL yang Relevan
 +
|-
 +
| Persetujuan    || Kolom `BOOLEAN`, timestamp persetujuan
 +
|-
 +
| Tujuan Terbatas|| `GRANT`, `REVOKE`, user terbatas
 +
|-
 +
| Minimasi Data  || Desain tabel efisien, tanpa data tidak perlu
 +
|-
 +
| Akurasi        || Constraint, `CHECK`, validasi input
 +
|-
 +
| Retensi        || Query `DELETE` + `cron` atau trigger
 +
|-
 +
| Keamanan      || Role-based access, enkripsi, backup
 +
|-
 +
| Akuntabilitas  || `log_akses` table atau binary log
 +
|}
  
## ✅ **9.9 Ringkasan Praktik MySQL untuk Prinsip PDP**
 
  
| Prinsip        | Fitur MySQL yang Relevan                |
 
|----------------|------------------------------------------|
 
| Persetujuan    | Kolom `BOOLEAN`, timestamp persetujuan  |
 
| Tujuan Terbatas| `GRANT`, `REVOKE`, user terbatas        |
 
| Minimasi Data  | Desain tabel efisien, tanpa data tidak perlu |
 
| Akurasi        | Constraint, `CHECK`, validasi input      |
 
| Retensi        | Query `DELETE` + `cron` atau trigger    |
 
| Keamanan      | Role-based access, enkripsi, backup      |
 
| Akuntabilitas  | `log_akses` table atau binary log        |
 
  
---
+
==Pranala Menarik==
  
Kalau kamu mau lanjut ke bagian akhir **Modul 9** untuk praktik audit dan notifikasi pelanggaran privasi (alert log), atau simulasi laporan kepatuhan UU PDP, tinggal bilang saja!
+
* [[Database: Kuliah]]

Latest revision as of 08:02, 21 April 2025

Tujuan Pembelajaran

Setelah mempelajari bagian ini, mahasiswa diharapkan mampu:

  • Menjelaskan prinsip-prinsip utama perlindungan data pribadi.
  • Menghubungkan prinsip-prinsip tersebut ke dalam praktik sistem basis data.
  • Mengimplementasikan fitur keamanan dan kontrol di MySQL untuk mendukung kepatuhan terhadap perlindungan data.

Prinsip-Prinsip Pelindungan Data Pribadi

Berikut adalah prinsip-prinsip yang umum digunakan secara internasional (juga tercantum dalam UU No. 27/2022 tentang Pelindungan Data Pribadi di Indonesia):

Prinsip Penjelasan Contoh Praktik di MySQL Ubuntu 24.04
1. Persetujuan (Consent) Data hanya boleh dikumpulkan dan digunakan jika telah disetujui oleh subjek data. Tabel harus mencatat status persetujuan pengguna.
2. Tujuan Terbatas (Purpose Limitation) Data hanya boleh digunakan untuk tujuan yang sah dan disetujui. Gunakan peran (role-based access) untuk membatasi penggunaan.
3. Minimalisasi Data (Data Minimization) Hanya data yang benar-benar dibutuhkan yang boleh dikumpulkan. Jangan buat kolom berlebihan; hindari menyimpan data sensitif jika tidak perlu.
4. Akurasi (Accuracy) Data harus dijaga agar tetap akurat dan diperbarui. Gunakan constraint dan validasi.
5. Penyimpanan Terbatas (Storage Limitation) Data tidak boleh disimpan lebih lama dari yang diperlukan. Terapkan mekanisme penghapusan otomatis berdasarkan waktu.
6. Integritas dan Kerahasiaan (Security) Data harus dilindungi dari akses tidak sah atau pelanggaran. Gunakan GRANT/REVOKE, enkripsi, dan backup.
7. Akuntabilitas (Accountability) Pengendali data harus dapat menunjukkan kepatuhan terhadap prinsip ini. Catat log akses atau audit trail.

Contoh Implementasi di MySQL Ubuntu 24.04

1. Pencatatan Persetujuan

CREATE TABLE pengguna (
    id INT PRIMARY KEY AUTO_INCREMENT,
    nama VARCHAR(100),
    email VARCHAR(100),
    setuju_pdp BOOLEAN DEFAULT FALSE,
    tanggal_setuju TIMESTAMP NULL
);


2. Kontrol Akses Berdasarkan Tujuan

Misalnya hanya admin yang boleh mengakses semua data:

-- Buat user terbatas
CREATE USER 'survey_user'@'localhost' IDENTIFIED BY 'safePass123';

-- Hanya izinkan akses kolom non-sensitif
GRANT SELECT(nama, email) ON mydb.pengguna TO 'survey_user'@'localhost';


3. Validasi Akurasi Data

CREATE TABLE mahasiswa (
    nim VARCHAR(10) PRIMARY KEY,
    nama VARCHAR(100) NOT NULL,
    email VARCHAR(100),
    ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00)
);

4. Penghapusan Otomatis Data Lama (Retention Policy)

DELETE FROM log_akses
WHERE waktu_akses < NOW() - INTERVAL 1 YEAR;

> Bisa dijalankan otomatis lewat cron job di Ubuntu.


5. Keamanan: Enkripsi Manual dan Pembatasan Akses

Enkripsi data email (opsional, manual):

-- Contoh hanya ilustrasi, enkripsi dilakukan di level aplikasi
INSERT INTO pengguna (nama, email)
VALUES ('Budi', AES_ENCRYPT('budi@mail.com', 'kunci_rahasia'));


6. Akuntabilitas: Logging Akses (Manual Logging)

CREATE TABLE log_akses (
    user VARCHAR(50),
    waktu_akses TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    tindakan VARCHAR(255)
);

-- Insert log saat pengguna mengakses data
INSERT INTO log_akses (user, tindakan) VALUES ('admin', 'Lihat tabel pengguna');

> Untuk logging otomatis, perlu integrasi dengan aplikasi atau trigger.

Ringkasan Praktik MySQL untuk Prinsip PDP

Prinsip Fitur MySQL yang Relevan
Persetujuan Kolom `BOOLEAN`, timestamp persetujuan
Tujuan Terbatas `GRANT`, `REVOKE`, user terbatas
Minimasi Data Desain tabel efisien, tanpa data tidak perlu
Akurasi Constraint, `CHECK`, validasi input
Retensi Query `DELETE` + `cron` atau trigger
Keamanan Role-based access, enkripsi, backup
Akuntabilitas `log_akses` table atau binary log


Pranala Menarik