GDPR untuk Engineer: Bukan cuma Hukum, tapi Arsitektur

Banyak engineer bingung kalau legal bicara "GDPR compliance". Mereka anggap itu urusan hukum, bukan kode. Namun GDPR secara langsung mengharuskan sistem melacak consent, mengekspor data, menghapus akun, dan melaporkan breach dalam 72 jam. Jika arsitektur tidak mendukung, compliance menjadi mahal atau mustahil. Artikel ini tidak mendefinisikan "data controller" dari buku. Kita bedah apa yang engineer perlu bangun: consent log, data minimization, right-to-erasure, breach pipeline, dan DPA untuk vendor.

Apa sebenarnya GDPR lindungi

GDPR melindungi "personal data" — informasi yang dapat mengidentifikasi individu langsung (nama, NIK, email, IP) atau tidak langsung (lokasi, device ID, browsing fingerprint). Yang tidak dilindungi: data anonim yang tidak bisa di-reidentifikasi.

Prinsip dasar (Article 5): - Lawfulness, fairness, transparency - Purpose limitation - Data minimization - Accuracy - Storage limitation - Integrity + confidentiality - Accountability

Yang paling berdampak ke engineering: purpose limitation + data minimization — kamu tidak boleh kumpulkan data yang tidak diperlukan untuk tujuan tertentu, dan tidak boleh dipakai untuk tujuan lain tanpa consent baru.

Lawful basis: bukan cuma "kita setuju"

Banyak orang pikir GDPR = consent always required. Salah. Ada 6 lawful basis: 1. Consent 2. Contract 3. Legal obligation 4. Vital interests 5. Public task 6. Legitimate interests

Contoh: kamu tidak perlu consent untuk memproses pembayaran (contract), atau melaporkan transaksi ke regulator (legal obligation). Tapi untuk iklan targeted atau analytics, kamu biasanya butuh consent. Salah pilih basis = invalid processing = denda.

Consent harus: - Granular untuk tiap purpose (jangan satu checkbox "saya setuju semua"). - Withdrawable kapan saja (tombol "keluar" harus setara mudah dengan "masuk"). - Logged — kamu harus buktikan bahwa user setuju. Audit trail berupa timestamp, IP, dan versi TOS.

# BAD: one checkbox covering analytics + marketing + sharing
[ ] I agree to everything
# GOOD: per-purpose toggles
[ ] Essential cookies (required)
[ ] Analytics (optional)
[ ] Marketing emails (optional)

Teknis: simpan consent record di database terpisah (bukan cuma cookie), bersama dengan versi privacy policy yang berlaku. Saat policy berbarui, minta consent baru untuk purpose yang berubah.

Data minimization: lebih sedikit yang kamu kumpulkan, lebih aman

Prinsip "hanya kumpulkan yang benar-benar perlu" mengurangi blast radius kalau terjadi breach. Contoh: - Wajib untuk checkout: nama, email, alamat, telepon — sehat. - Tidak perlu untuk checkout: birthdate, device fingerprint, browsing history kecuali untuk fraud prevention. - Boleh tapi tidak disimpan lama: alamat hanya sampai delivery complete, lalu anonymize/hapus.

Dampak engineering: schema database seharusnya memiliki retention_days atau TTL. Cron job menghapus/men-anonymize data setelah retensi berakhir. Tanpa ini, kamu melanggar storage limitation.

Right to access, portability, erasure

GDPR memberimu hak "as a data subject": - Access (Article 15): user minta salinan data mereka. Harus bisa jalankan export dalam 30 hari, format machine-readable (JSON/CSV). - Portability (Article 20): user minta transfer data ke competitor. Format harus terbuka, tidak proprietary. - Erasure / "right to be forgotten" (Article 17): user minta hapus data. Harus ada endpoint self-service + admin flow yang benar-benar menghapus (bukan cuma soft-delete yang masih bisa di-recover).

Teknis: - Tambah endpoint GET /api/me/export dan DELETE /api/me/account. - Soft-delete tidak cukup — harus hard-delete dari backup juga, atau gunakan technique "pseudonymization" untuk data historis. - Hindari manual SQL delete di production — buatlah automated job yang ter-audit.

Data breach notification: 72 jam ke DPA

Breach yang melibatkan personal data harus dilaporkan ke Data Protection Authority (DPA) dalam 72 jam setelah diketahui. Jika berisiko tinggi terhadap hak-hak subjek, kamu juga harus memberitahu user.

Yang dianggap breach: - Unauthorized access ke database (SQL injection berhasil). - Lost laptop tanpa encryption. - Exfiltration oleh insider. - Email dengan data PII dikirim ke orang salah.

Yang tidak dianggap breach: - Data tersedia untuk public karena user sendiri publish (tapi harus di-document).

