Oracle Database
Nama Kelompok :
Novansyah Ifqiawan [ 13622058 ]
Hendry Hermawan [ 13622060 ]
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).
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
inisialisasi variabel dengan nama dan tipe data yang
int jumlah;
jumlah = 100;
Example :
Void main(){
Int a=4;
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();
}
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
#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:
B. Cursor
1
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA
1
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 Contoh :
%ROWCOUN
diambil/ditangkap (FETCH)
T
Mengembalikan nilai TRUE jika
SQL%ISOPEN cursor masih dalam keadaan
terbuka (OPEN)
1
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA
2
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 :
OPEN nama_cursor;
Statement close
1
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA
3
CLOSE 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.
1
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA
4
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.
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.
EXCEPTION
WHEN exception1 [OR exception2 [OR ...]]
THEN
Statement-statement
[ WHEN exceptiona [OR exceptionb [OR ...]]
THEN
statement-statement ]
...
[ WHEN OTHERS THEN
statement-statement ]
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.
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:
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.
EXECUTE
nama_procedure(parameter_1,parameter_2,...);
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:
...)]
BEGIN
badan fungsi
END;
Sintaks:
2
UNIVERSITAS MUHAMMADIYAH GRESIK TEKNIK INFORMATIKA
0
RETURN ekspresi;
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
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