Pertemuan I KONSEP DASAR STORED ROUTINES TUJUAN 1. 2. 3. 4. 5. Mahasiswa dapat memahami apa yg dimaksud dengan stored routines Mahasiswa dapat memahami tentang keuntungan dari stored routines Mahasiswa dapat menjelaskan tentang feature utama dari stored routine Mahasiswa dapat memahami role untuk stored routines Mahasiswa dapat memahami konsep dasar pembuatan stored procedure dan stored function beserta dengan contoh Apakah Stored Routines ? • Stored Routines (SR) dapat terdiri dari 2 yaitu Stored Procedure (SP) dan Stored Function (SF). • Yang lebih umum sering disebut dengan PL/SQL singkatan dari Procedural Language / Structure Query Language. • PL/SQL mulai dikembangkan tahun 1970 – 1980. • PL/SQL merupakan perluasan dari bahasa query (SQL) yang memiliki kemampuan seperti bahasa pemrograman. Manipulasi data dan perintah-perintah query dalam SQL dimasukan ke dalam kode-kode pemrograman. Apakah Stored Routines ? (cont) • MySQL baru mengembangkan SR pada MySQL versi 5.0. SR dalam MySQL merujuk ke SQL 2003 • SR adalah suatu sub program atau sekelompok perintah SQL yang tersimpan dan menyatu dalam suatu database. • SR tersimpan dalam SERVER database dan bukan di komputer client dan akan menyatu dengan sebuah database dalam server. • Setelah SR dibuat,maka client tidak perlu lagi membuat statement sendiri-sendiri cukup dengan merefer SR yang sesuai. Beberapa situasi dimana SR sangatlah berguna: • Ketika banyak aplikasi pada client yang dibuat dengan bahasa pemrograman yang berbeda-beda dan bekerja dengan berbagai platform, membutuhkan database yang memiliki operasi yang sama. • Ketika keamanan sangat dibutuhkan. Sebagai contoh adalah bank, yang harus menyediakan lingkungan yang konsisten dan aman, dan suatu routine yang dapat memastikan setiap operasi tercatat. Karena dilakukan disisi server maka dapat diatur aplikasi dan user tidak dapat mengakses langsung ke dalam database secara langsung, tetapi hanya mengeksekusi SR tertentu saja. Keutungan dari SR • Mendukung konsep pemrograman CLIENT – SERVER tersimpan dalam SERVER database dan bukan di komputer client dan akan menyatu dengan sebuah database dalam server. • SR sangat portable. Aplikasi yang ditulis dalam SR dapat dijalankan pada sistem operasi dan platform apapun dimana database berjalan. Keutungan dari SR (cont) • SR mendukung SQL. Sangat erat integritasnya dengan SQL, sehingga tidak perlu adanya konversi tipe data antara SQL dan SR. Perintahperintah SQL dapat dilakukan di dalam SR. • SR akan meningkatkan unjuk kerja sistem. Pada saat program aplikasi memanggil SR maka akan dilaksanakan di sisi server, kemudian hasilnya akan dikirim ke client. • SR tersimpan dalam database dalam bentuk yang sudah terkompilasi sehingga prosesnya menjadi lebih cepat. Keutungan dari SR (cont) • Sekuritas menjadi lebih baik. SR memindahkan kode aplikasi dari client ke server sehingga dapat dilakukan pengamanan dengan melakukan proteksi terhadap pengrusakan, menyembunyikan dari detail internal, dan membatasi akses user. • Trigger yang merupakan bentuk khusus dari SR dapat mengontrol atau mencatat perubahan pada data, sehingga setiap perubahan data sesuai dengan ketentuan yang berlaku. Pemahaman Feature Utama dari SR PL/SQL mengkombinasikan kekuatan : – Dalam memanipulasi data dari SQL dan – Proses dari bahasa prosedural. • Dapat dilakukan kontrol program dengan statement seperti IF dan LOOP. Seperti halnya dengan bahasa prosedural, dapat dilakukan deklarasi variabel, mendefinisikan prosedur dan fungsi, dan melakukan trapping pada saat terjadi error saat program dijalankan. Pemahaman Feature Utama dari SR (cont) • SR dapat membantu melakukan break down dari masalah yg kompleks ke dalam kode prosedural yang mudah untuk dipahamai dan penggunaan kembali kode program untuk berbagai aplikasi. Pada saat suatu masalah dapat diselesaikan melalui SQL, kita dapat menggunakan perintah SQL tersebut untuk dimasukan ke dalam program SR. • Tipe data SR berkorespondesi dengan tipe kolom dari SQL sehingga memudahkan untuk melakukan pertukaran variable SR dengan yang ada di dalam tabel. Role untuk Store Routine dalam MySQL. SR dalam MySQL membutuhkan table proc dalam database mysql. Table proc merupakan tempat untuk menyimpan seluruh SR yang dibuat. Server akan memanipulasi mysql.proc dalam merespon statement untuk edit, hapus, alter SR. • Grant yang diberikan untuk dapat melakukan SR: – CREATE ROUTINE privilage dibutuhkan untuk membuat store routines – ALTER ROUTINE privilage dibutuhkan untuk melakukan alter atau drop store routine. Privilage ini akan di grant otomatis untuk orang yang membuat routine. – EXECUTE privilage dibutuhkan untuk mengeksekusi SR. Membuat Store Procedure Beberapa hal yang perlu diperhatikan dalam membuat store procedure : a. Ketika sebuah routine di jalankan secara implisit menggunakan statement USE nama_db. Sehingga penggunakan statement USE dalam store procedure tidak diijinkan. b. Sebuah routine mungkin tidak berada dalam databasenya. Sebagai contoh, kita dapat melakukan invoke store procedure p atau function f yang berhubungan dengan database test, dapat digunakan CALL test.p() atau test.f (). c. Pada saat database di drop, seluruh routine yang berhubungan dengannya akan di drop juga. Contoh store procedure : DELIMITER $$ DROP PROCEDURE IF EXISTS `pbd`.`sp_modul1` $$ CREATE PROCEDURE ‘pbd’.`sp_modul1`() BEGIN select * from barang; END $$ DELIMITER ; CALL sp_modul1(); Contoh store function DELIMITER $$ DROP FUNCTION IF EXISTS `pbd`.`hello` $$ CREATE FUNCTION ‘pbd’.`hello`(s char(20)) RETURNS char(50) BEGIN RETURN CONCAT('Hello ....,',s,' !'); END $$ DELIMITER ; SELECT HELLO (‘WORLD’);