Episode ini membahas keamanan dan privasi data untuk analis: mengenali PII, memahami regulasi seperti GDPR dan UU PDP, menerapkan role-based access, dan teknik anonymization — ditutup praktik menangani data sensitif dengan benar

Data yang berkualitas (episode 18) tidak berarti apa-apa jika penggunaannya melanggar privasi. Data analyst bekerja dengan data pribadi — nama, email, nomor telepon, alamat, riwayat pembelian — dan kebocoran atau penyalahgunaan satu dataset bisa menghancurkan kepercayaan perusahaan. Regulasi di Indonesia (UU PDP) dan global (GDPR) kini memberi sanksi nyata atas kelalaian ini.
Episode ini membangun kesadaran dan keterampilan privasi: mengenali PII, memahami regulasi, membatasi akses dengan role-based access, dan menyembunyikan identitas lewat anonymization. Fokusnya praktik harian analis — bukan hukum, tetapi prinsip kerja yang aman.
PII (Personally Identifiable Information) adalah data yang bisa mengidentifikasi seseorang, baik langsung maupun tidak langsung:
| Kategori | Contoh |
|---|---|
| Langsung | Nama lengkap, email, nomor HP, NIK/KTP, alamat |
| Tidak langsung | Kombinasi tanggal lahir + kode pos + jenis kelamin |
| Khusus (sensitif) | Kesehatan, agama, politik, biometrik, data anak |
Aturan emas: jika bisa menebak siapa orangnya, itu PII. Kolom user_123 yang dipisah dari tabel mapping bukan PII; kolom budi@gmail.com adalah PII. Analis harus selalu bisa menjawab: dataset ini mengandung PII apa, dan siapa yang boleh melihatnya?
Dua regulasi yang paling relevan untuk analis di Indonesia:
| Aspek | UU PDP (Indonesia) | GDPR (Eropa) |
|---|---|---|
| Berlaku | 2024, bertahap | 2018 |
| Prinsip | Persetujuan (consent) | Lawful basis |
| Hak subjek | Akses, hapus, perbaiki | Akses, hapus, portabilitas |
| Sanksi | Administratif & pidana | Sampai 4% revenue global |
Prinsip praktis yang berlaku di keduanya:
Warning
Email internal yang berisi CSV pelanggan yang tidak dianonymize adalah pelanggaran yang umum dan mahal. Sebelum mengirim file apa pun, tanya dua hal: apakah kolom ini benar-benar dibutuhkan penerima? Apakah identitas bisa disamarkan?
RBAC membatasi akses data berdasarkan peran — least privilege: setiap orang hanya melihat data yang dibutuhkan pekerjaannya. Contoh pola di PostgreSQL:
CREATE ROLE analyst;
CREATE ROLE analyst_manager;
-- Analis hanya melihat data non-sensitif
GRANT SELECT ON orders TO analyst;
REVOKE SELECT ON customers FROM analyst;
-- Manager punya akses tambahan
GRANT SELECT ON customers TO analyst_manager;Di warehouse modern, pola yang sama dipakai di level kolom (column-level security) — misal marketing boleh melihat email, tetapi tidak boleh melihat data pendapatan per user. Sebagai analis, kalian juga penerima RBAC: memahami akses apa yang kalian miliki dan tidak mencoba jalan pintas adalah bagian dari profesionalisme.
Saat data pribadi tidak benar-benar dibutuhkan, identitas harus disembunyikan. Dua teknik utama:
| Teknik | Cara kerja | Contoh |
|---|---|---|
| Pseudonymization | Ganti ID langsung dengan kode acak | budi@gmail.com → usr_8f3a2 |
| Anonymization | Hapus semua keterhubungan (irreversible) | Nama, email, NIK dihapus/digeneralisasi |
import hashlib
def pseudonymize(email):
return "usr_" + hashlib.sha256(email.encode()).hexdigest()[:10]
users["user_id"] = users["email"].apply(pseudonymize)Generalisasi adalah teknik pelengkap: alamat lengkap → kecamatan → kota, atau usia presisi → rentang 25-30. Untuk analisis segmentasi, generalisasi sering sudah cukup dan jauh lebih aman.
Checklist praktik yang harus menjadi kebiasaan:
| Situasi | Praktik yang benar |
|---|---|
| Ekspor data | Hanya kolom yang dibutuhkan; pseudonymize bila memungkinkan |
| Kirim via email/chat | Jangan; gunakan akses terproteksi dan jangan sertakan PII |
| Notebook/script | Jangan hardcode kredensial; simpan secret di env |
| Visualisasi | Anonimkan label jika data individual |
| Sumber eksternal | Cek lisensi & consent sebelum memakai data pihak ketiga |
| Menghapus data | Hapus permanen (jangan cuma hapus dari file yang di-share) |
Satu kebiasaan yang menyelamatkan karir: sebelum mengirim atau mem-publish hasil analisis, tanya "dataset ini mengandung PII yang tidak diperlukan?" Kalau ya, bersihkan dulu.
import pandas as pd
df = pd.read_csv("customers.csv")
# 1. Buang kolom yang tidak dibutuhkan penerima
share = df.drop(columns=["email", "phone", "address"])
# 2. Pseudonymize identitas yang tersisa
share["customer_id"] = share["customer_id"].map(lambda x: "usr_" + str(x)[-6:])
# 3. Generalisasi kolom geografis
share["kecamatan"] = share["kota"]
# 4. Cek ulang sebelum ekspor
assert "email" not in share.columns
share.to_csv("customers_share.csv", index=False)Lima baris ini mengubah dataset ber-PII menjadi dataset aman untuk dibagikan — kebiasaan yang akan kalian lakukan ratusan kali sepanjang karir.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya kita menatap cermin: Etika Data & Bias — bias dalam data, interpretasi yang salah, dan etika pelaporan. Data kalian sekarang aman secara teknis; saatnya memastikan ia juga adil dan jujur secara etis!