Anda di halaman 1dari 5

Hal.

1 dari 5

Fakultas Teknologi Informasi


Universitas Budi Luhur
Ujian Akhir Semester
Tahun Ajaran Genap 2012/2013
Mata Kuliah
Kelompok
Dosen

: Oracle Fundamental PL/SQL


: KU TI (2011)
: Hendri Irawan, S. Kom, M.T.I.

Tanggal
Waktu
Sifat

: Selasa, 25 Juni 2013


: 120 Menit
: Buka Noted 1 Lembar
A4

Jawablah soal ini (1 10 Bobot 50%):


1. Jelaskan fungsi dari COMMIT dan ROLLBACK
Jawaban:
Commit >> Berfungsi untuk memastikan transaksi kita berubah secara permanen
Rollback >> Berfungsi untuk mengembalikan ke posisi awal kita setelah commit
terdekat
2. Jelaskan persamaan dan perbedaan dari Basic Loop (Loop), While Loop, For
Loop
Jawaban:
Basic Loop >> digunakan jika statement didalam loop harus dieksekusi minimal satu
kali
While Loop >>digunakan jika kondisi perlu di evaluasi pada awal setiap kali iterasi
dilakukan
For Loop >>digunakan jika iterasi sudah diketahui
3. Jelaskan apakah perbedaan antara SQL dengan PL/SQL
Jawaban:
SQL:
>>dapat membuat database, relational struktur
>>bisa digunakan oleh DBAs
>>command mudah dipelajari
>>dapat diterapkan diberbagai DBMS lain
>>menampilkan simple/complex query
PL/SQL:
>>mudah dimengerti oleh setiap pengguna
>>dapat didesain khusus untuk database oracle dalam menggunakan program
aplikasi
>>dapat ditulis dalam beberapa baris
>>dapat berupa nested blok
>>Karakter dan literal diapit oleh tanda kutip
4. Jelaskan perbedaan antara Function dan Procedure
Jawaban:
Procedure:
>> merupakan prosedur seperti subprogram dalam bahasa pemograman yang
disimpan didalam database
>> eksekusi akan lebih cepat
>>tidak ada kompilasi
>>
Function:
>>merupakan subroutine yang digunakan untuk membuat transact-SQL
>>jika procedure tidak bisa digunakan untuk menyimpan hasil proses, sedangkan
pada function hasil dari proses dapat dikembalikan berupa sebuah nilai atau table.
Jika di Pemograman Visual Basic maka perbedaannya seperti antara function dan
sub.
5. (auto commit = off)
Awal Transaksi
Table Regions
Menampilkan table Regions

Hal. 2 dari 5

Time

Menambah data Region id = 5 , nama = Australias


Savepoint to A
Menghapus seluruh record di table Regions
Rollback to A
Mengubah data Australias menjadi Australia
Savepoint to B
Menghapus data yang Id Regionnya 5
Rollback to A
Commit;
Rollback;
Akhir Transaksi
Tuliskan isi record apa saja yang ada pada Table Regions setelah akhir transaksi
diatas
Jawaban:

TULISKAN SELECT STATEMENT


Soal)

