Anda di halaman 1dari 25

Makalah

Oracle Database

Nama Kelompok :
Novansyah Ifqiawan

[ 13622058 ]

Hendry Hermawan

[ 13622060 ]

Universitas Muhammadiyah Gresik


Jurusan Teknik Informatika
2015

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

BAB I
Pendahuluan
DBMS merupakan software yang digunakan untuk membangun suatu
sistem basis data yang mendekati sempurna. DBMS harus dapat mengatur
basis data tersebut sehingga dapat tersimpan dengan baik tanpa
menimbulkan kekacauan, dapat dipakai oleh banyak user sesuai dengan
kepentingan masing-masing, melindungi dari gangguan pihak-pihak yang
tidak berwenang.
Banyak program basis data yang sudah sering kita gunakan, misalnya
FoxPro, Clipper, Access, dan dBASE. Itu merupakan contoh dari DBMS yang
digunakan pada PC dalam skala yang relatif kecil. Dalam skala yang lebih
besar, dikenal beberapa DBMS yang sering digunakan, antara lain Sybase,
DB2, Informix, Oracle, dan lain-lain.
Oracle mungkin salah satu andalan bagi seorang DBA dalam
pekerjaannya dan disamping itu dapat dikatakan bahwa Oracle begitu
mendominasi pasar database server, hal ini mungkin didasarkan kepada
banyak perusahaan berskala besar mengunakan Oracle dalam mengelola
datanya. Berikut tulisan mengenai sekilas perkembangan Oracle yang di sari
dari berbagai sumber.
Perusahaan Oracle didirikan pada tahun 1977 oleh tiga orang
programmer, yakni Bob Miner, Ed Oates dan Larry Ellison yang menjabat
sebagai CEO (Chief Executive Officer). Konon, dari ketiga programmer
tersebut, Larry adalah yang nomor 3 dalam programming. Larry lebih sering
dan lebih senang mengerjakan pemasaran, dan keluar dari kuliah karena
kegemarannya di Oracle. Perusahaan ini berkonsentrasi pada pembuatan
database server di mainframe. Kisah sukses Oracle Corporation terkait
dengan sejarah dan teori database relasional. Teori database relasional
diperkenalkan hampir secara simultan oleh Edgar F. Codd (dalam artikelnya
yang terkenal Large Shared Data Banks) pada tahun 1969. IBM adalah
perusahaan pertama yang menerapkan model relasional ini dalam bahasa
SQL, dengan produknya DB2. Sayangnya IBM ragu-ragu akan keampuhan
SQL dan model relational (nantinya berpengaruh pada ketertinggalan IBM di
pasar database server sistem operasi Unix dan Windows).
Larry melihat perkembangan teori model relational dan implementasi
database relational dalam DB2. Ia yakin bahwa model relational adalah way
of the future dan memutuskan untuk mengimplementasikan model
relational di produk Oracle. Sebelumnya produk database Oracle memakai
model non-relational (tidak jelas apakah model jaringan atau pohon;
bahasanya COBOL untuk komputer mainframe). Langkah Larry terbukti
benar, dan Oracle menjadi pesaing kuat bagi IBM dalam pasar database
server di mainframe, terutama database bermodel relational.

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

Sekitar pertengahan tahun 1980-an, Larry kembali mengambil langkah


yang tepat dan berani dengan mendeversifikasi produk Oracle (versi 6.x) ke
luar mainframe, yakni ke sistem operasi Unix. Inilah booming kedua bagi
Oracle, terjadi peningkatan penghasilan dan penjual produk secara drastis.
Selanjutnya Oracle Corporation mendiversifikasi Oracle ke sistem operasi
Novell Netware, Windows NT (versi Oracle 7.x, mulai tahun 1996), dan Linux
(versi 8.x, sekitar tahun 1997).
Mulai tahun 1998 Oracle terlihat menghentikan pembuatan produknya
untuk sistem operasi MVS dan Novell Netware. Mulai pertengahan tahun
1990-an, Larry sangat agresif dalam diversifikasi produk. Oracle Corporation
mulai masa itu membuat juga produk-produk non database server seperti
Application Server (WebDB, OAS), Development Tools (Oracle Developer,
Oracle Designer) dan ApplicationSuite (Oracle Apps). Banyak para praktisi
database menggangap Oracle versi 7.x adalah yang paling stabil (Oracle
7.3.4). Suatu perbedaan penting versi 7.3.4 dibanding pendahulunya adalah
adanya bitmap index, index yang sangat efisien untuk menangani kolom
yang variasi nilainya sempit. Di versi 7 terdapat perbaikan dukungan
terhadap VARCHAR, dari batas maksimum 256 menjadi 2000. Versi 8
memperkenalkan partitioning (untuk mengelola database berukuran sangat
besar : VLDB atau Very Large DataBase), advanced queue, recovery
manager, dan user defined (composite) type. Mulai versi ini juga beberapa
produk Oracle dibuat dengan memakai bahasa pemograman Java. Dukungan
terhadap Java masih sangat terbatas di Oracle8. Versi ini memperbesar batas
VARCHAR dari 2000 menjai 4000. Oracle8i (i diartikan sebagai internet)
memiliki dukungan yang lebih baik terhadap java, dukungan terhadap XML,
two-level partitioning, Internet File System, Internet Directory (memakai
Lightweight Directory Access Protocol atau LDAP), arsitektur 3-tier (CORBA,
Common Object Request Broker Architecture) untuk konektivitas dan
Enterprise Manager-nya, Managed Standby Database, serta perluasan
kemampuan trigger. Kebanyakan dukungan tambahan ini memang terkait
dengan internet. Oracle 8i terdiri atas 3 rilis. Rilis 1 = versi 8.1.5, rilis 2 =
versi 8.1.6, dan rilis 3 = versi 8.1.7. Reaplikasi masa rilis 1 memiliki
keterbatasan hanya mampu menangani VARCHAR samapai 2000 karakter.
Keterbatasan ini diperbaiki menjadi 4000 karakter pada rilis 2 dan 3.
Pada tahun 2001 diperkenalkan Oracle9i. Fitur-fitur baru mencakup
self-tuning memory, multiple database-block size serta database template.
Kemudian pada tahun 2005 diperkenalkan Oracle10g. Pada Versi terdapat
beberapa versi, antara lain : Enterprise Edition, Standard Edition, Standard
Edition One, Express Edition.

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

