Penggunaan fungsi OBJJECT pada PHP

Indonesian (Bahasa Indonesia) translation by Imam Firmansyah (you can also view the original English article)

Table of Contents

  • Apa itu Pemrograman Berorientasi Objek (OOP)?
  • Apa itu Class pada PHP?
  • Properti Class pada PHP
  • Konstruktor untuk Kelas PHP
  • Method untuk Class PHP
  • Apakah object dalam PHP?
  • Enkapsulasi
  • Tingkat Akses
  • Inheritance
  • Polimorfisme
  • Apa itu object dalam PHP?
  • Apa yang dimaksud dengan tipe data object?
  • Jelaskan apa yang dimaksud dengan class dan object berikan contohnya?
  • Apa kegunaan menggunakan pemrograman berorientasi objek dalam membangun program?
  • Apa itu object dalam PHP?
  • Apa yang dimaksud dengan tipe data object?
  • Mysqli_fetch_object untuk apa?
  • Apakah yang dimaksud dengan class dan object?

Table of Contents

  • Apa itu Pemrograman Berorientasi Objek (OOP)?
  • Apa itu Class pada PHP?
  • Properti Class pada PHP
  • Konstruktor untuk Kelas PHP
  • Method untuk Class PHP
  • Apakah object dalam PHP?
  • Enkapsulasi
  • Tingkat Akses
  • Inheritance
  • Polimorfisme
  • Apa itu object dalam PHP?
  • Apa yang dimaksud dengan tipe data object?
  • Jelaskan apa yang dimaksud dengan class dan object berikan contohnya?
  • Apa kegunaan menggunakan pemrograman berorientasi objek dalam membangun program?

Pada artikel ini, kita akan mengeksplorasi dasar-dasar pemrograman berorientasi objek dalam PHP. Kita akan mulai dengan pengantar kelas (class) dan objek(object), dan kita akan membahas beberapa konsep canggih seperti pewarisan (inheritance) dan polimorfisme di bagian akhir artikel ini.

Apa itu Pemrograman Berorientasi Objek (OOP)?

Pemrograman berorientasi objek, yang biasa disebut sebagai OOP, adalah pendekatan yang membantu Anda mengembangkan aplikasi yang kompleks dengan cara yang mudah dipelihara dan terukur dalam jangka panjang. Dalam dunia OOP, entitas dunia nyata seperti Person, Car, atau Animal diperlakukan sebagai object. Dalam pemrograman berorientasi objek, Anda berinteraksi dengan aplikasi dengan menggunakan objek. Ini berbeda dengan pemrograman prosedural, terutama dimana Anda berinteraksi dengan fungsi dan variabel global.

Di OOP, ada konsep "class", yang digunakan untuk memodelkan atau memetakan entitas dunia nyata ke templat data(properti) dan fungsionalitas (method). "Object" adalah turunan dari sebuah class, dan Anda dapat membuat banyak instance dari class yang sama. Sebagai contoh, ada class Person tunggal, tetapi banyak object Person dapat menjadi instance dari class ini — dan, zainab, hector, dll.

Class mendefinisikan properti. Misalnya, untuk class Person, Kami mungkin memiliki name, age, dan phoneNumber. Kemudian setiap object dari Person akan memiliki nilai sendiri untuk properti tersebut.

Anda juga dapat mendefinisikan method di class yang memungkinkan Anda untuk memanipulasi nilai properti object dan melakukan operasi pada object. Sebagai contoh, Anda bisa menentukan method save yang menyimpan informasi object ke database.

Apa itu Class pada PHP?

Class adalah template yang mewakili entitas dunia nyata, dan mendefinisikan properti dan method entitas. Pada bagian ini, kita akan membahas tipikal anatomi dasar class pada PHP.

Cara terbaik untuk memahami konsep baru adalah dengan sebuah contoh. Jadi mari kita lihat class Employee pada potongan kode berikut, yang mewakili entitas dari employee (karyawan).

<?php
class Employee
{
  private $first_name;
  private $last_name;
  private $age;
 
  public function __construct($first_name, $last_name, $age)
  {
    $this->first_name = $first_name;
    $this->last_name = $last_name;
    $this->age = $age;
  }

  public function getFirstName()
  {
    return $this->first_name;
  }

  public function getLastName()
  {
    return $this->last_name;
  }

