SQL (Structured Query Language) adalah bahasa yang digunakan untuk mengelola dan mengambil data dari database relasional. Dengan SQL, kita bisa menyimpan data pengguna, menampilkan daftar produk, mencari informasi tertentu, membuat laporan penjualan, hingga mengubah dan menghapus data.
Bagi mahasiswa yang sedang mengerjakan Skripsi atau Tugas Akhir, SQL juga menjadi salah satu keterampilan penting, terutama ketika membuat aplikasi berbasis web seperti sistem informasi akademik, sistem penjualan, sistem pendukung keputusan, dan aplikasi administrasi.
Pada artikel ini, kita akan belajar SQL dari dasar menggunakan contoh yang sederhana. Kamu akan mempelajari perintah SQL yang sering digunakan, memahami fungsi setiap query, dan mencoba mengolah data menggunakan MySQL.
1. Apa Itu SQL?
SQL adalah bahasa standar untuk berkomunikasi dengan sistem manajemen database relasional atau Relational Database Management System (RDBMS).
SQL memungkinkan kita melakukan berbagai operasi terhadap data, seperti:
- Menampilkan data yang tersimpan dalam database.
- Menambahkan data baru.
- Mengubah data yang sudah ada.
- Menghapus data tertentu.
- Menggabungkan data dari beberapa tabel.
- Menghitung jumlah, rata-rata, dan nilai lainnya.
- Mengelola struktur tabel dan database.
Sebagai contoh, sebuah aplikasi penjualan memiliki data pelanggan, produk, transaksi, dan detail transaksi. Dengan SQL, kita dapat mengambil daftar pelanggan, menghitung total penjualan, atau mencari produk yang paling banyak terjual.
Apa Perbedaan SQL dan MySQL?
SQL dan MySQL merupakan dua hal yang berbeda, meskipun sering disebut secara bersamaan.
SQL adalah bahasa yang digunakan untuk menjalankan perintah pada database. Sementara itu, MySQL adalah salah satu sistem manajemen database yang menggunakan SQL untuk mengelola data.
Contohnya, ketika kita menulis perintah SELECT * FROM produk;, kita sedang menggunakan SQL untuk mengambil data dari tabel produk yang tersimpan di MySQL.
Selain MySQL, SQL juga digunakan oleh sistem database lain seperti PostgreSQL, Microsoft SQL Server, dan SQLite, meskipun setiap sistem memiliki fitur dan variasi sintaks tertentu.
2. Mengenal Database, Tabel, Baris, dan Kolom
Sebelum mempelajari query SQL, kita perlu memahami beberapa istilah dasar dalam database.
- Database: tempat untuk mengorganisasi dan menyimpan kumpulan data.
- Tabel: struktur yang digunakan untuk menyimpan data dalam bentuk baris dan kolom.
- Kolom: bagian tabel yang mewakili atribut tertentu, misalnya nama produk atau harga.
- Baris: satu kumpulan data dalam tabel, misalnya satu data produk.
- Primary key: kolom atau kombinasi kolom yang mengidentifikasi setiap baris secara unik.
- Foreign key: kolom yang menghubungkan data dengan kunci pada tabel lain.
Misalnya, sebuah aplikasi toko online memiliki tabel produk dengan struktur berikut.
| id_produk | nama_produk | harga | stok |
|---|---|---|---|
| 1 | Keyboard | 150000 | 10 |
| 2 | Mouse | 75000 | 20 |
| 3 | Monitor | 1250000 | 5 |
| 4 | Flashdisk | 65000 | 15 |
Pada tabel tersebut, id_produk dapat digunakan sebagai primary key. Kolom nama_produk, harga, dan stok menyimpan informasi produk.
Kita akan menggunakan tabel ini sebagai contoh dalam pembahasan query SQL selanjutnya.
3. Cara Membuat Database dan Tabel MySQL
Untuk mencoba SQL, kamu bisa menggunakan MySQL melalui phpMyAdmin, MySQL Workbench, atau terminal MySQL. Pastikan MySQL sudah terpasang atau tersedia melalui lingkungan pengembangan yang kamu gunakan.
Pertama, buat database bernama belajar_sql.
CREATE DATABASE belajar_sql;
Selanjutnya, pilih database tersebut.
USE belajar_sql;
Setelah database dipilih, buat tabel produk menggunakan query berikut.
CREATE TABLE produk (
id_produk INT AUTO_INCREMENT PRIMARY KEY,
nama_produk VARCHAR(100) NOT NULL,
harga DECIMAL(12,2) NOT NULL,
stok INT NOT NULL DEFAULT 0
);
Penjelasan struktur tabel:
INTdigunakan untuk menyimpan bilangan bulat.AUTO_INCREMENTmembuat nilai ID bertambah secara otomatis.PRIMARY KEYmenetapkan kolom sebagai identitas unik setiap produk.VARCHAR(100)digunakan untuk menyimpan teks dengan panjang maksimum 100 karakter.DECIMAL(12,2)digunakan untuk menyimpan nilai numerik dengan dua angka desimal.NOT NULLberarti kolom wajib memiliki nilai.DEFAULT 0menetapkan nilai awal stok menjadi nol jika tidak diberikan.
Setelah tabel dibuat, masukkan beberapa data contoh.
INSERT INTO produk (nama_produk, harga, stok)
VALUES
('Keyboard', 150000, 10),
('Mouse', 75000, 20),
('Monitor', 1250000, 5),
('Flashdisk', 65000, 15);
Sekarang, kita memiliki empat data produk yang bisa digunakan untuk mencoba berbagai perintah SQL.
4. Perintah SELECT untuk Menampilkan Data
SELECT merupakan salah satu perintah SQL yang paling sering digunakan. Perintah ini berfungsi untuk mengambil dan menampilkan data dari tabel.
Menampilkan Semua Data
Untuk menampilkan seluruh kolom dan baris dari tabel produk, gunakan query berikut.
SELECT * FROM produk;
Tanda * berarti semua kolom. Hasilnya akan menampilkan ID produk, nama produk, harga, dan stok.
Menampilkan Kolom Tertentu
Jika hanya ingin melihat nama dan harga produk, gunakan query berikut.
SELECT nama_produk, harga
FROM produk;
Query tersebut hanya mengambil dua kolom yang diperlukan. Cara ini dapat membantu membuat query lebih efisien dan hasilnya lebih mudah dibaca.
Mengurutkan Data dengan ORDER BY
Untuk menampilkan produk berdasarkan harga dari yang termurah, gunakan:
SELECT nama_produk, harga
FROM produk
ORDER BY harga ASC;
ASC berarti urutan menaik, sedangkan DESC berarti urutan menurun.
Jika ingin menampilkan produk dengan harga tertinggi terlebih dahulu, ubah menjadi:
SELECT nama_produk, harga
FROM produk
ORDER BY harga DESC;
5. Menggunakan WHERE untuk Memfilter Data
Kita tidak selalu ingin menampilkan semua data. Terkadang, kita hanya membutuhkan data yang memenuhi kondisi tertentu. Perintah WHERE digunakan untuk memfilter baris berdasarkan kondisi yang ditentukan.
Mencari Produk Berdasarkan Harga
Contoh berikut menampilkan produk dengan harga lebih dari Rp100.000.
SELECT *
FROM produk
WHERE harga > 100000;
Query tersebut akan menampilkan Keyboard dan Monitor.
Beberapa operator perbandingan yang umum digunakan dalam SQL adalah:
| Operator | Fungsi |
|---|---|
= |
Sama dengan |
<> |
Tidak sama dengan |
> |
Lebih besar dari |
< |
Lebih kecil dari |
>= |
Lebih besar dari atau sama dengan |
<= |
Lebih kecil dari atau sama dengan |
Menggabungkan Kondisi dengan AND dan OR
Misalnya, kita ingin mencari produk yang harganya lebih dari Rp100.000 dan stoknya minimal 5.
SELECT *
FROM produk
WHERE harga > 100000
AND stok >= 5;
Operator AND mengharuskan semua kondisi terpenuhi.
Sementara itu, operator OR memungkinkan data ditampilkan jika salah satu kondisi terpenuhi.
SELECT *
FROM produk
WHERE harga < 100000
OR stok < 10;
Query ini menampilkan produk yang harganya di bawah Rp100.000 atau memiliki stok kurang dari 10.
Mencari Data dengan LIKE
Jika kita ingin mencari produk yang namanya mengandung kata tertentu, gunakan LIKE.
SELECT *
FROM produk
WHERE nama_produk LIKE '%disk%';
Simbol % mewakili rangkaian karakter dengan panjang berapa pun. Pada contoh tersebut, query mencari nama produk yang mengandung teks disk.
6. Menambahkan Data dengan INSERT
Perintah INSERT INTO digunakan untuk memasukkan data baru ke dalam tabel. Contoh menambahkan satu produk:
INSERT INTO produk (nama_produk, harga, stok)
VALUES ('Webcam', 250000, 8);
Setelah query berhasil dijalankan, tabel produk akan memiliki satu baris data tambahan. Kita juga dapat memasukkan beberapa baris sekaligus, seperti yang sudah dilakukan pada bagian pembuatan data awal.
Dalam aplikasi web, data dari formulir pengguna biasanya dikirim ke backend terlebih dahulu. Backend kemudian memvalidasi data dan menjalankan perintah INSERT menggunakan mekanisme query yang aman.
7. Mengubah Data dengan UPDATE
Perintah UPDATE digunakan untuk mengubah nilai pada baris yang sudah ada. Misalnya, harga Mouse berubah menjadi Rp85.000.
UPDATE produk
SET harga = 85000
WHERE id_produk = 2;
Bagian SET menentukan nilai yang akan diubah, sedangkan WHERE menentukan baris yang menjadi target perubahan.
Penting: selalu periksa kondisi WHERE sebelum menjalankan UPDATE. Jika kondisi tersebut dihilangkan, semua baris dalam tabel dapat mengalami perubahan.
Contoh berikut sebaiknya tidak dijalankan jika hanya ingin mengubah satu produk:
UPDATE produk
SET harga = 85000;
Query tersebut akan menetapkan harga semua produk menjadi 85.000.
8. Menghapus Data dengan DELETE
Perintah DELETE digunakan untuk menghapus baris tertentu dari tabel. Contoh menghapus produk dengan ID=4:
DELETE FROM produk
WHERE id_produk = 4;
Jika ingin menghapus beberapa baris berdasarkan kondisi tertentu, sesuaikan bagian WHERE. Sama seperti UPDATE, menghilangkan kondisi WHERE dapat berakibat fatal karena seluruh baris dalam tabel akan terhapus.
Sebelum menjalankan perintah penghapusan pada database penting, pastikan targetnya benar dan backup tersedia jika diperlukan.
9. Menghitung Data dengan COUNT, SUM, AVG, MIN, dan MAX
SQL juga menyediakan fungsi agregat untuk menghitung atau merangkum data. Fungsi-fungsi ini sangat berguna ketika membuat laporan pada sistem informasi atau aplikasi bisnis.
Menghitung Jumlah Produk
SELECT COUNT(*) AS jumlah_produk
FROM produk;
COUNT(*) menghitung jumlah baris yang memenuhi kondisi query. Alias jumlah_produk digunakan agar nama kolom hasil lebih mudah dipahami.
Menghitung Total Nilai Stok
SELECT SUM(harga * stok) AS total_nilai_stok
FROM produk;
Query ini menghitung estimasi nilai stok berdasarkan harga dikalikan jumlah stok setiap produk. Hasilnya bukan otomatis sama dengan nilai persediaan akuntansi karena belum memperhitungkan faktor seperti harga pokok dan penyesuaian lainnya.
Menghitung Harga Rata-Rata
SELECT AVG(harga) AS rata_rata_harga
FROM produk;
AVG() menghitung nilai rata-rata dari kolom harga.
Mencari Harga Terendah dan Tertinggi
SELECT
MIN(harga) AS harga_termurah,
MAX(harga) AS harga_termahal
FROM produk;
MIN() menghasilkan nilai terendah, sedangkan MAX() menghasilkan nilai tertinggi.
10. Mengelompokkan Data dengan GROUP BY
GROUP BY digunakan untuk mengelompokkan baris berdasarkan nilai pada satu atau beberapa kolom, kemudian menerapkan fungsi agregat pada setiap kelompok.
Misalnya, kita memiliki tabel transaksi yang menyimpan data penjualan. Kita ingin menghitung jumlah transaksi dan total penjualan untuk setiap pelanggan.
Contoh struktur tabel transaksi:
| id_transaksi | nama_pelanggan | total |
|---|---|---|
| 1 | Andi | 200000 |
| 2 | Budi | 150000 |
| 3 | Andi | 300000 |
| 4 | Citra | 250000 |
Query untuk menghitung total transaksi dan nilai pembelian setiap pelanggan:
SELECT
nama_pelanggan,
COUNT(*) AS jumlah_transaksi,
SUM(total) AS total_pembelian
FROM transaksi
GROUP BY nama_pelanggan;
Hasilnya akan mengelompokkan transaksi milik Andi, Budi, dan Citra secara terpisah. Andi memiliki dua transaksi dengan total pembelian Rp500.000, sedangkan Budi memiliki total Rp150.000 dan Citra Rp250.000.
Dalam praktiknya, GROUP BY sering digunakan untuk laporan penjualan, rekap nilai mahasiswa, statistik pengunjung, dan analisis data.
11. Menggabungkan Tabel dengan JOIN
Dalam database relasional, data biasanya disimpan dalam beberapa tabel yang saling berhubungan. Untuk mengambil informasi dari tabel yang berbeda, kita dapat menggunakan JOIN.
Misalnya, kita memiliki dua tabel berikut.
Tabel pelanggan
| id_pelanggan | nama |
|---|---|
| 1 | Andi |
| 2 | Budi |
| 3 | Citra |
Tabel pesanan
| id_pesanan | id_pelanggan | total |
|---|---|---|
| 101 | 1 | 200000 |
| 102 | 2 | 150000 |
| 103 | 1 | 300000 |
Untuk menampilkan nama pelanggan bersama total pesanannya, gunakan INNER JOIN.
SELECT
pelanggan.nama,
pesanan.id_pesanan,
pesanan.total
FROM pelanggan
INNER JOIN pesanan
ON pelanggan.id_pelanggan = pesanan.id_pelanggan;
Kondisi ON menjelaskan bagaimana baris dari kedua tabel dihubungkan.
INNER JOIN hanya menampilkan baris yang memiliki pasangan sesuai kondisi join. Karena itu, pelanggan Citra tidak akan muncul pada hasil query tersebut karena belum memiliki pesanan.
Jika kita ingin menampilkan semua pelanggan, termasuk yang belum memiliki pesanan, gunakan LEFT JOIN.
SELECT
pelanggan.nama,
pesanan.id_pesanan,
pesanan.total
FROM pelanggan
LEFT JOIN pesanan
ON pelanggan.id_pelanggan = pesanan.id_pelanggan;
Dengan LEFT JOIN, Citra tetap muncul, sementara kolom pesanan akan bernilai NULL karena tidak ada data yang cocok.
12. Apa Itu Primary Key dan Foreign Key?
Primary key dan foreign key merupakan bagian penting dalam perancangan database relasional.
Primary key digunakan untuk mengidentifikasi setiap baris secara unik. Misalnya, id_pelanggan menjadi primary key pada tabel pelanggan.
Foreign key digunakan untuk menjaga hubungan antara tabel. Misalnya, id_pelanggan pada tabel pesanan merujuk pada id_pelanggan pada tabel pelanggan.
Contoh pembuatan tabel pesanan dengan foreign key:
CREATE TABLE pesanan (
id_pesanan INT AUTO_INCREMENT PRIMARY KEY,
id_pelanggan INT NOT NULL,
total DECIMAL(12,2) NOT NULL,
FOREIGN KEY (id_pelanggan)
REFERENCES pelanggan(id_pelanggan)
);
Dalam contoh ini, tabel pelanggan harus sudah tersedia dan id_pelanggan harus menjadi kunci yang sesuai. Kedua tabel juga perlu menggunakan storage engine yang mendukung foreign key, seperti InnoDB pada MySQL.
Foreign key membantu mencegah data pesanan merujuk ke pelanggan yang tidak ada, sesuai aturan integritas referensial yang diterapkan.
13. Tips Belajar SQL untuk Pemula
Agar lebih mudah memahami SQL, sebaiknya jangan hanya menghafalkan sintaks. Cobalah menjalankan query secara langsung dan amati perubahan hasilnya.
Berikut beberapa tips yang dapat diterapkan:
- Mulai dari SELECT dan WHERE. Pelajari cara mengambil dan memfilter data sebelum beralih ke query yang lebih kompleks.
- Gunakan database latihan. Buat tabel sederhana seperti produk, pelanggan, mahasiswa, atau transaksi.
- Latih JOIN menggunakan dua tabel. Pahami hubungan antartabel sebelum menggabungkan banyak tabel.
- Pelajari fungsi agregat. COUNT, SUM, AVG, MIN, dan MAX sering digunakan untuk laporan.
- Berhati-hati dengan UPDATE dan DELETE. Periksa kondisi query sebelum mengubah atau menghapus data.
- Manfaatkan AI sebagai asisten belajar. Kamu bisa meminta AI menjelaskan query, membuat contoh data, atau membantu menemukan kesalahan. Namun, selalu jalankan pengujian dan periksa hasilnya.
- Pelajari keamanan database. Ketika SQL digunakan dalam aplikasi web, pahami prepared statements, hak akses pengguna database, dan praktik backup.
Jika menggunakan AI untuk membuat query, hindari memasukkan password database, data pribadi, atau informasi sensitif ke layanan AI yang tidak memiliki izin untuk memprosesnya.
14. Kesalahan SQL yang Sering Dialami Pemula
Beberapa kesalahan berikut sering terjadi saat pertama kali belajar SQL.
1. Salah menulis nama tabel atau kolom
Pastikan nama tabel dan kolom sesuai dengan struktur database. Kamu dapat menggunakan DESCRIBE nama_tabel; untuk melihat struktur tabel.
2. Lupa menggunakan WHERE
Kesalahan ini dapat menyebabkan UPDATE atau DELETE diterapkan ke semua baris dalam tabel.
3. Menggunakan tanda kutip yang tidak sesuai
Nilai teks umumnya ditulis menggunakan tanda kutip tunggal, misalnya 'Keyboard'. Penulisan nilai numerik biasanya tidak memerlukan tanda kutip.
4. Salah memahami JOIN
Pastikan kondisi ON menghubungkan kolom yang benar. Kondisi yang salah dapat menghasilkan data berulang atau hubungan yang tidak sesuai.
5. Tidak memeriksa hasil query
Setelah melakukan perubahan data, jalankan SELECT untuk memverifikasi hasilnya. Pada operasi penting, gunakan transaksi jika sesuai dan pastikan perubahan dapat dibatalkan sebelum di-commit.
Memahami penyebab kesalahan tersebut akan membantu proses belajar SQL menjadi lebih efektif.
Kesimpulan
SQL merupakan keterampilan dasar yang penting bagi siapa pun yang ingin mempelajari database dan mengembangkan aplikasi. Dengan SQL, kita dapat membuat tabel, menambahkan data, menampilkan informasi, melakukan perhitungan, menggabungkan tabel, dan mengelola data secara terstruktur.
Untuk memulai, pelajari perintah SELECT, WHERE, INSERT, UPDATE, dan DELETE. Setelah memahami dasar-dasarnya, lanjutkan dengan fungsi agregat, GROUP BY, JOIN, primary key, foreign key, serta optimasi dan keamanan database.
Kamu tidak harus menguasai semua query sekaligus. Mulailah dengan contoh sederhana, jalankan query secara langsung, lalu tingkatkan kompleksitas latihan secara bertahap.
Jika kamu sedang mengembangkan aplikasi berbasis PHP dan MySQL untuk proyek kuliah, Skripsi, atau Tugas Akhir, pemahaman SQL akan membantu kamu merancang database dan mengolah data dengan lebih baik.
Selamat belajar SQL!