Langsung ke konten
Belajar Database

Pengertian DDL dan DML dalam SQL: Panduan Lengkap Bahasa Basis Data

Foto TaufiqOleh Taufiq
Pengertian DDL, DML dan SQL

Pernahkah Anda bertanya-tanya bagaimana cara sebuah aplikasi menyimpan dan mengambil data? Di balik setiap aplikasi yang kita gunakan setiap hari — mulai dari media sosial, e-commerce, hingga sistem perbankan — ada sebuah sistem basis data yang bekerja keras memproses jutaan data. Untuk berkomunikasi dengan sistem itulah kita membutuhkan bahasa khusus bernama SQL, lengkap dengan dua komponen utamanya: DDL dan DML. Memahami pengertian DDL, DML, dan SQL bukan sekadar tuntutan kurikulum, melainkan keterampilan praktis yang menentukan seberapa baik Anda merancang database, menulis query, dan memecahkan masalah data di dunia nyata. Artikel ini akan membahas keduanya secara lengkap — mulai dari definisi, perintah yang sering digunakan, perbedaan mendasar, hingga contoh penerapan dalam studi kasus sederhana — sehingga Anda siap menggunakannya di proyek pertama.

Memahami DDL, DML, dan SQL adalah fondasi wajib bagi siapa pun yang ingin berkarier di bidang pengembangan web, data science, atau administrasi basis data. Tanpa pemahaman ini, Anda akan kesulitan saat harus membuat tabel, memasukkan data, atau mengambil informasi dari database.

Apa itu DDL dan DML? Mengapa Keduanya Penting dalam SQL?

SQL merupakan kependekan dari Structured Query Language (Bahasa Query Terstruktur). Seperti diterangkan, bahasa ini lebih dekat dengan DML daripada DDL. Namun tidak berarti SQL tidak menyediakan perintah DDL. SQL lebih menekankan pada aspek pencarian dari dalam table. Aspek pencarian ini sedemikian penting karena di sinilah sebenarnya inti dari segala upaya kita melakukan pengelolaan data. Data dalam basis data diorganisasi sedemikian rupa dengan maksud untuk memudahkan pencarian di masa depan.

Bayangkan seperti ini: SQL adalah bahasa universal yang bisa Anda gunakan untuk “berbicara” dengan hampir semua sistem basis data di dunia. Sama seperti bahasa Inggris yang bisa digunakan di banyak negara, SQL bisa digunakan di MySQL, PostgreSQL, Oracle, SQL Server, dan banyak lagi. Bedanya, SQL bukan untuk percakapan manusia, melainkan untuk instruksi kepada komputer tentang apa yang harus dilakukan dengan data.

Sejarah Singkat SQL: Dari Sequel hingga Standar Internasional

Sebagai sebuah bahasa, SQL telah distandarisasi dan mengalami beberapa perubahan atau penyempurnaan. SQL muncul pertama kali pada tahun 1970 dengan nama Sequel (nama yang masih sering digunakan sampai sekarang ini).

Standarisasi yang pertama dibuat pada tahun 1986 oleh ANSI (American National Standards Institute) dan ISO (International Standard Organization), yang disebut SQL-86. Pada tahun 1989 SQL-86 diperbaharui jadi SQL-89. Standar terakhir yang dibuat adalah SQL-92.

Perkembangan SQL selama lebih dari 50 tahun menunjukkan betapa fundamentalnya bahasa ini dalam dunia teknologi informasi. Meskipun muncul banyak alternatif seperti NoSQL dan NewSQL, SQL tetap menjadi standar de facto untuk pengolahan data terstruktur.

DDL (Data Definition Language): Membangun Fondasi Database SQL

Dalam DBMS biasanya tersedia paket bahasa yang digunakan untuk mengorganisasi basis data yang ada, yaitu DDL dan DML — dua komponen utama SQL.

DDL atau Data Definition Language adalah satu paket bahasa DBMS yang berguna untuk melakukan spesifikasi terhadap skema basis data. Hasil kompilasi dari DDL adalah satu set tabel yang disimpan dalam file khusus yang disebut Data Directory/Dictionary.

Secara garis besar perintah-perintah dalam DDL berhubungan dengan operasi-operasi dasar seperti membuat basis data baru, menghapus basis data, membuat table baru, menghapus table, membuat index, mengubah struktur table. Contoh perintah DDL misalnya, Create Table, Create Index, Alter, dan Drop Database.

Perintah DDL yang Paling Sering Digunakan

Berikut contoh penggunaan perintah DDL dalam SQL:

SQL Snippet SQL
-- CREATE TABLE: Membuat tabel baru
CREATE TABLE mahasiswa (
 id INT PRIMARY KEY AUTO_INCREMENT,
 nama VARCHAR(100) NOT NULL,
 nim VARCHAR(20) UNIQUE,
 jurusan VARCHAR(50),
 angkatan YEAR
);

-- ALTER TABLE: Menambah kolom baru
ALTER TABLE mahasiswa ADD COLUMN email VARCHAR(100);

-- DROP TABLE: Menghapus tabel
DROP TABLE mahasiswa;

-- CREATE INDEX: Membuat indeks untuk mempercepat pencarian
CREATE INDEX idx_nama ON mahasiswa(nama);

Penjelasan baris per baris:

  • CREATE TABLE — membuat tabel baru dengan nama “mahasiswa” dan mendefinisikan kolom-kolomnya. Setiap kolom punya tipe data (INT, VARCHAR, YEAR) dan constraint (PRIMARY KEY, NOT NULL, UNIQUE)
  • ALTER TABLE — menambahkan kolom baru ke tabel yang sudah ada. Dalam contoh ini, kolom “email” ditambahkan ke tabel mahasiswa
  • DROP TABLE — menghapus seluruh tabel beserta isinya secara permanen. Hati-hati menggunakan perintah ini!
  • CREATE INDEX — membuat indeks pada kolom tertentu untuk mempercepat proses pencarian data

Tipe Data dalam DDL

Saat membuat tabel, Anda perlu menentukan tipe data untuk setiap kolom. Berikut tipe data yang paling umum digunakan:

  • INT — untuk menyimpan bilangan bulat (misal: usia, jumlah)
  • VARCHAR(n) — untuk menyimpan teks dengan panjang maksimal n karakter
  • TEXT — untuk menyimpan teks panjang (artikel, deskripsi)
  • DATE — untuk menyimpan tanggal
  • DATETIME — untuk menyimpan tanggal dan waktu
  • DECIMAL(p,s) — untuk menyimpan angka desimal dengan presisi tertentu
  • BOOLEAN — untuk menyimpan nilai true/false

DML (Data Manipulation Language): Mengelola Data dalam SQL

DML atau Data Manipulation Language adalah satu paket DBMS yang memperbolehkan pemakai untuk mengakses atau memanipulasi data sebagaimana yang telah diorganisasikan sebelumnya dalam model data yang tepat.

Dengan DML bisa dilakukan:

  • Mengambil informasi yang tersimpan dalam basis data
  • Menyisipkan informasi baru dalam basis data
  • Menghapus informasi dari tabel

Dua Tipe DML: Prosedural vs Non-Prosedural

Terdapat dua tipe DML yaitu prosedural dan non prosedural. Prosedural DML membutuhkan pemakai untuk menspesifikasikan data apa yang dibutuhkan dan bagaimana cara mendapatkannya, sedang non prosedural DML membutuhkan pemakai untuk menspesifikasikan data apa yang dibutuhkan tanpa tahu bagaimana cara mendapatkannya.

Misalnya, jika Anda ingin mendapatkan semua data mahasiswa dari jurusan Teknik Informatika:

  • Prosedural — Anda harus menjelaskan langkah demi langkah: buka tabel, iterasi setiap baris, filter yang sesuai, kumpulkan hasilnya
  • Non-prosedural — Anda cukup tulis “SELECT * FROM mahasiswa WHERE jurusan = ‘Teknik Informatika'”, dan DBMS akan menentukan cara terbaik untuk mendapatkannya

Dalam penggunaan DDL dan DML, SQL umumnya menggunakan pendekatan non-prosedural, yang membuatnya lebih mudah dipelajari dan digunakan.

Perintah DML yang Wajib Dikuasai

Berikut contoh perintah DML yang paling sering digunakan dalam pengembangan aplikasi:

SQL Snippet SQL
-- INSERT: Menambah data baru
INSERT INTO mahasiswa (nama, nim, jurusan, angkatan)
VALUES ('Budi Santoso', '1234567890', 'Teknik Informatika', 2023);

-- SELECT: Mengambil data
SELECT * FROM mahasiswa;

-- SELECT dengan kondisi (WHERE)
SELECT nama, nim FROM mahasiswa WHERE jurusan = 'Teknik Informatika';

-- UPDATE: Mengubah data yang sudah ada
UPDATE mahasiswa
SET email = 'budi@university.ac.id'
WHERE nim = '1234567890';

