Wednesday, September 21, 2011

Stored Procedure, Function dan Triger pada SQL

NIM/Nama    : 10.41010.0249/ Fendy Mahatma Putra
Dosen          : Tan Amelia
Tugas          :  Tugas PBD II


I. Stored Procedure
 Sejumlah perintah dalam kode program dan beberapa parameter input, dan sejumlah hasil atau keluaran. Cara pemanggilannya dengan mengeksekusi nama proscdure tersebut. Atau dalam bahasa sederhana 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.
Stored procedure adalah permasalah yang cukup kompleks untuk dibahas, adapun bagian penting pada stored procedure. Kapan program akan diabut, parameter yang akan dilewatkan dan hasil yang dikeluarkan, interaksi dalam basis data, menciptakan stored precedure, fungsi dan trigger dalam bahasa pemrograman.
Pemrograman Stored Prosedure dalam MySQL
Stored procedure adalah permasalah yang cukup kompleks untuk dibahas, adapun bagian penting pada stored procedure :
Kapan program akan diabut, parameter yang akan dilewatkan dan hasil yang dikeluarkan, interaksi dalam basis data, menciptakan stored precedure, fungsi dan trigger dalam bahasa pemrograman.
Beberapa perintah untuk membuat stored procedure:
CREATE PROCEDURE , CREATE FUNCTION , atau CREATE TRIGGER
Ex:
DELIMITER $$
DROP PROCEDURE IF EXISTS Kata()$$;
CREATE PROCEDURE Kata()
BEGIN
SELECT ‘AKAKOM’;
END$$
DELIMITER ;
·  DELIMITER $$ akhir dari peritah body (badan/skrip mysql)
·  DROP PROCEDURE IF EXISTS Kata()$$; perintah untuk menghapus jika prosedurnya sudah pernah ada.
·  CREATE PROCEDURE Kata( ) mencitapkan prosedur degan nama Kata ( isi parameter kalau ada ),
·  BEGIN awal perintah/blok perintah dan END akhir perintah
Variabel
Variabel dalam bahasa SQL, fungsinya sama dengan bahasa pemrograman paxda umumnya.
Perintahnya menggunakan DECLARE, dan untuk memberikan nilai menggunakan perintah SET.
Parameter
Parameter adalah suatu nilai yanga akan dilewatkan atau dimasukan untuk diproses dalam fungsi atau prosedure.
Kondisional
Perintah kondisional, untuk melakukan uji kondisi terapat satu masukan dan dua piliahan dari keluaran, kondisi benar atau asalah. Perintahnya menggunakan IF, atau CASE.
Loop
Loop adalah proses perulangan. Dalam MYSQL ada 3 type loop :
• Loop sederhana menggunakan LOOP dan END LOOP c
• Loop yang disertai kontrol kondisi benar atau salah jika benar akan loop, perintannya menggunakan WHILE dan END WHILE
• Perulangan yang menggunakan REAPEAT dan UNTIL
Interaktif dengan Database
Stored Prosedure juga basi melibatkan data dalam tabel. Ada 4 bagian tipe interaksi antara lian :
·  Hasil stored procedure dari perintah SQL menghasilkan nilai balik satu baris yang dimasukan ke dalam variabel lokal.
·  Create “cursor” hasil iterasi, yanng mengasilkan baris disimpan ke kursor
·  Eksekusi perintah SQL menghasilkan, dengan perintah CALL progarm akan menghasilkan sejumlah baris.
·  Untuk perintah INSERT, UPDATE, DELETE, tidak mengasilkan record set


II Stored Function 
                Fungsi hampir sama dengan stored procedure. Function mempunyai sejumlah paramter input dan hanya mengembalikan satu output, standar perintah yang digunakan menggunakan perintah standar SQL.
