2. MENDEKLARASIKAN PROPERTY
Misalkan kita memiliki class Mobil yang menyimpan data tentang mobil, seperti nama, warna, dan kecepatan. Di sini, kita mendeklarasikan properti nama, warna, dan kecepatan dalam class Mobil secara eksplisit.
AYO PAHAMI!
Petunjuk:
- Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
- Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
- Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
- Tekan tombol
RUNdi dalam editor untuk menjalankan program. - Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Mobil {
public $nama; // Properti publik untuk nama mobil
public $warna; // Properti publik untuk warna mobil
private $kecepatan; // Properti privat untuk kecepatan mobil
// Method untuk mengatur nama mobil
public function setNama($namaBaru) {
$this->nama = $namaBaru;
}
// Method untuk mengatur warna mobil
public function setWarna($warnaBaru) {
$this->warna = $warnaBaru;
}
// Method untuk mengatur kecepatan mobil
private function setKecepatan($kecepatanBaru) {
$this->kecepatan = $kecepatanBaru;
}
// Method untuk mendapatkan informasi mobil
public function infoMobil() {
return "Nama Mobil: " . $this->nama . ", Warna: " . $this->warna . ", Kecepatan: " . $this->kecepatan . " km/jam";
}
}
// Membuat objek dari class Mobil
$mobilSaya = new Mobil();
$mobilSaya->setNama("Toyota Corolla");
$mobilSaya->setWarna("Merah");
// Akses ke properti dan method
echo $mobilSaya->infoMobil();
Pada contoh di atas, kita memiliki properti publik ($nama dan $warna) yang dapat diakses dari luar class, dan properti privat ($kecepatan) yang hanya dapat diakses melalui method dalam class itu sendiri.
Menetapkan Nilai Default pada Properti
PHP memungkinkan Anda untuk menetapkan nilai default pada properti class. Misalnya, kita ingin menetapkan nilai default untuk properti warna menjadi "Putih" dan untuk kecepatan menjadi 0.
AYO PAHAMI!
Petunjuk:
- Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
- Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
- Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
- Tekan tombol
RUNdi dalam editor untuk menjalankan program. - Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Mobil {
public $nama = "Honda Civic"; // Nilai default
public $warna = "Putih"; // Nilai default
private $kecepatan = 0; // Nilai default
public function infoMobil() {
return "Nama Mobil: " . $this->nama . ", Warna: " . $this->warna . ", Kecepatan: " . $this->kecepatan . " km/jam";
}
}
$mobilSaya = new Mobil();
echo $mobilSaya->infoMobil();
Pada contoh ini, jika kita tidak menetapkan nilai untuk properti nama, warna, dan kecepatan, mereka akan memiliki nilai default yang telah ditetapkan dalam class.
Menggunakan Properti Statis
Dalam beberapa kasus, kita ingin property yang terkait dengan class dan bukan dengan object individual. Ini dapat dilakukan dengan menggunakan properti static. Berikut adalah contoh penggunaan properti static untuk menghitung jumlah objek yang dibuat dari class.
AYO PAHAMI!
Petunjuk:
- Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
- Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
- Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
- Tekan tombol
RUNdi dalam editor untuk menjalankan program. - Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Mobil {
public static $jumlahMobil = 0; // Properti statis
public function __construct() {
self::$jumlahMobil++; // Setiap objek yang dibuat akan menambah jumlahMobil
}
public static function jumlahMobil() {
return self::$jumlahMobil;
}
}
$mobil1 = new Mobil();
$mobil2 = new Mobil();
echo "Jumlah Mobil: " . Mobil::jumlahMobil();
Dalam contoh ini, kita menggunakan properti static $jumlahMobil untuk menghitung jumlah object Mobil yang telah dibuat. Static property ini tidak terkait dengan objek individu, melainkan dengan class itu sendiri.
Deklarasi Properti secara Implisit
Anda juga bisa mendeklarasikan properti secara implisit di PHP, meskipun ini tidak disarankan karena bisa menyebabkan kesalahan yang sulit ditemukan. Berikut adalah contoh deklarasi properti secara implisit di luar class.
AYO PAHAMI!
Petunjuk:
- Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
- Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
- Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
- Tekan tombol
RUNdi dalam editor untuk menjalankan program. - Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Pengguna {}
$pengguna1 = new Pengguna();
$pengguna1->nama = "Alice"; // Properti dideklarasikan secara implisit
echo $pengguna1->nama;
Pada contoh ini, kita langsung menetapkan properti nama di luar class Pengguna. Meskipun kode ini berfungsi, mendeklarasikan properti secara implisit bisa menyebabkan masalah jika ada kesalahan penulisan atau kebingungannya.
Menggunakan Method Magis __get() dan __set()
PHP juga memiliki method magis __get() dan __set() yang memungkinkan kita untuk mengakses atau menetapkan nilai pada properti yang tidak ada. Ini berguna jika kita ingin menangani data secara dinamis, seperti mengakses nilai dari database.
AYO PAHAMI!
Petunjuk:
- Perhatikan kode program PHP yang ditampilkan di kotak sebelah kiri.
- Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan.
- Pastikan setiap baris dan struktur penulisan sesuai dengan contoh (termasuk titik koma, kurung, dll).
- Tekan tombol
RUNdi dalam editor untuk menjalankan program. - Perhatikan hasil keluaran di bawah editor. Apa yang ditampilkan?
<?php
class Pengguna {
private $data = [];
// Method magis __get untuk mengambil nilai properti
public function __get($property) {
if ($property === 'biografi') {
return "Biografi panjang..."; // Mengambil data dari database
}
}
// Method magis __set untuk menetapkan nilai properti
public function __set($property, $value) {
if ($property === 'biografi') {
$this->data['biografi'] = $value; // Menyimpan data ke database
}
}
}
$pengguna = new Pengguna();
echo $pengguna->biografi;
$pengguna->biografi = "Biografi baru"; // Menyimpan data baru
Dalam contoh ini, kita menggunakan method magis __get() dan __set() untuk mengelola akses ke properti biografi, yang tidak dideklarasikan sebelumnya. Ini memungkinkan kita untuk menangani data secara dinamis, seperti menarik dan menyimpan informasi dari sumber eksternal (misalnya database).
LATIHAN
Untuk menguji seberapa paham kamu tentang materi deklarasi properti dalam PHP, susunlah potongan-potongan kode berikut menjadi urutan kode PHP yang benar!
Petunjuk: Tulis jawabanmu berupa urutan angka, dipisah dengan spasi. Contoh format jawaban yang benar: 1 5 4 2 3 6
Catatan: Terdapat dua baris dengan kurung kurawal tutup }. Untuk membantumu menyusun, perhatikan komentar di sampingnya yang menunjukkan penutup blok mana (method atau class).
- 1. public function infoTanaman() {
- 2. return "Nama: " . $this->nama;
- 3. public $nama = "Bambu";
- 4. class Tanaman {
- 5. } // penutup method infoTanaman()
- 6. } // penutup class Tanaman