Pemrograman Web Object Oriented Programming in PHP 5.

33
Pemrograman Web Object Oriented Programming in PHP 5

Transcript of Pemrograman Web Object Oriented Programming in PHP 5.

Page 1: Pemrograman Web Object Oriented Programming in PHP 5.

Pemrograman Web

Object Oriented Programming in PHP 5

Page 2: Pemrograman Web Object Oriented Programming in PHP 5.

What is a function? Conceptually, what does a function

represent?

…give the function something (arguments), it does something with

them, and then returns a result…

Action or Method

Page 3: Pemrograman Web Object Oriented Programming in PHP 5.

What is a class? Conceptually, a class represents an object,

with associated methods and variables

Page 4: Pemrograman Web Object Oriented Programming in PHP 5.

Class Definition Example<?php// filename: manusia.class.php

class manusia {public $nama;public function menyapa() {

echo 'Halo!';}

}?>

Page 5: Pemrograman Web Object Oriented Programming in PHP 5.

Class Defintion Similar to defining a function.. The definition does not do anything by itself.

It is a blueprint, or description, of an object. To do something, you need to use the class…

Page 6: Pemrograman Web Object Oriented Programming in PHP 5.

Class Usage<?php

require('manusia.class.php');$susan = new manusia;$susan->nama = 'Susan';echo $susan->nama . ' jika menyapa, berkata: '. $susan->menyapa();

?>

Page 7: Pemrograman Web Object Oriented Programming in PHP 5.

Using attributes within the class.. If you need to use the class variables within any class

actions/methods, use the special variable $this in the definition:

class manusia {public $nama;public function menyapa() { echo $this->nama . ' bilang Halo!';

}}

$susan = new manusia;$susan->nama = 'Susan';$susan->menyapa();

Page 8: Pemrograman Web Object Oriented Programming in PHP 5.

Constructor methods A constructor method is a function that is

automatically executed when the class is first instantiated.

Create a constructor by including a function within the class definition with the __construct name.

Remember.. if the constructor requires arguments, they must be passed when it is instantiated!

Page 9: Pemrograman Web Object Oriented Programming in PHP 5.

Constructor Example<?phpclass manusia {

public $nama;public function __construct($nama) {

$this->nama = $nama;}public function menyapa() {

echo $this->nama . ' bilang Halo!';}

} ?>

Page 10: Pemrograman Web Object Oriented Programming in PHP 5.

Constructor Example<?php

…$susan = new manusia('Susan');$susan->menyapa();

…?>

Output: Susan bilang Halo!

Page 11: Pemrograman Web Object Oriented Programming in PHP 5.

Class Scope Like functions, each instantiated object has its own local

scope.

<?php

$mahasiswi = new manusia('Susan');$mahasiswa = new manusia('Adi');

echo $mahasiswa->nama; // Adi

$mahasiswa->nama = "Budi";echo $mahasiswi->nama; // Susan;

?>

Page 12: Pemrograman Web Object Oriented Programming in PHP 5.

Inheritance The real power of using classes is the

property of inheritance – creating a hierarchy of interlinked classes.

manusia

mahasiswa dosen

parent

children

Page 13: Pemrograman Web Object Oriented Programming in PHP 5.

Inheritance The child classes 'inherit' all the methods and

variables of the parent class, and can add extra ones of their own.

e.g. the child classes mahasiswa inherits the variable nama and method menyapa from the manusia class, and can add extra ones…

Page 14: Pemrograman Web Object Oriented Programming in PHP 5.

Inheritance example<?phpclass 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

Page 15: Pemrograman Web Object Oriented Programming in PHP 5.

Method Override Mahasiswa selalu berkata 'Hei!' ketika menyapa.

<?phpclass mahasiswa extends manusia {

…public function menyapa(){

echo $this->nama . ' bilang Hei!';}

}

$susan = new mahasiswa('Susan');echo $susan->menyapa();

Output: Susan bilang Hei! ketika sedang belajar

Page 16: Pemrograman Web Object Oriented Programming in PHP 5.

Child Constructors? If the child class possesses a constructor

function, it is executed and any parent constructor is ignored.

If the child class does not have a constructor, the parent's constructor is executed.

If the child and parent does not have a constructor, the grandparent constructor is attempted…

… etc.

Page 17: Pemrograman Web Object Oriented Programming in PHP 5.

Class Visibility Visibility

The visibility of a property or method can be defined by prefixing the declaration with the keywords public, protected or private. Class members declared public can be accessed everywhere. Members declared protected can be accessed only within the class itself and by inherited and parent classes. Members declared as private may only be accessed by the class that defines the member.

Property Visibility Class properties must be defined as public, private,

or protected. If declared using var, the property will be defined as public.

Page 18: Pemrograman Web Object Oriented Programming in PHP 5.

Visibility Exampleclass MyClass{ public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private';

function printHello() { echo $this->public; echo $this->protected; echo $this->private; }}

$obj = new MyClass();echo $obj->public; // Worksecho $obj->protected; // Fatal Errorecho $obj->private; // Fatal Error$obj->printHello(); // Shows Public, Protected and Private

