Categories
Codeigniter

Cara Membuat Eksport Excel di Codeigniter

Pada tutorial kali ini kita akan membuat Eksport Excel di Codeigniter dengan menggunakan PHPExcel, setelah di tutorial sebelumnya kita Membuat Eksport PDF di Codeigniter. PHPExcel adalah kumpulan class PHP yang dapat digunakan untuk mengenerate dan mengimport dokumen spreadsheet seperti Excel 97-2003 format (.xls), Excel 2007 format (.xlsx), CSV, LibreOffice/Open Office Calc (.ods) dan GNUmeric. Project PHPExcel ini dibuat dengan menggunakan standard Microsoft OpenXML dan PHP. Langsung aja kita ke codingan cara membuat Eksport Excel di Codeigniter. yang belum liat tutorial sebelumnya tentang eksport pdf di codeigniter bisa cek di sini

  1. Buat database dengan nama latihan dan import SQL di bawah ini.
CREATE TABLE `siswa` (
  `nis` int(12) NOT NULL,
  `nama` varchar(30) NOT NULL,
  `jenis_kelamin` varchar(10) NOT NULL,
  `telp` varchar(12) NOT NULL,
  `alamat` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


INSERT INTO `siswa` (`nis`, `nama`, `jenis_kelamin`, `telp`, `alamat`) VALUES
(16171101, 'Asep', 'L', '0899999999', 'Jakarta'),
(16171102, 'Udin', 'L', '0888888888', 'Bandung'),
(16171103, 'Lisa', 'P', '07777777', 'Bali'),
(16171104, 'Raisha', 'P', '02322323', 'Kalimantan'),
(16171105, 'Sudirman', 'L', '08888', 'Surabaya');


ALTER TABLE `siswa`
  ADD PRIMARY KEY (`nis`);
COMMIT;

2. Buat Controller Siswa dan tambahkan code di bawah ini.

<?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);
  }
  
  public function export(){
    // Load plugin PHPExcel nya
    include APPPATH.'third_party/PHPExcel/PHPExcel.php';
    
    // Panggil class PHPExcel nya
    $excel = new PHPExcel();
    // Settingan awal fil excel
    $excel->getProperties()->setCreator('My Notes Code')
                 ->setLastModifiedBy('My Notes Code')
                 ->setTitle("Data Siswa")
                 ->setSubject("Siswa")
                 ->setDescription("Laporan Semua Data Siswa")
                 ->setKeywords("Data Siswa");
    // Buat sebuah variabel untuk menampung pengaturan style dari header tabel
    $style_col = array(
      'font' => array('bold' => true), // Set font nya jadi bold
      'alignment' => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER, // Set text jadi ditengah secara horizontal (center)
        'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER // Set text jadi di tengah secara vertical (middle)
      ),
      'borders' => array(
        'top' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border top dengan garis tipis
        'right' => array('style'  => PHPExcel_Style_Border::BORDER_THIN),  // Set border right dengan garis tipis
        'bottom' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border bottom dengan garis tipis
        'left' => array('style'  => PHPExcel_Style_Border::BORDER_THIN) // Set border left dengan garis tipis
      )
    );
    // Buat sebuah variabel untuk menampung pengaturan style dari isi tabel
    $style_row = array(
      'alignment' => array(
        'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER // Set text jadi di tengah secara vertical (middle)
      ),
      'borders' => array(
        'top' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border top dengan garis tipis
        'right' => array('style'  => PHPExcel_Style_Border::BORDER_THIN),  // Set border right dengan garis tipis
        'bottom' => array('style'  => PHPExcel_Style_Border::BORDER_THIN), // Set border bottom dengan garis tipis
        'left' => array('style'  => PHPExcel_Style_Border::BORDER_THIN) // Set border left dengan garis tipis
      )
    );
    $excel->setActiveSheetIndex(0)->setCellValue('A1', "DATA SISWA"); // Set kolom A1 dengan tulisan "DATA SISWA"
    $excel->getActiveSheet()->mergeCells('A1:E1'); // Set Merge Cell pada kolom A1 sampai E1
    $excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(TRUE); // Set bold kolom A1
    $excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(15); // Set font size 15 untuk kolom A1
    $excel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // Set text center untuk kolom A1
    // Buat header tabel nya pada baris ke 3
    $excel->setActiveSheetIndex(0)->setCellValue('A3', "NO"); // Set kolom A3 dengan tulisan "NO"
    $excel->setActiveSheetIndex(0)->setCellValue('B3', "NIS"); // Set kolom B3 dengan tulisan "NIS"
    $excel->setActiveSheetIndex(0)->setCellValue('C3', "NAMA"); // Set kolom C3 dengan tulisan "NAMA"
    $excel->setActiveSheetIndex(0)->setCellValue('D3', "JENIS KELAMIN"); // Set kolom D3 dengan tulisan "JENIS KELAMIN"
    $excel->setActiveSheetIndex(0)->setCellValue('E3', "ALAMAT"); // Set kolom E3 dengan tulisan "ALAMAT"
    // Apply style header yang telah kita buat tadi ke masing-masing kolom header
    $excel->getActiveSheet()->getStyle('A3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('B3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('C3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('D3')->applyFromArray($style_col);
    $excel->getActiveSheet()->getStyle('E3')->applyFromArray($style_col);
    // Panggil function view yang ada di SiswaModel untuk menampilkan semua data siswanya
    $siswa = $this->SiswaModel->view();
    $no = 1; // Untuk penomoran tabel, di awal set dengan 1
    $numrow = 4; // Set baris pertama untuk isi tabel adalah baris ke 4
    foreach($siswa as $data){ // Lakukan looping pada variabel siswa
      $excel->setActiveSheetIndex(0)->setCellValue('A'.$numrow, $no);
      $excel->setActiveSheetIndex(0)->setCellValue('B'.$numrow, $data->nis);
      $excel->setActiveSheetIndex(0)->setCellValue('C'.$numrow, $data->nama);
      $excel->setActiveSheetIndex(0)->setCellValue('D'.$numrow, $data->jenis_kelamin);
      $excel->setActiveSheetIndex(0)->setCellValue('E'.$numrow, $data->alamat);
      
      // Apply style row yang telah kita buat tadi ke masing-masing baris (isi tabel)
      $excel->getActiveSheet()->getStyle('A'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('B'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('C'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('D'.$numrow)->applyFromArray($style_row);
      $excel->getActiveSheet()->getStyle('E'.$numrow)->applyFromArray($style_row);
      
      $no++; // Tambah 1 setiap kali looping
      $numrow++; // Tambah 1 setiap kali looping
    }
    // Set width kolom
    $excel->getActiveSheet()->getColumnDimension('A')->setWidth(5); // Set width kolom A
    $excel->getActiveSheet()->getColumnDimension('B')->setWidth(15); // Set width kolom B
    $excel->getActiveSheet()->getColumnDimension('C')->setWidth(25); // Set width kolom C
    $excel->getActiveSheet()->getColumnDimension('D')->setWidth(20); // Set width kolom D
    $excel->getActiveSheet()->getColumnDimension('E')->setWidth(30); // Set width kolom E
    
    // Set height semua kolom menjadi auto (mengikuti height isi dari kolommnya, jadi otomatis)
    $excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(-1);
    // Set orientasi kertas jadi LANDSCAPE
    $excel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
    // Set judul file excel nya
    $excel->getActiveSheet(0)->setTitle("Laporan Data Siswa");
    $excel->setActiveSheetIndex(0);
    // Proses file excel
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header('Content-Disposition: attachment; filename="Data Siswa.xlsx"'); // Set nama file excel nya
    header('Cache-Control: max-age=0');
    $write = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
    $write->save('php://output');
  }
}

3.Buat Model dengan nama SiswaModel dan tambahkan code dibawah ini.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class SiswaModel extends CI_Model {
  public function view(){
    return $this->db->get('siswa')->result(); // Tampilkan semua data yang ada di tabel siswa
  }
}

4.Buat Viewnya dengan nama View.php dan tambahkan code dibawah ini

<h1>Data Siswa</h1><hr>
<a href="<?php echo base_url("index.php/siswa/export"); ?>">Export ke Excel</a><br><br>
<table border="1" cellpadding="8">
<tr>
  <th>NIS</th>
  <th>Nama</th>
  <th>Jenis Kelamin</th>
  <th>Alamat</th>
</tr>
<?php
if( ! empty($siswa)){ // Jika data pada database tidak sama dengan empty (alias ada datanya)
  foreach($siswa as $data){ // Lakukan looping pada variabel siswa dari controller
    echo "<tr>";
    echo "<td>".$data->nis."</td>";
    echo "<td>".$data->nama."</td>";
    echo "<td>".$data->jenis_kelamin."</td>";
    echo "<td>".$data->alamat."</td>";
    echo "</tr>";
  }
}else{ // Jika data tidak ada
  echo "<tr><td colspan='4'>Data tidak ada</td></tr>";
}
?>
</table>

 

Di tutorial selanjutnya kita akan melengkapi tutorial di codeigniter ini dengan membuat Import data Excel, Semoga tutorial Eksport Excel di Codeigniter berguna. Jangan lupa share yah. Donasi web kami dengan klik satu iklan yang akan membantu dalam pengembangan website ini

Categories
Codeigniter

Cara Membuat Ekspor PDF di Codeigniter

Pada tutorial kali ini kita akan membahas cara membuat Ekspor PDF di Codeigniter, Ekspor PDF sering kali di pakai untuk membuat sebuah laporan, atau data lainnya seperti surat, Dalam sebuah Sistem Informasi atau Aplikasi biasanya terdapat Ekspor PDF, Pada kali ini Kita akan coba membuat sebuah Ekspor PDF di Codeigniter dengan menggunakan HTML2PDF.

Sebelum lanjut ke codingan, Dowload dulu Library HTML2PDF di sini. setelah di download extrak dan simpan folder tersebut di folder assets, jika tidak ada folder assets buat terlebih dahulu.

<?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 view_row(){
return $this->db->get('siswa')->result();
}
}
<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Main extends CI_Controller {

public function __construct()
	{
		parent::__construct();
$this->load->model('siswa_model');
}
	

public function index(){
$data['siswa'] = $this->siswa_model->view_row();
$this->load->view('preview', $data);
}

public function cetak(){
ob_start();
$data['siswa'] = $this->siswa_model->view_row();
$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);
ob_start();
$pdf->Output('Data Siswa.pdf', 'D');
}
}

Preview.php

<html>
<head>
<title>Cetak PDF</title>
</head>
<body>
<h1 style="text-align: center;">Data Siswa</h1>
<a href="<?php echo base_url("index.php/main/cetak"); ?>">Cetak Data</a><br><br>
<table border="1" width="100%">
<tr>
<th>No</th>
<th>NIS</th>
<th>Nama</th>
<th>Jenis Kelamin</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->jenis_kelamin."</td>";
echo "<td>".$data->telp."</td>";
echo "<td>".$data->alamat."</td>";
echo "</tr>";
$no++;
}
}
?>
</table>
</body>
</html>

