Makalah
SESI 10
STORED PROCEDURE II
OLEH:
Bunga Putri Salsabilla
24781005
MI 4A
Dosen Pengampu : M. Reza Redo Islami, S. Kom., M.T.I.
D3 MANAJEMEN INFORMATIKA
JURUSAN TEKNOLOGI INFORMASI
POLITEKNIK NEGERI LAMPUNG
2026
1. Pendahuluan
Halo teman-teman! Selamat datang kembali di catatan eksplorasi teknologi saya. Perkenalkan, saya Bunga Putri Salsabilla, mahasiswi program studi Manajemen Informatika di Politeknik Negeri Lampung (Polinela). Dalam pengembangan perangkat lunak modern—terutama ketika kita membangun sistem backend menggunakan framework seperti Express.js atau Node.js—efisiensi komunikasi antara aplikasi dan basis data adalah hal yang mutlak.
Salah satu teknik terbaik untuk mengoptimalkan kinerja dan keamanan basis data adalah dengan memindahkan sebagian beban logika bisnis langsung ke dalam database engine itu sendiri. Di sinilah peran Stored Procedure menjadi sangat krusial. Pada catatan minggu ini, saya akan membagikan rangkuman pembelajaran praktikum basis data mengenai Stored Procedure, mulai dari manipulasi parameter, eksekusi operasi DML, hingga penerapan logika percabangan.
2. Konsep Dasar Stored Procedure dan Parameter Dinamis
Stored Procedure (prosedur tersimpan) pada dasarnya adalah sekumpulan perintah SQL yang dikompilasi dan disimpan di dalam database agar dapat dieksekusi berulang kali melalui satu panggilan fungsi yang sederhana.
Dalam praktikum ini, saya mengeksplorasi penggunaan parameter dinamis untuk membuat prosedur menjadi lebih interaktif:
Parameter IN: Berfungsi sebagai gerbang masuk data (input). Misalnya, memasukkan NPM mahasiswa sebagai kata kunci pencarian.
Parameter OUT / OUTPUT: Berfungsi sebagai wadah untuk menampung hasil pemrosesan dari dalam prosedur, untuk kemudian dilempar keluar. Hal ini sangat berguna ketika kita ingin mengekstrak beberapa nilai agregasi sekaligus dalam satu eksekusi, seperti menghitung nilai IPK tertinggi (
MAX) dan terendah (MIN) secara bersamaan.
3. Studi Kasus: Manajemen Sistem Informasi Akademik (SIAKAD)
Agar lebih mudah dipahami, mari kita terapkan konsep ini dalam studi kasus Sistem Informasi Akademik (SIAKAD) berskala kampus. Seorang administrator sering kali ditugaskan untuk mengelola data mahasiswa secara massal dan menyajikan laporan rekapitulasi.
a. Keamanan Manipulasi Data (DML)
Alih-alih membiarkan aplikasi mengeksekusi query UPDATE atau DELETE secara langsung (yang rentan terhadap serangan SQL Injection), kita dapat membungkus operasi DML ke dalam prosedur. Contohnya, saya merancang prosedur updateStatusMhs yang menerima parameter NPM dan status akademik baru. Prosedur ini mengeksekusi pembaruan data secara aman dan langsung memverifikasinya melalui perintah SELECT internal.
b. Laporan Dinamis dengan Kombinasi IF/ELSE, JOIN, dan GROUP BY
Studi kasus memuncak pada pembuatan fitur pelaporan dinamis. Saya membangun sebuah prosedur yang menerima parameter mode.
Jika mode = 1: Prosedur mengeksekusi logika
INNER JOINantara tabelmahasiswadanprodi, lalu menggunakanGROUP BYuntuk menghitung total jumlah mahasiswa di masing-masing program studi.Jika mode selain 1 (ELSE): Prosedur secara otomatis mengabaikan perhitungan rumit tersebut dan hanya menampilkan daftar nama mahasiswa secara standar. Melalui pendekatan ini, satu prosedur dapat melayani berbagai kebutuhan laporan hanya dengan mengubah parameter inputnya.
1. Bagian A: Persiapan Tabel dan Data Simulasi
Bagian B: Pembuatan Stored Procedure (Studi Kasus)
kode berikut ini berisi dua Stored Procedure yang mengimplementasikan logika aman DML serta pelaporan dinamis menggunakan kombinasi IF/ELSE, JOIN, dan GROUP BY.
3. Bagian C: Perintah Eksekusi Pengujian (Uji Coba)
4. Refleksi dan Kendala Praktikum
Selama menyelesaikan modul ini, saya menghadapi beberapa kendala teknis yang justru memberikan pelajaran berharga, khususnya terkait proses adaptasi sintaks antara simulator MySQL dan lingkungan SQL Server Management Studio (SSMS) berbasis T-SQL.
Error Struktur Blok Logika: Pada simulator MySQL, blok percabangan diakhiri dengan keyword
END IF;. Namun, saat kueri tersebut dipindahkan ke SSMS, sistem memunculkan error. Dari sini saya belajar bahwa T-SQL mewajibkan penggunaan struktur blokBEGIN...ENDuntuk membungkus perintah di dalam kondisiIFmaupunELSE.Ketidakcocokan Skema Tabel (Column Mismatch): Saat melakukan operasi
JOIN, saya sempat menghadapi error"no such column"karena mencoba memanggil kolom nama program studi yang ternyata strukturnya berbeda antara database lokal dan database simulator. Kendala ini melatih ketelitian saya. Solusinya, saya beralih menggunakan Foreign Keyidprodiyang sifatnya absolut dan pasti ada di kedua tabel untuk dijadikan landasan operasiGROUP BY.
5. Kesimpulan
Mempelajari Stored Procedure mengubah perspektif saya dalam melihat database. Basis data bukan sekadar tempat penyimpanan tabel yang pasif, melainkan sebuah mesin komputasi tangguh yang mampu menjalankan logika kondisional dan memproses manipulasi datanya sendiri. Penggunaan prosedur tersimpan tidak hanya membuat kode aplikasi menjadi lebih bersih dan modular, tetapi juga menekan beban lalu lintas jaringan dan meningkatkan integritas keamanan data. Pemahaman ini sangat vital bagi siapapun yang ingin terjun ke dunia rekayasa perangkat lunak maupun administrasi basis data.
Daftar Pustaka
Elmasri, R., & Navathe, S. B. (2015). Fundamentals of Database Systems (7th ed.). Pearson.
Microsoft. (2023). CREATE PROCEDURE (Transact-SQL). Microsoft Learn. Diakses pada Mei 2026, dari
https://learn.microsoft.com/en-us/sql/t-sql/statements/create-procedure-transact-sql Oracle. (n.d.). MySQL 8.0 Reference Manual: Stored Programs and Views. MySQL Documentation. Diakses pada Mei 2026, dari
https://dev.mysql.com/doc/refman/8.0/en/stored-programs-views.html

Tidak ada komentar:
Posting Komentar