My Notes Code https://www.mynotescode.com The Notes of Programmer Mon, 17 Sep 2018 04:49:01 +0000 en-US hourly 1 https://wordpress.org/?v=4.7.11 https://www.mynotescode.com/wp-content/uploads/2016/10/cropped-My-Notes-Code-Logo-32x32.png My Notes Code https://www.mynotescode.com 32 32 Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL https://www.mynotescode.com/multiple-delete-codeigniter-mysql/ https://www.mynotescode.com/multiple-delete-codeigniter-mysql/#respond Fri, 14 Sep 2018 09:11:39 +0000 https://www.mynotescode.com/?p=2125 Apa sebenarnya keuntungan dari fitur “Multiple Delete”? keuntungan dengan menyediakan fitur ini yakni agar memudahkan user yang menggunakan aplikasi kita untuk menghapus lebih dari 1 data dalam sekali aksi artinya fitur ini akan sangat berguna ketika user akan menghapus banyak data. Akan cukup merepotkan juga ketika dalam aplikasi hanya disediakan fitur hapus per 1 data, sementara...

The post Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL appeared first on My Notes Code.

]]>
Apa sebenarnya keuntungan dari fitur “Multiple Delete”? keuntungan dengan menyediakan fitur ini yakni agar memudahkan user yang menggunakan aplikasi kita untuk menghapus lebih dari 1 data dalam sekali aksi artinya fitur ini akan sangat berguna ketika user akan menghapus banyak data. Akan cukup merepotkan juga ketika dalam aplikasi hanya disediakan fitur hapus per 1 data, sementara user diharuskan menghapus banyak data. Sebelumnya saya sudah share tutorial multiple delete dengan php dan mysql, sekarang kita akan coba buat dengan menggunakan Framework Codeigniter 3.

DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :

  1. Buat sebuah folder baru dengan nama multiple_delete, lalu simpan pada folder xampp/htdocs/.
  2. Download Framework Codeigniter, klik link berikut : download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  3. Download plugin JQuery, klik link berikut : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  4. Ekstrak dan Copy codeigniter_v3.7z yang telah di download tadi ke folder xampp/htdocs/multiple_delete/.
  5. Buat sebuah folder dengan nama assets, lalu simpan pada folder xampp/htdocs/multiple_delete/.
  6. Copy and paste file jquery.min.js yang telah di download tadi ke dalam folder xampp/htdocs/multiple_delete/assets/.

STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama siswa. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

    CREATE TABLE IF NOT EXISTS `siswa` (
      `nis` varchar(11) NOT NULL,
      `nama` varchar(50) NOT NULL,
      `jenis_kelamin` varchar(10) NOT NULL,
      `telp` varchar(15) NOT NULL,
      `alamat` text NOT NULL,
      PRIMARY KEY (`nis`)
    )

STEP 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, pertama kita harus melakukan konfigurasi terlebih dahulu pada framework codeigniternya.

  1. Buka folder xampp/htdocs/multiple_delete/application/config/
  2. Buka file config.php
    Cari kode berikut $config['base_url'] = '';Ubah kode tersebut jadi seperti ini :

    $config['base_url'] = 'http://localhost/multiple_delete/';

    Kode diatas digunakan untuk menset baseurlnya.
    Lalu simpan file tersebut.

  3. Buka file autoload.php
    Cari kode berikut ini :

    $autoload['libraries'] = array();
    $autoload['helper'] = array();

    Ubah jadi seperti ini :

    $autoload['libraries'] = array('database');
    $autoload['helper'] = array('url');

    Kode diatas digunakan untuk memuat (menload) class database dan url.
    Lalu simpan file tersebut.

  4. Buka file routes.php
    Cari kode berikut ini :

    $route['default_controller'] = 'welcome';

    Ubah jadi seperti ini :

    $route['default_controller'] = 'siswa';

    Kode diatas digunakan untuk menset controller mana yang akan diload pertama kali. Secara default, Codeigniter telah menset default controller yaitu welcome. Disini kita set default controller menjadi siswa.
    Lalu simpan file tersebut.

  5. Buka file database.php
    Cari kode berikut ini :

    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',

    Ubah jadi seperti ini :

    'hostname' => 'localhost', // Nama host
    'username' => 'root', // Username
    'password' => '', // Jika menggunakan password isi, jika tidak kosongkan saja
    'database' => 'mynotescode', // Nama databasenya

    Kode diatas digunakan untuk koneksi ke database.
    Lalu simpan file tersebut.


STEP 4 – BUAT MODEL
Langkah selanjutnya adalah membuat modelnya. Buat sebuah file dengan nama SiswaModel.php, Lalu simpan pada folder xampp/htdocs/multiple_delete/application/models/. Berikut kodenya :

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

class SiswaModel extends CI_Model {
  public function view(){
    return $this->db->get('siswa')->result();
  }
    
  public function delete($nis){
        $this->db->where_in('nis', $nis);
    $this->db->delete('siswa');
  }
}

Pada kode diatas, kita membuat sebuah fungsi view(). dimana didalamnya terdapat kode return $this->db->get(‘siswa’)->result(). Kode tersebut berfungsi untuk menampilkan semua data pada tabel siswa. Struktur dasar penulisannya seperti ini : return $this->db->get(‘nama_tabel‘)->result(). Lalu pada kode diatas juga ada kode return, kode tersebut digunakan untuk mengeluarkan hasil dari sebuah fungsi. Pada kasus diatas, hasil yang dikeluarkan oleh return yaitu data-data siswa.

Fungsi delete() berguna untuk menghapus data siswa sesuai nis yang di set. $nis disini adalah daftar nis dalam bentuk array yang di ceklis pada form delete. Gambar berikut ini adalah isi dari $nis yang dikirim dari form delete (yang di ceklis di form delete) :
Array - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

Nah daftar nis tadi nanti akan kita tambahkan ke fungsi $this->db->where_in() pada parameter 2 lalu panggil fungsi $this->db->delete(). Fungsi delete() itu akan mengeksekusi query sql : “DELETE FROM siswa WHERE nis IN (10110470116,10110470118,10110470119,10110470121,10110470122)“.


STEP 5 – BUAT CONTROLLER
Pada tahap ini, kita akan membuat controllernya. Buat sebuah file dengan nama Siswa.php, lalu simpan pada folder xampp/htdocs/multiple_delete/application/controllers/. Berikut ini kodenya :

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

class Siswa extends CI_Controller {
  
  public function __construct(){
    parent::__construct();
    
    $this->load->model('SiswaModel');
  }
  
  public function index(){
    $data['siswa'] = $this->SiswaModel->view();
    
    $this->load->view('view', $data); // Load view view.php
  }
    
    public function delete(){
        $nis = $_POST['nis']; // Ambil data NIS yang dikirim oleh view.php melalui form submit
        $this->SiswaModel->delete($nis); // Panggil fungsi delete dari model
        
        redirect('siswa');
    }
}

public function __construct(){
fungsi ini berfungsi untuk menjalankan suatu aksi ketika controller main diload. Didalam fungsi ini, terdapat kode $this->load->model(‘SiswaModel’);, kode tersebut berfungsi untuk memuat (meload) model siswa (yang pada step sebelumnya kita buat) agar kita bisa mengakses fungsi-fungsi yang ada didalam model tersebut.

public function index()
Dalam fungsi ini ada kode $data[‘siswa’] = $this->SiswaModel->view();, kode tersebut digunakan untuk mengambil hasil query sql dari fungsi view() yang ada pada model siswa (SiswaModel.php) lalu memasukannya ke dalam array data dengan index siswa ($data[‘siswa’]). Pada fungsi index() ini juga, terdapat kode $this->load->view(‘view’, $data);. Kode tersebut berfungsi untuk memuat (meload) file view.php (file ini akan kita buat pada step selanjutnya) dan mengirimkan array data ($data) tadi ke file tersebut.

public function delete()
Fungsi ini berguna untuk melakukan proses delete. Dimana didalam fungsi ini kita akan mengambil data nis yang dikirim dari form pada file view.php dan memanggil fungsi delete() yang ada di SiswaModel.php.


STEP 6 – BUAT VIEW
Selanjutnya kita akan buat sebuah file untuk menampilkan data siswa dan tombol tambah data. Buat file baru dengan nama view.php, lalu simpan pada folder xampp/htdocs/multiple_delete/application/views/. Berikut ini kode dan tampilannya :

View - Struktur Tabel - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

<html>
<head>
  <title>Multiple Delete</title>

  <style>
  table {
    border-collapse: collapse;
  }

  table, td, th {
    border: 1px solid black;
  }
  </style>
    
    <!-- Load librari/plugin jquery nya -->
  <script src="<?php echo base_url('assets/jquery.min.js'); ?>"></script> 
</head>
<body>
  <h1>Data Siswa</h1>
    
    <form method="post" action="<?php echo base_url('index.php/siswa/delete') ?>" id="form-delete">
    	<table border="1" cellpadding="5">
    	<tr>
    		<th><input type="checkbox" id="check-all"></th>
    		<th>NIS</th>
    		<th>Nama</th>
    		<th>Telepon</th>
    		<th>Alamat</th>
    	</tr>
    	<?php
    	if( ! empty($siswa)){
    		$no = 1;
    		foreach($siswa as $data){
    			echo "<tr>";
    			echo "<td><input type='checkbox' class='check-item' name='nis[]' value='".$data->nis."'></td>";
    			echo "<td>".$data->nis."</td>";
    			echo "<td>".$data->nama."</td>";
    			echo "<td>".$data->telp."</td>";
    			echo "<td>".$data->alamat."</td>";
    			echo "</tr>";
    			$no++;
    		}
    	}
    	?>
    	</table>
        <hr>
        <button type="button" id="btn-delete">DELETE</button>
    </form>
    
    <script>
  $(document).ready(function(){ // Ketika halaman sudah siap (sudah selesai di load)
    $("#check-all").click(function(){ // Ketika user men-cek checkbox all
      if($(this).is(":checked")) // Jika checkbox all diceklis
        $(".check-item").prop("checked", true); // ceklis semua checkbox siswa dengan class "check-item"
      else // Jika checkbox all tidak diceklis
        $(".check-item").prop("checked", false); // un-ceklis semua checkbox siswa dengan class "check-item"
    });
    
    $("#btn-delete").click(function(){ // Ketika user mengklik tombol delete
      var confirm = window.confirm("Apakah Anda yakin ingin menghapus data-data ini?"); // Buat sebuah alert konfirmasi
      
      if(confirm) // Jika user mengklik tombol "Ok"
        $("#form-delete").submit(); // Submit form
    });
  });
  </script>
</body>
</html>

Untuk fitur multiple delete yang akan kita buat ini, konsepnya adalah dengan memanfaatkan checkbox. Checkbox ini berguna untuk agar user bisa memilih data mana saja yang akan dia hapus. Jadi kita akan melakukan hapus data terhadap data siswa yang user ceklis saja.

echo “<td><input type=’checkbox’ class=’check-item’ name=’nis[]‘ value='”.$data->nis.”‘></td>”;
Kunci utama dari multiple delete ini adalah atribut name pada checkbox siswa nya. Pada kode diatas, terlihat saya memberi atribut checkbox nya dengan “nis[]” dan diisi dengan value dari nis siswa tersebut. Arti dari kurung siku disitu adalah agar ketika kita kirim data nis tadi ke file proses hapus melalui form submit, data nis tersebut menjadi sebuah array yang berisi nis siswa yang telah di pilih oleh user. Kalau kita coba lihat isi dari data nis tersebut, hasilnya akan seperti gambar dibawah ini :

Array - Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL

Gambar diatas merupakan hasil dari kode print_r($_POST); pada fungsi delete() di controller siswa (yang kita buat pada step sebelumnya). Untuk melihat data apa saja yang dikirim dari form. Terlihat bahwa terdapat data nis yang berisi nis-nis yang berjumlah 5 nis (karena di form saya ceklis 5 siswa).


Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.
Bingung cara downloadnya? klik disini untuk melihat caranya.


SUMBER & REFERENSI
Dokumentasi Codeigniter : https://www.codeigniter.com/user_guide
Membuat multiple delete dengan codeigniter, Membuat multiple delete dengan codeigniter 3, tutorial membuat multiple delete dengan codeigniter dan mysql, cara mudah membua tmultiple delete dengan framework codeigniter 3 dan database mysql

Multiple Delete

The post Cara Mudah Membuat Multiple Delete dengan Codeigniter dan MySQL appeared first on My Notes Code.

]]>
https://www.mynotescode.com/multiple-delete-codeigniter-mysql/feed/ 0
Cara Membuat Laporan PDF Plus Filter Tanggal dengan Codeigniter https://www.mynotescode.com/laporan-pdf-plus-filter-tanggal-codeigniter/ https://www.mynotescode.com/laporan-pdf-plus-filter-tanggal-codeigniter/#respond Thu, 13 Sep 2018 14:26:38 +0000 https://www.mynotescode.com/?p=2109 Pada saat membuat sebuah laporan, sering kali kita diharuskan untuk memfilter data yang akan di tampilkan pada laporan tersebut. Sebagai contoh pada data transaksi penjualanan, biasanya kita akan diminta untuk membuat laporan per hari, per bulan dan per tahun. Itulah kenapa kita memerlukan fitur untuk memfilter data-data transaksi tadi agar bisa di tampilkan per hari...

The post Cara Membuat Laporan PDF Plus Filter Tanggal dengan Codeigniter appeared first on My Notes Code.

]]>
Pada saat membuat sebuah laporan, sering kali kita diharuskan untuk memfilter data yang akan di tampilkan pada laporan tersebut. Sebagai contoh pada data transaksi penjualanan, biasanya kita akan diminta untuk membuat laporan per hari, per bulan dan per tahun. Itulah kenapa kita memerlukan fitur untuk memfilter data-data transaksi tadi agar bisa di tampilkan per hari / per bulan / per tahun sesuai dengan kebutuhan si pengguna. Sebelumnya saya telah membuat tutorial membuat laporan PDF plus filter tanggal dengan menggunakan PHP dan MySQL. Sekarang kita akan coba implementasikan alur pada tutorial tersebut pada framework codeigniter.

 


DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :

  1. Buat sebuah folder baru dengan nama pdf_date_ci, lalu simpan pada folder xampp/htdocs/.
  2. Download Framework Codeigniter, klik link berikut : download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  3. Download plugin JQuery, klik link berikut : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  4. Download Plugin HTML2PDF nya, klik link berikut ini : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  5. Ekstrak dan Copy codeigniter_v3.7z yang telah di download tadi ke folder xampp/htdocs/pdf_date_ci/.
  6. Buat sebuah folder dengan nama assets, lalu simpan pada folder xampp/htdocs/pdf_date_ci/.
  7. Copy and paste file jquery.min.js yang telah di download tadi ke dalam folder xampp/htdocs/pdf_date_ci/assets/.
  8. Ekstrak dan Copy plugin HTML2PDF yang sudah didownload ke dalam folder xampp/htdocs/pdf_date_ci/assets/.
  9. Ekstrak dan Copy plugin jQuery-ui yang sudah didownload ke dalam folder xampp/htdocs/pdf_date_ci/assets/.

STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama transaksi. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Membuat Laporan PDF Plus Filter Tanggal dengan Codeigniter

    CREATE TABLE `transaksi` (
     `id` int(11) NOT NULL,
     `kode` varchar(10) NOT NULL,
     `barang` varchar(100) NOT NULL,
     `jumlah` int(11) NOT NULL,
     `total_harga` double NOT NULL,
     `tgl` datetime NOT NULL,
     PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

STEP 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, pertama kita harus melakukan konfigurasi terlebih dahulu pada framework codeigniternya.

  1. Buka folder xampp/htdocs/pdf_date_ci/application/config/
  2. Buka file config.php
    Cari kode berikut $config['base_url'] = '';Ubah kode tersebut jadi seperti ini :

    $config['base_url'] = 'http://localhost/pdf_date_ci/';

    Kode diatas digunakan untuk menset baseurlnya.
    Lalu simpan file tersebut.

  3. Buka file autoload.php
    Cari kode berikut ini :

    $autoload['libraries'] = array();
    $autoload['helper'] = array();

    Ubah jadi seperti ini :

    $autoload['libraries'] = array('database');
    $autoload['helper'] = array('url');

    Kode diatas digunakan untuk memuat (menload) class database dan url.
    Lalu simpan file tersebut.

  4. Buka file routes.php
    Cari kode berikut ini :

    $route['default_controller'] = 'welcome';

    Ubah jadi seperti ini :

    $route['default_controller'] = 'transaksi';

    Kode diatas digunakan untuk menset controller mana yang akan diload pertama kali. Secara default, Codeigniter telah menset default controller yaitu welcome. Disini kita set default controller menjadi transaksi.
    Lalu simpan file tersebut.

  5. Buka file database.php
    Cari kode berikut ini :

    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',

    Ubah jadi seperti ini :

    'hostname' => 'localhost', // Nama host
    'username' => 'root', // Username
    'password' => '', // Jika menggunakan password isi, jika tidak kosongkan saja
    'database' => 'mynotescode', // Nama databasenya

    Kode diatas digunakan untuk koneksi ke database.
    Lalu simpan file tersebut.


STEP 4 – BUAT MODEL
Langkah selanjutnya adalah membuat modelnya. Buat sebuah file dengan nama TransaksiModel.php, Lalu simpan pada folder xampp/htdocs/pdf_date_ci/application/models/. Berikut kodenya :

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

class TransaksiModel extends CI_Model {
  public function view_by_date($date){
        $this->db->where('DATE(tgl)', $date); // Tambahkan where tanggal nya
        
    return $this->db->get('transaksi')->result();// Tampilkan data transaksi sesuai tanggal yang diinput oleh user pada filter
  }
    
  public function view_by_month($month, $year){
        $this->db->where('MONTH(tgl)', $month); // Tambahkan where bulan
        $this->db->where('YEAR(tgl)', $year); // Tambahkan where tahun
        
    return $this->db->get('transaksi')->result(); // Tampilkan data transaksi sesuai bulan dan tahun yang diinput oleh user pada filter
  }
    
  public function view_by_year($year){
        $this->db->where('YEAR(tgl)', $year); // Tambahkan where tahun
        
    return $this->db->get('transaksi')->result(); // Tampilkan data transaksi sesuai tahun yang diinput oleh user pada filter
  }
    
  public function view_all(){
    return $this->db->get('transaksi')->result(); // Tampilkan semua data transaksi
  }
    
    public function option_tahun(){
        $this->db->select('YEAR(tgl) AS tahun'); // Ambil Tahun dari field tgl
        $this->db->from('transaksi'); // select ke tabel transaksi
        $this->db->order_by('YEAR(tgl)'); // Urutkan berdasarkan tahun secara Ascending (ASC)
        $this->db->group_by('YEAR(tgl)'); // Group berdasarkan tahun pada field tgl
        
        return $this->db->get()->result(); // Ambil data pada tabel transaksi sesuai kondisi diatas
    }
}

Fungsi view_by_date() berguna untuk menampilkan data transaksi berdasarkan tanggal yang di input user pada form filter. Fungsi ini akan menghasilkan query sql : “SELECT * FROM transaksi WHERE DATE(tgl)=’$date’“. Dimana $date adalah tanggal yang di input user pada form filter.

Fungsi view_by_month() berguna untuk menampilkan data transaksi berdasarkan bulan dan tahun yang di input user pada form filter. Fungsi ini akan menghasilkan query sql : “SELECT * FROM transaksi WHERE MONTH(tgl)=’$month’ AND YEAR(tgl)=’$year’“. Dimana $month dan $year adalah bulan dan tahun yang di input user pada form filter.

Fungsi view_by_year() berguna untuk menampilkan data transaksi berdasarkan tahun yang di input user pada form filter. Fungsi ini akan menghasilkan query sql : “SELECT * FROM transaksi WHERE YEAR(tgl)=’$year’“. Dimana $year adalah tahun yang di input user pada form filter.

Fungsi view_all() berguna untuk menampilkan semua data transaksi.

Fungsi option_tahun() berguna untuk menampilkan tahun sesuai dengan data transaksi yang telah tersimpan di database. Jadi hanya tahun yang sudah ada di database saja yang akan di tampilkan untuk combo box filter tahun. Fungsi ini akan menghasilkan query sql : “SELECT YEAR(tgl) AS tahun FROM transaksi GROUP BY YEAR(tgl)“.


 STEP 5 – BUAT CONTROLLER
Pada tahap ini, kita akan membuat controllernya. Buat sebuah file dengan nama Transaksi.php, lalu simpan pada folder xampp/htdocs/pdf_date_ci/application/controllers/. Berikut ini kodenya :

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

class Transaksi extends CI_Controller {
  
  public function __construct(){
    parent::__construct();
    
    $this->load->model('TransaksiModel');
  }
  
  public function index(){
        if(isset($_GET['filter']) && ! empty($_GET['filter'])){ // Cek apakah user telah memilih filter dan klik tombol tampilkan
            $filter = $_GET['filter']; // Ambil data filder yang dipilih user

            if($filter == '1'){ // Jika filter nya 1 (per tanggal)
                $tgl = $_GET['tanggal'];
                
                $ket = 'Data Transaksi Tanggal '.date('d-m-y', strtotime($tgl));
                $url_cetak = 'transaksi/cetak?filter=1&tahun='.$tgl;
                $transaksi = $this->TransaksiModel->view_by_date($tgl); // Panggil fungsi view_by_date yang ada di TransaksiModel
            }else if($filter == '2'){ // Jika filter nya 2 (per bulan)
                $bulan = $_GET['bulan'];
                $tahun = $_GET['tahun'];
                $nama_bulan = array('', 'Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember');
                
                $ket = 'Data Transaksi Bulan '.$nama_bulan[$bulan].' '.$tahun;
                $url_cetak = 'transaksi/cetak?filter=2&bulan='.$bulan.'&tahun='.$tahun;
                $transaksi = $this->TransaksiModel->view_by_month($bulan, $tahun); // Panggil fungsi view_by_month yang ada di TransaksiModel
            }else{ // Jika filter nya 3 (per tahun)
                $tahun = $_GET['tahun'];
                
                $ket = 'Data Transaksi Tahun '.$tahun;
                $url_cetak = 'transaksi/cetak?filter=3&tahun='.$tahun;
                $transaksi = $this->TransaksiModel->view_by_year($tahun); // Panggil fungsi view_by_year yang ada di TransaksiModel
            }
        }else{ // Jika user tidak mengklik tombol tampilkan
            $ket = 'Semua Data Transaksi';
            $url_cetak = 'transaksi/cetak';
            $transaksi = $this->TransaksiModel->view_all(); // Panggil fungsi view_all yang ada di TransaksiModel
        }
        
    $data['ket'] = $ket;
    $data['url_cetak'] = base_url('index.php/'.$url_cetak);
    $data['transaksi'] = $transaksi;
        $data['option_tahun'] = $this->TransaksiModel->option_tahun();
    $this->load->view('view', $data);
  }
  
  public function cetak(){
        if(isset($_GET['filter']) && ! empty($_GET['filter'])){ // Cek apakah user telah memilih filter dan klik tombol tampilkan
            $filter = $_GET['filter']; // Ambil data filder yang dipilih user

            if($filter == '1'){ // Jika filter nya 1 (per tanggal)
                $tgl = $_GET['tanggal'];
                
                $ket = 'Data Transaksi Tanggal '.date('d-m-y', strtotime($tgl));
                $transaksi = $this->TransaksiModel->view_by_date($tgl); // Panggil fungsi view_by_date yang ada di TransaksiModel
            }else if($filter == '2'){ // Jika filter nya 2 (per bulan)
                $bulan = $_GET['bulan'];
                $tahun = $_GET['tahun'];
                $nama_bulan = array('', 'Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember');
                
                $ket = 'Data Transaksi Bulan '.$nama_bulan[$bulan].' '.$tahun;
                $transaksi = $this->TransaksiModel->view_by_month($bulan, $tahun); // Panggil fungsi view_by_month yang ada di TransaksiModel
            }else{ // Jika filter nya 3 (per tahun)
                $tahun = $_GET['tahun'];
                
                $ket = 'Data Transaksi Tahun '.$tahun;
                $transaksi = $this->TransaksiModel->view_by_year($tahun); // Panggil fungsi view_by_year yang ada di TransaksiModel
            }
        }else{ // Jika user tidak mengklik tombol tampilkan
            $ket = 'Semua Data Transaksi';
            $transaksi = $this->TransaksiModel->view_all(); // Panggil fungsi view_all yang ada di TransaksiModel
        }
        
        $data['ket'] = $ket;
        $data['transaksi'] = $transaksi;
        
    ob_start();
    $this->load->view('print', $data);
    $html = ob_get_contents();
        ob_end_clean();
        
        require_once('./assets/html2pdf/html2pdf.class.php');
    $pdf = new HTML2PDF('P','A4','en');
    $pdf->WriteHTML($html);
    $pdf->Output('Data Transaksi.pdf', 'D');
  }
}

Pada controller ini, kita membuat 3 fungsi. fungsi pertama yaitu public function __construct(), fungsi ini berfungsi untuk menjalankan suatu aksi ketika controller main diload. Didalam fungsi ini, terdapat kode $this->load->model(‘TransaksiModel’);, kode tersebut berfungsi untuk memuat (meload) model transaksi (yang pada step sebelumnya kita buat) agar kita bisa mengakses fungsi-fungsi yang ada didalam model tersebut.

$nama_bulan = array(”, ‘Januari’,’Februari’,…..
Kode ini akan kita gunakan untuk mengubah data bulan dari form filter manjadi nama bulan itu sendiri dalam bahasa indonesia. Bisa di lihat pada form filter untuk combo box bulan, disitu ada tag option dimana isinya adalah angka dimulai dari 1 untuk januari, 2 untuk februari, dan seterusnya. Nah angka dari value tadi akan kita ubah menjadi nama bulan sesuai dengan value nya dan kita panggil pada variabel $nama_bulan[value_bulannya]. Untuk informasi, index array dimulai dari 0, sehingga bisa kita lihat pada variabel $nama_bulan isi array pertama sengaja saya kosongkan karna index 0 tidak kita pakai soalnya bulan januari dimulai dari 1.

$this->load->view(‘view’, $data);
Kode ini berfungsi untuk memuat (meload) file view.php (file ini akan kita buat pada step selanjutnya) dan mengirimkan data dalam bentuk array data ($data) ke file tersebut.

ob_start();
$this->load->view(‘print’, $data);
$html = ob_get_contents();
ob_end_clean();
Kode diatas berfungsi untuk memuat file print.php (file ini akan kita buat pada step terakhir) dan mengirim sebuah data dalam bentuk array ($data) ke file tersebut. Lalu file print.php tadi dimuat (diload) dan dimasukan kedalam variabel $html.

require_once(‘./assets/html2pdf/html2pdf.class.php’);
$pdf = new HTML2PDF(‘P’,’A4′,’en’);
$pdf->WriteHTML($html);
$pdf->Output(‘Data Transaksi.pdf’, ‘D’);
Kode diatas digunakan untuk mengkonversi kode html menjadi pdf. Dimulai dari kode require_once(‘./assets/html2pdf/html2pdf.class.php’);, kode ini berfungsi untuk memuat (meload) plugin html2pdfnya. Lalu kode $pdf = new HTML2PDF(‘P’,’A4′,’en’);, kode ini berfungsi memanggil fungsi __construct pada plugin html2pdf. Berikut ini adalah fungsi __construct yang kita panggil pada plugin html2pdfnya :

/**
* Constructeur
*
* @param string $sens - orientasinya : landscape atau portrait
* @param string $format - format kertasnya : A4, A5, dan lain-lain
* @param string $langue - Bahasanya : en, fr, dan lain-lain
* @param boolean $unicode - TRUE means clustering the input text IS unicode (default = true)
* @param String $encoding - charset encoding; Default is UTF-8
* @param array $marges - margins by default, in order (left, top, right, bottom)
* @return null
*/
public function __construct($sens = 'P', $format = 'A4', $langue='en', $unicode=true, $encoding='UTF-8', $marges = array(5, 5, 5, 8))

Lalu kode $pdf->WriteHTML($html);, kode ini berfungsi untuk menentukan apa yang ingin ditampilkan pada pdfnya. Struktur dasar penulisannya yaitu $pdf->WriteHTML(‘kode_htmlnya’);. Pada kasus ini, kita memasukan kode htmlnya kedalam variabel $html. Yang terakhir kode $pdf->Output(‘Data Transaksi.pdf’, ‘D’);, kode tersebut berfungsi untuk menentukan nama file pdf yang kita buat. dan juga untuk menentukan mode apa yang ingin dilakukan ketika kode tersebut dipanggil. Contohnya disitu ada kode …,’D’);, Huruf D disitu berarti ketika kode dipanggil, maka lakukan proses download pada file pdfnya. sebenarnya ada banyak mode yang bisa kita lakukan, seperti tampilkan pdfnya dibrowser ketika kode itu dipanggil dan lain-lain (untuk lebih detailnya, klik disini).


 STEP 6 – BUAT VIEW
Selanjutnya kita akan buat sebuah file untuk menampilkan form filter dan data transaksi. Buat file baru dengan nama view.php, lalu simpan pada folder xampp/htdocs/pdf_date_ci/application/views/. Berikut ini kode dan tampilannya :

View - Cara Membuat Laporan PDF Plus Filter Tanggal dengan Codeigniter

<html>
<head>
  <title>PDF</title>
    
    <link rel="stylesheet" href="<?php echo base_url('assets/jquery-ui/jquery-ui.min.css'); ?>" /> <!-- Load file css jquery-ui -->
    <script src="<?php echo base_url('assets/jquery.min.js'); ?>"></script> <!-- Load file jquery -->
</head>
<body>
    <h2>Data Transaksi</h2><hr>

    <form method="get" action="">
        <label>Filter Berdasarkan</label><br>
        <select name="filter" id="filter">
            <option value="">Pilih</option>
            <option value="1">Per Tanggal</option>
            <option value="2">Per Bulan</option>
            <option value="3">Per Tahun</option>
        </select>
        <br /><br />

        <div id="form-tanggal">
            <label>Tanggal</label><br>
            <input type="text" name="tanggal" class="input-tanggal" />
            <br /><br />
        </div>

        <div id="form-bulan">
            <label>Bulan</label><br>
            <select name="bulan">
                <option value="">Pilih</option>
                <option value="1">Januari</option>
                <option value="2">Februari</option>
                <option value="3">Maret</option>
                <option value="4">April</option>
                <option value="5">Mei</option>
                <option value="6">Juni</option>
                <option value="7">Juli</option>
                <option value="8">Agustus</option>
                <option value="9">September</option>
                <option value="10">Oktober</option>
                <option value="11">November</option>
                <option value="12">Desember</option>
            </select>
            <br /><br />
        </div>

        <div id="form-tahun">
            <label>Tahun</label><br>
            <select name="tahun">
                <option value="">Pilih</option>
                <?php
                foreach($option_tahun as $data){ // Ambil data tahun dari model yang dikirim dari controller
                    echo '<option value="'.$data->tahun.'">'.$data->tahun.'</option>';
                }
                ?>
            </select>
            <br /><br />
        </div>

        <button type="submit">Tampilkan</button>
        <a href="<?php echo base_url(); ?>">Reset Filter</a>
    </form>
    <hr />
    
    <b><?php echo $ket; ?></b><br /><br />
    <a href="<?php echo $url_cetak; ?>">CETAK PDF</a><br /><br />

    <table border="1" cellpadding="8">
    <tr>
        <th>Tanggal</th>
        <th>Kode Transaksi</th>
        <th>Barang</th>
        <th>Jumlah</th>
        <th>Total Harga</th>
    </tr>
    <?php
    if( ! empty($transaksi)){
    	$no = 1;
    	foreach($transaksi as $data){
            $tgl = date('d-m-Y', strtotime($data->tgl));
            
    		echo "<tr>";
    		echo "<td>".$tgl."</td>";
    		echo "<td>".$data->kode."</td>";
    		echo "<td>".$data->barang."</td>";
    		echo "<td>".$data->jumlah."</td>";
    		echo "<td>".$data->total_harga."</td>";
    		echo "</tr>";
    		$no++;
    	}
    }
    ?>
    
    <script src="<?php echo base_url('assets/jquery-ui/jquery-ui.min.js'); ?>"></script> <!-- Load file plugin js jquery-ui -->
    <script>
    $(document).ready(function(){ // Ketika halaman selesai di load
        $('.input-tanggal').datepicker({
            dateFormat: 'yy-mm-dd' // Set format tanggalnya jadi yyyy-mm-dd
        });

        $('#form-tanggal, #form-bulan, #form-tahun').hide(); // Sebagai default kita sembunyikan form filter tanggal, bulan & tahunnya

        $('#filter').change(function(){ // Ketika user memilih filter
            if($(this).val() == '1'){ // Jika filter nya 1 (per tanggal)
                $('#form-bulan, #form-tahun').hide(); // Sembunyikan form bulan dan tahun
                $('#form-tanggal').show(); // Tampilkan form tanggal
            }else if($(this).val() == '2'){ // Jika filter nya 2 (per bulan)
                $('#form-tanggal').hide(); // Sembunyikan form tanggal
                $('#form-bulan, #form-tahun').show(); // Tampilkan form bulan dan tahun
            }else{ // Jika filternya 3 (per tahun)
                $('#form-tanggal, #form-bulan').hide(); // Sembunyikan form tanggal dan bulan
                $('#form-tahun').show(); // Tampilkan form tahun
            }

            $('#form-tanggal input, #form-bulan select, #form-tahun select').val(''); // Clear data pada textbox tanggal, combobox bulan & tahun
        })
    })
    </script>
</table>
</body>
</html>

Pada halaman ini, kita membuat sebuah form untuk filter data transaksinya. Dimana isi dari combo box filter adalah Per Tanggal, Per Bulan dan Per Tahun. Khusus untuk combo box Tahun, kita isi sesuai dengan data transaksi yang ada didatbase. Jadi nanti pilihan tahunnya menyesuaikan dengan data transaksi di database ada pada tahun berapa saja.

$tgl = date(‘d-m-y‘, strtotime($_GET[‘tanggal’]));
Kode ini untuk mengubah format tanggal menjadi dd-mm-yyyy. Disini terdapat 2 fungsi yakni date() dan strtotime(). Fungsi date berfungsi untuk menentukan format waktu yang kita ingin kan, isi dari parameter 1 adalah format yang kita inginkan, disini kita isi dengan d-m-y. Lebih lengkapnya soal isi dari parameter 1 di fungsi date() bisa anda lihat disini : Dokumentasi Fungsi Date(). Untuk strtotime() adalah sebuah kode yang berguna untuk mengubah string menjadi time. Karna paramater 2 dari fungsi date() adalah waktu yang akan diubah formatnya (dalam bentuk time). Sehingga disini kita akan mengubah data tanggal dari form filter yang formatnya yyyy-mm-dd dan tipenya string menjadi tipe time agar bisa di ubah formatnya dengan fungsi date().

Pada kode diatas terdapat kode foreach($transaksi as $data){, kode tersebut akan manampilkan satu per satu data transaksi sampai datatransaksi yang terakhir.
echo “<td>”.$data->nis.”</td>”;
echo “<td>”.$data->nama.”</td>”;
echo “<td>”.$data->jenis_kelamin.” </td>”;
echo “<td>”.$data->alamat.”</td>”;
Pada kode diatas, yang saya beri tanda merah. Itu harus sama dengan nama kolom / field yang ada di database tabel transaksi.


STEP 7 – HALAMAN CETAK (PRINT)
Langkah terakhir adalah membuat sebuah file yang nantinya digunakan untuk proses cetak ke pdfnya. Hal-hal yang ada pada file ini nantinya akan ditampilkan pada file pdfnya. Buat sebuah file dengan nama print.php, lalu simpan pada folder xampp/htdocs/pdf_date_ci/application/views/. Berikut ini kode dan tampilannya :

Tampilan PDF - Cara Membuat Laporan PDF Plus Filter Tanggal dengan Codeigniter

<html>
<head>
  <title>Cetak PDF</title>
  <style>
    table {
      border-collapse:collapse;
      table-layout:fixed;width: 630px;
    }
    table td {
      word-wrap:break-word;
      width: 20%;
    }
  </style>
</head>
<body>
    <b><?php echo $ket; ?></b><br /><br />
    
  <table border="1" cellpadding="8">
  <tr>
    <th>Tanggal</th>
    <th>Kode Transaksi</th>
    <th>Barang</th>
    <th>Jumlah</th>
    <th>Total Harga</th>
  </tr>

    <?php
    if( ! empty($transaksi)){
    	$no = 1;
    	foreach($transaksi as $data){
            $tgl = date('d-m-Y', strtotime($data->tgl));

    		echo "<tr>";
    		echo "<td>".$tgl."</td>";
    		echo "<td>".$data->kode."</td>";
    		echo "<td>".$data->barang."</td>";
    		echo "<td>".$data->jumlah."</td>";
    		echo "<td>".$data->total_harga."</td>";
    		echo "</tr>";
    		$no++;
    	}
    }
    ?>
  </table>
</body>
</html>

Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.
Bingung cara downloadnya? klik disini untuk melihat caranya.


SUMBER & REFERENSI
Dokumentasi Codeigniter : https://www.codeigniter.com/user_guide
Dokumentasi PHPExcel : download
Cara mudah membuat laporan pdf plus filter tanggal bulan tahun dengan codeigniter dan mysql, tutorial lengkap membuat laporan pdf dengan filter tanggal bulan tahun menggunakan codeigniter dan mysql, laporan pdf plus filter per hari, per bulan, per tahun denagncodeigniter dan database mysql

Laporan PDF

The post Cara Membuat Laporan PDF Plus Filter Tanggal dengan Codeigniter appeared first on My Notes Code.

]]>
https://www.mynotescode.com/laporan-pdf-plus-filter-tanggal-codeigniter/feed/ 0
Cara Membuat Laporan PDF Plus Filter Tanggal dengan PHP dan MySQL https://www.mynotescode.com/laporan-pdf-plus-filter-tanggal-php/ https://www.mynotescode.com/laporan-pdf-plus-filter-tanggal-php/#comments Tue, 21 Aug 2018 04:16:53 +0000 https://www.mynotescode.com/?p=2083 Pada saat membuat sebuah laporan, sering kali kita diharuskan untuk memfilter data yang akan di tampilkan pada laporan tersebut. Sebagai contoh pada data transaksi penjualanan, biasanya kita akan diminta untuk membuat laporan per hari, per bulan dan per tahun. Itulah kenapa kita memerlukan fitur untuk memfilter data-data transaksi tadi agar bisa di tampilkan per hari...

The post Cara Membuat Laporan PDF Plus Filter Tanggal dengan PHP dan MySQL appeared first on My Notes Code.

]]>
Pada saat membuat sebuah laporan, sering kali kita diharuskan untuk memfilter data yang akan di tampilkan pada laporan tersebut. Sebagai contoh pada data transaksi penjualanan, biasanya kita akan diminta untuk membuat laporan per hari, per bulan dan per tahun. Itulah kenapa kita memerlukan fitur untuk memfilter data-data transaksi tadi agar bisa di tampilkan per hari / per bulan / per tahun sesuai dengan kebutuhan si pengguna.

Dalam tutorial / catatan ini kita akan bahas cara membuat laporan pdf dengan ditambah filter data Per Hari, Per Bulan dan Per tahun. Mari simak langkah-langkah dan penjelasannya berikut ini.


DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN

Kita akan mempersiapkan terlebih dahulu hal-hal yang diperlukan.

  1. Download Plugin HTML2PDF nya, klik link berikut ini : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  2. Download plugin jQuery, klik link berikut : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  3. Download plugin jQuery-ui, klik link berikut : Download. jQuery-ui ini nantinya kita perlukan untuk datepicker.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  4. Buat sebuah folder baru dengan nama latihan_pdf, lalu simpan di xampp/htdocs/
  5. Buat sebuah folder dengan nama plugin, lalu simpan di xampp/htdocs/latihan_pdf.
  6. Buat sebuah folder dengan nama js, lalu simpan di xampp/htdocs/latihan_pdf.
  7. Ekstrak dan Copy plugin HTML2PDF yang sudah didownload ke dalam folder xampp/htdocs/latihan_pdf/plugin/.
  8. Copy and paste file jquery.min.js yang telah di download tadi ke dalam folder xampp/htdocs/latihan_pdf/js/.
  9. Ekstrak dan Copy plugin jQuery-ui yang sudah didownload ke dalam folder xampp/htdocs/latihan_pdf/plugin/.

STEP 2 – DATABASE

Buat sebuah database dengan nama mynotescode, lalu buat tabel transaksi dengan struktur tabel seperti gambar berikut ini :

Struktur Tabel - Cara Membuat Laporan PDF plus Filter Tanggal dengan PHP dan MySQL

CREATE TABLE `transaksi` (
 `id` int(11) NOT NULL,
 `kode` varchar(10) NOT NULL,
 `barang` varchar(100) NOT NULL,
 `jumlah` int(11) NOT NULL,
 `total_harga` double NOT NULL,
 `tgl` datetime NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

STEP 3 – KONEKSI DATABASE

Pada tahap ini, kita akan membuat sebuah file php yang berfungsi untuk koneksi ke database MySQL. Buat sebuah file dengan nama koneksi.php lalu simpan di folder xampp/htdocs/latihan_pdf/. Berikut ini isi dari file tersebut :

<?php
$host = "localhost"; // Nama hostnya
$user = "root"; // Username
$pass = ""; // Password (Isi jika menggunakan password)
$connect = mysqli_connect($host, $user, $pass, "mynotescode"); // Koneksi ke MySQL
?>

STEP 4 – TAMPILAN AWAL
Selanjutnya kita akan membuat halaman / tampilan awal website kita. Buat sebuah file php dengan nama index.php dan simpan di folder xampp/htdocs/latihan_pdf. Berikut ini kodenya :

View - Cara Membuat Laporan PDF plus Filter Tanggal dengan PHP dan MySQL

<?php
// Load file koneksi.php
include "koneksi.php";
?>

<html>
<head>
    <title>Data Transaksi</title>
    <link rel="stylesheet" href="plugin/jquery-ui/jquery-ui.min.css" /> <!-- Load file css jquery-ui -->
    <script src="js/jquery.min.js"></script> <!-- Load file jquery -->
</head>
<body>
    <h2>Data Transaksi</h2><hr>

    <form method="get" action="">
        <label>Filter Berdasarkan</label><br>
        <select name="filter" id="filter">
            <option value="">Pilih</option>
            <option value="1">Per Tanggal</option>
            <option value="2">Per Bulan</option>
            <option value="3">Per Tahun</option>
        </select>
        <br /><br />

        <div id="form-tanggal">
            <label>Tanggal</label><br>
            <input type="text" name="tanggal" class="input-tanggal" />
            <br /><br />
        </div>

        <div id="form-bulan">
            <label>Bulan</label><br>
            <select name="bulan">
                <option value="">Pilih</option>
                <option value="1">Januari</option>
                <option value="2">Februari</option>
                <option value="3">Maret</option>
                <option value="4">April</option>
                <option value="5">Mei</option>
                <option value="6">Juni</option>
                <option value="7">Juli</option>
                <option value="8">Agustus</option>
                <option value="9">September</option>
                <option value="10">Oktober</option>
                <option value="11">November</option>
                <option value="12">Desember</option>
            </select>
            <br /><br />
        </div>

        <div id="form-tahun">
            <label>Tahun</label><br>
            <select name="tahun">
                <option value="">Pilih</option>
                <?php
                $query = "SELECT YEAR(tgl) AS tahun FROM transaksi GROUP BY YEAR(tgl)"; // Tampilkan tahun sesuai di tabel transaksi
                $sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query

                while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
                    echo '<option value="'.$data['tahun'].'">'.$data['tahun'].'</option>';
                }
                ?>
            </select>
            <br /><br />
        </div>

        <button type="submit">Tampilkan</button>
        <a href="index.php">Reset Filter</a>
    </form>
    <hr />

    <?php
    if(isset($_GET['filter']) && ! empty($_GET['filter'])){ // Cek apakah user telah memilih filter dan klik tombol tampilkan
        $filter = $_GET['filter']; // Ambil data filder yang dipilih user

        if($filter == '1'){ // Jika filter nya 1 (per tanggal)
            $tgl = date('d-m-y', strtotime($_GET['tanggal']));

            echo '<b>Data Transaksi Tanggal '.$tgl.'</b><br /><br />';
            echo '<a href="print.php?filter=1&tanggal='.$_GET['tanggal'].'">Cetak PDF</a><br /><br />';

            $query = "SELECT * FROM transaksi WHERE DATE(tgl)='".$_GET['tanggal']."'"; // Tampilkan data transaksi sesuai tanggal yang diinput oleh user pada filter
        }else if($filter == '2'){ // Jika filter nya 2 (per bulan)
            $nama_bulan = array('', 'Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember');

            echo '<b>Data Transaksi Bulan '.$nama_bulan[$_GET['bulan']].' '.$_GET['tahun'].'</b><br /><br />';
            echo '<a href="print.php?filter=2&bulan='.$_GET['bulan'].'&tahun='.$_GET['tahun'].'">Cetak PDF</a><br /><br />';

            $query = "SELECT * FROM transaksi WHERE MONTH(tgl)='".$_GET['bulan']."' AND YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai bulan dan tahun yang diinput oleh user pada filter
        }else{ // Jika filter nya 3 (per tahun)
            echo '<b>Data Transaksi Tahun '.$_GET['tahun'].'</b><br /><br />';
            echo '<a href="print.php?filter=3&tahun='.$_GET['tahun'].'">Cetak PDF</a><br /><br />';

            $query = "SELECT * FROM transaksi WHERE YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai tahun yang diinput oleh user pada filter
        }
    }else{ // Jika user tidak mengklik tombol tampilkan
        echo '<b>Semua Data Transaksi</b><br /><br />';
        echo '<a href="print.php">Cetak PDF</a><br /><br />';

        $query = "SELECT * FROM transaksi ORDER BY tgl"; // Tampilkan semua data transaksi diurutkan berdasarkan tanggal
    }
    ?>

    <table border="1" cellpadding="8">
    <tr>
        <th>Tanggal</th>
        <th>Kode Transaksi</th>
        <th>Barang</th>
        <th>Jumlah</th>
        <th>Total Harga</th>
    </tr>

    <?php
    $sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
    $row = mysqli_num_rows($sql); // Ambil jumlah data dari hasil eksekusi $sql

    if($row > 0){ // Jika jumlah data lebih dari 0 (Berarti jika data ada)
        while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
            $tgl = date('d-m-Y', strtotime($data['tgl'])); // Ubah format tanggal jadi dd-mm-yyyy

            echo "<tr>";
            echo "<td>".$tgl."</td>";
            echo "<td>".$data['kode']."</td>";
            echo "<td>".$data['barang']."</td>";
            echo "<td>".$data['jumlah']."</td>";
            echo "<td>".$data['total_harga']."</td>";
            echo "</tr>";
        }
    }else{ // Jika data tidak ada
        echo "<tr><td colspan='5'>Data tidak ada</td></tr>";
    }
    ?>
    </table>

    <script>
    $(document).ready(function(){ // Ketika halaman selesai di load
        $('.input-tanggal').datepicker({
            dateFormat: 'yy-mm-dd' // Set format tanggalnya jadi yyyy-mm-dd
        });

        $('#form-tanggal, #form-bulan, #form-tahun').hide(); // Sebagai default kita sembunyikan form filter tanggal, bulan & tahunnya

        $('#filter').change(function(){ // Ketika user memilih filter
            if($(this).val() == '1'){ // Jika filter nya 1 (per tanggal)
                $('#form-bulan, #form-tahun').hide(); // Sembunyikan form bulan dan tahun
                $('#form-tanggal').show(); // Tampilkan form tanggal
            }else if($(this).val() == '2'){ // Jika filter nya 2 (per bulan)
                $('#form-tanggal').hide(); // Sembunyikan form tanggal
                $('#form-bulan, #form-tahun').show(); // Tampilkan form bulan dan tahun
            }else{ // Jika filternya 3 (per tahun)
                $('#form-tanggal, #form-bulan').hide(); // Sembunyikan form tanggal dan bulan
                $('#form-tahun').show(); // Tampilkan form tahun
            }

            $('#form-tanggal input, #form-bulan select, #form-tahun select').val(''); // Clear data pada textbox tanggal, combobox bulan & tahun
        })
    })
    </script>
    <script src="plugin/jquery-ui/jquery-ui.min.js"></script> <!-- Load file plugin js jquery-ui -->
</body>
</html>

 

Pada halaman ini, kita membuat sebuah form untuk filter data transaksinya. Dimana isi dari combo box filter adalah Per Tanggal, Per Bulan dan Per Tahun. Khusus untuk combo box Tahun, kita isi sesuai dengan data transaksi yang ada didatbase. Jadi nanti pilihan tahunnya menyesuaikan dengan data transaksi di database ada pada tahun berapa saja.

$tgl = date(‘d-m-y‘, strtotime($_GET[‘tanggal’]));
Kode ini untuk mengubah format tanggal menjadi dd-mm-yyyy. Disini terdapat 2 fungsi yakni date() dan strtotime(). Fungsi date berfungsi untuk menentukan format waktu yang kita ingin kan, isi dari parameter 1 adalah format yang kita inginkan, disini kita isi dengan d-m-y. Lebih lengkapnya soal isi dari parameter 1 di fungsi date() bisa anda lihat disini : Dokumentasi Fungsi Date(). Untuk strtotime() adalah sebuah kode yang berguna untuk mengubah string menjadi time. Karna paramater 2 dari fungsi date() adalah waktu yang akan diubah formatnya (dalam bentuk time). Sehingga disini kita akan mengubah data tanggal dari form filter yang formatnya yyyy-mm-dd dan tipenya string menjadi tipe time agar bisa di ubah formatnya dengan fungsi date().

$nama_bulan = array(”, ‘Januari’,’Februari’,…..
Kode ini akan kita gunakan untuk mengubah data bulan dari form filter manjadi nama bulan itu sendiri dalam bahasa indonesia. Bisa di lihat pada form filter untuk combo box bulan, disitu ada tag option dimana isinya adalah angka dimulai dari 1 untuk januari, 2 untuk februari, dan seterusnya. Nah angka dari value tadi akan kita ubah menjadi nama bulan sesuai dengan value nya dan kita panggil pada variabel $nama_bulan[value_bulannya]. Untuk informasi, index array dimulai dari 0, sehingga bisa kita lihat pada variabel $nama_bulan isi array pertama sengaja saya kosongkan karna index 0 tidak kita pakai soalnya bulan januari dimulai dari 1.

$sql = mysqli_query($connect, $query);
Untuk mengeksekusi / menjalankan query sql. struktur dasar penulisannya adalah sebagai berikut :

mysqli_query($connect, $query);

/*
Keterangan :
- $connect : diisi dengan koneksi ke mysql. hasil dari mysqli_connect
- $query : diisi dengan Query SQL yang diinginkan
*/

mysqli_num_rows($sql);
Untuk mengambil jumlah data dari hasil eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :

mysqli_num_rows($sql);

/*
Keterangan :
- $sql : diisi dengan hasil eksekusi query sql(mysql_query())
*/

mysqli_fetch_array($sql);
Untuk mengambil data dari hasil eksekusi suatu query sql. Struktur dasar penulisannya adalah sebagai berikut :

mysqli_fetch_array($sql);

/*
Keterangan :
- $sql : diisi dengan hasil eksekusi query sql(mysql_query())
*/

Kode diatas saya simpan didalam looping while berfungsi untuk melakukan proses perulangan sampai data terkahir dengan tujuan agar kita bisa menampilkan datanya satu per satu.

echo "<td>".$data['kode']."</td>";
echo "<td>".$data['barang']."</td>";
echo "<td>".$data['jumlah']."</td>";
echo "<td>".$data['total_harga']."</td>";

Pada kode diatas terdapat variabel $data digunakan untuk mengambil isi dari field-field yang ada pada tabel transaksi di database latihan. Pada kode diatas juga ada kode yang berada di dalam tanda [‘…..’], kode tersebut harus sama dengan nama field yang ada pada tabel transaksi.


STEP 5 – PROSES CETAK (PRINT)
Sesuai judul dari step 5 ini, kita akan masuk ke inti dari catatan ini yakni membuat proses cetak ke file pdf. Pertama-tama buat dulu sebuah file baru dan beri nama print.php, lalu simpan file tersebut di folder xampp/htdocs/latihan_pdf/. Berikut ini isi / skrip dari file tersebut :

<?php ob_start(); ?>
<html>
<head>
  <title>Cetak PDF</title>
  <style>
    table {
      border-collapse:collapse;
      table-layout:fixed;width: 630px;
    }
    table td {
      word-wrap:break-word;
      width: 20%;
    }
  </style>
</head>
<body>
  <?php
  // Load file koneksi.php
  include "koneksi.php";

  if(isset($_GET['filter']) && ! empty($_GET['filter'])){ // Cek apakah user telah memilih filter
    $filter = $_GET['filter']; // Ambil data filder yang dipilih user

    if($filter == '1'){ // Jika filter nya 1 (per tanggal)
      $tgl = date('d-m-y', strtotime($_GET['tanggal']));

      echo '<b>Data Transaksi Tanggal '.$tgl.'</b><br /><br />';

      $query = "SELECT * FROM transaksi WHERE DATE(tgl)='".$_GET['tanggal']."'"; // Tampilkan data transaksi sesuai tanggal yang diinput oleh user pada filter
    }else if($filter == '2'){ // Jika filter nya 2 (per bulan)
      $nama_bulan = array('', 'Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','November','Desember');

      echo '<b>Data Transaksi Bulan '.$nama_bulan[$_GET['bulan']].' '.$_GET['tahun'].'</b><br /><br />';

      $query = "SELECT * FROM transaksi WHERE MONTH(tgl)='".$_GET['bulan']."' AND YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai bulan dan tahun yang diinput oleh user pada filter
    }else{ // Jika filter nya 3 (per tahun)
      echo '<b>Data Transaksi Tahun '.$_GET['tahun'].'</b><br /><br />';

      $query = "SELECT * FROM transaksi WHERE YEAR(tgl)='".$_GET['tahun']."'"; // Tampilkan data transaksi sesuai tahun yang diinput oleh user pada filter
    }
  }else{ // Jika user tidak memilih filter
    echo '<b>Semua Data Transaksi</b><br /><br />';

    $query = "SELECT * FROM transaksi ORDER BY tgl"; // Tampilkan semua data transaksi diurutkan berdasarkan tanggal
  }
  ?>
  <table border="1" cellpadding="8">
  <tr>
    <th>Tanggal</th>
    <th>Kode Transaksi</th>
    <th>Barang</th>
    <th>Jumlah</th>
    <th>Total Harga</th>
  </tr>

  <?php
  $sql = mysqli_query($connect, $query); // Eksekusi/Jalankan query dari variabel $query
  $row = mysqli_num_rows($sql); // Ambil jumlah data dari hasil eksekusi $sql

  if($row > 0){ // Jika jumlah data lebih dari 0 (Berarti jika data ada)
    while($data = mysqli_fetch_array($sql)){ // Ambil semua data dari hasil eksekusi $sql
      $tgl = date('d-m-Y', strtotime($data['tgl'])); // Ubah format tanggal jadi dd-mm-yyyy

      echo "<tr>";
      echo "<td>".$tgl."</td>";
      echo "<td>".$data['kode']."</td>";
      echo "<td>".$data['barang']."</td>";
      echo "<td>".$data['jumlah']."</td>";
      echo "<td>".$data['total_harga']."</td>";
      echo "</tr>";
    }
  }else{ // Jika data tidak ada
    echo "<tr><td colspan='5'>Data tidak ada</td></tr>";
  }
  ?>
  </table>
</body>
</html>
<?php
$html = ob_get_contents();
ob_end_clean();

require_once('plugin/html2pdf/html2pdf.class.php');
$pdf = new HTML2PDF('P','A4','en');
$pdf->WriteHTML($html);
$pdf->Output('Data Transaksi.pdf', 'D');
?>

 

Sebenarnya skrip diatas hampir sama dengan isi dari file index.php. Hanya saja pada print.php tidak ada link cetak pdf nya dan juga pada skrip diatas terdapat skrip berikut ini :

<?php ob_start(); ?>
// …..
// skrip html
// …..
<?php
$html = ob_get_contents();
ob_end_clean();

Pada skrip print.php, Skrip yang berfungsi untuk menampilkan data transaksi pada tabel diapit oleh skrip yang saya beri tanda merah. Skrip tersebut berfungsi untuk mengambil tampilan tabel data transaksi dan memasukkannya ke dalam variabel $html. Variabel $html ini akan digunakan sebagai output yang kita inginkan pada file pdfnya. Lihat skrip berikut ini :

require_once(‘plugin/html2pdf/html2pdf.class.php’);
$pdf = new HTML2PDF(‘P’,’A4′,’en’);
$pdf->WriteHTML($html);
$pdf->Output(‘Data Transaksi.pdf’, ‘D’);

Skrip diatas digunakan untuk mengkonversi skrip html menjadi pdf. Dimulai dari skrip require_once(‘./assets/html2pdf/html2pdf.class.php’);, skrip ini berfungsi untuk memuat (meload) plugin html2pdfnya. Lalu skrip $pdf = new HTML2PDF(‘P’,’A4′,’en’);, skrip ini berfungsi memanggil fungsi __construct pada plugin html2pdf. Berikut ini adalah fungsi __construct yang kita panggil pada plugin html2pdfnya :

/**
* Constructeur
*
* @param string $sens - orientasinya : landscape atau portrait
* @param string $format - format kertasnya : A4, A5, dan lain-lain
* @param string $langue - Bahasanya : en, fr, dan lain-lain
* @param boolean $unicode - TRUE means clustering the input text IS unicode (default = true)
* @param String $encoding - charset encoding; Default is UTF-8
* @param array $marges - margins by default, in order (left, top, right, bottom)
* @return null
*/
public function __construct($sens = 'P', $format = 'A4', $langue='en', $unicode=true, $encoding='UTF-8', $marges = array(5, 5, 5, 8))

Lalu skrip $pdf->WriteHTML($html);, skrip ini berfungsi untuk menentukan apa yang ingin ditampilkan pada pdfnya. Struktur dasar penulisannya yaitu $pdf->WriteHTML(‘kode_htmlnya’);. Pada kasus ini, kita memasukan kode htmlnya kedalam variabel $html. Yang terakhir skrip $pdf->Output(‘Data Transaksi.pdf’, ‘D’);, kode tersebut berfungsi untuk menentukan nama file pdf yang kita buat. dan juga untuk menentukan mode apa yang ingin dilakukan ketika skrip tersebut dipanggil. Contohnya disitu ada skrip …,’D’);, Huruf D disitu berarti ketika skrip dipanggil, maka lakukan proses download pada file pdfnya. sebenarnya ada banyak mode yang bisa kita lakukan, seperti tampilkan pdfnya dibrowser ketika skrip itu dipanggil dan lain-lain (untuk lebih detailnya, klik disini).


Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.
Bingung cara downloadnya? klik disini untuk melihat caranya.


SUMBER & REFERENSI
http://wiki.spipu.net/doku.php?id=html2pdf:en:v4:Accueil
Cara mudah membuat laporan pdf plus filter tanggal bulan tahun dengan php dan mysql, tutorial lengkap membuat laporan pdf dengan filter tanggal bulan tahun menggunakan php dan mysql, laporan pdf plus filter per hari, per bulan, per tahun denagn php dan database mysql

Laporan PDF

The post Cara Membuat Laporan PDF Plus Filter Tanggal dengan PHP dan MySQL appeared first on My Notes Code.

]]>
https://www.mynotescode.com/laporan-pdf-plus-filter-tanggal-php/feed/ 6
Cara Membuat Multiple Insert dengan Codeigniter dan MySQL https://www.mynotescode.com/multiple-insert-dengan-codeigniter/ https://www.mynotescode.com/multiple-insert-dengan-codeigniter/#comments Fri, 20 Jul 2018 03:30:51 +0000 https://www.mynotescode.com/?p=2058 Apa itu “Multiple Insert” ? Multiple insert adalah sebuah cara untuk menyimpan lebih dari 1 data dalam sekali akses atau proses. Misalkan, saya punya 5 data siswa yang ingin disimpan. Kalau kita menggunakan form biasa (bukan multiple insert), otomatis kita harus melakukan simpan sebanyak 5 kali (bulak-balik form simpan 5 kali / 5 kali klik tombol simpan)....

The post Cara Membuat Multiple Insert dengan Codeigniter dan MySQL appeared first on My Notes Code.

]]>
Apa itu “Multiple Insert” ? Multiple insert adalah sebuah cara untuk menyimpan lebih dari 1 data dalam sekali akses atau proses. Misalkan, saya punya 5 data siswa yang ingin disimpan. Kalau kita menggunakan form biasa (bukan multiple insert), otomatis kita harus melakukan simpan sebanyak 5 kali (bulak-balik form simpan 5 kali / 5 kali klik tombol simpan). Tapi akan berbeda jika form tersebut adalah form muliple insert, kita hanya perlu menginput ke 5 data tersebut dalam 1 form dengan 1 kali klik tombol simpan semua data akan lansung tersimpan tanpa kita harus bulak-balik masuk ke form tersebut lagi sebanyak 5 kali. Tentunya cara ini akan lebih efektif dan efisien ketimbang kita menyimpan satu per satu datanya yang pasti akan memakan waktu.


DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :

  1. Buat sebuah folder baru dengan nama multiple_insert, lalu simpan pada folder xampp/htdocs/.
  2. Download Framework Codeigniter, klik link berikut : download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  3. Download plugin JQuery, klik link berikut : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  4. Copy and paste file codeigniter_v3.7z yang telah di download tadi ke folder xampp/htdocs/multiple_insert/.
  5. Ekstrak file codeigniter_v3.7z nya.
  6. Buat sebuah folder dengan nama js, lalu simpan pada folder xampp/htdocs/multiple_insert/.
  7. Copy and paste file jquery.min.js yang telah di download tadi ke dalam folder xampp/htdocs/multiple_insert/js/.

STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama siswa. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Membuat Multiple Insert dengan Codeigniter dan MySQL

    CREATE TABLE IF NOT EXISTS `siswa` (
      `nis` varchar(11) NOT NULL,
      `nama` varchar(50) NOT NULL,
      `telp` varchar(15) NOT NULL,
      `alamat` text NOT NULL,
      PRIMARY KEY (`nis`)
    )

STEP 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, pertama kita harus melakukan konfigurasi terlebih dahulu pada framework codeigniternya.

  1. Buka folder xampp/htdocs/multiple_insert/application/config/
  2. Buka file config.php
    Cari kode berikut $config['base_url'] = '';Ubah kode tersebut jadi seperti ini :

    $config['base_url'] = 'http://localhost/multiple_insert/';

    Kode diatas digunakan untuk menset baseurlnya.
    Lalu simpan file tersebut.

  3. Buka file autoload.php
    Cari kode berikut ini :

    $autoload['libraries'] = array();
    $autoload['helper'] = array();

    Ubah jadi seperti ini :

    $autoload['libraries'] = array('database');
    $autoload['helper'] = array('url');

    Kode diatas digunakan untuk memuat (menload) class database dan url.
    Lalu simpan file tersebut.

  4. Buka file routes.php
    Cari kode berikut ini :

    $route['default_controller'] = 'welcome';

    Ubah jadi seperti ini :

    $route['default_controller'] = 'siswa';

    Kode diatas digunakan untuk menset controller mana yang akan diload pertama kali. Secara default, Codeigniter telah menset default controller yaitu welcome. Disini kita set default controller menjadi siswa.
    Lalu simpan file tersebut.

  5. Buka file database.php
    Cari kode berikut ini :

    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',

    Ubah jadi seperti ini :

    'hostname' => 'localhost', // Nama host
    'username' => 'root', // Username
    'password' => '', // Jika menggunakan password isi, jika tidak kosongkan saja
    'database' => 'mynotescode', // Nama databasenya

    Kode diatas digunakan untuk koneksi ke database.
    Lalu simpan file tersebut.


STEP 4 – BUAT MODEL
Langkah selanjutnya adalah membuat modelnya. Buat sebuah file dengan nama SiswaModel.php, Lalu simpan pada folder xampp/htdocs/multiple_insert/application/models/. Berikut kodenya :

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

class Siswa_Model extends CI_Model {
  public function view(){
    return $this->db->get('siswa')->result();
  }
  
  public function save_batch($data){
    return $this->db->insert_batch('siswa', $data);
  }
}

Pada kode diatas, kita membuat sebuah fungsi view(). dimana didalamnya terdapat kode return $this->db->get(‘siswa’)->result(). Kode tersebut berfungsi untuk menampilkan semua data pada tabel siswa. Struktur dasar penulisannya seperti ini : return $this->db->get(‘nama_tabel‘)->result(). Lalu pada kode diatas juga ada kode return, kode tersebut digunakan untuk mengeluarkan hasil dari sebuah fungsi. Pada kasus diatas, hasil yang dikeluarkan oleh return yaitu data-data siswa.

