Kamis, 14 Oktober 2021

OOP Pada PHP

Pendahuluan

Pemrograman Berbasis Objek atau (OOP) berfungsi untuk membuat program menjadi lebih nyata seperti didunia. OOP juga salah satu paradigma tersering digunakan. Ketika sebuah applikasi berkembang, tumbuh dan membutuhkam data yang lebih spesifik disini para ilmuan komputer menemukan konsep Object Oriented Programming (OOP).

Untuk permulaan pada pengenalan OOP ini kita bagi menjadi 2 hal yang ada pada Pemrograman Berbasis Objek (OOP) yakni Class dan Object. Diharapkan dengan adanya artikel ink akan membuat pengembang lebih paham dan tepat dalam menggunakan OOP pada applikasi yang dibuat.

Class dan Object

Object diciptakan menggunakan class. Sedangkan class sendiri adalah definisi dari tentang objek, apa yang bisa dilakukan oleh objek itu kurang lebih seperti sebuah rumus untuk objek.

Mari kita buatkan contoh untuk Toko Buku yang pernah kita buat.Kita akan buat dua buah class yakni buku dan pelanggan. Dengan mengggu akan kodenya yakni:

<?php

class Buku{

}

class Pelanggan{

}

?>

Untuk membuat objek dari class Buku, kiata hanya cukup menambahkan kata new diikuti nama class.Kita menginisiasinya kedalam bentuk variabel seperti ini:

$buku = new Buku();

$pelanggan = new Pelanggan();

Dengan begitu kita bisa membuat objek sebanyak yang kita mau dengan menggunakan satu class.

$buku1 = new Buku();

$buku2 = new Buku();


Properti Class

Mari kita lanjutkan ke pembahasan properti class pada OOP. Kita akan membahas properti dari buku dulu yakni seperri isbn, judul, pengarang, halaman dan ketersediaan. Buatlah file bernama Buku.php yang isinya:

<?php

class Buku {

 public $isbn;

 public $judul;

 public $pengarang;

 public $halaman;

 public $ketersediaan;

}

?>

Mari kita buat objek dengan class Buku sekaligus propertinya.


$buku1 = new Buku();

$buku1 -> judul = "Laskar Pelangi";

$buku1 -> pengarang ="Habiburrahman";

$buku1 -> ketersediaan= true;

$buku1 -> halaman = 336;

$buku1 -> isbn = 9780061120084;

var_dump($buku1);


Menginisiasi banyak objek dan nilainya menggunakan satu class. Contohnya seperti ini


$book1 = new Buku();

$book1->title = "1984";

$book2 = new Buku();

$book2->title = "To Kill a Mockingbird";

var_dump($book1, $book2);


Class Methods

Methods adalah function-function yang dibuat dalam sabuah class. Methods juga memiliki sifat yang sama dengan function-function biasanya. Mari kita buat dalam class Buku

<?php

class Buku {

 public $isbn;

 public $judul;

 public $pengarang;

 public $halaman;

 public $ketersediaan;

 public function getPrintableTitle(): string {

 $result = '<i>' . $this->judul

 . '</i> - ' . $this->pengarang;

 if (!$this->ketersediaan) {

 $result .= ' <b>Tidak tersedia</b>';

 }

 return $result;

 }

 public function getCopy(): bool {

 if ($this->ketersediaan < 1) {

  return false;

 } else {

  $this->ketersediaan--;

  return true;

  }

 }

}

$buku = new Buku();

$buku -> judul = "1984";

$buku -> pengarang = "George Orwell";

$buku -> isbn = 9785267006323;

$buku -> halaman =345;

$buku -> ketersediaan = 12;

if ($buku->getCopy()) {

 echo 'Ini sudah terduplikat.<br \>';

} else {

 echo 'Bukunya sudah tidak tersedia lagi.';

}

var_dump($buku);

?>

Constructors

Constructors ialah function dalam class yang memudahkan seseorang dalam penginisiasian attribut untuk suatu object. Bila kita ingin menginisiasi attribut yang ada pada class dengan cara yang diatas akan memakan waktu yang lumayan banyak. Gunakanlah constructors agar memudahkan dalam penginisiasianya. Constructors dibuat dengan menggunakan __construct. Sebagai contoh dalam penggunaaan di script kode ini:


public function __construct(float $isbn, string $judul, string $pengarang, 

,int $halaman, int $ketersediaan){

 $this->isbn = $isbn;

 $this->judul = $judul;

 $this->pengarang = $pengarang;

 $this->halaman = $halaman;

 $this->ketersediaan = $ketersediaan;

}

Untuk membuat object sekaligus menginisiasi attribut class buku kita hanya perlu membuat satu baris kode yakni:

$buku = new Buku(9780061120084, "Laskar Pelangi", "Habiburrahman", 340, 12);

Atau kita bisa membuat ketersediaan otomatis dengan tidak memberikan attribut untuk ketersediaan menjadi 0. Yakni dengan mengubah sedikit constructorsnya menjadi

public function __construct(

 float $isbn,

 string $title,

 string $author,

 int $available = 0

)

oop php


Kemudian kita bisa menambahkan object tanpa jumlah ketersediaan. Seperti ini

$buku = new Buku(9785267006323,"1984", "George Orwell", 200, 3);

$buku2 = new Buku(9780061120084, "Laskar Pelangi", "Habiburrahman", 340);

Destructors

Destructors dipanggil ketika sebuah object dihancurkan atau akhir / berhenti dari script. Gunakanlah kata __destruct untuk membuat Method Destructors.Sebagai contoh

 function __destruct() {

    echo "Nama buku adalah {$this->judul} pengarangnya {$this->pengarang}, isbn {$this->isbn} memiliki {$this->halaman}. Jumlahnya {$this->ketersediaan}.";

  }

Maka ia akan memerikan informasi object yang telah dibuat dalam script kita yakni $buku dan $buku2.

Penting untuk diingat bila kamu menggunakan Destructors sebaiknya taruhlah dibagian paling bawah. Tetapi untuk Constructors taruhlah pada bagian paling atas class.

Magic Methods

Magic Method ialah Method-method spesial yang sangat berguna dalam proses OOP. Ada 3 Magic Method yang harus diketahui yakni

Magic MethodManfaat
__toStringmengembalikan nilai suatu object menjadi string tanpa ada parameter apapun
__callmemanggil method-methods pada suatu class php. Bila tidak mendapatkan method(-methods) yang dipanggail maka akan menjadi sebiah string dari data-data parameter digunakan array.
__getmemanggil nama properti yang dicari dengan mencoba mengakses menggunakan parameter

Magic Method ini memang sangatlah bermanfaat dan gunakanlah dengan bijak karena tidak semua orang tahu method-method ini. Sebagai contoh dalam penggunaanya di class Buku.


  public function __toString() {

 $result = '<i>' . $this->judul . '</i> - ' . $this->pengarang;

 if ($this->ketersediaan < 0) {

 $result .= ' <b>Tidak tersedia lagi</b>';

 }

 return $result;

}

Kemudian kamu bisa menggunakanya dengan menggunakan script kode ini:

$string = (string) $buku;

echo $string;

Tidak ada komentar:

Posting Komentar