Database adalah tempat aplikasi menyimpan datanya dengan rapi dan tahan lama: datanya tetap ada walau aplikasinya ditutup atau server-nya restart, dan bisa dicari cepat walau isinya jutaan baris. Bayangin lemari arsip di ruang TU sekolah. Di dalamnya ada map per topik (map siswa, map guru). Tiap map berisi lembar-lembar dengan isian yang sama. Dan tiap siswa punya nomor induk yang gak pernah kembar, walau namanya bisa sama. Lemari itu database, map itu tabel, satu lembar itu satu baris, isian yang sama di tiap lembar itu kolom, dan nomor induk itu primary key.
🧪 Tebakan cepat: di tabel
usersada dua orang bernama Budi. Kamu mau menunjuk salah satunya saja. Kolom apa yang kamu pakai supaya gak salah orang? Tebak dulu, jawabannya ada di bagian "Primary key: nomor yang gak pernah kembar".
Tabel, baris, kolom
Ini tabel users yang dipakai di latihan nanti:
| id | name | age | |
|---|---|---|---|
| 1 | Budi | [email protected] | 25 |
| 2 | Siti | [email protected] | 24 |
| 3 | Andi | [email protected] | 30 |
- Tabel (table): kumpulan data dengan bentuk yang sama, diberi nama. Ini tabel
users. - Baris (row): satu data utuh. Baris kedua adalah semua data Siti.
- Kolom (column): satu jenis informasi yang dimiliki semua baris. Tabel ini punya 4 kolom:
id,name,email,age. Tiap kolom punya tipe, misalnyaageselalu angka dannameselalu teks.
Jadi tabel ini berisi 3 baris dan 4 kolom. Satu database biasanya berisi banyak tabel: users, products, orders, dan seterusnya.
Primary key: nomor yang gak pernah kembar
Primary key (kunci primer) adalah kolom yang nilainya unik di tiap baris, jadi satu nilai selalu menunjuk tepat satu baris. Di tabel users, primary key-nya id.
Nama gak bisa jadi penanda, karena dua orang boleh bernama Budi. Kalau ada Budi kedua dengan id 4, Budi pertama tetap id 1. Jadi untuk menunjuk salah satunya, pakai id. Itu jawaban tebakannya.
Database menjaga aturan ini sendiri. Kalau kamu coba menyimpan Budi kedua dengan id 2, padahal 2 sudah milik Siti, SQLite menolak:
Error: UNIQUE constraint failed: users.id
Tabelnya tetap 3 baris. Inilah salah satu bedanya dengan spreadsheet: di spreadsheet kamu bisa mengetik angka kembar tanpa ada yang protes.
SQL: bahasa untuk bertanya ke database
SQL (Structured Query Language) adalah bahasa standar untuk bicara dengan database relasional. Satu perintah SQL disebut query. Query pertamamu:
SELECT * FROM users;
SELECTartinya "ambil".*artinya "semua kolom".FROM usersartinya "dari tabelusers".;menandai akhir perintah.
Jawaban database-nya berupa tabel baru, hasil query:
| id | name | age | |
|---|---|---|---|
| 1 | Budi | [email protected] | 25 |
| 2 | Siti | [email protected] | 24 |
| 3 | Andi | [email protected] | 30 |
3 baris, dengan kolom id, name, email dan age. Query ini cuma membaca: dijalankan berapa kali pun, tabel users gak berubah.
Kata seperti SELECT dan FROM biasa ditulis huruf besar supaya gampang dibedakan dari nama tabel dan kolom. Database-nya sendiri menerima huruf kecil juga.
Mau satu baris saja? Tambahkan syarat dengan WHERE (artinya "yang memenuhi syarat"):
SELECT * FROM users WHERE id = 2;
Hasilnya tepat satu baris: Siti. WHERE dibahas lengkap di pelajaran Filter Data.
Database relasional
Database yang menyimpan data dalam tabel berbaris dan berkolom disebut database relasional. "Relasional" karena tabel-tabelnya bisa saling terhubung lewat key. Misalnya tabel orders punya kolom user_id berisi 1, yang menunjuk Budi di tabel users.
Database relasional yang paling sering kamu temui: SQLite, MySQL dan PostgreSQL. Semuanya bicara SQL. Perintah dasarnya sama, cuma ada beda ejaan kecil di beberapa tempat, dan pelajaran berikutnya menyebutnya kalau ketemu.
Di BelajarWeb.dev, query-mu dijalankan SQLite langsung di browser, jadi kamu gak perlu install apa-apa.
⚠️ Jebakan yang sering ketemu
- Salah ketik nama tabel.
SELECT * FROM user;(tanpa s) dijawabno such table: user. Nama tabel harus persis. - Salah eja kata perintah.
SELEC * FROM users;dijawabnear "SELEC": syntax error. SQLite menyebut kata tempat dia bingung, jadi cari salahnya di situ. - Memakai nama untuk menunjuk satu orang. Nama bisa kembar. Pakai primary key (
id).
TL;DR: Database menyimpan data aplikasi dengan rapi, tahan lama dan cepat dicari. Database relasional menyimpannya dalam tabel: baris adalah satu data, kolom adalah satu jenis informasi. Primary key (biasanya id) unik di tiap baris, dan database menolak nilai yang kembar. SQL (Structured Query Language) adalah bahasa untuk bertanya ke database: SELECT * FROM users; mengambil semua kolom dari semua baris tabel users.