4. Pemrograman Berorientasi Objek - Universitas...

17
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

Transcript of 4. Pemrograman Berorientasi Objek - Universitas...

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

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 Dalam OOP (1)

Class Objek

Terminologi Dalam OOP (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

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;

}

}

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

Latihan

Buat aplikasi buku tamu sederhana dengan ketentuan sbb:

1. Buku tamu berisi nama dan isi.

2. Dibuat dengan OOP & MVC

3. Data disimpan pada basis data MySQL