Pemrograman Berorientasi Objek Dengan...
Transcript of Pemrograman Berorientasi Objek Dengan...
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
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
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;
}
}
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.