Hallo Berjumpa lagi di Blog Praktikum..
Pembahsan kali ini ada OOP PHP, Atau OOP dengan Php..
Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari.
Basic Class pada PHP
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"). constants, variables.
Contoh Simple Class nya
<?php
class SimpleClass
{
// property Deklarasi
public $var = 'a default value';
// method Deklarasi
public function displayVar() {
echo $this->var;
}
}
?>
Instansiasi Class
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 .
Contohnya :
<?php
$instance = new SimpleClass();
// This can also be done with a variable:
$className = 'SimpleClass';
$instance = new $className(); // new SimpleClass()
var_dump($instance);
?>
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.
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.
Contohnya :
<?php
class ExtendClass extends SimpleClass
{
// Redefine the parent method
function displayVar()
{
echo "Extending class\n";
parent::displayVar();
}
}
$extended = new ExtendClass();
$extended->displayVar();
?>
::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.
<?php
namespace NS {
class ClassName {
}
echo ClassName::class;
}
?>
Contoh kasus :
Buat class baru dengan nama HewanPeliharaan yang terdiri dari atribut nama dan jenis, dan metode bersuara.
HewanPeliharaan bersuara sesuai dengan jenis nya. Jika jenisnya Kucing maka bersuara Mengeong, jika jenisnya Kambing maka bersuara Mbe
Pastikan kelompokan HewanPeliharaan berdasarkan jenis makananya juga
yang pertama ada
Class dengan Sebagai berikut ini :
HewanPeliharaan
KelompokMakanan
dan
Main classnya
pertama ada :
<?php
class KelompokMakanan{
public $makanan;
public function jenisMakanan()
{
$makanan = $this->makanan;
switch($makanan){
case 'Daging':
return'Karnivora';
case 'Rumput':
return'Herbivora';
}
}
}
?>
Pada Class KelompokMakanan Ini ada atributnya makann dan methodnya JenisMakanan yang dis esuaikand engan hewan yang akan di peliharaan..
Kedua : Class HewanPeliharaan
<?php
include 'KelompokMakanan.php';
class HewanPeliharaan extends KelompokMakanan {
public $nama;
public $jenis;
public function namahewan(){
return $this->nama;
}
public function jenishewan(){
return $this->jenishewan;
}
public function Bersuara(){
if ($this->jenishewan == 'kucing') {
return "meong";
}
elseif ($this->jenishewan == 'Kambing') {
return "mbeeeee";
}
}
}
?>
Tiga : MainClassnya
<?php
include 'HewanPeliharaan.php';
$peliharaan = new HewanPeliharaan();
$peliharaan2 = new HewanPeliharaan();
$peliharaan ->nama = 'Beni';
$peliharaan ->jenishewan ='kucing';
$peliharaan ->makanan ='Daging';
$peliharaan2 ->nama = 'Jajang';
$peliharaan2 ->jenishewan ='Kambing';
$peliharaan2 ->makanan ='Rumput';
?>
<style type="text/css" >
table{
margin-left: 25%;
margin-top: 7%;
width: 50%;
height: 20%;
border-radius: 5px;
}
tr{
border-radius: 5px;
text-align: center;
}
td{
text-overflow: inherit;
border-radius: 5px;
}
th{
background:steelblue;
}
div{
margin-left: 45%;
margin-top: 5%;
}
</style>
<div>
<h4>Data Hewan Peliharaan</h4>
</div>
<table border="1">
<thead>
<tr>
<th>Nama Hewan</th>
<th>Jenis Hewan</th>
<th>Suaranya</th>
<th>Makananya</th>
</tr>
</thead>
<tr>
<td><?= $peliharaan ->namahewan(); ?></td>
<td><?= $peliharaan ->jenishewan(); ?></td>
<td><?= $peliharaan ->Bersuara(); ?></td>
<td><?= $peliharaan ->jenisMakanan(); ?></td>
</tr>
<tr>
<td><?= $peliharaan2 ->namahewan(); ?></td>
<td><?= $peliharaan2 ->jenishewan(); ?></td>
<td><?= $peliharaan2 ->Bersuara(); ?></td>
<td><?= $peliharaan2 ->jenisMakanan(); ?></td>
</tr
</table>
Hasilnya :
Terimakasihh Telah Berkunjungg...
Komentar
Posting Komentar