Selasa, 19 Mei 2026

BLOG M9 & M10

 

MAKALAH

Membuat dan Memanggil Stored Procedure MySQL 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

Perkembangan teknologi informasi yang pesat menuntut pengelolaan data yang semakin efisien dan terstruktur. Dalam dunia pengembangan sistem informasi, database menjadi komponen inti yang menentukan kualitas dan kecepatan pengolahan data. Salah satu fitur canggih yang disediakan oleh sistem manajemen basis data (DBMS) seperti MySQL dan Microsoft SQL Server adalah Stored Procedure.

Stored Procedure merupakan sekumpulan pernyataan SQL yang dikompilasi dan disimpan di dalam server database. Dengan menggunakan Stored Procedure, pengembang dapat membungkus logika bisnis yang kompleks ke dalam satu unit yang dapat dipanggil berulang kali tanpa perlu menulis ulang kode SQL yang panjang. Hal ini memberikan keuntungan signifikan dalam hal efisiensi, keamanan, dan pemeliharaan sistem.

Dalam konteks database AKADEMIK, pengelolaan data mahasiswa, dosen, dan program studi memerlukan operasi-operasi yang sering diulang seperti pencarian data berdasarkan kriteria tertentu, penghitungan statistik akademik, dan perangkingan nilai. Stored Procedure hadir sebagai solusi yang tepat untuk mengotomatisasi operasi-operasi tersebut.

Makalah ini disusun untuk membahas secara komprehensif konsep, implementasi, dan manfaat penggunaan Stored Procedure pada database AKADEMIK, dilengkapi dengan contoh kasus nyata dan cara penyelesaiannya menggunakan T-SQL pada Microsoft SQL Server.


1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, rumusan masalah dalam makalah ini adalah:

  • Apa yang dimaksud dengan Stored Procedure dan bagaimana perannya dalam pengelolaan database?
  • Bagaimana cara membuat Stored Procedure tanpa parameter dan dengan parameter pada database AKADEMIK?
  • Bagaimana implementasi Stored Procedure untuk menyelesaikan kasus-kasus nyata dalam sistem akademik?
  • Apa keunggulan penggunaan Stored Procedure dibandingkan query SQL biasa?


1.3 Tujuan

Tujuan penyusunan makalah ini adalah:

  1. Memahami konsep dasar dan arsitektur Stored Procedure dalam sistem database.
  2. Mampu membuat dan memanggil Stored Procedure dengan berbagai jenis parameter.
  3. Mengimplementasikan Stored Procedure untuk menyelesaikan permasalahan nyata pada database AKADEMIK.
  4. Menganalisis keunggulan dan penerapan terbaik (best practice) penggunaan Stored Procedure.

1.4 Manfaat

Manfaat yang diharapkan dari makalah ini adalah:

  • Bagi mahasiswa: memberikan pemahaman mendalam tentang Stored Procedure sebagai fitur lanjutan SQL.
  • Bagi institusi: menjadi referensi dalam pengembangan sistem informasi akademik yang efisien.
  • Bagi pengembang: sebagai panduan praktis implementasi Stored Procedure pada lingkungan produksi.

BAB II TINJAUAN PUSTAKA

2.1 Pengertian Database dan DBMS

Database adalah kumpulan data yang terorganisasi dan saling berhubungan, yang disimpan secara sistematis sehingga dapat diakses, dikelola, dan diperbarui dengan mudah (Connolly & Begg, 2015). Database Management System (DBMS) adalah perangkat lunak yang berfungsi sebagai antarmuka antara pengguna dan database, memungkinkan operasi Create, Read, Update, dan Delete (CRUD) secara efisien.

Microsoft SQL Server adalah salah satu RDBMS (Relational Database Management System) yang paling banyak digunakan di lingkungan enterprise. SQL Server mendukung T-SQL (Transact-SQL), yaitu ekstensi dari standar SQL yang menyediakan fitur-fitur prosedural seperti variabel, kondisi, perulangan, dan Stored Procedure.

