SOAL UTS LBD2 (PL/SQL)

Buat rangkuman materi PL/SQL  yang sudah diajarkan di Lab.

KETENTUAN :
1.       Setiap orang anggota kelompok memilih satu bab yang dianggap bisa dan paham
2.       Soal terdiri dari 3 soal berjenjang yaitu :
·         1 Soal mudah
·         1 Soal sedang
·         1 soal sulit
(silahkan persepsikan sendiri definisi soal mudah, soal sedang dan soal sulit)
3.       Soal dijawab oleh orang yang berbeda
4.      Setiap rangkuman, soal atau jawaban yang sama,  akan dibagi sejumlah itu (baik sama di satu kelas ataupun di luar kelas).
5.      Rangkuman, soal dan jawaban di print dikumpul tanggal 13 November 2017

PENJELASAN KETENTUAN
1.       Misalnya di kelas LBD2-1 ada 7 kelompok, yaitu :
·      Kelompok 1 sampai dengan Kelompok 7 (masing-masing membuat rangkuman)
·      Kelompok 1 terdiri dari  3 orang yaitu 1A, 1B dan 1C
·      Misalnya  1A membuat soal dari BAB 1 sebanyak 3 soal (sulit, sedang dan mudah)
·      Maka 1B dan 1C harus membuat soal dari BAB yang berbeda dengan 1A
·      Jadi nantinya setiap kelompok ada 9 soal dari 3 BAB yang berbeda
2.       Pertanyaan Soal  1A dijawab oleh  1B
3.       Pertanyaan Soal  1B dijawab oleh  1C
4.       Pertanyaan Soal  1C dijawab oleh  1A
5.       Soal dan jawaban kelompok 1 di kelas LBD2-1 tidak boleh ada yang sama dengan kelompok lainnya, demikian juga dengan soal dan jawaban Kelas lainnya selain kelas LBD2-1 tidak boleh ada yang sama.

6.       Jadi tidak ada soal ataupun jawaban yang sama baik satu kelas ataupun dengan kelas lainnya.

Latihan Soal 4


 BUAT SRIP UNTUK MENAMPILKAN NILAI AKHIR SBB :
--------------------------------------------
 RUMUS :  A
 TUGAS   : 100
 QUIS       : 100
 UTS         : 100
 UAS        : 100
NILAI      : 100
 KETERANGAN : BAIK SEKALI
--------------------------------------------

 DI INPUT :
 A. NILAI QUIS
 B. NILAI TUGAS
 C. NILAI UTS
 D. NILAI UAS

 RUMUS :
 A. NA = (QUIS*20%) + (TUGAS*10%)+ (UTS*30%) + (UAS*40%)
 B. NA = (QUIS*30%) + (UTS*30%)  + (UAS*40%)
 C. NA = (TUGAS*30%)+ (UTS*30%)  + (UAS*40%)
 D. NA = (UTS*40%)  + (UAS*60%)

 RANGE NILAI :
 A = 80..100
 B = 68..79
 C = 56..67
 D = 45..55

JAWAB

DECLARE
QUIS      INT:=&QUIS;  
TUGAS  INT:=&TUGAS;
UTS        INT:=&UTS;   
UAS        INT:=&UAS;
NAK       NUMBER(10,2);
KET        VARCHAR(20);
RUM       VARCHAR(1);

BEGIN
IF TUGAS = 0 THEN
   IF QUIS = 0 THEN
        RUM := 'D';
        NAK := (UTS*0.40)+(UAS*0.60);
   ELSE    
        RUM := ' B';
        NAK := (QUIS*0.30)+(UTS*0.30)+(UAS*0.40);
   END IF;

ELSIF QUIS = 0 THEN
            RUM := 'C';
            NAK := (TUGAS*0.30)+(UTS*0.30)+(UAS*0.40);
      ELSE          
           RUM := 'A';
           NAK := (TUGAS*0.10)+(QUIS*0.10)+(UTS*0.30)+(UAS*0.40);
END IF;

IF        NAK >= 80   THEN  KET := 'BAIK SEKALI ';
ELSIF NAK >=68 THEN     KET := 'B A I K     ';
ELSIF NAK >=56 THEN     KET := 'C U K U P   ';
ELSIF NAK >=45 THEN     KET := 'K U R A N G ';
       ELSE                              KET := 'NGULANG LAGI';
END IF;

DBMS_OUTPUT.PUT_LINE('NILAI AKHIR LBD-2');
DBMS_OUTPUT.PUT_LINE('-----------------');
DBMS_OUTPUT.PUT_LINE('RUMUS  : '||RUM);
DBMS_OUTPUT.PUT_LINE('TUGAS   : '||TUGAS);
DBMS_OUTPUT.PUT_LINE('QUIS       : '||QUIS);
DBMS_OUTPUT.PUT_LINE('UTS         : '||UTS);
DBMS_OUTPUT.PUT_LINE('UAS         : '||UAS);
DBMS_OUTPUT.PUT_LINE('NILAI AKHIR : '||NAK);
DBMS_OUTPUT.PUT_LINE('KETERANGAN : '||KET);
DBMS_OUTPUT.PUT_LINE('-----------------');
END;
/










Latihan soal 1 & 2 Serta Jawabannya

Soal 1

Buatlah skrip PL/SQL untuk menampilkan data sebagai berikut :

1. nama pegawai
2. gaji pegawai
3. gaji satu tahun

Input :
Nomor pegawai di input

Ketentuan :

Gunakan bind variabel dan pl/sql variabel



Jawaban :

VARIABLE GABUL NUMBER
DECLARE
NAMAPEG EMPLOYEES.LAST_NAME%TYPE;
NOMOR   EMPLOYEES.EMPLOYEE_ID%TYPE :=&NOMOR;
GAJI    EMPLOYEES.SALARY%TYPE;
BEGIN
SELECT LAST_NAME,SALARY INTO NAMAPEG,GAJI FROM EMPLOYEES
WHERE EMPLOYEE_ID=NOMOR;
:GABUL := GAJI * 12;
DBMS_OUTPUT.PUT_LINE('NAMANYA  : '||NAMAPEG);
DBMS_OUTPUT.PUT_LINE('GAJINYA  : '||GAJI);
END;
/

Hasil Eksekusi :

Enter value for nomor: 200
NAMANYA  : Whalen
GAJINYA  : 4400

PL/SQL procedure successfully completed.




Soal 2

Perusahaan mengambil fee 60% dari nilai kontrak, fee 60% dibagi menjadi beberapa biaya sbb :
1. biaya marketing 10%
2. gaji pegawai       70%
3. biaya lainnya      20%


Buatlah skrip PL/SQL untuk menampilkan data sebagai berikut :

a. biaya marketing 10%
b. gaji pegawai       70%
c. biaya lainnya      20%

Input :
Besar Projek :

Ketentuan :

Gunakan bind variabel dan pl/sql variabel

Jawaban

VARIABLE BPRO NUMBER
DECLARE
BESAR_PROJEK NUMBER(20):= &BESAR_PROJEK;
BFEE         NUMBER(20);
B_MARKETING  NUMBER(10);
B_PEGAWAI    NUMBER(10);
B_BIAYA      NUMBER(10);
BEGIN
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('BESAR PENAWARAN PROJEK     : '||TO_CHAR(BESAR_PROJEK,'999,999,999'));
BFEE         := BESAR_PROJEK * 0.60;
B_MARKETING  := BFEE * 0.10;
B_PEGAWAI    := BFEE * 0.60;
B_BIAYA      := BFEE * 0.30;
DBMS_OUTPUT.PUT_LINE('BESAR FEE       PROYEK     : '||TO_CHAR(BFEE,'999,999,999'));
DBMS_OUTPUT.PUT_LINE('BESAR BIAYA MARKETING      : '||TO_CHAR(B_MARKETING,'999,999,999'));
DBMS_OUTPUT.PUT_LINE('BESAR BIAYA PEGAWAI        : '||TO_CHAR(B_PEGAWAI,'999,999,999'));
DBMS_OUTPUT.PUT_LINE('BESAR BIAYA-BIAYA          : '||TO_CHAR(B_BIAYA,'999,999,999'));
:BPRO := B_MARKETING + B_PEGAWAI  + B_BIAYA;
DBMS_OUTPUT.PUT_LINE('REKAPITULASI    BIAYA      : '||TO_CHAR(:BPRO,'999,999,999'));
END;
/
Hasil Eksekusi :

Enter value for besar_projek: 100000000
BESAR PENAWARAN PROJEK     :  100,000,000
BESAR FEE PROYEK           :   60,000,000
BESAR BIAYA MARKETING      :    6,000,000
BESAR BIAYA PEGAWAI        :   36,000,000
BESAR BIAYA-BIAYA          :   18,000,000
REKAPITULASI BIAYA         :   60,000,000


PL/SQL procedure successfully completed.