Modifier dan Access

by 20.12 0 comments

Object Oriented Programming atau OOP adalah sebuah konsep atau paradigma pemrograman yang menganggap elemen pemrograman sebagai object. Dalam hal ini antara data dan fungsi dibungkus dalam sebuah blue print yang biasa disebut Class (Kelas). Dalam class terdapat dua bagian yaitu Attribute (Property) dan Method (Function). Setiap Attribute dan Method memiliki Modifier dimana modifier akan mengatur hak akses atas suatau method/attribute. Pada posting kali ini, sebelum kita belajar bagaimana dan seperti apa itu rupa dari attribute dan method, terlebih dahulu kita akan mempelajari tentang modifier dan hak aksesnya masing-masing.
Dalam pemrograman PHP saya belum terlalu paham seberapa hebat dan mendalam PHP dalam menerapkan konsep OOP ini, namun sepengetahuan saya antara OOP PHP dan Java memiliki kemiripan bahkan sangat mirip sehingga saya yang pertama kali belajar OOP dari Java tidak mengalami kesulitan berarti dalam memahami konsep-konsep yang ada. Seperti pada Java, PHP pun memiliki 5 Modifier yaitu Private, Protected, Public, Default (Undefined) dan Static, dimana Default dari Modifier dalam PHP adalah Public (maaf kalau salah tolong dibetulkan :) soalnya aku juga kurang paham yang ini :) ).
Mari kita bahas satu per satu
1. Private
Private; seperti namanya modifier ini bersifat spesifik class dan tidak dapat diwariskan kepada class turunannya. Modifier ini hanya dapat diakses oleh class tersebut dan tidak dapat diakses diluar dari class tersebut. Bahkan object saja tidak dapat mengaksesnya karena memang hanya diperuntukkan untuk class tersebut.
Contoh :
1
2
3
4
5
6
7
8
9
10
<?php
class Modifier{
 private function setPrivate(){
  echo 'Ini private';
 }
}
 
$a = new Modifier();
$a->setPrivate();
?>
Ketika kita mencoba menjalankan program diatas maka yang ada bukannya keluar tulisan Ini private tapi justru error sebagai berikut
1
Fatal error: Call to private method Modifier::setPrivate() from context '' in /opt/lampp/htdocs/modifier.php on line 9
2. Protected
Protected; Modifier ini diproteksi hanya untuk class dan turunan class tersebut. Jadi modifier sedikit lebih terbuka daripada modifier Private namun belum bisa dipanggil secara langsung oleh object class. Untuk lebih jelas perhatikan contoh berikut :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class Modifier{
 protected function setProtected(){
  echo 'Ini protected';
 }
}
 
class Turunan extends Modifier{
 public function setPublic(){
  $this->setProtected();
 }
}
 
//$a = new Modifier();
//$a->setProtected();
 
$b = new Turunan();
$b->setPublic();
//$b->setProtected();
?>
Pada contoh diatas akan keluar output Ini protected karena kita memanggil function setProtected dari extends class (class turunan) yang bersifat public. Secara singkat kira-kira beginilah alur program diatas.
Class Modifier mempunyai Turunan Class yaitu Turunan sehingga secara otomatis Turunan memiliki semua function yang dimiliki oleh class Modifier. Karena memiliki function yang dimiliki class Modifier, berarti Turunan juga memiliki fungsi setProtected. Karena ingin agar object dapat mengakses fungsi setProtected, dibuatlah sebuah fungsi pada class Turunan yaitu setPublic yang sebenarnya adalah fungsi setProtected namun dengan akses public.
Coba Anda uncomment pada baris code yang diberi komentar agar lebih jelas lagi :) .
Mungkin daripada bingung, ada baiknya untuk 3 modifier yang lain kita bahas dilain kesempatan, maaf kalau penjelasannya kurang jelas.
Semoga bermanfaat

Hilda N' Aulia

Developer

Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

0 comments:

Posting Komentar