Pemrograman Berorientasi Objek Dengan...

20
Pemrograman Berorientasi Objek Dengan PHP Agi Putra Kharisma, S.T., M.T.

Transcript of Pemrograman Berorientasi Objek Dengan...

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