💾 Pengenalan Database

📚 Apa itu Database?
Database atau basis data adalah kumpulan data yang dikelola sedemikian rupa berdasarkan ketentuan tertentu yang saling berhubungan sehingga mudah dalam pengelolaannya.
✅ Kemudahan yang Diperoleh:
| Fungsi | Deskripsi |
|---|---|
| 🔍 Mencari | Kemudahan dalam mencari informasi |
| 💾 Menyimpan | Menyimpan informasi dengan terstruktur |
| 🗑️ Menghapus | Menghapus informasi yang tidak diperlukan |
💡 Definisi Lain
Database adalah sistem yang berfungsi untuk mengumpulkan file, tabel, atau arsip yang terhubung dan disimpan dalam berbagai media elektronik.
📦 Jenis-jenis Database

1. 📋 Relational Database (SQL)

💡 Relational Database
Database relasional menggunakan model data relasional dengan tabel untuk menyimpan data dan relasi antar tabel untuk menghubungkan data.
Contoh Database Relasional:
- 🐬 MySQL
- 🐘 PostgreSQL
- 🔴 Oracle Database
- 🔵 Microsoft SQL Server
2. 🍃 NoSQL Database

💡 NoSQL Database
NoSQL adalah database yang tidak menggunakan model data relasional. NoSQL menggunakan model data yang lebih fleksibel seperti dokumen, grafik, key-value, dan lainnya.
Contoh Database NoSQL:
- 🌿 MongoDB (Document-based)
- 📄 CouchDB (Document-based)
- 📊 Cassandra (Column-based)
- ⚡ Redis (Key-Value)
⚔️ Perbedaan Sintaks SQL vs NoSQL

Perbandingan sintaks SQL dan NoSQL (MongoDB)
📥 Insert a New Book Record
| SQL | NoSQL (MongoDB) |
|---|---|
INSERT INTO untuk memasukkan data baru | db.book.insert() untuk menambahkan dokumen |
| Kolom: ISBN, title, author | Field: ISBN, title, author |
📝 Catatan
Baik SQL maupun NoSQL menggunakan field yang sama (ISBN, title, author), namun dengan sintaks yang berbeda.
🔄 Update a Book Record
| SQL | NoSQL (MongoDB) |
|---|---|
UPDATE untuk memperbarui data | db.book.update() untuk memperbarui dokumen |
| Langsung set nilai baru | Menggunakan operator $set |
Contoh:
- SQL: Mengubah kolom
pricemenjadi 19.99 - MongoDB: Menggunakan
$setuntuk menentukan perubahan nilaipricemenjadi 19.99
🔍 Return All Book Titles Over $10
| SQL | NoSQL (MongoDB) |
|---|---|
SELECT untuk mengambil data | db.book.find() untuk query dokumen |
WHERE price > 10 untuk filter | {price: {$gt: 10}} untuk filter |
MongoDB Options:
{ _id: 0, title: 1 }_id: 0= Tidak menampilkan field _idtitle: 1= Hanya menampilkan field title
🛠️ Setup Praktik & DDL: Studi Kasus Absensi
Teori di atas cukup. Sekarang praktik. Sepanjang sisa fundamental, kita memakai satu contoh berjalan: aplikasi absensi mahasiswa (db_absensi / tb_absensi).
Setup Database (Semua OS)
Siapkan server + database db_absensi mengikuti Instalasi & Setup Lingkungan (Windows/Laragon, macOS/Homebrew/XAMPP, atau Linux). Intinya: nyalakan MySQL, buka http://localhost/phpmyadmin/, buat database db_absensi.
DDL: CREATE TABLE
DDL (Data Definition Language) mendefinisikan struktur database/tabel. Buat tabel absensi beserta kolom dan tipe datanya:
USE db_absensi;
CREATE TABLE tb_absensi (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
nim VARCHAR(20) NOT NULL,
status ENUM('Hadir', 'Izin', 'Sakit', 'Alpa') NOT NULL,
tanggal DATE NOT NULL
);| Kolom | Tipe | Keterangan |
|---|---|---|
id | INT AUTO_INCREMENT PRIMARY KEY | Identitas unik, terisi otomatis (1, 2, 3, ...) |
nama | VARCHAR(100) NOT NULL | Nama mahasiswa, wajib diisi |
nim | VARCHAR(20) NOT NULL | Nomor induk mahasiswa, wajib diisi |
status | ENUM(...) | Hanya boleh Hadir/Izin/Sakit/Alpa |
tanggal | DATE NOT NULL | Format YYYY-MM-DD |
Konsep PRIMARY KEY, NOT NULL, AUTO_INCREMENT, dan tipe data lengkapnya dibahas di Pengenalan MySQL. Di bawah ini versi praktiknya.
DDL: ALTER TABLE
Memodifikasi struktur tabel yang sudah ada:
-- Menambah kolom keterangan
ALTER TABLE tb_absensi
ADD keterangan TEXT;
-- Mengubah panjang kolom nama
ALTER TABLE tb_absensi
MODIFY nama VARCHAR(150) NOT NULL;DDL: DROP TABLE
Menghapus tabel secara permanen:
DROP TABLE tb_absensi;⚠️ Hati-hati!
DROP TABLE menghapus tabel beserta seluruh datanya dan tidak bisa di-undo. Pastikan nama tabel sudah benar.
✅ Checklist
- [ ] Bisa menjelaskan database, tabel, baris, kolom, dan tipe data dasar
- [ ] Laragon berjalan dan database
db_absensiterbuat - [ ] Tabel
tb_absensiterbuat viaCREATE TABLE, pernah mencobaALTER TABLE
