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

  1. Modul Praktikum Minggu Ke-9 – Stored Procedure I: Pemrograman SQL II, Program Studi Manajemen Informatika, Politeknik Negeri Lampung, 2026.
  2. Microsoft Corporation. (2023). Create a Stored Procedure - Transact-SQL Reference Guide. Microsoft Learn Documentation.
  3. 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

Postingan populer dari blog ini

Implementasi COUNT, AVG, MIN, MAX, GROUP BY, HAVING, dan Fungsi Bawaan pada Database Akademik

Menguasai Transact-SQL: Eksplorasi Variabel, Logika, dan Perulangan di SQL Server

Transaction: BEGIN, COMMIT, ROLLBACK, SAVEPOINT, Atomicity & All-or-Nothing