Jumat, 21 Oktober 2011

Kondisi & Perulangan Pada PL/SQL


Resume kuliah Pemrograman Basis Data 2 - Pertemuan 3

Resume : 3
Mata Kuliah : Pemrograman Basis Data 2

Umumnya kondisi pl/sql adalah struktur yang terdiri dari perintah IF dan Case. Terdapat tiga bentuk perintah-perintah,yaitu:
1. Perintah If-Then
  • Rangkaian perintah-perintah dieksekusi hanya jika kondisi adalah true. Jika kondisi bernilai false atau null, perintah If tidak melakukan apa-apa. Dalam salah satu kasus, kontrol berlaku kepada perintah selanjutnya
  • Bentuk Umum :
        IF condition THEN
        sequence_of_statements
        End IF;

  • Contoh :

1DECLARE
2PHarga NUMBER(5);
3BEGIN
4PHarga := 500;
5IF (PHarga > 100) THEN
6--JIKA SYARAT TERPENUHI, LAKUKAN AKSI DIBAWAH INI.
7DBMS_OUTPUT.PUT_LINE('PHarga diatas 100');
8END IF; --AKHIR DARI PENGKONDISIAN.
9END;


2. Perintah If-Then-Else
  • Rangkaian perintah-perintah dalam klausa Else dieksekusi hanya jik kondisi bernilai false atau null. Jadi, klausa Else memastikan bahwa rangkaian perintah-perintah tersebut dieksekusi.
  • Bentuk Umum :          
           If condition Then
          sequence_of_statement1
          Else
          sequence_of_statements2
          End If;
  •  Contoh :

01DECLARE
02 PId VARCHAR2(3);
03 PHarga NUMBER(5);
04BEGIN
05 PId := 'B03';
06 SELECT harga INTO PHarga FROM Barang WHERE IDB = PId;
07--MENGAMBIL NILAI HARGA PADA TABLE BARANG LALU DIMASUKKAN KE DALAM PHARGA.
08 IF (PHarga > 3000) THEN
09 DBMS_OUTPUT.PUT_LINE('Mahal!');
10 ELSE
11 DBMS_OUTPUT.PUT_LINE('Murah!');
12 END IF;
13END;

3. Perintah If-Then-Else-If
  • Jika kondisi pertama bernilai false atau null, klausa ElseIf akan menguji kondisi lainnya. Perintah IF dapat memiliki sejumlah klausa ElseIf; klausa final Else bersifat opsional (bisa digunakan atau tidak). Kondisi-kondisi dievaluasi satu demi satu dari atas ke bawah. Jika suatu kondisi bernilai true, rangkaian perintah-perintah yang ada di dalamnya dieksekusi dan kontrol akan menuju ke perintah selanjutnya. Jika seluruh kondisi bernilai false atau null, maka rangkaian perintah-perintah di dalam klausa Else yang akan dieksekusi.
  • Bentu Umum :
          If condition1 Then
         sequence_of_statement1
         ElseIf condition2 Then
         sequence_of_statement2
         Else
         sequence_of_statement3
         End If;
  • Contoh:

01DECLARE
02 PId VARCHAR2(3);
03 PHarga NUMBER(5);
04BEGIN
05 PId := 'B02';
06 SELECT harga INTO PHarga FROM Barang WHERE IDB = PId;
07 IF PHarga > 3500 THEN
08 DBMS_OUTPUT.PUT_LINE('Mahal!');
09 ELSIF PHarga < 3500 THEN
10 DBMS_OUTPUT.PUT_LINE('Murah!');
11 ELSIF PHarga = 3500 THEN
12 DBMS_OUTPUT.PUT_LINE('Harga pas!');
13 END IF;
14END;

4. Perintah Case
  • Seperti halnya perintah IF, Perintah Case menyeleksi satu rangkaian perintah-perintah untuk dieksekusi. Namun, untuk menyeleksi rangkaian perintah-perintah tersebut, perintah case menggunakan penyeleksi, bukannya menggunakan banyak ekspresi-ekspresi boolean.
  • Bentuk Umum:
          [<>]
          case selector
          when expression1 then sequence_of_statement1;
          when expression2 then sequence_of_statement2;
         ....................
         when expression then sequence_of_statementN;
         [else sequence_of_statement+1;]
         end case [label_name];

  • Contoh:


5. Perintah While Loop
  • Sebelum setiap perulangan dari loop, kondisi dievaluasi, Jika kondisi true, rangkaian perintah-perintah dieksekusi, kemudian kontrol kembali ke awal loop. Jika kondisi false atau null, loop diabaikan dan kontrol menuju ke perintah selanjutnya.
  • Bentuk umum:
           While condition Loop
           sequence_of_statements
           End Loop;
  • Contoh:

6. Perintah For Loop
  • Jumlah perulangan melalui loop While tidak diketahui sampai loop berakhir, namun jumlah perulangan melalui loop For telah diketahui sebelum loop dijalankan. Loop-loop For berulang sejumlah jangkauan integer tertentu. Jangkauan ini adalah bagian dari iteration schema, yang diapit oleh kata-kata kunci For dan Loop. Tanda titik dua (..) bertindak sebagai operator jangkauan .
  • Bentuk Umum:
          For counter In [reverse] Lower_bound..higher_bound loop
          sequence_of_statements
          End Loop;
  • Contoh:


          

Tidak ada komentar:

Posting Komentar