Pemahaman $this Dalam Pemprograman Berbasis Objek PHP (PBO/OOP)

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
Share on Google Plus

About catatancidingku.bligspot.com

M Agung Sutrisno: Saya seorang Web Devoloper sejak tahun 2015. Saya tertarik dengan dunia IT sejak tahun 2013. Lulus dari Universitas Islam Madura pada tahun 2016. Pernah bekerja di Univeritas Islam Madura selama 2 tahun. Mulai tahun 2017 mulai bekerja sebagai Web Developer di salah satu perusahaan software PT. Warung Jasa Teknologi, Jakarta.

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