powerpoint pemrograman basis data & sql mg 4 fasilkom albaar rubhasy
Post on 20-May-2015
187 Views
Preview:
DESCRIPTION
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