[Web] Membangun Aplikasi Web (bagian 4)
| 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 :) .

budiharto pada 28 December 2011 08:46

saya sangat senang ketika melihat web ini sangat bermanfaat bagi saya namun untuk terusannya kelika kita melihat di browsenya bagaimana caranya terima kasih

Agung Novian pada 1 February 2012 06:27

Mohon maaf, karena terjadi masalah dengan server, maka tulisan mengenai cara implementasi menjadi hilang. Saya akan mencoba membuat ulang, ditunggu saja!

mgafur pada 19 February 2012 22:16

Tutorialnya sangat bermanfaat, terima kasih atas sharing ilmux, semoga dpt berberkah

mgafur pada 19 February 2012 22:39

Tutorial lanjutan “Membangun Aplikasi Web (bagian 5)” kpn yah diposting, dinantikan

Tulis Komentar
:
:
:
Komentar :
Ditulis di: Framework, Fundamental, HTML, JavaScript, JQuery, Pemograman, PHP, Web
Penanda: , , , ,
 
Ikuti Quiz.Diajar.Com