Anda di halaman 1dari 80

ORACLE & PL / SQL

OR

Resnanda Pramudiastiro Ricky Reza Pahlevi Sandy Achmadi

( 15111990 ) ( 16111129 ) ( 16111585 )

2013

LABORATORIUM SISTEM INFORMASI

UNIVERSITAS GUNADARMA
1|O r a c l e & P L / S Q L

ORACLE

1. Pengenalan & Sejarah Oracle didirikan pada tahun 1997 lewat perusahaan konsultasi bernama Software Develotment oleh 3 orang programer. Diantaranya Bob Miner, Ed Oates, dan Larry Ellison yang menjabat sebagai CEO (Chief Executive Orricer) selama beberapa tahun sampai saat ini. Perusahaan ini berkonsentrasi pada pembuatan database server di mainframe. Kisah sukses oracle corp terkait dengan sejarah dan teori database rasional. Teori database rasional diperkenalkan hampir secara simultan oleh Edgar F.codd dan seorang pemula lain yang kurang dikenal pada tahun 1960. Larry melihat perkembangan teori model relasional dan implementasi database rasional dalam DB 2. Ia yakin bahwa model relasional adalah way of the future. Dan memutuskan untuk mengimplementasikan model rasional di produk oracle. Sekitar pertengahan tahun 1980an, Larry mendiversifikasi produk oracle (versi 6.X) keluar main frame, yakni ke sistem operasi unix. Selanjutnya tahun 1996 oracle corp mendiversivikasi oracle (versi 7.X) ke sistem operasi novell netware, windows NT, dan Linux (versi 8.X tahun 1997). Mulai pertengahan tahun 1990an oracle corp mulai membuat juga produk-produk nondatabase-server seperti application server (web DB, OAS), development tool (Oracle Developer, Oracle Designer), dan application suite (Oracle Apps). Pengertian Oracle. Oracle adalahrelational database management system (RDBMS).Untuk mengelola informasi secara terbuka, komprenensit dan terintegrasi. Oracle server menyediakan solusi yang efisien dan efektif, karena kemampuannya dalam hal sebagai berikut:

1. 2. 3. 4. 5.

Dapat bekerja di lingkungan client / server (pemrosesan terbesar) Menangani manajemen space dan basis data yang besar Pemrosesan transaksi yang tinggi Mendukung akases data secara simultan Menjamin ketersediaan yang terkontrol

2|O r a c l e & P L / S Q L

2.

Sekilas Tentang Database

Basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi. Istilah "basis data" berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis.

Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.

Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak

3|O r a c l e & P L / S Q L

administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.

Perangkat lunak basis data yang banyak digunakan dalam pemrograman dan merupakan perangkat basis data aras tinggi (high level): * DB2 * Microsoft SQL Server * Oracle * Sybase * Interbase * XBase * Firebird * MySQL * PostgreSQL * Microsoft Access * dBase III * Paradox * FoxPro * Visual FoxPro * Arago * Force * Recital * dbFast * dbXL * Quicksilver * Clipper * FlagShip * Harbour * Visual dBase * Lotus Smart Suite Approach Selain perangkat lunak di atas, terdapat juga perangkat lunak pemrograman basis data aras rendah (low level), diantaranya:

4|O r a c l e & P L / S Q L

* Btrieve * Tsunami Record Manager

Berikut ini adalah daftar jenis-jenis teknologi database, yang sebagian besar merupakan Relational Database Management System (RDBMS):

Apache Derby (sebelumnya dikenal sebagai IBM Cloudscape), merupakan

aplikasi pengolah database yang bersifat open source, dikembangkan oleh Apache Software Foundation. Lazim digunakan di program Java dan untuk pemrosesan transaksi online.

IBM DB2, merupakan aplikasi pengolah database yang dikembangkan IBM

secara proprietary (komersial). DB2 terbagi menjadi 3 varian, yaitu DB2 untuk Linux - Unix - Windows, DB2 untuk z/OS (mainframe), dan DB2 untuk iSeries (OS/400).

Firebird, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Firebird Project. Lazim dijalankan di Linux, Windows dan berbagai varian Unix.

Microsoft SQL Server, merupakan aplikasi pengolah database yang

dikembangkan oleh Microsoft dan bersifat proprietary (komersial),namun tersedia juga versi freeware-nya. Lazim digunakan di berbagai versi Microsoft Windows.

MySQL, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Oracle (sebelumnya Sun dan MySQL AB). Merupakan pengolah database yang paling banyak digunakan di dunia dan lazim diterapkan untuk aplikasi web.

Oracle, merupakan aplikasi pengolah database yang bersifat proprietary

(komersial), dikembangkan oleh Oracle Corporation. Pengolah database ini terbagi dalam beberapa varian dengan segmen dan tujuan penggunaan yang berbeda-beda.

PostgreSQL atau Postgres, merupakan aplikasi pengolah database yang bersifat

open source, dikembangkan oleh PosgreSQL Global Development Group. Tersedia dalam berbagai platform sistem operasi seperti Linux, FreeBSD, Solaris, Windows, dan Mac OS.

5|O r a c l e & P L / S Q L

SQLite, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh D. Richard Hipp. Dikenal sebagai pengolah database yang sangat kecil ukuran programnya, sehingga lazim ditanamkan di berbagai aplikasi komputer, misalnya di web browser.

Sybase, merupakan aplikasi pengolah database yang bersifat proprietary

(komersial), dikembangkan oleh SAP. Ditargetkan untuk pengembangan aplikasi mobile.

WebDNA, merupakan aplikasi pengolah database yang bersifat freeware,

dikembangkan oleh WebDNA Software Corporation. Didesain untuk digunakan di web.

Redis, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Salvatore Sanfilippo (disponsori oleh VMware. Difungsikan untuk jaringan komputer.

MongoDB, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh 10gen. Tersedia untuk berbagai platform sistem operasi dan dikenal telah digunakan oleh situs Foursquare, MTV Networks, dan Craigslist.

CouchDB, merupakan aplikasi pengolah database yang bersifat open source,

dikembangkan oleh Apache Software Foundation. Difokuskan untuk digunakan di server web.

Arsitektur Database Sistem Tingkat Eksternal (External Level) Menerangkan view basis data dari sekelompok pemakai. Tingkat Konseptual (Conseptual Level) Menerangkan informasi basis data secara me-nyeluruh dengan menyembunyikan penyimpan-an data secara fisik.

Tingkat Internal (Internal Level)Menerangkan struktur penyimpanan basis data secara fisik dan organisasi file yang digunakan. Contoh : sebuah file Pegawai yang akan didefinisikan

6|O r a c l e & P L / S Q L

Tingkat Eksternal (External Level) :

Cobol 01 PEG_REC. 02 02 02 PEG_NO DEPT_NO GAJI PIC X(6). PIC X(4). PIC 9(6).

Tingkat Konseptual (Conceptual Level) : PEGAWAI NOMOR_PEGAWAI NOMOR_DEPT GAJI CHARACTER CHARACTER NUMERIC 6 4 6

Tingkat Internal (Internal Level) : FILE_PEGAWAI PREFIX EMP# INDEX = EMPX DEPT# PAY TYPE = BYTE (4), OFFSET = 12 TYPE = FULLWORD, OFFSET = 16 LENGTH = 22 TYPE = BYTE (6), OFFSET = 0 TYPE = BYTE (6), OFFSET = 6,

7|O r a c l e & P L / S Q L

Data Independence Kapasitas untuk merubah skema pada satu level sistem basis data tanpa harus merubah skema pada level lainnya. 1. Physical Data Independence Perubahan pada skema internal dimana tidak mempengaruhi kema konseptual dan eksternal. 2. Logical Data Independence Perubahan pada skema konseptual dimana tidak mempengaruhi skema eksternal dan aplikasi program.

Mapping (Transformasi) Proses pendefinisian informasi dari satu level ke level lainnya. Conceptual/Internal Mapping Pendefinisian hubungan antara view konseptual dengan basis data di level internal (Bagaimana record-record/field-field didalam level konseptual didefinisikan dilevel internal).

External/Conceptual Mapping Pendefinisian hubungan antara view konseptual dengan view eksternal DBMS (Database Management Systems) DBMS adalah perangkat lunak yang menangani semua pengaksesan database. Mempunyai fasilitas membuat, mangakses, memanipulasi dan memelihara basis data. Bahasa Dalam DBMS 1. Data Definition Language (DDL) 2. Data Manipulation Language (DML) Procedural DML Non Procedural

8|O r a c l e & P L / S Q L

Fungsi DBMS 1. Data Definition DBMS harus dapat mengolah pendefinisian data 2. Data Manipulation DBMS harus dapat menangani permintaan-permintaan dari pemakai untuk mengakses data 3. Data Security & Integrity DBMS harus dapat memeriksa security dan integrity data yang didefinisikan oleh DBA 4. Data Recovery & Concurency DBMS harus dapat menangani kegagalan-kegagalan pengaksesan database yang dapat disebabkan oleh kesalahan sistem, kerusakan disk, dsb. DBMS harus dapat mengontrol pengaksesan data yang konkuren yaitu bila satu data diakses secara bersama-sama oleh lebih dari satu pemakai pada saat yang bersamaan.

5. Data Dictionary DBMS harus menyediakan data dictionary 6. Performance DBMS harus menangani unjuk kerja dari semua fungsi seefisien mungkin.

9|O r a c l e & P L / S Q L

Komponen DBMS

Programmers Application Programs

Users Queries

DBA Database Schema

DBMS DML Preprocessor Program Object Code

Query Processor Database Manager

DDL Compiler Dictionary Manager

Access Method

File Manager

System Buffer Database dan Data Dictionary

1. 2. 3. 4. 5. 6.

Query Processsor Database Manager File Manager DML Preprocessor DDL Compiler Dictionary Manager

10 | O r a c l e & P L / S Q L

Arsitektur DBMS Multi User

Teleprocessing Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini.

IBM Compatible

11 | O r a c l e & P L / S Q L

File-Server Proses didistribusikan ke dalam jaringan, sejenis LAN (Local Area Network). File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation, tetapi tetap meminta file dari file server jika diperlukan (perhatikan gambar di bawah ini).

Workstation2

Workstation1

Workstation3

LAN

request for data

files returned

Database

file server

Kerugian arsitektur file-server adalah Terdapat lalulintas jaringan yang besar Masing-masing workstation membutuhkan copy DBMS Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan

12 | O r a c l e & P L / S Q L

Client Server Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem.

Client 2

client 1

Client 3

LAN

request for data

selected data returned

Database

server (with DBMS)

Data Dictionary Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam database. Data dictionary biasa disebut juga dengan metadata atau data mengenai data. Berisi tentang : nama-nama user yang mempunyai wewenang untuk menggunakan DBMS.

nama-nama item data yang ada dalam database. jenis dan ukuran item data batasan untuk masing-masing item data

13 | O r a c l e & P L / S Q L

Model Data Sekumpulan konsep-konsep untuk menerangkan data, hubungan-hubungan antara data dan batasan-batasan data yang terintegrasi di dalam suatu organisasi. 1. Model Data Berbasis Objek Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. 2. Model Data Berbasis Record Pada model data berbasis record, database terdiri dari sejumlah record dalam bentuk yang tetap yang dapat dibedakan dari bentuknya. Ada 3 macam jenis model data berbasis record, yaitu : model data relasional (relational) model data hierarkhi (hierarchical) model data jaringan (network)

3. Model Data Fisik Menggambarkan data pada tingkat internal; penyimpanan data secara detailnya dengan format record penyusunan record dan jalur akses. 4. Model Data Konseptual Menyediakan konsep yang sesuai dengan persepsi pemakai yang memandang datanya.

3. Database Oracle Database Oracle adalah Database relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen Database RDBMS. Perusahaan Software Oracle memasarkan jenis Database ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).

