Cara menggunakan trait vs class php

Hai Sipinter! Selamat datang di sesi “Tutorial Pemrograman PHP” tempat dimana kita belajar membuat web bersama-sama.

Kali ini kita akan membahas apa itu trait dan cara membuatnya dalam OOP(Objek Oriented Programming) di PHP.

Agar tidak kebingungan dalam pembahasan kali ini kunjungi beberapa postingan sebelumnya mengenai OOP di PHP yaitu:

  1. Belajar Konsep OOP dalam Pemrograman PHP,
  2. Constructor dan Destructor Dalam OOP di PHP,
  3. Class Turunan (Inheritance) & Access Modifier OOP di PHP,
  4. Abstract Class & Method, Yang Harus Diturunkan di PHP,
  5. Membuat Static Property dan Static Method di OOP PHP.

Jika sudah mengerti beberapa pembahasan diatas pasti kalian akan lebih mudah memahami materi kali ini.

Karena pada dasarnya jika belajar sesuatu hal yang baru maka kita perlu mempelajarinya dari dasar agar kita dapat memahaminya tidak hanya sekedar menghafal saja.

Intinya jika kita belajar suatu hal yang baru tapi kita tidak bisa memahaminya sama sekali, artinya ilmu dasar yang kita miliki yang berhubungan dengan hal baru itu masih kurang bahkan bisa belum ada bukan karena kita bodoh.

Jadi jika serius belajar pemrograman PHP mulailah dari dasar dan jangan suka melompati materi agar belajarnya lebih mudah dan lancar.

Berikut merupakan daftar materi yang kita bahas kali ini:

Semoga dengan pembahasan bertahap ini membuat kita lebih mudah memahami pembahasan kali ini, jadi kita mulai dari yang pertama.

Apa Itu Trait?

Trait sendiri memiliki arti “sifat” , dalam sebuah OOP sifat diwakili sebuah method.

Trait merupakan sebuah mekanisme yang mirip dengan class untuk mengelompokan sebuah method berdasarkan kegunaannya, agar dapat digunakan kembali di beberapa class tanpa melalui turunan.

Jika dalam sebuah turunan class hanya bisa menurunkan hanya dari satu class induk, namun dengan trait kita dapat memanggil beberapa method dari banyak trait.

Kita dapat memanggil beberapa trait sekaligus dalam satu class bahkan bersamaan dengan membuat class turunan.

Trait memudahkan kita mengelompokkan method sesuai fungsinya namun dapat digunakan di class manapun kita membutuhkannya.

Sebuah trait tidak bisa menurunkan sebuah trait, dan trait juga tidak bisa dibuat menjadi sebuah object.

trait dapat berisi method dan abstract method, yang dapat diberi access modifier (public, protected dan priate).

Cara Membuat Trait di PHP

Kita dapat membuat trait dengan menggunakan keyword traitdi php, dengan aturan penulisan seperti di bawah:

<?php
trait TraitName{
//code....
}
?>

Berikut merupakan contoh cara membuat trait di PHP:

<?php  
	trait Waktu{
		public function TanggalIndonesia($tahun,$bulan,$tanggal){
			return "Sekarang tangal $tangal bulan $bulan tahun $tahun";
		}
	}	

?>

Cara Memanggil Trait dari Class Lain di PHP

lalu kita dapat memangil trait yang sudah kita buat dari class manapun dan menggunakan method yang ada di dalamnya.

Kita dapat menggunakan trait yang telah dibuat dari sebuah class dengan menggunakan keyword use di PHP dengan aturan penulisan seperti di bawah:

<?php	
	class ClassName
	{
		use namaTrait;
	}
?>

Dengan begitu kita dapat menggunakan semua method yang ada pada trait.

Berikut merupakan contoh cara membuat dan memanggil trait serta cara menggunakan method yang ada pada trait di PHP:

<?php  
	trait Waktu{
		public function TanggalIndonesia($tahun,$bulan,$tanggal){
			return "Sekarang tanggal $tanggal bulan $bulan tahun $tahun";
		}
	}

	class Pembelian
	{
		use Waktu;
		public function tampilkanTanggal($tahun,$bulan,$tanggal){
			echo $this->TanggalIndonesia($tahun,$bulan,$tanggal);
		}

	}

	$pembelian=New Pembelian();	
	$pembelian->tampilkanTanggal(2000,11,22);
	echo "<br/>";
	echo $pembelian->TanggalIndonesia(2000,11,22);

?>

Hasilnya bisa dilihat seperti gambar di bawah:

Cara menggunakan trait vs class php
Cara menggunakan trait vs class php

Contoh Cara Membuat dan Memanggil Beberapa Trait di PHP

Kita akan mencoba memanggil tiga trait sekaligus dalam satu class.

Berikut merupakan contoh memanggil beberapa trait yang berada dalam satu file di PHP:

<?php  
	trait Waktu{
		public function TanggalIndonesia($tahun,$bulan,$tanggal){
			return "Sekarang tanggal $tanggal bulan $bulan tahun $tahun";
		}
	}

	trait Pesan{
		public function berhasil($pesan){
			echo "Proses Berhasil -> $pesan <br/>";
		}
	}

	trait link{
		public function linkSelanjutnya($kataKunci, $url){
			echo "<a href='$url'>$kataKunci</a>";
		}
	}

	class Pembelian
	{
		use Waktu,Pesan,link;
		public function tampilkanTanggal($tahun,$bulan,$tanggal){
			echo $this->TanggalIndonesia($tahun,$bulan,$tanggal);
		}

	}

	$pembelian=New Pembelian();	
	$pembelian->tampilkanTanggal(2000,11,22);
	echo "<br/>";
	echo $pembelian->TanggalIndonesia(2000,11,22);
	echo "<br/>";
	$pembelian->berhasil("Penambahan Data Baru");
	echo "<br/>";
	$pembelian->linkSelanjutnya("Web Keren","https//:sipintek.com");
?>

Hasilnya seperti gambar di bawah:

Cara menggunakan trait vs class php
Cara menggunakan trait vs class php

Sekian postingan kali ini semoga bermanfaat untuk kita semua, mohon maaf jika ada kesalahan atau kekurangan dalam postingan ini.