07 — Glosarium¶
Kamus istilah cepat. Gunakan Ctrl+F / Cmd+F untuk mencari.
API & HTTP¶
| Istilah | Arti Singkat |
|---|---|
| API | Kontrak komunikasi antar sistem |
| REST | Gaya desain API: URL = resource (kata benda), method = aksi (kata kerja) |
| Endpoint | Alamat URL spesifik di sebuah API |
| Client / Server | Yang meminta / yang melayani |
| HTTP method | Jenis aksi: GET, POST, PUT, PATCH, DELETE |
| Status code | Kode 3 digit hasil request: 2xx sukses, 4xx salah client, 5xx salah server |
| Header | Metadata yang menyertai request/response |
| Payload / Body | Data utama yang dikirim dalam request |
| Path parameter | Bagian URL yang mengidentifikasi resource (/products/42) |
| Query string | Parameter setelah ? untuk filter/sort/paging (?page=2) |
| JSON | Format standar pertukaran data |
| ISO 8601 | Format tanggal standar: 2026-07-06T10:30:00Z |
| Idempotent | Dipanggil 1x atau 10x, hasil akhirnya sama — aman di-retry |
| Idempotency key | ID unik per percobaan agar retry tidak menduplikasi transaksi |
| Pagination | Memecah data banyak menjadi halaman-halaman |
| Stateless | Tiap request berdiri sendiri; server tidak mengingat request sebelumnya |
| Cache / ETag | Menyimpan response agar tidak dihitung ulang |
| CRUD | Create, Read, Update, Delete — 4 operasi dasar data |
| API Key | Kunci statis untuk mengautentikasi pemanggil API |
| JWT | Token berisi klaim identitas + expiry; bisa dibaca siapa pun (hanya di-encode, tidak dienkripsi) |
| Access / Refresh token | Token umur pendek untuk request / token umur panjang untuk memperbarui access token |
| OAuth 2.0 | Standar delegasi akses ("Login with Google") tanpa berbagi password |
| Session & Cookie | Auth tradisional: server menyimpan sesi, browser mengirim cookie otomatis |
| GraphQL | Alternatif REST: satu endpoint, client menentukan field yang diminta |
| WebSocket | Koneksi dua arah terus terbuka — untuk fitur real-time |
| Webhook | API terbalik: server pihak lain memanggil endpoint kita saat ada event |
| Polling | Bertanya berulang-ulang "sudah ada belum?" — yang digantikan webhook |
| OpenAPI / Swagger | Standar dokumentasi API yang bisa dibaca manusia & mesin |
| curl / Postman | Alat mengetes API langsung tanpa frontend |
| Breaking change | Perubahan API yang merusak client lama — alasan adanya versioning /v1 |
| Exponential backoff | Strategi retry dengan jeda yang makin lama |
Database¶
| Istilah | Arti Singkat |
|---|---|
| SQL | Bahasa query untuk database relasional |
| NoSQL | Keluarga database non-relasional (dokumen, key-value, dsb.) |
| PK (Primary Key) | Identitas unik tiap baris |
| FK (Foreign Key) | Kolom yang menunjuk ke tabel lain |
| Referential integrity | Jaminan FK selalu menunjuk baris yang benar-benar ada |
| ERD | Diagram relasi antar tabel |
| One-to-Many / Many-to-Many | Jenis relasi; M2M butuh tabel perantara (pivot) |
| Constraint | Aturan yang dijaga database sendiri: NOT NULL, UNIQUE, CHECK, DEFAULT |
| NULL | "Tidak ada nilai" — beda dengan 0 atau string kosong; dicek dengan IS NULL |
| JOIN / LEFT JOIN | Menggabungkan tabel; LEFT JOIN mempertahankan baris tanpa pasangan |
| GROUP BY / HAVING | Agregasi per kelompok / filter hasil agregasi |
| Index | "Daftar isi" database agar pencarian cepat |
| Composite index | Index gabungan beberapa kolom |
| Full table scan | Membaca semua baris karena tak ada index — lambat |
| EXPLAIN | Perintah melihat rencana eksekusi query (pakai index atau tidak) |
| N+1 problem | 1 query induk + N query anak dalam loop — pembunuh performa umum |
| Eager loading | Memuat relasi sekaligus di awal — solusi N+1 |
| Transaction | Sekumpulan operasi yang berhasil semua atau batal semua |
| Commit / Rollback | Mengesahkan / membatalkan transaction |
| ACID | Atomicity, Consistency, Isolation, Durability — jaminan database |
| Race condition | Bug akibat dua operasi bersamaan menyentuh data sama (mis. overselling stok) |
| Atomic update / Locking | Teknik mengamankan operasi bersamaan |
| Migration | Version control untuk struktur database |
| Seeding | Mengisi database dengan data awal/dummy |
| ORM | Library pemetaan tabel ↔ objek kode (Eloquent, Prisma) |
| Raw query | SQL yang ditulis langsung — tetap wajib parameterized |
| Soft delete | Menandai deleted_at alih-alih menghapus sungguhan |
| Connection pool | Kolam koneksi database yang dipakai bergantian |
| Aturan backup 3-2-1 | 3 salinan, 2 media, 1 off-site — dan wajib dites restore |
Docker & Infrastruktur¶
| Istilah | Arti Singkat |
|---|---|
| Image | Blueprint aplikasi + environment (read-only) |
| Container | Instance berjalan dari sebuah image; sifatnya sekali pakai |
| Ephemeral | Sekali pakai — data di dalamnya hilang saat container dihapus |
| Dockerfile | Skrip membangun image |
| Layer & build cache | Tiap instruksi Dockerfile = lapisan yang di-cache; urutan menentukan kecepatan build |
| Multi-stage build | Stage build terpisah dari stage akhir → image production ramping |
| .dockerignore | Daftar file yang tidak boleh masuk ke build (termasuk .env!) |
| Registry | Tempat menyimpan & berbagi image (Docker Hub, GHCR) |
| Tag | Versi image (node:20-alpine); hindari :latest di production |
| Volume | Penyimpanan persisten di luar container |
| Bind mount | Folder host dipetakan ke container — untuk development |
| Network | Jaringan virtual; antar container saling panggil lewat nama service, bukan localhost |
| Port mapping | Menghubungkan port host ke port container (8080:3000) |
| Docker Compose | Mendefinisikan & menjalankan multi-container dalam satu file |
| Healthcheck | Definisi "service ini sehat" — dasar depends_on yang benar |
| Environment variable | Konfigurasi (termasuk secret) di luar kode |
| .env / .env.example | Nilai asli (di-gitignore) / template kosong (di-commit) |
| VM vs Container | VM membawa OS sendiri (berat); container berbagi kernel host (ringan) |
| CI/CD | Otomatisasi build–test–deploy (GitHub Actions, Bitbucket Pipelines) |
| Environment parity | Local = staging = production, berkat image yang identik |
| docker logs | Perintah pertama saat debugging container |
Security¶
| Istilah | Arti Singkat |
|---|---|
| OWASP Top 10 | Daftar kerentanan aplikasi web paling kritis, standar industri |
| AuthN (Authentication) | Verifikasi identitas: "siapa kamu?" |
| AuthZ (Authorization) | Verifikasi hak akses: "boleh apa saja kamu?" |
| RBAC | Hak akses berdasarkan role (admin, staff, customer) |
| SQL Injection | Input user ditafsirkan sebagai perintah SQL |
| Command injection | Input user ditafsirkan sebagai perintah shell |
| Prepared statement / parameterized query | Nilai dikirim terpisah dari query — pencegah injection |
| XSS | Script jahat disisipkan lewat input user, berjalan di browser korban |
| Escape output | Mengubah karakter spesial jadi teks biasa saat menampilkan data user |
| Sanitasi | Membersihkan input HTML dengan library khusus (mis. DOMPurify) |
| CSP | Header pembatas asal script yang boleh dijalankan browser |
| CSRF | Serangan menunggangi sesi login korban lewat situs lain |
| CSRF token / SameSite | Pencegah CSRF |
| IDOR | Mengakses data orang lain dengan mengganti ID — karena otorisasi tak dicek |
| Mass assignment | User menyelipkan field terlarang (mis. role: admin) ke request |
| Hashing | Ubah data jadi bentuk satu-arah yang tak bisa dibalik |
| bcrypt / argon2 | Algoritma hashing yang benar untuk password (sengaja lambat) |
| Salt | Data acak per user agar hash password sama pun berbeda |
| Rainbow table | Tabel hash siap pakai milik penyerang — dipatahkan oleh salt |
| Brute force | Menebak password/token secara massal — dilawan rate limiting & 2FA |
| 2FA / MFA | Faktor autentikasi tambahan di luar password |
| HTTPS / TLS | Enkripsi komunikasi client–server |
| HSTS | Header pemaksa browser selalu memakai HTTPS |
| Rate limiting | Membatasi jumlah request per waktu (429) |
| CORS | Aturan browser: domain mana yang boleh memanggil API |
| Secret rotation | Mengganti credential yang (diduga) bocor — segera, bukan nanti |
| Least privilege | Akses seminimal yang dibutuhkan |
| Defense in depth | Keamanan berlapis |
| Supply chain attack | Serangan lewat dependency/package pihak ketiga |
| Lockfile | package-lock.json/composer.lock — mengunci versi dependency, wajib di-commit |
| Dependency audit | npm audit / composer audit — memindai kerentanan yang diketahui |
| Slopsquatting | Package palsu bernama sama dengan library "halu" saran AI |
| Path traversal | Nama file berisi ../ untuk keluar dari folder yang diizinkan |
| Clickjacking | Menjebak klik user lewat halaman transparan — dilawan X-Frame-Options |
| Post-mortem | Evaluasi pasca-insiden tanpa menyalahkan individu |
Vibe Coding & AI¶
| Istilah | Arti Singkat |
|---|---|
| Vibe coding | Development yang mengandalkan AI menulis kode |
| AI-assisted engineering | Vibe coding + disiplin review — yang kita adopsi |
| Prompt | Instruksi yang diberikan ke AI |
| Context | Informasi yang diberikan ke AI agar jawaban relevan (kode, konvensi, error) |
| Hallucination | AI mengarang hal yang terdengar meyakinkan tapi salah |
| Happy path | Skenario ideal semua input benar — kode AI sering hanya menangani ini |
| Edge case | Skenario tak biasa (kosong, negatif, duplikat, unicode) yang wajib dites |
| Self-review | Meminta AI mereview kodenya sendiri — pelengkap, bukan pengganti, review manusia |
| Idempotency key, transaction, escape, … | Kosakata presisi — lihat kategori masing-masing di atas 😉 |