Basis Data 2. Procedure dan Function Database. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

dokumen-dokumen yang mirip
Modul Pembangunan Aplikasi Basis Data Lanjut 2014

Pengenalan PL/SQL. Pertemuan 3

Pertemuan VI F U N C T I O N

BAB 6 PROGRAM UNITS DAN STRORED PROGRAMS UNITS

Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

Praktikum TRIGGER. Tujuan :

BAB VIII FUNGSI, PL/PGSQL dan TRIGER

Stored Procedure (create, calling SP dari Oracle dan dari JAVA)

Pertemuan IV CONDITION & HANDLER CURSOR

Computer Science, University of Brawijaya. Putra Pandu Adikara, S.Kom. Trigger. Basis Data 2

Membuat Function, Stored Procedur dan View pada MySQL

PL / SQL. Arif Basofi

Basis Data II. Pertemuan Ke-9 dan ke-10 (Stored Procedure dan Trigger) Noor Ifada S1 T. Informatika - UTM (2012) 1

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

PRAKTIKUM PL/SQL (Trigger) OLEH : WIRATMOKO YUWONO, ST

Modul 6 Function dan Trigger

BAB 2 : Deklarasi Variabel

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

Stored Procedure. M. Saefudin SKom, MMSI

BAB 4 : Interaksi PL/SQL dengan Oracle Server

Mudafiq Riyan Pratama

PL/SQL (PART 1) Teknik Informatika UNIKOM (2010) Disusun Oleh : Andri Heryandi, M.T.

Praktikum STORED PROGRAM. Tujuan :

Kontrak Kuliah. Stored Procedures and Function. Edi Sugiarto, S.Kom, M.Kom

Basis Data. Bagian IV SQL (3) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

Mengenal MySQL Stored Procedure

SEQUENCE DAN INDEX. Contoh: CREATE SEQUENCE dept_deptid_seq INCREMENT BY 10 START WITH 120 MAXVALUE 9999 NOCACHE NOCYCLE;

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

Pertemuan VII TRIGGERS

5/6/2010 KONSTRUK PROGRAM PL/SQL PROSEDUR STRUKTUR BLOK PADA BLOK ANONIM PL/SQL OVERVIEW MENGENAI SUBPROGRAM STRUKTUR BLOK PADA SUBPROGRAM PL/SQL

Constraint dan Manajemen Data dalam Timezone Berbeda

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 4 SINKRONISASI DATA

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Transaction dan Trigger. M. Saefudin SKom, MMSI

MODUL 1 DATABASE MYSQL

Bab 4 Pembahasan Dan Hasil Pengujian

Pengertian. Mengapa SP? Mengapa SP? 07/05/2012 STORED PROCEDURE

Pertemuan I KONSEP DASAR STORED ROUTINES

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

STORE PROCEDURE. Pemrograman Client Server Sarji, S.Kom Studi kasus pada

TUGAS PRAKTIKUM SISTEM BASIS DATA

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 4 SINKRONISASI DATA

1 TEKNOLOGI OBJECT-RELATIONAL DBMS pada ORACLE 10g

STRUCTURE QUERY LANGUAGE (SQL)

TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Djoni Darmawikarta

SQL DASAR BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Contoh SQL Constraint

MODUL VII STORED PROCEDURE

Contoh 3.1: Membuat suatu store procedure supaya menghapus semua pertandingan pemain berdasarkan nomor pemain yang ditentukan.

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

Agenda SQL. Pemakai SQL. Kemampuan SQL 02/12/2010 STRUCTURED QUERY LANGUAGE (SQL) Structured Query Language (SQL) (Pert. 9)

APLIKASI KONVERSI FLOWCHART KE KODE PROGRAM BAHASA PEMROGRAMAN PL/SQL MYSQL

3.1 Form Wizard. 3. Pilihlah menu use data block wizard dan tekanlah button OK, maka akan tampil window di bawah ini.

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

1. Mengetahui dan mengerti CURSOR 2. Mampu mengimplementasikan CURSOR dalam pemrograman di Oracle

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB 4 MEMBUAT LIST OF VALUE (LOV) DAN NON-BASE TABLE FIELDS

TUGAS BASIS DATA LANJUT

BAB IV HASIL DAN PEMBAHASAN

PEMROGRAMAN WEB 08 JavaScript Dasar

LAPORAN TERTULIS ON THE JOB TRAINING

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Instalasi RazorSQL pada Debian Wheezy

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

Membuat Executable Statements

Tahap Instalasi PostgreSQL di Windows

Transact-SQL (Trigger- Event, Store Procedure)

MODUL 4 INTERNET PROGRAMMING DATABASE

MODUL II. Instalasi OracleXE Dan SQL

Database Interfaces. By: Arif Basofi

Perangkat Lunak Pengembangan Web

1. Kompetensi Memahami Store Procedure dan Function yang tidak lain merupakan perintahperintah SQL yang diletakkan di dalam server database.

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

BAB V CURSOR AND RESULT SETS

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

VIEW OR STORED PROCEDURE

DAFTAR PUSTAKA. Adi Nugroho, Menjadi Administrator Basis Data Oracle 10g, Budi Rahardjo, Imam Heryanto, Pemograman PL/SQL ORACLE, 2003

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( )

Syntax Syntax SQL. Untuk lebih jelasnya dapat dilihat sebagai berikut : 1. DDL (Definition Data Language) a. CREATE

Aplikasi Rekursif dalam Analisis Sintaks Program

TUGAS PRAKTIKUM SISTEM BASIS DATA

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

Contoh SQL Constraint

Praktikum TRANSACT SQL. Tujuan : Praktikan mampu untuk mengerti dan memahami Transact-SQL

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

STRUCTURE QUERY LANGUAGE DDL & DML

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

Pertemuan 8. Dasar query basis data dengan SQLite ARFIAN HIDAYAT, S.KOM

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

Konsep Dasar. Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

B a s i s D a t a C H A P T E R. SQL Operasi DDL. Arif Basofi PENS 2015

Transkripsi:

Basis Data 2 Procedure dan Function Database Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Tujuan Dapat Memahami Pembuatan Procedure dan Function dalam Database: PL/SQL Procedure PL/SQL Function PL/SQL Stored Procedure 2

PL/SQL Procedure Procedure dalam pemrograman sangat membantu dalam menangani kompleksitas tugas dalam proses sistem, yang dapat membagi menjadi beberapa potongan tugas. Procedure adalah subprogram yg digunakan untuk melakukan proses tertentu. PL/SQL Procedure adalah procedure dalam bahasa pemrograman PL/SQL database Oracle, yang berbentuk block dengan rangkaian optional parameter dan mendukung penuh standar SQL. Procedure bisa disimpan dalam database sebagai object schema, shg suatu procedure bisa digunakan berulangkali tanpa harus melakukan parsing dan compile ulang. Procedure yang disimpan didatabase biasa disebut stored procedure. 3

PL/SQL Procedure Tiap parameter mengandung: nama parameter, penggunaan (IN, OUT, IN-OUT), dan tipe data (IN) adalah parameter input yang seharusnya tidak mengalami perubahan dalam procedure. (OUT) adalah parameter output yang memberikan suatu nilai didalam procedure. (IN-OUT) adalah parameter input-output, yang seharusnya memiliki suatu nilai input yang telah disediakan diluar procedure, akan tetapi dapat diubah saat didalam procedure. 4

PL/SQL Procedure (con t) Spesifikasi tipe data seharusnya tidak mengandung beberapa constraint seperti length. Misal untuk parameter dengan tipe string, gunakan tipe data VARCHAR2, tidak perlu menyertakan ukuran panjangnya. Syntax Struktur Procedure: CREATE [OR REPLACE] PROCEDURE ProcedureName [ (Parameter1,, ParameterN) ] IS [ sequence of declarations ] BEGIN sequence of statements [ EXCEPTION sequence of statements to respond to execptions ] END; 5

