Oracle Dan PL SQL

104
OR 1 | Oracle & PL /SQL UNIVERSITAS GUNADARMA LABORATORIUM SISTEM INFORMASI 2013 Resnanda Pramudiastiro( 15111990 ) Ricky Reza Pahlevi( 16111129 ) Sandy Achmadi( 16111585 ) ORACLE & PL / SQL

Transcript of Oracle Dan PL SQL

Page 1: Oracle Dan PL SQL

OR

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

ORACLE & PL / SQL

( 15111990 )

Ricky Reza Pahlevi ( 16111129 )

Sandy Achmadi ( 16111585 )

2013

LABORATORIUM

SISTEM INFORMASI

UNIVERSITAS GUNADARMA

Page 2: Oracle Dan PL SQL

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

Page 3: Oracle Dan PL SQL

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

Page 4: Oracle Dan PL SQL

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

Page 5: Oracle Dan PL SQL

    * 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

Page 6: Oracle Dan PL SQL

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

Page 7: Oracle Dan PL SQL

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 6

NOMOR_DEPT CHARACTER 4

GAJI NUMERIC 6

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

Page 8: Oracle Dan PL SQL

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

Page 9: Oracle Dan PL SQL

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

Page 10: Oracle Dan PL SQL

Komponen DBMS

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

Page 11: Oracle Dan PL SQL

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.

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

Page 12: Oracle Dan PL SQL

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

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

Page 13: Oracle Dan PL SQL

Client Server

Client-server menunjukkan cara komponen software berinteraksi dalam bentuk

sistem.

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

Page 14: Oracle Dan PL SQL

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

Page 15: Oracle Dan PL SQL

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

Page 16: Oracle Dan PL SQL

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

Page 17: Oracle Dan PL SQL

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

Page 18: Oracle Dan PL SQL

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

Page 19: Oracle Dan PL SQL

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

Page 20: Oracle Dan PL SQL

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

Page 21: Oracle Dan PL SQL

Gambar 5. Proses

instalasi

Gambar 6. Proses pembuatan database

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

Page 22: Oracle Dan PL SQL

Gambar 7. Summary

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:

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

Page 23: Oracle Dan PL SQL

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

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

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

Page 24: Oracle Dan PL SQL

Gambar 10. Login

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:

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

Page 25: Oracle Dan PL SQL

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

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.

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

Page 26: Oracle Dan PL SQL

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.

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.

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

Page 27: Oracle Dan PL SQL

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. 

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

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

Page 28: Oracle Dan PL SQL

Database templates

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.

Lalu klik Next .

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

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

Page 29: Oracle Dan PL SQL

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. 

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.

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

Page 30: Oracle Dan PL SQL

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.

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

Page 31: Oracle Dan PL SQL

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

Page 32: Oracle Dan PL SQL

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

Page 33: Oracle Dan PL SQL

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

Page 34: Oracle Dan PL SQL

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

Page 35: Oracle Dan PL SQL

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

Page 36: Oracle Dan PL SQL

Database Storage

12.Create Options merupakan pilihan pembuatan database.

Lalu Finish.

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

Page 38: Oracle Dan PL SQL

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

Page 39: Oracle Dan PL SQL

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

Page 40: Oracle Dan PL SQL

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

Page 41: Oracle Dan PL SQL

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

Page 43: Oracle Dan PL SQL

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

Page 44: Oracle Dan PL SQL

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

Page 45: Oracle Dan PL SQL

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 exception-

