Pemrograman Web Pemrograman Berorientasi Objek Adam Hendra Brata
Pokok Bahasan Pengantar PBO PBO dengan PHP Pengembangan Website Berorientasi Objek
Pemrograman Berorientasi Objek
Pemrograman Berorientasi Objek Konsep dasar dan pengenalan PBO di FILKOM Pemrograman Lanjut Pemodelan Berorientasi Objek Analisis dan Perancangan Sistem Analisis dan Perancangan Sistem Informasi 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
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() { return 'Halo!'; //echo Hai ; // 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 ";
Pengembangan Website Berorientasi Objek
Pengembangan Website Berorientasi Objek Project Akhir? ^^
Pengembangan Website Berorientasi Objek Project Akhir? ^^ Langkah langkah pengerjaan?
Proyek Akhir Pemrograman Web
1. Analisis Kebutuhan a. Identifikasi Aktor b. Spesifikasi Kebutuhan i. Pemodelan Diagram Use Case ii. Deskripsi Use Case Scenario 2. Perancangan Sistem a. Perancangan arsitektural website (Analisis Statis) i. Pemodelan Class Diagram ii. Definisi Class b. Perancangan Data i. Pemodelan Entity Relationship Diagram c. Perancangan perilaku website (Analisis Dinamis) i. Pemodelan Sequence Diagram d. Perancangan Antarmuka Website i. Pemodelan template antarmuka website ii. Pemodelan aliran halaman website
3. Implementasi Sistem Website a. Pengembangan aplikasi web berorientasi objek dengan menggunakan PHP 4. Implementasi Basis Data a. Implementasi struktur basis data dengan menggunakan MySQL 5. Implementasi Antarmuka a. Implementasi antarmuka website dengan menggunakan HTML5 dan CSS3 6. Pengujian Website 7. Presentasi dan Evaluasi Proyek
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
Terimakasih dan Semoga Bermanfaat ^^