Makalah Oracle Database

Teks penuh

(1)

Makalah

Oracle Database

Nama Kelompok :

Novansyah Ifqiawan

[ 13622058 ]

Hendry Hermawan

[ 13622060 ]

Universitas Muhammadiyah Gresik

Jurusan Teknik Informatika

(2)

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.

(3)

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.

(4)

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.

(5)

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.

(6)

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

(7)

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

(8)

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

(9)

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(); }

(10)

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 :

(11)

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:

(12)

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.

UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA 1 2

Atribut Keterangan

SQL%FOUND

TRUE jika cursor menghasilkan sebuah baris dari queri yang dideklarasikan. Sebaliknya FALSE. SQL

%NOTFOUND Kebalikan dari %FOUND SQL

%ROWCOUN T

Jumlah baris yang telah diambil/ditangkap (FETCH)

SQL%ISOPEN

Mengembalikan nilai TRUE jika cursor masih dalam keadaan

(13)

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 :

Merupakan deklarasi nama cursor dan definisi struktur query yang akan dilakukan di dalamnya.

Contoh :

Statement open :

Sebelum suatu cursor dapat digunakan, cursor harus dibuka terlebih dahulu.

Contoh :

Statement fetch

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

UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA 1 CURSOR nama_cursor IS query

OPEN nama_cursor;

FETCH nama_cursor INTO

(14)

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.

Atribut

Keterangan

nama_cursor%FOUND TRUE jika cursor menghasilkan sebuah baris dari queri yang dideklarasikan. Sebaliknya FALSE. nama_cursor %NOTFOUND Kebalikan dari %FOUND nama_cursor %ROWCOUNT

Jumlah baris yang di-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

(15)

 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

(16)

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:

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 EXCEPTION

WHEN exception1 [OR exception2 [OR ...]] THEN

Statement-statement

[ WHEN exceptiona [OR exceptionb [OR ...]] THEN

statement-statement ] ...

[ WHEN OTHERS THEN

(17)

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_

OPEN ORA-06511

Membuka cursor yang sedang 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

H

ORA-06504 Dalam satu penugasan, tipe data 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 URCE

ORA-00051 Time out.

TOO_MANY_ROWS ORA-01422 SELECT INTO statement

(18)

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

(19)

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

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 DROP PROCEDURE nama_procedure;

(20)

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.

(21)

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 UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA 2 RETURN ekspresi;

(22)

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

UNIVERSITAS MUHAMMADIYAH GRESIK – TEKNIK INFORMATIKA 2 2

Bagian Trigger Keterangan Nilai yang mungkin

Trigger timing Menunjukkan kapan

trigger akan

dieksekusi relatif

terhadap suatu event.

BEFORE AFER

INSTEAD OF Trigger event Jenis manipulasi data

pada tabel/view yang menyebabkan trigger terpacu. INSERT UPDATE DELETE CREATE ALTER DROP STARTUP SHUTDOWN LOGOFF LOGON SERVERERROR SUSPEND … Trigger restriction

(optional) Batasanmengizinkan yang pengeksekusian

trigger.

When (boolean value)

Trigger type Berapa kali body

trigger dieksekusi. ROW-levelSTATEMENT-level Trigger body Berisi algoritma aksi Blok PL/SQL

(23)

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

(24)

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

(25)

akan hilang. Banyak DBMS yang menuliskan log untuk suatu transaksi yang dapat digunakan ketika terjadi error pada hardware maupun software

Figur

Memperbarui...

Referensi

Memperbarui...

Related subjects :