Pemrograman Web Object Oriented Programming in PHP 5
Pengantar OOP
PHP pada awalnya hanyalah kumpulan script sederhana. Dimulai sejak PHP 4 -> OOP Script yang menggunakan konsep object-oriented akan lebih cepat dan lebih efisien.
OOP bukanlah sekedar cara penulisan sintaks program yang berbeda, namun lebih dari itu, OOP merupakan cara pandang dalam menganalisa sistemdan permasalahan pemrograman. Dalam OOP, setiap bagian dari program adalah object. Sebuah object mewakili suatu bagian program yang akan diselesaikan.
Konsep OOP dasar :
Encapsulation (Class dan Object) Inheritance (Penurunan sifat), dan Polymorphisme
Konsep OOP
Object adalah instansiasi (perwujudan) dari kelas Class merupakan penjelasan atau deskripsi dari object. Di dalam class, terdapat penjelasan tentang suatu object termasuk properties yang dimilikinya serta kelakuan atau method yang bisa dilakukan oleh object. Encapsulation, kemampuan sebuah object untuk melakukan protect pada data internal Inheritance, kemampuan untuk mendefinisikan kelas dari satu jenis sebagai sub-tipe yang berbeda dari kelas
What is a class?
Secara konsep, class merepresentasikan sebuah object, terkait dengan methods dan variables/properties.
Class Definition Example
Class Defintion
Sama dengan pendefinisian fungsi Pendefinisan tersebut tidak dapat bekerja sendiri. Karena cm sebuah “blueprint” or “description” dari sebuah object. To do something, you need to use the class…
Class Usage nama = 'Susan'; echo $susan->nama . ' jika menyapa, berkata: '; $susan->menyapa(); ?>
Menggunakan Atribut dalam class
Gunakan special variable $this apabila ingin menggunakan variable class dalam setiap class action/method
class manusia { public $nama; public function menyapa() { echo $this->nama . ' bilang Halo!'; } }
$susan = new manusia; $susan->nama = 'Susan'; $susan->menyapa();
Constructor methods
Constructor merupakan sebuah method khusus yang akan secara otomatis dijalankan saat object terbentuk. Constructor tidak harus ada, namun dalam satu class hanya boleh ada satu Constructor Untuk membuat Constructor , cukup dengan mendefinisikan suatu fungsi dengan nama __construct
* Remember.. if the constructor requires arguments, they must be passed when it is instantiated!
Constructor Example class manusia { public $nama; public function __construct($nama) { $this->nama = $nama; } public function menyapa() { echo $this->nama . ' bilang Halo!'; }
$susan = new manusia('Susan'); $susan->menyapa();
Constructor Example menyapa(); … ?> Output: Susan bilang Halo!
Class Scope
Like functions, each instantiated object has its own local scope.
nama; // Joko echo $mahasiswi->nama; // Susan; ?>
Inheritance
The real power of using classes is the property of inheritance – creating a hierarchy of interlinked classes.
manusia
mahasiswa
dosen
parent children
Inheritance (Pewarisan)
Class child mewarisi 'semua metode dan variabel dari class parent, misalnya class child mahasiswa mewarisi variable nama dan method menyapa dari class manusia, and can add extra ones…
Inheritance example nama = $nama; } public $tugas = 'belajar'; } $susan = new mahasiswa('Susan'); echo $susan->menyapa() . ' ketika sedang ' . $susan->tugas;
Method Override
Mahasiswa selalu berkata 'Hei!' ketika menyapa.
nama . ' bilang Hei!'; } } $susan = new mahasiswa('Susan'); echo $susan->menyapa(); Output: Susan bilang Hei! ketika sedang belajar
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.
Objects within Objects It is perfectly possible to include objects within another object class pakaian { public $warna = 'merah'; } class manusia { public $nama; public $baju;
public function __construct( $nama ) { $this->nama = $nama; } } $susan = new manusia('Susan'); $susan->baju = new pakaian; echo $susan->nama . ' memakai baju warna ' . $susan->baju->warna;
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.
Encapsulation Example baju = new pakaian; $this->baju->warna = 'biru'; } public function warnaBaju() { return $this->baju->warna; } } $susan = new manusia(); echo 'Susan memakai baju berwarna ' . $susan->warnaBaju();
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
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
Polymorphism
Polymorphism adalah Kemampuan suatu object untuk memiliki bentuk dan wujud berbeda. atau bisa dibilang sebagai Kemampuan dari variabel referensi object yang memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objectnya.
Polymorphism Example
Polymorphism Example bicara(); // Meong... $hewan = new anjing; $hewan->bicara(); // Guk... Guk...
?>