Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Konsep dasar dan pengenalan PBO di PTIIK / FILKOM
Pemrograman Lanjut
Pemodelan Berorientasi Objek
PBO / OOP adalah sebuah konsep / teori pengembangan perangkat lunak yang sifatnya universal dan tidak terikat dengan platform atau bahasa pemrograman tertentu
PHP juga sudah mendukung konsep PBO untuk proses pengembangan website yang lebih dinamis dan modern
Materi PBO dengan PHP tidak ada di materi praktikum
Pemrograman Berorientasi Objek
Class & Object
Class = Blueprint / cetakan,Object = Instance / hasil cetakan
<?php
// filename: manusia.class.php
class manusia {
public $nama; // attribute
public function menyapa() {
echo 'Halo!';} // method
}
?>
Pemrograman Berorientasi Objek dengan PHP
Class & Object
// file php berbeda
<?php
require('manusia.class.php');
$susan = new manusia; // instansiasi
$susan->nama = 'Susan';
echo $susan->nama
. ' jika menyapa, berkata: '
. $susan->menyapa();
?>
Pemrograman Berorientasi Objek dengan PHP
Class & Object
Jika ingin menggunakan / mengakses atribut dalam method, dapat digunakan keyword $this
class manusia {
public $nama;
public function menyapa() {
echo $this->nama . ' bilang Halo!';}
}
$susan = new manusia;
$susan->nama = 'Susan';
$susan->menyapa();
Pemrograman Berorientasi Objek dengan PHP
Constructor
Method yang pertama kali akan dieksekusi saat kelas diinstansiasi
<?php
class manusia {
public $nama;
public function __construct($nama) {
$this->nama = $nama;
}
public function menyapa() {
echo $this->nama . ' bilang Halo!';}
}
?>
Pemrograman Berorientasi Objek dengan PHP
Constructor
Method yang pertama kali akan dieksekusi saat kelas diinstansiasi
<?php
…
$susan = new manusia('Susan');
$susan->menyapa();
…
?>
Output
Susan bilang Halo!
Pemrograman Berorientasi Objek dengan PHP
Constructor
<?php
$mahasiswi = new manusia('Susan');
$mahasiswa = new manusia('Adi');
echo $mahasiswa->nama; // Adi
$mahasiswa->nama = "Budi";
echo $mahasiswi->nama; // Susan
echo $mahasiswa->nama; // siapa dan kenapa ?
?>
Pemrograman Berorientasi Objek dengan PHP
Inheritance
Teknik menciptakan kelas dari turunan kelas lain
Kelas turunan mewarisi atribut dan method kelas induk dan dapat memiliki atribut dan method tambahan yang lain
Pemrograman Berorientasi Objek dengan PHP
Parent
Children
Inheritance
class mahasiswa extends manusia {
public function __construct($nama){
$this->nama = $nama;
}
public $tugas = 'belajar';
}
$susan = new mahasiswa('Susan');
echo $susan->menyapa()
. ' ketika sedang ' . $susan->tugas;
Output
Susan bilang Halo! ketika sedang belajar
Pemrograman Berorientasi Objek dengan PHP
Inheritance
class mahasiswa extends manusia {
...
public function menyapa(){
echo $this->nama . ' bilang Hei!';
} // override
...
} // apa hubungan constructor parent dan child ?
$susan = new mahasiswa('Susan');
echo $susan->menyapa()
Output ? // apa outputnya
Pemrograman Berorientasi Objek dengan PHP
Class Visibility
Public : dapat diakses oleh semua class
Private : hanya dapat diakses oleh class itu sendiri
Protected : hanya dapat diakses oleh class itu sendiri dan class turunannya
Pemrograman Berorientasi Objek dengan PHP
Class Visibility
<?php
class MyClass {
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';
function printHello() {
echo $this->public;
echo $this->protected;
echo $this->private;
}
}
Pemrograman Berorientasi Objek dengan PHP
// apa keluarannya ?$obj = new MyClass();echo $obj->public; echo $obj->protected; echo $obj->private; $obj->printHello();
Encapsulation
Teknik untuk menyimpan elemen dari suatu atau lebih objek ke dalam objek yang lain, sehingga objek yang menyimpannya mendapat kontrol penuh
Jika digabungkan dengan penggunaan class visibility yang baik akan memungkinkan adanya information hiding
Pemrograman Berorientasi Objek dengan PHP
Encapsulation
<?php
class pakaian {
public $warna = 'merah';
}
class manusia {
private $baju;
public function __construct() {
$this->baju = new pakaian;
$this->baju->warna = 'biru';
}
public function warnaBaju() {
return $this->baju->warna;
}
}
Pemrograman Berorientasi Objek dengan PHP
// apa keluarannya ?$susan = new manusia();echo 'Susan memakaiBaju berwarna ' . $susan->warnaBaju();
Abstract Class
Class yang harus diturunkan jika ingin dipakai, untuk mengakses elemen – elemen yang berada di parent class, children class harus menggunakan keyword parent
Abtsract class memiliki sifat sebagai berikut : Tidak dapat diinstansiasikan
Method-methodnya dapat berupa method abstrak tidak diimplementasikan
Method-methodnya dapat berupa method tidak abstrak diimplementasikan
Suatu class dapat menuruni sifat dari 1 abstract class
Pemrograman Berorientasi Objek dengan PHP
Abstract Class
abstract class Binatang
{
abstract protected function bicara();
// Common method (shared)
public function garukGaruk() {
echo "garuk garuk…";
}
}
Pemrograman Berorientasi Objek dengan PHP
Abstract Class
class Kucing extends Binatang
{
public function bicara() {
echo "Meong…"
}
}
$anggora = new Binatang; // E
$anggora = new Kucing;
$anggora->bicara(); // meong…
$anggora->garukGaruk();
// garuk garuk…
Pemrograman Berorientasi Objek dengan PHP
Interface
Interface memiliki sifat sebagai berikut : Sifat dasarnya adalah “menyatakan kontrak”
Method-methodnya berupa method abstrak tidak diimplementasikan
Method-methodnya harus diimplementasikan sesuai aslinya, baik jumlahnya maupun deklarasinya dan sifatnya semuanya public
Suatu class dapat mengimplementasikan sifat dari banyak interface
Kenapa Interface dan apa bedanya dengan class abstract ?
Design Pattern
Lihat materi pendukung !
Pemrograman Berorientasi Objek dengan PHP
Polymorphism
Polymorphism adalah istilah untuk pemberian interface yang sama untuk beberapa bentuk implementasi yang berbeda namun memiliki 1 sifat dasar yang sama
Pemrograman Berorientasi Objek dengan PHP
Polymorphism
interface binatang {
public function bicara();
}
class kucing implements binatang {
public function bicara() {
echo "Meong…";
}
}
class anjing implements binatang {
public function bicara() {
echo "Guk… Guk…";
}
}
Pemrograman Berorientasi Objek dengan PHP
Halaman administrasi adalah halaman yang pada umumnya digunakan untuk melakukan pengelolaan isi atau unsur lain sebuah website
Halaman administrasi berbeda dengan halaman website yang dapat diakses secara bebas oleh pengguna melalui internet (halaman klien)
Halaman administrasi hanya dapat digunakan oleh pihak yang punya autoritas khusus (admin)
Pada umumnya website dinamis memiliki 2 sisi halaman, yaitu klien dan admin
Halaman Administrasi pada Website
Tugas Kelompok
Memodifikasi Tugas 3 menjadi website yang memakai pemrograman berorientasi objek
Tambahkan halaman administrasi di website tematik tiap kelompok untuk melakukan proses CRUD
Deadline : Pengumpulan: file source code web di
zip dengan folder sesuai format. (Nomor Tugas: 4)
Pengumpulan via email:
Minggu, 3 Mei 2015, 24.00
Tugas 4
Tugas 4