You are on page 1of 8

PemrogramanClientServerSarji,S.

Kom
Studikasuspadahttp://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).
PemrogramanClientServerSarji,S.Kom
Studikasuspadahttp://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
PemrogramanClientServerSarji,S.Kom
Studikasuspadahttp://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.
PemrogramanClientServerSarji,S.Kom
Studikasuspadahttp://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
{
StatementSQL
}
END
DECLARE @variabel_lokal tipe_data
DECLARE nama_cursor CURSOR
FOR statement_select
PemrogramanClientServerSarji,S.Kom
Studikasuspadahttp://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 ]
PemrogramanClientServerSarji,S.Kom
Studikasuspadahttp://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'
PemrogramanClientServerSarji,S.Kom
Studikasuspadahttp://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'
PemrogramanClientServerSarji,S.Kom
Studikasuspadahttp://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'

You might also like