  public function getAge()
  {
    return $this->age;
  }
}
?>

Pernyataan class Employee pada baris pertama mendefinisikan class Employee. Kemudian, kita akan mendeklarasikan properti, konstruktor, dan method class lainnya.

Properti Class pada PHP

Anda bisa menganggap properti class sebagai variabel yang digunakan untuk menyimpan informasi tentang object. Dalam contoh di atas, kami telah menetapkan tiga properti — first_name, last_name, dan age. Dalam kebanyakan kasus, properti class diakses melalui object yang dipakai.

Properti ini bersifat private, yang berarti mereka hanya dapat diakses dari dalam class. Ini adalah tingkat akses teraman untuk properti. Kami akan membahas berbagai tingkat akses untuk properti dan method class nanti di artikel ini.

Konstruktor untuk Kelas PHP

Konstruktor adalah method class khusus yang dipanggil secara otomatis ketika Anda instantiate sebuah object. Kami akan melihat cara membuat instance object di beberapa bagian berikutnya, tetapi untuk sekarang Anda hanya perlu tahu bahwa konstruktor digunakan untuk menginisialisasi properti object ketika object sedang dibuat.

Anda dapat mendefinisikan konstruktor dengan mendefinisikan method __construct.

Method untuk Class PHP

Kita dapat menganggap method class sebagai fungsi yang melakukan tindakan spesifik yang terkait dengan object. Dalam kebanyakan kasus, mereka digunakan untuk mengakses dan memanipulasi properti object dan melakukan operasi terkait.

Dalam contoh di atas, kami telah mendefinisikan method getLastName, yang mengembalikan nama belakang yang dikaitkan dengan object.

Jadi itu adalah pengantar singkat tentang struktur class pada PHP. Di bagian selanjutnya, kita akan melihat cara membuat instance object dari class Employee.

Apakah object dalam PHP?

Pada bagian sebelumnya, kita membahas struktur dasar sebuah class di PHP. Sekarang, ketika Anda ingin menggunakan class, Anda harus melakukan instantiate, dan hasil akhirnya adalah sebuah object. Jadi kita bisa menganggap class sebagai cetak biru, dan sebuah object adalah hal aktual yang dapat Anda kerjakan.

Dalam konteks class Employee yang baru saja kita buat di bagian sebelumnya, mari kita lihat bagaimana membuat instance object dari class tersebut.

<?php
$objEmployee = new Employee('Bob', 'Smith', 30);

echo $objEmployee->getFirstName(); // print 'Bob'
echo $objEmployee->getLastName(); // prints 'Smith'
echo $objEmployee->getAge(); // prints '30'
?>

Anda harus menggunakan kata kunci new ketika Anda ingin membuat instance suatu object dari setiap class bersama dengan nama class nya, dan Anda akan mendapatkan kembali contoh object baru dari kelas tersebut.

Jika kelas telah mendefinisikan method __construct dan membutuhkan argumen, Anda harus meneruskan argumen tersebut saat Anda membuat instance sebuah object. Dalam kasus kami, konstruktor class Employee memerlukan tiga argumen, dan karenanya kami telah melewati ini ketika kami membuat objek $objEmployee. Seperti yang kita bahas sebelumnya, method __construct dipanggil secara otomatis ketika object dipakai.

Selanjutnya, kami telah memanggil method class pada object $objEmployee untuk mencetak informasi yang diinisialisasi selama pembuatan object. Tentu saja, Anda dapat membuat beberapa object dari class yang sama, seperti yang ditunjukkan pada potongan kode berikut.

<?php
$objEmployeeOne = new Employee('Bob', 'Smith', 30);

echo $objEmployeeOne->getFirstName(); // prints 'Bob'
echo $objEmployeeOne->getLastName(); // prints 'Smith'
echo $objEmployeeOne->getAge(); // prints '30'

$objEmployeeTwo = new Employee('John', 'Smith', 34);

echo $objEmployeeTwo->getFirstName(); // prints 'John'
echo $objEmployeeTwo->getLastName(); // prints 'Smith'
echo $objEmployeeTwo->getAge(); // prints '34'
?>

Gambar berikut ini adalah representasi grafis dari class Employee dan beberapa instance-nya.

Penggunaan fungsi OBJJECT pada PHP

Sederhananya, class adalah cetak biru yang dapat Anda gunakan untuk membuat object yang terstruktur.