Print.php

<html>
<head>
<title>Cetak PDF</title>
</head>
<body>
<h1 style="text-align: center;">Data Siswa</h1>
<?php echo "Tanggal : ".date('d-m-Y'); ?><br><br>
<table border="1" width="100%">
<tr>
<th>No</th>
<th>NIS</th>
<th>Nama</th>
<th>Jenis Kelamin</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->jenis_kelamin."</td>";
echo "<td>".$data->telp."</td>";
echo "<td>".$data->alamat."</td>";
echo "</tr>";
$no++;
}
}
?>
</table>
</body>
</html>

Kamu bisa juga download projectnya di sini.

 

Categories
Codeigniter

Menggunakan Ajax Datatables Server side di Codeigniter

Pada tutorial kali ini kita akan membahas Bagaimana Menggunakan Datatables Server side di Codeigniter, Mungkin temen disini sering mendengar datatables, datatables adalah plugin yang di bangun dari jquery untuk menampilkan data dalam bentuk table dan sudah terintegrasi search form/form pencarian dan pagination untuk penomoran data pada table. sehingga kita tidak perlu lagi membuat form pencarian pada data. dan juga kita tidak perlu lagi membuat pagination secara manual.

Mengapa kita menggunakan datatbles ? selain simple, kita juga tidak ribet untuk membuat table dengan pagination dan search. dan akan cepat dalam penampilan data yang begitu banyak. DataTables Server-side processing adalah salah satu cara terbaik untuk menampilkan data sobat dari database yang jumlahkan sangat besar.

