Modul 0 · Fondasi

Materi 1 · Modul 0

Kenalan sama database dan MySQL

Sebelum menulis satu baris SQL pun, pahami dulu masalah apa yang diselesaikan database.

Kenapa tidak cukup pakai file atau array biasa

Bayangkan toko online dengan ribuan produk dan ratusan pesanan per hari. Kalau semua data disimpan di file teks atau array PHP yang dibuat ulang tiap kali program jalan, muncul masalah:

  • Data hilang saat program berhenti. Array PHP cuma hidup selama skrip berjalan (ingat Materi 1 handbook PHP — tiap request mulai dari nol).
  • Sulit mencari dengan cepat. Mencari satu pesanan di antara jutaan baris teks itu lambat kalau dilakukan manual.
  • Rawan data tidak konsisten. Dua orang mengubah data yang sama bersamaan bisa saling menimpa tanpa terdeteksi.
  • Sulit menjaga hubungan antar data. Satu pesanan berisi banyak produk, satu pelanggan punya banyak pesanan — mengurus ini manual sangat rawan salah.

Database adalah sistem yang dirancang khusus untuk menyimpan, mencari, dan menjaga konsistensi data dalam jumlah besar, dan tetap ada meski programnya sudah berhenti.

MySQL: database relasional

MySQL menyimpan data dalam bentuk tabel — mirip spreadsheet, dengan baris dan kolom. Yang membuatnya "relasional": tabel-tabel bisa saling terhubung lewat kunci (dibahas mendalam di Modul 3).

Tabel: produk
┌────┬──────────────┬────────┬──────┐
│ id │ nama         │ harga  │ stok │
├────┼──────────────┼────────┼──────┤
│ 1  │ Kaos Polos   │ 85000  │ 24   │
│ 2  │ Hoodie       │ 210000 │ 8    │
│ 3  │ Topi         │ 45000  │ 15   │
└────┴──────────────┴────────┴──────┘
   ↑ setiap BARIS = satu produk
        ↑ setiap KOLOM = satu jenis data

Istilah yang akan sering muncul: tabel (kumpulan data sejenis, seperti "produk" atau "pelanggan"), baris/row (satu data, seperti satu produk), kolom/field (satu jenis informasi, seperti "harga"), dan SQL — bahasa yang dipakai untuk berbicara dengan database.

SQL: bahasa untuk database

SQL (Structured Query Language) bukan bahasa pemrograman seperti PHP — dia bahasa khusus untuk meminta sesuatu dari database: ambil data ini, simpan data itu, ubah baris ini. Kamu akan menulisnya dalam kalimat yang mendekati bahasa Inggris biasa.

contoh SQL
SELECT nama, harga FROM produk WHERE stok > 0;
-- "Ambil nama dan harga dari tabel produk, yang stoknya lebih dari 0"

Catatan — MySQL adalah salah satu mesin database yang memahami SQL — ada juga PostgreSQL, SQLite, SQL Server, dan lainnya. Perintah SQL dasar hampir sama di semua mesin ini, jadi apa yang kamu pelajari di sini sebagian besar bisa dipakai di database lain juga. MySQL dipilih di handbook ini karena paling umum dipakai berdampingan dengan PHP, dan tersedia gratis di hampir semua layanan hosting.

Yang akan kamu pelajari

  1. Modul 0 — instalasi, membuat database dan tabel pertama, tipe data.
  2. Modul 1 — CRUD: menyimpan, membaca, mengubah, menghapus data.
  3. Modul 2 — query lanjutan: agregasi, JOIN, subquery.
  4. Modul 3 — desain database yang benar: relasi, normalisasi, index.
  5. Modul 4 — transaksi, view, backup, hak akses pengguna.
  6. Modul 5 — performa dan praktik produksi.

Handbook ini murni SQL — tidak ada PHP sama sekali. Setelah selesai, ada handbook studi kasus yang menyatukan PHP dan MySQL jadi satu aplikasi utuh.