Operator
Khusus
Basis Data
Lukman reza [Link].
Dalam manajemen data perguruan tinggi, kita sering
harus mencari data seperti:
• Mahasiswa yang masuk dalam rentang tahun
tertentu,
• Mahasiswa yang belum memiliki pembimbing
skripsi,
• Dosen yang mengajar mata kuliah tertentu,
• Menampilkan daftar mata kuliah unik, dll.
Untuk itu, kita perlu memahami operator-operator
khusus di MySQL:
• BETWEEN,
• IS NULL,
• EXISTS,
• LIKE,
• IN,
• DISTINCT,
• GROUP BY,
• dan ORDER BY.
Mari kita buat databasenya dulu…
CREATE DATABASE IF NOT EXISTS sistem_perkuliahan;
USE sistem_perkuliahan;
CREATE TABLE mahasiswa (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100),
angkatan YEAR,
jurusan VARCHAR(50),
pembimbing_skripsi VARCHAR(100)
);
CREATE TABLE dosen (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_dosen VARCHAR(100),
prodi VARCHAR(50)
);
CREATE TABLE mata_kuliah (
id INT AUTO_INCREMENT PRIMARY KEY,
nama_mk VARCHAR(100),
sks INT
);
Kita isi table nya
INSERT INTO mahasiswa (nama, angkatan, jurusan, pembimbing_skripsi) VALUES
('Ahmad', 2020, 'Teknik Informatika', 'Dr. Siti'),
('Bunga', 2021, 'Sistem Informasi', NULL),
('Chandra', 2020, 'Teknik Informatika', 'Dr. Ali'),
('Dewi', 2022, 'Sistem Informasi', NULL),
('Eko', 2021, 'Teknik Informatika', 'Dr. Ali');
INSERT INTO dosen (nama_dosen, prodi) VALUES
('Dr. Siti', 'Teknik Informatika'),
('Dr. Ali', 'Teknik Informatika'),
('Dr. Budi', 'Sistem Informasi');
INSERT INTO mata_kuliah (nama_mk, sks) VALUES
('Basis Data', 3),
('Pemrograman Web', 3),
('Sistem Operasi', 2),
('Basis Data', 3); -- Disengaja dobel untuk contoh DISTINCT
Between
digunakan untuk memfilter data berdasarkan rentang nilai
SELECT * FROM mahasiswa
WHERE angkatan BETWEEN 2020 AND 2021;
Is null
Mencari data kosong.
SELECT * FROM mahasiswa
WHERE pembimbing_skripsi IS NULL;
EXISTS
Memastikan ada data tertentu sebelum mengambil data lain.
Kita buat table baru untuk contoh:
CREATE TABLE krs (
id INT AUTO_INCREMENT PRIMARY KEY,
id_mahasiswa INT,
id_mk INT
);
INSERT INTO krs (id_mahasiswa, id_mk) VALUES
(1, 1), -- Ahmad ambil Basis Data
(2, 2), -- Bunga ambil Pemrograman Web
(3, 1); -- Chandra ambil Basis Data
EXISTS (lanjut)
Contoh:
SELECT * FROM mata_kuliah mk
WHERE EXISTS (
SELECT 1 FROM krs WHERE krs.id_mk = [Link]
);
Untuk setiap mata kuliah, sistem akan mengecek:
"Apakah ada mahasiswa yang mengambil mata kuliah ini?“
Kalau ADA, maka mata kuliah itu ditampilkan.
Kalau TIDAK ADA mahasiswa yang ambil, mata kuliah itu tidak muncul di
hasil.
LIKE
Pencarian berbasis pola.
Kasus: Cari mahasiswa yang namanya diawali huruf "D".
SELECT * FROM mahasiswa
WHERE nama LIKE 'D%';
IN
Mencari data dengan beberapa opsi.
Kasus: Cari mahasiswa jurusan Teknik
Informatika atau Sistem Informasi.
SELECT * FROM mahasiswa
WHERE jurusan IN ('Teknik Informatika',
'Sistem Informasi');
DISTINCT
Mengambil data 1 kali walau terduplikat.
SELECT DISTINCT nama_mk FROM mata_kuliah;
GROUP BY
Mengelompokkan data
SELECT jurusan, COUNT(*) AS jumlah_mahasiswa
FROM mahasiswa
GROUP BY jurusan;
ORDER BY
Diurutkan
SELECT * FROM mahasiswa
ORDER BY angkatan DESC;
Kesimpulan
Dengan penguasaan operator-operator khusus ini, kita
bisa:
• Mencari mahasiswa tertentu dengan cepat,
• Mendeteksi data yang belum lengkap,
• Mengelompokkan dan menyajikan data akademik
dengan lebih profesional,
• Membuat sistem pelaporan kampus yang powerful.
Terima Kasih