Panduan

Apa Itu Database? Panduan untuk Orang yang Membangun Aplikasi

Database adalah kumpulan informasi yang tertata rapi, tempat aplikasi menyimpan dan membacanya — pengguna, pesanan, booking, pesan. Berbeda dengan informasi yang hanya disimpan di tab browser, data di dalam database tetap ada setelah halaman dimuat ulang atau aplikasi di-restart, dan semua orang yang memakai aplikasi melihat catatan yang sama. Sebagian besar database mengatur data dalam tabel, mirip lembar kerja di spreadsheet, tetapi dengan aturan ketat yang menjaga data tetap konsisten.

Mengapa ini penting saat membangun dengan AI

Kejutan paling umum bagi orang yang membangun dengan AI adalah aplikasi yang terlihat sudah jadi tetapi melupakan semuanya. Anda menambahkan pelanggan, memuat ulang halaman, dan datanya hilang. Biasanya itu berarti aplikasi menyimpan data di memori browser, bukan di database.

Database juga tempat banyak keputusan terpenting Anda berada, disadari atau tidak:

  • Apa yang Anda catat. Jika status booking tidak disimpan, Anda tidak bisa menampilkan booking mana yang dibatalkan.
  • Bagaimana segala sesuatu terhubung. Apakah satu pelanggan bisa memiliki banyak booking, atau satu booking memiliki banyak layanan, membentuk seluruh aplikasi.
  • Siapa yang boleh melihat apa. Sebagian besar kesalahan privasi berkaitan dengan catatan mana yang boleh dibaca pengguna.

Anda tidak perlu merancang database sendiri. Tetapi memahami dasarnya membuat Anda bisa menjelaskan data dengan jelas dan menangkap masalah lebih awal.

Analogi sehari-hari

Bayangkan lemari arsip yang tertata rapi di kantor kecil.

Setiap laci berisi satu jenis hal: satu laci untuk klien, satu untuk janji temu, satu untuk faktur. Di dalam setiap laci, setiap map mengikuti format yang sama, dengan kolom yang terisi dengan cara yang sama. Setiap map memiliki nomor referensi yang unik, dan ketika sebuah faktur milik seorang klien, map faktur itu mencatat nomor klien tersebut alih-alih memfotokopi seluruh berkasnya.

Itulah database relasional. Laci adalah tabel, map adalah baris, kolom isian adalah kolom, nomor referensi adalah primary key, dan catatan yang menunjuk ke map lain adalah foreign key. Manajer kantor yang baik juga menegakkan aturan — tidak ada janji temu tanpa tanggal, tidak ada dua klien dengan nomor yang sama — sama seperti database.

Contoh nyata: aplikasi booking salon

Anggap Anda meminta AI membuat situs booking untuk salon rambut. Database yang masuk akal akan memiliki empat tabel.

services

idnameduration_minutesprice
1Potong rambut4540.00
2Pewarnaan9095.00

staff

idnameemail
1Sarasara@example.com
2Omaromar@example.com

customers

idnameemailphone
101Lena Parklena@example.com555-0100

bookings

idcustomer_idservice_idstaff_idstarts_atstatus
5001101122026-10-03 14:00confirmed

Perhatikan tabel bookings. Tabel ini tidak menyalin nama dan nomor telepon Lena ke setiap booking; ia hanya menyimpan customer_id = 101. Jika Lena mengubah nomor teleponnya, perubahan itu hanya terjadi di satu tempat dan setiap booking menampilkan nomor yang baru. Inilah gagasan inti database relasional: simpan setiap fakta sekali, dan tautkan ke sana.

Struktur yang sama juga menjawab pertanyaan yang berguna:

  • "Jam mana yang kosong untuk Omar hari Jumat?" — lihat booking Omar pada hari itu.
  • "Berapa pendapatan dari janji pewarnaan bulan ini?" — gabungkan booking dengan layanan dan jumlahkan harganya.
  • "Pelanggan mana yang belum booking dalam 90 hari?" — bandingkan pelanggan dengan booking terakhir mereka.

Istilah umum yang dijelaskan

IstilahArtinya
TabelKumpulan satu jenis catatan, seperti pelanggan atau booking.
Baris (record)Satu item di dalam tabel — satu pelanggan, satu booking.
Kolom (field)Satu bagian informasi yang dimiliki setiap baris, seperti email atau harga.
Primary keyID unik untuk setiap baris, biasanya angka atau string acak.
Foreign keyKolom yang menunjuk ke baris di tabel lain, seperti customer_id di tabel booking.
SchemaDesain keseluruhan: tabel apa saja yang ada, kolomnya, dan bagaimana keduanya terhubung.
QueryPermintaan untuk membaca atau mengubah data, seperti "semua booking untuk besok."
SQLStructured Query Language, bahasa standar untuk melakukan query pada database relasional.
MigrationPerubahan schema yang tersimpan dan bisa diulang, seperti menambah kolom.
IndexStruktur pencarian yang membuat pencarian pada kolom lebih cepat, seperti indeks di buku.
CRUDCreate, Read, Update, Delete — empat hal dasar yang dilakukan aplikasi terhadap data.
BackupSalinan data yang bisa dipulihkan jika terjadi sesuatu yang salah.

Jenis-jenis database

JenisCara menyimpan dataContohCocok untuk
Relasional (SQL)Tabel dengan kolom tetap dan relasi di antaranyaPostgres, MySQL, SQLiteSebagian besar aplikasi bisnis: booking, toko, CRM, SaaS
Dokumen (NoSQL)Dokumen fleksibel mirip JSONMongoDB, FirestoreData dengan bentuk yang sangat bervariasi dari satu catatan ke catatan lain
Key-valueNilai yang disimpan di bawah sebuah keyRedisCaching, data berumur pendek seperti sesi

