Konsep Pemrograman Berorientasi Objek (OOP) PHP dengan Contoh

⚡ Ringkasan Cerdas

Pemrograman Berorientasi Objek (OOP) di PHP memodelkan aplikasi di sekitar objek dunia nyata menggunakan kelas dan objek. Panduan ini menjelaskan prinsip-prinsip OOP yaitu enkapsulasi, pewarisan, dan polimorfisme, bagaimana PHP mendukungnya, dan membangun contoh kelas, pewarisan, dan antarmuka yang berfungsi langkah demi langkah.

  • 🧱 Kelas dan Objek: Sebuah kelas mendefinisikan properti dan metode dari suatu hal di dunia nyata, dan sebuah objek adalah satu contoh dari kelas tersebut.
  • 🔒 Enkapsulasi: Variabel privat dengan metode get dan set publik menyembunyikan detail internal dan melindungi keadaan objek.
  • 👪 Warisan: Kata kunci extends memungkinkan kelas turunan untuk menggunakan kembali metode dari kelas induk, sehingga mengurangi duplikasi kode.
  • 🔁 Polimorfisme: Sebuah antarmuka mendefinisikan metode standar yang diimplementasikan secara berbeda oleh banyak kelas di balik satu konsep yang seragam.tract.
  • 📐 Diagram Kelas UML: Diagram kelas menunjukkan nama kelas, variabel, dan metode, dengan tanda plus, minus, dan tanda pagar yang menandai cakupan publik, privat, dan terlindungi.
  • 🧩 Antarmuka dan Abstract: Otot peruttracKelas t berbagi kode yang sama, sementara sebuah antarmuka menjamin setiap kelas driver menyediakan metode yang sama.
  • 🤖 Bantuan AI: Alat AI dapat menghasilkan kelas PHP dari deskripsi dan merefaktor kode prosedural menjadi kode berorientasi objek yang rapi.

Pemrograman Berorientasi Objek PHP

Apa itu OOP?

Pemrograman berorientasi objek adalah pendekatan pengembangan perangkat lunak yang memodelkan aplikasi berdasarkan objek dunia nyata seperti karyawan, mobil, dan rekening bank. Sebuah kelas mendefinisikan properti dan metode dari objek dunia nyata. Sebuah objek adalah contoh dari sebuah kelas.

Tiga komponen dasar dari orientasi objek adalah:

  • Analisis berorientasi objek – fungsionalitas sistem
  • Desain berorientasi objek – arsitektur sistem
  • Pemrograman berorientasi objek – implementasi aplikasi

Prinsip Pemrograman Berorientasi Objek

Tiga prinsip utama OOP adalah:

  • Enkapsulasi – ini berkaitan dengan menyembunyikan detail implementasi dan hanya mengekspos metode-metodenya. Tujuan utama enkapsulasi adalah untuk:
    • Mengurangi kompleksitas pengembangan perangkat lunak – dengan menyembunyikan detail implementasi dan hanya memaparkan operasinya, penggunaan kelas menjadi mudah.
    • Melindungi keadaan internal suatu objek – akses ke variabel kelas dilakukan melalui metode seperti get dan set. Hal ini membuat kelas menjadi fleksibel dan mudah dipelihara.
    • Izinkan perubahan pada implementasi internal kelas tanpa perlu khawatir akan merusak kode yang menggunakan kelas tersebut.
  • Warisan – ini berkaitan dengan hubungan antar kelas. Hubungan tersebut berbentuk induk dan anak. Anak menggunakan metode yang didefinisikan dalam kelas induk. Tujuan utama pewarisan adalah:
    • Kemampuan penggunaan kembali – sejumlah turunan dapat mewarisi dari induk yang sama. Ini sangat berguna ketika kita harus menyediakan fungsionalitas umum seperti menambahkan, memperbarui, dan menghapus data dari basis data.
  • Polimorfisme – ini berkaitan dengan memiliki satu antarmuka dengan banyak implementasi yang berbeda. Tujuan utama polimorfisme adalah:
    • Untuk menyederhanakan pemeliharaan aplikasi dan membuatnya lebih mudah diperluas.

Ups Concepts di PHP

PHP adalah bahasa skrip berorientasi objek; bahasa ini mendukung semua prinsip di atas. Prinsip-prinsip di atas dicapai melalui:

  • Enkapsulasi – melalui penggunaan metode “get” dan “set”, serta pengubah akses.
  • Warisan – melalui penggunaan kata kunci extends
  • Polimorfisme – melalui penggunaan kata kunci implements

Sekarang kita memiliki pengetahuan dasar tentang OOP dan bagaimana hal itu didukung PHPMari kita lihat contoh-contoh yang menerapkan prinsip-prinsip di atas.

Apa itu UML?

Unified Modeling Language (UML) adalah teknik yang digunakan untuk mendesain dan mendokumentasikan sistem berorientasi objek.

UML menghasilkan sejumlah dokumen, tetapi kita akan melihat diagram kelas, yang sangat penting untuk pemrograman PHP berorientasi objek.

Contoh Diagram Kelas

Ups Concepts di PHP

