B. MENDEKLARASIKAN CLASS

Tujuan Pembelajaran

Setelah menyelesaikan materi ini, mahasiswa diharapkan mampu:

  1. Memahami konsep dasar dalam mendeklarasikan class pada PHP.
  2. Mendeklarasikan method, property, dan constant dalam sebuah class.
  3. Menerapkan konsep inheritance, interface, dan trait dalam pemrograman berbasis objek.
  4. Menggunakan abstract method, constructor, dan destructor untuk mengelola perilaku object.
1. MENDEKLARASIKAN METHOD

Metode adalah fungsi yang didefinisikan di dalam sebuah kelas. Meskipun PHP tidak memberlakukan batasan khusus, sebagian besar metode hanya beroperasi pada data dalam objek tempat metode tersebut berada.

```
Aturan Penamaan Methods

Method yang diawali dengan dua garis bawah (__) mungkin akan digunakan oleh PHP di masa depan. Saat ini, beberapa method dengan awalan tersebut sudah digunakan dalam proses serialisasi objek, seperti __sleep() dan __wakeup(). Oleh karena itu, disarankan untuk tidak menggunakan awalan __ pada method buatan sendiri, kecuali untuk method bawaan PHP.

Menggunakan $this dalam Method

Di dalam sebuah method, variabel $this mengacu pada objek yang memanggil method tersebut. Misalnya, jika kita memanggil $mobil->nyalakanMesin(), maka di dalam method nyalakanMesin(), $this merujuk pada objek $mobil. Method menggunakan $this untuk mengakses properti dari objek saat ini dan untuk memanggil method lain dalam objek yang sama. Berikut adalah contoh class Mobil yang menunjukkan bagaimana $this digunakan:

AYO PAHAMI!


Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.

  1. Baca dan pahami kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan sesuai urutan dan struktur aslinya.
  3. Pastikan setiap detail penulisan seperti titik koma (;), tanda kurung, dan indentasi sesuai dengan contoh.
  4. Setelah selesai mengetik, klik tombol RUN untuk menjalankan kode.
  5. Perhatikan hasil output program yang muncul.
  6. Salin dan tuliskan output tersebut ke dalam kolom yang tersedia di bawah.
  7. Terakhir, klik tombol Periksa Output untuk mengecek apakah hasil output kamu sudah benar.

πŸ’‘ 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 $merk = '';

    function getMerk() {
        return $this->merk;
    }

    function setMerk($merkBaru) {
        $this->merk = $merkBaru;
    }
}

$mobil = new Mobil();
$mobil->setMerk('Toyota');
echo $mobil->getMerk();
*Tulis output sama persis seperti yang kamu lihat di bagian [Output] diatas.
*Jika output menunjukkan pesan error, cukup tulis "Error" saja di kolom ini.
Method Statis

Untuk mendeklarasikan method sebagai method statis, gunakan kata kunci static. Di dalam method statis, variabel $this tidak dapat digunakan karena method ini tidak terkait dengan instance tertentu dari sebuah class.

AYO PAHAMI!


Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.

  1. Baca dan pahami kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan sesuai urutan dan struktur aslinya.
  3. Pastikan setiap detail penulisan seperti titik koma (;), tanda kurung, dan indentasi sesuai dengan contoh.
  4. Setelah selesai mengetik, klik tombol RUN untuk menjalankan kode.
  5. Perhatikan hasil output program yang muncul.
  6. Salin dan tuliskan output tersebut ke dalam kolom yang tersedia di bawah.
  7. Terakhir, klik tombol Periksa Output untuk mengecek apakah hasil output kamu sudah benar.

πŸ’‘ 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 PembantuMatematika {
    static function kuadrat($angka) {
        return $angka * $angka;
    }

    static function kubus($angka) {
        return $angka * $angka * $angka;
    }
}

// Memanggil method statis tanpa membuat objek
echo PembantuMatematika::kuadrat(4); 
echo PembantuMatematika::kubus(3);
*Tulis output sama persis seperti yang kamu lihat di bagian [Output] diatas.
*Jika output menunjukkan pesan error, cukup tulis "Error" saja di kolom ini.
Method Final

Jika sebuah method dideklarasikan dengan kata kunci final, maka method tersebut tidak dapat ditimpa (override) oleh class turunannya.

AYO PAHAMI!


Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.

  1. Baca dan pahami kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan sesuai urutan dan struktur aslinya.
  3. Pastikan setiap detail penulisan seperti titik koma (;), tanda kurung, dan indentasi sesuai dengan contoh.
  4. Setelah selesai mengetik, klik tombol RUN untuk menjalankan kode.
  5. Perhatikan hasil output program yang muncul.
  6. Salin dan tuliskan output tersebut ke dalam kolom yang tersedia di bawah.
  7. Terakhir, klik tombol Periksa Output untuk mengecek apakah hasil output kamu sudah benar.

πŸ’‘ 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 Hewan {
    public $nama;

    final function getNama() {
        return $this->nama;
    }
}

class Anjing extends Hewan {
    function getNama() {
        return "Ini adalah anjing bernama " . $this->nama;
    }
}
*Tulis output sama persis seperti yang kamu lihat di bagian [Output] diatas.
*Jika output menunjukkan pesan error, cukup tulis "Error" saja di kolom ini.
```
Modifier Akses (Public, Private, Protected)

