0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan5 halaman

PL/SQL: Prosedur, Fungsi, dan Trigger

Diunggah oleh

armida24ti
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan5 halaman

PL/SQL: Prosedur, Fungsi, dan Trigger

Diunggah oleh

armida24ti
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

EVALUATION ADVANCE DATABASE: PL/SQL

NAME …

NIM 2457301000

CLASS 2 SI A

NO PC 01

1.​ PL/SQL PROCEDURE (20 point)

(1)​ Buatlah sebuah procedure dengan nama procedure_eva3_insertDataOrders yang


dapat digunakan untuk menginputkan data baru ke tabel Orders.

(2)​ Kemudian eksekusi/jalankan procedure tersebut untuk menginputkan data baru di


tabel Orders (data bebas).

(3)​ Terakhir, tampilkan isi tabel Orders untuk membuktikan bahwa procedure berhasil
dijalankan dan data baru berhasil masuk

Screenshot Query dan Hasil

(1) SS Query - Membuat Procedure


SS Hasil - Membuat Procedure


(2) SS Query - Menjalankan Procedure


SS Hasil - Menjalankan Procedure


(3) SS Query - Menampilkan Isi Tabel


SS Hasil - Menampilkan Isi Tabel Orders



2.​ PL/SQL FUNCTION (20 point)

(1)​ Buatlah sebuah function dengan nama function_eva3_grade. Function ini


membutuhkan 1 parameter nilai angka yang akan diubah ke nilai huruf. Terapkan
logika IF-ELSE untuk memeriksa nilai angka yang akan dikonversi/diubah ke nilai
huruf berdasarkan aturan nilai akademik PCR.

(2)​ Kemudian eksekusi/jalankan function tersebut dengan menginputkan nilai parameter


bebas/random. Pastikan hasilnya sudah sesuai dengan logika IF-ELSE nya

Screenshot Query dan Hasil

(1) SS Query - Membuat Function


SS Hasil - Membuat Function


(2) SS Query - Menjalankan Function


SS Hasil - Menjalankan Function



3.​ PL/SQL CURSOR

a.​ Implicit Cursor (10 Point)

Tabel Customer memiliki kolom outstanding_amt yang menunjukkan jumlah tagihan


pelanggan. Buatlah PL/SQL untuk:

●​ Melakukan UPDATE terhadap data customer dengan outstanding_amt < 6000


menjadi 0.
●​ Menggunakan atribut cursor bawaan: SQL%FOUND, SQL%NOTFOUND, dan
SQL%ROWCOUNT untuk menampilkan apakah ada baris yang terpengaruh dan
berapa jumlahnya.

Screenshot Query dan Hasil

SS Query - PL/SQL Implicit Cursor


SS Hasil - PL/SQL Implicit Cursor


b.​ Explicit Cursor (10 Point)

Tabel Customer memiliki kolom cust_name yang menunjukkan nama pelanggan.


Buatlah PL/SQL untuk:

●​ Buat cursor bernama c_customer yang mengambil daftar nama pelanggan dari
tabel customer.
●​ Lakukan proses OPEN → FETCH → EXIT WHEN → CLOSE.
●​ Tampilkan setiap nama pelanggan menggunakan dbms_output.

Screenshot Query dan Hasil

SS Query - PL/SQL Explicit Cursor


SS Hasil - PL/SQL Explicit Cursor



4.​ PL/SQL EXCEPTION (20 point)

Sebuah perusahaan ingin memvalidasi jumlah order_amount pada tabel orders agar
tidak melebihi batas 10.000.

(1)​ Anda diminta membuat blok PL/SQL yang melakukan hal berikut:

●​ Buat variabel ord_amt dengan nilai awal 12000.


●​ Jika nilai ord_amt > 10000, munculkan exception khusus bernama
ex_ord_amt dengan pesan “Order Amount Kelebihan Kapasitas”.
●​ Jika nilainya tidak melebihi batas, lakukan SELECT ke tabel ORDERS untuk
mengambil ord_amount, cust_code, dan agent_code berdasarkan nilai
ord_amt.
●​ Tampilkan hasil SELECT menggunakan dbms_output.
●​ Tangani juga exception NO_DATA_FOUND dan exception umum OTHERS.

(2)​ Coba ubah nilai awal ord_amt yang nilai awalnya 12000 menjadi 6000

Screenshot Query dan Hasil

(1) SS Query - PL/SQL Exception dengan nilai awal 12.000


SS Hasil - PL/SQL Exception dengan nilai awal 12.000


(2) SS Query - PL/SQL Exception dengan nilai awal 6.000


SS Hasil - PL/SQL Exception dengan nilai awal 6.000



5.​ PL/SQL TRIGGER (20 point)

Perusahaan ingin memastikan bahwa pelanggan baru tidak memiliki outstanding_amt


melebihi 10.000. Untuk itu, Anda perlu membuat trigger terhadap tabel CUSTOMER.
Instruksi Soal:

(1)​ Buat trigger bernama trigger_eva3_customers, dengan ketentuan sebagai berikut:

●​ yang berjalan AFTER INSERT FOR EACH ROW pada tabel CUSTOMER.
●​ Jika nilai :NEW.outstanding_amt > 10000 maka munculkan exception dengan
pesan “Utang Kelebihan Kapasitas”.
●​ Jika tidak, tampilkan informasi pelanggan baru: cust_name, cust_code, dan
outstanding_amt.

(2)​ Lakukan pengujian trigger dengan menginputkan data baru pada tabel customer
dengan nilai outstanding_amt berada di atas 10.000

(3)​ Lakukan juga pengujian trigger dengan menginputkan data baru pada tabel
customer dengan nilai outstanding_amt berada di bawah 10.000

Screenshot Query dan Hasil

(1) SS Query - Membuat Trigger


SS Hasil - Membuat Trigger


(2) SS Query - Menginputkan data baru di atas batas outstanding


SS Hasil - Menginputkan data baru di atas batas outstanding


(3) SS Query - Menginputkan data baru di bawah batas outstanding


SS Hasil - Menginputkan data baru di bawah batas outstanding


Anda mungkin juga menyukai