BAB II
Landasan Teori
A. Oracle Database
Oracle Database adalah basis data relasional yang terdiri dari
kumpulan data dalam suatu sistem manajemen basis data RDBMS.
Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk
bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk
perangkat keras komputer (platform).
Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini
untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan
merk perangkat keras komputer (platform). Oracle menggunakan SQL
(Structured query language) sebagai bahasa perantara antara user dan
database. Kemudian Oracle Corp mengembangkan sebuah bahasa procedural
yang mereka sebut sebagai PL/SQL. Dengan menggunakan kedua bahasa ini,
seorang user dapat mengoptimalkan penggunaan database Oracle.

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

Gambar Struktur Oracle Database

B. Sejarah Oracle Database


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

C. Edisi Oracle Database


Oracle membuat produk database oracle dengan beberapa edisi,
adapun edisi-edisinya adalah sebagai berikut:
1. Enterprise Edition (EE) mencakup fitur lebih banyak dari pada
yang 'Standard Edition', terutama di bidang kinerja dan keamanan.
Oracle Corporation memberikan lisensi produk ini berdasarkan
pengguna atau prosesor,misal pada server yang menjalankan 4
atau lebih CPU. EE tidak memiliki batas memori, dan dapat
memanfaatkan clustering menggunakan RAC Oracle.
2. Standar Edition (SE) berisi fungsionalitas database dasar. Oracle
Corporation memberikan lisensi produk ini berdasarkan pengguna
atau prosesor, biasanya untuk server yang terdiri dari satu sampai
empat CPU. Jika jumlah CPU melebihi 4 CPU, pengguna harus
mengkonversi ke lisensi Enterprise. SE tidak memiliki batas
memori, dan dapat memanfaatkan clustering dengan RAC Oracle
tanpa biaya tambahan.
3. Standar Edisi One,diperkenalkan dengan Oracle 10g. Oracle
Corporation memasarkan produk ini untuk digunakan pada
sistem/server dengan satu atau dua CPU. Edisi ini tidak memiliki
keterbatasan memori.
4. Express Edition ( 'Oracle Database XE'), yang diperkenalkan
pada tahun 2005, edisi ini secara bebeas dapat digunakan pada
platform Windows dan Linux (Oracle 10g). Pada produk edisi ini kita
dapat membuat server dengan jumlah memori maksimal 1 GB.
5. Oracle Database Lite, edisi ini dibuat untuk berjalan pada
perangkat mobile.
D. Tools atau Perangkat Oracle
1. Oracle Universal Installer (OUI) merupakan alat untuk membantu
proses instalasi oracle. OUI selain melakukan proses instalasi dia juga bisa
memunculkan fitur Database Configuration Assistant (untuk membuat
database) secara otomatis .
2. Database Configuration Assistant (DBCA): merupakan alat untuk
membuat database. Pembuatan database dapat sesuai template yang ada
ataupun bisa mendesain sesuai keinginan kita.
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

3. Database Upgrade Assistant: merupakan alat untuk mengupgrade