Enkapsulasi

Di bagian sebelumnya, kami membahas cara membuat instance objek dari class Employee. Sangat menarik untuk dicatat bahwa object $objEmployee itu sendiri membungkus bersama properti dan method class. Dengan kata lain, ia menyembunyikan detail tersebut dari sisa program. Dalam dunia OOP, ini disebut enkapsulasi data.

Enkapsulasi adalah aspek penting dari OOP yang memungkinkan Anda untuk membatasi akses ke properti atau method dari object tertentu. Dan itu membawa kita ke topik lain untuk didiskusikan: tingkat akses.

Tingkat Akses

Saat Anda mendefinisikan properti atau method dalam sebuah class, Anda dapat mendeklarasikannya memiliki salah satu dari tiga level akses ini — public, private, atau protected.

Akses Public

Saat Anda mendeklarasikan properti atau method sebagai public, properti dapat diakses dari mana saja di luar class. Nilai properti public dapat dimodifikasi dari mana saja dalam kode Anda.

Mari kita lihat contoh untuk memahami tingkat akses public.

<?php
class Person
{
  public $name;

  public function getName()
  {
    return $this->name;
  }
}

$person = new Person();
$person->name = 'Bob Smith';
echo $person->getName(); // prints 'Bob Smith'
?>

Seperti yang Anda lihat pada contoh di atas, kami telah melakukan deklarasi properti name untuk public. Karenanya, Anda dapat mengaturnya dari mana saja di luar class, seperti yang kami lakukan di sini.

Akses Private

Ketika Anda mendeklarasikan properti atau method sebagai private, itu hanya dapat diakses dari dalam class. Ini berarti bahwa Anda perlu mendefinisikan method get dan set untuk mendapatkan dan mengatur nilai properti tersebut.

Sekali lagi, mari kita revisi contoh sebelumnya untuk memahami tingkatan akses private.

<?php
class Person
{
  private $name;

  public function getName()
  {
    return $this->name;
  }

  public function setName($name)
  {
    $this->name = $name;
  }
}

$person = new Person();
$person->name = 'Bob Smith'; // Throws an error
$person->setName('Bob Smith');
echo $person->getName(); // prints 'Bob Smith'
?>

Jika Anda mencoba mengakses properti private dari luar class, itu akan menimbulkan kesalahan yang fatal Cannot access private property Person::$name. Dengan demikian, Anda perlu mengatur nilai properti pribadi menggunakan method setter, seperti yang kami lakukan menggunakan method setName.

Ada alasan bagus mengapa Anda mungkin ingin menjadikan properti private. Misalnya, mungkin beberapa tindakan harus diambil (memperbarui basis data, mengatakan, atau merender ulang template) jika properti itu berubah. Dalam hal ini, Anda dapat mendefinisikan method setter dan menangani logika khusus ketika properti diubah.

Akses Protected

Akhirnya, ketika Anda mendeklarasikan properti atau method sebagai protected, itu dapat diakses oleh class yang sama yang telah mendefinisikannya dan class yang mewarisi class tersebut. Kami akan membahas inheritance pada bagian selanjutnya, jadi kami akan kembali ke tingkat akses yang dilindungi sedikit sebentar lagi.

Inheritance

Inheritance adalah aspek penting dari paradigma pemrograman berorientasi objek yang memungkinkan Anda mewarisi properti dan method class lain dengan melakukan extend. class yang diwariskan disebut parent class (class induk), dan class yang mewarisi kelas lain disebut child class. Ketika Anda melakukan instantiate sebuah object dari child class, itu akan mewarisi properti dan method dari parent class juga.

Mari kita lihat screenshot berikut untuk memahami konsep dari pewarisan (inheritance).

Dalam contoh di atas, class Person adalah parent class, dan class Employee memperluas (extend) atau mewarisi class Person dan disebut child class.

Mari kita coba melalui contoh dunia nyata untuk memahami cara kerjanya.

<?php
class Person
{
  protected $name;
  protected $age;

  public function getName()
  {
    return $this->name;
  }

  public function setName($name)
  {
    $this->name = $name;
  }

  private function callToPrivateNameAndAge()
  {
    return "{$this->name} is {$this->age} years old.";
  }

  protected function callToProtectedNameAndAge()
  {
    return "{$this->name} is {$this->age} years old.";
  }
}

