Memahami Keyword $this Pada OOP PHP

 1. Pendahuluan

Halo kawan-kawan semua. semoga dalam keadaan sehat. semangat belajar pemrograman web. Ilmunya berkah dan bermanfaat. aamiin. Kali ini kita akan memahami keyword $this pada oop php.

Sebelum kesana saya mau sedikit bercerita. Diawal belajar program saya belajar bahasa c. bahasa ini yang menjadi bahasa pertama saya mengenal pemrograman saat kuliah. Kemudian Visual Basic yang sudah berbasis GUI. Saya sangat menyukai pemrograman ini. Karena sangat mudah dan handal untuk algoritma-algoritma yang sulit.

Dari pengalaman-pengalaman menggunakan bahasa pemrograman tersebut saya belajar bahasa pemrograman lain. Ternyata ilmu-ilmu sebelumnya bisa diterapkan. Seperti keyword $this ini, saya mencari persamaan atau kemiripan dari bahasa-bahasa pemrograman sebelumnya.

Langsung saja! $this adalah sebuah variabel (objek) yang menyatakan diri sendiri. Siapa diri sendiri? yaitu kelas itu sendiri. $this digunakan untuk memanggil method atau mengisi properti dilingkup kelas sendiri. begitulah aturan untuk memanggil method atau properti dalam lingkup kelas.

2. Contoh Penggunaan $this

Setelah paham teori kita mulai praktik ya. kode program dibawah ini adalah penggunaan keyword $this untuk mengisi nilai properti. Yang melakukan adalah method di dalam kelas itu sendiri. Oke langsung saja.

<?php
class Mahasiswa{
Public $nama;
Public function isi_nama($isi){
$this->nama=$isi;
}

Public function tampil_nama(){
echo $this->nama;
}
}

$mhs=new Mahasiswa;
$mhs->isi_nama("Muhammad Zen");
$mhs->tampil_nama();

Pada kode program di atas dapat dilihat penggunaan keyword $this untuk memberi nilai properti (saya menyebutnya variabel global). $nama akan kehilangan tanda $ ketika menggunakan keyword $this. Ini sering menyebabkan gagap ketika belajar menggunakan $this ini.

$this->$nama; (kemungkinan terjadi kesalahan)
$this->nama; (benar)

Jika kita menghilangkan $this maka yang terjadi adalah error. Program tidak mengenali variabel tersebut.

<?php
class Mahasiswa{
Public $nama;
Public function isi_nama($isi){
$nama=$isi;
}

Public function tampil_nama(){
echo $nama;
}
}

$mhs=new Mahasiswa;
$mhs->isi_nama("Muhammad Zen");
$mhs->tampil_nama();

//Warning: Undefined variable $nama in .....

Nah sekarang paham bahwa properti milik sendiri hanya bisa diakses dengan keyword $this. Sekarang kita akan coba buat variabel lokal. Membuat variabel lokal sama persis seperti membuat variabel biasa. Namun variabel lokal hanya bisa diakses dilingkup method tempat variabel dideklarasikan saja.

<?php
class Mahasiswa{
Public $nama;
Public function isi_nama($isi){
$this->nama=$isi;
}

Public function tampil_nama(){
echo $this->nama;
}

Public function menghitung(){
$a=5;
$b=9;
echo "$a + $b = ".$a+$b;
}
}

$mhs=new Mahasiswa;
$mhs->isi_nama("Muhammad Zen");
$mhs->tampil_nama();
echo "<br>";
$mhs->menghitung();

Nah sekarang kita punya properti yang diakses pakai keyword $this dan variabel biasa. Variabel tersebut adalah $a dan $b.

Dari sini saya mengatakan bahwa ilmu kita dulu masih berguna untuk memahami hal baru. yaitu mengenai lokal variabel dan global variabel yang sudah kita pelajari dipemrograman terstruktur. Kita lihat bagaimana objek memanggil method pada baris terakhir program di atas.

$mhs->menghitung();

ini jika yang memanggil adalah objek, bagaimana jika method di dalam kelas itu sendiri. Masih ingat konsep modular?.  Baik, sekarang kita panggil sebuah method dalam lingkup kelas itu sendiri. 

<?php
class Mahasiswa{
Public $nama;
Public function isi_nama($isi){
$this->nama=$isi;
}

Public function tampil_nama(){
echo $this->nama;
echo "<br>";
$this->menghitung();
}

Public function menghitung(){
$a=5;
$b=9;
echo "$a + $b = ".$a+$b;
}
}

$mhs=new Mahasiswa;
$mhs->isi_nama("Muhammad Zen");
$mhs->tampil_nama();

Pada kode program di atas method tampil_nama memanggil method lain (menghitung) dikelas yang sama menggunakan keyword $this. Sehingga fungsi menghitung tidak perlu lagi dipanggil oleh objek $mhs. Bila keyword $this dihilangkan maka yang terjadi adalah.

Fatal error: Uncaught Error: Call to undefined function menghitung() in

3. Kesimpulan

Dari pemaparan di atas ada beberapa kesimpulan atau inti dari yang kita pelajari. Kesimpulan keyword $this adalah sebagai berikut:
  • Digunakan untuk mengakses properti dalam lingkup kelas sendiri.
  • Digunakan untuk mengakses method dalam lingkup kelas sendiri.
  • Mengakses method lain dalam sebuah method adalah implementasi konsep modular.

Popular posts from this blog

Cara Menggunakan Template Admin LTE Sebagai Template Web Dinamis

Aplikasi CRUD menggunakan Template Admin LTE

Cara membuat Link ke Halaman lain dan Link ke bagian Halaman