Nulis-Ilmu.com

Tutorial Elektronika dan Komputer

  • Home
  • Elektronika
  • Komputer
  • Javascript

Tutorial PHP OOP Part 20 : Pengertian Object Cloning

5 Desember 2014 By Eko Purnomo

pengertian object cloning

Object cloning adalah membuat object baru yang sama dengan object lama. Sekilas ini mirip dengan proses copy namun berbeda dalam penerapannya. Seperti kita ketahui bahwa sebuah object bukanlan sebuah variabel dengan value tetapi hanya sebuah reference yang mengacu pada properti dan method di dalam class.

Berikut ini contoh perbedaan copy pada object dan variabel :

Contoh copy pada variabel :

memberi nilai 5 pada variabel a
a=5;

mengkopi nilai variabel a ke variabel b
b=a;

sekarang variabel a bernilai 5 dan variabel b bernilai 5

mengganti nilai variabel a dengan 4
a=4;

sekarang variabel a bernilai 4 dan variabel b tetap bernilai 5

Hal ini tidak berlaku pada object, perhatikan contoh berikut ini :

 <?php  
class Rumus {
var $panjang;
var $lebar;

function __construct($x,$y) {
$this->panjang =$x;
$this->lebar =$y;
}

function luas() {
return $this->panjang * $this->lebar;
}
}

$rumus1= new Rumus(6,7);
$rumus2 = $rumus1;

echo "Hasil sebelum properti panjang diganti: <br/>";
echo "Luas dari rumus1 = ".$rumus1->luas()."<br/>";
echo "Luas dari rumus2 = ".$rumus2->luas()."<br/><br/>";

//nilai properti panjang pada rumus2 diganti jadi 5
$rumus2->panjang=5;

echo "Hasil setelah properti panjang pada rumus2 diganti 5: <br/>";
echo "Luas dari rumus1 = ".$rumus1->luas()."<br/>";
echo "Luas dari rumus2 = ".$rumus2->luas()."<br/>";
?>

Jika program diatas dijalankan akan tampil seperti ini :

Hasil sebelum properti panjang diganti: 
Luas dari rumus1 = 42
Luas dari rumus2 = 42

Hasil setelah properti panjang pada rumus2 diganti 5:
Luas dari rumus1 = 35
Luas dari rumus2 = 35

Terlihat bahwa hasil perhitungan method luas() pada rumus1 dan rumus2 setelah properti diganti adalah sama, meskipun kita hanya mengganti properti panjang rumus2. Hal ini terjadi karena ketika kita mengganti properti pada rumus2 maka properti panjang pada object rumus1 juga ikut berubah.

Ini membuktikan bahwa object hanya sebatas reference saja. Jadi ketika yang direferen berubah maka yang hasil referensi juga ikut berubah karena hakikatnya hanya ada satu object saja.

Membuat cloning object

Dengan meng-kloning sebuah object kita akan mempunyai object baru yang sama dengan object lama namun mempunyai ruang serdiri dalam memori. Jadi ketika properti pada object lama diganti tidak akan mempengaruhi properti pada object baru hasil kloningan.

Untuk membuat object kita menggunakan keyword “clone”.
Perhatikan contoh diatas setelah kita menggunakan clone pada rumus1 dan rumus2 berikut ini :

 <?php  
class Rumus {
var $panjang;
var $lebar;

function __construct($x,$y) {
$this->panjang =$x;
$this->lebar =$y;
}

function luas() {
return $this->panjang * $this->lebar;
}
}

$rumus1= new Rumus(6,7);
$rumus2 = clone $rumus1;

echo "Hasil sebelum properti panjang diganti: <br/>";
echo "Luas dari rumus1 = ".$rumus1->luas()."<br/>";
echo "Luas dari rumus2 = ".$rumus2->luas()."<br/><br/>";

//nilai properti panjang pada rumus diganti jadi 5
$rumus2->panjang=5;

echo "Hasil setelah properti panjang pada rumus2 diganti 5: <br/>";
echo "Luas dari rumus1 = ".$rumus1->luas()."<br/>";
echo "Luas dari rumus2 = ".$rumus2->luas()."<br/>";
?>

Jika program diatas dijalankan akan tampil seperti ini :

Hasil sebelum properti panjang diganti: 
Luas dari rumus1 = 42
Luas dari rumus2 = 42

Hasil setelah properti panjang pada rumus2 diganti 5:
Luas dari rumus1 = 42
Luas dari rumus2 = 35

