Bagaimana cara membuat metode validasi property

Oleh Irawan_bs 300 8 pada Rabu, 28 Sep. 2016, 18:24:13


Kembali ke forum soal ini

#php #pemograman-berorientasi-objek-di-php #pbo-lanjutan


Petunjuk Diskusi
Silahkan masuk untuk berdiskusi



Method isValid ato validasi dibuat untuk cek apakah isian dari property sudah ada. Contohnya :
Class Orang{
    Public nama;
    Public alamat;
    Public tanggallahir;
    
    Public function __construct($nama,$alamat,$tgllahir){
$this->nama=$nama;
$this->alamat=$alamat;
$this->tgllahir=$tgllahir;
}
public function validasi(){
?cek nama apa ada isi nya?
?cek tgllahir apa sdh benar formatnya

}

}
1 jempol


bramanto
300
1157
· 8 tahun, 1 bulan yang lalu · 1 jempol

Hai coder @Irawan_bs. Coder bisa mencoba sintaks sederhana berikut : 

<?php

Class Orang{
    public $nama;
    public $alamat;
    public $tgllahir;
    
    public function __construct($nama,$alamat,$tgllahir){
		$this->nama 	= $nama;
		$this->alamat 	= $alamat;
		$this->tgllahir = $tgllahir;
	}
	
	public function validasi(){ # Method untuk validasi..
		$error = '<hr><p style="color:#FF0000;">';

		if($this->nama == ''){ # Cek apakah nama kosong ?
			$error .= 'Nama Wajib Diisi <br>';
		}

		if($this->alamat == ''){ # Cek apakah alamat kosong ?
			$error .= 'Alamat Wajib Diisi <br>';
		}

		$exp = explode('-', $this->tgllahir); # Pecah pemisah - jadi array
			
		if(count($exp) == 3){ # Jika jumlah array 3.
			if(!checkdate($exp[1], $exp[0], $exp[2])){	# Untuk validasi tanggal.. 
				$error .= 'Format Tanggal Tidak Sesuai <br>';
			}
		} else {
			$error .= 'Format Tanggal Tidak Sesuai <br>';
		}

		$error .='</p>';

		return $error;
	}

	public function hasil(){ # Method untuk hasil
		$text = '<pre>';
		$text .= '<hr>Nama          : ' . $this->nama;
		$text .= '<br>Alamat        : ' . $this->alamat;
		$text .= '<br>Tanggal Lahir : ' . $this->tgllahir;
		$text .= '</pre>';

		return $text;
	}
}

# Buat Form HTML
$html = '';
$html .= '<form method="POST" action="#">';
	$html .= 'Nama<br><input type="text" name="nama" placeholder="Masukkan Nama"><br>';
	$html .= 'Alamat<br><textarea name="alamat" placeholder="Masukkan Alamat" rows="3"></textarea><br>';
	$html .= 'Tanggal Lahir<br><input type="text" name="tgllahir" placeholder="Masukkan Tanggal Lahir">';
	$html .= '<small>  Format Tanggal : dd/mm/YYYY</small><br><br>';
	$html .= '<input type="submit" name="submit" value="Submit"><br>';
$html .= '</form>';

if(isset($_POST['submit'])){ # Jika ditekan tombol submit

	$nama 		= $_POST['nama'];
	$alamat 	= $_POST['alamat'];
	$tgllahir 	= $_POST['tgllahir'];

	$orang 		= new Orang($nama, $alamat, $tgllahir);	# Ciptakan objek Orang
	$validasi 	= $orang->validasi();
	$hasil 		= $orang->hasil();
	
	if($validasi == ''){ # Jika data sesuai validasi, tampilkan hasil.
		$html .= $hasil;
	} else { # Jika tidak sesuai validasi, maka cetak error.
		$html .= $validasi;
	}
}

echo $html;
?>

Mungkin temanĀ² coder yang lain ada yang lebih sederhana lagi dalam membuat validasi ini. 

Irawan_bs
300
8
penanya
· 8 tahun yang lalu · 0 jempol

Terima Kasih Coder @Bramanto.
Metode Validasi nya...

Ada request yang lain bagaimana klo konstruktor ato inisialisasi nya tanpa parameter?

Ini mungkin juga metode validasi juga dan untuk cek tanggal nya menggunakan fungsi date_parse?

<?php
	class Orang{
		public $nama;
		public $alamat;
		public $tempat_lahir;
		public $tanggal_lahir;
		public $no_telp_hp;

		public function __construct(){

		}

		public function isValid(){
			if (!isset($this->nama) || trim($this->nama) == ""){
				return "Nama harus diisi";
			} else if (isset($this->tanggal_lahir) && count(date_parse($this->tanggal_lahir)["errors"]) > 0){
				return "Format tanggal lahir salah";
			}
			else
				return true;
		}
	}

	// Kita coba dulu dengan inisialisasi class, tapi tidak inisialisasi propertinya, apa yang akan terjadi?
	// Seharusnya outputnya menampilkan pesan salah, sebab nama harus diisi
	$orang1 = new Orang();
	var_dump($orang1);
	echo "<BR>";
	echo "output: " . $orang1->isValid();
	echo "<BR>";
	echo "<BR>";

	// Kita coba inisialisasi class dan properti nama, apa yang akan terjadi?
	// Seharusnya outputnya 1 alias true,
	// Sebab nama sudah diisi, tanggal tidak diisi
	$orang2 = new Orang();
	$orang2->nama = "Irawan";
	var_dump($orang2);
	echo "<BR>";
	echo "output: " . $orang2->isValid();
	echo "<BR>";
	echo "<BR>";

	// Kita coba inisialisasi class dan properti nama, apa yang akan terjadi?
	// Seharusnya outputnya 1 alias true,
	// Sebab nama sudah diisi, tanggal diisi tapi nilainya salah
	$orang3 = new Orang();
	$orang3->nama = "Irawan";
	$orang3->tanggal_lahir = "2016-09-32";
	var_dump($orang3);
	echo "<BR>";
	echo "output: " . $orang3->isValid();
	echo "<BR>";
	echo "<BR>";

	// Kita coba inisialisasi class dan properti nama, apa yang akan terjadi?
	// Seharusnya outputnya 1 alias true,
	// Sebab nama sudah diisi, tanggal diisi tapi nilainya salah
	$orang4 = new Orang();
	$orang4->nama = "Irawan";
	$orang4->tanggal_lahir = "2016-09-28";
	var_dump($orang4);
	echo "<BR>";
	echo "output: " . $orang4->isValid();