$this->db->insert_batch(‘siswa’, $data);
Kode ini berfungsi untuk melakukan perintah insert lebih dari 1 data sekaligus. Struktur dasar dari kode ini adalah $this->db->insert_batch(namatabel, array_data);. Parameter 1 (namatabel) diisi dengan nama tabel untuk menyimpan datanya. Parameter 2 (array_data) diisi dengan data-data yang akan disimpan ke tabel tersebut dalam bentuk array.


STEP 5 – BUAT CONTROLLER
Pada tahap ini, kita akan membuat controllernya. Buat sebuah file dengan nama Siswa.php, lalu simpan pada folder xampp/htdocs/multiple_insert/application/controllers/. Berikut ini kodenya :

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

class Siswa extends CI_Controller {
  
  public function __construct(){
    parent::__construct();
    
    $this->load->model('SiswaModel');
  }
  
  public function index(){
    $data['siswa'] = $this->SiswaModel->view();
    
    $this->load->view('index', $data); // Load view index.php
  }
  
  public function form(){
    $this->load->view('form'); // Load view form.php
  }
  
  public function save(){
    // Ambil data yang dikirim dari form
    $nis = $_POST['nis']; // Ambil data nis dan masukkan ke variabel nis
    $nama = $_POST['nama']; // Ambil data nama dan masukkan ke variabel nama
    $telp = $_POST['telp']; // Ambil data telp dan masukkan ke variabel telp
    $alamat = $_POST['alamat']; // Ambil data alamat dan masukkan ke variabel alamat
    $data = array();
    
    $index = 0; // Set index array awal dengan 0
    foreach($nis as $datanis){ // Kita buat perulangan berdasarkan nis sampai data terakhir
      array_push($data, array(
        'nis'=>$datanis,
        'nama'=>$nama[$index],  // Ambil dan set data nama sesuai index array dari $index
        'telp'=>$telp[$index],  // Ambil dan set data telepon sesuai index array dari $index
        'alamat'=>$alamat[$index],  // Ambil dan set data alamat sesuai index array dari $index
      ));
      
      $index++;
    }
    
    $sql = $this->SiswaModel->save_batch($data); // Panggil fungsi save_batch yang ada di model siswa (SiswaModel.php)
    
    // Cek apakah query insert nya sukses atau gagal
    if($sql){ // Jika sukses
      echo "<script>alert('Data berhasil disimpan');window.location = '".base_url('index.php/siswa')."';</script>";
    }else{ // Jika gagal
      echo "<script>alert('Data gagal disimpan');window.location = '".base_url('index.php/siswa/form')."';</script>";
    }
  }
}

Pada controller ini, kita membuat 4 fungsi. fungsi pertama yaitu public function __construct(){, fungsi ini berfungsi untuk menjalankan suatu aksi ketika controller main diload. Didalam fungsi ini, terdapat kode $this->load->model(‘SiswaModel’);, kode tersebut berfungsi untuk memuat (meload) model siswa (yang pada step sebelumnya kita buat) agar kita bisa mengakses fungsi-fungsi yang ada didalam model tersebut.

Fungsi yang kedua yaitu public function index(). Dalam fungsi ini ada kode $data[‘siswa’] = $this->SiswaModel->view();, kode tersebut digunakan untuk mengambil hasil query sql dari fungsi view() yang ada pada model siswa (SiswaModel.php) lalu memasukannya ke dalam array data dengan index siswa ($data[‘siswa’]). Pada fungsi index() ini juga, terdapat kode $this->load->view(‘view’, $data);. Kode tersebut berfungsi untuk memuat (meload) file view.php (file ini akan kita buat pada step selanjutnya) dan mengirimkan array data ($data) tadi ke file tersebut.

Fungsi ketiga yaitu public function form(). Fungsi ini berisi 1 bari kode yakni $this->load->view(‘form’);. Kode tersebut berfungsi untuk me-load file form.php yang ada pada folder application/views/.

Fungsi terakhir adalah public function save(). Fungsi ini bertugas untuk melakukan proses simpan data ke tabel di database.

$data = array();
Kenapa kita buat variabel $data dengan array yang kosong? karena nanti disinilah kita akan menampung data-data yang akan di insert ke database.

foreach($nis as $datanis){
Seperti yang saya jelaskan sebelumnya. Kita akan melakukan perulangan terhadap data array yang dikirim dari file form.php. Disini saya melakukan perulangan terhadap data nis.

$index = 0;
Mungkin anda bertanya-tanya variabel ini sebenarnya untuk apa? saya akan jelaskan terlebih dahulu apa itu array dalam php. Array ini adalah sebuah variabel dimana kita bisa mengisi lebih dari 1 data dalam variabel tersebut. Struktur kode array sendiri adalah seperti berikut ini :
$namaarray = array(“index”=>”value”, “index”=>”value”);
Index array ini dimulai dari angka 0. Contoh :
$array_baru = array(0=>”data ke 1″, 1=>”data ke 2″);
Untuk mengakses array diatas, caranya seperti ini : $array_baru[0] atau $array_baru[1]
Tetapi kita juga bisa mendeklarasikan nama index array itu sendiri. Contoh :
$array_baru = array(“namaindex1″=>”data ke 1”, “namaindex2″=>”data ke 2”)
Untuk mengakses array diatas, caranya seperti ini : $array_baru[‘namaindex1’] atau $array_baru[‘namaindex2’].

Balik lagi ke dalam kasus kita. Sekarang saya beri contoh misalnya saya menginput 2 data siswa pada form. Isinya seperti berikut :

  1. Data 1 :
    NIS : 11010470115
    Nama : Asep Dadan
    Telepon : 089772661722
    Alamat : Bandung
  2. Data 2 :
    NIS : 11010470116
    Nama : Gerry Ardimanggala
    Telepon : 081772771662
    Alamat : Jakarta

Nanti, data yang akan diterima oleh file proses.php dari masing-masing variabel $nis, $nama, $telp, $alamat adalah seperti berikut ini :

$nis = $_POST[‘nis’];
Kode tersebut akan jadi array seperti berikut :
$nis = array(0=>”11010470115″, 1=>”11010470116″);

$nama = $_POST[‘nama’];
Kode tersebut akan jadi array seperti berikut :
$nama = array(0=>”Asep Dadan”, 1=>”Gerry Ardimanggala”);

$telp = $_POST[‘telp’];
Kode tersebut akan jadi array seperti berikut :
$telp = array(0=>”089772661722″, 1=>”081772771662″);

$alamat = $_POST[‘alamat’];
Kode tersebut akan jadi array seperti berikut :
$alamat = array(0=>”Bandung”, 1=>”Jakarta”);

array_push($data, array(
nis‘=>$datanis,
nama‘=>$nama[$index],
telp‘=>$telp[$index],
alamat‘=>$alamat[$index],
));
Fungsi array_push() adalah untuk memasukkan array / data baru ke dalam sebuah array juga. Dalam kasus ini kita akan memasukan array baru ke dalam array $data. Dimana data yang dimasukan adalah berupa array juga yang terdiri dari index nis, nama, telp, dan alamat (lihat yang saya beri warna merah pada kode diatas). Index-index array tersebut harus sama dengan nama field yang ada di tabel di database. Berikut ini isi dari variabel $data sebelum dimasukan data-datanya dan sesudah dimasukan data-datanya :

 Array Data - Cara Membuat Multiple Insert dengan Codeigniter dan MySQL

Gambar array $data sebelum diisi

Cara Membuat Multiple Insert dengan Codeigniter dan MySQL

Gambar array $data setelah diisi


STEP 6 – BUAT VIEW
Selanjutnya kita akan buat sebuah file untuk menampilkan data siswa dan tombol tambah data. Buat file baru dengan nama index.php, lalu simpan pada folder xampp/htdocs/multiple_insert/application/views/. Berikut ini kode dan tampilannya :

View - Cara Membuat Multiple Insert dengan Codeigniter dan MySQL

<html>
<head>
  <title>Multiple Insert</title>
</head>
<body>
  <h1>Data Siswa</h1>
  <a href="<?php echo base_url("index.php/siswa/form"); ?>">Tambah Data</a><br><br>

  <style>
  table {
    border-collapse: collapse;
  }

  table, td, th {
    border: 1px solid black;
  }
  </style>

  <table border="1" cellpadding="5">
  <tr>
    <th>No</th>
    <th>NIS</th>
    <th>Nama</th>
    <th>Telepon</th>
    <th>Alamat</th>
  </tr>
  <?php
  if( ! empty($siswa)){
    $no = 1;
    foreach($siswa as $data){
      echo "<tr>";
      echo "<td>".$no."</td>";
      echo "<td>".$data->nis."</td>";
      echo "<td>".$data->nama."</td>";
      echo "<td>".$data->telp."</td>";
      echo "<td>".$data->alamat."</td>";
      echo "</tr>";
      $no++;
    }
  }
  ?>
  </table>
</body>
</html>

Pada kode diatas terdapat kode foreach($siswa as $data){, kode tersebut akan manampilkan satu per satu data siswa sampai data siswa yang terakhir.
echo “<td>”.$data->nis.”</td>”;
echo “<td>”.$data->nama.”</td>”;
echo “<td>”.$data->telp.” </td>”;
echo “<td>”.$data->alamat.”</td>”;
Pada kode diatas, yang saya beri tanda merah. Itu harus sama dengan nama kolom / field yang ada di database tabel siswa.


STEP 7 – BUAT FORM
Langkah terakhir kita akan buat sebuah file berisi form tambahnya. Buat file baru dengan nama form.php, lalu simpan pada folder xampp/htdocs/multiple_insert/application/views/. Berikut ini kode dan tampilannya :

Form - Cara Membuat Multiple Insert dengan Codeigniter dan MySQL

<html>
<head>
  <title>Multiple Insert</title>
  
  <!-- Load File Jquery -->
  <script src="<?php echo base_url("js/jquery.min.js"); ?>" type="text/javascript"></script>
</head>
<body>
  <h1>Form Tambah Siswa</h1>
  
  <form method="post" action="<?php echo base_url("index.php/siswa/save"); ?>">
    <!-- Buat tombol untuk menabah form data -->
    <button type="button" id="btn-tambah-form">Tambah Data Form</button>
    <button type="button" id="btn-reset-form">Reset Form</button><br><br>
    
    <b>Data ke 1 :</b>
    <table>
      <tr>
        <td>NIS</td>
        <td><input type="text" name="nis[]" required></td>
      </tr>
      <tr>
        <td>Nama</td>
        <td><input type="text" name="nama[]" required></td>
      </tr>
      <tr>
        <td>Telepon</td>
        <td><input type="text" name="telp[]" required></td>
      </tr>
      <tr>
        <td>Alamat</td>
        <td><textarea name="alamat[]" required></textarea></td>
      </tr>
    </table>
    <br><br>

    <div id="insert-form"></div>
    
    <hr>
    <input type="submit" value="Simpan">
  </form>
  
  <!-- Kita buat textbox untuk menampung jumlah data form -->
  <input type="hidden" id="jumlah-form" value="1">
  
  <script>
  $(document).ready(function(){ // Ketika halaman sudah diload dan siap
    $("#btn-tambah-form").click(function(){ // Ketika tombol Tambah Data Form di klik
      var jumlah = parseInt($("#jumlah-form").val()); // Ambil jumlah data form pada textbox jumlah-form
      var nextform = jumlah + 1; // Tambah 1 untuk jumlah form nya
      
      // Kita akan menambahkan form dengan menggunakan append
      // pada sebuah tag div yg kita beri id insert-form
      $("#insert-form").append("<b>Data ke " + nextform + " :</b>" +
        "<table>" +
        "<tr>" +
        "<td>NIS</td>" +
        "<td><input type='text' name='nis[]' required></td>" +
        "</tr>" +
        "<tr>" +
        "<td>Nama</td>" +
        "<td><input type='text' name='nama[]' required></td>" +
        "</tr>" +
        "<tr>" +
        "<td>Telepon</td>" +
        "<td><input type='text' name='telp[]' required></td>" +
        "</tr>" +
        "<tr>" +
        "<td>Alamat</td>" +
        "<td><textarea name='alamat[]' required></textarea></td>" +
        "</tr>" +
        "</table>" +
        "<br><br>");
      
      $("#jumlah-form").val(nextform); // Ubah value textbox jumlah-form dengan variabel nextform
    });
    
    // Buat fungsi untuk mereset form ke semula
    $("#btn-reset-form").click(function(){
      $("#insert-form").html(""); // Kita kosongkan isi dari div insert-form
      $("#jumlah-form").val("1"); // Ubah kembali value jumlah form menjadi 1
    });
  });
  </script>
</body>
</html>

Saya akan jelaskan terlebih dahulu fungsi dari ketiga tombol yang ada pada form multiple insert yang akan kita buat ini. Pertama, tombol Tambah Data Form berfungsi untuk menambah form inputan data siswa. Kedua, tombol Reset Form berfungsi untuk mereset form inputan data siswa kembali menjadi 1 form inputan data siswa. Ketiga, tombol Simpan berfungsi untuk melakukan proses pengiriman data siswa yang telah diinput menuju file proses.php yang kemudian akan di simpan ke database.

Trik utama dalam hal membuat multiple insert adalah ada pada penamaan (atribut name) dari setiap textbox. Yakni dengan menambahkan “[]” kepada setiap nama textboxnya. Dalam kasus kita buat nama masing-masing textbox menjadi seperti ini :
<input type=”text” name=”nis[]” required>
<input type=”text” name=”nama[]” required>
<input type=”text” name=”telp[]” required>
<textarea name=”alamat[]” required></textarea>
Fungsi dari tanda “[]” adalah agar data-data yang kita input ketika dikirim ke fungsi save() di controller siswa akan menjadi sebuah array. Dalam fungsi save() kita akan melakukan perulangan terhadap array tersebut (Seperti yang sudah dijelaskan pada step 5). Sehingga kita tidak perlu membuat query insert sebanyak data yang ingin kita inputkan.

<div id=”insert-form”></div>
Kode ini akan kita gunakan untuk menampung data form inputan siswa. Jadi ketika kita akan menambah form inputan data siswa, nanti form tersebut akan ditambahkan ke dalam div tersebut dengan bantuan jquery.

<input type=”hidden” id=”jumlah-form” value=”1″>
Textbox ini sengaja saya sembunyikan karena hanya berfungsi sebagai penampung jumlah form inputan siswa yang ada itu berapa. Sebagai default kita set valuenya dengan 1, karena ketika awal masuk form inputan data siswanya hanya ada 1. Textbox ini akan kita gunakan sebagai penomoran form inputan data siswa nya. Di dalam form saya buat label “Data ke n”, n disitu nanti kita isi dengan jumlah form yang ada pada textbox ini ditambah 1.

$(“#insert-form”).append(“……
Kode ini lah yang nantinya berfungsi untuk menabah form inputan ke dalam tag div insert-form yang sudah saya bahas sebelumnya.


Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.
Bingung cara downloadnya? klik disini untuk melihat caranya.


SUMBER & REFERENSI
Dokumentasi Codeigniter : https://www.codeigniter.com/user_guide
Membuat multiple insert dengan codeigniter, Membuatmultiple insert dengan codeigniter 3, tutorial membuat multiple insert dengan codeigniter dan mysql, cara mudah membuatmultiple insert dengan framework codeigniter 3 dan database mysql

Multiple Insert

The post Cara Membuat Multiple Insert dengan Codeigniter dan MySQL appeared first on My Notes Code.

]]>
https://www.mynotescode.com/multiple-insert-dengan-codeigniter/feed/ 6
Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA https://www.mynotescode.com/captcha-dengan-google-recaptcha/ https://www.mynotescode.com/captcha-dengan-google-recaptcha/#respond Wed, 04 Jul 2018 09:43:34 +0000 https://www.mynotescode.com/?p=2010 Catatan yang akan saya bahas pada kesempatan kali ini adalah mengenai captcha. Apa itu Captcha? Captcha adalah suatu bentuk uji tantangan-tanggapan (challange-response test) yang digunakan dalam perkomputeran untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer. Proses ini biasanya melibatkan suatu komputer (server) yang meminta seorang pengguna untuk menyelesaikan suatu uji sederhana yang dapat dihasilkan dan dinilai oleh komputer tersebut....

The post Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA appeared first on My Notes Code.

]]>
Catatan yang akan saya bahas pada kesempatan kali ini adalah mengenai captcha. Apa itu Captcha? Captcha adalah suatu bentuk uji tantangan-tanggapan (challange-response test) yang digunakan dalam perkomputeran untuk memastikan bahwa jawaban tidak dihasilkan oleh suatu komputer. Proses ini biasanya melibatkan suatu komputer (server) yang meminta seorang pengguna untuk menyelesaikan suatu uji sederhana yang dapat dihasilkan dan dinilai oleh komputer tersebut. Karena komputer lain tidak dapat memecahkan CAPTCHA, pengguna manapun yang dapat memberikan jawaban yang benar akan dianggap sebagai manusia.

