Store Procedure dan Function
Store procedure pada My adalah sebuah blok kode yang disimpan di dalam database dan dapat dieksekusi kapan saja. Store procedure terdiri dari satu atau beberapa pernyataan dan dapat diberikan parameter masukan (input) dan keluaran (output). Store procedure biasanya digunakan untuk melakukan tugas-tugas yang kompleks dan berulang pada database, dan dapat membantu menghindari duplikasi kode dan meningkatkan efisiensi.
Store procedure pada My dapat ditulis menggunakan bahasa biasa atau menggunakan bahasa pemrograman seperti PL/ (Procedural Language/Structured Query Language) atau Java. Store procedure dapat dipanggil dari aplikasi atau query lainnya, dan dapat mengembalikan hasil berupa satu nilai atau kumpulan data.
Contoh pembuatan store procedure pada My:
CREATE PROCEDURE hitung_total_harga(IN id_pesanan INT, OUT total_harga DECIMAL(10,2))
BEGIN
SELECT SUM(harga*jumlah) INTO total_harga
FROM detail_pesanan
WHERE id_pesanan = id_pesanan;
END
Pada contoh di atas, store procedure "hitung_total_harga" digunakan untuk menghitung total harga dari sebuah pesanan berdasarkan id pesanan yang diberikan sebagai parameter masukan. Store procedure tersebut menghasilkan nilai total harga sebagai parameter keluaran.
Setelah store procedure dibuat, kita dapat memanggilnya menggunakan perintah CALL:
CALL hitung_total_harga(123, @total);
SELECT @total;
Pada contoh di atas, kita memanggil store procedure "hitung_total_harga" dengan memberikan id pesanan 123 sebagai parameter masukan, dan menyimpan hasilnya ke dalam variabel @total. Setelah itu, kita menampilkan nilai dari variabel @total.
Store procedure dan function adalah dua fitur yang sering digunakan pada database MySQL. Meskipun keduanya memiliki kesamaan dalam beberapa aspek, ada perbedaan utama antara store procedure dan function.
Perbedaan antara store procedure dan function pada MySQL adalah sebagai berikut:
1. Return Value
Store procedure tidak selalu menghasilkan nilai kembalian (return value), sedangkan function selalu menghasilkan nilai kembalian. Dalam store procedure, nilai kembalian dapat dihasilkan melalui parameter keluaran (output parameter), sedangkan dalam function, nilai kembalian dihasilkan langsung oleh return statement.
2. Penggunaan
Store procedure digunakan untuk menjalankan perintah SQL dan melakukan operasi pada database, seperti insert, update, delete, atau pengambilan data, sedangkan function digunakan untuk melakukan operasi matematika, logika, atau string, dan mengembalikan nilai kembalian. Function biasanya digunakan sebagai bagian dari ekspresi SQL, sedangkan store procedure biasanya dipanggil dari aplikasi atau script.
3. Dalam Transaksi
Store procedure dapat dijalankan dalam transaksi, sedangkan function tidak dapat dijalankan dalam transaksi.
4. Pengaruh pada Database
Store procedure dapat mempengaruhi status database, seperti mengubah data atau tabel, sedangkan function tidak dapat mempengaruhi status database.
5. Optimasi
Pada MySQL, store procedure disimpan dalam bentuk terkompilasi dan dapat dioptimalkan oleh database engine, sedangkan function diinterpretasikan setiap kali dipanggil, sehingga kinerjanya bisa lebih lambat daripada store procedure.
Contoh penggunaan store procedure dan function pada MySQL:
-- Store Procedure
CREATE PROCEDURE hitung_pajak(IN harga DECIMAL(10,2), OUT pajak DECIMAL(10,2))
BEGIN
SET pajak = harga * 0.1;
END
-- Function
CREATE FUNCTION jumlah_barang(x INT, y INT)
RETURNS INT
BEGIN
DECLARE hasil INT;
SET hasil = x + y;
RETURN hasil;
END
Pada contoh di atas, store procedure "hitung_pajak" digunakan untuk menghitung jumlah pajak dari sebuah harga, dan function "jumlah_barang" digunakan untuk menghitung jumlah barang. Store procedure memiliki parameter masukan (input parameter) dan parameter keluaran (output parameter), sedangkan untuk function memiliki parameter masukan (input parameter) dan mengembalikan nilai atau hasil yang dihitung.
sekian terima kasih
Post a Comment for "Materi 12 : Store Procedure dan Function"