Selasa, 19 Mei 2026

Pertemuan 10: STORED PROCEDURE LANJUTAN: MULTI-PARAMETER, IF/ELSE, OUT, DAN DML PADA DATABASE AKADEMIK

 

MAKALAH

STORED PROCEDURE LANJUTAN:
MULTI-PARAMETER, IF/ELSE, OUT, DAN DML
PADA DATABASE AKADEMIK

Mata Kuliah: Pemrograman SQL II

Dosen Pengampu : M Reza Redo Islami, S.Kom., M.T.I.


Disusun Oleh:

Nama     : Fitri Amelia Ananti

Npm         : 24781011

Kelas    : MI 4A

 

Tanggal Pembuatan : 19 Mei 2026 

 

PROGRAM STUDI MANAJEMEN INFORMATIKA
JURUSAN TEKNOLOGI INFORMASI
POLITEKNIK NEGERI LAMPUNG
2026



BAB I PENDAHULUAN

1.1 Latar Belakang
Dalam pengembangan sistem basis data yang kompleks, Stored Procedure menjadi komponen fundamental yang memungkinkan enkapsulasi logika bisnis langsung di sisi server. Makalah pertemuan sebelumnya telah membahas Stored Procedure dasar dengan parameter IN sederhana. Pertemuan ke-10 ini melanjutkan pemahaman tersebut ke tingkat yang lebih tinggi, mencakup fitur-fitur lanjutan yang diperlukan dalam sistem nyata.
Empat fitur utama yang dibahas dalam praktikum ini adalah: (1) Multi-Parameter IN dengan kombinasi filter dan JOIN antar tabel, (2) Kontrol alur menggunakan IF/ELSEIF/ELSE untuk logika kondisional, (3) Parameter OUTPUT untuk mengembalikan nilai dari procedure ke pemanggil, dan (4) operasi DML (INSERT, UPDATE, DELETE) yang dikemas di dalam Stored Procedure. Kombinasi keempat fitur ini memungkinkan pembuatan prosedur yang benar-benar mandiri dan dapat menangani berbagai skenario pengelolaan data akademik secara komprehensif.

Penggunaan fitur-fitur lanjutan ini sangat relevan dalam pengembangan aplikasi nyata, khususnya sistem informasi akademik yang memerlukan banyak logika bisnis seperti validasi status kelulusan, pembaruan data massal, dan pelaporan statistik multi-dimensi.


1.2 Rumusan Masalah

  1.    Bagaimana cara mengimplementasikan Stored Procedure dengan multi-parameter dan JOIN         antar beberapa tabel?
  2.   Bagaimana kontrol alur IF/ELSEIF/ELSE diimplementasikan di dalam body Stored Procedure?
  3.   Bagaimana mekanisme parameter OUTPUT bekerja dan kapan penggunaannya lebih tepat       dibanding SELECT biasa?
  4.   Bagaimana operasi DML (INSERT, UPDATE, DELETE) dikemas secara aman di dalam Stored    Procedure?


1.3 Tujuan

  • Memahami dan mengimplementasikan Stored Procedure dengan multi-parameter IN dan JOIN multi-tabel.
  • Menggunakan struktur kontrol IF/ELSEIF/ELSE untuk membangun logika kondisional dalam procedure.
  • Menguasai teknik parameter OUTPUT dengan pola DECLARE dan SELECT ... INTO.
  • Mengimplementasikan operasi DML (INSERT, UPDATE, DELETE) di dalam Stored Procedure secara aman dan terverifikasi.
  • Menggabungkan seluruh teknik lanjutan tersebut dalam satu proyek tugas mandiri yang komprehensif.


 

BAB II TINJAUAN PUSTAKA

2.1 Multi-Parameter IN dan Kombinasi Filter

Stored Procedure dengan dua atau lebih parameter INPUT memungkinkan pemfilteran data yang lebih presisi. Setiap parameter tambahan mempersempit hasil query melalui klausa AND dalam kondisi WHERE. Teknik ini sangat berguna untuk laporan yang membutuhkan lebih dari satu dimensi filter, misalnya mencari mahasiswa berdasarkan program studi, tahun masuk, dan status akademik secara bersamaan.

Sintaks dasar untuk procedure dengan tiga parameter:

CREATE PROCEDURE filterMhsTiga

    @p_prodi    INT,

    @p_status   INT,

    @p_thn      INT

AS BEGIN

    SELECT * FROM mahasiswa

    WHERE idprodi = @p_prodi

      AND idstatusaka = @p_status

      AND thn_masuk = @p_thn;

END;

2.2 JOIN Multi-Tabel dalam Stored Procedure

JOIN memungkinkan pengambilan data dari beberapa tabel yang saling berrelasi dalam satu query. Di dalam Stored Procedure, JOIN dikombinasikan dengan parameter INPUT untuk menghasilkan laporan yang dinamis dan kaya konteks. SQL Server mendukung berbagai jenis JOIN (INNER, LEFT, RIGHT, FULL OUTER), namun INNER JOIN paling sering digunakan karena hanya mengembalikan baris yang memiliki pasangan di semua tabel.

