Sistem Manajemen Basis Data

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 :

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)


Share on Google Plus

About Unknown

Nama saya adalah Gifari Alfan Reza, seorang yang tak luput dari kesalahan dan juga membutuhkan orang lain dalam menjalani hidup ini karena manusia tidak sendiri. Saya yang berkeinginan bisa pergi keluar negeri itu sangat itu aku inginkan "Bersemangatlah field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 komentar:

Posting Komentar