Catatan Praktikum SQL Minggu ke-7
Mengolah Data Menjadi Informasi: Catatan Praktikum SQL Minggu ke-7
Halo semua! Kembali lagi di blog saya. Minggu ini di perkuliahan Manajemen Informatika Polinela, kami memasuki babak baru yang sangat seru dalam mata kuliah Sistem Basis Data. Jika sebelumnya kita hanya belajar cara mengambil data mentah, minggu ke-7 ini kami diajarkan cara "meringkas" data tersebut agar menjadi informasi yang jauh lebih berguna menggunakan Fungsi Agregat dan Fungsi Bawaan SQL.
Kenapa Agregasi Itu Penting?
Dalam dunia industri, kita tidak hanya butuh data siapa yang membeli produk, tapi juga butuh informasi "Berapa total penjualan bulan ini?". Bayangkan kamu punya ribuan data mahasiswa. Jika hanya ingin tahu siapa saja mereka, perintah SELECT * sudah cukup. Tapi bagaimana jika dosen bertanya, "Berapa rata-rata IPK angkatan 2024?" atau "Berapa jumlah mahasiswa di tiap prodi?". Di sinilah fungsi agregat menjadi pahlawan.
Beberapa fungsi utama yang kami pelajari antara lain:
COUNT(): Untuk menghitung jumlah baris (misal: jumlah mahasiswa).
SUM(): Untuk menjumlahkan nilai numerik.
AVG(): Untuk mencari nilai rata-rata.
MIN() & MAX(): Untuk mencari nilai terendah dan tertinggi dalam satu kolom.
Mengelompokkan Data dengan GROUP BY dan HAVING
Salah satu materi yang paling krusial adalah GROUP BY. Fungsi ini memungkinkan kita mengelompokkan data berdasarkan kolom tertentu. Namun, ada satu jebakan yang sering membuat bingung: perbedaan antara WHERE dan HAVING.
Singkatnya, WHERE digunakan untuk menyaring data sebelum dikelompokkan, sedangkan HAVING digunakan untuk menyaring data setelah agregasi (biasanya digunakan untuk menyaring hasil hitungan fungsi agregat).
Contoh Query 1: Menghitung Jumlah Mahasiswa per Prodi
SELECT idprodi, COUNT(*) AS jml_mhs
FROM mahasiswa
GROUP BY idprodi
HAVING COUNT(*) > 2;
Query di atas hanya akan menampilkan prodi yang memiliki lebih dari mahasiswa.
Tantangan Dialek SQL: SQLite vs T-SQL
Ada hal menarik di praktikum kali ini. Simulator yang kami gunakan berbasis SQLite, sementara di kelas kami mendalami T-SQL (SQL Server). Saya menyadari bahwa fungsi bawaan untuk manipulasi teks dan tanggal memiliki perbedaan sintaks yang spesifik.
Misalnya, untuk mengambil tahun dari sebuah tanggal:
Di SQLite: Menggunakan
strftime('%Y', tgl_lhr).Di T-SQL: Menggunakan fungsi
YEAR(tgl_lhr).
Begitu juga dengan panjang karakter: SQLite menggunakan LENGTH(), sedangkan SQL Server menggunakan LEN().
Contoh Query 2: Transformasi Nama dan Analisis Panjang Karakter
SELECT nmdosen,
UPPER(nmdosen) AS nama_kapital,
LEN(nmdosen) AS panjang_karakter
FROM dosen
ORDER BY panjang_karakter DESC;
Memahami Hirarki Eksekusi Query
Hal tersulit bagi saya minggu ini adalah membiasakan diri dengan Logical Query Processing atau urutan eksekusi query. Kadang saya masih mencoba memfilter hasil agregat menggunakan WHERE, yang tentu saja berakhir dengan error.
Tips dari saya: Selalu ingat urutan logis ini agar query tidak tersesat:
FROM: Mengambil tabel sumber.
WHERE: Menyaring baris data awal.
GROUP BY: Mengelompokkan data.
HAVING: Menyaring hasil kelompok/agregat.
SELECT: Menampilkan kolom hasil.
ORDER BY: Mengurutkan hasil akhir.
Refleksi Pribadi
Praktikum minggu ini sangat membuka mata bahwa SQL bukan sekadar tempat penyimpanan data, tapi juga alat analisis yang sangat kuat. Memahami perbedaan dialek antar DBMS sangat penting agar kita bisa bekerja adaptif di berbagai lingkungan database. Hati-hati juga dengan tipe data TEXT di SQL Server; jika ingin dijadikan kunci index, sebaiknya gunakan VARCHAR.
Sampai jumpa di catatan praktikum minggu depan!


Komentar
Posting Komentar