Bab 4 : : Cursor Implicit Dan Cursor Explicit : :



1.      Contoh1implisit.sql
Cara penulisan :

select [daftar kolom]
into [daftar variabel]
from [daftar tabel]
where [syarat]
------------------------------------------------------------
select first_name, last_name, salary
into nama_depan, nama_belakang, gaji
from employees
where first_name = ‘Susan’;

Contoh program :

declare
username employees.employee_id%type;
password employees.email%type;
employee_id employees.employee_id%type;
email employees.email%type;

begin
username :=&masukkan_employee_id;
password:='&masukkan_email';

select employee_id,email --DARI TABELNYA
into employee_id,email --VARIABEL BUATAN SENDIRI
from employees
where username=employee_id and password=email;

if (username=employee_id) AND (password=email) then
dbms_output.put_line(' Valid ');
else
dbms_output.put_line(' Tidak Valid ');
end if;

exception
when no_data_found then
dbms_output.put_line(' maaf data yang anda masukkan tidak ada');
end;
/

Output :

Penjelasan :
           
            Cursor implicit hanya bias menangani tidak lebih dari 1 data sedangkan cursor explicit dapat menampilkan banyak data. Dalam contoh soal ini yang di minta untuk menjadi outputan adalah kata “ valid”,”tidak valid”,dan “maaf data yang anda masukkan tidak ada”. Langkah pertama adalah mendeclarasikan apa saja yang nanti akan di jadikan inputan pada saat proses dijalankan, contohnya employee_id sebagai employee_id dan email sebagai password. Dan kita juga harus membuat variable penampung untuk menampung hasil inputan dari user nantinya yaitu username dan password. Selanjutnya kita melakukan select kolom into variable yang sudah kita buat tadi (bukan variable penampung) from table employees where username=employee_id dan password=email. Lalu system memerikasa kondisi apakah username dan password inputan user dengan data yang ada pada table employees tsb tidak menggunakan perintah if, jika ada maka akan muncul pesan “valid” dan apabila tidak ada akan muncul pesan “tidak valid”, dan apabila inputan user tsb tidak terdapat data yang akan menjadi outputan maka akan muncul pesan “maaf data yang anda masukkan tidak ada.”



2.      Contoh2explisit.sql

Cara penulisan :

DOFC à (DECLARE, OPEN, FETCH, CLOSE)
Declare
cursor [nama_cursor_bebas] is
select [daftar_kolom]
from [daftar_tabel]
where [syarat];
begin
open [nama_cursor_bebas];
loop
            fetch [nama_cursor_bebas] into [daftar_variabel];
            exit when [nama_cursor_bebas] %notfound;
            [aksi_lain]
end loop;
close [nama_cursor_bebas];
end;
/

Contoh program :

declare
a departments.department_id%type;
b departments.department_name%type;
c employees.salary%type;

cursor rani is
select department_id,department_name,avg(salary)
from departments natural join employees
where department_id=department_id
group by department_id,department_name;

begin
open rani;
dbms_output.put_line(' Department_ID           Department_name           salary');
loop
                fetch rani into a,b,c;
                exit when rani%notfound;
               
                dbms_output.put_line(           rpad(a,15,' ')                    ||                lpad(b,20,' ')             ||                lpad(c,20,' ')       );
end loop;
close rani;
end;
/

Output :



Penjelasan :

            Kali ini kita akan membahas salah 1 contoh cursor explicit yang belum terlalu sulit menurut saya. Dalam membuat sebuah program cursor explicit yang perlu kita perhatikan adalah kelengkapan penulisan nya, yaitu Declare,Open,Fetch,Close.
·         Declare berisi pendeclarasian cursor yang akan kita gunakan dengan nama terserah kita. Contoh penulisan “cursor rani is ”, maka di lanjutkan dengan lakukan select seperti biasa tanpa perintah into.
·         Open letaknya harus selalu di bawah begin. Lalu selalu lakukan looping karena kita ingin mengeluarkan outputan banyak baris.
·         Fetch itu berisi nama cursor yang menyalin data ke variable buatan kita dengan perintah into,disinilah into bisa di gunakan,jangan lupa gunakan looping  exit when sebagai penanda bahwa ketika data dalam system telah tidak ditemukan lagi maka program akan berhenti melakukan proses pencarian.
·         Close untuk menutup cursor yang tadi telah dibuka dan di declarasikan.

: : khusus DBMS : :

pak wahyu is the best :)

:: bapak ini penjelasan nya ranii yg buat sendiri loh..::
:)

: : Opini Anda : :

apakah opini anda ??

Blog Archive

: : Ayo Semangat : :

:: kita pasti bisa kalau kita mau berusaha ::