Jadi tidak akan meload semua data, kalau misalkan dalam satu pagination menampilkan 10 maka yang akan di load 10 data saja. Maka dari itu akan lebih cepat dalam penampilannya.

Download Terlebih dahulu Assets dan SQLnya disini

<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Warungcode</title>
    <link href="<?php echo base_url('assets/bootstrap/css/bootstrap.min.css')?>" rel="stylesheet">
    <link href="<?php echo base_url('assets/datatables/css/dataTables.bootstrap.css')?>" rel="stylesheet">
    <link href="<?php echo base_url('assets/bootstrap-datepicker/css/bootstrap-datepicker3.min.css')?>" rel="stylesheet">

    </head>
<body>
    <div class="container">
        <h1 style="font-size:20pt">Membuat Datatables with Server side Di Codeigniter</h1>

        <h3>Person Data</h3>

        <table id="table" class="table table-striped table-bordered" cellspacing="0" width="100%">
            <thead>
                <tr>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Gender</th>
                    <th>Address</th>
                    <th>Date of Birth</th>

                </tr>
            </thead>
            <tbody>
            </tbody>

            <tfoot>
            <tr>
                <th>First Name</th>
                <th>Last Name</th>
                <th>Gender</th>
                <th>Address</th>
                <th>Date of Birth</th>

            </tr>
            </tfoot>
        </table>
    </div>

