Anda di halaman 1dari 6

Nama : Sidiq Waskitho Abas - 1318089

Tugas 8

1. Buatlah sebuah BLOK PL/SQL yang dapat menentukan nama CUSTOMER berdasarkan
kode CUSTOMER

CREATE OR REPLACE PROCEDURE ctk_data_cus (kode varchar2) IS


nama varchar2(30);
alamat varchar2(15);
kota varchar2(15);
begin
select customer.nama_customer INTO
nama from customer where cu
stomer.kode_customer=kode;
select customer.alamat_customer INTO alamat from customer wher e customer.kode_customer=kode;
select customer.kota_customer INTO kota from customer where cu stomer.kode_customer=kode;
DBMS_OUTPUT.PUT_LINE('Data Customer dengan kode '||kode);
DBMS_OUTPUT.PUT_LINE('Nama = '||nama); DBMS_OUTPUT.PUT_LINE('Alamat = '||alamat);
DBMS_OUTPUT.PUT_LINE('Kota = '||kota);
end;

Output
2. Buatlah sebuah blok PL/SQL yang menampilkan teks ‘PERSEDIAAN BARANG TELAH
HABIS’ dari table barang yang nama barangnya LEMARI ES dan jika jumlah stok dari barang
tersebut sama dengan 0
Kode Program

CREATE OR REPLACE PROCEDURE ctk_sts_brg (nama varchar2)


IS
jml_stk number(4,0); begin
select barang.stok_barang INTO jml_stk from barang where baran g.nama_barang=nama;
IF jml_stk > 0 THEN
DBMS_OUTPUT.PUT_LINE('Persediaan barang berupa '||nama||' Tersedia');
ELSE
DBMS_OUTPUT.PUT_LINE('Persediaan barang berupa '||nama||' TELAH HABIS');
END IF;
END;
3. Asumsikan bahwa kita ingin memberikan hadiah terhadap para customer yang telah
melakukan order pembelian lebih dari 15 barang. Tugas anda adalah membuat laporan yang
berisi keterangan bahwa customer bersangkutan mendapatkan hadiah atau tidak ?

CREATE OR REPLACE PROCEDURE prc_undi_cus IS


Declarasi cursor cursor cur_cs IS
select kode_customer,sum(jumlah_pembelian) as jml from pembeliangroup by kode_customer having
sum(jumlah_pembelian)>=15
;
vRec cur_cs%ROWTYPE;
nama varchar2(30);
BEGIN
OPEN cur_cs;
DBMS_OUTPUT.PUT_LINE('List Kode Customer yang mendapat Hadi ah' ||chr(10));
LOOP
FETCH cur_cs INTO vRec;
EXIT WHEN cur_cs%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Kode Customer = '||vRec.kode_cust
omer);
DBMS_OUTPUT.PUT_LINE('Jumlah Pembelian Barang = '||vRec
.jml||chr(10));
ENDLOOP;
CLOSE cur_cs;
END;;
Output

4. Buatlah blok PL/SQL yang menampilkan teks ‘ PERSEDIAAN BARANG TELAH HABIS’
jika jumlah stok dari lemari es sama dengan 0, ‘PERSIDIAAN BARANG KURANG DARI
10’ jika jumlah stoknya kurang dari 10, sedangkan jika jumlah stok lebih dari 10 atau sama
dengan 10, maka teks yang ditampilkan adalah ‘PERSEDIAAN BARANG MASIH
BANYAK’ ?
Kode Program
CREATE OR REPLACE PROCEDURE ctk_sts_brg2 (nama varchar2) IS
jml_stk number(4,0);
begin
select barang.stok_barang INTO jml_stk from barang where baran g.nama_barang=nama;
IF jml_stk >= 10 THEN
DBMS_OUTPUT.PUT_LINE('Persediaan barang berupa '||nama||' MAS IH BANYAK');
ELSIF jml_stk < 10 AND jml_stk>0 THEN
DBMS_OUTPUT.PUT_LINE('Persediaan barang berupa '||nama||' Kur ang dari 10');
ELSIF jml_stk = 0 THEN
DBMS_OUTPUT.PUT_LINE('Persediaan barang berupa '||nama||' TEL AH HABIS');
END IF;
END;

Data di Database

Output
5. Buatlah sebuah BLOK PL/SQL yang dapat menentukan nama CUSTOMER berdasarkan
kode CUSTOMER yang Tampilan outputnya sebagai berikut :

Kode Program

CREATE OR REPLACE PROCEDURE cetak_nama


(tabel varchar2) IS
v_sql varchar2(32767) := 'select nama_'|| tabel ||' from ' || tabel || ' ORDER BY kode_' || tabel;
type t_rec is record (nama varchar2(20)); v_rec t_rec;
c1 sys_refcursor; begin
open c1 for v_sql; loop
fetch c1 into v_rec; exit when c1%notfound;
dbms_output.put_line(v_rec.nama); end loop;
end;

Output

Catatan : Mohon maaf ada masalah teknis laptop sedang error karena database jadi terlambat untuk
mengerjakan tugas , mohon diterima serta ada beberapa query yang saya dapatkan dari teman

Anda mungkin juga menyukai