TUTORIAL IF
Percabangan (branching)
Adalah suatu kontrol untuk pengecekan yang dilakukan sebelum statemen-statemen dalam sebuah blok SQL dieksekusi. Statemen-statemen tersebut akan dilakukan jika suatu kondisi yang kita definisikan bernilai benar (TRUE), sebaliknya jika kondisi bernilai salah (FALSE), maka statemen-statemen tersebut tidak akan pernah dieksekusi. Istilah percabangan di sini juga sering disebut pemilihan, artinya blok SQL akan memilih statemen yang akan dieksekusi berdasarkan kondisi yang dipenuhinya. SQL mendukung dua buah cara untuk melakukan pemilihan statemen, yaitu dengan menggunakan statemen IF dan CASE.
A. Menggunakan statemen IF
Untuk memudahkan pembahasan, disini kita akan mengklasifikasikan pemilihan dengan menggunakan statemen IF ini ke dalam tiga bagian, yaitu struktur untuk satu kondisi, dua kondisi dan tiga kondisi.
1.1 Satu kondisi
Dalam struktur jenis ini SQL hanya akan mengecek sebuah kondisi, apabila kondisi tersebut tidak terpenuhi atau bernilai FALSE, maka eksekusi akan berpindah ke statemen selanjutnya yang berada di bawah blok pemilihan. Sebaliknya, apabila kondisi terpenuhi atau TRUE, maka statemen yang terdapat di dalam blok pemilihan tersebut akan dieksekusi terlebih dahulu sebelum akhirnya dilanjutkan ke statemen berikutnya yang berada di bawah blok pemilihan.
Contoh syntax satu kondisi :
IF kondisi THEN
statemen
END IF;
Latihan1 : Buatlah sebuah blok SQL yang menampilkan teks ‘PERSEDIAAN BARANG TELAH HABIS’ dari tabel barang yang nama barangnya LEMARI ES dan jika jumlah stok dari barang tersebut sama dengan 0.
declare
vstok barang.stok_barang%type;
begin
select stok_barang into vstok from barang
where upper(nama_barang)=upper(‘lemari es’);
--Memeriksa nilai dari variabel vstok
If (vstok = 0) then
dbms_output.put_line(‘PERSEDIAAN BARANG TELAH HABIS’);
end if;
end;
/
Keterangan :
- Pada bagian deklarasi dari jawaban di atas, terdapat variabel vstok yang bertipe barang.stok_barang%type. Tipe data tersebut sebenarnya implementasi dari formula namatabel.namakolom%type, dan %type berguna untuk menjamin bahwa tipe dari variabel vstok tersebut sama dengan tipe dari kolom stok_barang pada tabel barang,
- select stok_barang into vstok from barang
where upper(nama_barang) = upper(‘lemari es’);
syntax tersebut artinya mengambil jumlah stok lemari es dari tabel barang dan kemudian menyimpannya ke dalam variabel vstok.
1.2 Dua kondisi
Struktur ini lebih kompleks bila dibandingkan dengan struktur pemilihan yang baru saja kita pelajari sub bab di atas. Pasalnya, disini kita juga harus mendefinisikan sebuah kondisi khusus yang berguna untuk mengatasi apabila kondisi yang didefinisikan tidak terpenuhi. Kondisi khusus tersebut akan diletakkan pada bagian ELSE. Berikut ini bentuk umum dari pembuatan struktur IF yang memiliki dua buah kondisi.
IF kondisi THEN
statemen A;
ELSE
statemen B;
END IF;
END;
Jika kondisi dipenuhi (bernilai benar), maka statemen A akan dieksekusi, tetapi jika tidak dipenuhi (bernilai salah), maka yang akan dieksekusi adalah statemen B.
1.3 Tiga kondisi atau Lebih
Dalam struktur pemilihan jenis ini minimal terdapat dua buah kondisi yang harus diperiksa dan satu lagi kondisi khusus yang akan mengatasi kejadian dimana semua kondisi yang didefinisikan tidak terpenuhi (bernilai salah). Berikut ini bentuk umum dari pembuatan struktur pemilihan dalam SQL yang mengandung tiga buah kondisi atau lebih.
IF kondisi1 THEN
statemen A;
ELSE IF kondisi2 THEN
statemen B;
ELSE
statemen C;
END IF;
END;
Berbeda dengan dua pengecekan yang telah diterangkan sebelumnya, pengecekan tiga kondisi atau lebih ini relatif lebih rumit. Disini mula-mula akan dilakukan pengecekan terhadap kondisi_1, jika bernilai benar maka statemen A akan dieksekusi, tetapi jika nilai kondisi_1 ini salah maka akan dilakukan pengecekan nilai terhadap kondisi berikutnya, yaitu kondisi_2. Jika kondisi_2 bernilai benar, maka statemen B akan dieksekusi tetapi jika nilainya salah maka yang akan dieksekusi adalah statemen C.
Contoh syntax :
declare
noBulan integer;
namaBulan varchar(9);
begin
noBulan := 3;
if noBulan=1 then
namaBulan := ‘Januari’;
else if noBulan=2 then
namaBulan :=’Februari’;
else if noBulan=3 then
namaBulan :=’Maret’;
else if noBulan= 4 then
namaBulan :=’April’;
else if noBulan= 5 then
namaBulan :=’Mei’;
else if noBulan= 6 then
namaBulan :=’Juni’;
else if noBulan= 7 then
namaBulan :=’Juli’;
else if noBulan= 8 then
namaBulan :=’Agustus’;
else if noBulan=9 then
namaBulan :=’September’;
else if noBulan=10 then
namaBulan :=’Oktober’;
else if noBulan=11 then
namaBulan :=’November’;
else if noBulan=12 then
namaBulan :=’Desember’;
else
namaBulan :=’’;
end if;
dbms_output.put_line(nama_bulan);
end;
/
SQL JIKA ... LAIN Pernyataan
SQL IF ... ELSE Pernyataan digunakan untuk menguji kondisi. JIKA ... LAGI Pernyataan menggunakan dalam pelaksanaan sebuah pernyataan Transact-SQL (Toko Prosedur atau T-SQL) dan Trigger.
JIKA tes dapat diulang setelah JIKA lain atau mengikuti suatu ELSE. Tidak ada batasan untuk jumlah tingkat bersarang.
JIKA kondisi puas dan kembali ekspresi Boolean TRUE, maka akan dieksekusi JIKA pernyataan SQL Blok.
JIKA kondisi tidak puas dan FALSE Boolean kembali ekspresi, itu akan dieksekusi ELSE Blok Pernyataan SQL QUERY.
Sintaks untuk JIKA ... LAIN
IF (Boolean_expression)
BEGIN
Sql Blok Pernyataan
AKHIR
LAIN
BEGIN
Sql Blok Pernyataan
AKHIR
Di bawah ini adalah contoh sederhana dari ... ELSE Pernyataan IF dengan 1 JIKA ... LAIN Blok
Untuk bagian Boolean_expression, Anda dapat mengganti dengan kondisi Anda agar sesuai dengan query SQL Anda.
Hal ini juga dapat menggunakan Exists dalam Kondisi untuk memeriksa keberadaan Pernyataan SQl atau Row.
IF (3> 2)
BEGIN
PILIH 'Benar'
AKHIR
LAIN
BEGIN
PILIH 'Salah'
AKHIR
Nilai = Benar
IF (3 <2)
BEGIN
PILIH 'Benar'
AKHIR
LAIN
BEGIN
PILIH 'Salah'
AKHIR
Nilai = Salah
Di bawah ini adalah contoh lain lebih dari 1 IF ... ELSE SQL Blok Pernyataan
IF (10 <2)
PILIH 'Benar'
LAIN
PILIH 'Salah'
IF ((10-2)> 5)
PILIH 'Lebih dari 5'
Nilai = Salah
Nilai = Lebih dari 5
Jika Anda JIKA ... ELSE Blok SQL Pernyataan hanya memiliki 1 query SQL, Anda tidak perlu menyertakan BEGIN ... END. Jika Anda JIKA ... ELSE Blok SQL Pernyataan memiliki lebih dari 1 query SQL, Anda perlu menyertakan BEGIN ... END untuk membiarkannya dieksekusi semua query SQL dalam Anda SQL Query Blok.
Rabu, 13 Oktober 2010
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar