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
abstract class Kendaraan {
    protected $merk;
    protected $kecepatanMaksimal;

    public function __construct($merk, $kecepatanMaksimal) {
        $this->merk = $merk;
        $this->kecepatanMaksimal = $kecepatanMaksimal;
    }

    abstract public function deskripsi();
}

class Mobil extends Kendaraan {
    private $jumlahPintu;

    public function __construct($merk, $kecepatanMaksimal, $jumlahPintu) {
        parent::__construct($merk, $kecepatanMaksimal);
        $this->jumlahPintu = $jumlahPintu;
    }

    public function deskripsi() {
        return "Mobil merk {$this->merk} memiliki kecepatan maksimal {$this->kecepatanMaksimal} km/jam dan {$this->jumlahPintu} pintu.";
    }
}

class Motor extends Kendaraan {
    private $jenis;

    public function __construct($merk, $kecepatanMaksimal, $jenis) {
        parent::__construct($merk, $kecepatanMaksimal);
        $this->jenis = $jenis;
    }

    public function deskripsi() {
        return "Motor merk {$this->merk} berjenis {$this->jenis} dengan kecepatan maksimal {$this->kecepatanMaksimal} km/jam.";
    }
}

// Penggunaan
$mobil = new Mobil("Toyota", 200, 4);
$motor = new Motor("Honda", 150, "Sport");

echo $mobil->deskripsi() . PHP_EOL;
echo $motor->deskripsi() . PHP_EOL;
?>

Kode di atas mendemonstrasikan penggunaan class abstrak Kendaraan yang mendefinisikan struktur dasar dengan properti umum seperti $merk dan $kecepatanMaksimal, serta method abstrak deskripsi() yang wajib diimplementasikan oleh class turunannya. Class Mobil dan Motor merupakan turunan dari Kendaraan yang masing-masing menambahkan properti khusus, yaitu $jumlahPintu pada Mobil dan $jenis pada Motor, serta mengimplementasikan method deskripsi() sesuai karakteristiknya. Penggunaan parent::__construct() dalam konstruktor masing-masing turunan menunjukkan pemanfaatan pewarisan konstruktor dari class induk. Ketika objek Mobil dan Motor dibuat dan method deskripsi() dipanggil, masing-masing akan mengembalikan informasi spesifik sesuai atribut yang dimilikinya.

⬅ Kembali ke Halaman Sebelumnya