Desain slide ini dadaptasi dari University of San Fransisco
4. Pemrograman Berorientasi Objek
PTI15010
Pemrograman Web
Agi Putra Kharisma, S.T., M.T.
Genap 2014/2015
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
Contoh 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 Pada 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.
Contoh 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
}
}
Model View Controller
Bagaimana membuat fungsionalitas antarmuka
pengguna secara terpisah (modular) sehingga mudah
dimodifikasi secara individual?
?
Studi Kasus: Aplikasi Ganjil/Genap
Buat sebuah aplikasi berbasis web yang mampu mendeteksi
masukan pengguna (melaui HTML form) berupa angka,
kemudian menentukan apakah angka tersebut termasuk
bilangan ganjil atau genap.
Aplikasi dibuat dengan teknik OOP dan menggunakan
architectural pattern MVC