Mengapa lebih bagus ngoding PHP pakai Class (OOP)?

By Admin
PHP
25 Jul 2022

Jadi ceritanya ada banyak programming languages, ada banyak programmer, banyak kepala, banyak kebiasaan :v

Beberapa developer mulai ngoding dengan mendisain object-object yang kira-kira dibutuhkan. Lalu menulis object tersebut ke dalam beberapa class.

Ada juga developer yg menulis class karena melihat contoh orang lain yg pake class tanpa tahu fungsinya apa.

Ada juga yg memakai class tapi menggunakan class orang lain yg sudah ada, jadi tinggal pakai.

Tapi ada juga yang ga mau nulis class, cukup pake function atau menulis php code-nya sembarangan saja asal project kelar atau biasa disebut inline code.

Jadi kamu yang mana gais?

Ga ada yg salah dengan style ngoding kalian. Tapi coba baca lebih lanjut kenapa kalau pake OOP model lebih bagus dalam men-development project PHP kamu.

Pendahuluan

Sebenernya agak ragu buat nulis artikel ini karena sepertinya sudah semua paham tentang OOP. Tapi setelah ditanya dari beberapa reference tentang mengapa banyak yang malas memakai class atau OOP adalah:

  1. Pakai class ribet, nanti kalau banyak class yang di panggil bakalan membuat applikasi menjadi lambat katanya (?). Jadi mending pake global variable aja, buat fungsi aja udah cukup bro.
  2. “Kamu tau Worpress kan bro? katanya corenya itu ditulis hanya dengan global function dan variable, ga ada masalah tuh kan tanpa class, malah jadi cms ngetop?” Ok bro, tapi kamu tau gak kalau WP pelan2 udah mulai adaptasi ke object oriented approach loo walaupun sebagian besar codenya masih berupa global code.
  3. Beberapa orang mungkin udah memakai OOP tapi saat ditanya kenapa, mereka tidak yakin kenapa pakai OOP. Mereka hanya mengikuti best practice dari orang lain aja. Fine, mengikuti best pracetice adalah langkah awal kamu buat jadi programmer yang baik (bukan yang master ya). Dengan mengikuti best practice, artinya kamu tau apa yang kamu lakukan dan punya kontrol penuh dan panduan yg baik dalam ngoding.

Sebenarnya masih banyak lagi sih tentang perdebatan opini ini. Tapi cukup segitu aja dah gays.

Apa itu OOP classes?

<?php
class Database {
	
	var $result;

	function execute($query){
		$this->result = mysql_query($query);

		return $this->result !== false;
	}

	function display(){
		while($row = mysql_fetch_array($this->result)){
			echo $row;
		}
	} 

}

Nah di atas itu contoh sebuah class.

Class itu terdiri dari function dan beberapa variable yang disebut dengan property yang menjadi satu kesatuan.

Jadi dasar dari OOP itu bagi yg belum tahu adalah: sebuah Objects dimana menjadi sebuah wadah/tempat yang berisi beberapa function dan variable yang menjelaskan tentang sebuah kesatuan atau fungsi tertentu.

Nah fitur ini biasa disebut encapsulation atau istilahnya di bungkus, yang artinya dalam sebuah object mungkin berisi lebih dari 1 function dan variable yang nantinya dapat bekerja sama sesuai dengan Object apa itu yang dibuat.

Misalnya kamu punya sebuah object Produk di toko online. Nah object Produk ini mungkin berisi beberapa variable seperti nama, berat, warna gambar, ukuran dan lainnya. Selain itu object Produk mungkin juga memiliki function yang berfungsi untuk memanipulasi variable-variable tersebut.

Sehingga object Produk ini adalah suatu kesatuan yang merupakan wadah informasi dari produk di toko online kamu beserta fungsi-fungsinya.

Biar lebih jelas berikut contoh object Produk (obejct ini dalam OOP berbentuk sebuah class)

<?php
class Produk {
	
