Database and SQL Fundamental MySQL 2
π§© Pertemuan 2 β Pengenalan Database, SQL, Tipe Data & Constraint MySQL
π― Tujuan Pembelajaran
Setelah pertemuan ini, kamu diharapkan mampu:
- Memahami konsep database, DBMS, dan RDBMS.
- Mengenal kategori perintah SQL: DDL, DML, DCL, TCL.
- Membuat database dan tabel di MySQL.
- Memilih tipe data yang tepat untuk setiap kolom.
- Menerapkan berbagai constraint untuk menjaga integritas data.
π 1. Konsep Dasar Database
Database adalah kumpulan data yang tersimpan secara terstruktur agar mudah diakses, dikelola, dan diperbarui. Contoh: data mahasiswa, data transaksi, data produk.
DBMS (Database Management System) adalah perangkat lunak yang mengelola database. Contoh: Microsoft Access.
RDBMS (Relational Database Management System) adalah DBMS yang menyimpan data dalam bentuk tabel-tabel yang saling berelasi. Contoh: MySQL, PostgreSQL, Oracle, Microsoft SQL Server.
Pada course ini kita menggunakan MySQL β RDBMS yang paling populer, open-source, dan gratis.
π 2. Kategori Perintah SQL
| Kategori | Kepanjangan | Fungsi | Contoh Perintah |
|---|---|---|---|
| DDL | Data Definition Language | Mendefinisikan struktur database | CREATE, ALTER, DROP, TRUNCATE |
| DML | Data Manipulation Language | Memanipulasi isi data | SELECT, INSERT, UPDATE, DELETE |
| DCL | Data Control Language | Mengatur hak akses user | GRANT, REVOKE |
| TCL | Transaction Control Language | Mengatur transaksi | COMMIT, ROLLBACK, SAVEPOINT |
π 3. Tipe Data di MySQL
Numerik
| Tipe Data | Ukuran | Range | Keterangan |
|---|---|---|---|
TINYINT |
1 byte | -128 s/d 127 | Angka sangat kecil |
INT |
4 byte | -2 miliar s/d 2 miliar | Angka umum |
BIGINT |
8 byte | Sangat besar | ID unik, data besar |
DECIMAL(p,s) |
Variabel | Presisi tinggi | Harga, nilai uang |
FLOAT |
4 byte | Approx | Nilai desimal biasa |
Teks
| Tipe Data | Keterangan |
|---|---|
CHAR(n) |
Panjang tetap, cocok untuk kode/kode pos |
VARCHAR(n) |
Panjang variabel, paling umum digunakan |
TEXT |
Teks panjang (artikel, deskripsi) |
ENUM('a','b') |
Nilai dari pilihan tertentu |
Tanggal & Waktu
| Tipe Data | Format | Keterangan |
|---|---|---|
DATE |
YYYY-MM-DD | Hanya tanggal |
DATETIME |
YYYY-MM-DD HH:MM:SS | Tanggal dan waktu |
TIMESTAMP |
YYYY-MM-DD HH:MM:SS | Auto-update waktu |
YEAR |
YYYY | Hanya tahun |
π‘ Tips: Gunakan
DECIMALuntuk nilai uang (bukanFLOAT), karenaFLOATbisa menyebabkan ketidaktepatan desimal.
π 4. Constraint (Aturan Data)
Constraint adalah aturan yang diterapkan pada kolom untuk menjaga kualitas dan konsistensi data.
| Constraint | Fungsi | Contoh |
|---|---|---|
PRIMARY KEY |
Pengenal unik setiap baris | id_mahasiswa |
FOREIGN KEY |
Menghubungkan dua tabel | id_jurusan merujuk ke tabel jurusan |
UNIQUE |
Nilai tidak boleh duplikat | email, nomor_ktp |
NOT NULL |
Kolom tidak boleh kosong | nama |
DEFAULT |
Nilai otomatis jika tidak diisi | status DEFAULT 'aktif' |
CHECK |
Membatasi nilai berdasarkan kondisi | usia >= 17 |
AUTO_INCREMENT |
Nilai angka otomatis bertambah | Kolom ID |
π§βπ» LATIHAN 1 β Setup MySQL & Database Pertama
Langkah 1: Persiapan
Pastikan MySQL sudah terinstall. Untuk mengakses MySQL lewat terminal:
1 | mysql -u root -p |
Langkah 2: Buat Database
1 | -- Membuat database baru |
Langkah 3: Buat Tabel Pertama
1 | -- Membuat tabel jurusan |
Langkah 4: Isi Data
1 | -- Isi tabel jurusan |
Langkah 5: Tampilkan Data
1 | -- Tampilkan semua data |
π§βπ» LATIHAN 2 β Mengubah Struktur Tabel (ALTER TABLE)
1 | -- Menambahkan kolom baru |
Verifikasi perubahan:
1 | DESCRIBE mahasiswa; |
π§βπ» LATIHAN 3 β Uji Coba Constraint
Coba jalankan query-query berikut dan amati hasilnya:
1 | -- 1. Coba INSERT duplikat NIM (harusnya ERROR) |
Catat setiap error yang muncul dan jelaskan mengapa error tersebut terjadi!
π§βπ» LATIHAN 4 β Studi Kasus: Database Toko
Buat database toko online dari awal dengan ketentuan berikut:
Tabel yang diperlukan:
kategoriβ menyimpan kategori produkid_kategori,nama_kategori,deskripsi
produkβ menyimpan data produkid_produk,kode_produk(UNIQUE),nama_produk,harga(DECIMAL, tidak boleh negatif),stok(DEFAULT 0),id_kategori(FK)
pelangganβ menyimpan data pelangganid_pelanggan,nama,email(UNIQUE),telepon,alamat,tgl_daftar(DEFAULT NOW())
pesananβ menyimpan header pesananid_pesanan,id_pelanggan(FK),tgl_pesanan(DEFAULT NOW()),total_harga,status(ENUM: βpendingβ,βdibayarβ,βdikirimβ,βselesaiβ,βdibatalkanβ)
detail_pesananβ item dalam setiap pesananid_detail,id_pesanan(FK),id_produk(FK),jumlah,harga_satuan
Ketentuan:
1 | -- Tulis script SQL lengkap untuk: |
π§βπ» LATIHAN 5 β Tipe Data dalam Praktik
Untuk setiap skenario berikut, tentukan tipe data yang paling tepat dan jelaskan alasannya:
| No | Kolom | Nilai Contoh | Tipe Data Yang Tepat | Alasan |
|---|---|---|---|---|
| 1 | Harga produk | 299000.50 | β¦ | β¦ |
| 2 | Kode pos | β12345β | β¦ | β¦ |
| 3 | Deskripsi produk panjang | βLaptop gaming denganβ¦β | β¦ | β¦ |
| 4 | Status aktif | true/false | β¦ | β¦ |
| 5 | Tahun lahir | 2004 | β¦ | β¦ |
| 6 | Nomor KTP | β3201234567890001β | β¦ | β¦ |
| 7 | Rating produk (1-5) | 4 | β¦ | β¦ |
| 8 | Gaji karyawan | 8500000.00 | β¦ | β¦ |
| 9 | Waktu login terakhir | 2026-06-11 08:30:00 | β¦ | β¦ |
| 10 | Gender | βLaki-lakiβ/βPerempuanβ | β¦ | β¦ |
Setelah menentukan tipe data, buat tabel profil_karyawan yang menggunakan semua tipe data di atas!
π§βπ» LATIHAN 6 β DROP dan TRUNCATE
1 | -- Buat tabel percobaan |
Pertanyaan: Apa perbedaan antara DELETE, TRUNCATE, dan DROP? Kapan menggunakan masing-masing?
π§© TUGAS PERORANGAN
Estimasi waktu: Β±1,5 jam
Buat database dengan nama db_<NamaKamu> (contoh: db_Andi) yang berisi:
- Minimal 3 tabel yang saling berelasi dengan FOREIGN KEY
- Terapkan semua jenis constraint berikut:
PRIMARY KEY,UNIQUE,NOT NULL,DEFAULT,CHECK,AUTO_INCREMENT - Gunakan minimal 5 tipe data berbeda
- Masukkan minimal 8 data per tabel
- Jalankan
SELECT * FROMsetiap tabel - Coba langgar setiap constraint dan screenshot/catat error yang muncul
Tema bebas β boleh sistem sekolah, apotek, bioskop, restoran, dll.
πΎ Kumpulkan dengan nama: Pertemuan2_Nama.sql
π Refleksi
- Apa perbedaan antara
PRIMARY KEYdanUNIQUE? Bisakah sebuah tabel punya duaPRIMARY KEY? - Mengapa
DECIMALlebih baik dariFLOATuntuk menyimpan nilai uang? - Apa yang terjadi jika kamu melakukan DELETE data yang dirujuk oleh FOREIGN KEY?
- Kapan kamu menggunakan
VARCHARvsCHAR?




