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

From OnnoWiki
Jump to navigation Jump to search
Line 11: Line 11:
  
 
{| class="wikitable"
 
{| class="wikitable"
! Prinsip                    !! Penjelasan  !! Contoh Praktik di MySQL Ubuntu 24.04 !!
+
! 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.
 
| '''1. Persetujuan (Consent)'''        || Data hanya boleh dikumpulkan dan digunakan jika telah disetujui oleh subjek data.      || Tabel harus mencatat status persetujuan pengguna.
Line 26: Line 26:
 
|-
 
|-
 
| '''7. Akuntabilitas (Accountability)'''        || Pengendali data harus dapat menunjukkan kepatuhan terhadap prinsip ini.                || Catat log akses atau audit trail.
 
| '''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==
 
==Contoh Implementasi di MySQL Ubuntu 24.04==

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