	var $nama;
	var $warna;
	var $berat;
	var $deskripsi;
	var $harga;

	function add($nama,$warna,$berat,$deskripsi,$harga){
		$this->nama = $nama;
		$this->warna = $warna;
		$this->berat = $berat;
		$this->deskripsi = $deskripi;
		$this->harga = $harga;
	}

	function display(){
		echo 'Detail Produk &lt;br>';
		echo 'Nama : '.$nama. '&lt;br>';
		echo 'Warna : '.$warna. '&lt;br>';
		echo 'Berat : '.$berat. '&lt;br>';
		echo 'Deskripsi : '.$deskripsi. '&lt;br>';
		echo 'Harga : '.$harga. '&lt;br>';
	}
}

Terus kalau sudah buat class selanjutnya bagaimana?

Nah kamu bisa manggil class tersebut menjadi beberapa instance tersebut dengan new operator.

Jadi kamu bisa membuat banyak instant dari produk tersebut hanya dengan 1 class saja. Nah contohnya di bawah ini:

//Instance 1
$produk_a = new Produk();
$produk_a->add('Produk A','Merah','100','Ini adalah produk a','1000');
$produk_a->display();

//Instance 2
$produk_b = new Produk();
$produk_b->add('Produk B','Hitam','300','Ini adalah produk b','1000');
$produk_b->display();

Dengan membuat Class, mengijinkan kamu untuk memanipulasi informasi di dalamnya tanpa harus menggunakan global variable untuk berbagi informasi antara class function.

Seperti class produk di atas, kamu bisa mempunyai class dengan fungsi untuk menambahkan produk dengan nama produk ~a~ dan menampilkan produk tersebut di fungsi display dengan memanggil class variable $nama.

Object Oriented Programming menyediakan fitur lainnya yg ga kalah penting yaitu ~Inheritance~, yang memungkinkan kamu untuk membuat class baru yang mewarisi fungsi class yang sudah ada sebelumnya.

Tapi, kita tidak akan menjelaskan lebih jauh tentang inheritance disini, kita fokus ke kenapa pakai OOP saja.

Kenapa lebih baik develop PHP project kamu dengan OOP Classes?

Alasan utamanya adalah kamu membuat kode kamu lebih terorganisasi sehingga jika terjadi masalah atau bug kamu lebih cepat memperbaikinya. Selain itu jika kamu menggunakan global variable atau function, kamu hanya bisa memakai nama fungsi atau variable itu 1 x aja, jadi jika kamu tidak sengaja membuat 2 buah fungsi yang memiliki nama yang sama, maka sudah pasti akan membuat error. Jadi dengan membungkus variable dan function itu ke dalam class, kamu bisa menghindari error saat menggunakan function atau variable dengan nama yang sama. Ini juga berfungsi saat kamu menggunakan class lain milik orang lain, karena kita tidak sepenuhnya tahu apa saja isi dari class tersebut, jadi dengan membungkus global variable dan fungsi kamu dalam sebuah class, kamu bisa terhindar dari konflik penamaan ini.

Lalu bagaimana dong kalau aku mau buat class sendiri agar tidak konflik dengan class milik orang lain dalam project ku ini? Kemungkinan terdapat nama class yang sama dalam 1 project mungkin kecil, tapi mungkin saja misalnya kamu menggabungkan 2 buah framework dalam 1 project, hal ini mungkin saja terjadi. Jadi untuk mengatasi masalah ini, kamu bisa memakai namespaces dalam class kamu, sehingga kamu tidak akan mengalami masalah konflik penamaan class lagi.

Kesimpulannya, class membantu kamu untuk mengorganisasi code kamu dengan lebih baik, mempermudah proses pencarian bug/error, menghidari konflik dalam penaman variable dan fungsi dan yang paling penting kamu bisa menggunakan kembali kode kamu di beberapa bagian dari project kamu tanpa harus menulis ulang code tersebut dari awal. Ini yang sering di sebut sebagai reusable code.

