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