Selasa, 19 April 2011


MEMBUAT PROGRAM DELPHI SEDERHANA
LISTING PROGRAM
procedure TForm1.FormCreate(Sender: TObject);
begin
  Combobox1.Items.Add('MI');
  Combobox1.Items.Add('KA');
  Combobox1.Items.Add('TK');
  edit3.Text:='';
  edit4.Text:='';
  edit5.Text:='';
  edit6.Text:='';
  edit7.Text:='0';
  shortdateformat:='dd-mmmm-yyyy';
  edit2.Text:=datetostr(date);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit1.Text:=timetostr(time);
end;

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  if combobox1.Text='MI'then
  edit5.Text:='Management Informatika'
  else
  if combobox1.Text='KA'then
  edit5.Text:='Komputer Akutansi'
  else
  edit5.Text:='Tehnik Komputer'
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  if radiobutton1.checked=true then
  radiobutton2.checked:=false;
  edit7.Text:='1180000'; 
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  if radiobutton2.checked=true then
  radiobutton1.Checked:=false;
  edit7.Text:='980000';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  edit3.Text:='';
  edit4.Text:='';
  edit5.Text:='';
  edit6.Text:='';
  edit7.Text:='0';
  edit3.SetFocus;
COMBOBOX1.Text:='';
Radiobutton1.checked:=false;
  Radiobutton2.checked:=false;
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
 if(application.MessageBox('Anda Yakin Ingin Keluar???','Informasi',
  MB_Yesno+MB_iconwarning)=idyes)then
  close
end;
end.

Sabtu, 26 Maret 2011

Membuat report + Rave pada Delphi7

Karena project Perpustakaan sebelumnya sudah dibuat, pada modul 2. Membuat menu, maka pada kesempatan ini adalah melengkapi frmanggota yaitu dengan cara:
1. Mengaktifkan Delphi 7.0 dengan cara, klik Start, Klik All Program, Klik Borland Delphi 7, Klik Delphi 7.
2. Klik menu File, klik Open Project, tentukan folder tempat anda menyimpan project PRjpustaka, lalu klik prjpustaka dan klik open
3. Klik Menu file, Klik New, klik form, ganti caption pada properties dengan Cetak Data Anggota, dan pada name ketikkan frmcetakanggota.
4. Klik menu View, lalu klik forms dan double klik frmenu, klik file pada frmmenu, klik anggota dan ketikkan :
frmcetakanggota.show;
5. Klik menu View, lalu klik forms dan double klik frmcetakanggota, lengkapi form tersebut seperti gambar berikut :
Gambar 1. Membuat form Cetak Buku Per Penerbit

Catatan :
Form diatas terdiri dari :
Groupbox, Edit1 dan label1
Ado connection, ADoQuery dan Dataset
Button1 untuk cetak dan Button2 untuk Cancel
Untuk membuat laporan kita menggunakan dua komponen pallete RAVE yaitu
RVProject dan RVDataSetConnection
6. Mengkoneksikan database
Klik ADOQuery1 pada Form, klik ConnectionString (…), klik Build, Klik Microsoft Office 12.0 Acces Database Engine OLEDB Provider (untuk office 2007) tetapi kalau menggunakan office XP dapat dipilih Microsoft jet OLEDB 4.0, test connection
Dan klik next, pada data source ketikkan : D:\perpustakaan\perpustakaan.accdb, dan yang terakhir klik test connection. Apabila test connection tampil keterangan tes connection succeeded, maka koneksinya sudah benar, tutup semua windows koneksi dengan cara klik OK. kembali ke frmCetakanggota.
7. Masih pada Adoquery1, klik SQL pada properties, lalu ketikkan :
select * From anggota
Dan Klik Active pada properties ganti false menjadi true.
8. Mengaktifkan DataSource, yaitu dengan cara klik Datasource pada form anggota, lalu klik Dataset pilih Adoquery1
9. Mengkoneksikan RVDataSetConnection dengan dataset, dengan cara klik RVDataSetConnection, pada properties klik Dataset, lalu pilih AdoQuery1
Langkah-langkah membuat laporan dengan menggunakan RAVE Klik Disini… Klik Disinisi… untuk Rave
Setelah selesai membuat Report dengan Rave dilanjutkan dengan
10. Kembali Menu Project Delphi pada form Cetak
11. Klik RVProject1, lalu pada properties klik ProjectFile, Klik tombol titik-titik, pilih file report yang akan ditampilkan (PRJanggota.rav) dan klik OK
12. Selanjutnya adalah Double klik pada tombol Cetak dan ketikkan koding sebagai berikut :
01procedure TForm1.Button1Click(Sender: TObject);
02begin
03adoquery1.Close;
04adoquery1.SQL.Clear;
05adoquery1.SQL.add('select * from Penerbit,buku where penerbit.id_penerbit = buku.id_penerbit and  buku.id_penerbit = "'+ edit1.Text +'"');
06adoquery1.Open;
07if not adoquery1.Eof then
08begin
09  rvproject1.Execute;
10  rvproject1.ExecuteReport('prjbukupenerbit.rav');
11end
12else
13  showmessage('Data tidak ditemukan');
14end;

Membuat Reeport dengan Rave

Karena project Perpustakaan sebelumnya sudah dibuat, pada modul 2. Membuat menu, maka pada kesempatan ini adalah melengkapi frmanggota yaitu dengan cara:
  1. Mengaktifkan Delphi 7.0 dengan cara, klik Start, Klik All Program, Klik Borland Delphi 7, Klik Delphi 7.
  2. Klik menu File, klik Open Project, tentukan folder tempat anda menyimpan project PRjpustaka, lalu klik prjpustaka dan klik open
  3. Klik Menu file, Klik New, klik form, ganti caption pada properties dengan Cetak  Data Anggota, dan pada name ketikkan frmcetakanggota.
  4. Klik menu View, lalu klik forms dan double klik frmenu, klik file pada frmmenu, klik anggota dan ketikkan :
  5. frmcetakanggota.show;
  6. Klik menu View, lalu klik forms dan double klik frmcetakanggota, lengkapi form tersebut seperti gambar berikut :
Gambar 1. Membuat form Cetak Anggota

Catatan :
Form disamping terdiri dari :
Ado connection, ADoQuery dan Dataset
Button1 untuk cetak dan Button2 untuk Cancel
Untuk membuat laporan kita menggunakan dua komponen pallete RAVE yaitu :
RVProject dan RVDataSetConnection
Mengkoneksikan database


  • Klik ADOQuery1 pada Form, klik ConnectionString (…), klik Build, Klik Microsoft Office 12.0 Acces Database Engine OLEDB Provider (untuk office 2007) tetapi kalau menggunakan office XP dapat dipilih Microsoft jet OLEDB 4.0, test connection




  • Dan klik next, pada data source ketikkan : D:\perpustakaan\perpustakaan.accdb, dan yang terakhir klik test connection. Apabila test connection tampil keterangan tes connection succeeded, maka koneksinya sudah benar, tutup semua windows koneksi dengan cara klik OK. kembali ke frmCetakanggota.




  • Masih pada Adoquery1, klik SQL pada properties, lalu ketikkan :



  • select * From anggota
    Dan Klik Active pada properties ganti false menjadi true.

  • Mengaktifkan DataSource, yaitu dengan cara klik Datasource pada form anggota, lalu klik Dataset pilih Adoquery1




  • Mengkoneksikan RVDataSetConnection  dengan dataset, dengan cara klik RVDataSetConnection, pada properties klik Dataset, lalu pilih AdoQuery1




  • Langkah-langkah membuat laporan dengan menggunakan RAVE

    1. Klik menu Tools pada delphi, klik RAVE designer
    2. Klik file, Klik New
    3. Klik File, Klik New Data Object
    4. Klik Direct Dataview
    5. Apabila sebelumnya pernah membuat laporan dengan rave, maka akan ditampilkan pesan “Warning! Duplicate Design-time Data Connections found with name “RvDataSetConnection1”. Lalu klik Ok dan klik tombol Next
    6. Klik finish
    7. Klik RVDatasetconnection1 (DT), lalu Klik Finish
    8. Untuk  memastikan data yang akan dibuatkan reportnya dapat dilihat pada sudut kanan lembar kerja Rave yaitu seperti gambar berikut, dengan cara klik Data view Dictionary, Klik Dataview.
    9. Klik menu tools pada Rave, lalu klik Report Wizard, Klik Simple Table
    10. Klik Dataview1 dan Klik Next, Klik All (untuk mengikutsertakan seluruh data yang ada pada table) atau klik field tertentu saja yang akan ditampilkan, lalu klik Next, Klik Next, Klik next dan yang terakhir klik Generate
    11. Untuk melihat hasil report dapat diklik menu File pada RAVE, lalu klik Execute report1 dan Klik OK
    12. Tutup laporan
    13. Klik Menu file pada RAVE, lalu Klik Save As, perintah ini untuk menyimpan Report, tentukan folder sama dengan project Delphi disimpan, beri nama file dengan nama PRJAnggota.rav, lalu Klik Save
    10.  Kembali Menu Project Delphi
    11.  Klik RVProject1, lalu pada properties klik ProjectFile, Klik tombol titik-titik, pilih file report yang akan ditampilkan (PRJanggota.rav) dan klik OK
    12.  Selanjutnya adalah Double klik pada tombol Cetak dan ketikkan koding sebagai berikut :
    01procedure TFrmCetBuku.Button1Click(Sender: TObject);
    02begin
    03adoquery1.Close;
    04adoquery1.SQL.clear;
    05adoquery1.SQL.Add('select kode, judulbuku from Anggota');
    06adoquery1.Open;
    07adoquery1.Active := true;
    08RVproject1.Execute;
    09RVproject1.ExecuteReport('prjbuku.rav');
    10end;

    Membuat Nomor peminjaman secara otomatis pada Form Transaksi peminjaman buku secara otomatis pada Delphi7+ Ms.Access2007

    Karena project Perpustakaan sebelumnya sudah dibuat dan From peminjaman pun sudah dibuat pada modul 8. Klik disini , maka pada kesempatan ini adalah melengkapi frmpinjam yaitu dengan cara:
    Membuat nomor pinjam secara otomatis yang terdiri dari 9 digit yang dihasilkan dengan proses :
    Dua digit pertama adalah tahun
    Dua digit kedua adalah bulan
    Lima digit terakhir adalah nomor urut
    Sehingga menghasilkan nomor : 100100001
    Adapun langkah-langkahnya adalah :
    1. Membuat fungsi rightstr dengan cara mengetikan koding secara langsung diluar procedure di bawah implementation.
    // Membuat Fungsi Left, right, mid String
    //sumber : Klik disini
    01
    02implementation
    03
    04{$R *.dfm}
    05function RightStr
    06    (Const Str: String; Size: Word): String;
    07begin
    08  if Size > Length(Str) then Size := Length(Str) ;
    09  RightStr := Copy(Str, Length(Str)-Size+1, Size)
    10end;
    11
    12function MidStr
    13    (Const Str: String; From, Size: Word): String;
    14begin
    15  MidStr := Copy(Str, From, Size)
    16end;
    17
    18function LeftStr
    19    (Const Str: String; Size: Word): String;
    20begin
    21  LeftStr := Copy(Str, 1, Size)
    22end;
    2. Membuat koding pada Form Create sebagai berikut :
    01procedure TFrmPinjam.FormCreate(Sender: TObject);
    02var i,nomor: integer;
    03nom,no : string;
    04begin
    05
    06//Membuat Nomor peminjaman secara otomatis
    07decodedate(date,Thn,Bln,hari);
    08adoquery5.Close;
    09adoquery5.SQL.clear;
    10adoquery5.SQL.add('Select * from pinjam');
    11adoquery5.open;
    12if adoquery5.RecordCount = 0 then
    13  nomor := 1
    14else
    15begin
    16nom := rightstr(inttostr((adoquery5.fields[0].AsInteger)),5);
    17nomor := strtoint(nom) + 1;
    18end;
    19no:='0';
    20for i := 1 to (4 - length(inttostr(nomor))) do
    21begin
    22  no := no + '0';
    23end;
    24edit1.text := rightstr(inttostr(thn),2) + rightstr(('0'+inttostr(bln)),2)+no+ inttostr(nomor);
    25
    26//untuk menghitung tanggal tempo
    27decodedate(date,Thn,Bln,hari);
    28hari := hari + 5;
    29tanggal := encodedate(thn,bln,hari);
    30edit2.Text := formatdatetime('DD/MM/yyyy',tanggal) ;
    31sg.RowCount :=1;
    32sg.ColCount:=5;
    33sg.Cells[0,0]:='No';
    34sg.Cells[1,0]:='Kode Buku';
    35sg.Cells[2,0]:='Judul buku';
    36sg.Cells[3,0]:='Pengarang';
    37sg.Cells[4,0]:='Qty';
    38
    39sg.ColWidths [0]:=40;
    40sg.ColWidths [1]:=60;
    41sg.ColWidths [2]:=80;
    42sg.Colwidths[3]:=80;
    43sg.colwidths[4]:=60;
    44
    45end;

    Membuat Form Transaksi pengembalian buku pada Delphi7+Ms.Accsess2007

    Karena project Prjpustaka sebelumnya sudah dibuat, pada modul 4.
    Membuat menu
    , maka pada kesempatan ini adalah melengkapi frmkembali yaitu dengan cara:
    1. Mengaktifkan Delphi 7.0 dengan cara, klik Start, Klik All Program, Klik Borland Delphi 7, Klik Delphi 7.
    2. Klik menu File, klik Open Project, tentukan folder tempat anda menyimpan project PRjpustaka, lalu klik prjpustaka dan klik open
    3. Klik Menu file, Klik New, klik form, ganti caption pada properties dengan Input Data Transaksi Pengembalian, dan pada name ketikkan frmkembali.
    4. Klik menu View, lalu klik forms dan double klik frmenu, klik Transaksi pada frmmenu, klik Pengembalian dan ketikkan :
    frmkembali.show;
    5. Klik menu View, lalu klik forms dan double klik frmkembali, lengkapi form tersebut seperti gambar berikut :
    Gambar 1. Membuat form Transaksi Pengembalian Buku

    Adapun koding selengkapnya adalah :
    a. Buatlah variable seperti di bawah ini :
    b. Membuat Koding pada Form Activate
    procedure TFrmKembali.FormActivate(Sender: TObject);
    begin
    edit1.SetFocus;
    end;
    c. Membuat Koding pada Form Create
    01procedure TFrmKembali.FormCreate(Sender: TObject);
    02begin
    03edit1.Text :='';
    04edit6.Text := '1000';
    05edit2.Enabled := false;
    06edit3.Enabled := false;
    07edit4.Enabled := false;
    08edit5.Enabled := false;
    09edit6.Enabled := false;
    10edit7.Enabled := false;
    11edit8.Enabled := false;
    12datetimepicker1.Enabled := false;
    13end;
    d. Buat koding pada edit1 dengan menggunakan event on keypress
    01procedure TFrmKembali.Edit1KeyPress(Sender: TObject; var Key: Char);
    02var tgl :tdatetime;
    03begin
    04if key=#13 then
    05begin
    06adoquery1.Close;
    07adoquery1.SQL.Clear;
    08adoquery1.SQL.add('Select * from pinjam where id_pinjam="'+ edit1.Text +'"');
    09adoquery1.open;
    10if not adoquery1.Eof then
    11begin
    12 
    13  //menghitung tanggal tempo
    14  decodedate(datetimepicker1.DateTime,thn,bln,hari);
    15  hari := hari + 5;
    16  tanggal := encodedate(thn,bln,hari);
    17  edit2.Text := formatdatetime('dd/mm/yyyy',tanggal);
    18 
    19  edit3.Text := adoquery1.Fields[1].AsString;
    20  tgl := adoquery1.Fields[3].AsDateTime;
    21  if datetostr(tgl)  <> ''  then
    22  begin
    23    button1.Enabled := false;
    24    datetimepicker2.enabled := false;
    25    showmessage('Buku Sudah dikembalikan');
    26  end;
    27 
    28  datetimepicker1.Date := adoquery1.Fields[2].AsDateTime;
    29  datetimepicker2.date := adoquery1.fields[3].asdatetime;
    30 
    31  //menselect data pada id anggota
    32  adoquery2.close;
    33  adoquery2.SQL.clear;
    34  adoquery2.SQL.add('select * from Anggota where id_Anggota = "'+ edit3.Text +'"');
    35  adoquery2.Open;
    36  if not adoquery2.Eof then
    37  begin
    38    edit4.text := adoquery2.Fields[1].AsString;
    39    edit5.Text := adoquery2.Fields[2].AsString;
    40  end;
    41 
    42  //menampilkan data buku pada datagrid
    43  adoquery3.Close;
    44  adoquery3.SQL.Clear;
    45  adoquery3.SQL.add('select dpinjam.id_pinjam,dpinjam.id_buku,buku.judulbuku,jumlah from dpinjam,buku where dpinjam.id_buku = buku.kode and id_pinjam ="' + edit1.Text +'"');
    46  adoquery3.open;
    47  if not adoquery3.eof then
    48  datasource1.dataset := adoquery3;
    49  DBGrid1.DataSource := datasource1;
    50end
    51else
    52  showmessage('data tidak ditemukan');
    53 
    54end;
    55end;
    e. Membuat koding pada datetimepicker2 dengan menggunakan event change
    01procedure TFrmKembali.DateTimePicker2Change(Sender: TObject);
    02begin
    03edit8.text:='0';
    04edit7.Text :='0';
    05tgl1 := datetimepicker1.Date;
    06tgl2 := datetimepicker2.date;
    07if (tgl2 > tanggal) then
    08begin
    09lama :=trunc(tgl2 - tgl1);
    10edit7.Text := inttostr(lama);
    11edit8.text := inttostr(strtoint(edit6.text) * lama);
    12end
    13else
    14edit7.Text := '0';
    15end;
    f. Membuat koding pada tombol prosess button1
    procedure TFrmKembali.Button1Click(Sender: TObject);
    begin
    01adoquery1.Close;
    02adoquery1.SQL.clear;
    03adoquery1.SQL.add('update pinjam set tgl_kembali = "'+ datetostr(datetimepicker2.date)+'", tgl_tempo = "'+ edit2.text +'" where id_pinjam ="'+ edit1.text +'"');
    04adoquery1.ExecSQL;
    05showmessage('Data Sudah terupdate');
    06edit1.Text := '';
    07edit2.text := '';
    08edit3.text := '';
    09edit4.text := '';
    10edit5.text := '';
    11edit6.text := '';
    12edit7.text := '';
    13edit8.text := '';
    14end;