Kamus · Bab 3

Database & SQL

Istilah struktur database relasional, klausa dan operator SQL dasar, JOIN, hingga subquery dan window function.

Database Relasional

Definisi

Cara menyimpan data dalam beberapa tabel terpisah yang saling berkaitan, alih-alih memaksakan seluruh data ke dalam satu tabel besar.

Kenapa Penting

Struktur ini menghindari redundansi dan inkonsistensi data, karena setiap informasi hanya perlu tersimpan satu kali di tabel yang sesuai.

Contoh

Data pelanggan disimpan terpisah dari data pesanan, dengan kedua tabel dihubungkan melalui kolom identitas pelanggan.

Primary Key

Definisi

Kolom yang berfungsi sebagai identitas unik untuk setiap baris dalam sebuah tabel, nilainya tidak boleh sama antar baris dan tidak boleh kosong.

Kapan Dipakai

Wajib dimiliki setiap tabel agar setiap baris dapat dibedakan secara pasti, meski ada kemungkinan kemiripan nilai pada kolom lain.

Contoh

Kolom id_pelanggan pada tabel Pelanggan memastikan dua pelanggan dengan nama yang sama tetap dapat dibedakan.

Foreign Key

Definisi

Kolom pada suatu tabel yang merujuk pada Primary Key di tabel lain, menciptakan relasi antar kedua tabel tersebut.

Cara Kerja

Nilai pada Foreign Key harus sesuai dengan nilai yang ada pada Primary Key tabel yang dirujuk.

Contoh

Kolom id_pelanggan pada tabel Pesanan merupakan Foreign Key yang merujuk pada Primary Key id_pelanggan di tabel Pelanggan.

Kardinalitas

Definisi

Jenis hubungan yang terjadi antara dua tabel yang saling terkait, terdiri dari satu ke banyak, banyak ke banyak, dan satu ke satu.

Kapan Dipakai

Menjadi acuan penting saat merancang struktur tabel maupun saat memahami bagaimana dua tabel seharusnya digabungkan.

Contoh

Satu pelanggan dapat memiliki banyak pesanan (satu ke banyak), namun satu pesanan hanya dilakukan oleh satu pelanggan tertentu.

ERD (Entity Relationship Diagram)

Definisi

Diagram visual yang menggambarkan struktur tabel dalam sebuah database beserta relasi antar tabelnya.

Kapan Dipakai

Digunakan sebagai acuan untuk memahami struktur database secara keseluruhan sebelum menyusun query yang melibatkan banyak tabel.

Contoh

Sebuah ERD menampilkan tabel Pelanggan, Produk, dan Pesanan beserta garis penghubung yang menandakan relasi satu ke banyak di antaranya.

DDL (Data Definition Language)

Definisi

Kumpulan perintah SQL yang berfungsi mendefinisikan atau mengubah struktur database, seperti membuat atau menghapus tabel.

Kapan Dipakai

Umumnya menjadi tanggung jawab administrator database atau Data Engineer, bukan pekerjaan harian Data Analyst.

Contoh

Perintah CREATE TABLE yang mendefinisikan struktur kolom sebuah tabel baru merupakan bagian dari DDL.

DML (Data Manipulation Language)

Definisi

Kumpulan perintah SQL yang berfungsi mengelola isi data di dalam tabel, termasuk mengambil, menambah, mengubah, dan menghapus data.

Kapan Dipakai

Menjadi bagian terbesar dari pekerjaan sehari-hari Data Analyst, khususnya perintah untuk mengambil dan menampilkan data.

Contoh

Perintah SELECT, INSERT, UPDATE, dan DELETE seluruhnya tergolong DML karena mengelola isi data, bukan struktur tabel.

SELECT

Definisi

Perintah SQL paling dasar untuk mengambil dan menampilkan data dari sebuah tabel.

Sintaks

SELECT nama_kolom FROM nama_tabel;

Contoh

SELECT nama, alamat FROM pelanggan; menampilkan kolom nama dan alamat dari seluruh baris pada tabel pelanggan.

WHERE

Definisi