14 | O r a c l e & P L / S Q L

Database 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. (wikipedia indonesia) Database Oracle terdiri dari beberapa komponen berikut ini :

Software Oracle Database, yang tersimpan dalam bentuk file pada satu disk atau lebih. Instance Oracle, terdiri dari background process dan shared memory area Server process, yang meng-handle user dan aplikasi yang telah terhubung dengan Database, dan juga mengatur memori dan temporary storage yang digunakan process tersebut.

Oracle

Net,

yang

memungkinkan

komunikasi

antara client

application dengan Database oracle pada sebuah jaringan. Kerjaan DBA pada umumnya sebagai berikut :

Menginstal Software oracle Meng-create database oracle Upgrade database dan software oracle Menyalakan dan mematikan Database oracle Me-manage storage database Me-manage user dan security database Mengelola object Database seperti table, index, views, dll Backup dan recovery Monitoring dan tuning database Diagnosis dan reporting error-error yang kritikal

Tools yang biasa digunakan pada Database oracle

Oracle Universal Installer : Digunakan untuk instalasi software oracle, dan dapat juga digunakan untuk menjalankan Oracle database configuration assistant untuk menginstal sebuah database

15 | O r a c l e & P L / S Q L

Oracle Database Configuration Assistant : Digunakan untuk meng-create database dari template yang dibuat oleh oracle, atau kita dapat membuat database sendiri sesuai keinginan kita

Database Upgrade Assistant : Tools yang membantu kita dalam melakukan upgrade database.

Net Configuration Assistant : Digunakan untuk konfigurasi listener dan naming methods, yang merupakan komponen penting dalam oracle database network

Oracle Enterprise Manager Database Control : Tools yang digunakan untuk me-manageoracle database interface yang berbasis web.

Ada 3 makna oracle :

1. ORACLE DATABASE SERVER: citra umum bagi sementara masyarakat, merupakan Relational Database yang sangat konsisten sejak di release tahun 1979. Sebagai database, Oracle dapat dijalankan pada Windows maupun Linux. Hal ini merupakan salah satu keunggulan dibanding dengan SQL Server yang hanya bisa dijalankan dalam Windows.

2. ORACLE sebagai PLATFORM: Sebagai platform, ORACLE memberikan alternatif yang sangat luas. Tidak saja memiliki dukungan terhadap JAVA, tetapi mempunyai solusi PHP dan bahkan mendukung implementasi dotNet Framework dari Microsoft. Selain itu, Oracle juga memiliki berbagai alternatif Aplikasi Siap Pakai.

3. ORACLE Corporation: sebagai Perusahaan Raksasa di bidang IT. Hal ini yang mungkin belum disadari banyak orang (kecuali pengamat/pelaku IT). Perusahaan yang didirikan tahun 1982 sebagai ORACLE Corporation, merupakan pengembangan dari perusahaan Relational Software Inc (RSI) yang sudah merilis Oracle Versi 2. Di tahun 2009 ini, Oracle Corporation sudah dapat disandingkan dengan Raksasa Software Microsoft. Bahkan, bila saja pembelian Sun Microsystem disetujui, Oracle sudah menjadi perusahaan yang memiliki

16 | O r a c l e & P L / S Q L

segalanya: Database, Application Platform, Application Software, dan (kalau jadi membeli SUN Microsystem) memiliki Hardware.

Kekurangan : Merupakan software DMBS yang paling mahal, paling rumit, dan paling sulit untuk dipelajari. Membutuhkan spesifikasi hardware yang tinggi untuk dapat menjalankan software DMBS Oracle supaya berjalan dengan stabil. Hanya diperuntukan bagi perusahaan berukuran besar, dan tidak cocok untuk perusahaan kecil maupun menengah. Data yang bertambah ukurannya akan mengalami kelambatan proses, jadi harus ada database management. Harga yang sangat mahal untuk sebuah database dan penggunaan Oracle sangat memakan banyak biaya, mulai dari device sampai diperlukannya DBA yang handal.

Kelebihan : Merupakan software DBMS yang handal dan memiliki kemampuan yang tinggi. Dapat menangani jumlah data dalam ukuran yang besar. Dapat mengolah data dalam ukuran besar dan mengolahnya dengan cepat sehingga didapatkan informasi yang akurat sesuai permintaan

pengguna/user. Memiliki kemampuan akan fleksibilitas dan skalabilitas yang dapat memenuhi tuntutan akan data dan informasi yang bervolume besar dan terus-menerus bertambah besar. Memiliki kemampuan Technology Cluster Server, dimana jika terdapat lebih dari satu unit server misalnya 100 unit server maka Oracle dapat menjadikan 100 unit server tersebut aktif bekerja bersama sebagai 100 aktif server. Memiliki kemampuan untuk management user dan tiap user bisa diatur hak akses terhadap suatu database oleh database administrator.

17 | O r a c l e & P L / S Q L

Bisa berjalan pada lebih dari satu platform system operasi. Pemrosesan data yang sangat cepat, open source. Ketika kita mengakses database dan kemudian ada kejadian seperti listrik mati misalnya maka data yang sudah kita simpan tidak rusak/hilang. Oracle memiliki kemampuan flashback, sehingga semua jenis transaksi yang salah akan dapat dikembalikan. Dan dapat menampung data dalam sekala besar.dalam PvE maupun PvP, Oracle dapat meningkatkan kerja tim dengan berbagai buff, menghidupkan kembali orang yang mati, sehingga dicari cari untuk party, selain itu juga terlihat pada besarnya MP yang dimilikinya. Dapat bekerja di lingkungan client/server (pemrosesan tersebar).

4. Cara Instalasi Database Oracle DBMS (database management system). Ada banyak DBMS yang populer dan banyak digunakan, diantaranya adalah Mysql, SQL Server, Oracle, dll. Kali ini kita akan belajar menginstall Oracle 10.1g, tapi sebelum melangkah terlalu jauh,pastikan komputer kamu cukup memadai untuk merunning oracle. Ini requirement minimal: Requirement Minimum Value Physical memory (RAM) 256 MB minimum, 512 MB recommended Virtual memory Double the amount of RAM Temp disk space 100 MB Hard disk space 1.5 GB Video adapter 256 colors Processor 200 MHz minimum

18 | O r a c l e & P L / S Q L

Setelah memastikan komputer lebih dari minimum requirement diatas maka masukkan CD installer lalu cari folder autorun kemudian jalankan file autorun.exe.

Gambar 1. File instalasi

Gambar 2. Oracle Universal Installer

Kemudian akan muncul program instalasi. Perlu kamu ketahui, program instalasi yang disebut Oracle Universal Installer ini didevelop pake bahasa Java. Klik tombol Install/Deinstall Product.

19 | O r a c l e & P L / S Q L

Gambar 3. Setting target instalasi

Pada form diatas kita diminta menentukan lokasi penyimpanan file hasil instalasi, ubah jika perlu. Biarkan setting lain dalam keadaan default. Jangan lupa isi databse password, dan jangan lupa pula untuk diinget ya, ntar gak bisa login lho.. Klik next, akan muncul window konfirmasi seperti ini:

Gambar 4. Summary

Klik install untuk memulai instalasi. Biarkan Oracle menginstall, prosesnya cukup lama lebih dari setengah jam.

20 | O r a c l e & P L / S Q L

Gambar 5. Proses instalasi

Gambar 6. Proses pembuatan database

Gambar 7. Summary

21 | O r a c l e & P L / S Q L

Gambar 8. Instalasi selesai

Copy teks yang ditampilkan pada window instalasi terakhir. Informasi itu akan berguna untuk manajemen database. Informasinya akan seperti ini: The following J2EE Applications have been deployed and are accessible at the URLs listed below.Your database configuration files have been installed in F:\oracle\product\10.1.0 while other components selected for installation have been installed in F:\oracle\product\10.1.0\Db_1. Be cautious not to accidentally delete these configuration files. Ultra Search URL: http://DANCPM:5620/ultrasearch Ultra Search Administration Tool URL: http://DANCPM:5620/ultrasearch/admini SQL*Plus URL: http://DANCPM:5560/isqlplus Enteprise Manager 10g Database Control URL: http://DANCPM:5500/em

22 | O r a c l e & P L / S Q L

Setelah selesai, browser kamu akan membuka Enteprise Manager 10g Database Control, close saja karena itu tidak banyak digunakan kalo kamu buka seorang DBA(DatabaseAdministrat).

Gambar 9. Enteprise Manager 10g Database Control

Untuk memulai ngoprek oracle buka :Start Menu -> Programs -> Oracle OraDb10g_home1 -> Application Development -> SQL Plus

Gambar 10. Login

23 | O r a c l e & P L / S Q L

Kamu akan diminta data login. Masukkan username=system dan password sesuai instalasi. Biarkan Host String kosong. Host String perlu diisi jika kamu mau mengakses database yang ada diserver atau dalam komputer kamu ada lebih dari satu database. Karena kita hanya punya satu database yaitu orcl maka Host String kosongkan. Akhirnya kita sudah bisa masuk dan pake oracle. Tapi sebelum kita ngoprek lebi lanjut dan buat tabel alangkah baiknya kita buat user baru agar user system tidak berisi database dari kita, karena user system sudah banyak berisi tabel bawaan oracle, so agar kita tidak pusing dengan banyaknya table di user system (kalo gak percaya jalankan perintah : select * from tab; ) kita buat user baru bernama cpm kalo mau pake nama lain terserah kamu deh jalankan syntak ini: create user cpm identified by dancpm; grant connect,resource to cpm; Untuk baris pertama: Maksud create user cpm adalah system membuat user baru bernama cpm. Arti identified by dancpm adalah password dari cpm adalah dancpm Untuk baris kedua: Perintah grant digunakan untuk memberikan hak akses terhadap oracle kepada cpm berupa: Connect merupakan role yang terdiri dari privilege: create session. Resource merupakan role yang terdiri dari privilege : 1. CREATE CLUSTER 2. CREATE INDEXTYPE

24 | O r a c l e & P L / S Q L

3. CREATE OPERATOR 4. CREATE PROCEDURE 5. CREATE SEQUENCE 6. CREATE TABLE 7. CREATE TRIGGER 8. CREATE TYPE So dengan previlege-previlege diatas kita bisa membuat tabel dan objek database lain pada user cpm. Kita harus disconnect dari user system agar bisa masuk ke user cpm yang tadi kita buat. Ada 2 cara : 1. cara cepat jalankan perintah berikut disc conn lalu masukkan username=cpm dan password=dancpm (atau sesuai settingan kamu) saat diminta. 2. cara lama close SQL Plus buka :Start Menu -> Programs -> Oracle OraDb10g_home1 -> Application Development -> SQL Plus masukkan username=cpm dan password=dancpm (atau sesuai user baru yang kamu buat tadi) Sekarang kita sudah bisa mulai pake oracle untuk membuat database.

25 | O r a c l e & P L / S Q L

Pastikan setiap kali pakai oracle kamu login dengan user baru yang sudah dibuat tadi. 5. Membuat Database di oracle 10g cara membuat database di Oracle 10g release 2. Saya harap anda sudah menginstallnya kalo belum anda bisa melihat tutorialnya diartikel sebelumnya. Baiklah langsung saja.

Perlu diperhatikan disini saya menggunakan OS Windows 7 sp1 32bit. Buka folder Oracle di Start Menu, lalu pilih folder Configuration and Migration Tools. Lalu pilih aplikasi Database Configuration Assistant Lalu ikuti prosedurnya. Database Configuration Assistant berfungsi untuk membuat database, menghapus database dan reconfiguration database. Ada 12 Prosedure untuk membuat sebuah Database yang Diantaranya : 1. Operations merupakan pilihan yang ingin kita lakukan karna kita ingin membuat database Kita pilih Create a Database.

26 | O r a c l e & P L / S Q L

2. Database Template merupakan pilihan template yang ingin kita gunakan ada 4 pilihan template yaitu : 1. 2. 3. 4. Custom Database Data Warehouse General Purpose Transaction Processing

Setiap pilihan template memiliki komponen yang berbeda dan itu bisa dilihat di Show Details. Akan tetapi karena kita akan membuat database dengan tujuan umum maka kita pilih General Purpose Template.

Database templates

Lalu klik Next .

27 | O r a c l e & P L / S Q L

3. Database Idenification merupakan proses identifikasi database dan disana kita diminta untuk memberi nama database yang akan kita buat untuk SID kita biarkan default sesuai dengan nama database kita.

Database Identification

4. Management Options merupakan proses pengaturan management database. Lalu centang Configure the Database with Enterprise Manager yang artinya kita memanage database dengan bantuan Enterprise Manager.

28 | O r a c l e & P L / S Q L

Management Options Setelah itu ada pilihan Enable Email Notification yang berarti setiap ada perubahan kita akan mendapat informasi lewat email dan Enable Daily Backup yang berarti kita mengkatifkan backup otomatis. Kalo merasa butuh silahkan dicentang kalo tidak ya biarkan saja.

5. Database Credentials merupakan tentang keamanan database disana kita diminta memasukan password. Lalu isi pasword yang ingin digunakan disana ada 2 pilihan Use the Same Password for All Accounts dan Use the Different Password. Perlu diingatkan Administrator di DBMS Oracle adalah SYS, SYSTEM,SYSMAN, dan DBNSNMP yang mana sebenarnya mereka adalah 1 yaitu Administrator di Oracle beda halnya jika dibandingkan dengan Mysql yang adminnya adalah Root.

29 | O r a c l e & P L / S Q L

Dalam opsi ini saya sarankan untuk pilih Use the Same Password for All Accounts.

Database Credentials

Lalu Next

6. Storage System disini kita akan mengatur mekanisme penyimpanan database pilih opsi default ( File System ).

30 | O r a c l e & P L / S Q L

Storage Options

Setelah itu

7. Database File Locations merupakan tempat file database yang akan disimpan pilih default (Use Database File Locations from Templates)

31 | O r a c l e & P L / S Q L

Database File Locations

8. Recovery Configuration merupakan tempat untuk merecover database menggunakan flash pilih default (Specify Flash Recovery Area). And Next.

32 | O r a c l e & P L / S Q L

9. Database Content meruapakan content - content yang digunakan pada database default aja langsung Next.

33 | O r a c l e & P L / S Q L

Database Caption

10. Initialization Parameters merupakan tempat inisialisasi paramater yang akan digunakan dalam database kalo mau lebih jelasnya silahkan klik All Initialization Parameters. Opsi ini default aja langsung Next aja.

34 | O r a c l e & P L / S Q L

Initialization Parameters

11. Database Storage disini kita bisa melihat informasi database yang akan digunakan.

35 | O r a c l e & P L / S Q L

Database Storage

12.Create Options merupakan pilihan pembuatan database.

Lalu Finish.

36 | O r a c l e & P L / S Q L

Creation Options

37 | O r a c l e & P L / S Q L

General Purpose

Lalu akan muncul Confimation tentang database kita Biarkan proses pembuatannnya berjalan dengan sendirinya tinggal menunggu lama waktu sesuai dengan kondisi komputer itu sendiri.

38 | O r a c l e & P L / S Q L

Password Management

Setelah database sudah dibuat lalu akan muncul Password Managent yang menjelaskan tentang hak akses yang diizinkan. mana berfungsi untuk mengatur hak akses. Jika kalian mau langsung Bereksperimen bisa dibuka salah satu account selain sys/system, misalnya scott lalu masukan new password lalu confirmasi password lalu ok.

39 | O r a c l e & P L / S Q L

Password Management Lalu Pilih Exit.

Untuk menuliskan kode - kode SQL anda bisa langsung bisa memulainya menggunakan aplikasi sql plus yang berada dimenu start di folder Oracle > Aplication Development > SQL Plus.

40 | O r a c l e & P L / S Q L

Sql Plus

Dan isi form user name ( diisi dengan nama account yang di unlock selain sys/system/sysman) dan masukan password lalu Hostringnya dibiarkan kosong saja lalu klik OK.

41 | O r a c l e & P L / S Q L

42 | O r a c l e & P L / S Q L

PL/SQL

Pengertian PL/SQL Structured query language (SQL) merupakan bahasa untuk berkomunikasi dengan database relasional yang bersifat deklaratif (bukan prosedural) dengan menyatakn hasil (bukan cara memperoleh hasil ). SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya. (dari wikipedia) Sebagai contoh, statemen SQL dibawah ini akan menampilkan informasi pelanggan dipontianak yang diurutkan secara ascending pada nama pelanggan(1).

SELECT nama, alamt, telp FROM pelanggan WHERE kota = PONTIANAK ORDER BY nama;

Tabel pelanggan mungkin saja memiliki indeks pada kolom nama, atau pada kolom kota, atau mungkin pula tidak terdapat indeks. Untuk kecepatan akses, SQL melalui database engine akan menentuakn cara tercepat memproses data, karena itu user tidak perlu menetukan bagaimana cara mengambil data. Jadi SQL merupakan bahasa yang deklaratif tau fungsional karena user hanya menjelaskan data yang diinginkan. Berbeda dengan bahasa procedural pascal atau C yang akan melinbatkan proses seperti melakukan pengulangan sampai akhir tabel atau kondisi kota terpenuhi, melakukan perbandingan kondisi kota yang dicari maupun pengurutan nama.

43 | O r a c l e & P L / S Q L

Statement SQL dapat dikelompokkan atas ; Data Manipulation Language. Statemen yang digunakan untuk memanipulasi data dalam objek schema melalui perintah select, insert, update, delete, explain plan, dan lock table. Data Definition Language. Statement untuk membuat dan menghapus objek schema melalui perintah create, alter, drop, rename, truncate, serta grant, revoke, analyze, comment, audit, dan noaudit. Statement Kontrol Transaksi yang emastiakn transaksi berlangsung secara normal untuk konsistensi data, contohnya perintah commit, rollback, savepoint, dan set transaction. Statement control Session yang mengatur agar suatu session memiliki karakteristik tertentu dengan perintah alter sesion dan set role. Statement control system yang mengelola instance databas e memalui perintah alter system Beberapa kelebihan PL/SQL dalam database Oracle : PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses didalam server. Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna. PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan program aplikasi. Bagi seorang programmer, menguasai SQL adalah sebuah kewajiban, karena program jaman sekarang pasti menggunakan database untuk menyimpan datanya. Bagi saya sendiri yang bisa menggunakan program PHP, biasa menggunakan database mysql dan oracle. Jadi untuk membuat sebuah aplikasi saya menggunakan program PHP dan database.

44 | O r a c l e & P L / S Q L

Sementar khusus bagi oracle, ada istilah PL/SQL. PL/SQL yang merupakan singkatan dari Procedural Language/Structured Query Language merupakan sebuah penggabungan antara bahasa pemrograman prosedural (PL) dan SQL syntax. Jika digambarkan sebagai berikut :

Jadi dengan PL/SQL kita tidak perlu menggunakan sebuah bahasa pemrograman sendiri. fungsi-fungsi standard di bahasa pemrograman sudah ada di sini dan bisa langsung digabung dengan perintah SQL untuk memanipulasi database. Tapi PL/SQL cuma ada di database oracle saja.

A. Struktur PL/SQL PL/SQL merupakan bahasa block-structured (berstruktur blok). Yaitu bahwa unit-unit dasar (procedure, function, dan blok tanpa nama (anonymous block)) yang membentuk program PL/SQL merupakan blok logikal, yang mana dapat berisi beberapa sub-sub blok bersarang (nested-blocks). Dengan demikian, PL/SQL mendukung pendekatan divide-and-conquer (membagi dan mengatasi) untuk penyelesaian masalah yang disebut dengan stepwiserefinement. Blok (atau sub-blok) mengijinkan kita untuk mengelompokkan secara logikaldeklarasi-deklarasi dan perintah-perintah yang terkait. Blok PL/SQL memiliki tiga bagian:bagian declarative, bagian executable, dan bagian exceptionhandling. (Dalam PL/SQL,peringatan dan kondisi error disebut dengan exception). Bagian executable merupakan bagianyang mutlak harus ada pada suatu blok PL/SQL

45 | O r a c l e & P L / S Q L

Struktur PL/SQL mirip dengan struktur bahasa pascal atau delphi yang menggunakan struktur blok, sehingga akan mempermudah pengertian dalam pemrograman dengan PL/SQL. Struktur Blok berisi perintah SQL dengan kondisi yang berbeda. Perintah PL/SQL dapat menangani kesalahan saat dijalankan. Setiap pengetikan dengan menggunakan PL/SQL dalam SQL*Plus selalu diakhiri dengan tanda /(slash). Sintaks penggunaan PL/SQL adalah sebagai berikut : Declare Begin Exception End

Pemanggilan PL/SQL : Langsung dari SQL Plus Dari Aplikasi Dari PL/SQL lainnya

Aturan penulisan: Dapat ditulis dalam beberapa baris (tidak harus dalam satu baris perintah) Dapat berupa nested blok Karakter dan literal diapit oleh tanda kutip Setiap perintah/blok diakhiri dengan titik koma(;) Komentar diawali dengan tanda min dua kali(--) atau diapit dengan tanda /**/ Pemberian nilai menggunakan :=

46 | O r a c l e & P L / S Q L

Dapat menggunakan Bind Variable Tanda garis miring(/) berarti run

Contoh PL/SQL Sub Program : a. Nama dari blok PL/SQL yang dapat menerima parameter dan dapat dipanggil terdapat dua jenis: Sebuah prosedur yang digunakan untuk melakukan suatu kegiatan tertentu Sebuah fungsi yang digunakan untuk menghitung suatu nilai b. Menggunakan struktur blok PL/SQL standart c. Modular dapat dipergunakan berulang-ulang, ditingkatkan/dikembangkan dan mudah dalam perawatan. Semua program PL/SQL harus mengikuti struktur pemrograman sebagai berikut : Bagian Judul (Header) Bagian ini hanya digunakan jika PL/SQL diberikan nama, misalnya untuk prosedur atau fungsi. Bagian ini berisi nama blok, daftar parameter, dan pengembalian hasil (Retrun) jika blok adalah fungsi. Bagian Deklarasi (Declaration) Bagian ini untuk membuat deklarasi mengenai semua variable dan konstanta yang direferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini dimulai dengan perinyah DECLARE. Jika tidak ada variable atau konstanta yang ingin dideklarasikan, bagian ini boleh dihilangkan. Bagian Eksekusi (Execution) Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis. Bagian eksekusi ini harus dimulai dengan perintah BEGIN.

47 | O r a c l e & P L / S Q L

Bagian Perkecualian (Exception) Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada waktu eksekusi program PL/SQL. Jika program tidak memuat cara menangani kesalahan, bagian ini boleh dihilangkan. Setiap pernyataan PL/SQL harus diakhiri dengan tanda titik-koma (;) dan semua program PL/SQL harus diakhiri dengan perintah END.

Bentuk Umum Struktur PL/SQL

DECLARE variabel tipe_data; konstanta CONSTANT tipe_data := nilai; ... BEGIN statement_1; statement_2; ... EXCEPTION WHEN nama_eksepsi THEN statement_untuk_mengatasi_error; ... END;

Contoh Program (tanpa exception) :

SQL> SET SERVEROUTPUT ON SQL>DECLARE v1 NUMBER(3); BEGIN v1 := 3; DBMS_OUTPUT.PUT_LINE('v1= ' || v1); END;
48 | O r a c l e & P L / S Q L

Contoh Program (dengan exception):

SQL>SET SERVEROUTPUT ON SQL>DECLARE X Integer; BEGIN X := Belajar Oracle; DBMS_OUTPUT.PUT_LINE( TO_CHAR(X) ); EXCEPTION WHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE (Kesalahan pada pengisian nilai); END;

DBMS_OUTPUT Merupakan paket yang disediakan oleh Oracle PL / SQL dan PUT_LINE merupakan salah satu prosedur yang dikemas. Menampilkan nilai-nilai pada SQL Plus * terminal yang harus diaktifkan dengan SERVEROUTPUT SET ON terlebih

dahulu. Untuk menjalankan kode sampel ini, login ke SQL * Plus. PL / SQL blok diakhiri dengan tanda garis miring / atau garis byitself.

Tipe Data a. Tipe Data dasar : Numerik NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER, INT, NUMERIC. Karakter VARCHAR2, CHAR, LONG DATE BOOLEAN ROWID

49 | O r a c l e & P L / S Q L

b. Tipe Data tambahan : RECORD, ARRAY Type data yang dapat dikenali dalam PL/SQL dapat berupa type data SQL dan type data seperti : 1. BOOLEAN Dipakai untuk menyatakan data logika, yaitu TRUE(benar), FALSE(salah), dan NULL(kosong). 2. BINARY_INTEGER Digunakan untuk mendeklarasikan bilangan yang tidak mempunyai angka desimal. Tipe data NATURAL dan POSITIVE merupakan subset dari BINARY_INTEGER. 3. %TYPE Tipe data ini dipakai untuk menandakan bahwa variabelyang deklarasikan sama dengan tipe data dari kolom tabel tertentu. 4. %ROWTYPE Tipe data ini menandakan bahwa sekelompok variabel adalah sama dengan tipe data Dari row suatu tabel tertentu. 5. Tabel dan Record Tipe data komposit untuk pemakaian yang lebih kompleks.

Variabel dan Konstanta Pada bagian deklarasi ditempatkan variable dan konstanta yang dipakai oleh pernyataan PL/SQL yang dibuat.

Variabel adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori komputer. Dapat menerima nilai baru atau sebaliknya diubah pada saat program dieksekusi Bentuk Umum : variable_name datatype [NOT NULL := value ];

50 | O r a c l e & P L / S Q L

Keterangan : Variable_name adalah nama variabel. Datatype adalah valid PL / SQL datatype. NOT NULL adalah sebuah spesifikasi opsional pada variabel. Nilai atau DEFAULT juga merupakan spesifikasi opsional, di mana anda bisa menginisialisasi variabel. Setiap deklarasi variabel adalah pernyataan terpisah dan harus diakhiri dengan titik koma.

Contoh Deklarasi Variabel :

DECLARE X integer; Alamat varchar2(40); No_induk char(8); ..... BEGIN X := 12; Alamat := Gelatik Dalam 391, Bandung; No_induk := DOG29549; END;

Ketika variabel ditetapkan sebagai TIDAK NULL, Anda harus menginisialisasi variable ketika dideklarasikan. Contoh di bawah ini menyatakan dua variabel, salah satunya adalah tidak null.

DECLARE salary number(4); dept varchar2(10) NOT NULL := HR Dept; Nilai variabel yang bisa berubah dalam pelaksanaan atau pengecualian bagian PL / SQL Block. Kita dapat menempatkan nilai ke variabel dalam dua cara yang diberikan dibawah ini.

51 | O r a c l e & P L / S Q L

1. Kita dapat langsung memberikan nilai pada variabel. Sintaks Umum adalah: variable_name:= value; 2. Kita dapat menempatkan nilai ke variabel langsung dari kolom database dengan menggunakan SELECT INTO statement. INTO pernyataan.

Sintaks Umum adalah: SELECT column_name INTO variable_name FROM table_name [WHERE condition];

Konstanta Digunakan untuk menyimpan sebuah nilai di memori komputer. Nilai yang disimpan bersifat tetap (konstan). Nilai ditentukan pada saat deklarasi dibuat sehingga nilainya tetap pada saat program dieksekusikan.

Contoh Deklarasi Konstanta : DECLARE pi CONSTANT real := 3.14; lebar CONSTANT integer := 100;

Komentar Digunakan untuk memudahkan proses maintenance Jenis komentar :

/* ... */ : untuk beberapa baris komentar -- ... : untuk satu bari komentar

52 | O r a c l e & P L / S Q L

Contoh : /* Ini adalah komentar Oracle */ -- Ini juga komentar Oracle

PL/SQL (Procedural Language/Structure Query Language) adalah suatu blok yang berisi skrip-skrip bahasa prosedural. PL/SQL merupakan bahasa

pemrograman procedural. PL/SQL dapat meningkatkan kinerja database. Struktur Blok PL/SQL Terdapat tiga bagian : Bagian pendeklarasian tipe data (opsional) Bagian penulisan perintah Bagian eksepsi (opsional)

Untuk selanjutnya dalam penggunaan PL/SQL akan digunakan SQL*Plus sebagai editor penulisan script dan uji cobanya.Ada dua media SQL*Plus yang dapat digunakan dalam praktikum ini, yaitu :Via Web dan Editor SQL*Plus itu sendiri Sedangkan untuk Oracle PL/SQL Editor tampilannya akan terlihat seperti pada gambar dibawah ini :

53 | O r a c l e & P L / S Q L

Dalam selanjutnya dibebaskan dalam penggunaan mediauntuk menulis dan menjalankan Perintah PL/SQL. Misalkan diberikan perintah PL/SQL sebagai berikut :

Dalam praktikum selanjutnya dibebaskan dalam penggunaan media untuk menulis dan menjalankan Perintah PL/SQL.Misalkan diberikan perintah PL/SQL sebagai berikut : Baris 1 sampai dengan 4 menjelaskan tentang deklarasi variabel Nimdengan tipe data number dengan panjang maksimum 14 dan deklarasivariabel Nama dengan tipe data varchar dengan panjang maksimum adalah20, dan variabel Jurusan dengan tipe data varchar dengan panjangmaksmum 20. Baris 6 dan 8

54 | O r a c l e & P L / S Q L

menjelaskan tentang pengisian variabel Nim,Nama serta Jurusan. Baris 9 dan 10 menjelaskan mengenai tentang set untukvariabel yang menghasilkan tampilan Nim, Nama. Untuk menjalankan aplikasi diatas ketikkan perintah sebagai berikut :

Selanjutnya untuk melihat hasilnya dapat mengetikkan tanda / (slash). Outputakan terlihat sebagai berikut :

Contoh suatu program PL/SQL lengkap adalah sebagai berikut : PROCEDUR ulangan DECLARE Ulang NUMBER; Stop EXCEPTION; BEGIN ulang := 0;

55 | O r a c l e & P L / S Q L

LOOP ulang := ulang + 1; Dbms_output.put(ulang #); Dbms_output.put_line (to_char(ulang)); IF ulang > 100 THEN RAISE stop; NUMBER; EXCEPTION; END IF; END LOOP; EXCEPTION WHEN stop THEN Dbms_output.put_line(Ulangan selsesai); END; Program PL/SQL ini akan menghitung ulangan 100 kali dan kemudian diakhiri dengan pesan Ulangan selesai.

B. Bagian Deklarasi Pada bagian ini ditempatkan deklarasi semua variable dan konstanta (constant) yang akan dipakai oleh pernyataan PL/SQL yang dibuat. Perbedaan variable dengan konstanta adalah : Konstanta (constant) nilai ditentukan pada saat deklarasi dibuat sehingga nilainya tetap pada saat program dieksekusikan. Variabel dapat menerima nilai baru atau nilainya diubah pada saat program dieksekusikan. Waktu

56 | O r a c l e & P L / S Q L

mendeklarasikan suatu variable atau konstanta, harus ditentukan tipe data yang akan dipakai. Sehingga pada waktu mendeklarasikan variable atau konstanta, tipe data SQL dapat dipakai. Di samping tipe data SQL, PL/SQL mendukung sejumlah tipe datanya sendiri sebagai berikut : BOOLEAN dipakai untuk menyatakan data logika, yaitu TRUE (benar), FALSE (salah), dan NULL (kosong). BINARY_INTEGER digunakan untuk mendeklarasikan bilangan yang tidak mempunyai angka decimal. Tipe data NATURAL dan POSITIVE merupakan subset dari BINARY_-INTEGER. %TYPE tipe data ini jika dipakai menandakan bahwa veriabel yang dideklarasikan sama dengan tipe data dari kolom table tertentu. Ini mempermudah deklarasi variable untuk menghitung tipe data kolom-kolom table yang sudah dibuat. %ROWTYPE - tipe data ini menandakan bahwa sekelompok variable tertentu adalah sama dengan tipe data dari row suatu table tertentu. Table dan Record tipe data komposit (composite datatype) untuk pemakaian yang lebihkompleks. Contoh deklarasi konstanta :

DECLARE Temperatur_asal Nilai_mula NUMBER := 0; NUMBER (2) := 100;

57 | O r a c l e & P L / S Q L

Contoh deklarasi variable :

DECLARE Temperatur Nama Alamat NUMBER (3.2); VARCHAR2 (30); %TYPE;

Pada saat deklarasi, panjang tipe data dapat ditentukan (bounded) atau tidak (unbounded). Jika ditentukan, maka jumlah memori yang dialokasikan untuk tipe data tersebut juga ditentukan sesuai dengan deklarasi.

Tips untuk mendeklarasikan variabel : Nama variable tidak boleh menggunakan kata kunci (key word) yang digunakan oleh PL/SQL seperti : IF, ELSE, LOOP, WHILE, FOR, EXIT, NULL, dan END. Pilih nama variable yang ada hubungannya dengan program yang akan dibuat. Tentukan aturan pemberian nama (naming convention) yang sehingga mudah diingat. Pergunakan konstanta untuk menggantikan bilangan tetap.Hapus variablevariabel yang tidak dipakai lagi. Jika variable mewakili (represent) kolom-kolom suatu table, pergunakan tipe data %TYPE waktu deklarasi.

58 | O r a c l e & P L / S Q L

Tabel PL/SQL Tabel PL/SQL sebetulnya dapat diibaratkan semacam array satu dimensi yang mempunyai satu kolom tunggal yang nilai-nilai datanya diakses dengan menggunakan indeks. Indeks yang dapat dipakai hanya satu tipe yaitu BINARY_INTEGER. Perlu diperhatikan bahwa table PL/SQL tidak sama dengan table SQL yang dapat memilki banyak kolom-kolom dan memiliki relational integrity. Kegunaan table PL/SQL adalah untuk menampung data-data yang dihasilkan oleh program PL/SQL. Karena PL/SQL tidak menyediakan fasilitas input/output sendiri, maka hasil yang didapat oleh PL/SQL tidak begitu saja diakses oleh seorang pemakai atau program lain. Untuk itu Oracle menyediakan dua cara untuk mengakses datadata yang dihasilkan oleh PL/SQL, yaitu dengan menggunakan paket DBMS_OUTPUT. Syntax yang harus digunakan untuk mendeklarasikan table PL/SQL adalah : TYPE nama_tipe IS TABLE O nama_tabel .nama_kolom%TYPE INDEX BY BINARY_INTEGER;

Contoh mendeklarasikan table PL/SQL : SQL> DECLARE TYPE tipr_no_pembeli IS TABLE OF Pembeli .no_pembeli%TYPE INDEX BY BINARY_INTEGER;

59 | O r a c l e & P L / S Q L

Record PL/SQL Record PL/SQL adalah tipe data komposit lain yang dapat dideklarasikan dengan syntax sebagai berikut : TYPE nama_tipe IS RECORD (nama_kolom tipe_data_kolom, nama_kolom tipe_data_kolom) ; Contoh deklarasi suatu record : SQL> DECLARE TYPE (no_pembeli record_no_pembeli IS RECORD nama_pembeli pembeli .no_pembeli%TYPE, alamat pembeli .nama%TYPE gaji number (10) ) ; Record ini menggunakan tiga kolom dari table pembeli yang sudah ada dan satu kolom baru yang tidak ada didalam table pembeli.

C. Bagian Eksekusi Pada bagian ini pernyataan PL/SQL akan kita buat yang menentukan tujuan program PL/SQL dibuat. Pernyataan pada bagian ini dapat digolongkan atas : Pernyataan Penentuan (Assignment) Pernyataan penentuan umumnya ditandai dengan penggunaan operator samadengan (:=) seperti contoh :

60 | O r a c l e & P L / S Q L

nomer_awal := 1; nomer_akhir := 100; temp := tem + 1; temp_c := (5/9)*(temp_f 32);

Pernyataan Flow Control Pernyataan flow control ini merupakan pernyataan yang paling sering dipakai untuk mengatur langkah-langkah suatu program. Operator relasi yang dapat digunakan antara lain : IF, ELSE, ELSEIF LOOP, END LOOP EXIT, EXIT WHEN WHILE LOOP, END LOOP FOR LOOP, END LOOP GOTO NULL Catatan: Operasi-operasi relasi juga merupakan kata-kunci yang tidak boleh digunakan sebagai nama variable pada pembuatan deklarasi program PL/SQL. Contoh pernyataan flow control dengan perintah IF dan ELSE : IF harga > 200000000 THEN Diskon := harga * 0.1; END IF IF harga > 200000000 THEN

61 | O r a c l e & P L / S Q L

Diskon := harga * 0.1; ELSEIF Harga > 150000000 AND Harga < 200000000 THEN Diskon := harga * 0.75; ELSE DISKON := 0; END IF;

Contoh flow control dengan perintah LOOP : LOOP i =: i + 1; INSERT INTO jumlah_qty(id, qtyot) EXIT WHEN i = 10; END LOOP; VALUES (i, qty);

Contoh dengan numeric loop : FOR I IN 1 .. 10 LOOP DBMS_OUTPUT.PUT_LINE(I); END LOOP; Catatan : Program ini akan membuat loop sepuluh kali.

62 | O r a c l e & P L / S Q L

Komentar membantu menjelaskan tujuan suatu pernyataan. PL/SQL menyediakan 2 cara untuk memberikan komentar, yaitu : 1. Dengan meletakkan di dalam tanda /* dan */ seperti contoh : /* Pernyataan ini berguna untuk menguji apakah ada kolom yang mempunyai nilai kosong */ 2. Dengan memberikan symbol di depan komentar sepeti contoh : -- Pernyataan ini berguna untuk menguji apakah ada kolom yang mempunyai nilai kosong. Pernyataan SQL

Pernyataan-pernyataan SQL dapat disisipkan di dalam suatu program PL/SQL. Dengan menyisipkan pernyataan SQL tersebut, program PL/SQL dapat memproses data table dengan mudah seperti contoh berikut : IF temp := 0 THEN INSERT INTO tabel_temp (nomer, date) VALUES (temp, sysdate); END IF Program ini akan mengisi table bernama table_temp, jika nilai temp = 0 dengan menggunakan perintah INSERT. Pernyataan Kursor Jika mengeksekusikan suatu pernyataan SQL lewat PL/SQL, Oracle akan menciptakan suatu ruang kerja pribadi yang dinamakan PGA. Di dlam ruang ini data yang dikembalikan oleh pernyataan SQL akan disimpan.

63 | O r a c l e & P L / S Q L

Nama Kursor adalah suatu pointer (penunjuk) ke ruang tersebut. Sebelum dapat dipakai, kursor harus dideklarasikan dahulu seperti contoh : DECLARE CURSOR c_pembeli IS SELECT * FROM pembeli Kursor c_pembeli ini akan merupakan pointer ke ruang kerja pribadi di mana hasil pernyataan SQL SELECT * FROM pembeli disimpan. Semua nama kursor yang dideklarasikan pada suatu program PL/SQL disebut kursor eksplisit. Karena ada pula kursor yang dinamakan kursor implisit berupa setiap pernyataan SQL yang dieksekusi oleh PL/SQL. Pada pembuatan kursor eksplisit, kolom-kolom yang ingin dipanggil oleh perintah SELECT dapat di tentukan seperti contoh : DECLARE CURSOR c_pembeli IS SELECT no_pembeli, nama, alamat FROM pembeli;

Pada contoh ini hanya ada tiga kolom-kolom dari table pembeli yang akan dipanggil. Kursor dapat dibuka (open), dipindahkan (fetch), atau ditutup. Contoh pernyataan untuk membuka kursor c_pembeli : OPEN c_pembeli; Contoh pernyataan untuk memindahkan kursor c_pembeli : FETCH c_pembeli INTO catatan_pembeli; Contoh pernyataan untuk menutup kursor c_pembeli : CLOSE c_pembeli;

64 | O r a c l e & P L / S Q L

D. Bagian Exception Bagian perkecualian ini perlu dibuat jika pernyataan PL/SQL mengembalikan hasil jika kesalahan (error) pada saat program dieksekusikan. PL/SQL menyediakan sejumlah exception siap pakai sebagai berikut : DUP_VAL_ON_INDEX INVALID_NUMBER NO_DATA_FOUND TOO_MANY_ROWS VALUE_ERROR Disamping itu exception dapat didefinisikan sendiri (pre-defined exception) yang dapat dipanggil dengan perintah RAISE di dalam program PL/SQL. Sedangkan pre-defined exception akan dipanggil secara otomatis jika terjadi kesalahan tanpa menggunakan perintah RAISE. Sintaks untuk bagian exception ini adalah : EXCEPTION WHEN nama_exceptional THEN Pernyataan PL/SQL; WHEN nama_exception THEN Pernyataan PL/SQL; END;

Contoh

penggunaan

bagian

exception

dengan

pre-defined

exception

NO_DATA_FOUND :

65 | O r a c l e & P L / S Q L

1 SQL> DECLARE 2 produk_row kategori%ROWTYPE; 3 4 BEGIN 5 6 DBMS_OUTPUT. ENABLE; 7 8 SELECT * INTO produk_row 9 FROM kategori 10 WHERE 11 Nama_kategori = Tidak Ada ; 12 END; 13 /

declare * ERROR at line 1: ORA-01403 : no data found ORA-06512 : at line 5

Pada contoh ini ketika perintah SELECT memasukkan data pada table kategori dimana kolom nama_kategori = Tidak Ada, karena nama_kategori itu tidak akan ditemukan dalam table kategori, maka pesan kesalahan NO DATA FOUND akan ditampilkan.

66 | O r a c l e & P L / S Q L

Jika sekarang pre-defined NO_DATA_FOUND digunakan pada program PL/SQL, maka PL/SQL tidak akan menampilkan pesan kesalahan pada lingkungan SQL*PLUS, melainkan menampilkan pesan kesalahan sesuai dengan penempatan pre-defined tersebut di dalam program PL/SQL.

E. Cara Mengakses Hasil PL/SQL Oracle menyediakan dua cara untuk mengakses data-data yang dihasilkan oleh PL/SQL,yaitu : Dengan menggunakan paket DBMS_OUTPUT Paket DBMS_OUTPUT ini disediakan oleh oracle untuk digunakan dengan SQL*PLUS. Paket ini terdiri atas sejumlah prosedur dan fungsi siap pakai yang mengatur intput/output suatu data untuk digunakan oleh PL/SQL. Dengan menggunakan Tabel PL/SQL Contoh penggunaan table PL/SQL pada suatu program PL/SQL : 1 SQL> DECLARE 2 TYPE tupe_no_pembeli IS TABLE OF 3 Pembeli.no_pembeli%TYPE 4 INDEX BY BINARY_INTEGER; 5 6 7 no_pembeli_ind tipe_no_pembeli; 8 ind BINARY_INTEGER := 0; 9 akhir BINARY_INTEGER;

67 | O r a c l e & P L / S Q L

10 11 BEGIN 12 13 DBMS_OUTPUT . ENABLE; 14 15 FOR catatan_no_pembeli IN (SELECT no_pembeli 16 17 LOOP 18 ind :+ ind +1; 19 no_pembeli_ind(ind):=catatan_no_pembeli.no_pembeli; 20 END LOOP; 21 22 Akhir := ind; 23 24 FOR ind 1 .. akhir 25 26 LOOP 27 Dbms_output.put_line (no_pembeli_ind( || TO CHAR (ind) 28 || ) = || no_pembeli_ind (ind)); 29 30 END LOOP; 31 END;

68 | O r a c l e & P L / S Q L

Jika program PL/SQL tersebut dieksekusikan, akan tampil hasil sebagai berikut : SQL > / No_pembeli_ind(1) = 5001 No_pembeli_ind(1) = 5002 No_pembeli_ind(1) = 5003 No_pembeli_ind(1) = 5004 No_pembeli_ind(1) = 5005 Contoh diatas memperlihatkan cara menggunakan table PL/SQL yang hasilnya diakses oleh program PL/SQL dan ditampilkan oleh paket DBMS_OUTPUT.

SQL Dinamik Ada dua cara menggunakan SQL dinamik dalam PL/SQL yaitu SQL Dinamik native dan paket DBMS_SQL dinamik native dapat diletakkan secara langsung didalam PL/SQL seperti perintah create table log_eror yang dijalankan melalui melalui EXECUTA IMMEDIATE. Selain statement DDL untuk mereferensi objek yang belum tersedia pada saat kompilasi, sql dinamik juaga dapat emnggunakan statement control transaksi, control session, control system, dan statement DML. SQL dinamik insert into log_eror pada contoh di atas dikerjakan dengan paket DBMS_SQL. Paket PL/SQL ini memiliki beberapa prosedur seperti utnuk membuka, parsing, dan mengeksekusi cursor.

PL/SQL Pl/sql mengombinasikan kemampuan manipulasi data sql dengan kemampuan bahasa procedural,dengan kata lain pl/sql adalah sql ditambah procedural language. Pl/sql merupakan bahasa berstruktur blog yang berupa

69 | O r a c l e & P L / S Q L

fungsi, prosedur, dan blok anonym. Suatublok biasanya ditujukan untu menyelesaikan suatu tugas tertentu dan suatu blok boleh memliki sub-blok (nested). Struktur blok pl/sql itu terdiri dari bagian deklarasi, bagian kode program, dan bagian eksepsi untuk penanganan eror seperti Nampak di bawah ini:

[DECLARE Declarasi variable] BEGIN Kode program [EXCEPTION Penanganan error] END; Selain membuat fungsi dan prosedur, pl/sql juga digunakan untuk menghasilkan untuk mengelompokkan fungsi dan prsedur, serta untuk pembuatan kode program dalam trigger. Tentu saja defeloper akan sering memanfaatkan pl/sql untuk membuat modul atau program baik yang dilakukan melalui SQL * Plus, Form Builder, Prosedural Builder, maupun Oracle Portal

Blok pl/sql anonym Blok pl/sql anonym adalah blok pl/sql tanpa nama dan tidak menggunakan parameter. Blok anonym tidak disimpan dalam database swhinggan tidak bisa direferensi oleh blok pl/swql lain.Pada saat blok ini dijalankan pertama kali,menempatannya shared pool harus didahului dengan proses parsing dan kompilasi. Proses reparsing dan frekompilasi tidak dilakukan jika blok telas berada di shared pool. Apabila blok pl/sql itu telah dikeluuarkan dari shared pool, eksekusi ulang terhadap blok pl/sql tadi arus melalui tehapad parsing dan kompilasi. Ini

70 | O r a c l e & P L / S Q L

desebabkan blok pl/sql tidak disimpan di database meskipun blok itu bisa disimpan pada file system operasi. Dalam pemrograman reguler, blok blok pl/sql anonim itu dapat diubah menjadi fungsi, prosedur, atau paket sehingga blok pl/sql bisa direferensi melalui namanya dan menghindari duplikasipembuatan kode program. a. Parameter Sub program dipanggil denhgan melewatkan nilai, variabel, atau ekspresi seseuai parameter yuang ada. Variabel yang berada pada statement pemanggil sub program atau yangh disebut parameter aktual akan dikirimkan ke parameter formmal, yaitu variabel yang dideklarasikan pada fungsi atatu prosedur yang dipanggil. Parameter formal dan aktual itu harus memiliki tipe data yang sama atau kompatibel. Pemanggilan sub program untuk melewatkan parameter aktual dapat dilakukan dengan cara notasi posisi parameter, notasi nama parameter, dan notasi kombinasi. Penetapan notasi posisi melakukan pemanggiolan sub program berdasarkan posisi atau urutan parameter formal. b. Mode parameter Parameter formal menerima nilai atau variabel dari parameter aktual. Subprogram dapat menggunakan parameter formal sesuain mode parameter yang ditetapkan yaitu IN, OUT dan IN OUT. Secara default setiap parameter formal menggunakan mode IN yang berarti bahwa parameter itu hanya dapat dibaca atau direferensi dalam body subprogram. Mode OUT berarti parameter formal hanya dapat ditulis atau diberikan nilai, sedangkan mode IN OUT memungkinkan parameter formal untuk dibaca dan ditulis. Jadi untuk dapat mengembal\ikan berbagai nilai maka subpreogram harus menggunakan mode OUT ataub mode IN OUT,sedangkan mode IN bersifat seperti konstanta yang tidakn dapat dimodifikasi dalam bodyprosedur yang dipanggil.

71 | O r a c l e & P L / S Q L

c. Compiler Hint NOCOPY Proses pengiriman parameter aktual dapat dilakukan dengan dua cara yaitu by reference dan by value. Pengiriman parameter aktual secara by reference dilakukan dengan melewatkan pointervparameter aktual ke parameter formal sehinggan kedua parameter mereferensi lokasi yang sama. Mekanisme itu berlanmhgsung pada parameter formal dengan mode IN. Secara default, pengiriman parameter aktual pada subprigram yang menggunakan mode OUT dan IN OUT dilakukan secara by value yaitu nilai parameter aktual dicopykan ke parameter formal. Setelah eksekusi subperogram diakhiri, nilai parameter formal akan dikopiakn ke parameter aktual sehingga nilain parameter aktual berubah. Utnuk mengubah pola pengiriman by value mengjadi by reference gunakan hint compiler nocopy sehingga proses copi nilai data dapat dihindari. Penggunaan copy nilai data antara kedua parameter itu dapat menurunkan kecepatan eksekusi dan meningkatkan penggunaan memori terutama pada parameter yang menangani data berukuran besar seperti record, collection, dan tipe objek. Nocopy menuebabkan perubahan nilai pada parametr formal segera mempengaruhi nilai parameter aktual. Ini berbeda dengan kondisi defaultnya dimana jika subprogram berakhir secara tudak normal maka parameter formal tidak akan dicopy pada parameter aktual. Sebagai suatu hingt comliper, nocopy melakukan pengiriman paremeter by reference, sebaiknya pengiriman

pewaremeter aktual dilakuakan secara by value.

Sub Program Sub program adalah blok pl/sql dengan nama yang dapoat menggunakan parametter serta bisa dipangguil oleh statement sql. Sub program terdiri dari prosedur untuk mengerjakan suatu proses dan function yang mengembalikan

72 | O r a c l e & P L / S Q L

suatau nilai. Sub program itu disimpan dalam database sebagai object schema dan disebut sebagai stored prosedure dan stured function Compiler pl/sql akan membuat parse tree dan pseudo code dari stored sub program itu sehingga ketika sub program dieksekusi pertama kali, engine pl/sql akan menjalankan pseudo code dan membawanya ke shared pool. Sub program ini dapat dijalankan ulanng tanpa perlou recompilasi karena code program dan bentuk compilasinya disimpan pada database dan statusnya ada di data dictionary.pada blok pl/sql anonim, setiap kali blok tu dijalankan maka blok akan diparsing, dikompilasi, dan ditempatkan pada shared pool. Proses reparsing dan recompilasi tidak dilakukan jika blok telah berada di shred pool.Namun jika bentuk terkompilasi blok terseebut tidak ada di shared pool peroses parsing, kompilasi harus dilakukan ulang. a. Fungsi Fungsi adalah syb program yang mengembalikan suatu nilai. Fungsi terdiri dari 2 bagian yaitu spesifikasi dan body . bagian spedifikan dimulai dari keyword function hingga keyword return. Bagian body dimulai dari keyword IS atau AS hingga keyword AND dan mencakup bagian deklarasi, kode [program dan ekseption. b. Stored function Stored function adalah fungsi yang disimpan dalam databasse seperti halnya tabel, stoder function merupakan objek schema dan bisa direferensi ole statement sql. Perubahan fungsi menjadi stored funcotion dilakukan dengan mmenyertakan klausa create yuntuk menyimpan de database namun apabila fungsi itu sudah ada, sertakan klausa or replaceuntuk modifikasinya c. Pepelined Pepelined poada fungsi akan mengembalikan secara berulang hasil dari fungsi tabel yang berupa tipe koleksi ( nested table atau varray).

73 | O r a c l e & P L / S Q L

d. Pragma restrict_references Untuk dapat digunakan melalui statement sql, suatu stored function harus mematuhi aturan purity untuk mengontrol side effect. e. prosedur adalah sub program yang umumnya digunakan untuk mengerjakan suatu proses. Prosedur terdiri dari 2 bagian yaitu spesifikasi dan body. f. Stored prosedure Adalah prisedur yang disimpan pada database sebagai objek schema. Suatu prosedur dapat diubah menjadi stored prosedure dengan menyertakan klausa cretae pada definisi prosedur g. Overloading Overloading memungkinkan prosedur dan fungsi menggunakan nama sama. Sub program yang di overload harus menggunakan parameter formal yang berbeda seperti jumlah paramter, urutan, dan tiprn datanyasub program atau metode tipe dapat di overloadanjika berada dalam paket. h. Definer dan invoker rigths Agar user dapat ememb uat sub program pada schemanya, ia harus memiliki privileghe system create prosedure, sedangkan pembuatan sub program pada schema user lain dimungkinkan apabila user memiliki privilege sistem create any prosedure. i. Status sub program Sub program dalam database yang telah dikompilasi tanpa kesalahan akan bersetatus valid Status itu disimpan pada dictionatry sehingga dapat dideteksi bilamana objek berstatus valid atau invalid. j. Melihat source sub program Source sub program yang disimpan dalam database dapat dilihat melalui view dictionary

74 | O r a c l e & P L / S Q L

DBA_SOURCE. Transaksi otonom adalah transaksi independen (autonomous) yang tidak berbagi pakai resources dengan transaksi induknya oleh karena itu rollback pada transaksi induk tidak mempengaruhi status transaksi otonom (TO) dan commit pada TO akan segera tampak bagi transaksi lain, serta eksepsi yang terjadi pada transaksi otonom meneyebabkan rollback pada transaction level bukan statement level. Transaksi otonom itu tidak dapat melihat perubahan yang belum di commit dan tidak berbagi pakai penguncian (Locking) dengan transaksi induk. a. Menetapkan transaksi otonom Suatu transaksi akan bersifak independen jika terdapat pragma atau compiler detective autonomous_transaction. Pragma ini mengionstruksikan compiler pl/sql untuk menandai suatu rutin yang independent. b. Kontrol Transaksi otonom Ketika rutin otonom dijalannkan, transaksi indik ditangguhkan (suspend) dan dilanjutkan setelah TO berakhir. Perintah commit dan rollback mengakhiri TO untuk kemudian melanjutkan statement berikutnya. Statement save point ditransaksi pemanggil tidak berhubungan dengan save pointy di TO sehinggan rollback ke save point hanhya dapat dilakukan pada konteks transaksi individual. Jadi dengan PL/SQL kita tidak perlu menggunakan sebuah bahasa pemrograman sendiri. Fungsi-fungsi standard di bahasa pemrograman sudah ada di sini dan bisa langsung digabung dengan perintah SQL untuk memanipulasi database. Tapi PL/SQL cuma ada di database oracle saja PL / SQL mendukung variabel, kondisi, loop dan pengecualian. Array juga didukung, meskipun dengan cara yang agak tidak biasa, yang melibatkan penggunaan PL / SQL koleksi. PL / SQL koleksi adalah topik yang agak maju. Implementasi dari versi 8 dan seterusnya Oracle Database telah memasukkan fitur yang berhubungan

dengan objek-orientasi. PL / SQL program unit (dasarnya kontainer code) dapat dikompilasi ke databaseOracle. Pemrogram sehingga dapat menanamkan PL /

75 | O r a c l e & P L / S Q L

SQL unit fungsionalitas ke dalam database secara langsung. Mereka juga dapat menulis skrip yang berisi PL / SQL program unit yang dapat membaca ke database menggunakan alat Oracle SQL * Plus. Setelah unit program telah disimpan ke dalam database, mereka menjadi tersedia untuk eksekusi di lain waktu. Sementara programmer dapat dengan mudah menanamkan Data Manipulation Language (DML) laporan langsung ke / kode mereka PL SQL lurus ke depan dengan menggunakan statemen SQL, Data Definition Language (DDL) membutuhkan lebih kompleks "Dynamic SQL" pernyataan yang akan ditulis dalam kode / PL SQL. Namun, pernyataan DML mendukung mayoritas PL / SQL code dalam aplikasi perangkat lunak khas. Dalam kasus PL / SQL SQL dinamis, versi awal dari Database Oracle diperlukan penggunaan perpustakaan paket

DBMS_SQL rumit Oracle. versi lebih baru memiliki namun memperkenalkan sederhana "Native Dynamic SQL", bersama dengan sintaks terkait.

SEGERA MELAKSANAKAN. Oracle Corporation lazim menambah fungsionalitas setiap rilis paket dengan berturut-turut dari Database Oracle. <<label>> DECLARE TYPE / item / FUNCTION / PROCEDURE declarations BEGIN Statements EXCEPTION EXCEPTION handlers END label; Para <<label>> dan MENYATAKAN dan bagian PENGECUALIAN adalah opsional.

76 | O r a c l e & P L / S Q L

Pengecualian, kesalahan yang timbul selama pelaksanaan kode, memiliki satu dari dua jenis: 1. Predefined pengecualian 2. Ditetapkan pengguna pengecualian. Tipe data utama dalam PL / SQL termasuk NOMOR, INTEGER, CHAR,

VARCHAR2, DATE, TIMESTAMP, dll TEKS. Fungsi di PL / SQL adalah kumpulan SQL dan / PL SQL laporan yang melakukan tugas dan harus mengembalikan nilai ke lingkungan menelepon. fungsi yang didefinisikan pengguna digunakan untuk melengkapi ratusan fungsi yang dibangun oleh Oracle. Ada dua jenis fungsi dalam PL / SQL. Fungsi tradisional ditulis dalam bentuk: CREATE OR REPLACE FUNCTION <function_name> [(input/output variable declarations)] RETURN return_type [AUTHID <CURRENT USER | DEFINER>] <IS|AS> [declaration block] BEGIN <PL/SQL block WITH RETURN statement> RETURN <return_value>; [EXCEPTION EXCEPTION block] RETURN <return_value>; END; Gambaran Struktur Kontrol PL/SQL Berdasarkan structure theorem, setiap program komputer dapat ditulis menggunakan struktur kontrol dasar yang ditunjukkan dalam Gambar 4-1. Mereka

77 | O r a c l e & P L / S Q L

dapat dikombinasikan dalam suatu cara yang diperlukan untuk menjawab permasalahan-permasalahan yang ada.

Struktur seleksi menguji kondisi, lalu mengeksekusi satu rangkaian perintah-perintah daripada lainnya, bergantung kepada kondisi mana yang true atau false. Suatu condition (kondisi) merupakan suatu variable atau ekpresi yang menghasilkan nilai Boolean (TRUE atau FALSE). Struktur perulangan mengeksekusi rangkaian perintah-perintah secara berulang-ulang selama suatu kondisi bernilai true. Struktur sekuensial (berurutan) secara mengeksekusi rangkaian perintah-perintah dalam urutan. sederhana

PL/SQL adalah

peningkatan perintah SQL dalam bentuk pemrograman procedural. DML dan SELECT dari perintah SQL berada dalam PL/SQL. PL/SQL Engine akan memecah perintah blok PL/SQL menjadi PL/SQL (dikerjakan oleh Procedural Statement Executor dari PL/SQL Engine) dan SQL (dikerjakan oleh SQL Statement Executor dari Oracle Server). Keuntungan Penggunaan PL/SQL Integrasi Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang dapat digunakan bersama-sama dalam bentuk stored procedure Peningkatan Kinerja

78 | O r a c l e & P L / S Q L

Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok dalam satu perintah yang secara drastis dapat menurunkan trafik jaringan

Modular. Bentuk modular memungkinkan banyak kemudahan yang dapat diperoleh.

Portable. PL/SQL adalah sarana yang asli dimiliki oleh Oracle Server, artinya, program PL/SQL dapat dengan mudah dipindahkan dari satu Oracle Server ke Oracle Server lainnya, meskipun dengan OS atau platform yang berbeda.

Dapat mendeklarasikan Variable Dapat berupa Variable, Constant, Cursor dan Exception Penggunaan variable/identifier sangat memudahkan dalam membuat suatu perintah.

Misalkan untuk membaca hasil suatu perintah SELECT untuk diproses dan hasilnya digunakan untuk melakukan proses lainnya Dapat menggunakan Struktur Kontrol :LOOP, FOR, WHILE Dapat menangani Error Error bisa dihasilkan/dibangkitkan oleh Oracle Server atau bisa dibangkitkan sendiri dengan sengaja Untuk mengantisipasi berbagai hal yang barangkali sulit untuk ditangani secara langsung menggunakan kontrol program

79 | O r a c l e & P L / S Q L

REFERENSI

Situmoran, ferryanto. 2004. Menguasai Database Server Dan Pemrograman Oracle9i. Jakarta: PT Elex

Media Komputindo Gramedia Ramon A. dan Pauline K. 1999. Dasar-Dasar Database Relasional. Jakarta : Erlangga http://www.tutorialpintar.net/2012/10/pengenalan-plsql-pengertian-plsql.html http://id.scribd.com/doc/76508803/Plsql

https://docs.google.com/viewer?a=v&q=cache:q2pasWjTkxcJ:blog.uinmalang.ac.id/faizz/files/2010/10/PLSQL1.pdf+&hl=id&gl=id&pid=bl&srcid=ADGEESg_2ohFIlWyteVHbIorxQGEJ Q7NWUA0La1s7wvtOCQfzzvRjrPDG6JGd8OIY1zEiphyGvfwRobETlAQLKocrrq ZC1n-7YdmCf8VUqPcwDzQ0Kk5y898-boNA3-Iwo3nCpzJN12&sig=AHIEtbQeOtPyZ6XwavK5CEogA_B1a5vbTQ

https://docs.google.com/viewer?a=v&q=cache:hxr0zOcX3FIJ:blog.uinmalang.ac.id/javazone/files/2010/10/Artikel-PL-SQL-dan-ClusterComputing.pdf+&hl=id&gl=id&pid=bl&srcid=ADGEESjubJHWORHqH0lERcc6heeYaLET7CnyCtbMScf0uMoCZuMMvf1SoVhTh23dTV59zA8dsVo_dMQz3Gx 3z874jSIHcqmywNV3zAzgGG9MPl_q59AhnKFjaEE2BacSsaXEJPEBDY&sig=AHIEtbRxGWPlF4TQAC5PvdmvVV_RHylWA

80 | O r a c l e & P L / S Q L