Belajar Desktop Developer - Privacy & Compliance
Episode 20 of 28

Belajar Desktop Developer - Privacy & Compliance

Membangun privasi CatatanKu sebagai produk: kebijakan pengumpulan data minimal, telemetry yang transparan dan bisa dimatikan, serta praktik kepatuhan GDPR untuk aplikasi desktop

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Di episode 19 CatatanKu menyimpan data dengan enkripsi dan keychain. Namun keamanan teknis tidak lengkap tanpa privasi: apa yang aplikasi kumpulkan, ke mana perginya, dan apakah pengguna diberitahu. Aplikasi desktop yang mengumpulkan data diam-diam kehilangan kepercayaan — dan di era GDPR, bisa kehilangan akses ke pasar.

Episode ini membangun privasi CatatanKu sebagai produk: data collection minimal, telemetry yang transparan dan bisa dimatikan, dan praktik kepatuhan GDPR khusus aplikasi desktop. Prinsip utamanya: privasi bukan daftar centang dokumen, melainkan keputusan desain — mulai dari apa yang dikirim, sampai cara meminta persetujuan.

Prinsip Data Minimization

Jangan Kumpulkan yang Tidak Perlu

Aturan pertama privasi: kumpulkan data seminimal mungkin, dan hanya untuk fungsi yang jelas. Setiap field data yang dikumpulkan adalah liabilitas: kalian harus menyimpan, melindungi, dan menjelaskannya.

Keputusan data CatatanKu
Diperlukan (dikumpulkan, dijelaskan):
├─ versi aplikasi & OS       → diagnosa error & telemetry
├─ crash data (stack trace)  → perbaikan bug
└─ id instalasi anonim       → agregasi telemetry
 
Tidak diperlukan (tidak dikumpulkan):
├─ isi catatan pengguna      → hanya di perangkat / dienkripsi
├─ nama file di sistem       → privacy-first
└─ aktivitas mouse/ketikan  → bukan produk analytics

Pertanyaan uji untuk setiap fitur telemetry: "bisakah fungsi ini bekerja tanpa data ini?" Jika ya, jangan kumpulkan. Jika tidak, kumpulkan versi paling kecil yang cukup.

Telemetry yang Bertanggung Jawab

Telemetry berguna — crash report dan statistik versi membantu kualitas. Yang membedakan telemetry sehat dari pelacakan adalah transparansi dan kontrol:

  • Apa yang dikirim — hanya metrik fungsional: versi, OS, crash, performa operasi tertentu. Tanpa konten pengguna, tanpa identitas pribadi.
  • Opt-in vs opt-out — telemetry non-kritikal default off, atau paling tidak mudah dimatikan satu klik di pengaturan.
  • Ringan — batch, throttle, dan kirim hanya saat jaringan tersedia (pola episode 9).
Telemetry helper CatatanKu
interface TelemetryEvent {
  name: string;
  props: Record<string, string | number>;
}
 
export class Telemetry {
  private enabled: boolean;
 
  constructor(enabled: boolean) {
    this.enabled = enabled;
  }
 
  track(event: TelemetryEvent) {
    if (!this.enabled) return;
    // batasi: hanya field aman, batch, kirim lewat backend (ep 18)
    fetch("https://telemetry.catatanku.app/v1/event", {
      method: "POST",
      body: JSON.stringify({ ...event, appVersion, os }),
    });
  }
}

Kunci lain: telemetry dikirim lewat backend, sama seperti jalur jaringan lain (episode 18) — dengan kunci telemetry yang disimpan di keychain, bukan di webview.

Persetujuan yang Jelas

GDPR (dan aturan serupa seperti LGPD/CCPA) menuntut consent yang sah: informasi, spesifik, dan bisa ditarik kembali. Untuk aplikasi desktop, pola yang berlaku:

