Showcase Karya Mahasiswa: Menguasai Analisis Data Lanjut dengan SQL Window Functions
Penulis: Vhemas Dwi Agung Prasetyo Mata Kuliah: Informatika Kelas: 2024D
NIM: 24111814047
Dalam era digital yang didorong oleh data, kemampuan untuk mengekstrak wawasan berharga
dari database adalah keterampilan fundamental. Sebagian besar dari kita yang berkesimpung
di dunia teknologi informasi akrab dengan perintah dasar SQL seperti SELECT, WHERE, dan
GROUP BY. Namun, untuk melakukan analisis data yang benar-benar kompleks dan
mendalam, kita memerlukan alat yang lebih canggih.
Melalui proyek video pembelajaran individu, mahasiswa Program Studi Informatika Vhemas
Dwi Agung Prasetyo, mengupas tuntas salah satu fitur SQL paling kuat namun sering
diabaikan: Window Functions.
Permasalahan: Ketika GROUP BY Saja Tidak Cukup
Artikel ini—dan video yang menyertainya—dimulai dengan menyoroti keterbatasan mendasar
dari fungsi agregasi standar GROUP BY.
GROUP BY sangat baik untuk meringkas data. Jika kita memiliki 1000 transaksi penjualan,
GROUP BY kategori dapat dengan mudah memberi kita total penjualan untuk setiap kategori.
Namun, dalam prosesnya, ia "meruntuhkan" (collapses) 1000 baris data asli tersebut menjadi
beberapa baris ringkasan. Kita kehilangan semua detail individualnya.
Bagaimana jika kita dihadapkan pada pertanyaan bisnis yang lebih rumit?
• "Siapa 3 karyawan dengan gaji tertinggi di setiap departemen?"
• "Bagaimana perbandingan penjualan bulan ini dengan bulan sebelumnya, baris per
baris?"
• "Berapa total penjualan berjalan (running total) dari hari ke hari?"
Pertanyaan-pertanyaan ini tidak dapat dijawab dengan GROUP BY saja tanpa menggunakan
subquery atau join yang sangat rumit dan tidak efisien.
Solusi Elegan: Memperkenalkan Window Functions
Di sinilah Window Functions berperan. Filosofi utamanya adalah: Melakukan perhitungan
agregat tanpa meruntuhkan baris aslinya.
Sebuah window function bekerja dengan mendefinisikan "jendela" (window) atau sekumpulan
baris data yang terkait dengan baris saat ini. Perhitungan kemudian dilakukan pada jendela
tersebut, dan hasilnya ditambahkan sebagai kolom baru pada setiap baris asli.
Analogi yang digunakan dalam video adalah lift kaca di sebuah gedung apartemen:
• Gedung adalah tabel data Anda.
• Setiap Lantai adalah baris data.
• Lift Kaca adalah window function yang dapat "melihat" beberapa lantai sekaligus
(misalnya, 5 lantai di atas dan 5 di bawah) untuk melakukan perhitungan, tanpa
meruntuhkan lantai itu sendiri.
Membedah Anatomi: PARTITION BY dan ORDER BY
Kekuatan window function terletak pada klausa OVER() dan dua "tuas" utamanya:
1. PARTITION BY (Tuas Pengelompok): Ini seperti GROUP BY versi window function.
Ia membagi data menjadi beberapa blok atau partisi terpisah (misalnya, mempartisi
karyawan berdasarkan departemen). Semua perhitungan akan dilakukan secara
independen di dalam setiap partisi.
2. ORDER BY (Tuas Pengurut): Ini mengurutkan baris di dalam setiap partisi. Urutan ini
sangat krusial untuk fungsi-fungsi seperti RANK() (untuk menentukan siapa yang
"pertama") atau LAG() (untuk menentukan "baris sebelumnya").
Dari Teori ke Praktik: 3 Studi Kasus Nyata
Video pembelajaran ini tidak hanya berhenti pada teori. Vhemas mendemonstrasikan
penerapan window functions melalui tiga studi kasus bisnis yang realistis:
1. Analisis Ranking (Produk Bintang): Menggunakan RANK() dan PARTITION BY
kategori untuk menemukan 3 produk terlaris di dalam setiap kategori—sebuah tugas
yang mustahil dilakukan dengan GROUP BY sederhana.
2. Analisis Pertumbuhan (Perbandingan Antar Baris): Menggunakan fungsi LAG() untuk
"mengintip" data penjualan dari baris (bulan) sebelumnya. Hal ini memungkinkan
perhitungan pertumbuhan bulan-ke-bulan (month-over-month growth) secara langsung
di dalam query SQL.
3. Analisis Tren (Moving Average): Menggunakan frame clause (ROWS BETWEEN ...)
untuk menghitung rata-rata penjualan bergerak 7 hari (7-day moving average). Teknik
ini sangat penting untuk menghaluskan data yang fluktuatif dan melihat tren jangka
panjang.
Kesimpulan
Menguasai window functions adalah langkah transformatif bagi siapa pun yang bekerja dengan
data. Ini adalah jembatan yang memisahkan analis data pemula dari analis data mahir,
memungkinkan penulisan query yang lebih bersih, lebih cepat, dan jauh lebih kuat.
Karya ini menunjukkan kemampuan mahasiswa Informatika untuk tidak hanya memahami
konsep teoretis basis data, tetapi juga menerapkannya untuk memecahkan masalah analisis data
yang kompleks dan relevan dengan industri.
Saksikan video pembelajaran lengkap oleh Vhemas Dwi Agung Prasetyo di bawah ini: