Belajar Pemrograman OOP PHP Part 3 - Membuat Objek Di PHP - CRUDPRO

Belajar Pemrograman OOP PHP Part 3 - Membuat Objek Di PHP

Panduan Belajar OOP PHP Part 3 - Membuat Objek Di PHP

Istilah Object dalam OOP (Object Oriented Programming), sebenarnya terdiri dari class, property, method dan object. Kita sudah mempelajari ke-4 istilah ini pada tutorial sebelumnya. Meringkas apa yang telah kita pelajari, berikut ini merupakan contoh salah satu objek pada pemrograman PHP :

<?php

class Computer
{
    var $owner;
    var $brand;
    var $screenSize;

    function turnOnComputer()
    {
        return 'Turn On Computer';
    }

    function turnOffComputer()
    {
        return 'Turn Off Computer';
    }
}

// Create an object from class Computer
$computer = new Computer();

Sumber kode di atas merupakan sebuah class dengan nama Computer, dilengkapi dengan property dan method nya. Kemudian diatas membuat satu objek dari class Computer dengan nama $computer di baris terakhir.
Meskipun di dalam kode tersebut kita telah membuat objek, objek tersebut belum menampilkan apa - apa, karena class computer belum memiliki data di dalamnya. Mari kita mempelajari cara mengakses isinya dari class dalam PHP.

Jika kamu bertanya kenapa saya menggunakan contoh class Computer, alasannya yaitu supaya menyederhanakan penjelasan artikel ini. OOP (Object Oriented Programming) mempunyai rules dan alur yang cukup sulit sehingga memakai contoh sederhana ini bisa membuat lebih mudah dalam memahami konsep OOP.

Di dalam buku yang membahas mengenai OOP, jenis class Computer yang aneh ini juga sering kali dipakai sebagai contoh. Misalnya class Mobil, class Mobil. Sekali lagi, ini hanya untuk menyederhanakan pemahaman kepada kalian sebagai pembaca artikel ini.

Supaya lebih mudah dipahami, berikut adalah contoh revisi class Computer sebelumnya :

<?php

class Computer
{
    var $owner;
    var $brand;
    var $screenSize;

    function turnOnComputer()
    {
        return 'Turn On Computer';
    }

    function turnOffComputer()
    {
        return 'Turn Off Computer';
    }
}

$computer = new Computer();

$computer->owner = 'Qudrat';
$computer->brand = 'MacBook';
$computer->screenSize = '15 inc';

echo $computer->owner;
echo '<br />';
echo $computer->brand;
echo '<br />';
echo $computer->screenSize;
echo '<br />';

echo $computer->turnOnComputer();
echo '<br/>';
echo $computer->turnOffComputer();

Jika kamu menjalankan kode di atas, berikut adalah hasil yang akan muncul :

Qudrat
MacBook
15 inc

Mari kita bahas sumber kode di atas :

class Computer {

Baris pertama contoh kode yang dimana mendefinisikan sebuah class dengan nama Computer. Kurung kurawal menandakan awal dari class.

var $owner;
var $brand;
var $screenSize;

Kemudian tiga baris di atas merupakan variabel yang mendefinisikan class, atau bisa disebut dengan property. Property tidak lain hanya sebuah variabel biasa yang berada di dalam class. Keyword var dipakai untuk mendeklarasikan suatu variabel di dalam class.

Jika kamu pernah mempelajari OOP PHP, mungkin akan langsung protes tentang penggunaan var untuk mendefinisikan sebuah properti. Menggunakan var hanya untuk menyederhanakan penjelasan. Konsep enkapsulasi (public, protected dan private) yang akan dijelaskan lebih mendalam pada tutorial berikutnya. Kita akan mengoreksi cara mendefinisikan ini nantinya.

function turnOnComputer()
{
    return 'Turn On Computer';
}

function turnOffComputer()
{
    return 'Turn Off Computer';
}

Kedua fungsi di atas merupakan method dari class. Jika kamu telah mempelajari pembuatan function, kedua contoh ini hanyalah fungsi biasa yang akan mengembalikan nilai berupa string.

$computer = new Computer();

Baris ini adalah perintah untuk membuat objek dari class computer (disebut dengan proses instansiasi).
Variabel $computer saat ini berisi objek dari class computer. Mari kita akses property dan method class laptop melalui objek $computer ini.

$computer->owner = 'Qudrat';
$computer->brand = 'MacBook';
$computer->screenSize = '15 inc';

Ketiga baris di atas merupakan cara untuk men - set nilai ke dalam property dari objek $computer.
Perhatikan bahwa disana menggunakan tanda panah (->) untuk mengakses property dari objek computer.
Tanda panah ini merupakan operator khusus objek yang dikenal dengan Object Operator. Penulisan nama property juga dilakukan tanpa memakai tanda $, sehingga property $owner, diakses dengan seperti dibawah ini :

echo $computer->owner;
echo '<br>';
echo $computer->brand;
echo '<br>';
echo $computer->screenSize;
echo '<br>';

Kode di atas dipakai untuk menampilkan sebuah nilai dari properti dari objek $computer yang sebelumnya telah di - set nilainya. Sama halnya seperti pada saat men - set nilai propert, kita juga menggunakan tanda panah (->), setelah itu diikuti nama property tanpa tanda $.

Perintah echo ditambahkan agar PHP menampilkan nilai property ke browser. Supaya tampilan di browser lebih rapi, lalu menambahkan echo <br /> diantara hasil tampilan property.

echo $computer->turnOnComputer();
echo $computer->turnOffComputer();

Kode terakhir pada contoh kita kali ini adalah cara memanggil dari method objek $computer. Cara mekasesnya sama dengan cara mengakses property, namun karena method adalah fungsi, kita menambahkan tanda kurung di akhir pemanggilan fungsi.

Object Sebagai Entitas terpisah

Berikut salah satu contoh pembuatan beberapa objek dari class.

<?php

class Computer {

    var $owner;

    function turnOnComputer() {
        return 'Turn On Computer';
    }
}

$qudratComputer = new Computer();
$andinaComputer = new Computer();
$dinaComputer = new Computer();

/* set property */
$qudratComputer->owner = 'Qudrat';
$andinaComputer->owner = 'Andina';
$dinaComputer->owner = 'Dina';

// showing up property
echo $qudratComputer->owner.'<br>'; // Qudrat
echo $andinaComputer->owner.'<br>'; // Andi
echo $dinaComputer->owner.'<br>'; // Dina

Class Computer di atas sudah disederhanakan supaya lebih singkat. Setelah pembuatan class, kemudian membuat tiga objek dari class Computer, yakni $qudratComputer, $andinaComputer dan $dinaComputer. Ketiga objek ini memiliki struktur yang sama (sama - sama berasal dari class Computer), namun memiliki isi data yang berbeda.

Supaya lebih paham, silakan kamu mencoba menambahkan beberapa property dan method untuk class Computer di atas.