Alur consent CatatanKu
1. Saat pertama install: explainer satu layar
   "CatatanKu mengirim telemetry (versi, OS, crash) 
    untuk memperbaiki aplikasi. Data tanpa identitas."
2. Tombol: [Setuju] [Tidak sekarang] [Pelajari lebih lanjut]
3. Pilihan disimpan; bisa diubah kapan saja di Settings
4. Perubahan pengumpulan data → minta ulang persetujuan

Persetujuan yang baik tidak disembunyikan di halaman 7 dokumen legal — ia muncul di titik keputusan dengan bahasa manusia. Pengaturan privasi juga harus menyediakan ekspor dan penghapusan data yang dikirim ke server kalian.

Warning

Consent default (menyembunyikan opt-out di dalam settings) adalah jalan menuju denda. Di aplikasi desktop, "banner cookie" web tidak cukup — pengguna harus bisa memahami apa yang dikirim ke mana, dari mana data itu dikirim (aplikasi ini), dan mengubahnya tanpa mencari-cari.

GDPR: Praktik untuk Aplikasi Desktop

Empat Area yang Relevan

  • Transparansi — privacy policy tertulis untuk data yang dikumpulkan, termasuk telemetry. Sertakan di dalam aplikasi, bukan hanya website.
  • Data minimization — hanya data yang diperlukan (bagian atas episode ini).
  • Hak subjek data — pengguna berhak meminta akses, koreksi, ekspor, dan penghapusan data kalian. Sediakan jalur (endpoint/email) yang benar-benar dijawab.
  • DPA (Data Processing Agreement) — jika memakai layanan pihak ketiga (hosting telemetry, crash reporting), pastikan mereka memproses data atas nama kalian dengan perjanjian yang sah.

GDPR untuk Data Lokal

Poin menarik: sebagian besar data CatatanKu tidak pernah meninggalkan perangkat (offline-first, episode 8). Ini adalah posisi privasi yang sangat kuat — dan harus dikomunikasikan sebagai fitur: "catatanmu tetap di perangkatmu". Namun perlu diingat: kalau kalian mengirim data ke server, GDPR berlaku untuk data itu, di mana pun penyimpanannya.

Privacy checklist CatatanKu
[ ] Kebijakan privasi tertulis & tautan di dalam aplikasi
[ ] Telemetry default-off atau minimal, bisa dimatikan
[ ] Tidak mengumpulkan isi catatan / identitas
[ ] Proses ekspor & penghapusan data tersedia
[ ] DPA dengan vendor pihak ketiga
[ ] Data lokal dienkripsi (episode 19)
[ ] Consent diminta ulang saat pengumpulan berubah

Praktik: Privacy Review CatatanKu

  • Telemetry minimal (versi, OS, crash) default off, dikirim via backend.
  • Data lokal adalah privasi-by-design: offline-first, enkripsi di episode 19.
  • Consent satu layar di install pertama, bisa diubah di Settings.
  • Ekspor & hapus tersedia untuk data yang dikirim ke server.
  • Privacy policy jelas tertulis dan di-link di dalam aplikasi.

Penutup

Inti yang harus dibawa pulang:

  • Data minimization: kumpulkan yang perlu, jelaskan, dan bisa ditarik.
  • Telemetry yang sehat: transparan, default-off/non-identitas, dikirim via backend.
  • Consent harus informasi, spesifik, dan bisa ditarik — bukan sekadar halaman 7 dokumen.
  • GDPR: transparansi, hak subjek data, dan DPA dengan vendor berlaku untuk data yang dikirim.
  • Offline-first adalah keunggulan privasi — jadikan posisi itu bagian dari produk.

Di episode 21 selanjutnya kita menambahkan kecerdasan ke CatatanKu: AI-powered desktop apps — integrasi LLM, model AI lokal, dan fitur AI di aplikasi desktop. Sampai jumpa di episode 21!

Belajar Desktop Developer - Privacy & Compliance | Belajar Desktop Developer