rekayasa perangkat lunak · 2015-04-27 · pada umumnya website dinamis memiliki 2 sisi halaman,...

33
Pemrograman Berorientasi Objek 8 Adam Hendra Brata Pemrograman Web

Upload: others

Post on 08-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Pemrograman Berorientasi Objek 8Adam Hendra Brata

Pemrograman Web

Pengantar PBO

PBO dengan PHP

Pengayaan : Halaman Administrasi

Tugas 4

Pokok Bahasan

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

Pemrograman Berorientasi Objek

dengan PHP

Class & Object

Pemrograman Berorientasi Objek dengan PHP

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

}

?>

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

Materi Pengayaan :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

Halaman Administrasi pada Website

Klien

Admin

Halaman Administrasi pada Website

LOGIN

HALAMANADMINISTRATOR

KELOLA

CRUD

HALAMANKLIEN

Klien

Admin

Tugas 4

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

Terimakasih dan Semoga

Bermanfaat ^^