Bag. 12: Pengertian Static Property dan Static Method
Pengertian Static Property dan Static Method
Jika di awal tutorial Pemrograman objek PHP ini saya menjelaskan bahwa
seluruh property dan method hanya bisa diakses dari objek, maka static property
dan static method adalah pengecualiannya.
Static property dan static method adalah property (variabel) dan
method (function) yang melekat kepada class, bukan kepada objek. Konsep static
property memang ‘agak keluar’ dari konsep objek sebagai tempat melakukan
proses, karena sebenarnya class hanya merupakan ‘blueprint’ saja.
Untuk membuat static property dan static method, kita menambahkan
keyword ‘static’ setelah penulisan akses level property atau method, seperti
contoh berikut:
//
static property
public
static $harga_beli;
//
static method
public
static function beli_laptop() {
//...isi method
}
Dalam contoh diatas, saya menggunakan hak akses public, tetapi
kita juga bisa menggunakan hak akses lain seperti private dan protected untuk
static property dan static method.
Karena static property dan static method adalah milik class, maka
kita tidak perlu membuat objek untuk mengaksesnya, tapi langsung menyebutkan
nama class dan menggunakan operator ‘::’, berikut adalah contoh pengaksesan
static property dan static method dari class laptop:
echo
laptop::$harga_beli;
echo
laptop::beli_laptop();
Tutorial
Cara Penggunaan Static Property dan Static Method
Agar lebih memahami cara penggunaan static property dan static
method, langsung saja kita masuk ke dalam kode program:
<?php
//
buat class laptop
class
laptop {
public $merk;
public $pemilik;
// static property
public static $harga_beli;
//static method
public static function beli_laptop() {
return "Beli Laptop";
}
}
//
set static property
laptop::$harga_beli=4000000;
//
get static property
echo
"harga beli : Rp".laptop::$harga_beli;
echo
"<br />";
//
panggil static method
echo
laptop::beli_laptop();
?>
Dalam kode diatas, saya membuat class laptop dengan 2 property
‘biasa’, 1 static property dan 1 static method. Perhatikan cara mengkases
keduanya tanpa membuat objek.
Cara Mengakses Static Property dan Static Method Dari Class Itu
Sendiri
Jika kita menggunakan variabel $this untuk mengakses property dan
method ‘normal’ dari dalam class, maka untuk mengakses static property dan
static method, kita menggunakan keyword “self::”. Berikut contoh penggunaannya:
<?php
//
buat class laptop
class
laptop {
public $merk;
public $pemilik;
// static property
public static $harga_beli;
//static method
public static function beli_laptop() {
return "Beli laptop seharga
Rp".self::$harga_beli;
}
}
//
set static property
laptop::$harga_beli=4000000;
//
panggil static method
echo
laptop::beli_laptop();
?>
Pada kode program PHP diatas, saya menggunakan perintah
self::$harga_beli, untuk memanggil static property dari dalam class laptop itu
sendiri.
Cara Mengakses Static Property dan Static Method Parent Class
Untuk class dengan penurunan (inheritance), kita bisa menggunakan
keyword parent::nama_property dan parent::nama_method untuk mengakses static
property dan static method dari parent class.
Misalnya class laptop adalah turunan dari class komputer, kita
bisa menggunakan perintah parent::beli_komputer() untuk mengakses static method
pada class komputer dari dalam class laptop.
Berikut adalah contoh pengaksesan static method milik parent class:
<?php
//
buat class komputer
class
komputer {
// protected static method
protected static function beli_komputer(){
return "Beli Komputer Baru";
}
}
//
turunkan class komputer ke class laptop
class
laptop extends komputer{
// private static method
private static function beli_laptop(){
return "Beli Laptop Baru";
}
// public static method
public static function beli_semua(){
echo parent::beli_komputer();
echo "<br />";
echo self::beli_laptop();
}
}
//
panggil static method
laptop::beli_semua();
//
coba panggil private static method
//
laptop::beli_laptop();
//
Fatal error: Call to private method laptop::beli_laptop()
?>
Pada kode diatas, saya membuat class komputer dengan sebuah static
method beli_komputer(). Method ini memiliki hak akses protected, sehingga hanya
bisa diakses dari dalam class itu sendiri atau dari dalam class turunan.
Class komputer kemudian ‘diturunkan’ kepada class laptop. Di dalam
class laptop, saya membuat dua buah static method. Static method beli_laptop()
di set dengan hak akses private, sehingga tidak bisa diakses dari luar class
laptop.
Dalam method beli_semua(), saya memanggil method beli_komputer()
milik class komputer menggunakan perintah parent::beli_komputer(). Ini adalah
cara pemanggilan static method milik parent class. Kemudian masih di dalam
method beli_semua(), saya memanggil method beli_laptop() dengan perintah
self::beli_laptop(), karena method ini ada di dalam class leptop itu sendiri.
Untuk menguji apakah method beli_semua() sukses dijalankan, saya
kemudian memanggilnya dengan perintah laptop::beli_semua().

Post a Comment