Anda di halaman 1dari 80

ORACLE & PL / SQL

OR

Resnanda Pramudiastiro

( 15111990 )

Ricky Reza Pahlevi

( 16111129 )

Sandy Achmadi

( 16111585 )

2013

LABORATORIUM
SISTEM INFORMASI

UNIVERSITAS GUNADARMA
1|O r a c l e & P L / S Q L

ORACLE

1. Pengenalan & Sejarah


Oracle didirikan pada tahun 1997 lewat perusahaan konsultasi bernama Software
Develotment oleh 3 orang programer. Diantaranya Bob Miner, Ed Oates, dan
Larry Ellison yang menjabat sebagai CEO (Chief Executive Orricer) selama
beberapa tahun sampai saat ini. Perusahaan ini berkonsentrasi pada pembuatan
database server di mainframe.
Kisah sukses oracle corp terkait dengan sejarah dan teori database rasional. Teori
database rasional diperkenalkan hampir secara simultan oleh Edgar F.codd dan
seorang pemula lain yang kurang dikenal pada tahun 1960.
Larry melihat perkembangan teori model relasional dan implementasi database
rasional dalam DB 2. Ia yakin bahwa model relasional adalah way of the future.
Dan memutuskan untuk mengimplementasikan model rasional di produk oracle.
Sekitar pertengahan tahun 1980an, Larry mendiversifikasi produk oracle (versi
6.X) keluar main frame, yakni ke sistem operasi unix. Selanjutnya tahun
1996 oracle corp mendiversivikasi oracle (versi 7.X) ke sistem operasi novell
netware, windows NT, dan Linux (versi 8.X tahun 1997).
Mulai pertengahan tahun 1990an oracle corp mulai membuat juga produk-produk
nondatabase-server seperti application server (web DB, OAS), development tool
(Oracle Developer, Oracle Designer), dan application suite (Oracle Apps).
Pengertian Oracle.
Oracle adalahrelational database management system (RDBMS).Untuk mengelola
informasi secara terbuka, komprenensit dan terintegrasi. Oracle server
menyediakan solusi yang efisien dan efektif, karena kemampuannya dalam hal
sebagai berikut:

1.

Dapat bekerja di lingkungan client / server (pemrosesan terbesar)

2.

Menangani manajemen space dan basis data yang besar

3.

Pemrosesan transaksi yang tinggi

4.

Mendukung akases data secara simultan

5.

Menjamin ketersediaan yang terkontrol

2|O r a c l e & P L / S Q L

2.

Sekilas Tentang Database

Basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah
kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga
dapat diperiksa menggunakan suatu program komputer untuk memperoleh
informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk
mengelola dan memanggil kueri (query) basis data disebut sistem manajemen
basis data (database management system, DBMS). Sistem basis data dipelajari
dalam ilmu informasi.
Istilah "basis data" berawal dari ilmu komputer. Meskipun kemudian artinya
semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai
basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada
sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan
data yang berhubungan dengan bisnis.

Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan
dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis
fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema
menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara
obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan
struktur basis data: ini dikenal sebagai model basis data atau model data. Model
yang umum digunakan sekarang adalah model relasional, yang menurut istilah
layman mewakili semua informasi dalam bentuk tabel-tabel yang saling
berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang
sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan
antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang
lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih
eksplisit untuk mewakili hubungan antar tabel.

Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan,
dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis
data (database management system/DBMS). Jika konteksnya sudah jelas, banyak

3|O r a c l e & P L / S Q L

administrator dan programer menggunakan istilah basis data untuk kedua arti
tersebut.

Perangkat lunak basis data yang banyak digunakan dalam pemrograman dan
merupakan perangkat basis data aras tinggi (high level):
* DB2
* Microsoft SQL Server
* Oracle
* Sybase
* Interbase
* XBase
* Firebird
* MySQL
* PostgreSQL
* Microsoft Access
* dBase III
* Paradox
* FoxPro
* Visual FoxPro
* Arago
* Force
* Recital
* dbFast
* dbXL
* Quicksilver
* Clipper
* FlagShip
* Harbour
* Visual dBase
* Lotus Smart Suite Approach
Selain perangkat lunak di atas, terdapat juga perangkat lunak pemrograman basis
data aras rendah (low level), diantaranya:

4|O r a c l e & P L / S Q L

* Btrieve
* Tsunami Record Manager

Berikut ini adalah daftar jenis-jenis teknologi database, yang sebagian besar
merupakan Relational Database Management System (RDBMS):

Apache Derby (sebelumnya dikenal sebagai IBM Cloudscape), merupakan

aplikasi pengolah database yang bersifat open source, dikembangkan oleh Apache
Software Foundation. Lazim digunakan di program Java dan untuk pemrosesan
transaksi online.

IBM DB2, merupakan aplikasi pengolah database yang dikembangkan IBM

secara proprietary (komersial). DB2 terbagi menjadi 3 varian, yaitu DB2 untuk
Linux - Unix - Windows, DB2 untuk z/OS (mainframe), dan DB2 untuk iSeries
(OS/400).

Firebird, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Firebird Project. Lazim dijalankan di Linux, Windows dan


berbagai varian Unix.

Microsoft SQL Server, merupakan aplikasi pengolah database yang

dikembangkan oleh Microsoft dan bersifat proprietary (komersial),namun tersedia


juga versi freeware-nya. Lazim digunakan di berbagai versi Microsoft Windows.

MySQL, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Oracle (sebelumnya Sun dan MySQL AB). Merupakan


pengolah database yang paling banyak digunakan di dunia dan lazim diterapkan
untuk aplikasi web.

Oracle, merupakan aplikasi pengolah database yang bersifat proprietary

(komersial), dikembangkan oleh Oracle Corporation. Pengolah database ini


terbagi dalam beberapa varian dengan segmen dan tujuan penggunaan yang
berbeda-beda.

PostgreSQL atau Postgres, merupakan aplikasi pengolah database yang bersifat

open source, dikembangkan oleh PosgreSQL Global Development Group.


Tersedia dalam berbagai platform sistem operasi seperti Linux, FreeBSD, Solaris,
Windows, dan Mac OS.

5|O r a c l e & P L / S Q L

SQLite, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh D. Richard Hipp. Dikenal sebagai pengolah database yang


sangat kecil ukuran programnya, sehingga lazim ditanamkan di berbagai aplikasi
komputer, misalnya di web browser.

Sybase, merupakan aplikasi pengolah database yang bersifat proprietary

(komersial), dikembangkan oleh SAP. Ditargetkan untuk pengembangan aplikasi


mobile.

WebDNA, merupakan aplikasi pengolah database yang bersifat freeware,

dikembangkan oleh WebDNA Software Corporation. Didesain untuk digunakan


di web.

Redis, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Salvatore Sanfilippo (disponsori oleh VMware. Difungsikan


untuk jaringan komputer.

MongoDB, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh 10gen. Tersedia untuk berbagai platform sistem operasi dan
dikenal telah digunakan oleh situs Foursquare, MTV Networks, dan Craigslist.

CouchDB, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Apache Software Foundation. Difokuskan untuk digunakan di


server web.

Arsitektur Database Sistem


Tingkat Eksternal (External Level) Menerangkan view basis data dari sekelompok
pemakai.
Tingkat Konseptual (Conseptual Level) Menerangkan informasi basis data secara
me-nyeluruh dengan menyembunyikan penyimpan-an data secara fisik.

Tingkat Internal (Internal Level)Menerangkan struktur penyimpanan basis data


secara fisik dan organisasi file yang digunakan.
Contoh : sebuah file Pegawai yang akan didefinisikan

6|O r a c l e & P L / S Q L

Tingkat Eksternal (External Level) :

Cobol
01 PEG_REC.
02

PEG_NO

PIC X(6).

02

DEPT_NO

PIC X(4).

02

GAJI

PIC 9(6).

Tingkat Konseptual (Conceptual Level) :


PEGAWAI
NOMOR_PEGAWAI

CHARACTER

NOMOR_DEPT

CHARACTER

GAJI

NUMERIC

Tingkat Internal (Internal Level) :


FILE_PEGAWAI

LENGTH = 22

PREFIX

TYPE = BYTE (6), OFFSET = 0

EMP#

TYPE = BYTE (6), OFFSET = 6,

INDEX = EMPX
DEPT#

TYPE = BYTE (4), OFFSET = 12

PAY

TYPE = FULLWORD, OFFSET = 16

7|O r a c l e & P L / S Q L

Data Independence
Kapasitas untuk merubah skema pada satu level sistem basis data tanpa harus
merubah skema pada level lainnya.
1. Physical Data Independence
Perubahan pada skema internal dimana tidak mempengaruhi kema konseptual
dan eksternal.
2. Logical Data Independence
Perubahan pada skema konseptual dimana tidak mempengaruhi skema
eksternal dan aplikasi program.

Mapping (Transformasi)
Proses pendefinisian informasi dari satu level ke level lainnya.
Conceptual/Internal Mapping
Pendefinisian hubungan antara view konseptual dengan basis data di level internal
(Bagaimana record-record/field-field didalam level konseptual didefinisikan
dilevel internal).

External/Conceptual Mapping
Pendefinisian hubungan antara view konseptual dengan view eksternal
DBMS (Database Management Systems)
DBMS adalah perangkat lunak yang menangani semua pengaksesan database.
Mempunyai fasilitas membuat, mangakses, memanipulasi dan memelihara basis
data.
Bahasa Dalam DBMS
1. Data Definition Language (DDL)
2. Data Manipulation Language (DML)
Procedural DML
Non Procedural

8|O r a c l e & P L / S Q L

Fungsi DBMS
1. Data Definition
DBMS harus dapat mengolah pendefinisian data
2. Data Manipulation
DBMS harus dapat menangani permintaan-permintaan dari pemakai untuk
mengakses data
3. Data Security & Integrity
DBMS harus dapat memeriksa security dan integrity data yang didefinisikan
oleh DBA
4. Data Recovery & Concurency
-

DBMS harus dapat menangani kegagalan-kegagalan pengaksesan


database yang dapat disebabkan oleh kesalahan sistem, kerusakan disk,
dsb.

DBMS harus dapat mengontrol pengaksesan data yang konkuren yaitu


bila satu data diakses secara bersama-sama oleh lebih dari satu
pemakai pada saat yang bersamaan.

5. Data Dictionary
DBMS harus menyediakan data dictionary
6. Performance
DBMS harus menangani unjuk kerja dari semua fungsi seefisien mungkin.

9|O r a c l e & P L / S Q L

Komponen DBMS

Programmers

Users

DBA

Queries

Database
Schema

DBMS
DML
Preprocessor

Query
Processor

DDL
Compiler

Program
Object Code

Database
Manager

Dictionary
Manager

Access
Method

File
Manager

Application
Programs

System
Buffer
Database
dan
Data Dictionary

1.

Query Processsor

2.

Database Manager

3.

File Manager

4.

DML Preprocessor

5.

DDL Compiler

6.

Dictionary Manager

10 | O r a c l e & P L / S Q L

Arsitektur DBMS Multi User

Teleprocessing
Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu
komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di
bawah ini.

IBM Compatible

11 | O r a c l e & P L / S Q L

File-Server
Proses didistribusikan ke dalam jaringan, sejenis LAN (Local Area Network).
File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS.
Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation, tetapi
tetap meminta file dari file server jika diperlukan (perhatikan gambar di bawah
ini).

Workstation2

Workstation1

Workstation3

LAN

request for data

files returned

Database

file server

Kerugian arsitektur file-server adalah


-

Terdapat lalulintas jaringan yang besar

Masing-masing workstation membutuhkan copy DBMS

Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks


karena sejumlah DBMS mengakses file secara bersamaan

12 | O r a c l e & P L / S Q L

Client Server
Client-server menunjukkan cara komponen software berinteraksi dalam bentuk
sistem.

Client 2

Client 3

client 1

LAN

request for data

selected data returned

Database

server (with DBMS)

Data Dictionary
Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data
dalam database. Data dictionary biasa disebut juga dengan metadata atau data
mengenai data.
Berisi tentang :
-

nama-nama user yang mempunyai wewenang untuk menggunakan DBMS.

nama-nama item data yang ada dalam database.

jenis dan ukuran item data

batasan untuk masing-masing item data

13 | O r a c l e & P L / S Q L

Model Data
Sekumpulan konsep-konsep untuk menerangkan data, hubungan-hubungan antara
data dan batasan-batasan data yang terintegrasi di dalam suatu organisasi.
1. Model Data Berbasis Objek
Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan
antar entitas.
2. Model Data Berbasis Record
Pada model data berbasis record, database terdiri dari sejumlah record dalam
bentuk yang tetap yang dapat dibedakan dari bentuknya. Ada 3 macam jenis
model data berbasis record, yaitu :
-

model data relasional (relational)

model data hierarkhi (hierarchical)

model data jaringan (network)

3. Model Data Fisik


Menggambarkan data pada tingkat internal; penyimpanan data secara
detailnya dengan format record penyusunan record dan jalur akses.
4. Model Data Konseptual
Menyediakan konsep yang sesuai dengan persepsi pemakai yang memandang
datanya.

3. Database Oracle
Database Oracle adalah Database relasional yang terdiri dari kumpulan data
dalam suatu sistem manajemen Database RDBMS. Perusahaan Software Oracle
memasarkan jenis Database ini untuk bermacam-macam aplikasi yang bisa
berjalan pada banyak jenis dan merk perangkat keras komputer (platform).

14 | O r a c l e & P L / S Q L

Database Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner
dan Ed Oates lewat perusahaan konsultasinya bernama Software Development
Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah
nama menjadi Oracle Corporation sampai sekarang. (wikipedia indonesia)
Database Oracle terdiri dari beberapa komponen berikut ini :

Software Oracle

Database, yang tersimpan dalam bentuk file pada satu disk atau lebih.

Instance Oracle, terdiri dari background process dan shared memory area

Server process, yang meng-handle user dan aplikasi yang telah terhubung
dengan Database, dan juga mengatur memori dan temporary storage yang
digunakan process tersebut.

Oracle

Net,

yang

memungkinkan

komunikasi

antara client

application dengan Database oracle pada sebuah jaringan.


Kerjaan DBA pada umumnya sebagai berikut :

Menginstal Software oracle

Meng-create database oracle

Upgrade database dan software oracle

Menyalakan dan mematikan Database oracle

Me-manage storage database

Me-manage user dan security database

Mengelola object Database seperti table, index, views, dll

Backup dan recovery

Monitoring dan tuning database

Diagnosis dan reporting error-error yang kritikal

Tools yang biasa digunakan pada Database oracle

Oracle Universal Installer : Digunakan untuk instalasi software oracle, dan


dapat juga digunakan untuk menjalankan Oracle database configuration
assistant untuk menginstal sebuah database

15 | O r a c l e & P L / S Q L

Oracle Database Configuration Assistant : Digunakan untuk meng-create


database dari template yang dibuat oleh oracle, atau kita dapat membuat
database sendiri sesuai keinginan kita

Database Upgrade Assistant : Tools yang membantu kita dalam


melakukan upgrade database.

Net Configuration Assistant : Digunakan untuk konfigurasi listener dan


naming methods, yang merupakan komponen penting dalam oracle
database network

Oracle Enterprise Manager Database Control : Tools yang digunakan


untuk me-manageoracle database interface yang berbasis web.

Ada 3 makna oracle :

1. ORACLE DATABASE SERVER: citra umum bagi sementara masyarakat,


merupakan Relational Database yang sangat konsisten sejak di release tahun 1979.
Sebagai database, Oracle dapat dijalankan pada Windows maupun Linux. Hal ini
merupakan salah satu keunggulan dibanding dengan SQL Server yang hanya bisa
dijalankan dalam Windows.

2. ORACLE sebagai PLATFORM: Sebagai platform, ORACLE memberikan


alternatif yang sangat luas. Tidak saja memiliki dukungan terhadap JAVA, tetapi
mempunyai solusi PHP dan bahkan mendukung implementasi dotNet Framework
dari Microsoft. Selain itu, Oracle juga memiliki berbagai alternatif Aplikasi Siap
Pakai.

3. ORACLE Corporation: sebagai Perusahaan Raksasa di bidang IT. Hal ini yang
mungkin belum disadari banyak orang (kecuali pengamat/pelaku IT). Perusahaan
yang didirikan tahun 1982 sebagai ORACLE Corporation, merupakan
pengembangan dari perusahaan Relational Software Inc (RSI) yang sudah merilis
Oracle Versi 2. Di tahun 2009 ini, Oracle Corporation sudah dapat disandingkan
dengan Raksasa Software Microsoft. Bahkan, bila saja pembelian Sun
Microsystem disetujui, Oracle sudah menjadi perusahaan yang memiliki

16 | O r a c l e & P L / S Q L

segalanya: Database, Application Platform, Application Software, dan (kalau jadi


membeli

SUN

Microsystem)

memiliki

Hardware.

Kekurangan :

Merupakan software DMBS yang paling mahal, paling rumit, dan paling
sulit untuk dipelajari.

Membutuhkan spesifikasi hardware yang tinggi untuk dapat menjalankan


software DMBS Oracle supaya berjalan dengan stabil.

Hanya diperuntukan bagi perusahaan berukuran besar, dan tidak cocok


untuk perusahaan kecil maupun menengah.

Data yang bertambah ukurannya akan mengalami kelambatan proses, jadi


harus ada database management.

Harga yang sangat mahal untuk sebuah database dan penggunaan Oracle
sangat memakan banyak biaya, mulai dari device sampai diperlukannya
DBA yang handal.

Kelebihan :

Merupakan software DBMS yang handal dan memiliki kemampuan yang


tinggi.

Dapat menangani jumlah data dalam ukuran yang besar.

Dapat mengolah data dalam ukuran besar dan mengolahnya dengan cepat
sehingga

didapatkan

informasi

yang

akurat

sesuai

permintaan

pengguna/user.

Memiliki kemampuan akan fleksibilitas dan skalabilitas yang dapat


memenuhi tuntutan akan data dan informasi yang bervolume besar dan
terus-menerus bertambah besar.

Memiliki kemampuan Technology Cluster Server, dimana jika terdapat


lebih dari satu unit server misalnya 100 unit server maka Oracle dapat
menjadikan 100 unit server tersebut aktif bekerja bersama sebagai 100
aktif server.

Memiliki kemampuan untuk management user dan tiap user bisa diatur
hak akses terhadap suatu database oleh database administrator.

17 | O r a c l e & P L / S Q L

Bisa berjalan pada lebih dari satu platform system operasi.

Pemrosesan data yang sangat cepat, open source.

Ketika kita mengakses database dan kemudian ada kejadian seperti listrik
mati misalnya maka data yang sudah kita simpan tidak rusak/hilang.
Oracle memiliki kemampuan flashback, sehingga semua jenis transaksi
yang salah akan dapat dikembalikan. Dan dapat menampung data dalam
sekala besar.dalam PvE maupun PvP, Oracle dapat meningkatkan kerja
tim dengan berbagai buff, menghidupkan kembali orang yang mati,
sehingga dicari cari untuk party, selain itu juga terlihat pada besarnya MP
yang dimilikinya. Dapat bekerja di lingkungan client/server (pemrosesan
tersebar).

4. Cara Instalasi Database Oracle


DBMS (database management system). Ada banyak DBMS yang populer dan
banyak digunakan, diantaranya adalah Mysql, SQL Server, Oracle, dll. Kali ini
kita akan belajar menginstall Oracle 10.1g, tapi sebelum melangkah terlalu
jauh,pastikan komputer kamu cukup memadai untuk merunning oracle. Ini
requirement minimal: Requirement Minimum Value
Physical memory (RAM) 256 MB minimum, 512 MB recommended
Virtual memory Double the amount of RAM
Temp disk space 100 MB
Hard disk space 1.5 GB
Video adapter 256 colors
Processor 200 MHz minimum

18 | O r a c l e & P L / S Q L

Setelah memastikan komputer lebih dari minimum requirement diatas maka


masukkan CD installer lalu cari folder autorun kemudian jalankan file
autorun.exe.

Gambar 1. File instalasi

Gambar 2. Oracle Universal Installer

Kemudian akan muncul program instalasi. Perlu kamu ketahui, program instalasi
yang disebut Oracle Universal Installer ini didevelop pake bahasa Java. Klik
tombol Install/Deinstall Product.

19 | O r a c l e & P L / S Q L

Gambar 3. Setting target instalasi

Pada form diatas kita diminta menentukan lokasi penyimpanan file hasil instalasi,
ubah jika perlu. Biarkan setting lain dalam keadaan default. Jangan lupa isi
databse password, dan jangan lupa pula untuk diinget ya, ntar gak bisa login lho..
Klik

next,

akan

muncul

window

konfirmasi

seperti

ini:

Gambar 4. Summary

Klik install untuk memulai instalasi. Biarkan Oracle menginstall, prosesnya cukup
lama lebih dari setengah jam.

20 | O r a c l e & P L / S Q L

Gambar 5. Proses instalasi

Gambar 6. Proses pembuatan database

Gambar 7. Summary

21 | O r a c l e & P L / S Q L

Gambar 8. Instalasi selesai

Copy teks yang ditampilkan pada window instalasi terakhir. Informasi itu akan
berguna untuk manajemen database.
Informasinya akan seperti ini:
The following J2EE Applications have been deployed and are accessible at the
URLs listed below.Your database configuration files have been installed in
F:\oracle\product\10.1.0 while other components selected for installation have
been installed in F:\oracle\product\10.1.0\Db_1. Be cautious not to accidentally
delete these configuration files.
Ultra Search URL:
http://DANCPM:5620/ultrasearch
Ultra Search Administration Tool URL: http://DANCPM:5620/ultrasearch/admini
SQL*Plus URL:
http://DANCPM:5560/isqlplus
Enteprise Manager 10g Database Control URL:
http://DANCPM:5500/em

22 | O r a c l e & P L / S Q L

Setelah selesai, browser kamu akan membuka Enteprise Manager 10g Database
Control, close saja karena itu tidak banyak digunakan kalo kamu buka seorang
DBA(DatabaseAdministrat).

Gambar 9. Enteprise Manager 10g Database Control

Untuk memulai ngoprek oracle buka :Start Menu -> Programs -> Oracle
OraDb10g_home1

->

Application

Development

->

SQL

Plus

Gambar 10. Login

23 | O r a c l e & P L / S Q L

Kamu akan diminta data login. Masukkan username=system dan password sesuai
instalasi. Biarkan Host String kosong. Host String perlu diisi jika kamu mau
mengakses database yang ada diserver atau dalam komputer kamu ada lebih dari
satu database. Karena kita hanya punya satu database yaitu orcl maka Host String
kosongkan.
Akhirnya kita sudah bisa masuk dan pake oracle. Tapi sebelum kita ngoprek lebi
lanjut dan buat tabel alangkah baiknya kita buat user baru agar user system tidak
berisi database dari kita, karena user system sudah banyak berisi tabel bawaan
oracle, so agar kita tidak pusing dengan banyaknya table di user system (kalo gak
percaya jalankan perintah : select * from tab; ) kita buat user baru bernama cpm
kalo mau pake nama lain terserah kamu deh
jalankan syntak ini:
create user cpm identified by dancpm;
grant connect,resource to cpm;
Untuk baris pertama:
Maksud create user cpm adalah system membuat user baru bernama cpm.
Arti identified by dancpm adalah password dari cpm adalah dancpm
Untuk baris kedua:
Perintah grant digunakan untuk memberikan hak akses terhadap oracle kepada
cpm berupa:
Connect merupakan role yang terdiri dari privilege:
create session.
Resource merupakan role yang terdiri dari privilege :
1. CREATE CLUSTER
2. CREATE INDEXTYPE

24 | O r a c l e & P L / S Q L

3. CREATE OPERATOR
4. CREATE PROCEDURE
5. CREATE SEQUENCE
6. CREATE TABLE
7. CREATE TRIGGER
8. CREATE TYPE
So dengan previlege-previlege diatas kita bisa membuat tabel dan objek database
lain pada user cpm.
Kita harus disconnect dari user system agar bisa masuk ke user cpm yang tadi kita
buat. Ada 2 cara :
1. cara cepat
jalankan perintah berikut
disc
conn
lalu masukkan username=cpm dan password=dancpm (atau sesuai settingan
kamu) saat diminta.
2. cara lama
close SQL Plus
buka :Start Menu -> Programs -> Oracle OraDb10g_home1 -> Application
Development -> SQL Plus
masukkan username=cpm dan password=dancpm (atau sesuai user baru yang
kamu buat tadi)
Sekarang kita sudah bisa mulai pake oracle untuk membuat database.

25 | O r a c l e & P L / S Q L

Pastikan setiap kali pakai oracle kamu login dengan user baru yang sudah dibuat
tadi.
5. Membuat Database di oracle 10g
cara membuat database di Oracle 10g release 2. Saya harap anda sudah
menginstallnya kalo belum anda bisa melihat tutorialnya diartikel sebelumnya.
Baiklah langsung saja.

Perlu diperhatikan disini saya menggunakan OS Windows 7 sp1 32bit.


Buka folder Oracle di Start Menu, lalu pilih folder Configuration and Migration
Tools. Lalu pilih aplikasi Database Configuration Assistant
Lalu ikuti prosedurnya. Database Configuration Assistant berfungsi untuk
membuat database, menghapus database dan reconfiguration database. Ada 12
Prosedure untuk membuat sebuah Database yang Diantaranya :
1. Operations merupakan pilihan yang ingin kita lakukan karna kita ingin
membuat database Kita pilih Create a Database.

26 | O r a c l e & P L / S Q L

2. Database Template merupakan pilihan template yang ingin kita gunakan ada 4
pilihan template yaitu :
1.

Custom Database

2.

Data Warehouse

3.

General Purpose

4.

Transaction Processing

Setiap pilihan template memiliki komponen yang berbeda dan itu bisa dilihat
di Show Details. Akan tetapi karena kita akan membuat database dengan tujuan
umum maka kita pilih General Purpose Template.

Database templates

Lalu klik Next .

27 | O r a c l e & P L / S Q L

3. Database Idenification merupakan proses identifikasi database dan disana kita


diminta untuk memberi nama database yang akan kita buat untuk SID kita biarkan
default sesuai dengan nama database kita.

Database Identification

4. Management Options merupakan proses pengaturan management database.


Lalu centang Configure the Database with Enterprise Manager yang artinya kita
memanage database dengan bantuan Enterprise Manager.

28 | O r a c l e & P L / S Q L

Management Options
Setelah itu ada pilihan Enable Email Notification yang berarti setiap ada
perubahan kita akan mendapat informasi lewat email dan Enable Daily
Backup yang berarti kita mengkatifkan backup otomatis. Kalo merasa butuh
silahkan dicentang kalo tidak ya biarkan saja.

5. Database Credentials merupakan tentang keamanan database disana kita


diminta memasukan password. Lalu isi pasword yang ingin digunakan disana ada
2 pilihan Use the Same Password for All Accounts dan Use the Different
Password.
Perlu diingatkan Administrator di DBMS Oracle adalah SYS, SYSTEM,SYSMAN,
dan DBNSNMP yang mana sebenarnya mereka adalah 1 yaitu Administrator di
Oracle beda halnya jika dibandingkan dengan Mysql yang adminnya adalah
Root.

29 | O r a c l e & P L / S Q L

Dalam opsi ini saya sarankan untuk pilih Use the Same Password for All
Accounts.

Database Credentials

Lalu Next

6. Storage System disini kita akan mengatur mekanisme penyimpanan database


pilih opsi default ( File System ).

30 | O r a c l e & P L / S Q L

Storage Options

Setelah itu

7. Database File Locations merupakan tempat file database yang akan disimpan
pilih default
(Use Database File Locations from Templates)

31 | O r a c l e & P L / S Q L

Database File Locations

8. Recovery Configuration merupakan tempat untuk merecover database


menggunakan flash pilih default (Specify Flash Recovery Area). And Next.

32 | O r a c l e & P L / S Q L

9. Database Content meruapakan content - content yang digunakan pada


database default aja langsung Next.

33 | O r a c l e & P L / S Q L

Database Caption

10. Initialization Parameters merupakan tempat inisialisasi paramater yang akan


digunakan dalam database kalo mau lebih jelasnya silahkan klik All Initialization
Parameters. Opsi ini default aja langsung Next aja.

34 | O r a c l e & P L / S Q L

Initialization Parameters

11. Database Storage disini kita bisa melihat informasi database yang akan
digunakan.

35 | O r a c l e & P L / S Q L

Database Storage

12.Create Options merupakan pilihan pembuatan database.

Lalu Finish.

36 | O r a c l e & P L / S Q L

Creation Options

37 | O r a c l e & P L / S Q L

General Purpose

Lalu akan muncul Confimation tentang database kita


Biarkan proses pembuatannnya berjalan dengan sendirinya tinggal menunggu
lama waktu sesuai dengan kondisi komputer itu sendiri.

38 | O r a c l e & P L / S Q L

Password Management

Setelah database sudah dibuat lalu akan muncul Password Managent yang
menjelaskan tentang hak akses yang diizinkan. mana berfungsi untuk mengatur
hak akses. Jika kalian mau langsung Bereksperimen bisa dibuka salah satu
account selain sys/system, misalnya scott lalu masukan new password lalu
confirmasi password lalu ok.

39 | O r a c l e & P L / S Q L

Password Management
Lalu Pilih Exit.

Untuk menuliskan kode - kode SQL anda bisa langsung bisa memulainya
menggunakan aplikasi sql plus yang berada dimenu start di folder Oracle >
Aplication Development > SQL Plus.

40 | O r a c l e & P L / S Q L

Sql Plus

Dan isi form user name ( diisi dengan nama account yang di unlock selain
sys/system/sysman) dan masukan password lalu Hostringnya dibiarkan kosong
saja lalu klik OK.

41 | O r a c l e & P L / S Q L

42 | O r a c l e & P L / S Q L

PL/SQL

Pengertian PL/SQL
Structured query language (SQL) merupakan bahasa untuk berkomunikasi
dengan database relasional yang bersifat deklaratif (bukan prosedural) dengan
menyatakn hasil (bukan cara memperoleh hasil ).
SQL (Structured Query Language) adalah sebuah bahasa yang
dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini
secara de facto merupakan bahasa standar yang digunakan dalam manajemen
basis data relasional. Saat ini hampir semua server basis data yang ada
mendukung bahasa ini untuk melakukan manajemen datanya. (dari wikipedia)
Sebagai contoh, statemen SQL dibawah ini akan menampilkan informasi
pelanggan dipontianak yang diurutkan secara ascending pada nama pelanggan(1).

SELECT nama, alamt, telp FROM pelanggan


WHERE kota = PONTIANAK ORDER BY nama;

Tabel pelanggan mungkin saja memiliki indeks pada kolom nama, atau
pada kolom kota, atau mungkin pula tidak terdapat indeks. Untuk kecepatan
akses, SQL melalui database engine akan menentuakn cara tercepat memproses
data, karena itu user tidak perlu menetukan bagaimana cara mengambil data.
Jadi SQL merupakan bahasa yang deklaratif tau fungsional karena user
hanya menjelaskan data yang diinginkan. Berbeda dengan bahasa procedural
pascal atau C yang akan melinbatkan proses seperti melakukan pengulangan
sampai akhir tabel atau kondisi kota terpenuhi, melakukan perbandingan kondisi
kota yang dicari maupun pengurutan nama.

43 | O r a c l e & P L / S Q L

Statement SQL dapat dikelompokkan atas ;


Data Manipulation Language.
Statemen yang digunakan untuk memanipulasi data dalam objek schema melalui
perintah select, insert, update, delete, explain plan, dan lock table.
Data Definition Language.
Statement untuk membuat dan menghapus objek schema melalui perintah create,
alter, drop, rename, truncate, serta grant, revoke, analyze, comment, audit, dan
noaudit.
Statement Kontrol Transaksi yang emastiakn transaksi berlangsung secara
normal untuk konsistensi data, contohnya perintah commit, rollback, savepoint,
dan set transaction.
Statement control Session yang mengatur agar suatu session memiliki
karakteristik tertentu dengan perintah alter sesion dan set role.
Statement control system yang mengelola instance database memalui perintah
alter system
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.
Bagi seorang programmer, menguasai SQL adalah sebuah kewajiban,
karena program jaman sekarang pasti menggunakan database untuk menyimpan
datanya. Bagi saya sendiri yang bisa menggunakan program PHP, biasa
menggunakan database mysql dan oracle. Jadi untuk membuat sebuah aplikasi
saya menggunakan program PHP dan database.

44 | O r a c l e & P L / S Q L

Sementar khusus bagi oracle, ada istilah PL/SQL. PL/SQL yang


merupakan singkatan dari Procedural Language/Structured Query Language
merupakan sebuah penggabungan antara bahasa pemrograman prosedural (PL)
dan SQL syntax. Jika digambarkan sebagai berikut :

Jadi dengan PL/SQL kita tidak perlu menggunakan sebuah bahasa


pemrograman sendiri. fungsi-fungsi standard di bahasa pemrograman sudah ada di
sini dan bisa langsung digabung dengan perintah SQL untuk memanipulasi
database. Tapi PL/SQL cuma ada di database oracle saja.

A. Struktur PL/SQL
PL/SQL merupakan bahasa block-structured (berstruktur blok). Yaitu
bahwa unit-unit dasar (procedure, function, dan blok tanpa nama (anonymous
block)) yang membentuk program PL/SQL merupakan blok logikal, yang mana
dapat berisi beberapa sub-sub blok bersarang (nested-blocks). Dengan demikian,
PL/SQL mendukung pendekatan divide-and-conquer (membagi dan mengatasi)
untuk penyelesaian masalah yang disebut dengan stepwiserefinement.
Blok (atau sub-blok) mengijinkan kita untuk mengelompokkan secara
logikaldeklarasi-deklarasi dan perintah-perintah yang terkait. Blok PL/SQL
memiliki tiga bagian:bagian declarative, bagian executable, dan bagian exceptionhandling. (Dalam PL/SQL,peringatan dan kondisi error disebut dengan
exception). Bagian executable merupakan bagianyang mutlak harus ada pada
suatu blok PL/SQL

45 | O r a c l e & P L / S Q L

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

Pemanggilan PL/SQL :

Langsung dari SQL Plus

Dari Aplikasi

Dari PL/SQL lainnya

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 :=

46 | O r a c l e & P L / S Q L

Dapat menggunakan Bind Variable

Tanda garis miring(/) berarti run

Contoh PL/SQL
Sub Program :
a. Nama dari blok PL/SQL yang dapat menerima parameter dan dapat dipanggil
terdapat dua jenis:
Sebuah prosedur yang digunakan untuk melakukan suatu kegiatan tertentu
Sebuah fungsi yang digunakan untuk menghitung suatu nilai
b. Menggunakan struktur blok PL/SQL standart
c. Modular dapat dipergunakan berulang-ulang, ditingkatkan/dikembangkan dan
mudah dalam perawatan.
Semua program PL/SQL harus mengikuti struktur pemrograman sebagai berikut :
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 (Retrun) jika blok adalah fungsi.
Bagian Deklarasi (Declaration)
Bagian ini untuk membuat deklarasi mengenai semua variable dan konstanta yang
direferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini dimulai dengan
perinyah DECLARE. Jika tidak ada variable atau konstanta yang ingin
dideklarasikan, bagian ini boleh dihilangkan.
Bagian Eksekusi (Execution)
Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis. Bagian
eksekusi ini harus dimulai dengan perintah BEGIN.

47 | O r a c l e & P L / S Q L

Bagian Perkecualian (Exception)


Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada waktu
eksekusi program PL/SQL. 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;

Contoh Program (tanpa exception) :

SQL> SET SERVEROUTPUT ON


SQL>DECLARE
v1 NUMBER(3);
BEGIN
v1 := 3;
DBMS_OUTPUT.PUT_LINE('v1= ' || v1);
END;
48 | O r a c l e & P L / S Q L

Contoh Program (dengan exception):

SQL>SET SERVEROUTPUT ON
SQL>DECLARE
X Integer;
BEGIN
X := Belajar Oracle;
DBMS_OUTPUT.PUT_LINE( TO_CHAR(X) );
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE (Kesalahan pada pengisian nilai);
END;

DBMS_OUTPUT
Merupakan paket yang disediakan oleh Oracle PL / SQL dan PUT_LINE
merupakan
salah satu prosedur yang dikemas. Menampilkan nilai-nilai pada SQL Plus *
terminal yang

harus diaktifkan dengan SERVEROUTPUT SET ON terlebih

dahulu. Untuk menjalankan kode sampel ini, login ke SQL * Plus. PL / SQL blok
diakhiri dengan tanda garis miring / atau garis byitself.

Tipe Data
a. Tipe Data dasar :
Numerik
NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER,
INT,
NUMERIC.
Karakter
VARCHAR2, CHAR, LONG
DATE
BOOLEAN
ROWID

49 | O r a c l e & P L / S Q L

b. Tipe Data tambahan : RECORD, ARRAY


Type data yang dapat dikenali dalam PL/SQL dapat berupa type data SQL dan
type data seperti :
1. BOOLEAN
Dipakai untuk menyatakan data logika, yaitu TRUE(benar), FALSE(salah), dan
NULL(kosong).
2. BINARY_INTEGER
Digunakan untuk mendeklarasikan bilangan yang tidak mempunyai angka
desimal. Tipe data NATURAL dan POSITIVE merupakan subset dari
BINARY_INTEGER.
3. %TYPE
Tipe data ini dipakai untuk menandakan bahwa variabelyang deklarasikan sama
dengan tipe data dari kolom tabel tertentu.
4. %ROWTYPE
Tipe data ini menandakan bahwa sekelompok variabel adalah sama dengan tipe
data
Dari row suatu tabel tertentu.
5. Tabel dan Record
Tipe data komposit untuk pemakaian yang lebih kompleks.

Variabel dan Konstanta


Pada bagian deklarasi ditempatkan variable dan konstanta yang dipakai oleh
pernyataan PL/SQL yang dibuat.

Variabel adalah sebuah peubah yang digunakan untuk menampung sebuah nilai
di memori komputer. Dapat menerima nilai baru atau sebaliknya diubah pada saat
program dieksekusi Bentuk Umum :
variable_name datatype [NOT NULL := value ];

50 | O r a c l e & P L / S Q L

Keterangan :
Variable_name adalah nama variabel.
Datatype adalah valid PL / SQL datatype.
NOT NULL adalah sebuah spesifikasi opsional pada variabel.
Nilai atau DEFAULT juga merupakan spesifikasi opsional, di mana anda bisa
menginisialisasi variabel.
Setiap deklarasi variabel adalah pernyataan terpisah dan harus diakhiri dengan
titik koma.

Contoh Deklarasi Variabel :

DECLARE
X integer;
Alamat varchar2(40);
No_induk char(8);
.....
BEGIN
X := 12;
Alamat := Gelatik Dalam 391, Bandung;
No_induk := DOG29549;
END;

Ketika variabel ditetapkan sebagai TIDAK NULL, Anda harus menginisialisasi


variable ketika dideklarasikan. Contoh di bawah ini menyatakan dua variabel,
salah satunya adalah tidak null.

DECLARE
salary number(4);
dept varchar2(10) NOT NULL := HR Dept;
Nilai variabel yang bisa berubah dalam pelaksanaan atau pengecualian bagian PL
/ SQL Block. Kita dapat menempatkan nilai ke variabel dalam dua cara yang
diberikan dibawah ini.

51 | O r a c l e & P L / S Q L

1. Kita dapat langsung memberikan nilai pada variabel. Sintaks Umum adalah:
variable_name:= value;
2. Kita dapat menempatkan nilai ke variabel langsung dari kolom database
dengan
menggunakan SELECT INTO statement. INTO pernyataan.

Sintaks Umum adalah:


SELECT column_name
INTO variable_name
FROM table_name
[WHERE condition];

Konstanta
Digunakan untuk menyimpan sebuah nilai di memori komputer. Nilai yang
disimpan
bersifat tetap (konstan). Nilai ditentukan pada saat deklarasi dibuat sehingga
nilainya tetap pada saat program dieksekusikan.

Contoh Deklarasi Konstanta :


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

Komentar
Digunakan untuk memudahkan proses maintenance
Jenis komentar :

/* ... */ : untuk beberapa baris komentar


-- ... : untuk satu bari komentar

52 | O r a c l e & P L / S Q L

Contoh :
/* Ini adalah komentar Oracle */
-- Ini juga komentar Oracle

PL/SQL (Procedural Language/Structure Query Language) adalah suatu blok


yang berisi

skrip-skrip bahasa prosedural. PL/SQL merupakan bahasa

pemrograman procedural. PL/SQL dapat meningkatkan kinerja database.


Struktur Blok PL/SQL
Terdapat tiga bagian :
Bagian pendeklarasian tipe data (opsional)
Bagian penulisan perintah
Bagian eksepsi (opsional)

Untuk selanjutnya dalam penggunaan PL/SQL akan digunakan SQL*Plus


sebagai editor penulisan script dan uji cobanya.Ada dua media SQL*Plus yang
dapat digunakan dalam praktikum ini, yaitu :Via Web dan Editor SQL*Plus itu
sendiri Sedangkan untuk Oracle PL/SQL Editor tampilannya akan terlihat seperti
pada gambar dibawah ini :

53 | O r a c l e & P L / S Q L

Dalam selanjutnya dibebaskan dalam penggunaan mediauntuk menulis dan


menjalankan Perintah PL/SQL.
Misalkan diberikan perintah PL/SQL sebagai berikut :

Dalam praktikum selanjutnya dibebaskan dalam penggunaan media untuk


menulis dan menjalankan Perintah PL/SQL.Misalkan diberikan perintah PL/SQL
sebagai berikut :
Baris 1 sampai dengan 4 menjelaskan tentang deklarasi variabel
Nimdengan tipe data number dengan panjang maksimum 14 dan deklarasivariabel
Nama dengan tipe data varchar dengan panjang maksimum adalah20, dan variabel
Jurusan dengan tipe data varchar dengan panjangmaksmum 20. Baris 6 dan 8

54 | O r a c l e & P L / S Q L

menjelaskan tentang pengisian variabel Nim,Nama serta Jurusan. Baris 9 dan 10


menjelaskan mengenai tentang set untukvariabel yang menghasilkan tampilan
Nim, Nama. Untuk menjalankan aplikasi diatas ketikkan perintah sebagai berikut :

Selanjutnya untuk melihat hasilnya dapat mengetikkan tanda / (slash). Outputakan


terlihat sebagai berikut :

Contoh suatu program PL/SQL lengkap adalah sebagai berikut :


PROCEDUR ulangan
DECLARE
Ulang NUMBER;
Stop EXCEPTION;
BEGIN
ulang := 0;

55 | O r a c l e & P L / S Q L

LOOP
ulang := ulang + 1;
Dbms_output.put(ulang #);
Dbms_output.put_line (to_char(ulang));
IF ulang > 100 THEN
RAISE stop;
NUMBER;
EXCEPTION;
END IF;
END LOOP;
EXCEPTION
WHEN stop THEN
Dbms_output.put_line(Ulangan selsesai);
END;
Program PL/SQL ini akan menghitung ulangan 100 kali dan kemudian diakhiri
dengan pesan Ulangan selesai.

B. Bagian Deklarasi
Pada bagian ini ditempatkan deklarasi semua variable dan konstanta (constant)
yang akan dipakai oleh pernyataan PL/SQL yang dibuat.
Perbedaan variable dengan konstanta adalah :
Konstanta (constant) nilai ditentukan pada saat deklarasi dibuat sehingga
nilainya tetap pada saat program dieksekusikan. Variabel dapat menerima nilai
baru

atau

nilainya

diubah

pada

saat

program

dieksekusikan.

Waktu

56 | O r a c l e & P L / S Q L

mendeklarasikan suatu variable atau konstanta, harus ditentukan tipe data yang
akan dipakai. Sehingga pada waktu mendeklarasikan variable atau konstanta, tipe
data SQL dapat dipakai. Di samping tipe data SQL, PL/SQL mendukung sejumlah
tipe datanya sendiri sebagai berikut :
BOOLEAN dipakai untuk menyatakan data logika, yaitu TRUE (benar), FALSE
(salah), dan NULL (kosong).
BINARY_INTEGER digunakan untuk mendeklarasikan bilangan yang tidak
mempunyai angka decimal. Tipe data NATURAL dan POSITIVE merupakan
subset dari BINARY_-INTEGER.
%TYPE tipe data ini jika dipakai menandakan bahwa veriabel yang
dideklarasikan sama dengan tipe data dari kolom table tertentu. Ini mempermudah
deklarasi variable untuk menghitung tipe data kolom-kolom table yang sudah
dibuat.
%ROWTYPE - tipe data ini menandakan bahwa sekelompok variable tertentu
adalah sama dengan tipe data dari row suatu table tertentu.
Table dan Record tipe data komposit (composite datatype) untuk pemakaian
yang lebihkompleks.
Contoh deklarasi konstanta :

DECLARE
Temperatur_asal
Nilai_mula
NUMBER := 0;
NUMBER (2) := 100;

57 | O r a c l e & P L / S Q L

Contoh deklarasi variable :

DECLARE
Temperatur
Nama
Alamat
NUMBER (3.2);
VARCHAR2 (30);
%TYPE;

Pada saat deklarasi, panjang tipe data dapat ditentukan (bounded) atau tidak
(unbounded). Jika ditentukan, maka jumlah memori yang dialokasikan untuk tipe
data tersebut juga ditentukan sesuai dengan deklarasi.

Tips untuk mendeklarasikan variabel :

Nama variable tidak boleh menggunakan kata kunci (key word) yang
digunakan oleh PL/SQL seperti : IF, ELSE, LOOP, WHILE, FOR, EXIT,
NULL, dan END.

Pilih nama variable yang ada hubungannya dengan program yang akan
dibuat. Tentukan aturan pemberian nama (naming convention) yang sehingga
mudah diingat.

Pergunakan konstanta untuk menggantikan bilangan tetap.Hapus variablevariabel yang tidak dipakai lagi.

Jika variable mewakili (represent) kolom-kolom suatu table, pergunakan tipe


data %TYPE waktu deklarasi.

58 | O r a c l e & P L / S Q L

Tabel PL/SQL
Tabel PL/SQL sebetulnya dapat diibaratkan semacam array satu dimensi
yang mempunyai satu kolom tunggal yang nilai-nilai datanya diakses dengan
menggunakan indeks. Indeks yang dapat dipakai hanya satu tipe yaitu
BINARY_INTEGER.
Perlu diperhatikan bahwa table PL/SQL tidak sama dengan table SQL
yang dapat memilki banyak kolom-kolom dan memiliki relational integrity.
Kegunaan table PL/SQL adalah untuk menampung data-data yang dihasilkan oleh
program PL/SQL.
Karena PL/SQL tidak menyediakan fasilitas input/output sendiri, maka
hasil yang didapat oleh PL/SQL tidak begitu saja diakses oleh seorang pemakai
atau program lain. Untuk itu Oracle menyediakan dua cara untuk mengakses datadata yang dihasilkan oleh PL/SQL, yaitu dengan menggunakan paket
DBMS_OUTPUT.
Syntax yang harus digunakan untuk mendeklarasikan table PL/SQL adalah :
TYPE nama_tipe IS TABLE O
nama_tabel .nama_kolom%TYPE
INDEX BY BINARY_INTEGER;

Contoh mendeklarasikan table PL/SQL :


SQL> DECLARE
TYPE tipr_no_pembeli IS TABLE OF
Pembeli .no_pembeli%TYPE
INDEX BY BINARY_INTEGER;

59 | O r a c l e & P L / S Q L

Record PL/SQL
Record PL/SQL adalah tipe data komposit lain yang dapat dideklarasikan
dengan syntax sebagai berikut :
TYPE nama_tipe IS RECORD
(nama_kolom tipe_data_kolom,

nama_kolom
tipe_data_kolom) ;
Contoh deklarasi suatu record :
SQL> DECLARE
TYPE
(no_pembeli record_no_pembeli IS RECORD
nama_pembeli pembeli .no_pembeli%TYPE,
alamat pembeli .nama%TYPE
gaji number (10) ) ;
Record ini menggunakan tiga kolom dari table pembeli yang sudah ada dan satu
kolom baru yang tidak ada didalam table pembeli.

C. Bagian Eksekusi
Pada bagian ini pernyataan PL/SQL akan kita buat yang menentukan tujuan
program PL/SQL dibuat. Pernyataan pada bagian ini dapat digolongkan atas :
Pernyataan Penentuan (Assignment)
Pernyataan penentuan umumnya ditandai dengan penggunaan operator samadengan (:=) seperti contoh :

60 | O r a c l e & P L / S Q L

nomer_awal := 1;
nomer_akhir := 100;
temp := tem + 1;
temp_c := (5/9)*(temp_f 32);

Pernyataan Flow Control


Pernyataan flow control ini merupakan pernyataan yang paling sering dipakai
untuk mengatur langkah-langkah suatu program. Operator relasi yang dapat
digunakan antara lain :
IF, ELSE, ELSEIF
LOOP, END LOOP
EXIT, EXIT WHEN
WHILE LOOP, END LOOP
FOR LOOP, END LOOP
GOTO
NULL
Catatan:
Operasi-operasi relasi juga merupakan kata-kunci yang tidak boleh digunakan
sebagai nama variable pada pembuatan deklarasi program PL/SQL.
Contoh pernyataan flow control dengan perintah IF dan ELSE :
IF harga > 200000000 THEN
Diskon := harga * 0.1;
END IF
IF harga > 200000000 THEN

61 | O r a c l e & P L / S Q L

Diskon := harga * 0.1;


ELSEIF
Harga > 150000000 AND
Harga < 200000000 THEN
Diskon := harga * 0.75;
ELSE
DISKON := 0;
END IF;

Contoh flow control dengan perintah LOOP :


LOOP
i =: i + 1;
INSERT INTO jumlah_qty(id, qtyot)
EXIT WHEN i = 10;
END LOOP;
VALUES (i, qty);

Contoh dengan numeric loop :


FOR I IN 1 .. 10
LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
Catatan : Program ini akan membuat loop sepuluh kali.

62 | O r a c l e & P L / S Q L

Komentar membantu menjelaskan tujuan suatu pernyataan. PL/SQL menyediakan


2 cara untuk memberikan komentar, yaitu :
1. Dengan meletakkan di dalam tanda /* dan */ seperti contoh :
/* Pernyataan ini berguna untuk menguji apakah ada kolom yang mempunyai nilai
kosong */
2. Dengan memberikan symbol di depan komentar sepeti contoh :
-- Pernyataan ini berguna untuk menguji apakah ada kolom yang mempunyai nilai
kosong.

Pernyataan SQL

Pernyataan-pernyataan SQL dapat disisipkan di dalam suatu program PL/SQL.


Dengan menyisipkan pernyataan SQL tersebut, program PL/SQL dapat
memproses data table dengan mudah seperti contoh berikut :
IF temp := 0 THEN
INSERT INTO
tabel_temp (nomer, date)
VALUES
(temp, sysdate);
END IF
Program ini akan mengisi table bernama table_temp, jika nilai temp = 0 dengan
menggunakan perintah INSERT.
Pernyataan Kursor
Jika mengeksekusikan suatu pernyataan SQL lewat PL/SQL, Oracle akan
menciptakan suatu ruang kerja pribadi yang dinamakan PGA. Di dlam ruang ini
data yang dikembalikan oleh pernyataan SQL akan disimpan.

63 | O r a c l e & P L / S Q L

Nama Kursor adalah suatu pointer (penunjuk) ke ruang tersebut. Sebelum


dapat dipakai, kursor harus dideklarasikan dahulu seperti contoh :
DECLARE CURSOR c_pembeli IS
SELECT *
FROM pembeli
Kursor c_pembeli ini akan merupakan pointer ke ruang kerja pribadi di
mana hasil pernyataan SQL SELECT * FROM pembeli disimpan. Semua nama
kursor yang dideklarasikan pada suatu program PL/SQL disebut kursor eksplisit.
Karena ada pula kursor yang dinamakan kursor implisit berupa setiap pernyataan
SQL yang dieksekusi oleh PL/SQL.
Pada pembuatan kursor eksplisit, kolom-kolom yang ingin dipanggil oleh
perintah SELECT dapat di tentukan seperti contoh :
DECLARE CURSOR c_pembeli IS
SELECT no_pembeli, nama, alamat
FROM pembeli;

Pada contoh ini hanya ada tiga kolom-kolom dari table pembeli yang akan
dipanggil. Kursor dapat dibuka (open), dipindahkan (fetch), atau ditutup.
Contoh pernyataan untuk membuka kursor c_pembeli :
OPEN c_pembeli;
Contoh pernyataan untuk memindahkan kursor c_pembeli :
FETCH c_pembeli INTO catatan_pembeli;
Contoh pernyataan untuk menutup kursor c_pembeli :
CLOSE c_pembeli;

64 | O r a c l e & P L / S Q L

D. Bagian Exception
Bagian perkecualian ini perlu dibuat jika pernyataan PL/SQL mengembalikan
hasil jika kesalahan (error) pada saat program dieksekusikan. PL/SQL
menyediakan sejumlah exception siap pakai sebagai berikut :
DUP_VAL_ON_INDEX
INVALID_NUMBER
NO_DATA_FOUND
TOO_MANY_ROWS
VALUE_ERROR
Disamping itu exception dapat didefinisikan sendiri (pre-defined
exception) yang dapat dipanggil dengan perintah RAISE di dalam program
PL/SQL. Sedangkan pre-defined exception akan dipanggil secara otomatis jika
terjadi kesalahan tanpa menggunakan perintah RAISE.
Sintaks untuk bagian exception ini adalah :
EXCEPTION
WHEN nama_exceptional THEN
Pernyataan PL/SQL;

WHEN nama_exception THEN


Pernyataan PL/SQL;
END;

Contoh

penggunaan

bagian

exception

dengan

pre-defined

exception

NO_DATA_FOUND :

65 | O r a c l e & P L / S Q L

1 SQL> DECLARE
2 produk_row kategori%ROWTYPE;
3
4 BEGIN
5
6 DBMS_OUTPUT. ENABLE;
7
8 SELECT * INTO produk_row
9 FROM kategori
10 WHERE
11 Nama_kategori = Tidak Ada ;
12 END;
13 /

declare
*
ERROR at line 1:
ORA-01403 : no data found
ORA-06512 : at line 5

Pada contoh ini ketika perintah SELECT memasukkan data pada table
kategori dimana kolom nama_kategori = Tidak Ada, karena nama_kategori
itu tidak akan ditemukan dalam table kategori, maka pesan kesalahan NO
DATA FOUND akan ditampilkan.

66 | O r a c l e & P L / S Q L

Jika sekarang pre-defined NO_DATA_FOUND digunakan pada


program PL/SQL, maka PL/SQL tidak akan menampilkan pesan kesalahan pada
lingkungan SQL*PLUS, melainkan menampilkan pesan kesalahan sesuai dengan
penempatan pre-defined tersebut di dalam program PL/SQL.

E. Cara Mengakses Hasil PL/SQL


Oracle menyediakan dua cara untuk mengakses data-data yang dihasilkan oleh
PL/SQL,yaitu :
Dengan menggunakan paket DBMS_OUTPUT
Paket DBMS_OUTPUT ini disediakan oleh oracle untuk digunakan dengan
SQL*PLUS.
Paket ini terdiri atas sejumlah prosedur dan fungsi siap pakai yang mengatur
intput/output suatu data untuk digunakan oleh PL/SQL.
Dengan menggunakan Tabel PL/SQL
Contoh penggunaan table PL/SQL pada suatu program PL/SQL :
1 SQL> DECLARE
2 TYPE tupe_no_pembeli IS TABLE OF
3 Pembeli.no_pembeli%TYPE
4 INDEX BY BINARY_INTEGER;
5
6
7 no_pembeli_ind tipe_no_pembeli;
8 ind BINARY_INTEGER := 0;
9 akhir BINARY_INTEGER;

67 | O r a c l e & P L / S Q L

10
11 BEGIN
12
13 DBMS_OUTPUT . ENABLE;
14
15 FOR catatan_no_pembeli IN (SELECT no_pembeli
16
17 LOOP
18 ind :+ ind +1;
19 no_pembeli_ind(ind):=catatan_no_pembeli.no_pembeli;
20 END LOOP;
21
22 Akhir := ind;
23
24 FOR ind 1 .. akhir
25
26 LOOP
27 Dbms_output.put_line (no_pembeli_ind( || TO CHAR (ind)
28 || ) = || no_pembeli_ind (ind));
29
30 END LOOP;
31 END;

68 | O r a c l e & P L / S Q L

Jika program PL/SQL tersebut dieksekusikan, akan tampil hasil sebagai berikut :
SQL > /
No_pembeli_ind(1) = 5001
No_pembeli_ind(1) = 5002
No_pembeli_ind(1) = 5003
No_pembeli_ind(1) = 5004
No_pembeli_ind(1) = 5005
Contoh diatas memperlihatkan cara menggunakan table PL/SQL yang hasilnya
diakses oleh program PL/SQL dan ditampilkan oleh paket DBMS_OUTPUT.

SQL Dinamik
Ada dua cara menggunakan SQL dinamik dalam PL/SQL yaitu SQL
Dinamik native dan paket DBMS_SQL dinamik native dapat diletakkan secara
langsung didalam PL/SQL seperti perintah create table log_eror yang dijalankan
melalui melalui EXECUTA IMMEDIATE.
Selain statement DDL untuk mereferensi objek yang belum tersedia pada
saat kompilasi, sql dinamik juaga dapat emnggunakan statement control transaksi,
control session, control system, dan statement DML. SQL dinamik insert into
log_eror pada contoh di atas dikerjakan dengan paket DBMS_SQL. Paket
PL/SQL ini memiliki beberapa prosedur seperti utnuk membuka, parsing, dan
mengeksekusi cursor.

PL/SQL
Pl/sql mengombinasikan kemampuan manipulasi data sql dengan
kemampuan bahasa procedural,dengan kata lain pl/sql adalah sql ditambah
procedural language. Pl/sql merupakan bahasa berstruktur blog yang berupa

69 | O r a c l e & P L / S Q L

fungsi, prosedur, dan blok anonym. Suatublok biasanya ditujukan untu


menyelesaikan suatu tugas tertentu dan suatu blok boleh memliki sub-blok
(nested). Struktur blok pl/sql itu terdiri dari bagian deklarasi, bagian kode
program, dan bagian eksepsi untuk penanganan eror seperti Nampak di bawah ini:

[DECLARE
Declarasi variable]
BEGIN
Kode program
[EXCEPTION
Penanganan error]
END;
Selain membuat fungsi dan prosedur, pl/sql juga digunakan untuk
menghasilkan untuk mengelompokkan fungsi dan prsedur, serta untuk pembuatan
kode program dalam trigger. Tentu saja defeloper akan sering memanfaatkan
pl/sql untuk membuat modul atau program baik yang dilakukan melalui SQL *
Plus, Form Builder, Prosedural Builder, maupun Oracle Portal

Blok pl/sql anonym


Blok pl/sql anonym adalah blok pl/sql tanpa nama dan tidak menggunakan
parameter. Blok anonym tidak disimpan dalam database swhinggan tidak bisa
direferensi oleh blok pl/swql lain.Pada saat blok ini dijalankan pertama
kali,menempatannya shared pool harus didahului dengan proses parsing dan
kompilasi. Proses reparsing dan frekompilasi tidak dilakukan jika blok telas
berada di shared pool.
Apabila blok pl/sql itu telah dikeluuarkan dari shared pool, eksekusi ulang
terhadap blok pl/sql tadi arus melalui tehapad parsing dan kompilasi. Ini

70 | O r a c l e & P L / S Q L

desebabkan blok pl/sql tidak disimpan di database meskipun blok itu bisa
disimpan pada file system operasi.
Dalam pemrograman reguler, blok blok pl/sql anonim itu dapat diubah
menjadi fungsi, prosedur, atau paket sehingga blok pl/sql bisa direferensi melalui
namanya dan menghindari duplikasipembuatan kode program.
a. Parameter
Sub program dipanggil denhgan melewatkan nilai, variabel, atau ekspresi
seseuai parameter yuang ada. Variabel yang berada pada statement pemanggil sub
program atau yangh disebut parameter aktual akan dikirimkan ke parameter
formmal, yaitu variabel yang dideklarasikan pada fungsi atatu prosedur yang
dipanggil. Parameter formal dan aktual itu harus memiliki tipe data yang sama
atau kompatibel.
Pemanggilan sub program untuk melewatkan parameter aktual dapat
dilakukan dengan cara notasi posisi parameter, notasi nama parameter, dan notasi
kombinasi. Penetapan notasi posisi melakukan pemanggiolan sub program
berdasarkan posisi atau urutan parameter formal.
b. Mode parameter
Parameter formal menerima nilai atau variabel dari parameter aktual.
Subprogram dapat menggunakan parameter formal sesuain mode parameter yang
ditetapkan yaitu IN, OUT dan IN OUT. Secara default setiap parameter formal
menggunakan mode IN yang berarti bahwa parameter itu hanya dapat dibaca atau
direferensi dalam body subprogram.
Mode OUT berarti parameter formal hanya dapat ditulis atau diberikan
nilai, sedangkan mode IN OUT memungkinkan parameter formal untuk dibaca
dan ditulis. Jadi untuk dapat mengembal\ikan berbagai nilai maka subpreogram
harus menggunakan mode OUT ataub mode IN OUT,sedangkan mode IN bersifat
seperti konstanta yang tidakn dapat dimodifikasi dalam bodyprosedur yang
dipanggil.

71 | O r a c l e & P L / S Q L

c. Compiler Hint NOCOPY


Proses pengiriman parameter aktual dapat dilakukan dengan dua cara yaitu
by reference dan by value. Pengiriman parameter aktual secara by reference
dilakukan dengan melewatkan pointervparameter aktual ke parameter formal
sehinggan kedua parameter mereferensi lokasi yang sama. Mekanisme itu
berlanmhgsung pada parameter formal dengan mode IN.
Secara default, pengiriman parameter aktual pada subprigram yang
menggunakan mode OUT dan IN OUT dilakukan secara by value yaitu nilai
parameter aktual dicopykan ke parameter formal. Setelah eksekusi subperogram
diakhiri, nilai parameter formal akan dikopiakn ke parameter aktual sehingga
nilain parameter aktual berubah. Utnuk mengubah pola pengiriman by value
mengjadi by reference gunakan hint compiler nocopy sehingga proses copi nilai
data dapat dihindari.
Penggunaan copy nilai data antara kedua parameter itu dapat menurunkan
kecepatan eksekusi dan meningkatkan penggunaan memori terutama pada
parameter yang menangani data berukuran besar seperti record, collection, dan
tipe objek.
Nocopy menuebabkan perubahan nilai pada parametr formal segera
mempengaruhi nilai parameter aktual. Ini berbeda dengan kondisi defaultnya
dimana jika subprogram berakhir secara tudak normal maka parameter formal
tidak akan dicopy pada parameter aktual. Sebagai suatu hingt comliper, nocopy
melakukan

pengiriman

paremeter

by

reference,

sebaiknya

pengiriman

pewaremeter aktual dilakuakan secara by value.

Sub Program
Sub program adalah blok pl/sql dengan nama yang dapoat menggunakan
parametter serta bisa dipangguil oleh statement sql. Sub program terdiri dari
prosedur untuk mengerjakan suatu proses dan function yang mengembalikan

72 | O r a c l e & P L / S Q L

suatau nilai. Sub program itu disimpan dalam database sebagai object schema dan
disebut sebagai stored prosedure dan stured function
Compiler pl/sql akan membuat parse tree dan pseudo code dari stored sub
program itu sehingga ketika sub program dieksekusi pertama kali, engine pl/sql
akan menjalankan pseudo code dan membawanya ke shared pool. Sub program ini
dapat dijalankan ulanng tanpa perlou recompilasi karena code program dan bentuk
compilasinya disimpan pada database dan statusnya ada di data dictionary.pada
blok pl/sql anonim, setiap kali blok tu dijalankan maka blok akan diparsing,
dikompilasi, dan ditempatkan pada shared pool.
Proses reparsing dan recompilasi tidak dilakukan jika blok telah berada di
shred pool.Namun jika bentuk terkompilasi blok terseebut tidak ada di shared pool
peroses parsing, kompilasi harus dilakukan ulang.
a. Fungsi
Fungsi adalah syb program yang mengembalikan suatu nilai. Fungsi terdiri
dari 2 bagian yaitu spesifikasi dan body . bagian spedifikan dimulai dari keyword
function hingga keyword return. Bagian body dimulai dari keyword IS atau AS
hingga keyword AND dan mencakup bagian deklarasi, kode [program dan
ekseption.
b. Stored function
Stored function adalah fungsi yang disimpan dalam databasse seperti
halnya tabel, stoder function merupakan objek schema dan bisa direferensi ole
statement sql. Perubahan fungsi menjadi stored funcotion dilakukan dengan
mmenyertakan klausa create yuntuk menyimpan de database namun apabila
fungsi itu sudah ada, sertakan klausa or replaceuntuk modifikasinya
c. Pepelined
Pepelined poada fungsi akan mengembalikan secara berulang hasil dari
fungsi tabel yang berupa tipe koleksi ( nested table atau varray).

73 | O r a c l e & P L / S Q L

d. Pragma restrict_references
Untuk dapat digunakan melalui statement sql, suatu stored function harus
mematuhi aturan purity untuk mengontrol side effect.
e. prosedur
adalah sub program yang umumnya digunakan untuk mengerjakan suatu
proses. Prosedur terdiri dari 2 bagian yaitu spesifikasi dan body.
f. Stored prosedure
Adalah prisedur yang disimpan pada database sebagai objek schema.
Suatu prosedur dapat diubah menjadi stored prosedure dengan menyertakan
klausa cretae pada definisi prosedur
g. Overloading
Overloading memungkinkan prosedur dan fungsi menggunakan nama
sama. Sub program yang di overload harus menggunakan parameter formal yang
berbeda seperti jumlah paramter, urutan, dan tiprn datanyasub program atau
metode tipe dapat di overloadanjika berada dalam paket.
h. Definer dan invoker rigths
Agar user dapat ememb uat sub program pada schemanya, ia harus
memiliki privileghe system create prosedure, sedangkan pembuatan sub program
pada schema user lain dimungkinkan apabila user memiliki privilege sistem create
any prosedure.
i. Status sub program
Sub program dalam database yang telah dikompilasi tanpa kesalahan akan
bersetatus valid Status itu disimpan pada dictionatry sehingga dapat dideteksi
bilamana objek berstatus valid atau invalid.
j. Melihat source sub program
Source sub program yang disimpan dalam database dapat dilihat melalui
view dictionary

74 | O r a c l e & P L / S Q L

DBA_SOURCE.
Transaksi otonom adalah transaksi independen (autonomous) yang tidak
berbagi pakai resources dengan transaksi induknya oleh karena itu rollback pada
transaksi induk tidak mempengaruhi status transaksi otonom (TO) dan commit
pada TO akan segera tampak bagi transaksi lain, serta eksepsi yang terjadi pada
transaksi otonom meneyebabkan rollback pada transaction level bukan statement
level.
Transaksi otonom itu tidak dapat melihat perubahan yang belum di
commit dan tidak berbagi pakai penguncian (Locking) dengan transaksi induk.
a. Menetapkan transaksi otonom
Suatu transaksi akan bersifak independen jika terdapat pragma atau compiler
detective autonomous_transaction. Pragma ini mengionstruksikan compiler pl/sql
untuk menandai suatu rutin yang independent.
b. Kontrol Transaksi otonom
Ketika rutin otonom dijalannkan, transaksi indik ditangguhkan (suspend) dan
dilanjutkan setelah TO berakhir. Perintah commit dan rollback mengakhiri TO
untuk kemudian melanjutkan statement berikutnya. Statement save point
ditransaksi pemanggil tidak berhubungan dengan save pointy di TO sehinggan
rollback ke save point hanhya dapat dilakukan pada konteks transaksi individual.
Jadi dengan PL/SQL kita tidak perlu menggunakan sebuah bahasa
pemrograman sendiri. Fungsi-fungsi standard di bahasa pemrograman sudah ada
di sini dan bisa langsung digabung dengan perintah SQL untuk memanipulasi
database. Tapi PL/SQL cuma ada di database oracle saja PL / SQL mendukung
variabel, kondisi, loop dan pengecualian. Array juga didukung, meskipun dengan
cara yang agak tidak biasa, yang melibatkan penggunaan PL / SQL koleksi.
PL / SQL koleksi adalah topik yang agak maju. Implementasi dari versi 8
dan seterusnya

Oracle Database telah memasukkan fitur yang berhubungan

dengan objek-orientasi. PL / SQL program unit (dasarnya kontainer code) dapat


dikompilasi ke databaseOracle. Pemrogram sehingga dapat menanamkan PL /

75 | O r a c l e & P L / S Q L

SQL unit fungsionalitas ke dalam database secara langsung. Mereka juga dapat
menulis skrip yang berisi PL / SQL program unit yang dapat membaca ke
database menggunakan alat Oracle SQL * Plus. Setelah unit program telah
disimpan ke dalam database, mereka menjadi tersedia untuk eksekusi di lain
waktu. Sementara programmer dapat dengan mudah menanamkan Data
Manipulation Language (DML) laporan langsung ke / kode mereka PL SQL lurus
ke depan dengan menggunakan statemen SQL, Data Definition Language (DDL)
membutuhkan lebih kompleks "Dynamic SQL" pernyataan yang akan ditulis
dalam kode / PL SQL. Namun, pernyataan DML mendukung mayoritas PL / SQL
code dalam aplikasi perangkat lunak khas. Dalam kasus PL / SQL SQL dinamis,
versi awal dari Database Oracle diperlukan penggunaan

perpustakaan paket

DBMS_SQL rumit Oracle. versi lebih baru memiliki namun memperkenalkan


sederhana "Native Dynamic SQL", bersama dengan sintaks terkait.

SEGERA MELAKSANAKAN.
Oracle Corporation lazim menambah fungsionalitas setiap rilis paket dengan
berturut-turut dari Database Oracle.
<<label>>
DECLARE
TYPE / item / FUNCTION / PROCEDURE declarations
BEGIN
Statements
EXCEPTION
EXCEPTION handlers
END label;
Para <<label>> dan MENYATAKAN dan bagian PENGECUALIAN adalah
opsional.

76 | O r a c l e & P L / S Q L

Pengecualian, kesalahan yang timbul selama pelaksanaan kode, memiliki satu dari
dua jenis:
1. Predefined pengecualian
2. Ditetapkan pengguna pengecualian.
Tipe data utama dalam PL / SQL

termasuk NOMOR, INTEGER, CHAR,

VARCHAR2, DATE, TIMESTAMP, dll TEKS. Fungsi di PL / SQL adalah


kumpulan SQL dan / PL SQL laporan yang melakukan tugas dan harus
mengembalikan nilai ke lingkungan menelepon. fungsi yang didefinisikan
pengguna digunakan untuk melengkapi ratusan fungsi yang dibangun oleh Oracle.
Ada dua jenis fungsi dalam PL / SQL. Fungsi tradisional ditulis dalam bentuk:
CREATE OR REPLACE FUNCTION <function_name> [(input/output variable
declarations)] RETURN return_type
[AUTHID <CURRENT USER | DEFINER>] <IS|AS>
[declaration block]
BEGIN
<PL/SQL block WITH RETURN statement>
RETURN <return_value>;
[EXCEPTION
EXCEPTION block]
RETURN <return_value>;
END;
Gambaran Struktur Kontrol PL/SQL
Berdasarkan structure theorem, setiap program komputer dapat ditulis
menggunakan struktur kontrol dasar yang ditunjukkan dalam Gambar 4-1. Mereka

77 | O r a c l e & P L / S Q L

dapat dikombinasikan dalam suatu cara yang diperlukan untuk menjawab


permasalahan-permasalahan yang ada.

Struktur seleksi menguji kondisi, lalu mengeksekusi satu rangkaian


perintah-perintah daripada lainnya, bergantung kepada kondisi mana yang true
atau false. Suatu condition (kondisi) merupakan suatu variable atau ekpresi yang
menghasilkan nilai Boolean (TRUE atau FALSE). Struktur perulangan
mengeksekusi rangkaian perintah-perintah secara berulang-ulang selama suatu
kondisi bernilai true. Struktur sekuensial (berurutan) secara
mengeksekusi rangkaian perintah-perintah dalam urutan.

sederhana

PL/SQL adalah

peningkatan perintah SQL dalam bentuk pemrograman procedural. DML dan


SELECT dari perintah SQL berada dalam PL/SQL. PL/SQL Engine akan
memecah perintah blok PL/SQL menjadi PL/SQL (dikerjakan oleh Procedural
Statement Executor dari PL/SQL Engine) dan SQL (dikerjakan oleh SQL
Statement Executor dari Oracle Server).
Keuntungan Penggunaan PL/SQL
Integrasi

Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang


dapat digunakan bersama-sama dalam bentuk stored procedure

Peningkatan Kinerja

78 | O r a c l e & P L / S Q L

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 mendeklarasikan Variable

Dapat berupa Variable, Constant, Cursor dan Exception

Penggunaan variable/identifier sangat memudahkan dalam membuat suatu


perintah.

Misalkan untuk membaca hasil suatu 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

79 | O r a c l e & P L / S Q L

REFERENSI

Situmoran, ferryanto. 2004. Menguasai Database Server Dan Pemrograman


Oracle9i. Jakarta: PT Elex

Media Komputindo Gramedia


Ramon A. dan Pauline K. 1999. Dasar-Dasar Database Relasional. Jakarta :
Erlangga
http://www.tutorialpintar.net/2012/10/pengenalan-plsql-pengertian-plsql.html
http://id.scribd.com/doc/76508803/Plsql

https://docs.google.com/viewer?a=v&q=cache:q2pasWjTkxcJ:blog.uinmalang.ac.id/faizz/files/2010/10/PLSQL1.pdf+&hl=id&gl=id&pid=bl&srcid=ADGEESg_2ohFIlWyteVHbIorxQGEJ
Q7NWUA0La1s7wvtOCQfzzvRjrPDG6JGd8OIY1zEiphyGvfwRobETlAQLKocrrq
ZC1n-7YdmCf8VUqPcwDzQ0Kk5y898-boNA3-Iwo3nCpzJN12&sig=AHIEtbQeOtPyZ6XwavK5CEogA_B1a5vbTQ

https://docs.google.com/viewer?a=v&q=cache:hxr0zOcX3FIJ:blog.uinmalang.ac.id/javazone/files/2010/10/Artikel-PL-SQL-dan-ClusterComputing.pdf+&hl=id&gl=id&pid=bl&srcid=ADGEESjubJHWORHqH0lERcc6heeYaLET7CnyCtbMScf0uMoCZuMMvf1SoVhTh23dTV59zA8dsVo_dMQz3Gx
3z874jSIHcqmywNV3zAzgGG9MPl_q59AhnKFjaEE2BacSsaXEJPEBDY&sig=AHIEtbRxGWPlF4TQAC5PvdmvVV_RHylWA

80 | O r a c l e & P L / S Q L

Anda mungkin juga menyukai