<script src="<?php echo base_url('assets/jquery/jquery-2.1.4.min.js')?>"></script>
<script src="<?php echo base_url('assets/bootstrap/js/bootstrap.min.js')?>"></script>
<script src="<?php echo base_url('assets/datatables/js/jquery.dataTables.min.js')?>"></script>
<script src="<?php echo base_url('assets/datatables/js/dataTables.bootstrap.js')?>"></script>
<script src="<?php echo base_url('assets/bootstrap-datepicker/js/bootstrap-datepicker.min.js')?>"></script>


<script type="text/javascript">

var save_method; //for save method string
var table;

$(document).ready(function() {

    //datatables
    table = $('#table').DataTable({

        "processing": true, //Feature control the processing indicator.
        "serverSide": true, //Feature control DataTables' server-side processing mode.
        "order": [], //Initial no order.

        // Load data for the table's content from an Ajax source
        "ajax": {
            "url": "<?php echo site_url('person/ajax_list')?>",
            "type": "POST"
        },

        //Set column definition initialisation properties.
        "columnDefs": [
        {
            "targets": [ -1 ], //last column
            "orderable": false, //set not orderable
        },
        ],

    });

    

});

</script>

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

class Person extends CI_Controller {

	public function __construct()
	{
		parent::__construct();
		$this->load->model('person_model','person');
	}

	public function index()
	{
		$this->load->helper('url');
		$this->load->view('person_view');
	}

	public function ajax_list()
	{
		$list = $this->person->get_datatables();
		$data = array();
		$no = $_POST['start'];
		foreach ($list as $person) {
			$no++;
			$row = array();
			$row[] = $person->firstName;
			$row[] = $person->lastName;
			$row[] = $person->gender;
			$row[] = $person->address;
			$row[] = $person->dob;

			//add html for action
		
			$data[] = $row;
		}

		$output = array(
						"draw" => $_POST['draw'],
						"recordsTotal" => $this->person->count_all(),
						"recordsFiltered" => $this->person->count_filtered(),
						"data" => $data,
				);
		//output to json format
		echo json_encode($output);
	}



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

class Person_model extends CI_Model {

	var $table = 'persons';
	var $column_order = array('firstname','lastname','gender','address','dob'); //set column field database for datatable orderable
	var $column_search = array('firstname','lastname','address'); //set column field database for datatable searchable just firstname , lastname , address are searchable
	var $order = array('id' => 'desc'); // default order

	public function __construct()
	{
		parent::__construct();
		$this->load->database();
	}

	private function _get_datatables_query()
	{

		$this->db->from($this->table);

		$i = 0;

		foreach ($this->column_search as $item) // loop column
		{
			if($_POST['search']['value']) // if datatable send POST for search
			{

				if($i===0) // first loop
				{
					$this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
					$this->db->like($item, $_POST['search']['value']);
				}
				else
				{
					$this->db->or_like($item, $_POST['search']['value']);
				}

				if(count($this->column_search) - 1 == $i) //last loop
					$this->db->group_end(); //close bracket
			}
			$i++;
		}

		if(isset($_POST['order'])) // here order processing
		{
			$this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
		}
		else if(isset($this->order))
		{
			$order = $this->order;
			$this->db->order_by(key($order), $order[key($order)]);
		}
	}

	function get_datatables()
	{
		$this->_get_datatables_query();
		if($_POST['length'] != -1)
		$this->db->limit($_POST['length'], $_POST['start']);
		$query = $this->db->get();
		return $query->result();
	}

	function count_filtered()
	{
		$this->_get_datatables_query();
		$query = $this->db->get();
		return $query->num_rows();
	}

	public function count_all()
	{
		$this->db->from($this->table);
		return $this->db->count_all_results();
	}

