‹ Daftar slidePertemuan 10: Perintah SQL DDL dan DML dasar
Program Studi Bisnis Digital · FEB UNDIP
Sistem Database
Pertemuan 10 · Perintah SQL DDL dan DML Dasar
Membuat, Mengisi, dan Mengubah Data dengan SQL
RPS minggu 11 · 2x50 menit
Bagian 1 dari 4
Dari Rancangan ke Database Nyata
Mengapa kita butuh SQL, dan di mana posisinya dalam siklus perancangan basis data.
Apa itu SQL?
SQL (Structured Query Language) adalah bahasa standar untuk berkomunikasi dengan Relational Database Management System (RDBMS — perangkat lunak pengelola basis data relasional, contoh: MySQL, PostgreSQL, SQL Server). Dengan SQL, Anda memberi perintah untuk membuat struktur data maupun mengelola isinya.
DDL
Struktur
Data Definition Language
Perintah untuk membangun "wadah" data: membuat, mengubah, atau menghapus tabel dan skema. Ibarat membangun rak dan lemari di gudang.
DML
Isi Data
Data Manipulation Language
Perintah untuk mengisi, membaca, mengubah, atau membuang barang di dalam rak tersebut — datanya sendiri, bukan strukturnya.
Studi Kasus Hari Ini: Toko Online UMKM
Sepanjang pertemuan ini kita akan membangun sebagian kecil database untuk toko online fiktif bernama "Warung Nadia" yang berjualan di marketplace. Kita fokus pada dua tabel:
Tabel produk
id_produk (angka, unik)
nama_produk (teks)
harga (angka)
stok (angka)
Tabel pelanggan
id_pelanggan (angka, unik)
nama (teks)
kota (teks)
Bagian 2 dari 4
DDL — Membangun Struktur
CREATE, ALTER, dan DROP: tiga perintah untuk mengelola wadah data.
CREATE TABLE: Membuat Tabel Baru
Perintah CREATE TABLE mendefinisikan nama tabel, nama setiap kolom, tipe datanya, dan aturan (constraint) yang berlaku.
-- Membuat tabel produk untuk Warung NadiaCREATE TABLE produk (
id_produk INT PRIMARY KEY,
nama_produk VARCHAR(50) NOT NULL,
harga DECIMAL(10,2),
stok INT DEFAULT 0
);
VARCHAR(n) = teks panjang maksimal n karakter. DECIMAL(10,2) = angka desimal, 10 digit total dengan 2 di belakang koma (cocok untuk harga rupiah).
Tipe Data yang Sering Dipakai
Tipe Data
Kegunaan
Contoh Nilai
INT
Angka bulat (ID, jumlah, stok)
17, 250
DECIMAL(p,s)
Angka desimal presisi (harga, nominal uang)
150000.00
VARCHAR(n)
Teks panjang variabel, maksimal n karakter
"Kemeja Batik"
DATE
Tanggal kalender
2026-07-10
BOOLEAN
Nilai benar/salah
TRUE / FALSE
Memilih tipe data yang tepat mencegah pemborosan ruang penyimpanan dan menjaga data tetap valid — kolom harga jangan disimpan sebagai teks, karena Anda tidak bisa menjumlahkannya.
ALTER TABLE: Mengubah Struktur yang Sudah Ada
Setelah tabel dibuat, kebutuhan bisnis bisa berubah. Perintah ALTER TABLE memungkinkan kita menambah, mengubah, atau menghapus kolom tanpa membuat ulang seluruh tabel.
-- Warung Nadia mulai jualan lintas kota, butuh kolom kategoriALTER TABLE produk ADD kategori VARCHAR(30);
-- Ubah tipe kolom stok jadi lebih besar kapasitasnyaALTER TABLE produk MODIFY stok BIGINT;
-- Kolom yang ternyata tidak terpakai, dihapusALTER TABLE produk DROP COLUMN kategori;
DROP: Menghapus Struktur (Hati-hati!)
-- Hapus SATU TABEL beserta seluruh isinyaDROP TABLE produk;
Peringatan: DROP TABLE menghapus struktur dan seluruh data secara permanen. Tidak ada "keranjang sampah" bawaan — berbeda dengan menghapus file di komputer. Selalu pastikan Anda punya cadangan (backup) sebelum menjalankan perintah ini di database produksi.
Bandingkan dengan DELETE (bagian DML nanti) yang hanya membuang isi baris, sementara strukturnya tetap ada.
Hitung dari Nol #1: Membangun Tabel Pelanggan
Mari kita telusuri langkah demi langkah bagaimana tim IT Warung Nadia membangun tabel pelanggan dari nol hingga siap dipakai.
Langkah
Perintah
Hasil
1. Buat tabel dasar
CREATE TABLE pelanggan (id_pelanggan INT PRIMARY KEY, nama VARCHAR(50));
Tabel dengan 2 kolom
2. Tambah kolom kota
ALTER TABLE pelanggan ADD kota VARCHAR(30);
Tabel jadi 3 kolom
3. Wajibkan kota diisi
ALTER TABLE pelanggan MODIFY kota VARCHAR(30) NOT NULL;
Kolom kota kini wajib
4. Tambah kolom email
ALTER TABLE pelanggan ADD email VARCHAR(50);
Tabel jadi 4 kolom
HASIL AKHIR
4 kolom
id_pelanggan · nama · kota (wajib) · email
Bagian 3 dari 4
DML — Mengelola Isi Data
INSERT, UPDATE, dan DELETE: mengisi, mengubah, dan membuang data di dalam tabel.
INSERT: Menambahkan Data Baru
Perintah INSERT INTO menambahkan satu atau beberapa baris (row) data ke dalam tabel yang sudah ada.
-- Menambahkan satu produk baruINSERT INTO produk (id_produk, nama_produk, harga, stok)
VALUES (1, 'Tas Selempang Batik', 125000.00, 40);
-- Menambahkan beberapa baris sekaligusINSERT INTO produk (id_produk, nama_produk, harga, stok)
VALUES
(2, 'Kemeja Lurik', 95000.00, 25),
(3, 'Sarung Tenun', 175000.00, 15);
UPDATE: Mengubah Data yang Sudah Ada
Perintah UPDATE mengubah nilai kolom pada baris tertentu. Klausa WHERE menentukan baris mana yang diubah — lupa WHERE = seluruh tabel berubah!
-- Menaikkan harga satu produk sajaUPDATE produk
SET harga = 135000.00
WHERE id_produk = 1;
-- Mengurangi stok setelah ada penjualanUPDATE produk
SET stok = stok - 2
WHERE id_produk = 1;
Tanpa WHERE, UPDATE produk SET harga = 135000; akan mengubah harga SEMUA produk menjadi sama — kesalahan klasik pemula.
DELETE: Membuang Baris Data
Perintah DELETE membuang baris data tertentu, tanpa menghapus struktur tabelnya (bandingkan dengan DROP TABLE di Slide 9).
-- Buang satu produk yang sudah tidak dijualDELETE FROM produk
WHERE id_produk = 3;
-- Buang semua produk dengan stok kosongDELETE FROM produk
WHERE stok = 0;
Sama seperti UPDATE, DELETE tanpa WHERE akan membuang seluruh baris di tabel — tabelnya tetap ada, tapi kosong melompong.
Hitung dari Nol #2: Siklus Hidup Satu Baris Data
Mari telusuri perjalanan satu baris data produk dari lahir (INSERT) sampai berubah (UPDATE) hingga akhirnya dibuang (DELETE).
Langkah
Perintah
Kondisi Baris
1. Produk baru masuk
INSERT INTO produk VALUES (4,'Selendang Sutra',89000,10);
stok = 10
2. Terjual 3 buah
UPDATE produk SET stok = stok - 3 WHERE id_produk = 4;
stok = 10 − 3 = 7
3. Terjual 7 buah lagi
UPDATE produk SET stok = stok - 7 WHERE id_produk = 4;
stok = 7 − 7 = 0
4. Stok habis, dibuang dari katalog
DELETE FROM produk WHERE id_produk = 4;
baris dihapus
STOK AKHIR SEBELUM DIHAPUS
0 unit
10 − 3 − 7 = 0
Coba Sendiri: Jalankan Siklus Hidup Satu Baris Data
Klik INSERT, lalu UPDATE berkali-kali, lalu DELETE, dan amati bagaimana kondisi baris data berubah tahap demi tahap.
Constraint: Aturan yang Menjaga Kualitas Data
Constraint (aturan integritas) dipasang saat CREATE TABLE atau ditambahkan lewat ALTER TABLE, dan otomatis ditegakkan setiap kali ada INSERT/UPDATE.
PRIMARY KEY
Unik
Tiap baris wajib punya nilai berbeda, tak boleh kosong.
NOT NULL
Wajib Isi
Kolom tidak boleh dibiarkan kosong saat INSERT.
FOREIGN KEY
Rujukan
Nilai harus cocok dengan primary key di tabel lain.
Bagian 4 dari 4
Latihan dan Kesalahan Umum
Saatnya Anda mencoba menulis perintah SQL sendiri.
Latihan: Tulis Perintah SQL Anda Sendiri
Instruksi
Buat tabel baru bernama pesanan dengan kolom: id_pesanan (INT, PRIMARY KEY), id_produk (INT), jumlah (INT), tanggal (DATE).
Masukkan (INSERT) 2 baris data pesanan contoh dengan nilai bebas.
Ubah (UPDATE) jumlah pada salah satu baris tersebut.
Hapus (DELETE) satu baris berdasarkan id_pesanan tertentu.
Kerjakan berpasangan (2 mahasiswa), waktu 10 menit. Siapkan untuk dibahas bersama di layar.
Kesalahan Umum Pemula
Kesalahan
Akibat
Cara Menghindari
Lupa WHERE di UPDATE/DELETE
Seluruh baris tabel berubah/hilang
Selalu cek klausa WHERE sebelum Enter
Salah urutan kolom di INSERT
Data masuk ke kolom yang salah
Selalu tulis nama kolom eksplisit
Tipe data tidak cocok (teks ke INT)
Error / data tidak konsisten
Cek tipe data sebelum menulis VALUES
DROP TABLE tanpa backup
Seluruh data hilang permanen
Backup dulu sebelum DDL berisiko
Rangkuman & Pertemuan Berikutnya
Cheat sheet hari ini
CREATE / ALTER / DROP — DDL, mengelola struktur
INSERT / UPDATE / DELETE — DML, mengelola isi
Selalu pakai WHERE pada UPDATE & DELETE
Minggu Depan
SELECT
Query data dengan WHERE & ORDER BY
Setelah bisa membuat dan mengisi data, saatnya belajar membaca kembali data dengan perintah SELECT — fondasi seluruh analisis data.