0% menganggap dokumen ini bermanfaat (0 suara)
70 tayangan14 halaman

Pemrograman

Dokumen tersebut membahas tentang kelebihan pemrograman berorientasi objek (OOP) dibandingkan dengan pemrograman prosedural pada PHP. OOP memungkinkan kode untuk digunakan kembali (reusable) dan mudah diperbaiki (refactoring) karena setiap objek terpisah. OOP juga memungkinkan kode untuk diekspansi (extensible) dengan mewarisi sifat-sifat dari kelas induk.

Diunggah oleh

Hangga Reich Erfolg
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
70 tayangan14 halaman

Pemrograman

Dokumen tersebut membahas tentang kelebihan pemrograman berorientasi objek (OOP) dibandingkan dengan pemrograman prosedural pada PHP. OOP memungkinkan kode untuk digunakan kembali (reusable) dan mudah diperbaiki (refactoring) karena setiap objek terpisah. OOP juga memungkinkan kode untuk diekspansi (extensible) dengan mewarisi sifat-sifat dari kelas induk.

Diunggah oleh

Hangga Reich Erfolg
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 14

PEMPROGRAMAN BEROREINTASI OBJEK DI PHP

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:

1. Kamu akan perlu membuat fungsi baru misalnya dengan


nama hitungLuasLingkaran() dan hitungKelilingLingkaran(). Dan sepertinya
kamu bakal perlu mengganti juga nama kedua fungsi yang sudah ada di atas
agar lebih spesifik menjadi hitungLuasPersegi() dan hitungKelilingPersegi().
Selain itu kamu juga harus menyiapkan variabel baru
seperti $radius atau $diameter untuk perhitungan lingkaran agar kodemu lebih
mudah dipahami.

2. Kamu dapat menggunakan fungsi yang sudah ada


yaitu hitungLuas() dan hitungKeliling() 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.

OOP DAN KEUNGGULANNYA

OOP adalah singkatan dari Object Oriented Programming. OOP sendiri


merupakan metode pemrograman yang lebih berorientasi pada objek. Sehingga, akan
lebih sangat memudahkan di dalam membuat aplikasi. OOP lebih di dukung pada
pemrograman JAVA dan C++. Tetapi, pada PHP juga sudah sangat di dukung pada
versi PHP5.

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.

KEUNGGULAN OOP PADA PHP

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

Ketika Anda perlu memperbaiki proyek, OOP memberikan manfaat


maksimal. Karena, semua objek adalah entitas kecil dan mengandung properti
dan metode yang merupakan bagian dari dirinya sendiri. Jadi refactoring relatif
lebih mudah.

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

Object Oriented Code lebih mudah dipelihara karena pengkodean ditulis


dengan format penjelasan sendiri. Sebagai contoh, ketika seorang
pengembang ingin menambah fitur, merefaktorinnyam atau mendebugnya,
mereka dapat dengan mudah mengetahui struktur pengkodean dan
mempertahankan kode dari waktu ke waktu.

Efficiency

Konsep pemrograman berorientasi objek sebenarnya dikembangkan


untuk efisiensi dan kemudahan proses pengembangan yang lebih baik.
Beberapa pola desain dikembangkan untuk membuat kode yang lebih baik dan
efisien. Selain itu di OOP, Anda dapat memikirkan solusi Anda dalam
pendekatan yang jauh lebih baik daripada pemrograman prosedural.

BEBERAPA ISTILAH OOP DI PHP

Berikut ini merupakan beberapa istilah umum OOP di PHP:

Class

Class merupakan purwarupa dari objek. Sebuah class mengandung


kode program yang akan mendefinisikan bagaimana objek bekerja/berperilaku
dan berinteraksi satu sama lain dengan objek lain. Setiap kali kamu membuat
objek dalam PHP, kamu sebenarnya mengembangkan class. Jadi kadang-
kadang dalam modul ini kita akan menamai sebuah objek sebagai class, karena
keduanya sama-sama identik.

