0% menganggap dokumen ini bermanfaat (0 suara)
150 tayangan26 halaman

PL SQL

Dokumen tersebut membahas tentang pengenalan PL/SQL dan tipe data pada PL/SQL, termasuk deklarasi variabel, tipe data built-in dan database, operator, struktur blok, dan struktur kondisional IF."

Diunggah oleh

Toby Zulkarnain
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
150 tayangan26 halaman

PL SQL

Dokumen tersebut membahas tentang pengenalan PL/SQL dan tipe data pada PL/SQL, termasuk deklarasi variabel, tipe data built-in dan database, operator, struktur blok, dan struktur kondisional IF."

Diunggah oleh

Toby Zulkarnain
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 26

PENGENALAN

PL/SQL DAN
TIPE DATA
KELOMPOK :
TOBY ZULKARNAIN
YOHANES ARDIAN C

PENDAHULUAN
Karena pada SQL tidak mendukung

pemrograman secara prosedural, maka


dikembangkanlah PL/SQL. PL merupakan kependekan dari Procedural Language.
PL/SQL mengkombinasikan kekuatan dan kefleksibilitasan SQL dengan pemrograman
prosedural. PL/SQL memiliki keistimewaan sebagai berikut:
Programmer dapat mendeklarasikan
pemrosesan statement.

variable

untuk

digunakan

selama

Programmer dapat menggunakan penanganan kesalahan untuk mencegah


kegagalan program.
Programmer dapat menulis program yang interaktif yang menerima input dari
user.
Programmer dapat membagi fungsi-fungsi ke dalam blok-blok lojik dari kode.
Teknik pemrograman secara modular ini mendukung fleksibilitas selama
pengembangan aplikasi.
Statement SQL dapat diproses secara simultan untuk performansi keseluruhan
yang lebih baik.

VARIABLE DAN TIPE DATA


Deklarasi Variabel dan Tipe Data
Bagian deklarasi variabel di antara kata kunci DECLARE dan BEGIN. Penamaan variabel tidal bersifat case
sensitive. Tipe data variabel dapat berupa salah satu tipe data database Oracle atau tipe data built in
PL/SQL.
Sintaks:

Identifier typedata
NULL] [:=iekspresi];

[(presisi,

skala)]

