powerpoint pemrograman basis data & sql mg 4 fasilkom albaar rubhasy

Post on 20-May-2015

187 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Powerpoint pemrograman basis data & sql mg 4 fasilkom albaar rubhasy

TRANSCRIPT

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

Outline Perkuliahan

• Konsep PL/SQL• Fitur Utama PL/SQL

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

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.

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

• 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.

• 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.

• 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.

• 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).

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

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.

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)

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

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.

• 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

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;

• 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;

• Mendeklarasikan konstanta– Sama seperti mendeklarasikan variabel, hanya

ditambah dengan kata kunci CONSTANT dan dilanjutkan dengan nilai konstanta

– Contoh:credit_limit CONSTANT REAL :=

5000.00;

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.

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;

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.

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.

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.

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.

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)

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

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

Tampilan SQL Commands

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”.

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

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

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;/

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;/

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;/

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;/

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

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

top related