35
Modul ke: Fakultas Program Studi Struktur Kendali Menggunakan PL/SQL Membuat struktur kendali dengan PL/SQL Albaar Rubhasy, S.Si., M.T.I. 0 5 FASILKOM Sistem Informasi

Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Embed Size (px)

DESCRIPTION

Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Citation preview

Page 1: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Modul ke:

Fakultas

Program Studi

Struktur Kendali Menggunakan PL/SQLMembuat struktur kendali dengan PL/SQL

Albaar Rubhasy, S.Si., M.T.I.

05

FASILKOM

Sistem Informasi

Page 2: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Outline Perkuliahan

• Struktur Kendali• Kendali Kondisional• Kendali Iteratif• Kendali Sekuensial

Page 3: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Struktur KendaliModul 05: Struktur Kendali Menggunakan PL/SQLMembuat struktur kendali dengan PL/SQL

Page 4: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Teorema Struktur

• Menurut teorema struktur, setiap program komputer dapat ditulis menggunakan struktur kontrol dasar.

• Tiga tipe struktur kontrol dasar:– Pilihan (selection)– Pengulangan (iteration)– Uruta (sequence)

• Ketiga tipe struktur dapat dikombinasikan untuk menangani suatu permasalahan.

Page 5: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Ilustrasi Struktur Kendali Dasar

Page 6: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Perbedaan Ketiga Struktur KendaliSelection (Kendali Kondisional)

Menguji sebuah kondisi kemudian mengeksekusi suatu pernyataan atau yang lainnya, tergantung pada kondisi apakah benar atau salah

Iteration (Kendali Iteratif) Mengeksekusi urutan pernyataan berulang kali selama kondisi masih berlaku

Sequence (Kendali Sekuensial)

Mengeksekusi urutan pernyataan secara berurutan pada saat terjadi

*) Kondisi: variabel atau ekspresi yang mengembalikan nilai Boolean (TRUE atau FALSE)

Page 7: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Kendali KondisionalModul 05: Struktur Kendali Menggunakan PL/SQLMembuat struktur kendali dengan PL/SQL

Page 8: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Kendali Kondisional (IF dan CASE)• Seringkali kendali kondisional dibutuhkan

untuk mengambil tindakan alternatif karena dihadapkan pada suatu situasi.

• Ada dua tipe kendali kondisional:– IF: memungkinkan untuk menjalankan tindakan

berdasarkan nilai kondisinya– CASE: mengevaluasi satu kondisi di antara berbagai

tindakan alternatif

Page 9: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan IF

• Ada tiga jenis pernyataan IF:– IF-THEN– IF-THEN-ELSE– IF-THEN-ELSEIF

Page 10: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan IF-THEN

• Urutan pernyataan dieksekusi hanya jika kondisi benar.

• Jika kondisi bernilai false atau null, pernyataan IF tidak melakukan apa-apa.

• Kontrol akan selalu diloloskan ke perintah selanjutnya.

Bentuk Umum

IF condition THENsequence_of_statements

END IF;

Page 11: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan IF-THENIF sales > quota THEN

compute_bonus(empid);UPDATE payroll SET pay = pay + bonus WHERE empno = emp_id;

END IF;

Catatan:Penulisan pernyataan IF-THEN dapat diringkas dalam satu baris sepertiIF x > y THEN high := x; END IF;

Page 12: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan IF-THEN-ELSE

• Urutan pernyataan dalam klausa ELSE dieksekusi hanya jika kondisi salah atau null.

• Klausa ELSE memastikan urutan pernyataan dieksekusi.

Bentuk Umum

IF condition THEN sequence_of_statements1ELSE sequence_of_statements2END IF;

Page 13: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan IF-THEN-ELSEIF trans_type = 'CR' THEN

UPDATE accounts SET balance = balance + credit WHERE ...

ELSEUPDATE accounts SET balance = balance - debit WHERE ...

END IF;

Page 14: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan IF-THEN-ELSEIF trans_type = 'CR' THEN

UPDATE accounts SET balance = balance + credit WHERE ...

