Belajar PHP OOP Part 1.1 : Pengenalan OOP (Class, Object, Properties)

pengenalan OOP

Apa itu Object Oriented Programming ?

  • Object Oriented Programming adalah sudut pandang bahasa pemrograman yang Orientasi/berkonsep "Objek"
  • Ada banyak sudut pandang bahasa pemrograman, namun OOP adalah yang sangat populer sampai saat ini
  • Ada beberapa istilah yang perlu dimengerti dalam OOP, yaitu : Object dan Class (Utama)

class and object oop php

Apa itu Object ?

  • Object adalah data yang berisi filed/ properties/ atributes dan method/ function / behavior

Apa itu Class ?

  • Class adalah blueprint, prototype atau cetakan untuk membuat object
  • Class berisikan deklarasi semua properties dan function yang dimiliki oleh object
  • Setiap object selalu dibuat dari Class
  • dan sebuah Class bisa membuat object tanpa batas

1. Class

  • Untuk membuat class, kita bisa menggunakan kata kunci class
  • Penamaan class biasa menggunakan format CamelCase/ Punduk Unta, contoh ( ClusterTeknologi)

Person.php
class Person
{

}

1.2 Object

  • Object adalah hasil instansiasi dari sebuah class
  • Untuk membuat object kita bisa menggunakan kata kunci new, dan diikuti dengan nama class dan kurung buka- kurung tutup ().
Object.php
require_once "data/Person.php";

$person = new Person();

var_dump($person1);

result var_dump class dan object

1.3 Properties

  • Fileds/ Properties/ Attributes adalah data yang bisa kita sisipkan di dalam object
  • Namun sebelum kita bisa memasukan data di fields/properties, kita harus mendeklarasikan data apa aja yang dimiliki oleh object tersebut di dalam deklarasi class-nya
  • Membuat field sama seperti membuat variable, namun di tempatkan di block class, namun diawali data kata kunci var
class Person
{
var $name;
var $address;
var $country;
}

Manipulasi Properties

  • Fields yang ada di object, bisa kita manipulasi
  • Untuk memanipulasi data field, sama seperti cara pada variable
  • Untuk mengakses field, kita butuh kata kunci -> setelah nama object dan diikuti nama fields nya
Properties.php
require_once "data/Person.php";

$person = new Person();
$person->name = "Eko";
$person->address = "Subang";
$person->country = "Indonesia";

var_dump($person);

echo "Name : {$person->name}" . PHP_EOL;
echo "Address : {$person->address}" . PHP_EOL;
echo "Country : {$person->country}" . PHP_EOL;

//Atau

$person2 = new Person();
$person2->name = "Budi";
$person2->address = "Jakarta";
$person2->country = "Indonesia";

var_dump($person2);

manipulasi properties

Properties Type Declaration

  • Sama Seperti di function, di properties pun, kita bisa membuat type declaration
  • Ini membuat PHP otomatis mengecek tipe data yang sesuai dengan type declaration yang telah di tentukan
  • Jika kita mencoba mengubah properties dengan type yang berbeda, maka otomatis akan error
  • Ingat, bahwa PHP memiliki fitur type juggling, yang secara otomatis bisa mengkonversi ke tipe data lain
  • Untuk menambahkan type declaration, kita bisa tambahkan setelah kata kunci var di properties
class Person
{
var string $name;
var string $address;
var string $country;
}
Pengujian

Mencoba memasukan array ke properties name, dimana pada name sudah di setting menjadi string, hasilnya akan error.
//Error

$person2->name = [];
properties type declaration

Default Properties Value

  • Sama seperti variable, di properties juga kita bisa langsung mengisi value nya
  • Ini mirip seperti default value, jadi jika tidak diubah di object, maka properties akan memiliki value tersebut.
<?php

class Person
{
var string $name;
var string $address;
var string $country = "Indonesia";
}
$person2 = new Person();
$person2->name = "Budi";
$person2->address = "Jakarta";
//$person2->country = "Indonesia";

var_dump($person2);
result properties default value

Nullable Properties

  • Saat kita menambahkan type declaration di properties atau di function argument, maka secara otomatis kita tidak bisa mengirim data null ke dalam properties atau function argument tersebut
  • Di PHP 7.4 dikenalkan nullable type, jadi kita bisa mengirim data null ke properties atau function arguments
  • Caranya sebelum type declaration nya, kita bisa tambahkan tanda ?
Sebelum menggunakan Nullable Type

class Person
{
var string $name;
var string $address = null;
var string $country = "Indonesia";
}
require_once "data/Person.php";

$person = new Person();
$person->name = "Eko";
$person->address = "Subang";
$person->country = "Indonesia";

var_dump($person);

echo "Name : {$person->name}" . PHP_EOL;
echo "Address : {$person->address}" . PHP_EOL;
echo "Country : {$person->country}" . PHP_EOL;
error nullable declaration

Sesudah menerapkan Nullable Type

<?php

class Person
{
var ?string $name;
var ?string $address = null;
var string $country = "Indonesia";
}
<?php

require_once "data/Person.php";

$person = new Person();
$person->name = null;
$person->address = null;
$person->country = "Indonesia";

var_dump($person);

echo "Name : {$person->name}" . PHP_EOL;
echo "Address : {$person->address}" . PHP_EOL;
echo "Country : {$person->country}" . PHP_EOL;

//Atau

$person2 = new Person();
$person2->name = null;
$person2->address = null ;
//$person2->country = "Indonesia";

var_dump($person2);

//Error
//$person2->name = [];
no error type nullable

Next Post Previous Post
No Comment
Add Comment
comment url