Kamis, 22 Mei 2008
Sabtu, 17 Mei 2008
Source Code Pemrograman Delphi Client Server
Latihan UAS P.Client Server
unit unMenu;
interface
uses
Windows, Messages, SysUtils, Variants,Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, ImgList, Menus,ExtCtrls;
type
TfrMenu = class(TForm)
MainMenu: TMainMenu;
File1: TMenuItem;
ransaksi1: TMenuItem;
Report1: TMenuItem;
DataBarang1: TMenuItem;
DataPelanggan1: TMenuItem;
DataPemasok1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
ImageList1: TImageList;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
areaForm: TBevel;
procedure FormCreate(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure DataBarang1Click(Sender:TObject);
procedure DataPelanggan1Click(Sender:TObject);
procedure DataPemasok1Click(Sender:TObject);
procedure ransaksi1Click(Sender: TObject);
procedure Report1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frMenu: TfrMenu;
implementation
{$R *.dfm}
uses unBarang;
procedureTfrMenu.FormCreate(Sender: TObject);
begin
frMenu.Color:=clWindow;
frMenu.WindowState:=wsMaximized;
end;
procedureTfrMenu.Exit1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedureTfrMenu.DataBarang1Click(Sender: TObject);
var
i: integer;
tampil: boolean;
frBarang: Tfrbarang;
begin
tampil := False;
for i := 0 to MDIChildCount - 1 do
if MDIChildren[i] is TfrBarang then
begin
tampil := True;
Break;
end;
if not tampil then
begin
frBarang := TfrBarang.Create(Self);
if areaForm.Height - 4 <>
frBarang.ClientHeight := 480
else
frBarang.Height := areaForm.Height - 4;
if areaForm.Width - 4 <>
frBarang.ClientWidth := 712
else
frBarang.Width := areaForm.Width - 4;
frBarang.Show;
end
else
MDIChildren[i].Show;
DataBarang1.Enabled:=false;
end;
end.
unit UnBarang;
interface
uses
Windows, Messages, SysUtils, Variants,Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls,Buttons;
type
TfrBarang = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
Bevel1: TBevel;
ListView1: TListView;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
CboSatuan: TComboBox;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
btnadd: TButton;
btnsave: TButton;
btncancel: TButton;
btnDelete: TButton;
btnEdit: TButton;
bbClose: TBitBtn;
StatusBar1: TStatusBar;
procedure btnaddClick(Sender: TObject);
procedure bbCloseClick(Sender: TObject);
procedure btnsaveClick(Sender: TObject);
procedure btncancelClick(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure ListView1SelectItem(Sender:TObject; Item: TListItem;
Selected:Boolean);
procedure btnDeleteClick(Sender: TObject);
procedure FormClose(Sender: TObject; varAction: TCloseAction);
private
{ Private declarations }
Procedure BlankForm;
Procedure Navigasi(tombol:boolean);
Procedure SaveBarang;
Procedure ListViewRecord;
Procedure RefixData;
Procedure DeleteRecord;
Function ChechData:boolean;
public
{ Public declarations }
end;
var
frBarang: TfrBarang;
implementation
{$R *.dfm}
uses UnDmMaster;
ProcedureTfrBarang.BlankForm;
Begin
Edit1.Text :='';
Edit2.Text :='';
CboSatuan.Text :='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
end;
ProcedureTfrBarang.Navigasi(tombol:boolean);
begin
btnadd.Enabled := tombol;
btnsave.Enabled := not tombol;
btncancel.Enabled := not tombol;
btnEdit.Enabled := tombol;
btnDelete.Enabled := tombol;
bbClose.Enabled := tombol;
end;
ProcedureTfrBarang.SaveBarang;
Begin
dmMaster.ADOCommandBarang.CommandText:='insert into tBarang values ('''+
(Edit1.Text)+''','''+
(Edit2.Text)+''','''+
(CboSatuan.Text)+''','''+
(Edit3.Text)+''','''+
(Edit4.Text)+''','''+
(Edit5.Text)+''')';
dmMaster.ADOCommandBarang.Execute;
End;
function TfrBarang.ChechData:boolean;
var
pesan: string;
begin
pesan := '';
if Trim(edit1.Text) = '' then pesan := 'KodeBarang belum dimasukan.';
if pesan = '' then
Result := True
else
begin
MessageBox(Handle,PChar(pesan),'DataBarang',MB_OK + MB_ICONERROR);
Result := False;
end;
end;
procedureTfrBarang.ListViewRecord;
var
i: integer;
begin
trydmMaster.ADOQuery1.Close; except end;
dmMaster.ADOQuery1.SQL.Text:='select * fromtBarang order by kode_brg';
dmMaster.ADOQuery1.Open;
ListView1.Clear;
if dmMaster.ADOQuery1.RecordCount > 0 then
for i:=1 to dmMaster.ADOQuery1.RecordCountdo
begin
dmMaster.ADOQuery1.RecNo :=i;
with ListView1.Items.Add do
begin
Caption := IntToStr(ListView1.Items.Count);
SubItems.Add(dmMaster.ADOQuery1.Fields[0].AsString);
SubItems.Add(dmMaster.ADOQuery1.Fields[1].AsString);
SubItems.Add(dmMaster.ADOQuery1.Fields[2].AsString);
SubItems.Add(dmMaster.ADOQuery1.Fields[3].AsString);
SubItems.Add(dmMaster.ADOQuery1.Fields[4].AsString);
SubItems.Add(dmMaster.ADOQuery1.Fields[5].AsString);
end;
end;
end;
procedureTfrBarang.RefixData;
var
i: integer;
begin
for i := 1 toListView1.Items.Count do
ListView1.Items[i-1].Caption :=IntToStr(i);
end;
procedureTfrBarang.DeleteRecord;
begin
if (ListView1.Selected <> nil) and(Edit1.Text <> '') then
if MessageBox(Handle,'Hapus data barangdari sistem ?','Data Barang',MB_YESNO + MB_ICONQUESTION) = ID_YES then
begin
dmMaster.ADOCommandBarang.CommandText:= 'delete from tBarang where kode_brg= ''' + (Edit1.Text) + '''';
dmMaster.ADOCommandBarang.Execute;
ListView1.DeleteSelected;
BlankForm;
RefixData;
end;
end;
procedureTfrBarang.btnaddClick(Sender: TObject);
begin
BlankForm;
Navigasi(false);
edit1.SetFocus;
end;
procedureTfrBarang.bbCloseClick(Sender: TObject);
begin
close;
end;
procedureTfrBarang.btnsaveClick(Sender: TObject);
begin
SaveBarang;
MessageBox(Handle,'Saved..., Record','DataBarang',MB_ok + MB_ICONExclamation);
ListViewRecord;
BlankForm;
Navigasi(true);
Edit1.SetFocus;
end;
procedureTfrBarang.btncancelClick(Sender: TObject);
begin
Navigasi(true);
edit1.SetFocus;
end;
procedureTfrBarang.Edit1Exit(Sender: TObject);
begin
if Edit1.text<> '' then
begin
try dmMaster.ADOQuery1.Close; except end;
dmMaster.ADOQuery1.SQL.Text:='selectkode_brg from tBarang where kode_brg='''+(Edit1.Text)+'''';
dmMaster.ADOQuery1.Open;
if Edit1.Text=dmMaster.ADOQuery1.Fields[0].AsString then
begin
application.MessageBox('Kode barangsudah ada','Data Barang',mb_ok + mb_iconexclamation);
Edit1.Text:='';
Edit1.SetFocus;
end;
end
else
Exit;
end;
procedureTfrBarang.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
ifListView1.Selected <> nil then
begin
btnDelete.Enabled:=true;
btnEdit.Enabled:=true;
Edit1.Text :=ListView1.Selected.SubItems.Strings[0];
Edit2.Text :=ListView1.Selected.SubItems.Strings[1];
cboSatuan.Text :=ListView1.Selected.SubItems.Strings[2];
Edit3.Text:=Listview1.Selected.SubItems.Strings[3];
Edit4.Text:=Listview1.Selected.SubItems.Strings[4];
Edit5.Text:=Listview1.Selected.SubItems.Strings[5];
end;
end;
procedureTfrBarang.btnDeleteClick(Sender: TObject);
begin
DeleteRecord;
btnDelete.Enabled:=false;
btnEdit.Enabled:=false;
end;
procedureTfrBarang.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
end.
unit UnDmMaster;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TdmMaster = class(TDataModule)
ADOConnectionPenjualan: TADOConnection;
ADOCommandBarang: TADOCommand;
ADOQuery1: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
end;
var
dmMaster: TdmMaster;
implementation
{$R *.dfm}
end.
Jumat, 16 Mei 2008
MENEMUKAN DAN MENDOWNLOAD MELAUI FTP
Server FTP: Gudang Data Yang Lengkap
Pekerjaan detektif: mencari server FTP rahasia
Tidak semua sumber di Internet tersembunyi seperti server ‘pembajak’ yang rahasia. Banyak peselancar mengelola server FTP sendiri yang boleh diakses oleh pengguna web biasa. Itu juga bagus. Sebagai contoh, setiap kali sebuah game baru beredar dalam versi demo, server produsen seringkali crash akibat kebanjiran pengunjung; atau ketika ada versi baru distribusi linux, kecepatan download yang ‘normal’ sulit dicapai.
Disini,universitas dan institusi pendidikan memiliki stamina yang menganggumkan dengan saluran fixed line-nya yang cepat. Server-server di universitas masih terus mengirimkan data ketika server mirror telah lama menyerah. Meskipun demikian, sebelum mendownload anda masih harus lama mencari. Di web hanya tersedia sedikit search-engine bagus yang dapat mencari ke server-server FTP.
Situs web yang terkenal dengan layanan pencari FTP seperti Lycos (www.lycos.com) atau AllTheWeb (www.alltheweb.com) tidak dapat menemukan server yang isinya meragukan, karena tidak selalu ‘legal’. Namun, jika dioperasikan dengan tepat, search-engine ini selalu menunjukkan sebuah server download yang cepat untuk isi yang ‘legal.’
Search-engine untuk FTP berbeda dengan webcrawler. Di sini, masukkan sedapat mungkin hanya satu istilah yang tepat. Sebagai contoh,sebuah file dengan nama ‘suse7.1.bin’ tidak akan dapat ditemukan jika anda mencarinya dengan kata kunci ‘Linux AND distribution.’
Untungnya, ada spesialis search-engine FTP yang dapat menunjukkan semua server yang menyediakan download, misalnya www.reliz.ru yang menerapkan kesederhanaan seperti Geogle. Cukup masukkan satu istilah atau beberapa kata kunci, lalu klik tombol ‘search.’ Sebagai hasilnya, Reliz.ru akan menyajikan sebuah daftar link yang mengantar browser anda langsung ke file yang dicari.
MENEMUKAN LEBIH CEPAT: FTP-Indexer yang beralamat di www.reliz.ru melakukan pencarian kebanyak gudang file di Internet
Mengakali pemeriksaan akses: Cara menhemat biaya bulanan
Search-engeni Reliz.ru mempersulit pencarian pada server FTP: per hari seorang pengguna umum hanya boleh mengajukan satu permintaan pencarian ke Reliz.ru. situs ini menyimpan alamat IP anda dan mengijinkan pencarian berikutnya setelah 24 jam, kecuali jika anda bersedia membayar U$$20 (3 bulan) atau U$$35 (6 bulan). Pembatasan tersebut bukan merupakan halangan bagi sambungan Internet dial-up: putuskan saja sejenak koneksi online anda. Pada dial-up berikutnya provider anda secara otomatis akan memberikan alamat IP baru.
Layanan pencari FTP yang juga bagus antara lain ‘Napalm FTP Indexer’ dengan alamat http://search.ftphost. Net/indexer/search.htm dan www.oth.net. Layanan lain yang juga patut disarankan adalah search-engeni FTP dengan alamat www.ftpfind.com. Kekuatan layanan ini adalah tersedianya pilihan ‘Thematic Search.’ Dengan fasilitas ini,satu permintaan anda sudah dapat membatasi apakah anda mencari software untuk system operasi tertentu atau hanya ingin melihat film, musik, atau gambar. Kategori ini pun masih dapat dibagi lagi berdasarkan tipe file.
Men-download dengan nyaman: program FTP gratis terbaik
Semua website diatas tak ada gunanya bila anda tidak memiliki FTP-client. Anda memang dapat men-download file dengan browser, tetapi kurang nyaman. Program FTP gratis semakin sedikit, tetapi tool WS_FTP LE (www.ipswitch.com) atau SmartFTP (www.smartftp.com) patut anda download. Pilihan lainnya adalah Total Commander (www.ghisler.com). Di bawah windows, program ini berfungsi sebagai pengganti File-Manager yang dapat menakses server FTP.
Download melalui firewall: FTP pasif menghindari masalah
Sebuah setting penting bagi peselancar yang ingin men-download melalui proxy atau firewall adalah aktivasi pilihan ‘passive amaode’ atau ‘Passive file Transfers.’ Pada mode pasif ini, FTP-client akan membukadua hubungan yang diperlukan dengan server (satu untuk menirim perintah, satu untuk penyaluran data).pada mode aktif, client hanya membuka satu saluran untuk perintah dan menanti server membuka saluran data. Masalahnya, banyak firewall pada PC pribadi yang ‘alergi’ terhadap upaya koneksi dari luar (dalam hal ini dari server FTP) dan memblokirnya tanpa pandang bulu. Karena itu, pengguna fiewall, sepertipengguna Internet di perkantoran, sebaiknya memilih mode pasif.
Dalam Total Commander, setting untuk mengaktifkan mode pasif dapat anda temukan dibawah tab FTP. Disini anda dapt menambahkan server FTP baru pada daftar atau mengubah entri yang sudah ada melalui menu Edit. Dalam jendela ini anda hanya perlu memberi tanda di depan kolom ‘Use Passive Mode fir Transfers.’
Cepat dan mudah: Mendownload file dari server FTP
- GUDANG: Saat pertama kali dijalankan,SmartFTP secara otomatis langsung membuka jendela konfigurasi.dibawah option ‘General,’ entri direktori standar untuk menyimpan file download belum tercantum. Pilih folder yang anda inginkan. Sebaiknya entri untuk alamat e-mail anda tak perlu dikoreksi-alamat yang tercantum sudah cukup.
- KONEKSI: Buka jendela ‘Connection.’ Tingkatkan nilai dalam kolom ‘Max. Retries’ menjadi 20. ‘Retry Delay’ yang merupakan waktu tunggu antara upaya koneksi sekurangnya harus 30 detik . kurang dari itu, server FTP dapat memblokir anda dengan alas an perilakutidak sopan. Pem\ngguna firewall perlu mengaktifkan pilihan ‘Passive Mode.’
- TEMPAT KERJA: Tampilan yang serupa Explore ini adalah jendela utama SmartFTP. Dalam kolom almat masukkan URL, nama pengguna, dan password untuk server FTP yang diinginkan. Pada server dengan akses tanpa proteksi anda perlu memberi tanda di depan ‘Anonymous.’ File dapat anda copy dengan metoda Drag & Drop biasa seperti pada Windows-Explore.