Setelah menyelesaikan materi ini, mahasiswa diharapkan mampu:
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.
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.
__
__sleep()
__wakeup()
$this
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:
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 $merk = ''; function getMerk() { return $this->merk; } function setMerk($merkBaru) { $this->merk = $merkBaru; } } $mobil = new Mobil(); $mobil->setMerk('Toyota'); echo $mobil->getMerk();
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.
static
<?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);
Jika sebuah method dideklarasikan dengan kata kunci final, maka method tersebut tidak dapat ditimpa (override) oleh class turunannya.
final
<?php class Hewan { public $nama; final function getNama() { return $this->nama; } } class Anjing extends Hewan { function getNama() { return "Ini adalah anjing bernama " . $this->nama; } }
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
protected
private
Agar lebih mudah dipahami, perhatikan ilustrasi berikut yang menggambarkan perbedaan ketiga jenis akses tersebut.
Gambar 4 Ilustrasi Akses Modifier: Public, Protected, dan Private
Gambar tersebut menunjukkan analogi akses modifier sebagai jenis βpintu aksesβ dalam sistem OOP:
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:
<?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
PHP mendukung type hinting untuk memastikan parameter yang diterima oleh sebuah method sesuai dengan tipe data yang diharapkan. Contoh:
<?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);
Kita juga dapat menentukan tipe data yang akan dikembalikan oleh suatu method dengan menambahkan tanda : diikuti tipe data setelah deklarasi parameter. Contoh:
<?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;
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.
}