InfraLoka AcademyPathwayAI
PathwayAI

Modul 1 · Mulai dengan aman

Yang tidak masuk ke model: rahasia, data produksi, kode klien

4 menit baca5 menit bacaDitinjau 26 Oktober 2026

Intinya

Kunci, kata sandi, data produksi, kode klien yang terikat perjanjian, dan data pribadi tidak ditempel ke model. Ganti dengan data buatan atau skema tanpa isi, dan cek apa yang bisa dibaca agen sebelum memberinya akses.

Setelah pelajaran ini kamu bisa

  • Menyebut empat bahan yang tidak ditempel ke model: rahasia, data produksi, kode klien terikat perjanjian, data pribadi
  • Mengganti bahan sensitif dengan data buatan, skema tanpa isi, atau potongan kode yang sudah dibersihkan sebelum meminta bantuan AI
  • Memeriksa pengaturan alat AI dan aturan tim sebelum memberi agen coding akses ke repositori

Istilah di pelajaran ini

Pahami

Asisten AI di editor terasa seperti rekan di sebelah meja: kamu tempel error (galat), ia menjelaskan; kamu tempel fungsi, ia merapikan. Karena terasa akrab, pengembang mudah lupa bahwa setiap teks yang ditempel keluar dari laptopnya dan masuk ke layanan pihak lain, atau ke berkas konteks agen yang bisa terbaca lagi nanti.

Ada empat jenis bahan yang tidak ikut ke model, apa pun alatnya.

Rahasia. Kunci API (API key), kredensial akses, kata sandi basis data (database), berkas lingkungan, sertifikat, dan kunci SSH. Satu kunci yang bocor bisa dipakai siapa pun yang membacanya, dan kamu tidak bisa menarik kembali teks yang sudah terkirim. Kalau pesan error-mu memuat string koneksi lengkap, hapus bagian rahasianya sebelum menempel.

Data produksi (production). Baris tabel pengguna, isi pesanan, log yang memuat alamat email atau nomor telepon, cadangan database. Untuk memahami bug, model jarang butuh data asli; ia butuh bentuknya. Skema (schema) tabel, tiga baris contoh buatan, dan pesan error biasanya cukup.

Kode klien yang terikat perjanjian. Kode yang kamu tulis untuk klien sering dilindungi kontrak kerahasiaan. Menempelnya ke layanan AI bisa melanggar kontrak itu, walaupun niatmu hanya minta bantuan merapikan. Cek perjanjiannya, atau tanyakan ke pemimpin proyek, sebelum kode klien menyentuh alat AI mana pun.

Data pribadi. Nama, nomor identitas, alamat, data kesehatan, atau data anak di fixture, log, atau tangkapan layar. UU PDP berlaku juga untuk pengembang: memindahkan data pribadi ke layanan lain adalah pemrosesan, dan butuh dasar yang sah.

Aturan praktisnya sederhana: kirim bentuk, bukan isi. Model perlu tahu struktur, tipe, dan pola masalahnya; nilai aslinya tidak ia perlukan.

Agen coding (coding agent: agen AI yang menulis dan menjalankan kode) menambah satu lapis risiko. Asisten di jendela chat (percakapan dengan AI) hanya membaca yang kamu tempel. Agen yang berjalan di dalam repositori (repository) bisa membaca sendiri: berkas lingkungan di akar proyek, folder cadangan, catatan rapat yang tersimpan di repositori, atau riwayat terminal (command line). Ia juga bisa menjalankan perintah yang menyentuh database.

Jadi sebelum memberi agen akses, periksa tiga hal. Pertama, apa yang ada di folder kerjanya: berkas rahasia seharusnya tidak ada di repositori, dan bila terpaksa ada di laptop atau komputer kerjamu (local machine), pastikan agen diatur untuk tidak membacanya. Kedua, ke mana perintahnya bisa terhubung: variabel lingkungan (environment variable) yang menunjuk ke database produksi atau database pengembang bersama tidak boleh menjadi bawaan saat agen menjalankan tes. Ketiga, apa yang disimpan alat itu: beberapa layanan menyimpan percakapan atau memakainya untuk pelatihan kecuali diatur lain. Pengaturan itu milik organisasimu untuk diputuskan, bukan pilihan pribadi.

Contoh

Sebelum

Permintaan

Kenapa query ini lambat? postgres://app:Rahasia123@db-prod:5432/main SELECT * FROM pelanggan WHERE email = 'siti.rahma@contoh' ... [lalu 50 baris hasil query dengan nama dan nomor telepon pelanggan]

Hasilnya

Contoh keluaran buruk; jangan dipakai: Query lambat karena tidak ada indeks pada kolom email. Tambahkan indeks. Omong-omong, kata sandi database di string koneksimu sebaiknya diganti.

Sesudah

Permintaan

