Konsep oop pada php

Object Oriented Programming (Pemrograman Berorientasi Obyek) atau OOP merupakan sebuah paradigma atau cara berpikir dalam menulis kode program. Seorang peneliti bidang komputer bernama Alan Kay memperkenalkan konsep ini. Konsep ini menjadi populer dan menggantikan teknik penulisan prosedural pada berbagai bahasa pemrograman. Salah satu bahasa yang menerapkan konsep OOP dan menggantikan konsep prosedural adalah bahasa pemrograman PHP.

PHP memperkenalkan konsep OOP ini sejak versi 5 yang memicu awal munculnya framework mvc seperti Codeigniter, CakePHP dan Laravel. Hingga saat ini (PHP versi 8), konsep OOP mendapat pengembangan dan optimisasi yang sangat signifikan. Tulisan ini akan membahas contoh oop pada bahasa pemrograman PHP.

Pengenalan Singkat OOP pada PHP

Konsep OOP menekankan bahwa semua hal adalah obyek. Setiap proses yang ada pada obyek tersebut terenkapsulasi (tersembunyi, pen) sehingga obyek lain hanya bisa mengakses variabel dan fungsi yang memiliki akses/visibilitas public.

Contoh obyek dan deklarasinya :

<?php
// contoh obyek Kalkulator
class Kalkulator {};
// contoh deklarasi obyek Kalkulator kedalam variabel $kalkulator
$kalkulator = new Kalkulator; 

Setiap obyek, biasanya memiliki :

  • Property, yaitu variabel yang terdapat pada class atau obyek.
  • Method, yaitu fungsi yang terdapat pada class atau obyek.

Kita bisa mengeset visibilitas/akses property dan method tersebut menjadi :

  • Private, obyek lain tidak dapat mengakses property dan method dari sebuah obyek dan hanya obyek itu sendiri yang dapat mengaksesnya .
  • Protected, hanya obyek tersebut dan turunannya melalui extend yang dapat mengakses property dan method.
  • Public, obyek lain dapat mengakses property dan method dari sebuah obyek.

Kita bisa mengakses property dan method dalam class dengan menggunakan keyword $this. Keyword $this mengacu pada obyek itu sendiri. Contoh di bawah ini adalah obyek Kalkulator dengan property $input yang memiliki visibilitas private dan method getInput() yang memiliki visibilitas public. Perhatikan bahwa keyword $this mengacu pada property $input pada obyek tersebut.

<?php
class Kalkulator {
  private $input = 0; // property
  public function getInput(){ // method
    return $this->input;
  }
}
$kalkulator = new Kalkulator; // deklarasi obyek
echo $kalkulator->getInput(); // output : 0
echo $kalkulator->input; // error akses private

Kita tidak dapat memanggil property $input secara langsung karena property tersebut memiliki akses private.

Getter dan Setter

Sebuah property yang memiliki visibilitas public dapat bisa diakses secara langsung oleh obyek lain. Hal ini bertentangan dengan paradigma enkapsulasi pada OOP dimana property pada sebuah obyek tidak boleh diakses dan diubah secara langsung. Untuk mengatasi hal ini, OOP mengenalkan sebuah konsep bernama Getter dan Setter. Getter merupakan sebuah metode untuk mengambil value dari sebuah property sedangkan Setter merupakan sebuah metode untuk merubah nilainya.

<?php
class Kalkulator {
  private $input = 0; // private property
  private $hasil = 0;
  public function setInput($input){ // setter
    $this->input = $input;
  }
  public function getHasil(){ // getter
    return $this->hasil;
  }
  public function tambah($nilai){
    $this->hasil = $this->input + $nilai;
  }
}
$kalkulator = new Kalkulator; // deklarasi obyek
$kalkulator->setInput(5);
$kalkulator->tambah(3);
echo $kalkulator->getHasil(); // output : 8

Inheritance

Sebuah obyek dapat memiliki obyek turunan yang memiliki sifat-sifat obyek yang sama. Obyek turunan dapat memiliki property dan method yang sama sehingga secara tidak langsung menerapkan konsep reusable. Contoh di bawah ini merupakan contoh inheritance :

// parent class
Class Smartphone {
  private $coreCount = 2;
  public function getCoreCount()
  {
    return $this->coreCount;
  }
}
// child class
Class NextModel extends Smartphone {
  private $coreCount = 4;
}
$nextModel = new NextModel;
echo $nextModel->getCoreCount(); // hasil : 4

Script diatas menunjukkan bahwa class NextModel mendapatkan method getCoreCount() melalui inheritance.

OOP (Object) Oriented Programming adalah jenis pemrograman yang menggunakan objek-objek berisi properti dan method. Dalam OOP, programmer menggunakan class sebagai blue print dari suatu objek. Dalam class, variabel disebut properti dan function disebut dengan method. Setelah class dibuat, kita bisa membuat objek dengan class tersebut. Sebelum melanjutkan pembahasan tentang OOP, saya akan memberi contoh cara mendeklarasikan class.

class namakelas{
    var $nama_properti1;

    var $nama_properti2;
    function nama_method(){
        //isi function
    }
    //variabel dan function lainnya
}

Class bisa memiliki beberapa properti dan method. Setiap properti atau method bisa memiliki batas aksebilitas tertentu. Pemberian aksebilitas dari tiap anggota class dalam OOP biasa disebut dengan "encapsulation". Dengan encapsulation kita bisa membatasi hak akses dari objek lain terhadap suatu object. Dalam PHP, encapsulation yang bisa kita gunakan ada 3 macam, yaitu :

  1. Public : Properti dan method dapat diakses dari bagian manapun dalam script.
  2. Private : Properti dan method hanya bisa diakses dari dalam class saja.
  3. Protected : Properti dan method hanya bisa diakses dari dalam class atau objek turunan.

Contoh penggunaan encapsulation bisa kalian lihat di bawah ini.

Saat membuat objek, kita bisa memberikan nilai menggunakan constructor bersamaan dengan pembuatan object baru ataupun memberikan nilai setelah object dibuat.

class rumah{
   
public $pintu;
    public $jendela;
   
private $kursi;

    private $meja;
    protected $halaman;
 
    function __construct($x, $y){
        $this->meja=$x;
        $this->kursi=$y;
    }
   
    function nama_method(){
        //isi function
    }
}

Pada contoh di atas, saya juga menyertakan function khusus yang bernama __construct (yang diawali dengan dua underscore). Function tersebut adalah function yang otomatis akan dipanggil saat objek dibuat. Parameter function tersebut bisa digunakan untuk memberi nilai pada properti dalam object saat object dibuat.

Jika kalian ingin menggunakan objek, kalian perlu menginstansiasi objek dengan menggunakan "new". Cara melakukan instansiasi (instantiation) bisa kalian lihat di dalam script PHP di bawah ini.

<?PHP
    class rumah{
        public $pintu;
        public $jendela;
        private $kursi;
        private $meja;
        protected $halaman;

           function __construct($x, $y){
            $this->meja=$x;
            $this->kursi=$y;
        }

           function jelaskan(){
            echo("Meja : ".$this->pintu."<BR />");
            echo("Kursi : ".$this->jendela);
        }
    }
    //instansiasi objek
    $rumahku=new rumah(2, 4);
    $rumahku->pintu=2;
    $rumahku->jendela=5;
    $rumahku->jelaskan();
?>

Konsep oop pada php

Pada contoh di atas, kalian sudah menggunakan instansiasi objek untuk membuat objek rumahku dari class rumahku. Kalian juga sudah memberi nilai dengan menggunakan properti dan method di luar method. Dari contoh di atas jelas terlihat bahwa nama objek dan anggotanya dipisahkan dengan tanda "->". Selanjutnya, kalian bisa coba buat sendiri beberapa object dengan satu class yang sama.

Oh ya, untuk menggunakan properti dan method di dalam class yang memiliki properti dan method tersebut, kalian perlu menggunakan $this. Kalau properti atau method digunakan di luar class setelah object dibuat, maka yang digunakan adalah nama object-nya.

Satu hal lagi yang kalian perlu ketahui adalah inheritance atau pewarisan. Pewarisan adalah pembuatan class baru dengan menyalin class yang lebih sederhana sambil menambahkan properti dan method baru. Class yang dibuat dengan inheritance akan memiliki properti dari "class ortunya". Dalam PHP, inheritance ditandai dengan penggunaan "extends" seperti contoh di bawah ini.

class namaclassbaru extends namaclassortu{
    //tambahkan sendiri anggotanya

}

Penggunaan inheritance bisa kalian lihat pada contoh di bawah ini.


<?PHP
    class rumah{
        public $pintu;
        public $jendela;
        private $kursi;
        private $meja;
        protected $halaman;

        function __construct($x, $y){
            $this->meja=$x;
            $this->kursi=$y;
        }

        function jelaskan(){
            echo("Meja : ".$this->pintu."<BR />");
            echo("Kursi : ".$this->jendela."<BR />");
        }
    }

    class gedung extends rumah{
        public $tingkat;
        public $lift;

        function __constructor($x, $y){
            $this->lift=$x;
            $this->tingkat=$y;
        }

        function tampilkan(){
            echo("Lift : ".$this->lift."<BR />");
            echo("Tingkat : ".$this->tingkat."<BR />");
        }
     }

    //instansiasi objek rumah
    $rumahku=new rumah(2, 4);
    $rumahku->pintu=2;
    $rumahku->jendela=5;
    $rumahku->jelaskan();

    //instansiasi objek gedung
    $gedungku=new gedung(3, 5);
    $gedungku->tampilkan();
?>


  • Tweet
  • Share
  • Share
  • Share

Apa itu PHP OOP?

Object Oriented Programming (OOP) merupakan paradigma pemrograman yang berorientasikan kepada obyek. Semua data dan fungsi pada paradigma ini dibungkus dalam kelas-kelas atau obyek-obyek. Bandingkan dengan logika pemrograman terstruktur, setiap obyek dapat menerima pesan, memproses data, dan mengirim pesan ke obyek ...

Apa itu OOP dan contohnya?

Object-Oriented Programming atau OOP adalah suatu metode programming yang berorientasi pada objek. Program-program tersebut merupakan gabungan dari beberapa komponen kecil yang telah ada sebelumnya, sehingga dapat mempermudah pekerjaan seorang programmer dalam melakukan pengembangan.

Bagaimana OOP bekerja?

Object oriented programming atau OOP adalah konsep pemrograman yang berorientasi pada objek atau data untuk mengatur sebuah desain program. Secara garis besar, cara kerja OOP yaitu membangun program dari gabungan objek-objek yang saling berhubungan dan disusun menjadi satu kesatuan.