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 1


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 2


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 3


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 4


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 5


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 6


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


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 9


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

1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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:

1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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 menghasilkan
SQL%FOUND sebuah baris dari queri yang
dideklarasikan. Sebaliknya FALSE.
SQL
Kebalikan dari %FOUND
%NOTFOUND
SQL
Jumlah baris yang telah
%ROWCOUN
diambil/ditangkap
UNIVERSITAS (FETCH)
MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA 1
T 2
Mengembalikan nilai TRUE jika
SQL%ISOPEN cursor masih dalam keadaan
terbuka (OPEN)
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 variable-
variable yang tipe datanya sesuai dengan tipe-tipe kolom query
pada statemen deklarasi. Fetch ini dilakukan untuk tiap-tiap
baris.
Contoh :

 Statement close

1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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.
Sebaliknya FALSE.
nama_cursor Kebalikan dari
%NOTFOUND %FOUND
nama_cursor 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 )


1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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

1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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 Keterangan


Syntax Error Misal kurang tanda ; dan ‘ dalam
penulisan statement
Logic Error Loop yang tanpa berhenti, urutan
dari operator
Compile Error Penggunaan perintah yang salah
yang baru diketahui pada saat di

1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
6
compile
Run Time Error Error yang 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 Kode Error Deskripsi


CURSOR_ALREADY_ Membuka cursor yang sedang
ORA-06511
OPEN terbuka
DUP_VAL_ON_INDEX ORA-00001 Memasukkan nilai duplikat pada
kolom unik
INVALID_CURSOR ORA-01001 Operasi cursor ilegal
INVALID_NUMBER ORA-01722 Gagal mengkonversi karakter ke
NUMBER.
LOGIN_DENIED ORA-01017 Login dengan username atau
password yang salah.
NO_DATA_FOUND ORA-01403 SELECT INTO statement tidak
menghasilkan baris data.
NOT_LOGGED_ON ORA-01012 Mengakses database tetapi tidak
terkoneksi.
PROGRAM_ERROR ORA-06501 Terjadi PL/SQL internal error.
ROWTYPE_MISMATC ORA-06504 Dalam satu penugasan, tipe data
H antara cursor, variabel dengan
PL/SQL cursor tidak cocok
STORAGE_ERROR ORA-06500 Memori rusak atau proses
membutuhkan memori yang lebih
besar.
TIMEOUT_ON_RESO ORA-00051 Time out.
URCE
TOO_MANY_ROWS ORA-01422 SELECT INTO statement

1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
7
menghasilkan lebih dari satu baris
data.
VALUE_ERROR ORA-06502 Kesalahan pada operasi aritmetika,
konversi, truncate atau batasan
rentang nilai.
ZERO_DIVIDE ORA-01476 Membagi dengan nol.

D. Storage Procedure
Non nested Procedure 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
1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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.
1
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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:

2
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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 dijalankan secara eksplisit lewat pemanggilan
procedure atau function tersebut, sedangkan 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

2
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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 Keterangan Nilai yang mungkin


Trigger timing Menunjukkan kapan BEFORE
trigger akan AFER
dieksekusi relatif INSTEAD OF
terhadap suatu event.
Trigger event Jenis manipulasi data INSERT
pada tabel/view yang UPDATE
menyebabkan trigger DELETE
terpacu. CREATE
ALTER
DROP
STARTUP
SHUTDOWN
LOGOFF
LOGON
SERVERERROR
SUSPEND

Trigger restriction Batasan yang When (boolean value)
(optional) mengizinkan
pengeksekusian
UNIVERSITAS
trigger.MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA 2
2
Trigger type Berapa kali body ROW-level
trigger dieksekusi. STATEMENT-level
Trigger body Berisi algoritma aksi Blok PL/SQL
yang akan dilakukan.
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

2
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
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
2
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
4
akan hilang. Banyak DBMS yang menuliskan log untuk
suatu transaksi yang dapat digunakan ketika terjadi error
pada hardware maupun software

2
UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA
5

Anda mungkin juga menyukai