Tujuan: saya ingin tahu kenapa query pencarian pelanggan lambat. Pembaca: saya sendiri, pengembang backend. Bahan: skema tabel pelanggan (tanpa data), query dengan nilai contoh, dan rencana eksekusi di bawah. Tabel berisi sekitar dua juta baris. Batas: jangan menebak di luar bahan; kalau perlu informasi lain, tanyakan. Bentuk: tiga kemungkinan penyebab, urut dari yang paling mungkin, masing-masing dengan cara membuktikannya. Cek: sebutkan bagian rencana eksekusi yang mendukung setiap kemungkinan. [skema] [query dengan email contoh] [rencana eksekusi]

Hasilnya

Tiga kemungkinan: (1) pemindaian penuh tabel karena kolom email tidak berindeks, terlihat dari baris pemindaian berurutan di rencana; (2) perbandingan tanpa membedakan huruf besar yang mencegah indeks dipakai; (3) kolom yang diambil terlalu banyak. Cara membuktikan: buat indeks di salinan lokal, jalankan ulang rencana eksekusi, bandingkan biayanya.

Yang berubah

  • Permintaan pertama mengirim kata sandi produksi dan data pribadi lima puluh pelanggan. Keduanya tidak bisa ditarik kembali.
  • Permintaan kedua mengirim bentuk masalahnya: skema, query dengan nilai contoh, dan rencana eksekusi. Hasilnya lebih tajam karena model punya bukti untuk dibaca.
  • Kata sandi yang sudah terkirim harus dirotasi hari itu juga, walaupun model menyarankannya dengan sopan.

Kesalahan umum

Kesalahan
Menempel berkas lingkungan lengkap ke model untuk menanyakan kenapa aplikasi tidak bisa tersambung ke layanan.
Kenapa merugikan
Berkas lingkungan berisi semua rahasia aplikasi sekaligus. Setelah terkirim, kamu harus menganggap semuanya bocor dan merotasi setiap kunci, yang bisa memakan setengah hari dan mengganggu layanan lain yang memakai kunci yang sama.
Lakukan ini
Kirim daftar nama variabel saja, dengan nilai diganti tanda seperti ‹disembunyikan›, plus pesan error-nya. Kalau perlu memeriksa format nilai, jelaskan polanya dengan kata-kata.

Coba

Kartu pilah

Untuk setiap bahan, tentukan: boleh dikirim ke model, atau diganti dulu?

  1. Skema tabel tanpa baris data

  2. String koneksi database dengan kata sandi

  3. Modul pembayaran yang ditulis untuk klien dengan perjanjian kerahasiaan

  4. Pesan error kompilasi dari kode milik timmu sendiri

  5. Log produksi yang memuat alamat email pengguna

  6. Tiga baris data uji buatan sendiri dengan nama fiktif

6 kartu lagi

Kamu ingin agen coding menjalankan tes di repositori. Berkas lingkungan lokalmu menunjuk ke database pengembang bersama tim. Apa yang kamu lakukan dulu?

Bawa pulang

Sebelum menempel atau memberi akses

  • Saya sudah menghapus kunci, token, dan kata sandi dari teks yang akan saya kirim
  • Saya mengirim skema dan contoh buatan, bukan baris data produksi
  • Saya sudah memastikan kode klien boleh dibagikan ke layanan AI ini
  • Log dan tangkapan layar sudah bersih dari data pribadi
  • Folder kerja agen tidak memuat berkas rahasia, dan perintah tesnya menunjuk ke database sekali pakai
  • Kalau ada rahasia yang terlanjur terkirim, saya merotasinya hari itu juga

Yang salah di tempat kami

Cara kerja kami

Rahasia tidak pernah masuk variabel publik browser

Konteks
Aplikasi web membaca konfigurasi dari variabel lingkungan. Sebagian variabel hanya dipakai server, sebagian lagi sengaja dikompilasi ke kode yang diunduh browser.
Yang biasanya salah
Kalau kunci penyedia layanan disimpan di variabel publik browser, kunci itu ikut terkirim ke setiap pengunjung. Siapa pun yang membuka alat pengembang bisa menyalinnya.
Akibatnya bila dibiarkan
Orang lain bisa memakai layanan atas nama dan atas tagihan organisasimu, dan kamu tidak bisa membuktikan siapa yang memakainya.
Akar masalah
Di berkas konfigurasi, variabel publik dan variabel rahasia terlihat sama. Bedanya hanya awalan nama, dan awalan itu mudah terlewat saat terburu-buru.
Cara kami
Kunci hanya dibaca oleh server, dan browser tidak pernah menerima rahasia apa pun. Bila sebuah kunci pernah terlihat di kode browser, kami mencabut dan merotasinya saat itu juga.
Aturan yang kami pegang
Sebuah tes gagal setiap kali ada variabel publik yang namanya mirip rahasia (kunci, token, kata sandi), di kode maupun berkas konfigurasi.

PelajarannyaAnggap semua yang sampai ke browser sudah dibaca orang lain.