Hampir semua aplikasi membutuhkan penyimpanan data terstruktur: daftar kontak, riwayat pesanan, atau pengaturan program. Dua ujung solusi yang selama ini kita kenal adalah menulis berkas sendiri (praktis, tetapi cepat berantakan) atau memasang database server seperti PostgreSQL (kokoh, tetapi menuntut instalasi, konfigurasi, dan proses yang terus berjalan). SQLite hadir sebagai jalan tengah: database SQL lengkap yang berjalan di dalam program kita dan tersimpan dalam satu berkas biasa di disk.
Definisi SQLite #
SQLite adalah pustaka (library) yang ditulis dalam bahasa C dan mengimplementasikan sebuah SQL database engine. Berbeda dari kebanyakan database SQL lain, SQLite tidak memiliki proses server terpisah: pustaka SQLite membaca dan menulis langsung ke berkas di disk. Satu database lengkap — banyak table, index, trigger, dan view — hidup di dalam satu berkas tunggal.
Empat sifat resminya yang paling sering dikutip:
- Serverless: tidak ada daemon yang harus dipasang, dinyalakan, atau diamankan; engine database berjalan di dalam proses aplikasi kita sendiri.
- Zero-configuration: tidak ada berkas konfigurasi, tidak ada akun, tidak ada administrasi — buka berkas dan langsung bekerja.
- Transactional (ACID): transaction tetap bersifat atomic, consistent, isolated, dan durable bahkan bila komputer mati mendadak di tengah penulisan.
- Public domain: kode sumbernya bebas dipakai untuk tujuan apa pun, komersial maupun pribadi.
Karena melekat di dalam proses aplikasi, SQLite sering disebut database engine embedded (tertanam). Format berkasnya juga lintas platform: satu berkas yang dibuat di komputer 64-bit dapat dibuka di komputer 32-bit, bahkan di antara sistem dengan urutan byte (endianness) yang berbeda.
Mencoba SQLite dalam Satu Perintah #
Cara tercepat membuktikan “tidak ada instalasi dan tidak ada server” adalah menjalankan SQLite pada database yang hidup di memori. Kita mulai dengan memastikan versi yang terpasang:
/home/z/my-project/tools/sqlite3 --versionOutput yang Dihasilkan:
3.50.1 2025-06-06 14:52:32 b77dc5e0f596d2140d9ac682b2893ff65d3a4140aa86067a3efebe29dc914c95 (64-bit)Selanjutnya kita buat table, mengisi dua baris, lalu membacanya kembali — semuanya terjadi di database :memory: yang hanya hidup selama perintah berjalan:
/home/z/my-project/tools/sqlite3 :memory: "CREATE TABLE buku (id INTEGER PRIMARY KEY, judul TEXT); INSERT INTO buku (judul) VALUES ('Laskar Pelangi'), ('Bumi Manusia'); SELECT id, judul FROM buku ORDER BY id;"Output yang Dihasilkan:
1|Laskar Pelangi
2|Bumi ManusiaMari kita bedah apa yang barusan terjadi:
CREATE TABLE buku (...): engine SQLite membuat tablebukudengan dua kolom di database sementara di memori.INSERT INTO buku ...: dua baris ditambahkan tanpa kita menulis nilaiid, karena kolomINTEGER PRIMARY KEYterisi otomatis (1 dan 2).SELECT ... ORDER BY id: baris dibaca dalam urutaniddan ditampilkan dalam format bawaan CLI — nilai dipisah tanda|.:memory:: alamat khusus yang berarti “database di memori, tanpa berkas”; begitu perintah selesai, database lenyap.
Tidak ada langkah membuat user, mengatur password, atau menyalakan service. Semua yang kita perlukan sudah terkandung dalam satu program kecil.
Karakteristik Utama #
| Karakteristik | Artinya bagi kita |
|---|---|
| Serverless | Database hidup di dalam aplikasi; tidak ada proses terpisah |
| Zero-configuration | Buka berkas, langsung pakai; cocok untuk perangkat tanpa administrator |
| Satu berkas | Salin, kirim, atau simpan di flash disk — database tetap utuh |
| Lintas platform | Berkas yang sama terbuka di Windows, Linux, macOS, 32-bit maupun 64-bit |
| ACID | Data selamat dari crash dan mati listrik di tengah transaction |
| Public domain | Bebas dipakai dan didistribusikan ulang tanpa biaya maupun atribusi |
SQLite Ada di Mana-mana #
SQLite adalah SQL database engine yang paling banyak terpasang di dunia. Setiap perangkat Android dan iPhone, setiap instalasi Windows 10/11 dan Mac, browser Firefox, Chrome, dan Safari, bahkan bahasa pemrograman PHP dan Python — semuanya membawa SQLite di dalamnya. Situs resminya memperkirakan jumlah berkas database SQLite yang aktif dipakai melebihi satu triliun; angka itu masuk akal karena satu ponsel pintar saja dapat memuat ratusan berkas database dari puluhan aplikasi.
Mengapa database yang ringkas ini bisa menjadi sebanyak itu penggunanya? Jawabannya terletak pada sejarah dan filosofi desainnya, yang kita bahas pada Chapter Sejarah dan Filosofi SQLite.