Fungsi SQL Aggregate : fungsi yang menghasilkan nilai tunggal dari perhitungan sebuah nilai dari sebuah kolom, yaitu:
AVG() – memberikan nilai rata-rata dari sebuah kolom numerik
COUNT() – memberikan jumlah baris atau data yang sesuai dengan kriteria yang diberikan
FIRST() – memberikan nilai pertama dari sebuah kolom
LAST() – memberikan nilai terakhir dari sebuah kolom
MAX() – memberikan nilai terbesar dari sebuah kolom
MIN() – memberikan nilai terkecil dari sebuah kolom
SUM() – memberikan jumlah dari sebuah kolom numerik
Fungsi SQL Scalar : fungsi yang menghasilkan nilai tunggal dari nilai yang dimasukkan, yaitu :
UCASE() – merubah menjadi huruf kapital
LCASE() – merubah menjadi huruf kecil
MID() – mengekstrak karakter dari sebuah data teks
LEN() – menghitung jumlah karakter dari sebuah data teks
ROUND() – membulatkan data numerik ke nilai terdekat
NOW() – memberikan data tanggal dan waktu dari sistem
FORMAT() – memberikan format dari sebuah data yang akan ditampilkan

Bentuk Umum :

CREATE OR REPLACE FUNCTION nama_function (parameter_1, …)
RETURN tipe_data AS
variabel_1 tipe_data;

BEGIN
statemen_1;

RETURN nilai_yang_dikembalikan;
END;

III. Trigger 
Suatu program yang akan melakukan respon dalam aktivitas database, berkaitan perintah-perintah DML (insert, update, delete) operasional pada tabel. Biasanya digunakan untuk otomatisasi atau validasi.
Pakailah Trigger untuk kasus-kasus berikut:
- Jika pemakaian cara deklaratif tidak dapat memenuhi kebutuhan yang diperlukan. Misalnya, buatlah Trigger untuk mengubah sebuah nilai numerik dalam tabel jika sebuah record di dalam tabel tersebut dihapus.
- Sebuah perubahan harus mengubah tabel-tabel lain yang terhubung. Misalnya jika data order ditambahkan, tabel lain yang menyimpan data stok akan berubah.
- Jika database didenormalisasi dan memerlukan cara otomasi untuk mengubah data redundan yang ada dibeberapa tabel.
- Jika sebuah nilai pada sebuah tabel harus divalidasi dengan data pada tabel lain.
- Jika diperlukan pesan kesalahan dan penangganan kesalahan secara khusus.
Kemampuan-kemampuan yang dimiliki Trigger:
- Trigger dapat menjaga referential integrity dengan melakukan perubahan data atau penghapusan kunci tamu (Foreign Key) di dalam database.
- Trigger dapat bekerja pada beberapa kolom dalam sebuah database bahkan pada objek di luar database. Anda juga dapat memakai Trigger pada View.
- Sebuah Trigger dapat melakukan beberapa aksi dan Trigger dapat diaktifkan oleh beberapa event. Misalnya Anda membuat sebuah Trigger yang akan diaktifkan jika terjadi proses INSERT, UPDATE atau DELETE. Dengan perintah Transact-SQL, Anda dapat mendefinisikan aturan bisnis untuk tiap event.
                 Selain kemampuan-kemampuan tersebut, Trigger juga mempunyai keterbatasan. Trigger tidak dapat dibuat pada sebuah tabel sistem atau temporer, meskipun perintah di dalama Trigger mengacu ke tabel sistem atau tabel temporer.
Trigger tidak dapat diaktifkan secara manual, tetapi diaktifkan secara otomatis jika terjadi event INSERT, UPDATE, dan DELETE. Dalam Trigger selalu berisi satu atau beberapa event tersebut sebelum perintah Transact-SQL didefinisikan. Tipe-tipe Trigger sesuai dengan event-nya. Misalnya Anda membuat sebuah Trigger UPDATE sehingga jika terjadi pengubahan data pada sebuah tabel, Trigger tersebut dapat diaktifkan. Sebuah Trigger dapat diaktifkan oleh beberapa event.
                  Pada saat terjadi INSERT atau UPDATE yang diaktifkan Trigger, Trigger menyimpan data baru atau data hasil modifikasi di dalam sebuah tabel yang bernama INSERTED. Jika terjadi DELETE yang mengaktifkan Trigger, data yang dihapus akan tersimpan ditabel yang bernama Deleted. Tabel tersebut berada dimemori dan dibaca oleh Trigger dengan perintah-perintah Transact-SQL. Kemampuan ini penting anda ketahui, karena pada umumnya Trigger membandingkan data dalam tabel Inserted dan Deleted dengan data baru sebelum proses Commit. Dengan kedua tabel tersebut, Trigger dapat melakukan proses Roll-Back.

1 comment: