Konsep Dasar, Parameter IN, dan Fungsi Agregat dan Multi-Parameter, IF/ELSE, OUT, dan DML
PERTEMUAN 9
1. Stored Procedure I: Konsep Dasar, Parameter IN, dan Fungsi Agregat
Nama: Nyken Sekar Ayuningtyas
NPM: 24781020
Program Studi: Manajemen Informatika 4A
Tanggal: 21 Mei 2026
2. Abstrak / Pendahuluan
Pada perkuliahan Pemrograman SQL Lanjut minggu ke-9 ini, fokus kegiatan praktikum adalah memahami landasan konseptual dan implementasi praktis dari objek basis data berupa Stored Procedure tingkat dasar. Pemrograman pada lingkungan basis data relasional sering kali menuntut efisiensi eksekusi dan modularitas kode. Melalui praktikum ini, diimplementasikan pembuatan database AKADEMIK yang mencakup tabel penyusun interrelasional data mahasiswa, dosen, prodi, dan jenjang pendidikan.
Tujuan utama praktikum ini adalah agar mahasiswa terampil dalam merancang objek STORED PROCEDURE pada lingkungan SQL Server Management Studio (SSMS), mengelola fungsionalitas parameter masukan standar (Mode IN), mengombinasikan perintah sorting, melakukan restriksi baris luaran dengan klausul spesifik, serta mengintegrasikan fungsi agregasi di dalam tubuh prosedur guna menyajikan rekapitulasi data yang dinamis dan terstruktur.
3. Pembahasan Inti
3.1 Procedure Tanpa Parameter
Pembuatan fungsionalitas pembungkusan query dasar tanpa melibatkan variabel kontrol eksternal. Prosedur ini dirancang khusus untuk memanggil data statis yang rutin diakses dari tabel master.
SQL
-- Membuat prosedur tanpa parameter untuk menampilkan data dosen
CREATE OR ALTER PROCEDURE tampilNamaGelarDosen
AS
BEGIN
SELECT nmdosen, gelar
FROM dosen
ORDER BY nmdosen ASC;
END
GO
-- Cara eksekusi prosedur di SSMS
EXEC tampilNamaGelarDosen;
GO
Analisis / Pembahasan: > Stored procedure tampilNamaGelarDosen berhasil dieksekusi secara valid di lingkungan SSMS. Konstruksi perintah ini membungkus seleksi kolom nama (nmdosen) dan gelar dari tabel master dosen dengan pengurutan alfabetis (ASC). Melalui skema tanpa parameter ini, beban kompilasi di sisi server direduksi karena query telah tersimpan dalam execution plan database secara permanen.
3.2 Procedure 1 Parameter IN
Implementasi penyaringan baris data adaptif dengan menempatkan sebuah variabel lokal penampung argumen masukan (Mode IN) untuk dinamisasi kriteria pemfilteran data.
SQL
-- Membuat prosedur dengan 1 parameter masukan
CREATE OR ALTER PROCEDURE getProdiByJenjang
@p_idjenjang INT
AS
BEGIN
SELECT idprodi, nmprodi
FROM prodi
WHERE idjenjang = @p_idjenjang
ORDER BY nmprodi ASC;
END
GO
-- Eksekusi Prosedur dengan input Parameter idjenjang = 1
EXEC getProdiByJenjang 1;
GO
Analisis / Pembahasan: > Dalam dialek Transact-SQL (T-SQL) milik Microsoft SQL Server, parameter masukan (secara default bertindak sebagai mode IN) dideklarasikan langsung menggunakan simbol token pembuka @ tanpa menuliskan kata kunci khusus seperti pada DBMS lain. Prosedur getProdiByJenjang menyaring entitas program studi berdasarkan id jenjang pendidikan secara real-time sesuai argumen integer yang dikirimkan oleh user.
3.3 Procedure 2 Parameter IN
Penerapan kriteria penyaringan yang lebih rigid dengan mengintegrasikan kombinasi logika relasional multidimensi melalui dua parameter input sekaligus.
SQL
-- Membuat prosedur dengan 2 parameter masukan (Prodi dan Batas IPK)
CREATE OR ALTER PROCEDURE getMhsByProdiIpk
@p_idprodi INT,
@p_ipk_min FLOAT
AS
BEGIN
SELECT npm, nama, ipk
FROM mahasiswa
WHERE idprodi = @p_idprodi AND ipk >= @p_ipk_min
ORDER BY ipk DESC;
END
GO
-- Mengeksekusi pengujian logika dengan argumen prodi=101 dan IPK minimal=3.00
EXEC getMhsByProdiIpk 101, 3.00;
GO
Analisis / Pembahasan: > Penggunaan dua buah parameter masukan dipisahkan dengan tanda koma (,). Di dalam blok prosedur, kondisi logika AND menghubungkan penyaringan kolom idprodi dan batas ambang matematis nilai indeks prestasi kumulatif (ipk≥p_ipk_min). Pengurutan data diatur menggunakan klausul ORDER BY ipk DESC untuk langsung menempatkan prestasi akademik tertinggi di baris teratas laporan.
3.4 Procedure dengan Klausul ORDER BY dan TOP (Restriksi Baris)
Menggabungkan teknik kalkulasi ringkasan data dengan pembatasan jumlah baris rekapitulasi puncak (serupa fungsi limitasi baris pada arsitektur data).
SQL
-- Membuat prosedur untuk rekapitulasi peringkat prodi berdasarkan volume mahasiswa
CREATE OR ALTER PROCEDURE getTopProdiJumlahMhs
@p_limit INT
AS
BEGIN
SELECT TOP (@p_limit) idprodi, COUNT(npm) AS jumlah_mahasiswa
FROM mahasiswa
GROUP BY idprodi
ORDER BY jumlah_mahasiswa DESC;
END
GO
-- Menampilkan 3 besar program studi dengan densitas mahasiswa tertinggi
EXEC getTopProdiJumlahMhs 3;
GO
Analisis / Pembahasan: > Berbeda mendasar dengan dialek MySQL atau SQLite yang menerapkan klausul LIMIT di bagian paling akhir baris perintah, SQL Server memanfaatkan ekspresi predikat TOP (@variabel) langsung di sisi klausa seleksi awal. Sintaksis ini wajib menyertakan tanda kurung jika parameter digunakan secara dinamis agar interpreter T-SQL mampu mengevaluasi nilai restriksi baris secara presisi.
4. Studi Kasus / Implementasi Sederhana
4.1 Penerapan Prosedur Agregat Berkelompok
Memanfaatkan fungsionalitas internal stored procedure untuk melakukan perhitungan metrik statistik berkelompok guna memetakan tren perkembangan populasi civitas akademika per periode tahun masuk.
SQL
-- Membuat prosedur untuk menghitung jumlah total mahasiswa per angkatan
CREATE OR ALTER PROCEDURE hitungMhsPerAngkatan
AS
BEGIN
SELECT thn_masuk, COUNT(npm) AS total_mahasiswa
FROM mahasiswa
GROUP BY thn_masuk
ORDER BY thn_masuk ASC;
END
GO
-- Menjalankan prosedur kalkulasi agregat
EXEC hitungMhsPerAngkatan;
GO
4.2 Tugas Mandiri Komparasi Parameter
Implementasi pembuatan sub-prosedur mandiri bersasaran spesifik untuk mengekstrak biodata lengkap sekumpulan entitas mahasiswa berdasarkan variabel tahun angkatan masukan yang bersifat dinamis.
SQL
-- Prosedur Tugas Mandiri menyaring mahasiswa berdasarkan parameter angkatan tertentu
CREATE OR ALTER PROCEDURE getMhsByAngkatan
@p_tahun INT
AS
BEGIN
SELECT npm, nama, thn_masuk, ipk
FROM mahasiswa
WHERE thn_masuk = @p_tahun;
END
GO
-- Memanggil data angkatan 2021 secara spesifik
EXEC getMhsByAngkatan 2021;
GO
Analisis Studi Kasus: > Pada studi kasus fungsi agregat dan tugas mandiri di atas, integrasi pemrosesan internal database berhasil mereduksi pengiriman data mentah (raw data) melalui jaringan ke layer aplikasi. Prosedur secara otomatis menghitung aggregasi jumlah menggunakan token COUNT(npm) yang dikelompokkan lewat klausul GROUP BY thn_masuk. Hal ini mengilustrasikan fungsi enkapsulasi logika bisnis yang aman dan reliabel di sisi back-end database server.
5. Kesimpulan & Refleksi Diri
Melalui rangkaian praktikum Stored Procedure I pada pertemuan ke-9 ini, dapat ditarik konklusi fundamental bahwa pemanfaatan objek tersimpan di dalam database memberikan lompatan efisiensi yang signifikan terhadap pemrosesan query data relasional. Struktur kode menjadi jauh lebih rapi, modular, dan meminimalisasi pengulangan penulisan sintaksis query sejenis di sisi client atau aplikasi web pemanggil. Pemanfaatan parameter masukan (IN) memberikan fleksibilitas instruksi seleksi secara adaptif.
Refleksi kendala operasional yang saya alami selama sesi praktikum ini berkaitan dengan kekeliruan pembacaan skema database dikarenakan masih aktifnya residu database lama yang strukturnya belum selaras pada kolom ipk. Masalah ini berhasil saya tanggulangi secara tuntas dengan mengeksekusi penghapusan database lama (drop database) lalu menyusun ulang database master AKADEMIK dari awal, sehingga seluruh rangkaian pengujian stored procedure dari level 1 hingga level 6 dapat diselesaikan dengan perolehan skor kelulusan mutlak 100/100.
6. Daftar Pustaka
- Modul Praktikum Minggu Ke-9 – Stored Procedure I: Pemrograman SQL II, Program Studi Manajemen Informatika, Politeknik Negeri Lampung, 2026.
- Microsoft Corporation. (2023). Create a Stored Procedure - Transact-SQL Reference Guide. Microsoft Learn Documentation.
- Hasil evaluasi dan kompilasi script praktikum pada database AKADEMIK via SQL Server Management Studio (SSMS) Sesi Aktif Nyken Sekar Ayuningtyas.
PERTEMUAN 10
1. Stored Procedure Lanjutan: Multi-Parameter, IF/ELSE, OUT, dan DML
Nama: Nyken Sekar Ayuningtyas
NPM: 24781020
Program Studi: Manajemen Informatika 4A
Tanggal: 21 Mei 2026
2. Abstrak / Pendahuluan
Pada kuliah Pemrograman SQL Lanjut minggu ke-10 ini, fokus kegiatan praktikum diperluas pada pendalaman materi Stored Procedure tingkat lanjut. Pemrograman di dalam database tidak lagi hanya mengeksekusi query tunggal, melainkan telah mengintegrasikan parameter ganda (multi-parameter), kendali alur (flow control), parameter keluaran (`OUT`), serta operasi manipulasi data (`INSERT`, `UPDATE`, `DELETE`) secara langsung di dalam body procedure pada database AKADEMIK.
Tujuan praktikum ini adalah agar mahasiswa mampu menyusun arsitektur logika basis data yang lebih modular, dinamis, aman, serta efisien dalam memproses data relasional yang kompleks.
3. Pembahasan Inti
3.1 Multi-Parameter & Mode IN
Kombinasi penyaringan data menggunakan dua atau tiga parameter masukan (`IN`) sekaligus di dalam prosedur.
-- Membuat prosedur dengan parameter ganda masukan (IN)
CREATE PROCEDURE filterMhs
@p_prodi INT,
@p_thn INT
AS
BEGIN
SELECT * FROM mahasiswa
WHERE idprodi = @p_prodi AND thn_masuk = @p_thn;
END
GO
Cara eksekusi prosedur di SSMS
EXEC filterMhs 1, 2020;
GO
Analisis:
Kombinasi parameter ganda bermode `IN` (secara default di SQL Server tidak perlu ditulis kata `IN`-nya) memungkinkan kita melakukan pencarian data database secara multidimensi. Modul ini melatih penggunaan tanda koma sebagai pemisah antar-parameter di dalam tanda kurung saat prosedur dideklarasikan.
3.2 Kontrol Alur (IF / ELSEIF / ELSE)
Penerapan struktur kendali alur keputusan di dalam tubuh prosedur berdasarkan parameter mode input yang dimasukkan pengguna.
CREATE PROCEDURE showMhsByIpk
@p_mode INT,
@p_ipk FLOAT
AS
BEGIN
IF @p_mode = 1
SELECT * FROM mahasiswa WHERE ipk >= @p_ipk ORDER BY npm;
ELSE IF @p_mode = 2
SELECT * FROM mahasiswa WHERE ipk < @p_ipk ORDER BY npm;
ELSE
SELECT * FROM mahasiswa WHERE ipk IS NULL ORDER BY npm;
END
GO
Eksekusi Mode 1 (IPK di atas atau sama dengan 3.5)
EXEC showMhsByIpk 1, 3.5;
GO
Analisis:
Struktur `IF...ELSE IF...ELSE` di dalam tubuh prosedur berfungsi mengarahkan jalannya query secara kondisional. Di SQL Server, penulisan kata kunci kontrol alur menggunakan dialek `ELSE IF` (dipisah spasi), bukan `ELSEIF` menyatu seperti pada simulator SQLite/MySQL, untuk memastikan percabangan berjalan *valid*.
3.3 Parameter OUT (Mendapatkan Informasi Output)
Menggunakan parameter berjenis `OUTPUT` untuk menangkap dan mengembalikan nilai ringkasan data keluar ke program pemanggil.
sql
CREATE PROCEDURE countMhs
@p_prodi INT,
@p_count INT OUTPUT -- Mendefinisikan parameter keluaran
AS
BEGIN
Memasukkan hasil hitung COUNT ke variabel parameter menggunakan tanda
SELECT @p_count = COUNT(*)
FROM mahasiswa
WHERE idprodi = @p_prodi;
END
GO
Cara memanggil parameter OUT terikat di SSMS
DECLARE @hasil INT;
EXEC countMhs 1, @hasil OUTPUT;
SELECT @hasil AS [Jumlah Mahasiswa Prodi 1];
GO
Analisis:
Berbeda dengan sistem MySQL/SQLite yang menggunakan klausa `SELECT COUNT(*) INTO p_var`, SQL Server menggunakan format pemetaan nilai langsung `SELECT @p_var = COUNT(*)` untuk mengisi parameter berjenis `OUTPUT`. Variabel penampung eksternal wajib dideklarasikan terlebih dahulu sebelum prosedur dieksekusi.
3.4 DML di Dalam Procedure (INSERT, UPDATE, DELETE)
Menjalankan operasi perubahan data langsung (Data Manipulation Language) di dalam tubuh prosedur sekaligus memverifikasi hasilnya.
CREATE PROCEDURE bonusIpkTahun
@p_thn INT,
@p_bonus FLOAT
AS
BEGIN
Operasi UPDATE DML di dalam tubuh prosedur
UPDATE mahasiswa
SET ipk = ipk + @p_bonus
WHERE thn_masuk = @p_thn AND ipk IS NOT NULL;
Verifikasi langsung hasil perubahan data
SELECT * FROM mahasiswa WHERE thn_masuk = @p_thn;
END
GO
Menjalankan prosedur aksi DML
EXEC bonusIpkTahun 2015, 0.05;
GO
Analisis:
Memasukkan perintah DML (`INSERT`, `UPDATE`, `DELETE`) ke dalam fungsi objek prosedur mempermudah otomatisasi aturan bisnis basis data. Penambahan perintah seleksi data (`SELECT`) di akhir badan prosedur sangat membantu programmer dalam melakukan verifikasi real-time setelah data dimanipulasi.
4. Studi Kasus / Implementasi Sederhana
4.1 Tugas Mandiri Kombinasi Teknik
sql
Penggabungan parameter input, kendali IF...ELSE, dan parameter OUTPUT
CREATE PROCEDURE mandiriKombo1
@p_thn INT,
@p_result INT OUTPUT
AS
BEGIN
IF @p_thn > 2018
SELECT @p_result = COUNT(*) FROM mahasiswa WHERE thn_masuk > 2018;
ELSE
SELECT @p_result = COUNT(*) FROM mahasiswa WHERE thn_masuk <= 2018;
END
GO
-- Eksekusi pengujian logika studi kasus mandiri
DECLARE @hasil_rekap INT;
EXEC mandiriKombo1 2018, @hasil_rekap OUTPUT;
SELECT @hasil_rekap AS [Jumlah Mahasiswa Angkatan Lama];
GO
Analisis:
Studi kasus ini menggabungkan:
Multi-Parameter Mode: Menggunakan `@p_thn` sebagai penentu acuan data dan `@p_result OUTPUT` sebagai kurir pembawa nilai keluar.
IF...ELSE: Memilah pembagian kelompok data mahasiswa secara dinamis berdasarkan batas periodisasi tahun masuk tertentu.
5. Kesimpulan & Refleksi Diri
Berdasarkan praktikum mengenai materi Stored Procedure II pada minggu ke-10 ini, saya menyimpulkan bahwa pemrograman database tingkat lanjut memberikan fleksibilitas komputasi yang sangat tinggi. Saya kini memahami perbedaan cara penanganan parameter `OUTPUT` dan kontrol alur percabangan antara SQL standar umum dengan Transact-SQL milik Microsoft SQL Server. Kendala awal saya adalah adaptasi sintaksis `INTO` yang tidak didukung oleh SSMS, tetapi berhasil diselesaikan dengan baik melalui penyesuaian operator assignment (`=`).
6. Daftar Pustaka
1. Modul Praktikum Minggu Ke-10 – Stored Procedure Lanjutan: Multi-Parameter, IF/ELSE, OUT, dan DML.
2. Microsoft. (2023). SQL Server Stored Procedures Reference Documentation.
3. Hasil kompilasi uji coba praktikum mandiri pada SQL Server Management Studio (SSMS).
Komentar
Posting Komentar