Belajar PHP OOP Part 1.18 : Getter & Setter

getter setter

Encapsulation

  • Encapsulation artinya memastikan data sensitif sebuah object tersembunyi dari akses luar
  • Hal ini betujuan agar kita bisa menjaga agar data sebuah object tetap baik dan valid
  • Untuk mencapai ini, biasanya kita akan membuat sebuah properties menggunakan access modifier private, sehingga tidak bisa diakses atau diubah dari luar
  • Agar bisa diubah, kita akan menyediakan function untuk mengubah dan mendapatkan properties tersebut

Getter dan Setter

  • Di PHP, proses encapsulation sudah dibuat standarisasinya, dimana kita bisa menggunakan Getter dan Setter Method/Function
  • Getter adalah function yang dibuat untuk mengmabil data filed
  • Setter adalah function untuk mengubah data filed

Tabel Getter & Setter
<?php

class Category
{
private string $name;
private bool $expensive;

//Method Ambil data (Getter)
public function getName(): string
{
return $this->name;
}

//Method Ubah Data (Setter)
public function setName(string $name): void
{
$this->name = $name;
}

//Method Ambil Data (Getter Bool)
public function isExpensive(): bool
{
return $this->expensive;
}

//Method Ubah Data (Setter Bool)
public function setExpensive(bool $expensive): void
{
$this->expensive = $expensive;
}
}

<?php

require_once "data/Category.php";

$category = new Category();
$category->setName("Handphone");
$category->setExpensive(true);

echo "Name : {$category->getName()}" . PHP_EOL;
echo "Expensive : {$category->isExpensive()}" . PHP_EOL;
Getter Setter Output

Menambahkan Validation di Setter

<?php

class Category
{
private string $name;
private bool $expensive;

//Method Ambil data (Getter)
public function getName(): string
{
return $this->name;
}

//Method Ubah Data (Setter)
public function setName(string $name): void
{
//Cek Validation Setter
if (trim($name != "")){
$this->name = $name;
}

}

//Method Ambil Data (Getter Bool)
public function isExpensive(): bool
{
return $this->expensive;
}

//Method Ubah Data (Setter Bool)
public function setExpensive(bool $expensive): void
{
$this->expensive = $expensive;
}
}
Kondisi Object Kosong

<?php

class Category
{
private string $name;
private bool $expensive;

//Method Ambil data (Getter)
public function getName(): string
{
return $this->name;
}

//Method Ubah Data (Setter)
public function setName(string $name): void
{
if (trim($name) != "" ){
$this->name = $name;
}
}

//Method Ambil Data (Getter Bool)
public function isExpensive(): bool
{
return $this->expensive;
}

//Method Ubah Data (Setter Bool)
public function setExpensive(bool $expensive): void
{
$this->expensive = $expensive;
}
}
<?php

require_once "data/Category.php";

$category = new Category();
$category->setName("Handphone");
$category->setExpensive(true);

//Mengubah Property Menjadi Kosong
$category->setName("");
echo "Name : {$category->getName()}" . PHP_EOL;
echo "Expensive : {$category->isExpensive()}" . PHP_EOL;
value tidak akan berubah walaupun kosong

Artinya jika ada orang mengisi value nya kosong, nilai tetap seperti pertama input, seperti contoh value awal "Handphone" ada orang yang mengkosongkan maka tetap "Handphone".

Next Post Previous Post
No Comment
Add Comment
comment url