Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public...
Transcript of Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public...
Pemrograman Berorientasi Objek Dengan PHP
Agi Putra Kharisma, S.T., M.T.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
@tomnomnom
Literatur
• Buku [2] halaman 102 - 117
Abstraksi
Contoh Level Abstraksi
ManusiaManusia
-nama
+set_nama()+get_nama()
class Manusia { private $nama; public function set_nama($nama) { $this->nama = $nama; } public function get_nama(){ return $this->nama; }
class Manusia { } class Manusia {
private $nama; public function set_nama(){ } public function get_nama(){ } }
Level abstraksi semakin rendah Level abstraksi semakin tinggi
Terminologi (1)
Class Object
Terminologi (2)
• Interface
Mengapa interface?
• Kontrak
• Reusability
• Konsistensi
• Program to an 'interface', not an 'implementation'. (Baca buku: Design Patterns: Elements of Reusable Object-Oriented Software -GoF)
Terminologi (3)
• Inheritance
• Association (use)
• Aggregation (has)
• Composition (own)
• Dependency
Composition vs Inheritance
@decharlas
Deklarasi Kelas Pada PHP class PerguruanTinggi {
private $nama, $akreditasi;
public function get_nama() {
return $this->nama;
}
public function set_nama($nama) {
$this->nama = $nama;
}
public function get_akreditasi() {
return $this->akreditasi;
}
public function set_akreditasi($akreditasi) {
$this->akreditasi = $akreditasi;
}
}
class Universitas extends PerguruanTinggi {
private $rektor;
public function get_rektor() {
return $this->rektor;
}
public function set_rektor($rektor) {
$this->rektor = $rektor;
}
}
class Politeknik extends PerguruanTinggi {
private $direktur;
public function get_direktur() {
return $this->direktur;
}
public function set_direktor($direktur) {
$this->direktur = $direktur;
}
}
Instansiasi Objek Pada PHP
$UB = new Universitas();
$polinema = new Politeknik();
Objek di PHP = Passing By Reference
class User { } $bona = new User(); $bona->name = "Bona"; $boni = $bona; $boni->name = "Boni"; echo "$bona->name dan $boni->name";
class User { } $bona = new User(); $bona->name = "Bona"; $boni = clone $bona; $boni->name = "Boni"; echo "$bona->name dan $boni->name";
Property & Method Scope di PHP
• Public – Secara default, property & method diasumsikan
bersifat publik (jika tidak ada pendefinisian secara eksplisit).
• Protected – Hanya dapat di-referensi oleh method dalam kelas
yang sama atau turunannya.
• Private – Hanya dapat di-referensi oleh method dalam kelas
yang sama.
Static Property & Method
class PerguruanTinggi { private $nama, $akreditasi; public function get_nama() { return $this->nama; } ....... public static function getAkreditasiA() { // return daftar PT dg akreditasi A } }
Studi Kasus
• Buat abstraksi berorientasi objek dalam bentuk diagram kelas untuk ‘Program Daftar Mahasiswa’ berikut ini: – Contoh solusi berupa kode sumber dapat diunduh di blog mata kuliah.
@urokuta
Tugas
1. Baca chapter 10 pada buku [2]
2. Unduh aplikasi studi kasus (Daftar Mahasiswa), ubah aplikasi tersebut sehingga data mahasiswa dapat disimpan dan diakses pada basis data MySQL.
– Gunakan interface yang telah didefinisikan