Hasil yang diperoleh dari rumus1 dan rumus2 setelah mengganti properti terlihat berbeda. Hal ini karena rumus2 merupakan object baru hasil dari cloning rumus1. Dengan demikian object rumus2 mempunya memori untuk menyimpan properti dan methodnya sendiri.

Mengapa menggunakan cloning, mengapa kita tidak membuat instantisasi saja lagi untuk object baru ?

Jika kita berkata tentang pemrograman berorientasi object tentunya tidak hanya PHP saja. Penggunaan cloning pada PHP OOP ini lebih kearah penyeragaman bahasa terharap  bahasa pemrograman berorientasi object lainnya.

Selain itu membuat instantisasi baru akan mengharuskan kita mendefinisikan semua properti pada konstruktor. Hal ini kurang cocok saat kita melakukan pemrograman secara tim, dimana teman kita perlu mengakses object yang kita buat namun dia ingin mengganti salah satu properti saja.

Dengan cloning object maka dia cukup mengambil object yang kita buat lalu mengganti properti yang diinginkan tanpa harus instantisasi semua properti.

Penggunaan method __clone() pada proses cloning

PHP memberikan sebuah magic method bernama __clone untuk menangani hal-hal yang berkaitan dengan proses cloning. Method ini akan otomatis diakses setelah proses cloning object selesai.

Contoh penggunaan method __clone dengan memodifikasi contoh program diatas :

 <?php  
class Rumus {
var $panjang;
var $lebar;
function __construct($x,$y) {
$this->panjang =$x;
$this->lebar =$y;
}
function luas() {
return $this->panjang * $this->lebar;
}
function __clone() {
$this->panjang++;
}
}
$rumus1= new Rumus(6,7);
$rumus2 = clone $rumus1;
echo "Hasil rumus1 dan rumus2 setelah cloning: <br/>";
echo "Luas dari rumus1 = ".$rumus1->luas()."<br/>";
echo "Luas dari rumus2 = ".$rumus2->luas()."<br/>";
?>

Jika program diatas dijalankan akan tampil seperti ini :

Hasil rumus1 dan rumus2 setelah cloning: 
Luas dari rumus1 = 42
Luas dari rumus2 = 49

Tampak hasil perhitungan method luas() pada rumus1 dan rumus2 berbeda. Method luas() pada rumus1 menghasilkan 42 sedangkan method luas() pada rumus2 menghasilkan 49.

Hal ini karena setelah proses cloning rumus1 menjadi rumus2 program otomatis menjalankan method __clone yang berisi perintah menambah 1 pada properti panjang, yaitu : $this->panjang++.

Referensi :

  • //php.net/manual/en/language.oop5.cloning.php
  • //arthur.purnama.de/2008/12/object-cloning-di-php-5.html

Filed Under: PHP

Tutorial PHP OOP Part 19 : Final Class dan Final Method

4 Desember 2014 By Eko Purnomo

final class dan final method

Pada PHP 5 diperkenalkan penggunaan keyword “final” pada class dan method. Final class adalah class yang tidak bisa diwarisi (inheritance) oleh class lain. Dengan kata lain class ini merupakan end-class yang tidak bisa diturunkan kepada class lain. Dan jika kita mencoba membuat class dengan inherit kepada final class akan muncul error.

Selain final class, dikenal juga final method, artinya kita tidak bisa menimpa sebuah final method yang ada pada class induk melalui class anak. Dengan begitu kita tidak bisa mendefinisikan ulang final class yang ada pada class induk di class anak. Jika hal ini dilakukan juga akan muncul error.

Jika ada final class dan final method, lalu bagaimana dengan final properti?

Jawabannya adalah sebuah properti tidak bisa dideklarasikan sebagai final, hanya class dan method saja yang bisa.

Membuat Final Class

Untuk membuat final class kita cukup menaruh keyword “final” sebelum keyword class.

final class nama_class {
//... isi class
}

Contoh Penggunaan Final Class

Sebuah final class tidak bisa diwarisi (inherit) oleh class lain. Jika ini dilakukan akan muncul Fatal error: Class … may not inherit from final class.

Untuk lebih jelas perhatikan contoh berikut ini :

 <?php  
final class Induk {
public function Test() {
return "Display Test Pada Induk";
}
}

class Anak extends Induk {
public function Test() {
return "Display Test Pada Anak";
}
}

$object = new Induk;
echo $object->Test();
?>

Jika program diatas dijalankan maka akan muncul error :

Fatal error: Class Anak may not inherit from final class (Induk) in /home/sabrina/www/php/index.php on line 12

