Pertemuan 4 — Stored Procedure

Tujuan Pembelajaran

Setelah mengikuti pertemuan ini, mahasiswa diharapkan mampu:

  1. Memahami konsep dasar Stored Procedure di SQL Server.
  2. Membuat, mengeksekusi, dan mengelola stored procedure.
  3. Menggunakan parameter pada stored procedure.
  4. Menggunakan batch query dalam prosedur.
  5. Menghapus (drop) stored procedure.

1. Pengantar Stored Procedure

Stored Procedure adalah sekumpulan perintah SQL yang disimpan di dalam database dan dapat dijalankan berulang kali.
Tujuannya adalah untuk mengurangi pengulangan query dan meningkatkan keamanan serta performa.

Kelebihan Stored Procedure

  • Meningkatkan performa karena query dikompilasi sekali.
  • Memudahkan pemeliharaan kode SQL.
  • Dapat mengurangi traffic antara aplikasi dan server.
  • Menyediakan keamanan dengan membatasi akses langsung ke tabel.

2. Membuat Stored Procedure

Contoh 1: Membuat Prosedur Sederhana

1
2
3
4
5
CREATE PROCEDURE TampilSemuaBuku
AS
BEGIN
SELECT * FROM Buku;
END;

Menjalankan Stored Procedure

1
EXEC TampilSemuaBuku;

3. Stored Procedure dengan Parameter

Parameter memungkinkan prosedur menerima input agar hasilnya lebih fleksibel.

Contoh 2: Parameter Input

1
2
3
4
5
6
CREATE PROCEDURE CariBuku
@judul NVARCHAR(100)
AS
BEGIN
SELECT * FROM Buku WHERE Judul LIKE '%' + @judul + '%';
END;

Menjalankan dengan Parameter

1
EXEC CariBuku @judul = 'Pemrograman';

Contoh 3: Multiple Parameters

1
2
3
4
5
6
7
8
CREATE PROCEDURE CariBukuBerdasarkanPenulis
@penulis NVARCHAR(100),
@tahun INT
AS
BEGIN
SELECT * FROM Buku
WHERE Penulis = @penulis AND TahunTerbit = @tahun;
END;

4. Stored Procedure dengan Batch

Batch memungkinkan beberapa perintah dijalankan dalam satu blok eksekusi.

1
2
3
4
5
6
7
8
9
10
11
CREATE PROCEDURE TambahDanTampilBuku
@judul NVARCHAR(100),
@penulis NVARCHAR(100),
@tahun INT
AS
BEGIN
INSERT INTO Buku (Judul, Penulis, TahunTerbit)
VALUES (@judul, @penulis, @tahun);

SELECT * FROM Buku WHERE Judul = @judul;
END;

5. Mengelola Stored Procedure

Melihat Semua Stored Procedure

1
SELECT * FROM sys.procedures;

Mengubah Stored Procedure

1
2
3
4
5
ALTER PROCEDURE TampilSemuaBuku
AS
BEGIN
SELECT Judul, Penulis FROM Buku;
END;

Menghapus Stored Procedure

1
DROP PROCEDURE TampilSemuaBuku;

6. Latihan

💡 Durasi latihan: ±2 jam

Latihan 1 — Prosedur Pencarian

Buat prosedur CariAnggota untuk menampilkan data anggota berdasarkan nama depan.

Latihan 2 — Prosedur Tambah Data

Buat prosedur TambahAnggota yang menambahkan data anggota baru dan menampilkan seluruh daftar anggota setelah penambahan.

Latihan 3 — Prosedur Update dan Delete

Buat dua prosedur berikut:

  1. UbahJudulBuku untuk memperbarui judul berdasarkan ID Buku.
  2. HapusBuku untuk menghapus data buku berdasarkan ID Buku.

Latihan 4 — Batch dan Parameter Ganda

Buat prosedur TambahTransaksi yang menerima 3 parameter (@idAnggota, @idBuku, @tanggalPinjam) dan menambahkan data ke tabel Transaksi, lalu menampilkan seluruh transaksi anggota tersebut.


7. Tugas Mandiri

Buat 3 Stored Procedure tambahan dengan skenario bebas (misalnya laporan, filter tanggal, statistik jumlah pinjaman, dll), lalu jelaskan fungsinya dalam file .sql terpisah.