OOP dalam Pascal

Sekalipun awalnya pascal adalah bahasa pemrograman prosedural yang tidak menyediakan OOP (Object oriented programming). Tapi sekarang pascal bisa menggunakan OOP. Untuk mendeklarasikan class, kita bisa menggunakan kata "object". OOP dalam pascal tentu saja menyediakan constructor, destructor, inheritance, overloading, overriding seperti OOP lainnya.

program OOP;
uses crt;
type 
    Persegi_panjang = object  
    private  
        p, l: integer; 
    public
      
      function Luas:integer;  
      procedure atur_panjang(x:integer);
      procedure atur_lebar(x:integer);  
end;

function Persegi_panjang.Luas:integer;
begin
    Luas:=p*l;
end;

procedure Persegi_panjang.atur_panjang(x:integer);
begin
    p:=x;
end;

procedure Persegi_panjang.atur_lebar(x:integer); 
begin
    l:=x;
end;

var pp:Persegi_panjang;
Begin
    clrscr;
    pp.atur_lebar(5);
    pp.atur_panjang(6);
    writeln('Luas = ', pp.luas);
    readln
End.

Objek yang diwariskan dalam bahasa pascal diapit dalam tanda kurung setelah penulisan tipe "object". Dengan pewarisan kita tidak perlu mendeklarasikan ulang anggota yang sudah dideklarasikan dalam objek yang diwariskan kecuali kita akan melakukan method overloading atau overriding. Berikut ini adalah contoh cara menggunakan pewarisan / inheritance dalam bahasa pascal.
program helloworld;
uses crt;

type
    Segitiga = object 
        private 
            a, t : integer;
        public
            function Luas (x:integer; y:integer) : real; 
    end;
    
    Jajaran_genjang = object (Segitiga)
        private
            sisi1, sisi2:integer;
        public
            function Luas (x:integer; y:integer) : real; 
            function Keliling (s1:integer; s2:integer) : real;
    end;

function Segitiga.Luas(x:integer; y:integer):real;
begin
    a:=x;
    t:=y;
    Luas:=x*y/2;
end;

function Jajaran_genjang.Luas(x:integer; y:integer):real;
begin
    a:=x;
    t:=y;
    Luas:=x*y;
end;

function Jajaran_genjang.Keliling(s1:integer; s2:integer) : real;
begin
    Keliling:=(s1+s2)*2;
end;

var 
    bangun1:Segitiga;
    bangun2:Jajaran_genjang;
Begin
    clrscr;
    writeln('Luas = ', bangun1.Luas(2, 3):2:2);
    writeln('Luas = ', bangun2.Luas(2, 3):2:2);
    readln
End.
Pada contoh di atas, selain menggunakan pewarisan, kita juga melakukan method overriding dengan mengubah isi dari method luas.

1 comments:

Klik di sini untuk berkomentar
Anonymous
admin
May 31, 2020 at 12:53 PM ×

Kok gue salah fokus sama tema terminalnya :v jangan-jangan agan pakek lubuntu ?

Jawab
avatar