1 STORED PROCEDURE Stored Procedure (stor-proc) merupakan sekumpulan perintah-perintah SQL yang tersimpan dengan nama tertentu dan diproses sebagai se...
STORED PROCEDURE Stored Procedure (stor-proc) merupakan sekumpulan perintah-perintah SQL yang tersimpan dengan nama tertentu dan diproses sebagai sebuah kesatuan. Secara sederhana dapat dikatakan sebagai sebuah sub-program yang tersimpan di database. Stor-proc sangat mirip dengan prosedur atau rutin pada bahasa pemrograman dalam hal bahwa mereka sama-sama dapat melakukan hal-hal berikut: Menerima parameter sebagai input dan mengembalikan nilai-nilai dalam bentuk parameter output kepada yang memanggilnya Mengandung perintah-perintah program yang melakukan operasi didalam database, termasuk memanggil prosedur yang lainnya.
Keuntungan-keuntungan
menggunakan
stor-proc
(menyimpan
kode
di
database)
dibandingkan menyimpan kode program di aplikasi adalah: 1. Pemrograman menjadi lebih modular. Prosedur hanya dibuat sekali, disimpan dalam database, dan dapat dipanggil berulang kali dari program/interface seperti visual basic delphi dll. 2. Eksekusi program akan menjadi lebih cepat. Menjalankan program untuk mengakses database tentu saja akan lebih cepat dilakukan jika di dalam database itu sendiri. 3. Mengurangi lalu lintas jaringan. Efek penggunaan stor-proc akan lebih terasa jika menggunakan aplikasi client/server yang mengakses database di komputer (host) lain. Prosesnya jauh lebih cepat dengan hanya mengirimkan stor-proc saja daripada mengirimkan baris-baris perintah SQL yang ada di kode program interface (perintah-perintah query yang diketikkan di Visual Basic)
Membuat Stored Procedure Melalui Query Analyzer Pembuatan Stored Procedure melalui Query Analyzer tetap memperhatikan sintak pembuatan stored procedure
Zulkarnaen NS, S. Kom
Contoh 1 Stored Procedure untuk menampilkan data pada tabel barang use inventori if exists (select name from sysobjects where name = 'SP_TampilBarang') drop procedure SP_TampilBarang go create procedure SP_TampilBarang as select * from barang
Statement use inventori digunakan untuk mengaktifkan penggunaan database inventori, sedangkan pada statement berikutnya adalah proses pemeriksaan nama stored procedure didalam sysobject, jika nama stored procedure yang dimaksud ditemukan maka akan dilakukan penghapusan stored procedure, setelah proses penghapusan nama stored procedure yang sama dengan stored proceudre yang akan dibuat sukses maka akan dikerjakan proses pembuatan stored procedure baru. Untuk melihat hasil dari pembuatan stored procedure SP_TampilBarang gunakan perintah berikut exec SP_TampilBarang atau execute SP_TampilBarang atau SP_TampilBarang Hasil dari stored procedure SP_TampilBarang
Zulkarnaen NS, S. Kom
Contoh 2 Stored Procedure untuk menampilkan data pada tabel barang dengan syarat nilai kode barang sama dengan ‘B0005’ use inventori if exists (select name from sysobjects where name = 'SP_TampilBarang') drop procedure SP_TampilBarang go create procedure SP_TampilBarang as select * from barang where kodebrg='B0005'
Contoh 3 Stored Procedure untuk menampilkan data pada tabel barang dengan syarat nilai nama barang sama dengan ‘Monitor’ use inventori if exists (select name from sysobjects where name = 'SP_TampilBarang') drop procedure SP_TampilBarang go create procedure SP_TampilBarang as select * from barang where namabrg='Monitor' Contoh 4 Stored procedure untuk menampilkan data dari tabel suplier dan TBMasuk dimana field yang akan ditampilkan dari tabel suplier adalah nama suplier (namasup), sedangkan field dari tabel TBMasuk ayang akan ditampilkan adalah nomor transaksi barang masuk (botbm) dan kode suplier (kodesup), adapun syarat yang akan digunakan adalah kode suplier (kodesup) pada tabel TBMasuk harus sama dengan kode suplier(kodesup) pada tabel suplier use inventori if exists (select name from sysobjects where name = 'SP_Suplier_TBMasuk') drop procedure SP_Suplier_TBMasuk go create procedure SP_Suplier_TBMasuk as select TBMasuk.notbm,TBMasuk.kodesup,suplier.namasup from suplier,TBMasuk where TBMasuk.kodesup=suplier.kodesup
Zulkarnaen NS, S. Kom
Hasil eksekusi stored procedure
Stored Procedure dengan Parameter Nilai parameter digunakan sebagai parameter masukan bagi strored procedure yang bersangkutan. Pada beberapa contoh diatas telah disajikan bagaimana membuat stored procedure tanpa parameter, misalnya pada contoh ketiga yang memiliki statement program seperti dibawah ini if exists (select name from sysobjects where name = 'SP_TampilBarang') drop procedure SP_TampilBarang go create procedure SP_TampilBarang as select * from barang where kodebrg='B0005' Apabila tidak digunakan nilai sebagai parameter masukkan dalam pembuatan stored procedure maka akan ditemui kendala apabila user ingin menggunakan stored procedure tersebut, sedangkan kode barang yang akan diambil bukan ‘B0005’ tetapi ‘B0004’, maka akan terlalu merepotkan jika harus melakukan statement stored procedure yang bersangkutan, dapat dibayangkan jika dalam lima menit sekali kode barang yang ingin ditampilkan berbedabeda tentunya hal ini akan semakin memperlamabat pekerjaan kita.
Zulkarnaen NS, S. Kom
Untuk membuat parameter nilai dalam stored procedure maka harus dilakukan adalah mendeklarasikan parameter tersebut kedalam sebuah variabel dengan type data yang sesuai. Gunakan tanda @ untuk mendeklarasikan variabel tersebut.
Contoh 1 Stored procedure untuk menampilkan data barang dari tabel barnag dengan menyertakan paramaeter nilai kode barnag sebagai parameter masukan use inventori if exists (select name from sysobjects where name = 'SP_TampilBarang') drop procedure SP_TampilBarang go create procedure SP_TampilBarang @kodebrg varchar (5) as select * from barang where kodebrg=@kodebrg Pada statement program diatas terdapat @kodebrg dengan type data varchar dideklarasikan sebagai parameter nilai, sedangkan parameter select * from barnag, nilai yang akan ditampilkan adalah kode barang yang sesuai dengan parameter nilai yang dimasukkan
Hasil Exec
Zulkarnaen NS, S. Kom
Contoh 2 use inventori if exists (select name from sysobjects where name = 'SP_TampilBarang') drop procedure SP_TampilBarang go create procedure SP_TampilBarang @stokbrg varchar (5) as select * from barang where stokbrg>@stokbrg