PROSEDUR
Sebenarnya prosedur pada PL/SQL hampir sama dengan prosedur bahasa pemrograman lainnya. Prosedur memiliki header dan body. Header mengandung nama prosedur dan parameter atau variabel yang digunakan oleh prosedur. Sedangkan body mengandung bagian deklarasi, bagian eksekusi, dan bagian exception handling. Sintaks umum untuk membuat prosedur :
Eksekusi Prosedur
Unutuk melakukan eksekusi terhadap suatu prosedur dari luar blok PL/SQL, kita harus menggunkan statemen EXECUTE, atau cukup dituliskan dengan EXEC saja. Namun apabila Anda ingin memanggil prosedur dari dalam blok PL/SQL, maka statemen EXECUTE tidak perlu di tuliskan. Berikut ini bentuk umumnya :
FUNGSI
Function adalah jenis PL/SQL block yang menghasilkan satu nilai. Secara umum, function digunakan melakukan perhitungan, mengecek eksistensi dan kevalidan suatu data. Function bisa dilibatkan dalam expresi. Function bisa disimpan dalam database sebagai object schema, sehingga suatu function bisa digunakan berulangkali tanpa harus melakukan parsing dan compile ulang.
37 Ekesekusi Fungsi
Tidak seperti prosedur yang dalam eksekusinya membutuhkan perintah EXECUTE, pada fungsi kita dapat langsung memasukkan nilainya ke dalam suatu variable yang sama tipedatanya maupun melalui statemen SQL. Atau dapat juga melalui statemen SQL seperti yang ditunjukkan oleh kode berikut :
PARAMETER
Parameter diklasifikasikan menjadi tiga jenis, yaitu parameter masukan, keluarn dan masukan-keluaran.
1. Parameter Masukan
Parameter masukan adalah parameter yang berguna untuk menyimpan nilai yang digunakn sebagai input di dalam badan prosedur maupun fungsi. Parameter ini ditandai dengan mode IN.
2. Paramater Keluaran
Parameter keluaran adalah parameter yang menampung nilai hasil dari suatu proses yang dilakukan dalam sub program.Pada kenyataannya parameter keluaran lebih sering ditemui di dalam prosedur dari pada didalam fungsi. Parameter ini ditandai dengan mode OUT.
3. Parameter Masukan – Keluaran
Parameter ini merupakan parameter gabungan dari kedua jenis diatas. Parameter ini berperan sebagai parameter masukan sekaligus parameter keluaran. Parameter ini ditandai dengan mode IN OUT.
38 Contoh 1.
Dalam contoh dibawah ini kasus tentang sistem informasi sekolah, yang mana store procedure yang dibuat akan menangani tentang menghasilkan data siswa yang difilter berdasarkan kelas.
Store procedure untuk menampilkan data siswa dalam bentuk ResulSet :
Penjelasan
Delimiter adalah untuk memberitahu kepada mysql soal delimiter yang digunakan, secara default menggunakan ; jadi bila ada tanda ; mysql akan mengartikan akhir dari statement, pada contoh di atas delimiter yang digunakan $$ jadi akhir statementnya adalah $$
CREATE PROCEDURE adalah header untuk membuat suatu procedure BEGIN END adalah body dari store procedure, jadi semua sql nya ditulis disini Contoh pemanggilannya seperi dibawah ini :
Dengan store procedure eksekusi menjadi cepat. Store procedure adalah komponen, andaikan aplikasi kemudian ditulis dalam bahasa berbeda, tidak ada masalah, karena logika berada di dalam database bukan dalam aplikasi.
39 Praktik !
1. Buat database dengan nama dbparkir, kemudian aktifkan 2. Buat tabel kendaraan dengan ketentuan sebagai berikut :
3. Memilih delimiter
mysql> delimiter // 4. Menciptakan store procedure
mysql> create procedure p1() select * from kendaraan;// Keterangan :
p1 = nama procedure () = daftar parameter
Select * from kendaraan; = body prosedur 5. Memanggil prosedur p1
mysql> call p1();
6. Mengembalikan delimiter dan memulainya mysql> delimiter ;
mysql> delimiter // 7. Menghapus delimiter
mysql> drop procedure p1;
8. Buat procedure sederhana yang memiliki fungsi untuk menghitung jumlah record pada tabel kendaraan. Kemudian jumlah kolom tersebut dimasukkan ke dalam variable param1.
40
LEMBAR KERJA PRAKTIKUM
BASIS DATA II
NAMA TANGGAL NIM WAKTU KELAS PERTEMUAN41
MODUL XI
TRIGGER
Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data. Implementasi trigger yang sering ditemui dalam dunia nyata adalah untuk mengeset dan mengubah nilai kolom dalam suatu tabel sehingga validasi nilai dari tabel tersebut akan terjaga. Adanya trigger dalam database akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data. MEMBUAT TRIGGER
Oracle telah menyediakan statement CREATE TRIGGER untuk membuat sebuah trigger yang selanjutnya akan diaktivasi berdasarkan event tertentu. Secara umum, event trigger terbagi menjadi dua, yaitu BEFORE (sebelum) dan AFTER (setelah). Event tersebut menandakan kapan trigger akan diaktivasi, apakah sebelum ataukah sesudah proses yang dilakukan di dalam tabel bersangkutan.
Daftar event yang mungkin digunakan untuk mengaktifkan trigger :
42 Untuk mencoba pembuatan trigger pada oracle persiapkan terlebih dahulu user atau database sebagai berikut ini :
User database : penjualan Table I : Barang
Colom pada table barang :
Isi pada table barang :
Tabel II : Pasok
Column pada table pasok :
Data pada table pasok :
Tabel III : Pembelian
Column pada table pembelian :
43 ALIAS DI DALAM TRIGGER
Di dalam trigger dikenal istilah alias atau referensi, yaitu sejenis variabel yang menyimpan nilai dari suatu kolom di dalam tabel. Alias tersebut terbagi menjadi dua yaitu :new dan :old. Alias :new untuk menyimpan nilai terbaru sedangkan alias :old untuk menyimpan nilai lama.
Ketersediaan Alias Di dalam Trigger :
Pada statement UPDATE, terdapat alias :new dan :old Pada statement DELETE, hanya terdapat alias :old Pada statement INSERT, hanya terdapat alias :new MANAGING TRIGGER
Mengaktifkan atau menonaktifkan trigger. Syntax :
ALTER TRIGGER nama_trigger ENABLE | DISABLE; Mengaktifkan atau menonaktifkan semua trigger pada sebuah tabel.
Syntax :
ALTER TABLE nama_tabel ENABLE | DISABLE ALL TRIGGERS; Menghapus trigger
Syntax :