logo

Crowdly

[Reg] Basis Data (A,B,C,D,E,F) Genap 2024/2025

Looking for [Reg] Basis Data (A,B,C,D,E,F) Genap 2024/2025 test answers and solutions? Browse our comprehensive collection of verified answers for [Reg] Basis Data (A,B,C,D,E,F) Genap 2024/2025 at scele.cs.ui.ac.id.

Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!

Digitaro adalah perusahaan fintech yang menerapkan sistem insentif otomatis berbasis jam kerja dan performa. Sistem mereka sangat tergantung pada trigger dan stored procedure yang kompleks, dengan skenario sebagai berikut:

  • Tabel employee memiliki kolom: ssn, name, salary, bonus, total_hours_project, dan performance_grade.
  • Tabel works_on memiliki kolom: essn, project_id, hours.
  • Setiap kali jam kerja dimasukkan, total_hours_project diperbarui otomatis.
  • Jika total_hours_project > 200, maka bonus otomatis diberikan sebesar 20% dari gaji pokok.
  • Jika performance_grade diubah menjadi "A", maka stored procedure akan memanggil prosedur pemberian bonus tambahan.
  • Terdapat trigger untuk menolak semua insert/update yang menyebabkan salary + bonus > 1.5 * (salary supervisor).

Jika terdapat trigger:

CREATE TRIGGER check_performance BEFORE UPDATE ON employee

FOR EACH ROW

WHEN (NEW.performance_grade = 'A')

EXECUTE FUNCTION bonus_check();

Dan terdapat function dengan nama bonus_check(), di mana dalamnya seperti ini:

IF NEW.bonus > 0 AND OLD.bonus = 0 THEN

RAISE EXCEPTION 'Bonus manipulation detected!';

END IF;

Apa potensi masalah yang terjadi dari kode diatas?

100%
0%
0%
0%
View this question

Digitaro adalah perusahaan fintech yang menerapkan sistem insentif otomatis berbasis jam kerja dan performa. Sistem mereka sangat tergantung pada trigger dan stored procedure yang kompleks, dengan skenario sebagai berikut:

  • Tabel employee memiliki kolom: ssn, name, salary, bonus, total_hours_project, dan performance_grade.
  • Tabel works_on memiliki kolom: essn, project_id, hours.
  • Setiap kali jam kerja dimasukkan, total_hours_project diperbarui otomatis.
  • Jika total_hours_project > 200, maka bonus otomatis diberikan sebesar 20% dari gaji pokok.
  • Jika performance_grade diubah menjadi "A", maka stored procedure akan memanggil prosedur pemberian bonus tambahan.
  • Terdapat trigger untuk menolak semua insert/update yang menyebabkan salary + bonus > 1.5 * (salary supervisor).

Jika terdapat trigger pada employee yang akan:

  • Setelah update salary ➝ memanggil stored procedure recalculate_bonus()
  • Namun, ternyata recalculate_bonus() juga melakukan UPDATE employee SET salary = salary + 500 jika jam kerja > 250.

Apa yang mungkin terjadi?

0%
100%
0%
0%
View this question

Digitaro adalah perusahaan fintech yang menerapkan sistem insentif otomatis berbasis jam kerja dan performa. Sistem mereka sangat tergantung pada trigger dan stored procedure yang kompleks, dengan skenario sebagai berikut:

  • Tabel employee memiliki kolom: ssn, name, salary, bonus, total_hours_project, dan performance_grade.
  • Tabel works_on memiliki kolom: essn, project_id, hours.
  • Setiap kali jam kerja dimasukkan, total_hours_project diperbarui otomatis.
  • Jika total_hours_project > 200, maka bonus otomatis diberikan sebesar 20% dari gaji pokok.
  • Jika performance_grade diubah menjadi "A", maka stored procedure akan memanggil prosedur pemberian bonus tambahan.
  • Terdapat trigger untuk menolak semua insert/update yang menyebabkan salary + bonus > 1.5 * (salary supervisor).

Jika terdapat tiga trigger:

  • Trigger X: AFTER INSERT ON works_on ➝ Update total_hours_project
  • Trigger Y: AFTER UPDATE ON employee.total_hours_project ➝ Jalankan give_bonus() jika jam > 200
  • Trigger Z: BEFORE INSERT ON works_on ➝ Cek apakah jam yang ditambahkan valid (jam ≤ 12), kalau tidak raise exception

Apa yang mungkin terjadi jika ada query:

INSERT INTO works_on VALUES ('123', 'P5', 15);
100%
0%
0%
0%
View this question

Perhatikan trigger dan store procedure dibawah ini

Pilihlah pernyataan yang paling tepat untuk kode di atas!

I. Penggunaan OLD.Fname tidak tepat.

II. Jika ingin tetap mempertahankan penggunaan OLD.Fname, perlu dibuat kondisi baru, yaitu

IF (TG_OP = 'INSERT') THEN RAISE EXCEPTION '% salary cannot greater than his/her supervisor salary', NEW.Fname;

III. Jika ingin tetap mempertahankan penggunaan OLD.Fname, perlu dibuat kondisi baru, yaitu

IF (TG_OP = 'UPDATE') THEN RAISE EXCEPTION '% salary cannot greater than his/her supervisor salary', NEW.Fname;

IV. Penggunaan OLD.Fname sudah tepat.

100%
0%
0%
0%
View this question

Perhatikan definisi tabel berikut

CREATE TABLE EMPLOYEE (

Ssn VARCHAR PRIMARY KEY,

Fname VARCHAR,

Salary NUMERIC,

Super_ssn VARCHAR REFERENCES EMPLOYEE(Ssn),

Dno INT

);

Pilihlah trigger dan stored procedure yang paling tepat untuk memastikan bahwa tidak ada supervisor (Super_ssn) yang berbeda departemen dari pegawai yang dia supervisi.

0%
0%
0%
100%
View this question

Manakah pernyataan berikut yang merupakan perbedaan utama antara trigger dan stored procedure dalam DBMS?

0%
0%
100%
0%
View this question

Perhatikan trigger berikut:

CREATE TRIGGER log_perubahan 

AFTER DELETE OR INSERT ON PRODUK

FOR EACH ROW

EXECUTE PROCEDURE catat_perubahan();

i. Data pada tabel PRODUK dihapus, lalu prosedur catat_perubahan() akan dijalankan setelah data dihapus.

ii. Data pada tabel PRODUK ditambahkan, lalu prosedur catat_perubahan() akan dijalankan sebelum data ditambahkan.

iii. Data pada tabel PRODUK ditambahkan, lalu prosedur catat_perubahan() akan dijalankan setelah data ditambahkan.

iv. Data pada tabel PRODUK diubah, lalu prosedur catat_perubahan() akan dijalankan setelah data diubah.

v. Data pada tabel PRODUK ditambahkan, lalu prosedur catat_perubahan() akan dijalankan jika terjadi kesalahan saat penambahan data.

Trigger ini akan dijalankan setiap kali:

0%
0%
100%
0%
View this question

Jika kita ingin membuat trigger yang dipicu setelah melakukan penambahan data pada tabel PEGAWAI, maka sintaks yang tepat adalah:

0%
0%
0%
100%
View this question

Perhatikan kode dibawah ini

Apa efek dari trigger trg_audit_salary_update tersebut jika gaji seorang karyawan diperbarui dari 5000 menjadi 6000, tetapi bonus tetap?

100%
0%
0%
0%
View this question

Seorang HR ingin memastikan bahwa setiap karyawan baru hanya bisa dimasukkan jika supervisornya sudah terdaftar di tabel employee. Bagaimana trigger sebaiknya dibuat?

0%
0%
100%
0%
View this question

Want instant access to all verified answers on scele.cs.ui.ac.id?

Get Unlimited Answers To Exam Questions - Install Crowdly Extension Now!