database yang ada ( sedang dipakai ) ke oracle versi lain ( terbaru ).
4. Oracle Enterprise Manager : merupakan alat yang digunakan untuk
mengatur database. Contoh : recovery manager , scheduler , dan
iSQL*Plus. Oracle Enterprise Manager terdiri dari sebuah graphical console
, agents, beberapa layanan dan peralatan yang terintegrasi yang
digunakan sebagai management platform secara umum untuk
mengkonfigurasi produk oracle.
5. SQL*Plus : merupakan suatu command-line interface pada database
oracle.
6. iSQL*Plus : merupakan suatu command-line interface berbasiskan
browser pada database oracle.
7. Recovery Manager (RMAN) : RMAN merupakan alat yang disediakan
oracle untuk menyediakan solusi secara lengkap untuk backup,
restoration, dan recovery file database yang dibutuhkan.
8. Data Pump : merupakan alat yang digunakan untuk memindahkan data
antar database. Contoh: export/ import.
E. Kelebihan Oracle Database
Oracle merupakan salah satu vendor terdepan dalam pengaplikasian
dan juga implementasi dari sistam databse. Hal ini disebabkan karena
Database Oracle memiliki banyak kelebihan. Berikut ini adalah beberapa
kelebihan yang dimiliki oleh Database Oracle :
1. Memiliki kemampuan yang baik untuk melakukan manajemen
sistem database
Kelebihan Database Oracle yang pertama adalah mampu untuk
melakukan manajemen sistem data dengan baik. Hal ini
memungkinkan user ataupun programmer yang menggunakan
Database Oracle dapat melakukan manajemen basis data dengan baik
dan juga sempurna.
2. Jumlah data dan juga angka yang dihandle sangat besar
Sesuai dengan sejarah yang sudah pernah dituluskan oleh
Oracle pada awal berdiri, sistem Database Oracle mampu untuk
menghandel data dan juga angak dalam jumlah yang sangat besar,
sehingga penggunaan dari Database Oracle sangat efektif untuk
ditanamkan pada perusahaan perusahaan dengan skala besar dan
multicorporate. Dengan penggunaan Database Oracle, maka semua
data yang dimiliki oleh perusahaan besar tersebut mampu untuk
dihandle dengan mudah dan juga cepat.
3. Dapat mengolah data dengan cepat dan akurat
Pengolahan data yang dapat dilakukan oleh Database Oracle
merupakan salah satu pengolahan data yang cepat dan juga akurat.
Yang penting adalah, anda sebagai user ataupun programmer yang
menggunakan Database Oracle mengerti cara mengoperasikannya,
maka hasil dar pengolahan data akan muncul secara akurat tanpa ada
kesalahan. Selain tu, berkat spesifikasi yang tinffi dari Oracle, sistem

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

manajemen basis data ini juga dapat bekerja lebih cepat dbandingkan
sistem DBMS yang lainnya.
4. Memiliki kemampuan untuk melakukan cluster server
Merupakan keunggulan dari Database Oracle, yang mungkin
tidak dimiliki oleh vendor DBMS lainnya. Database Oracle mampu
untuk mengimplementasikan manaemen basis data ynag bersumber
dari multi server, atau yang dalam istilah Database Oracle disebut
sebagai Technology Cluster Server. Hal ini memungkinkan Database
Oracle dapat melakukan manajemen data dengan menggunakan lebih
dari 1 server. Apabila suatu instansi memiliki 50 server, maka
Database Oracle mampu untuk mengolah seluruh data yang dimiliki
oleh ke-50 server tersebut secara aktif, tanp ada gangguan sama
sekali.
5. Dapat melakukan management User
Database Oracle juga memilikki kelebihan lainnya, yaitu mampu
untuk melakukan management user. Hal ini berkaitan dengan
pembatasan hak yang dimiliki oleh user, jadi anda dapat melakukan
hal tersebut dengan menggunakan Database Oracle.
6. Multi-Platform
Multi platform, berarti Database Oracle bisa digunakan pada
berbagai macam platform. Berbeda dengan Microsoft SQL Server yang
hanya bisa digunakan pada SIstem Operasi Windows saja, maka
Database Oracle bisa beroperasi pada SIstem Operasi lainnya, seperti
Mac, dan juga Linux.
7. Pemrosesan data yang cepat
Keunggulan utama dari sistem basis data yang diberikan oleh
Database Oracle adalah pemosesan dari pengolahan data yang cepat.
Hal ini akan membantu meningkatkan efisiensi waktu dari suatu
instansi, dan membuat banyak biaya penyelenggaraan IT menjadi lebih
kecil.
8. Memiliki kemampuan flashback
Flashback merupakan kemampuan untuk melakukan restore
ulang pada suatu database yang tidak sengaja mengalami error,
seperti mengalami mati listrik. Ketika anda melakukan manajemen
database, pekerjaan yang sudah anda lakukan akan tersimpan
otomatis, sehingga ketika mengalami masalah dengan komputer
ataupun mengalami mati listrik, pekerjaan anad bisa di-restore kembali
dengan menggunaan fitur flashback ini.
F. Kekurangan Database Oracle
Meskipun memiliki banyak kelebihan dibandingkan dengan software
DBMS lainnya, namun ternyata Database Oracle juga memiliki beberapa
kekurangan. Berikut ini adalah beberapa kekurangan dari Database Oracle :
1. Harga software DBMS tinggi dan mahal
Kekurangan pertama dari Database Oracle adalah masalah
harga jual. Apabila dibandingkan degnan software DBMS yang lainnya,
Database Oracle merupakan software DBMS dengan nilai yang paling
tinggi dan paling mahal. Hal in itentu saja akan mubazir apabila anda
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

