Jumat, 22 November 2013

Tugas Praktikum SMBD

Function dan Procedure

    A .     Function


Function dapat digunakan secara langsung dalam statement select, update dan delete . Hasil dari function dapat dikembalikan sebagai output. Sebuah function hanya dapat mengembalikan sebuah nilai.


       * Cara membuat Function menggunakan syntax :

            CREATE FUNCTION function_name ([func_parameter[,...]])
RETURNS type
routine_body


Function menerima parameter (func_parameter) yang didefinisikan dengan nama parameter beserta tipe datanya. Pembuatan function juga perlu pendefinisian tipe data nilai yang dikembalikan oleh fungsi menggunakan statement RETURNS. Definisi apa yang dilakukan oleh sebuah fungsi diletakkan pada routine_body diapit oleh BEGIN dan END.


  * Contoh pembuatan fungsi :

Mysql  > DELIMITER //
Mysql  > CREATE FUNCTION full_name( in_first_name VARCHAR(15), in_last_name VARCHAR(15))
-> RETURNS VARCHAR(35)
-> BEGIN
-> RETURN CONCAT(in_first_name,' ',in_last_name);
-> END//
           

  • ·         Melihat function yang telah kita buat


Function apa saja yang telah kita buat dapat kita lihat menggunakan statement show function status

Syntax : mysql> SHOW FUNCTION STATUS;

  • ·         Menghapus function


Function yang telah dibuat dapat dihapus menggunakan DROP FUNCTION nama_function.

Syntax :  mysql> DROP FUNCTION full_name;   kemudian
              mysql > show function status;



    B.     Procedure


Procedure dapat berisi statement SQL atau operasi lain yang disimpan dalam database. Sebuah procedure dapat dipanggil menggunakan statement call nama_procedure disertai parameter yang diperlukan.


  • ·         Membuat procedure


Syntax : CREATE PROCEDURE sp_name ([proc_parameter[,...]])
            

*   contoh pembuatan stored procedure :
mysql> DELIMITER //
 mysql> CREATE PROCEDURE show_employees()
            -> BEGIN
                        -> SELECT * FROM employee;
            -> END //
                  mysql> DELIMITER ;
                              mysql> CALL show_employees();



  • ·         Parameter dalam procedure


Procedure menerima parameter (proc_parameter) yang didefinisikan sebagai berikut:
proc_parameter:

Dalam parameter procedure, didefinisikan jenis parameter, yaitu IN, OUT, atau INOUT. Bila tidak dispesifikasikan saat pembuatan, maka default jenis parameter yang dipilih adalah IN.

  •     Parameter IN mengirimkan sebuah nilai ke dalam procedure. Procedure bisa saja merubah nilai parameter ini, namun perubahan tersebut tidak visibel terhadap pemanggil procedure ketika procedure tersebut selesai.


  •           Parameter OUT mengirimkan nilai dari procedure ke pemanggil. Nilai inisial dari parameter ini

adalah NULL dan nilainya visibel terhadap pemanggil.

  •         Parameter INOUT diinisialisasi oleh pemanggil, dapat dimodifikasi oleh procedure, dan perubahan nilai parameter visibel terhadap pemanggil ketika procedure selesai.








n  Parameter IN

Ø  contoh penggunaan parameter IN:

mysql> DELIMITER $$
mysql> CREATE PROCEDURE getEmployeeByCity (IN cityName      VARCHAR(255))
        -> BEGIN
        -> SELECT * FROM employee WHERE city LIKE cityName;
        -> END $$


n  Parameter OUT

Ø  contoh penggunaan parameter OUT :

mysql> DELIMITER :)
mysql> CREATE PROCEDURE getNumEmployee (OUT numEmployee INT)
        -> BEGIN
        -> SELECT COUNT(*) INTO numEmployee FROM employee;
                     -> END :)


n   Parameter INOUT

Ø  contoh penggunaan parameter INOUT:
mysql> DELIMITER ^^
mysql> CREATE PROCEDURE increase(INOUT number INT)
         -> BEGIN
         -> SET number = number + 15;
         -> END ^^

mysql> DELIMITER ;

Pada contoh di atas, kita membuat procedure increase untuk menambahkan input dengan nilai 15. Memodifikasi nilai parameter input dilakukan dengan menggunakan SET.

  • ·         Melihat procedure yang telah dibuat


Procedure yang telah kita buat dapat dilihat menggunakan statement show procedure status.

Syntax sebagai berikut :
mysql> SHOW PROCEDURE STATUS;

  • ·         Menghapus procedure


Procedure yang telah kita buat dapat dihapus menggunakan DROP PROCEDURE.

Syntax : mysql> DROP PROCEDURE increaseSalary;

Tidak ada komentar:

Posting Komentar