2.2 Stored Procedure

Stored Procedure adalah objek database yang berisi sekumpulan pernyataan T-SQL yang telah dikompilasi dan disimpan di server database. Menurut Microsoft Documentation (2024), Stored Procedure dapat menerima parameter input, memproses logika bisnis, mengembalikan nilai output, dan mengembalikan result set kepada pemanggil.

Sintaks dasar pembuatan Stored Procedure pada SQL Server adalah:



 

Untuk memanggil Stored Procedure, digunakan perintah EXEC atau EXECUTE:

EXEC nama_procedure @parameter1 = nilai1, @parameter2 = nilai2;

2.3 Jenis-Jenis Parameter Stored Procedure

2.3.1 Parameter IN (Input)

Parameter INPUT adalah parameter yang digunakan untuk menerima nilai dari pemanggil procedure. Nilai ini kemudian digunakan di dalam body procedure untuk memfilter atau memproses data. Pada SQL Server, semua parameter secara default bersifat INPUT kecuali dideklarasikan dengan kata kunci OUTPUT.

2.3.2 Parameter OUTPUT

Parameter OUTPUT digunakan untuk mengembalikan nilai dari procedure ke pemanggil. Parameter ini dideklarasikan dengan kata kunci OUTPUT setelah tipe datanya. Berbeda dengan MySQL yang menggunakan IN/OUT/INOUT, SQL Server menggunakan OUTPUT sebagai kata kunci eksplisit.

2.4 Keunggulan Stored Procedure



2.5 DROP PROCEDURE dan IF EXISTS

Sebelum membuat procedure baru, praktik terbaik adalah memeriksa apakah procedure dengan nama yang sama sudah ada dan menghapusnya terlebih dahulu. Ini dilakukan dengan pola:

IF OBJECT_ID('nama_procedure', 'P') IS NOT NULL

    DROP PROCEDURE nama_procedure;

GO

Pola ini memastikan tidak terjadi error duplikasi saat skrip dijalankan berulang kali dalam proses pengembangan.


 

BAB III IMPLEMENTASI DAN CONTOH KASUS

3.1 Struktur Database AKADEMIK

Database AKADEMIK yang digunakan dalam makalah ini memiliki struktur tabel sebagai berikut:



 

3.2 Kasus 1: Menampilkan Semua Data Mahasiswa (Tanpa Parameter)

3.2.1 Deskripsi Kasus

Staf akademik membutuhkan tampilan seluruh data mahasiswa yang terdaftar di sistem. Operasi ini sering dilakukan untuk keperluan rekap dan audit data. Daripada menulis query SELECT * FROM mahasiswa setiap saat, Stored Procedure digunakan agar lebih praktis dan konsisten.

3.2.2 Solusi dengan Stored Procedure



3.2.3 Analisis

Procedure tampilSemuaMahasiswa tidak memiliki parameter sehingga setiap kali dipanggil akan menampilkan seluruh data mahasiswa. Keunggulannya adalah staf tidak perlu mengingat nama kolom atau struktur tabel; cukup menjalankan satu perintah EXEC. Pada lingkungan multi-pengguna, procedure ini juga dapat dibatasi aksesnya hanya untuk role tertentu.

3.3 Kasus 2: Mencari Dosen Berdasarkan Program Studi (1 Parameter)
3.3.1 Deskripsi Kasus
Dekan membutuhkan laporan daftar dosen yang mengajar di program studi tertentu. Setiap kali laporan dibutuhkan, program studi yang dicari bisa berbeda-beda (misal: ID 10 untuk Manajemen Informatika, ID 11 untuk Teknik Informatika). Procedure dengan satu parameter IN menjadi solusi ideal.
3.3.2 Solusi dengan Stored Procedure



3.3.3 Analisis

Dengan menggunakan parameter @p_idprodi, satu procedure dapat digunakan untuk semua program studi hanya dengan mengubah nilai argumen. Ini mengurangi duplikasi kode dan memudahkan pemeliharaan. Jika ada perubahan logika (misalnya menambahkan filter dosen aktif saja), cukup modifikasi satu procedure tanpa mengubah kode di berbagai tempat.

3.4 Kasus 3: Filter Mahasiswa Berdasarkan Prodi dan Status Akademik (2 Parameter)

3.4.1 Deskripsi Kasus

Bagian kemahasiswaan perlu mengetahui daftar mahasiswa aktif di program studi tertentu untuk keperluan pengiriman surat edaran. Filter yang dibutuhkan adalah kombinasi dua kriteria: program studi (idprodi) dan status akademik (idstatusaka). Status 1 berarti aktif, status 2 berarti cuti, dan seterusnya.

3.4.2 Solusi dengan Stored Procedure



3.4.3 Analisis

Penggunaan dua parameter dengan logika AND memungkinkan filter yang lebih presisi. Procedure ini fleksibel karena dapat digunakan untuk kombinasi prodi dan status apa pun. Misalnya, untuk mendapatkan mahasiswa cuti di semua prodi, cukup memanggil procedure dengan nilai @p_status = 2 dan nilai @p_idprodi yang sesuai.

3.5 Kasus 4: Menampilkan Top-N Mahasiswa Berdasarkan IPK (ORDER BY & TOP)
3.5.1 Deskripsi Kasus

Divisi beasiswa perlu mengetahui N mahasiswa terbaik berdasarkan IPK tertinggi. Jumlah N bersifat dinamis, bisa 3, 5, atau 10 tergantung kebutuhan. Procedure dengan parameter dan klausa TOP serta ORDER BY menjadi solusi.

3.5.2 Solusi dengan Stored Procedure



3.5.3 Analisis

Penggunaan TOP (@p_limit) dengan nilai variabel memungkinkan pembatasan jumlah baris secara dinamis. Filter IS NOT NULL memastikan data yang tidak memiliki IPK (mahasiswa baru yang belum dinilai) tidak ikut termasuk dalam ranking. ORDER BY ipk DESC mengurutkan dari nilai tertinggi ke terendah.

3.6 Kasus 5: Statistik Jumlah Mahasiswa per Prodi (Agregat & JOIN)
3.6.1 Deskripsi Kasus

Pimpinan institusi membutuhkan laporan statistik jumlah mahasiswa per program studi, tetapi hanya untuk prodi yang memiliki mahasiswa di atas jumlah tertentu (threshold). Ini memerlukan JOIN antara tabel prodi dan mahasiswa, serta penggunaan fungsi agregat COUNT dengan klausa HAVING.

3.6.2 Solusi dengan Stored Procedure



3.6.3 Analisis

Procedure ini menggabungkan beberapa fitur SQL tingkat lanjut: JOIN untuk menghubungkan tabel prodi dan mahasiswa, GROUP BY untuk mengelompokkan data per prodi, COUNT untuk menghitung jumlah mahasiswa, dan HAVING untuk memfilter kelompok data berdasarkan hasil agregasi. Parameter @p_min memberikan fleksibilitas threshold yang dapat disesuaikan.

3.7 Kasus 6: Tugas Mandiri - Daftar Dosen Alfabetis dengan Detail
3.7.1 Deskripsi Kasus

Sebagai tugas mandiri, dibuat procedure sederhana untuk menampilkan data dosen beserta gelar akademik dan tempat lahirnya, diurutkan secara alfabetis berdasarkan nama dosen. Ini berguna untuk pembuatan direktori dosen institusi.

3.7.2 Solusi dengan Stored Procedure




 

BAB IV ANALISIS DAN PEMBAHASAN

4.1 Perbandingan Stored Procedure vs Query Langsung

Berikut adalah perbandingan antara penggunaan Stored Procedure dan query SQL langsung dalam konteks database AKADEMIK:



 

4.2 Rekap Implementasi Level Praktikum


4.3 Best Practice Penggunaan Stored Procedure

