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

Postingan populer dari blog ini