Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public...

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

Transcript of Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public...

Page 1: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Pemrograman Berorientasi Objek Dengan PHP

Agi Putra Kharisma, S.T., M.T.

Page 2: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Page 3: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian
Page 4: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

@tomnomnom

Page 5: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Literatur

• Buku [2] halaman 102 - 117

Page 6: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Abstraksi

Page 7: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

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

Page 8: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Terminologi (1)

Class Object

Page 9: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Terminologi (2)

• Interface

Page 10: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Mengapa interface?

• Kontrak

• Reusability

• Konsistensi

• Program to an 'interface', not an 'implementation'. (Baca buku: Design Patterns: Elements of Reusable Object-Oriented Software -GoF)

Page 11: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Terminologi (3)

• Inheritance

• Association (use)

• Aggregation (has)

• Composition (own)

• Dependency

Page 12: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Composition vs Inheritance

@decharlas

Page 13: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

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;

}

}

Page 14: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

Instansiasi Objek Pada PHP

$UB = new Universitas();

$polinema = new Politeknik();

Page 15: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

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";

Page 16: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

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.

Page 17: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

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 } }

Page 18: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

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.

Page 19: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

@urokuta

Page 20: Pemrograman Berorientasi Objek Dengan · PDF fileProperty & Method Scope di PHP •Public –Secara default, property & method diasumsikan bersifat publik (jika tidak ada pendefinisian

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