Difference between revisions of "Prinsip-prinsip pelindungan data pribadi"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) (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...") |
Onnowpurbo (talk | contribs) |
||
(3 intermediate revisions by the same user not shown) | |||
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. | |
− | + | * 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): | 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 ( | |
− | 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]] |
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 |