tidak terlalu membutuhkan spesifikasi software DBMS yang tinggi,


seperti Database Oracle.
2. Spesifikasi minimum hardware yang tinggi
Karena memiliki fungsi yang sangat banyak, dan juga
kemampuan yang sangat tinggi dalam melakukan manajemen dan
pengolahan dari suatu database, maka hal ini berpengaruh terhadap
spesifikasi minimum yang dibutuhkan oleh sebuah komputer dalam
menjalankan software Database Oracle. Tidak semua PC kantor biasa
bisa menjalankan Database Oracle dengan baik, karena membutuhkan
spesifikasi PC yang cenderung tinggi.
3. Tidak cocok untuk diaplikasikan pada perusahaan atau
instansi kecil
Harga yang mahal dan juga spesifikasi tinggi. Tentu saja ini
membuat Database Oracle menjadi sangat tidak cocok untuk
digunakan oleh perusahaan atau instansi kecil dan juga menengah.
Spesifikasi dan juga fitur yang dimiliki oleh Database Oracle terlalu
tinggi untuk diimplementasikan pada database instansi atau
perusahaa kecil dan mengengah.
4. Rumit dalam mengaplikasikannya
Database Oracle ternyata juga megalami kekurangan, terutama
dalam hal pengoperasiannya. Untuk dapat mengaplikasikan Database
Oracle, seorang user ataupun programmer harus benar benar bisa
memahami cara kerja dari Database Oracle. Hal ini disebabkan karena
fitur yang tinggi, membuat Database Oracle juga membutuhkan
operator yang berpengalaman dalam menlakukan manajemen
database.

BAB III
Pembahasan
SUBJECTS OF ORACLE DATABASE
A. Introduction
1. Variabel
Variabel adalah suatu wadah yang digunakan untuk menampung
nilai atau informasi. Nilai variabel dapat berubah-ubah ketika
program dijalankan. dengan kata lain variabel adalah suatu memori
dengan identitas tertentu untuk menampung nilai atau informasi
baik yang tetap maupun yang berubah ubah.
Mendeklarasikan Variabel
Prosedur penerapan variabel dalam program utama
haruslah

dideklarasikan

terlebih

dahulu,

pengertian

deklarasi dalam pemrograman c++ adalah melakukan


UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

inisialisasi variabel dengan nama dan tipe data yang


digunakan, sehingga nantinya dapat dikenali oleh program.
Adapun caranya adalah sebagai berikut :
Namun adakalanya dalam mendeklarasikan sebuah
variabel langsung disertai dengan nilainya dan ada kalanya
yang tidak, sebagai contoh :
int jumlah;
jumlah = 100;
Dua pernyataan seperti diatas sebenarnya dapat
disingkat melalui pendefinisian yang disertai penugasan
nilai, sebagi berikut :
int jumlah = 100;

