Modul 6 Delphi

download Modul 6 Delphi

of 18

  • date post

    07-Jul-2018
  • Category

    Documents

  • view

    215
  • download

    0

Embed Size (px)

Transcript of Modul 6 Delphi

  • 8/18/2019 Modul 6 Delphi

    1/18

    Buatlah Tabel Penjualan Seperti Berikut :

    Simpan dengan nama Penjualan.db. Tabel penjualan berfungsi untuk menampung semua data transaksi

    penjualan

    Buatlah tabel bantu seperti berikut :

    Simpan dengan nama Bantu.db. Tabel bantu berfungsi sebagai keranjang belanja, untuk menampung

    data barang sementara pada penjualan.

    Pada Project Penjualan Tambahkan Form Baru dengan Mengklik File+New+Form , selanjutnya simpan

    dengan nama UPenjualan.

    MODUL 6

  • 8/18/2019 Modul 6 Delphi

    2/18

    Rancanglah Form Seperti berikut :

    Catatan :

    1. Table 1

      Name --> TbJual •   TableName --> Penjualan.DB

    •   Active --> True

    2. Table 2

    •   Name --> Tbbarang

    •   TableName --> Barang.Db

    •   Active --> True

    3. Table 3

    •   Name--> TbStock

    •   Tablename --> Stock.Db

    •   Active --> True

    4. Table 4

    •   Name--> TbBantu

    •   Tablename --> Bantu.Db

    •   Active --> True

    5. DataSource 1

    •   Name --> DsBarang

    •   Dataset --> TbBarang

    6. DataSource 2

    •   Name --> DsBantu

    •   Dataset --> TbBantu

    7. Dbgrid 1

    •   DataSource --> DSbarang

    8. Dbgrid 2

    •   DataSource --> DSbantu

    Table 1

    Table 3

    Table 4

    Table 2DataSource1

    Datasource2

    Dbgrid 1

    Dbgrid 2

    Datetimepicker

  • 8/18/2019 Modul 6 Delphi

    3/18

    Kode Program Data Penjualan Barang

    private

     //Buat prosedure tersendiri/baru

    { Private declarations }

    PROCEDURE KOSONGKAN_TABEL_BANTU;

    PROCEDURE TOTAL_PENJUALAN;

    public

    { Public declarations }

    end;

    var

    Form5: TForm5;

    implementation

    {$R *.dfm}

    PROCEDURE TFORM5.TOTAL_PENJUALAN();

    VAR

    TOTAL:REAL;

    BEGIN

    TOTAL:=0;

     //AKTIFKAN TABEL BANTU

    TBBANTU.Active :=FALSE;

    TBBANTU.Active :=TRUE;

     //BACA DATA DARI AWAL SAMPAI AKHIR RECORD

    WHILE NOT TBBANTU.Eof  DO

    BEGIN

    TOTAL:=TOTAL+TBBANTU['TOTAL'];

     //PINDAH KE RECORD BERIKUTNYA

    TBBANTU.MoveBy(1);

  • 8/18/2019 Modul 6 Delphi

    4/18

    END;

    TBBANTU.Active :=FALSE;

    TBBANTU.Active :=TRUE;

     //MEROBAH LABEL 11 KE FORMAT ANGKA

    LABEL11.Caption :=FORMAT('%16.2M',[TOTAL]);

    END;

    PROCEDURE TFORM5.KOSONGKAN_TABEL_BANTU;

    VAR

    I:INTEGER;

    BEGIN

    TBBANTU.Active :=FALSE;

    TBBANTU.Active:=TRUE;

    FOR I:=1 TO TBBANTU.RecordCount DO

    BEGIN

    TBBANTU.Delete;

    END;

    END;

    procedure TForm5.FormShow(Sender: TObject);

    begin

    EDIT1.Clear;

    EDIT2.Clear;

    EDIT3.Clear;

    EDIT4.Clear;

    EDIT5.Clear;

    EDIT6.Clear;

    EDIT7.Clear;

    DateTimePicker1.Date:=DATE;

    DateTimePicker1.Enabled :=FALSE;

    EDIT2.Enabled :=FALSE;

    EDIT3.Enabled :=FALSE;

  • 8/18/2019 Modul 6 Delphi

    5/18

    EDIT4.Enabled :=FALSE;

    EDIT5.Enabled :=FALSE;

    EDIT6.Enabled :=FALSE;

    EDIT7.Enabled :=FALSE;

     //memanggil prosedure Kosongkan tabel bantu

    KOSONGKAN_TABEL_BANTU;

     //Memformat Nilai Data Dari label 11

    label11.Caption :=format('%16.2m',[0.0])

    end;

    procedure TForm5.Edit1KeyPress(Sender: TObject; var Key: Char);

    VAR

    CARI:BOOLEAN;

    begin

    IF KEY=#13 THEN

    BEGIN

    TBJUAL.Active :=FALSE;

    TBJUAL.Active :=TRUE;

    CARI:=TBJUAL.FindKey([EDIT1.TEXT]);

    IF CARI THEN

    BEGIN

    MessageDlg('NOMOR FAKTUR SUDAH TERDAFTAR',mtWarning,[MBOK],0);

    EDIT1.SetFocus;

    END

    ELSE

    BEGIN

    DateTimePicker1.Enabled :=TRUE;

    DateTimePicker1.SetFocus;

    END;

    END;

    end;

  • 8/18/2019 Modul 6 Delphi

    6/18

    procedure TForm5.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);

    begin

    IF KEY=#13 THEN

    BEGIN

    DBGrid1.SetFocus;

    END;

    end;

    procedure TForm5.DBGrid1DblClick(Sender: TObject);

    begin

     //PINDAHKAN DATA DARI TABEL BARANG KE OBJEK EDIT 

    EDIT2.Text:=TBBARANG['KDBRG'];

    EDIT3.Text:=TBBARANG['NMBRG'];

    EDIT5.Text:=FLOATTOSTR(TBBARANG['HRGBRG']);

    EDIT6.Enabled :=TRUE;

    EDIT6.SetFocus

    end;

    procedure TForm5.Edit2Change(Sender: TObject);

    VAR

    CARI:BOOLEAN;

    begin

     //Menampilkan Jumlah stock barang pada edit4

    TBSTOCK.Active :=FALSE;

    TBSTOCK.Active :=TRUE;

    CARI:=TBSTOCK.FindKey([EDIT2.TEXT]);

    IF CARI THEN

    BEGIN

    EDIT4.Text:=TBSTOCK['STOCK'];

    END;

  • 8/18/2019 Modul 6 Delphi

    7/18

    end;

    procedure TForm5.Edit6KeyPress(Sender: TObject; var Key: Char);

    VAR

    UJI:INTEGER;

    begin

    IF KEY=#13 THEN

    BEGIN

     //UJI APAKAH YANG DIINPUT ANGKA ATAU TIDAK 

    TRY

    UJI:=STRTOINT(EDIT5.Text);

     //KALAU YANG DIINPUT ANGKA

    EDIT7.Enabled :=TRUE;

    EDIT7.SetFocus;

    EXCEPT 

     //KALAU YANG DIINPUT BUKAN ANGKA

    MessageDlg('INPUTKAN ANGKA ATAU NUMERIC',mtWarning,[MBOK],0);

    EDIT6.SetFocus;

    END;

    end;

    END;

    procedure TForm5.Edit7KeyPress(Sender: TObject; var Key: Char);

    VAR

    UJI:INTEGER;

    begin

    IF KEY=#13 THEN

    BEGIN

     //UJI APAKAH YANG DIINPUT ANGKA ATAU TIDAK 

    TRY

    UJI:=STRTOINT(EDIT7.Text);

  • 8/18/2019 Modul 6 Delphi

    8/18

     //KALAU YANG DIINPUT ANGKA

    BUTTON1.Enabled :=TRUE;

    Button1.SetFocus;

    EXCEPT

     //KALAU YANG DIINPUT BUKAN ANGKA

    MessageDlg('INPUTKAN ANGKA ATAU NUMERIC',mtWarning,[MBOK],0);

    EDIT7.SetFocus;

    END;

    end;

    end;

    procedure TForm5.Button1Click(Sender: TObject);

    VAR

    CARI:BOOLEAN;

    begin

    TBBANTU.Active :=FALSE;

    TBBANTU.Active :=TRUE;

     //lihat apakah barang yang diinputkan sudah terdaftar atau belum

    CARI:=TBBANTU.FindKey([EDIT2.TEXT]);

    IF CARI THEN

    BEGIN

     //Jika sudah terdaftar lakukan pengeditan data

    TBBANTU.EDIT;

    TBBANTU['KDBRG']:=EDIT2.Text;

    TBBANTU['NMBRG']:=EDIT3.Text;

    TBBANTU['HRGJUAL']:=STRTOFLOAT(EDIT6.Text);

    TBBANTU['JMLJUAL']:=STRTOFLOAT(EDIT7.Text);

    TBBANTU['TOTAL']:=STRTOFLOAT(EDIT6.Text)*STRTOFLOAT(EDIT7.Text);

    TBBANTU.Post;

    END

    ELSE

  • 8/18/2019 Modul 6 Delphi

    9/18

    BEGIN

     //jika belum terdaftar simpan data baru

    TBBANTU.Append;

    TBBANTU['KDBRG']:=EDIT2.Text;

    TBBANTU['NMBRG']:=EDIT3.Text;

    TBBANTU['HRGJUAL']:=STRTOFLOAT(EDIT6.Text);

    TBBANTU['JMLJUAL']:=STRTOFLOAT(EDIT7.Text);

    TBBANTU['TOTAL']:=STRTOFLOAT(EDIT6.Text)*STRTOFLOAT(EDIT7.Text);

    TBBANTU.Post;

    end;

    EDIT2.Clear ;

    EDIT3.Clear ;

    EDIT4.Clear ;

    EDIT5.Clear ;

    EDIT6.Clear ;

    EDIT7.Clear ;

     // memanggil prosedure total penjualan

    TOTAL_PENJUALAN;

    END;

    procedure TForm5.Button2Click(Sender: TObject);

    begin

    EDIT2.Clear ;

    EDIT3.Clear ;

    EDIT4.Clear ;

    EDIT5.Clear ;

    EDIT6.Clear ;

    EDIT7.Clear ;

    end;

    procedure TForm5.Button3Click(Sender: TObject);

    var

  • 8/18/2019 Modul 6 Delphi

    10/18

    cari:boolean;

    begin

    TBBANTU.Active :=false;

    TBBANTU.Active:=true;

     //-----------------------------------------

     //Baca Tabel Bantu Dari Awal Sampai Akhir 

     //-----------------------------------------

    while not TBBANTU.Eof  do

    begin

     //-------------------------------------------------

     //Simpan Data Dari Tabel bantu Ke Tabel Transaksi 

     //-------------------------------------------------

    TBJUAL.Active :=true;

    TBJUAL.Append;

    TBJUAL['nofaktur']:=edit1.Text;

    tbjual['tglfaktur']:=DateTimePicker1.Date;

    TBJUAL['kdbrg']:=TBBANTU['kdbrg'];

    TBJUAL['hrgjual']:=TBBANTU['hrgjual'];

    TBJUAL['jmljual']:=TBBANTU['jmljual'];

    TBJUAL.Post;

    TBJUAL.Active :=false;

     //lakukan pencarian data pada tabel stock 

    TBSTOCK.Active :=true;

    cari:=TBSTOCK.FindKey([tbbantu['kdbrg']]);

    if  cari then

    begin

     //edit data yang ada pada tabel stock 

     //kurangi jumlah barang pada stock dengan jumlah barang yg dijual 

    TBSTOCK.Edit;

    TBSTOCK['kdbrg']:=TBBANTU['kdbrg'];

    TBSTOCK['stock']:=TBSTOCK['stock']-TBBANTU['jmljual'];

  • 8/18/2019 Modul 6 Delphi

    11/18

    TBSTOCK.Post;

    TBSTOCK.Active :=false;

    end;

    TBBANTU.MoveBy(1);

    end;

    FormShow(sender);

    Edit1.SetFocus;

    end;

    procedure TForm5.Button4Click(Sender: TObject);

    begin

    FormShow(sender);

    edit1.SetFocus;

    end;

    procedure TForm5.Button5Click(Sender: TObject);

    begin

    close;

    end;

    end.

    MEMBUAT LAPORAN PENJULAN PER TANG