Dalam pemrograman berorientasi objek, penting untuk mengontrol akses terhadap properti dan method dalam class. Untuk itulah PHP menyediakan modifier akses: public, protected, dan private yang digunakan untuk menentukan sejauh mana anggota class (property dan method) bisa diakses dari luar:

  • Public: Dapat diakses dari mana saja, baik dari dalam class maupun luar.
  • Protected: Hanya dapat diakses oleh class itu sendiri dan class turunannya.
  • Private: Hanya dapat diakses oleh class itu sendiri, tidak dapat diakses dari luar atau subclass.

Agar lebih mudah dipahami, perhatikan ilustrasi berikut yang menggambarkan perbedaan ketiga jenis akses tersebut.

Gambar 4 Ilustrasi Akses Modifier: Public, Protected, dan Private

Gambar 4 Ilustrasi Akses Modifier: Public, Protected, dan Private

Gambar tersebut menunjukkan analogi akses modifier sebagai jenis β€œpintu akses” dalam sistem OOP:

  • Public diibaratkan sebagai pintu terbuka yang bisa dilalui siapa saja.
  • Protected digambarkan sebagai akses terbatas, hanya bisa dilalui oleh "keluarga" (class induk dan turunannya).
  • Private digambarkan seperti ruang pribadi yang hanya bisa diakses oleh pemiliknya sendiri, yaitu class tempat property atau method itu didefinisikan.

Dengan memahami gambar ini, kita dapat menyadari bahwa pemilihan akses modifier sangat penting dalam menjaga keamanan data dan struktur kode yang rapi. Contoh penggunaan modifier akses:

AYO PAHAMI!


Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.

  1. Baca dan pahami kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan sesuai urutan dan struktur aslinya.
  3. Pastikan setiap detail penulisan seperti titik koma (;), tanda kurung, dan indentasi sesuai dengan contoh.
  4. Setelah selesai mengetik, klik tombol RUN untuk menjalankan kode.
  5. Perhatikan hasil output program yang muncul.
  6. Salin dan tuliskan output tersebut ke dalam kolom yang tersedia di bawah.
  7. Terakhir, klik tombol Periksa Output untuk mengecek apakah hasil output kamu sudah benar.

πŸ’‘ 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 RekeningBank {
    public $saldo = 0;

    public function setor($jumlah) {
        $this->saldo += $jumlah;
        $this->catatTransaksi();
    }

    protected function tarik($jumlah) {
        if ($jumlah <= $this->saldo) {
            $this->saldo -= $jumlah;
            $this->catatTransaksi();
        } else {
            echo "Saldo tidak cukup!";
        }
    }

    private function catatTransaksi() {
        echo "Transaksi berhasil. Saldo saat ini: {$this->saldo}\n";
    }
}