Example :
Void main(){
Int a=4;
cout << a= <
getch();

2. Konstanta
Adalah suatu identitas memori untuk menampung nilai atau
informasi yang bersifat tetap dan tidak dapat diubah ubah
Example :
Void main(){
const a = 3.14;
cout << a= <
getch();
}

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

Dalam program demo dibawah ini akan memberikan tambahan


penjelasan tentang implementasi tipe data, variabel dan konstanta.
maka hasil eksekusinya adalah sebagai berikut :
A + B = 300
Berikutnya memberikan inisial terhadap variabel dengan suatu
ungkapan juga diperkenankan, contoh :
float duaphi = 2* 3.14;
jadi nilai dari variabel tersebut diatas adalah hasil kali 2
dari phi

Example Program :
Maka akan menampilkan Isi duaphi = 6.28
Pembuatan variabel tidak selalu di bagian awal
program, tapi boleh dimana saja sebelum dipanggil atau
dioperasikan.

Example Program :

Konstanta
Berbeda dengan variabel, konstanta merupakan wadah
yang

dapat

menyimpan

nilai

tetap

selama

eksekusi

program. Untuk membedakan dengan variabel maka nama


konstanta

harus

menggunakan

huruf

capital.

C++

menyediakan 2 cara untuk membuat konstanta


Cara 1
Menggunakan keyword const
Contoh :
const fload PHI = 3.14;
Cara 2
Menggunakan #define
Contoh :
#define PHI 3.14
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
0

Keuntungan menggunakan #define apabila dibandingkan


dengan

const

adalah

kecepatan

kompilasi,

karena

sebelum

kompilasi dilaksanakan, kompiler pertama kali mencari symbol


#define

(oleh

sebab

itu

mengapa

dikatakan

prepocessor

directive) dan mengganti semua Phi dengan nilai 3.14.


3. Tipe Data
Borland C++ memiliki 7 tipe data dasar yang dapat
digunakan, untuk lebih lengkapnya perhatikan tabel berikut:

Untuk mengetahui ukuran memori dari tipe data, anda dapat


menggunakan fungsi sizeof(). Sedangkan ulasan mengenai
jangkauan tipe data integer selengkapnya
ada disini :

Jangkauan tipe data Integer dan unsign integer(klik)


Tipe data yang berhubungan dengan bilangan bulat

adalah char, int, long. Sedangkan lainnya berhubungan


dengan bilangan pecahan.
Terdapat juga beberapa tipe data tambahan yang
dimiliki oleh Borland C++. Tipe data tambahan ini diberi kata
unsigned di depan nama tipe data.
Unsigned digunkana bila data yang digunakan hanya
data yang positif saja. Berikut beberapa tipe data tambahan
yang dapat Anda gunkana, diantaranya adalah:

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
1

B. Cursor
Blok PL/SQL tidak memungkinkan untuk menangani query
dengan keluaran lebih dari satu baris(record) karena variabel
penampungnya

harus

mempunyai

sebuah

nilai.

Karena

itu,

diperlukan sebuah cursor untuk menampung semua kondisi dari


keluaran sebuah query. Cursor merupakan suatu variabel yang
digunakan untuk menampung hasil query yang terdiri atas lebih
dari satu row atau record. Cursor dapat diilustrasikan sebagai
penampung sekaligus pointer atas hasil eksekusi query. Pada
dasarnya perintah SELECT .. pada PL/SQL merupakan sebuah
cursor. Terdapat dua macam cursor, yaitu: cursor implisit dan cursor
eksplisit
Cursor Implisit
Merupakan perintah SELECT statement dengan klausa
INTO

yang

terdapat

di

dalam

blok

PL/SQL

dan

harus

menghasilkan satu baris record. Jika hasil cursor implisit ini lebih
dari satu baris atau tidak menghasilkan satu baris pun, maka
Oracle akan mengeluarkan pesan kesalahan. Klausa into pada
cursor implisit dipakai untuk menugaskan nilai hasil proses select
ke dalam variabel-variabel yang dipilih.

Atribut

Keterangan
TRUE jika cursor

SQL%FOUND

sebuah

baris

menghasilkan

dari

queri

yang

dideklarasikan. Sebaliknya FALSE.


SQL
%NOTFOUND
SQL
%ROWCOUN
T

Kebalikan dari %FOUND


Jumlah

baris

yang

telah

diambil/ditangkap
(FETCH)
UNIVERSITAS
MUHAMMADIYAH
GRESIK TEKNIK INFORMATIKA
Mengembalikan

SQL%ISOPEN cursor

masih

terbuka (OPEN)

nilai
dalam

TRUE

jika

keadaan

1
2

Contoh :
Cursor eksplisit
Tidak seperti

cursor

implisit,

cursor

eksplisit

harus

dideklarasikan terlebih dahulu sebelum digunakan. Terdapat


empat tahapan penggunaan cursor eksplisit ini yaitu: declare,
open, fetch dan terakhir adalah close.
Statement declare :
CURSOR nama_cursor IS query
Merupakan deklarasi nama cursor dan definisi struktur query
yang akan dilakukan di dalamnya.
Contoh :
Statement open :
OPEN nama_cursor;
Sebelum suatu cursor dapat digunakan, cursor harus dibuka
terlebih dahulu.
Contoh :
Statement fetch
FETCH

nama_cursor

INTO

<variable1,variable2,..>;

Fetch merupakan perintah untuk mengambil isi cursor,


dimana isi dari cursor tersebut adalah hasil query yang telah
dideklarasikan pada statement deklarasi cursor. Dan tiap-tiap
field hasil query tersebut kemudian ditampung dalam variablevariable yang tipe datanya sesuai dengan tipe-tipe kolom query
pada statemen deklarasi. Fetch ini dilakukan untuk tiap-tiap
baris.
Contoh :
Statement close
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
3

CLOSE nama_cursor;

Setelah pemrosesan query selesai, cursor harus ditutup dengan


satatemen CLOSE ini. Berikut ini adalah atribut-atribut untuk
mendapatkan

status

cursor.

Setiap

atribut

dalam

penggunaannya harus didahului dengan nama cursor.


Keterangan
Atribut
nama_cursor%FOUND TRUE

jika

cursor

menghasilkan sebuah
baris dari queri yang
dideklarasikan.
nama_cursor

Sebaliknya FALSE.
Kebalikan
dari

%NOTFOUND
nama_cursor

%FOUND
Jumlah baris yang di-

%ROWCOUNT

fetch

atau

diambil

dari active set.


nama_cursor%ISOPEN TRUE
jika
cursor
sedang terbuka dan
FALSE jika sebaliknya.

Cursor FOR LOOP


Ada

sebuah

cara

untuk

mengambil

isi

cursor

secara

otomatis, yaitu dengan struktur pengulangan FOR LOOP.


Disebut otomatis karena

Tidak perlu proses pembukaan cursor ( OPEN )

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
4

Memanipulasi proses pengambilan cursor ( FETCH )


Tidak perlu penutupan cursor ( CLOSE )
Variabel indeks yang digunakan dalam struktur
pengulangan

FOR_LOOP

tidak

perlu

dideklarasikan

terlebih dahulu
Sintaks:
DECLARE
CURSOR nama_cursor IS ekspresi-query
BEGIN
FOR nama_record IN nama_cursor LOOP
-- nama_record tidak perlu dideklarasikan
...
END LOOP
END;

C. Execption Handling
Setiap kesalahan (error) atau peringatan (warning) yang muncul
karena suatu perintah disebut dengan exception. Bagian exception
ini ditujukan untuk menangani exception tersebut. Bagian ini
disebut juga exception handler, sedangkan mekanisme penanganan
exception itu disebut exception handling. Jika tidak terdapat
EXCEPTION dalam sebuah blok, maka semua proses akan terhenti
dengan tanpa adanya penanganan kesalahan. Sebaliknya jika
terdapat exception section, maka semua perintah berikutnya dalam
bagian executable section tidak dieksekusi dan proses akan
berpindah ke bagian exception handler.
Cara Kerja Exception

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
5

Setiap kali exception muncul, semua perintah berikutnya di


dalam executeble section tidak dieksekusi dan proses akan
berpindah ke exception handler.
Contoh: Misalkan ketika proses SELECT tidak menghasilkan
baris data apapun, Oracle akan membangkitkan error dengan
kode ORA-01403. Begitu error tersebut muncul, proses akan
berpindah ke bagian exception section.

Bentuk umum blok exception adalah sebagai berikut:

EXCEPTION
WHEN exception1 [OR exception2 [OR ...]]
THEN
Statement-statement
[ WHEN exceptiona [OR exceptionb [OR ...]]
THEN
statement-statement ]
...
[ WHEN OTHERS THEN
statement-statement ]

Beberapa jenis kesalahan yang umum terjadi antara lain


:
Jenis Error
Syntax Error

Keterangan
Misal kurang tanda ; dan dalam

Logic Error

penulisan statement
Loop yang tanpa berhenti, urutan

Compile Error

dari operator
Penggunaan perintah yang salah
yang baru diketahui pada saat di

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
6

compile
Error yang

Run Time Error

terjadi

pada

saat

program dijalankan
Predefined Exception
Beberapa jenis error yang sangat umum dimasukkan ke dalam
predefined exception sehingga seorang user dapat membuat
penanganan error terhadap exception yang umum tersebut
tanpa harus mengetahui kode error-nya.
Nama Exception
CURSOR_ALREADY_
OPEN
DUP_VAL_ON_INDEX
INVALID_CURSOR
INVALID_NUMBER
LOGIN_DENIED
NO_DATA_FOUND
NOT_LOGGED_ON
PROGRAM_ERROR
ROWTYPE_MISMATC

Kode Error
ORA-06511

Deskripsi
Membuka

cursor

yang

sedang

ORA-00001

terbuka
Memasukkan

ORA-01001
ORA-01722

kolom unik
Operasi cursor ilegal
Gagal mengkonversi

ORA-01017

NUMBER.
Login
dengan

username

atau

ORA-01403

password yang salah.


SELECT INTO statement

tidak

ORA-01012

menghasilkan baris data.


Mengakses database tetapi tidak

ORA-06501
ORA-06504

terkoneksi.
Terjadi PL/SQL internal error.
Dalam satu penugasan, tipe data

nilai

pada

karakter ke

antara

STORAGE_ERROR

PL/SQL cursor tidak cocok


Memori
rusak
atau

ORA-06500

cursor,

duplikat

variabel

dengan
proses

membutuhkan memori yang lebih


TIMEOUT_ON_RESO

ORA-00051

besar.
Time out.

URCE
TOO_MANY_ROWS

ORA-01422

SELECT

INTO

statement

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
7

menghasilkan lebih dari satu baris


VALUE_ERROR

ORA-06502

data.
Kesalahan pada operasi aritmetika,
konversi,

ZERO_DIVIDE

ORA-01476

D. Storage Procedure
Non nested Procedure

truncate

atau

batasan

rentang nilai.
Membagi dengan nol.

atau

stored

procedure

merupakan

sekumpulan blok PL/SQL yang tersimpan di dalam skema database


dan dapat dieksekusi secara berulang kali jika user memiliki
privilege untuk mengeksekusi procedure tersebut. Nama procedure
yang dibuat nantinya akan menjadi objek dengan tipe procedure.
Procedure

akan

dieksekusi

pada

saat

pemanggilan

setelah

sebelumnya dibuat terlebih dahulu.


Sintaks Pendeklarasian:

CREATE [OR REPLACE] PROCEDURE


nama_procedure
[argumen1 tipe_data,
argumen2 tipe_data,...]
AS
[deklarasi variabel lokal]
BEGIN
badan_prosedur
EXCEPTION
END;

Keterangan
nama_procedure

: nama dari procedure yang akan dibuat

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
8

argumen

parameter-parameter

yang

dipakai

saat

pemanggilan procedure
badan_prosedur

: tempat blok PL/SQL yang memuat baris kode.

Setelah procedure dibuat, dijalankan dengan sintaks berikut.


EXECUTE
nama_procedure(parameter_1,parameter_2,...);
Untuk

menghapus

procedure

yang

telah

kita

buat,

dapat

menggunakan sintaks berikut


DROP PROCEDURE nama_procedure;

Nested Procedure adalah procedure yang dideklarasikan di


dalam Declaration Section suatu blok PL/SQL yang anonim. Karena
dideklarasikan di dalam blok PL/SQL yang anonim maka nested
procedure tidak disimpan dalam basis data dan tidak dapat
dijalankan oleh blok lain kecuali dideklarasikan kembali oleh blok
tersebut.
Jenis-jenis procedure pada oracle :
1) Procedure Tanpa Parameter/Argumen