	public function get_by_id($id)
	{
		$this->db->from($this->table);
		$this->db->where('id',$id);
		$query = $this->db->get();

		return $query->row();
	}

	


}

untuk project lebih lengkapnya anda bisa download di sini

 

Categories
VueJS

Belajar Vue JS Bagian 4 : If dan Else (conditional)

Hallo Coder 😃 , Pada kali ini kita akan membahas tentang Menggunakan if di vue js. coditional atau pengandaian, yang dikenal dengan istilah jika – maka

Seperti ini Jika X melakukan A maka akan dapat B, Jika C melakukan D maka akan dapat E, dan seterusnya.

Pengandaian dalam javascript merupakan suatu perintah yang digunakan untuk memilih satu aksi dari beberapa kemungkinan dengan syarat tertentu seperti diatas.

Pengandaian ini sering digunakan dalam sebuah pemograman, seperti di PHP,  dan lainnya, seperti bahasa pemograman lainya VueJS juga bisa menggunakan if dan else.

Menggunakan if di vue js

ada beberapa directive bertipe pengandaian yang dibuat untuk memudahkan depeloper dalam melakukan pengembangan dalam programnya. menggunakan if di vue js contoh sederhana di bawah ini.

<!DOCTYPE html>
<html>
<head>
  <title>Belajar vue.JS</title>
</head>
<body>
  <div id="app">
    <b v-if="tampil"> {{ pesan }} </b>
  </div>
  <script src="vue.min.js"></script>
  <script src="apps.js"></script>
</body>
</html>
new Vue({
  el: '#app',
  data: {
    tampil: true,
    pesan: 'belajar conditional ini'
  }
})

Code diatas pada bagian app.js ada dua buah variable di dalam data, variable pertama tampil sebagai acuan untuk if.

Dan variable kedua pesan sebagai data yang akan ditampilknan. <b v-if=”tampil”> {{ pesan }} </b>   menggunakan if (v-if) untuk pengandaiannya.

Coba rubah tampil nya jadi false, maka pesan tidak akan muncul begitu pula sebaliknya jika true pesan akan muncul terus.

Bagaimana jika kita ingin memberi nilai pada sebuah if, coba lihat code dibawah ini.

<!DOCTYPE html>
<html>
<head>
  <title>Belajar vue.JS</title>
</head>
<body>
  <div id="app">
    <b v-if="tampil == 'ada' "> {{ pesan }} </b>
  </div>
  <script src="vue.min.js"></script>
  <script src="apps.js"></script>
</body>
</html>
new Vue({
  el: '#app',
  data: {
    tampil: 'ada',
    pesan: 'belajar conditional',
    pesan2:'ini else'

  }
})

pada code di atas kita memberi sebuah nilai pada ifnya yaitu ada, coba rubah menjadi tidak maka tidak akan ada pesan yang keluar. coba rubah codenya seperti dibawah ini.

V-else

<!DOCTYPE html>
<html>
<head>
  <title>Belajar vue.JS</title>
</head>
<body>
  <div id="app">
    <b v-if="tampil"> {{ pesan }} </b>
    <b v-else="tampil"> {{ pesan2 }} </b>
  </div>
  <script src="vue.min.js"></script>
  <script src="apps.js"></script>
</body>
</html>
new Vue({
  el: '#app',
  data: {
    tampil: false,
    pesan: 'belajar conditional',
    pesan2: 'belajar else conditional'
    
  }
})

Didalam code diatas kita menggunakan if dan else, tidak enak menceritakan if tanpa else wkwkwk, codenya seperti berikut ini.

<b v-else="tampil"> {{ pesan2 }} </b>

kamu hanya perlu menganti pada directive v-if menjadi v-else. dan hasil yang akan keluar dari code diatas adalah pesan yang kedua mengapa ?

karena variable tampil bernilai false. coba rubah menjadi true maka yang akan keluar adalah pesan2.

begitu juga sebaliknya jika varible tampil2 false maka yang akan keluar adalah data yang ada di variable pesan.

Menggunakan if di vue Js sama seperti bahasa yang lain hanya beda dalam codingannya strukturnya sama saja, anda bisa kreasikan code diatas seperti yang anda mau. Jangan lupa juga coba tutorial Menggunakan v-once dan v-on di vue js. Salam Coder.

Categories
Codeigniter

Membuat CRUD sederhana dengan Codeigniter : Menghapus data

Pada tutorial kali ini, kita akan membahas Membuat CRUD sederhana dengan Codeigniter : Menghapus data, yaitu bagian terakhir dari sebuah crud yaitu hapus atau delete data. setelah di tutorial sebelumnya kkita membahas bagaimana caranya mengedit data Membuat CRUD sederhana dengan Codeigniter : Mengedit data

Pada bagian ini akan lebih singkat dari pada tutorial sebelumnya karena kita hanya perlu menambah pada bagian controller dan modelnya saja, oke langsung saja ke codingannya. tambahkan codingan di bawah ini ke bagian controller News

public function delete()
    {
        $id = $this->uri->segment(3);
        
        if (empty($id))
        {
            show_404();
        }
                
        $news_item = $this->news_model->get_news_by_id($id);
        
        $this->news_model->delete_news($id);        
        redirect( base_url() . 'index.php/news');        
    }
if (empty($id))
        {
            show_404();
        }

coba lihat pada bagian diatas mengapa kita menambahkannya ? karena jika kita akses hanya http://localhost/crudsimple/index.php/news/delete tanpa memberi id yang akan di hapus nanti akan error, maka dari itu kita menambah codingan tersebut jadi jika tidak ada id yang di panggil akan otomatis langsung kehalaman 404.

Sekarang kita sudah membuat CRUD sederhana dengan codeigniter. Untuk yang ingin download anda bisa download disini  jangan lupa klik iklan untuk donasi kepada warungcode

Categories
Artikel

Jack Ma Pensiun dari Alibaba Group

Siapa yang tak kenal Jack Ma Orang merupakan seorang pebisnis berkebangsaan Tionghoa. Dia merupakan pendiri sekaligus Chairman Eksekutif dari Alibaba Group, perusahaan e-commerce terbesar di Tiongkok. Dia merupakan warga China Daratan pertama yang pernah muncul di majalah Forbes dan terdaftar sebagai biliuner dunia.

Pada hari ini Jack Ma mengumumkan untuk pensiun, Ma akan digantikan oleh Daniel Zhang Sebagai Ketua tahun depan. Ma pensiun dari perusahaan yang ia dirikan  pada tahun 1999 , Ma berencanan untuk mendedikasikan waktunya untuk filantrops dalam pendidikan.

Jack Ma akan terus melayani sebagai anggota dewa sampai rapat umum pemegang saham pada tahun 2020, setelah itu Ma akan tetap menjadi mitra seumur hidup dari Kemitraan Alibaba, Kepergian dari Alibabab Group sangat bertahap ” Saya telah menaruh banya pemikiran  dan persiapan dalam rencana suksesi selama 10 tahun.” tulisnya.

“Alibabab bukan hanya tentang Jack Ma teteapi Jack Ma selamanya akan menjadi milik alibaba”

Alibaba menjadi pionir bisnis e-commerce di China dan sangat memiliki pengaruh cukup besar. Bagaimana ia mendominasi e-commerce dan pembayaran digital, serta mengubah gaya belanja masyarakat di China, menunjukkan peran Jack Ma dan Alibaba yang dipimpinnya sangat fundamental.

Di antara sejawat di generasinya, Jack Ma menjadi yang pertama pensiun dari industri digital. Ma memang pernah mengungkapkan keinginan untuk mengikuti jejak bapak Microsoft, Bill Gates yang mendirikan yayasan atas namanya.

Categories
Codeigniter

Membuat CRUD sederhana dengan Codeigniter : Mengedit data

Pada tutorial kali ini kita akan melanjutkkan dari tutorial sebelumnya Membuat CRUD sederhana dengan Codeigniter : Menampilkan data , di tutorial sekarang kita akan membahas Membuat CRUD sederhana dengan Codeigniter : Mengedit data, jadi di tutorial sekarang kita akan belajar mengedit data yang ada di database, kita langsung aja ke codingannya.

Sekarang kita akan menambah codingan pada Controller News yang sudah kita buat di tutorial sebelumnya.

public function edit()
    {
        $id = $this->uri->segment(3);
        
        if (empty($id))
        {
            show_404();
        }
        
        $this->load->helper('form');
        $this->load->library('form_validation');
        
        $data['title'] = 'Edit a news item';        
        $data['news_item'] = $this->news_model->get_news_by_id($id);
        
        $this->form_validation->set_rules('title', 'Title', 'required');
        $this->form_validation->set_rules('text', 'Text', 'required');
 
        if ($this->form_validation->run() === FALSE)
        {
            $this->load->view('templates/header', $data);
            $this->load->view('news/edit', $data);
            $this->load->view('templates/footer');
 
        }
        else
        {
            $this->news_model->set_news($id);
            //$this->load->view('news/success');
            redirect( base_url() . 'index.php/news');
        }
    }

pada bagian edit di controller ini, kita membutuhkan id sebagai acuan data yang akan di edit, bisa anda lihat pada bagian.

$id = $this->uri->segment(3);

ini untuk mengambil id pada segment 3, http://localhost/crudsimple/index.php/news/edit/1 angka satu itu adalah segment 3. jadi di hitung dari news atau nama controller. sekarang kita tidak perlu menambah kan codingan pada bagian model karena telah menyatu dengan input data. sekarang kita buat bagian viewnya.

<h2><?php echo $title; ?></h2>
 
<?php echo validation_errors(); ?>
 
<?php echo form_open('news/edit/'.$news_item['id']); ?>
    <table>
        <tr>
            <td><label for="title">Title</label></td>
            <td><input type="input" name="title" size="50" value="<?php echo $news_item['title'] ?>" /></td>
        </tr>
        <tr>
            <td><label for="text">Text</label></td>
            <td><textarea name="text" rows="10" cols="40"><?php echo $news_item['text'] ?></textarea></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" name="submit" value="Edit news item" /></td>
        </tr>
    </table>
</form>

beri nama edit dan simpan pada folder news, jika sudah silahkan coba edit salah satu data yang ada, dan coba apakah berhasil atau tidak, di tutorial selanjutnya kita akan membuat bagian akhir di project ini, ya itu bagian hapus data. oleh karena itu tetap pantau warungcode yah. jangan lupa share oke.

 

Categories
Codeigniter

Membuat CRUD sederhana dengan Codeigniter : Menambah data

Pada tutorial sebelumnya kita telah membahas tentang Membuat CRUD sederhana dengan Codeigniter : Menampilkan data, Tutorial ini merupakan tutorial lanjutan dari tutorial codeigniter sebelumnya tentang. pada tutorial ini kita akan belajar cara menginput data ke database dengan codeigniter.

sekarang kita membuat file dengan nama create.php dan simpan di folder news

<h2><?php echo $title; ?></h2>
 
<?php echo validation_errors(); ?>
 
<?php echo form_open('news/create'); ?>    
    <table>
        <tr>
            <td><label for="title">Title</label></td>
            <td><input type="input" name="title" size="50" /></td>
        </tr>
        <tr>
            <td><label for="text">Text</label></td>
            <td><textarea name="text" rows="10" cols="40"></textarea></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" name="submit" value="Create news item" /></td>
        </tr>
    </table>    
</form>

Sekarang kita membuat file baru dengan nama success.php

	<p>News added successfully!</p>

Sekarang kita tambah codingan dibawah ke controller news kita yang telah di buat sebelumnya.

public function create()
    {
        $this->load->helper('form');
        $this->load->library('form_validation');
 
        $data['title'] = 'Create a news item';
 
        $this->form_validation->set_rules('title', 'Title', 'required');
        $this->form_validation->set_rules('text', 'Text', 'required');
 
        if ($this->form_validation->run() === FALSE)
        {
            $this->load->view('templates/header', $data);
            $this->load->view('news/create');
            $this->load->view('templates/footer');
 
        }
        else
        {
            $this->news_model->set_news();
            $this->load->view('templates/header', $data);
            $this->load->view('news/success');
            $this->load->view('templates/footer');
        }
    }

lalu kita tambahkan codingan di bawah ini ke model News_model

  public function set_news($id = 0)
    {
        $this->load->helper('url');
 
        $slug = url_title($this->input->post('title'), 'dash', TRUE);
 
        $data = array(
            'title' => $this->input->post('title'),
            'slug' => $slug,
            'text' => $this->input->post('text')
        );
        
        if ($id == 0) {
            return $this->db->insert('news', $data);
        } else {
            $this->db->where('id', $id);
            return $this->db->update('news', $data);
        }
    }

Sekarang coba tambahkan data, di tutorial selanjutnya kita akan membahas bagaimana mengedit data yang telah kita buat. jangan lupa share dan klik iklan untuk donasi yah.

Categories
Codeigniter

Membuat CRUD sederhana dengan Codeigniter : Menampilkan data

Pada tutorial kali ini kita akan membahas bagaimana caranya Membuat CRUD sederhana dengan codeigniter. setelah di tutorial sebelumnya kita telah banyak membahas tentang dasar codeigniter, sekarang kita akan membahas tentang bagaimana membuat CRUD sederhana dengan Codeigniter : Menampilkan data. Pada tutorial kali ini kita akan membuat crud artikel.

Di tutorial kali ini selain membuat crud kita juga akan membahas tentang slug. karena yang akan kita buat adalah crud sederhana membuat sebuah cms. oke langsung saja ke codinganya. Buat dulu database dengan nama crudsimple.

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


CREATE TABLE `news` (
  `id` int(11) NOT NULL,
  `title` varchar(128) NOT NULL,
  `slug` varchar(128) NOT NULL,
  `text` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


INSERT INTO `news` (`id`, `title`, `slug`, `text`) VALUES
(1, 'Test', 'test', 'Hello World!!'),
(2, 'What is Lorem Ipsum?', 'what-is-lorem-isum', 'Lorem Ipsum is simply dummy test.');


ALTER TABLE `news`
  ADD PRIMARY KEY (`id`),
  ADD KEY `slug` (`slug`);

ALTER TABLE `news`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
COMMIT;

Setelah anda membuat database, dan coba import sql di atas. kalau sudah kita akan merubah database.php terlebih dahulu.

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'crudsimple',
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

setelah kita ubah database.php sekarang kita ubah routers.php karena kita akan mencoba memanggil data dengan judul data.

$route['default_controller'] = 'news';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['news'] = 'news';
$route['news/create'] = 'news/create';

$route['news/edit/(:any)'] = 'news/edit/$1';

$route['news/view/(:any)'] = 'news/view/$1';
$route['news/(:any)'] = 'news/view/$1';

kita lihat di bagian router (:any) ini berfungsi untuk membaca title data kita jadi biasanya kita menggunakan angka sekarang kita akan memakai judul atau title, mengapa menggunakan judul agar baik untuk seo.  kalau sudah kita akan membuat controller dengan nama news.php

<?php
class News extends CI_Controller {
 
    public function __construct()
    {
        parent::__construct();
        $this->load->model('news_model');
        $this->load->helper('url_helper');
    }
 
    public function index()
    {
        $data['news'] = $this->news_model->get_news();
        $data['title'] = 'News archive';
 
        $this->load->view('templates/header', $data);
        $this->load->view('news/index', $data);
        $this->load->view('templates/footer');
    }
 
    public function view($slug = NULL)
    {
        $data['news_item'] = $this->news_model->get_news($slug);
        
        if (empty($data['news_item']))
        {
            show_404();
        }
 
        $data['title'] = $data['news_item']['title'];
 
        $this->load->view('templates/header', $data);
        $this->load->view('news/view', $data);
        $this->load->view('templates/footer');
    }
}

Sekarang kita akan membuat Modelnya. dengan nama News_model.php

<?php
class News_model extends CI_Model {
 
    public function __construct()
    {
        $this->load->database();
    }
    
    public function get_news($slug = FALSE)
    {
        if ($slug === FALSE)
        {
            $query = $this->db->get('news');
            return $query->result_array();
        }
 
        $query = $this->db->get_where('news', array('slug' => $slug));
        return $query->row_array();
    }
    
    public function get_news_by_id($id = 0)
    {
        if ($id === 0)
        {
            $query = $this->db->get('news');
            return $query->result_array();
        }
 
        $query = $this->db->get_where('news', array('id' => $id));
        return $query->row_array();
    }
}

Setelah kita membuat controller dan model kali ini kita akan membuat bagian viewnya. sebelum itu buat 2 folder di view dengan nama news dan templates.

Pertama kita buat dulu file header.php dan footer.php simpan kedua file ini di folder template

<html>
        <head>
                <title>CodeIgniter Tutorial</title>
        </head>
        <body>
 
                <h1>Simple CRUD</h1>
                <p><a href="<?php echo site_url('news'); ?>">Home</a> | <a href="<?php echo site_url('news/create'); ?>">Add News</a></p>
<p>Warungcode <em>Copyright © 2018</em></p>
        </body>
</html>

Setelah itu kita akan membuat file index.php dan file view.php

<h2><?php echo $title; ?></h2>
 
<table border='1' cellpadding='4'>
    <tr>
        <td><strong>Title</strong></td>
        <td><strong>Content</strong></td>
        <td><strong>Action</strong></td>
    </tr>
<?php foreach ($news as $news_item): ?>
        <tr>
            <td><?php echo $news_item['title']; ?></td>
            <td><?php echo $news_item['text']; ?></td>
            <td>
                <a href="<?php echo site_url('news/'.$news_item['slug']); ?>">View</a> | 
                <a href="<?php echo site_url('news/edit/'.$news_item['id']); ?>">Edit</a> | 
                <a href="<?php echo site_url('news/delete/'.$news_item['id']); ?>" onClick="return confirm('Are you sure you want to delete?')">Delete</a>
            </td>
        </tr>
<?php endforeach; ?>
</table>

sekarang membuat file view.php

<?php
echo '<h2>'.$news_item['title'].'</h2>';
echo $news_item['text'];
?>

Sekarang coba buka dan tampilannya akan seperti ini.

pada tutorial selanjutnya kita akan membahas Membuat CRUD sederhana dengan Codeigniter : Menambah data

Categories
Artikel

Kumpulan Buku Pemograman Web Development dan Web Design

Hallo coder, kali ini warungcode akan membagikan beberapa buku untuk menunjang kalian dalam belajar pemograman web development dan web design. mulai dari html, css, Bootstrap, JavaScript, JQuery, AngularJS, AJAX, sampai PHP Mysql.

  1. HTML & CSS
    Download
  2. Bootstrap
    Download
  3. JavaScript
    Download
  4. JQuery
    Ebook 1
    Ebook 2
  5. AngularJS
    Download
  6. AJAX
    Ebook 1
    Ebook 2
  7. PHP MySQL
    Ebook 1
    Ebook 2

Jangan lupa share, dan klik 1 iklan untuk donasi web kami.