D2 TEKNIK KOMPUTER (BSI PROGRAMMER)
Membuat Unit Sendiri Dalam Pemrograman Delphi
Kita akan mendefinisikan dua buah variabel bertipe TDateTime yang bernama WaktuAwal dan WaktuStartProgram. Kedua variabel ini diletakkan di tempat yang berbeda sehingga punya sifat yang berbeda pula.
Unit UWaktu;
Interface
Kita akan mendefinisikan dua buah variabel bertipe TDateTime yang bernama WaktuAwal dan WaktuStartProgram. Kedua variabel ini diletakkan di tempat yang berbeda sehingga punya sifat yang berbeda pula.
Unit UWaktu;
Interface
Uses Sysutils;
Var WaktuAwal : TDateTime;
Implementation
Var WaktuStartProgram : TDateTime;
Initialization
WaktuStartProgram : = Now;
Finalization
End.
Variabel WaktuAwal bersifat public, karena berada di bagian interface. ini berarti variabel ini bisa diakses dari unit lain asal melakukan uses ke unit ini. variabel WaktuStartProgram bersifat private dan hanya bisa digunakan oleh kode program didalam unit ini karena di defenisikan di bagian implementation.
Dibawah kata kunci interface, kita melakukan uses ke Sysutils sehingga dalam unit ini kita bisa menggunakan defenisi yang terdapat di Sysutils. Dibagian paling bawah ada bagian initialization dan finalization. Perintah yang didefenisikan di bagian initialization akan dijalankan ketika unit di-load ke memory. Perintah di bagian finalization akan dijalankan ketika unit akan dibuang dari memory.
Mendefenisikan Function dalam unit
Kita akan memerlukan dua function. pertama untuk menghitung selisih dari variabel WaktuAwal dengan waktu saat ini. Kedua, kita perlu menghitung selisih waktu dari variabel WaktuStartProgram dengan waktu sekarang. Nah, karena kedua function ini sangat mirip, kita akan buat function ketiga yang bernama SelisihDetik untuk menghitung waku antara dua nilai TDateTime. Nanti function pertama dan kedua hanya tinggal memanggil function SelisihDetik ini.
3 Function :
Function SelisihDetik(vT1, vT2:TDateTime) : Ineteger;
var vSelisih:TDateTime;
var vSelisih:TDateTime;
Begin
vSelisih:=vT2-vT1;
result:=Round(vSelisih*24*60*60);
End;
Function WaktuProses: Integer;
End;
Function WaktuProses: Integer;
Begin
Result:=SelisihDetik(WaktuAwal, Now);
End;
Function LamaProgramHidup : Integer;
Result:=SelisihDetik(WaktuAwal, Now);
End;
Function LamaProgramHidup : Integer;
Begin
Result:=SelisihDetik(WaktuStartProgram, now);
End;
//------------------------------------------------------------//
Jadi di deklarasikan dalam unit
//------------------------------------------------------------//
Unit UWaktu;
Interface
Var WaktuAwal : TDateTime;
Function WaktuProses:Integer;
Var vAngka1 , vAngka2,
vHasil, vJawab : Integer;
vSalah : Boolean;
Begin
End;
//------------------------------------------------------------//
Jadi di deklarasikan dalam unit
//------------------------------------------------------------//
Unit UWaktu;
Interface
Uses Sysutils;
Var WaktuAwal : TDateTime;
Function WaktuProses:Integer;
Function LamaProgramHidup:Integer;
//---------------------------------------------------------------//
Membuat Program Utama
//---------------------------------------------------------------//
Membuat Program Utama
Var vAngka1 , vAngka2,
vHasil, vJawab : Integer;
vSalah : Boolean;
Begin
Randomize;
vSalah:=False;
while not vSalah begin
vAngka1 :=Random(10);
vAngka2 :=Random(10);
vHasil := vAngka1*vAngka2;
WaktuAwal:=Now;
Write(vAngka1, 'X' , vAngka2, '=');
ReadLn(vJawab);
ReadLn(vJawab);
If vJawab <> vHasil Then Begin
vSalah :=True;
vSalah :=True;
WriteLn('Jawaban Salah! Lama berpikir :', WaktuProses(), 'deik');
End Else Begin
WriteLn('Jawaban Benar. Lama berpikir :', WaktuProses, 'detik');
End;
End;
WriteLn('Lama Program :', LamaProgramHidup(), 'detik');
ReadLn;
End.
End Else Begin
WriteLn('Jawaban Benar. Lama berpikir :', WaktuProses, 'detik');
End;
End;
WriteLn('Lama Program :', LamaProgramHidup(), 'detik');
ReadLn;
End.
Kemudian jalankan program tersebut...!! Sekian dan Terima Kasih....???