Senin, 23 Mei 2016

Tutorial Yii 2 : Pop Up Form Dengan Modal Bootstrap

Tutorial Yii 2 : Pop Up Form Dengan Modal Bootstrap

Pada tulisan kali ini saya akan memberikan tutorial membuat Pop Up Form Dengan Modal Bootstrap di Yii Framework 2. Untuk membuat Pop Up form dengan Bootstrap kita akan memasang class modal, Helper Url dan Widget Pjax pada view. Untuk memasang class modal, helper url dan widget Pjax silahkan tulis source code berikut di file view anda.


use yii\bootstrap\Modal;
use yii\widget\Pjax;
use yii\helpers\Url;

  1. use yii\bootstrap\Modal; merupakan script untuk memanggil class modal bootstrap
  2. use yii\widget\Pjax; merupakan script untuk memanggil widget Pjax
  3. use yii\helpers\Url; merupakan script untuk memanggil helpers Url

Selanjutnya kita akan membuat link atau button untuk memanggil modal yang berisi form. Berikut contoh source code button untuk memanggil modal.


<?= Html::button('Tambah Siswa', ['value' => Url::to('siswa/create'),'class' => 'btn btn-success','id'=>'modalButton']) ?>

  1. siswa/create merupakan action yang ada pada controller siswa untuk menampilkan view berupa form. Silahkan anda ganti sesuai action pada controller anda. 
  2. saya tulis siswa/create karena saya menggunakan pretyy url. jika anda tidak menggunakan pretty url silahkan ganti menjadi index.php?r=siswa/create.

masih di dalam view, sekarang kita tambahkan source code untuk modal . Berikut source code untuk modalnya.


    <?php
        Modal::begin([
        'header' => '<h4>Siswa</h4>',
        'id' => 'modal',
        'size' => 'modal-lg',
        ]); 

        echo "<div id='modalContent'><div>";
        Modal::end()
    ?>

Untuk bagian view selesai.
Sekarang kita bua action creat untuk menampilkan view berupa form. Berikut source code untuk menampilkan viewnya :

    public function actionCreate()
    {
            return $this->renderajax('create',
            );
        }
    }

return $this->renderajax('create',); akan menampilkan view create.php yang akan ditampilkan didalam modal. 
Sekarang kita load java script untuk fungsi menampilkan modal. Tambahkan source code berikut di assets/AppAssets.php.

    public $js = [
        'main.js',
    ];
Selanjutnya silahkan buat file main.js di folder web yang isinya seperti berikut :


$(function(){
 //ambil form untuk tambah data
 $("#modalButton").click(function(){
     $("#modal").modal('show')
             .find("#modalContent")
             .load($(this).attr('value'));
 });
});

Untuk menampilkan Pop Up Form Modal silahkan klik button yang ada di view. Sekian tutorial Yii 2 2 mengenai Pop Up Form Dengan Modal Bootstrap. Semoga tutorial ini bermanfaat. Untuk kritik dan saran dari anda jangan segan segan untuk berkomentar di kolom komen yang ada dibwah. Salam Coder kak.

Tutorial Backup Dan Restore Database Dengan CodeIgniter 3

Tutorial Backup Dan Restore Database Dengan CodeIgniter 3

Backup Dan Restore Database sangatlah penting . Karena dengan backup dan Restore database kita akan terjaga apabila ada trouble dengan database kita. Kali ini Cuma Coder akan membagikan sedikit tutorial sederhana untuk Backup Dan Restore Dengan CodeIgniter 3 .

1. Backup Database
Untuk tutorial backup database sebenarnya bisa di baca di user guidenya CodeIgniter yang bisa anda coba baca di web resmi CodeIgniter .
Berikut source code untuk backup database yang bisa diterapkan di dalam function yang bisa anda buat :

// Load the DB utility class
$this->load->dbutil();

// Backup database dan dijadikan variable
$backup = $this->dbutil->backup();

// Load file helper dan menulis ke server untuk keperluan restore
$this->load->helper('file');
write_file('/backup/database/mybackup.gz', $backup);

// Load the download helper dan melalukan download ke komputer
$this->load->helper('download');
force_download('mybackup.gz', $backup);
Jika function dengan source code diatas dijalankan akan mendownload database dengan nama mybackup.gz . Silahkan ekstrak dengan file mybackup.gz tersebut untuk melihat hasil backup database nya. Untuk pengaturan tertentu dalam backup database bisa menggunakan source code berikut :
$prefs = array(
        'tables'     => array('table1', 'table2'),
        // Array table yang akan dibackup
        'ignore'     => array(),
        // Daftar table yang tidak akan dibackup
        'format'     => 'txt',
        // gzip, zip, txt format filenya
        'filename'   => 'mybackup.sql',
        // Nama file
        'add_drop'   => TRUE, 
        // Untuk menambahkan drop table di backup
        'add_insert' => TRUE,
        // Untuk menambahkan data insert di file backup
        'newline'    => "\n"
        // Baris baru yang digunakan dalam file backup
);

$this->dbutil->backup($prefs);
Source Code diatas akan menghasilkan file backup database dengan nama mybackup.sql .

2. Restore Database
Untuk restore database nya bisa juga dengan menggunakan function berikut ini : 

function restoredb()
{
  $isi_file = file_get_contents(‘./backup/database/mybackup.sql’);
  $string_query = rtrim( $isi_file, “\n;” );
  $array_query = explode(“;”, $query);
  foreach($array_query as $query)
  {
    $this->db->query($query);
  }
}
Penjelasan function restoredb diatas adalah :

  1. file_get_contents(‘./backup/database/mybackup.sql’), kode ini berarti kita membaca isi dari file mybackup.sql sebagai string.
  2. rtrim( $isi_file, “\n;” ), kode ini berarti kita menghilangkan tanda titik koma diujung string.
  3. explode(“;”, $query), kode ini berarti kita memecah string menjadi array dengan menjadikan tanda titik koma sebagai pemisahnya.
Note : Untuk database yang berukuran besar sebaiknya langsung backup dari Database Server


Demikianlah postingan Tutorial Backup Dan Restore Database Dengan CodeIgniter 3 . Semoga bisa diterapkan . Jika ada pertanyaan atau ktritik dan saran . Silahkan tulis di kolom komentar dibawah .

Aplikasi Penerimaan Siswa Baru Online Dengan Sistem Ranking Otomatis

Aplikasi Penerimaan Siswa Baru Online Dengan Sistem Ranking Otomatia

Aplikasi Penerimaan Siswa Baru Online Dengan Sistem Rangking Otomatis ini merupakan sebuah aplikasi berbasis web yang dibuat dengan framework code igniter. Aplikasi Penerimaan Siswa Baru Online ini memiliki fitur yang sangat menarik . Yaitu fitur Meranking otomatis para pendaftar. Jadi admin pihak sekolah tidak perlu susah susah lagi dalam menentukan siswa yang lulus.

Fitur Aplikasi :
  1. Ranking Otomatis Calon Siswa
  2. Pilihan Program Studi Yang Bisa Diubah
  3. Mata Pelajaran Untuk Input Nilai Bisa Diubah
  4. Setting Web
  5. Tampilan Antar Muka Yang Efisien




Prosedur Pendaftaran
Prosedur Pendaftaran Penerimaan Siswa Baru Online

  1. Isi Biodata
  2. Pilih Program Studi
  3. Input Nilai Siswa
  4. Kirim Verifikasi
  5. Cetak Bukti Pendaftaran Dan Diserahkan Ke Panitia PSB Online Untuk Diverifikasi
  6. Setelah berhasil diverifikasi . Data pendaftar akan otomatis di ranking.
Berikut Tampilan Halaman Pendaftar :
Pendaftaran PSB Online

Input Biodata PSB Online

Input Biodata PSB Online

Input Nilai PSB Online

Kirim Verifikasi PSB Online


Screen Shoot Halaman Admin





Tutorial CodeIgniter 3 : Menghilangkan Index.php Pada URL (Mempercantik URL Pada CodeIgniter 3)

Menghilangkan Index.php Pda URL CodeIgniter

Saat kita mengakses url/project CodeIgniter kita ,pasti kita melihat index.php seperti pada url http://localhost/project/index.php/home/. index.php pada codeigniter dapat kita hilangkan dengan mudah sehingga kita tidak perlu lagi menggunakan index.php pada url project codeigniter kita. Jika index.php di hilangkan maka hasilnya akan seperti url berikut ini http://localhost/project/home/ . Jadi url codeigniter kita terlihat rapi dan cantik.

Jadi untuk menghilangkan index.php pada Codeigniter kita ikuti tutorial dibawah ini :

Menghilangkan index.php
Kita hanya mengedit sedikit file /application/config/condig.php. Buka file tersebut, dan cari index_page seperti dibawah ini :

$config['index_page'] = 'index.php';
Dan edit menjadi seperti dibawah ini, atau lebih tepatnya hapus index.php 

$config['index_page'] = '';

Setelah melakukan langkah diatas. Sekarang kita buat file .htaccess pada direktori root project CodeIgniter kita. Untuk isi file .htaccess nya seperti dibawah ini. 

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]

Untuk mencoba hasil dari menghilangkan index.php pada codeigniter silahkan akses url pada project codeigniter tanpa index.php . Biasanya kita mengakses dengan url http://localhost/project/index.php/home/ maka silahkan akses dengan url http://localhost/project/home/ . Jika hasil yang ditampilkan dari kedua url tersebut sama maka anda berhasil Mempercantik URL dengan menghilangkan index.php pada CodeIgniter. 

Tutorial CodeIgniter 3 : Upload Gambar (Image), Rename dan Resize dengan MySQLi + Bootstrap Full Source Code


Upload Gambar (Image), Rename dan Resize dengan MySQLi + Bootstrap Full Source Code

Halo ! Cuma Coder kali ini akan membagikan tutorial mengenai Upload Gambar (Image) pada framework CodeIgniter 3. Tutorial ini selain membahas tentang Upload Gambar kita akan sekaligus membahas mengenai fungsi rename (mengubah nama file gambar) dan resize (merubah ukuran gambar ) setelah kira melakukan upload. 
Di dalam framework CodeIgniter sendiri juga sudah disediakan library upload dan image_lib (library untuk manipulasi gambar) . Pastikan kedua library tersebut sudah ada pada folder library CodeIgniter 3. Biasanya sih sudah ada kalau kita mendownload CodeIgniter dari web resminya.
Oke langsung saja kira masuk ke Tutorial CodeIgniter 3 :  Upload Image, Rename dan Resize.

1 . Setting Dan Database

  1. Karena kita menggunakan Bootstrap silahkan Download Bootstrap dan letakan di folder assets
  2. Setting default controller menjadi upload di config/routes.php
  3. Karena kita menggunakan library upload dan library image_lib serta penyimpanan data kedatabase. maka kita load libray tersebut secara otomatis di config/autoload.php
  4. Sebaiknya kita menghilangkan index.php pada url untuk mepercantik url. Silahkan Baca Tutorial CodeIgniter 3 : Menghilangkan Index.php Pada URL (Mempercantik URL Pada CodeIgniter 3)
Dalam tutorial kali ini kita menggunakan database driver MySQLi jadi kita set dulu database driver nya di file database.php yang berada pafa folder /application/config/ . Untuk pengaturannya bisa di sesuaikan.  

$db['default'] = array(
 'dsn' => '',
 'hostname' => 'localhost',
 'username' => 'root',
 'password' => '',
 'database' => 'img_db',
 'dbdriver' => 'mysqli',
 'dbprefix' => '',
 'pconnect' => FALSE,
 'db_debug' => (ENVIRONMENT !== 'production'),
 'cache_on' => FALSE,
 'cachedir' => '',
 'char_set' => 'utf8',
 'dbcollat' => 'utf8_general_ci',
 'swap_pre' => '',
 'encrypt' => FALSE,
 'compress' => FALSE,
 'stricton' => FALSE,
 'failover' => array(),
 'save_queries' => TRUE
);
Selanjutnya kita buat database dan tabelnya . Untuk tabelnya bisa dengan menjalankan script dibawah ini di comand console.

CREATE TABLE `upload_img` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `namafile` varchar(35) DEFAULT NULL,
  `type` varchar(10) DEFAULT NULL,
  `keterangan` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