Berdasarkan implementasi yang dilakukan, berikut adalah praktik terbaik yang direkomendasikan:

     Selalu gunakan pola IF OBJECT_ID(...) IS NOT NULL sebelum CREATE PROCEDURE untuk menghindari error duplikasi.

     Beri nama procedure dengan konvensi yang deskriptif (misalnya: getDosenByProdi lebih baik dari proc1).

     Gunakan parameter dengan prefix @p_ atau @in_ untuk membedakannya dari nama kolom.

     Tambahkan komentar di dalam body procedure untuk menjelaskan logika yang kompleks.

     Gunakan filter IS NOT NULL untuk memastikan integritas data dalam laporan.

     Pertimbangkan penggunaan parameter default untuk parameter opsional menggunakan syntax @param TIPE = default_value.

4.4 Penerapan dalam Sistem Nyata

Stored Procedure yang dikembangkan dalam praktikum ini memiliki relevansi langsung dengan kebutuhan sistem informasi akademik nyata. Dalam aplikasi berbasis Java (misalnya JavaFX), procedure dapat dipanggil menggunakan JDBC dengan objek CallableStatement:

CallableStatement cs = conn.prepareCall("{CALL getTopMhsIpk(?)}");

cs.setInt(1, 5);  // Top 5

ResultSet rs = cs.executeQuery();

Integrasi ini memisahkan logika database dari logika aplikasi, menghasilkan arsitektur yang lebih bersih dan mudah diuji secara independen.


 

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pembahasan dan implementasi yang telah dilakukan, dapat ditarik kesimpulan sebagai berikut:
  1. Stored Procedure adalah fitur database yang powerful untuk membungkus logika SQL yang kompleks menjadi satu unit yang dapat dipanggil berulang kali dengan efisien dan aman.
  2. Penggunaan parameter (satu maupun banyak) pada Stored Procedure memberikan fleksibilitas tinggi sehingga satu procedure dapat melayani berbagai kebutuhan laporan dengan mengganti nilai argumen.
  3. Implementasi fitur lanjutan seperti TOP, ORDER BY, JOIN, COUNT, dan HAVING di dalam Stored Procedure memungkinkan penanganan logika bisnis akademik yang kompleks seperti perangkingan, statistik, dan analisis data.
  4. Penggunaan Stored Procedure terbukti meningkatkan efisiensi pengelolaan database AKADEMIK melalui pengurangan duplikasi kode, peningkatan keamanan, dan kemudahan pemeliharaan sistem.
  5. Konsistensi penamaan dan standar penulisan Stored Procedure sangat penting untuk memastikan integrasi yang lancar antara database dan lapisan aplikasi.

5.2 Saran

Beberapa saran untuk pengembangan lebih lanjut:

    Eksplorasi penggunaan parameter OUTPUT untuk mengembalikan nilai dari Stored Procedure, yang berguna untuk proses validasi dan feedback.
Pelajari penggunaan Transaction Management (BEGIN TRANSACTION, COMMIT, ROLLBACK) di dalam Stored Procedure untuk menjamin integritas data pada operasi DML.
Implementasikan Error Handling menggunakan TRY...CATCH di dalam Stored Procedure untuk menangani error secara graceful.
Pertimbangkan penggunaan Stored Procedure untuk operasi INSERT, UPDATE, dan DELETE (bukan hanya SELECT) sebagai lapisan abstraksi tambahan.


 

DAFTAR PUSTAKA

Connolly, T., & Begg, C. (2015). Database Systems: A Practical Approach to Design, Implementation, and Management (6th ed.). Pearson Education.

 

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

 

Politeknik Negeri Lampung. (2026). Modul Praktikum 9: T-SQL SELECT DML - Membuat dan Memanggil Stored Procedure MySQL pada Database AKADEMIK. Jurusan Teknologi Informasi.

 

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

 

Stephens, R., Plew, R., & Jones, A. D. (2011). Sams Teach Yourself SQL in One Hour a Day (5th ed.). Sams Publishing.




 

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