semester genap 2018/2019 fungsi bawaan, pl/sql dan ... · basis data lanjut (semester genap...
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022012001/6085105d7872d67425305b09/html5/thumbnails/28.jpg)
28
Any Question?
See you next time..
Basis Data Lanjut (Semester Genap 2018/2019) - www.salhazan.com