Arsip

Archive for the ‘Tutorial Delphi’ Category

Trik untuk menggabungkan beberapa file txt dalam satu memo

Jika anda sering menggunakan Aplikasi Word maka ada satu fungsi untuk menempatkan file-file yang dipilih pada lembar kerja yang sedang kita buka, yaitu terdapat pada menu Insert > File, cara ini pun dapat kita buat sendiri. Untuk itu ikuti langkah-langkah berikut ini.

Siapkan aplikasi baru , lalu tambahkan komponen Memo ,Button, dan OpenDialog. Yang kira-kira formnya akan seperti ini

Gbr. Tampilan awal

Lalu setelah itu masukan kode berikut.

procedure TForm1.FormCreate(Sender: TObject);

begin

Opendialog1.Options:=[ofHideReadOnly,ofAllowMultiSelect,ofEnableSizing];

Memo1.ScrollBars:=ssBoth;

Button1.Caption:=’Buka file’;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

i : Integer ;

TempMemo1, TempMemo2 : TStringList ;

begin

Memo1.Clear;

try

Screen.Cursor:=crHourglass;

TempMemo1:=TStringList.Create;

TempMemo2:=TStringList.Create;

if Opendialog1.Execute then

begin

with Opendialog1, TempMemo1 do

for i:=0 to Files.Count-1 do

begin

Clear;

LoadFromFile(Files.Strings[i]);

TempMemo2.Text:= TempMemo2.Text+#10+#13+text;

end;

end;

Finally

Screen.Cursor:=CrDefault;

Memo1.text:= TempMemo2.Text;

TempMemo1.Free;

TempMemo2.Free;

end;

end;

Pada procedure Tform1.FormCreate diatas sebenarnya dapat anda atur propertynya pada saat design time, jadi procedure ini sifatnya optional boleh dipakai boleh juga tidak. Sekarang mari kita jalankan program ini.

Pertama anda akan diminta untuk membuka file, lalu pilihlah file-file yang ingin anda buka

Gbr. Dialog untuk memilih file

Gbr. Hasil dari file-file yang dibuka

Membulatkan angka

Kadang kala dalam hasil operasi Floating terdapat banyak sekali angka yang mungkin akan mengganggu. Tutorial berikut ini akan disampaikan beberapa operasi pembulatan angka.

1. Fungsi trunc

Dengan fungsi ini sebuah bilangan yang rentetan angka dibelakang komanya banyak akan dihilangkan. Contoh anda mempunyai bilangan 12,11542245 maka dengan fungsi ini akan menghasilkan 12

Fungsi trunc( X : Real ): Integer ;

BX:= Trunc(12,11542245);

Maka BX akan menghasilkan 12

2. Fungsi Format

function  Bulatkan( BilanganDesimal :Real ;

BildiBlkngKoma : Integer  ): String ;

var

s : String ;

begin

Str(BilanganDesimal:20:BildiBlkngKoma,s);

result:=Trim(s);

end;

Keterangan

fungsi str adalah fungsi bawaan dari delphi, yang berfungsi untuk mengatur tampilan bilangan yang terletak di belakang koma.

BilanganDesimal : Bilangan yang akan dibulatkan

BildiBlkngKoma : Jumlah bilangan dibelakang koma yang kita inginkan

Fungsi trim pada kode diatas ini kita gunakan untuk menghilangkan karakter kosong.

Contoh :

Bulatkan( 456.2123546, 3);

Maka bilangan yang dihasilkan adalah 456.212

Memecah tanggal dan waktu

Apabila anda ingin memecahkan tanggal dan waktu maka fungsi decodeDateTime sangat berguna untuk anda, dibawah ini adalah contoh kodenya.

procedure TForm1.Button1Click(Sender: TObject);

var

Thn, Bln, Hr, Jam, Mnt, Dtk, Sdtk : Word ;

begin

DecodeDate(Now, Thn, Bln, Hr);

DecodeTime(Now, Jam, Mnt, Dtk, sDtk );

ShowMessage(‘Milidetik    : ‘+IntToStr(sDtk)+#10+#13+

‘Detik        : ‘+IntToStr(Dtk)+#10+#13+

‘Menit       : ‘+IntToStr(Mnt)+#10+#13+

‘Jam         : ‘+IntToStr(Jam)+#10+#13+

‘Hari         : ‘+IntToStr(Hr)+#10+#13+

‘Bulan       : ‘+IntToStr(Bln)+#10+#13+

‘Tahun      : ‘+IntToStr(Thn));

end;

Cara memilih tanggal yang jatuh pada hari tertentu

Baris kode yang akan kita bahas kali ini cukup unik. Karena procedure berikut ini akan menghasilkan sebuah daftar tanggal tanggal yang dilalui oleh hari tertentu. Berikut ini langkah-langkahnya.

Pertama-tama kita siapkan aplikasi baru dengan sebuah ListBox, Button, Edit, label,  dan DateTimePicker, yang kira-kira formnya akan seperti ini.

Gbr. Form Daftar hari

Kemudian tulis kode dibawah ini.

implementation

{$R *.dfm}

Uses DateUtils ;

Procedure PilihHariDlmBulan ( NmHari : String ; Bulan : TDateTime ; List : TStrings );

function  NamaHari( Tanggal : TDAteTime ): String ;

var

Hari: array[1..7] of string;

begin

Hari[1] := ‘Minggu’;

Hari[2] := ‘Senin’;

Hari[3] := ‘Selasa’;

Hari[4] := ‘Rabu’;

Hari[5] := ‘Kamis’;

Hari[6] := ‘Jumat’;

Hari[7] := ‘Sabtu’;

Result:=Hari[DayOfWeek(Tanggal)];

end;

var

hari, jmlHari : integer ;

s : string ;

Tahun, iBulan, iHari : Word ;

begin

decodeDate(Bulan, Tahun, ibulan, ihari);

JmlHari:=DaysInAMonth(Tahun, iBulan);

for hari:=1 to JmlHari do

begin

s:=IntToStr(hari)+’/’+IntToStr(ibulan)+’/’+IntToStr(tahun);

// disini kita akan menggunakan fungsi Namahari

if (Uppercase(NamaHAri(StrToDate(s)))= Uppercase(NmHAri)) then

list.Add(s) else continue;

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

PIlihHariDlmBulan(Edit1.Text, DateTimePicker1.Date, Listbox1.Items);

end;

Sekarang coba anda jalankan program dan isikan nama hari pada Edit1 lalu pilih tanggal pada DateTimePicker1 setelah itu tekanlah tombol button1, maka pada listbox1 anda akan mendapatkan daftar tanggal-tanggal yang dilalui hari tertentu dan pada bulan tertentu yang sudah diisikan pada Edit1.

Gbr. Daftar tanggal yang dilalui hari tertentu dalam sebulan

Lalu bagaimana apabila kita ingin melihat daftar hari dalam satu tahun ?. Untuk melihat daftar hari dalam setahun anda harus menambahkan procedure baru setelah Procedure PilihHariDlmBulan. Berikut ini kode lengkapnya.

Procedure PilihHariDlmBulan ( NmHari : String ; Bulan : TDateTime ; List : TStrings );

Var

Bla…bla…bla…

// var nya sama

begin

Bla…bla…bla…

End;

Procedure PilihHariDlmTAhun ( NmHari : String ; Tahun : word ; List : TStrings );

var

Bulan : Tdatetime ;

i : Integer ;

begin

List.Clear;

for i:=1 to 12 do

begin

Bulan:=StrToDAte(‘1/’+IntToStr(i)+’/’+IntTOStr(tahun));

PilihHariDlmBulan( NmHari, Bulan, list);

end;

end;

contoh penggunaanya adalah sebagai berikut.

procedure TForm1.Button1Click(Sender: TObject);

begin

PIlihHariDlmTahun(Edit1.text, 2009, Listbox1.Items);

end;

hari dalam tahun

hari dalam tahun

Gbr. Daftar tanggal yang jatuh pada hari sabtu dalam satu tahun

Menghitung jumlah kata

Apabila anda ingin mengetahui jumlah kata yang terdapat pada sebuah memo maka fungsi ini akan cukup berguna untuk anda. Untuk memulainya kita bisa memanfaatkan form cekteks lalu membuang komponen TEdit. Lalu masukan kode dibawah ini :

Function  JmlKata( Teks : String ): Integer ;

var

i : Integer ;

s : String ;

jml : Integer ;

begin

jml:=0;

s:=TRim(teks);

for i:=1 to length(s) do

begin

if ((copy(s, i, 1)=’ ‘) or (copy(s, i,2)=’  ‘)) then

jml:=jml+1;

end;

result:=jml+1;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

ShowMessage(‘Jumlah kata pada memo1 adalah ‘+

intTostr(jmlKata(memo1.Text))+’ kata’);

end;