Perancangan dan pemrograman web Pertemuan 17 Visibilitas Member Perancangan dan pemrograman web Pertemuan 17
Sampai dimana kemaren ya ?
Sampai sini : Method dengan Objek Lebih dari Satu $objOrang = new orang(); $objOrang->nama=“Romi Nurdin”; $objOrang->umur=“16”; $objOrang->berbicara(); echo “<br/>”; $objOrang->statusUsia(); echo “<br/><br/>”; $objOrang2 = new orang(); $objOrang2->nama=“Mesut Ozil”; $objOrang2->umur=“25”; $objOrang2->berbicara(); echo “<br/>”; $objOrang2->statusUsia(); echo “<br/><br/>”; ?>
Sampai sini : Keluaran Yang Dihasilkan Hallo, nama saya Romi Nurdin Di bawah Umur Hallo, nama saya Mesut Ozil Dewasa
VISIBILITAS MEMBER Merupakan salah satu kelebihan dari OOP untuk mengatur aksesibilitas dari member (baik atribut ataupun method). Pengaturan aksesibilitas : Apakah member dapat diakses secara global semua ? Apakah member hanya dapat diakses oleh Class nya sendiri ? Apakah member hanya dapat diakses oleh Class nya sendiri dan Class turunannya ?
VISIBILITAS MEMBER Public Private Protected Pengaturan aksesibilitas : Apakah member dapat diakses secara global semua ? Apakah member hanya dapat diakses oleh Class nya sendiri ? Apakah member hanya dapat diakses oleh Class nya sendiri dan Class turunannya ? Public Private Protected
ILUSTRASI : PUBLIC Uang adalah member yang dimiliki oleh Pak Samsul Dan uang dibagikan gratis sehingga siapa saja bisa menggunakan- nya Artinya Member Class Pak Samsul sifatnya PUBLIC Pak Samsul
ILUSTRASI : PRIVATE Uang adalah member yang dimiliki oleh Pak Samsul Uang hanya bisa digunakan oleh Pak Samsul, kata Pak Samsul, “Sorry ya ... Ini Cuma buat GUE !” Artinya Member Class Pak Samsul sifatnya PRIVATE No Way !!! Pak Samsul
ILUSTRASI : PROTECTED Uang adalah member yang dimiliki oleh Pak Samsul Uang hanya bisa digunakan oleh Pak Samsul dan Anak-anak Pak Samsul Artinya Member Class Pak Samsul sifatnya PROTECTED Pak Samsul Anak-Anak Pak Samsul
Let’s CODE !!!
Visibilitas PUBLIC pada atribut Visibilitas PUBLIC pada method <?php class mahasiswa { public $nim; public $nama; public $nilai; public function prosesNilai() { echo “Mahasiswa dengan NIM $this->nim”; echo “<br/>”; echo “dengan Nama $this->nama”; echo “Mendapatkan Nilai $this->nilai”; } $objMhs = new mahasiswa(); $objMhs->nim=“131089”; $objMhs->nama=“Ahmad Farisi”; $objMhs->nilai=89; $objMhs->prosesNilai(); ?> Visibilitas PUBLIC pada atribut Visibilitas PUBLIC pada method PERHATIKAN Inisialisasi atribut dan menjalankan method dilakukan di luar class mahasiswa
Keluaran Yang Dihasilkan Mahasiswa dengan Nim 131089 Dengan Nama Ahmad Farisi Mendapatkan Nilai 89
PRIVATE <?php class mahasiswa { private $nim; private $nama; private $nilai; public function prosesNilai() { echo “Mahasiswa dengan NIM $this->nim”; echo “<br/>”; echo “dengan Nama $this->nama”; echo “Mendapatkan Nilai $this->nilai”; } Ganti Public tadi dengan Visibilitas PRIVATE pada atribut $objMhs = new mahasiswa(); $objMhs->nim=“131089”; $objMhs->nama=“Ahmad Farisi”; $objMhs->nilai=89; $objMhs->prosesNilai(); ?> Visibilitas PUBLIC pada method biarkan saja PERHATIKAN Inisialisasi atribut dan menjalankan method dilakukan di luar class mahasiswa
Keluaran Yang Dihasilkan Fatal error: cannot access private property mahasiswa::$nim in C:\Uniserver\www\phpoop\visPriv ate.php on line 17 MENGAPA ??? Mengapa ini Terjadi ? Ada apa ? Siapa yang salah ?
TAMBAHKAN SATU METHOD : isiNilai public function isiNilai($varNim, $varNama, $varNilai) { $this->nim = $varNim; $this->nama = $varNama; $this->nilai = $varNilai; }
PRIVATE <?php class mahasiswa { private $nim; private $nama; private $nilai; public function isiNilai($varNim, $varNama, $varNilai) { $this->nim = $varNim; $this->nama = $varNama; $this->nilai = $varNilai; } public function prosesNilai() { echo “Mahasiswa dengan NIM $this->nim <br/>”; echo “dengan Nama $this->nama <br/>”; echo “Mendapatkan Nilai $this->nilai”; $objMhs = new mahasiswa(); $objMhs->isiNilai(“131089”,“Ahmad Farisi”,89); $objMhs->prosesNilai(); ?> PERHATIKAN Method isiNilai( ) dan prosesNilai( ) bersifat public, sehingga bisa dipanggil di luar kelas
Keluaran Yang Dihasilkan Mahasiswa dengan NIM 131089 dengan Nama Ahmad Farisi Mendapatkan Nilai 89
So, don’t go anywhere and stay tune ! PROTECTED Penggunaan Protected akan terjawab di pertemuan tentang “Penerapan Enkapsulasi, Pewarisan, dan Polimorfisme”. So, don’t go anywhere and stay tune !