semester genap 2018/2019 fungsi bawaan, pl/sql dan ... · basis data lanjut (semester genap...

28
Semester Genap 2018/2019 Salhazan Nasution, S.Kom, MIT Fungsi Bawaan, PL/SQL dan Exception Handling Basis Data Lanjut

Upload: others

Post on 09-Nov-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

Semester Genap 2018/2019

Salhazan Nasution, S.Kom, MIT

Fungsi Bawaan, PL/SQL dan Exception Handling

Basis Data Lanjut

Page 2: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

Fungsi Bawaan, PL/SQL dan Exception Handling

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com 2

Page 3: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

3

• Group Function Mengoperasikan beberapa row untuk memberikan satu hasil,

mirip dengan fungsi statistik

• Fungsi Karakter & String Manipulasi karakter

• Fungsi Tanggal & Waktu Manipulasi tanggal

Fungsi Bawaan Oracle

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 4: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

4

Group Function

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

• Count • Sum • Avg • Max • Min

Menghitung jumlah baris data Menghitung jumlah bilangan Mencari nilai rata-rata Mencari nilai maksimum Mencari nilai minimum

Page 5: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

5

SQL> select COUNT (stok) from barang;

3

SQL> select SUM (stok) from barang;

100

Group Function (2)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

ID_BARANG ID_KATEGORI NAMA_BARANG HARGA STOK

1 1 fanta 5000 20

2 3 indomie 1000 50

3 2 relaxa 3000 30

Page 6: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

6

SQL> select MIN (stok) from barang;

20

SQL> select AVG (stok) from barang;

33,333

Group Function (3)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

ID_BARANG ID_KATEGORI NAMA_BARANG HARGA STOK

1 1 fanta 5000 20

2 3 indomie 1000 50

3 2 relaxa 3000 30

Page 7: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

7

Fungsi Karakter & String

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

• Concat / || • Length • LPAD

• RPAD

Menggabungkan string/karakter Mendapatkan panjang string/karakter Menambahkan karakter ke sebelah kiri

karakter yang ada Menambahkan karakter ke sebelah

kanan karakter yang ada

Page 8: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

8

SQL> select CONCAT (nama_barang,harga) from barang;

fanta5000

SQL> select nama_barang || ‘ harganya : ‘ || harga from barang;

fanta harganya : 5000

Fungsi Karakter & String (2)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

ID_BARANG ID_KATEGORI NAMA_BARANG HARGA STOK

1 1 fanta 5000 20

2 3 indomie 1000 50

3 2 relaxa 3000 30

Page 9: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

9

SQL> select LENGTH (nama_barang) from barang;

5

SQL> select LPAD (id_barang,3,’0’) from barang;

001

Fungsi Karakter & String (3)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

ID_BARANG ID_KATEGORI NAMA_BARANG HARGA STOK

1 1 fanta 5000 20

2 3 indomie 1000 50

3 2 relaxa 3000 30

Page 10: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

10

Fungsi Tanggal & Waktu

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

• SYSDATE • LAST_DAY

• SYSDATE+1

Menampilkan tanggal hari ini Mendapatkan hari terakhir dari

bulan tersebut Menampilkan tanggal 1 hari dari

sekarang

Page 11: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

11

SQL> select SYSDATE from DUAL;

29-04-2008

SQL> select SYSDATE+7 from DUAL;

06-05-2008

SQL> select LAST_DAY(SYSDATE) from DUAL;

30-04-2008

Fungsi Tanggal & Waktu (2)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 12: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

12

Teknologi dari Oracle yang memperbolehkan kita untuk membuat sebuah blok program dalam Oracle sebagaimana layaknya dalam bahasa pemrograman prosedural

dasar dari stored procedure, function, package dan trigger.

PL/SQL

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 13: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

13

Bagian PL/SQL

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Bagian Deklarasi

DECLARE

== bagian deklarasi variable, jenis data dan sub program

Bagian Eksekusi

BEGIN

== bagian yang dapat dieksekusi perintah prosedural dan SQL Bagian Eksepsi

EXCEPTION

== bagian yang menangani kesalahan (exception handler)

Page 14: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

14

Paket PL/SQL yang menangani interaksi antara basisdata dengan user

Untuk menampilkan keluaran program pada SQL*Plus

Ketika bekerja dengan SQL*Plus, untuk dapat menampilkan hasil DBMS_OUTPUT ke layar, maka sebelumnya harus diberikan perintah: SQL> SET SERVEROUTPUT ON

DBMS_OUTPUT

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 15: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

15

begin

dbms_output.put_line (‘Selamat Pagi');

end;

/

Selamat Pagi

PL/SQL - Sederhana

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 16: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

16

DECLARE

nama_barang varchar2(20);

harga number;

BEGIN

nama_barang:= ‘Coffemix’;

harga:= 45000;

dbms_output.enable;

dbms_output.put_line('Nama barang: '||nama_barang);

dbms_output.put_line('Harga: '||harga);

END;

/

Nama barang: Coffemix

Harga : 45000

PL/SQL - Tipe Data Dasar

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 17: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

17

Mendefinisikan tipe data agar tipe data yang diinginkan sama dengan jenis yang terdapat di tabel sehingga kompatibilitas dan konsistensinya terjamin

%TYPE : tipe data sesuai dengan tipe data pada

kolom %ROWTYPE : tipe data majemuk sesuai tipe data pada

1 baris

%TYPE dan %ROWTYPE

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 18: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

18

DECLARE

stok_terbanyak barang.stok%TYPE;

BEGIN

select max(stok) INTO stok_terbanyak from barang;

dbms_output.enable;

dbms_output.put_line('stok barang terbanyak adalah : ‘ || stok_terbanyak);

END;

/

Stok barang terbanyak adalah : 50

PL/SQL - %TYPE

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 19: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

19

DECLARE

cari_barang barang%ROWTYPE;

BEGIN

select * INTO cari_barang from barang

where nama_barang=‘fanta';

dbms_output.enable;

dbms_output.put_line ('Harga : '||cari_barang.harga);

dbms_output.put_line ('Stok : '||cari_barang.stok);

END;

/

Harga : 5000

Stok : 20

PL/SQL - %ROWTYPE

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 20: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

20

DECLARE

cari_barang barang%ROWTYPE;

BEGIN

select * INTO cari_barang from barang

where nama_barang=‘&brg';

dbms_output.enable;

dbms_output.put_line ('Harga : '||cari_barang.harga);

dbms_output.put_line ('Stok : '||cari_barang.stok);

END;

/

Harga : 5000

Stok : 20

PL/SQL – input data

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 21: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

21

Exception Handling? Mekanisme yang menggunakan suatu blok

(Exception Handler) tertentu untuk menjebak error yang bisa mengakibatkan terhentinya program

• Predefined Exception • User Defined Exception

Exception Handling

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 22: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

22

Exception yang telah disediakan oleh Oracle dan

berhubungan dengan Oracle error yang umum

Predefined Exception

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 23: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

23

Predefined Exception (2)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Exception Deskripsi Kode Error/ SQLERRM

DUP_VAL_ON_INDEX Terdapat nilai yang sama pada constraint index atau primary key

ORA-00001

INVALID_NUMBER Input karakter pada column yang bertipe number.

ORA-01722

NO_DATA_FOUND Tidak ada data record yang dapat diambil setelah perintah query select

ORA-01403

PROGRAM_ERROR Terjadi Error internal PL/SQL ORA-06501 TOO_MANY_ROWS Subquery yang menghasilkan banyak baris

atau operasi SQL dimana oracle hanya mengharapkan hasil satu baris

ORA-01422

ZERO_DIVIDE Membagi dengan NOL ORA-01476

Page 24: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

24

DECLARE

cari_barang barang%ROWTYPE;

BEGIN

select * into cari_barang from barang

where nama_barang='coca-cola';

dbms_output.enable;

dbms_output.put_line ('Harga : '||cari_barang.harga);

dbms_output.put_line ('Stok : '||cari_barang.stok);

Exception

when NO_DATA_FOUND then

dbms_output.put_line('Data tidak ditemukan');

END;

/

Predefined Exception (3)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 25: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

25

Penanganan error yang didefinisikan sendiri secara manual oleh user

User defined exception dibangkitkan pada suatu keadaan tertentu yang telah didefinisikan oleh user

User Defined Exception

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 26: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

26

DECLARE

stk barang.stok%TYPE;

eks exception;

BEGIN

select stok into stk from barang

where id_barang='1';

if stk<=25 then RAISE eks;

end if;

EXCEPTION

WHEN eks THEN

dbms_output.put_line('Stok kurang dari 25 buah’);

end;

/

User Defined Exception (2)

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 27: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

27

DECLARE

stk barang.stok%TYPE;

eks exception;

BEGIN

select stok into stk from barang

where id_barang=‘&id';

if stk<=25 then RAISE eks;

end if;

EXCEPTION

WHEN eks THEN

dbms_output.put_line('Stok kurang dari 25 buah’);

end;

/

User Defined Exception - input

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com

Page 28: Semester Genap 2018/2019 Fungsi Bawaan, PL/SQL dan ... · Basis Data Lanjut (Semester Genap 2018/2019) - • Count • Sum • Avg • Max • Min Menghitung jumlah baris data Menghitung

28

Any Question?

See you next time..

Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com