class Employee extends Person
{
  private $designation;
  private $salary;

  public function getAge()
  {
    return $this->age;
  }

  public function setAge($age)
  {
    $this->age = $age;
  }

  public function getDesignation()
  {
    return $this->designation;
  }

  public function setDesignation($designation)
  {
    $this->designation = $designation;
  }

  public function getSalary()
  {
    return $this->salary;
  }

  public function setSalary($salary)
  {
    $this->salary = $salary;
  }

  public function getNameAndAge()
  {
    return $this->callToProtectedNameAndAge();
  }
}

$employee = new Employee();

$employee->setName('Bob Smith');
$employee->setAge(30);
$employee->setDesignation('Software Engineer');
$employee->setSalary('30K');

echo $employee->getName(); // prints 'Bob Smith'
echo $employee->getAge(); // prints '30'
echo $employee->getDesignation(); // prints 'Software Engineer'
echo $employee->getSalary(); // prints '30K'
echo $employee->getNameAndAge(); // prints 'Bob Smith is 30 years old.'
echo $employee->callToPrivateNameAndAge(); // produces 'Fatal Error'
?>

Yang penting untuk diperhatikan di sini adalah bahwa class Employee telah menggunakan kata kunci extends untuk mewarisi class Person. Sekarang, class Employee dapat mengakses semua properti dan method dari class Person yang dinyatakan sebagai public atau protected. (Itu tidak dapat mengakses anggota yang dinyatakan sebagai private).

Dalam contoh di atas, objek $employee dapat mengakses method getName dan setName yang didefinisikan dalam class Person karena mereka dinyatakan sebagai public.

Selanjutnya, kami telah mengakses method callToProtectedNameAndAge menggunakan method getNameAndAge yang didefinisikan dalam class Employee, karena dinyatakan sebagai protected. Akhirnya, object $employee tidak dapat mengakses method callToPrivateNameAndAge dari class Person karena dideklarasikan sebagai private.

Di sisi lain, Anda dapat menggunakan object $employee untuk melakukan set pada properti age dari class Person, seperti yang kami lakukan pada method setAge yang didefinisikan dalam class Employee, karena properti age dinyatakan sebagai protected.

Jadi itu pengantar singkat tentang pewarisan (inheritence). Ini membantu Anda mengurangi duplikasi kode, dan dengan demikian mendorong konsep reusability (penggunaan kembali kode).

Polimorfisme

Polimorfisme adalah konsep penting lainnya dalam dunia pemrograman berorientasi objek yang mengacu pada kemampuan untuk memproses objek secara berbeda berdasarkan tipe datanya.

Misalnya, dalam konteks pewarisan, jika child class ingin mengubah perilaku (behavior) dari method class parent, itu dapat menggantikan metode tersebut. Ini disebut metode overriding. Mari kita segera melihat contoh yang sesungguhnya untuk memahami konsep dari method overriding.

<?php
class Message
{
  public function formatMessage($message)
  {
    return printf("<i>%s</i>", $message);
  }
}

class BoldMessage extends Message
{
  public function formatMessage($message)
  {
    return printf("<b>%s</b>", $message);
  }
}

$message = new Message();
$message->formatMessage('Hello World'); // prints '<i>Hello World</i>'

$message = new BoldMessage();
$message->formatMessage('Hello World'); // prints '<b>Hello World</b>'
?>

Seperti yang Anda lihat, kami telah mengubah perilaku dari method formatMessage dengan melakukan override pada class BoldMessage. Yang penting adalah bahwa pesan diformat berbeda berdasarkan jenis object, apakah itu turunan dari parent class atau child class.

(Beberapa bahasa berorientasi objek juga memiliki semacam kelebihan method yang memungkinkan Anda mendefinisikan beberapa method class dengan nama yang sama tetapi jumlah argumen yang berbeda. Ini tidak didukung secara langsung dalam PHP, tetapi ada beberapa solusi untuk mencapai yang serupa fungsionalitasnya)

Kesimpulan

Pemrograman berorientasi objek adalah subjek yang luas, dan kami hanya menggores permukaan kompleksitasnya. Saya berharap tutorial ini membantu Anda memulai dengan dasar-dasar OOP dan memotivasi Anda untuk terus belajar topik OOP yang lebih tinggi.

