public nama; atribut properti nama manusia method constructor untuk kelas manusia
public function __construct arg { thisnama = arg;
}
method menyapa pada kelas manusia public function menyapa {
echo thisnama . bilang Halo; }
}
?
Dapat diketahui bahwa pada method constructor kelas manusia menerima sebuah argumen untuk disimpan dalam atribut nama. Maka untuk menginstansiasi kelas manusia menjadi
sebuah objek, sekaligus memberikan nilai terhadap atribut nama yang diberikan melalui method constructor dengan cara:
?php filename: manusia.construct.php menyertakan class manusia pada kode PHP ini
include manusia.class.construct.php;
instansiasi dengan argumen untuk method constructor susan = new manusiaSusan;
susanmenyapa; output: Susan bilang Halo
joko = new manusiaJoko; jokomenyapa; output: Joko bilang Halo
?
Dengan method constructor, hal-hal yang sifatnya perlu dilakukan secara otomatis ketika sebuah kelas diinstansiasi menjadi objek dapat dimasukkan pada method constructor.
Sehingga pada contoh tersebut di atas, pemberian nilai terhadap properti nama dapat disingkat dengan dilakukan secara langsung melalui method constructor pada saat instansiasi
objek.
2.3 Inheritance
Suatu definisi kelas dapat mewarisi definisi kelas lainnya parent class melalui keyword
extends
. Contoh syntax dari pewarisan pada bahasa pemrograman PHP adalah sebagai berikut:
?php filename inheritance.php class ChildClass extends ParentClass {
definisi method dan properti kelas }
?
Halaman 103
Dengan inheritance pewarisan, kelas yang mewarisi secara otomatis memiliki seluruh member method dan properti dari kelas
parent-nya. Method dan properti yang diwarisi memiliki fungsional yang sama dengan
parent-nya. Sebagai tambahan, kelas child dapat menambahkan properti dan method diluar dari method dan properti yang dimiliki oleh parent
class. Contoh penerapan inheritance pada bahasa pemrograman php adalah sebagai berikut:
?php file inheritance.manusia.php menyertakan file manusia.class.php tempat definisi kelas manusia berada
include manusia.class.php;
definisi kelas mahasiswa yang mewarisi kelas manusia class mahasiswa extends manusia {
definisi constructor public function __constructnama{
thisnama = nama; }
properti yang dimiliki oleh kelas manusia public tugas = belajar;
} instansiasi kelas mahasiswa
susan = new mahasiswaSusan;
echo susanmenyapa . ketika sedang . susantugas;
Output: Susan bilang Halo ketika sedang belajar
?
Dari contoh tersebut di atas dapat diketahui bahwa properti
nama
diwarisi dari kelas
manusia
dan dapat digunakan langsung oleh kelas yang mewarisinya
mahasiswa
. Selain itu, kelas
mahasiswa
juga memiliki properti
tugas
yang tidak dimiliki oleh kelas parent, yaitu kelas
manusia .
2.4 Enkapsulasi
Enkapsulasi merupakan suatu metode untuk menyembunyikan representasi internal sebuah objek dari luar, sehingga tidak dapat digunakan secara langsung dari luar. Mekanisme
enkapsulasi dengan metode abstraksi juga merupakan salah satu cara untuk melindungi properti dari luar.
Berikut ini adalah contoh enkapsulasi dengan menggunakan subclass dengan bahasa pemrograman PHP:
?php filename: enkapulasi.php class pakaian {
public warna = merah; properti yang dienkapsulasi }
Halaman 104
class manusia { private properti baju yang menjadi objek kelas pakaian
private baju;
public function __construct { thisbaju = new pakaian;
thisbajuwarna = biru;
} public function warnaBaju {
return thisbajuwarna; }
} instansiasi kelas manusia
susan = new manusia;
mengakses properti warna dari method warnaBaju echo Susan memakai baju berwarna . susanwarnaBaju;
Dari kode PHP tersebut di atas properti warna pada kelas pakaian
dienkapsulasi dengan menggunakan method
warnaBaju
pada kelas manusia. Sehingga properti warna pada kelas
pakaian
hanya bisa dibaca nilainya melalui method
warnaBaju
, namun tidak dapat diganti nilainya dari instance objek kelas
manusia
, dalam hal ini objek dari kelas manusia adalah
susan . Dalam contoh ini, properti
warna pada kelas
pakaian dienkapsulasi menjadi
read-only melalui public method
warnaBaju
pada kelas
manusia
.
2.4 Abstract dan Interface