Contoh JOIN tiga tabel (mahasiswa, prodi, jenjang):

SELECT m.npm, m.nama, p.nmprodi, j.nmjenjang

FROM mahasiswa m

JOIN prodi p     ON p.idprodi   = m.idprodi

JOIN jenjang j   ON j.idjenjang = p.idjenjang

WHERE m.idprodi = @p_prodi

ORDER BY m.npm ASC;

2.3 Kontrol Alur IF / ELSEIF / ELSE

T-SQL menyediakan struktur percabangan IF...ELSE untuk mengontrol alur eksekusi di dalam body procedure. Berbeda dengan MySQL yang menggunakan END IF, T-SQL menggunakan blok BEGIN...END untuk mengelompokkan pernyataan di setiap cabang. Struktur ELSEIF tidak ada di T-SQL; gantinya digunakan ELSE IF (dua kata) yang dapat dirantai.

Sintaks kontrol alur T-SQL:

IF kondisi1

BEGIN

    -- blok jika kondisi1 benar

END

ELSE IF kondisi2

BEGIN

    -- blok jika kondisi2 benar

END

ELSE

BEGIN

    -- blok default

END

2.4 Parameter OUTPUT

Parameter OUTPUT digunakan untuk mengembalikan satu atau lebih nilai skalar dari procedure ke lingkungan pemanggil. Ini berbeda dari SELECT yang mengembalikan result set; OUTPUT mengembalikan nilai variabel tunggal yang dapat langsung digunakan dalam logika aplikasi.

Pola implementasi parameter OUTPUT di T-SQL:

-- Di dalam procedure:

CREATE PROCEDURE countMhsTahun

    @p_thn    INT,

    @p_count  INT OUTPUT

AS BEGIN

    SELECT @p_count = COUNT(*) FROM mahasiswa

    WHERE thn_masuk = @p_thn;

END;

 

-- Cara memanggil:

DECLARE @jumlah INT;

EXEC countMhsTahun @p_thn = 2023, @p_count = @jumlah OUTPUT;

SELECT @jumlah AS Total_Mahasiswa;

2.5 DML di Dalam Stored Procedure

Operasi Data Manipulation Language (INSERT, UPDATE, DELETE) dapat dikemas di dalam Stored Procedure untuk memberikan lapisan abstraksi dan keamanan. Pengguna hanya perlu menjalankan EXEC dengan parameter, tanpa akses langsung ke tabel. Ini sangat penting untuk mencegah perubahan data yang tidak terotorisasi dan menjaga konsistensi logika bisnis.



 

BAB III IMPLEMENTASI DAN CONTOH KASUS

3.1 Multi-Parameter IN

3.1.1 Kasus A: Filter Mahasiswa 2 Kondisi

Staf akademik membutuhkan daftar mahasiswa berdasarkan program studi tertentu yang masuk pada tahun tertentu. Dua filter ini dikombinasikan dengan operator AND.





Hasil: Menampilkan seluruh data mahasiswa dari Prodi 13 yang masuk tahun 2024

 

3.1.2 Kasus B: Filter Dosen 2 Kondisi 

Kepala jurusan membutuhkan daftar dosen pada program studi tertentu dengan jenjang pendidikan tertentu (misalnya S2 atau S3).



 

3.2 Procedure dengan JOIN

Laporan membutuhkan nama program studi mahasiswa (bukan ID), sehingga diperlukan JOIN antara tabel mahasiswa dan tabel prodi.




3.3 GROUP BY dan HAVING

Kasus: Hitung Mahasiswa per Tahun Masuk

Laporan rekap jumlah mahasiswa yang masuk per tahun di suatu prodi tertentu, dikelompokkan berdasarkan thn_masuk.



 


3.4 Kontrol Alur IF / ELSEIF / ELSE

Kasus: IF / ELSEIF – Bracket Angkatan

Procedure mengklasifikasikan angkatan mahasiswa ke dalam tiga kelompok berdasarkan tahun masuk: 



 


3.5 Parameter OUTPUT

Kasus: Parameter OUT COUNT 

Mengembalikan jumlah mahasiswa pada tahun tertentu sebagai nilai integer. Nilai ini dapat digunakan langsung oleh aplikasi tanpa perlu mengurai result set.



 

3.6 DML di Dalam Stored Procedure

Kasus: INSERT via Procedure 

Procedure tambahMhs menerima data mahasiswa baru dan melakukan INSERT ke tabel mahasiswa. Seluruh validasi data dapat dilakukan di dalam procedure sebelum INSERT dieksekusi.



3.7 Level 7 – Tugas Mandiri (Kombinasi Teknik)

Tugas Mandiri Parameter OUT – Cek Kelulusan 

Procedure cekKelulusan mengembalikan status kelulusan ('Lulus' / 'Belum Lulus') melalui parameter OUTPUT berdasarkan nilai IPK. Ini merupakan contoh nyata penggunaan parameter OUT untuk logika bisnis.




BAB IV  PEMBAHASAN

4.1 Perbandingan Parameter IN vs OUTPUT



 

4.2 Poin Kritis yang Ditemukan dalam Praktikum

Case Sensitivity pada Validator: Sistem simulator sangat sensitif terhadap penulisan nama variabel. Kesalahan seperti P_npm vs p_npm mengakibatkan kegagalan tokenization. Solusinya adalah selalu menggunakan lowercase konsisten dengan prefix @p_.

 

SELECT ... INTO vs SET untuk OUT: Dalam konteks simulator, penggunaan SELECT @var = expr lebih stabil dibandingkan SET @var = (SELECT ...) karena memenuhi kata kunci yang diverifikasi oleh parser sistem.

 

Integritas Referensial saat JOIN: Procedure dengan JOIN membutuhkan data yang konsisten di semua tabel yang dihubungkan. Jika tabel referensi (prodi, jenjang, pendidikan) kosong atau tidak sinkron, procedure akan mengembalikan result set kosong.

 

DML Tanpa Konfirmasi: Procedure DELETE dan UPDATE tidak memiliki mekanisme konfirmasi bawaan. Dalam sistem produksi, sangat dianjurkan menambahkan parameter konfirmasi atau menggunakan Transaction dengan TRY...CATCH.


 

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

  • Stored Procedure Multi-Parameter memungkinkan filter data yang presisi melalui kombinasi kondisi AND di klausa WHERE, sehingga satu procedure dapat melayani berbagai skenario laporan tanpa menulis ulang logika SQL.
  • JOIN multi-tabel di dalam Stored Procedure menghasilkan laporan kontekstual yang kaya informasi, menggabungkan data dari tabel mahasiswa, prodi, jenjang, dan dosen sekaligus dalam satu panggilan procedure.
  • Kontrol alur IF/ELSE IF/ELSE di dalam T-SQL memungkinkan satu procedure menangani banyak skenario berbeda berdasarkan nilai parameter input, menghasilkan procedure yang dinamis dan adaptif.
  • Parameter OUTPUT adalah mekanisme yang tepat untuk mengembalikan nilai skalar dari procedure ke aplikasi, lebih efisien daripada SELECT result set untuk kebutuhan nilai tunggal seperti jumlah, rata-rata, atau status.
  • Operasi DML (INSERT, UPDATE, DELETE) yang dikemas dalam Stored Procedure meningkatkan keamanan sistem dengan memisahkan hak akses: pengguna hanya perlu izin EXECUTE tanpa akses langsung ke tabel.
  • Presisi sintaksis, termasuk konsistensi huruf kapital pada nama variabel dan pemilihan keyword yang tepat, sangat menentukan keberhasilan eksekusi Stored Procedure baik di simulator maupun lingkungan produksi.

5.2 Saran

       Implementasikan TRY...CATCH di sekitar operasi DML untuk menangkap dan melaporkan error secara graceful tanpa menabrak aplikasi pemanggil.

       Gunakan Transaction Management (BEGIN TRAN, COMMIT, ROLLBACK) untuk memastikan konsistensi data pada operasi yang melibatkan beberapa DML sekaligus.

       Pertimbangkan penambahan parameter @p_dry_run INT = 0 pada procedure DML, sehingga dapat diuji dulu tanpa benar-benar mengubah data (ROLLBACK jika dry_run = 1).

       Eksplorasi penggunaan Scalar User-Defined Functions (UDF) sebagai alternatif parameter OUT untuk kalkulasi yang sering dipakai lintas procedure.

       Dokumentasikan setiap procedure dengan komentar header yang mencantumkan tujuan, parameter, dan contoh pemanggilan untuk kemudahan pemeliharaan jangka panjang.


 

DAFTAR PUSTAKA

Microsoft Corporation. (2024). CREATE PROCEDURE (Transact-SQL). Microsoft Documentation. https://docs.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql

 

Microsoft Corporation. (2024). IF...ELSE (Transact-SQL). Microsoft Documentation. https://docs.microsoft.com/en-us/sql/t-sql/language-elements/if-else-transact-sql

 

Microsoft Corporation. (2024). Output Parameters. Microsoft Documentation. https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/return-data-from-a-stored-procedure

 

Politeknik Negeri Lampung. (2026). Modul Praktikum 10: T-SQL Stored Procedure II – Multi-Parameter, IF/ELSE, OUT, dan DML. Jurusan Teknologi Informasi.

 

Silberschatz, A., Korth, H. F., & Sudarshan, S. (2020). Database System Concepts (7th ed.). McGraw-Hill Education.


 

Tidak ada komentar:

Posting Komentar

Pertemuan 13