|
[Web] Membangun Aplikasi Web (bagian 4)
Oleh: Agung Novian
| 9 October 2011
Membuat file class
Selanjutnya Anda akan membuat form-form yang diperlukan oleh aplikasi. Tapi sebelum itu lebih baik Anda membuat beberapa class terlebih dahulu. Class merupakan sekumpulan modul yang tersimpan dalam sebuah file, dimana modul-modul tersebut dapat sesering mungkin digunakan. Anda akan membuat tiga buah file class, yaitu “cConnect.php”, “cMySQL.php”, dan “cForm.php”. sebelum itu, buatlah sebuah folder baru pada folder “perpustakaan” dengan nama “classes”.
-
cConnect.php
Digunakan sebagai objek untuk mengkoneksikan aplikasi dengan database MySQL. Untuk membuat file “cConnect.php”, jalankan “Notepad++” buat file baru dengan pengaturan bahasa pada PHP. Kemudian ketik skrip di bawah ini:
<?php
require ('..\config.php');
class cConnect{
//deklarasi variabel public
public $dbhost = "localhost";
public $dbuser = "";
public $dbpass = "";
public $dbname = "perpustakaan";
//deklarasi variabel private
private $dbtabel;
private $dblink;
public $resultquery = 0;
public $affected_rows = 0;
//Constructor, menginisialisasi variabel static
public function __construct() {
$this->dbhost = DBHOST;
$this->dbuser = DBUSER;
$this->dbpass = DBPASS;
$this->dblink = false;
}
//Fungsi mengeksekusi perintah SQL
function query($sql) {
$this->resultquery = @mysql_query($sql, $this->dblink);
if (!$this->resultquery) {
return 0;
}
$this->affected_rows = @mysql_affected_rows($this->dblink);
return $this->resultquery;
}
//Fungsi membuka koneksi databse
public function connect(){
$this->dblink = @mysql_connect($this->dbhost, $this->dbuser, $this->dbpass);
if (!$this->dblink){
return false;
} else {
return $this->dblink;
}
}
//Fungsi menutup database
public function close() {
if ($this->connect){
$close = @mysql_close($this->dblink);
$this->connect = false;
return true;
}
else {
return false;
}
}
//Fungsi untuk menambah/insert data
function query_insert($table, $data) {
$q="INSERT INTO `". $table ."` ";
$v=''; $n='';
foreach($data as $key=>$val) {
$n.="`$key`, ";
if(strtolower($val)=='null') $v.="NULL, ";
elseif(strtolower($val)=='now()') $v.="NOW(), ";
else $v.= "'".$this->escape($val)."', ";
}
$q .= "(". rtrim($n, ', ') .") VALUES (". rtrim($v, ', ') .");";
if($this->query($q)){
return mysql_insert_id($this->dblink);
}
else return false;
}
//Fungsi meng-update data
function query_update($table, $data, $where='1') {
$q="UPDATE `". $table ."` SET ";
foreach($data as $key=>$val) {
if(strtolower($val)=='null') $q.= "`$key` = NULL, ";
elseif(strtolower($val)=='now()') $q.= "`$key` = NOW(), ";
else $q.= "`$key`='".$this->escape($val)."', ";
}
$q = rtrim($q, ', ') . ' WHERE '.$where.';';
return $this->query($q);
}
//Mengabaikan karakter-karakter 'terlarang'
function escape($string) {
if(get_magic_quotes_runtime()) $string = stripslashes($string);
return @mysql_real_escape_string($string,$this->link_id);
}
}
?>
Simpan dengan nama “cConnect.php” pada sub folder “classes”. “cConnect” memerlukan file tambahan sebagai media konfigurasi untuk dapat terkoneksi dengan database, yaitu sebuah file dengan nama “config.php”. Buatlah file tersebut!
Pada “Notepad++” buat file baru dengan pengaturan bahasa pada PHP. Kemudian ketik skrip di bawah ini:
<?php
//sesuaikan dengan nama database, pengguna,
//dan password yang telah Anda buat
define('DBNAME', 'perpustakaan');
define('DBUSER', 'userperpustakaan');
define('DBPASS', 'passwordku');
define('DBHOST', 'localhost');
?>
Simpan dengan nama “config.php” pada folder “perpustakaan”.
-
cTable.php
Digunakan sebagai objek untuk mengakses suatu tabel seperti mengirimkan perintah-perintah SQL. Untuk membuat file “cTable.php”, pada “Notepad++” buat file baru dengan pengaturan bahasa pada PHP. Kemudian ketik skrip di bawah ini:
<?php
require ('cConnect.php');
class cTable{
//deklarasi variabel public
public $dbhost = "localhost";
public $dbuser = "";
public $dbpass = "";
public $dbname = "perpustakaan";
public $resultquery = 0;
public $affected_rows = 0;
private $cConnect;
public $data;
public $sql;
public $where="1";
public $dbtabel="";
//deklarasi variabel private
private $dblink;
//Constructor, menginisialisasi variabel static
public function __construct() {
$this->cConnect = new cConnect();
//$this->dbtabel = 'tblbuku';
$this->dblink = $this->cConnect->connect();
}
//Fungsi membuka koneksi ke tabel
public function connect(){
if (!$this->dblink){
return false;
} else {
//Memilih tabel
$db = @mysql_select_db($this->dbname, $this->dblink);
if (!$db){
return false;
} else {
return true;
}
}
}
//Fungsi menutup database
public function close() {
if ($this->connect){
@mysql_close($this->dblink);
$this->connect = false;
return true;
}
else {
return false;
}
}
//Fungsi mengeksekusi perintah SQL
function query() {
$this->resultquery = @mysql_query($this->sql, $this->dblink);
if (!$this->resultquery) {
return 0;
}
$this->affected_rows = @mysql_affected_rows($this->dblink);
return $this->resultquery;
}
//Fungsi untuk menambah/insert data
function insert(){
$return = $this->cConnect->query_insert($this->dbtabel, $this->data);
return $return;
}
//Fungsi meng-update data
function update() {
$return = $this->cConnect->query_update($this->dbtabel,
$this->data, $this->where);
return $return;
}
//Fungsi fetch data ke dalam array
function fetch_array() {
$resultquery = $this->query($this->sql);
$out = array();
while ($row = $this->fetch_array($resultquery, $this->sql)){
$out[] = $row;
}
$this->free_result($resultquery);
return $out;
}
//Fungsi untuk melepaskan hasil fetch
function free_result($resultquery=-1) {
if ($resultquery!=-1) {
$this->resultquery=$resultquery;
}
if($this->resultquery!=0 && !@mysql_free_result($this->resultquery)) {
return false;
}
}
//Mengabaikan karakter-karakter 'terlarang'
function escape($string) {
if(get_magic_quotes_runtime()) $string = stripslashes($string);
return @mysql_real_escape_string($string,$this->link_id);
}
}
?>
Simpan dengan nama “cTable.php” pada sub folder “classes”.
-
cForm.php
Digunakan sebagai objek untuk membuat suatu form dan elemen-elemen yang diperlukan oleh form tersebut. Untuk membuat file “cForm.php”, pada “Notepad++” buat file baru dengan pengaturan bahasa pada PHP. Kemudian ketik skrip di bawah ini:
<?php
class cForm{
public $name = "";
public $image = "";
public $title = "";
public $column = 1;
//Fungsi untuk memulai pembuatan form
public function beginForm(){
$result = "<form name='".$this->name;
$result .= "' id='".$this->name."' type='POST'>";
$result .= "<table>";
$result .= "<tr>";
$result .= "<td id='titlebar'>";
$result .= "<table>";
$result .= "<tr>";
$result .= "<td>";
$result .= "<img src='".$this->image;
$result .= "' style='width:24px;height:24px;'/>";
$result .= "</td>";
$result .= "<td id='titlecaption'>";
$result .= "<span style='margin-left:12px;";
$result .= "font-weight:bold;font-size:20px'>";
$result .= $this->title . "</span>";
$result .= "</td>";
$result .= "</tr>";
$result .= "</table>";
$result .= "</td>";
$result .= "</tr>";
$result .= "<tr>";
$result .= "<td style='padding:6px;'>";
$result .= "<table class='inputform'";
$result .= " style='padding:2px;'>";
echo $result;
}
//Fungsi untuk menambahkan textarea ke dalam form
public function insertTextArea($name, $caption, $text="",
$width='220', $height='35'){
$result = "<tr><td>";
$result .= "<label for='$name'>$caption</label>";
$result .= "</td><td>:</td>";
$result .= "<td>";
$result .= "<textarea type='text' name='$name' id='$name' style='";
$result .= "width:".$width."px; height:".$height."px'";
$result .= ">$text</textarea>";
$result .= "</td>";
$result .= "</tr>";
echo $result;
}
//Fungsi untuk menambahkan text ke dalam form
public function insertText($name, $caption, $align='left',
$maxlength='', $text="", $width='220'){
$result = "<tr><td>";
$result .= "<label for='$name'>$caption</label>";
$result .= "</td><td>:</td>";
$result .= "<td>";
$result .= "<input type='text' name='$name' id='$name' style='";
$result .= "width:".$width."px; text-align:$align'";
$result .= " value='$text'";
$result .= " maxlength='$maxlength' />";
$result .= "</td>";
$result .= "</tr>";
echo $result;
}
//Fungsi untuk menambahkan select/combo ke dalam form
public function insertSelect($name, $caption, $data='',
$maxlength='0', $width='220'){
$result = "<tr><td>";
$result .= "<label for='$name'>$caption</label>";
$result .= "</td><td>:</td>";
$result .= "<td>";
$result .= "<select type='text' name='$name' ";
$result .= "id='$name' style='";
$result .= "width:".$width."px'>";
$result .= $data;
$result .= "</select>";
$result .= "</td>";
$result .= "</tr>";
echo $result;
}
//Fungsi untuk menambahkan combo
//tanggal, bulan, dan tahun ke dalam form
public function insertDate($name, $caption,
$starYear, $endYear, $today=true){
$result = "<tr><td>";
$result .="<label for='d-".$name."'>$caption</label>";
$result .= "</td><td>:</td>";
$result .= "<td><select name='d-".$name;
$result .= "' id='d-".$name."' style='width:50px;'>";
for ($i=1;$i<=31;$i++){
$tanggal = sprintf('%02s',$i);
$result .= "<option value='$i' ";
if ($today==true){
if ($tanggal==date('j')) {
$result .= " selected ";
}
}
$result .= ">".$tanggal."</option>";
}
$result .= "</select>";
$result .= "<select name='m-".$name."' id='m-";
$result .= $name."' style='width:110px;'>";
for ($i = 1; $i <= 12; $i++){
$dd = "";
$dd = '<option value="'.$i.'"';
$j = $i;
if ($today==true){
if ($j == date('n', time())) {
$dd .= " selected ";
}
}
$mon = date("F", mktime(0, 0, 0, $i+1, 0, 0, 0));
$dd .= '>'.$mon.'</option>';
$result .= $dd;
}
$result .= "</select>";
$result .= "<select name='y-".$name."' id='y-";
$result .= $name."' style='width:65px;'>";
for ($i=$endYear;$i>=$starYear;$i--){
$result .= "<option value='$i' ";
if ($today==true){
if ($i==date('Y')) {
$result .= " selected ";
}
}
$result .= ">".$i."</option>";
}
$result .= "</select>";
$result .= "</td>";
$result .= "</tr>";
echo $result;
}
//Fungsi untuk menambahkan elemen lain ke dalam form
public function insertOther($name, $caption, $tag, $data, $style){
$result = "<tr><td>";
$result .= "<label for='$name'>$caption</label>";
$result .= "</td><td>";
if ($caption !="") $result .= ":";
$result .= "</td>";
$result .= "<td>";
$result .= "<".$tag. " name='$name' id='$name'";
$result .= "style='".$style."'>";
$result .= $data;
$result .= "</".$tag.">";
$result .= "</td>";
$result .= "</tr>";
echo $result;
}
//Fungsi untuk mengakhiri pembuatan form
public function endForm(){
$result = "</table></td></tr></table></form>";
echo $result;
}
}
?>
Simpan dengan nama “cForm.php” pada sub folder “classes”.
Pembuatan class sementara selesai, pembahasan selanjutnya tinggal cara memanfaatkannya .
Ditulis di:
Framework, Fundamental, HTML, JavaScript, JQuery, Pemograman, PHP, Web
Penanda: class, JQuery, PHP, web, xampp
« [Web] Membangun Aplikasi Web (bagian 3)
| [MySQL] Database Al-Qur'an Terjemahan »
|
|
|
saya sangat senang ketika melihat web ini sangat bermanfaat bagi saya namun untuk terusannya kelika kita melihat di browsenya bagaimana caranya terima kasih
Mohon maaf, karena terjadi masalah dengan server, maka tulisan mengenai cara implementasi menjadi hilang. Saya akan mencoba membuat ulang, ditunggu saja!
Tutorialnya sangat bermanfaat, terima kasih atas sharing ilmux, semoga dpt berberkah
Tutorial lanjutan “Membangun Aplikasi Web (bagian 5)” kpn yah diposting, dinantikan