Pemrograman Berorientasi Objek Dengan...

Post on 28-May-2020

24 views 0 download

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