Apa itu Database? — SQL

Pernah login Tokopedia, terus lihat keranjang belanja kamu masih ada walau udah logout 3 hari lalu? Atau ngeliat 50 juta produk muncul dalam 0.5 detik pas…

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 users ada 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 email age
1 Budi [email protected] 25
2 Siti [email protected] 24
3 Andi [email protected] 30

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;

Jawaban database-nya berupa tabel baru, hasil query:

id name email 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

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.

Yang akan kamu pelajari