Klausa SQL yang menyaring baris data berdasarkan kondisi tertentu, ditempatkan setelah FROM.

Sintaks

SELECT * FROM tabel WHERE kondisi;

Contoh

SELECT * FROM pesanan WHERE nilai_transaksi > 500000; hanya menampilkan baris dengan nilai transaksi di atas 500.000.

LIKE

Definisi

Operator SQL yang digunakan bersama WHERE untuk mencari data berdasarkan pola teks, memakai simbol wildcard seperti tanda persen.

Sintaks

WHERE kolom LIKE 'pola%'

Contoh

WHERE nama LIKE 'Budi%' mencari seluruh nama yang diawali kata "Budi".

BETWEEN

Definisi

Operator SQL untuk mencari data dalam rentang nilai tertentu, baik angka maupun tanggal, bersifat inklusif pada kedua batasnya.

Sintaks

WHERE kolom BETWEEN nilai_awal AND nilai_akhir

Contoh

WHERE tanggal BETWEEN '2026-01-01' AND '2026-01-31' menampilkan seluruh data sepanjang bulan Januari.

LIMIT

Definisi

Klausa SQL yang membatasi jumlah baris yang ditampilkan dari hasil sebuah query.

Sintaks

SELECT * FROM tabel ORDER BY kolom DESC LIMIT 10;

Contoh

Menggabungkan ORDER BY dan LIMIT untuk menampilkan sepuluh transaksi dengan nilai tertinggi dari keseluruhan data.

GROUP BY

Definisi

Klausa SQL yang mengelompokkan baris data berdasarkan nilai unik pada satu atau lebih kolom, sebelum dihitung menggunakan fungsi agregasi.

Sintaks

SELECT kolom, SUM(kolom_lain) FROM tabel GROUP BY kolom;

Contoh

SELECT kategori, SUM(nilai_transaksi) FROM pesanan GROUP BY kategori; menghasilkan total nilai transaksi untuk setiap kategori.

HAVING

Definisi

Klausa SQL yang menyaring hasil kelompok setelah proses GROUP BY dan agregasi selesai dihitung, berbeda dari WHERE yang menyaring baris mentah sebelum pengelompokan.

Sintaks

GROUP BY kolom HAVING kondisi_agregasi

Contoh

GROUP BY kategori HAVING SUM(nilai_transaksi) > 50000000 hanya menampilkan kategori dengan total transaksi di atas lima puluh juta.

CASE WHEN

Definisi

Sintaks SQL untuk logika kondisional, menampilkan hasil berbeda tergantung kondisi yang terpenuhi, setara dengan fungsi IF pada spreadsheet.

Sintaks

CASE WHEN kondisi THEN hasil ELSE hasil_lain END

Contoh

CASE WHEN nilai < 100000 THEN 'Kecil' ELSE 'Besar' END AS kategori mengelompokkan nilai transaksi ke dalam dua kategori.

JOIN

Definisi

Perintah SQL untuk menggabungkan baris dari dua tabel atau lebih berdasarkan kolom penghubung, biasanya relasi Primary Key dan Foreign Key.

Sintaks

SELECT kolom FROM tabel1 JOIN tabel2 ON tabel1.kolom = tabel2.kolom;

Contoh

Menggabungkan tabel Pesanan dan Pelanggan untuk menampilkan nama pelanggan beserta nilai transaksinya dalam satu hasil tampilan.

INNER JOIN

Definisi

Jenis JOIN yang hanya menampilkan baris yang memiliki kecocokan di kedua tabel yang digabungkan.

Cara Kerja

Baris yang tidak memiliki pasangan cocok di tabel lainnya tidak akan ikut ditampilkan sama sekali dalam hasil.

Contoh

Menggabungkan tabel Pelanggan dan Pesanan menggunakan INNER JOIN hanya menampilkan pelanggan yang memang memiliki riwayat transaksi.

LEFT JOIN

Definisi

Jenis JOIN yang menampilkan seluruh baris dari tabel di sisi kiri, dilengkapi data yang cocok dari tabel kanan; baris tanpa kecocokan tetap tampil dengan nilai kosong (NULL) pada kolom tabel kanan.

