Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

PL/SQL Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan.

Presentasi serupa


Presentasi berjudul: "PL/SQL Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan."— Transcript presentasi:

1 PL/SQL Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan

2 REFERENSI Abraham Silberscahatz, Henry F. Korth. Database System Concepts. McGraw-Hill Raghu Ramakrisnan, Gherke. Database Management System. McGraw-Hill Greenberg, N. (Edition 1.1 August 2004). Oracle Database 10g: SQL Fundamental I. Jobi Varghese – BAB 6

3 Pengenalan PL/SQL PL/SQL:
• Kepanjangan dari Procedural Language extension to SQL • Merupakan gabungan dari struktur prosedural dengan SQL Terdiri dari beberapa bagian, yaitu DECLARE(optinal), BEGIN(mandatory), EXCEPTION(optional), END(mandatory). Menerangkan tentang arti PL/SQL

4 Tipe Blok PL/SQL Block Types
A PL/SQL program comprises one or more blocks. These blocks can be entirely separate or nested within another. There are three types of blocks that make up a PL/SQL program. They are: • Anonymous blocks • Procedures • Functions

5 Anonymous Block Ciri-cirinya: Blok tidak mempunyai nama
Tidak disimpan dalam database Setiap akan mengeksekusi, harus dicompile dulu Anonymous blocks: Anonymous blocks are unnamed blocks. They are declared inline at the point in an application where they are to be executed and are compiled each time the application is executed. These blocks are not stored in the database. They are passed to the PL/SQL engine for execution at run time. Triggers in Oracle Developer components consist of such blocks. These anonymous blocks get executed at run time because they are inline. If you want to execute the same block again, you have to rewrite the block. You will not be able to invoke or call the block that you wrote earlier because blocks are anonymous and do not exist after they are executed.

6 Contoh Anonymous Block
Variabel substitusi Terangkan tiap bagian: DECLARE: untuk mendeklarasi variabel BEGIN-END: berisi statement EXCEPTION: untuk menangani error Variabel substitusi untuk menginputkan data dari layar.

7 STRUKTUR BLOK PL/SQL DECLARE BEGIN END; / a INT; b INT; c NUMBER;
c := a + b - a / b * a; DBMS_OUTPUT.PUT_LINE('Hasilnya = '||c||' dolar'); END; /

8 Eksekusi PL/SQL SET SERVEROUTPUT ON
Hanya di eksekusi 1 kali setiap sesi

9

10 Identifier (Penamaan Variabel)
Harus dimulai dengan huruf Dapat terdiri dari kombinasi angka dan huruf Dapat mengandung karakter $ _ # Tidak lebih dari 30 karekter Tidak boleh menggunakan reserved words

11 Tipe Variabel Skalar Composite Reference Large Objects (LOB)
Menampung nilai tunggal. Nilai tergantung pada tipe data. Menampung variabel Boolean. Contoh: Varchar2 hanya menampung data berupa string Composite Mengandung elemen tunggal yang berupa skalar atau gabungan. Contoh : Record dan tabel adalah contoh tipe data gabungan. Reference Menampung nilai-nilai, memanggil pointer, yang mana pointer itu ke lokasi penyimpanan. Large Objects (LOB) Menampung nilai, memanggil lokasi, yang merinci lokasi LOB (seperti grafik) yang disimpan pada line. Bind Variables/Substitution Variables memasukkan variabel yang dideklarasikan pada precompiler program, screen fields di form aplikasi dan variabel iSQL *Plus.

12 TIPE DATA Tipe Data Skalar Tipe Data Komposit

13 Tipe Data Skalar CHAR -> maksimal ? VARCHAR -> maksimal ?
NUMBER -> maksimal ? DATE -> format ? BOOLEAN -> berapa kondisi ?

14 PL/SQL - VARCHAR DECLARE BEGIN END; / Pesan VARCHAR2(18);
Pesan := ‘Belajar PL/SQL’; DBMS_OUTPUT.PUT_LINE(Pesan); END; /

15 Tipe Data Komposit Record %TYPE --Skalar %ROWTYPE

16 %TYPE Merepresentasikan tipe data sebuah field
nama_variabel nama_tabel.nama_field%TYPE; Var1 TMahasiswa.NIM%TYPE; Var2 TMahasiswa.NAMA%TYPE;

17 %ROWTYPE Merepresentasikan tipe data satu record dari sebuah cursor
nama_variabel nama_cursor%ROWTYPE; Var3 C_Mahasiswa%ROWTYPE;

18 Record Memiliki lebih dari satu elemen
Merupakan deretan baris yang saling berhubungan PL/SQL records : Table-based Cursor-based Programmer-defined / User-defined

19 Table-Based Records Table-based record pada tabel mahasiswa DECLARE
mhs_rec mahasiswa%ROWTYPE; BEGIN SELECT * INTO mhs_rec FROM mahasiswa WHERE nim= ; DBMS_OUTPUT.PUT_LINE (mhs_rec.nim); DBMS_OUTPUT.PUT_LINE (mhs_rec.nama); END; /

20 Cursor-Based Record Cursor-based record pada tabel mahasiswa DECLARE
CURSOR c_mhs IS SELECT nim, nama FROM mahasiswa; mhs_rec c_mhs%ROWTYPE; BEGIN OPEN c_mhs; LOOP FETCH c_mhs INTO mhs_rec; EXIT WHEN c_mhs%NOTFOUND; DBMS_OUTPUT.PUT_LINE (mhs_rec.nim||’ ‘||mhs_rec.nama); END LOOP; CLOSE c_mhs; END; /

21 User-Defined Record User-defined record pada tabel mahasiswa DECLARE
TYPE mhs_type IS RECORD ( v_nim mahasiswa.nim%TYPE, v_nama mahasiswa.nama%TYPE); mhs_rec mhs_type; BEGIN SELECT nim, nama INTO mhs_rec FROM mahasiswa WHERE nim= ; DBMS_OUTPUT.PUT_LINE (mhs_rec.v_nim); DBMS_OUTPUT.PUT_LINE (mhs_rec.v_nama); END; /

22 PL/SQL TABLE (ARRAY) DECLARE
      TYPE tipe_arr_nilai IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; arr_nilai tipe_arr_nilai; total NUMBER; BEGIN       arr_nilai(1) := 1000;       arr_nilai(2) := 2000; arr_nilai(3) := 3000; total := arr_nilai(1) + arr_nilai(2) + arr_nilai(3); DBMS_OUTPUT.PUT_LINE (total); END; /

23 PERCABANGAN IF CASE

24 IF Statements IF kondisi THEN [ELSIF kondisi2 THEN [ELSE END IF;
Pernyataan; [ELSIF kondisi2 THEN Pernyataan2;] [ELSE Pernyataan3;] END IF;

25 Contoh IF DECLARE BEGIN END; / Var1 NUMBER; Hasil VARCHAR2(16);
IF Var1 >= 70 THEN Hasil := ‘Lulus’; END IF; DBMS_OUTPUT.PUT_LINE (Hasil); END; /

26 Contoh IF..ELSE DECLARE BEGIN END; / Var1 NUMBER; Hasil VARCHAR2(16);
IF Var1 >= 70 THEN Hasil := ‘Lulus’; ELSE Hasil := ‘Gagal’; END IF; DBMS_OUTPUT.PUT_LINE (Hasil); END; /

27 Contoh IF..ELSIF..ELSE DECLARE BEGIN END; / Var1 NUMBER;
Hasil VARCHAR2(16); BEGIN Var1 := 60; IF Var1 >= 70 THEN Hasil := ‘Lulus’; ELSIF Var1 >=60 AND Var1<70 THEN Hasil := ‘Hampir Lulus’; ELSE Hasil := ‘Gagal’; END IF; DBMS_OUTPUT.PUT_LINE (Hasil); END; /

28 CASE Expressions CASE variabel_pilihan END; /
WHEN pilihan1 THEN hasil1 WHEN pilihan2 THEN hasil2 [ELSE hasilN] END; /

29 Contoh CASE DECLARE BEGIN END; / Var1 NUMBER; Hasil VARCHAR2(16);
WHEN Var1>=70 THEN Hasil := ‘Lulus’; WHEN Var1>=60 AND Var1<70 THEN Hasil := ‘Hampir Lulus’; ELSE Hasil := ‘Gagal’; END CASE; DBMS_OUTPUT.PUT_LINE (Hasil); END; /

30 PERULANGAN LOOP FOR WHILE

31 LOOP LOOP Statement-statement; EXIT WHEN Kondisi; END LOOP;

32 LOOP DECLARE BEGIN END; Jumlah NUMBER; Jumlah := 0; LOOP END LOOP;
Jumlah := Jumlah +1; DBMS_OUTPUT.PUT_LINE (Jumlah); EXIT WHEN Jumlah=10; END LOOP; END;

33 FOR FOR Var IN [REVERSE] indeks_min..indeks_max LOOP END LOOP;
Statement-statement; END LOOP;

34 FOR DECLARE BEGIN END; Jumlah NUMBER; Jumlah := 10;
FOR i IN 1..Jumlah LOOP DBMS_OUTPUT.PUT_LINE (i); END LOOP; END;

35 FOR DECLARE BEGIN END; Jumlah NUMBER; Jumlah := 10;
FOR i IN REVERSE 1..Jumlah LOOP DBMS_OUTPUT.PUT_LINE (i); END LOOP; END;

36 WHILE WHILE kondisi LOOP Statement-statement; END LOOP;

37 WHILE DECLARE BEGIN END; Jumlah NUMBER; Jumlah := 1;
WHILE Jumlah < 10 LOOP DBMS_OUTPUT.PUT_LINE (Jumlah); Jumlah := Jumlah+1; END LOOP; END;

38 LABEL DAN GO TO Abraham Silberscahatz, Henry F. Korth. Database System Concepts. McGraw-Hill Raghu Ramakrisnan, Gherke. Database Management System. McGraw-Hill Greenberg, N. (Edition 1.1 August 2004). Oracle Database 10g: SQL Fundamental I. Jobi Varghese – BAB 6

39 EXCEPTION HANDLING Setiap kesalahan (error) atau peringatan (warning) yang muncul karena suatu perintah disebut sebagai exception

40 STRUKTUR EXCEPTION EXCEPTION
WHEN exception_1 [OR exception_2 [OR ...]] THEN statemen-statemen; WHEN exception_a [OR exception_b [OR ...]] THEN WHEN OTHERS THEN

41 TIPE EXCEPTION Predefined Exception User Defined Exception
Non-Predefined Exception

42 PREDEFINED EXCEPTION Exception bawaan dari database
Menampilkan pesan kesalahan secara otomatis dengan kode-kode tertentu

43 PREDEFINED EXCEPTION DECLARE BEGIN END; Var1 NUMBER;
Var2 VARCHAR2(30); BEGIN SELECT nim, nama into Var1, Var2 from TMahasiswa WHERE UPPER(nama) LIKE ‘%’||UPPER(‘an’); DBMS_OUTPUT.PUT_LINE (Var1||’ ‘||Var2); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE (‘Data tidak ditemukan’); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE (‘Lebih dari satu data ditemukan’); END;

44 USER DEFINED EXCEPTION
Dideklarasikan seperti Variabel nama_exception EXCEPTION; Pemanggilan dengan menggunakan RAISE RAISE nama_exception;

45 USER DEFINED EXCEPTION
DECLARE e_pesan EXCEPTION; BEGIN UPDATE TMahasiswa SET nama = ‘Abdul’ WHERE nim = 1009; IF SQL%NOTFOUND THEN RAISE e_pesan; END IF; COMMIT; EXCEPTION WHEN e_pesan THEN DBMS_OUTPUT.PUT_LINE (‘Data tidak ditemukan’); END;

46 NON-PREDEFINED EXCEPTION
Termasuk User Defined Exception nama_exception EXCEPTION; PRAGMA EXCEPTION_INIT (nama_exception,nomor_error);

47 NON-PREDEFINED EXCEPTION
DECLARE e_pesan EXCEPTION; PRAGMA EXCEPTION_INIT(e_pesan, -2291); BEGIN INSERT INTO TMahasiswa VALUES (1009, ‘Abdul’, ‘Bandung1’); COMMIT; EXCEPTION WHEN e_pesan THEN DBMS_OUTPUT.PUT_LINE (‘Error ditemukan’); END;

48 SELESAI


Download ppt "PL/SQL Program Studi D3 Teknik Informatika -Fakultas Ilmu Terapan."

Presentasi serupa


Iklan oleh Google