OOP dalam PHP5 - Bag I

Belakangan ini komunitas PHP mengeluarkan PHP versi 5.0 dengan kemampuan OOP yang lengkap. Bahkan kemampuan OOP-nya dapat disetarakan dengan Java. Saat ini versi PHP adalah 5.0.4 yang menurut John Lim adalah versi PHP 5 yang paling stabil. Tulisan ini bertujuan untuk mengenalkan kemampuan OOP dalam PHP 5.

Kenapa OOP? Jadi susah kan kodingnya. Jadi banyak filenya. Jadi lambat (kata si buchard, hebat dia bisa bedain speednya pake OOP atau procedural, kaya alien). dsb dsb. Tapi menurut saya coding secara OOP memiliki beberapa keuntungan, yaitu:
1. Source code menjadi lebih teratur (dengan sendirinya menjadi teratur)
2. Mudah untuk maintenance/bug fix aplikasi besar (yg sudah di-develop bertahun2)
3. Reusable, biasanya source code dengan OOP dapat dengan mudah digunakan pada aplikasi lain tanpa harus menulis ulang
4. Kerjasama dalam tim tanpa saling mengganggu

Class

<?
class Jam
{
public $jam;
public $menit;
public $detik;

function __construct($j,$m,$d)
{
$this->jam = $j;
$this->menit = $m;
$this->detik = $d;
}

function gerak( $detik ) {
print "jam bergerak 1 detik";
$this->detik ++;
}
}

$jamgue = new Jam(12,26,00);

$jamgue->gerak();

print $jamgue->detik;

?>

akan menghasilkan output:

1

Jika dilihat dari code di atas, kita mendefinisikan sebuah class dengan nama Jam. Dengan anggota class $detik,$menit,$jam dan sebuah method gerak(). Class tersebut juga memiliki __construct yaitu sebuah method khusus yang akan dipanggil saat pembuatan objek. Class hanyalah sebuah cetak-biru yang nantinya akan menjadi objek.

Biasakan menulis nama class diawali dengan huruf besar, walaupun PHP case insensitive

Sebuah class kemudian akan digunakan menjadi sebuah objek dengan statement new:

$jamgue = new Jam(12,26,00);

$jamgue adalah sebuah objek baru dengan tipe class Jam. Parameter yang diberikan adalah parameter untuk method khusus __construct.

Berbeda dengan PHP4, assignment objek tidak perlu ditambahkan tanda &.

Setelah objek dibuat barulah kita menggunakan objek tersebut:

$jamgue->gerak( 1 );

tanda -> digunakan untuk memanggil method gerak() pada objek $jamgue.

tanda -> berbeda dengan tanda :: . Tanda :: digunakan untuk memanggil method atau variable yang static. Tanda :: tidak dapat digunakan dalam objek.

function gerak( $detik ) {
print "jam bergerak 1 detik";
$this->detik ++;
}

Code tersebut akan menambahkan satu detik pada variabel detik yang berada di objek $jamgue. $this digunakan untuk menunjuk diri sendiri sebagai objek, diikuti dengan tanda ->

$this berbeda dengan self tapi mirip. self digunakan untuk class yang static atau class yang tidak digunakan dalam objek. self tidak dapat digunakan dalam objek.
Misalnya:
class ABC
{
static public $myvar;

static function panggil()
{
print self::myvar;
}

}

ABC::panggil();


This conclude first chapter of this article. Yang harus diperhatikan adalah perbedaan antara class dan objek. Class hanyalah cetak-biru yang nantinya akan menjadi objek.

Bersambung ke Bagian II ...

-copyrighted material-

Comments

Anonymous said…
mas artikelnya udah bagus banget, tapi tambahin dong contoh2 kasus yang laiinya seperti implementasi dari properties public, protected, dan private, bukti kalo private gak bisa diakses oleh objek di luar kelasnya, dan yang lain-lainnya. ok sukses slalu buat Anda
Superbiji said…
tengs...
nanti2 ditambahin

Popular posts from this blog

Ports to allow for whatsapp call

Manually clean up zimbra zmcat/zmcpustat exploit

Keychron K2 in Linux