Tuesday, October 20, 2026

Materi Lengkap Stored Procedure dalam Database MySQL

Dalam database, prosedur biasanya merujuk pada Stored Procedure, yaitu sekumpulan perintah SQL yang disimpan di dalam database dan dapat dijalankan kembali ketika dibutuhkan.

Stored Procedure sering digunakan dalam MySQL, MariaDB, phpMyAdmin, dan Laragon untuk menjalankan pekerjaan database secara otomatis dan terstruktur.

Contohnya, pada database toko kamu ingin menampilkan seluruh barang, menambahkan barang baru, atau mengurangi stok setelah transaksi. Daripada menulis perintah SQL dari awal setiap kali, kamu bisa membuat prosedur untuk menjalankan pekerjaan tersebut.

1. Pengertian prosedur dalam database

Stored Procedure adalah kumpulan satu atau lebih perintah SQL yang disimpan dengan sebuah nama di dalam database, sehingga bisa dipanggil dan dijalankan kembali.

Misalnya kamu membuat prosedur bernama tampilkan_barang. Ketika prosedur tersebut dipanggil, database akan menjalankan perintah yang sudah disimpan di dalamnya.

Gambaran sederhananya:

Pengguna / Aplikasi

Meminta pekerjaan dilakukan

CALL tampilkan_barang();

Memanggil prosedur

Stored Procedure

Menjalankan perintah SQL yang tersimpan

Hasil

Data ditampilkan atau diproses sesuai perintah

Perlu diingat, prosedur tidak selalu menghasilkan tampilan data. Prosedur juga bisa menambahkan data, mengubah stok, menghapus data, menghitung nilai, atau menjalankan beberapa operasi sekaligus.

2. Fungsi dan tujuan Stored Procedure

Stored Procedure memiliki beberapa kegunaan.

  1. Menghemat waktu: perintah yang sama tidak perlu ditulis berulang kali.

  2. Mempermudah pekerjaan: cukup memanggil prosedur dengan perintah CALL.

  3. Mengurangi kesalahan: logika SQL yang sudah dibuat bisa digunakan kembali.

  4. Mengelompokkan proses: beberapa perintah SQL dapat diletakkan dalam satu prosedur.

  5. Menerima parameter: prosedur bisa menerima nilai seperti ID barang, harga, jumlah stok, atau nama pelanggan.

  6. Membantu keamanan: pengguna dapat diberi izin menjalankan prosedur tertentu tanpa harus diberi akses langsung ke seluruh tabel, jika hak akses database diatur dengan tepat.

  7. Memudahkan pemeliharaan: logika yang dipakai oleh aplikasi dapat dikelola di dalam database.

Contoh penerapannya:

  • Sekolah: menampilkan nilai siswa berdasarkan NIS.

  • Perpustakaan: mencatat peminjaman buku.

  • Toko: menambahkan barang dan memperbarui stok.

  • Pemesanan tiket: menghitung total biaya pemesanan.

3. Perbedaan prosedur, query biasa, dan function

Ketiga istilah ini sering membingungkan pemula.

Aspek

Query biasa

Stored Procedure

Stored Function

Pengertian

Perintah SQL yang dijalankan langsung

Kumpulan perintah SQL bernama

Program database yang mengembalikan satu nilai

Cara menjalankan

Contoh: SELECT

Contoh: CALL

Contoh: SELECT nama_function(...)

Parameter

Bisa menggunakan nilai atau parameter aplikasi

Mendukung IN, OUT, INOUT

Memiliki parameter input

Hasil

Bergantung pada query

Bisa berupa hasil query, perubahan data, atau output parameter

Mengembalikan nilai melalui RETURN

Kegunaan

Operasi langsung

Menjalankan proses atau rangkaian perintah

Menghitung atau menghasilkan sebuah nilai

Contoh query biasa:

SELECT * FROM barang;

Contoh Stored Procedure:

CALL tampilkan_barang();

Contoh Stored Function:

SELECT hitung_total(5000, 3);

Function hitung_total pada contoh terakhir harus dibuat terlebih dahulu sebelum bisa dipanggil.

Cara mudah mengingat: procedure menjalankan suatu proses, sedangkan function dirancang untuk mengembalikan sebuah nilai yang dapat digunakan dalam ekspresi SQL.

4. Struktur dasar Stored Procedure

Dalam MySQL, Stored Procedure dibuat menggunakan perintah CREATE PROCEDURE.

Bentuk umumnya seperti ini:

DELIMITER //

CREATE PROCEDURE nama_prosedur()
BEGIN
    -- Perintah SQL ditulis di sini
END //

DELIMITER ;

Mari kita bahas satu per satu.

  • DELIMITER // mengubah tanda akhir perintah sementara dari ; menjadi //.

  • CREATE PROCEDURE digunakan untuk membuat prosedur baru.

  • nama_prosedur() adalah nama prosedur yang kamu buat.

  • BEGIN menandai awal kumpulan perintah.

  • Perintah SQL di dalamnya adalah pekerjaan yang akan dilakukan.

  • END menandai akhir kumpulan perintah.

  • // menandai akhir definisi prosedur.

  • DELIMITER ; mengembalikan tanda akhir perintah menjadi titik koma.

Mengapa perlu DELIMITER?

Karena isi prosedur biasanya mempunyai beberapa perintah SQL yang masing-masing diakhiri dengan ;. Kita perlu mengganti pembatas sementara agar MySQL mengetahui bahwa seluruh definisi prosedur belum selesai sampai mencapai //.

Catatan: DELIMITER adalah perintah pengatur pembatas yang digunakan oleh klien MySQL, termasuk tab SQL phpMyAdmin pada penggunaan yang mendukungnya. Itu bukan perintah SQL yang dijalankan sebagai bagian dari isi prosedur.

5. Contoh pertama: prosedur untuk menampilkan data barang

Kita gunakan database toko dengan tabel barang.

Misalnya struktur tabelnya:

CREATE DATABASE IF NOT EXISTS toko;
USE toko;

CREATE TABLE IF NOT EXISTS barang (
    id_barang INT AUTO_INCREMENT PRIMARY KEY,
    nama_barang VARCHAR(100) NOT NULL,
    harga DECIMAL(10,2) NOT NULL,
    stok INT NOT NULL DEFAULT 0
);

Tambahkan beberapa data untuk latihan:

INSERT INTO barang (nama_barang, harga, stok)
VALUES
    ('Buku', 5000, 10),
    ('Pensil', 2000, 20),
    ('Pulpen', 4000, 15);

Sekarang buat prosedurnya.

DELIMITER //

CREATE PROCEDURE tampilkan_barang()
BEGIN
    SELECT * FROM barang;
END //

DELIMITER ;

Cara menjalankannya

CALL tampilkan_barang();

Hasilnya berupa semua data yang ada di tabel barang.

Penjelasan:

  • CREATE PROCEDURE tampilkan_barang() membuat prosedur tanpa parameter.

  • BEGIN ... END menampung perintah yang dijalankan.

  • SELECT * FROM barang mengambil seluruh data.

  • CALL tampilkan_barang() menjalankan prosedur tersebut.

Kamu bisa memanggil prosedur yang sama berkali-kali tanpa perlu menulis ulang query SELECT.

6. Prosedur dengan parameter IN

Parameter adalah nilai yang dikirimkan ke prosedur ketika prosedur dipanggil.

Ada tiga jenis parameter pada Stored Procedure MySQL:

  • IN: menerima nilai dari pemanggil.

  • OUT: mengembalikan nilai melalui parameter keluaran.

  • INOUT: menerima nilai awal sekaligus mengembalikan nilai yang sudah diubah.

Kita bahas mulai dari IN.

Contoh: mencari barang berdasarkan ID

DELIMITER //

CREATE PROCEDURE cari_barang(
    IN p_id INT
)
BEGIN
    SELECT *
    FROM barang
    WHERE id_barang = p_id;
END //

DELIMITER ;

Menjalankan prosedur:

CALL cari_barang(1);

Hasilnya adalah data barang dengan ID 1, jika barang tersebut tersedia.

Penjelasan:

  • p_id adalah nama parameter.

  • IN berarti prosedur menerima nilai dari luar.

  • INT berarti parameter tersebut berupa bilangan bulat.

  • Angka 1 pada CALL cari_barang(1) menjadi nilai p_id.

  • WHERE id_barang = p_id mencari barang yang ID-nya sesuai dengan nilai parameter.

Kamu juga bisa memanggilnya dengan ID lain:

CALL cari_barang(2);
CALL cari_barang(3);

Tidak perlu membuat prosedur baru untuk setiap ID barang.

7. Prosedur untuk menambahkan data

Stored Procedure juga bisa digunakan untuk menjalankan perintah INSERT.

Contohnya, kita membuat prosedur untuk menambahkan barang baru.

DELIMITER //

CREATE PROCEDURE tambah_barang(
    IN p_nama VARCHAR(100),
    IN p_harga DECIMAL(10,2),
    IN p_stok INT
)
BEGIN
    INSERT INTO barang (nama_barang, harga, stok)
    VALUES (p_nama, p_harga, p_stok);
END //

DELIMITER ;

Cara menjalankannya:

CALL tambah_barang('Penggaris', 3000, 12);

Perintah tersebut menambahkan barang bernama Penggaris dengan harga 3.000 dan stok 12.

Untuk memastikan data berhasil masuk, jalankan:

SELECT * FROM barang;

Prosedur tersebut menggunakan tiga parameter:

Parameter

Tipe data

Kegunaan

p_nama

VARCHAR(100)

Nama barang

p_harga

DECIMAL(10,2)

Harga barang

p_stok

INT

Jumlah stok

Huruf p_ hanya kebiasaan penamaan untuk membedakan parameter dari nama kolom; bukan aturan wajib MySQL.

8. Prosedur untuk mengubah data

Misalnya kamu ingin mengubah harga barang tertentu tanpa menulis query UPDATE dari awal setiap kali.

Buat prosedur berikut:

DELIMITER //

CREATE PROCEDURE ubah_harga(
    IN p_id INT,
    IN p_harga_baru DECIMAL(10,2)
)
BEGIN
    UPDATE barang
    SET harga = p_harga_baru
    WHERE id_barang = p_id;
END //

DELIMITER ;

Cara menjalankannya:

CALL ubah_harga(1, 7500);

Artinya, harga barang dengan ID 1 diubah menjadi 7.500.

Perintah WHERE id_barang = p_id penting agar perubahan hanya mengenai barang yang dimaksud, bukan seluruh barang.

9. Prosedur untuk menghapus data

Contoh berikut menghapus barang berdasarkan ID.

DELIMITER //

CREATE PROCEDURE hapus_barang(
    IN p_id INT
)
BEGIN
    DELETE FROM barang
    WHERE id_barang = p_id;
END //

DELIMITER ;

Cara menjalankannya:

CALL hapus_barang(3);

Artinya, menghapus barang dengan ID 3.

Periksa kembali ID yang akan dihapus sebelum menjalankan prosedur. Jika ada relasi FOREIGN KEY, penghapusan juga bisa ditolak atau berdampak pada tabel terkait, tergantung aturan relasinya.

10. Prosedur menggunakan IF dan ELSE

Prosedur dapat memiliki logika atau percabangan, bukan hanya menjalankan satu query.

Misalnya, kita ingin memeriksa apakah stok barang cukup.

DELIMITER //

CREATE PROCEDURE cek_stok(
    IN p_id INT
)
BEGIN
    IF EXISTS (
        SELECT 1
        FROM barang
        WHERE id_barang = p_id
          AND stok > 0
    ) THEN
        SELECT 'Barang tersedia' AS pesan;
    ELSE
        SELECT 'Barang tidak ditemukan atau stok habis'
            AS pesan;
    END IF;
END //

DELIMITER ;

Cara menjalankannya:

CALL cek_stok(1);

Jika barang dengan ID 1 ditemukan dan stoknya lebih dari nol, hasilnya adalah Barang tersedia. Jika tidak, prosedur menampilkan pesan alternatif.

Struktur dasarnya:

IF kondisi THEN
    -- Dilakukan jika kondisi benar
ELSE
    -- Dilakukan jika kondisi salah
END IF;

Kamu juga dapat menggunakan ELSEIF untuk memeriksa beberapa kondisi secara berurutan.

Contoh:

DELIMITER //

CREATE PROCEDURE status_stok(
    IN p_id INT
)
BEGIN
    DECLARE v_stok INT DEFAULT NULL;

    SELECT stok INTO v_stok
    FROM barang
    WHERE id_barang = p_id
    LIMIT 1;

    IF v_stok IS NULL THEN
        SELECT 'Barang tidak ditemukan' AS pesan;
    ELSEIF v_stok = 0 THEN
        SELECT 'Stok habis' AS pesan;
    ELSEIF v_stok < 5 THEN
        SELECT 'Stok menipis' AS pesan;
    ELSE
        SELECT 'Stok aman' AS pesan;
    END IF;