Untuk hampir semua hal yang pertama kali dibangun oleh founder atau bisnis kecil, database relasional adalah pilihan default yang aman.

Letak database di dalam aplikasi Anda

Pengunjung tidak pernah berbicara langsung dengan database. Halaman di browser mereka (frontend) meminta data dari server Anda (backend), biasanya melalui API. Server memeriksa siapa yang meminta dan apakah mereka diizinkan, lalu melakukan query ke database dan hanya mengirimkan apa yang boleh dilihat orang tersebut.

Langkah perantara itu penting. Jika browser bisa melakukan query langsung ke database dengan akses penuh, siapa pun bisa membuka developer tools dan membaca semuanya.

Kesalahan dan kesalahpahaman yang umum

  • Menyimpan data hanya di browser. Penyimpanan browser (seperti localStorage) hanya ada di satu perangkat dan satu browser. Itu tidak masalah untuk filter yang diingat, tetapi tidak untuk pesanan.
  • Memasukkan semuanya ke satu tabel. Satu tabel "booking" dengan nama, telepon, dan harga layanan pelanggan yang disalin ke setiap baris akan cepat tidak sinkron.
  • Menyimpan password sebagai teks biasa. Password harus di-hash, tidak boleh disimpan dalam bentuk yang bisa dibaca. Lihat apa itu authentication.
  • Tidak ada aturan pada data. Tanpa field wajib dan aturan keunikan, Anda akan mendapatkan booking tanpa tanggal dan pelanggan ganda.
  • Lupa soal penghapusan. Tentukan apakah menghapus pelanggan juga menghapus booking-nya, mempertahankannya, atau diblokir.
  • Memakai data produksi untuk bereksperimen. Uji perubahan yang berisiko di tempat yang aman lebih dulu, dan simpan backup.
  • Menganggap spreadsheet sebagai database selamanya. Spreadsheet sangat bagus untuk memulai, tetapi kesulitan menangani banyak pengguna bersamaan dan izin akses. Lihat cara mengubah spreadsheet menjadi aplikasi.

Yang sebaiknya diminta ke pembuat aplikasi AI Anda

  • "Simpan ini di database, bukan di browser. Beri tahu saya tabel apa saja yang akan Anda buat."
  • "Tampilkan schema dalam tabel sederhana: setiap tabel, kolomnya, dan bagaimana keduanya terhubung."
  • "Satu pelanggan bisa memiliki banyak booking; setiap booking memiliki tepat satu layanan dan satu anggota staf."
  • "Buat email wajib dan unik untuk pelanggan."
  • "Cegah dua booking untuk anggota staf yang sama saling tumpang tindih."
  • "Hanya pemilik yang sudah login yang bisa membaca semua booking; pelanggan hanya bisa melihat booking mereka sendiri. Terapkan itu di server."
  • "Saat saya menghapus sebuah layanan, jangan hapus booking yang sudah lewat — tandai saja layanannya sebagai tidak aktif."

Database di Mythex

Ketika aplikasi Anda perlu menyimpan data, Mythex menambahkan database Postgres khusus ke proyek — Anda bisa memintanya di chat ("simpan pendaftaran daftar tunggu ke database") atau memakai perintah /database. Detail koneksi diteruskan ke aplikasi Anda secara otomatis, dan agen yang membuat tabel-tabelnya. Database akan tidur setelah lima menit tidak aktif dan bangun saat ada permintaan berikutnya, dan penggunaan saat dipublikasikan ditagih berdasarkan waktu database tersebut terjaga, dari saldo kredit yang sama dengan saat membangun. Fitur ini tersedia di paket Free dan Pro. Dokumentasi database menjelaskan detailnya, dan template aplikasi menyediakan titik awal yang berbasis data.

Pertanyaan

Apa itu database dalam istilah sederhana?

Database adalah kumpulan informasi yang tertata rapi, tempat aplikasi menyimpan dan membacanya, misalnya data pengguna, pesanan, atau booking. Berbeda dengan data yang hanya disimpan di tab browser, data di database tetap ada setelah halaman dimuat ulang, aplikasi di-restart, atau saat seseorang membuka aplikasi dari perangkat lain.

Apakah spreadsheet itu database?

Spreadsheet bisa menyimpan jenis data yang sama, tetapi tidak dibuat untuk aplikasi. Database sungguhan menegakkan aturan tentang isi setiap kolom, menghubungkan tabel dengan andal, menangani banyak orang yang menulis secara bersamaan, dan mengatur siapa yang boleh membaca apa.

Apa perbedaan database SQL dan NoSQL?

Database SQL (relasional) seperti Postgres dan MySQL menyimpan data dalam tabel dengan kolom yang sudah ditentukan dan relasi di antaranya. Database NoSQL seperti MongoDB menyimpan dokumen yang lebih fleksibel. Sebagian besar aplikasi bisnis — booking, CRM, toko — sangat cocok dengan model relasional.

Apakah aplikasi saya memerlukan database?

Ya, jika aplikasi perlu mengingat apa pun yang dimasukkan orang — pendaftaran, pesanan, pesan, pengaturan — dan menampilkannya nanti atau kepada orang lain. Situs informasi murni tanpa formulir yang menyimpan data biasanya tidak memerlukannya.

Mythex · Pricing · Bangun apa pun dengan AI · Template website dan aplikasi · Mythex dibandingkan · Glosarium membuat aplikasi dengan AI · Alat gratis untuk membuat aplikasi dengan AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)