38
Modul ke: Fakultas Program Studi Input/Output Menggunakan PL/SQL Membuat aplikasi berbasis web yang mengandung unsur input/output menggunakan PL/SQL Albaar Rubhasy, S.Si., M.T.I. 0 4 FASILKOM Sistem Informasi

Powerpoint pemrograman basis data & sql mg 4 fasilkom albaar rubhasy

Embed Size (px)

DESCRIPTION

Powerpoint pemrograman basis data & sql mg 4 fasilkom albaar rubhasy

Citation preview

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

Modul ke:

Fakultas

Program Studi

Input/Output Menggunakan PL/SQLMembuat aplikasi berbasis web yang mengandung unsur input/output menggunakan PL/SQL

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

04

FASILKOM

Sistem Informasi

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

Outline Perkuliahan

• Konsep PL/SQL• Fitur Utama PL/SQL

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

Konsep PL/SQLModul 04: Input/Output Menggunakan PL/SQLMembuat aplikasi berbasis web yang mengandung unsur input/output menggunakan PL/SQL

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

Apa itu PL/SQL?

• PL/SQL = Procedural Language/Structured Query Language.

• Bahasa ekstensi prosedural untuk SQL dan basis data relasional Oracle.

• Mulai ada sejak Oracle Database 7.• Mendukung: variabel, kondisi, pengulangan,

pengecualian, dan larik.

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

Kenapa Gunakan PL/SQL?

• Tight Integration with SQL• High Performance• High Productivity• Full Portability• Tight Security• Access to Predefined Packages• Support for Object-Oriented Programming• Support for Developing Web Applications and

Server Pages

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

• Tight Integration with SQL– PL / SQL terintegrasi dengan SQL, semua

manipulasi data SQL, kontrol kursor, dan transaksi pernyataan kontrol, serta semua fungsi SQL, operator, dan pseudocolumns dapat digunakan.

• High Performance– Seluruh blok pernyataan dapat dikirim ke database

pada satu waktu secara bersamaan. Hal ini secara drastis dapat mengurangi lalu lintas jaringan antara database dan aplikasi.

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

• High Productivity– Untuk memanipulasi data digunakan kode yang

sangat kompak dan dapat membaca, mengubah, dan menulis data dari file, PL/SQL dapat query, mengubah, dan memperbarui data dalam database.

• Full Portability– Aplikasi yang ditulis dalam PL / SQL dapat berjalan

pada sistem operasi dan platform dimana database berjalan.

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

• Tight Security– Subprogram PL/SQL yang tersimpan memindahkan

kode aplikasi dari klien ke server, sehingga dapat terlindungi dari gangguan, rincian internal tersembunyi, dan akses terbatas.

• Access to Predefined Packages– Menyediakan paket spesifik produk yang

mendefinisikan API yang dapat membangkitkan dari PL / SQL untuk melakukan banyak tugas yang berguna.

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

• Support for Object-Oriented Programming– Jenis objek dapat digunakan untuk mengurangi

biaya dan waktu yang diperlukan untuk membangun aplikasi yang kompleks.

• Support for Developing Web Applications and Server Pages– Dapat digunakan untuk mengembangkan aplikasi

Web dan Server Pages (PSP).

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

Fitur Utama PL/SQLModul 04: Input/Output Menggunakan PL/SQLMembuat aplikasi berbasis web yang mengandung unsur input/output menggunakan PL/SQL

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

Fitur Utama

• PL/SQL menggabungkan kekuatan memanipulasi data dari SQL dengan kekuatan pemrosesan bahasa prosedural.

• Pernyataan SQL dari PL/SQL program dapat dikeluarkan, tanpa harus mempelajari API baru.

• PL/SQL memungkinkan konstanta dan variabel, kontrol aliran program, subprogram, dan kesalahan run-time untuk didefinisikan.

• Masalah yang kompleks dapat diubah menjadi subprogram mudah dimengerti dan dapat digunakan kembali dalam beberapa aplikasi.

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

PL/SQL Blocks

• Struktur blok PL/SQL terdiri dari tiga bagian:– Bagian declarative– Bagian executable– Bagian exception-handling (kondisi warning dan

error)• Blok dapat bersarang (nested)

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

PL/SQL Error Handling

• Kesalahan proses dapat terdeteksi dengan mudah menggunakan exceptions.

• Ketika terjadi kesalahan, muncul exceptions: eksekusi normal terhenti dan kontrol transfer ke kode exception-handling pada akhir blok PL/SQL.

• Setiap exception yang berbeda diproses oleh exception handler tertentu.

• Dengan menggunakan exception-handling, program masih tetap dapat dieksekusi meskipun terjadi kesalahan.

• Contoh predefined exception: ZERO_DIVIDE

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

PL/SQL Input and Output

• PL/SQL input and output (I/O) adalah melalui pernyataan SQL yang menyimpan data dalam tabel database atau query tabel tersebut.

• Selebihnya adalah melalui API seperti paket PL/SQL DBMS_OUTPUT.

• Untuk menampilkan output diteruskan ke DBMS_OUTPUT, dibutuhkan program SQL*Plus.

• Untuk melihat output DBMS_OUTPUT dengan SQL*Plus, perintah SET SERVEROUTPUT ON harus dikeluarkan terlebih dahulu.

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

• Beberapa paket PL/SQL untuk memproses I/O:

• Data tidak dapat diinput secara langsung dari keyboard. Gunakan SQL*Plus command PROMPT dan ACCEPT.

Package(s) PL/SQL uses package ...

HTF and HTP to display output on a web page

DBMS_PIPE to pass information between PL/SQL and operating-system commands

UTL_FILE to reads and write operating system files

UTL_HTTP to communicate with web servers

UTL_SMTP to communicate with mail servers

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

PL/SQL Variables and Constants• Variabel dan konstanta harus dideklarasikan

terlebih dahulu sebelum digunakan dalam SQL dan procedural statement.

• Mendeklarasikan variabel– Variabel dapat berupa tipe data SQL

(CHAR, DATE, NUMBER) atau tipe data PL/SQL– Contoh:

part_no NUMBER(4);in_stock BOOLEAN;

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

• Menentukan nilai suatu variabel– Cara pertama: menggunakan operator penugasan

(:=). Contoh:tax := price * tax_rate;bonus := current_salary * 0.10;amount := TO_NUMBER(SUBSTR('750 dollars', 1, 3));valid := FALSE;

– Cara kedua: memilih atau mengambil nilai-nilai dari basis data. Contoh:SELECT sal * 0.10 INTO bonus FROM emp WHERE empno = emp_id;

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

• Mendeklarasikan konstanta– Sama seperti mendeklarasikan variabel, hanya

ditambah dengan kata kunci CONSTANT dan dilanjutkan dengan nilai konstanta

– Contoh:credit_limit CONSTANT REAL :=

5000.00;

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

PL/SQL Data Abstraction

• Abstraksi data memungkinkan bekerja dengan properti terpenting dari data tanpa terlalu terlibat terlalu detil.

• Setelah struktur data dirancang, tinggal fokus pada perancangan algoritma untuk memanipulasi struktur data.

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

Cursors• PL/SQL membangun sebuah kursor yang area kerjanya dapat

diberi nama dan informasi yang tersimpan dapat diakses.• Untuk kueri yang hasilnya lebih dari satu baris, kursor dapat

dideklarasikan secara eksplisit untuk memproses baris secara individual.

• Contoh:DECLARE CURSOR c1 ISSELECT empno, ename, job FROM emp WHERE deptno = 20;

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

Attribute• PL/SQL variabel dan kursor memiliki atribut.• Indikator atribut menggunakan simbol (%).• Ada dua jenis atribut:

– %TYPE: menyediakan tipe data dari variabel atau kolom database.

– %ROWTYPE:menyediakan tipe record yang mewakili baris pada tabel.

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

Collections• Dengan PL/SQL collection, high-level data

types dapat dideklarasikan, mirip dengan array, set, dan tabel hash yang ditemukan dalam bahasa pemrograman lain.

• Pada PL/SQL:– array = as varrays (short for variable-size arrays)– set = nested tables– hash table = associative arrays.

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

Records• Records merupakan struktur data komposit

yang field-nya dapat memiliki tipe data yang berbeda.

• Record dapat digunakan catatan untuk menyimpan item-item terkait dan meneruskannya ke subprogram dengan parameter tunggal.

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

Object Types• PL / SQL mendukung pemrograman

berorientasi obyek melalui objek types. • Sebuah object types merangkum struktur data

bersama dengan subprogram yang dibutuhkan untuk memanipulasi data.

• Variabel-variabel yang membentuk struktur data yang dikenal sebagai attribute.

• Subprogram yang memanipulasi atribut yang disebut sebagai method.

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

PL/SQL Control Structures

• Dengan struktur kendali, data dapat dimanipulasi dengan mudah.

• Jenis-jenis struktur kendali:– Kendali Kondisional (IF-THEN-ELSE)– Kendali Iteratif (FOR-LOOP & WHILE-LOOP)– Kendali Sekuensial (EXIT-WHEN & GOTO)

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

Menggunakan Fitur Utama PL/SQLModul 04: Input/Output Menggunakan PL/SQLMembuat aplikasi berbasis web yang mengandung unsur input/output menggunakan PL/SQL

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

Menjalankan Kode PL/SQL

• Kode PL/SQL dapat dijalankan menggunakan SQL Commands page, Script Editor page, atau SQL Command Line (SQL*Plus).

• SQL Commands page lebih sederhana untuk digunakan.

• Cara menjalankan kode PL/SQL:– Login ke Oracle Application Express– Pilih ikon SQL Workshop– Pilih ikon SQL Commands– Ketik kode PL/SQL– Klik tombol Run untuk menjalankan kode PL/SQL

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

Tampilan SQL Commands

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

Menyimpan Kode PL/SQL

• Kode PL/SQL dapat disimpan.• Caranya adalah:

– Tekan tombol save pada SQL Commands.– Tulis nama dan/atau deskripsi kode PL/SQL yang

akan disimpan.– Klik Save.

• Kode PL/SQL yang tersimpan, dapat diakses pada bagian “Saved SQL”.

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

Menggunakan struktur blok PL/SQL-- the following is an optional declarative partDECLARE monthly_salary NUMBER(6); number_of_days_worked NUMBER(2); pay_per_day NUMBER(6,2);

-- the following is the executable part, from BEGIN to ENDBEGIN monthly_salary := 2290; number_of_days_worked := 21; pay_per_day := monthly_salary/number_of_days_worked;

-- the following displays output from the PL/SQL block DBMS_OUTPUT.PUT_LINE('The pay per day is ' || TO_CHAR(pay_per_day));

-- the following is an optional exception part that handles errorsEXCEPTION WHEN ZERO_DIVIDE THEN pay_per_day := 0;

END;/

Declarative

Executable

Exeption-handling

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

Input dan output data menggunakan PL/SQL-- enable SERVEROUTPUT in SQL Command Line (SQL*Plus) to display output with -- DBMS_OUTPUT.PUT_LINE

DECLARE answer VARCHAR2(20); -- declare a variableBEGIN-- assign a value to a variable answer := 'Maybe';-- use PUT_LINE to display data from the PL/SQL block DBMS_OUTPUT.PUT_LINE( 'The answer is: ' || answer );END;/

Menampilkan output PL/SQL

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

Menambahkan komentar

DECLARE -- Declare variables here. monthly_salary NUMBER(6); -- This is the monthly salary. number_of_days_worked NUMBER(2); -- This is the days in one month. pay_per_day NUMBER(6,2); -- Calculate this value.BEGIN-- First assign values to the variables. monthly_salary := 2290; number_of_days_worked := 21;

-- Now calculate the value on the following line. pay_per_day := monthly_salary/number_of_days_worked;

-- the following displays output from the PL/SQL block DBMS_OUTPUT.PUT_LINE('The pay per day is ' || TO_CHAR(pay_per_day));

EXCEPTION/* This is a simple example of an exeception handler to trap division by zero. In actual practice, it would be best to check whether a variable iszero before using it as a divisor. */ WHEN ZERO_DIVIDE THEN pay_per_day := 0; -- set to 0 if divisor equals 0END;/

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

Mendeklarasikan variabel dan konstanta

DECLARE -- declare the variables in this section last_name VARCHAR2(30); first_name VARCHAR2(25); employee_id NUMBER(6); active_employee BOOLEAN; monthly_salary NUMBER(6); number_of_days_worked NUMBER(2); pay_per_day NUMBER(6,2); avg_days_worked_month CONSTANT NUMBER(2) := 21; -- a constant variableBEGIN NULL; -- NULL statement does nothing, allows this block to executed and testedEND;/

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

Menggunakan identifier

DECLARE lastname VARCHAR2(30); -- valid identifier last_name VARCHAR2(30); -- valid identifier, _ allowed last$name VARCHAR2(30); -- valid identifier, $ allowed last#name VARCHAR2(30); -- valid identifier, # allowed-- last-name is invalid, hypen not allowed-- last/name is invalid, slash not allowed-- last name is invalid, space not allowed-- LASTNAME is invalid, same as lastname and LastName-- LastName is invalid, same as lastname and LASTNAMEBEGIN NULL; -- NULL statement does nothing, allows this block to executed and testedEND;/

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

Menentukan nilai variabel dengan operator penugasanDECLARE -- declare and assiging variables wages NUMBER(6,2); hours_worked NUMBER := 40; hourly_salary NUMBER := 22.50; bonus NUMBER := 150; country VARCHAR2(128); counter NUMBER := 0; done BOOLEAN := FALSE; valid_id BOOLEAN;BEGIN wages := (hours_worked * hourly_salary) + bonus; -- compute wages country := 'France'; -- assign a string literal country := UPPER('Canada'); -- assign an uppercase string literal done := (counter > 100); -- assign a BOOLEAN, in this case FALSE valid_id := TRUE; -- assign a BOOLEANEND;/

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

Referensi

• http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/preface.htm#420108

• http://docs.oracle.com/cd/F49540_01/DOC/server.815/a68023/intro.htm

• http://docs.oracle.com/cd/F49540_01/DOC/server.815/a68023/plsql.htm#3835

• http://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25108/xedev_plsql.htm#XEDEV06000

• http://en.wikipedia.org/wiki/PL/SQL

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

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