Rabu, 13 Oktober 2010

TUTORIAL IF

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.

0 komentar:

Posting Komentar