Setelah memahami arti dan fungsi variabel $this dalam 2 tutorial sebelumnya, dalam sesi tutorial belajar OOP PHP kali ini, kita akan mempelajari lebih dalam tentang cara membuat method di dalam pemrograman objek PHP. Method di dalam PHP juga bisa ditambahkan dengan argumen/parameter seperti layaknya function.
Cara Membuat Method dengan Argumen/Parameter
Karena method pada dasarnya hanyalah function yang berada di dalam sebuah class, maka kita bisa memberikan argumen/parameter ke dalam method tersebut.
Langsung saja kita lihat struktur dasar pembuatan parameter di dalam method PHP:
hak_akses nama_method ($argumen1, argumen2, dst...) { //... isi dari method }
Dengan menggunakan contoh method hidupkan_laptop(), kita bisa membuatnya menjadi:
public hidupkan_laptop($pemilik, $merk) { //... isi dari method }
Sehingga apabila metod itu dipanggil dari objek, kita tinggal mengisi argumen dengan nilai yang diinginkan, seperti contoh berikut:
$laptop_andi('Andi','Lenovo');
Cara Membuat Argumen dalam Method Class
Sebagai contoh tutorial, saya akan kembali memodifikasi class laptop dengan menambahkan fitur argumen dalam method:
<?php // buat class laptop class laptop { // buat method untuk class laptop public function hidupkan_laptop($pemilik,$merk) { return "Hidupkan Laptop $merk punya $pemilik"; } } Â // buat objek dari class laptop (instansiasi) $laptop_andi= new laptop(); Â echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo"); // hasil: "Hidupkan Laptop Lenovo punya Andi"; ?>
Dalam contoh diatas, saya memanggil method hidupkan_laptop() dengan 2 argumen, yakni "Andi" dan "Lenovo". Kedua nilai ini akan diproses oleh method hidupkan_laptop().
Perhatikan bahwa saya tidak menggunakan variabel $this, karena argumen tersebut 'milik' method, perhatikan bedanya jika saya mengubah class laptop menjadi berikut ini:
<?php // buat class laptop class laptop { // buat property untuk class laptop private $pemilik="Anto"; private $merk="Acer"; Â // buat method untuk class laptop public function hidupkan_laptop($pemilik,$merk) { return "Hidupkan Laptop $merk punya $pemilik"; } Â public function hidupkan_laptop_anto() { return "Hidupkan Laptop $this->merk punya $this->pemilik"; } } Â // buat objek dari class laptop (instansiasi) $laptop_andi= new laptop(); Â echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo"); // hasil: "Hidupkan Laptop Lenovo punya Andi"; Â echo $laptop_andi->hidupkan_laptop_anto(); // hasil: "Hidupkan Laptop Acer punya Anto"; ?>
Pada class laptop diatas, saya menambahkan 2 property: $pemilik dan $merk, kemudian memberikan nilai "Anto" dan "Acer". Jika yang kita inginkan adalah nilai dari variabel ini, maka di dalam method, kita harus menggunakan $this.
Semua fitur function, juga bisa diterapkan di dalam method, termasuk default parameter seperti yang pernah kita bahas pada Tutorial Belajar PHP: Cara Pembuatan Default Parameter pada Fungsi PHP, seperti contoh berikut:
<?php // buat class laptop class laptop { // buat method untuk class laptop public function hidupkan_laptop($pemilik="Joko",$merk="Samsung") { return "Hidupkan Laptop $merk punya $pemilik"; } } Â // buat objek dari class laptop (instansiasi) $laptop_andi= new laptop(); Â echo $laptop_andi->hidupkan_laptop(); // hasil: "Hidupkan Laptop Samsung punya Joko"; Â echo "<br />"; Â echo $laptop_andi->hidupkan_laptop("Andi", "Lenovo"); // hasil: "Hidupkan Laptop Lenovo punya Andi"; ?>
Pada contoh kode program PHP diatas, dengan membuat method sebagai berikut:
public function hidupkan_laptop($pemilik="Joko",$merk="Samsung")
Maka, ketika method tersebut dipanggil tanpa menambahkan argumen, nilai "Joko" dan "Samsung" akan digunakan sebagai nilai default, namun jika argumen ditulis, nilai argumen yang diinput akan menimpa nilai default ini.
Dalam tutorial belajar PHP Objek Oriented Programming kali ini, kita telah membahas cara membuat method di dalam PHP dengan menggunakan argumen / parameter. Kesimpulannya, karena method adalah sebutan lain untuk function di dalam class, maka seluruh fitur function bisa digunakan untuk method.
Dalam tutorial OOP PHP berikutnya, kita akan membahas tentang pengertian constructor dan destructor dalam pemrograman objek PHP.
oh… jadi contoh di atas kayak default parameter yah.
kayak <a href="https://www.duniailkom.com/tutorial-belajar-php-cara-pembuatan-default-parameter-pada-fungsi-php/">materi_default_parameter</a>
mas, mengapa jika property dalam class tidak bisa dijadikan parameter dalam method?
Mas Andre totorialnya bahasanya mudah di pahami.
Smoga mas andre di beri kesehatan, rejeki yg lancar
Amiin… terimakasih untuk doanya :)
Permisi mas, kapan saatnya kita bisa menggunakan method ini dalam pemrograman PHP?
Pemrograman berbasis object biasanya dipakai untuk project2 besar yang butuh pemisahan kode program menjadi modul2 terpisah. Untuk project2 sederhana seperti tugas kampus, akan labih cepat menggunakan PHP biasa (prosedural).
mas saya mencobat buat seperti ini, ternyata seleah di jalankan muncul error
Notice: Undefined variable: matematika in D:\Xampp\htdocs\phpbelajar\OOP\methodOOP.php on line 24
Fatal error: Uncaught Error: Call to a member function kali() on null in D:\Xampp\htdocs\phpbelajar\OOP\methodOOP.php:24 Stack trace: #0 {main} thrown in D:\Xampp\htdocs\phpbelajar\OOP\methodOOP.php on line 24
/
kenapa ya
<?php
class matematika{
private $nilai1 = 5;
private $nilai2 = 5;
public function tambah (){
$hasil = $this->nilai1 + $this->nilai2;
return $hasil;
}
public function kali ($nilai1, $nilai2){
$hasil2 = $nilai1 * $nilai2;
return $hasil2;
}
}
$matematika1 = new matematika();
echo "5 + 5 ".$matematika1->tambah();
echo "<br>";
echo "5 x 5 = ".$matematika->kali(3,3);
?>
Di baris terakhir seharusnya ditulis echo "5 x 5 = ".$matematika1->kali(3,3). Variabel $matematika1 tidak sama dengan $matematika (tanpa angka 1).
Variabel $merk & $pemilik kenapa di private ya?
Tidak ada alasan khusus, mau di ganti jadi public atau protected juga bisa karena bukan jadi topik bahasan dalam tutorial ini.
Tapi secara umum dalam konsep OOP biasanya property banyak yang di set sebagai private. Jika ingin diakses, bisa lewat method. Teknik ini di kenal dengan nama method getter dan setter.