Program PHP Tanpa Paradigma OOP
Sebelum masuk ke pembahasan pemrograman berorientasi objek, mari kita lihat potongan kode berikut:
<?php
function hitungLuas($p, $l){
return $p * $l;
}
function hitungKeliling($p, $l){
return (2 * $p) + (2 * $l);
}
$panjang = 10;
$lebar = 5;
printf("Luas: %s\n", hitungLuas($panjang, $lebar));
printf("Keliling: %s\n", hitungKeliling($panjang, $lebar));
Potongan kode di atas bila kita jalankan akan muncul seperti berikut:
$ php operasi-persegi.php
Luas: 50
Keliling: 30
Bagi kamu yang terbiasa menulis kode PHP secara native tanpa menggunakan OOP pasti sudah biasa menulis seperti di atas kan? kita buat berbagai function secara generik agar bisa digunakan berulang kali untuk operasi tertentu. Lalu kita pun menulis sebuah variabel untuk menyimpan sebuah nilai. Lalu lakukan operasi dengan function yang ada, dan dapatlah hasilnya.
Apa yang terjadi bila kamu ingin membuat fungsi untuk menghitung luas dan keliling lingkaran? Tentu kedua fungsi di atas tidak dapat digunakan untuk menghitung bangun lingkaran karena rumus yang digunakan berbeda. Ada beberapa solusi yang bisa kamu lakukan diantaranya:
- Kamu akan perlu membuat fungsi baru misalnya dengan nama
hitungLuasLingkaran()
danhitungKelilingLingkaran()
. Dan sepertinya kamu bakal perlu mengganti juga nama kedua fungsi yang sudah ada di atas agar lebih spesifik menjadihitungLuasPersegi()
danhitungKelilingPersegi()
. Selain itu kamu juga harus menyiapkan variabel baru seperti$radius
atau$diameter
untuk perhitungan lingkaran agar kodemu lebih mudah dipahami. - Kamu dapat menggunakan fungsi yang sudah ada yaitu
hitungLuas()
danhitungKeliling()
dan menambahkan rumus untuk bangun datar lain seperti lingkaran, segitiga, dan sebagainya. Kamu juga akan perlu menambahkan parameter$bangunDatar
untuk memilah rumus mana yang akan digunakan. Namun cara ini sangat beresiko karena ketika kamu perlu menghitung jenis bangun datar lain, kamu akan menambahkan kode untuk rumus baru di dalamnya sehingga fungsinya akan semakin gemuk dan kompleks. Selain itu kode lama yang sudah berjalan dengan baik malah menjadi error.
Program PHP dengan Paradigma OOP
Sekarang bandingkan dengan kode berbasis OOP berikut:
<?php
class Persegi {
private $panjang;
private $lebar;
function __construct($panjang, $lebar)
{
$this->panjang = $panjang;
$this->lebar = $lebar;
}
function hitungLuas()
{
return $this->panjang * $this->lebar;
}
function hitungKeliling()
{
return (2 * $this->panjang) + (2 * $this->lebar);
}
}
$persegi = new Persegi(5, 10);
printf("Luas: %s\n", $persegi->hitungLuas());
printf("Keliling: %s\n", $persegi->hitungKeliling());
Pada kode di atas, kita membuat sebuah class dengan nama
Persegi
. Tidak seperti teknik prosedural, pada OOP kita mengemas operasi perhitungan luas dan keliling persegi di dalam class. Sekilas kamu akan lihat baris kode yang dibuat lebih banyak dari yang contoh kode pertama. Tapi struktur penulisan kode berbasis class seperti ini akan lebih mudah dirawat, terutama bila program yang dibuat sudah semakin kompleks.
Misalnya, terkait isu di awal pembahasan, bila kita hendak menambahkan kode untuk menghitung luas dan keliling lingkaran, maka solusinya adalah kita tinggal membuat class baru untuk operasi perhitungan lingkaran, seperti ini:
<?php
class Lingkaran {
private $radius;
function __construct($radius)
{
$this->radius = $radius;
}
function hitungLuas()
{
return 22 / 7 * 2 * $this->radius;
}
function hitungKeliling()
{
return 22 / 7 * $this->radius * $this->radius;
}
}
$lingkaran = new Lingkaran(5);
printf("Luas: %s\n", $lingkaran->hitungLuas());
printf("Keliling: %s\n", $lingkaran->hitungKeliling());
Dengan membuat class baru, class lama yakni
Persegi
tidak akan terganggu oleh kode yang baru. Selain itu kode dari setiap class tetap ramping dan mudah dibaca. Kita juga dapat menggunakan nama fungsi yang generik seperti hitungLuas()
dan hitungKeliling()
karena konteksnya sudah terkait langsung dengan class yang sedang digunakan.Selanjutnya bisa di klik dibawah ini
Pendahuluan OOP |
---|
Click saja di button ini untuk selanjutnya OOP dan Keunggulannya |
Beberapa Istilah OOP di PHP
Class dan Object di PHP
Membuat Class
Instansiasi Objek
...
...
...
...
...
Menggali OOP PHP Lebih Dalam
...
...
...
...
Fungsi fungsi Terkait Class
...
...
...
...
...
...
Design Pattern
...
...
...
....
....
....
Akses Database Berbasis Objek
...
...
PHP Exception
...
...
...
....
Class Reflection
...
...
...
....
Unit Testing
...
...
...
....
....
0 Comments
Hi...
:)
Thank You for your Comment.
I will reply as soon as possible.