Membuat FInal Method

Untuk membuat final method kita cukup menaruh keyword “final” sebelum keyword public function.

final public function nama_method(){
//... isi method
}

Contoh Penggunaan Final Method

Sebagaimana dengan final class, sebuah final method pada class induk juga tidak bisa ditimpa pada class anak. Jika ini dilakukan akan muncul Fatal error: Cannot override final method Induk::namaMethod().

Untuk lebih jelas perhatikan contoh berikut ini :

 <?php  
class Induk {
final public function Test() {
return "Display Test Pada Induk";
}
}
class Anak extends Induk {
public function Test() {
return "Display Test Pada Anak";
}
}
$object = new Anak;
echo $object->Test();
?>

Jika program diatas dijalankan maka akan muncul error :

Fatal error: Cannot override final method Induk::Test() in /home/sabrina/www/php/index.php on line 12

Referensi :

  • //php.net/manual/en/language.oop5.final.php

Filed Under: PHP

Tutorial PHP OOP Part 18 : Perulangan Object Dengan Interface Iterator

3 Desember 2014 By Eko Purnomo

perulangan object dengan interface iterator

Perulangan object atau dalam bahasa inggris disebut dengan object iteration adalah sebuah perulangan dalam menampilkan properti yang ada dalam object. PHP memberi jalan bagi sebuah object agar bisa didefinisikan, jadi dalam hal ini dimungkinkan membuat perulangan melalui sebuah daftar item misalnya menggunakan foreach. Secara default semua properti yang visible akan ditampilkan termasuk properti protected dan private.

Perulangan object secara sederhana

 <?php  
class MyClass
{
public $var1 = 'value 1';
public $var2 = 'value 2';
public $var3 = 'value 3';

protected $protected = 'protected var';
private $private = 'private var';

function Ulang() {
echo "MyClass::Ulang :<br/>";
foreach($this as $key => $value) {
print "$key => $value<br/>";
}
}
}

$class = new MyClass();

foreach($class as $key => $value) {
print "$key => $value<br/>";
}

echo "<br/>";

$class->Ulang();
?>

Program diatas akan menampilkan :

var1 => value 1
var2 => value 2
var3 => value 3

MyClass::Ulang:
var1 => value 1
var2 => value 2
var3 => value 3
protected => protected var
private => private var

Perulangan object dengan Interface “Iterator”

PHP menyediakan sebuah interface untuk menangani perulangan object yang diberi nama Iterator. Dengan sebuah interface Iterator, sebuah object dapat menentukan bagaimana sebuah object akan diulang dan nilai apa saja yang tersedia pada setiap perulangan.

Interface Iterator digunakan untuk mengakses dan atau memanipulasi sebuah array/list. Dengan mengimplementasikan interface Iterator maka kita dapat menggunakan foreach pada class yang dibuat seperti halnya array.

Interface Iterator memiliki 5 fungsi yang harus diimplementasikan, yaitu :

  1. rewind(), mereset pointer array kembali 0 atau awal
  2. current(), mengembalikan nilai elemen dari pointer saat ini.
  3. key(), mengembalikan pointer saat ini.
  4. next(), mengembalikan elemen selanjutnya dan memperbarui pointer
  5. valid(), memvalidasi bahwa ada sebuah element dari pointer saat ini.

Contoh penggunaan interface Iterator :

 <?php  
class Ulang implements Iterator
{
private $var = array();
public function __construct($array)
{
if (is_array($array)) {
$this->var = $array;
}
}
public function rewind()
{
echo "rewinding<br/><br/>";
reset($this->var);
}
public function current()
{
$var = current($this->var);
echo "current: $var<br/><br/>";
return $var;
}
public function key()
{
$var = key($this->var);
echo "key: $var<br/><br/>";
return $var;
}
public function next()
{
$var = next($this->var);
echo "next: $var<br/><br/>";
return $var;
}
public function valid()
{
$key = key($this->var);
$var = ($key !== NULL && $key !== FALSE);
echo "valid: $var<br/><br/>";
return $var;
}
}
$values = array(1,2,3);
$object = new Ulang($values);
foreach ($object as $a => $b) {
print "$a: $b<br/>";
}
?>

Jika program diatas dijalankan akan tampil :

rewinding

valid: 1

current: 1

key: 0

0: 1
next: 2

valid: 1

current: 2

key: 1

1: 2
next: 3

valid: 1

current: 3

key: 2

2: 3
next:

valid:

Referensi :

  • //php.net/manual/en/language.oop5.iterations.php