Kunci Diagram Kelas

  • The kotak atas berisi nama kelas
  • The kotak tengah berisi variabel kelas
  • The kotak bawah berisi metode kelas
  • The dikurangi (-) tanda berarti lingkup pribadi
  • The ditambah (+) tanda berarti ruang lingkup publik
  • The tanda pagar (#) tanda berarti ruang lingkup yang dilindungi

Cara Membuat kelas di PHP

Kata kunci class digunakan untuk mendefinisikan kelas di PHP. Di bawah ini adalah aturan untuk membuat kelas di PHP.

  • Nama kelas harus dimulai dengan huruf
  • Nama kelas tidak boleh berupa kata khusus PHP
  • Nama kelas tidak boleh mengandung spasi

Misalkan kita ingin membuat kelas untuk merepresentasikan hewan. Kita akan mulai dengan mengidentifikasi ciri-ciri yang umum dimiliki oleh semua hewan.

  • Semua hewan termasuk dalam suatu famili, seperti herbivora, karnivora, dan lain sebagainya.
  • Semua hewan memakan makanan

Diagram di bawah ini menunjukkan diagram kelas untuk hewan tersebut.

Buat kelas di PHP

Sekarang mari kita buat kode untuk kelas Animal kita.

<?php
class Animal
{
    private $family;
    private $food;
    public function __construct($family, $food)
    {
        $this->family = $family;
        $this->food = $food;
    }
    public function get_family()
    {
        return $this->family;
    }
    public function set_family($family)
    {
        $this->family = $family;
    }
    public function get_food()
    {
        return $this->food;
    }
    public function set_food($food)
    {
        $this->food = $food;
    }
}
?>

SINI,

  • “private $family, $food” berarti variabel-variabel tersebut tidak dapat diakses secara langsung di luar kelas (enkapsulasi).
  • “public function __construct($family…)” adalah metode konstruktor PHP. Fungsi ini dipanggil setiap kali sebuah instance dari kelas tersebut dibuat. Dalam hal ini, kita mengatur keluarga dan makanan.
  • “public function get…()” adalah metode yang digunakan untuk mengakses nilai famili atau nilai pangan (enkapsulasi).
  • “public function set…()” adalah metode yang digunakan untuk mengatur nilai keluarga atau nilai pangan (enkapsulasi).

Cara Menerapkan Pewarisan di PHP

Kami akan bekerja dengan sapi dan singa. Baik sapi maupun singa mewarisi kelas Hewan.

Diagram kelas di bawah ini menunjukkan hubungan tersebut.

mengimplementasikan Warisan di PHP

Perhatikan bahwa sapi mewarisi dari kelas Animal dan juga mendefinisikan variabel dan metodenya sendiri.

Sekarang mari kita buat kode untuk kelas Cow.

<?php
class Cow extends Animal
{
    private $owner;
    public function __construct($family, $food)
    {
        parent::__construct($family, $food);
    }
    public function set_owner($owner)
    {
        $this->owner = $owner;
    }
    public function get_owner()
    {
        return $this->owner;
    }
}
?>

Sekarang mari kita buat kode untuk kelas Lion.

<?php
class Lion extends Animal
{
    public function __construct($family, $food)
    {
        parent::__construct($family, $food);
    }
}
?>

SINI,

  • “class … extends Animal” membuat kelas Cow dan Lion menggunakan metode dari kelas Animal (pewarisan).

Cara membuat objek dari kelas tersebut

Kelas Hewan, Sapi, dan Singa semuanya harus berada di direktori yang sama demi kesederhanaan.

Sekarang mari kita buat aplikasi yang menggunakan kelas-kelas kita.

Contoh Kelas PHP

<?php
require 'Animal.php';
require 'Cow.php';
require 'Lion.php';
$cow = new Cow('Herbivore', 'Grass');
$lion = new Lion('Carnivore', 'Meat');
echo '<b>Cow Object</b> <br>';
echo 'The Cow belongs to the ' . $cow->get_family() . ' family and eats ' . $cow->get_food() . '<br><br>';
echo '<b>Lion Object</b> <br>';
echo 'The Lion belongs to the ' . $lion->get_family() . ' family and eats ' . $lion->get_food();
?>

Menguji aplikasi kami

Sekarang mari kita lihat aplikasi kita di peramban web.

Warisan dalam PHP

Kedua objek tersebut menggunakan kembali metode get_family dan get_food yang diwarisi dari kelas Animal, yang menunjukkan bagaimana pewarisan bekerja.

Cara Menerapkan Polimorfisme di PHP

Misalkan kita ingin mengembangkan aplikasi yang terhubung ke berbagai mesin basis data seperti... MySQL ke SQL Server tetapi menggunakan antarmuka seragam yang sama. Kita dapat membuat antarmuka yang mendefinisikan metode standar dan absolut.tracKelas t yang mengimplementasikan metode-metode umum.

  • Antarmuka – mirip dengan kelas. Itu hanya mendefinisikan metode dan parameter.
  • Abstrackelas t – ini adalah kelas yang tidak dapat digunakan untuk membuat objek secara langsung. Tujuannya adalah untuk menyediakan implementasi sebagian atau seluruh metode umum.

Diagram kelas di bawah ini menggambarkan hubungan antara abs kita.trackelas t, antarmuka, dan kelas implementasi.

Warisan dalam PHP

Sekarang mari kita buat otot perut kita.trackelas t.

<?php
abstract class DBCommonMethods
{
    private $host;
    private $db;
    private $uid;
    private $password;
    public function __construct($host, $db, $uid, $password)
    {
        $this->host = $host;
        $this->db = $db;
        $this->uid = $uid;
        $this->password = $password;
    }
}
?>

SINI,

  • “abstrac"kelas t" berarti kelas tersebut tidak dapat digunakan secara langsung untuk membuat objek.
  • “$host, $db…” adalah variabel kelas yang umum untuk semua implementasi.
  • “function __construct(…)” adalah metode konstruktor kelas yang menetapkan nilai variabel umum pada saat inisialisasi.

Sekarang mari kita buat antarmuka yang berisi metode standar, yang akan diimplementasikan secara berbeda tergantung pada mesin basis data yang digunakan.

<?php
interface DBInterface
{
    public function db_connect();
    public function insert($data);
    public function read($where);
    public function update($where);
    public function delete($where);
}
?>

SINI,

  • "antarmuka" adalah kata kunci untuk membuat antarmuka
  • “Fungsi publik…(…)” adalah metode standar yang harus diterapkan

Sekarang mari kita buat kelas-kelas konkret yang akan memperluas kelas DBCommonMethods dan mengimplementasikan antarmuka DBInterface. Pertama, MySQLDriver.php:

<?php
class MySQLDriver extends DBCommonMethods implements DBInterface
{
    public function __construct($host, $db, $uid, $password)
    {
        parent::__construct($host, $db, $uid, $password);
    }
    public function db_connect() { /* connect code goes here */ }
    public function delete($where) { /* delete code goes here */ }
    public function insert($data)  { /* insert code goes here */ }
    public function read($where)   { /* read code goes here */ }
    public function update($where) { /* update code goes here */ }
}
?>

Kemudian, MSSQLServerDriver.php:

<?php
class MSSQLServerDriver extends DBCommonMethods implements DBInterface
{
    public function __construct($host, $db, $uid, $password)
    {
        parent::__construct($host, $db, $uid, $password);
    }
    public function db_connect() { /* connect code goes here */ }
    public function delete($where) { /* delete code goes here */ }
    public function insert($data)  { /* insert code goes here */ }
    public function read($where)   { /* read code goes here */ }
    public function update($where) { /* update code goes here */ }
}
?>

SINI,

  • “kelas … extends DBCommonMethods” menggunakan metode-metode dalam DBCommonMethods
  • “… mengimplementasikan DBInterface” memastikan bahwa kelas tersebut menyediakan metode standar terlepas dari driver basis data yang digunakan.

Kode yang menggunakan kelas-kelas di atas akan terlihat seperti ini:

<?php $db = new MySQLDriver($host, $db, $uid, $password); ?>

Atau:

<?php $db = new MSSQLServerDriver($host, $db, $uid, $password); ?>

Bagian kode lainnya akan sama untuk kedua driver, seperti:

<?php
$db->db_connect();
$db->insert($data);
?>

Inilah polimorfisme yang sedang beraksi: panggilan metode yang sama berfungsi pada driver apa pun yang mengimplementasikan antarmuka tersebut, sehingga kode di sekitarnya tidak pernah berubah saat Anda mengganti mesin basis data.

Pertanyaan Umum Demo Slot

Otot peruttracSebuah kelas dapat memuat metode dan properti yang diimplementasikan, dan sebuah kelas hanya memperluas satu. Sebuah antarmuka hanya mendeklarasikan tanda tangan metode, dan sebuah kelas dapat mengimplementasikan banyak metode. Gunakan abstracKelas t untuk berbagi kode, antarmuka untuk menegakkan suatu aturan.tract.

Keempat pilar tersebut adalah enkapsulasi, pewarisan, polimorfisme, dan abs.tracTutorial ini berfokus pada tiga yang pertama; abs.traction menyembunyikan detail kompleks di balik antarmuka yang sederhana, yang didukung PHP dengan abstrackelas dan antarmuka.

Anggota publik dapat diakses di mana saja, anggota privat hanya di dalam kelas yang sama, dan anggota terlindungi di dalam kelas dan subkelasnya. Mereka menegakkan enkapsulasi dengan mengontrol siapa yang dapat membaca atau mengubah setiap properti atau metode.

Ya. Berikan AI kolom atau definisi tabel, dan AI dapat menghasilkan kelas dengan properti bertipe, konstruktor, serta metode get dan set. RevPeriksa tipe data dan tambahkan validasi sebelum menggunakan kelas tersebut.

Ya. Tempelkan skrip prosedural, dan AI dapat mengelompokkan fungsi dan data terkait ke dalam kelas, menerapkan enkapsulasi, dan menyarankan pewarisan atau antarmuka. Uji kode yang telah diubah, karena perilakunya seharusnya tetap identik.

Ringkaslah postingan ini dengan: