Saskia

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

Saskia Febe Fedhora - 825189201

-- Nomor 1
DECLARE
temp1 NUMBER := &input_a_temp;
t_scale CHAR := '&input_temp_scale';
new_temp NUMBER;
new_scale CHAR;
BEGIN
IF t_scale != 'C'
AND
t_scale != 'F' THEN
dbms_output.Put_line ('Kode Salah');
new_temp := 0;
new_scale := 'C';
ELSE
IF t_scale = 'C' THEN
new_temp := ( ( 9 * temp1 ) / 5 ) + 32;
new_scale := 'F';
ELSE
new_temp := ( ( temp1 - 32 ) * 5 ) / 9;
new_scale := 'C';
END IF;
END IF;
dbms_output.Put_line ('Konversi Temperatur baru: '
||new_scale
||' is: '
||new_temp);
END;

-- Nomor 2
DECLARE CURSOR DEP_LOC_CURSOR IS
SELECT department_name, l.location_id, street_address, city
FROM hr.departments d, hr.locations l
WHERE d.location_id = l.location_id ;
v_deptname hr.departments.department_name%TYPE;
v_locationid hr.locations.location_id%TYPE;
v_stradd hr.locations.street_address%TYPE;
v_city hr.locations.city%TYPE;
BEGIN
OPEN dep_loc_cursor;
LOOP FETCH dep_loc_cursor INTO v_deptname, v_locationid, v_stradd,v_city;
EXIT WHEN dep_loc_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Department Name = '||' '||v_deptname || ' - Locations =
' || v_locationid);
END LOOP;
CLOSE dep_loc_cursor;
END;

-- Nomor 3
DECLARE
v_employeeid employees.employee_id%TYPE := :employeeID;
new_SALARY NUMBER;
v_last_name employees.last_name%TYPE;
v_salary employees.salary%TYPE;
BEGIN
SELECT EMPLOYEE_ID, LAST_NAME, SALARY INTO v_employeeid, v_last_name, v_salary
FROM EMPLOYEES
WHERE EMPLOYEE_ID = v_employeeid;
CASE
WHEN v_salary < 10000 THEN
new_salary := v_salary+0.2;
DBMS_OUTPUT.PUT_LINE('Last name is '||v_last_name||' with salary '||v_salary||' and
new salary is '||new_salary);
WHEN v_salary < 15000 AND v_salary >= 10000 THEN
new_salary := v_salary+0.1;
DBMS_OUTPUT.PUT_LINE('Last name is '||v_last_name||' with salary '||v_salary||' and
new salary is '||new_salary);
ELSE
DBMS_OUTPUT.PUT_LINE('Last name is '||v_last_name||' with salary '||v_salary);
END CASE;
END;

-- Nomor 4
DECLARE
CURSOR dep_cur is
SELECT d.department_name, count(e.employee_id)
FROM employees e JOIN departments d
ON (d.department_id = e.department_id)
GROUP BY d.department_name;

v_department_name departments.department_name%type;
v_sum number;

BEGIN
open dep_cur;
DBMS_OUTPUT.PUT_LINE('department dengan jumlah karyawan > 10');
LOOP
FETCH dep_cur into v_department_name, v_sum;
EXIT WHEN dep_cur%NOTFOUND;
IF v_sum > 10 THEN
DBMS_OUTPUT.PUT_LINE('department ' || v_department_name ||
', jumlah karyawan : ' || v_sum );
end if;
END LOOP;
CLOSE dep_cur;
END;

-- Nomor 5
DECLARE
CURSOr cur_sal IS
SELECT job_title, MIN(salary) min, MAX(salary) max, TRUNC(AVG(salary)) avg
FROM employees NATURAL JOIN jobs
GROUP BY job_title;
BEGIN
FOR v_cur_sal IN cur_sal LOOP
dbms_output.put_line('Job title : ' || v_cur_sal.job_title);
dbms_output.put_line('Gaji Terendah : ' || v_cur_sal.min);
dbms_output.put_line('Gaji Tertinggi : ' || v_cur_sal.max);
dbms_output.put_line('Gaji rerata : ' || v_cur_sal.avg);
dbms_output.put_line('');
END LOOP;
END;

You might also like