Pemrograman Berorientasi Objek (PBO) PHP Pemrograman Berorientasi Objek (PBO) PHP | isMediaNet

Rabu, 02 November 2011

Pemrograman Berorientasi Objek (PBO) PHP


1. Tujuan
1. mengenal dasar-dasar PBO menggunakan PHP
2. 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
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";
?>


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

Tipedata

Keterangan

user_id

int

primarykey,  autoincrement,notnull

first_name

varchar(50)

not null

last_name

varchar(50)

not null

address

varchar(100)

not null
Isilah  tabel tersebut dengan 3 record.

<?php
/**
* File :    Oodb.php
* Desc :    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

i

Tipe integer

d

Tipe double

s

Tipe string

b

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;
}
?>

PHP Object Oriented (pdf)

0 komentar:

Posting Komentar