Object Oriented Programming dalam PHP Konsep Object Oriented
Object Oriented Programming dalam PHP
Konsep Object Oriented Classes, yang merupakan “cetakan/blueprints" untuk sebuah objek dan merupakan kode actual yang mendefinisikan properites dan method. Objects, yang menjalankan instansi dari class dan mengandung semua data internal dan informasi yang dibutuhkan untuk aplikasi agar dapat berfungsi. Encapsulation, yang merupakan kemampuan dari sebuah objek untuk memproteksi akses pada data internal Inheritance, yang merupakan kemampuan untuk mendefinisikan suatu jenis class yang merupakan sebuah sub-tipe dari sebuah class yang berbeda (sama caranya seperti sebuah kotak merupakan sebuah bentuk lain dari persegi panjang).
Membuat Class Mulai dari sebuah contoh sederhana. Simpan kode berikut dalam sebuah file dengan nama class. lat. php: <? php class Demo { } ? >
menambahkan Method class Demo tidak akan berguna jika tidak dapat melakukan apapun, jadi buatlah method untuk kelas tersebut. <? php class Demo { function Say. Hello() { echo “Hello $name !”; } } ? >
tambahkan Properties Tambahkan sebuah property pada class seperti menambahkan method. <? php class Demo { public $name; function Say. Hello() { echo “Hello $this->$name !”; } } ? >
Instansi Object Instansi sebuah objek yang merupakan tipe dari Demo seperti berikut ini: <? php include_once('class. lat. php'); $obj. Demo = new Demo(); $obj. Demo->name = “Koro”; $obj. Demo->Say. Hallo(); ? >
Proteksi akses pada variable anggota (1) Terdapat tiga level jangkauan berbeda dari variable anggota atau method: Public ▪ Private ▪ Anggota dapat mengakses pada sebagian dan seluruh kode Anggota hanya dapat mengakses pada class-nya sendiri Protected ▪ Anggota tersedia pada class-nya sendiri, dan pada classs turunannya Public merupakan level default untuk sembarang variable anggota atau fungsi yang tidak secara eksplisit menentukan levelnya, tetapi disaran untuk selalu secara eksplisit menentukan level jangkauan untuk seluruh anggota dari class.
Proteksi akses pada variable anggota (2) Coba ubah level akses dari property “name” menjadi private dari kode sebelumnya. Apa kemungkinan solusi untuk masalah ini? Buat fungsi getter dan setter. . . Selalu gunakan fungsi get dan set untuk properti. Ubah bisnis logic dan kebutuhan validasi data lebih mudah diimplementasikan.
Konstanta Class Diperbolehkan untuk menentukan nilai tetap pada sebuah basis class tetap sama dan tidak dapat diubah. Konstanta berbeda dari variable biasa dalam hal tidak perlu menggunakan tanda $ untuk mendeklarasikan dan menggunakannya Nilainya harus berupa ekspresi konstan, bukan (sebagai contoh) sebuah variable, property, sebuah hasil dari operasi matematika, atau pemanggilan fungsi.
Konstanta Class (lanj. ) <? php class My. Class { constant = 'constant value'; function show. Constant() { echo self: : constant. "n"; } } echo My. Class: : constant. "n"; ? >
Keyword Static Mendeklarasikan property atau method dari class sebagai static membuat akses terhadap class tersebut tidak memerlukan instansi. Properti yang dideklarasikan sebagai static tidak dapat diakses dengan sebuah objek classs yang diinstansi
<? php class Foo { public static $my_static = 'foo'; public function static. Value() { return self: : $my_static; } print $foo->static. Value(). "n"; print $foo>my_static. "n"; // Undefined "Property" my_sta tic print $foo: : $my_static. "n"; $classname = 'Foo'; print $classname: : $my_static. "n"; // As of PHP 5. 3. 0 } class Bar extends Foo { public function foo. Static() { return parent: : $my_static; } } print Foo: : $my_static. "n"; $foo = new Foo(); print Bar: : $my_static. "n"; $bar = new Bar(); print $bar->foo. Static(). "n"; ? >
Contructor Constructor adalah method yang akan diimplementasikan ketika objek telah diinisiasi Pada umumnya, constructor digunakan untuk menginisialisasi sebuah objek Gunakan function __construct untuk membuat constructor dalam PHP <? php class Demo { function __construct { } } ? >
Destructor Destructor, adalah method yang akan dijalankan ketika objek diakhiri <? php class Demo { function __destruct { } } ? >
Inheritance Terdapat keuntungan dari inheritance dengan PHP, yang paling sering adalah menyederhanakan dan mengurangi instan dari kode yang redundan
Inheritance (2) class hewan { protected $jml_kaki; protected $warna_kulit; function __construct() { } function berpindah() { echo "Saya berpindah"; } function makan() { echo "Saya makan"; } }
Inherintace (3) class kucing extends hewan { function berpindah() { echo "Saya bergerak dengan 4 kaki"; } } class burung extends hewan { protected $sayap; function berpindah() { echo "Saya terbang"; } function makan() { echo "Saya makan dengan mematuk"; } } class monyet extends hewan { }
Tugas
Tugas (lanj. ) Class product : name price discount Class CDMusic : artist Genre Class CDRack capacity model
Tugas (cont. ) CDMusic Menuruni name, price dan discount dari Product Price = price + 10% Ada penambahan 5% pada discount CDRack Menuruni name, price dan discount dari Product Price = price + 15% Tidak ada penambahan discount Buatlah code dalam PHP, serta simulasi untuk kasus tersebut!
<? php echo “Terima Kasih. . !!!” ? >
- Slides: 21