Procedure yang tidak memiliki parameter/argument biasanya

bersifat statis (outputannya selalu sama) setiap kali dieksekusi.

2) Procedure Dengan Parameter/Argumen


Perbedaan dengan procedure tanpa parameter yaitu
procedure dengan parameter memiliki output yang dinamis
sesuai dengan nilai yang diberi pada parameter procedure
tersebut. Default argumen pada Oracle adalah IN.
Jenis-Jenis parameter/argumen dari Procedure adalah :
a) Parameter Masukan (Input)
Ditandai dengan atribut IN, dimana nilai dari parameter
ini merupakan inputan untuk sebuah procedure.
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

1
9

b) Parameter Keluaran (Output)


Ditandai dengan atribut OUT, dimana parameter ini
merupakan variabel penampung untuk output sebuah
procedure.
E. Stored Function
Perbedaan mendasar antara function dan procedure adalah
bahwa

function

harus

mengembalikan

nilai

tertentu

kepada

pemanggilnya. Nilai ini dikembalikan dengan menggunakan sintaks


RETURN.
Non Nested Function disebut juga stored function yang mirip
dengan stored procedure tetapi harus memberikak output sebuah
nilai. Function ini tersimpan dalam basis data.
Sintaks:

CREATE [OR REPLACE] FUNCTION nama_function