UNTUK SOAL 6 10 (Entity Class HR pada Akhir

6. Perintah untuk Menambah record baru di table Regions yaitu Australia

Jawaban:
Insert into regions values(5,'Australia');
7. Perintah untuk Merubah no telepon karyawan 102 menjadi 515.123.1234
Sebelum

Sesudah

Jawaban:
Update employees set PHONE_NUMBER='515.123.1234'
where employee_id='102';
8. Perintah untuk Menghapus data region di table Regions yang tidak memiliki
hubungan atau tidak ada (region_id) di table countries
Jawaban:
Delete from regions
where region_id not in (select countries.region_id from countries);

Hal. 3 dari 5

9. Perintah untuk membuat table copy_employee100 beserta isinya. Table tersebut


berisi Nama, email, no telepon, id pekerjaan, id departemen dari karyawan yang
bekerja di departemen 100
Table copy_employees100

Jawaban:
Create table cop_employees100 as
select first_name||' '||last_name
department_id
from employees
where department_id=100;

as

name,

email,

phone_number,

job_id,

10. Perintah untuk membuat view dengan nama vempSA_MAN yang berisi Nama, Email,
No Telepon, Id Pekerjaan, Id Departemen dan salary dari karyawan yang memiliki
salary diatas 10000 dan memiliki Id Pekerjaan SA_MAN
View vempSA_MAN

Jawaban:
Create view vempSA_MAN as select first_name||' '||last_name as name, email,
phone_number, job_id, department_id, salary
From employees
Where salary > 10000 and job_id='SA_MAN';
11. Buatlah sebuah fungsi untuk menampilkan grade dan status kelulusan, dengan
ketentuan sebagai berikut (Bobot 30%) :
Nama Fungsi : FGrade(NilAbsen, NilUts, NilUas)
Parameter
Total = (0.1 * NilAbsen) + (0.4 * NilUts) + (0.5 * NilUas)
Grade A := 80 <= Total <= 100
Grade B := 70 <= Total < 80
Grade C := 60 <= Total < 70
Grade D := 40 <= Total < 60
Grade E := 0 <= Total < 40
Status A, B, dan C = Lulus
Status D dan E
= Tidak Lulus
Contoh jika dijalankan:
Select FGrade(90,69,73) from Dual;
Result yang diminta akan mengembalikan nilai:
Grade B Status Lulus
Jawaban:
Create function oneGrade(NilAbsen number, NilUts number, NilUas number)
Return varchar2 is Total number:= (0.1 * NilAbsen) + (0.4 * NilUts) + (0.5 * NilUas);
Grade varchar2(45);
Begin
If Total<40
Then grade := Grade E Status Tidak Lulus;

Hal. 4 dari 5

Elseif Total >=40 and Total <60


Then grade := Grade D Status Tidak Lulus;
Elseif Total >=60 and Total <70
Then grade := Grade C Status Lulus;
Elseif Total >=70 and Total <80
Then grade := Grade B Status Lulus;
Elseif Total >=80 and Total <=100
Then grade := Grade A Status Lulus;
Else
Grade := Tidak Memiliki Grade dan Status;
End if;
Return grade;
End;
12. Perintah PL/SQL (Explicit Cursor) untuk menampilkan Nama Karyawan, Nama
Pekerjaan, Nama Departemen, gaji dari karyawan yang memiliki gaji diatas 12000
urut berdasarkan namanya.
Eksepsi: Jika tidak ditemukan maka akan menampilkan Data Tidak Ada (Bobot
20%), Hasil:

John Russell-Sales Manager-Sales-14000


Karen Partners-Sales Manager-Sales-13500
Lex De Haan-Administration Vice President-Executive-17000
Michael Hartstein-Marketing Manager-Marketing-13000
Neena Kochhar-Administration Vice President-Executive-17000
Steven King-President-Executive-24000
Jawaban:
SET SERVEROUTPUT ON
DECLARE
CURSOR empp_cursor IS
select first_name, last_name, job_id, d.department_name, salary
from employees e join departments d on
( e.department_id=d.department_id)
where salary >12000;
fname employees.first_name%TYPE;
lname employees.last_name%TYPE;
jbId employees.job_id%TYPE;
dname departments.department_name%TYPE;
sly employees.salary%TYPE;
BEGIN
OPEN empp_cursor;
LOOP
FETCH empp_cursor INTO fname, lname, jbId, dname, sly;
EXIT WHEN empp_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(fname||' '||lname||' '||dname||' '||jbId||' '||sly);
END LOOP;
CLOSE empp_cursor;
END;
Entity Class

Hal. 5 dari 5

= Selamat Mengerjakan =
Hens