MAKALAH
Stored Procedure II
Pemrograman
SQL 2
Disusun oleh:
|
Nama |
: Reza Fahmi Alkhamdani |
|
NPM |
: 24781053 |
|
Kelas |
: Manajemen Informatika 4B |
JURUSAN TEKNOLOGI
INFORMASI
PROGRAM
STUDI MANAJEMEN INFORMATIKA
POLITEKNIK NEGERI LAMPUNG
2026
KATA PENGANTAR
Puji syukur penulis panjatkan ke hadirat Tuhan Yang
Maha Esa atas limpahan rahmat dan karunia-Nya sehingga makalah ini dapat
diselesaikan dengan baik. Makalah ini disusun sebagai bentuk dokumentasi dan
refleksi pembelajaran dari kegiatan Praktikum Pemrograman SQL 2, Sesi ke-10
yang membahas topik Stored Procedure II.
Dalam makalah ini, penulis memaparkan konsep-konsep
utama yang dipelajari selama praktikum, meliputi penggunaan parameter INPUT dan
OUTPUT, percabangan IF/ELSE, perulangan WHILE, operasi DML (INSERT, UPDATE,
DELETE), serta pola-pola terbaik dalam penulisan stored procedure pada SQL
Server Management Studio (SSMS). Penulis juga menjelaskan perbedaan sintaks
antara MySQL dan SQL Server yang menjadi salah satu tantangan utama dalam
praktikum ini.
Penulis menyadari bahwa makalah ini masih jauh dari
sempurna. Oleh karena itu, kritik dan saran yang membangun sangat diharapkan
demi perbaikan di masa mendatang. Semoga makalah ini dapat bermanfaat bagi
pembaca.
Bandar
Lampung, 18 Mei 2026
Penulis,
Reza
Fahmi Alkhamdani
BAB I PENDAHULUAN
1.1 Latar Belakang
Basis data merupakan komponen fundamental dalam
pengembangan sistem informasi. Dalam pengelolaan data yang kompleks, dibutuhkan
mekanisme yang efisien untuk menjalankan serangkaian operasi SQL secara
terstruktur dan dapat digunakan kembali. Stored procedure hadir sebagai solusi
atas kebutuhan tersebut, yakni sekumpulan perintah SQL yang tersimpan di server
dan dapat dipanggil kapan saja dengan parameter tertentu.
SQL Server Management Studio (SSMS) sebagai salah satu
Relational Database Management System (RDBMS) terkemuka memiliki implementasi
stored procedure yang kaya fitur, mencakup parameter INPUT dan OUTPUT,
percabangan IF/ELSE, perulangan WHILE, serta operasi Data Manipulation Language
(DML) seperti INSERT, UPDATE, dan DELETE. Pemahaman mendalam terhadap
fitur-fitur ini sangat penting bagi mahasiswa Manajemen Informatika dalam
mempersiapkan diri menghadapi kebutuhan industri.
Praktikum Pemrograman SQL 2 Sesi ke-10 dirancang untuk
memberikan pengalaman langsung dalam membangun stored procedure tingkat lanjut
pada SQL Server. Melalui praktikum ini, mahasiswa belajar mengadaptasi sintaks
dari MySQL ke SQL Server, yang memiliki perbedaan signifikan dalam penulisan
parameter, pemanggilan procedure, dan penanganan output. Makalah ini disusun
sebagai dokumentasi menyeluruh atas proses pembelajaran tersebut.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah dalam makalah ini adalah sebagai berikut:
1.
Apa yang dimaksud dengan stored procedure pada SQL
Server dan apa saja komponen utamanya?
2.
Bagaimana cara membuat dan menggunakan parameter
OUTPUT, percabangan IF/ELSE, serta perulangan WHILE dalam stored procedure SQL
Server?
3.
Apa perbedaan sintaks stored procedure antara MySQL dan
SQL Server, dan bagaimana cara mengatasinya?
4.
Bagaimana implementasi stored procedure untuk operasi
DML pada database AKADEMIK10?
1.3 Tujuan Penulisan
Tujuan penulisan makalah ini adalah:
1.
Memahami konsep dan komponen stored procedure pada SQL
Server secara menyeluruh.
2.
Memahami penggunaan parameter OUTPUT, percabangan
IF/ELSE, dan perulangan WHILE dalam procedure.
3.
Menjelaskan perbedaan sintaks SQL Server dan MySQL
serta cara penyesuaiannya.
4.
Mendokumentasikan implementasi stored procedure pada
database AKADEMIK10 beserta hasil dan analisisnya.
BAB II LANDASAN TEORI
2.1 Stored Procedure pada SQL Server
Stored procedure adalah sekumpulan pernyataan SQL yang
telah dikompilasi dan disimpan dalam database server. Berbeda dengan query
biasa yang dieksekusi satu per satu dari sisi klien, stored procedure tersimpan
permanen di server sehingga dapat dipanggil kapan saja menggunakan perintah
EXEC. Keunggulan stored procedure antara lain meningkatkan keamanan data
(karena logika bisnis berada di server), mengurangi lalu lintas jaringan, dan
mempercepat eksekusi karena telah dikompilasi sebelumnya.
Pada SQL Server, stored procedure dibuat menggunakan
pernyataan CREATE PROCEDURE dan dapat dihapus dengan DROP PROCEDURE. Parameter
ditulis menggunakan awalan @ dan tipe data parameter harus dideklarasikan
secara eksplisit. Untuk memisahkan batch query, SQL Server menggunakan kata
kunci GO.
2.2 Parameter OUTPUT
Selain parameter INPUT biasa, SQL Server mendukung
parameter OUTPUT yang memungkinkan procedure mengembalikan nilai kepada
pemanggil. Parameter OUTPUT dideklarasikan dengan menambahkan kata kunci OUTPUT
setelah tipe datanya. Saat memanggil procedure, pemanggil juga harus
mencantumkan kata kunci OUTPUT pada argumen yang bersangkutan.
2.3 Percabangan IF/ELSE
Percabangan IF/ELSE dalam stored procedure
memungkinkan procedure berperilaku secara berbeda tergantung pada kondisi
tertentu, baik berdasarkan nilai parameter maupun hasil query. Pada SQL Server,
sintaks IF/ELSE berbeda dari MySQL yang menggunakan kata kunci ELSEIF; di SQL
Server digunakan ELSE IF (dua kata terpisah).
2.4 Perulangan WHILE
SQL Server mendukung perulangan menggunakan WHILE,
meskipun dalam praktik nyata penggunaannya relatif jarang karena sebagian besar
operasi iteratif dapat digantikan dengan operasi berbasis himpunan (set-based
operations) yang lebih efisien. WHILE berguna ketika terdapat kebutuhan iterasi
eksplisit, seperti pembangkitan data dummy atau proses berulang yang tidak
dapat dilakukan dengan query set tunggal.
2.5 Operasi DML dalam Procedure
Stored procedure sering digunakan untuk membungkus operasi Data Manipulation Language (DML), yaitu INSERT, UPDATE, dan DELETE.
2.6 Pola DML+Verifikasi dan Praktik Baik
Pola DML+Verifikasi adalah pendekatan di mana setiap operasi DML (INSERT, UPDATE, atau DELETE) diikuti oleh pernyataan SELECT untuk memverifikasi bahwa perubahan data telah tersimpan dengan benar. Pola ini sangat berguna selama pengembangan dan pengujian procedure.
BAB III PEMBAHASAN
3.1 Alat dan Bahan
Praktikum ini dilaksanakan menggunakan perangkat keras
berupa laptop dengan sistem operasi Windows. Perangkat lunak yang digunakan
adalah SQL Server Management Studio (SSMS) sebagai lingkungan pengembangan dan
eksekusi query SQL Server. Selain itu, digunakan pula panduan materi praktikum
Stored Procedure II yang memuat spesifikasi tugas dan variasi soal.
3.2 Prosedur Kerja
Langkah pertama dalam praktikum ini adalah membuka
aplikasi SQL Server Management Studio (SSMS), kemudian membuat database baru
dengan nama AKADEMIK10. Setelah database dibuat, praktikan membuat beberapa
tabel yang saling berelasi, yaitu tabel jenjang, prodi, pendidikan,
status_akademik, mahasiswa, dan dosen. Setiap tabel dibuat sesuai dengan
struktur atribut, primary key, dan foreign key yang telah ditentukan.
Setelah struktur tabel selesai, praktikan mengisi data
awal menggunakan perintah INSERT INTO agar setiap tabel memiliki data yang
dapat digunakan untuk proses pengujian. Selanjutnya, praktikan membuat stored
procedure untuk menjalankan berbagai operasi: menampilkan data mahasiswa
berdasarkan prodi dan status, menampilkan data dosen berdasarkan gelar dan
pendidikan, menghitung jumlah mahasiswa, menghitung rata-rata IPK, serta
menambahkan dan memperbarui data mahasiswa.
Dalam proses pembuatan procedure, sintaks disesuaikan dengan aturan SQL Server, yaitu menggunakan parameter bertanda @, perintah EXEC untuk menjalankan procedure, serta GO untuk memisahkan batch query. Setelah procedure dibuat, praktikan
menjalankan setiap procedure dan mengamati hasil
output yang muncul untuk memastikan bahwa query berjalan sesuai dengan tujuan
yang diharapkan.
3.3 Implementasi Stored Procedure
Praktikum ini mencakup tujuh level tugas (L1 s.d. L7)
yang masing-masing memiliki tiga hingga empat sub-tugas. Setiap level
merepresentasikan tingkat kesulitan yang meningkat:
•
Level 1 — Multi-Parameter IN: pembuatan procedure
dengan filter dua hingga tiga kondisi parameter.
•
Level 2 — Procedure + JOIN: penggunaan JOIN untuk
menampilkan data dari dua atau tiga tabel secara sekaligus.
•
Level 3 — GROUP BY & HAVING: penerapan fungsi
agregat COUNT dan AVG dalam procedure dengan pengelompokan data.
•
Level 4 — IF/ELSE: implementasi percabangan kondisional
di dalam procedure.
•
Level 5 — Parameter OUT: penggunaan parameter OUTPUT
untuk mengembalikan nilai COUNT, MAX, MIN, dan nilai ganda.
•
Level 6 — DML (INSERT/UPDATE/DELETE): operasi
manipulasi data melalui stored procedure.
•
Level 7 — Tugas Mandiri: kombinasi bebas berbagai
konsep yang telah dipelajari.
3.4 Hasil Praktikum
Berikut adalah rekapitulasi hasil pengerjaan seluruh
tugas pada sesi praktikum ini:
|
Task ID |
Level |
Judul |
Status |
Percobaan |
Skor |
|
L1-T1 |
Level 1 -
Multi-Parameter IN |
Filter Mahasiswa
2 Kondisi |
Lulus |
29 |
100 |
|
L1-T2 |
Level 1 -
Multi-Parameter IN |
Filter Dosen 2
Kondisi |
Lulus |
5 |
95 |
|
L1-T3 |
Level 1 -
Multi-Parameter IN |
Filter Mahasiswa
3 Kondisi |
Lulus |
2 |
95 |
|
L2-T1 |
Level 2 -
Procedure + JOIN |
Mahasiswa JOIN
Prodi |
Lulus |
7 |
95 |
|
L2-T2 |
Level 2 -
Procedure + JOIN |
JOIN 3 Tabel
(Mhs+Prodi+Jenjang) |
Lulus |
4 |
95 |
|
L2-T3 |
Level 2 -
Procedure + JOIN |
Dosen JOIN
Pendidikan |
Lulus |
1 |
95 |
|
L3-T1 |
Level 3 - GROUP
BY & HAVING |
Hitung Mahasiswa
per Kelompok |
Lulus |
1 |
95 |
|
L3-T2 |
Level 3 - GROUP
BY & HAVING |
Statistik IPK
per Kelompok |
Lulus |
12 |
95 |
|
L3-T3 |
Level 3 - GROUP
BY & HAVING |
GROUP BY +
HAVING |
Lulus |
1 |
95 |
|
L4-T1 |
Level 4 -
IF/ELSE |
IF Tunggal |
Lulus |
2 |
95 |
|
L4-T2 |
Level 4 -
IF/ELSE |
IF / ELSEIF |
Lulus |
1 |
95 |
|
L4-T3 |
Level 4 -
IF/ELSE |
IF dengan Dua
Parameter |
Lulus |
1 |
90 |
|
L5-T1 |
Level 5 -
Parameter OUT |
Parameter OUT
(COUNT) |
Lulus |
1 |
95 |
|
L5-T2 |
Level 5 -
Parameter OUT |
Parameter OUT
(MAX/MIN) |
Lulus |
11 |
95 |
|
L5-T3 |
Level 5 -
Parameter OUT |
OUT Ganda (2
nilai) |
Lulus |
1 |
95 |
|
L6-T1 |
Level 6 - DML |
INSERT via
Procedure |
Lulus |
2 |
95 |
|
L6-T2 |
Level 6 - DML |
UPDATE via
Procedure |
Lulus |
1 |
95 |
|
L6-T3 |
Level 6 - DML |
DELETE via
Procedure |
Lulus |
1 |
95 |
|
L7-T1 |
Level 7 - Tugas
Mandiri |
Tugas Mandiri
(IF/ELSE) |
Belum Lulus |
9 |
0 |
|
L7-T2 |
Level 7 - Tugas
Mandiri |
Tugas Mandiri
(Parameter OUT) |
Lulus |
3 |
100 |
|
L7-T3 |
Level 7 - Tugas
Mandiri |
Tugas Mandiri
(DML) |
Lulus |
2 |
85 |
|
L7-T4 |
Level 7 - Tugas
Mandiri |
Tugas Mandiri
(Kombinasi Bebas) |
Belum Lulus |
12 |
0 |
Skor keseluruhan yang diperoleh adalah 86 dari 100.
Dari 22 tugas yang diberikan, 20 tugas berhasil diselesaikan dengan status
lulus, sementara 2 tugas (L7-T1 dan L7-T4) belum berhasil diselesaikan dan
mendapat skor 0.
3.5 Analisis
Berdasarkan hasil praktikum, penggunaan stored
procedure pada SQL Server terbukti dapat membantu proses pengolahan data
menjadi lebih terstruktur dan mudah digunakan kembali. Procedure yang dibuat
mampu menjalankan berbagai operasi secara fleksibel karena nilai input dapat
disesuaikan saat procedure dijalankan menggunakan perintah EXEC dengan
parameter yang bervariasi.
Salah satu tantangan utama yang dihadapi adalah perbedaan sintaks antara MySQL dan SQL Server. Penulisan awal banyak menggunakan format MySQL, seperti penggunaan
dan SQL Server. Penulisan awal banyak menggunakan
format MySQL, seperti penggunaan IN dan OUT untuk deklarasi parameter, CALL
untuk pemanggilan procedure, THEN dan ELSEIF untuk percabangan, serta SELECT
... INTO untuk menetapkan nilai variabel. Setelah dipelajari lebih lanjut,
sintaks tersebut disesuaikan: parameter menggunakan tanda @, pemanggilan
procedure menggunakan EXEC, output parameter menggunakan kata kunci OUTPUT, dan
pemisahan batch menggunakan GO. Hal ini menegaskan bahwa setiap DBMS memiliki
dialek SQL yang berbeda sehingga adaptasi sangat diperlukan.
Penggunaan relasi antar tabel melalui primary key dan foreign key juga terbukti meningkatkan integritas dan konsistensi data. Procedure yang melibatkan JOIN mampu menampilkan informasi yang lebih kaya, misalnya data mahasiswa beserta nama program studi dan jenjangnya, atau data dosen beserta pendidikan terakhirnya. Hal ini membuktikan pentingnya perancangan basis data relasional yang baik sebagai fondasi pembuatan stored procedure yang efektif.
BAB IV PENUTUP
4.1 Kesimpulan
Berdasarkan pembahasan dan hasil praktikum yang telah
dilakukan, dapat ditarik beberapa kesimpulan sebagai berikut. Pertama, stored
procedure pada SQL Server berfungsi untuk menyimpan sekumpulan perintah SQL
agar dapat dijalankan kembali dengan lebih mudah dan efisien, menjadikan proses
pengolahan data pada database AKADEMIK10 lebih terarah dan terstruktur. Kedua,
fitur-fitur lanjutan seperti parameter OUTPUT, percabangan IF/ELSE, perulangan
WHILE, dan operasi DML dapat diimplementasikan dengan baik di dalam stored
procedure untuk menghasilkan logika bisnis yang kompleks namun terpusat di
server.
Ketiga, terdapat perbedaan sintaks yang signifikan
antara SQL Server dan MySQL, terutama pada penulisan parameter (@ di SQL Server
vs. IN/OUT di MySQL), pemanggilan procedure (EXEC vs. CALL), percabangan (ELSE
IF vs. ELSEIF), dan pemisahan batch (GO). Pemahaman atas perbedaan ini sangat
penting untuk menghindari kesalahan sintaks dan memastikan procedure dapat
berjalan dengan benar. Keempat, praktikum ini membuktikan bahwa perancangan
basis data relasional yang baik, dengan pemanfaatan primary key, foreign key,
dan JOIN, merupakan landasan yang kuat bagi pengembangan stored procedure yang
efektif dan informatif.
4.2 Saran
Berdasarkan pengalaman selama praktikum, penulis menyarankan beberapa hal untuk perbaikan ke depan. Pertama, sebaiknya mahasiswa mempersiapkan diri dengan mempelajari perbedaan sintaks antara MySQL dan SQL Server sebelum memulai praktikum agar proses debugging dapat diminimalkan. Kedua, disarankan untuk selalu menerapkan pola TRY/CATCH dan validasi parameter dalam setiap stored procedure yang dibuat guna meningkatkan ketangguhan dan keamanan procedure. Ketiga, untuk tugas mandiri yang belum berhasil diselesaikan (L7-T1 dan L7-T4), penulis perlu memperdalam pemahaman tentang kombinasi IF/ELSE dengan kondisi yang lebih kompleks dan kombinasi teknik yang lebih bervariasi. Keempat, praktikum serupa sebaiknya dilengkapi dengan studi kasus nyata dari industri agar mahasiswa dapat melihat relevansi langsung antara materi yang dipelajari dengan kebutuhan dunia kerja.
Komentar
Posting Komentar