2. MEMERIKSA OBJECT

PHP menyediakan beberapa fungsi untuk menganalisis object, seperti mengetahui class yang digunakan object, mengecek keberadaan method dalam object, serta mendapatkan daftar property dalam object.

Mengecek Apakah Variabel Merupakan Object

Sebelum bekerja dengan object, kita bisa mengecek apakah suatu variabel merupakan object menggunakan is_object().

AYO PAHAMI!


Petunjuk:

  1. Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
  3. Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
  4. Tekan tombol RUN di dalam editor untuk menjalankan program.
  5. Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
$variabel = new stdClass();

if (is_object($variabel)) {
    echo "Variabel ini adalah object.";
} else {
    echo "Variabel ini bukan object.";
}

Fungsi is_object() digunakan untuk memeriksa apakah suatu variabel merupakan object. Dalam contoh ini, new stdClass() digunakan untuk membuat object kosong, dan hasil dari is_object() akan menampilkan bahwa variabel tersebut adalah object.

Mengetahui Class dari Suatu Object

Gunakan get_class() untuk mengetahui class dari object yang diberikan.

AYO PAHAMI!


Petunjuk:

  1. Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
  3. Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
  4. Tekan tombol RUN di dalam editor untuk menjalankan program.
  5. Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Kendaraan {}

$mobil = new Kendaraan();
echo "Object ini berasal dari class: " . get_class($mobil);

Fungsi get_class() digunakan untuk mengetahui nama class dari sebuah object. Dalam contoh ini, object $mobil dibuat dari class Kendaraan, sehingga get_class($mobil) akan menghasilkan string "Kendaraan".

Mengecek Apakah Object Memiliki Method Tertentu

Sebelum memanggil method dalam object, kita bisa mengecek apakah method tersebut ada menggunakan method_exists().

AYO PAHAMI!


Petunjuk:

  1. Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
  3. Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
  4. Tekan tombol RUN di dalam editor untuk menjalankan program.
  5. Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Hewan {
    public function bersuara() {
        return "Suara hewan";
    }
}

$kucing = new Hewan();

if (method_exists($kucing, "bersuara")) {
    echo $kucing->bersuara();
} else {
    echo "Method tidak ditemukan.";
}

Fungsi method_exists() digunakan untuk memeriksa apakah suatu object memiliki method tertentu. Jika method ditemukan, maka akan dijalankan; jika tidak, program akan menampilkan pesan bahwa method tidak tersedia. Ini berguna untuk validasi sebelum memanggil method secara dinamis.

Jika kita mencoba memanggil method yang tidak ada, PHP akan menghasilkan error.

Mendapatkan Property yang Dimiliki oleh Object

PHP menyediakan fungsi get_object_vars() untuk mendapatkan daftar property yang telah diatur dalam suatu object.

AYO PAHAMI!


Petunjuk:

  1. Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
  3. Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
  4. Tekan tombol RUN di dalam editor untuk menjalankan program.
  5. Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Manusia {
    public $nama;
    public $umur;
}

$orang = new Manusia();
$orang->nama = "Budi";
$orang->umur = 25;

$propertyObject = get_object_vars($orang);
print_r($propertyObject);

Fungsi get_object_vars() digunakan untuk mengambil semua properti yang dapat diakses secara publik dari sebuah object. Hasilnya akan dikembalikan dalam bentuk array asosiatif yang berisi nama dan nilai dari masing-masing properti.

Catatan: get_object_vars() hanya mengembalikan property yang sudah diatur dalam object. Property yang belum diberi nilai akan tetap muncul dengan nilai NULL.

Mengetahui Class Induk dari Object

Jika suatu object merupakan turunan dari class lain, kita bisa mengetahui class induknya menggunakan get_parent_class().

AYO PAHAMI!


Petunjuk:

  1. Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
  3. Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
  4. Tekan tombol RUN di dalam editor untuk menjalankan program.
  5. Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Hewan {}
class Kucing extends Hewan {}

$kucing = new Kucing();

echo "Class induknya adalah: " . get_parent_class($kucing);

Fungsi get_parent_class() digunakan untuk mengetahui class induk dari suatu object atau nama class. Jika object tersebut tidak memiliki class induk, maka fungsi ini akan mengembalikan nilai false.

Menampilkan Informasi Object

Berikut adalah contoh program yang menampilkan informasi tentang class dan property dari suatu object menggunakan berbagai fungsi introspeksi PHP:

AYO PAHAMI!


Petunjuk:

  1. Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
  3. Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
  4. Tekan tombol RUN di dalam editor untuk menjalankan program.
  5. Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Produk {
    public $nama = "Laptop";
    private $harga = 10000000;

    public function tampilkanNama() {
        return "Nama Produk: " . $this->nama;
    }
}

$barang = new Produk();

echo "Apakah ini object? " . (is_object($barang) ? "Ya" : "Tidak") . "<br>";
echo "Class dari object ini: " . get_class($barang) . "<br>";

if (method_exists($barang, "tampilkanNama")) {
    echo "Method tampilkanNama tersedia.<br>";
} else {
    echo "Method tampilkanNama tidak ditemukan.<br>";
}

$propertyBarang = get_object_vars($barang);
echo "Property dalam object:<br>";
print_r($propertyBarang);

Pada contoh ini, kita menggunakan beberapa fungsi bawaan PHP: is_object() untuk memeriksa apakah sebuah variabel adalah object, get_class() untuk mengetahui nama class dari object, method_exists() untuk mengecek apakah suatu method tersedia dalam object, dan get_object_vars() untuk menampilkan daftar properti public yang dimiliki object.

LATIHAN

Ayo buktikan pemahamanmu!

Lengkapilah kode program berikut agar dapat menampilkan informasi tentang class dari sebuah object, mengecek apakah object memiliki method tertentu, serta menampilkan semua properti yang dimiliki object tersebut.

<?php
class Pengirim {
    public $nama = "JNE";
    private $layanan = "Reguler";

    public function kirimPaket() {
        return "Paket sedang dikirim...";
    }
}

$ekspedisi = new Pengirim();

// Tampilkan nama class dari object
echo "Object ini berasal dari class: " . ___($ekspedisi) . "<br>";

// Cek apakah object memiliki method kirimPaket
if (___($ekspedisi, "kirimPaket")) {
    echo $ekspedisi->kirimPaket() . "<br>";
} else {
    echo "Method tidak tersedia.<br>";
}

// Tampilkan daftar property yang telah diatur
$infoProperti = ___($ekspedisi);
echo "Property object:<br>";
print_r($infoProperti);
?>
  • get_object_vars
  • get_class
  • get_parent_class
  • method_exists