Teknis: kamu butuh: - Audit log untuk semua akses ke personal data. - Monitoring anomali (export massal, banyak delete). - Runbook: langkah-langkah saat breach — isolate, assess, notify DPA, notify user.

Privacy by Design & by Default

Artikel 25 mengharuskan privacy di-build sejak awal, bukan tambahan belakangan. Contoh: - Default: form login hanya minta email + password, tidak minta phone atau address kecuali perlu. - Pseudonymization: ganti identifier dengan token, data sensitif terpisah. - Encryption at rest + in transit (HTTPS/TLS). - Log hanya menyimpan metadata (user_id, timestamp, action) bukan full PII kecuali benar-benar perlu.

Teknis: dalam design review, tambahkan "privacy checklist" — apakah data yang dikumpulkan minimal? Apakah encrypt? Apakah log bisa di-reduce?

Vendor / Processor: DPA dan standard contractual clauses

Banyak company pakai vendor (SaaS) yang memproses data atas nama mereka. Jika vendor di luar EEA atau tidak memiliki adequacy decision, kamu butuh Standard Contractual Clauses (SCC) atau Binding Corporate Rules. Vendor menjadi "processor" dan kamu sebagai "controller" bertanggung jawab penuh.

Praktek yang buruk: pilih vendor karena murah, tanpa auditi keamanan mereka. Contoh nyata risiko rantai vendor: British Airways (2018) didenda ICO karena script pihak ketiga yang disusupi (serangan Magecart) mencuri data pembayaran ratusan ribu pelanggan. GDPR membuat controller tetap bertanggung jawab meskipun breach terjadi di processor atau vendor pihak ketiga.

Cookies dan tracking: ePrivacy Directive synergy

GDPR tidak berdiri sendiri. EPrivacy Directive (ePrivacy Regulation yang sedang dirancang) mengatur cookies dan electronic communication. Implikasi: - Cookies non-essential butuh consent (analytics, ads). - Consent harus bisa withdraw dengan setara mudah. - Pixel tracking dan fingerprinting masuk kategori yang butuh consent.

Teknis: cookie banner tidak boleh "dark pattern" (tidak ada tombol "tolak" sebanding "terima"). Preferensi disimpan di cookie/consent management platform, bukan di localStorage yang bisa diubah user tanpa knowledge.

DPA dan Lead Authority

Setiap negara anggota EEA punya DPA. Perusahaan harus memilih "lead DPA" berdasarkan lokasi utama processing atau tempat "main establishment". Jika kamu punya pelanggan di banyak negara, lead DPA biasanya tempat kantor utama EU. Jika tidak ada establishment di EU, libatkan DPA lokal di mana user tinggal — tapi biasanya praktiknya lebih rumit.

Denda dan case studies

Denda maksimum GDPR: 4% global turnover atau €20 juta, mana yang lebih tinggi. Tahun ini beberapa kasus besar: - Meta €1.2 miliar (SCC transfer ke AS, 2023) - Amazon €746 juta (targeted ads, 2021) - Google €50 juta (consent not specific, 2019)

Bukan hanya besar perusahaan yang ditarget. DPA juga menekan SME yang melanggar retention, security, atau breach notification.

Kesalahan engineer yang bikin denda

  1. Tidak ada audit trail consent — kamu tidak bisa buktikan user setuju.
  2. Soft-delete dianggap cukup — regulator minta penghapusan sebenarnya.
  3. Log penuh PII — dalam breach, log itu sama berisikonya dengan database.
  4. Breach terlambat dilapor — 72 jam habis, denda meningkat.
  5. Vendor tanpa SCC — controller tetap bertanggung jawab.
  6. Data retention tanpa TTL — data tua tetap menumpuk di S3/DB.
  7. Export dalam format proprietary — portability gagal.
  8. Consent "all or nothing" — invalid lawful basis.

GDPR dan Indonesia

Bagi perusahaan Indonesia yang serve pelanggan EEA atau establishing kantor di EEA, GDPR tetap berlaku. Meskipun Indonesia belum ada undang-undang sebanding, UU PDP 2022 sudah banyak mengambil prinsip GDPR. Engineer Indonesia yang handle data warga EEA harus paham dua-duanya.

Takeaways

  • Privacy Engineering bukan pilihan — compliance butuh sistem, bukan cuma policy.
  • Consent harus granular, logged, withdrawable.
  • Data minimization = lebih sedikit data = lebih kecil breach impact.
  • Right to erasure butuh hard-delete; soft-delete tidak cukup.
  • Breach 72 jam ke DPA — butuh audit trail + runbook.
  • Privacy by Design: encrypt, pseudonymize, default minimal.
  • Vendor processor butuh DPA + SCC.
  • DPA lead: pilih establishment utama di EU.
  • Denda nyata; regulator aktif menekan SME juga.
  • Indonesia: UU PDP selaras banyak prinsip GDPR.