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.