0Pricing
PHP Academy · Pelajaran

Class dan Method Abstrak

Definisikan class dasar yang sebagian implementasinya tersedia dengan kata kunci abstract.

Class dan Method Abstrak adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Pendahuluan: Kelas Abstrak

Kelas abstrak tidak dapat dibuat instansnya secara langsung — kelas ini merupakan templat. Metode abstrak mendeklarasikan tanda tangan tanpa implementasi; subkelas harus menyediakannya.

Konsep Utama

Konsep utama:

  • Dideklarasikan dengan abstract class
  • Metode abstrak tidak memiliki isi: abstract public function x();
  • Subkelas harus mengimplementasikan semua metode abstrak
  • Dapat berisi metode abstrak dan konkret

Definisi Kelas Abstrak

Contoh:

<?php
abstract class Animal {
    public function __construct(protected string $name) {}

    // Must be implemented by each subclass
    abstract public function sound(): string;

    // Shared concrete method
    public function introduce(): string {
        return "I am {$this->name} and I say: " . $this->sound();
    }
}

Mengimplementasikan Metode Abstrak

Kelanjutan:

<?php
class Dog extends Animal {
    public function sound(): string { return 'Woof'; }
}

class Cat extends Animal {
    public function sound(): string { return 'Meow'; }
}

$animals = [new Dog('Rex'), new Cat('Whiskers')];
foreach ($animals as $a) {
    echo $a->introduce() . PHP_EOL;
}
// I am Rex and I say: Woof
// I am Whiskers and I say: Meow

Pola Metode Templat

Pendalaman:

<?php
abstract class DataProcessor {
    // Template method: defines the algorithm skeleton
    final public function process(array $data): array {
        $data = $this->validate($data);
        $data = $this->transform($data);
        return $this->format($data);
    }

    abstract protected function validate(array $data): array;
    abstract protected function transform(array $data): array;

    protected function format(array $data): array { return $data; }
}

Abstrak vs Antarmuka

Penggunaan praktis:

<?php
// Use abstract class when:
// - Subclasses share implementation code
// - You need constructor logic or state

// Use interface when:
// - Defining a contract (no implementation needed)
// - Multiple inheritance of type is needed

// A class can only extend ONE abstract class
// but can implement MULTIPLE interfaces

Implementasi Parsial

Penggunaan lanjutan:

<?php
abstract class Repository {
    // Concrete method available to all subclasses
    protected function findById(int $id, string $table): array {
        $stmt = $this->getDb()->prepare("SELECT * FROM $table WHERE id = ?");
        $stmt->execute([$id]);
        return $stmt->fetch(PDO::FETCH_ASSOC) ?: [];
    }

    abstract protected function getDb(): PDO;
    abstract public function find(int $id): array;
}

Pola

Pola kelas abstrak yang umum digunakan untuk menyelesaikan masalah desain berulang secara rapi. Terapkan pola tersebut secara konsisten agar kode mudah dibaca dan dipelihara.

Kapan Menggunakannya

Mengetahui kapan menerapkan kelas abstrak sama pentingnya dengan mengetahui caranya. Penggunaan berlebihan menimbulkan kompleksitas, sedangkan penggunaan yang terlalu sedikit menimbulkan duplikasi.

Contoh di Dunia Nyata

Dalam aplikasi nyata, kelas abstrak sering digunakan dalam kerangka kerja, ORM, dan lapisan layanan. Memahaminya akan mempersiapkan Anda untuk berkontribusi pada proyek PHP profesional.

Kesalahan Umum

Hindari kesalahan berikut saat menggunakan kelas abstrak:

  • Kelas abstrak tidak dapat dibuat instansnya dengan new
  • Semua metode abstrak harus diimplementasikan dalam subkelas konkret
  • Gunakan pola Metode Templat untuk menentukan kerangka algoritme
  • Kelas abstrak dapat memiliki konstruktor, properti, dan metode konkret

Pemeriksaan Singkat

Dapatkah Anda membuat instans kelas abstrak secara langsung dengan 'new'?

Ringkasan: Kelas Abstrak

Ringkasan:

  • Kelas abstrak tidak dapat dibuat instansnya dengan new
  • Semua metode abstrak harus diimplementasikan dalam subkelas konkret
  • Gunakan pola Metode Templat untuk menentukan kerangka algoritme
  • Kelas abstrak dapat memiliki konstruktor, properti, dan metode konkret

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Class dan Method Abstrak” gratis?

Ya — teks lengkap “Class dan Method Abstrak” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Class dan Method Abstrak”?

Definisikan class dasar yang sebagian implementasinya tersedia dengan kata kunci abstract. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Class dan Method Abstrak” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memperluas Class dengan Pewarisan
  2. Class dan Method Abstrak
  3. Mengimplementasikan Interface
  4. Trait untuk Penggunaan Ulang Kode
← Kembali ke PHP Academy