Property

Property adalah wadah di dalam class yang dapat menyimpan beberapa


informasi. Tidak seperti bahasa lain, PHP tidak memeriksa jenis variabel
properti. Property hanya dapat diakses di class itu sendiri, dengan subclassnya,
atau oleh semua objek. Sederhananya, properti adalah variabel yang
dideklarasikan di dalam class, tetapi tidak termasuk yang ada di dalam fungsi
pada class.

Method

Method adalah fungsi di dalam class. Seperti properti, metode juga


dapat diakses oleh ketiga jenis access modifier. Access modifier akan
dijelaskan di pembahasan khusus.

Encapsulation

Enkapsulasi adalah konsep mekanisme yang mengikat kode bersama


dengan data yang dimanipulasi, dan membuat keduanya aman dari kode lain
yang tidak berhubungan secara langsung. Mekanisme pembungkusan data
dan metode dalam satu kesatuan (yang kita sebut class) dikenal sebagai
enkapsulasi.

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

Inheritance atau pewarisan merupakan mekanisme


menurunkan/mewariskan sifat dari sebuah class ke class baru. Ketika kamu
membuat class turunan dari class lain, subclass (yang diwarisi) memperoleh
semua properti dan metode dari superclass (yang mewarisi). Subclass dapat
menggunakan setiap metode yang ada pada superclass atau
memperbaharuinya bila diperlukan yang disebut dengan istilah overriding.

Coupling

Kopling adalah perilaku bagaimana class saling bergantung satu sama


lain. Arsitektur yang digabungkan secara longgar jauh lebih dapat digunakan
kembali daripada objek yang digabungkan secara ketat. Coupling adalah
masalah yang sangat penting untuk mendesain objek yang lebih baik.

Design Patterns

Pertama kali ditemukan oleh "Gang of Four" empat orang yang


mengatur, design pattern atau pola desain hanyalah trik dalam pemrograman
berorientasi objek untuk memecahkan set masalah yang sama dengan
pendekatan yang lebih cerdas dan lebih mudah. Penggunaan Design Pattern
(DP) dapat meningkatkan kinerja seluruh aplikasi Kamu dengan kode minimal
yang ditulis oleh pengembang.

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

Setiap kali kamu membuat objek dengan memanggil konstruktornya, itu


disebut instance atau instansiasi. Sederhananya, setiap kali Kamu menulis
sesuatu seperti $var = new AnyClass(); itu artinya kamu sedang membuat
intance objek dari class AnyClass.

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 {

//isi dari class

ANATOMI CLASS

Sebuah class setidaknya membungkus beberapa komponen seperti berikut:

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()

return 22 / 7 * $this->radius * $this->radius;

Pada contoh kode di atas, $radius adalah property. Fungsi hitungLuas(),


hitungKeliling() dan __construct() adalah method. Fungsu __construct() adalah fungsi
khusus yang dinamakan method constructor.

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.

Berikut ini adalah contohnya:

<?php

class Mobil {

private $statusBensin = false;

public function isiBensin()

$this->statusBensin = true;

public function nyalakan()

if($this->statusBensin)

return "Mobil menyala";

return "Bensin habis";

}
//instansiasi object class komputer

$mobil_alif = new Mobil();

// 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.

MENGGUNAKAN ULANG OBJEK

Kita dapat membuat sebuah class yang objeknya dapat digunakan secara
berulang. Perhatikan contoh berikut:

<?php

class Persegi {

public $panjang;

public $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);

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 = new Persegi(10, 5);

echo "Luas: " . $persegi->hitungLuas();

echo "Keliling: " . $persegi->hitungKeliling();

$persegi->panjang = 20;

$persegi->lebar = 12;

echo "Luas: " . $persegi->hitungLuas();

echo "Keliling: " . $persegi->hitungKeliling();

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.

Anda mungkin juga menyukai