Materi 12 : Store Procedure dan Function

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"