Home

Prosedural if_then_else

Kontruksi Pengatur Aliran Eksekusi
Untuk keperluan pengaturan aliran eksekusi di dalam prosedur atau fungsi tersimpan, MySQL menyediakan berbagai kontruksi yang terkait dengan pengambilan keputusan dan pengulangan. Implementasinya berupa perintah IF, CASE, LOOP, ITERATE, REPEAT, WHILE, dan LEAVE.
Pernyataan IF
Pernyataan IF berguna untuk melakukan pengambilan keputusan berupa pemilihan eksekusi didasarkan suatu keadaan. Bentuknya:
IF kondisi THEN daftar_pernyataan
[ ELSEIF kondisi THEN daftar_pernyataan ] . . .
[ ELSEIF daftar_pernyataan ]
END IF
Daftar pernyataan yang terletak sesudah THEN dieksekusi hanya kalau kondisi didepan THEN bernilai (TRUE). Bagian ELSEIF digunakan untuk menyeleksi kembali kalau keadaan sebelumnya bernilai salah (FALSE).
Contoh berikut menunjukan prosedur yang akan menampilkan nilai terkevil dari dua buah parameternya.
USE pegawai
DELIMITER //
CREATE PROCEDURE tes_if ( x INT, y INT )
BEGIN
IF x < y THEN
SELECT CONCAT ( ‘ Terkecil : ‘, x ) ;
ELSEIF ;
END
//
DELIMITER ;
Contoh pemanggilan fungsi tes_if ()
Mysql > CALL tes_if ( 10, 22 );
+------------------------------------+
| CONTAC ( ‘ Terkecil : ‘, x ) |
+------------------------------------+
| Terkecil : 10 |
+------------------------------------+
1 row in set ( 0. 00 sec )
Query ok, 0 rows affected ( 0. 00 sec )
Mysql > CALL tes_if (22, 10 ) ;
+------------------------------------+
| CONTAC ( ‘ Terkecil : ‘, y ) |
+------------------------------------+
| Terkecil : 10 |
+------------------------------------+
1 row in set ( 0. 00 sec )
Query ok, 0 rows affected ( 0. 00 sec )
Mysql >
Pernyataan CASE
Pernyataan CASE merupakan alternative lain untuk IF dengan kondisi yang bertingkat. Bentuknya:
CASE case_value
WHEN search_condition THEN statement_list
[ WHEN search_condition THEN statement_list ] . . .
[ else statement_list ]
END CASE
Seleksi akan dilakukan dimulai dari WHEN teratas. Kalau ada yang memenuhi (kondisi bernilai benar / TRUE) maka pernyataan yang terletak sesudah THEN akan dieksekusi dan kemudian menuju ke END CASE. Kalau suatu WHEN diperiksa tidak memenuhi, maka WHEN berikutnya akan diperiksa. Bagian ELSE akan dieksekusi kalau tak ada WHEN yang cocok.
Contoh penggunaan CASE:
DELIMITER //
CREATE PROCEDURE tes_case ( nilai INT )
BEGIN
DECLARE skor CHAR (50) ;
CASE
WHEN nilai > 100 OR nilai < 0 THEN
SET skor = ‘Nilai salah’ ;


WHEN nilai > = 90 THEN
SET skor = ‘skor: A’ ;
WHEN nilai > = 70 THEN
SETskor = ‘skor: B’ ;
WHEN nilai > = 60 THEN
SET skor = ‘skor: C’ ;
WHEN nilai > = 50 THEN
SET skor = ‘skor: D’ ;
ELSE
SET skor = ‘skor: E’ ;
END CASE ;
SELECT skor ;
END
/
Contoh lain dari konstruksi if :
declare
a number(5);

begin
a:=&masukkan_nilai;

if (a<50) then
dbms_output.put_line('gagal');
else if (a=50) then
dbms_output.put_line('ulang lagi');
else if (a>=50) then
dbms_output.put_line('lulus');
else
dbms_output.put_line('lulus');
end if;
end if;
end if;
end;
/

0 komentar:

Posting Komentar