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