Anda di halaman 1dari 14

MODUL PERKULIAHAN

Pemrograman
PL/SQL
PL / SQL – Part 3 (Query
Dengan PL/SQL)

Fakultas Program Studi TatapMuka Kode MK DisusunOleh

12
Ilmu Komputer Sistem Informasi F061700016 Dian Wirawan, S.Kom, M.Kom

Abstract Kompetensi
Membahas tentang PL/SQL pada Mahasiwa dapat mengetahui dasar dari
OracleExpress Edition. PL/SQL, membantu mahasiswa
memahami proses dari PL/SQL pada
Oracle Express Edition.
Lanjutan Query Pada PL/SQL

A. STRUKTUR PL/SQL

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
Struktur diatas dapat dijelaskan sebagai berikut :

1. 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 (return) jika blok
adalahfungsi.

2. Bagian Deklarasi (declaration)

Bagian ini untuk membuat deklarasi mengenai semua variable dan konstanta yang
direferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini dimulai dengan perintah
DECLARE. Jika tidak ada variable atau konstanta yang ingin dideklarasikan bagian ini boleh
dihilangkan, bersifat optional.

3. Bagian Eksekusi (Execution).

Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis. Bagian eksekusi ini harus
dimulai dengan perintah BEGIN.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


2 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
4. Bagian Perkecualian (Exception)

Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada waktu eksekusi program
PL/SQL, bersifat optional. 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)

DECLARE
v1 NUMBER(3);
BEGIN
v1 := 3;
DBMS_OUTPUT.PUT_LINE('v1= ' || v1);
END;

Hasilnya

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


3 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Contoh Program (dengan exception)

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;

Hasilnya

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.

B. TIPE DATA

a. Tipe Data dasar :

o Numerik

 NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER, INT,


NUMERIC, REAL, SMALLINT

o Karakter

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


4 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
 VARCHAR2, CHAR, LONG
o DATE
o BOOLEAN
o ROWID

b. Tipe Data tambahan :

o RECORD
o 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
dataNATURAL dan POSITIVE merupakan subset dariBINARY_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 darirow
suatu tabel tertentu.

5. Tabel dan Record

Tipe data komposit untuk pemakaian yang lebih kompleks.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


5 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
Tipe Data pada PL/SQL
Selain tipe data yang ada di Oracle SQL, PL/SQL menyediakan beberapa tambahan tipe data
yang dapat dideklarasikan sebagai berikut:

Tipe Data Keterangan

BOOLEAN Data lojikal dengan nilai TRUE atau FALSE.


DATE Data tanggal waktu. Nilai yang valid adalah antara 1 Januari
4712 SM sampai dengan 31 Desember 9999.
NUMBER [(p [,s])] Tipe data numerik dengan p angka penting dan
sejumlah s angka penting di belakang koma. Nilai padalah
integer dengan nilai maksimal 38 dan nilai sberada pada
rentang -84 sampai dengan 127. Nilai snegatif berarti
pembulatan sampai dengan 10s terdekat.
FLOAT Turunan dari NUMBER. Presisi sampai dengan 38 digit.
DOUBLE Sama dengan FLOAT.
PRECISION
REAL Turunan dari number. Presisi sampai dengan 18 digit.
DEC [(p [,s])] Sama dengan NUMBER [(p [,s])].
DECIMAL [( p [,s])] Sama dengan NUMBER [(p [,s])].
NUMERIC [(p [,s])] Sama dengan NUMBER [(p [,s])].
INTEGER [(n)] Sama dengan NUMBER [(n,0)].
INT [(n)] Sama dengan NUMBER [(n,0)].
SMALLINT [(n)] Sama dengan NUMBER [(n,0)].
BINARY_INTEGER Tipe variabel ini digunakan menyimpan nilai mulai dari
-2.147.483.647 s/d 2.147.483.647
NATURAL Bagian dari binary integer, mampu menyimpan mulai dari 0
s/d 2.147.483.647.
NATURALN Bagian dari binary integer, mampu menyimpan mulai dari 0
s/d 2.147.483.647. Tipe data ini tidak boleh bernilai NULL.
POSITIVE Bagian dari binary integer, mampu menyimpan mulai dari 1
s/d 2.147.483.647
POSITIVEN Bilangan integer dengan rentang nilai 1 sampai dengan
2147483647. Tipe data ini tidak boleh bernilai NULL.
SIGNTYPE Tipe data bilangan yang bernilai -1, 0 atau 1.
PLS_INTEGER Bilangan integer dengan rentang nilai -2147483647 sampai
2147483647.
VARCHAR2(n) Data karakter dengan panjang tidak tetap. Nilai nminimum
sama dengan 1 dan maksimum sama dengan 32767 byte.
VARCHAR(n) Sama dengan VARCHAR2(n).
CHAR [(n)] Data karakter dengan panjang tetap sebesar n byte.
Nilai n maksimum adalah 32767. Nilai n minimum dan juga
nilai default adalah 1.
STRING(n) Sama dengan VARCHAR2(n).
CHARACTER [(n)] Sama dengan CHAR(n).
LONG [(n)] Data karakter dengan panjang tidak tetap. Nilai nmaksimum
sama dengan 32760 byte.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


6 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
NCHAR [(n)] Data karakter dengan panjang tetap. Panjang maksimum
sama dengan 32767 byte. maksimum bergantung
pada national character set yang dipakai. Nilai default adalah
1.
NVARCHAR2(n) Data karakter dengan panjang tidak tetap. Panjang
maksimum sama dengan 32767 byte. Nilai n maksimum
bergantung pada national character set yang dipakai.
RAW(n) Data binary dengan panjang tidak tetap. Nilai nmaksimum
sama dengan 32767 byte.
LONG RAW [(n)] Data binary dengan panjang tidak tetap. Nilai nmaksimum
sama dengan 32760 byte.
ROWID Identitas baris pada suatu tabel-index yang dinyatakan
dengan string heksa desimal. Identitas tersebut menunjukkan
posisi baris data. Tipe data ini merupakan balikan dari kolom
palsu ROWID.
UROWID [(n)] Identitas baris pada suatu tabel-index yang dinyatakan
dengan string heksa desimal. Nilai n adalah ukuran kolom
UROWID. Nilai n maksimum adalah 4000 byte.
BFILE Tipe data large object untuk data file.
BLOB Tipe data large object untuk karakter binary.
CLOB Tipe data large object untuk karakter satu byte.
NCLOB Tipe data large object untuk karakter multi byte.
%TYPE Untuk mendeklarasikan variabel dengan tipe data yang sesuai
dengan suatu kolom pada suatu tabel.
%ROWTYPE Untuk mendeklarasikan variabel dengan tipe data yang sesuai
dengan semua kolom pada suatu tabel. Biasanya untuk
menampung suatu cursor.

C. VARIABEL DAN KONSTANTA

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

a. VARIABEL
Adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori komputer.

Bentuk Umum :

variable_name datatype [NOT NULL := value ];

Keterangan :

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


7 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
o Variable_name adalah nama variabel.
o Datatype adalah valid PL / SQL datatype.
o NOT NULL adalah sebuah spesifikasi opsional pada variabel.
o Nilai atau DEFAULT juga merupakan spesifikasi opsional, di mana anda bisa
menginisialisasi variabel.
o Setiap deklarasi variabel adalah pernyataan terpisah dan harus diakhiri dengan
titik koma.

D. Praktek.

1. Mencari Nama Karyawan Dengan Nama ‘Den Menggunakan Tipe Data Varchar.

DECLARE
Nama VARCHAR2(100);
BEGIN
SELECT First_Name INTO Nama FROM employees WHERE FIRST_NAME = 'Den';
dbms_output.put_line('Nama adalah :' ||Nama);
END;

2. Mencari Nama Karyawan Dengan Nama ‘Den’ dan Berulang.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


8 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
3. Mencari Nama Karyawan Dengan ID ‘100’ Menggunakan Tipe Data %Type dan
Menggunakan Error Handling.

a. Error Handling Jika Data Tidak Ditemukan

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


9 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
b. Error Handling Jika Data Ditemukan

4. Mencari Nama Karyawan Dengan ID ‘100’ dan Berulang Sebanyak N Kali .

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


10 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
5. Menambahkan Data Sebanyak N Kali .

Untuk percobaan ini, mohon dapat merancang 1 buah table dengan nama Coba dan 1 buah
field no (Number).

Hasilnya

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


11 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
6. Perintah Akhiri Looping

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


12 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
E. Latihan Di Lab

1. Cetak Nama Lengkap Karyawan yang nama belakangnya Chen.


Contoh : Nama Lengkap Saya Adalah : John Chen
2. Cetak Nama Lengkap, Gaji dan Tanggal Masuk Kerja karyawan tersebut.
Contoh : Nama Saya Adalah Chen, Gaji Saya Adalah xxxx dan Saya Mulai Bekerja
Pada Tanggal xxxx
3. Cetak dan buatlah perulangan atas nama Karyawan tersebut sebanyak 4 kali dan Cetak
Jumlah perulangannya.
Contoh :
Nama Lengkap Saya Adalah : John Chen, Looping ke - 1
Nama Lengkap Saya Adalah : John Chen, Looping ke - 2
Nama Lengkap Saya Adalah : John Chen, Looping ke - 3
Nama Lengkap Saya Adalah : John Chen, Looping ke - 4

4. Buat Error Handling Jika Nama Yang Diinput Adalah Chan bukan Chen.
Contoh : Nama Saya Bukan xxxx
5. Buatlah satu Table Hello dan Input Data dalam table tersebut sebanyak 10 yang isi
coloumn ke-1 adalah “No Urut” sebanyak yang ditentukan dan coloumn ke-2 adalah
kata “Hello World” .

No Kata

1 Hello World Ke - 1

2 Hello World Ke - 2

3 Hello World Ke - 3

4 Hello World Ke - 4

5 Hello World Ke - 5

6 Hello World Ke - 6

7 Hello World Ke - 7

8 Hello World Ke - 8

9 Hello World Ke - 9

10 Hello World Ke - 10

Note : Xxxx adalah Variable

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


13 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id
DaftarPustaka
Oracle.com 2016. Oracle 10 g Express Edition Documentation.
http://www.oracle.com/pls/xe102/homepage.

2021 Pemrograman PL/SQL PusatBahan Ajar dan eLearning


14 Dian Wirawan, S.Kom, M.Kom http://www.mercubuana.ac.id

Anda mungkin juga menyukai