Nama: Defranata
NIM : 10514243
Apa Itu Cursor?
Pada program PL/SQL, kita tidak bisa menyimpan data hasil query yang lebih dari 1
record di variabel. Untuk menyimpan data yang lebih dari 1 record, maka
gunakanlah Cursor. Karena cursor berperan sebagai penampung data dari hasil
query.
Tahapan Dalam Cursor
Ada beberapa tahapan atau proses dalam membuat cursor di Oracle PL/SQL,
yaitu:
1. Deklarasi (DECLARE)
Tahapan ini digunakan untuk mendeklarasikan sebuah cursor. Sintaknya adalah:
CURSOR cursor_name IS SELECT ...;
2. Open
Tahapan ini digunakan untuk membuka atau mengaktifkan sebuah cursor. Sintaknya
adalah:
OPEN cursor_name;
3. Fetching Data (Mengambil data)
Tahapan ini digunakan untuk mengambil data dari sebuah cursor dan ditampung
dalam sebuah variabel yang telah ditentukan. Sintaknya adalah :
FETCH cursor_name INTO variable_list;
4. CLOSE (Menutup cursor).
Tahapan ini digunakan untuk menutup atau me-nonaktifkan sebuah cursor.
Sintaknya adalah :
CLOSE cursor_name;
Atribut Pada Cursor
Di bawah ini adalah atribut-atribut yang sering digunakan ketika membuat sebuah
cursor di PL/SQL. Biasanya digunakan pada implicit cursor.
Atribut
Keterangan
SQL
%ROWCOUN
T
Digunakan untuk menampilkan jumlah record yang dihasilkan dari
SELECT, UPDATE, dan DELETE statement.
SQL%FOUND Bernilai TRUE jika cursor menghasilkan record/baris atau record
berhasil di update atau di delete
SQL
Kebalikan dari SQL%FOUND, yaitu bernilai TRUE jika cursor tidak
%NOTFOUND menghasilkan record/baris
SQL%ISOPEN Bernilai true jika cursor masih aktif (open)
Jenis Cursor
Ada 2 jenis cursor pada oracle PL/SQL, yaitu:
1. Implicit Cursor
Implicit Cursor adalah cursor yang di deklarasikan dan dikelola secara otomatis oleh
PL/SQL untuk semua operasi SELECT Statement dan DML (Data Manipulation
Language). Implicit cursor akan menghasilkan 1 row/record.
2. Explicit Cursor
Explicit Cursor adalah cursor yang didefiniskan pada bagian deklarasi (DECLARE)
dan biasanya menggunakan mekanisme open, fetching, dan close cursor.
Contoh soal dan Jawaban :
1. Buatlah function yang mengembalikan nama hari dalam 1 pekan, dengan
parameter input berupa indeks hari.
Contoh program utama :
BEGIN
DBMS_OUTPUT.PUT_LINE('Hari ke-3 = ' || hari(3));
END;
Output :
Hari ke-3 = Selasa
2. Buatlah function untuk menghitung luas persegi panjang, dengan parameter
berupa panjang dan lebar persegi panjang.
Contoh program utama :
BEGIN
DBMS_OUTPUT.PUT_LINE('Luas persegi panjang = ' || luaspp(3,5));
END;
Output :
Luas persegi panjang = 15
3. Buatlah procedure untuk menampilkan laporan.
Contoh program utama :
BEGIN
lap_nilai('1')
END;
Output :
4. Buatlah function untuk menghitung nilai (40% UTS + 60% UAS).
5. Ubahlah program pada no.3 dengan memanfaatkan function pada no. 4.
Contoh program utama :
BEGIN
lap_nilai2('1');
END;
Output :