-- DELETE: Menghapus data
DELETE FROM mahasiswa WHERE nim = '1234567890';

Penjelasan:

  • INSERT INTO — menambah baris data baru ke dalam tabel. Pastikan urutan nilai sesuai dengan urutan kolom yang didefinisikan
  • SELECT — mengambil data dari tabel. Gunakan * untuk semua kolom atau tentukan kolom spesifik
  • WHERE — menyaring data berdasarkan kondisi tertentu. Tanpa WHERE, SELECT akan mengambil semua data
  • UPDATE — mengubah nilai kolom pada baris yang sesuai kondisi WHERE
  • DELETE — menghapus baris data yang sesuai kondisi WHERE

Perbedaan DDL dan DML dalam SQL: Ringkasan Visual

Agar lebih mudah dipahami, berikut perbandingan antara DDL dan DML:

  • DDL (Data Definition Language) — berurusan dengan struktur database. Perintah: CREATE, ALTER, DROP, TRUNCATE. Sifatnya: membangun “rumah” (tabel, indeks, skema)
  • DML (Data Manipulation Language) — berurusan dengan data di dalam struktur. Perintah: SELECT, INSERT, UPDATE, DELETE. Sifatnya: mengisi dan mengelola “isinya rumah”

Analogi sederhananya: DDL seperti membangun rumah (membuat dinding, pintu, jendela), sedangkan DML seperti mengatur furnitur di dalamnya (meletakkan kursi, meja, lemari).

Perangkat Lunak yang Menggunakan SQL

Pernyataan-pernyataan DDL dan DML dalam SQL digunakan untuk melakukan beberapa tugas seperti update data pada basis data, atau menampilkan data dari basis data. Beberapa software RDBMS yang bisa menggunakan SQL, seperti: Oracle, Sybase, Microsoft SQL Server, MySQL, Microsoft Access, Ingres, dsb.

Setiap software basis data mempunyai bahasa perintah/sintaks yang berbeda, namun pada prinsipnya mempunyaiarti dan fungsi yang sama. Perintah-perintah tersebut antara lain: “Select”, “Insert”, “Update”, “Delete”, “Create”, dan “Drop”, yang bisa digunakan untuk mengerjakan hampir semua kebutuhan untuk memanipulasi sebuah basis data.

Berikut rekomendasi software basis data yang bisa Anda coba untuk berlatih:

  • MySQL — gratis, open source, dan paling banyak digunakan di web. Cocok untuk pemula
  • PostgreSQL — fitur lebih lengkap dari MySQL, juga gratis dan open source
  • SQLite — ringan, tidak memerlukan server terpisah. Cocok untuk proyek kecil atau belajar
  • Microsoft SQL Server — banyak digunakan di lingkungan korporasi

Studi Kasus: Membangun Sistem Perpustakaan Sederhana

Mari kita praktekkan pemahaman DDL dan DML dengan membuat sistem perpustakaan sederhana:

SQL Snippet SQL
-- LANGKAH 1: Membuat struktur database (DDL)
CREATE TABLE buku (
 id INT PRIMARY KEY AUTO_INCREMENT,
 judul VARCHAR(200) NOT NULL,
 pengarang VARCHAR(100),
 tahun_terbit YEAR,
 stok INT DEFAULT 0
);

CREATE TABLE peminjam (
 id INT PRIMARY KEY AUTO_INCREMENT,
 nama VARCHAR(100) NOT NULL,
 alamat TEXT
);

CREATE TABLE peminjaman (
 id INT PRIMARY KEY AUTO_INCREMENT,
 id_buku INT,
 id_peminjam INT,
 tanggal_pinjam DATE,
 tanggal_kembali DATE,
 FOREIGN KEY (id_buku) REFERENCES buku(id),
 FOREIGN KEY (id_peminjam) REFERENCES peminjam(id)
);

-- LANGKAH 2: Memasukkan data (DML)
INSERT INTO buku (judul, pengarang, tahun_terbit, stok)
VALUES ('Laskar Pelangi', 'Andrea Hirata', 2005, 5);

INSERT INTO peminjam (nama, alamat)
VALUES ('Rina Wati', 'Jl. Merdeka No. 10');

INSERT INTO peminjaman (id_buku, id_peminjam, tanggal_pinjam, tanggal_kembali)
VALUES (1, 1, '2024-01-15', '2024-01-29');

