Unit

Pascal tidak memerlukan header seperti Bahasa C atau bahasa pemrograman sejenis. Tapi, pascal menyediakan unit yang juga hampir sama kegunaannya yaitu untuk menyimpan sekumpulan function, prosedur, tipe data dan menghubungkan dg library. Sekalipun kita tidak mendeklarasikan unit sebenarnya ada satu unit default yang sudah digunakan dalam kode program yaitu unit "system". Selain unit system, salah satu  unit yang sering digunakan  digunakan adalah unit CRT. Perhatikan contoh berikut :

Uses CRT;
Var i : Integer;
Begin
    write('Angka : ');Readln(i);
    clrscr;
    write('Angkaku adalah : ', i);
    readln;
End.
Program di atas menggunakan unit CRT dan menggunakan prosedur "clrscr" yang ada di dalam unit tersebut. Fungsi clrscr adalah untuk membersihkan layar. Selain fungsi clrscr, masih ada function dan prosedur lain dalam unit CRT. Selain unit CRT, ada banyak unit lain yang bisa digunakan dalam bahasa pascal.

Beberapa unit yang biasa ada sebagai bawaan compiler pascal di OS windows, yaitu :
  1. Sistem
  2. CRT
  3. DOS
  4. String
  5. windows
  6. dll
Kita juga bisa membuat unit buatan kita sendiri. Setelah unit dibuat, kita bisa menggunakannya dengan meletakkannya di folder yang sama dengan tempat kode program atau project yang menggunakannya.

Unit terdiri dari bagian interface dan implementation. Interface berisi deklarasi "prototype" function atau procedure. Selain itu kita bisa mendeklarasikan tipe data buatan kita sendiri. Unit berisi dengan kode program yang diawali dengan nama unit, misalnya "unit coba". Nama file harus sama dengan nama unit, jika nama unitnya adalah "coba", maka nama filenya adalah "coba.pas". Hasil dari kode program untuk unit adalah file dengan ekstensi "*.ppu".


unit coba;

interface
type unknown=array[0..256] of char;

function Persegi_panjang( length, width: real): real;
function Lingkaran(r: real) : real;
function Segitiga( s1, s2, s3: real): real;
procedure tulis(s:string);
procedure tulis(r:real);

implementation
function Persegi_panjang( length, width: real): real;
begin
   Persegi_panjang := length * width;
end;

function Lingkaran(r : real) : real;
begin
   lingkaran := 22 * r * r / 7;
end;

function Segitiga( s1, s2, s3: real): real;
var
   s0, area: real;

begin
   s0 := (s1 + s2 + s3)/2.0;
   area := sqrt(s0 * (s0 - s1)*(s0 - s2)*(s0 - s3));
   Segitiga := area;
end;

procedure tulis(r:real);
begin
    writeln(r:0:2);
end;

procedure tulis(s:string);
begin
    writeln(s);
end;

end.
Untuk menggunakan unit, kita bisa meletakkan di folder yang sama dengan kode programnya. Sebaiknya, hindari nama kode program yang sama dengan nama unit. Jika nama unitnya adalah "coba.ppu", jangan gunakan nama file "coba.pas" sebagai nama file untuk kode programnya.
uses coba, crt;

var x:real=0;
var a:unknown;
begin
    clrscr;
    a[0]:='A';
    x:=lingkaran(7);
    tulis(x);
    readln;
end.