END //

DELIMITER ;

DECLARE digunakan untuk membuat variabel lokal. Variabel v_stok menampung nilai stok yang ditemukan. Dalam contoh ini, NULL digunakan sebagai penanda jika ID tidak ditemukan, sehingga stok yang benar-benar bernilai nol tetap bisa dibedakan.

11. Prosedur menggunakan parameter OUT

Parameter OUT digunakan ketika prosedur perlu mengirimkan sebuah nilai kembali melalui parameter.

Misalnya kamu ingin menghitung jumlah seluruh barang yang tersimpan di tabel.

DELIMITER //

CREATE PROCEDURE hitung_barang(
    OUT p_jumlah INT
)
BEGIN
    SELECT COUNT(*)
    INTO p_jumlah
    FROM barang;
END //

DELIMITER ;

Cara menjalankannya:

CALL hitung_barang(@jumlah);

SELECT @jumlah AS total_barang;

Penjelasan:

  • OUT p_jumlah INT: menyediakan parameter untuk menampung hasil.

  • COUNT(*): menghitung jumlah baris.

  • INTO p_jumlah: memasukkan hasil perhitungan ke parameter OUT.

  • @jumlah: variabel sesi MySQL yang digunakan untuk menerima hasil.

  • SELECT @jumlah: menampilkan nilai hasil perhitungan.

Misalnya terdapat tiga baris dalam tabel, hasilnya adalah 3.

Contoh OUT untuk menghitung total stok

DELIMITER //

CREATE PROCEDURE hitung_total_stok(
    OUT p_total INT
)
BEGIN
    SELECT COALESCE(SUM(stok), 0)
    INTO p_total
    FROM barang;
END //

DELIMITER ;

Jalankan:

CALL hitung_total_stok(@total);

SELECT @total AS total_stok;

COALESCE(SUM(stok), 0) memastikan hasilnya nol jika tabel tidak memiliki data yang dapat dijumlahkan.

12. Prosedur menggunakan parameter INOUT

INOUT memungkinkan nilai masuk ke prosedur, diubah di dalam prosedur, kemudian dikembalikan melalui parameter yang sama.

Contoh sederhana: menambah angka sebanyak 10.

DELIMITER //

CREATE PROCEDURE tambah_sepuluh(
    INOUT p_angka INT
)
BEGIN
    SET p_angka = p_angka + 10;
END //

DELIMITER ;

Cara menjalankan:

SET @angka = 5;

CALL tambah_sepuluh(@angka);

SELECT @angka AS hasil;

Hasilnya adalah 15.

Alurnya:

  1. Nilai awal @angka adalah 5.

  2. Prosedur menerima nilai tersebut.

  3. Perintah SET menambahkan 10.

  4. Nilai baru dikembalikan melalui parameter INOUT.

  5. SELECT @angka menampilkan 15.

Perbedaan ketiga parameter:

Parameter

Menerima nilai awal

Mengirim hasil kembali

IN

Ya

Tidak melalui parameter tersebut

OUT

Tidak digunakan sebagai nilai masukan

Ya

INOUT

Ya

Ya

13. Prosedur menggunakan perulangan LOOP

Selain IF, prosedur juga dapat menjalankan perulangan untuk melakukan pekerjaan berulang.

Contoh berikut menghitung penjumlahan angka dari 1 sampai angka yang diberikan.

DELIMITER //

CREATE PROCEDURE jumlah_berurutan(
    IN p_batas INT,
    OUT p_hasil INT
)
BEGIN
    DECLARE v_i INT DEFAULT 1;

    SET p_hasil = 0;

    WHILE v_i <= p_batas DO
        SET p_hasil = p_hasil + v_i;
        SET v_i = v_i + 1;
    END WHILE;
END //

DELIMITER ;

Cara menjalankannya:

CALL jumlah_berurutan(5, @hasil);

SELECT @hasil AS hasil;

Hasilnya adalah 15, karena:

\(1 + 2 + 3 + 4 + 5 = 15\)

Penjelasan:

  • DECLARE v_i INT DEFAULT 1: membuat variabel penghitung mulai dari 1.

  • SET p_hasil = 0: mengatur hasil awal menjadi nol.

  • WHILE v_i <= p_batas DO: mengulang selama penghitung tidak melebihi batas.

  • SET p_hasil = p_hasil + v_i: menambahkan nilai penghitung ke hasil.

  • SET v_i = v_i + 1: menaikkan penghitung agar perulangan berhenti pada waktunya.

  • END WHILE: menandai akhir perulangan.

Perulangan harus memiliki kondisi berhenti yang benar. Jika kondisi tidak pernah menjadi salah, prosedur dapat terus berjalan hingga mencapai batas waktu atau batas eksekusi.

14. Prosedur dengan transaksi: START TRANSACTION, COMMIT, dan ROLLBACK

Stored Procedure juga bisa mengelompokkan beberapa perubahan data agar dijalankan sebagai satu transaksi.

Misalnya sebuah toko menjual barang. Prosesnya adalah mengurangi stok barang. Kita ingin memastikan stok cukup sebelum dikurangi.

Contoh prosedur:

DELIMITER //

CREATE PROCEDURE kurangi_stok(
    IN p_id INT,
    IN p_jumlah INT
)
BEGIN
    DECLARE v_stok INT DEFAULT NULL;

    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        ROLLBACK;
        RESIGNAL;
    END;

    IF p_jumlah <= 0 THEN
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Jumlah harus lebih dari nol';
    END IF;

    START TRANSACTION;

    SELECT stok INTO v_stok
    FROM barang
    WHERE id_barang = p_id
    FOR UPDATE;

    IF v_stok IS NULL THEN
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Barang tidak ditemukan';
    ELSEIF v_stok < p_jumlah THEN
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Stok tidak mencukupi';
    END IF;

    UPDATE barang
    SET stok = stok - p_jumlah
    WHERE id_barang = p_id;

    COMMIT;
END //

DELIMITER ;

Jalankan:

CALL kurangi_stok(1, 2);

Jika stok barang ID 1 mencukupi, stok akan dikurangi sebanyak dua.

Penjelasan beberapa bagian baru:

  • START TRANSACTION: memulai transaksi.

  • FOR UPDATE: mengunci baris yang dibaca agar perubahan stok dapat diperiksa dengan lebih aman saat ada transaksi bersamaan, dengan asumsi mesin tabel mendukungnya.

  • COMMIT: mengesahkan perubahan.

  • ROLLBACK: membatalkan perubahan transaksi jika terjadi kesalahan.

  • DECLARE EXIT HANDLER FOR SQLEXCEPTION: menangani kesalahan SQL yang terjadi di dalam blok prosedur.

  • SIGNAL SQLSTATE '45000': menghasilkan kesalahan yang ditentukan pengguna.

  • RESIGNAL: meneruskan kembali kesalahan setelah penanganan.

Contoh ini menggunakan tabel transaksional seperti InnoDB. Pada prosedur yang mengelola transaksi, pastikan juga aturan transaksi aplikasi sudah jelas, terutama jika prosedur dipanggil dari aplikasi yang sedang menjalankan transaksi sendiri.

15. Cara melihat, menghapus, dan mengubah Stored Procedure

Setelah prosedur dibuat, kamu bisa mengelolanya seperti objek database lainnya.

A. Melihat daftar prosedur

SHOW PROCEDURE STATUS
WHERE Db = 'toko';

Perintah tersebut menampilkan informasi prosedur pada database toko.

B. Melihat kode prosedur

SHOW CREATE PROCEDURE tampilkan_barang;

Perintah ini menampilkan definisi prosedur yang tersimpan.

C. Menghapus prosedur

DROP PROCEDURE tampilkan_barang;

Jika prosedur mungkin belum ada, gunakan:

DROP PROCEDURE IF EXISTS tampilkan_barang;

Perintah DROP PROCEDURE menghapus prosedurnya, bukan otomatis menghapus tabel atau data yang pernah diprosesnya.

D. Mengubah prosedur

Pada MySQL, definisi prosedur yang sudah ada umumnya diperbarui dengan cara menghapus prosedur lama lalu membuatnya kembali.

Contohnya:

DROP PROCEDURE IF EXISTS tampilkan_barang;

DELIMITER //

CREATE PROCEDURE tampilkan_barang()
BEGIN
    SELECT id_barang, nama_barang, harga, stok
    FROM barang;
END //

DELIMITER ;

Versi baru hanya menampilkan kolom yang ditentukan, bukan semua kolom.

Perhatikan bahwa menghapus dan membuat ulang prosedur dapat memengaruhi hak akses yang melekat pada prosedur tersebut. Pada database penting, periksa hak akses dan simpan definisi prosedur sebelum melakukan perubahan.

16. Cara membuat Stored Procedure di phpMyAdmin dan Laragon

Berikut langkah praktik yang bisa kamu ikuti di komputer.

New Laravel app on Laragon - CodeWithSusan.com

Langkah 1 — Jalankan Laragon

Buka Laragon dan tekan Start All untuk menjalankan layanan yang diperlukan.

phpMyAdmin - Quick Guide

Langkah 2 — Buka phpMyAdmin

Pilih database toko pada bagian kiri. Jika belum ada, buat database tersebut terlebih dahulu.

SQL Tutorial with Examples

Langkah 3 — Buka tab SQL

Salin kode pembuatan prosedur, tempelkan pada editor SQL, lalu klik Go/Kirim.

php - How to write a stored procedure in phpMyAdmin? - Stack Overflow

Langkah 4 — Periksa prosedur

Pada versi phpMyAdmin yang mendukungnya, prosedur dapat dilihat melalui bagian Routines/Rutinitas pada database.

Setelah berhasil dibuat, jalankan prosedur menggunakan CALL, misalnya:

CALL tampilkan_barang();

Jika muncul error pada DELIMITER: dukungan pengaturan delimiter bisa berbeda tergantung editor dan versi phpMyAdmin. Pastikan prosedur dijalankan melalui editor SQL yang mendukung pembuatan rutin. Jika perlu, gunakan klien MySQL atau MariaDB yang mendukung perintah DELIMITER.

17. Kelebihan dan kekurangan Stored Procedure

Kelebihan

Kekurangan

Bisa digunakan berulang kali

Perlu memahami sintaks khusus

Mengurangi penulisan query berulang

Kesalahan pada prosedur dapat memengaruhi aplikasi

Dapat mengelompokkan banyak perintah SQL

Perlu pengelolaan versi dan dokumentasi

Bisa menerima parameter

Debugging bisa lebih sulit dibandingkan query sederhana

Mendukung pengaturan hak akses

Tidak semua logika aplikasi cocok diletakkan di database

Stored Procedure paling bermanfaat ketika suatu proses database sering dilakukan dan memiliki aturan yang perlu dijalankan secara konsisten.

18. Latihan mandiri

Coba kerjakan latihan berikut menggunakan database toko dan tabel barang yang telah dibuat sebelumnya.

Pilih setiap soal untuk melihat contoh jawaban.

1. Buat prosedur bernama tampilkan_barang untuk menampilkan semua data barang.

CREATE PROCEDURE tampilkan_barang() BEGIN SELECT * FROM barang; END

Salin contoh kode
Sembunyikan jawaban

2. Buat prosedur cari_barang yang menerima parameter ID barang.

CREATE PROCEDURE cari_barang(IN p_id INT) BEGIN SELECT * FROM barang WHERE id_barang = p_id; END

Salin contoh kode
Sembunyikan jawaban

3. Buat prosedur tambah_barang dengan parameter nama, harga, dan stok.

CREATE PROCEDURE tambah_barang(IN p_nama VARCHAR(100), IN p_harga DECIMAL(10,2), IN p_stok INT) BEGIN INSERT INTO barang(nama_barang, harga, stok) VALUES(p_nama, p_harga, p_stok); END

Salin contoh kode
Sembunyikan jawaban

4. Buat prosedur untuk menghitung jumlah seluruh barang dengan parameter OUT.

CREATE PROCEDURE hitung_barang(OUT p_jumlah INT) BEGIN SELECT COUNT(*) INTO p_jumlah FROM barang; END

Salin contoh kode
Sembunyikan jawaban

Catatan: jawaban latihan di atas menunjukkan isi dasar prosedur. Untuk menjalankannya sebagai definisi lengkap melalui klien SQL, tambahkan pembatas DELIMITER seperti pada contoh sebelumnya dan pilih database yang benar.

Kesimpulan

Hal paling penting untuk diingat:

  • CREATE PROCEDURE untuk membuat prosedur.

  • CALL untuk menjalankan prosedur.

  • IN untuk menerima parameter.

  • OUT untuk mengembalikan hasil melalui parameter.

  • INOUT untuk menerima sekaligus mengembalikan nilai.

  • IF dan ELSE untuk percabangan.

  • WHILE dan LOOP untuk perulangan.

  • DROP PROCEDURE untuk menghapus prosedur.

  • SHOW CREATE PROCEDURE untuk melihat definisi prosedur.

Untuk belajar lebih lanjut, kamu bisa berlatih membuat satu prosedur setiap hari, mulai dari menampilkan data, mencari berdasarkan ID, menambahkan barang, sampai mengelola stok dengan transaksi. Mau saya bantu mengingatkan dan memberi latihan database secara rutin?

jelaskan tentang apa itu prosedur di dalam basis data lalu isinya jelaskan se detail detailnya seperti create delete,dan yang lain

Materi Lengkap Prosedur dalam Basis Data (Stored Procedure)

Prosedur dalam basis data merupakan salah satu materi penting dalam SQL, terutama jika kamu belajar MySQL, MariaDB, phpMyAdmin, dan Laragon.

Materi ini akan membahas pengertian prosedur, fungsi, struktur, jenis parameter, serta perintah CREATE, CALL, ALTER atau perubahan prosedur, DROP, dan contoh penggunaan lainnya secara bertahap.

1. Apa itu prosedur dalam basis data?

Prosedur dalam basis data atau Stored Procedure adalah kumpulan perintah SQL yang disimpan di dalam database dengan nama tertentu dan dapat dijalankan kembali ketika diperlukan.

Perintah di dalam prosedur bisa digunakan untuk menampilkan data, menambahkan data, mengubah data, menghapus data, melakukan perhitungan, dan menjalankan beberapa proses secara berurutan.

Contoh sederhananya, kamu mempunyai database toko yang menyimpan data barang. Setiap kali ingin menampilkan seluruh barang, kamu biasanya menulis:

SELECT * FROM barang;

Jika kamu membuat prosedur bernama tampilkan_barang, kamu cukup menjalankan:

CALL tampilkan_barang();

Database kemudian menjalankan perintah SQL yang sudah disimpan dalam prosedur tersebut.

2. Tujuan dan fungsi prosedur

Stored Procedure memiliki beberapa fungsi utama:

  1. Mempermudah pekerjaan: kamu tidak perlu menulis ulang query yang sama berkali-kali.

  2. Menghemat waktu: cukup memanggil prosedur menggunakan perintah CALL.

  3. Mengelompokkan perintah: beberapa perintah SQL dapat dijalankan dalam satu prosedur.

  4. Mengurangi kesalahan: proses yang sama bisa menggunakan aturan SQL yang sudah ditentukan.

  5. Menerima parameter: prosedur dapat menerima data seperti ID barang, harga, jumlah, dan nama pelanggan.

  6. Mendukung keamanan: hak akses dapat diatur agar pengguna tertentu hanya dapat menjalankan prosedur yang diizinkan.

  7. Mempermudah pengelolaan aplikasi: logika pemrosesan data tertentu dapat ditempatkan di database.

Contoh penerapan prosedur:

  • Sekolah: mencari nilai siswa berdasarkan NIS.

  • Perpustakaan: mencatat peminjaman buku.

  • Toko: menambahkan barang dan memperbarui stok.

  • Penjualan: menghitung total transaksi.

3. Perbedaan prosedur dan query biasa

Aspek

Query biasa

Stored Procedure

Pengertian

Perintah SQL yang langsung dijalankan

Kumpulan perintah SQL yang disimpan dengan nama

Cara menjalankan

Langsung menjalankan query

Menggunakan CALL

Bisa digunakan berulang kali

Bisa, tetapi query perlu dikirim lagi

Bisa dengan memanggil prosedur

Parameter

Bergantung pada query dan aplikasi

Mendukung IN, OUT, dan INOUT

Proses kompleks

Bisa dilakukan dengan beberapa query

Bisa menggabungkan beberapa perintah dan logika dalam satu prosedur

Contoh query biasa:

SELECT * FROM barang;

Contoh Stored Procedure:

CALL tampilkan_barang();

Keduanya dapat menampilkan data, tetapi Stored Procedure memungkinkan perintah disimpan dan digunakan kembali dengan nama yang sudah ditentukan.

4. Struktur dasar Stored Procedure

Untuk membuat prosedur di MySQL, kita menggunakan perintah CREATE PROCEDURE.

Bentuk dasarnya:

DELIMITER //

CREATE PROCEDURE nama_prosedur()
BEGIN
    -- Perintah SQL ditulis di sini
END //

DELIMITER ;

Penjelasan setiap bagian:

Bagian

Fungsi

DELIMITER //

Mengubah pembatas akhir perintah sementara menjadi //

CREATE PROCEDURE

Membuat prosedur baru

nama_prosedur()

Nama prosedur yang akan dibuat

BEGIN

Menandai awal isi prosedur

Perintah SQL

Perintah yang akan dijalankan

END

Menandai akhir isi prosedur

//

Menandai akhir definisi prosedur

DELIMITER ;

Mengembalikan pembatas menjadi titik koma

Mengapa menggunakan DELIMITER? Karena di dalam prosedur kita bisa mempunyai banyak perintah SQL yang diakhiri dengan titik koma. Pembatas sementara membantu klien MySQL mengetahui bahwa definisi prosedur belum selesai sampai ditemukan //.

Catatan: DELIMITER merupakan perintah pengatur pembatas pada klien MySQL, bukan bagian dari isi prosedur yang disimpan di database.

5. CREATE PROCEDURE — membuat prosedur

CREATE PROCEDURE digunakan untuk membuat prosedur baru di dalam database.

Mari kita gunakan contoh database toko.

Pertama, buat database dan tabelnya jika belum tersedia:

CREATE DATABASE IF NOT EXISTS toko;
USE toko;

CREATE TABLE IF NOT EXISTS barang (
    id_barang INT AUTO_INCREMENT PRIMARY KEY,
    nama_barang VARCHAR(100) NOT NULL,
    harga DECIMAL(10,2) NOT NULL,
    stok INT NOT NULL DEFAULT 0
);

Masukkan data contoh:

INSERT INTO barang (nama_barang, harga, stok)
VALUES
    ('Buku', 5000, 10),
    ('Pensil', 2000, 20),
    ('Pulpen', 4000, 15);

Sekarang buat prosedur untuk menampilkan data barang:

DELIMITER //

CREATE PROCEDURE tampilkan_barang()
BEGIN
    SELECT * FROM barang;
END //

DELIMITER ;

Prosedur tampilkan_barang sekarang tersimpan di database toko.

6. CALL — menjalankan prosedur

Setelah prosedur dibuat, kita menggunakan CALL untuk menjalankannya.

CALL tampilkan_barang();

Hasilnya adalah seluruh data yang tersimpan di tabel barang.

Perhatikan perbedaannya:

  • CREATE PROCEDURE membuat dan menyimpan prosedur.

  • CALL menjalankan prosedur yang sudah dibuat.

Jika prosedur belum dibuat, perintah CALL tidak akan berhasil.

7. SELECT di dalam prosedur — menampilkan data

Perintah SELECT tetap bisa digunakan di dalam Stored Procedure.

Contoh menampilkan barang dengan stok kurang dari lima:

DELIMITER //

CREATE PROCEDURE barang_stok_menipis()
BEGIN
    SELECT *
    FROM barang
    WHERE stok < 5;
END //

DELIMITER ;

Jalankan:

CALL barang_stok_menipis();

Prosedur akan menampilkan barang yang stoknya kurang dari lima.

Kamu juga bisa menggunakan ORDER BY di dalam prosedur:

DELIMITER //

CREATE PROCEDURE urutkan_harga()
BEGIN
    SELECT *
    FROM barang
    ORDER BY harga DESC;
END //

DELIMITER ;

Perintah tersebut menampilkan barang dari harga tertinggi ke terendah.

8. IN — prosedur dengan parameter masukan

Parameter adalah nilai yang diberikan ketika prosedur dijalankan.

IN digunakan untuk menerima nilai dari pemanggil prosedur.

Contoh prosedur untuk mencari barang berdasarkan ID:

DELIMITER //

CREATE PROCEDURE cari_barang(
    IN p_id INT
)
BEGIN
    SELECT *
    FROM barang
    WHERE id_barang = p_id;
END //

DELIMITER ;

Cara menjalankan:

CALL cari_barang(1);

Angka 1 dikirim ke parameter p_id. Prosedur lalu mencari barang dengan id_barang = 1.

Contoh lainnya:

CALL cari_barang(2);
CALL cari_barang(3);

Satu prosedur dapat digunakan untuk mencari banyak barang dengan ID yang berbeda.

9. INSERT di dalam prosedur — menambahkan data

Perintah INSERT digunakan untuk menambahkan data baru ke tabel.

Contoh membuat prosedur tambah barang:

DELIMITER //

CREATE PROCEDURE tambah_barang(
    IN p_nama VARCHAR(100),
    IN p_harga DECIMAL(10,2),
    IN p_stok INT
)
BEGIN
    INSERT INTO barang (nama_barang, harga, stok)
    VALUES (p_nama, p_harga, p_stok);
END //

DELIMITER ;

Cara menjalankan:

CALL tambah_barang('Penggaris', 3000, 12);

Data Penggaris akan ditambahkan dengan harga 3.000 dan stok 12.

Keterangan parameter:

  • p_nama: nama barang.

  • p_harga: harga barang.

  • p_stok: jumlah stok.

ID barang tidak perlu dimasukkan karena menggunakan AUTO_INCREMENT.

10. UPDATE di dalam prosedur — mengubah data

UPDATE digunakan untuk mengubah data yang sudah tersimpan.

Contoh prosedur untuk mengubah harga barang berdasarkan ID:

DELIMITER //

CREATE PROCEDURE ubah_harga(
    IN p_id INT,
    IN p_harga_baru DECIMAL(10,2)
)
BEGIN
    UPDATE barang
    SET harga = p_harga_baru
    WHERE id_barang = p_id;
END //

DELIMITER ;

Cara menjalankan:

CALL ubah_harga(1, 7500);

Artinya harga barang dengan ID 1 diubah menjadi 7.500.

Kamu juga dapat mengubah stok menggunakan prosedur:

DELIMITER //

CREATE PROCEDURE ubah_stok(
    IN p_id INT,
    IN p_stok_baru INT
)
BEGIN
    UPDATE barang
    SET stok = p_stok_baru
    WHERE id_barang = p_id;
END //

DELIMITER ;

Cara menjalankan:

CALL ubah_stok(1, 25);

Penting: penggunaan WHERE memastikan hanya baris yang sesuai dengan ID yang diubah. Tanpa kondisi tersebut, seluruh baris tabel dapat terkena perubahan.

11. DELETE di dalam prosedur — menghapus data

DELETE digunakan untuk menghapus baris data dari tabel.

Contoh prosedur menghapus barang berdasarkan ID:

DELIMITER //

CREATE PROCEDURE hapus_barang(
    IN p_id INT
)
BEGIN
    DELETE FROM barang
    WHERE id_barang = p_id;
END //

DELIMITER ;

Cara menjalankan:

CALL hapus_barang(2);

Barang dengan ID 2 akan dihapus dari tabel barang.

Perbedaan penting:

  • DELETE FROM barang WHERE id_barang = 2 menghapus baris tertentu.

  • DELETE FROM barang menghapus semua baris.

  • DROP PROCEDURE hapus_barang menghapus definisi prosedurnya, bukan menjalankan perintah penghapusan barang.

Sebaiknya periksa ID terlebih dahulu dengan SELECT sebelum menjalankan prosedur penghapusan.

12. IF, ELSEIF, dan ELSE — membuat kondisi

Di dalam prosedur, kamu bisa membuat keputusan berdasarkan kondisi tertentu.

Contoh prosedur untuk menentukan status stok:

DELIMITER //

CREATE PROCEDURE cek_status_stok(
    IN p_id INT
)
BEGIN
    DECLARE v_stok INT DEFAULT NULL;

    SELECT stok INTO v_stok
    FROM barang
    WHERE id_barang = p_id
    LIMIT 1;

    IF v_stok IS NULL THEN
        SELECT 'Barang tidak ditemukan' AS pesan;
    ELSEIF v_stok = 0 THEN
        SELECT 'Stok habis' AS pesan;
    ELSEIF v_stok < 5 THEN
        SELECT 'Stok menipis' AS pesan;
    ELSE
        SELECT 'Stok aman' AS pesan;
    END IF;
END //

DELIMITER ;

Jalankan:

CALL cek_status_stok(1);

Penjelasan:

  • DECLARE membuat variabel lokal.

  • SELECT ... INTO menyimpan hasil query ke dalam variabel.

  • IF memeriksa kondisi pertama.

  • ELSEIF memeriksa kondisi berikutnya.

  • ELSE dijalankan jika kondisi sebelumnya tidak terpenuhi.

  • END IF menutup struktur percabangan.