-- LANGKAH 3: Mengambil data (DML)
SELECT b.judul, p.nama, pin.tanggal_pinjam
FROM peminjaman pin
JOIN buku b ON pin.id_buku = b.id
JOIN peminjam p ON pin.id_peminjam = p.id
WHERE pin.tanggal_kembali IS NULL;

Dalam contoh di atas, kita menggunakan DDL untuk membuat tiga tabel yang saling berhubungan, lalu menggunakan DML untuk memasukkan data dan mengambil data dengan JOIN — kombinasi yang sangat umum dalam pengembangan aplikasi nyata.

Security Awareness: Yang Harus Diwaspadai

Saat bekerja dengan SQL, ada beberapa risiko keamanan yang harus Anda waspadai:

  • SQL Injection — teknik serangan di mana penyerang menyisipkan kode SQL berbahaya melalui input pengguna. Selalu gunakan prepared statement atau parameterized query
  • Privilege Escalation — pastikan setiap user hanya memiliki akses yang dibutuhkan, tidak lebih
  • Data Leakage — hati-hati saat menampilkan data, pastikan tidak ada informasi sensitif yang bocor
SQL Snippet SQL
-- ❌ Berbahaya: rentan SQL Injection
SELECT * FROM users WHERE username = '$input_user';

-- ✅ Aman: menggunakan parameterized query
-- Contoh dalam PHP dengan PDO:
-- $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
-- $stmt->execute([$input_user]);

Best Practices dalam Menggunakan SQL

Beberapa tips yang bisa membantu Anda menulis DDL dan DML dengan lebih baik:

  • Gunakan nama kolom yang deskriptif — hindari nama seperti “col1”, “col2”. Gunakan “nama_mahasiswa”, “tanggal_lahir” agar lebih mudah dipahami
  • Selalu gunakan WHERE saat UPDATE/DELETE — tanpa WHERE, semua baris akan terpengaruh. Ini bisa menjadi bencana!
  • Backup sebelum operasi besar — sebelum melakukan operasi DDL seperti DROP TABLE, pastikan sudah melakukan backup
  • Gunakan indeks dengan bijak — indeks mempercepat SELECT tapi memperlambat INSERT/UPDATE. Buat indeks hanya pada kolom yang sering digunakan dalam WHERE atau JOIN
  • Gunakan JOIN alih-alih subquery berulang — lebih efisien dan mudah dibaca

Rangkuman: Poin-Poin Utama tentang DDL, DML, dan SQL

Berikut rangkuman dari seluruh pembahasan tentang DDL, DML, dan SQL:

  • SQL (Structured Query Language) — bahasa standar untuk berkomunikasi dengan sistem basis data
  • DDL (Data Definition Language) — digunakan untuk mendefinisikan struktur database: CREATE, ALTER, DROP, TRUNCATE
  • DML (Data Manipulation Language) — digunakan untuk mengelola data: SELECT, INSERT, UPDATE, DELETE
  • DDL membangun “rumah”, DML mengelola “isinya”
  • SQL sudah ada sejak tahun 1970 dan masih menjadi standar utama hingga saat ini
  • MySQL, PostgreSQL, dan SQLite adalah beberapa RDBMS gratis yang bisa Anda coba untuk berlatih

Menguasai DDL dan DML adalah langkah pertama yang sangat penting dalam perjalanan Anda sebagai developer atau database administrator. Semakin sering Anda berlatih menulis perintah SQL, semakin terampil Anda dalam mengelola data — dan data adalah aset paling berharga di dunia digital saat ini. Pelajari tutorial belajar database SQL lainnya di infanthree.com.

Hal yang sering ditanyakan seputar DDL, DML dan SQL

Apa perbedaan DDL dan DML dalam SQL?

DDL (Data Definition Language) digunakan untuk mendefinisikan struktur database seperti CREATE, ALTER, dan DROP, sedangkan DML (Data Manipulation Language) digunakan untuk mengolah data seperti SELECT, INSERT, UPDATE, dan DELETE.

Apa saja perintah dasar dalam SQL yang wajib dikuasai?

Perintah dasar meliputi SELECT untuk membaca data, INSERT untuk menambah, UPDATE untuk mengubah, DELETE untuk menghapus, serta CREATE dan ALTER untuk manajemen struktur tabel.

Mengapa SQL menjadi standar dalam pengelolaan database relasional?

Karena SQL bersifat universal, didukung hampir semua sistem database (MySQL, PostgreSQL, Oracle, SQL Server), dan mudah dipelajari dengan sintaks yang deklaratif.

Komentar

Memuat komentar…

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan.