Sistem Absensi Dan Laporan Penggajian

Cara Penggunaan Perintah Units dalam Pemograman Pascal

Salam...,

Kali ini kita akan membahas tentang Units. Units adalah suatu Perintah dalam pemograman Pascal seperti Crt yang paling sering digunakan . Apa yang berbeda dengan Units? Units memiliki struktur seperti ini:
unit what;
interface
uses ....
var
  ...    { Visible global variables }
{ Procedures & functions definitions }
procedure myproc;
function  myfunc: word;
:
:
implementation
var
  ...    { Invisible global variables }
procedure myproc;
begin
  :  { the routines }
  :
end;
function myfunc:word;
begin
  :  { the routines }
  :
end;
:
:  { other procedure's / function's routines }
:
begin
  :   { Initialization code }
  :
end.

Itu adalah struktur, Bagian antarmuka berisi definisi prosedur atau fungsi dan variabel. Semua definisi (prosedur, fungsi, dan variabel) di bagian ini terlihat dengan pengguna Units, Ini berarti bahwa pengguna yang menempatkan Units dalam Clause mereka dapat memanggil prosedur / fungsi dan dapat dengan mudah mengubah variabel.
Bagian Pelaksanaan berisi isi dari semua prosedur dan variabel terlihat atau tidak. Deklarasi variabel di bagian ini tidak terlihat. Berarti bahwa pengguna tidak dapat memodifikasi, Hanya prosedur atau fungsi di dalam Units saja yang bisa diganti.
Perhatiankan: Nama Satuan harus mematuhi nama file.
Lihat contoh ini:
unit myunit;
interface
uses crt;
var
  x   : byte;
  y,z : integer;
procedure a;
procedure b;
function  c:byte;
implementation
var
  p,q,r : shortint;
procedure a;
begin
  :
  :
end;
procedure d;
begin
  :
  :
end;
procedure b;
begin
  :
  :
end;
function c: byte;
begin
  :
  :
end;
procedure e;
begin
  :
  :
end;
begin
  :  { Initialization code }
  :
end.

Misalkan saya membuat program dengan menggunakan perintah Units di atas:
uses myunit;
var
  n : byte;
begin
  a;      { legal }
  b;      { legal }
  n:=c;   { legal }
  x:=1;   { legal }
  y:=-1;  { legal }
  z:=14;  { legal }
    d;      { illegal, because it is invisible }
  e;      { illegal, because it is invisible }
  p:=-1;  { illegal, because it is invisible }
end.

Perintah ini bisa memanggil prosedur a, b, c dan fungsi, tapi tidak prosedur d, dan e. Akses ke variabel x, y, dan z adalah legal, tetapi tidak untuk p, q, dan r.
Prosedur d dan e yang hanya dapat dipanggil INSIDE Units , misalnya prosedur b memanggil prosedur d . sama seperti program,  i.e.  d dapat memanggil a, tapi a tidak  bisa memanggil d.

Jika Anda memiliki prosedur atau fungsi yang dibuat dan Anda berpikir bahwa Anda akan menggunakannya di masa depan, Anda tempatkan dalam satu Units sehingga Anda dapat menggunakannya kembali. Mulai memikirkan prosedur atau fungsi yang akan sering Anda gunakan, kemudian tempatkan dalam sebuah Units. Ini adalah contoh Units yang sederhana, tetapi bekerja!
unit myunit;
interface
uses crt;
procedure clearbkgr(color : byte);
procedure makewindow(x1, y1, x2, y2, color : byte);
procedure writexy(x, y : byte ; mess : string);
function  ucase(st:string):string;
implementation
procedure clearbkgr(color : byte);
begin
  textbackground(color);
  clrscr;
end;
{ Invisible to unit user, this is internal function }
function fill(s : string; count : byte; what: char):string;
begin
  fillchar(s,count+1,what);
  s[0]:=chr(count);
  fill:=s;
end;
procedure makewindow(x1, y1, x2, y2, color : byte);
var
  s  : string;
  i  : byte;
begin
  textattr:=color;
  s:=fill(s,x2-x1-1,#205);
  gotoxy(x1,y1); write(#201+s+#187);
  gotoxy(x1,y2); write(#200+s+#188);
  s:=fill(s,x2-x1-1,' ');
  s:=#186+s+#186;
  for i:=1 to y2-y1-1 do
  begin
    gotoxy(x1,y1+i); write(s);
  end;
end;
procedure writexy(x, y : byte; mess : string);
begin
  gotoxy(x,y); write(mess);
end;
function ucase(st:string):string;
var
  i : byte;
begin
  for i:=1 to length(st) do st[i]:=upcase(st[i]);
  ucase:=st;
end;
begin
  { Leave this empty if you don't have any initialization code }
end.

Initialization codes.  Jika Anda berpikir melakukan Units ini untuk sering digunakan, Anda dapat melakukannya di block begin...end. Ini mirip dengan kode persiapan, yaitu mengatur Units. Sebagai contoh: Anda merasa bahwa beberapa variabel perlu diatur, lakukan di bagian tersebut. Jika Anda memerlukan beberapa kebutuhan kode setup yang akan didirikan, melakukannya juga dengan cara yang sama. Kode inisialisasi dilakukan sebelum blok begin...end program utama yang digunakan Units.
Misalkan program seperti ini:
:
:
uses unit_a, unit_b, unit_c;
:
:
:
begin
  :
  :
end.

Kode inisialisasi di unit_a dilakukan terlebih dahulu, kemudian unit_b, kemudian unit_c, kemudian begin...end.
               53
            2 ------ 1      (53 mod 2 = 1)
                26          (53 div 2 = 26)
            2 ------ 0      (26 mod 2 = 0)
                13          (26 div 2 = 13)
            2 ------ 1      (13 mod 2 = 1)
                 6          (13 div 2 = 6)
            2 ------ 0      ( 6 mod 2 = 0)
                 3          ( 6 div 2 = 1)
            2 ------ 1      ( 3 mod 2 = 1)
1                ( 3 div 2 = 1)

Berhenti di sini, sejak 1 kurang dari 2. Jadi bentuk biner dari 53 adalah 110101. Lihatlah contoh ini:
100    /|\     41             37
            2 ------ 0 |   2 ---- 1       2 ---- 1
                50     |      20             18
            2 ------ 0 |   2 ---- 0       2 ---- 0
                25     |      10              9
            2 ------ 1 |   2 ---- 0       2 ---- 1
                12     |       5              4
            2 ------ 0 |   2 ---- 1       2 ---- 0
                 6     |       2              2
            2 ------ 0 |   2 ---- 0       2 ---- 0
                 3     |       1              1
            2 ------ 1 |
1        | Direction to read

Jadi, 100 adalah 110.100 dalam biner, 41 adalah 101001, dan 37 adalah 100101. Sekarang, bagaimana mengkonversi biner digit (bit) ke desimal? Misalkan kita memiliki:
1010010 = 1 x 26 + 1 x 24 + 1 x 21 = 64+16+2 = 82
0100001 = 1 x 25 + 1 x 20 = 32+1 = 33
0111100 = 1 x 25 + 1 x 24 + 1 x 23 + 1 x 22 = 32+16+8+4 = 60
Lebih pendek:
1001 = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8+0+0+1 = 9
1011 = 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 8+0+2+1 = 11
Jika Anda ingin mengkonversi nomor ke heksadesimal, itu hanya mirip, tapi mengubah pembagi 2 menjadi 16, seperti ini:
    100            41            53           37           47
  16 ----- 4     16 ---- 9    16 ------ 5   16 ---- 5    16 ---- 15
        6             2             3            2            2

Berarti 100 = 64 hex, 41 = 29 hex, 53 = 35 hex, 37 = 25 hex, 47 = 2F hex Setiap angka melebihi 9 diterjemahkan seperti ini:
10   into   A
   11   into   B          61             44            58
   12   into   C     16 ------ 13   16 ------ 12  16 ------ 10
   13   into   D           3              2             3
   14   into   E     61 = 3D hex     44 = 2C hex    58 = 3A hex
   15   into   F

Konversi kembali ke desimal adalah sama:
  • 3D Hex = 3 x 161 + 13 x 160 = 48 + 13 = 61
  • 67 Hex = 6 x 161 + 7 x 160 = 96 + 7 = 103
  • 103 Hex = 1 x 162 + 0 x 161 + 3 x 160 = 256 + 0 + 3 = 259
Demikian sedikit penjelasan tentang pemakaian perintah Units dalam pemograman Pascal, silahkan anda kembangkan lagi.

Pelajari Juga Tutorial Pemograman Pascal Lainnya :
Langkah - Langkah Memulai Pemograman Pascal
Salam...,



No comments:

Post a Comment