PWPB | OOP Pada PHP
OOP Pada PHP
Assalamualaikum wr wb, pada blog kali ini saya akan menjelaskan materi mengenai OOP pada PHP. Setelah sebelumnya kita sudah mempelajari mengenai PHP Native dengan membuat sistem CRUD Data Siswa kali ini kita mulai belajar mengenai OOP pada Bahasa Pemogramman PHP. Langsung saja ke materi sebelum itu siapkan text editor,xampp,dan browsernya.
A. Class
Definisi
class dasar (basic class) dimulai
dengan
kata kunci class, diikuti
oleh
nama
class, kemudian diikuti
oleh
sepasang
kurung
kurawal
yang melampirkan definisi
properties dan method milik
class tersebut. Kata
apapun
bisa
dijadikan
nama
class kecuali nama
/ kata yang sudah menjadi kata
kunci
pada
PHP class dapat berisi class nya
sendiri,
(yaitu "propertieses"),
& fungsi (yaitu "methods").
Contoh Penulisan Class pada PHP
Penjelasan : Variabel
pseudo $this tersedia ketika
sebuah
method dipanggil dari
dalam
konteks
objek.
$this adalah
referensi
ke
objek
pemanggil
Instansi Class pada PHP
Untuk
membuat
instance class, kata kunci “new” harus
digunakan.
Objek
akan
selalu
dibuat
kecuali
objek
memiliki
konstruktor
yang ditentukan untuk
melempar
exception pada error. Class harus didefinisikan
sebelum
instantiasi
(dan dalam beberapa kasus
ini
adalah
persyaratan). Jika
string yang berisi nama class digunakan
dengan
kata kunci “new”, instance baru
dari
class tersebut akan
dibuat.
Jika
class ada di namespace, nama
class secara keseluruhan harus
digunakan
agar memenuhi syarat
.
Contoh Membuat Instansi Class :
B. Objek
Dalam konteks class, kita dapat membuat objek baru dengan objek atau parent baru. Saat menetapkan instance class yang sudah dibuat ke variabel baru, variabel baru akan mengakses instance yang sama dengan objek yang ditugaskan. Hal ini sama ketika menyampaikan instance ke suatu fungsi. Salinan objek yang sudah dibuat dapat dipakai dengan mengkloningnya.
Contoh Penugasan Objek :
Contoh Membuat Objek Baru :
Contoh Mengakases Objek Yang Baru :
C. Property dan Method
Class propertieses dan method berada dalam “namespace" yang terpisah, sehingga dimungkinkan untuk memiliki propertieses dan method dengan nama yang sama. Mengacu pada propertieses dan method memiliki notasi yang sama, Kemudian apakah propertieses akan diakses atau method akan dipanggil, semata-mata tergantung pada konteksnya, yaitu apakah penggunaannya sebagai akses variabel atau pemanggilan fungsi.
Contoh Pengaksesan Property dan Pemanggilan Method
Contoh Pemanggilan Fungsi anonym yang ada pada properti :
D. Extends
class dapat mewariskan method dan properties class lain dengan menggunakan kata kunci yang diperluas dalam deklarasi class. Tidak mungkin untuk memperpanjang beberapa class; suatu class hanya dapat mewarisi dari satu class dasar method dan properties yang diwarisi dapat diganti dengan mendeklarasikannya dengan nama yang sama yang didefinisikan di class induk. Namun, jika class induk telah mendefinisikan method sebagai final, method itu mungkin tidak diganti. Dimungkinkan untuk mengakses method yang diganti atau properties statis dengan mereferensikannya dengan parent :: . Saat mengganti method, tanda parameter harus tetap sama atau PHP akan menghasilkan kesalahan level E_STRICT. Ini tidak berlaku untuk konstruktor, yang memungkinkan penggantian dengan parameter yang berbeda.
Contoh Penggunaan Extends :
::class
Sejak PHP 5.5, kata kunci class juga digunakan untuk resolusi nama class. Anda bisa mendapatkan string yang berisi nama kualifikasi penuh dari class ClassName dengan menggunakan ClassName :: class. Ini sangat berguna dengan class namespace.
Contoh Penggunaan "::class" :
E. Studi Kasus
Pada studi kasus kali ini kita akan menampilkan data hewan termasuk nama, jenis, suara, tipe makanan, cara berkembang biak, dan habitatnya. Kita akan membuat 3 class yaitu : HewanPeliharaan.php, KelompokMakan.php , dan index.php.
Class HewanPeliharaan.php :
<?php
include 'KelompokMakan.php';
class HewanPeliharaan extends KelompokMakan{
private $nama;
private $jenis;
public function setNama($nama){
$this->nama = $nama;
}
public function setJenisHewan($jenis){
$this->jenis = $jenis;
}
public function setTipeBerkembang($tipe_biak){
$this->tipe_biak = $tipe_biak;
}
public function getNama() {
return $this->nama;
}
public function getJenisHewan(){
return $this->jenis;
}
public function getTipeBerkembang() {
return $this->tipe_biak;
}
public function bersuara() {
$jenis = $this->jenis;
switch($jenis) {
case 'Kucing' : return 'Mengeong';
case 'Domba' : return 'Mbeeeeee';
case 'Ular' : return 'Mendesiss';
case 'Beruang' : return 'Uwaaaw';
}
}
public function berkembangbiak(){
$jenis = $this->jenis;
switch($jenis) {
case 'Kucing' : return 'Vivipar';
case 'Domba' : return 'Vivipar';
case 'Ular' : return 'Ovovivipar';
case 'Beruang' : return 'Vivipar';
}
}
public function habitat(){
$jenis = $this->jenis;
switch($jenis) {
case 'Kucing' : return 'Darat';
case 'Domba' : return 'Darat';
case 'Ular' : return 'Amfibi';
case 'Beruang' : return 'Darat';
}
}
public function __CONSTRUCT ($nama,$jenis,$makanan){
$this->nama=$nama;
$this->jenis=$jenis;
$this->makanan=$makanan;
}
}
?>
Class KelompokMakan.php
<?php
class KelompokMakan{
protected $makanan;
public function jenis(){
$makanan = $this->makanan;
switch($makanan) {
case 'Segala' : return 'Omnivora';
case 'Daging' : return 'Karnivora';
case 'Rumput' : return 'Herbivora';
}
}
}
?>
Class index.php
<?php
include 'HewanPeliharaan.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Studi Kasus OOP PHP</title>
<link rel="stylesheet" href="assets/css/style.css">
</head>
<body>
<center>
<h1>Daftar Hewan OOP PHP</h1>
<table border="1" width="50%" cellspacing="0">
<tr>
<th>Foto</th>
<th>Nama</th>
<th>Jenis</th>
<th>Suara</th>
<th>Tipe</th>
<th>Berkembang</th>
<th>Habitat</th>
</tr>
<tr align="center" class="cat">
<td><img src="assets/img/cat.png" width="90"></td>
<?php $sato1 = new HewanPeliharaan('Kitty','Kucing','Daging');
echo '
<td>'.$sato1->getNama().'</td>
<td>'.$sato1->getJenisHewan().'</td>
<td>'.$sato1->bersuara().'</td>
<td>'.$sato1->jenis().'</td>
<td>'.$sato1->berkembangbiak().'</td>
<td>'.$sato1->habitat().'</td>';
?>
</tr>
<tr align="center" class="domba">
<td><img src="assets/img/domba.png" width="90"></td>
<?php $sato2 = new HewanPeliharaan('Beni','Domba','Rumput');
echo '
<td>'.$sato2->getNama().'</td>
<td>'.$sato2->getJenisHewan().'</td>
<td>'.$sato2->bersuara().'</td>
<td>'.$sato2->jenis().'</td>
<td>'.$sato2->berkembangbiak().'</td>
<td>'.$sato2->habitat().'</td>';
?>
</tr>
<tr align="center" class="snake">
<td><img src="assets/img/snake.png" width="90"></td>
<?php $sato3 = new HewanPeliharaan('Manda','Ular','Daging');
echo '
<td>'.$sato3->getNama().'</td>
<td>'.$sato3->getJenisHewan().'</td>
<td>'.$sato3->bersuara().'</td>
<td>'.$sato3->jenis().'</td>
<td>'.$sato3->berkembangbiak().'</td>
<td>'.$sato3->habitat().'</td>';
?>
</tr>
<tr align="center" class="bear">
<td><img src="assets/img/bear.png" width="90"></td>
<?php $sato4 = new HewanPeliharaan('Makarov','Beruang','Segala');
echo '
<td>'.$sato4->getNama().'</td>
<td>'.$sato4->getJenisHewan().'</td>
<td>'.$sato4->bersuara().'</td>
<td>'.$sato4->jenis().'</td>
<td>'.$sato4->berkembangbiak().'</td>
<td>'.$sato4->habitat().'</td>';
?>
</tr>
</table>
</center>
</body>
</html>
Hasil Studi Kasus
Sekian penjelasan materi yang dapat saya sampaikan semoga bermanfaat dan dapat dibagikan kepada rekan rekan yang belum tau. Terima Kasih Mohon maaf bila ada kesalahan . Wassalamualaikum wr wb
0 Comments