Kapan OOP classes tidak terlalu penting?

Jadi sebagai programmer kalian juga harus tetap bijak dalam ngoding ya, meskipun kalian bisa saja membuat sebuah class dalam waktu singkat, ada beberapa kasus dimana class tidak terlalu dibutuhkan.

Sebagai contoh jika kamu mau membuat sebuah code yang rasanya tidak akan digunakan berulang-ulang di dalam project kau, maka penggunaan class tentu sedikit percuma tapi buka berarti salah ya.

Tapi ada baiknya jika kamu sedikit melihat ke masa depan, misalnya jika nanti fungsi yang kamu buat akan digunakan secara lebih komplek di bagian lain di project kamu.

Mungkin ada baiknya kamu menggunakan class saja mulai sekarang sekalian jaga-jaga toh ga ada yang rugi juga kan.

Bagaimana dong caranya migrasi dari global code aku ke OOP classes?

Beberapa orang beranggapan global function dan variable sebagai procedural code. FYI: Procedure itu kata lain dari function ya. Class juga memiliki beberapa function dan variable jadi rasanya proses migrasi tersebut tidak terlalu sulit. Mungkin kamu bisa melakukan beberapa langkah-langkah berikut:

  1. Coba pisahkan kira-kira project kamu itu punya object apa saja di dalamnya.
  2. Buat masing-masing object tersebut berupa class dan masukkan fungsi-fungsi dan variable dii dalamnya
  3. Jika ada beberapa fungsi atau variable yang tidak perlu di pakai di tempat lain ada baiknya tidak usah di masukkan ke dalam class, tapi dijadikan sebagai global function saja.

Selanjutnya mulai deh penulisan class kamu. Sebagai contoh jika kamu punya sebuah global variable $variable_name dan sebuah fungsi function_name, dan kamu akan memasukkannya ke dalam Class1 misalnya.

Example global code:

$variable_name = 'foo';

function function_name()
 {
   global $variable_name;

   echo $variable_name;
 }

 function_name();

Menjadi:

$obj = new Class1;
$obj->function_name();

Simple bukan? Sebenarnya masih banyak lagi hal yang perlu di bahas tentang OOP seperti constructor, setter, getter dan yang lainnya.

Kita akan bahas di artikel selanjutnya tentang OPP class.

Saya rasa ini sudah cukup jadi dasar buat kamu untuk migrate code-code lama kamu itu menjadi lebih rapi dengan OOP.

Kesimpulan

Tokoh tokoh yang ada di dalam artikel ini mungkin fiktif belaka dan sebagian besar adalah berupa opini pribadi.

Bagi kamu yang sudah expert dengan OOP, artikel ini ditujukan buat teman-teman yang masih menggunakan ~procedural code~ supaya bisa mengerti tentang kelebihan OOP dan manfaatnya dalam development project PHP selanjutnya. Seperti yang saya katakan sebelumnya, tidak ada cara yang salah, yang ada adalah lebih baik dan kurang baik saja.

Jadi jika ada best practice yang lebih baik, tidak ada salahnya jika mengikuti cara tersebut untuk efisiensi kalian dalam ngoding.

Artikel Lainnya

Artikel lain yang mungkin menarik juga untuk kamu baca.

Belajar PHP – Apa Itu Interface Dalam PHP?

Pada tutorial belajar PHP kali ini, kita akan membahas tentang yang namanya Interface dalam PHP. Apa itu interface?
Admin
5 min read

Pengertian PHP, Fungsi dan contohnya.

Halo teman ngide, kali ini kita akan membahas apa itu php, sejarah PHP. fungsi PHP secara umum dan juga istilah lainya yang berkaitan dengan PHP.
Admin
5 min read

Cara menginstall XAMPP di windows

Jika kamu ingin membuat website di komputer pribadi kamu, maka kamu membutuhkan sebuah web server. Nah salah satu aplikasi untuk membuat web server di komputer kamu adalah XAMPP.
Admin
5 min read

© 2024