2. Controller 
Untuk controllernya kita menggunakan satu controller yang memiliki beberapa fungsi antara lain :
  1. Function Index (Fungsi untuk menampilkan halaman home yang berisi file yang telah di upload)
  2. Function Add ( Fungsi untuk menampilkan form upload gambar)
  3. Function Insert ( Fungsi untuk upload gambar , rename , dan resize. Serta menyimpan ke database )

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Upload extends CI_Controller {

  var $limit=10;
  var $offset=10;

    public function __construct() {
        parent::__construct();
        $this->load->model('model_upldgbr'); //load model model_upldgbr yang berada di folder model
        $this->load->helper(array('url')); //load helper url 
    }

    public function index($page=NULL,$offset='',$key=NULL)
    {        
        $data['query'] = $this->model_upldgbr->get_allimage(); //query dari model
        
        $this->load->view('home',$data); //tampilan awal ketika controller upload di akses
    }

    public function add() {
        //view yang tampil jika fungsi add diakses pada url
        $this->load->view('fupload');
       
    }
    public function insert(){
        $this->load->library('upload');
        $nmfile = "file_".time(); //nama file + fungsi time
        $config['upload_path'] = './assets/uploads/'; //Folder untuk menyimpan hasil upload
        $config['allowed_types'] = 'gif|jpg|png|jpeg|bmp'; //type yang dapat diakses bisa anda sesuaikan
        $config['max_size'] = '3072'; //maksimum besar file 3M
        $config['max_width']  = '5000'; //lebar maksimum 5000 px
        $config['max_height']  = '5000'; //tinggi maksimu 5000 px
        $config['file_name'] = $nmfile; //nama yang terupload nantinya

        $this->upload->initialize($config);
        
        if($_FILES['filefoto']['name'])
        {
            if ($this->upload->do_upload('filefoto'))
            {
                $gbr = $this->upload->data();
                $data = array(
                  'namafile' =>$gbr['file_name'],
                  'type' =>$gbr['file_type'],
                  'keterangan' =>$this->input->post('textket')
                  
                );

                $this->model_upldgbr->get_insert($data); //akses model untuk menyimpan ke database
                //dibawah ini merupakan code untuk resize
                $config2['image_library'] = 'gd2'; 
                $config2['source_image'] = $this->upload->upload_path.$this->upload->file_name;
                $config2['new_image'] = './assets/hasil_resize/'; // folder tempat menyimpan hasil resize
                $config2['maintain_ratio'] = TRUE;
                $config2['width'] = 100; //lebar setelah resize menjadi 100 px
                $config2['height'] = 100; //lebar setelah resize menjadi 100 px
                $this->load->library('image_lib',$config2); 

                //pesan yang muncul jika resize error dimasukkan pada session flashdata
                if ( !$this->image_lib->resize()){
                $this->session->set_flashdata('errors', $this->image_lib->display_errors('', ''));   
              }
                //pesan yang muncul jika berhasil diupload pada session flashdata
                $this->session->set_flashdata("pesan", "<div class=\"col-md-12\"><div class=\"alert alert-success\" id=\"alert\">Upload gambar berhasil !!</div></div>");
                redirect('upload'); //jika berhasil maka akan ditampilkan view upload
            }else{
                //pesan yang muncul jika terdapat error dimasukkan pada session flashdata
                $this->session->set_flashdata("pesan", "<div class=\"col-md-12\"><div class=\"alert alert-danger\" id=\"alert\">Gagal upload gambar !!</div></div>");
                redirect('upload/add'); //jika gagal maka akan ditampilkan form upload
            }
        }
    }
}
3. Views 
Dalam tutorial ini kita akan membuat 2 view . View yang pertama yang berfungsi untuk menampilkan daftar gambar yang telah di upload. View pertama kita beri nama home.php . File home,php ini akan menampilkan berupa gambar yang ada di folder /assets/hasil_resize yaitu gambar yang hasil upload yang telah di resize sebagai thumbnailnya. Untuk tampilan dan source code home.php bisa anda tiru source code dibawah ini.
<head>
    <title>Upload Gambar (Image), Rename dan Resize</title> <!-- variabel diambil dari controller -->
    
    <link href="<?=base_url()?>assets/css/bootstrap.min.css" rel="stylesheet"> <!-- Bootstrap core CSS -->
    <link href="<?=base_url()?>assets/css/style.css" rel="stylesheet"> <!-- Custom styles for this template -->
<style>

    body{
        margin:20px 10%;
    }
</style>
</head>

<div class="container">
      <!-- Main component for a primary marketing message or call to action -->
<div class="panel panel-default">
  <div class="panel-heading"><b> Daftar File IMage</b></div>
  <div class="panel-body">
    
    <?=$this->session->flashdata('pesan')?>
    <p>
        <a href="<?=base_url()?>upload/add" class="btn btn-success">Tambah</a>
    </p>
  <table class="table table-bordered table-striped">
    <tr>
      <th>Nama File</th>
      <th>Tipe File</th>
      <th>Gambar File</th>
      <th>Keterangan</th>
    </tr>
  <? foreach ($query as $row)
{
  ?>
    <tr>
      <td><?=$row->namafile;?></td>
      <td><?=$row->type;?></td>
      <td><img  src="<?=base_url()?>assets/hasil_resize/<?=$row->namafile;?>"></td>
      <td><?=$row->keterangan;?></td>
    </tr>
<?php } ?>
  </table>

</div>
</div>
</div>
Tampilan view home dengan source code seperti diatas akan menampilakan seperti gambar dibawah ini.


Selanjutnya view kedua merupakan tampilan untuk form upload yang berfungsi sebagai input gambar yang akan di upload. View kedua ini kita beri nama fupload.php. Untuk source code nya seperti dibawah ini. 

<head>
    <title>Upload Gambar (Image), Rename dan Resize</title>
    
    <link href="<?=base_url()?>assets/css/bootstrap.min.css" rel="stylesheet"> <!-- Bootstrap core CSS -->
    <link href="<?=base_url()?>assets/css/style.css" rel="stylesheet"> <!-- Custom styles for this template -->
<style>

    body{
        margin:20px 10%;
    }
</style>
</head>

<div class="container">
      <!-- Main component for a primary marketing message or call to action -->
<div class="panel panel-default">
  <div class="panel-heading"><b>Form Upload Image</b></div>
  <div class="panel-body">
  <?=$this->session->flashdata('pesan')?>
     <form action="<?=base_url()?>upload/insert" method="post" enctype="multipart/form-data">
       <table class="table table-striped">

         <tr>
          <td style="width:15%;">File Foto</td>
          <td>
            <div class="col-sm-6">
                <input type="file" name="filefoto" class="form-control">
            </div>
            </td>
         </tr>
                    <tr>
          <td style="width:15%;">Keterangan Foto</td>
          <td>
            <div class="col-sm-10">
                <textarea name="textket" class="form-control"></textarea>
            </div>
            </td>
         </tr>
         <tr>
          <td colspan="2">
            <input type="submit" class="btn btn-success" value="Simpan">
            <button type="reset" class="btn btn-default">Batal</button>
          </td>
         </tr>
       </table>
     </form>
        </div>
    </div>    <!-- /panel -->

    </div> <!-- /container -->
4. Modal 
Untuk menghubungkan kedatabase tentunya kita menggunakan modal. untuk modalnya kita beri nama model_upldgbr.php . Dalam modal ini terdapat 2 query , antara lain :

  1. function get_allimage ( fungsi untuk menampilkan semua data dari tabel)
  2. function get_insert ( fungsi untuk menyimpan data gambar ke database pada saat proses upload)
Source code model_upldgbr.php seperti dibawah ini :

<?php
class model_upldgbr extends CI_Model {

    var $tabel = 'upload_img';

    function __construct() {
        parent::__construct();
    }
    
    //fungsi untuk menampilkan semua data dari tabel database
 function get_allimage() {
        $this->db->from($this->tabel);
  $query = $this->db->get();
        return $query->result();
 }

    //fungsi insert ke database
    function get_insert($data){
       $this->db->insert($this->tabel, $data);
       return TRUE;
    }

}

?>
Untuk contoh source code yang sudah jadi silahkan anda download source code dan database dibawah ini. Semoga tutorial ini bisa bermanfaat. Untuk pertanyaan, kritik dan saran. silahkan dituangkan di form komentar di akhir portingan ini Download Source Code
Download Database