Dengan cara ini, satu prosedur bisa menangani beberapa kemungkinan hasil.

13. DELETE, DROP, dan TRUNCATE — apa bedanya?

Ketiga perintah ini sama-sama berkaitan dengan penghapusan, tetapi objek yang dihapus berbeda.

Perintah

Fungsi

Struktur tabel

DELETE

Menghapus satu atau beberapa baris

Tetap ada

TRUNCATE TABLE

Mengosongkan seluruh baris

Tetap ada

DROP TABLE

Menghapus tabel beserta datanya

Hilang

DROP PROCEDURE

Menghapus prosedur

Tabel tidak ikut terhapus

DROP DATABASE

Menghapus seluruh database dan objek di dalamnya

Hilang

Contoh:

DELETE FROM barang WHERE id_barang = 1;

Menghapus barang dengan ID 1.

TRUNCATE TABLE barang;

Menghapus semua baris barang.

DROP TABLE barang;

Menghapus tabel barang beserta struktur dan datanya.

DROP PROCEDURE IF EXISTS tampilkan_barang;

Menghapus prosedur tampilkan_barang.

Ingat: menghapus prosedur tidak sama dengan menghapus tabel. Prosedur hanyalah kumpulan perintah yang disimpan, sedangkan tabel menyimpan data.

14. OUT — mengembalikan hasil dari prosedur

Parameter OUT digunakan untuk mengirimkan hasil dari prosedur kepada pemanggilnya.

Contoh menghitung jumlah barang:

DELIMITER //

CREATE PROCEDURE hitung_barang(
    OUT p_jumlah INT
)
BEGIN
    SELECT COUNT(*)
    INTO p_jumlah
    FROM barang;
END //

DELIMITER ;

Cara menjalankan:

CALL hitung_barang(@jumlah);

SELECT @jumlah AS total_barang;

Penjelasan:

  • COUNT(*) menghitung jumlah baris.

  • INTO p_jumlah menyimpan hasil perhitungan.

  • OUT mengirimkan nilai melalui parameter keluaran.

  • @jumlah adalah variabel sesi untuk menerima hasil.

Contoh lain untuk menghitung total stok:

DELIMITER //

CREATE PROCEDURE hitung_total_stok(
    OUT p_total INT
)
BEGIN
    SELECT COALESCE(SUM(stok), 0)
    INTO p_total
    FROM barang;
END //

DELIMITER ;

Jalankan:

CALL hitung_total_stok(@total);
SELECT @total AS total_stok;

COALESCE memastikan hasilnya menjadi nol jika tidak ada nilai stok yang dapat dijumlahkan.

15. INOUT — menerima sekaligus mengembalikan nilai

INOUT digunakan ketika prosedur membutuhkan nilai awal, mengubahnya, lalu mengembalikan nilai yang baru.

Contoh:

DELIMITER //

CREATE PROCEDURE tambah_sepuluh(
    INOUT p_angka INT
)
BEGIN
    SET p_angka = p_angka + 10;
END //

DELIMITER ;

Cara menjalankan:

SET @angka = 5;

CALL tambah_sepuluh(@angka);

SELECT @angka AS hasil;

Hasilnya adalah 15.

Perbedaan parameter:

Jenis

Fungsi

IN

Menerima nilai masukan

OUT

Mengirimkan nilai keluaran

INOUT

Menerima nilai dan mengembalikan nilai yang telah diubah

16. WHILE dan LOOP — perulangan dalam prosedur

Prosedur dapat menjalankan suatu perintah berulang kali menggunakan struktur perulangan.

Contoh menggunakan WHILE untuk menjumlahkan angka dari 1 sampai batas tertentu:

DELIMITER //

CREATE PROCEDURE jumlah_berurutan(
    IN p_batas INT,
    OUT p_hasil INT
)
BEGIN
    DECLARE v_i INT DEFAULT 1;

    SET p_hasil = 0;

    WHILE v_i <= p_batas DO
        SET p_hasil = p_hasil + v_i;
        SET v_i = v_i + 1;
    END WHILE;
END //

DELIMITER ;

Jalankan:

CALL jumlah_berurutan(5, @hasil);
SELECT @hasil AS hasil;

Hasilnya adalah 15, yaitu penjumlahan angka 1 sampai 5.

Penjelasan:

  • DECLARE v_i INT DEFAULT 1 membuat variabel penghitung.

  • WHILE menjalankan perintah selama kondisi benar.

  • SET digunakan untuk mengubah nilai variabel.

  • END WHILE menandai akhir perulangan.

Perulangan harus memiliki kondisi berhenti yang benar agar tidak terus berjalan tanpa akhir.

17. ALTER PROCEDURE — mengubah prosedur

Dalam MySQL, ALTER PROCEDURE tersedia untuk mengubah karakteristik tertentu dari prosedur, seperti komentar atau karakteristik SQL. Namun, perintah ini bukan cara untuk mengganti isi utama prosedur.

Untuk mengubah isi prosedur, cara yang umum digunakan adalah menghapus prosedur lama kemudian membuatnya kembali.

Contoh:

DROP PROCEDURE IF EXISTS tampilkan_barang;

DELIMITER //

CREATE PROCEDURE tampilkan_barang()
BEGIN
    SELECT id_barang, nama_barang, harga, stok
    FROM barang
    ORDER BY nama_barang ASC;
END //

DELIMITER ;

Sekarang prosedur tampilkan_barang akan menampilkan barang berdasarkan urutan nama dari A sampai Z.

Perhatikan bahwa menghapus dan membuat ulang prosedur bisa memengaruhi hak akses yang sebelumnya diberikan pada prosedur tersebut.

18. SHOW PROCEDURE — melihat prosedur yang tersimpan

Kamu dapat melihat daftar prosedur yang ada di database menggunakan:

SHOW PROCEDURE STATUS
WHERE Db = 'toko';

Untuk melihat kode definisi suatu prosedur:

SHOW CREATE PROCEDURE tampilkan_barang;

Perintah ini berguna ketika kamu ingin memeriksa isi prosedur tanpa membuatnya ulang.

19. START TRANSACTION, COMMIT, dan ROLLBACK dalam prosedur

Ketiga perintah ini berkaitan dengan transaksi database.

  • START TRANSACTION: memulai transaksi.

  • COMMIT: mengesahkan perubahan.

  • ROLLBACK: membatalkan perubahan yang belum disahkan.

Misalnya kamu ingin mengurangi stok barang sebanyak dua unit.

DELIMITER //

CREATE PROCEDURE kurangi_stok(
    IN p_id INT,
    IN p_jumlah INT
)
BEGIN
    DECLARE v_stok INT DEFAULT NULL;

    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        ROLLBACK;
        RESIGNAL;
    END;

    IF p_jumlah <= 0 THEN
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Jumlah harus lebih dari nol';
    END IF;

    START TRANSACTION;

    SELECT stok INTO v_stok
    FROM barang
    WHERE id_barang = p_id
    FOR UPDATE;

    IF v_stok IS NULL THEN
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Barang tidak ditemukan';
    ELSEIF v_stok < p_jumlah THEN
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Stok tidak mencukupi';
    END IF;

    UPDATE barang
    SET stok = stok - p_jumlah
    WHERE id_barang = p_id;

    COMMIT;
END //

DELIMITER ;

Jalankan:

CALL kurangi_stok(1, 2);

Jika stok cukup, prosedur mengurangi stok dua unit. Jika barang tidak ditemukan atau stok tidak mencukupi, prosedur menghasilkan kesalahan dan perubahan transaksional dibatalkan.

Contoh ini mengasumsikan tabel menggunakan mesin transaksi seperti InnoDB. Prosedur yang mengelola transaksi juga perlu dirancang dengan memperhatikan apakah aplikasi pemanggil sudah mempunyai transaksi sendiri.

20. Perintah SQL lainnya yang bisa digunakan dalam prosedur

Selain perintah-perintah sebelumnya, ada beberapa perintah yang sering digunakan di dalam Stored Procedure.

Perintah

Fungsi

SET

Mengisi atau mengubah nilai variabel

DECLARE

Membuat variabel lokal

SELECT ... INTO

Menyimpan hasil query ke variabel

IF

Memeriksa kondisi

CASE

Memilih tindakan berdasarkan beberapa kondisi

WHILE

Mengulang perintah selama kondisi benar

REPEAT

Mengulang sampai kondisi terpenuhi

LOOP

Membuat perulangan

LEAVE

Keluar dari perulangan atau blok berlabel

ITERATE

Melanjutkan ke iterasi perulangan berikutnya

SIGNAL

Menghasilkan kesalahan

RESIGNAL

Meneruskan kesalahan yang sedang ditangani

START TRANSACTION

Memulai transaksi

COMMIT

Mengesahkan transaksi

ROLLBACK

Membatalkan transaksi yang belum disahkan

Tidak semua prosedur membutuhkan seluruh perintah tersebut. Prosedur sederhana mungkin hanya berisi SELECT, sedangkan prosedur yang mengelola transaksi dapat memerlukan kondisi, variabel, dan penanganan kesalahan.

21. Cara membuat Stored Procedure di phpMyAdmin dan Laragon

Ikuti langkah-langkah berikut untuk mempraktikkan materi ini.

New Laravel app on Laragon - CodeWithSusan.com

Langkah 1 — Jalankan Laragon

Buka Laragon, lalu klik Start All agar layanan database yang diperlukan berjalan.

Install Joomla 5 on a Virtual Server Using XAMPP

Langkah 2 — Buka phpMyAdmin

Masuk ke phpMyAdmin melalui menu Laragon atau alamat lokal yang sudah dikonfigurasi.

Wendi's Web - PHP: Crud - Create

Langkah 3 — Pilih database dan tab SQL

Pilih database toko, kemudian buka tab SQL.

Create and Execute Stored Procedure in PHPMyAdmin | by Nishit Maheta | MobioSolutions | Medium

Langkah 4 — Buat prosedur

Masukkan kode CREATE PROCEDURE, termasuk pengaturan DELIMITER jika editor mendukungnya, lalu jalankan.

CRUD

Langkah 5 — Jalankan dan periksa hasil

Jalankan CALL tampilkan_barang();, lalu periksa hasilnya. Pada versi phpMyAdmin yang mendukungnya, prosedur juga dapat dilihat di bagian Routines/Rutinitas.

Jika DELIMITER ditolak oleh editor yang kamu gunakan, coba fitur pembuatan rutin pada phpMyAdmin atau gunakan klien MySQL/MariaDB yang mendukung perintah tersebut.

22. Contoh proyek mini: prosedur untuk database toko

Berikut rangkuman prosedur yang bisa kamu gunakan dalam proyek database toko.

1. Menampilkan barang

Menampilkan seluruh data barang.

Salin

2. Mencari barang

Mencari barang dengan ID tertentu.

Salin

3. Menambah barang

Menambahkan barang baru.

Salin

4. Mengubah harga

Mengubah harga barang dengan ID 1.

Salin

5. Menghapus barang

Menghapus barang dengan ID 2.

Salin

Nama prosedur di atas harus dibuat terlebih dahulu menggunakan kode pada bagian sebelumnya. Tombol salin hanya menyalin perintah untuk menjalankannya.

23. Kelebihan dan kekurangan prosedur

Kelebihan

Kekurangan

Perintah dapat digunakan kembali

Memerlukan pemahaman sintaks prosedur

Mengurangi query berulang

Kesalahan logika dapat memengaruhi data

Mendukung parameter

Debugging bisa lebih sulit

Dapat mengelompokkan banyak proses

Memerlukan dokumentasi dan pemeliharaan

Mendukung pengaturan hak akses

Tidak semua logika aplikasi cocok ditempatkan di database

Kesimpulan

Hal yang paling penting untuk kamu pahami adalah:

  • CREATE PROCEDURE untuk membuat prosedur.

  • CALL untuk menjalankan prosedur.

  • SELECT untuk menampilkan data.

  • INSERT untuk menambahkan data.

  • UPDATE untuk mengubah data.

  • DELETE untuk menghapus baris.

  • IN, OUT, dan INOUT untuk mengatur parameter.

  • IF, ELSE, dan WHILE untuk logika dan perulangan.

  • START TRANSACTION, COMMIT, dan ROLLBACK untuk mengelola transaksi.

  • DROP PROCEDURE untuk menghapus prosedur.

  • SHOW CREATE PROCEDURE untuk melihat definisi prosedur.

Akun guardian tales

contoh prosedur dan 5 perintah utama di phpmyadmin

1.MEMBUAT PROSEDUR 2.CALL PROSEDUR A.LIMA PERINTAH UTAMA PROSEDUR 1.SELECT PROSEDUR 2.INSERT PROSEDUR 3.UPDATE PROSEDUR 4.DELETE PROSEDUR 5....

- Copyright © eryx.blog.com - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -