Pemrograman Web Pemrograman Berorientasi Objek 8 Adam Hendra Brata
Pokok Bahasan Pengantar PBO PBO dengan PHP Pengayaan : Halaman Administrasi Tugas 4
Pemrograman Berorientasi Objek
Pemrograman Berorientasi Objek 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 dengan PHP
Class & Object Class Object
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
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();?>
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();
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!';?>
Constructor Method yang pertama kali akan dieksekusi saat kelas diinstansiasi <?php $susan = new manusia('susan'); $susan->menyapa();?> Output Susan bilang Halo!
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??>
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 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
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
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
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; // 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
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; // apa keluarannya? $susan = new manusia(); echo 'Susan memakai Baju 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
Abstract Class abstract class Binatang { abstract protected function bicara(); // Common method (shared) public function garukgaruk() { echo "garuk garuk ";
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
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!
Polymorphism Polymorphism adalah istilah untuk pemberian interface yang sama untuk beberapa bentuk implementasi yang berbeda namun memiliki 1 sifat dasar yang sama
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 ";
Materi Pengayaan : Halaman Administrasi pada Website
Halaman Administrasi pada Website 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 Klien Admin
Halaman Administrasi pada Website LOGIN Admin HALAMAN ADMINISTRATOR KELOLA Klien HALAMAN KLIEN CRUD
Tugas 4
Tugas Kelompok Tugas 4 Memodifikasi Tugas 3 menjadi website yang memakai pemrograman berorientasi objek Tambahkan halaman administrasi di website tematik tiap kelompok untuk melakukan proses CRUD Tugas 4 Deadline : Pengumpulan: file source code web di zip dengan folder sesuai format. (Nomor Tugas: 4) Pengumpulan via email: Minggu, 3 Mei 2015, 24.00
Terimakasih dan Semoga Bermanfaat ^^