Minggu, 29 Maret 2015

Memahami OOP dan Class PHP

OOP atau Object Oriented Programming adalah suatu metode untuk memudahkan pemrograman dalam bentuk orientasi objek. Sebagai contoh ada sebuah fungsi strlen, strcat dan strcpy, ketiganya adalah fungsi untuk memanipulasi string. Dengan adanya pemrograman berorientasi objek, kita bisa mengkategorikan ketiga fungsi tersebut sebagai string manipulator, dan kategori tersebut kita namakan Class Object. Sebagai contoh Class Object akan diberi nama Serangan

class Serangan {
    private $kunci;
    protected $kartu;
    public $uang;

    public function Tembak ($nama) {
        echo('Tembak: ' . $nama);
    }

    public function Tonjok ($nama) {
        echo('Tonjok: ' . $nama);
    }

    public function Tendang ($nama) {
        echo('Tendang: ' . $nama);
    }
}
Di atas adalah contoh kode yang berorientasi objek. Bagian class Serangan adalah sebagai bentuk deklarasi Serangan sebagai Class Object, kita bisa mengganti nama Serangan ini sesuai keinginan kita, contoh HajarBleh.

Pada bagian Tembak, Tonjok dan Tendang disebut dengan Method, sementara $kunci, $kartu dan $uang disebut dengan Property.

Seperti yang kita bisa lihat, method $kunci, $kartu dan $uang memiliki akses yang berbeda. Hal ini bisa dilihat dari properti yang berbeda seperti private, protected dan public.

Protected

Properti ini digunakan untuk mendeklarasikan variabel agar hanya bisa diakses oleh class itu sendiri atau turunannya (inherited). Di luar dari itu variabel ini tidak bisa diakses (Protected).

Sebagai contoh:
class Belajar extends Serangan {
    public function Tonjok2 ($nama) {
        echo $this->Tonjok($nama); /* Bisa, karena diakses oleh class Belajar. */
    }
}

$belajar = new Belajar();
$belajar->Tonjok('Tembok'); /* Error karena protected method. */
$belajar->Tonjok2('Gubuk'); /* Bisa, karena Tonjok2() memiliki public method. */

Private

Properti ini digunakan untuk mendekalarasikan variabel agar hanya bisa diakses oleh class itu sendiri bukan untuk class turunannya (non-inherited).

sebagai contoh:
class Belajar extends Serangan {
    public function Tonjok3 ($nama) {
        echo($nama . ' punya ' . $this->kunci); /* Error, karena $kunci hanya bisa diakses oleh class Serangan saja. */
    }
}

$belajar = new Belajar();
$belajar->Tonjok3('Bencong'); /* Error, karena metode Tonjok3() mengakses $kunci. */

Public

Secara default (pengaturan awal), properti ini diimplementasikan ke setiap metode ataupun variabel properti. Hanya saja bedanya jika metode atau variabel properti menggunakan keyword public ini disebut dengan Explicit Declaration, sementara jika tanpa keyword ini disebut Implicit Declaration. Sepertinya saya tidak perlu menjelaskan lebih lanjut untuk hal ini, karena memang public sendiri berarti umum yang bisa digunakan oleh class itu sendiri, turunannya maupun diakses dari luar class.

Tidak ada komentar:

Posting Komentar