Implementasi Dasar OOP di AS3

 

Inheritance saya akan sedikit mereview materi dari post sebelumnya tentang pengenalan dasar OOP, Inheritance adalah kemampuan sebuah class untuk menurunkan sifatnya kepada class turunannya. Class yang menurunkan sifat disebut Superclass/Parentclass, dan class yang dituruni sifat adalah Subclass/Childclass. Kata kunci dalam inheritace adalah Extend. Kata ini adalah kata kunci yang digunakan dalam bahasa pemrogramman untuk mengimplementasikan inheritance. contoh :
 
public class Shape 
{ 
    public function getArea():Number { 
        return NaN; 
    }
} 
 
public class Circle extends Shape 
{ 
    private var radius:Number = 1; 
    override public function getArea():Number { 
        return (Math.PI * (radius * radius)); 
    } 
} 

Class Shape disini adalah induk dari class circle, dimana class shape menurunkan fungsi area ( luas ). Yang menerapkan perintah Extend adalah class turunan,dimana class turunan disini adalah class circle. Selanjutnya untuk membuat fungsi area bekerja, maka class circle melakukan overriding ( Polymorphism ) fungsi area.

 

Polymorphism, selanjutnya adalah polymorphism, di artikel sebelumnya sudah saya jelaskan kalau polymorphism ada 2 jenis, yaitu Overriding dan Overloading. Yang pertama, Overriding.

 

Overriding adalah suatu kejadian dimana method mempunyai nama yang sama dan fungsionalitas yang sama, namun cara kerja fungsionalitas berbeda. Contoh :

 

class Shape
{ 
    public function getArea():Number { 
        return NaN; 
    } 
} 
 
class Circle extends Shape 
{ 
    private var radius:Number = 1; 
    override public function getArea():Number { //bagian ini merupakan overriding dari fungsi getArea di Class Shape 
        return (Math.PI * (radius * radius)); 
    } 
} 
 
class Square extends Shape 
{ 
    private var side:Number = 1; 
    override public function getArea():Number { //bagian ini merupakan overriding dari fungsi getArea di Class Shape
        return (side * side); 
    } 
} 

Contoh diatas menunjukan, dimana class circle dan class square melakukan overriding terhadap fungsi area, namun perbedaannya adalah didalam class circle, fungsi area memiliki cara kerja yang berbeda dengan fungsi area di class square. Namun kegunaan dari fungsi area di masing - masing class sama, yaitu untuk memperoleh nilai luas.

 

Overloading adalah suatu kejadian dimana method memiliki nama yang sama namun parameter method-nya berbeda. Saya tidak akan memberikan contoh implementasi dalam AS3 karena AS3 tidak mendukung fungsi overloading, oleh karena itu saya akan menggunakan bahasa C#. Contoh :

 

void Move() {
}

// bagian ini merupakan overloading dari fungsi Move dengan 1 parameter 
void Move(int arg) {
}

//bagian ini merupakan overloading dari fungsi Move dengan 2 parameter 
void Move(string arg1, double arg2) {
}

 

contoh lain dari implementasi overloading dalam kehidupan adalah cara bergerak seekor hewan. Tiap hewan memiliki fungsi gerak, namun cara hewan untuk bergerak / input hewan untuk bergerak berbeda - beda. Contoh : fungsi bergerak pada singa maka parameternya adalah ( kaki ), karena singa bergerak hanya menggunakan ke empat kakinya, fungsi bergerak pada burung maka parameternya adalah ( sayap ) dan fungsi bergerak pada ikan paus maka parameternya adalah ( sirip, ekor ikan ). Seperti itulah analogi dari overloading.

 

Encapsulation, dan yang terakhir adalah encapsulation ( pembungkusan ). Saya sedikit review lagi, encapsulation digunakan untuk membungkus / menyembunyikan property atau method dari suatu class. Ada 4 Access Modifier dalam encapsulation, yaitu public, private, protected, dan internal. Contoh impelementasi :

 

package engine {
    public class CombustionEngine {
        
        public function CombustionEngine() {}

        private function engageChoke():void {}
        private function disengageChoke():void {}
        private function engageElectricSystem():void {}
        private function powerSolenoid():void {}
        private function provideFuel():void {}
        private function provideSpark():void {}
        
        public function start():void
        {
            engageChoke();
            engageElectricSystem();
            powerSolenoid();
            provideFuel();
            provideSpark();
            disengageChoke();
        }
        public function stop():void
        {
        }
    }

}

 

Dalam contoh code diatas terdapat Property dan Method, dimana Access Modifier dari property class adalah private, artinya properti tersebut hanya bisa diakses oleh class itu sendiri. Sedangkan function dalam class tersebut bersifat public, artinya dapat diakses oleh class lain. Bagaimana cara mengaksesnya ? berikut contohnya.

 

var carEngine:CombustionEngine = new CombustionEngine();
carEngine.start();
carEngine.stop();

 
Jika kita hendak mengakses fungsi dari class lain, maka kita harus menambahkan baris dibaris pertama, yaitu kita harus membuat class yang fungsinya ingin kita akses. Setelah itu kita bisa mengakses method yang kita inginkan seperti dibaris dua dan tiga.
Sekian artikel impelementasi dasar oop di AS3. Jika kalian merasa kurang jelas, silahkan comment dibawah.
 
Baca selanjutnya : Implementasi OOP di AS3 (Part 2) (WIP)
Similar Article