Membandingkan kode prosedural dengan Object Oriented di PHP

Salah satu alasan mengapa program dengan pendekatan object oriented digunakan adalah karena object oriented programming (OOP) memudahkan anda dalam berhubungan dengan data. Data disimpan / dibungkus didalam object, karenanya variable tidak perlu dilewatkan melalui fungsi ke fungsi untuk merubahnya.

Untuk memudahkan pemahaman anda, berikut ini contoh program ditulis dengan pendekatan kode prosedural dan nanti akan kita lihat bagaimana kode ditulis dengan pendekatan Object Oriented Programming.

function ubahAlamat($siswa, $alamatbaru)
{
      $siswa['alamat']=$alamatbaru;
      return $siswa;
}

function naikKelas($siswa)
{
     ++$siswa['kelas'];
     return $siswa;
}

$siswa1 = array(
   'nama'=>'Rosalie Naurah',
   'alamat'=>'Depok',
   'kelas'=>3
);
$siswa2 = array(
   'nama'=>'Faiz Fikri',
   'alamat'=>'Kalibata',
   'kelas'=>1
);

echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';

// siswa 1 alamatnya berubah dan naik kelas
$siswa1 = ubahAlamat($siswa1,'Bogor');
$siswa1 = naikKelas($siswa1);

// siswa 2 naik kelas
$siswa2 = naikKelas($siswa2);

// output setelah terjadi perubahan
echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';

?>

Berikut output yang dihasilkan :

Siswa 1 : Array
(
    [nama] => Rosalie Naurah
    [alamat] => Depok
    [kelas] => 3
)
Siswa 2 : Array
(
    [nama] => Faiz Fikri
    [alamat] => Kalibata
    [kelas] => 1
)
Siswa 1 : Array
(
    [nama] => Rosalie Naurah
    [alamat] => Bogor
    [kelas] => 4
)
Siswa 2 : Array
(
    [nama] => Faiz Fikri
    [alamat] => Kalibata
    [kelas] => 2
)

Berikut ini kode program dengan pendekatan Object Oriented Programming

<?php

class Siswa {

   private $nama;
   private $alamat;
   private $kelas;

   function __construct($nm, $al, $kl)
   {
        $this->nama = $nm;
        $this->alamat = $al;
        $this->kelas = $kl;
   }

   function ubahAlamat($alamatbaru)
   {
        $this->alamat = $alamatbaru;
   }

   function naikKelas()
   {
        ++$this->kelas;
   }

}
 $siswa1 = new Siswa ('Rosalie Naurah','Depok',3);
 $siswa2 = new Siswa ('Faiz Fikri','Kalibata',1);

echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';

// siswa 1 alamatnya berubah dan naik kelas
 $siswa1->ubahAlamat('Bogor');
 $siswa1->naikKelas();

// siswa 2 naik kelas
 $siswa2->naikKelas();

// output setelah terjadi perubahan
echo '<pre>Siswa 1 : '. print_r($siswa1, TRUE). '</pre>';
echo '<pre>Siswa 2 : '. print_r($siswa2, TRUE). '</pre>';

Dan berikut output yang dihasilkan :

Siswa 1 : Siswa Object
(
    [nama:Siswa:private] => Rosalie Naurah
    [alamat:Siswa:private] => Depok
    [kelas:Siswa:private] => 3
)

Siswa 2 : Siswa Object
(
    [nama:Siswa:private] => Faiz Fikri
    [alamat:Siswa:private] => Kalibata
    [kelas:Siswa:private] => 1
)

Siswa 1 : Siswa Object
(
    [nama:Siswa:private] => Rosalie Naurah
    [alamat:Siswa:private] => Bogor
    [kelas:Siswa:private] => 4
)

Siswa 2 : Siswa Object
(
    [nama:Siswa:private] => Faiz Fikri
    [alamat:Siswa:private] => Kalibata
    [kelas:Siswa:private] => 2
)

Pada implementasi dengan skala kecil memang terlihat banyak perbedaan antara kode program dengan prosedural dengan object oriented programming, tetapi untuk aplikasi yang terus berkembang dan meluas maka implementasi kode program dengan pendekatan object oriented programming akan sangat significant membuat aplikasi anda akan mudah implementasinya.
Namun tidak semua harus menggunakan pendekatan OOP, jika memang anda hanya membutuhkan sebuah fungsi sederhana, maka tentu saja gunakan pendekatan prosedural saja.

Selamat mencoba !!!

There Is 1 Response So Far. »

  1. terimakasih informasinya, boleh saya kutip ya mas code programnya, trims :-D

Post a Response