Dokumen ini membahas tentang stored procedure di MySQL. Ia menjelaskan pengertian dan struktur stored procedure beserta contoh-contoh penerapannya untuk menghitung jumlah data berdasarkan kota, menambahkan data ke tabel, dan latihan membuat stored procedure untuk aplikasi penjualan.
2. Procedure Tersimpan (Stored Procedure)
Pada prosedur tersimpan sama halnya dengan fungsi
tersimpan yang digunakan untuk meringkas perintah
mysql yang akan dijalankan, namun pada prosedur
tersimpan ini tidak harus mengembalikan nilai seperti
yang terjadi pada fungsi tersimpan
Structur :
CREATE PROCEDURE nama_prosedur ([variabel_parameter[…..]])
Begin
………….
isi_prosedure
………….
END
Variabel_parameter
[ IN | OUT | INOUT] nama_variabel tipe_variabel
3. Pada prosedur tersimpan, sebuah variabel parameter
dibedakan menjadi 3 pilihan :
1. IN yang berarti bahwa variabel parameter hanya dapat
digunakan untuk menerima input. Tipe IN merupakan
nilai default dari variabel parameter
2. OUT yang menandakan bahwa variabel parameter
hanya dapat digunakan untuk menyimpan hasil output
3. INOUT yang berarti bahwa variabel parameter dapat
menerima input dan juga dapat digunakan untuk
menyimpan hasil output
4. Contoh 1 penggunaan prosedur tersimpan :
1. Buatlah tabel dengan data sebagai berikut dan tentukan
tipedata serta panjang karakternya sendiri(nama tabel
karyawan)
nik nama alamat kota jeniskelam
in
101 Ari Jl. Pusri Jakarta Pria
102 Agus Jl. Kertapati Bandung Pria
103 Nia Jl. Plaju Bandung Wanita
104 Iman Jl. KM12 Bandung Pria
105 Wina Jl. Sako Jakarta Wanita
106 Feri Jl. Borang Bandung Pria
107 Yayat Jl. Bukit Jakarta Pria
5. 2. Buatlah prosedur sebagai berikut :
Mysql > DELIMETER //
Mysql > CREATE PROCEDURE prosedur1 (a char(35), OUT b INT)
-> BEGIN
-> SELECT COUNT(kota) INTO b FROM karyawan
-> WHERE kota = a;
-> END
-> //
Mysql> DELIMITER ;
3. Buatlah perintah untuk menjalankan fungsi tersebut diatas
Mysql> call prosedur1(‘jakarta’,@b);
Mysql> select @b;
Pada perintah diatas akan memanggil prosedur1 yang terlebih dahulu sudah
dibuat ketentuannya yaitu untuk menghitung karyawan yang tinggal di
jakarta.
6. Contoh 2 penggunaan prosedur tersimpan :
Mysql> DELIMITER //
Mysql> CREATE PROCEDURE prosedur2(a INT, b CHAR(60), c VARCHAR(100),
d CHAR(10), e CHAR(10))
-> BEGIN
-> INSERT INTO karyawan(nik,nama,alamat,kota,jeniskelamin)
-> VALUES (a,b,c,d,e);
-> END
-> //
Untuk menjalankan prosedur diatas lakukan pemanggilan sebagai berikut :
Mysql> CALL prosedur2(‘108’,’nama_anda’,’alamat_anda’,’kota’,’jenkel anda’);
Maka secara otomatis perintah call prosedur2 akan sama halnya dengan perintah
insert into dimana, data akan dimasukkan kedalam tabel karyawan
7. Latihan store procedure
Buat database penjualan sebagai berikut :
1. Buat tabel barang dengan struktur berikut
CREATE TABLE barang (kd_brg CHAR(5),
nm_brg CHAR(20),
stok int,
satuan CHAR(20),
harga int,
primary key (kd_brg));
Kemudian lakukan pengisian ke tabel dengan data berikut :
INSERT INTO barang VALUES('K0001','Buku ',100,'Pcs',5000);
INSERT INTO barang VALUES('K0002','Pesil 2B',200,'Pcs',3000);
INSERT INTO barang VALUES('K0003','Pengahpus',100,'Pcs',1000);
INSERT INTO barang VALUES('K0004','Kertas HVS',200,'Rem',30000);
INSERT INTO barang VALUES('K0005','Gunting kecil',10,'Pcs',6000);
8. 2. Buat table jual dengan struktur berikut :
CREATE TABLE jual (no_nota char(4),
tgl date,
kd_brg CHAR(5),
jumlah int);
3. Membuat procedure untuk simpan_jual untuk menggantikan perintah insert
into ke table jual
9. 4. Membuat procedure mengurangi stok pada table barang secara otomatis
5. Kemudian lakukan pengisian data ke table jual dengan memanggil
procedure simpan_jual
10. Buat trigger untuk memback up data secara otomatis ke tabel
jual_backup apabila kita melakukan insert data ke table jual
11. Buat trigger untuk melakukan penghapusan otomatis di
jual dan table jual_backup