Modul Database Administrator (Oracle)
Modul Database Administrator (Oracle)
Disusun Oleh :
MUKIDIN, S. KOM, MM
NIDN
Revisi : 00
Tanggal :
Dikaji Ulang :
Dikendalikan :
Disahkan :
Catatan : Dokumen ini milik jurusan Teknik Informatika STIKOM Poltek Cirebon dan TIDAK
DIPERBOLEHKAN dengan cara dan alasan apapun membuat salinan tanpa seijin STIKOM Poltek
Cirebon.
i
KATA PENGANTAR
Penyusun
ii
TATA TERIB PRAKTIKUM
dilaboratorium komputer.
b. Memelihara suasana yang nyaman dan tenang dengan tidak :
Berpakaian sopan dan rapih dengan mengenakan jas laboratorium serta tidak
Jika tidak memenuhi persyaratan (poin 1 baik 1a, 1b dan 1c) tidak diperkenanakan
mengikuti praktikum.
iii
DAFTAR ISI
PENGESAHAN................................................................................................................................i
TATA TERIB PRAKTIKUM...............................................................................................................iii
DAFTAR ISI...................................................................................................................................iv
Bab I.............................................................................................................................................1
I. Tujuan Pratikum................................................................................................................1
II. Bahan & Alat.....................................................................................................................1
III. Metode yang digunakan...............................................................................................1
IV. Landasan Teori..............................................................................................................1
V. Bahan Pratikum................................................................................................................4
VI. Daftar Pustaka.............................................................................................................12
Bab II..........................................................................................................................................13
I. Tujuan Pratikum..............................................................................................................13
II. Bahan & Alat...................................................................................................................13
III. Metode yang digunakan.............................................................................................13
IV. Landasan Teori............................................................................................................13
V. Bahan Pratikum..............................................................................................................17
VI. Daftar Pustaka.............................................................................................................25
Bab III.........................................................................................................................................26
I. Tujuan Pratikum..............................................................................................................26
II. Bahan & Alat...................................................................................................................26
III. Metode yang digunakan.............................................................................................26
IV. Landasan Teori............................................................................................................26
V. Bahan Pratikum..............................................................................................................34
VI. Daftar Pustaka.............................................................................................................42
Bab IV.........................................................................................................................................43
I. Tujuan Pratikum..............................................................................................................43
II. Bahan & Alat...................................................................................................................43
III. Metode yang digunakan.............................................................................................43
IV. Landasan Teori............................................................................................................43
V. Bahan Pratikum..............................................................................................................46
VI. Daftar Pustaka.............................................................................................................55
Bab V..........................................................................................................................................56
I. Tujuan Pratikum..............................................................................................................56
II. Bahan & Alat...................................................................................................................56
III. Metode yang digunakan.............................................................................................56
iv
IV. Landasan Teori............................................................................................................56
V. Bahan Pratikum..............................................................................................................62
VI. Daftar Pustaka.............................................................................................................68
Bab VI.........................................................................................................................................69
I. Tujuan Pratikum..............................................................................................................69
II. Bahan & Alat...................................................................................................................69
III. Metode yang digunakan.............................................................................................69
IV. Landasan Teori............................................................................................................69
V. Bahan Pratikum..............................................................................................................73
VI. Daftar Pustaka.............................................................................................................82
Bab VII........................................................................................................................................83
I. TujuanPratikum...............................................................................................................83
II. Bahan&Alat....................................................................................................................83
III. Metode yang digunakan.............................................................................................83
IV. LandasanTeori.............................................................................................................83
V. BahanPratikum...............................................................................................................86
VI. DaftarPustaka.............................................................................................................94
Bab VIII.......................................................................................................................................95
I. Tujuan Pratikum..............................................................................................................95
II. Bahan&Alat....................................................................................................................95
III. Metode yang digunakan.............................................................................................95
IV. LandasanTeori.............................................................................................................95
V. Bahan Pratikum............................................................................................................102
VI. Daftar Pustaka...........................................................................................................108
Bab IX.......................................................................................................................................109
I. Tujuan Pratikum............................................................................................................109
II. Bahan & Alat.................................................................................................................109
III. Metode yang digunakan...........................................................................................109
IV. Landasan Teori..........................................................................................................109
V. Bahan Pratikum............................................................................................................114
VI. Daftar Pustaka...........................................................................................................120
Bab X........................................................................................................................................121
I. Tujuan Pratikum............................................................................................................121
II. Bahan & Alat.................................................................................................................121
III. Metode yang digunakan...........................................................................................121
I V. Landasan Teori..........................................................................................................121
v
V. Bahan Pratikum............................................................................................................126
VI. Daftar Pustaka...........................................................................................................133
Bab XI.......................................................................................................................................134
I. Tujuan Pratikum............................................................................................................134
II. Bahan & Alat.................................................................................................................134
III. Metode yang digunakan...........................................................................................134
IV. Landasan Teori..........................................................................................................134
V. Bahan Pratikum............................................................................................................138
VI. Daftar Pustaka...........................................................................................................146
Bab XII......................................................................................................................................147
I. Tujuan Pratikum............................................................................................................147
II. Bahan & Alat.................................................................................................................147
III. Metode yang digunakan...........................................................................................147
IV. Landasan Teori..........................................................................................................147
V. Bahan Pratikum............................................................................................................152
VI. Daftar Pustaka...........................................................................................................159
Bab XIII.....................................................................................................................................160
I. Tujuan Pratikum............................................................................................................160
II. Bahan & Alat.................................................................................................................160
III. Metode yang digunakan...........................................................................................160
I V. Landasan Teori..........................................................................................................160
V. Bahan Pratikum............................................................................................................161
VI. Daftar Pustaka...........................................................................................................171
Bab XIV.....................................................................................................................................172
I. Tujuan Pratikum............................................................................................................172
II. Bahan & Alat.................................................................................................................172
III. Metode yang digunakan...........................................................................................172
I V. Landasan Teori..........................................................................................................172
V. Bahan Pratikum............................................................................................................173
VI. Daftar Pustaka...........................................................................................................183
vi
Bab I
Pratikum Pengenalan Oracle Database 10g, iSQLPlus Environtment, dan Instalasi Oracle
Database 10g
I. Tujuan Pratikum
Agar mahasiswa dapat mengetahui apa itu oracle database 10g, mempunyai gambaran
infrasturktur jaringan Oracle 10g, dapat mengakses iSQLPlus melalui salah satu
browser, mengenal lingkungan kerja iSQLPlus dan dapat memasukkan username,
password dan connect identifier database oracle, mengetahui daftar table-tabel
database HR yang akan digunakan selama perkuliahan berlangsung dan bisa
melakukan instalasi oracle database 10g pada komputer masing-masing.
1
Grid Infrastruktur Oracle 10g
Oracle Database
2
Oracle Application Server
3
Class Diagram Human Resources
V. Bahan Pratikum
A. Install Oracle Database 10g Server pada komputer masing-masing.
Ikuti langkah-langkah berikut ini untuk menginstall oracle database 10g pada
komputer atau laptop yang anda gunakan.
4
Terdapat dua pilihan metode instalasi, yaitu Basic Installation dan Advanced
Installation.
2. Pilih Basic Installation, pada kolom Oracle Home Location secara otomatis akan
terisi. Home location adalah lokasi folder penyimpanan software oracle 10g, biasa
disebut dengan Oracle_home. Oracle_home secara otomatis akan memilih partisi
yang mempunyai free-space yang terbanyak.
Installation type dan Global Database Name mengikuti nilai default, dilanjutkan
dengan mengisi database password dan confirm password. Kemudian pilih tombol
Next.
3. Silahkan menunggu proses persiapan penginstalan selesai.
5
4. Instaler akan melakukan verifikasi untuk memastikan spesifikasi hardware sesuai
dengan kebutuhan minimal setting dan konfigurasi database oracle. Perhatikan
dan sesuaikan spesifikasi hardware jika terdapat pesan error, dan kemudian klik
Next.
6
6. Tunggu proses penginstalan berhasil dengan sempurna
7
7. Jika sudah selesai, klik Password Management untuk membuka lock user HR
8. Buka lock user HR dan ganti password sesuai dengan yang diinginkan. Contoh
user HR dengan New Password :hr dan Confirm Password : hr, kemudian klik
OK.
8
9. Klik OK.
9
11. Klik Yes untuk konfirmasi Exit.
10
B. Mengakses iSQLPlus Environtment.
1. Buka salah satu browser, misalkan Mozilla Firefox.
2. Pada Address ketik http://192.168.8.1:5560/isqlplus (sesuaikan dengan lokasi
server database anda) atau gunakan http://localhost:5560/isqlplus
bekerja pada komputer server oracle database.
Username : hr
Password : hr
Connect Identifier : <dikosongkan>
Kemudian klik Login
3. Maka akan tampil workspace area iSQLPlus seperti gambar dibawah ini :
11
4. Workspace area adalah tempat untuk menuliskan perintah-perintah SQL maupun
perintah-perintah blok PL/SQL.
5. Klik tombol Execute untuk menjalankan perintah SQL atau PL/SQL.
6. Klik Load Script untuk membuka file script SQL dan PL/SQL yang sudah pernah
tersimpan sebelumnya.
7. Klik tombol Save Script untuk menyimpan perintah SQL atau PL/SQL.
8. Klik tombol Cancel untuk membatalkan penulisan perintah.
9. Klik tombol Clear untuk membersihkan workspace area.
10. Klik Tab History, untuk melihat histori perintah yang pernah di eksekusi.
11. Klik menu Preferences untuk melakukan pengaturan ulang terhadap editor
iSQLPlus.
12. Klik menu Logout untuk keluar dari lingkungan iSQLPlus.
12
Bab II
I. Tujuan Pratikum
Hardware berupa PC/laptop, software Oracle Database 10g, dan modul pratikum
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources, dan bisa
melakukan koneksi ke database oracle menggunakan iSQLPlus.
13
Capabilities of Select Statement
Penamaan kolom heading pada iSQLPlus selalu cetak tengah dan dalam bentuk hurup
besar semua.
Nilai null merupakan nilai default yang menempati sebuah field dalam suatu tabel
apabila field tersebut belum diberi nilai. Penanganan nilai null sangat diperlukan
14
untuk menghasilkan perintah dan aplikasi yang baik, beberapa hal yang perlu
diketahui mengenai nilai null :
Nilai null tidak sama dengan 0 (nol) dan tidak sama dengan spasi kosong.
Nilai null akan mengakibatkan error jika tidak dikelola dengan baik.
Untuk mengganti nilai null dengan nilai lain menggunakan fungsi
NVL(paramater)
Nama kolom alias digunakan untuk mengubah nama judul kolom pada saat
data ditampilkan.
Nama kolom alias bisa digunakan untuk keperluan kalkulasi
Penulisan nama kolom alias langsung dituliskan setelah nama kolom, atau bisa
juga dengan menggunakan keyword AS
Penggunaan keyword AS bersifat optional
menggunakan kutip ganda untuk nama alias yang mengandung spasi atau
karakter khusus
Operator concat (||) digunakan untuk menggabungkan dua karakter/varchar atau lebih
kedalam satu kolom.
Tipe data karakter dan date harus diapit dengan petik tunggal
Menampilkan karakter petik tunggal harus menggunakan perintah quote (q)
Nilai dengan tipe data karakter bersifat case sensitive
Nilai tipe data date bersifat format sensitive
Format default tipe data date DD-MON-RR
Perintah distinct digunakan untuk menghilangkan data yang sama (duplicate data)
Untuk membatasi data yang ditampilkan sesuai dengan yang diinginkan menggunakan
keyword WHERE
15
Sintaks penulisan WHERE :
Perintah like digunakan untuk pencarian data karakter didalam sebuah tabel, penulisan
perintah like menggunakan karakter % untuk mewakili 0 karakter atau banyak
karakter dan karakter _ (garis bawah) untuk mewakilik 1 karakter.
Untuk mengurutkan data agar lebih mudah untuk dibawa menggunakan perintah
ORDER BY, terdiri atas urut dari kecil ke besar (ASC) dan urut dari besar ke kecil
(DESC).
Variabel subtitusi digunakan untuk menginput nilai pada saat proses run-time
berlangsung. Dengan menambahkan karakter & didepan nama variabel. Variabel
16
subtitusi bisa disertakan pada SELECT, FROM, WHERE, ORDER BY, atau di
keseluruhan perintah SELECT.
V. Bahan Pratikum
1. Perintah SQL untuk menampilkan semua kolom yang terdapat pada tabel
departments.
17
5. Perintah untuk menampilkan data dengan nilai null
18
7. Perintah menggunakan operator concat
19
11. Perintah SQL dengan menggunakan keyword WHERE
13. Perintah menampilkan data employees dengan salary lebih kecil atau sama
dengan 3000.
14. Perintah mencari data employees dengan range salary antara 2500 – 3500
menggunakan perintah between.
20
15. Perintah menampilkan data employees yang mempunyai manager id 100,101 dan
201, dengan menggunakan perintah IN.
17. Perintah untuk menampilkan last_name employees dengan huruf kedua dari
last_name = o
18. Perintah untuk mencari data employees yang masih diisi dengan nilai null
21
19. Perintah untuk menampilkan data employees yang mempunyai salary lebih besar
atau sama dengan 10000 dan job_id mengandung kata MAN
20. Perintah untuk menampilkan data employees yang mempunyai salary lebih besar
atau sama dengan 10000 atau job_id mengandung kata MAN
21. Perintah menampilkan data employees yang job_id nya bukan IT_PROG,
ST_CLERK, SA_REP dengan perintah NOT IN
22
22. Perintah untuk menampilkan data employees urut berdasarkan hire_date (tanggal
masuk)
23. Perintah untuk menampilkan data employees urut berdasarkan hire_date dari
terbesar ke terkecil.
24. Perintah untuk menampilkan data employees urut berdasarkan nama alias
25. Perintah untuk menampilkan data employees urut berdasarkan banyak kolom
23
26. Perintah untuk menampilkan data employees menggunakan variabel subtitusi
pada saat pembatasan keluaran (WHERE) untuk tipe data number
24
29. Perintah untuk mengaktifkan verifikasi pada saat menggunakan variabel
subtitusi.
Retrieving Data Using The SQL Select Statement, Oracle Database 10g. SQL
Fundamentals I (D17108GC21),Edition 2.1, December 2015.
25
Bab III
I. Tujuan Pratikum
Agar mahasiswa dapat menggunakan single row function dalam perintah SQL untuk
menampilkan data, mengetahui berbagai jenis type single row function yang tersedia
dalam perintah SQL, bisa menggunakan fungsi pengolahan karakter, fungsi
pengolahan number dan fungsi pengolahan date dalam perintah SQL, dan mengetahui
berbagai jenis fungsi untuk konversi antar tipe data.
II. Bahan & Alat
Hardware berupa PC/laptop, software Oracle Database 10g, dan modul pratikum
26
Fungsi kadang-kadang menggunakan parameter dan selalu menghasilkan sebuah nilai
(return value).
Fungsi terbagi atas 2 tipe yaitu : single row functions dan multiple row functions.
Single Row Function, fungsi ini hanya beroperasi per baris dan menghasilkan hanya
satu keluaran per baris. Jenis-jenis tipe Single Row Function yaitu :
Character
Number
Date
Convertion
General
27
Kemampuan Single Row Function :
Memanipulasi data item
Menerima argumen dan menghasilan satu nilai
Beroperasi untuk setiap baris
Selalu menghasilkan satu nilai per baris
Dapat mengubah tipe data
Dapat bersarang (nested)
Menerima argumen bisa berupa nama kolom atau dalam bentuk ekspresi.
28
29
Sysdate merupakan fungsi yang digunakan untuk menampilkan tanggal sekarang dari
sistem, dimana sysdate dapat mengolah nilai date dan nilai time.
Operator aritmatika yang bisa dikenakan terhadap tipe data date antara lain :
penjumlahan dan pengurangan tanggal, pengurangan antara dua tipe data date untuk
30
menghasilkan selisih jumlah hari antara tanggal tersebut, dan menambahkan jam ke
dalam tipe data date.
31
Sintaks penulisan :
32
Koversi tipe data Number menjadi tipe data Karakter :
33
Menggunakan fungsi TO_DATE
Sintaks penulisan konversi karakter menjadi date :
V. Bahan Pratikum
1. Perintah SQL untuk menampilkan data employees yang mempunyai last_name =
higgins.
34
3. Modifikasi perintah SQL diatas untuk menampilkan data employees dengan
karakter terakhir dari last_name mengandung hurup n, sehingga keluaran seperti
gambar dibawah.
4. Perintah SQL untuk menghitung nilai 45.923 desimal 2, 45.923 desimal 0, dan
45.923 desimal -1 dengan menggunakan fungsi pembulatan keatas.
5. Perintah SQL untuk menghitung nilai 45.923 desimal 2, 45.923 desimal 0, dan
45.923 desimal -1 dengan menggunakan fungsi pembulatan kebawah.
6. Perintah SQL untuk menampilkan last_name, salary dan sisa bagi salary/5000
untuk semua employees dengan job_id = SA_REP.
35
7. Perintah SQL untuk menampilkan last_name dan hire_date untuk semua
employees dengan tanggal masuk dibawah 01 februari 1988
8. Perintah SQL untuk menampilkan last_name, lama masa kerja dalam minggu
untuk employees dengan department_id = 90
10. Tampilkan employee number, lama kerja, lama kerja employees dalam satuan
bulan, gambaran lama kerja pegawai 6 bulan kedepan, hari jumat pertama pada
saat masuk kerja, dan hari terakhir berdasarkan bulan masuk untuk semua
36
employee yang sudah bekerja sedikitnya 80 bulan, sehingga akan menghasilkan
keluaran seperti dibawah :
11. Tulislah perintah SQL untuk melengkapi tabel dibawah sehingga menghasilkan
keluaran seperti yang ada pada kolom Result
12. Tuliskan perintah untuk menampilkan employee_id, hire_date, nama bulan mulai
kerja dengan menggunakan fungsi round dan fungsi trunc, untuk semua
employees yang bekerja pada tahun 1997. Sehingga menghasilkan keluaran
seperti dibawah.
13. Tuliskan perintah untuk menampilkan employee id dan hire_date dalam format
MM/YY untuk employees dengan nama belakang Higgins. Sehingga keluaran
seperti dibawah
14. Tuliskan perintah untuk menampilkan last_name dan hire_date dalam format DD
Month YYYY dan beri nama alias HIREDATE dan hilangkan semua spasi
kosong pada hire_date yang tidak dibutuhkan, untuk semua employees.
37
15. Modifikasi perintah diatas untuk mengubah format keluaran tanggal (hire_date)
dari 17 June 1987 menjadi “Seventeenth of June 1987 12:00:00 AM” untuk
keseluruhan employees. Sehingga keluaran akan menjadi seperti dibawah ini.
Perhatikan format keluaran tanggal karakter pertama dimulai dengan huruf besan
dan berikutnya huruf kecil
16. Tuliskan perintah untuk menampilkan gaji employees dalam bentuk mata uang
Dolar untuk employees yang bernama belakang Ernst.
17. Tuliskan perintah SQL untuk menampilkan tanggal hari ini dan beri nama alias
Date.
38
19. Modifikasi perintah diatas dengan menambah kolom baru yang merupakan
pengurangan antara salary baru dengan salary lama, dan beri nama alias Increase,
sehingga menampilkan keluaran berikut.
20. Tuliskan perintah SQL untuk menampilkan last name dengan karakter pertama
huruf besar dan semua karakter berikutnya huruf kecil dan hitung panjang digit
dari last name untuk semua employees yang last name nya dimulai dengan huruf
J, A atau M, dan urutkan berdasarkan last name.
39
22. Buat laporan untuk menghasilkan laporan sebagai berikut :
<employee last name> earns <salary> monthly but wants <3 * salary> dan beri
nama alias Dream Salaries. Sehingga menghasilkan keluaran berikut.
40
23. Buat query untuk menampilkan last name dan salary untuk keseluruhan
employees, dengan format tampilan salary 15 karakter rata kiri dengan
menggunakan simbol $ dan beri nama alias SALARY, dengan keluaran sebagai
berikut.
24. Tampilkan last name, hire_date, salary dan gambaran tanggal gaji pada hari senin
pertama dalam 6 bulan kedepan, dengan nama alias REVIEW. Format tanggal
yang tampil sesuaikan dengan “Monday, the Thirty-First od July, 2000”, sehingga
keluaran seperti dibawah.
25. Tampilkan last name, hire date, dan nama hari dari employees pertama kali
berkerja dan beri nama alias DAY, urut berdasarkan nama hari dimulai dengan
hari Monday. Seperti keluaran berikut.
41
VI. Daftar Pustaka
Using Single Row Function to Customize Output, Oracle Database 10g. SQL
Fundamentals I (D17108GC21),Edition 2.1, December 2015.
42
Bab IV
I. Tujuan Pratikum
Agar mahasiswa dapat menggunakan single row function lanjutan dalam perintah
SQL untuk menampilkan data, mengetahui RR date format, dapat membuat fungsi
bersarang (nested), mengetahui fungsi-fungsi umum oracle seperti NVL, NVL2,
DECODE, NULLIF, COALESCE.
II. Bahan & Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, dan modul pratikum
43
Fungsi Bersarang (Nested)
General Function :
Contoh :
NVL (commission_pct,0)
NVL (hire_date, ’01-JAN-97’)
NVL (job_id, ‘No Job Yet’)
44
Membandingkan dua ekspresi jika nilai ekspresinya sama maka diberi nilai
null dan jika nilai ekspresinya tidak sama maka diberi nilai expr1.
Ekspresi kondisi digunakan untuk menggantikan perintah kondisi if then else dalam
perintah SQL. Menggunakan dua metode antara lain :
45
V. Bahan Pratikum
1. Perintah SQL untuk menampilkan last_name dan tanggal masuk dengan format
DD-Mon-YYYY untuk semua employees yang masuk sebelum tanggal 01-Jan-90
dengan menggunakan format century (RR)
2. Berdasarkan soal diatas ubah pencarian data untuk menampilkan last_name dan
tanggal masuk dengan format DD-Mon-YYYY untuk semua employees yang
masuk sebelum tanggal 01-Jan-90 dengan menggunakan format YY. Pastikan
keluaran sebagai berikut :
no rows selected
Jawab :
46
4. Tuliskan perintah SQL untuk menampilkan last_name, salary, commission_pct
nilai null ganti menjadi 0 (nol), (salary * 12) + (salary * 12 * commission_pct
nilai null ganti dengan 0 (nol)) dengan nama allias AN_SAL untuk keseluruhan
employees.
47
6. Jelaskan perbedaan antara perintah SQL pada soal nomor 4 dan perintah SQL
pada soal nomor 5 diatas.
Jawab :
48
8. Tuliskan perintah SQL untuk menampilkan first_name, jumlah digit dari
first_name dengan nama alias expr1, last_name, jumlah digit dari last_name
dengan nama alias expr2, dan bandingkan jumlah digit first_name dengan jumlah
digit last_name jika sama beri nilai null dan jika berbeda tampilkan nilai jumlah
digit first_name dan beri nama alias RESULT.
49
9. Tuliskan perintah SQL untuk menampilkan last_name, dan data manager_id jika
ternyata null tampilkan besar commission_pct dan jika nilainya null maka beri
nilai -1 dengan nama alias comm untuk semua employees dan urutkan
berdasarkan commission_pct dari terkecil ke terbesar.
10. Tuliskan perintah SQL untuk menampilkan last_name, job_id, salary dan
informasi revisi perubahan besar gaji dengan ketentuan sebagai berikut :
50
Jika job_id = IT_PROG maka besar gaji 1.10 * salary
Jika job_id = ST_CLERK maka besar gaji 1.50 * salary
Jika job_id = SA_REP maka besar gaji 1.20 * salary
11. Tampilkan hasil keluaran dari perintah SQL berikut ini, sesuaikan keluaran
dengan soal sebelumnya.
12. Tuliskan perintah SQL untuk menampilkan last_name, job_id, salary dan
informasi revisi perubahan besar gaji dengan ketentuan sebagai berikut :
Jika job_id = IT_PROG maka besar gaji 1.10 * salary
Jika job_id = ST_CLERK maka besar gaji 1.50 * salary
Jika job_id = SA_REP maka besar gaji 1.20 * salary
51
Dan beri nama alias REVISED_SALARY untuk keseluruhan employees dengan
menggunakan perintah DECODE,
13. Tuliskan perintah SQL untuk menampilkan last_name, salary dan besar
persentase pajak dengen nama alias TAX_RATE untuk semua employees yang
mempunyai department_id = 80, dan gambarkan hasil keluarannya.
52
14. Buat query untuk menampilkan last name, besar commission, dan jika seorang
employee tidak punya commission maka tampilkan “No Commission” dan beri
nama alias COMM, seperti keluaran berikut.
15. Buat query untuk menampilkan 8 karakter pertama dari last name employees dan
perkiraan besar nilai gajinya dengan tanda karakter *, urutkan data berdasarkan
besar gaji dari terbesar ke terkecil, dan beri nama alias EMPLOYEES_AND
THEIR_SALARIES. Sehingga keluaran seperti dibawah.
53
16. Menggunakan fungsi DECODE, buat queri untuk menampilkan grade dari semua
employees berdasarkan nilai dari JOB_ID, sesuai ketentuan berikut :
54
17. Tulis ulang perintah diatas dengan menggunakan perintah CASE.
Jawab :
Using Single Row Function to Customize Output, Oracle Database 10g. SQL
Fundamentals I (D17108GC21),Edition 2.1, December 2015.
55
Bab V
I. Tujuan Pratikum
Agar mahasiswa dapat menggunakan group function dalam perintah SQL untuk
menampilkan data, dapat mengidentifikasi group function yang tersedia. Memahami
kegunaan group function, memahami kegunaan GROUP BY, dan mengerti kegunaan
perintah HAVING.
Hardware berupa PC/laptop, Software Oracle Database 10g, dan modul pratikum
56
Jenis-jenis group Functions :
AVG
Digunakan untuk mencari nilai rata-rata dari sekumpulan data.
COUNT
Digunakan untuk menghitung jumlah baris dalam sebuah tabel.
MAX
Digunakan untuk mencari nilai terbesar dari sekumpulan data.
MIN
Digunakan untuk mencari nilai terkecil dari sekumpulan data
STDDEV
SUM
Digunakan untuk menjumlahkan keseluruhan nilai.
VARIANCE
Group Function digunakan untuk pengolahan data dengan jumlah yang banyak dan
menghasilkan hanya satu keluaran.
57
SELECT : untuk mengambil data yang diinginkan, bisa terdiri atas nama field
ataupun nama group function.
FROM : untuk menyebutkan nama tabel pencarian
WHERE : untuk memberi batasan terhadap data yang akan dicari
GROUP BY : pengelompokan data menjadi bagian-bagian yang lebih kecil,
biasanya selalu sama dengan nama field yang diselect
ORDER BY : mengurutkan data sesuai dengan yang diinginkan.
Fungsi AVG dan SUM digunakan hanya untuk tipe data number
Fungsi MIN dan MAX digunakan untuk tipe data number, karakter dan date.
COUNT(*) akan menghitung jumlah baris yang terdapat dalam sebuah tabel,
tanpa melihat isinya bernilai null atau tidak.
COUNT(expr) digunakan untuk menghitung jumlah record yang tidak berupa
nilai null.
COUNT(DISTINCT expr) digunakan untuk menghitung jumlah record yang
unik saja, jika terdapat data yang sama maka akan dihitung sebagai satu
record.
58
Sintaks penulisan :
59
Contoh kesalahan yang terjadi pada pengelompokan data
60
Ketika terdapat klausa HAVING pada sebuah queri maka Oracle Server akan
melakukan tahap-tahapan berikut :
61
V. Bahan Pratikum
1. Tuliskan perintah SQL untuk menghitung rata-rata gaji pegawai, gaji terbesar,
gaji terkecil, dan total keseluruhan gaji untuk semua employees yang mempunyai
job id mengandung karakter REP.
2. Tuliskan perintah SQL untuk menghitung tanggal kerja terlama dan tanggal kerja
terbaru dari semua employees.
3. Tuliskan perintah SQL untuk mengitung jumlah pegawai yang bekerja pada
department_id = 50.
62
4. Tuliskan perintah SQL untuk mengitung jumlah pegawai yang bekerja pada
department_id = 80, khusus bagi pegawai yang mempunyai komisi.
63
9. Menghitung gaji rata-rata employees per department_id, tanpa menampilkan
department_id yang bersangkutan.
10. Menampilkan data department id dengan nama alias dept_id, job id,
menjumlahkan semua gaji employees dan dikelompokkan berdasarkan
department_id dan job_id.
64
11. Menampilkan department_id dan gaji terbesar per grup department_id dan yang
ditampilkan hanya gaji terbesar diatas 10000 saja.
12. Menampilkan job_id dan total salary per group job_id dengan memberi nama
alias PAYROLL, total yang dicari untuk job_id yang tidak mengandung karakter
REP, data yang ditampilkan hanya untuk total gaji diatas 13000 saja dan urutkan
berdasarkan total gaji dari terkecil ke terbesar.
65
13. Menampilkan gaji rata-rata terbesar dari tabel employees kelompokkan
berdasarkan department_id.
66
a. Tuliskan queri untuk menampilkan jumlah FPP terbesar, jumah FPP
terkecil dan jumlah FPP Rata-rata yang pernah diajukan oleh anggota
koperasi.
Jawab :
67
d. Tuliskan queri untuk menghitung total FPP yang pernah diajukan anggota
dikelompokkan berdasarkan bulan permohonan peminjaman selama tahun
2013, dan yang ditampilkan hanya total FPP yang diatas 100.000.000,-
urutkan berdasarkan total FPP dari terkecil ke terbesar.
Jawab :
Reporting Aggregated Data Using the Group Functions, Oracle Database 10g. SQL
Fundamentals I (D17108GC21),Edition 2.1, December 2015.
68
Bab VI
I. Tujuan Pratikum
Agar mahasiswa dapat menggunakan perintah SELECT untuk menampilkan data dari
banyak tabel menggunakan perintah equijoins dan non equijoins, bisa melakukan self
join terhadap tabel itu sendiri, dan dapat memahami penggunaan outer join.
Hardware berupa PC/laptop, Software Oracle Database 10g, dan modul pratikum.
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources,
melakukan koneksi ke database oracle menggunakan iSQLPlus, dan mengerti
penggunaan perintah select, from, where, order by dan sudah memahami kegunaan
single row functions dan group functions.
69
Berdasarkan gambar diatas laporan yang terbentuk menampilkan data yang diambil
dari dua tabel yaitu :
Employee_id terdapat pada tabel employees
Department_id terdapat pada tabel employees dan tabel departments
Deparment_name terdapat pada tabel departments
Untuk menghasilkan keluaran perlu menghubungkan tabel employees dengan tabel
departments sehingga dapat mengakses data dari kedua tabel tersebut.
70
Pemberian Nama Alias
Gunakan tabel prefix untuk menyebutkan nama kolom yang berasal dari
banyak tabel.
Menggunakan tabel prefix untuk meningkatkan performa queri
Gunakan nama kolom alias untuk membedakan kolom yang sama yang
terdapat dalam tabel berbeda.
Jangan menggunakan nama kolom alias pada klausa USING.
Kolom alias digunakan untuk menyederhanakan queri
71
Nonequijoin
Merupakan sebuah kondisi join yang menggunakan operator perbandingan yang tidak
biasa. Seperti pada gambar dibawah dimana relationship antara employees dan
job_grades berdasarkan kolom salary dan kolom lowest_sal dan kolom highest_sal.
Biasanya menggunakan operator BETWEEN untuk mempermudah penulisan queri.
Outer Join
Dengan menggunakan simple join maka akan menampilkan data yang terdapat pada
semua tabel yang dijoinkan. Kadang kala dibutuhkan kemampuan untuk menampilkan
semua data yang terdapat pada beberapa tabel meskipun data-data tersebut tidak
72
terhubung satu dengan yang lain. Seperti pada gambar dibawah, tabel departments
terdapat record Contracting dengan id 190, dan pada tabel employees tidak terdapat
employee yang mempunyai department_id 190. Agar bisa menampilkan semua
department beserta dengan daftar pegawainya (ada ataupun tidak ada) maka kita bisa
menggunakan queri outer join.
V. Bahan Pratikum
1. Menampilkan data department id, department name, location id dan city dari tabel
departments dan tabel locations menggunakan NATURAL JOIN.
73
2. Berdasarkan perintah diatas tuliskan perintah SQL untuk Menampilkan data
department id, department name, location id dan city dari tabel departments dan
tabel locations menggunakan NATURAL JOIN tapi khusus untuk employees
yang mempunyai department_id 20 dan 50 saja.
3. Menampilkan data employee_id, last_name, location_id dan department_id untuk
keseluruhan employees dengan menggunakan klausa JOIN.
4. Ubah perintah pada soal diatas dengan mengganti penyebutan nama tabel dengan
nama alias.
74
5. Menampilkan data employee_id, last_name, location_id dan department_id untuk
keseluruhan employees dengan menggunakan klausa ON
75
8. Menampilkan data employee_id, city, dan department_name untuk keseluruhan
employees dengan menggunakan klausa ON, join tiga tabel yaitu employees,
departments, dan locations.
76
11. Menampilkan last_name, department_id, dan department_name untuk semua
departments yang mempunyai employees maupun departments yang tidak
mempunyai employees.
77
13. Tulis perintah SQL untuk mencetak alamat semua departments, dengan
melibatkan tabel locations dan tabel countries, tampilkan location_id,
street_address, city, state or province, dan country_name, dengan menggunakan
NATURAL JOIN. Sehingga akan menampilkan keluaran seperti berikut.
14. Tulis perintah SQL untuk menampilkan laporan keseluruhan employees yang
terdiri atas last_name, department_id, dan department_name dengan
menggunakan salah satu join yang anda pahami. Sehingga akan menampilkan
keluaran seperti berikut.
78
15. Tulis perintah SQL untuk menampilkan laporan employees yang tinggal di
Toronto, yang terdiri atas last_name, job_id, department_id, dan
department_name dengan menggunakan salah satu join yang anda pahami.
Sehingga akan menampilkan keluaran seperti berikut.
79
17. Ubah perintah SQL pada soal diatas untuk menampilkan semua employees
termasuk King, yang tidak mempunyai manager. Sehingga akan menampilkan
keluaran seperti berikut.
80
19. Tuliskan perintah SQL untuk menampilkan struktur tabel dari tabel
JOB_GRADES, dan tuliskan perintah untuk menampilkan last_name, job_id,
department_name, salary dan grade untuk keseluruhan employees, Sehingga akan
menampilkan keluaran seperti berikut.
20. Tuliskan perintah SQL untuk menampilkan last_name dan hire_date semua
employees yang diperkerjakan setelah tanggal masuknya Davies, Sehingga akan
menampilkan keluaran seperti berikut.
81
21. Tuliskan perintah SQL untuk menampilkan last_name dan hire_date semua
employees yang dipekerjakan sebelum managernya masing-masing. Dan
tampilkan juga last_name dan hire_date dari managernya tersebut, seperti
keluaran berikut.
Displaying Data from Multiple Tables, Oracle Database 10g. SQL Fundamentals I
(D17108GC21),Edition 2.1, December 2015.
82
Bab VII
I. TujuanPratikum
Agar mahasiswa dapat mengerti fungsi dan cara menggunakan subqueri, dapat
memecahkan masalah dengan menggunakan subqueri, mengerti jenis-jenis subqueri,
dan dapat menulis single-row dan multiple-row subqueri.
II. Bahan&Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, dan modul pratikum.
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources,
melakukan koneksi ke database oracle menggunakan iSQLPlus, dan mengerti
penggunaan perintah select, from, where, order by dan sudah memahami kegunaan
single row functions, group functions, dan mampu menampilkan data dari banyak
tabel
IV. LandasanTeori
Employee mana yang mempunyai salary lebih besar dari pada salary Abel?
83
Untuk memecahkan permasalah diatas, maka perlu dibuatkan dua queri, queri pertama
untuk mendapatkan besar gaji Abel, dan queri kedua untuk mendapatkan gaji pegawai
lain yang lebih besar dari pada gaji Abel.
Untuk memecahkan masalah ini perlu mengkombinasikan kedua queri diatas, dengan
menempatkan satu queri didalam queri yang lain.
Queri yang didalam (subqueri) menghasilkan nilai yang akan digunakan oleh queri
bagian luar (queri utama).
84
Single-row subqueri : queri manghasilkan hanya satu baris dari perintah inner
select. dan operator perbandingan yang bisa digunakan :
Subqueri tidak hanya didalam klausa WHERE tapi bisa juga didalam klausa
HAVING.
Multiple-row subqueri : queri menghasilkan lebih dari satu baris dari perintah
inner select.dan operator perbandingan yang bisa digunakan :
85
V. BahanPratikum
1. Menampilkan data last_name, dan salary pegawai, yang gajinya lebih besar dari
pada gaji Abel.
2. Menampilkan last_name dan job_id pegawai dimana job_id nya sama dengan
job_id pegawai dengan employee_id 141.
86
3. Menampilkan last_name, job_id, dan salary untuk semua pegawai dengan job_id
sama seperti job_id pegawai nomor 141, dan gaji harus lebih besar dari pegawai
nomor 143
4. Menampilkan last_name, job_id dan salary dari pegawai yang mempunyai gaji
terkecil yng terdaftar pada tabel employees.
87
5. Menampilkan department_id dan gaji pegawai terkecil dari departement tersebut,
dimana gaji pegawai tersebut harus lebih besar dari gaji pegawai terkecil
department_id 50.
88
Karena penggunaan operator single-row (=) terhadap multiple-row subqueri.
Untuk memperbaikinya maka operator = ganti dengan operator IN.
8. Jelaskan kenapa perintah SQL dibawah tidak menampilkan keluaran?
Karena pada subqueri (inner queri) tidak ada pegawai dengan last_name Haas
sehingga tidak terdapat data job_id yang akan dibandingkan dengan job_id queri
utama.
9. Menampilkan nama belakang, besar gaji dan kode departemen untuk semua
pegawai yang mempunyai gaji yang sama dengan gaji terkecil pegawai untuk
masing-masing departemen.
10. Menampilkan employee_id, last_name, job_id, dan salary untuk semua pegawai
89
yang bukan job_id IT_PROG dan gajinya lebih kecil dari gaji terbesar pegawai
dengan job_id = IT_PROG, menggunakan perintah ANY
11. Menampilkan employee_id, last_name, job_id, dan salary untuk semua pegawai
yang bukan job_id IT_PROG dan gajinya lebih kecil dari semua gaji pegawai
dengan job_id = IT_PROG, menggunakan perintah ALL
12. Jelaskan kenapa perintah SQL dibawah tidak menampilkan keluaran? Dan
tuliskan perintah perbaikannya.
90
Karena didalam subqueri terdapat nilai null, sehingga mengakibatkan tidak ada
nilai yang bisa dibandingkan dengan queri utama. Dan queri perbaikannya
adalah:
13. Departemen HR membutuhkan queri yang dapat menginput nama belakang dari
pegawai, berdasarkan inputan tersebut tampilkan nama belakang dan tanggal
masuk untuk setiap pegawai yang satu departemen dengan pegawai yang diinput .
sebagai contoh user yang diinput adalah Zlotkey, kemudian cari semua pegawai
yang satu departemen dengan Zlotkey.
Jawab :
91
14. Buat sebuah laporan untuk menampilkan employee number, last name dan besar
gaji semua pegawai yang memperoleh gaji lebih besar dari rata-rata gaji, urutkan
berdasarkan besar gaji dari terkecil ke terbesar.
Jawab :
15. Buat sebuah queri untuk menampilkan employee number dan last name dari
semua pegawai yang bekerja dalam departemen yang sama dengan last name
pegawai yang mengandung hurup a.
92
Jawab :
Jawab :
17. Buat laporan untuk menampilkan last name dan salary untuk setiap pegawai yang
mempunyai atasan King.
93
Jawab :
18. Buat laporan untuk menampilkan department number, last name dan job ID untuk
setiap pegawai yang bekerja sebagai Executive.
Jawab :
VI. DaftarPustaka
94
Bab VIII
I. Tujuan Pratikum
Agar mahasiswa dapat mengerti perintah-perintah data manipulation language (DML)
seperti perintah insert, update, delete dan transaksi control, mengerti penggunaan
perintah-perintah data definition language (DDL).
II. Bahan&Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, dan modul pratikum.
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources,
melakukan koneksi ke database oracle menggunakan iSQLPlus, dan mengerti
penggunaan perintah select, from, where, order by dan sudah memahami kegunaan
single row functions, group functions, dan mampu menampilkan data dari banyak
tabel
IV. LandasanTeori
Data manipulation language (DML) di eksekusi ketika :
Menambah record baru kedalam table
Mengubah record yang sudah ada dalam sebuah table
Menghapus record yang sudah ada dalam sebuah table.
95
Pada gambar diatas terdapat data baru 70 Public Relation 100 1700, akan dimasukkan
kedalam table departments.
96
Pada gambar diatas department_id 60 akan diubah menjadi department_id 30 untuk
semua employees.
Sintaks penulisan perintah UPDATE
97
Pada gambar diatas akan dilakukan penghapusan record 100 Finance yang terdapat
pada table departments.
Perintah TRUNCATE
Menghapus semua record yang terdapat dalam sebuah table. sehingga table
menjadi kosong dengan struktur table tetap utuh.
Sintaks penulisan perintah TRUNCATE
Database Obyek
98
Syarat pemberian nama table dan nama kolom :
Harus dimulai dengan huruf
Terdiri atas 1-30 karakter
Terdiri atas karakter A-Z, a-z, 0-9, _, & dan #
Tidak boleh menggunakan nama yang sama
Dan bukan reserved word
99
Constraint
Constraint adalah aturan-aturan tambahan yang akan dikenakan pada level table dan
bias juga pada field level. Constraint digunakan untuk menghindari terjadinya
keselasahan penghapusan data.
Jenis-jenis constraint :
Not Null
Unique
Primary Key
Foreign Key
Check
100
Not null constraint digunakan untuk memastikan bahwa kolom tersebut tidak boleh
diisi dengan nilai null.
Unique Constraint
Unique constraint digunakan untuk memastikan bahwa data yang akan diinput harus
unik tidak boleh sama dengan data pada record lain.
101
V. Bahan Pratikum
1. Perintah untuk menginsert data baru (70, Public Relations, 100, 1700) kedalam
table departments .
2. Perintah untuk insert data baru berupa nilai NULL secara implicit methode.
3. Perintah untuk insert data baru berupa nilai NULL secara explicit methode.
4. Perintah untuk insert special nilai seperti nilai tanggal dan jam sekarang kedalam
table menggunakan fungsi SYSDATE
102
5. Perintah insert data baru kedalam table tanpa menyebutkan spesifik nama-nama
kolomnya.
103
7. Insert data kedalam sebuah table dengan data yang diambil dari table lain.
8. Perintah untuk melakukan perubahan terhadap data tertentu dalam sebuah table.
104
10. Perintah untuk mengubah data berdasarkan table yang lain.
105
16. Perintah untuk melihat struktur table.
17. Perintah untuk pemberian constraint primary key pada level kolom
18. Perintah untuk pemberian constraint primary key pada level tabel
106
20. Perintah untuk pemberian constraint foreign key.
21. Perintah untuk pemberian constraint primary key, not null, unique, check, foregin
key dalam satu perintah.
107
VI. Daftar Pustaka
Using DDL Statements to Create and Manage Tables, Oracle Database 10g. SQL
Fundamentals I (D17108GC21),Edition 2.1, December 2015.
108
Bab IX
I. Tujuan Pratikum
Agar mahasiswa dapat membuat simple dan complex views, dapat menerima data dari
views, dapat membuat, mengelola dan menggunakan sequence, dapat membuat dan
mengelola index, dan dapat membuat private dan public synonyms.
II. Bahan & Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, dan modul pratikum.
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources, melakukan
koneksi ke database oracle menggunakan iSQLPlus.
109
view digunakan untuk menampilkan atau bahkan menyembunyikan data dari suatu tabel
atau dari view yang lainnya. View tidak mempunyai data sendiri tapi diambil dari suatu
tabel yang disebut dengan base tabel, dengan view data bisa ditampilkan dan bisa juga
diubah.
110
Sintaks Perintah membuat VIEWS
WITH CHECK OPTION : menentukan hanya baris tersebut yang dapat diakses
oleh view untuk melakukan insert dan update.
WITH READ ONLY : memastikan tidak ada perintah DML yang dapat
digunakan pada view.
SEQUENCES
112
INDEX
Indeks adalah database objek yang dapat digunakan untuk meningkatkan performa dari suatu
queri. Indeks dapat terbentuk secara otomatis pada saat membuat primary key atau unik
constraint. Ketika menghapus sebuah tabel maka semua indeks yang pernah dibuat akan ikut
terhapus, tapi views dan sequence masih tetap ada.
Otomatis : unique indeks terbentuk secara otomatis ketika menentukan primary key
atau unique constraint pada suatu tabel.
Manual : dapat membuat nonunique indeks terhadap kolom (field) untuk
meningkatkan kecepatan akses terhadap baris (record).
Indeks tidak bisa diubah, untuk mengubah indeks maka harus menghapus terlebih dahulu
baru kemudian membuat ulang.
Untuk menghapus indeks harus owner dari indeks tersebut atau user mempunyai hak akses
atau privilege DROP ANY INDEX.
SYNONYMS
Synonyms adalah database objek yang dapat digunakan untuk memanggil suatu tabel
menggunakan nama lain. Membuat synonyms untuk memberi alternative nama terhadap
sebuah tabel.
113
V. Bahan Pratikum
1. Perintah untuk membuat views yang menampilkan data employees yang mempunyai
department_id = 80 saja.
114
5. Perintah untuk mengubah views yang sudah pernah dibuat.
6. Perintah untuk membuat kompleks views yang berisi group functions untuk
menampilkan data dari dua tabel.
115
8. Perintah untuk membatasi pengubahan data dengan menggunakan WITH CHECK
OPTION CONSTRAINT.
10. Perintah untuk memastikan tidak bisa menggunakan perintah DML dalam suatu
views
116
11. Perintah untuk menghapus views
117
15. Department 50 membutuhkan hak akses terhadap data employees. Buat sebuah view
dengan nama DEPT50 yang berisi employee number, last names, dan department
numbers untuk semua pegawai yang mempunyai department 50, dan beri nama label
untuk kolom view EMPNO, EMPLOYEE, dan DEPTNO. Untuk tujuan keamanan,
tidak diperbolehkan mengubah data employee menjadi departemen lain.
16. Tampilkan struktur dari view DEPT50
18. Test view yang sudah dibuat, untuk mencoba mengganti employee Matos ke
department 80.
19. Buat sequence dengan nama DEPT_DEPTID_SEQ untuk dijadikan sebagai primary
key pada tabel departments, tidak menggunakan CYCLE option.
118
20. Tambahkan record baru pada tabel departments dengan nama “Support” dan location
ID 2500.
22. Ubah increment value, maximum value, minimum valaue, cycle option atau cache
option dari sequence dept_deptid_seq.
119
24. Buat sebuah indeks untuk meningkatkan kecepatan akses queri terhadap kolom
last_name pada tabel employees.
120
Bab X
I. Tujuan Pratikum
Agar mahasiswa dapat mengerti kegunaan dan manfaat pengunaan PL/SQL,
mempelajari jenis-jenis blok PL/SQL, bisa menggunakan iSQL*Plus editor, dan dapat
membuat program sederhana untuk menampilkan data keluaran.
II. Bahan & Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, Browser Mozilla Firefox /
Internet Explorer dan modul pratikum.
III. Metode yang digunakan
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources, melakukan
koneksi ke database oracle menggunakan iSQLPlus.
PL/SQL :
Singkatan dari Procedural Language to SQL
Merupakan bahasa standar akses data untuk relasi database.
121
Struktur blok PL/SQL
Terdiri atas :
DECLARE (optional)
o Bersifat pilihan jika terdapat variabel, cursor, user-defined exceptions
pada blok program yang dibuat maka harus di deklarasikan terlebih dahulu
pada bagian ini.
BEGIN (mandatory)
o Terdiri atas perintah-perintah SQL
o Dan perintah-perintah PL/SQL yang di kombinasi sesuai dengan logika
pemrograman.
122
o Bersifat keharusan dalam pembuatan blok PL/SQL
EXCEPTION (optional)
o Mengalihkan tindakan jika terjadi error yang berhubungan dengan data,
dan bersifat pilihan.
END; (mandatory)
o Untuk mengakhiri blok PL/SQL menggunakan perintah END; dan bersifat
keharusan.
SET SERVEROUTPUT ON
123
DBMS_OUTPUT.PUT_LINE
IDENTIFIERS
124
o maksimal 30 karakter
o dan bukan termasuk reserved words.
VARIABEL SUBTITUSI
digunakan untuk menerima masukan dari user pada saat run time.
Digunakan dalam blok PL/SQL diawali dengan karakter &
Digunakan untuk menghindari pembuatan program yang rumit.
Kode Komentar
125
V. Bahan Pratikum
1. Cara mengakses iSQL*Plus
Ketik pada browser : http://192.168.8.1:5560/isqlplus
*Username : hr
*Password : hr
Connect Identifier : orcl (jika ada)
*harus diisi
126
2. Perintah sederhana untuk mengambil data employee id 100 dari tabel employee
menggunakan PL/SQL.
127
4. Buat PL/SQL untuk menampilkan nama First_name dari employees yang
mempunyai employee_id 100 ke layar dengan keluaran “The First Name of the
Employee is Steven”
128
6. Buat program untuk menampilkan proses deklarasi variabel dan menggunakan
variabel tersebut didalam program.
7. Buat program untuk menampilkan proses deklarasi variabel dan pemberian nilai
awal dan mengubah nilai variabel tersebut didalam program.
129
9. Program sederhana menggunakan 1 variabel subtitusi.
130
10. PL/SQL untuk mengganti nama prompt pada saat menggunakan variabel subtitusi.
131
12. Perintah penggunaan nested blok pada PL/SQL
13. Perintah penggunaan nested blok pada PL/SQL menggunakan nama variabel yang
sama.
132
VI. Daftar Pustaka
133
Bab XI
Pratikum Membuat Program untuk Mengakses Oracle Database 10g, Dengan Struktur
Kondisi dan Struktur Perulangan menggunakan PL/SQL.
I. Tujuan Pratikum
Agar mahasiswa dapat mengakses data dari oracle database server menggunakan blok
PL/SQL, memanipulasi data menggunakan DML pada blok PL/SQL, dapat memahami
penggunaan struktur kondisi dan struktur perulangan dalam blok PL/SQL.
II. Bahan & Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, Browser Mozilla Firefox /
Internet Explorer dan modul pratikum.
III. Metode yang digunakan
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources, melakukan
koneksi ke database oracle menggunakan iSQLPlus.
134
Manipulasi Data menggunakan PL/SQL
INSERT
UPDATE
DELETE
MERGE
SQL Cursor
135
Controlling Flow od Execution
136
Sintaks Perintah IF
Perbandingan Boolean
Perintah Loop
Loops akan mengerjakan sekumpulan perintah secara berulang-ulang
Ada tiga tipe loop :
o Basic Loop
Sintaks :
137
o FOR Loop
Sintaks :
o WHILE Loop
Sintaks :
V. Bahan Pratikum
1. Blok PL/SQL untuk menampilkan first_name yang diambil dari tabel employees
untuk employee_id 200
2. Blok PL/SQL untuk menampilkan hire_date dan salary employees tertentu, sebagai
contoh employee_id 100
138
3. Berdasarkan soal diatas jelaskan fungsi dari :
a. Employees.hire_date%type;
b. Employees.salary%type;
c. Apakah blok PL/SQL diatas menghasilkan keluaran?
4. Blok PL/SQL untuk menampilkan jumlah keseluruhan gaji pegawai yang terdapat
dalam department tertentu.
139
7. Blok PL/SQL untuk mengubah data gaji employees yang mempunyai job_id stock
clerks (ST_CLERK)
9. Blok PL/SQL untuk menggabungkan baris kedalam tabel copy_emp, jika belum ada
maka disimpan dan jika sudah ada maka akan di update.
140
10. Blok PL/SQL untuk menghapus data tertrentu dari tabel employees dan
menampilkan jumlah record yang berhasil dihapus ke layar.
141
12. Blok PL/SQL menggunakan perintah IF then Else
142
14. Blok PL/SQL yang berisi perbandingan nilai null, perhatikan keluaran yang
dihasilkan.
143
16. Blok PL/SQL menggunakan perbandingan CASE dengan variabel
144
18. Contoh Blok PL/SQL menggunakan Basic Loop
145
20. Contoh Blok PL/SQL menggunakan WHILE Loop
Interacting with the Oracle Server, Oracle Database 10g. PL/SQL Fundamentals
(D17112GC21),Edition 2.1, December 2015.
146
Bab XII
I. Tujuan Pratikum
Agar mahasiswa dapat mengerti penggunaan composite data types, bisa membedakan
implicit dan explicit cursor, menggunakan perulangan dalam cursor, dan menggunakan
parameter dalam cursor.
II. Bahan & Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, Browser Mozilla Firefox /
Internet Explorer dan modul pratikum.
III. Metode yang digunakan
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources, melakukan
koneksi ke database oracle menggunakan iSQLPlus.
Sintaks :
Deklarasi Field :
147
%Rowtype Attribute
Sintaks :
Cursors
Implicit Cursors : deklarasi dan pengaturan dibuat oleh PL/SQL untuk semua
perintah DML dan perintah select.
Explicit Cursors : deklarasi dan pengaturan dibuat oleh programmer.
148
Explicit Cursors Kontrol
149
Sintaks Deklarasi Cursor :
150
Loop For dalam Cursor
Sintaks :
Sintaks :
151
V. Bahan Pratikum
1. Membuat blok PL/SQL untuk deklarasi varibel yang bisa menyimpan nama, job dan
gaji dari pegawai baru.
2. Membuat blok PL/SQL untuk memasukkan data pegawai 124 dari tabel employees
ke tabel retired_emps dengan menggunakan %rowtype attribute.
152
3. Membuat blok PL/SQL untuk memasukkan data pegawai 124 dari tabel employees
ke tabel retired_emps dengan menggunakan %rowtype attribute tanpa menyebutkan
nama fieldnya.
153
4. Membuat blok PL/SQL untuk mengubah record data pegawai 124 pada tabel
retired_emps dengan menggunakan %rowtype attribute tanpa menyebutkan nama
fieldnya.
154
Tahap mengambil data dari cursor dengan perulangan
155
6. Blok PL/SQL menggunakan variable record (%rowtype) untuk menyederhakan
penulisan program.
7. Membuat blok PL/SQL yang berisi cursor untuk menyimpan data dan pengolahan
data menggunakan perulangan FOR.
156
8. Membuat blok PL/SQL yang berisi cursor untuk menyimpan data dan pengolahan
data dengan perulangan FOR menggunakan subqueri.
9. Blok PL/SQL menggunakan attribute %ISOPEN, untuk cek apakah cursor sudah
terbuka atau belum.
157
11. Blok PL/SQL yang berisi cursor menggunakan parameter.
158
VI. Daftar Pustaka
Working with Composite Data types, Oracle Database 10g. PL/SQL Fundamentals
(D17112GC21), Edition 2.1, December 2015.
159
Bab XIII
I. Tujuan Pratikum
Agar mahasiswa dapat mengetahui perbedaan blok aninomus dan subprogram, dapat
mengetahui perbedaan antara prosedur dan fungsi, mengerti penggunaan stored
procedure, dapat memanggil stored prosedur dari blok PL/SQL yang lain.
II. Bahan & Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, Browser Mozilla Firefox /
Internet Explorer dan modul pratikum.
III. Metode yang digunakan
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources, melakukan
koneksi ke database oracle menggunakan iSQLPlus.
160
Sintaks membuat Stored Procedure :
V. Bahan Pratikum
1. Tuliskan blok PL/SQL untuk membuat stored procedure dengan nama tampil_data,
yang dapat digunakan untuk menampilkan keluaran sebagai berikut :
161
2. Buat blok PL/SQL untuk memanggil procedure tampil_data
162
4. Tuliskan blok PL/SQL untuk membuat stored procedure dengan nama data_pegawai,
yang dapat digunakan untuk menampilkan nama lengkap dan gaji dari pegawai 100.
5. Buat blok PL/SQL untuk memanggil procedure tampil_data dan data_pegawai secara
bersamaan.
163
6. Tuliskan blok PL/SQL untuk membuat stored procedure dengan nama cari_min,
yang dapat digunakan untuk menampilkan gaji terkecil keseluruhan pegawai.
7. Tuliskan blok PL/SQL untuk membuat stored procedure dengan nama cari_max,
yang dapat digunakan untuk menampilkan gaji terbesar keseluruhan pegawai.
164
8. Tuliskan blok PL/SQL untuk membuat stored procedure dengan nama cari_rata,
yang dapat digunakan untuk menampilkan gaji rata-rata keseluruhan pegawai.
9. Buat blok PL/SQL untuk memanggil procedure cari_min, cari_max dan cari_rata
secara bersamaan.
165
10. Tuliskan blok PL/SQL untuk membuat stored procedure dengan nama cari_staff,
yang dapat digunakan untuk menampilkan jumlah staff per Manager ID urut
berdasarkan jumlah staff dari terbesar ke terkecil.
166
11. Tuliskan PL/SQL untuk menampilkan keluaran procedure cari_staff diatas.
12. Ubah procedure cari_staff untuk menampilkan nama manager beserta dengan jumlah
staffnya.
167
13. Tuliskan PL/SQL untuk menampilkan keluaran cari_staff hasil modifikasi procedure
diatas.
168
14. Tuliskan perintah untuk mencopy tabel departments menjadi tabel dept
menggunakan perintah SQL, pastikan tabel yang anda buat unik dan tidak sama
dengan mahasiswa lain. (dept_nim_anda)
169
15. Tuliskan perintah SQL untuk menampilkan isi tabel dept hasil copy dari tabel
departments.
16. Tuliskan blok PL/SQL untuk membuat stored procedure dengan nama add_dept,
yang dapat digunakan untuk menambahkan record baru ke dalam tabel dept dengan
dept_id 280 dan dept_name ST-Curriculum, dan tampilkan jumlah record yang
berhasil terinsert, dengan keluaran sebagai berikut.
Inserted 1 row
\
17. Buat blok PL/SQL sederhana untuk memanggil procedure yang sudah pernah dibuat
dan aktifkan set serveroutput on, kemudian tuliskan perintah select untuk
menampilkan isi dari tabel dept yang terbaru.
170
VI. Daftar Pustaka
Creating Stored Procedure and Functions, Oracle Database 10g. PL/SQL Fundamentals
(D17112GC21), Edition 2.1, December 2015.
171
Bab XIV
I. Tujuan Pratikum
Agar mahasiswa dapat mengetahui perbedaan blok aninomus dan subprogram, dapat
mengetahui perbedaan antara prosedur dan fungsi, mengerti penggunaan stored function,
membuat function dengan parameter, dapat memanggil stored function dari blok PL/SQL
yang lain maupun dari perintah Select.
II. Bahan & Alat
Hardware berupa PC/laptop, Software Oracle Database 10g, Browser Mozilla Firefox /
Internet Explorer dan modul pratikum.
III. Metode yang digunakan
Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g,
membuka lock user HR, mengerti tentang class diagram Human Resources, melakukan
koneksi ke database oracle menggunakan iSQLPlus.
172
Sintaks membuat Stored Function :
V. Bahan Pratikum
1. Tuliskan blok PL/SQL untuk membuat function dengan nama tanggal_sekarang,
yang dapat digunakan untuk menampilkan tanggal hari ini dengan format nama Hari,
tanggal, nama bulan dan 4 digit tahun.
Buat function untuk menampilkan tanggal sekarang dengan format default
menggunakan fungsi SYSDATE, seperti dibawah ini.
173
Keluaran sebagai berikut :
174
Sehingga Keluaran menjadi seperti dibawah ini :
2. Tuliskan blok PL/SQL untuk menampilkan nama pegawai dari pegawai 200 dengan
menggunakan fungsi.
Tentukan nama fungsi dan tipe data output dari fungsi tersebut.
Nama fungsi : nama_pegawai
Tipe data output : varchar
Ketik perintah untuk membuat fungsi
175
Deklarasikan variable yang dibutuhkan (jika ada)
Pada program utama (executable section) buat PL/SQL untuk mencari nama
lengkap dari employee 200.
176
Tambahkan return value
177
5. Tuliskan perintah SQL untuk menampilkan keluaran fungsi nama_pegawai2 yang
terbentuk diatas dengan mengirimkan nilai parameter 190.
178
7. Tuliskan blok PL/SQL untuk menampilkan nama departemen, nama kota dan nama
negara dengan membuat 3 fungsi yang sesuai beserta dengan parameter yang
dibutuhkan.
Membuat fungsi nama_dept
179
Membuat fungsi nama_kota
8. Tuliskan blok PL/SQL untuk menampilkan nama pegawai, nama departemen, nama
kota dan nama Negara dengan memanfaatkan fungsi-fungsi diatas.
180
Dengan keluaran sebagai berikut :
9. Tuliskan blok PL/SQL untuk membandingkan gaji pegawai 205 dengan gaji rata-rata
pegawai yang satu departemen dengannyadengan nama fungsi check_sal dan keluar
berupa TRUE dan FALSE.
181
10. Buat blok PL/SQL dengan menggunakan fungsi check_sal untuk mengetahui status
gaji pegawai 205.
182
12. Peritah untuk melihat error karena fungsi tidak ditemukan
Creating Stored Procedure and Functions, Oracle Database 10g. PL/SQL Fundamentals
(D17112GC21), Edition 2.1, December 2015.
183