Untuk catatan ini, kita tidak akan membuat sendiri captcha tersebut. Melainkan kita akan menggunakan captcha buatan google yang dikenal dengan sebutan Google reCAPTCHA. Tentunya karena kita menggunakan captchat buatan google, Anda harus memiliki akun google terlebuh dahulu sebelum kita lanjutkan pada tahapan penggunaan captcha tersebut.


DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – SETTING GOOGLE RECAPTCHA
Hal pertama yang akan kita lakukan adalah mengaktifkan Google reCaptcha nya. Berikut ini caranya :

  1. Buka www.google.com lalu login menggunakan akun Anda.
  2. Buka link ini : https://www.google.com/recaptcha
  3. Lalu klik tombol My reCAPTCHA pada pojok kanan atas.
    Home Page - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA
  4. Anda akan melihat sebuah form seperti ini :
    Register - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA
    Untuk Label bisa Anda isikan bebas sesuai nama aplikasi yang Anda buat. Untuk kali ini kita beri label “Captcha”. Kemudian untuk tipe reCAPTCHA nya kita pilih yang reCAPTCHA v2. Sehingga form tersebut akan terisi seperti gambar berikut :
    Data Register - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHABerikut ini sedikit penjelasan dari 3 tipe reCAPTCHA yang tersedia :
    reCaptcha v2
    reCAPTCHA v2 mengharuskan pengguna untuk mengklik kotak centang yang menunjukkan bahwa pengguna bukanlah robot.Invisible reCAPTCHA
    Invisible reCAPTCHA tidak mengharuskan pengguna untuk mengklik pada kotak centang, melainkan dipanggil langsung ketika pengguna mengklik tombol yang ada di situs Anda atau dapat dipanggil melalui panggilan API JavaScript.reCAPTCHA Android
    The reCAPTCHA Android adalah bagian dari layanan Google Play SafetyNet APIs. Librari ini menyediakan API Android native yang bisa Anda integrasikan langsung ke dalam aplikasi android Anda.Untuk lebih detailnya mengenai tipe captcha tersebut, silahkan lihat pada link ini :
    https://developers.google.com/recaptcha/docs/versions
  5. Setelah Anda memilih tipe reCaptcha v2, akan muncul inputan baru dibawahnya seperti berikut ini :
    Register 2 - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA
    Silahkan isi Domains dengan nama domain dari website Anda. Untuk sekarang, kita isikan saja dengan “localhost”. Lalu ceklis checkbox “Accept the reCAPTCHA Terms of Service”. Seperti gambar dibawah ini :
    Data Register 2 - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA
    Setelah diisi, klik tombol Register.
  6. Kemudian setelah proses register berhasil, Anda akan melihat tampilan seperti berikut ini :
    Register Berhasil - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA
    Sekarang Anda sudah mendapatkan 2 buah key yakni Site Key dan Secret Key. 2 key ini nanti akan kita gunakan sebagai kode/token agar kita bisa menggunakan reCAPTCHA. Khusus untuk Secret Key, jangan sampai orang lain yang bukan termasuk ke dalam tim pengembang web Anda tahu.


STEP 2 – IMPLEMENTASI DI PHP
Kita akan coba implementasikan Google reCAPTCHA dengan PHP. Buat sebuah folder dengan nama recaptcha, lalu simpan pada folder xampp/htdocs/.


STEP 3 – FORM KOMENTAR
Sekarang kita akan buat sebuah form komentar yang nantinya akan kita validasi dengan Google reCAPTCHA. Buat sebuah file dengan nama index.php, lalu simpan pada folder xampp/htdocs/recaptcha/. Berikut ini tampilan dan kodenya :

Form - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA

<html>
<head>
  <title>Google reCAPTCHA</title>
  
  <!-- Load Librari Google reCaptcha nya -->
  <script src='https://www.google.com/recaptcha/api.js'></script>
</head>
<body>
  <h2>Form Komentar</h2>
  <hr>
  <form method="post" action="proses.php">
    <label><b>Nama</b></label><br>
    <input type="text" name="nama"><br><br>
    
    <label><b>Email</b></label><br>
    <input type="email" name="email"><br><br>
    
    <label><b>Komentar</b></label><br>
    <textarea rows="5" name="komentar"></textarea><br><br>
    
    <div class="g-recaptcha" data-sitekey="isi_dengan_site_key_nya"></div>
    
    <hr>
    <button type="submit">Kirim</button>
  </form>
</body>
</html>

Pada kode diatas, kita membuat sebuah form yang berisikan inputan nama, email, komentar dan google recaptcha. Syarat paling utama yang harus dilakukan agar Google reCAPTCHA nya berjalan dengan baik adalah load file javascript api dari Google reCAPTCHA nya :

<script src=’https://www.google.com/recaptcha/api.js’></script>

Kemudian yang tidak kalah pentingnya adalah kode berikut :

<div class=”g-recaptcha” data-sitekey=”isi_dengan_site_key_nya“></div>

Ada 1 hal yang harus Anda ubah pada kode diatas, yakni yang tulisan isi_dengan_site_key_nya itu diubah dengan site key dari Google reCAPTCHA Anda (sesuai yang saya jelaskan pada step 1 nomor 6).


STEP 4 – PROSES
Terakhir kita akan buat file untuk melakukan validasi captcha nya. Buat sebuah file dengan nama proses.php, lalu simpan pada folder xampp/htdocs/recaptcha/. Berikut ini kodenya :

<?php
// Secret Key ini kita ambil dari halaman Google reCaptcha
// Sesuai pada catatan saya di STEP 1 nomor 6
$secret_key = "isi_dengan_secret_key_nya";

// Disini kita akan melakukan komunkasi dengan google recpatcha
// dengan mengirimkan scret key dan hasil dari response recaptcha nya
$verify = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.'&response='.$_POST['g-recaptcha-response']);
$response = json_decode($verify);

if($response->success){ // Jika proses validasi captcha berhasil
  echo "<h2>Captcha Valid</h2>";
  echo "Yes, you're human (Anda adalah manusia)<hr>";
  echo "<b>Nama :</b><br>".$_POST['nama']."<br><br>";
  echo "<b>Email :</b><br>".$_POST['email']."<br><br>";
  echo "<b>Komentar :</b><br>".$_POST['komentar'];
}else{ // Jika captcha tidak valid
  echo "<h2>Captcha Tidak Valid</h2>";
  echo "Ohh sorry, you're not human (Anda bukan manusia)<hr>";
  echo "Silahkan klik kotak I'm not robot (reCaptcha) untuk verifikasi";
}
?>

$secret_key = “isi_dengan_secret_key_nya“;
Yang harus Anda ubah pada kode ini adalah tulisan isi_dengan_secret_key_nya ganti dengan secret key dari Google reCAPTCHA Anda (sesuai yang saya jelaskan pada step 1 nomor 6).

$response = json_decode($verify);
Kode ini berfungsi untuk mengubah data json menjadi object agar kita bisa mengaksesnya di php dengan tanda panah. Contoh $response->success, ini berarti kita ingin melihat data response dengan index success. Gambar berikut ini akan menampilkan isi dari $verify sebelum di konversi jadi object, dan juga isi dari $response yang merupakan hasil dari konversi $verify menjadi json.

Response JSON - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA

Gambar 1 : Menampilkan isi dari $verify (berupa json)

Response Object - Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA

Gambar 2 : Menampilkan isi dari $response (hasil konversi $verify menjadi object)


Sekian untuk catatan kali ini. Semoga catatan ini bisa bermanfaat. Apabila ada yang ingin ditanyakan, langsung tanyakan saja lewat form komentar dibawah ini. Jangan lupa LIKE & SHARE nya hehe. Terimakasih.


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.
Bingung cara downloadnya? klik disini untuk melihat caranya.


SUMBER & REFERENSI
https://id.wikipedia.org/wiki/CAPTCHA
https://developers.google.com/recaptcha/docs/versions
Tutorial membuat captcha dengan menggunakan google recaptcha. Cara mudah membuat captcha dengan google recaptcha. Cara simpel membuat captcha dengan google recaptcha. Source Code captcha dengan google recaptcha.

Captcha

The post Cara Membuat Captcha dengan Menggunakan Google reCAPTCHA appeared first on My Notes Code.

]]>
https://www.mynotescode.com/captcha-dengan-google-recaptcha/feed/ 0
Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP https://www.mynotescode.com/multiple-delete-php-mysql/ https://www.mynotescode.com/multiple-delete-php-mysql/#respond Fri, 22 Jun 2018 04:25:29 +0000 https://www.mynotescode.com/?p=1995 Apa sebenarnya keuntungan dari fitur “Multiple Delete”? keuntungan dengan menyediakan fitur ini yakni agar memudahkan user yang menggunakan aplikasi kita untuk menghapus lebih dari 1 data dalam sekali aksi artinya fitur ini akan sangat berguna ketika user akan menghapus banyak data. Akan cukup merepotkan juga ketika dalam aplikasi hanya disediakan fitur hapus per 1 data, sementara...

The post Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP appeared first on My Notes Code.

]]>
Apa sebenarnya keuntungan dari fitur “Multiple Delete”? keuntungan dengan menyediakan fitur ini yakni agar memudahkan user yang menggunakan aplikasi kita untuk menghapus lebih dari 1 data dalam sekali aksi artinya fitur ini akan sangat berguna ketika user akan menghapus banyak data. Akan cukup merepotkan juga ketika dalam aplikasi hanya disediakan fitur hapus per 1 data, sementara user diharuskan menghapus banyak data. Untuk catatan kali ini, saya akan berbagi kepada Anda semua tentang bagaimana membuat fitur tersebut dengan menggunakan PHP dan MySQL.

DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :

  1. Download JQUERY, klik link berikut : Download.
    Bingung cara downloadnya? klik disini untuk melihat caranya.
  2. Buat sebuah folder baru dengan nama multiple_delete, lalu simpan pada folder xampp/htdocs/.
  3. Buat sebuah folder dengan nama js, lalu simpan pada folder xampp/htdocs/search_ajax/.
  4. Rename file JQUERY yang telah di download tadi menjadi jquery.min.js, lalu copy and paste pada folder xampp/htdocs/multiple_delete/js/.


STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama siswa. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP

    CREATE TABLE IF NOT EXISTS `siswa` (
      `nis` varchar(11) NOT NULL,
      `nama` varchar(50) NOT NULL,
      `jenis_kelamin` varchar(10) NOT NULL,
      `telp` varchar(15) NOT NULL,
      `alamat` text NOT NULL,
      PRIMARY KEY (`nis`)
    )

STEP 3 – KONEKSI DATABASE
Pada step ini, kita akan membuat file koneksi.php yang berfungsi untuk menghubungkan dengan database MySQL. Silahkan buat file koneksi.php, lalu simpan di folder xampp/htdocs/multiple_delete/. Berikut ini kodenya :

<?php
$host = 'localhost'; // Nama hostnya
$username = 'root'; // Username
$password = ''; // Password (Isi jika menggunakan password)
$database = 'mynotescode'; // Nama databasenya

// Koneksi ke MySQL dengan PDO
$pdo = new PDO('mysql:host='.$host.';dbname='.$database, $username, $password);
?>

STEP 4 – FORM
Langkah selanjutnya adalah membuat 1 buah file yang berisi sebuah form untuk melakukan proses hapus data. Buat sebuah file dengan nama index.php, lalu simpan pada folder xampp/htdocs/multiple_delete/. Berikut tampilan dan kodenya :

Form - Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP

<html>
<head>
  <title>Multiple Delete</title>
  
  <!-- Load librari/plugin jquery nya -->
  <script src="js/jquery.min.js"></script> 
</head>
<body>
  <h1>Multiple Delete</h1>
  
  <form method="post" action="delete.php" id="form-delete">
    <table border="1" cellpadding="5">
      <tr>
        <th><input type="checkbox" id="check-all"></th>
        <th>NIS</th>
        <th>Nama</th>
        <th>Telepon</th>
        <th>Alamat</th>
      </tr>
      <?php
      // Load file koneksi.php
      include "koneksi.php";
      
      // Buat query untuk menampilkan semua data siswa
      $sql = $pdo->prepare("SELECT * FROM siswa");
      $sql->execute(); // Eksekusi querynya
      
      $no = 1; // Untuk penomoran tabel, di awal set dengan 1
      while($data = $sql->fetch()){ // Ambil semua data dari hasil eksekusi $sql
        echo "<tr>";
        echo "<td><input type='checkbox' class='check-item' name='nis[]' value='".$data['nis']."'></td>";
        echo "<td>".$data['nis']."</td>";
        echo "<td>".$data['nama']."</td>";
        echo "<td>".$data['telp']."</td>";
        echo "<td>".$data['alamat']."</td>";
        echo "</tr>";
        
        $no++; // Tambah 1 setiap kali looping
      }
      ?>
    </table>
    <hr>
    <button type="button" id="btn-delete">DELETE</button>
  </form>
  
  <script>
  $(document).ready(function(){ // Ketika halaman sudah siap (sudah selesai di load)
    $("#check-all").click(function(){ // Ketika user men-cek checkbox all
      if($(this).is(":checked")) // Jika checkbox all diceklis
        $(".check-item").prop("checked", true); // ceklis semua checkbox siswa dengan class "check-item"
      else // Jika checkbox all tidak diceklis
        $(".check-item").prop("checked", false); // un-ceklis semua checkbox siswa dengan class "check-item"
    });
    
    $("#btn-delete").click(function(){ // Ketika user mengklik tombol delete
      var confirm = window.confirm("Apakah Anda yakin ingin menghapus data-data ini?"); // Buat sebuah alert konfirmasi
      
      if(confirm) // Jika user mengklik tombol "Ok"
        $("#form-delete").submit(); // Submit form
    });
  });
  </script>
</body>
</html>

Untuk fitur multiple delete yang akan kita buat ini, konsepnya adalah dengan memanfaatkan checkbox. Checkbox ini berguna untuk agar user bisa memilih data mana saja yang akan dia hapus. Jadi kita akan melakukan hapus data terhadap data siswa yang user ceklis saja.

echo “<td><input type=’checkbox’ class=’check-item’ name=’nis[]‘ value='”.$data[‘nis’].”‘></td>”;
Kunci utama dari multiple delete ini adalah atribut name pada checkbox siswa nya. Pada kode diatas, terlihat saya memberi atribut checkbox nya dengan “nis[]” dan diisi dengan value dari nis siswa tersebut. Arti dari kurung siku disitu adalah agar ketika kita kirim data nis tadi ke file proses hapus melalui form submit, data nis tersebut menjadi sebuah array yang berisi nis siswa yang telah di pilih oleh user. Kalau kita coba lihat isi dari data nis tersebut, hasilnya akan seperti gambar dibawah ini :

Array - Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP

Gambar diatas merupakan hasil dari kode print_r($_POST); pada file proses hapus (akan kita buat pada step selanjutnya). Untuk melihat data apa saja yang dikirim dari form. Terlihat bahwa terdapat data nis yang berisi nis-nis yang berjumlah 5 nis (karena di form saya ceklis 5 siswa).


STEP 5 – PROSES HAPUS
Selanjutnya akan membuat proses hapusnya. Buat sebuah file dengan nama delete.php, lalu simpan pada folder xampp/htdocs/multiple_delete/. Berikut ini kodenya :

<?php
// Load file koneksi.php
include "koneksi.php";

$nis = $_POST['nis']; // Ambil data NIS yang dikirim oleh index.php melalui form submit
$query = "DELETE FROM siswa WHERE nis IN(".implode(",", $nis).")"; // Buat variabel $query untuk menampung query delete

$sql = $pdo->prepare($query);
$sql->execute(); // Eksekusi/Jalankan query dari variabel $query

header("location: index.php"); // Redirect ke halaman index.php
?>

Pada proses hapus disini, kita akan coba menyatukan data nis (berupa array) menjadi sebuah string dengan tanda pemisah koma “,”. Caranya yakni dengan menggunakan fungsi implode() di php. Struktur dasara fungsi implode adalah :

implode ( string $glue , array $pieces )

Jadi parameter pertama diisi dengan string pemisah nya apa. Parameter kedua diisi dengan array yang akan kita satukan dengan pemisah yang ditentukan di parameter pertama. Gambar berikut ini menunjukan array data nis dan hasil dari fungsi implode yang di lakukan terhadap array data nis tadi :

Array - Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP

Gambar 1 : Array Data NIS

Implode - Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP

Gambar 2 : Hasil Implode terhadap array data NIS

Dapat Anda lihat dari kedua gambar diatas, hasil dari fungsi implode berisi data nis dengan pemisah koma antar nis nya. Setelah mendapatkan data nis dengan pemisah koma, kita akan lakkukan query delete dengan where clause “IN”. Contoh :
DELETE FROM siswa WHERE nis IN (10110470116,10110470118,10110470119,10110470121,10110470122)

Nanti otomatis mysql akan menghapus data siswa dengan nis yang ada pada tanda kurung ().


Sekian untuk catatan kali ini. Semoga catatan ini bisa bermanfaat. Apabila ada yang ingin ditanyakan, langsung tanyakan saja lewat form komentar dibawah ini. Jangan lupa LIKE & SHARE nya hehe. Terimakasih.


SOURCE CODE
Untuk mengunduh source code nya, klik salah satu link dibawah ini
– Download versi PDO : Link download yang sesuai tutorial ini yakni menggunakan fungsi PDO untuk query ke databasenya
– Download versi MySQLi : Link download untuk Anda yang ingin source code versi MySQLi dari tutorial ini
Bingung cara downloadnya? klik disini untuk melihat caranya.


SUMBER & REFERENSI
http://php.net/manual/en/language.types.array.php
http://php.net/manual/en/book.pdo.php
Tutorial membuat multiple delete dengan checkbox menggunakan php dan mysql, Tutorial membuat multiple delete data dengan checkbox menggunakan php jquery dan mysql, cara mudah membuat multiple delete dengan checkbox menggunakan php dan mysql. Source code multiple delete dengan checkbox menggunakan php dan mysqli.

Multiple Delete

The post Cara Membuat Multiple Delete dengan Checkbox menggunakan PHP appeared first on My Notes Code.

]]>
https://www.mynotescode.com/multiple-delete-php-mysql/feed/ 0
Cara Membuat Format Tanggal Bahasa Indonesia dengan PHP https://www.mynotescode.com/format-tanggal-bahasa-indonesia-dengan-php/ https://www.mynotescode.com/format-tanggal-bahasa-indonesia-dengan-php/#respond Wed, 16 May 2018 05:45:35 +0000 https://www.mynotescode.com/?p=1981 Tutorial yang akan kita bahas kali ini adalah tentang bagaimana cara membuat format tanggal bahasa indonesia. Secara default PHP menggunakan bahasa inggris untuk format tanggalnya. Sebagai contoh <?php echo date(“d F Y”); ?>, kode tersebut akan mengeluarkan hasil seperti berikut : 15 May 2018 (tanggal hari ini). Sebenarnya sih tidak terlalu masalah, tapi kadang ada klien...

The post Cara Membuat Format Tanggal Bahasa Indonesia dengan PHP appeared first on My Notes Code.

]]>
Tutorial yang akan kita bahas kali ini adalah tentang bagaimana cara membuat format tanggal bahasa indonesia. Secara default PHP menggunakan bahasa inggris untuk format tanggalnya. Sebagai contoh <?php echo date(“d F Y”); ?>, kode tersebut akan mengeluarkan hasil seperti berikut : 15 May 2018 (tanggal hari ini). Sebenarnya sih tidak terlalu masalah, tapi kadang ada klien yang menginginkan format tanggalnya dengan bahasa indonesia.

STEP 1 – PERSIAPAN
Buat sebuah folder dengan nama tanggal_indonesia. Lalu simpan pada folder xampp/htdocs/.


STEP 2 – FUNGSI DATE HELPER
Pada tutorial ini kita akan memanfaatkan array dan date untuk kita manipulasi agar bisa mengkonversi tanggalnya menjadi format bahasa indonesia. Buat sebuah file dengan nama date_helper.php, lalu simpan pada folder xampp/htdocs/tanggal_indonesia/. Berikut ini adalah kode nya :

<?php
function month($month, $format = "mmmm"){
  if($format == "mmmm"){
    $fm = array("Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember");
  }elseif($format == "mmm"){
    $fm = array("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des");
  }
  
  return $fm[$month-1];
}

function day($day, $format = "dddd"){
  if($format == "dddd"){
    $fd = array("Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","Minggu");
  }elseif($format == "ddd"){
    $fd = array("Sen","Sel","Rab","Kam","Jum","Sab","Min");
  }
  
  return $fd[$day-1];
}
?>

Pada kode diatas kita akan membuat 2 buah fungsi.

function month($month, $format = “mmmm”)
Fungsi month berfungsi untuk mengubah bulan menjadi bahasa indonesia. Fungsi ini kita tetapkan memiliki 2 parameter. Parameter pertama adalah $month. $month ini diisi dengan bulan ke berapa yang akan kita ubah (januari : 1, Februari : 2, Maret : 3, dan sebagainya). Lalu parameter kedua adalah  $format yang diinginkan untuk bulannya, apakah dalam format yang full (Januari, Februari, Maret, dan sebagainya) atau singkatan dari bulannya (Jan, Feb, Mar, dan sebagainya). Parameter kedua juga kita beri nilai default yaitu dengan format full alias “mmmm”.

function day($day, $format = “dddd”)
Fungsi day berfungsi untuk mengubah hari menjadi bahasa indonesia. Hampir sama dengan fungsi month, fungsi ini juga memiliki 2 parameter. Parameter pertama adalah $day. $day ini diisi dengan bulan ke berapa yang akan kita ubah (Senin : 1, Selasa : 2, Rabu : 3, dan sebagainya). Lalu parameter kedua adalah  $format yang diinginkan untuk harinya, apakah dalam format yang full (Senin, Selasa, Rabu, dan sebagainya) atau singkatan dari harinya (Sen, Sel, Rab, dan sebagainya). Parameter kedua juga kita beri nilai default yaitu dengan format full alias “dddd”.


STEP 3 – TAMPILAN UTAMA
Sekarang kita akan coba buat sebuah file yang kita gunakan sebagai tampilan utama. Dimana nantinya pada file ini kita akan akses fungsi month() dan day() yang ada pada file date_helper.php. Buat sebuah file dengan nama index.php, lalu simpan pada folder xampp/htdocs/tanggal_indonesia/. Berikut tampilan dan kodenya :

Contoh Cara Membuat Format Tanggal Bahasa Indonesia dengan PHP

<?php
include "date_helper.php"; // Load file date_helper.php nya

echo "<b>month(2)</b><br>";
echo month(2); // Outputnya : Februari

echo "<br><br><br>";

echo "<b>month(2, 'mmm')</b><br>";
echo month(2, 'mmm'); // Outputnya : Feb

echo "<br><br><br>";

echo "<b>TANGGAL SEKARANG</b><br>";
echo date("d")." ".month(date("n"))." ".date("Y"); // Outputnya : 16 Mei 2018

echo "<br><br><br>";

echo "<b>TANGGAL SEKARANG + Hari (Format Full)</b><br>";
echo day(date("N")).", ".date("d")." ".month(date("n"))." ".date("Y"); // Outputnya : Rabu, 16 Mei 2018

echo "<br><br><br>";

echo "<b>TANGGAL SEKARANG + Hari (Format Singkatan)</b><br>";
echo day(date("N"), 'ddd').", ".date("d")." ".month(date("n"))." ".date("Y"); // Outputnya : Rab, 16 Mei 2018

echo "<br><br><br>";

$tanggal = "2018-04-01"; // Set tanggal 1 April 2018

echo "<b>TANGGAL 01-04-2018 (Format Full)</b><br>";
echo date("d", strtotime($tanggal))." ".month(date("n", strtotime($tanggal)))." ".date("Y", strtotime($tanggal));

echo "<br><br><br>";

echo "<b>TANGGAL 01-04-2018 (Format Singkatan)</b><br>";
echo date("d", strtotime($tanggal))." ".month(date("n", strtotime($tanggal)), 'mmm')." ".date("Y", strtotime($tanggal));
?>

include “date_helper.php”;
Kode ini berfungsi untuk men-load file date_helper.php. Karena disini kita ingin menggunakan fungsi month() dan day() yang ada di file tersebut

date(“d“)
Dalam PHP, kode ini berfungsi untuk mengambil tanggal sekarang (sesuai jam di komputer Anda / server). Struktur dasar nya adalah date(format, timestamp). Parameter pertama adalah format. format ini sudah di tentukan oleh PHP, berikut penjelasan beberapa format dalam fungsi date :

  1. d : Mengambil tanggal (01 – 31)
  2. m : Mengambil bulan (01 – 12)
  3. Y : Mengambil tahun dalam format “yyyy” (2015, 2016, 2017, dan sebagainya)
  4. n : Mengambil bulan sama dengan “m”, tapi tanpa di awal angka 0 untuk angka 1 – 9. (Contoh 1, 2 sampai 12)
  5. N : Mengambil hari dalam angka. Dimulai dari Senin = 1, Selasa = 2, Rabu = 3, sampai dengan minggu = 7.
  6. Untuk lebih detailnya soal date(), silahkan klik link ini : PHP Date (Anda akan dibawa ke halaman iklan dulu, harap tunggu 5 detik, lalu klik tombol SKIP AD yang ada di pojok kanan atas)

strtotime($tanggal)
Kode ini berfungsi untuk mengkonversi tanggal bertipe string menjadi tanggal dengan tipe timestamp. Karena yang dibutuhkan fungsi date() pada parameter keduanya adalah bertipe timestamp, maka kita konversi dulu dengan strtotime() ini.


Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SUMBER & REFERENSI
http://php.net/manual/en/function.date.php
http://php.net/manual/en/function.strtotime.php

Buat format tanggal dalam bahasa indonesia dengan PHP, Tutorial membuat format tanggal dalam bahasa indonesia dengan PHP, Cara Simpel buat format tanggal indonesia dengan PHP

Tanggal Bahasa Indonesia

 

The post Cara Membuat Format Tanggal Bahasa Indonesia dengan PHP appeared first on My Notes Code.

]]>
https://www.mynotescode.com/format-tanggal-bahasa-indonesia-dengan-php/feed/ 0
Cara Mudah Membuat Form Login dengan Session PHP https://www.mynotescode.com/form-login-dengan-session-php/ https://www.mynotescode.com/form-login-dengan-session-php/#comments Tue, 15 May 2018 01:09:32 +0000 https://www.mynotescode.com/?p=1964 Catatan kali ini adalah mengenai cara membuat sebuah form login dan juga logout dengan menggunakan Session pada PHP. Pertanyaan yang muncul pertama kali dalam benak Anda mungkin adalah Apa itu Session?. Saat Anda menggunakan sebuah aplikasi, Anda membuka aplikasi tersebut, melakukan beberapa perubahan pada aplikasi tersebut dan Anda menutup aplikasi tersebut. Ini bisa disebut seperti...

The post Cara Mudah Membuat Form Login dengan Session PHP appeared first on My Notes Code.

]]>
Catatan kali ini adalah mengenai cara membuat sebuah form login dan juga logout dengan menggunakan Session pada PHP. Pertanyaan yang muncul pertama kali dalam benak Anda mungkin adalah Apa itu Session?. Saat Anda menggunakan sebuah aplikasi, Anda membuka aplikasi tersebut, melakukan beberapa perubahan pada aplikasi tersebut dan Anda menutup aplikasi tersebut. Ini bisa disebut seperti Session. Komputer bisa mengetahui siapa Anda, kapan Anda membuka Aplikasi dan kapan Anda menutup Aplikasi. Tapi dalam internet, ini merupakan sebuah masalah. Internet tidak bisa mengetahui siapa Anda atau apa yang sedang Anda lakukan karena alamat HTTP tidak bisa menyimpan sebuah status/informasi. Dari cerita singkat tadi, masalah yang ada pada internet bisa diatasi dengan yang namanya Session. Session dapat menyimpan sebuah informasi dimana informasi tersebut bisa kita akses pada semua halaman website yang kita buat. Secara default, Session akan terhapus sampai Anda menutup browser.

Jadi intinya Session ini bisa menyimpan informasi yang bisa di akses pada semua halaman sampai browser nya ditutup.


DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Sebagai persiapan awal, silahkan buat sebuah folder baru dengan nama login_php, lalu simpan pada folder xampp/htdocs/.


STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama user. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Mudah Membuat Form Login dengan Session PHP

    CREATE TABLE IF NOT EXISTS `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(50) NOT NULL,
      `password` varchar(50) NOT NULL,
      `nama` varchar(200) NOT NULL,
      PRIMARY KEY (`id`)
    )

STEP 3 – KONEKSI DATABASE
Pada step ini, kita akan membuat file koneksi.php yang berfungsi untuk menghubungkan dengan database MySQL. Silahkan buat file koneksi.php, lalu simpan di folder xampp/htdocs/login_php/. Berikut ini kodenya :

<?php
$host = 'localhost'; // Nama hostnya
$username = 'root'; // Username
$password = ''; // Password (Isi jika menggunakan password)
$database = 'mynotescode'; // Nama databasenya

// Koneksi ke MySQL dengan PDO
$pdo = new PDO('mysql:host='.$host.';dbname='.$database, $username, $password);
?>

STEP 4 – FORM LOGIN
Langkah selanjutnya adalah membuat 1 buah file yang berisi form loginnya. Buat sebuah file dengan nama index.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut tampilan dan kodenya :

Form Login - Cara Mudah Membuat Form Login dengan Session PHP

<?php
session_start(); // Start session nya

// Kita cek apakah user sudah login atau belum
// Cek nya dengan cara cek apakah terdapat session username atau tidak
if(isset($_SESSION['username'])){ // Jika session username ada berarti dia sudah login
  header("location: welcome.php"); // Kita Redirect ke halaman welcome.php
}
?>

<html>
<head>
  <title>Halaman Sebelum Login</title>
</head>
<body>
  <h1>Silahkan login terlebih dahulu...</h1>
  
  <div style="color: red;margin-bottom: 15px;">
    <?php
    // Cek apakah terdapat cookie dengan nama message
    if(isset($_COOKIE["message"])){ // Jika ada
      echo $_COOKIE["message"]; // Tampilkan pesannya
    }
    ?>
  </div>
  
  <form method="post" action="login.php">
    <label>Username</label><br>
    <input type="text" name="username" placeholder="Username"><br><br>
    
    <label>Password</label><br>
    <input type="password" name="password" placeholder="Password"><br><br>
    
    <button type="submit">Login</button>
  </form>
</body>
</html>

session_start();
Skrip ini berfungsi untuk memulai/menjalankan session. karena disini kita akan membuat login menggunakan session.

$_SESSION[‘username‘]
Salah satu cara untuk mengambil value dari sebuah session adalah dengan struktur berikut $_SESSION[‘nama_session‘]. nama_session tersebut diisi sesuai dengan nama session yang kita buat saat mendeklarasikan/men-set sessionnya. Dalam tutorial ini saya set sessionnya dengan nama “username“. Kita akan set sessionnya pada proses login nanti pada step selanjutnya.

$_COOKIE[“message“]
Disini kita juga menggunakan yang namanya cookie. Apa sih cookie? cookie inifungsinya hampir sama dengan session. Hanya saja perbedaannya adalah cookie menyimpan informasinya di browser yang kita gunakan. Sementara session menyimpan informasinya pada server dari web itu sendiri. Cara untuk mengambil value dari cookie pun hampir sama dengan session yakni $_COOKIE[‘nama_cookie‘]. Cookie pada tutorial ini kita gunakan untuk menampung pesan error apabila login gagal.


STEP 5 – PROSES LOGIN
Langkah selanjutnya kita akan buat file untuk proses loginnya. Buat sebuah file dengan nama login.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut kodenya :

<?php
session_start(); // Start session nya

include "koneksi.php"; // Load file koneksi.php

$username = $_POST['username']; // Ambil value username yang dikirim dari form
$password = $_POST['password']; // Ambil value password yang dikirim dari form
$password = md5($password); // Kita enkripsi (encrypt) password tadi dengan md5

// Buat query untuk mengecek apakah ada data user dengan username dan password yang dikirim dari form
$sql = $pdo->prepare("SELECT * FROM user WHERE username=:a AND password=:b");
$sql->bindParam(':a', $username);
$sql->bindParam(':b', $password);
$sql->execute(); // Eksekusi querynya

$data = $sql->fetch(); // Ambil datanya dari hasil query tadi

// Cek apakah variabel $data ada datanya atau tidak
if( ! empty($data)){ // Jika tidak sama dengan empty (kosong)
  $_SESSION['username'] = $data['username']; // Set session untuk username (simpan username di session)
  $_SESSION['nama'] = $data['nama']; // Set session untuk nama (simpan nama di session)
  
  setcookie("message","delete",time()-1); // Kita delete cookie message
  
  header("location: welcome.php"); // Kita redirect ke halaman welcome.php
}else{ // Jika $data nya kosong
  // Buat sebuah cookie untuk menampung data pesan kesalahan
  setcookie("message", "Maaf, Username atau Password salah", time()+3600);
  
  header("location: index.php"); // Redirect kembali ke halaman index.php
}
?>

include “koneksi.php”;
Kode tersebut berfungsi untuk me-load file koneksi.php.

$sql = $pdo->prepare(“SELECT * FROM user WHERE username=:a AND password=:b”);
$sql->bindParam(‘:a’, $username);
$sql->bindParam(‘:b’, $password);
$sql->execute();

Kode tersebut berfungsi untuk melakukan query ke database dan mengeksekusinya. Pada cotoh diatas, kita akan melakukan query untuk menampilkan data user berdasarkan username dan password yang telah di input pada form login.

$data = $sql->fetch()
Kode tersebut berfungsi untuk mengambil semua data hasil query dan menampung data-data tersebut di dalam sebuah array lalu menyimpannya ke dalam variabel $data. Dimana nantinya kita bisa memanggil data dari tabel pengguna dari hasil query diatas. Pada form login, saya memasukan username : rizaldi dan password: 12345678. Kalau kita lakukan print_r($data), maka hasilnya akan menjadi seperti gambar berikut :

Print R $data - Cara Mudah Membuat Form Login dengan Session PHP

Karena bentuk dari $data adalah array, maka ketika kita ingin mengakses data nya, kita tinggal panggil dengan $data[‘index_array‘]. Sebagai contoh saya ingin mengambil nama dari usernya, kita tinggal panggil $data[‘nama‘] atau kita juga bisa panggil dengan $data[3].

$_SESSION[‘username’] = $data[‘username’];
$_SESSION[‘nama’] = $data[‘nama’];
Sesuai yang saya katakan pada step sebelumnya, pada proses login, ketika data username dan password yang di masukkan pada form login sesuai dengan yang ada di database. Maka kita akan membuat/men-set sebuah session. Disini saya set 2 session, yang pertama adalah session username ($_SESSION[‘username’]). Session username ini saya isi dengan username yang diambil dari hasil query tadi ($data[‘username’]). Yang kedua adalah session nama ($_SESSION[‘nama’]). Session nama ini juga saya isi dengan nama yang diambil dari hasil query tadi ($data[‘nama’]).

setcookie(“message”, “Maaf, Username atau Password salah”, time()+3600);
Kode ini berfungsi untuk membuat sebuah cookie. Seperti yang saya jelaskan, cookie ini akan kita gunakan untuk menyimpan pesan error yang nantinya akan kita tampilkan pada form login. Disini saya set masa berlaku cookie nya 1 jam (time()+3600). Struktur dasar untuk set cookie ini adalah setcookie(“nama_cookie”, “isi_cookie”, masa_berlaku);


STEP 6 – HALAMAN SETELAH LOGIN
Selanjutnya kita akan buat file untuk halaman setelah loginnya. Buat sebuah file dengan nama welcome.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut tampilan dan kodenya :

Halaman Setelah Login - Cara Mudah Membuat Form Login dengan Session PHP

<?php
session_start(); // Start session nya

// Kita cek apakah user sudah login atau belum
// Cek nya dengan cara cek apakah terdapat session username atau tidak
if( ! isset($_SESSION['username'])){ // Jika tidak ada session username berarti dia belum login
  header("location: index.php"); // Kita Redirect ke halaman index.php karena belum login
}
?>

<html>
<head>
  <title>Halaman Setelah Login</title>
</head>
<body>
  <h1>Selamat datang <?php echo $_SESSION['nama']; ?></h1>
  <h4>Anda berhasil login ke dalam aplikasi</h4>
  
  <a href="logout.php">Logout</a>
</body>
</html>

echo $_SESSION[‘nama’];
Skrip ini berfungsi untuk memanggil session nama yang telah kita set tadi pada proses login. Dimana isinya adalah nama dari user yang login yang kita ambil dari tabel user di database.


STEP 7 – PROSES LOGOUT
Selanjutnya kita akan buat file untuk proses logoutnya. Buat sebuah file dengan nama logout.php, lalu simpan pada folder xampp/htdocs/login_php/. Berikut kodenya :

<?php
session_start(); // Start session nya
session_destroy(); // Hapus semua session

header("location: index.php"); // Redirect ke halaman index.php
?>

session_destroy();
Kode ini berfungsi untuk menghapus semua session yang ada pada website kita.


Sekian untuk tutorial kali ini. Jika ada hal yang ingin ditanyakan, langsung tanyakan saja lewat kolom komentar dibawah ini. Jangan lupa LIKE dan SHARE nya hehe, Terimakasih.


SOURCE CODE
Untuk mengunduh source code nya, klik salah satu link dibawah ini
– Download versi PDO : Link download yang sesuai tutorial ini yakni menggunakan fungsi PDO untuk query ke databasenya
– Download versi MySQLi : Link download untuk Anda yang ingin source code versi MySQLi dari tutorial ini
Bingung cara downloadnya? klik disini untuk mengetahui caranya.


SUMBER & REFERENSI
https://www.w3schools.com/php/php_sessions.asp

Tutorial membuat login dengan session di php, Tutorial mudah membuat form login menggunakan session dengan php dan mysql. Buat login pakai session dengan php. Cara buat form login dengan php dan mysql. Source code login dengan session di php

Login

The post Cara Mudah Membuat Form Login dengan Session PHP appeared first on My Notes Code.

]]>
https://www.mynotescode.com/form-login-dengan-session-php/feed/ 10
Cara Mudah Membuat Format Uang Rupiah dengan PHP https://www.mynotescode.com/format-uang-rupiah-dengan-php/ https://www.mynotescode.com/format-uang-rupiah-dengan-php/#comments Wed, 09 May 2018 13:38:43 +0000 https://www.mynotescode.com/?p=1954 Pada kesempatan kali ini, saya akan share sedikit tips bagi kalian yang pusing dengan bagaimana cara membuat format angka dalam rupiah? maksudnya misal kita punya sebuah angka 1000000, kalau tiadak ada titiknya kan pusing juga bacanya? maka dari itu tutorial ini saya buat agar bisa membuat sebuah format uang standar. Sebenarnya PHP sudah menyediakan sebuah...

The post Cara Mudah Membuat Format Uang Rupiah dengan PHP appeared first on My Notes Code.

]]>
Pada kesempatan kali ini, saya akan share sedikit tips bagi kalian yang pusing dengan bagaimana cara membuat format angka dalam rupiah? maksudnya misal kita punya sebuah angka 1000000, kalau tiadak ada titiknya kan pusing juga bacanya? maka dari itu tutorial ini saya buat agar bisa membuat sebuah format uang standar.

Sebenarnya PHP sudah menyediakan sebuah fungsi yang benar-benar bisa memecahkan masalah ini hanya dengan 1 baris skrip saja. fungsi tersebut antara lain :

<?php
$angka = 1000000;

echo number_format($angka, 0, '', '.');
?>

Dari skrip diatas terlihat kita akan mengubah angka 1000000 menjadi 1.000.000. Pasti pada bingung dengan fungsi number_format() tersebut? berikut ini penjelasan parameter apa saja yang dibutuhkan pada fungsi tersebut :

number_format(param1, param2, param3, param4)

  1. Parameter pertama (param1) diisi dengan angka yang ingin kita ubah formatnya. Pada skrip diatas saya set dengan angka 1000000.
  2. Parameter kedua (param2) diisi dengan jumlah angka desimal (angka 0) pada akhir angka. contoh dari angka 1.000.000,00 (angka yang saya beri merah itulah angka desimal). Pada skrip kita diatas, saya set angka desimalnya 0, jadi otomatis tidak ada angka desimalnya.
  3. Parameter ketiga (param3) diisi dengan tanda pemisah dengan angka desimal. Untuk tanda pemisah ini, jika dalam rupiah biasanya berupa tanda koma (,). Contoh dari angka 1.000.000,00 (koma (warna merah) itulah yang dimaksud dengna pemisah disini)
  4. Parameter keempat (param4) diisi dengan tanda pemisah angka ribuan (angka yang diset pada param1). Dalam pecahan rupiah, tanda pemisahnya adalah titik (.). Contoh 1.000.000 (titik merah itulah yang saya maksud disini)

Oke sebagai contoh biar lebih jelas soal penjelasan mengenai parameter-parameter diatas. Kita akan coba berbagai kustom parameternya. Silakan buat sebuah folder dengan nama latihan_php, lalu simpan pada folder xampp/htdocs. Kemudian buat sebuah file dengan nama format_uang.php, lalu simpan pada folder xampp/htdocs/latihan_php/. Berikut ini kodenya :

<?php
$angka = 1000000;

echo "<b>Contoh 1</b> (tanpa angka desimal dan tanda pemisah angka ribuan adalah titik)<br>";
echo "<h2>Rp. ".number_format($angka, 0, '', '.')."</h2>";

echo "<br>";
echo "<b>Contoh 2</b> (dengan 2 angka desimal, tanda pemisah angka desimal adalah koma, tanda pemisah angka ribuan adalah titik)<br>";
echo "<h2>Rp. ".number_format($angka, 2, ',', '.')."</h2>";

echo "<br>";
echo "<b>Contoh 3</b> (tanpa angka desimal dan tanda pemisah angka ribuan adalah koma)<br>";
echo "<h2>Rp. ".number_format($angka, 0, '', ',')."</h2>";
?>

Kemudian save file tadi. Lalu buka browser dan ketik localhost/latihan_php/format_uang.php. Berikut ini tampilan dari hasil kode diatas :

Contoh - Cara Mudah Membuat Format Uang Rupiah dengan PHP

Sudah cukup mengerti dengan maksud dari penjelasan saya? dari 3 contoh diatas seharusnya sudah bisa lebih paham dan mengerti bagaimana cara menggunakan fungsi number_format yang disediakan PHP.


Mungkin sekian untuk catatan kali ini. Semoga bisa bermanfaat. Jika ada yang kurang dipahami, langsung tanyakan pada form komentar dibawah ini. Jangan lupa LIKE dan SHARE nya, Terimakasih banyak.

Happy Coding ^_^


SUMBER & REFERENSI
http://php.net/manual/en/function.number-format.php

Buat format rupiah dengan php, buat format angka rupiah dengan php, tutorial membuat format angka rupiah dengan php, tutorial singkat membuat format angka rupiah dengan php

Format Uang

The post Cara Mudah Membuat Format Uang Rupiah dengan PHP appeared first on My Notes Code.

]]>
https://www.mynotescode.com/format-uang-rupiah-dengan-php/feed/ 3
Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code https://www.mynotescode.com/tutorial-codeigniter/ https://www.mynotescode.com/tutorial-codeigniter/#respond Mon, 30 Apr 2018 09:31:14 +0000 https://www.mynotescode.com/?p=1906 Codeigniter merupakan salah satu framework yang sangat populer dan banyak digunakan oleh para web developer dimana salah satunya adalah saya yang masih menggunakan framework ini di beberapa proyek yang saya kerjakan. Codeigniter juga merupakan salah satu framework yang pertama kali saya pelajari dan menurut saya, framework ini lah yang paling mudah untuk di pelajari sebagai...

The post Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code appeared first on My Notes Code.

]]>
Codeigniter merupakan salah satu framework yang sangat populer dan banyak digunakan oleh para web developer dimana salah satunya adalah saya yang masih menggunakan framework ini di beberapa proyek yang saya kerjakan. Codeigniter juga merupakan salah satu framework yang pertama kali saya pelajari dan menurut saya, framework ini lah yang paling mudah untuk di pelajari sebagai tahap awal bagi Anda semua yang ingin coba menggunakan sebuah framework. Dan juga saya sangat menyukai dokumentasi yang dibuat oleh si pembuat framework ini, karena di banding framework lain, dokumentasinya sangat jelas dan mudah dipahami juga (ini menurut saya ya hehe).

Apa itu Framework?

Framework secara sederhana dapat diartikan kumpulan dari fungsi-fungsi/prosedur-prosedur dan class-class untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih mempermudah dan mempercepat pekerjaan seorang programer, tanpa harus membuat fungsi atau class dari awal.

Ada beberapa alasan mengapa menggunakan Framework:

  • Mempercepat dan mempermudah pembangunan sebuah aplikasi web.
  • Relatif memudahkan dalam proses maintenance karena sudah ada pola tertentu dalam sebuah framework (dengan syarat programmer mengikuti pola standar yang ada)
  • Umumnya framework menyediakan fasilitas-fasilitas yang umum dipakai sehingga kita tidak perlu membangun dari awal (misalnya validasi, ORM, pagination, multiple database, scaffolding, pengaturan session, error handling, dll
  • Lebih bebas dalam pengembangan jika dibandingkan CMS

Framework Codeigniter

CodeIgniter merupakan aplikasi sumber terbuka yang berupa framework PHP dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat mudah dibandingkan dengan membuatnya dari awal. CodeIgniter dirilis pertama kali pada 28 Februari 2006. Versi stabil terakhir adalah versi 3.0.4


MVC (Model, View, Controller)

Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :

  1. View, merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
  2. Model, biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
  3. Controller, merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.

Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan.

Ada beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain,

  • Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain.
  • Konfigurasi yang sangat minim (nearly zero configuration)  : tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu mengubah sedikit saja file pada folder config.
  • Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
  • Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.
  • Dan banyak lagi yang lainnya.

DAFTAR MENU TUTORIAL

# IMPORT & EXPORT DATA
  1. Cara Mudah Membuat Export Excel Tanpa Plugin dengan Codeigniter : Lihat
  2. Cara Membuat Export Data Ke Excel Dengan PHPExcel dan Codeigniter : Lihat
  3. Cara Membuat Export Data Dari Database ke CSV Dengan Codeigniter : Lihat
  4. Cara Membuat Import Data Dari Excel dengan Codeigniter dan PHPExcel : Lihat
  5. Cara Membuat Import Data Dari CSV dengan Codeigniter dan PHPExcel : Lihat
# PENCARIAN DATA
  1. Cara Membuat Pencarian Data dan Menampilkannya ke Textbox dengan Codeigniter : Lihat
  2. Cara Membuat Pencarian Tanpa Refresh Halaman dengan Codeigniter : Lihat
# UPLOAD
  1. Cara Membuat Upload Gambar dengan Codeigniter dan MySQL : Lihat
  2. Cara Mudah Membuat Upload Gambar Tanpa Refresh dengan Codeigniter : Lihat
# LAIN-LAIN
  1. Cara Membuat Laporan PDF dengan Codeigniter dan Html2Pdf : Lihat
  2. Cara Membuat Laporan PDF Plus Filter Tanggal dengan Codeigniter : Lihat
  3. Cara Membuat 1 File Template untuk Semua Tampilan dengan Codeigniter : Lihat
  4. Cara Mudah Membuat CRUD dengan Codeigniter dan MySQL : Lihat
  5. Cara Simpel Membuat Chained Dropdown dengan Codeigniter dan MySQL : Lihat
  6. Cara Mudah Membuat Pagination dengan Codeigniter : Lihat

Semoga catatan-catatan ini bisa bermanfaat untuk Anda. SHARE jika Anda menyukai tutorial-tutorial tersebut. Terimakasih.

Happy Coding ^_^


SUMBER & REFERENSI
https://id.wikipedia.org/wiki/CodeIgniter

The post Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code appeared first on My Notes Code.

]]>
https://www.mynotescode.com/tutorial-codeigniter/feed/ 0