Kapan Dipakai

Digunakan ketika seluruh data dari tabel utama perlu tetap ditampilkan, termasuk yang tidak memiliki data terkait di tabel lainnya.

Contoh

Menampilkan seluruh pelanggan termasuk yang belum pernah bertransaksi, dengan kolom nilai transaksi kosong bagi mereka yang belum berbelanja.

RIGHT JOIN

Definisi

Jenis JOIN yang menampilkan seluruh baris dari tabel di sisi kanan, dilengkapi data yang cocok dari tabel kiri; baris tanpa kecocokan tetap tampil dengan nilai kosong pada kolom tabel kiri.

Kapan Dipakai

Jarang dipakai secara langsung karena hasil yang sama dapat dicapai dengan menukar urutan tabel dan menggunakan LEFT JOIN.

Contoh

RIGHT JOIN antara Pesanan dan Pelanggan menghasilkan output yang identik dengan LEFT JOIN antara Pelanggan dan Pesanan yang urutannya ditukar.

Subquery

Definisi

Query SQL yang ditempatkan di dalam query SQL lainnya, digunakan untuk menghasilkan nilai atau data perantara sebelum diproses lebih lanjut oleh query utama.

Contoh

SELECT * FROM pesanan WHERE nilai_transaksi > (SELECT AVG(nilai_transaksi) FROM pesanan); menampilkan transaksi yang nilainya di atas rata-rata seluruh transaksi.

Kapan Dipakai

Digunakan ketika sebuah nilai perantara perlu dihitung terlebih dahulu sebelum dipakai menyaring atau membandingkan data pada query utama.

CTE (Common Table Expression)

Definisi

Cara menulis subquery dengan struktur lebih rapi dan mudah dibaca, menggunakan klausa WITH untuk memberi nama pada tahap perhitungan perantara.

Sintaks

WITH nama_cte AS (SELECT ...) SELECT * FROM nama_cte;

Kapan Dipakai

Digunakan ketika logika query melibatkan banyak tahapan, sehingga lebih mudah ditelusuri dibanding subquery bersarang.

Window Function

Definisi

Kelompok fungsi SQL yang menghitung nilai berdasarkan konteks baris-baris lain, tanpa meringkas data menjadi satu baris seperti pada GROUP BY.

Contoh

RANK() OVER (PARTITION BY kategori ORDER BY total_penjualan DESC) memberi peringkat produk terlaris secara terpisah untuk setiap kategori.

Kapan Dipakai

Digunakan ketika perhitungan perlu memperhitungkan konteks baris lain, namun detail setiap baris tetap perlu ditampilkan.

ROW_NUMBER

Definisi

Window function SQL yang memberikan nomor urut unik untuk setiap baris berdasarkan urutan yang ditentukan.

Sintaks

ROW_NUMBER() OVER (ORDER BY kolom DESC)

Contoh

Memberikan nomor urut 1, 2, 3, dan seterusnya pada setiap transaksi berdasarkan nilai transaksi dari yang tertinggi, tanpa ada nomor yang sama meski nilainya identik.

RANK

Definisi

Window function SQL yang memberikan peringkat pada setiap baris, dengan nilai yang sama mendapat peringkat sama dan melompati nomor peringkat berikutnya.

Perbedaan dengan ROW_NUMBER

RANK memberi peringkat sama untuk nilai identik, sementara ROW_NUMBER selalu memberi nomor berbeda meski nilainya sama.

Contoh

Dua transaksi dengan nilai tertinggi yang identik sama-sama mendapat peringkat 1, sementara transaksi berikutnya langsung mendapat peringkat 3, bukan 2.

PARTITION BY

Definisi

Klausa pada window function yang memungkinkan perhitungan dilakukan secara terpisah untuk setiap kelompok data, tanpa meringkas baris seperti pada GROUP BY.

Sintaks

RANK() OVER (PARTITION BY kolom_kelompok ORDER BY kolom_nilai DESC)

Contoh

Memberi peringkat produk terlaris secara terpisah untuk setiap kategori, sehingga setiap kategori memiliki produk peringkat 1 masing-masing.