Anda di halaman 1dari 13

EXERCISE WORKBOOK

[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

1 IDENTITAS
Kajian
Blok Modular PL/SQL
Topik
Blok modular PL/SQL (Stored Procedure & Stored Function)
Referensi
[1] Oracle Database 10g: Develop PL/SQL Program Units volume 1 Student Guide
[2] Benjamin Rosenzweig, Elena Silvestrova. Oracle PL/SQL by Example. Prentice Hall PTR
Kompetensi Utama
Memahami konsep Modular PL/SQL
Mampu membuat blok Stored Procedure PL/SQL dengan dan tanpa parameter
Mampu membuat blok Stored Function PL/SQL dengan dan tanpa parameter
Mampu mengeksekusi Stored Procedure & Stored Function dari SQL Plus
Lama Pengerjaan
4 x 30 menit
Jenis Pengerjaan *(bisa dipilih lebih dari 1)
Individu Kelompok Mandiri Terbimbing

2 PERTANYAAN PENDAHULUAN
Berisi daftar pertanyaan pendahuluan untuk bahan eksplorasi mahasiswa sebelum memulai perkuliahan.

1. Apakah hubungan SQL/Plus dengan PL/SQL ?

2. Jelaskan pengertian perbedaan blok modular dan blok non-modular PL/SQL !

3. Apakah Stored Procedure dan Stored Function ?

4. Bagaimanakah cara melihat Stored Procedure & Stored Function yang ada pada database Oracle ?

5. Dapatkah Stored Procedure dan Stored Function memiliki parameter input atau parameter output ?

6. Bagaimana melakukan eksekusi Stored Procedure dan Stored Function di lingkungan SQL Plus ?

3 RINGKASAN TEORI
Blok Modular PL/SQL merupakan blok dari bahasa pemrograman PL/SQL dimana terjadi pengelompokkan baris-
baris koding menjadi modul. Contoh dari modul pada PL/SQL adalah Stored Procedures dan Stored Functions.

3.1 STORED PROCEDURES


Stored Procedures merupakan modul dari PL/SQL yang memiliki kemampuan menerima parameter input,
melakukan pengolahan terhadap parameter input tersebut lalu menampilkannya. Stored Procedures dapat
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

memiliki parameter input ataupun tidak memiliki parameter. Parameter pada stored procedures dapat berupa
input, output maupun gabungan input dan output. Seperti halnya blok non-modular PL/SQL, stored procedures
mampu menangani pesan kesalahan yaitu dengan Exception Handling. Stored Procedures dapat berdiri sendiri ,
digunakan bersama dengan stored procedures lainnya maupun digunakan dengan Stored Functions.
Pada exercise workbook ini mahasiswa akan mempelajari dan melakukan praktikum untuk membuat, menghapus,
merubah stored procedures baik dengan menggunakan parameter maupun tanpa menggunakan parameter.
Parameter pada stored procedure ada 3 yaitu :
- IN, digunakan untuk menerima dan menyimpan nilai inputan dari luar stored procedures
- OUT, digunakan untuk menyimpan nilai hasil proses dari stored procedures yang akan ditampilkan
- INOUT, dapat berfungsi sebagai IN dan OUT
Stored Procedures sangat berguna ketika diterapkan pada aplikasi karena memudahkan pembuat program untuk
melakukan perbaikan ketika ditemukan suatu kesalahan pada program yang dibuatnya.

3.1.1 Aturan Penulisan Stored Procedures

- Kalimat CREATE PROCEDURE bertujuan untuk membuat sebuah stored procedures pada PL/SQL.

- [OR REPLACE] digunakan jika pembuat program akan melakukan perubahan pada stored procedure yang
telah dibuat

- Procedure_name merupakan nama dari stored procedure yang dibuat

- parameter merupakan nama parameter dari stored procedure

- [mode] merupakan jenis dari parameter apakah IN, OUT atau INOUT

- Datatype merupakan tipe data, dapat berupa tipe data skalar maupun tipe data reference

- IS | AS merupakan tanda pemisah antara header stored procedure dan isi dari stored procedure, gunakan
salah satu saja

- [local_variable_declarations;] berisikan variabel-variabel lokal dari stored procedure sebagaimana


variable-variabel pada blok non-modular PL/SQL
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

- BEGIN merupakan tanda awal dari isi proses PL/SQL

- --actions; berisikan baris-baris koding PL/SQL dapat berupa runtunan, pemilihan, perulangan maupun
perintah DML.

- END [procedure_name]; merupakan tanda akhir dari struktur stored procedures yang di buat, dapat juga
ditambahkan pada baris selanjutnya tanda garis miring /.

3.1.2 Siklus Stored Procedures

Berikut ini siklus dari sebuah stored procedure :


1. Pada poin 1 dan 2 stored procedure dibuat atau di edit menggunakan SQL*Plus ataupun editor lain (misal:
Oracle SQL Developer).
2. Poin 3 dilakukan jika stored procedure tersebut hanya di compile untuk mengetahui ada tidaknya kesalahan
dari baris program.
3. Poin 4 dilakukan ketika stored procedure yang telah di buat akan dilihat outputnya, execute dapat dilakukan
setelah proses compile maupun tanpa proses compile terlebih dahulu (auto compiled).
Jika ditemukan kesalahan pada stored procedure yang di buat, pesan error akan muncul. Pesan error ini dijadikan
acuan oleh pembuat stored procedure untuk memperbaiki kesalahan yang terjadi.
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

3.1.3 Contoh Stored Procedure

Berikut ini contoh stored procedure yang diberi nama coba :

CREATE OR REPLACE PROCEDURE coba AS


v_var1 VARCHAR2(20);
v_var2 VARCHAR2(6);
v_var3 NUMBER(5,3);
BEGIN
v_var1 := 'string literal';
v_var2 := '12.345';
v_var3 := 12.345;
DBMS_OUTPUT.PUT_LINE('v_var1: '||v_var1);
DBMS_OUTPUT.PUT_LINE('v_var2: '||v_var2);
DBMS_OUTPUT.PUT_LINE('v_var3: '||v_var3);
END;
/

Untuk melakukan eksekusi pada stored procedure coba ketikkan perintah berikut :
EXECUTE coba

Output yang dihasilkan adalah

Jika tidak tampil output program pastikan bahwa SERVEROUTPUT statusnya ON.

3.1.4 Stored Procedure Parameter

Pada Stored Procedure terdapat 3 jenis mode parameter, yaitu IN, OUT dan IN OUT.
Mode parameter IN merupakan mode default dari stored procedure, maksudnya walaupun tidak
diketikkan secara otomatis akan diberikan parameter IN pada stored procedure yang di buat. Mode
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

parameter IN menerima dan menyimpan nilai inputan yang diberikan kepada stored procedure ketika
stored procedure dijalankan.
Mode parameter OUT berfungsi untuk menampung hasil nilai pengolahan dari stored procedure, nilai ini
nantinya akan ditampilkan atau diproses pada blok PL/SQL lain (stored procedure lain) atau diproses
dengan bahasa pemrograman lain (misal: PHP).
Mode parameter IN OUT merupakan mode kombinasi dari 2 mode sebelumnya. Pada mode ini parameter
yang menggunakan mode IN OUT dapat menerima dan menampung nilai dari luar stored procedure
ketika dijalankan maupun menerima dan menampung nilai dari hasil pengolahan stored procedure itu
sendiri.
Parameter pada stored procedure dapat menggunakan tipe data :
skalar
%TYPE
%ROWTYPE

3.1.4.1 Parameter IN
Berikut ini contoh penggunaan mode parameter IN pada stored procedure dan cara eksekusinya :
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

3.1.4.2 OUT Parameters


Berikut ini contoh penggunaan mode parameter OUT pada stored procedure dan cara eksekusinya :
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

3.1.4.3 IN OUT Parameters


Berikut ini contoh penggunaan mode parameter IN OUT pada stored procedure :

3.1.4.4 Parameters Passing


Terdapat 2 cara untuk menggunakan parameter pada stored procedure. Berikut ini contoh penggunaan parameter
pada saat pemanggilan stored procedure :
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

3.1.5 Removing Stored Procedures


Berikut ini cara untuk menghapus stored procedure yang telah ada :

3.2 STORED FUNCTIONS


Stored Functions merupakan modul dari PL/SQL yang dapat mempermudah melakukan pengolahan suatu nilai dan
mengembalikan nilai tertentu. Konsep dari Stored Functions mirip dengan konsep Stored Procedures, tetapi stored
functions harus mengembalikan suatu nilai.

3.2.1 Aturan Penulisan Stored Functions

- Kalimat CREATE FUNCTION bertujuan untuk membuat sebuah stored function pada PL/SQL.

- [OR REPLACE] digunakan jika pembuat program akan melakukan perubahan pada stored function yang
telah dibuat

- Procedure_name merupakan nama dari stored procedure yang dibuat

- parameter merupakan nama parameter dari stored function

- [mode] merupakan jenis dari parameter apakah IN, OUT atau INOUT
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

- Datatype merupakan tipe data, dapat berupa tipe data skalar maupun tipe data reference

- RETURN datatype berfungsi sebagai deklarasi untuk mengembalikan tipe data tertentu. Tipe data disini
harus tanpa ada keterangan panjang karakter/digit angka.

- IS | AS merupakan tanda pemisah antara header stored function dan isi dari stored function, gunakan
salah satu saja

- [local_variable_declarations;] berisikan variabel-variabel lokal dari stored function sebagaimana variable-


variabel pada blok non-modular PL/SQL

- BEGIN merupakan tanda awal dari isi proses PL/SQL

- --actions; berisikan baris-baris koding PL/SQL dapat berupa runtunan, pemilihan, perulangan maupun
perintah DML.

- RETURN expression mengembalikan nilai suatu variabel tertentu yang akan ditampilkan

- END [function_name]; merupakan tanda akhir dari struktur stored function yang di buat, dapat juga
ditambahkan pada baris selanjutnya tanda garis miring /.
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

3.2.2 Siklus Stored Functions

Berikut ini siklus dari sebuah stored procedure :


1. Pada poin 1 dan 2 stored function dibuat atau di edit menggunakan SQL*Plus ataupun editor lain (misal:
Oracle SQL Developer).
2. Poin 3 dilakukan jika stored function tersebut hanya di compile untuk mengetahui ada tidaknya kesalahan dari
baris program.
3. Poin 4 dilakukan ketika stored function yang telah di buat dieksekusi, execute dapat dilakukan setelah proses
compile maupun tanpa proses compile terlebih dahulu (auto compiled).
Jika ditemukan kesalahan pada stored function yang di buat, pesan error akan muncul. Pesan error ini dijadikan
acuan oleh pembuat stored function untuk memperbaiki kesalahan yang terjadi.
Hanya satu buah RETURN yang dikembalikan oleh stored function. Jika menggunakan kondisi (IF), RETURN dapat
berisi beberapa nilai yang berbeda.
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

3.2.3 Contoh Stored Function


Berikut ini contoh pembuatan sebuah stored function. Gunakan user skema HR.

Function pada Oracle dapat digunakan untuk mengisi nilai suatu variabel

Eksekusi dari SQL*Plus sebagai berikut :

Eksekusi dari query SQL sebagai berikut :

3.2.4 Removing Stored Functions


EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

4 STUDI KASUS
Buat user dengan nama latihan, buat tabel sesuai dengan diagram relasi antar tabel pada file
1_Studi_Kasus_Belajar_Mahasiswa.docx. Isikan nilai pada tabel-tabel sesuai dengan isian pada file tersebut.

4.1 BAGIAN A (INDIVIDU)


1. Stored Procedure:

a. Tabel Kelas.

i. Ketika di eksekusi tampil informasi seluruh informasi kode kelas, nama kelas, kapasitas.
Tampilkan jumlah kelas dari masing-masing program studi.

ii. Modifikasi stored procedure sehingga dapat melakukan input data :

EXECUTE input(6,PIS-11-01,37);

kdKelas NamaKelas Kapasitas


6 PIS-11-01 37
7 PIS-11-02 38
8 PIS-11-03 36
9 PCE-11-01 37
10 PCA-11-01 38
iii. Modifikasi stored procedure sehingga tampilannya sebagai berikut :

kdKelas NamaKelas Kapasitas


1 PIS-10-01 40
3 PIS-10-03 40
5 PCA-10-01 40
7 PIS-11-02 38
9 PCE-11-01 37
Jumlah Seluruh kelas = 5.
Jumlah Kelas Prodi MI = 3, Prodi TK = 1, Prodi KA = 1.

b. Tambahkan data berikut ke dalam tabel Mahasiswa:

NIM Nama Alamat kdKelas


3011003 Indra Gunawan Jl. Banda 1 11
3011004 Ahmad Suganda Jl. Buahbatu 99 11
3011005 Anggia Rusnandar Jl. Banda 4 12
3011006 Alfred Sihombing Jl. Bangka 7 12
3021002 Indah Permata Sari Jl. Ambon 12 13
Gunakan stored procedure pada soal 1.a (di atas) untuk melakukan penambahan kelas. Stored
procedure di eksekusi dari dalam stored procedure yang baru.
EXERCISE WORKBOOK
[MI2183]-[2012-2013]#[K1.V1]

Nama MK : Pemrograman Basis Data


Disampaikan pada minggu ke-1 & ke-2
E
Program Studi Manajemen Informatika Politeknik Telkom Bandung
Jl. Telekomunikasi Terusan Buah Batu, Bandung, 40254

2. Stored Function

a. Buatlah fungsi untuk menghitung jumlah kelas pada program studi MI pada tabel Kelas. Eksekusi dari
SQL*Plus dan query SQL !

b. Buatlah fungsi untuk menghitung jumlah mahasiswa program studi MI, gunakan fungsi sebelumnya !

Anda mungkin juga menyukai