class MyClass2 extends MyClass{ protected $protected = 'Protected2';

function printHello() { echo $this->public; echo $this->protected; echo $this->private; }}

$obj2 = new MyClass2();echo $obj2->public; // Worksecho $obj2->private; // Undefinedecho $obj2->protected; // Fatal Error// Shows Public, Protected2, Undefined$obj2->printHello();

Page 19: Pemrograman Web Object Oriented Programming in PHP 5.

Objects within Objects It is perfectly possible to include objects within another object

<?phpclass pakaian {

public $warna = 'merah';}

class manusia {public $nama;public $baju;

public function __construct( $nama ) {$this->nama = $nama;

}}

Page 20: Pemrograman Web Object Oriented Programming in PHP 5.

Objects within objects example<?php$susan = new manusia('Susan');$susan->baju = new pakaian;

echo $susan->nama . ' memakai baju warna '. $susan->baju->warna;

?>

Output: Susan memakai baju warna merah

Page 21: Pemrograman Web Object Oriented Programming in PHP 5.

Encapsulation Encapsulation is a way of storing an object or

data as a property within another object, so that the outer object has full control over what how the internal data or object can be accessed.

This, in combination with making the inner object/property private, enables information hiding.

Page 22: Pemrograman Web Object Oriented Programming in PHP 5.

Encapsulation Example<?phpclass 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;}

}$susan = new manusia();echo 'Susan memakai baju berwarna ' . $susan->warnaBaju();Output: Susan memakai baju berwarna biru

Page 23: Pemrograman Web Object Oriented Programming in PHP 5.

Abstract Class It's a kind "father" that must be inherited to

be used. Classes that inherit differ from them only in the abstract methods and can access the methods of the parent class using the keyword parent.

Features: can not be instantiated methods can be abstract (not implemented) methods may be not abstract (implemented) a class can inherit from a single abstract class

Page 24: Pemrograman Web Object Oriented Programming in PHP 5.

Abstract Classabstract class Binatang

{

abstract protected function bicara();

// Common method (shared)

public function garukGaruk() {

echo "garuk garuk…";

}

}

Page 25: Pemrograman Web Object Oriented Programming in PHP 5.

Extending Abstract Classclass Kucing extends Binatang

{

public function bicara() {

echo "Meong…"

}

}

$anggora = new Binatang; // E

$anggora = new Kucing;

$anggora->bicara(); // meong…

$anggora->garukGaruk();

// garuk garuk…

class Anjing extends Binatang

{

public function bicara() {

echo "Guk…"

}

}

$herder = new Binatang; // E

$herder = new Anjing;

$herder->bicara(); // Guk…

$herder->garukGaruk();

// garuk garuk…

Page 26: Pemrograman Web Object Oriented Programming in PHP 5.

Interface The clearest definition is that an interface is a

contract. Features:

All classes that implement an interface must develop all the methods that have been defined

The class implementing the interface must use the exact same method signatures as are defined in the interface. Not doing so will result in a fatal error

All methods declared in an interface must be public, this is the nature of an interface

A class can implement more than one interface An interface can be used by the Type Hinting

Page 27: Pemrograman Web Object Oriented Programming in PHP 5.

Polymorphism Polymorphism is the ability (in programming)

to present the same interface for differing underlying forms (data types).

Page 28: Pemrograman Web Object Oriented Programming in PHP 5.

Polymorphism Example<?php

interface binatang { public function bicara();}class kucing implements binatang { public function bicara() { echo "Meong…"; }}class anjing implements binatang { public function bicara() { echo "Guk… Guk…"; }}

Page 29: Pemrograman Web Object Oriented Programming in PHP 5.

Polymorphism Example<?php

$hewan = new kucing;$hewan->bicara(); // Meong...$hewan = new anjing;$hewan->bicara(); // Guk... Guk...

?>

Page 30: Pemrograman Web Object Oriented Programming in PHP 5.

Latihan Buatlah sebuah interface kendaraan yang

memiliki: method: bukaPintu(); jumlahRoda();

Buatlah kelas mobil dan bus yang mengimplementasikan interface kendaraan tersebut.

Mobil dan bus memiliki atribut $roda dan $pintu; Nilai atribut $roda mobil = 4; bus = 6; Nilai atribut $pintu mobil = 5; bus = 3; Perlihatkan polymorphism pada kelas mobil dan

bus tersebut di atas untuk method bukaPintu() dan jumlahRoda()!

Page 31: Pemrograman Web Object Oriented Programming in PHP 5.

Final Keyword PHP introduces "Final" keyword to prevent

sub-class method overriding. "Final" keyword can be implemented on

properties, methods and classes Final class means it cannot be inherited

Page 32: Pemrograman Web Object Oriented Programming in PHP 5.

Deleting objects So far our objects have not been destroyed

till the end of our scripts.. Like variables, it is possible to explicitly

destroy an object using the unset() function.

Page 33: Pemrograman Web Object Oriented Programming in PHP 5.

A copy, or not a copy.. Entire objects can be passed as arguments to

functions, and can use all methods/variables within the function.

Remember however.. like functions the object is COPIED when passed as an argument unless you specify the argument as a reference variable &$variable