Prinsip-prinsip pelindungan data pribadi

From OnnoWiki
Jump to navigation Jump to search

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

---

    1. 🛡️ **Modul 9 (Lanjutan): Proteksi Data Pribadi**
      1. 📌 Topik: Prinsip-Prinsip Pelindungan Data Pribadi dan Contohnya

---

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

---

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

---

    1. 🛠️ **9.8 Contoh Implementasi di MySQL Ubuntu 24.04**
      1. 🧩 1. **Pencatatan Persetujuan**

```sql CREATE TABLE pengguna (

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

); ```

---

      1. 🔒 2. **Kontrol Akses Berdasarkan Tujuan**

Misalnya hanya admin yang boleh mengakses semua data:

```sql -- 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'; ```

---

      1. ✅ 3. **Validasi Akurasi Data**

```sql 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)

); ```

---

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

---

      1. 🔐 5. **Keamanan: Enkripsi Manual dan Pembatasan Akses**
    • Enkripsi data email (opsional, manual):**

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

---

      1. 📋 6. **Akuntabilitas: Logging Akses (Manual Logging)**

```sql 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.

---

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

---

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!