4. MENGAKSES PROPERTIES DAN METHODS

Setelah sebuah object dibuat, kita dapat mengakses property dan method menggunakan tanda ->. Sintaks dasarnya adalah sebagai berikut:

$object->propertyname;
$object->methodname([arg, ...]);

Sebagai contoh, jika kita memiliki object dari class Hewan, kita bisa mengakses property dan method seperti ini:

echo "Hewan ini berumur {$anjing->umur} tahun."; // Mengakses property
$anjing->menggonggong(); // Memanggil method
$anjing->setUmur(5); // Memanggil method dengan argumen

Method dalam object berfungsi seperti fungsi biasa, tetapi hanya berlaku dalam lingkup object tersebut. Method juga dapat mengembalikan nilai:

$tipe = $anjing->getTipe();

Dalam definisi class, kita dapat menentukan apakah suatu property dan method bisa diakses dari luar kelas menggunakan modifier public dan private untuk enkapsulasi.

Menggunakan Variabel sebagai Nama Property

Kita juga bisa menggunakan variable variables untuk mengakses property secara dinamis:

$prop = 'umur';
echo $anjing->$prop; // Sama dengan echo $anjing->umur;

Method Statis

Method statis adalah method yang dipanggil pada class, bukan pada object. Method ini tidak dapat mengakses property dari object. Sintaks pemanggilannya menggunakan :: :

Formatter::formatText("Hello, world");

Saat mendeklarasikan class, kita bisa menandai method atau property sebagai statis menggunakan kata kunci static.

Object Diteruskan sebagai Referensi

Ketika kita menetapkan suatu object ke variabel lain, variabel baru tersebut tidak membuat salinan object, tetapi hanya mengacu pada object yang sama.

$hewan1 = new Hewan("Harimau", 10);
$hewan2 = $hewan1; // Kedua variabel mengacu ke objek yang sama
$hewan2->setTipe("Singa");

echo $hewan1->getTipe(); // Output: Singa

Karena $hewan1 dan $hewan2 menunjuk ke object yang sama, perubahan pada salah satu variabel akan berdampak pada variabel lainnya.

Membuat Salinan Object

Jika kita ingin membuat salinan independen dari suatu object, gunakan operator clone:

$hewan1 = new Hewan("Harimau", 10);
$hewan2 = clone $hewan1; // Membuat salinan objek

$hewan2->setTipe("Singa");

echo $hewan1->getTipe(); // Output: Harimau
echo $hewan2->getTipe(); // Output: Singa

Jika class memiliki method __clone(), method ini akan otomatis dipanggil setelah object dikloning. Method ini berguna jika object memiliki sumber daya eksternal (seperti koneksi database atau file) yang perlu dibuat ulang, bukan hanya disalin.

AYO PAHAMI!


Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.

  1. Baca dan pahami kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan sesuai urutan dan struktur aslinya.
  3. Pastikan setiap detail penulisan seperti titik koma (;), tanda kurung, dan indentasi sesuai dengan contoh.
  4. Setelah selesai mengetik, klik tombol RUN untuk menjalankan kode.
  5. Perhatikan hasil output program yang muncul.
  6. Salin dan tuliskan output tersebut ke dalam kolom yang tersedia di bawah.
  7. Terakhir, klik tombol Periksa Output untuk mengecek apakah hasil output kamu sudah benar.

💡 Catatan: Aktivitas Ayo Pahami ini merupakan syarat untuk dapat mengakses halaman selanjutnya. Pastikan output yang kamu masukkan sudah benar agar kamu dapat melanjutkan ke materi berikutnya.

<?php
class Pengguna {
  public $nama, $password;

  function simpanPengguna() {
    echo "Data pengguna telah disimpan.";
  }
}

$pengguna = new Pengguna;
print_r($pengguna);
echo "<br>";

$pengguna->nama = "Alice";
$pengguna->password = "secret123";
print_r($pengguna);
echo "<br>";

$pengguna->simpanPengguna();
*Jika output menunjukkan pesan error, cukup tulis "Error" saja di kolom ini.

LATIHAN

Ayo buktikan pemahamanmu!

Lengkapilah potongan kode PHP berikut dengan benar menggunakan metode drag-and-drop (seret dan lepas).
Terdapat dua bagian kosong yang harus kamu isi dengan potongan kode yang tersedia di bawahnya. Klik dan tahan potongan kode yang kamu pilih, lalu seret ke area kosong bertanda ___ untuk mengisinya.

Setelah seluruh bagian kode terisi, klik tombol PERIKSA untuk mengecek apakah jawabanmu sudah benar.
Jika terdapat kesalahan, kamu akan mendapatkan umpan balik, dan kamu dapat mencoba kembali.
Untuk mengulang atau mengatur ulang isian yang sudah kamu buat, klik tombol RESET agar area kosong kembali kosong dan kamu bisa menyusun ulang jawaban dari awal.

💡 Catatan: Latihan ini merupakan syarat untuk membuka akses ke halaman selanjutnya. Pastikan kamu menyelesaikannya dengan benar agar dapat melanjutkan ke materi berikutnya.

<?php
class Kendaraan {
    public $merk = "Toyota";

    public function nyalakanMesin() {
        echo "Mesin dinyalakan.";
    }
}

$mobil = new Kendaraan;
echo ___ . PHP_EOL;
$mobil->___();
?>

Seret potongan kode berikut ke tempat yang kosong:

  • nyalakanMesin
  • $this->merk
  • $mobil->merk