Pemrograman
Pemrograman
<?php
return $p * $l;
$panjang = 10;
$lebar = 5;
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:
<?php
class Persegi {
private $panjang;
private $lebar;
$this->panjang = $panjang;
$this->lebar = $lebar;
function hitungLuas()
function 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()
}
$lingkaran = new Lingkaran(5);
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.
OOP atau yang merupakan singkatan dari object oriented programming adalah
salah satu paradigma dalam pemrograman dimana kita memperlakukan kode yang
kita tulis dan susun sebagai sebuah komponen yang dapat dicabut pasang dan
berinteraksi antar komponen. Dibuat seunik mungkin agar suatu blok kode dapat
digunakan ulang dan tidak memiliki redundansi penulisan. Serta kita juga dapat
mencegah pembuatan sebuah fungsi atau prosedur yang sama tapi dimiliki oleh
modul yang berbeda.
Kelebihan yang dimiliki OOP ini sebenarnya tidak hanya berlaku di PHP saja.
Semua bahasa pemrograman juga sama efeknya. OOP diciptakan untuk
mempermudah pengembangan suatu aplikasi.
Tujuan utama OOP adalah: semua yang ingin dilakukan, dilakukan melalui
objek. Objek disini pada dasarnya adalah potongan kecil kode yang terpisah, yang
dapat menggabungkan data dan beharviors secara bersama-sama. Dalam suatu
aplikasi, semua objek terhubung satu sama lain, mereka berbagi data di antara
mereka dan menyelesaikan masalah.
OOP dianggap lebih baik dari segi waktu pengembangan dan biaya
pemeliharan aplikasi. Manfaat utama OOP dapat dilihat sebagai berikut:
Reusability
Objek adalah entitas yang memiliki kumpulan properti dan metode yang
dapat berinteraksi dengan objek lainnya. Suatu objek biasanya memiliki
ketergantungan dengan objek lain. Tetapi suatu objek biasanya dikembangkan
untuk memecahkan serangkaian masalah tertentu. Jadi, ketika pengembang
lain memiliki serangkaian masalah yang sama, mereka dapat menggunakan
Class Anda ke Proyek mereka tanpa mempengaruhi alur kerja yang ada. Ini
untuk mencegah istilah DRY (Don't Repeat Yourself). Dalam pemrograman
fungsional atau modular, Reusability dimungkinkan tetapi terlalu komplek.
Refactoring
Extensible
Anda bisa memperluas objek dan membuat objek yang sama sekali baru
serta mempertahankan semua properti dan metode yang diperlukan dari objek
induknya dan kemudian memaparkan fitur baru. Ini biasanya disebut
"Inheritance" dan ini merupakan fitur yang sangat penting dari OOP.
Maintenance
Efficiency
Class
Property
Method
Encapsulation
Polymorphism
Objek bisa dari jenis apa pun. Objek diskrit dapat memiliki properti dan
metode diskrit yang bekerja secara terpisah dengan objek lain. Namun
seperangkat objek dapat diturunkan dari objek induk dan mempertahankan
beberapa properti dari class induk. proses tersebut disebut polymorphism.
Sederhananya, suatu objek dapat diubah menjadi beberapa objek lain yang
mempertahankan beberapa perilakunya. Materi lebih detail terkait
polymorphism di PHP dapat kamu temukan di pembahasan khusus.
Inheritance
Coupling
Design Patterns
Subclass
Istilah yang sangat umum dalam OOP, dan kita akan menggunakan
istilah ini di seluruh modul ini. Ketika suatu objek diturunkan dari objek lain,
yang diturunkan disebut subclass dari mana ia berasal. Subclass disebut juga
child class.
Superclass
Sebuah class yang disebut superclass berfungsi sebagai class induk dari
satu atau beberapa subclass yang mewariskan objek. Untuk membuatnya
sederhana, ketika Kamu memperluas objek, objek yang Kamu perluas adalah
superclass dari objek yang baru diperluas. Superclass dikenal juga dengan
istilah parent class.
Instance
MEMBUAT CLASS
Class di dalam OOP digunakan untuk membuat sebuah kerangka kerja atau
blueprint. Pada PHP, class ditulis dengan awalan sintaks class dan kemudian baru
diikuti dengan nama classnya. Berikut merupakan contoh penulisan class.
<?php
class Nama_class {
ANATOMI CLASS
1. attribute, yakni variabel yang ada di dalam class. Attribute dapat diakses
dari semua method di dalam class tersebut dan tidak dapat diakses dari luar
class.
2. method, adalah istilah untuk function yang ada di dalam class. Sekalipun
sebuah method memiliki nama yang sama dengan method di class lain, dia
tidak akan dianggap sebagai method yang sama.
3. constructor, adalah method khusus yang akan selalu dieksekusi begitu
sebuah class diinstansiasi atau dibuat objeknya.
<?php
class Lingkaran {
private $radius;
function __construct($radius)
{
$this->radius = $radius;
function hitungLuas()
return 22 / 7 * 2 * $this->radius;
function hitungKeliling()
INSTANSIASI OBJEK
Istilah objek dalam OOP merujuk pada hasil cetak atau hasil 'konkrit' dari class.
Bila kita memiliki sebuah class Mobil, maka objectnya bisa berupa: mobil_alif,
mobil_toni dan lain-lain. Object dari class Mobil akan memiliki seluruh komponen
berupa property dan method dari class tersebut.
Proses 'mencetak' objek dari sebuah class disebut dengan instansiasi (atau
instantiation dalam bahasa inggris). Pada PHP, proses instansiasi dilakukan dengan
menggunakan sintaks new. Hasil cetakan class akan disimpan dalam variabel untuk
selanjutnya digunakan dalam proses pada program.
<?php
class Mobil {
$this->statusBensin = true;
if($this->statusBensin)
}
//instansiasi object class komputer
// mengakses method
echo $mobil_alif->isiBensin();
echo $mobil_alif->nyalakan();
Sebuah class baru dapat digunakan setelah dibuat ke dalam bentuk objek
melalui proses instansiasi. Perhatikan kembali contoh kode berikut:
Sesudah sebuah class terinstansiasi, maka dia akan disimpan ke variabel yang
kita gunakan. Pada kode di atas, variabelnya adalah $mobil_alif, lalu kita dapat
menggunakan method yang ada di dalamnya untuk melakukan operasi yang kita
inginkan.
Kita dapat membuat sebuah class yang objeknya dapat digunakan secara
berulang. Perhatikan contoh berikut:
<?php
class Persegi {
public $panjang;
public $lebar;
$this->panjang = $panjang;
$this->lebar = $lebar;
}
function hitungLuas()
function hitungKeliling()
Bila class di atas kita instansiasi, maka kita akan mendapatkan sebuah objek
yang dapat digunakan untuk menghitung luas dan keliling persegi. Kita juga dapat
mengatur ulang nilai property panjang dan lebar untuk perhitungan selanjutnya.
$persegi->panjang = 20;
$persegi->lebar = 12;
Pada contoh kode di atas, kita set ulang property panjang dan lebar dari objek
$persegi sehingga hasil perhitungan selanjutnya akan menggunakan nilai property
yang baru. Dengan demikian kita tidak perlu membuat objek baru setiap kali hendak
melakukan perhitungan.