Filed Under: PHP

Tutorial PHP OOP Part 17 : Mengenal Magic Methods

2 Desember 2014 By Eko Purnomo

mengenal magic methods php oop

Pada PHP terdapat beberapa method yang disebut dengan magic method. Nama method-method ini diawali dengan “__” (dobel underscore). Dinamakan magic karena method ini merupakan method dengan fungsi khusus dan merupakan salah satu fitur dalam pemrograman PHP berorientasi object. Dan juga kita tidak boleh membuat function dengan nama yang sama dengan nama magic method.

Pada situs php.net, setidaknya disebutkan ada 15 magic method, yaitu: __construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() dan __debugInfo().

Beberapa dintaranya telah kita kenal melalui tulisan-tulisan sebelumnya seperti __construct, _destruct, __get(), __set(), __isset(), __unset(),__call() dan __callStatic().

Mari kita mengenal satu persatu magic method pada Pemrograman PHP berorientasi object :

1. __construct()

Merupakan method untuk membuat konstruktor sebuah class. Dengan method __construct() kita bisa membuat sebuah object sekaligus setting propertinya.

Lebih detail tentang method __construct() dapat dilihat pada Tutorial PHP OOP Part 8 : Membuat Constructor dan Destructor.

2. __destruct()

Adalah method yang dipakai untuk memusnahkan properti pada object setelah exit atau unset object.
Lebih detail tentang method __destruct() dapat dilihat pada Tutorial PHP OOP Part 8 : Membuat Constructor dan Destructor.

3. __call()

Adalah method yang digunakan saat memanggil method yang tidak dapat diakses (inaccessible method) didalam object .

Lebih detail tentang method __call() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

4. __callStatic()

Adalah method yang digunakan saat memanggil method yang tidak dapat diakses (inaccessible method) didalam static .

Lebih detail tentang method __callStatic() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

5. __get()

Adalah method digunakan untuk membaca data dari properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __get() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

6. __set()

Adalah method digunakan untuk menulis data pada properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __set() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

7. __isset()

Adalah method yang dipicu dengan memanggil method isset() atau empty() pada properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __isset() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

8. __unset()

Adalah method yang dipicu dengan memanggil method unset() pada properti yang tidak dapat diakses (inaccessible property).

Lebih detail tentang method __unset() dapat dilihat pada Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP.

9. __sleep()

Adalah method yang dipanggil saat proses serialisasi object melalui function serialize(). Jadi proses serialisasi mengecek apakah sebuah class memiliki method __sleep() didalamnya. Jika ya, maka function akan dijalankan sebelum proses serialisasi.

10. __wakeup()

Adalah kebalikan dari method __sleep(). Jika method __sleep digunakan saat proses serialisasi maka method __wakeup() digunakan saat proses unserialisasi dengan funstion unserialize(). Jadi fungsi ini dalam membangun kembali resource yang mungkin hilang setelah proses serialisasi.

11. __toString()

Adalah method yang memungkinkan sebuah class memutuskan bagaimana ia akan bereaksi bila diperlakukan seperti string.

Sebagai contoh bagaimana perintah echo $ obj ; akan dicetak. Method ini harus mengembalikan nilai string , karena kalau tidak akan dimunculkan fatal error : E_RECOVERABLE_ERROR.

12. __invoke()

Adalah method yang dipakai ketika sebuah script mencoba menghubungi objek sebagai function.

13. __set_state()

Adalah method yang dipakai saat mengeksport class dengan function var_export(), yaitu function yang mengeksport properti dalam method kedalam array (‘property’ => value, …).

14. __clone()

Adalah method yang dipakai untuk membuat salinan object. Method __clone() dipilih daripada memiliki dua variabel yang menunjuk ke data aktual yang sama.

15.__debugInfo()

Adalah method yang dipanggil oleh function var_dump() ketika proses dumping object untuk memperoleh properti yang harus ditampilkan.

Jika method ini tidak didefinisikan pada objek , maka semua sifat public ,  private dan protected  akan ditampilkan .

Referensi :

  • //php.net/manual/en/language.oop5.magic.php

Filed Under: PHP

Tutorial PHP OOP Part 16 : Konsep Overloading dalam PHP

1 Desember 2014 By Eko Purnomo

konsep overloading dalam php

Overloading di PHP menyediakan sarana untuk secara dinamis ” menciptakan ” properti dan metode . Entitas dinamis ini diproses melalui “magic method” yang dapat menciptakan berbagai tindakan di dalam class .

Metode overloading dipanggil saat berinteraksi dengan properti atau method yang belum dinyatakan atau tidak terlihat dalam ruang lingkup saat ini. Sisa bagian ini akan menggunakan istilah ” properti tidak dapat diakses ” dan ” method tidak dapat diakses ” untuk merujuk pada kombinasi deklarasi dan visibilitas .

Semua method overloading harus didefinisikan sebagai publik .

Interpretasi PHP dari ” overloading ” berbeda dari kebanyakan pemrograman berorientasi objek lainnya seperti java. Overloading pada umumnya memberikan kemampuan untuk memiliki beberapa method dengan nama yang sama tetapi jumlah dan tipe argumen yang berbeda.

Properti Overloading

Dalam PHP ada empat properti overloading, yaitu:

  1. public void __set ( string $name , mixed $value )
  2. public mixed __get ( string $name )
  3. public bool __isset ( string $name )
  4. public void __unset ( string $name )

Keterangan :

  1. __set() dijalankan ketika menulis data pada properti yang tidak dapat diakses.
  2. __get() digunakan untuk membaca data dari properti yang tidak dapat diakses.
  3. __isset() dipicu dengan memanggil method isset() atau empty() pada properti yang tidak dapat diakses.
  4. __unset() dipanggil saat  method unset() digunakan pada properti yang tidak dapat diakses.

Argumen $name adalah nama dari properti yang sedang diakses dan $value pada method __set() merupakannilai yang diberikan pada properti dengan nama $name.

Properti overloading hanya bekerja dalam konteks objek . Magic method ini tidak akan dipicu dalam konteks statis . Oleh karena itu methog ini tidak boleh dinyatakan sebagai static . Pada PHP 5.3.0 , peringatan akan muncul jika salah satu magic method overloading dinyatakan sebagai static .

Contoh penggunaan properti overloading dari situs php.net

 <?php  
class PropertyTest
{
/** Location for overloaded data. */
private $data = array();

/** Overloading not used on declared properties. */
public $declared = 1;

/** Overloading only used on this when accessed outside the class. */
private $hidden = 2;

public function __set($name, $value)
{
echo "Setting '$name' to '$value'n";
$this->data[$name] = $value;
}

public function __get($name)
{
echo "Getting '$name'n";
if (array_key_exists($name, $this->data)) {
return $this->data[$name];
}
$trace = debug_backtrace();
trigger_error(
'Undefined property via __get(): ' . $name .
' in ' . $trace[0]['file'] .
' on line ' . $trace[0]['line'],
E_USER_NOTICE);
return null;
}

public function __isset($name)
{
echo "Is '$name' set?n";
return isset($this->data[$name]);
}

public function __unset($name)
{
echo "Unsetting '$name'n";
unset($this->data[$name]);
}

public function getHidden()
{
return $this->hidden;
}
}
echo "<pre><br/>";

$obj = new PropertyTest;
$obj->a = 1;

echo $obj->a . "<br/><br/>";
var_dump(isset($obj->a));
unset($obj->a);
var_dump(isset($obj->a));
echo "<br/>";

echo $obj->declared . "<br/><br/>";

echo "Let's experiment with the private property named 'hidden':<br/>";
echo "Privates are visible inside the class, so __get() not used...<br/>";
echo $obj->getHidden() . "<br/>";
echo "Privates not visible outside of class, so __get() is used...<br/>";
echo $obj->hidden . "<br/>";
?>

Jika program diatas dijalankan akan tampil :

Setting 'a' to '1'
Getting 'a'
1

Is 'a' set?
bool(true)
Unsetting 'a'
Is 'a' set?
bool(false)

1

Let's experiment with the private property named 'hidden':
Privates are visible inside the class, so __get() not used...
2
Privates not visible outside of class, so __get() is used...
Getting 'hidden'


Notice: Undefined property via __get(): hidden in /home/sabrina/www/php/index.php on line 72 in /home/sabrina/www/php/index.php on line 31

Method Overloading

Dalam PHP ada dua method ovrloading, yaitu :

  1. public mixed __call ( string $name , array $arguments )
  2. public static mixed __callStatic ( string $name , array $arguments )

Keterangan :

  1. __call() dipicu ketika memanggil method yang tidak dapat diakses didalam object
  2. __callStatic() dipicu ketika memanggil method yang tidak dapat diakses didalam static

Argumen $name adalah nama dari method yang dipanggil dan $arguments merupakan enumerasi array yang berisi parameter yang dilewatkan pada method $name.

Contoh penggunaan method overloading

 <?php  
class MethodTest
{
public function __call($name, $arguments)
{
// Note: value dari $name adalah case sensitive.
echo "Memanggil method '$name' "
. implode(', ', $arguments). "<br/>";
}

public static function __callStatic($name, $arguments)
{
// Note: value dari $name adalah case sensitive.
echo "Memanggil method '$name' "
. implode(', ', $arguments). "<br/>";
}
}

$obj = new MethodTest;

$obj->Jalankan('->pada konteks Object');
MethodTest::Jalankan('->pada konteks Static');
?>

Jika program diatas dijalankan akan tampil :

Memanggil method 'Jalankan' ->pada konteks Object
Memanggil method 'Jalankan' ->pada konteks Static

Referensi :

  • //php.net/manual/en/language.oop5.overloading.php

Filed Under: PHP

Tutorial PHP OOP Part 15 : Mengenal Metode Re-use Trait

30 November 2014 By Eko Purnomo

mengenal metode reuse trait

Trait adalah fitur baru pada PHP 5.4. Dengan trait kita dimungkinkan untuk menggunakan ulang sebuah kode (re-use). Dalam hasa indonesia, trait berarti sifat. Pengertian trait adalah sebuah mekanisme penggunakan ulang kode dalam sebuah class. Trait berbeda dengan pewarisan class, class abstrak atau object interface. Sebuah trait lebih mirip sebagai penggunaan kode bersama dari pada penurunan class, kerangka class abstrak ataupun implementasi sebuah interface.

Munculnya trait dimaksudkan untuk mempermudah dalam hal penggunaan ulang sebuah kode tanpa adanya batasan hirarki atau kerangka. Sebuah Trait dimaksudkan untuk mengurangi beberapa keterbatasan warisan tunggal dengan memungkinkan pengembang untuk menggunakan kembali secara bebas satu set method di beberapa kelas independen yang tinggal di hierarki kelas yang berbeda.

Membuat Trait

Untuk membuat trait kita menggunakan keyword “trait” diikuti dengan nama trait dan sepasang kurung kurawal untuk menaruh isi trait. Didalam trait kita bisa menaruh satu set method dengan lengkap dengan isinya, juga bisa kerangka method seperti class abstrak. Selain itu kita juga bisa menaruh static dan properti didalam trait.

 trait namaTrait {   
public function namaMethod() {
... //isi method
}
abstract public function namaMethod2();
}

Menggunakan Trait

Untuk menggunakan trait kita menggunakan keyword “use” didalam class. Kita bisa menggunakan trait dengan bebas pada setiap class. Kita bisa menggunakan beberapa trait sekaligus dalam satu class.

class namaClass {  
use namaTrait;
}

Contoh Penggunaan Trait

 <?php   
trait daftarRumus {
public function luas_persegi(){
return "ini luas persegi";
}
}

class Rumus {
use daftarRumus;
}

$rumus = new Rumus();
echo $rumus->luas_persegi();
?>

Pada program diatas kita mempunyai sebuah trait bernama daftarRumus dan sebuah class Rumus yang menggunakan trait tersebut. Jika program diatas dijalankan akan menampilkan “ini luas persegi”, yaitu balikan dari method luas_persegi() dalam trait daftarRumus.

Referensi :

  • //php.net/manual/en/language.oop5.traits.php

Filed Under: PHP

  • « Previous Page
  • 1
  • …
  • 42
  • 43
  • 44
  • 45
  • 46
  • …
  • 60
  • Next Page »

Kategori

  • Android
  • Blogging
  • CSS
  • Desain
  • Elektronika
  • HTML
  • Internet
  • Javascript
  • Komputer
  • Mikrokontroler
  • PHP
  • Website

Pos-pos Terbaru

  • Rangkaian Adaptor 12 Volt 3 Ampere
  • 10 Aplikasi Transportasi Online Terbaru 2018
  • 3 Cara Screenshot di Laptop Windows
  • Rangkaian Adaptor 12V 35Ampere
  • Komunitas Desainer Kampung Jepara
  • Solder Yang Bagus dan Berkualitas
  • Cara Melewatkan Parameter ke dalam Fungsi pada Bahasa C
  • Parameter Dalam Bahasa C: Formal dan Aktual
  • Prototipe Fungsi dalam Bahasa C
  • Cara Menggunakan Fungsi dalam Bahasa C
  • Home
  • Privacy
  • Disclaimer
  • Kontak

Copyright © 2024 · Nulis-ilmu.com