Assalamualaikum Wr.WB.
Kesempatan kali ini saya akan sedikit mengulas tentang apah itu $this di dalam
pemprograman berbasis objek (PBO) atau kalau dalam bahasa inggrisnya biasa disebut
dengan Object Oriented Programming (OOP).
OOP/PBO itu apa sih??
Waduh... kalok ente belom tau apa itu OOP/PBO di PHP kayaknya kurang tepat nii ada di postingan ini.
tapi gak apalah itung2 nambah ilmu.
OOP/PBO adalah suatu cara membuat program dengan memecah alur program menjadi modul-modul sederhana yang
disebut dengan objek. Setiap objek akan memiliki fungsi dan tugas tersendiri. OOP berbeda dengan bahasa pemprograman Prosedural.
Hah... prosedural?? Apaan lagi tuh?
Hemm capek deh.. :(
jadi pemprograman prosedural itu adalah ??????????????????????????
Nah udah paham kan apa itu OOP/PBO dan Prosedural. sekarang lanjutkan kem pembahasan tentang pemahaman $this dalam pemprograman berbasis objek PHP (PBO/OOP).
misalkan saya contohkan pada source code berikut ini.
<?php
class Motor{
$pemilik;
public function hidupkan_motor(){
return "Motor milik $this->pemilik akan dihidupkan";
}
}
Bisa dilihat pada source code di atas bahwasanya terdapat code $this dalam method hidupkan motor.
maksudnya itu apaan yah?
Maksud dari $this itu adalah merefrence ke objek dari class itu sendiri.
waduuhh jadi bingung... :D
Nah biar ngak terlarut dalam kebingungan.. yah bahasanya agak lebay :v
jadi langsung aja dah saya kasih contoh dari class di atas
<?php
class Motor{
$pemilik="Faroeq";
public function hidupkan_motor(){
return "Motor milik $this->pemilik akan dihidupkan";
}
}
//Bisa dilihat pada code diatas, atribut $pemilik di berikan nilai default yaitu faroeq
//membuat objek
$agung = new Motor();
//set atribut $pemilik di dalam class
$agung->pemilik = "Agung";
//menampilkan method hidupkan motor
echo $agung->hidupkan_motor();
dari sorce code di atas output yang di hasilkan adalah "Motor milik Agung akan dihidupkan"
nah coba sekarang hilangkan $this pada pemanggilan properti di dalam method hidupkan motor
source codenya akan seperti berikut:
<?php
class Motor{
$pemilik="Faroeq";
public function hidupkan_motor(){
return "Motor milik $pemilik akan dihidupkan";
}
}
//perbedaannya adalah dalam method hidupkan_motor $pemilik tidak menggunakan $this
//membuat objek
$agung = new Motor();
//set atribut $pemilik di dalam class
$agung->pemilik = "Agung";
//menampilkan method hidupkan motor
echo $agung->hidupkan_motor();
ketika di jalankan maka akan terdapat error undefined. ini terjadi karena $pemilik
berada dalam kerangka class bukan dalam objek.
jadi ketika mengakses sebuah properti/method harus menggunakan kata kunci $this.
dan maksud dari $this disini adalah objek yang sedang menggunakan class ini
contohnya di atas terdapat class Motor, dan membuat objek dengan nama $agung
maka saat mengakses method hidupkan_motor akan seperti code berikut
"Motor milik $agung->$pemilik akan dihidupkan"
Jadi kesimpulannya kata kunci $this akan mengarah ke objek yang sedang menggunakannya.
saya kasih contoh lagi dengan class yang sama biar lebih faham
<?php
class Motor{
$pemilik="Faroeq";
public function hidupkan_motor(){
return "Motor milik $this->pemilik akan dihidupkan <br/>";
}
}
//objek pertama
$objek1 = new Motor();
$objek1->pemilik = "Iis Dahlia";
echo $objek1->hidupkan_motor();
//objek kedua
$objek2 = new Motor();
echo $objek2->hidupkan_motor();
pada kode di atas akan menampilkan 2 output
output pada $objek1 pertama
"Motor milik Iis Dahlia akan dihidupkan"
dan output pada $objek2 yang menggunakan nilai default dari atrtibut $pemilik
"Motor milik Faroeq akan dihidupkan"
ketika $objek1 menggunakan method hidupkan_motor()
source code yang di dijalankan akan seperti berikut
return "Motor milik $objek1->pemilik akan dihidupkan <br/>";
sama halnya ketika $objek2 mengakses method hidupkan_motor();
return "Motor milik $objek2->pemilik akan dihidupkan <br/>";
Semoga bermanfaat
Assalamualaikum Wr.Wb
Subscribe to:
Post Comments
(
Atom
)
0 coment�rios:
Post a Comment
### Saya akan coba merespon komentar baru secepatnya.
### Jangan berkomentar SPAM (promosi, dll,)
### Jangan komentar yang berisi link aktif,
### Mohon Maaf Jika Komentar saya moderasi karena ingin mengantisipasi kemungkinan Spam atau link Aktif