[NOT

Dimana ekspresi bisa merupakan literal, variabel yang lain atau sebuah ekspresi yang terdiri atas operator
dan fungsi. Jika nilai inisial/awal
tidak diberikan, maka suatu variabel akan diberikan nilai NULL untuk nilai
alamat
inisialnya.
VARCHAR2(20);
Contoh untuk data karakter :

kodepos CHAR(5) :=
40257;

Tanda := dipakai untuk menugaskan (assign) nilai kepada suatu variabel. Nilai inisial/awal atau disebut juga
nilai default adalah nilai yang diberikan pada saat awal variabel tersebut dideklarasikan.

VARIABLE DAN TIPE DATA


Tipe Data pada PL/SQL
Selain tipe data yang ada di Oracle SQL, PL/SQL menyediakan beberapa tambahan
tipe data yang dapat dideklarasikan sebagai berikut:
Tipe Data
BOOLEAN
DATE
NUMBER [(p
[,s])]

FLOAT
DOUBLE
PRECISION
REAL
DEC [(p [,s])]
DECIMAL [( p
[,s])]
NUMERIC [(p
[,s])]
INTEGER [(n)]
INT [(n)]
SMALLINT [(n)]
BINARY_INTEGER

Keterangan
Data lojikal dengan nilai TRUE atau FALSE.
Data tanggal waktu. Nilai yang valid adalah antara 1
Januari 4712 SM sampai dengan 31 Desember 9999.
Tipe data numerik dengan p angka penting dan sejumlah s
angka penting di belakang koma. Nilai p adalah integer
dengan nilai maksimal 38 dan nilai s berada pada rentang
-84 sampai dengan 127. Nilai s negatif berarti pembulatan
sampai dengan 10s terdekat.
Turunan dari NUMBER. Presisi sampai dengan 38 digit.
Sama dengan FLOAT.
Turunan dari number. Presisi sampai dengan 18 digit.
Sama dengan NUMBER [(p [,s])].
Sama dengan NUMBER [(p [,s])].
Sama dengan NUMBER [(p [,s])].
Sama dengan NUMBER [(n,0)].
Sama dengan NUMBER [(n,0)].
Sama dengan NUMBER [(n,0)].
Tipe variabel ini digunakan menyimpan nilai mulai dari

NATURAL
NATURALN

POSITIVE
POSITIVEN

SIGNTYPE
PLS_INTEGER
VARCHAR2(n)

VARCHAR(n)
CHAR [(n)]

STRING(n)
CHARACTER

Bagian dari binary integer, mampu menyimpan


mulai dari 0 s/d 2.147.483.647.
Bagian dari binary integer, mampu menyimpan mulai
dari 0 s/d 2.147.483.647. Tipe data ini tidak boleh
bernilai NULL.
Bagian dari binary integer, mampu menyimpan mulai
dari 1 s/d 2.147.483.647
Bilangan integer dengan rentang nilai 1 sampai
dengan 2147483647. Tipe data ini tidak boleh bernilai
NULL.
Tipe data bilangan yang bernilai -1, 0 atau 1.
Bilangan integer dengan rentang nilai -2147483647
sampai 2147483647.
Data karakter dengan panjang tidak tetap. Nilai n
minimum sama dengan 1 dan maksimum sama
dengan 32767 byte.
Sama dengan VARCHAR2(n).
Data karakter dengan panjang tetap sebesar n byte.
Nilai n maksimum adalah 32767. Nilai n minimum dan
juga nilai default adalah 1.
Sama dengan VARCHAR2(n).
Sama dengan CHAR(n).

VARIABLE DAN TIPE DATA


LONG [(n)]

NCHAR [(n)]

NVARCHAR2(
n)

RAW(n)
LONG RAW
[(n)]
ROWID

Data karakter dengan panjang tidak


tetap. Nilai n maksimum sama dengan
32760 byte.
Data karakter dengan panjang tetap. Panjang
maksimum sama dengan 32767 byte.
maksimum bergantung pada national character
set yang dipakai. Nilai default adalah 1.
Data karakter dengan panjang tidak tetap.
Panjang maksimum sama dengan 32767 byte.
Nilai n maksimum bergantung pada national
character set yang dipakai.
Data binary dengan panjang tidak tetap. Nilai n
maksimum sama dengan 32767 byte.
Data binary dengan panjang tidak tetap. Nilai n
maksimum sama dengan 32760 byte.
Identitas baris pada suatu tabel-index yang
dinyatakan dengan string heksa desimal.
Identitas tersebut menunjukkan posisi baris
data. Tipe data ini merupakan balikan dari
kolom palsu ROWID.

UROWID [(n)]

Identitas baris pada suatu tabel-index yang


dinyatakan dengan string heksa desimal. Nilai n
adalah ukuran kolom UROWID. Nilai n maksimum
adalah 4000 byte.

BFILE

Tipe data large object untuk data file.

BLOB

Tipe data large object untuk karakter binary.

CLOB

Tipe data large object untuk karakter satu byte.

NCLOB

Tipe data large object untuk karakter multi byte.

%TYPE

Untuk mendeklarasikan variabel dengan tipe data yang


sesuai dengan suatu kolom pada suatu tabel.

%ROWTYPE

Untuk mendeklarasikan variabel dengan tipe data yang


sesuai dengan semua kolom pada suatu tabel. Biasanya
untuk menampung suatu cursor.

PENDEKLARASIAN KONSTANTA
Sintaks :

Identifier
CONSTANT
typedate[(presisi,skala)] := ekspresi;

Contoh :

pi CONSTANT
NUMBER(9,2):=3.14;

Atribut Variabel
Jika menggunakan variabel yang menampung nilai dari suatu kolom dari suatu tabel, maka
sebaiknya menggunakan atribut variabel. Hal ini untuk menghindari terjadinya kerepotan seperti:
user harus melihat struktur tabel yang terkait terlebih dahulu untuk memberikan tipe data yang
cocok. Selain itu jika terjadi tipe data kolom maka deklarasi variabel tersebut harus diubah juga.
Atribut variabel berfungsi untuk memberikan tipe data yang sama dengan tipe data suatu kolom
dari suatu tabel. Atribut variabel juga dapat digunakan untuk tipe data record. Dengan demikian,
atribut variabel ada dua. Untuk atribut kolom digunakan %TYPE, sedangkan untuk atribut record
gunakan %ROWTYPE.

OPERATOR PADA PL/SQL


Operator-operator SQL statement juga berlaku pada PL/SQL. Berikut ini prioritas dari semua operator tersebut ditampilkan
pada tabel di bawah ini dengan prioritas yang lebih tinggi ditempatkan pada baris yang lebih atas :

Mencetak Keluaran pada Layar SQL*Plus


Untuk mencetak sebuah nilai pada layar SQL*Plus dapat digunakan procedure PUT, PUT_LINE dan NEW_LINE yang terdapat
dalam package DBMS_OUTPUT. Package ini merupakan salah satu package yang telah built in pada Oracle. Procedure PUT
dan PUT_LINE membutuhkan sebuah argumen berupa NUMBER, VARCHAR2 ataupun DATE. Kedua procedure tersebut akan
menyimpan argumen tersebut ke dalam buffer dan akan ditampilkan di layar bila procedure tersebut dijalankan. Procedure
NEW_LINE tidak membutuhkan argumen apapun. Procedure ini berfungsi untuk menyimpan karakter new line ke dalam
buffer.Namun sebelum procedure tersebut dijalankan, harus dijalankan perintah SET SERVEROUTPUT ON untuk
mengaktifkan pencetakan ke layar dengan menggunakan procedure yang ada pada package DBMS_OUTPUT.

STRUKTUR BLOK PL/SQL


Terdapat dua macam blok pada PL/SQL yaitu blok bernama dan blok tidak
bernama (anonymous block), dimana blok-blok ini akan membentuk suatu unit
PL/SQL. Blok-blok yang bernama bisa disimpan dan dapat berupa procedure, function
serta trigger. Sedangkan blok yang tidak bernama tidak dapat disimpan dalam
database kecuali jika dipakai sebagai subblok dalam sebuah unit PL/SQL bernama.
Secara umum, satu blok PL/SQL yang lengkap terdiri atas tiga bagian, yaitu:
declaration section (bagian deklarasi variabel), executable section (bagian
pengeksekusian) serta exception section (bagian penanganan kesalahan). Berikut ini
penggambarannya:
[DECLARE
...] DECLARATION SECTION
BEGIN
... EXECUTABLE SECTION
[EXCEPTION
...] EXCEPTION SECTION
END;

DECLARATION SECTION
Digunakan untuk mendefinisikan atau mendeklarasikan variabel, konstanta, cursor
dan seluruh exception yang didefinisikan oleh user yang akan digunakan pada bagian
eksekusi. Penulisan blok ini dimulai dengan menulis DECLARE.
Contoh:
declare
v_nama mahasiswa.nama%type;
v_nim mahasiswa.nim%type;

EXECUTABLE SECTION
Digunakan untuk mengeksekusi atau menjalankan blok perintah PL/SQL seperti
pengulangan, percabangan, perintah SQL dan perintah cursor. Berisi statement SQL
untuk memanipulasi data pada basis data dan statement PL/SQL untuk memanipulasi
data dalam blok.
Declare
v_nama mahasiswa.nama
Contoh:
%type;
v_nim mahasiswa.nim
%type;
begin
select nim, nama into v_nim,
v_nama
from pegawai
where nim=30108001
dbms_output.put_line(v_nam
a);
exception
when no_data_found then
dbms_output.put_line(gak

EXCEPTION SECTION
Merupakan bagian yang akan diaktifkan bila terjadi kesalahan atau pengecualian
pada saat menjalankan program PL/SQL. Exception section terdiri atas predefined dan
user defined. Sebagai
Declare contoh exception predefined NO_DATA_FOUND akan diaktifkan
bila perintah DML
SQL tidak
menemukan data dalam klausa WHERE.
v_nama
mahasiswa.nama
Contoh:

%type;
v_nim mahasiswa.nim
%type;
begin
select nim, nama into v_nim,
v_nama
from pegawai
where nim=30108001
dbms_output.put_line(v_nama);
exception
when no_data_found
then

dbms_output.put_line(gak

STRUKTUR KONDISIONAL
Perintah IF terdiri atas tiga bentuk, yaitu IF THEN, IF THEN ELSE, serta IF THEN ELSEIF.
Struktur dari ketiganya ditampilkan dalam satu rumusan umum sebagai berikut:
IF kondisi 1 THEN

Baris perintah...
[ELSIF kondisi 2 THEN
Baris perintah...]
...
[ELSE
baris perintah..]
END IF;

Baris pada baris perintah dapat berupa perintah IF sehingga akan membentuk blok
IF bersarang. Bagian ELSIF bisa muncul beberapa kali sesuai dengan kebutuhan
sedangkan bagian ELSE biasanya dipakai untuk menangani kondisi jika semua
kondisi
Declare pada kalang IF... THEN atau ELSIF... THEN tidak terpenuhi. Namun bagian
penuhini
exception;
ELSE
bisa saja tidak digunakan.
n1 number;

contoh:

STRUKTUR ITERASI
Pernyataan Loop
Untuk perintah LOOP, akan dilakukan pengulangan terus-menerus. Bentuk umum dari
pernyataan LOOP sebagai berikut:
LOOP
//Baris perintah
END LOOP;
Karena tidak mempunyai kondisi untuk keluar dari iterasi, maka perlu digunakan
perintah EXIT. Perintah EXIT dapat digunakan dengan cara seperti berikut:
EXIT WHEN kondisi;

STRUKTUR ITERASI
DECLARE
x number;
BEGIN
x := 0;
LOOP
x := x + 1;
EXIT WHEN x > 5; -- exit loop immediately
END LOOP;
dbms_output.put_line('Hasil looping : '||x);
END;

PERNYATAAN FOR - LOOP


Struktur pengulangan For digunakan untuk menghasilkan pengulangan sejumlah
kali tanpa penggunaan kondisi apapun. Stuktur ini menyebabkan aksi diulangi
sejumlah beberapa kali (tertentu). Bentuk umum struktur for ada dua macam yaitu :
menaik (ascending) atau menurun (descending). Sintaksnya sebagai berikut :
FOR counter IN [REVERSE] i_terendah .. i_teratas
LOOP
Baris perintah
END LOOP;

Perintah FOR-LOOP melakukan iterasi selama nilai COUNTER berada dalam range nilai
i_terendah dan i_teratas. Pada FOR-LOOP, counter tidak perlu dideklarasikan. Penggunaan kata
kunci RESERVE akan menyebabkan nilai counter dimulai dari i_teratas ke i_terendah. Dua titik
antara i_terendah dan i_teratas merupakan operator rentang nilai. i_terendah maupun i_terkecil
bisa berupa nilai integer ataupun variabel yang bernilai integer yang sudah dideklarasikan
sebelumnya. i_upper harus lebih besar dari i_lower dan jika tidak maka iterasi tidak akan
dilakukan.

CONTOH:

BEGIN
FOR vno IN 1..10 LOOP
insert into coba(no)
values vno;
dbms_output.put_line('Ha
sil looping ke- '||x);
END LOOP;
END;

PERINTAH GOTO
Perintah ini digunakan untuk mengarahkan proses ke baris yang ditandai dengan
label tertentu. Bentuk umum pemakaian perintah ini adalah:
GOTO nama_label;
Untuk memberikan label pada suatu baris tertentu, gunakan format penamaan label
seperti berikut ini:
<<nama_label>>
Penggunaan perintah GOTO dalam jumlah yang banyak akan menyebabkan suatu
blok PL/SQL menjadi tidak terstruktur. Karena itu sebaiknya penggunaan GOTO ini
dihindari.

CONTOH:
DECLARE
x number;
BEGIN
x := 0;
LOOP
x := x + 1;
IF x = 5 THEN
GOTO EndOfLoop;
END IF;
END LOOP;

<<EndOfLoop>>dbms_out
put.put_line('Hasil looping
: '||x);
END;

PERINTAH GOTO
Dengan adanya perintah goto iterasi, proses berikutnya menuju baris
<<iterasi>> yang berada beberapa sebelum baris goto tersebut. Selanjutnya,
perintah-perintah yang mengikutinya akan diproses sesuai dengan urutannya
(sekuensial). Sedangkan perintah <<lbl_end>> menentukan proses berikutnya
adalah baris <<lbl_end>> yang berada setelah perintah goto tersebut.
Namun demikian, pada saat menggunakan perintah goto harus diperhatikan halhal berikut:
perintah goto tidak boleh menuju label yang berada dalam perintah IF, LOOP, blok
lain dan blok yang menjadi sub bloknya.
Sebuah label harus diikuti oleh paling tidak sebuah perintah eksekusi PL/SQL. Kata
atau reserved word seperti END, END IF dan END LOOP tidak termasuk sebagai
perintah eksekusi. Tetapi NULL termasuk perintah eksekusi.

PENDAHULUAN
PL/SQL (Procedural Language/Structured Query Language) merupakan sebuah penggabungan
antara bahasa pemrograman prosedural (PL) dan SQL syntax.
PL/SQL adalah fasilitas yang disediakan Oracle sehingga pengguna dapat memanfaatkan konsep
pemrograman. Dalam PL/SQL dapat digunakan perintah untuk memanipulasi data yang ada dalam
database Oracle. PL/SQL membentuk pemrograman terstruktur dalam memproses data.
Beberapa kelebihan PL/SQL dalam database Oracle :

PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses didalam server.

Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna.

PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan

program aplikasi.

STRUKTUR PL/SQL
Struktur PL/SQL mirip dengan struktur bahasa pascal atau delphi yang menggunakan struktur blok, sehingga akan
mempermudah pengertian dalam pemrograman dengan PL/SQL. Struktur Blok berisi perintah SQL dengan kondisi yang
berbeda. Perintah PL/SQL dapat menangani kesalahan saat dijalankan. Setiap pengetikan dengan menggunakan PL/SQL dalam
SQL*Plus selalu diakhiri dengan tanda /(slash). Sintaks penggunaan PL/SQL adalah sebagai berikut :
Declare
Begin
Exception
End
Struktur diatas dapat dijelaskan sebagai berikut :
1. Bagian Judul (Header)
Bagian ini hanya digunakan jika PL/SQL diberikan nama,misalnya untuk prosedur atau fungsi. Bagian ini berisi nama blok,daftar
parameter, dan pengembalian hasil (return) jika blok adalahfungsi.
2. Bagian Deklarasi (declaration)
Bagian ini untuk membuat deklarasi mengenai semua variable dan konstanta yang direferensikan dalam pernyataan PL/SQL.
Bagian deklarasi ini dimulai dengan perintah DECLARE. Jika tidak ada variable atau konstanta yang ingin dideklarasikan bagian
ini boleh dihilangkan, bersifat optional.
3. Bagian Eksekusi (Execution).
Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis. Bagian eksekusi ini harus dimulai dengan perintah BEGIN.
4. Bagian Perkecualian (Exception)
Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada waktu eksekusi program PL/SQL, bersifat optional. Jika
program tidak memuat cara menangani kesalahan, bagian ini boleh dihilangkan.Setiap pernyataan PL/SQL harus diakhiri
dengan tanda titik koma(;) dan semua program PL/SQL harus diakhiri dengan perIntah END.

BENTUK UMUM STRUKTUR PL/SQL


DECLARE
variabel tipe_data;
konstanta CONSTANT tipe_data := nilai;
...
BEGIN
statement_1;
statement_2;
...
EXCEPTION
WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;
...
END;

KONSTANTA
Digunakan untuk menyimpan sebuah nilai di memori komputer. Nilai yang disimpan
bersifat tetap (konstan)
Contoh Deklarasi Konstanta :

DECLARE
pi CONSTANT real := 3.14;
lebar CONSTANT integer := 100

PERBEDAAN VARIABEL DENGAN


KONSTANTA ADALAH
Konstanta
Nilai ditentukan pada saat deklarasi dibuat sehingga nilainya tetap pada saat program
dieksekusikan.

Variabel
Dapat menerima nilai baru atau sebaliknya diubah pada saat program dieksekusi

PL/SQL
PL/SQL (Procedural Language/Structured Query Language) merupakan sebuah penggabungan antara bahasa pemrograman
prosedural (PL) dan SQL syntax. PL/SQL adalah fasilitas yang disediakan Oracle sehingga pengguna dapat memanfaatkan
konsep pemrograman. Dalam PL/SQL dapat digunakan perintah untuk memanipulasi data yang ada dalam database Oracle.
PL/SQL membentuk pemrograman terstruktur dalam memproses data.
Beberapa kelebihan PL/SQL dalam database Oracle :
PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses didalam server.
Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna.
PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan program aplikasi.
Aturan penulisan:
Dapat ditulis dalam beberapa baris (tidak harus dalam satu baris perintah)
Dapat berupa nested blok
Karakter dan literal diapit oleh tanda kutip
Setiap perintah/blok diakhiri dengan titik koma(;)
Komentar diawali dengan tanda min dua kali(--) atau diapit dengan tanda /**/
Pemberian nilai menggunakan :=
Dapat menggunakan Bind Variable
Tanda garis miring(/) berarti run

KEUNTUNGAN PENGGUNAAN PL/SQL

Integrasi

Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang dapat digunakan bersama-sama
dalam bentuk stored procedure

Peningkatan Kinerja
Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok dalam satu perintah yang secara
drastis dapat menurunkan trafik jaringan
Modular. Bentuk modular memungkinkan banyak kemudahan yang dapat diperoleh

Portable. PL/SQL adalah sarana yang asli dimiliki oleh Oracle Server, artinya, program PL/SQL dapat
dengan mudah dipindahkan dari satu Oracle Server ke Oracle Server lainnya, meskipun dengan OS atau
platform yang berbeda.
Dapat berupa Variable, Constant, Cursor dan Exception
perintah SELECT untuk diproses dan hasilnya digunakan untuk melakukan proses lainnya
Dapat menggunakan Struktur Kontrol :LOOP, FOR, WHILE
Dapat menangani Error
Error bisa dihasilkan/dibangkitkan oleh Oracle
Server atau bisa dibangkitkan sendiri dengan sengaja
Untuk mengantisipasi berbagai hal yang barangkali sulit untuk ditangani secara langsung menggunakan
kontrol program

Anda mungkin juga menyukai