Anda di halaman 1dari 11

Modul 4 - Function & Cursor

Assalamualaikum.. Hai ketemu lagi nih,. :)

Pada kesempatan kali ini kita akan belajar bersama - sama mengenai Function & Cursor didalam oracle
database, serta penulisan syntax-nya.

Langsung saja yuk, perlu diketahui terlebih dahulu kalau didalam PL / SQL (Procedural Language /
Structural Query Language) terdapat beberapa modul, salah satunya yang akan kita pelajari kali ini, yap
betul sekali, Modul function dan cursor.

Sebelumnya apa sih yang dimaksud dengan Function, dan apa yang dimaksud dengan Cursor? Yuk cari
tahu bersama - sama.

A. Function

Function atau lebih sering disebut Stored Function merupakan salah satu modul dari PL / SQL yang dapat
mempermudah melakukan pengolahan suatu nilai dan mengembalikan nilai tertentu. Jika kalian sudah
mempelajari Algoritma Pemograman maka Function ini tidak jauh berbeda dengan Fungsi yang ada di
Algoritma Pemograman, yang berbeda hanya struktural syntax-nya saja.

Syntax function secara umum sebagai berikut:

Sekarang mari kita belajar membuat function, tetapi telebih dahulu kita buat database user baru dengan
nama function seperti berikut:
Lalu kita membuat tabel baru dalam database user function dengan nama tabel latihan_function:

Isi kan tabel latihan_function dengan data berikut:

Setelah itu, kita akan membuat function yang akan mengambil nilai terbesar dari tabel latihan_function
tadi, bagaimana function nya? Seperti inilah functionnya:

Dalam function tersebut, terdapat variabel baru (nilai_maksimum) yang berguna untuk menampung
nilai keluaran dari function yang kita buat, yaitu nilai terbesar dari tabel latihan_function.

Untuk mengetahui function yang kita buat berjalan atau tidak, kita bisa melakukan eksekusi terhadap
function yang kita buat tadi, dengan cara:

Output Hasilnya adalah sebagai berikut:


Pemanggilan stored function juga dapat dilakukan melalui syntax SQL, contohnya sebagai berikut:

Cara menghapus / drop stored function:

B. Cursor

Cursor berfungsi untuk menangkap / mengambil banyak data yang banyaknya telah ditentukan sesuai
kebutuhan.

Cursor digunakan dalam script PL/SQL untuk menampilkan data yang tersimpan di dalam database.

Berikut merupakan macam - macam cara penulisan cursor sesuai dengan penggunaan:

Catatan:

Cursor_1 bertipe data refcursor dan dapat digunakan untuk semua query.

Cursor_2 adalah cursor yang memiliki query.

Cursor_3 adalah cursor yang memiliki query dan sekaligus parameter. Key akan digantikan dengan nilai
bertipe integer saat cursor di buka / dieksekusi.

Membuka Cursor

Untuk Cursor_1, perintah yang digunakan untuk membukanya:


Untuk cursor_2, perintah yang digunakan untuk membukanya:

Untuk cursor_3, perintah untuk membukanya:

Menggunakan Cursor

Setelah cursor dibuka, nilainya dapat dimanipulasi dengan perintah yang diekspresikan sebagai berikut:

Untuk cursor - cursor yang tadi diatas, perintah untuk menggunakannya adalah:

Jika cursor_1 tersebut memiliki lebih dari satu kolom, dapat menggunakan cara ini:

Setelah digunakan sebaiknya cursor ditutup untuk menghemat memory yang digunakan.

Ada dua macam cursor yaitu implicit cursor (kursor implisit) dan explicit cursor (kursor eksplisit).

1. Implicit Cursor

Implicit Cursor merupakan cursor yang tidak perlu dideklarasikan pada bagian declaration.

Contoh :
2. Explicit Cursor

Explicit cursor merupakan cursor yang harus dideklarasikan pada bagian declare.

Contoh :

Explicit cursor harus melalui empat tahap yaitu declare, open, fetch dan close. Berikut ini

adalah penjelasannya:

1. Pada tahap declare, cursor dideklarasikan pada blok PL/SQL. Cursor perlu

dideklarasikan karena sifat cursor yang menyerupai variable (dapat dipanggil dalam blok

utama program) namun deklarasi untuk cursordiletakkan setelah deklarasi variable lain,

tepat sebelum awal program (begin).

2. Pada tahap open, cursor dibuka (query dalam cursor dieksekusi dan hasilnya

ditampung dalam memory).

3. Pada tahap fetch, satu baris data dalam cursor diambil dan ditransfer ke

variable penampung yang ada pada klausa into. Karena jumlah baris data kemungkinan

lebih dari satu maka biasanya fetch diletakkan dalam looping yang akan berhenti begitu

semua baris data dalam cursor selesai di-fetch ke variable penampung.

4. Pada tahap close, cursor ditutup dan hasil query dalam cursor dihapus dari memory.

Untuk mengakses cursor ada beberapa kaidah yang perlu diketahui, yaitu :
1. Membuka Cursor

2. Mengambil record dari cursor

Atau

3. Menutup cursor

Latihan Membuat Cursor

1. Buat Tabel dan Isi Tabel seperti contoh dibawah ini:

2. Lalu Prosedur yang berisi Cursor seperti berikut:


3. Lalu eksekusi Prosedur tersebut, maka hasilnya akan terlihat seperti berikut
Contoh penggunaan Procedure, Function, dan Cursor yang disertai dengan Constraint dan
Sequence
Kasus :
Bagaimana kita mengetahui skor / nilai akhir mahasiswa dengan data mahasiswa,kunci
jawaban dan jawaban mahasiswa?

Jawab :

1. Buat Tabel

Tabel Mahasiswa

Tabel Kunci

Tabel Jawaban
Tabel Skor

2. Buat Function
3. Buat Procedure

4. Eksekusi Prosedur dan lihat di table skor. JIka di tabel skor ada datanya, maka query diatas
tidak error.

Terimakasih Atas perhatiannya, Semangat !! :v

Anda mungkin juga menyukai