Penjelaskan tentang parent::__construct() pada OOP di PHP

Sesuai judul disini saya mendapatkan script dari dosen dan tidak dijelaskan tentang

parent::__constrcut();

Berikut script nya


<?php
class kalkulator {
	function __construct(){
		echo 'aplikasi kalkulator<br>';
	}
	 function jumlah ($angka1,$angka2){
		$hasil = $angka1 + $angka2;
		echo $hasil;
		}
	function perkalian($angka1, $angka2){
		$hasil = $angka1 * $angka2;
		echo $hasil;
	}

}
class bidang_datar extends kalkulator {
	function __construct (){
		parent::__construct();
		echo 'kelas '.__CLASS__.'<br>';

	}
	function luas_persegi($sisi){
		$luas_persegi = $this->perkalian($sisi, $sisi);
		echo '<br>'.$luas_persegi;
	}
	function keliling_persegi($sisi){
		$keliling_persegi = $this->perkalian(4,$sisi);
		echo '<br>'.$keliling_persegi;
	}
}
?>

Mohon pengertiannya ~ Happy ngoding :D

avatar KepalaSekolah
@KepalaSekolah

82 Kontribusi 69 Poin

Diperbarui 3 tahun yang lalu

9 Jawaban:

Pertamax diamankan :v

avatar KepalaSekolah
@KepalaSekolah

82 Kontribusi 69 Poin

Dipost 6 tahun yang lalu

Sundul gans

avatar KepalaSekolah
@KepalaSekolah

82 Kontribusi 69 Poin

Dipost 6 tahun yang lalu

Entahlah, __construct itu fungsi yang jalan otomatis ketika class nya di inisialisasi. Kalau di dalam fungsi __construct dia eksekusi parent::__construct(), jadi ketika classnya dinisialisasi, artinya dia menjalankan __construct nya dua kali.

avatar dalikewara
@dalikewara

351 Kontribusi 260 Poin

Dipost 6 tahun yang lalu


<?php
class kalkulator {
	function __construct(){ //construct kalkulator
		echo 'aplikasi kalkulator<br>';
	}
	 function jumlah ($angka1,$angka2){
		$hasil = $angka1 + $angka2;
		echo $hasil;
		}
	function perkalian($angka1, $angka2){
		$hasil = $angka1 * $angka2;
		echo $hasil;
	}

}
class bidang_datar extends kalkulator { //bidang_datar sebagai child dari kalkulator
	function __construct (){ //construct bidang_datar
		parent::__construct(); //construct kalkulator (parent)
		echo 'kelas '.__CLASS__.'<br>';

	}
	function luas_persegi($sisi){
		$luas_persegi = $this->perkalian($sisi, $sisi);
		echo '<br>'.$luas_persegi;
	}
	function keliling_persegi($sisi){
		$keliling_persegi = $this->perkalian(4,$sisi);
		echo '<br>'.$keliling_persegi;
	}
}
?>

seperti komen diatas, construct itu fungsi yg jalan otomatis ketika classnya dijalankan, dan fungsi

parent::__construct()

adalah untuk menjalankan construct pada parent nya, pada kasus ini kalkulator sebagai mana di class bidang_datar disebutkan extends kalkulator

avatar codingforbabies
@codingforbabies

159 Kontribusi 53 Poin

Dipost 6 tahun yang lalu

Jadi intinya

 parent::__construct()

Menjalankan 2 kali ?

avatar KepalaSekolah
@KepalaSekolah

82 Kontribusi 69 Poin

Dipost 6 tahun yang lalu

Sesuai penjelasan @IamAN, fungsi

parent::__construct()

bakal otomatis menjalankan __construct() nya dari class "kalkulator". Jadi ketika class "bidang_datar" di inisialisasi, maka dia udah menjalankan 2 __construct(), yang pertama __construct() nya class "bidang_datar" yang kedua __construct() nya "kalkulator"

avatar dalikewara
@dalikewara

351 Kontribusi 260 Poin

Dipost 6 tahun yang lalu

@KepalaSekolah ga ngerun 2x, karena fungsi __construct nya itu berbeda

avatar codingforbabies
@codingforbabies

159 Kontribusi 53 Poin

Dipost 6 tahun yang lalu

closed question

avatar KepalaSekolah
@KepalaSekolah

82 Kontribusi 69 Poin

Dipost 6 tahun yang lalu

<div>apabila sebuah class diberikan parent construct maka class tersebut (class kalkulator) otomatis menjadi sebuah parent class. Sehingga sesuai yang dicantumkan pada source code diatas ketika class lain menginisialisasi parent class tersebut &nbsp;</div><pre>class bidang_datar extends kalkulator</pre><div>maka class yang memanggil/menggunakan/melakukan penginisialisasian (class bidang_datar)<br>mendapatkan sifat yang diturunkan dari parent class tersebut. Dalam hal ini sifat turunan yang digunakan adalah&nbsp;</div><pre>function perkalian($angka1, $angka2){ $hasil = $angka1 * $angka2; echo $hasil; } </pre><div>pada class kalkulator dan digunakan oleh class bidang_datar untuk menyelesaikan permasalahan hitung luas dan keliling&nbsp;</div><pre>function keliling_persegi($sisi){ $keliling_persegi = $this-&gt;perkalian(4,$sisi); echo '&lt;br&gt;'.$keliling_persegi; }</pre><div><br>Sama seperti peribahasa bilang, buah jatuh tidak jauh dari pohonnya. Happy coding :v</div>

avatar diopentahaseya
@diopentahaseya

1 Kontribusi 0 Poin

Dipost 3 tahun yang lalu

Login untuk ikut Jawaban