SlideShare a Scribd company logo
Object Oriented
Programming dalam PHP
Konsep Object Oriented
 Classes, yang merupakan “cetakan/blueprints" untuk
sebuah objek dan merupakan kode actual yang
mendefinisikan properites dan method.
 Objects, yang menjalankan instansi dari class dan
mengandung semua data internal dan informasi yang
dibutuhkan untuk aplikasi agar dapat berfungsi.
 Encapsulation, yang merupakan kemampuan dari
sebuah objek untuk memproteksi akses pada data
internal
 Inheritance, yang merupakan kemampuan untuk
mendefinisikan suatu jenis class yang merupakan
sebuah sub-tipe dari sebuah class yang berbeda (sama
caranya seperti sebuah kotak merupakan sebuah
bentuk lain dari persegi panjang).
Membuat Class
 Mulai dari sebuah contoh sederhana. Simpan kode
berikut dalam sebuah file dengan nama class.lat.php:
<?php
class Demo
{
}
?>
menambahkan Method
 class Demo tidak akan berguna jika tidak dapat
melakukan apapun, jadi buatlah method untuk kelas
tersebut.
<?php
class Demo
{
function SayHello()
{
echo “Hello $name !”;
}
}
?>
tambahkan Properties
 Tambahkan sebuah property pada class seperti
menambahkan method.
<?php
class Demo
{
public $name;
function SayHello()
{
echo “Hello $this->$name !”;
}
}
?>
Instansi Object
 Instansi sebuah objek yang merupakan tipe dari Demo
seperti berikut ini:
<?php
include_once('class.lat.php');
$objDemo = new Demo();
$objDemo->name = “Koro”;
$objDemo->SayHallo();
?>
Proteksi akses pada variable
anggota (1)
 Terdapat tiga level jangkauan berbeda dari variable anggota atau
method:
 Public
▪ Anggota dapat mengakses pada sebagian dan seluruh kode
 Private
▪ Anggota hanya dapat mengakses pada class-nya sendiri
 Protected
▪ Anggota tersedia pada class-nya sendiri, dan pada classs turunannya
Public merupakan level default untuk sembarang variable anggota atau
fungsi yang tidak secara eksplisit menentukan levelnya, tetapi disaran
untuk selalu secara eksplisit menentukan level jangkauan untuk seluruh
anggota dari class.
Proteksi akses pada variable
anggota (2)
 Coba ubah level akses dari property “name” menjadi
private dari kode sebelumnya.
 Apa kemungkinan solusi untuk masalah ini?
 Buat fungsi getter dan setter ...
Selalu gunakan fungsi get dan set untuk properti. Ubah bisnis logic dan
kebutuhan validasi data lebih mudah diimplementasikan.
Konstanta Class
 Diperbolehkan untuk menentukan nilai tetap pada
sebuah basis class tetap sama dan tidak dapat diubah.
 Konstanta berbeda dari variable biasa dalam hal tidak
perlu menggunakan tanda $ untuk mendeklarasikan dan
menggunakannya
 Nilainya harus berupa ekspresi konstan, bukan (sebagai
contoh) sebuah variable, property, sebuah hasil dari
operasi matematika, atau pemanggilan fungsi.
Konstanta Class (lanj.)
<?php
class MyClass
{
const constant = 'constant value';
function showConstant() {
echo self::constant . "n";
}
}
echo MyClass::constant . "n";
?>
Keyword Static
 Mendeklarasikan property atau method dari class
sebagai static membuat akses terhadap class tersebut
tidak memerlukan instansi.
 Properti yang dideklarasikan sebagai static tidak dapat
diakses dengan sebuah objek classs yang diinstansi
<?php
class Foo
{
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
class Bar extends Foo
{
public function fooStatic() {
return parent::$my_static;
}
}
print Foo::$my_static . "n";
$foo = new Foo();
print $foo->staticValue() . "n";
print $foo-
>my_static . "n"; // Undefined "Property" my_stat
ic
print $foo::$my_static . "n";
$classname = 'Foo';
print $classname::$my_static . "n"; // As of PHP 5.3
.0
print Bar::$my_static . "n";
$bar = new Bar();
print $bar->fooStatic() . "n";
?>
Contructor
 Constructor adalah method yang akan diimplementasikan ketika objek
telah diinisiasi
 Pada umumnya, constructor digunakan untuk menginisialisasi sebuah objek
 Gunakan function __construct untuk membuat constructor dalam PHP
<?php
class Demo
{
function __construct
{
}
}
?>
Destructor
 Destructor, adalah method yang akan dijalankan ketika objek
diakhiri
<?php
class Demo
{
function __destruct
{
}
}
?>
Inheritance
 Terdapat keuntungan dari inheritance dengan PHP,
yang paling sering adalah menyederhanakan dan
mengurangi instan dari kode yang redundan
Inheritance (2)
class hewan
{
protected $jml_kaki;
protected $warna_kulit;
function __construct()
{
}
function berpindah()
{
echo "Saya berpindah";
}
function makan()
{
echo "Saya makan";
}
}
Inherintace (3)
class kucing extends hewan
{
function berpindah()
{
echo "Saya bergerak
dengan 4 kaki";
}
}
class burung extends hewan
{
protected $sayap;
function berpindah()
{
echo "Saya terbang";
}
function makan()
{
echo "Saya makan
dengan mematuk";
}
}
class monyet extends hewan
{
}
Tugas
Tugas (lanj.)
 Class product :
 name
 price
 discount
 Class CDMusic :
 artist
 Genre
 Class CDRack
 capacity
 model
Tugas (cont.)
 CDMusic
 Menuruni name, price dan discount dari Product
 Price = price + 10%
 Ada penambahan 5% pada discount
 CDRack
 Menuruni name, price dan discount dari Product
 Price = price + 15%
 Tidak ada penambahan discount
 Buatlah code dalam PHP, serta simulasi untuk kasus
tersebut!
<?php
echo “Terima Kasih....!!!”
?>

More Related Content

Similar to mf488_10_092649.ppt

Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
Wahyu Widodo
 
Resa ari siswo[1210652011], rico nilar hartono[1210652008]
Resa ari siswo[1210652011], rico nilar hartono[1210652008]Resa ari siswo[1210652011], rico nilar hartono[1210652008]
Resa ari siswo[1210652011], rico nilar hartono[1210652008]
resaarisiswo
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Melina Krisnawati
 
Algoritma Pemrograman 2
Algoritma Pemrograman 2Algoritma Pemrograman 2
Algoritma Pemrograman 2
Meycelino Avisha Taguh
 
9150 8 interface
9150 8  interface9150 8  interface
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java
rizki adam kurniawan
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
BBXSQUAD
 
Class dan object
Class dan objectClass dan object
Class dan object
Hardini_HD
 
Delphi
DelphiDelphi
Delphi
Hardini_HD
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Individual Consultants
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
Jurnal IT
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
Teknik Komputer & Informatika
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Sugeng Nirwoto
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
Sugeng Nirwoto
 
Tugas 5 rekayasa web
Tugas 5   rekayasa webTugas 5   rekayasa web
Tugas 5 rekayasa web
Mohammad Arief
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
Alvin Setiawan
 
Resume aplinet oop mvc
Resume aplinet oop mvcResume aplinet oop mvc
Resume aplinet oop mvc
Sam_Azzam
 

Similar to mf488_10_092649.ppt (20)

Moduloop
ModuloopModuloop
Moduloop
 
Tugas resum
Tugas resumTugas resum
Tugas resum
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
 
Resa ari siswo[1210652011], rico nilar hartono[1210652008]
Resa ari siswo[1210652011], rico nilar hartono[1210652008]Resa ari siswo[1210652011], rico nilar hartono[1210652008]
Resa ari siswo[1210652011], rico nilar hartono[1210652008]
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
 
Algoritma Pemrograman 2
Algoritma Pemrograman 2Algoritma Pemrograman 2
Algoritma Pemrograman 2
 
9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java[PBO] Pertemuan 1 (praktik) - Pengenalan java
[PBO] Pertemuan 1 (praktik) - Pengenalan java
 
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptxPEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
PEMORGRAMAN BERORIENTASI OBJEK-02 Teknologi JAVA.pptx
 
Class dan object
Class dan objectClass dan object
Class dan object
 
Delphi
DelphiDelphi
Delphi
 
Jeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design PatternJeni Web Programming Bab 15 J2 Ee Design Pattern
Jeni Web Programming Bab 15 J2 Ee Design Pattern
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
 
Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045Tugas pbw 1310652044_1310652045
Tugas pbw 1310652044_1310652045
 
Tugas 5 rekayasa web
Tugas 5   rekayasa webTugas 5   rekayasa web
Tugas 5 rekayasa web
 
Pemograman berorientasi objek
Pemograman berorientasi objekPemograman berorientasi objek
Pemograman berorientasi objek
 
Resume aplinet oop mvc
Resume aplinet oop mvcResume aplinet oop mvc
Resume aplinet oop mvc
 

mf488_10_092649.ppt

  • 2. Konsep Object Oriented  Classes, yang merupakan “cetakan/blueprints" untuk sebuah objek dan merupakan kode actual yang mendefinisikan properites dan method.  Objects, yang menjalankan instansi dari class dan mengandung semua data internal dan informasi yang dibutuhkan untuk aplikasi agar dapat berfungsi.  Encapsulation, yang merupakan kemampuan dari sebuah objek untuk memproteksi akses pada data internal  Inheritance, yang merupakan kemampuan untuk mendefinisikan suatu jenis class yang merupakan sebuah sub-tipe dari sebuah class yang berbeda (sama caranya seperti sebuah kotak merupakan sebuah bentuk lain dari persegi panjang).
  • 3. Membuat Class  Mulai dari sebuah contoh sederhana. Simpan kode berikut dalam sebuah file dengan nama class.lat.php: <?php class Demo { } ?>
  • 4. menambahkan Method  class Demo tidak akan berguna jika tidak dapat melakukan apapun, jadi buatlah method untuk kelas tersebut. <?php class Demo { function SayHello() { echo “Hello $name !”; } } ?>
  • 5. tambahkan Properties  Tambahkan sebuah property pada class seperti menambahkan method. <?php class Demo { public $name; function SayHello() { echo “Hello $this->$name !”; } } ?>
  • 6. Instansi Object  Instansi sebuah objek yang merupakan tipe dari Demo seperti berikut ini: <?php include_once('class.lat.php'); $objDemo = new Demo(); $objDemo->name = “Koro”; $objDemo->SayHallo(); ?>
  • 7. Proteksi akses pada variable anggota (1)  Terdapat tiga level jangkauan berbeda dari variable anggota atau method:  Public ▪ Anggota dapat mengakses pada sebagian dan seluruh kode  Private ▪ Anggota hanya dapat mengakses pada class-nya sendiri  Protected ▪ Anggota tersedia pada class-nya sendiri, dan pada classs turunannya Public merupakan level default untuk sembarang variable anggota atau fungsi yang tidak secara eksplisit menentukan levelnya, tetapi disaran untuk selalu secara eksplisit menentukan level jangkauan untuk seluruh anggota dari class.
  • 8. Proteksi akses pada variable anggota (2)  Coba ubah level akses dari property “name” menjadi private dari kode sebelumnya.  Apa kemungkinan solusi untuk masalah ini?  Buat fungsi getter dan setter ... Selalu gunakan fungsi get dan set untuk properti. Ubah bisnis logic dan kebutuhan validasi data lebih mudah diimplementasikan.
  • 9. Konstanta Class  Diperbolehkan untuk menentukan nilai tetap pada sebuah basis class tetap sama dan tidak dapat diubah.  Konstanta berbeda dari variable biasa dalam hal tidak perlu menggunakan tanda $ untuk mendeklarasikan dan menggunakannya  Nilainya harus berupa ekspresi konstan, bukan (sebagai contoh) sebuah variable, property, sebuah hasil dari operasi matematika, atau pemanggilan fungsi.
  • 10. Konstanta Class (lanj.) <?php class MyClass { const constant = 'constant value'; function showConstant() { echo self::constant . "n"; } } echo MyClass::constant . "n"; ?>
  • 11. Keyword Static  Mendeklarasikan property atau method dari class sebagai static membuat akses terhadap class tersebut tidak memerlukan instansi.  Properti yang dideklarasikan sebagai static tidak dapat diakses dengan sebuah objek classs yang diinstansi
  • 12. <?php class Foo { public static $my_static = 'foo'; public function staticValue() { return self::$my_static; } } class Bar extends Foo { public function fooStatic() { return parent::$my_static; } } print Foo::$my_static . "n"; $foo = new Foo(); print $foo->staticValue() . "n"; print $foo- >my_static . "n"; // Undefined "Property" my_stat ic print $foo::$my_static . "n"; $classname = 'Foo'; print $classname::$my_static . "n"; // As of PHP 5.3 .0 print Bar::$my_static . "n"; $bar = new Bar(); print $bar->fooStatic() . "n"; ?>
  • 13. Contructor  Constructor adalah method yang akan diimplementasikan ketika objek telah diinisiasi  Pada umumnya, constructor digunakan untuk menginisialisasi sebuah objek  Gunakan function __construct untuk membuat constructor dalam PHP <?php class Demo { function __construct { } } ?>
  • 14. Destructor  Destructor, adalah method yang akan dijalankan ketika objek diakhiri <?php class Demo { function __destruct { } } ?>
  • 15. Inheritance  Terdapat keuntungan dari inheritance dengan PHP, yang paling sering adalah menyederhanakan dan mengurangi instan dari kode yang redundan
  • 16. Inheritance (2) class hewan { protected $jml_kaki; protected $warna_kulit; function __construct() { } function berpindah() { echo "Saya berpindah"; } function makan() { echo "Saya makan"; } }
  • 17. Inherintace (3) class kucing extends hewan { function berpindah() { echo "Saya bergerak dengan 4 kaki"; } } class burung extends hewan { protected $sayap; function berpindah() { echo "Saya terbang"; } function makan() { echo "Saya makan dengan mematuk"; } } class monyet extends hewan { }
  • 18. Tugas
  • 19. Tugas (lanj.)  Class product :  name  price  discount  Class CDMusic :  artist  Genre  Class CDRack  capacity  model
  • 20. Tugas (cont.)  CDMusic  Menuruni name, price dan discount dari Product  Price = price + 10%  Ada penambahan 5% pada discount  CDRack  Menuruni name, price dan discount dari Product  Price = price + 15%  Tidak ada penambahan discount  Buatlah code dalam PHP, serta simulasi untuk kasus tersebut!