Rabu, 13 Oktober 2010

INPUT OUTPUT & STATEMEN IF PADA SQL




A. Membuat Script Input Output


Blok PL/SQL secara umum terdiri atas tiga bagian :

DECLARE
-- berisi deklarasi variable, konstanta,
-- prosedur, ataupun fungsi
BEGIN
-- berisi statemen-statemen yang akan dieksekusi
EXCEPTION
-- berisi perintah untuk mengatasi kesalahan
-- yang mungkin muncul
END;
Blok DECLARE dan EXCEPTION bersifat opsional, hanya dituliskan saat dibutuhkan. Bagian yang wajib adalah BEGIN dan END.

LANGKAH-LANGKAH :
1. Buka notepad
2. Ketikan komponen utama script seperti di bawah ini













3. Sebagai contoh: membuat kalkulator sederhana. Ketikan script seperti di bawah ini













4. Simpan file tersebut seperti pada gambar di bawah.

















5. Untuk mengeksekusi script yang telah dibuat, bukalah ‘Command Prompt’, ketikan perintah ‘sqlplus’, kemudian login dengan username dan password hr. Pastikan bahwa user hr sudah di-unlock melalui user system.














6. Ketikan perintah ‘set serveroutput on’ kemudian masukan alamat tempat penyimpanan file kalkulator.sql tadi. Jangan lupa sebelum memasukan alamat filenya, tambahkan dahulu tanda’@’, lalu untuk alamat file diberi tanda petik dan jangan lupa diakhiri tanda titik koma ‘;’. Kemudian tekan enter.













        





CONTOH-CONTOH LAIN:

1.    Script menghitung keliling & luas lingkaran 
declare
jari2 number(5,2);
keliling number(7,2);
luas number(7,2);

begin
jari2 := &jari2;
keliling := 2*3.14*jari2;
luas := 3.14*power(jari2,2);
dbms_output.put_line('Jari-jari lingkaran = '||jari2);
dbms_output.put_line('keliling lingkaran = '||keliling);
dbms_output.put_line('luas lingkaran = '||luas);

end;
/


Hasil output:


1.                                                   2.          Script untuk mengubah format tanggal sysdate(tanggal yang di set di komputer)
declare

begin
dbms_output.put_line('Sekarang tanggal: '||sysdate);
dbms_output.put_line('Sekarang hari '||to_char(sysdate,'DAY')||' tanggal '||to_char(sysdate,'DD')||' bulan '||to_char(sysdate,'MM')||' tahun'||to_char(sysdate,'YY'));

end;
/

Hasil output:



3.    Script untuk menghitung umur seseorang 5 tahun yang akan datang
declare
a varchar(20);
b number(2);
c number(2);

begin
a:='&nama';
b:=&umur;
c:=b+5;
dbms_output.put_line('Hai, nama saya '||a);
dbms_output.put_line('5 tahun lagi umur saya:' ||c||'tahun');

end;
/

Hasil output:


B. Statement IF


Penggunaan statemen IF dapat diklasifikasikan ke dalam tiga bagian, yaitu struktur untuk satu kondisi, dua kondisi, dan tiga kondisi atau lebih.

Satu Kondisi (IF-THEN)
IF kondisi THEN
statemen-statemen;
END IF;
Pada struktur ini, PL/SQL hanya akan mengecek sebuah kondisi. Apabila kondisi tersebut terpenuhi (bernilai TRUE) maka statemen-statemen dalam blok pemilihan tersebut akan dieksekusi terlebih dulu sebelum dilanjutkan ke statemen di bawah blok pemilihan. Akan tetapi bila kondisi tidak terpenuhi (bernilai FALSE) maka eksekusi akan langsung berpindah ke statemen di bawah blok pemilihan.

Dua Kondisi (IF-THEN-ELSE)
IF kondisi THEN
statemen-statemen A;
ELSE
statemen-statemen B;
END IF;
Pada struktur ini, perlu didefinikan kondisi khusus untuk mengatasi apabila kondisi yang didefinisikan pada blok IF tidak terpenuhi. Kondisi khusus tersebut diletakkan pada bagian ELSE.
Apabila kondisi IF terpenuhi (bernilai TRUE) maka statemen-statemen A akan dieksekusi terlebih dulu sebelum dilanjutkan ke statemen yang berada di bawah blok pemilihan. Bila kondisi IF tidak terpenuhi (bernilai FALSE) maka statemen-statemen B yang akan dieksekusi terlebih dulu sebelum dilanjutkan ke statemen yang berada di bawah blok pemilihan.

Tiga Kondisi atau Lebih Kondisi (IF-THEN-ELSIF)
IF kondisi_1 THEN
statemen-statemen A;
ELSIF kondisi_2 THEN
statemen-statemen B;
...
ELSIF kondisi_n THEN
statemen-statemen N;
[ELSE
statemen-statemen lain;]
END IF;
Pada struktur ini, minimal terdapat dua kondisi yang harus diperiksa dan satu tambahan kondisi khusus yang akan mengatasi kejadian dimana semua kondisi yang didefinisikan tidak terpenuhi (bernilai FALSE).
Mula-mula dilakukan pengecekan terhadap kondisi_1, jika TRUE maka statemen-statemen A akan dieksekusi dan kemudian mengeksekusi statemen yang berada di bawah blok pemilihan. Tapi bila FALSE maka akan dilakukan pengecekan selanjutnya untuk kondisi_2. Jika kondisi_2 TRUE maka statemen-statemen B akan dieksekusi sebelum statemen di bawah blok pemilihan dieksekusi, dan seterusnya. Apabila seluruh kondisi ELSIF tidak terpenuhi, maka statemen pada blok ELSE yang akan dieksekusi.

Contoh Penggunaan Statement IF

declare
nama varchar(50);
harga_buku number(10);
diskon number(5);
total number(5);


begin
nama := '&nama';
harga_buku := &harga_buku;
diskon := &diskon;
total := harga_buku - ((harga_buku*diskon)/100);


dbms_output.put_line('Selamat Datang');
dbms_output.put_line('Harga yang harus dibayar = Rp. '||total);


if (diskon < 20) then
dbms_output.put_line('Pelit amat sih');
elsif (diskon >= 20) and (diskon < 50) then
dbms_output.put_line('Biasa aja ah');
else
dbms_output.put_line('wah baik banget');
end if;


end;
/


Output:




declare
nama varchar(50);
jenis_kelamin varchar(1);
umur number(5);


begin
nama := '&nama';
jenis_kelamin := '&jenis_kelamin';
umur := &umur;


if (jenis_kelamin ='p') and (umur < 20) then
dbms_output.put_line('mba '||nama||' Belajar yang bener');


elsif (jenis_kelamin ='p') and (umur > 60) then
dbms_output.put_line('mba '||nama||' Inget mati');


elsif (jenis_kelamin ='p') and (umur >= 20) and (umur <= 60) then
dbms_output.put_line('mba '||nama||' Buruan nikah bisi expired!');


elsif (jenis_kelamin ='l') and (umur < 25) then
dbms_output.put_line('mas '||nama||' Belajar yang bener');


elsif (jenis_kelamin ='l') and (umur > 60) then
dbms_output.put_line('mas '||nama||' inget mati');


elsif (jenis_kelamin ='l') and (umur >= 25) and (umur <= 60) then
dbms_output.put_line('mas '||nama||' Buruan nikah bisi expired!');


end if;


end;
/


Output:


1 komentar:

  1. entri yg udah dirapihin tapi hasilnya tetep terlihat ga rapi ya???
    (bingung mode on) >_<

    BalasHapus