ELSE IF new_balance >= minimum_balance THEN

UPDATE accounts SET balance = balance - debit WHERE ...

ELSE RAISE insufficient_funds; END IF;END IF;

Page 15: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan IF-THEN-ELSEIF

• Jika kondisi pertama adalah FALSE atau null, klausa ELSIF menguji kondisi lain.

• Sebuah pernyataan IF dapat memiliki sejumlah klausa ELSIF, klausa ELSE akhir adalah opsional.

• Kondisi dievaluasi satu demi satu dari atas ke bawah. Jika kondisi apapun benar, urutan yang terkait laporan dieksekusi dan kontrol lolos ke pernyataan berikutnya. Jika semua kondisi adalah FALSE atau null, urutan dalam klausa ELSE dieksekusi.

Bentuk Umum

IF condition1 THEN sequence_of_statements1ELSIF condition2 THEN sequence_of_statements2ELSE sequence_of_statements3END IF;

Page 16: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan IF-THEN-ELSEIFBEGIN ... IF sales > 50000 THEN bonus := 1500; ELSIF sales > 35000 THEN bonus := 500; ELSE bonus := 100; END IF;

INSERT INTO payroll VALUES (emp_id, bonus, ...);

END;

Page 17: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan CASE

Bentuk Umum

CASE selectorWHEN expression1 THEN sequence_of_statements1;WHEN expression2 THEN sequence_of_statements2;...WHEN expressionN THEN sequence_of_statementsN;[ELSE sequence_of_statementsN+1;]

END CASE;

Page 18: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan CASE

• Pernyataan dimulai dengan kata kunci CASE. Setelah itu dilanjutkan dengan selector.

• Selector dapat berupa fungsi atau variabel.• Setelah selector dilanjutkan dengan klausa WHEN yang diuji secara berurutan.

• Nilai dari selector menentukan klausa mana yang akan dieksekusi. Jika nilainya sama dengan ekspresi klausa WHEN, maka klausa tersebut dieksekusi.

Page 19: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan CASE

CASE gradeWHEN 'A' THEN dbms_output.put_line('Excellent');WHEN 'B' THEN dbms_output.put_line('Very Good');WHEN 'C' THEN dbms_output.put_line('Good');WHEN 'D' THEN dbms_output.put_line('Fair');WHEN 'F' THEN dbms_output.put_line('Poor');ELSE dbms_output.put_line('No such grade');

END CASE;

Page 20: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Kendali IteratifModul 05: Struktur Kendali Menggunakan PL/SQLMembuat struktur kendali dengan PL/SQL

Page 21: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Kendali Iteratif (LOOP dan EXIT)• Pernyataan LOOP memungkinkan serangkaian

pernyataan dijalankan secara berulang.• Ada tiga tipe pernyataan LOOP:

– LOOP– WHILE-LOOP– FOR-LOOP

Page 22: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan LOOP

• Setiap iterasi LOOP, serangkaian pernyataan dieksekusi.

• Jika proses berikutnya tidak diharapkan atau dimungkinkan, dapat digunakan pernyataan EXIT untuk menyelesaikan LOOP.

• Untuk menyelesaikan LOOP secara kondisional, dapat digunakan pernyataan EXIT-WHEN.

Bentuk Umum

LOOP sequence_of_statementsEND LOOP;

Page 23: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan LOOP

LOOP ... IF credit_rating < 3 THEN ... EXIT; -- exit loop immediately END IF;END LOOP;-- control resumes here

Page 24: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan WHILE-LOOP

• Sebelum setiap iterasi dari LOOP, kondisi dievaluasi.• Jika kondisi benar, urutan pernyataan dijalankan,

maka kontrol dilanjutkan di bagian atas LOOP.• Jika kondisi bernilai false atau null, LOOP dilewati dan

kontrol menuju kepada perintah selanjutnya.

Bentuk Umum

WHILE condition LOOP sequence_of_statementsEND LOOP;

Page 25: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan WHILE-LOOP

WHILE total <= 25000 LOOP ... SELECT sal INTO salary FROM emp WHERE ... total := total + salary;END LOOP;

Page 26: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan FOR-LOOP

• Rentang dievaluasi ketika FOR-LOOP pertama kali masuk dan tidak pernah dievaluasi.

• Setelah setiap iterasi, LOOP counter bertambah.

• Jika iterasi dimulai dari batas atas ke bawah, maka tambah kata kunci REVERSE. Jika tidak, maka iterasi dari batas bawah ke atas.

Bentuk Umum

FOR counter IN [REVERSE] lower_bound..higher_bound LOOP sequence_of_statementsEND LOOP;

Page 27: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Contoh Pernyataan FOR-LOOPFOR i IN 1..3 LOOP -- assign the values 1,2,3 to i sequence_of_statements -- executes three timesEND LOOP;

Page 28: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Kendali SekuensialModul 05: Struktur Kendali Menggunakan PL/SQLMembuat struktur kendali dengan PL/SQL

Page 29: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Kendali Sekuensial (GOTO dan NULL)• Berbeda dengan pernyataan IF dan LOOP,

pernyataan GOTO dan NULL tidak krusial untuk pemrograman PL/SQL.

• Pernyataan GOTO jarang digunakan. Namun terkadang dapat menyederhanakan logika.

• Pernyataan NULL dapat memperjelas makna dan tindakan dari pernyataan kondisional.

• Terlalu sering menggunakan pernyataan GOTO dapat menghasilkan kode yang kompleks dan tidak terstruktur (spaghetti code) yang sulit untuk dipahami dan diperlihara.

Page 30: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan GOTO

• Pernyataan GOTO bercabang ke suatu label tanpa bersyarat.

• Label harus unik dalam lingkup dan harus mendahului pernyataan dieksekusi atau blok PL/SQL.

• Ketika dieksekusi, pernyataan GOTO mentransfer kendali ke pernyataan berlabel atau blok.

Bentuk Umum

BEGIN ... GOTO insert_row; ... <<insert_row>> INSERT INTO emp VALUES ...END;

Page 31: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan GOTO

• Pernyataan GOTO bercabang ke suatu label tanpa bersyarat.

• Label harus unik dalam lingkup dan harus mendahului pernyataan dieksekusi atau blok PL/SQL.

• Ketika dieksekusi, pernyataan GOTO mentransfer kendali ke pernyataan berlabel atau blok.

Page 32: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan NULL

Bentuk Umum

EXCEPTION WHEN ZERO_DIVIDE THEN ROLLBACK; WHEN VALUE_ERROR THEN INSERT INTO errors VALUES ... COMMIT; WHEN OTHERS THEN NULL;END;

Page 33: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Pernyataan NULL

• Pernyataan NULL tidak melakukan apapun selain kontrol lolos ke pernyataan berikutnya.

• Dalam membangun kondisional, pernyataan NULL memberitahu pembaca bahwa kemungkinan telah dipertimbangkan, tapi tidak ada tindakan yang perlu diambil.

Page 34: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Quiz• Buat program PL/SQL untuk menghitung Pajak

Penghasilan (PPh) Terutang• Rumus : (Penghasilan Tahunan – PTKP)* Tarif Pajak• PTKP:

• Pajak:

Jumlah Tanggungan Tidak Kawin (TK) Kawin (K)

0 24.300.000 26.325.000

1 26.325.000 28.350.000

2 28.350.000 30.375.000

3 30.375.000 32.400.000

Penghasilan Kena Pajak Tarif Pajak

Sampai dengan Rp 50.000.000 5%

Di atas Rp 50.000.000 s.d. Rp 250.000.000 15%

Di atas Rp 250.000.000 s.d. Rp 500.000.000 25%

Di atas Rp 500.000.000 30%

Bonus point bagi yg bisa retrieve data dari database!

Page 35: Powerpoint pemrograman basis data & sql mg 5 fasilkom albaar rubhasy

Terima KasihAlbaar Rubhasy, S.Si., M.T.I.