Prinsip-prinsip pelindungan data pribadi: Difference between revisions
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..." |
No edit summary |
||
| Line 1: | Line 1: | ||
==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. | ||
| Line 14: | Line 5: | ||
- 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. | ||
==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 | {| 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. | ||
| | |- | ||
| | | '''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: | Misalnya hanya admin yang boleh mengakses semua data: | ||
-- 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'; | |||
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; | |||
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''' | |||
'''Enkripsi data email (opsional, manual):''' | |||
-- 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)''' | |||
CREATE TABLE log_akses ( | |||
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== | |||
--- | {| 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 | |||
|} | |||
==Pranala Menarik== | |||
* [[Database: Kuliah]] | |||
Revision as of 00:59, 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.041. 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
);
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';
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.
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'));
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
Pranala Menarik |