Pemrograman berorientasi objek merupakan aspek penting dalam pengembangan aplikasi, terlepas dari teknologi yang Anda gunakan. Hari ini, dalam konteks PHP, kami membahas beberapa konsep dasar OOP, dan kami juga mengambil kesempatan untuk memperkenalkan beberapa contoh dalam kehidupan nyata.

Jangan ragu untuk mengirimkan pertanyaan Anda menggunakan kolom komentar di bawah ini!

Apa itu object dalam PHP?

Object adalah hasil konkrit atau hasil cetakan dari sebuah class . Sebagai contoh pada artikel sebelumnya saya telah membuat class User maka object-nya adalah para User atau accounts, misalnya Andre, Andi dan Bagus.

Apa yang dimaksud dengan tipe data object?

Tipe data object adalah tipe data yang tidak sekedar menyimpan data tetapi berisikan juga informasi bagaimana untuk mengolah data tersebut. Maksudnya, pada tipe data data lain seperti : integer, float, string hanya berisikan tipe data dia sendiri, sedangkan pada tipe data object dapat berisikan tipe-tipe data lain.

Jelaskan apa yang dimaksud dengan class dan object berikan contohnya?

Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain. Contoh : Class Person, Vehicle, Tree, Fruit dan lain-lain. Object adalah instance dari class.

Apa kegunaan menggunakan pemrograman berorientasi objek dalam membangun program?

Ada beberapa keunggulan yang bisa kita dapatkan saat menggunakan metode OOP ini. Diantaranya : Improved Software Development Productivity : Sistem program dapat dimodifikasi tanpa melibatkan banyak modul dimana hanya objek saja yang terlibat. Selain itu sistem program dapat dikembangkan sampai skala paling kompleks.

Apa itu object dalam PHP?

"Object" adalah turunan dari sebuah class, dan Anda dapat membuat banyak instance dari class yang sama. Sebagai contoh, ada class Person tunggal, tetapi banyak object Person dapat menjadi instance dari class ini — dan , zainab , hector , dll. Class mendefinisikan properti.

Apa yang dimaksud dengan tipe data object?

Tipe data object adalah tipe data yang tidak sekedar menyimpan data tetapi berisikan juga informasi bagaimana untuk mengolah data tersebut. Maksudnya, pada tipe data data lain seperti : integer, float, string hanya berisikan tipe data dia sendiri, sedangkan pada tipe data object dapat berisikan tipe-tipe data lain.

Mysqli_fetch_object untuk apa?

Fungsi fetch_object() / mysqli_fetch_object() digunakan untuk mengembalikan baris saat ini dari kumpulan hasil, sebagai objek. Catatan: Nama kolom yang dikembalikan dari fungsi ini peka huruf besar / kecil(Case-Sensitive).

Apakah yang dimaksud dengan class dan object?

Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain. Contoh : Class Person, Vehicle, Tree, Fruit dan lain-lain. Object adalah instance dari class.

Apa itu object dalam PHP?

"Object" adalah turunan dari sebuah class, dan Anda dapat membuat banyak instance dari class yang sama. Sebagai contoh, ada class Person tunggal, tetapi banyak object Person dapat menjadi instance dari class ini — dan , zainab , hector , dll. Class mendefinisikan properti.

Apa yang dimaksud dengan tipe data object?

Tipe data object adalah tipe data yang tidak sekedar menyimpan data tetapi berisikan juga informasi bagaimana untuk mengolah data tersebut. Maksudnya, pada tipe data data lain seperti : integer, float, string hanya berisikan tipe data dia sendiri, sedangkan pada tipe data object dapat berisikan tipe-tipe data lain.

Jelaskan apa yang dimaksud dengan class dan object berikan contohnya?

Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant dari object. class juga merupakan grup suatu object dengan kemiripan attributes/properties, behaviour dan relasi ke object lain. Contoh : Class Person, Vehicle, Tree, Fruit dan lain-lain. Object adalah instance dari class.

Apa yang dimaksud dengan object Oriented Programming?

Menurut Gillis dan Lewis dalam artikelnya, Object-oriented programming atau OOP diartikan sebagai pemrograman yang berorientasi pada objek yang merupakan model pemrograman komputer dengan pengaturan desain perangkat lunak di sekitar data atau objek. Berbeda dengan pemrograman lain yang berfokus pada fungsi dan logika, ...