twitter

Sabtu, 29 Januari 2011 | 0 komentar |





create table kategori (
kode_kategori varchar2(5),
nama_kategori varchar2(30),
constraint pk_kategori PRIMARY KEY (kode_kategori))
/

create table produk (
kode_produk varchar2(5),
kode_kategori varchar2(5),
harga_satuan number(12),
nama_produk varchar2(50),
stok number(5),
constraint pk_produk PRIMARY KEY (kode_produk),
constraint fk_kode_kategori FOREIGN KEY (kode_kategori) REFERENCES kategori (kode_kategori))
/

create table history(
    nama_user    varchar(30),
    waktu        varchar2(25),
    keterangan    varchar(90));

create table pembeli (
kode_pembeli varchar2(5),
nama_pembeli varchar2(30),
alamat varchar2(45),
kode_pos number(5),
provinsi varchar2(20),
kota varchar2(20),
telepon varchar2(12),
constraint pk_pembeli PRIMARY KEY (kode_pembeli))
/

create table pesanan (
kode_pesanan varchar(5),
kode_pembeli varchar(5),
tanggal_pemesanan date,
constraint pk_pesanan PRIMARY KEY (kode_pesanan),
constraint fk_kode_pembeli FOREIGN KEY (kode_pembeli) references pembeli (kode_pembeli))
/

create table detail_pesanan (
kode_produk varchar2(8),
kode_pesanan varchar2(8),
jumlah_pesanan varchar(15),
constraint pk1_dproduk PRIMARY KEY (kode_produk, kode_pesanan),
constraint fk2_kode_produk FOREIGN KEY (kode_produk) references produk (kode_produk) on delete cascade,
constraint fk3_kode_pesanan FOREIGN KEY (kode_pesanan) references pesanan (kode_pesanan)on delete cascade)
/

TRIGGER

create or replace trigger update_produk_stok
before insert on detail_pesanan
for each row
declare
    v_stok number(3);
begin
    select stok into v_stok from produk where kode_produk = :new.kode_produk;
   
    if (v_stok - :new.jumlah_pesanan < 0) then
        raise_application_error(-20001, 'Jumlah pembelian lebih besar daripada sisa stok');
    else
        update produk
        set stok = stok - :new.jumlah_pesanan
        where kode_produk = :new.kode_produk;
    end if;
end;
/

FUNCTION
create or replace function hitung_harga_total
(v_harga number, v_jumlah number)   
return number
is
begin
    return v_harga * v_jumlah;
end;
/

-----------------------------------------------------------------------------------------------------

create or replace function hitung_harga_keseluruhan
(v_kode_pesanan varchar2)
return number
is
    v_harga_total number(15);
begin
    select sum( b.harga_satuan * dp.jumlah_pesanan )
        into v_harga_total
        from produk b, detail_pesanan dp
        where b.kode_produk = dp.kode_produk
            and dp.kode_pesanan = v_kode_pesanan;

    return  v_harga_total;
end;
/
PROCEDURE
create or replace procedure detail_pembeli
(v_kode_pembeli varchar2)
is
    cursor cursor_pembeli is
        select * from pembeli
        where kode_pembeli = v_kode_pembeli;
       
    cursor cursor_daftar is
        select tanggal_pemesanan, kode_pesanan
        from pesanan
        where kode_pembeli = v_kode_pembeli;
   
    v_kode_pesanan pesanan.kode_pesanan%type;
    v_harga_pembelian number(15);
   



begin   
    dbms_output.put_line('-----------------------------------------------------');
   
    dbms_output.put_line('Detail Pembeli');
   
    dbms_output.put_line('-----------------------------------------------------');
   
    for pembeli in cursor_pembeli
        loop
            dbms_output.put_line(rpad('Kode Pembeli', 15) || ' : ' || pembeli.kode_pembeli );
            dbms_output.put_line(rpad('Nama', 15) || ' : ' || pembeli.nama_pembeli );
            dbms_output.put_line(rpad('Alamat', 15) || ' : ' || pembeli.alamat );
            dbms_output.put_line(rpad('Kota', 15) || ' : ' || pembeli.kota );
            dbms_output.put_line(rpad('Provinsi', 15) || ' : ' || pembeli.provinsi );
            dbms_output.put_line(rpad('No Telepon', 15) || ' : ' || pembeli.telepon);
    end loop;
   
    dbms_output.put_line('-----------------------------------------------------');
   
    dbms_output.put_line('Daftar Pembelian');
   
    dbms_output.put_line('-----------------------------------------------------');
   
    dbms_output.put(rpad('Tanggal', 10));
    dbms_output.put(rpad('Kode Pesanan', 10));
    dbms_output.put_line(lpad('Harga Total', 15));
   
    dbms_output.put_line('-----------------------------------------------------');
   
    for daftar in cursor_daftar
        loop
            dbms_output.put(rpad(daftar.tanggal_pemesanan, 10));
           
            v_kode_pesanan := daftar.kode_pesanan;
            dbms_output.put(rpad(v_kode_pesanan, 10 ));
           
            v_harga_pembelian := hitung_harga_keseluruhan(v_kode_pesanan);
            dbms_output.put_line(lpad(v_harga_pembelian, 15));
    end loop;
   
    dbms_output.put_line('-----------------------------------------------------');

end;
/   

-----------------------------------------------------------------------------------------------------

create or replace procedure struk_pembelian
(v_kode_pesanan varchar2)
is
    v_nama pembeli.nama_pembeli%type;
   
    v_jumlah detail_pesanan.jumlah_pesanan%type;
    v_harga produk.harga_satuan%type;
    v_harga_total number(12);
    v_harga_keseluruhan number( 15 );
   
    cursor cursor_pembelian is
        select dp.kode_produk, p.nama_produk, p.harga_satuan, dp.jumlah_pesanan
        from produk p, detail_pesanan dp
        where p.kode_produk = dp.kode_produk
        and kode_pesanan = v_kode_pesanan;
begin
    select nama_pembeli
        into v_nama
        from pembeli b, pesanan p
        where b.kode_pembeli = p.kode_pembeli
        and p.kode_pesanan = v_kode_pesanan;

    dbms_output.put_line('--------------------------------------------------------------------------------');
       
    dbms_output.put_line(rpad('Kode Pesanan ', 15) || ' : ' || v_kode_pesanan );
    dbms_output.put_line(rpad('Nama Pembeli ', 15) || ' : ' || v_nama );
   
    dbms_output.put_line('--------------------------------------------------------------------------------');

    dbms_output.put(rpad('Kode Produk', 12));
    dbms_output.put(rpad('Nama Produk', 30));
    dbms_output.put(lpad('Harga Satuan', 12));
    dbms_output.put(lpad('Jumlah', 10));
    dbms_output.put_line(lpad('Harga Total', 15));

    dbms_output.put_line('--------------------------------------------------------------------------------');
   
    for pembelian in cursor_pembelian
        loop
            dbms_output.put(rpad(pembelian.kode_produk, 12));
            dbms_output.put(rpad(pembelian.nama_produk, 30));
           
            v_harga := pembelian.harga_satuan;
            dbms_output.put(lpad(v_harga, 12));
           
            v_jumlah := pembelian.jumlah_pesanan;
            dbms_output.put(lpad(v_jumlah, 10));
           
            v_harga_total := hitung_harga_total( v_harga, v_jumlah );

            dbms_output.put(lpad(v_harga_total, 15));
           
            dbms_output.new_line;
    end loop;
   
    dbms_output.put_line('--------------------------------------------------------------------------------');
   
    v_harga_keseluruhan := hitung_harga_keseluruhan(v_kode_pesanan);
   
    dbms_output.put_line('Total : ' || v_harga_keseluruhan);
   
    dbms_output.put_line('--------------------------------------------------------------------------------');
end;
/


Thank You Myspace Comments
MyNiceProfile.com



| 0 komentar | Label:

fatigue when a search ...
I do not know what I should do ...
I'm sure ..
I have my God ...


New world, beginning a new struggle ...
There are no words to give up...
I know it's not easy ...
live in the new world ...

I Need friends to pass the struggle ..
as the first world ..
but yet I also find it ..
I'm sure will find it ..

Dolls Myspace Comments
MyNiceProfile.com
                                                                      -----------Inna Rachma-------------
Minggu, 23 Januari 2011 | 0 komentar |
one year and a half, 3 semester I had with them ...

beginning of a funny ....

beginning of the innocent ...

earliest shy ...


but it all is the beginning of our friendship and a beautiful family ....

help each other ...

love each other ...

encourage each other ....


laughter ...

Egoistic ...

silliness ...

and exhaustion during this, all so sweet ....


hmmm ...

so sweet to be forgotten ...

although still a while we know each other ....

its really beautiful  ....


hopefully the family and friendship are not be lost by the time ...

All is beautiful and so sweet ........

I love U pce0908

we are be friends forever... ^_^
                                                         
Cartoons Myspace Comments
MyNiceProfile.com

                                                                                                          --------- Inna Rachma-----------
| 0 komentar | Label:

future like a mirage ..


was near but far away ...


was easy but hard ...


and everyone will experience the future and all  people will not feel the future ...






future ....


tomorrow after today are the future ...


Day after today are the future ...


later, tomorrow, day after tomorrow .... are the future ...




should be better today than yesterday ...


should be better tomorrow than today ...


I often hear,


there is an undeniable message about the definition of a future in it ...




Do the best for our day, our lives and our futures ...


                                                           ----------Inna rachma--------


| 2 komentar | Label: