Bab Vii Pemrograman Berorientasi Objek (PBO) Dengan PHP: 1. Tujuan

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

BAB VII

Pemrograman Berorientasi Objek (PBO) dengan PHP


1. Tujuan
1.Mahasiswa mengenal dasar-dasar PBO menggunakan PHP
2.Mahasiswa mampu memanfaatkan PBO untuk koneksi ke basis data
2. Tools
text editor, apache web server, mysql database server
3. Langkah Praktikum
3.1.Dasar-dasar PBO dengan PHP
Deklarasi class dan instansiasi
<?php
/**
* File : BasicClass.php
* Desc : Program yang menunjukkan deklarasi dasar class di PHP
*/
class BasicClass {
//deklarasi method / behavior
public function sayHello($name){
echo "hello, ".$name."<br />";
}
}
//instansiasi class BasicClass
$basicClass = new BasicClass();
$basicClass->sayHello("Panji");
//mengakses method secara langsung dengan operator "::"
BasicClass::sayHello("panji");
?>

Atribut class, Konstruktor dan destruktor


Konstruktor dijalankan ketika instansiasi dilakukan dan destruktor PHP akan dijalankan saat skrip
class selesai dijalankan.
<?php
/**
* File : Student.php
* Desc : Program menunjukkan deklarasi Atribut class,
*
Konstruktor dan destruktor
*/
class Student {
//deklarasi atribut
public $id;
public $name;
//konstruktor
function __construct($id,$name) {
$this->id = $id;
$this->name = $name;
echo "konstruktor dijalankan"."<br />";
}
//destruktor
function
__destruct() {
echo "destruktor dijalankan";
}
}
$student = new Student(1790999, "Havit Choirul Rovik");
//akses member variabel/atribut secara langsung
//melanggar konsep enkapsulasi !
echo $student->id."<br />";
echo $student->name."<br />";
?>

Pewarisan
<?php
/**
* File : Employee.php
* Desc : program php untuk menunjukkan inheritance
*
*/
class Pegawai {
//deklarasi atribut, sebaiknya private
private $nip;
private $nama;
function __construct($nip,$nama) {
$this->nip=$nip;
$this->nama=$nama;
}
//selektor method :
public function getNip(){
return $this->nip;
}
public function getNama(){
return $this->nama;
}
}
class PegawaiHonorer extends Pegawai {
private $upahHarian;
function __construct($nip,$nama,$upah) {
//akses konstruktor super class
parent::__construct($nip, $nama);
$this->upahHarian = $upah;
}
//selektor untuk upah harian
public function getUpahHarian(){
return $this->upahHarian;
}
}
$honorer = new PegawaiHonorer(12,"Kuncara",10000);
//konsep enkapsulasi : atribut harus diakses melalui selektor method !
echo "Nama : ".$honorer->getNama()."<br />";
echo "NIP : ".$honorer->getNip()."<br />";
echo "Upah : ".$honorer->getUpahHarian()."<br />";
//selesai menampilkan data pegawai
?>

Latihan: tambahkan modifier private ke class pegawai sehingga menjadi


private class pegawai {. . .
apa yang terjadi ? Apa kesimpulan anda ?

Polimorfisme
<?php
/**
* File : Polimorfik.php
* Desc : Program yang menunjukkan polimorfisme
*/
require_once 'Pegawai.php';
class PegawaiTetap extends Pegawai {
private $gajiBulanan;
function __construct($nip,$nama,$gaji) {
//akses konstruktor super class
parent::__construct($nip, $nama);
$this->gajiBulanan = $gaji;
}
public function getGajiBulanan() {
return $this->gajiBulanan;
}
}
$pegawai = new Pegawai(10,"Fredi");
$pegawai_tetap = new PegawaiTetap(10, "Fredi", 40000);
echo "Nama : ".$pegawai_tetap->getNama()."<br />";
echo "NIP : ".$pegawai_tetap->getNip()."<br />";
echo "Upah : ".$pegawai_tetap->getGajiBulanan()."<br />";
//pegawai tetap adalah tipe pegawai ?
if($pegawai_tetap instanceof $pegawai)
echo "Fredi adalah pegawai tetap dan juga pegawai";
?>

3.2.PBO untuk basis data


PHP 5 memperkenalkan MySQL improved (MySQLi) API yang memberikan fitur baru seperti object
oriented database access, prepared statement, dsb. Untuk mencoba MySQLi, buatlah tabel users
berikut :
Field

Tipe data
int

user_id

Keterangan
primary key, auto increment, not null

first_name

varchar(50)

not null

last_name

varchar(50)

not null

varchar(100)

not null

address

Isilah tabel tersebut dengan 3 record.


<?php
/**
* File :
* Desc :
*
*/

Oodb.php
OO dengan PHP dan basis data

$oo = new mysqli("localhost","root","","pi");


if(mysqli_connect_errno()) {
echo("Failed to connect because : ".mysqli_connect_error());
exit();
}
$result = $oo->query("select * from users");
//tabel akan di-fetch sebagai object
while($data = $result->fetch_object()){
echo "first name : ".$data->first_name."<br />";
echo "last name : ".$data->last_name."<br />";
}
?>

Prepared Statement
Prepared statement merupakan sebuah query SQL yang bisa digunakan sewaktu-waktu dibutuhkan.
Query disimpan dalam sebuah object dan akan dieksekusi dari object tersebut.
Terdapat mekanisme binding dimana data yang akan diolah diberikan sebagai parameter yang
terpisah dari query dan tipe dari data yang akan diolah diberi tanda seperti pada tabel berikut
supaya dikenali PHP :
KARAKTER

Deskripsi

Tipe integer

Tipe double

Tipe string

Tipe blob dan akan dikirim sebagai paket-paket

<?php
/**
* File : prepared_stmt.php
* Desc : program untuk mengenal prepared statement
*/
$oo = new mysqli("localhost","root","","pi");
if(mysqli_connect_errno()) {
echo("Failed to connect because : ".mysqli_connect_error());
exit();
}
$stmt=$oo->prepare("SELECT user_id,first_name FROM users WHERE user_id=?");
$uid = 1; //user id berupa integer, dan ditandai sebagai 'i'
$stmt->bind_param("i",$uid);
$stmt->execute();
$stmt->bind_result($user_id,$first_name);
while($r=$stmt->fetch()){
echo "user id : ".$user_id."<br >";
echo "first name : ".$first_name;
}
?>

TUGAS
Buatlah sebuah form untuk memasukkan data pada tabel users di atas, menggunakan prepared
statement!

You might also like