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.
Mobil
nama
warna
kecepatan
Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.
;
RUN
💡 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 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();
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.
<?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();
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.
<?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();
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.
<?php class Pengguna {} $pengguna1 = new Pengguna(); $pengguna1->nama = "Alice"; // Properti dideklarasikan secara implisit echo $pengguna1->nama;
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.
<?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
Susunlah potongan-potongan kode berikut agar membentuk program PHP yang benar dalam mendeklarasikan property dan method di dalam sebuah class. Bacalah setiap baris kode dengan cermat, lalu tuliskan urutan nomornya sesuai logika struktur program PHP. Ketik jawabanmu berupa deretan angka, dipisahkan dengan spasi, pada kolom yang tersedia. Contoh format penulisan jawaban yang benar: 4 3 1 2 5 6 Perhatikan juga posisi tanda kurung kurawal } dan komentar di sampingnya, karena ini akan membantumu memahami blok mana yang ditutup (method atau class). Setelah yakin dengan urutannya, klik tombol Cek Jawaban untuk melihat apakah susunanmu sudah tepat. Jika masih salah, kamu dapat memperbaiki dan mencoba kembali. Untuk menghapus jawaban dan mengulang dari awal, klik tombol Reset. 💡 Catatan: Latihan ini merupakan syarat untuk membuka halaman selanjutnya. Pastikan kamu menyusunnya dengan benar agar dapat lanjut ke materi berikutnya.
4 3 1 2 5 6
}