LAPORAN AWAL PRAKTIKUM
·
Apa yang dimaksud dengan “Stored Procedure”?
Stored procedure adalah salah satu objek routine yang tersimpan
pada database MySQL dan dapat digunakan untuk menggantikan berbagai kumpulan
perintah yang sering kita gunakan, seperti misalkan sejumlah row ke table lain
dengan filter tertentu.
Stored procedure
sangat berguna ketika kita tidak ingin user mengakses table secara langsung,
atau dengan kata lain membatasi hak akses user dan mencatat operasi yang
dilakukan. Dengan demikian resiko kebocoran dan kerusakan data dapat lebih
diminalisir.
MySQL pada versi 5 telah mengenalkan fitur store procedure.
Store procedure sendiri adalah sebuah procedure (pernyataan program yang berisi
logika sql) yang tersimpan dalam database server.
Mengapa menggunakan Store Procedure :
Mengapa menggunakan Store Procedure :
a.
Karena
berada dalam database server, logika pemrograman pada aplikasi tidak diperlukan
lagi, yang harus dilakukan adalah memanggil store procedure.
b.
Mereduksi
trafik pada jaringan yang mengakses database, karena logika pemrograman di
laksanakan oleh database server, bukan oleh client
·
Berikan contoh penggunaan Stored Procedure
Untuk memudahkan dalam pembuatan
store procedure ini dapat digunakan sqlyog.
Membuat procedure untuk mengisi data mahasiswa.
DELIMITER $$
DROP PROCEDURE IF EXISTS
`latihan6`.`insert_data`$$
CREATE PROCEDURE
`latihan6`.`insert_data`(nomhs char(9),nama varchar(25),alamat varchar(60))
BEGIN
insert into mahasiswa
values(nomhs,nama,alamat);
END$$
DELIMITER ;
Untuk memanggilnya dengan cara memasukkan parameter kedalam procedure yang telah dibuat seperti berikut ini.
mysql> select*from mahasiswa;
Empty set (0.00 sec)
mysql> call
insert_data('095410168','purwant','bantul yogyakarta');
Query OK, 1 row affected (0.03 sec)
mysql> select*from mahasiswa;
+-----------+---------+-------------------+
| no_mhs | nama
| alamat |
+-----------+---------+-------------------+
| 095410168 | purwant | bantul
yogyakarta |
+-----------+---------+-------------------+
1 row in set (0.00 sec)
mysql> call
insert_data('095410178','ekosetiawan','bantul yogyakarta');
Query OK, 1 row affected (0.00
sec)
mysql> select*from mahasiswa;
+-----------+-------------+-------------------+
| no_mhs | nama | alamat |
+-----------+-------------+-------------------+
| 095410168 | purwant | bantul yogyakarta |
| 095410178 | ekosetiawan | bantul
yogyakarta |
+-----------+-------------+-------------------+
MEMBUAT PROCEDURE UNTUK MENGUPDATE
DATA MAHASISWA
DELIMITER $$
DROP PROCEDURE IF EXISTS `latihan6`.`update_mahasiswa`$$
CREATE PROCEDURE
`latihan6`.`update_mahasiswa`(nim char(9),na varchar(25),almt varchar(35))
BEGIN
update mahasiswa set nama=na ,
alamat=almt where no_mhs=nim;
END$$
DELIMITER ;
Untuk memanggil procedure tersebut dapat dilakukan seperti ini
mysql> select*from mahasiswa;
+-----------+-------------+-------------------+
| no_mhs | nama | alamat |
+-----------+-------------+-------------------+
| 095410168 | purwant | bantul yogyakarta |
| 095410178 | ekosetiawan | bantul
yogyakarta |
+-----------+-------------+-------------------+
2 rows in set (0.00 sec)
Disini
akan mengubah nama dan alamat dari mahasiswa yang bernama purwant,
Mengganti
nama menjadi purwanto dan alamatnya di sleman jogjakarta.
Untuk melakukannya dapat dengan cara memanggil procedure update_mahasiswa sebagai berikut.
mysql> call
update_mahasiswa('095410168','purwanto','sleman jogjakarta');
Query OK, 1 row affected (0.00
sec)
Hasilnya adalah sebagai berikut.
mysql> select*from mahasiswa;
+-----------+-------------+-------------------+
| no_mhs | nama | alamat |
+-----------+-------------+-------------------+
| 095410168 | purwanto | sleman jogjakarta |
| 095410178 | ekosetiawan | bantul
yogyakarta |
+-----------+-------------+-------------------+
2 rows in set (0.00 sec)
MEMBUAT PROCEDURE UNTUK MENGHAPUS
MAHASISWA
Tambahkan data sebagai berikut
mysql> call
insert_data('000','gk jelas','belum punya');
Query OK, 1 row affected (0.00 sec
mysql> select*from mahasiswa;
+-----------+-------------+-------------------+
| no_mhs | nama | alamat |
+-----------+-------------+-------------------+
| 095410168 | purwanto | sleman jogjakarta |
| 095410178 | ekosetiawan | bantul
yogyakarta |
| 000 | gk jelas | belum punya |
+-----------+-------------+-------------------+
Procedure hapus data mahasiswa
DELIMITER $$
DROP PROCEDURE IF EXISTS
`latihan6`.`hapus_mhs`$$
CREATE PROCEDURE
`latihan6`.`hapus_mhs`(nim char(9))
BEGIN
delete from mahasiswa where
no_mhs=nim;
END$$
DELIMITER ;
untuk menghapus data mahasiswa
dapat dilakukan dengan cara memasukkan no_mhs yang akan dihapus pada parameter.
Contoh:
mysql> select*from mahasiswa;
+-----------+-------------+-------------------+
| no_mhs | nama | alamat |
+-----------+-------------+-------------------+
| 095410168 | purwanto | sleman jogjakarta |
| 095410178 | ekosetiawan | bantul
yogyakarta |
| 000 | gk jelas | belum punya |
+-----------+-------------+-------------------+
Hapus mahasiswa dengan no_mhs 000.
mysql> call hapus_mhs('000');
Query OK, 1 row affected (0.00
sec)
Hasilnya menjadi
mysql> select*from mahasiswa;
+-----------+-------------+-------------------+
| no_mhs | nama | alamat |
+-----------+-------------+-------------------+
| 095410168 | purwanto |
sleman jogjakarta |
| 095410178 | ekosetiawan | bantul
yogyakarta |
+-----------+-------------+-------------------+
2 rows in set (0.00 sec)
0 komentar:
Posting Komentar