Apa Itu Database?
Database adalah kumpulan data yang terorganisasi dan disimpan di komputer supaya program bisa mencari, menambah, mengubah, dan menghapusnya dengan cepat dan aman. Database dikelola oleh software yang disebut database management system (DBMS), seperti PostgreSQL, MySQL, SQLite, atau MongoDB.
Diperbarui 24 September 2026
Saat kamu masuk ke sebuah website, situs itu harus menemukan akunmu di antara jutaan akun lain, memeriksa password-mu, dan memuat pengaturanmu, semuanya dalam beberapa milidetik. Situs itu tidak membuka file teks lalu membacanya baris demi baris. Ia mengirim permintaan seperti SELECT * FROM users WHERE email = 'ana@example.com' ke database, dan database langsung melompat ke baris yang tepat dengan memakai index, mirip indeks di bagian belakang sebuah buku.
Cara kerja database
Ada dua bagian yang bekerja sama. Database adalah datanya, yang tersusun dalam struktur yang tetap. Database management system (DBMS) adalah program yang menyimpan data itu dalam file, menjaganya tetap konsisten, dan menjawab permintaan. PostgreSQL, MySQL, dan SQLite adalah DBMS; daftar pelangganmu adalah database-nya.
Dalam database relasional, data tinggal di dalam tabel. Setiap tabel punya kolom (nama, negara, poin) dan baris (satu per pengguna). Sebuah permintaan melewati langkah-langkah berikut:
- Programmu mengirim query, biasanya ditulis dalam SQL (Structured Query Language).
- DBMS mem-parse query itu dan merencanakan cara menjawabnya: tabel mana yang dibaca dan apakah sebuah index bisa melewati sebagian besar baris.
- DBMS membaca data dari disk dalam page berukuran tetap (secara default 4.096 byte di SQLite, 8 KB di PostgreSQL), sambil menyimpan page yang sering dipakai di memori.
- DBMS menyaring, mengurutkan, dan menggabungkan baris, lalu mengembalikan hasilnya.
Python menyertakan SQLite, jadi kamu bisa menjalankan database sungguhan di sini:
Kenji 340
Omar 340
Ana 120
users: 4 average points: 222.5
Program itu tidak pernah menjelaskan cara mencari. Program hanya menggambarkan hasil yang diinginkannya, dan DBMS yang memutuskan cara mendapatkannya. Itulah perbedaan utama antara bertanya kepada database dan menulis loop atas sebuah list.
Jenis-jenis database
| Jenis | Menyimpan data sebagai | Contoh | Pemakaian yang umum |
|---|---|---|---|
| Relasional (SQL) | Tabel berisi baris dan kolom, dihubungkan lewat key | PostgreSQL, MySQL, SQLite, Oracle, SQL Server | Pengguna, pesanan, pembayaran: sebagian besar aplikasi |
| Dokumen | Dokumen mirip JSON | MongoDB, Firestore, CouchDB | Catatan yang field-nya berbeda-beda dari satu ke yang lain |
| Key-value | Nilai yang dicari lewat satu key | Redis, DynamoDB | Cache, session, penghitung |
| Wide-column | Baris dengan kolom fleksibel yang tersebar di banyak server | Cassandra, HBase | Volume penulisan yang sangat tinggi |
| Graph | Node dan hubungan antarnode | Neo4j | Jejaring sosial, rekomendasi |
| Time-series | Pengukuran yang diindeks berdasarkan waktu | InfluxDB, TimescaleDB | Metrik, data sensor |
| Vector | Deretan angka (embedding) | pgvector, Pinecone, Milvus | Pencarian kemiripan untuk fitur AI |
Semua yang bukan relasional sering dikelompokkan sebagai NoSQL. Database relasional tetap menjadi pilihan default untuk sebagian besar aplikasi, karena tabel, constraint, dan SQL bisa menangani berbagai macam masalah dengan baik. Banyak produk juga menggabungkan beberapa jenis: PostgreSQL bisa menyimpan dokumen JSON, dan pgvector menambahkan pencarian vector ke dalamnya.
Transaksi: semua atau tidak sama sekali
Memindahkan uang dari Ana ke Ben butuh dua perubahan: tambahkan ke Ben, kurangi dari Ana. Kalau program crash di antara keduanya, uang muncul entah dari mana. Transaksi mengelompokkan perubahan supaya semuanya tersimpan atau tidak ada satu pun yang tersimpan. Di sini perubahan kedua melanggar sebuah aturan (saldo tidak boleh di bawah nol), jadi database juga membatalkan perubahan pertama:
transfer 30 done
{'ana': 20, 'ben': 30}
transfer 40 failed: CHECK constraint failed: balance >= 0
{'ana': 20, 'ben': 30}
Uang 40 untuk Ben sempat ditambahkan lalu ditarik kembali, jadi totalnya tetap sesuai. Database relasional menjanjikan empat sifat untuk transaksi, yang dikenal sebagai ACID: atomic (semua atau tidak sama sekali), consistent (aturan seperti CHECK selalu terpenuhi), isolated (dua pengguna yang menjalankan transaksi bersamaan tidak melihat pekerjaan setengah jadi milik satu sama lain), dan durable (begitu tersimpan, sebuah perubahan tetap ada meskipun terjadi crash atau listrik padam).
Database vs spreadsheet vs file
| File teks atau CSV | Spreadsheet | Database | |
|---|---|---|---|
| Ukuran | Sebanyak yang bisa dimuat programmu | 1.048.576 baris per sheet di Excel | Miliaran baris |
| Banyak penulis sekaligus | Tidak | Terbatas | Ya, dengan lock dan transaksi |
| Menemukan satu catatan | Membaca seluruh file | Filter atau pencarian | Pencarian lewat index |
| Aturan pada data | Tidak ada | Validasi opsional | Tipe, constraint, foreign key |
| Mengajukan pertanyaan | Menulis kode sendiri | Rumus | SQL atau API query |
Spreadsheet adalah alat yang bagus untuk satu orang yang melihat beberapa ribu baris. Begitu beberapa program atau pengguna menulis data pada saat yang sama, atau datanya harus mengikuti aturan, database adalah alat yang tepat.
Bagaimana database melindungi data
DBMS menulis setiap perubahan ke sebuah log sebelum menyentuh file datanya (write-ahead log), jadi setelah crash, DBMS bisa memutar ulang atau membatalkan pekerjaan yang belum selesai. PostgreSQL bisa menyimpan checksum di setiap page berukuran 8 KB dan melaporkan kegagalan checksum saat disk yang rusak mengembalikan data yang rusak. Pengguna dan izin menentukan siapa yang boleh membaca atau mengubah tabel mana, dan replikasi menyimpan salinan di server lain. Program juga harus memasukkan input pengguna sebagai parameter, seperti placeholder ? di atas, dan tidak pernah dengan menempelkannya langsung ke teks SQL, karena dari situlah serangan SQL injection terjadi.
Kesalahpahaman yang umum
- "SQL adalah database." SQL adalah bahasanya. PostgreSQL, MySQL, dan SQLite adalah database yang memahaminya.
- "NoSQL berarti sama sekali tanpa SQL." Istilah ini biasanya dibaca sebagai "not only SQL", dan beberapa database NoSQL punya bahasa query yang mirip SQL, seperti CQL milik Cassandra.
- "Database selalu berupa server besar." SQLite adalah satu file yang dibuka langsung oleh sebuah program, tanpa server sama sekali. SQLite berjalan di dalam setiap ponsel Android dan iOS.
- "Data di database aman selamanya." Database melindungi dari crash, bukan dari seseorang yang menjalankan
DELETEsecara tidak sengaja. Backup tetap dibutuhkan.
Lanjut ke mana
Kursus SQL mengajarkan query sejak SELECT yang pertama. Dokumentasi SQLite membahas langkah-langkah berikutnya: apa itu SQLite, membuat tabel, index, dan mencegah SQL injection. Untuk melihat bagaimana data tersusun di disk, baca apa itu byte, dan checksum menjelaskan bagaimana page yang rusak dideteksi.
Pertanyaan yang sering diajukan
Apa itu database dalam bahasa sederhana?
Database adalah tempat sebuah program menyimpan informasi supaya bisa menemukannya lagi dengan cepat. Bayangkan lemari arsip dengan indeks yang sempurna: kamu meminta "semua pesanan minggu lalu" dan mendapat jawabannya dalam hitungan milidetik, bahkan saat ada jutaan catatan.
Apa contoh database?
Kontak di ponselmu disimpan di sebuah database: Android dan iOS sama-sama menyertakan SQLite. Bank menyimpan rekening nasabah di database seperti Oracle atau PostgreSQL, dan Wikipedia menyimpan artikel-artikelnya di MariaDB. Toko online menyimpan produk, pelanggan, dan pesanan di tabel-tabel yang saling berhubungan.
Apa saja empat jenis database?
Tidak ada daftar resmi berisi empat jenis. Empat yang paling sering disebut adalah database relasional (tabel dan SQL), database dokumen (catatan mirip JSON), key-value store (nilai yang dicari lewat sebuah key), dan database graph (node dan hubungan antarnode). Buku pelajaran yang lebih lama juga mencantumkan database hierarkis dan database network.
Apa saja 5 database teratas?
Oracle, MySQL, Microsoft SQL Server, PostgreSQL, dan MongoDB sudah bertahun-tahun menempati lima besar peringkat popularitas DB-Engines. Di kalangan developer, PostgreSQL menjadi database yang paling banyak dipakai dalam Stack Overflow Developer Survey sejak 2023, dan SQLite adalah yang paling luas terpasang, karena ikut tertanam di dalam ponsel dan browser.
Apa bedanya database dan DBMS?
Database adalah datanya sendiri, yang tersusun dalam tabel atau dokumen. DBMS adalah software yang menyimpan data itu di disk dan menjawab permintaan atasnya, seperti PostgreSQL atau MySQL. Orang sering menyebut keduanya "database".
Apakah saya harus belajar SQL untuk memakai database?
Untuk database relasional, ya: SQL adalah cara kamu membuat tabel dan mengajukan pertanyaan kepada data, dan dasar-dasarnya bisa dipelajari dalam beberapa hari. Banyak program memakai library yang menuliskan SQL untukmu, tetapi menguasai SQL membuatmu jauh lebih mudah memahami apa yang dilakukan library itu dan kenapa sebuah query lambat.