Sunday, September 25, 2016

Jika agan2 mendapatkan soal tes pemrograman delphi kira-kira begini

Buatlah Sebuah Program untuk menyimpan suatu produk penjualan dengan ketentuan
1. Buat tabel Produk
2. Buat tabel dengan isian field sbb:

  • Kode Produk , nama field : KDPRD, Tipe data : Text/Varchar
  • Merek, nama field : MERK, Tipe data : Text/Varchar
  • Satuan, nama field : SATUAN, Tipe data : Text/Varchar
  • Jumlah, nama field : JUMLAH, Tipe data : Number/int/integer
  • Harga, nama field : HARGA, Tipe data : Number/int/integer
3. Buat Desain Form terserah anda
4. Buat Menu untuk INPUT, UPDATE, DELETE, BATAL, KELUAR, CETAK
6. Buat Ketentuan pilihan otomatisasi dari kode produknya jika:
    Jenis :
  • kode produk 001-XXX-XXX, Minuman
  • kode produk 002-XXX-XXX, Makanan
  • kode produk 003-XXX-XXX, Elektronik
  • kode produk 004-XXX-XXX, Deterjen
  • kode produk 005-XXX-XXX, Rokok
  • kode produk 006-XXX-XXX, Alat Tulis
    Posisi :
  • kode produk XXX-001-XXX, Rak I
  • kode produk XXX-002-XXX, Rak II
  • kode produk XXX-003-XXX, Rak III
  • kode produk XXX-004-XXX, Rak IV
  • kode produk XXX-005-XXX, Rak V
  • kode produk XXX-006-XXX, Rak VI 
7. Output yang diinginkan dan dibuat laporannya kira-kira seperti dibawah ini:


Jawaban:
Agan-agan jangan dibawa pusing ya nich soal cukup rilex aja mengerjakannya,, cuman memutar logika saja

Cukup sederhana saja, paling gampang buat aja menggunakan database MS.Acces karena tidak disebutin Databasenya apa
Buat Query baru beri nama Tampil_Laporan
nah setelah field satuan, klik aja builder pada MS.Accesnya saat query desain
isikan :
Jenis: IIf(Left([Produk]![KDPRD];3)="001";"Minuman";IIf(Left([Produk]![KDPRD];3)="002";"Makanan";IIf(Left([Produk]![KDPRD];3)="003";"Elektronik";IIf(Left([Produk]![KDPRD];3)="004";"Deterjen";IIf(Left([Produk]![KDPRD];3)="005";"Rokok";"Alat Tulis")))))

pada kolom sebelahnya isikan:
Posisi Rak: IIf(Mid([Produk]![KDPRD];5;3)="001";"Rak I";IIf(Mid([Produk]![KDPRD];5;3)="002";"Rak II";IIf(Mid([Produk]![KDPRD];5;3)="003";"Rak III";IIf(Mid([Produk]![KDPRD];5;3)="004";"Rak IV";IIf(Mid([Produk]![KDPRD];5;3)="005";"Rak V";"Rak VI")))))

Berikutnya kita akan mendesain dan mengcoding programnya :
Desain tampilan kira-kira begini ato terserah agan gimana bagusnya
Jangan Lupa itu komponen ado dan data sourcenya

AdoQuery1, diisi sqlnya begini SELECT * FROM Tampil_Laporan
AdoQuery2, itu kosong karena sebagai Temp hanya untuk mengeksekusi sql insert/update/delete

Sebelum MEncoding tambahkan dulu di usesnya "Comobj" seperti gambar dibawah ini:
Lalu Deklarasikan Procedure di public
    procedure bersihkan;
    procedure BukaDB;
    procedure segarkan;
Terlihat seperti gambar dibawah ini

Isi dari prosedur diatas codingnya seperti ini:
//Untuk procedure BukaDB:
procedure TForm1.BukaDB;
Var a : String;
begin
  GetDir(0,a);
  ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+a+'\ULAB_JEAN RIKO KURNIAWAN PUTRA_132.mdb;Mode=Share Deny Read|Share Deny Write;Persist Security Info=False';
  ADOConnection1.LoginPrompt:=False;
  ADOConnection1.Connected:=true;
  ADOConnection1.ConnectionTimeout:=15;
  ADOConnection1.ConnectOptions:=coConnectUnspecified;
  ADOConnection1.CursorLocation:=clUseClient;
  ADOConnection1.Mode:=cmShareExclusive;
  ADOQuery1.Active:=True;
end;

NB : ULAB_JEAN RIKO KURNIAWAN PUTRA_132.mdb ---> ini nama DB yang ane buat

//Untuk procedure bersihkan: 
procedure TForm1.bersihkan;
begin
  Edit1.Clear;
  Edit2.Clear;
  Edit3.Clear;
  Edit4.Clear;
  Edit5.Clear;

end;

//Untuk procedure segarkan: 
procedure TForm1.segarkan;
begin
  ADOQuery1.Active:=False;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM Tampil_Laporan');
  ADOQuery1.Active:=True;
end;



Pada Button Input Codingnya seperti ini:
procedure TForm1.Button1Click(Sender: TObject);
Var Insrt : String;
begin
  if Edit1.Text='' then begin
    Beep;
    Edit1.SetFocus;
  end
  else if Edit2.Text='' then begin
    Beep;
    Edit2.SetFocus;
  end
  else if Edit3.Text='' then begin
    Beep;
    Edit3.SetFocus;
  end
  else if Edit4.Text='' then begin
    Beep;
    Edit4.SetFocus;
  end
  else if Edit5.Text='' then begin
    Beep;
    Edit5.SetFocus;
  end
  else begin
    With ADOQuery2 Do Begin
      SQL.Clear;
      Insrt:='INSERT INTO Produk(KDPRD,MERK,SATUAN,JUMLAH,HARGA) VALUES('+QuotedStr(Edit1.Text)+','+
      QuotedStr(Edit2.Text)+','+QuotedStr(Edit3.Text)+','+QuotedStr(Edit4.Text)+','+QuotedStr(Edit5.Text)+')';
      SQL.Text:=Insrt;
      ExecSQL;
    End; // end with
    bersihkan;
    segarkan;
    Edit1.SetFocus;
  end; // end else

end;

Pada Button Update Codingnya Seperti ini:
procedure TForm1.Button2Click(Sender: TObject);
begin
if Edit1.Text='' then begin
    Beep;
    Edit1.SetFocus;
  end
  else begin
    With ADOQuery2 do Begin
      close;
      sql.Clear;
      sql.Add('UPDATE Produk SET MERK = "' + Edit2.Text +
      '", SATUAN="' + Edit3.Text +
      '", JUMLAH="' + Edit4.Text +
      '", HARGA="' + Edit5.Text +
      '" WHERE KDPRD="' + Edit1.Text + '"');
      ExecSQL;
    End; //end with
  end; //end else
  Segarkan;
  bersihkan;
  Edit1.SetFocus;
end;

Pada Button Delete Codingnya Seperti ini:
procedure TForm1.Button3Click(Sender: TObject);
begin
if Edit1.Text='' then begin
    Beep;
    Edit1.SetFocus;
  end
else begin
  if MessageDlg('Yakin Hapus Data Dengan kode Produk : "'+Edit1.Text+'" ?',mtinformation,[mbyes,mbno],0) =mryes then begin
    With adoquery2 do Begin
      close;
      sql.Clear;
      sql.Add('DELETE FROM Produk WHERE KDPRD="' + Edit1.Text + '"');
      ExecSQL;
    End; //End With
    Bersihkan;
    segarkan;
    Edit1.SetFocus;
  end;  //End if
end; //else

end;

Pada Button Batal Codingnya Seperti ini:
procedure TForm1.Button4Click(Sender: TObject);
begin
  bersihkan;
  segarkan;
  Edit1.SetFocus;
end;

Pada Button Cetak Codingnya Seperti ini:
procedure TForm1.Button5Click(Sender: TObject);
var i,x:integer;
    Sfile:string;
begin
// buka excel
XlApp := CreateOleObject('Excel.Application');
// tambahkan workbook
XlBook := XlApp.WorkBooks.Add;
// tambahkan worksheet
XlSheet := XlBook.worksheets.add;
//untuk mengubah lebar kolom bisa dilakukan dengan cara dibawah ini
XlSheet.Cells[1,1].ColumnWidth := 4;
XlSheet.Cells[1,2].ColumnWidth := 13;
XlSheet.Cells[1,3].ColumnWidth := 15;
XlSheet.Cells[1,4].ColumnWidth := 8;
XlSheet.Cells[1,5].ColumnWidth := 8;
XlSheet.Cells[1,6].ColumnWidth := 12;
XlSheet.Cells[1,7].ColumnWidth := 17;
XlSheet.Cells[1,8].ColumnWidth := 12;
XlSheet.Cells[1,9].ColumnWidth := 10;
//cetak judul header menual
XlSheet.Cells[1,1].Value:='DAFTAR PRODUK';
//cetak header field dari dbgrid
for i:=0 to dbgrid1.FieldCount-1 do
begin
XlSheet.cells[3,i+2].value:=dbgrid1.columns[i].Title.Caption;
XlSheet.cells[3,1].value:='NO';
end;
// transfer data ke excel
ADOQuery1.First;
x:=1;
while not ADOQuery1.Eof do
begin
for i:=0 to dbgrid1.FieldCount-1 do
begin
XlSheet.cells[3+x,1].value:=x;
XlSheet.cells[3+x,i+2].value:=dbgrid1.Fields[i].Text;
end;
ADOQuery1.Next;
inc(x);
end;

//menampilkan aplikasi //XlApp.visible:=true;

//script dibawah ini untuk dialog disimpan atau ditampilkan

  if MessageDlg('Apakah hasil export ditampilkan..?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
    MessageDlg('Hasil Ditampilkan', mtInformation,
      [mbOk], 0);
       XlApp.visible:=true;
  end
  else
  //simpan ke file
  begin
    Sfile:= InputBox('Nama File', 'hasil export', 'd:\hasil.xls');
    XlApp.ActiveWorkbook.SaveAs(sfile);
    XlApp.visible:=true;
  end

end;

Pada Button Keluar Codingnya Seperti ini:
procedure TForm1.Button6Click(Sender: TObject);
begin
  if MessageDlg('Yakin Keluar dari program ini ?',mtinformation,[mbyes,mbno],0) =mryes then begin
    ADOConnection1.Connected:=False;
    close;
  end;
end;

Coding Untuk Anti Redudansi datanya: Terletak Pada Edit1 event OnChange
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text <> '' then begin

    with ADOQuery1 do begin
      SQL.Clear;
      SQL.Add('SELECT * FROM Produk WHERE KDPRD="'+Edit1.Text+'"');
      Open;

        if Not Eof then begin
          Edit2.Text:=FieldValues['MERK'];
          Edit3.Text:=FieldValues['SATUAN'];
          Edit4.Text:=FieldValues['JUMLAH'];
          Edit5.Text:=FieldValues['HARGA'];

          Application.MessageBox('Kode Produk Sudah Ada!' +#13+
          'Mohon Ulang Kembali!','ERORR !',MB_ICONERROR);
          Edit1.SetFocus;
        end
        else Begin
          segarkan;
        End;
    end; //End with

  end;// end if

end;

Coding pada Form event:
OnShow:
procedure TForm1.FormShow(Sender: TObject);
begin
  BukaDB;
  bersihkan;
  EDIT1.SetFocus;
end;

OnClose:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ADOConnection1.Connected:=False;
end;

Hasil Run Program


Masih Bingung juga gan ??
Silahkan sedot ini File Projectnya dan exenya DISINI
NB : Nama field ane berbeda dengan yang ada di penjelasn diatas harap disesuaikan saja!

Leave a Reply

Budayakan Berkomentar ya Agan-Agan ^_^

Subscribe to Posts | Subscribe to Comments

Welcome to My Blog

PAPAN PENGUMUMAN

Segala file yang dibagikan pada blog ini berformat 7z disarankan mengextrak filenya menggunakan aplikasi 7-zip agar tidak terjadinya file korrup.

Server Kutucugum, Partagora dan Copiapop Sudah Dihapus. Server 1 Sudah Suspend Sedang membeckup data yang masih ada ke gdrive unlimiteed.

Link Openload.co diblokir TELKOM solusi gunakan domain https://oload.info/

Grup Delphi Via Telegram
Untuk Kalian yang ingin Belajar Delphi dan Khususnya tinggal di Pekanbaru silahkan Gabung Ke Grup Telegram Delphi Pekanbaru. Adminnya Semua Admin Blog ini Link TKP : https://t.me/delphipekanbaru

Last Update

Butuh Jasa Pembuatan Program Aplikasi Tugas Akhir, Skripsi Atau Resmi?

Popular Post

- Copyright © Delphi Anime Lover | Riko Software -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -