Sabtu, 21 November 2015

Membuat Create di Code Igniter dan Bootstrap

TeDalam sebuah projek yang pasti tidak bisa lepas dari CRUD sebab ini adalah elemen paling dasar dalam membangun sebuah projek website maupun apliCOdHal yang harus kita siapkan adalah
Kalian pasti mengetahu MVC (Model, View, Controller) yaitu salah satunya adalah Code Igniter yang mempermudah programmer dalam membuat sistem aplikasi dengan error handling yang lebih ter-managemen dengan baik. Serta tampilannya dipercantik dengan Template dari Bootstrap yang menjadikan Sistem Aplikasi menjadi User Friendly. Berikut membuat Create dengan Code Igniter

Yang perlu disiapkan untuk membuat Sistem Aplikasi menggunakan Code Igniter, yaitu :
1. Database
2. Package Codeigniter
3. Package Bootstrap template
4. Jquery

1. Database
Buat database dengan nama db_crud dan nama tabelnya adalah tb_barang. Copy perintah SQL berikut ini :
 CREATE TABLE `tb_barang` (
  `kode_brg` int(5) NOT NULL AUTO_INCREMENT,
  `barcode` varchar(20) NOT NULL,
  `nama_brg` varchar(150) NOT NULL,
  `harga_brg` int(10) NOT NULL,
  `keterangan` tinytext NOT NULL,
  `jenis` varchar(30) DEFAULT NULL,
  `satuan` varchar(30) DEFAULT NULL,
  `stok_brg` int(5) DEFAULT NULL,
  PRIMARY KEY (`kode_brg`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
2. Konfigurasi Code Igniter
Konfigurasi database.php di folder application/config seperti dibawah ini :
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'db_crud';
Sesuiakan dengan web server kalian ya ini saya pakai xampp.
Kemudian di routes.php tetap di folder application seperti dibawah ini :
$route['default_controller'] = "barang";
$route['404_override'] = '';
Kemudian di autoload.php atur database, session, dan url seperti contoh berikut :
$autoload['libraries'] = array('database','session');

$autoload['helper'] = array('url');
Tambahkan .htaccess pada root foldernya, seperti dibawah ini :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ index.php/$1 [NC,L]
.htaccess digunakan untuk menghilangkan index.php pada url.
3.CRUD
Buat controller barang.php simpan pada folder application/controllers/, ketikkan script berikut :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Barang extends CI_Controller {

    /**
     | CRUD barang
     | controller barang view, create, update, delete
     | by g2tech
     */
    public function __construct() {
        parent::__construct();
        $this->load->model('mbarang');
        $this->load->helper('form','url');
    }
//class fungsi awal ketika kita panggil controller barang
    public function index()
    {
        $data['title'] = 'CRUD CodeIgniter Studi Kasus Barang'; //judul title
        $data['qbarang'] = $this->mbarang->get_allbarang(); //model semua barang

        $this->load->view('vbarang',$data); //load views vbarang

    }

    public function form(){
        //ambil variabel URL
        $mau_ke                 = $this->uri->segment(3);
        $idu                    = $this->uri->segment(4);
        

        //ambil variabel dari form
        $id                     = addslashes($this->input->post('id'));
        $kode                   = addslashes($this->input->post('kode'));
        $nama                   = addslashes($this->input->post('nama'));
        $jenis                  = addslashes($this->input->post('jenis'));
        $keterangan             = addslashes($this->input->post('uraian'));
        $satuan                 = addslashes($this->input->post('satuan'));
        $harga                  = addslashes($this->input->post('harga'));
        $stok                   = addslashes($this->input->post('stok'));

//mengarahkan fungsi form sesuai dengan uri segmentnya
        if ($mau_ke == "add") {//jika uri segmentnya add
            $data['title'] = 'Tambah barang';
            $data['aksi'] = 'aksi_add';
            $this->load->view('vformbarang',$data);
        } else if ($mau_ke == "edit") {//jika uri segmentnya edit
            $data['qdata']  = $this->mbarang->get_barang_byid($idu);
            $data['title'] = 'Edit barang';
            $data['aksi'] = 'aksi_edit';
            $this->load->view('vformbarang',$data);
        } else if ($mau_ke == "aksi_add") {//jika uri segmentnya aksi_add sebagai fungsi untuk insert
            $data = array(
                'barcode'   => $kode,
                'nama_brg'  => $nama,
                'harga_brg' => $harga,
                'keterangan'=> $keterangan,
                'satuan'    => $satuan,
                'jenis'     => $jenis,
                'stok_brg'  => $stok
            );
            $this->mbarang->get_insert($data); //model insert data barang
            $this->session->set_flashdata("pesan", "<div class=\"alert alert-success\" id=\"alert\"><i class=\"glyphicon glyphicon-ok\"></i> Data berhasil di insert</div>"); //pesan yang tampil setalah berhasil di insert
            redirect('barang');
        } else if ($mau_ke == "aksi_edit") { //jika uri segmentnya aksi_edit sebagai fungsi untuk update
          $data = array(
                'barcode'   => $kode,
                'nama_brg'  => $nama,
                'harga_brg' => $harga,
                'keterangan'=> $keterangan,
                'satuan'    => $satuan,
                'jenis'     => $jenis,
                'stok_brg'  => $stok
            );
            $this->mbarang->get_update($id,$data); //modal update data barang
            $this->session->set_flashdata("pesan", "<div class=\"alert alert-success\" id=\"alert\"><i class=\"glyphicon glyphicon-ok\"></i> Data berhasil diupdate</div>"); //pesan yang tampil setelah berhasil di update
            redirect('barang');
        }

    }
    public function detail($id){ //fungsi detail barang
        $data['title'] = 'Detail Barang'; //judul title
        $data['qbarang'] = $this->mbarang->get_barang_byid($id); //query model barang sesuai id

        $this->load->view('vdetbarang',$data); //meload views detail barang
    }
    public function hapus($gid){ //fungsi hapus barang sesuai dengan id

        $this->mbarang->del_barang($gid);
        $this->session->set_flashdata("pesan", "<div class=\"alert alert-danger\" id=\"alert\"><i class=\"glyphicon glyphicon-ok\"></i> Barang berhasil dihapus</div>");
        redirect('barang');
    }
}

/* End of file barang.php */
/* Location: ./application/controllers/barang.php */
 Sampai controller dulu ya guys buat model kita sambung di blog berikutnya...


nantinya default controllernya akan mengakses controller barang
kemudian di autoload.php masih difolder yang sama, tambahkah librari database, session dan url , buat seperti ini
- See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'db_crud';
- See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'db_crud';
- See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf

Konfigurasi database.php di folder application/config seperti dibawah ini : - See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf
Konfigurasi database.php di folder application/config seperti dibawah ini : - See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf
Konfigurasi database.php di folder application/config seperti dibawah ini : - See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf
CREATE TABLE `tb_barang` (
  `kode_brg` int(5) NOT NULL AUTO_INCREMENT,
  `barcode` varchar(20) NOT NULL,
  `nama_brg` varchar(150) NOT NULL,
  `harga_brg` int(10) NOT NULL,
  `keterangan` tinytext NOT NULL,
  `jenis` varchar(30) DEFAULT NULL,
  `satuan` varchar(30) DEFAULT NULL,
  `stok_brg` int(5) DEFAULT NULL,
  PRIMARY KEY (`kode_brg`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
- See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf
CREATE TABLE `tb_barang` (
  `kode_brg` int(5) NOT NULL AUTO_INCREMENT,
  `barcode` varchar(20) NOT NULL,
  `nama_brg` varchar(150) NOT NULL,
  `harga_brg` int(10) NOT NULL,
  `keterangan` tinytext NOT NULL,
  `jenis` varchar(30) DEFAULT NULL,
  `satuan` varchar(30) DEFAULT NULL,
  `stok_brg` int(5) DEFAULT NULL,
  PRIMARY KEY (`kode_brg`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
- See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf
CREATE TABLE `tb_barang` (
  `kode_brg` int(5) NOT NULL AUTO_INCREMENT,
  `barcode` varchar(20) NOT NULL,
  `nama_brg` varchar(150) NOT NULL,
  `harga_brg` int(10) NOT NULL,
  `keterangan` tinytext NOT NULL,
  `jenis` varchar(30) DEFAULT NULL,
  `satuan` varchar(30) DEFAULT NULL,
  `stok_brg` int(5) DEFAULT NULL,
  PRIMARY KEY (`kode_brg`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
- See more at: http://fabernainggolan.net/membuat-crud-codeigniter-dengan-tampilan-bootstrap#sthash.BPCmzL8B.dpuf

OOP Pada Pemrograman

OOP atau Object Oriented Programming adalah teknik pemrograman berbasis object. Pemrograman dibagi dalam object-object kemudian di dalam object-object ini ada property dan method. Property ini lebih dikenal dengan variable yang bersifat public dan method ini merupakan function. Object-object ini bisa diperluas lagi dengan inheritance atau turunan. Object-object turunan ini biasa dipakai untuk membuat object yang merupakan modifikasi dari object lain

Dengan pengelompokan-pengelompokan ini maka programming akan terstruktur dengan baik dan mudah dimanage. Bahasa programming yang sudah mengimplementasikan OOP adalah C++ dan Java.

Pemograman PHP akhir-akhir ini juga dikembangkan menjadi bahasa pemrograman berbasis OOP (Object Orieented Programming) dengan lahirnya framework-framework berbasis PHP. Salah satu contohnya dalah penggunaan OOP pada framework Code Igniter.

Apa itu Object ?

Sederhananya, sebuah obyek adalah kumpulan dari variabel dan fungsi yang dibungkus menjadi satu entitas. Entitas tersebut dapat berupa variabel biasa. Sebuah obyek diciptakan melalui sebuah kelas atau dengan istilah instance of class

Obyek memiliki 2 elemen utama:
1.Attributes atau Properties : Yaitu nilai-nilai yang tersimpan dalam objek tersebut dan secara langsung maupun tidak langsung menentukan karakteristik dari obyek tersebut.
2.Method : Yaitu suatu aksi yang akan dijalankan atau dikerjakan oleh obyek tersebut.


Apa itu Class? 
Class dapat didefinisikan sebagai struktur data atau cetak biru dari suatu obyek. Lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang mendefinisikan variabel, method umum pada semua obyek. Obyek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. Obyek adalah elemen pada saat run-time yang akan diciptakan, dimanipulasi, dan dibuang/di-destroy ketika eksekusi. Adapun class merupakan definisi statik dari himpunan obyek yang mungkin diciptakan sebagai inst
antiasi dari class.
Berikut contoh penulisan script class dan penambahan object pada script pada php :


<?php
class Computer {
   function hidupkan_computer() {
   //... isi dari method hidupkan_computer
   }

   function matikan_komputer() {
   //... isi dari method matikan_computer
   }

       $computer_andi = new Computer(); //object
       $computer_anto = new Computer(); //object
}
?>

Pengertian Property dalam Pemrograman Berbasis Objek
Property (atau disebut juga dengan atribut) adalah data yang terdapat dalam sebuah class. Melanjutkan analogi tentang computer, property dari laptop bisa berupa merk, warna, jenis processor, ukuran layar, dan lain-lain.
Jika anda sudah terbiasa dengan program PHP, property ini sebenarnya hanyalah variabel yang terletak di dalam class. Seluruh aturan dan tipe data yang biasa diinput kedalam variabel, bisa juga diinput kedalam property. Aturan tata cara penamaan property sama dengan aturan penamaan variabel.

Berikut adalah contoh penulisan class dengan penambahan property:

<?php
class Computer {
    var $pemilik; //atribut
    var $merk;
//atribut
    var $ukuran_layar;//atribut   
    
    function hidupkan_computer() {
           //... isi dari method hidupkan_computer
       }

       function matikan_komputer() {
           //... isi dari method matikan_computer
       }

       $computer_andi = new Computer();
       $computer_anto = new Computer();
}
?>

Dari contoh diatas, $merk, $ukuran_layar dan $jenis_processor adalah property dari class computer. Seperti yang kita lihat, penulisan property di dalam PHP sama dengan cara penulisan variabel, yakni menggunakan tanda dollar ($). Sebuah class tidak harus memiliki property.

Sekian dulu ...