$rekening = new RekeningBank();
$rekening->setor(1000);
// $rekening->tarik(500); // Tidak dapat dipanggil karena bersifat protected
// $rekening->catatTransaksi(); // Tidak dapat dipanggil karena bersifat private
*Tulis output sama persis seperti yang kamu lihat di bagian [Output] diatas.
*Jika output menunjukkan pesan error, cukup tulis "Error" saja di kolom ini.
```
Type Hinting dalam Parameter Method

PHP mendukung type hinting untuk memastikan parameter yang diterima oleh sebuah method sesuai dengan tipe data yang diharapkan. Contoh:

AYO PAHAMI!


Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.

  1. Baca dan pahami kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan sesuai urutan dan struktur aslinya.
  3. Pastikan setiap detail penulisan seperti titik koma (;), tanda kurung, dan indentasi sesuai dengan contoh.
  4. Setelah selesai mengetik, klik tombol RUN untuk menjalankan kode.
  5. Perhatikan hasil output program yang muncul.
  6. Salin dan tuliskan output tersebut ke dalam kolom yang tersedia di bawah.
  7. Terakhir, klik tombol Periksa Output untuk mengecek apakah hasil output kamu sudah benar.

πŸ’‘ 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 Karyawan {
    function berikanTugas(Tugas $tugas) {
        echo "Tugas diberikan: {$tugas->deskripsi}\n";
    }
}

class Tugas {
    public $deskripsi;
    
    function __construct($deskripsi) {
        $this->deskripsi = $deskripsi;
    }
}

$tugas = new Tugas("Menganalisis data keuangan");
$karyawan = new Karyawan();
$karyawan->berikanTugas($tugas);
*Tulis output sama persis seperti yang kamu lihat di bagian [Output] diatas.
*Jika output menunjukkan pesan error, cukup tulis "Error" saja di kolom ini.
```
Type Hinting dalam Return Type Method

Kita juga dapat menentukan tipe data yang akan dikembalikan oleh suatu method dengan menambahkan tanda : diikuti tipe data setelah deklarasi parameter. Contoh:

AYO PAHAMI!


Ikuti langkah-langkah berikut untuk memahami dan mempraktikkan konsep penting dalam pemrograman PHP berbasis objek.

  1. Baca dan pahami kode program PHP yang ditampilkan di kotak sebelah kiri.
  2. Ketik ulang seluruh baris kode tersebut ke dalam editor di sebelah kanan sesuai urutan dan struktur aslinya.
  3. Pastikan setiap detail penulisan seperti titik koma (;), tanda kurung, dan indentasi sesuai dengan contoh.
  4. Setelah selesai mengetik, klik tombol RUN untuk menjalankan kode.
  5. Perhatikan hasil output program yang muncul.
  6. Salin dan tuliskan output tersebut ke dalam kolom yang tersedia di bawah.
  7. Terakhir, klik tombol Periksa Output untuk mengecek apakah hasil output kamu sudah benar.

πŸ’‘ 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 Perpustakaan {
    function ambilBuku(): Buku {
        return new Buku("Pemrograman PHP");
    }
}

class Buku {
    public $judul;

    function __construct($judul) {
        $this->judul = $judul;
    }
}

$perpustakaan = new Perpustakaan();
$buku = $perpustakaan->ambilBuku();
echo "Buku yang diperoleh: " . $buku->judul;
*Tulis output sama persis seperti yang kamu lihat di bagian [Output] diatas.
*Jika output menunjukkan pesan error, cukup tulis "Error" saja di kolom ini.

LATIHAN

Susunlah potongan-potongan kode PHP berikut ini agar membentuk program yang benar untuk mendeklarasikan sebuah method di dalam class.
Gunakan metode drag-and-drop (seret dan lepas) untuk mengatur urutan baris kode yang tersedia hingga sesuai struktur program yang benar.

Perhatikan dengan seksama posisi tanda } pada setiap baris, karena terdapat dua penutup kurung kurawal: satu untuk method dan satu lagi untuk class. Gunakan komentar yang ada di samping tanda } sebagai petunjuk dalam menentukan urutan.

Setelah kamu selesai menyusun kode, klik tombol Cek Jawaban untuk melihat hasilnya.
Jika jawaban masih salah, kamu bisa mencoba kembali hingga urutan benar.
Untuk memulai ulang dari awal, klik tombol Ulang agar semua baris kode dikocok ulang.

πŸ’‘ Catatan: Latihan ini merupakan syarat untuk membuka akses ke halaman berikutnya. Pastikan kamu menyusunnya dengan benar agar dapat melanjutkan ke materi selanjutnya.

    ```