← Semua track
🗄️

Database & SQL

SQL murni dulu, ORM belakangan. PostgreSQL & MySQL sampai optimasi query.

±90 jam · 0/83 selesai (0%)

Modul 1: Konsep Database & SELECT

Berpikir dalam tabel: query pertamamu sampai filter yang presisi.

7 bab dalam modul ini
  1. 1.1Database relasional: tabel, baris, kolom, tipe data
  2. 1.2SELECT & FROM: mengambil kolom
  3. 1.3WHERE: =, <>, >, <, BETWEEN, IN, LIKE
  4. 1.4AND/OR/NOT & urutan evaluasi
  5. 1.5ORDER BY & LIMIT/OFFSET
  6. 1.6DISTINCT & alias (AS)
  7. 1.7NULL: kenapa = NULL tidak jalan (IS NULL)

Modul 2: Relasi & JOIN

Materi interview SQL paling sering keluar — kuasai sampai bisa menggambar diagramnya.

7 bab dalam modul ini
  1. 2.1Primary key & foreign key
  2. 2.2INNER JOIN: irisan dua tabel
  3. 2.3LEFT/RIGHT JOIN & baris NULL
  4. 2.4Join lebih dari dua tabel
  5. 2.5Self join (karyawan → atasan)
  6. 2.6Many-to-many & junction table
  7. 2.7Latihan: menulis join dari pertanyaan bisnis nyata

Modul 3: Agregasi & Subquery

Dari data mentah ke jawaban bisnis: total, rata-rata, dan pengelompokan.

7 bab dalam modul ini
  1. 3.1COUNT, SUM, AVG, MIN, MAX
  2. 3.2GROUP BY: aturan emas kolom yang boleh di-SELECT
  3. 3.3HAVING vs WHERE
  4. 3.4Subquery di WHERE, FROM, SELECT
  5. 3.5CTE (WITH): query kompleks yang tetap terbaca
  6. 3.6CASE WHEN untuk kategorisasi
  7. 3.7Window function dasar: ROW_NUMBER, RANK, running total

Modul 4: Manipulasi Data & Transaksi

INSERT, UPDATE, DELETE — dan jaring pengaman sebelum kamu menghapus data produksi.

7 bab dalam modul ini
  1. 4.1INSERT: satu baris, banyak baris, dari SELECT
  2. 4.2UPDATE dengan WHERE (dan horor UPDATE tanpa WHERE)
  3. 4.3DELETE vs TRUNCATE
  4. 4.4Transaksi: BEGIN, COMMIT, ROLLBACK
  5. 4.5ACID dijelaskan dengan kasus transfer uang
  6. 4.6UPSERT (ON CONFLICT / ON DUPLICATE KEY)
  7. 4.7RETURNING untuk mendapat data yang berubah

Modul 5: Desain Skema & Index

Merancang database yang tidak menyesal 6 bulan kemudian.

7 bab dalam modul ini
  1. 5.1Normalisasi 1NF–3NF dengan contoh nyata (bukan definisi hafalan)
  2. 5.2Kapan denormalisasi masuk akal
  3. 5.3ERD: membaca & menggambar
  4. 5.4Memilih tipe data & constraint (NOT NULL, UNIQUE, CHECK)
  5. 5.5Index: cara kerja B-tree secara intuitif
  6. 5.6Kapan index membantu & kapan memperlambat
  7. 5.7EXPLAIN: membaca rencana eksekusi query

Modul 6: PostgreSQL: Fundamental

Database #1 pilihan developer dunia (58% pemakaian) — fitur yang membuatnya dipilih untuk stack modern.

9 bab dalam modul ini
  1. 6.1Instalasi & psql: \l, \dt, \d, \?
  2. 6.2Tipe data kaya: array, JSONB, UUID, enum, range
  3. 6.3SERIAL vs GENERATED ALWAYS AS IDENTITY (mana yang benar sekarang)
  4. 6.4Query JSONB: operator ->, ->>, @>, dan jsonb_path_query
  5. 6.5Membuat index pada kolom JSONB (GIN)
  6. 6.6Full-text search: tsvector, tsquery, ts_rank
  7. 6.7Sequence: currval, nextval, dan jebakan setelah restore
  8. 6.8Role, GRANT, dan Row Level Security dasar
  9. 6.9Skema (schema) untuk memisahkan domain data

Modul 7: MySQL: Fundamental

Pasangan setia Laravel dan mayoritas hosting Indonesia — jalur tercepat ke pekerjaan lokal.

9 bab dalam modul ini
  1. 7.1Instalasi & mysql CLI: SHOW DATABASES, SHOW TABLES, DESCRIBE
  2. 7.2MySQL vs MariaDB: apa bedanya dan kenapa hosting sering memakai MariaDB
  3. 7.3Storage engine InnoDB (dan kenapa MyISAM ditinggalkan)
  4. 7.4AUTO_INCREMENT: perilaku setelah DELETE dan setelah restart
  5. 7.5Charset utf8mb4 & collation — jebakan emoji dan urutan sortir
  6. 7.6Tipe data: perbedaan penting dari PostgreSQL (TINYINT, ENUM, TEXT)
  7. 7.7DATETIME vs TIMESTAMP & penanganan timezone
  8. 7.8Tipe JSON di MySQL & generated column untuk mengindeksnya
  9. 7.9User, GRANT, dan hak akses per-database

Modul 8: PostgreSQL: Performa & Operasional

Yang ditanyakan saat kamu pegang database production: kenapa query lambat, index mana yang dipakai, dan bagaimana kalau data hilang.

11 bab dalam modul ini
  1. 8.1EXPLAIN vs EXPLAIN ANALYZE — membaca rencana eksekusi sungguhan
  2. 8.2Seq Scan vs Index Scan vs Bitmap Heap Scan: kapan masing-masing wajar
  3. 8.3Jenis index: B-tree, GIN, GiST, BRIN, partial, dan expression index
  4. 8.4Index yang tidak terpakai & kenapa menambah index bisa memperlambat
  5. 8.5Window function: ROW_NUMBER, LAG/LEAD, running total
  6. 8.6CTE & recursive CTE untuk data berjenjang (kategori, struktur organisasi)
  7. 8.7VACUUM, autovacuum, dan table bloat
  8. 8.8Transaction isolation level & deadlock
  9. 8.9Backup dengan pg_dump/pg_restore + latihan restore (bukan cuma backup)
  10. 8.10Connection pooling: kenapa PostgreSQL butuh PgBouncer
  11. 8.11Extension berguna: pg_stat_statements, uuid-ossp, pgcrypto

Modul 9: MySQL: Performa & Operasional

Menangani MySQL di production: optimizer, index, replikasi, dan pemulihan data.

11 bab dalam modul ini
  1. 9.1EXPLAIN & EXPLAIN ANALYZE di MySQL: kolom type, key, rows, filtered
  2. 9.2Clustered index InnoDB: kenapa primary key besar merusak performa
  3. 9.3Covering index & prefix index untuk kolom teks panjang
  4. 9.4Kenapa fungsi di kolom WHERE membatalkan index
  5. 9.5Window function & CTE (tersedia sejak MySQL 8.0)
  6. 9.6sql_mode & STRICT_TRANS_TABLES: kenapa MySQL lama menerima data invalid
  7. 9.7Slow query log: menemukan query paling berat
  8. 9.8Transaksi InnoDB, locking, dan deadlock
  9. 9.9Backup mysqldump vs snapshot + latihan restore
  10. 9.10Replikasi master-replica dasar & kapan dibutuhkan
  11. 9.11Perbedaan penting MySQL 8.4 LTS vs versi lama yang masih banyak di hosting

Modul 10: Memilih & Migrasi antar Database

Keputusan arsitektur yang sering ditanyakan di interview: kenapa memilih yang ini, dan apa risikonya kalau harus pindah.

9 bab dalam modul ini
  1. 10.1Peta perbedaan sintaks: LIMIT/OFFSET, string concat, upsert, boolean
  2. 10.2AUTO_INCREMENT vs SERIAL/IDENTITY vs UUID
  3. 10.3Perbedaan penanganan tipe JSON, timezone, dan pencarian teks
  4. 10.4Kapan MySQL lebih tepat (ekosistem Laravel, hosting murah, tim existing)
  5. 10.5Kapan PostgreSQL lebih tepat (data kompleks, JSONB, analitik, Supabase)
  6. 10.6Menjawab pertanyaan interview 'kenapa pakai X?' dengan alasan teknis
  7. 10.7Strategi migrasi: dump-restore, tool bantu, dan uji kesetaraan data
  8. 10.8Jebakan migrasi: collation, tipe boolean, tanggal nol (0000-00-00)
  9. 10.9Menulis SQL yang portabel (dan kapan justru tidak perlu portabel)

Modul 11: SQL di Aplikasi

Menjembatani SQL murni dengan kode: ORM, N+1, dan keamanan.

6 bab dalam modul ini
  1. 11.1Koneksi dari Node (pg) & connection pool
  2. 11.2Parameterized query: satu-satunya cara mencegah SQL injection
  3. 11.3ORM vs query builder vs raw SQL — trade-off jujur
  4. 11.4Masalah N+1 & cara mendeteksinya
  5. 11.5Migration di aplikasi nyata
  6. 11.6Optimasi query lambat: proses diagnosis lengkap