[(argumen [IN|OUT|IN OUT] tipe_data,
argumen [IN|OUT|IN OUT]tipe_data,
...)]
RETURN tipe_data {IS|AS}
[deklarasi variabel lokal]

BEGIN
badan fungsi
END;

RETURN adalah nilai yang dikembalikan oleh function. Jika


terdapat RETURN dalam badan fungsi, maka itu berfungsi untuk
mengembalikan kontrol kepada pemanggil fungsi bersama nilai
yang dikembalikan fungsi.
Sintaks:
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

2
0

RETURN ekspresi;

Dalam satu fungsi dimungkinkan penggunaan RETURN yang lebih


dari satu tetapi bila di dalam badan fungsi tidak terdapat
pernyataan RETURN maka akan terjadi error.
Jenis-jenis Function
a) Function Tanpa Parameter
Function ini tidak memiliki parameter/argumen biasanya
bersifat statis setiap kali dieksekusi.
b) Function BerParameter

Sama seperti Procedure berparameter, Function ber-parameter


memiliki outputan yang dinamis sesuai dengan nilai yang diassign
ke parameter pada function tersebut.

F. Trigger
Merupakan blok PL/SQL yang memiliki fungsi hampir sama
dengan procedure maupun function , hanya saja, jika procedure
atau

function

procedure

atau

dijalankan
function

secara

eksplisit

tersebut,

lewat

sedangkan

pemanggilan

untuk

trigger,

dijalankan secara implisit melalui perintah insert, delete atau


update.
Manfaat
Mengatur integritas dari constraint yang kompleks yang tidak

mungkin ditangani oleh sintaks-sintaks pembuatan tabel.


Mencegah transaksi yang tidak valid
Memperbaiki keamanan database dengan menyediakan audit
yang lebih kompleks mengenai informasi perubahan database

dan user siapa yang melakukan perubahan.


Secara otomatis memberi sinyal program

lain

untuk

melakukan sesuatu jika isi tabel diubah.


Batasan
Tidak dapat menggunakan perintah commit dan rollback,
selain itu juga tidak dapat memanggil procedure, function
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

2
1

atau package yang menggunakan perintah commit dan

rollback.
Tidak dapat diimplementasikan pada kolom pada suatu tabel
yang

memilki

constraint,

jika

pada

akhirnya

akan

menyebabkan pelanggaran constraint. Biasanya terjadi akibat


modifikasi pada primary key
Struktur Dasar Trigger
Sintaks
CREATE [or replace] TRIGGER nama_trigger
( BEFORE|AFTER )
( INSERT|UPDATE [OF nama_kolom,..]|DELETE )ON nama_tabel
[FOR EACH ROW]
[WHEN (kondisi)]
DECLARE
Deklarasi tipe data
BEGIN
Trigger body
END;

Statement Trigger
Bagian Trigger
Trigger timing

Trigger event

Keterangan
Menunjukkan
kapan
trigger
akan
dieksekusi
relatif
terhadap suatu event.
Jenis manipulasi data
pada tabel/view yang
menyebabkan trigger
terpacu.

Nilai yang mungkin


BEFORE
AFER
INSTEAD OF

INSERT
UPDATE
DELETE
CREATE
ALTER
DROP
STARTUP
SHUTDOWN
LOGOFF
LOGON
SERVERERROR
SUSPEND

yang When (boolean value)

Trigger restriction Batasan


(optional)
mengizinkan
pengeksekusian
UNIVERSITAS
trigger.MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA
Trigger type
Berapa
kali
body ROW-level
trigger dieksekusi.
STATEMENT-level
Trigger body
Berisi algoritma aksi Blok PL/SQL
yang akan dilakukan.

2
2

Jenis-jenis Trigger
Row-level dan Statement-level Trigger
Ketika membuat sebuah trigger, kita dapat menentukan
berapa kali aksi trigger di dalamnya dieksekusi:
Row-level trigger dieksekusi untuk setiap row yang
dimanipulasi pada suatu transaksi. Dengan kata lain,
row-level trigger mengerjakan trigger action satu kali
untuk setiap row yang dimanipulasi. Penerapan trigger ini
ditunjukkan oleh adanya klausa FOR EACH ROW. Row-level
trigger berguna jika kode dalam trigger body bergantung
pada setiap baris yang terpengaruh oleh triggering
statement.
Statement-level trigger dieksekusi satu kali pada
saat transaksi, tanpa memperhatikan jumlah row
yang terlibat. Misalnya, jika terdapat suatu transaksi
yang memasukkan 1000 baris ke dalam tabel, maka
statement-level trigger hanya akan dieksekusi sekali saja.
Statement-level trigger berguna jika kode dalam trigger
body tidak bergantung pada baris yang terpengaruh oleh
triggering statement. Secara default trigger yang dibuat
adalah statement-level trigger.
G. Transaction
Dalam database management system (dbms) ada yang di
sebut transaction. Transaction dalam dbms ini bertujuan untuk
menggabungkan beberapa statement perubahan kedalam database
menjadi dianggap satu kesatuan. Dilakukan semuanya atau tidak

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

2
3

sama

sekali

(all

or

nothing)

sehingga

tidak

terjadi

ketidakkonsistenan data. Transaksi mempunyai 2 fungsi utama:


1. Menyediakan reliabilitas, artinya jika terjadi kesalahan
pada salah satu statement maka seluruh perubahan akan
digagalkan. Sehingga data yang tersimpan benar benar
reliable(dapat diandalkan).
2. Melakukan isolasi, artinya satu transaksi harus di proses
satu persatu. Sehingga tidak ada kemungkinan 2 program
mengakses atau bahkan mengubah data sekaligus.
Didalam transaction ada 4 komponen utama, yaitu Atomicity,
Consistency, Isolation and Durability yang biasa di singkat
dengan ACID. Berikut penjelasannya:
1. Atomicity
Adalah suatu aturan dimana

perubahan

dilakukan

secara keseluruhan atau tidak sama sekali. Sehingga jika di


tengah transaksi terjadi kegagalan maka seruluruh perubahan
akan di batalkan dan di kembalikan kekondisi semula.
Kegagalan disini bisa terjadi karena aplikasi, system, database
dsb.
2. Consistency
Menunjukkan konsistensi data yang ada setelah terjadi
transaksi. Beberapa hal yang biasanya ditangani oleh dbms
adalah mengenai integrity constraint. Sedangkan jika berupa
hasil perhitungan bisa di lakukan oleh aplikasi.
3. Isolation
Pada prinsip isolation, data yang sedang di lakukan
perubahan tidak boleh diakses oleh lebih dari satu operasi.
Harus hanya satu operasi yang melakukan perubahan ini.
Sehingga jika ada operasi lain yang akan merubah maka
harus menunggu sampai transaksi yang berlangsung selesai.
4. Durability
Kemampuan DBMS untuk menyimpan data transaksi
yang terjadi. Sehingga jika terjadi kegagalan, DBMS
menjamin bahwa data transaksi yang telah tersimpan tidak
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

2
4

akan hilang. Banyak DBMS yang menuliskan log untuk


suatu transaksi yang dapat digunakan ketika terjadi error
pada hardware maupun software

UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA

2
5

Anda mungkin juga menyukai