PL/SQL Procedure (con t) Contoh-1: Berikut contoh sederhana procedure pr_insertregistration: yang akan memasukkan suatu row kedalam table Registration dalam database University. Parameter input mengandung sejumlah nilai parameter untuk di-insert-kan. Procedure dbms_output.put_line akan call (memanggil) tampilan pesan bahwa insert was successful 6 CREATE OR REPLACE PROCEDURE pr_insertregistration (aregno IN Registration.RegNo%TYPE, astdssn IN Registration.StdSSN%TYPE, aregstatus IN Registration.RegStatus%TYPE, aregdate IN Registration.RegDate%TYPE, aregterm IN Registration.RegTerm%TYPE, aregyear IN Registration.RegYear%TYPE ) IS BEGIN INSERT INTO Registration (RegNo, StdSSN, RegStatus, RegDate, RegTerm,RegYear) VALUES (aregno, astdssn, aregstatus, aregdate, aregterm, aregyear); DBMS_OUTPUT.PUT_LINE( Added a row to the Registration table ); END;

PL/SQL Procedure (con t) --- Testing Code Contoh-1--- SET SERVEROUTPUT ON; -- Cek total row sebelum eksekusi procedure SELECT COUNT(*) FROM Registration; BEGIN pr_insertregistration (1250, 901-25-4567, To_Date( 21-Sep-2002 ), Spring,2002); END; / --Cek total row sesudah eksekusi procedure SELECT COUNT(*) FROM Registration; --Hapus row yang telah di-insert ROLLBACK; 7

PL/SQL Procedure (con t) Contoh-2: Agar procedure diatas dapat digunakan oleh procedure yang lain, sebaiknya struktur code-nya diubah menjadi rancangan yang baik dengan mengganti tampilan output yang akan menangkap success atau failure yang akan terjadi, dengan menambahkan EXCEPTION OTHER. Exception OTHER akan menangkap segala kesalahan yang terjadi, misal karena violation of primary atau foreign key constraint. CREATE OR REPLACE PROCEDURE pr_insertregistration (aregno IN Registration.RegNo&TYPE, astdssn IN Registration.StdSSN%TYPE, aregstatus IN Registration.RegStatus%TYPE, aregdate IN Registration.RegDate%TYPE, aregterm IN Registration.RegTerm%TYPE, aregyear IN Registration.RegYear%TYPE, aresult OUT BOOLEAN ) IS BEGIN aresult := TRUE; INSERT INTO Registration (RegNo,StdSSN,RegStatus,RegDate,RegTerm,RegYear) VALUES (aregno, astdssn, aregstatus, aregdate, aregterm, aregyear); EXCEPTION WHEN OTHERS THEN aresult := FALSE; 8 END;

PL/SQL Procedure (con t) --- Testing Code Contoh-2--- SET SERVEROUTPUT ON; -- Cek row sebelum eksekusi procedure SELECT COUNT(*) FROM Registration; DECLARE -- Parameter output harus dideklarasikan dahulu Result BOOLEAN; BEGIN pr_insertregistration (1250, 901-23-4567,To_Date( 21-Sep-2002 ), Spring,2002); IF Result THEN Dbms_output.put_line( Added a row to the Registration table ); ELSE Dbms_output.put_line( Row not added to the Registration table ); END IF; END; / --Cek row sesudah eksekusi procedure SELECT COUNT(*) FROM Registration; --Hapus row yang telah di-insert ROLLBACK; 9

PL/SQL Stored Procedure Database Procedure atau Stored Procedure adalah prosedur bahasa pemrograman akan tetapi tersimpan dan dimanage oleh DBMS (tersimpan pada sisi server database), berbeda seperti pada prosedur bahasa pemrograman yang lain. Beberapa alasan perlunya stored procedure dalam DBMS: 1. DBMS dapat meng-compile struktur bahasa pemrograman dalam stored procedure selama menggunakan standar SQL statement. 2. Stored Procedure memberikan kemudahan dalam pengembangan dan pembuatan aplikasi client-server. Stored Procedure disimpan dalam server database sehingga tidak perlu membuat replikasi pada tiap client. Pada awal munculnya aplikasi client-server, kemampuan stored procedure pada server merupakan teknik penting pada saat itu, akan tetapi dengan kemajuan teknologi saat ini sudah banyak alternatif lain selain menggunakan stored procedure, misal. dalam pembuatan aplikasi web dibutuhkan teknologi dalam menangani distributed object di web. (pendekatan object oriented) 10

PL/SQL Stored Procedure (con t) 3. Stored Procedure memberikan kemudahan dalam pembuatan operator dan fungsi yang lebih kompleks dari dukungan standar SQL. 4. Administrator database dapat memanage stored procedure dengan menggunakan tool yang sama dalam menangani bagian-bagian lain aplikasi database. Sebagian besar stored procedure dimanage oleh sistem security DBMS. 11

PL/SQL Function Fungsi berbeda dengan procedure. Fungsi seharusnya memberikan nilai balik (return value). PL/SQL Function mirip dengan PL/SQL Procedure yang mengandung rangkaian parameter. Akan tetapi, PL/SQL Function hanya menggunakan parameter input saja. Setelah rangkaian parameter didefinisikan, tipe data return juga didefinisikan. Sehingga dalam function body akan terdapat statement RETURN untuk men-generate nilai output dari fungsi tersebut. 12

PL/SQL Function (con t) Syntax struktur function: CREATE [OR REPLACE] FUNCTION FunctionName [ (Parameter1,, ParameterN) ] RETURN DataType IS [ sequence of declarations ] BEGIN sequence of statements including RETURN statement [ EXCEPTION sequence of statements to respond to execptions ] END; 13

PL/SQL Function (con t) Contoh-function: Berikut contoh fungsi sederhana fn_retrievestdname: Yang akan me-retrieve (mendapatkan) nama student dari Social Security Number (SSN). Predefined exception No_Data_Found adalah true jika statement SELECT tidak akan mengembalikan minimal satu nilai row. Statement SELECT menggunakan klausa INTO untuk menghubungkan variable dengan kolom database. Klausa INTO dapat digunakan hanya jika statement SELECT return at most one row (hanya mengembalikan nilai maks. 1 baris data). Jika klausa INTO digunakan saat statemen SELECT return more than one row, maka exception perlu digenerate untuk menampilkan pesan kesalahan dengan menggunakan prosedur Raise_Application_Error. 14

PL/SQL Function (con t) Contoh-function: CREATE OR REPLACE FUNCTION fn_retrievestdname (astdssn IN Student.StdSSN%TYPE) RETURN VARCHAR2 IS afirstname Student.StdFirstName%TYPE; alastname Student.StdLasttName%TYPE; BEGIN SELECT StdFirstName, StdLastName INTO afirstname, alastname FROM Student WHERE StdSSN = astdssn; RETURN(aLastName, afirstname); EXCEPTION --No_Data_Found is raised if the SELECT statement return no data. WHEN No_Data_Found THEN RETURN(NULL); WHEN OTHERS THEN raise_application_error(-20001, Database Error ); END; 15

PL/SQL Function (con t) --- Testing Code Contoh-Function--- SET SERVEROUTPUT ON; DECLARE astdname VARCHAR2(50); BEGIN --This call should display a student name astdname:= fn_retrievestdname( 901-23-4567 ); IF astdname IS NULL THEN Dbms_output.put_line( Student not found ); ELSE Dbms_output.put_line( Name is astdname); END IF; --This call should not display a student name astdname:= fn_retrievestdname( 905-23-4567 ); IF astdname IS NULL THEN Dbms_output.put_line( Student not found ); ELSE Dbms_output.put_line( Name is astdname); END IF; END; / 16