8
Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com STORE PROCEDURE Stored Procedure adalah kumpulan perintah SQL yang diberi nama dan disimpan di server. Stored Procedure biasanya berisi perintah-perintah umum yang berhubungan dengan database pada server, dan menghasilkan sekumpulan record. Stored Procedure ditulis dalam bentuk sebuah script. Dalam SQL Server store procedure memiliki kemampuan antara lain : Menerima parameter input dan mengembalikan beberapa nilai parameter output dari procedure yang dipanggil. Mengandung statement pemrograman yang melakukan operasi terhadap database termasuk memanggil store procedure lain. Memberikan status yang mengindikasikan keberhasilan atau kegagalan eksekusi store procedure Keuntungan pemakaian store procedure adalah : Merupakan pemrograman modular Store procedure dibuat sekali dan dapat dipakai berulang untuk komputasi yang sama Memungkinkan eksekusi lebih cepat Ketika pertama kali dijalankan store procedure akan tersimpan dalam memori. Sehingga memungkinkan eksekusi berikutnya lebih cepat. Mengurangi trafik jaringan Barisan kode transact SQL yang seharusnya dilewatkan jaringan, akan digantikan dengan statement tunggal pemanggilan store procedure Dapat digunakan sebagai mekanisme sekuriti Pengguna dimungkinkan mengeksekusi Store procedure, walau mungkin tidak dapat mengeksekusi procedure didalamnya secara langsung. Sebelum mempelajari cara pembuatan store procedure, perlu juga dipelajari statement Transact SQL untuk pemrograman server. Beberapa statement Transact SQL : TIPE DATA PADA PEMROGRAMAN SERVER Data yang dapat dimasukkan ke dalam database kita tentunya bermacam- macam. Secara khusus MSSQL Server 2000 mendukung berbagai macam tipe data. Numeric 1. bigint Nilai integer dengan nilai dari -2^63 (-9223372036854775808) sampai 2^63- 1 (9223372036854775807).

store-procedure.pdf

  • Upload
    nifsruz

  • View
    26

  • Download
    3

Embed Size (px)

DESCRIPTION

sssssssssssssssssssssss

Citation preview

Page 1: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

STORE PROCEDURE

Stored Procedure adalah kumpulan perintah SQL yang diberi nama dan disimpan di server. Stored Procedure biasanya berisi perintah-perintah umum yang berhubungan dengan database pada server, dan menghasilkan sekumpulan record. Stored Procedure ditulis dalam bentuk sebuah script. Dalam SQL Server store procedure memiliki kemampuan antara lain :

Menerima parameter input dan mengembalikan beberapa nilai parameter output dari procedure yang dipanggil.

Mengandung statement pemrograman yang melakukan operasi terhadap database termasuk memanggil store procedure lain.

Memberikan status yang mengindikasikan keberhasilan atau kegagalan eksekusi store procedure

Keuntungan pemakaian store procedure adalah :

Merupakan pemrograman modular Store procedure dibuat sekali dan dapat dipakai berulang untuk komputasi

yang sama Memungkinkan eksekusi lebih cepat

Ketika pertama kali dijalankan store procedure akan tersimpan dalam memori. Sehingga memungkinkan eksekusi berikutnya lebih cepat.

Mengurangi trafik jaringan Barisan kode transact SQL yang seharusnya dilewatkan jaringan, akan digantikan dengan statement tunggal pemanggilan store procedure

Dapat digunakan sebagai mekanisme sekuriti Pengguna dimungkinkan mengeksekusi Store procedure, walau mungkin tidak dapat mengeksekusi procedure didalamnya secara langsung.

Sebelum mempelajari cara pembuatan store procedure, perlu juga dipelajari statement Transact SQL untuk pemrograman server. Beberapa statement Transact SQL :

TIPE DATA PADA PEMROGRAMAN SERVER Data yang dapat dimasukkan ke dalam database kita tentunya bermacam-

macam. Secara khusus MSSQL Server 2000 mendukung berbagai macam tipe data.

Numeric 1. bigint Nilai integer dengan nilai dari -2^63 (-9223372036854775808) sampai 2^63-1 (9223372036854775807).

Page 2: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

2. int Nilai integer dengan nilai dari -2^31 (-2,147,483,648) sampai 2^31 - 1 (2,147,483,647). 3. smallint Nilai integer dengan nilai dari 2^15 (-32,768) sampai 2^15 - 1 (32,767). 4. tinyint Nilai integer dengan nilai dari 0 sampai 255. 5. bit Nilai integer dengan nilai 1 atau 0. 6. Decimal dan Numeric Angka dengan akurasi tetap dari -10^38 +1 sampai 10^38 –1.

Money 1. money Data dengan nilai mata uang -2^63 (-922,337,203,685,477.5808) hingga 2^63 - 1(+922,337,203,685,477.5807) 2. SmallMoney Data dengan nilai mata uang -214,748.3648 through +214,748.3647

Numeric Precession 1. float Bilangan presesi dari -1.79E + 308 sampai 1.79E + 308. 2. real Bilangan presesi dari -3.40E + 38 sampai 3.40E + 38.

Date Time 1. datetime Tanggal dan waktu dari January 1, 1753, samapi December 31, 9999, dengan akurasi sampai 3.33 millidetik. 2. smalldatetime Tanggal dan waktu dari January 1, 1900, samapi June 6, 2079, denagn akurasi satu menit.

Strings 1. char Field berisi karakter dengan ukuran panjang tetap dengan panjang maksimum 8,000 karakter. 2. varchar Field berisi karakter dengan panjang ukuran tidak tetap dengan panjang maksimum 8,000 characters. 3. text variabel berisi karakter denagn ukuran panjang sampai 2^31 - 1 (2,147,483,647) karakter.

Unicode Character Strings

Page 3: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

1. nchar Karakter unicode dengan ukuran panjang tetap 4,000 karakter. 2. nvarchar Karakter dengan panjang tidak tetap hingga 4,000 karakter.. 3. ntext Karakter dengan panjang tidak tetap hingga of 2^30 - 1 (1,073,741,823) Karakter.

Binary Strings 1. binary Ukuran tetap data binary hingga 8,000 bytes. 2. varbinary Ukuran panjang tidak tetap data binary hingga 8,000 bytes. 3. image Ukuran tidak tetap data binary hingga 2^31 - 1 (2,147,483,647) bytes.

Tipe Data Lain 1. cursor Referensi ke cursor. 2. timestamp Angka ekslusif yang dikenali oleh database 3. uniqueidentifier Pengenal global yang eksklusif.

OPERATOR Urutan operator yang didukung secara khusus oleh SQL Server berdasar

urutan evaluasi: + (positif), - (negatif), ~ (birwise NOT) * (perkalian), / (pembagian), % (modulus) + (penjumlahan), + (pengabungan), - (pengurangan) =, >, <, >=, <=, <>, !=, !>, !< (perbandingan) ^ (bitwise exclusive OR), & (bitwise AND), | (bitwise OR) NOT AND ALL, ANY, BETWEEN, IN, LIKE, OR, SOME = (penugasan)

VARIABEL

Semua bahasa pemrograman mengenal bahasa pemroraman, termasuk pemrograman database di server. Variabel di deklarasikan pada badan Bacth atau Procedure dengan pernyataan DECLARE dan diberi nilai dengan pernyataan SET atau SELECT. Variabel cursor bisa dideklarasikan dengan pernyataan ini. Setelah deklarasi semua variabel diinisialisasi dengan nilai NULL.

Page 4: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

Variabel Biasa Sintaks : Description @variabel lokal Nama variabel. Setiap nama variabel lokal selalu diawali dengan tanda @, dan harus unik pada suatu blok. Tipe data Semua tipe data yang disediakan oleh sistem. Contoh: DECLARE @kdProduk VARCHAR(8) Mendefinisikan sebuah variabel bernama kdProduk dengan tipe VARCHAR panjang 8.

Variabel Cursor Untuk medefinisikan atribut dari CURSOR server di Transact-SQL. Misalnya perilaku scrolling dan query yang digunakan utnuk membuat hasil dimana cursor beroperasi Sintaks : Description Nama_Cursor Nama variabel yang bertipe cursor Statement_Select Pernyataan SELECT standar yang mendefinisikan hasil dari cursor. Kata kunci COMPUTE, COMPUTE BY, FOR BROWSE dan INTO tidak boleh dalam select_statement dari deklarasi cursor. Contoh: DECLARE Cur_Produk CURSOR Memesan variabel bertipe Cursor bernama Cur_Produk

BLOK STATEMENT (BEGIN ... END)

Berfungsi untuk mendefinisikan blok statement Sintaks :

BEGIN { Statement SQL } END 

DECLARE @variabel_lokal tipe_data

DECLARE nama_cursor CURSOR FOR statement_select

Page 5: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

PERULANGAN (WHILE) Perulangan digunakan untuk mengeksekusi suatu perintah Transact-SQL atau blok perintah Transact- SQL secara berulang-ulang selama kondisinya adalah terpenuhi. Eksekusi dari perintah WHILE dapat di kendalikan dengan BREAK dan CONTINUE. Sintaks :

Deskripsi Ekspresi_Boolean Kondisi yang mengembalikan nilai TRUE atau FALSE. { Statement_SQL | Blok_Statement } Adalah perintah Transact-SQL atau grup statement dalam satu blok. BREAK Perintah untuk mengakhiri perintah perulangan. CONTINUE Untuk mengulang perulangan. Contoh: while (select avg(gaji) from pilot) < 15000000 begin update pilot set gaji = gaji * 2 select max(gaji) from pilot if (select max(gaji) from gaji) > 20000000 break else continue end print ‘Gaji sudah tinggi’

@parameter Adalah parameter procedure. Kita bisa mendefinisikan lebih dari satu parameter dalam satu parameter pada waktu membuat Store Procedure. Satu Store Procedure maksimum memiliki 2,100 parameters. Tipe_data

WHILE ekspresi_boolean { Statement_SQL | Blok_Statement } [ BREAK ] { Statement_SQL | Blok_Statement } [ CONTINUE ]

Page 6: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

Adalah tipe data dari parameter yang bersangkutan. Semua tipe data dapat masuk seperti Text, Numeric, Int, Smallint dan lainnya. Tipe data Cursor hanya dapat digunakan sebagai Output. AS Tempat meletakkan aksi-aksi procedure. sql_statement Kumpulan perintah SQL yang akan dimasukkan dalam procedure tersebut n Adalah indikasi berapa banyak Statement SQL yang dimasukkan Catatan: Ukuran satu store procedure maksimal 128 MB.

Latihan

1. Buka kembali database Penjualan_xxxx yang telah dibuat pada pertemuan 2 2. Aktifkan database Penjualan_xxxx

3. Membuat Store Procedure untuk menampilkan semua data produk

4. Jalankan Store Procedure SP_TampilProduk

5. Membuat Store Procedure untuk menampilkan data berdasarkan sayarat tertentu

6. Jalankan Store Procedure SP_TampilProdukId

USE Penjualan_xxxx

CREATE PROC SP_TampilProduk AS SELECT * FROM produk

Exec SP_TampilProduk

CREATE PROC SP_TampilProdukId (@KdProduk varchar(8)) AS SELECT * FROM produk WHERE KdProduk=@KdProduk 

Exec SP_TampilProdukId 'A10'

Page 7: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

7. Membuat Store Procedure untuk menambah data Produk

8. Jalankan Procedure SP_InsertProduk

9. Membuat Store Procedure untuk mengubah data produk

10. Jalankan Store Procedure SP_UpdateProduk

CREATE PROCEDURE SP_InsertProduk( @kdProduk varchar(8), @nmProduk varchar(40), @hrgBeli money, @hrgJual money, @stok int, @gangguan char(1) ) AS BEGIN TRANSACTION INSERT INTO produk VALUES(@kdProduk,@nmProduk,@hrgBeli,@hrgJual,@stok,@gangguan) IF @@error = 0 BEGIN COMMIT TRANSACTION END ELSE BEGIN ROLLBACK TRANSACTION END 

SP_InsertProduk 'I5','IM3 5000',5000,5200,200,'0' Exec SP_InsertProduk 'I10','IM3 10000',9950,10150,230,'0' 

CREATE PROCEDURE SP_UpdateProduk( @kdProduk varchar(8), @hrgBeli money, @hrgJual money, @gangguan char(1) ) AS BEGIN TRANSACTION UPDATE produk SET HrgBeli=@hrgBeli,HrgJual=@hrgJual,gangguan=@gangguan WHERE KdProduk=@kdProduk IF @@error <> 0 BEGIN ROLLBACK TRANSACTION END ELSE BEGIN COMMIT TRANSACTION END 

SP_UpdateProduk 'A10',9950,10150,'0'

Page 8: store-procedure.pdf

Pemrograman Client Server – Sarji, S.Kom Studi kasus pada http://otsypulsa.com 

11. Membuat Store Procedure untuk menghapus data produk

12. Jalankan Store Procedure SP_DelProduk

Tugas 1. Buat Store Procedure untuk menampilkan semua data reseller 2. Buat Store Procedure untuk menampilkan data reseller berdasarkan kode

reseller 3. Buat Store Procedure untuk menampilkan reseller yang namanya berawalan

huruf F 4. Buat Store Procedure untuk menambah data reseller 5. Buat Store Procedure untuk mengubah data reseller 6. Buat Store Procedure untuk menghapus data reseller yang saldonya 0 (nol) 7. Buat Store Procedure untuk menampilkan semua data transaksi yang

statusnya pending 8. Buat Store Procedure untuk menambahkan data transaksi 9. Buat Store Procedure untuk mengubah status transaksi dari pending menjadi

sukses 10. Buat Store Procedure untuk menghapus transaksi dengan status gagal

CREATE PROCEDURE SP_DelProduk( @kdProduk varchar(8) ) AS BEGIN TRANSACTION DELETE FROM produk WHERE KdProduk=@kdProduk IF @@error <> 0 BEGIN ROLLBACK TRANSACTION END ELSE BEGIN COMMIT TRANSACTION

END

Exec SP_DelProduk 'I10'