handling. (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

Page 46: Oracle Dan 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

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

Dapat menggunakan Bind Variable

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

Page 47: Oracle Dan PL SQL

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.

Bagian Perkecualian (Exception)

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

Page 48: Oracle Dan PL SQL

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;

Contoh Program (dengan exception):

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

Page 49: Oracle Dan PL SQL

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

Page 50: Oracle Dan PL SQL

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

Keterangan :

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

Page 51: Oracle Dan PL SQL

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

1. Kita dapat langsung memberikan nilai pada variabel. Sintaks Umum adalah:

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

Page 52: Oracle Dan PL SQL

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

Contoh :

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

Page 53: Oracle Dan PL SQL

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

Page 54: Oracle Dan PL SQL

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

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 :

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

Page 55: Oracle Dan PL SQL

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;

LOOP

ulang := ulang + 1;

Dbms_output.put(‘ulang #’);

Dbms_output.put_line (to_char(ulang));

IF ulang > 100 THEN

RAISE stop;

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

Page 56: Oracle Dan PL SQL

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

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

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

Page 57: Oracle Dan PL SQL

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;

Contoh deklarasi variable :

DECLARE

Temperatur

Nama

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

Page 58: Oracle Dan PL SQL

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 variable-

variabel yang tidak dipakai lagi.

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

data %TYPE waktu deklarasi.

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.

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

Page 59: Oracle Dan PL SQL

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 data-

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

Record PL/SQL

Record PL/SQL adalah tipe data komposit lain yang dapat dideklarasikan

dengan syntax sebagai berikut :

TYPE nama_tipe IS RECORD

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

Page 60: Oracle Dan PL SQL

(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 sama-

dengan (:=) seperti contoh :

nomer_awal := 1;

nomer_akhir := 100;

temp := tem + 1;

temp_c := (5/9)*(temp_f – 32);

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

Page 61: Oracle Dan PL SQL

• 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

Diskon := harga * 0.1;

ELSEIF

Harga > 150000000 AND

Harga < 200000000 THEN

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

Page 62: Oracle Dan PL SQL

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.

Komentar membantu menjelaskan tujuan suatu pernyataan. PL/SQL menyediakan

2 cara untuk memberikan komentar, yaitu :

1. Dengan meletakkan di dalam tanda /* dan */ seperti contoh :

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

Page 63: Oracle Dan PL SQL

/* 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.

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

dapat dipakai, kursor harus dideklarasikan dahulu seperti contoh :

DECLARE CURSOR c_pembeli IS

SELECT *

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

Page 64: Oracle Dan PL SQL

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;

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 :

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

Page 65: Oracle Dan PL SQL

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

1 SQL> DECLARE

2 produk_row kategori%ROWTYPE;

3

4 BEGIN

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

Page 66: Oracle Dan PL SQL

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.

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.

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

Page 67: Oracle Dan 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;

10

11 BEGIN

12

13 DBMS_OUTPUT . ENABLE;

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

Page 68: Oracle Dan PL SQL

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;

Jika program PL/SQL tersebut dieksekusikan, akan tampil hasil sebagai berikut :

SQL > /

No_pembeli_ind(1) = 5001

No_pembeli_ind(1) = 5002

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

Page 69: Oracle Dan PL SQL

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

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:

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

Page 70: Oracle Dan PL SQL

[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

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.

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

Page 71: Oracle Dan PL SQL

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.

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

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

Page 72: Oracle Dan PL SQL

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

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

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

Page 73: Oracle Dan PL SQL

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

d. Pragma restrict_references

Untuk dapat digunakan melalui statement sql, suatu stored function harus

mematuhi aturan purity untuk mengontrol side effect.

e. prosedur

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

Page 74: Oracle Dan PL SQL

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

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

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

Page 75: Oracle Dan PL SQL

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 /

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

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

Page 76: Oracle Dan PL SQL

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.

Pengecualian, kesalahan yang timbul selama pelaksanaan kode, memiliki satu dari

dua jenis:

1. Predefined pengecualian

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

Page 77: Oracle Dan PL SQL

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

dapat dikombinasikan dalam suatu cara yang diperlukan untuk menjawab

permasalahan-permasalahan yang ada.

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

Page 78: Oracle Dan PL SQL

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 sederhana

mengeksekusi rangkaian perintah-perintah dalam urutan. 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

– Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok

dalam satu perintah yang secara drastis dapat menurunkan trafik jaringan

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

Page 79: Oracle Dan PL SQL

– 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

Page 80: Oracle Dan PL SQL

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

malang.ac.id/faizz/files/2010/10/PL-

SQL1.pdf+&hl=id&gl=id&pid=bl&srcid=ADGEESg_2ohFIlWyteVHbIorxQGEJ

Q7NWUA0La1s7wvtOCQfzzvRjrPDG6JGd8OIY1zEiphyGvfwRobETlAQLKocrrq

ZC1n-7YdmCf8VUqPcwDzQ0Kk5y898-boNA3-Iwo3n-

CpzJN12&sig=AHIEtbQeOtPyZ6XwavK5CEogA_B1a5vbTQ

https://docs.google.com/viewer?a=v&q=cache:hxr0zOcX3FIJ:blog.uin-

malang.ac.id/javazone/files/2010/10/Artikel-PL-SQL-dan-Cluster-

Computing.pdf+&hl=id&gl=id&pid=bl&srcid=ADGEESjubJHWORHqH0lERc-

c6heeYaLET7CnyCtbMScf0uMoCZuMMvf1SoVhTh23dTV59zA8dsVo_dMQz3Gx

3z874jSIHcqmywNV3zAzgGG9MPl_q59A-

hnKFjaEE2BacSsaXEJPEBDY&sig=AHIEtbRxGWPlF4TQAC-

5PvdmvVV_RHylWA

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