Categories
Codeigniter

Membuat Helper Select Option di Codeigniter

Pada tutorial kali ini kita akan Membuat Helper Select Option di Codeigniter , kita sering menggunakan select option untuk pemilihan inputan dengan data yang banyak.

mengapa kita menggunakan helper ? karena untuk mempermudah dalam penampilan data dari database ke select option.

Yang belum mengetahui model bisa lihat di totorial Menggunakan Model di Codeigniter. sebelum ke contoh kita buat dulu model dan controllernya.

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;
<?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
}
<?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('select', $data);
}

Sekarang kita buat contoh select option dengan cara yang biasa. coba ketikan coding dibawah ini.

<select name="nis" class="form-control">
<?php
foreach ($siswa as $key) {
echo "<option value='".$key->nis."'>$key->nama</option>";
}
 ?>
</select>

cara di atas adalah cara dimana kita mengambil data lewat controller dan model, tapi dengan adanya helper kita bisa langsung mengambil data dengan memanggil nama tablenya, seperti contoh di bawah ini.

sebelum itu buat terlebih dahulu helper dengan nama myselect_helper.php. dan ketikan code dibawah ini

<?php
//warungcode.com
//$name = nama select options
//$table = nama table yang akan di ambil datanya
//$field = nama field yang akan di tampilkan pada selected
//$selected = id yang akan di select biasanya di gunakan saat edit datanya
//$class = nama class $option_tamabahan
//$extra = untuk menambahkan id atau yang lainnya
//opion_tambahan = untuk menambah option tambahan seperti Pilih Nama siswa
function select_option($name, $table, $field, $pk, $selected = null,$class = null, $extra = null, $option_tamabahan = null) {
    $ci = & get_instance();
    $cmb = "<select name='$name' class='form-control $class  ' $extra>";
    $cmb .= $option_tamabahan;
    $data = $ci->db->get($table)->result();
    foreach ($data as $row) {
        $cmb .="<option value='" . $row->$pk . "'";
        $cmb .= $selected == $row->$pk ? 'selected' : '';
        $cmb .=">" . $row->$field . "</option>";
    }
    $cmb .= "</select>";
    return $cmb;
}
//warungcode.com

Setelah kita buat helper kita load terlebih dahulu di autoload.php di bagian helper.

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

lalu ketikan code dibawah ini.

<?php
echo select_option('siswa','siswa','nama','nis',null,'class_tambahan','id=siswa','<option>Pilih Data siswa</option>');
 ?>

lalu apa bedanya dengan tidak menggunakan helper, dengan menggunakan helper lebih mempersedikit codingan yang kita buat, karena kita tidak perlu menggunakan model.

kita hanya perlu controller dan view saja, serta helper, dan dengan helper juga akan mempermudah kita dalam pemanggilan selanjutnya.

ketikan code dibawah ini dan lihat perbedaannya.

<html>
<head>
  <title>Menggunakan Helper Select</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
</head>
<body>
<div class="col-md-8">
  <div class="form-group">
      <label for="exampleInputEmail1">Select Biasa</label>
<select name="nis" class="form-control">
<?php
foreach ($siswa as $key) {
echo "<option value='".$key->nis."'>$key->nama</option>";
}
 ?>
</select>
</div>

<div class="form-group">
<label for="exampleInputEmail1">Select Menggunakan Helper</label>
<?php
echo select_option('siswa','siswa','nama','nis',null,'class_tambahan','id=siswa','<option>Pilih Data siswa</option>');
 ?>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Select Menggunakan Helper (menggunakan select id)</label>
<?php
echo select_option('siswa','siswa','nama','nis','16171101','class_tambahan','id=siswa','<option>Pilih Data siswa</option>');
 ?>
</div>
</div>

 <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
</body>
</html>

sekian tutorial Memuat Helper Select Option di codeigniter, semoga dapat bermanfaat jangan lupa share dan Klik satu iklan untuk donasi website kami.

Categories
Codeigniter

Cara Membuat Import Excel di Codeigniter

Pada tutorial sebelumnya kita telah membahas 2 Cara Ekspor data di codeigniter yaitu , Cara membuat Eksport Excel di codeigniter dan Cara Membuat Eksport PDF di Codeigniter di tutorial kali ini kita akan membuat Import Excel di Codeigniter, Import Excel sangat penting apalagi dalam Sebuah Sistem Perusahaan Atau sekolah, yang biasaya menyimpan data dalam excel. Import Excel juga dapat mempercepat dalam penambahan data. Bisa di bayangkan kalau kita mempunyai 1000 data yang akan di input secara manual, pasti akan lama, tapi apabila kita menggunakan Import excel ini mungkin hanya itungan menit.

Kita Masih menggunakan Library yang sama yaitu PHPExcel. Langsung saja Pada Codingannya membuat Import Excel di Codeigniter.

  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 dengan nama Siswa.php

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

class Siswa extends CI_Controller {
private $filename = "import_data"; // Kita tentukan nama filenya

public function __construct(){
parent::__construct();

$this->load->model('SiswaModel');
}

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

public function form(){
$data = array(); // Buat variabel $data sebagai array

if(isset($_POST['preview'])){ // Jika user menekan tombol Preview pada form
// lakukan upload file dengan memanggil function upload yang ada di SiswaModel.php
$upload = $this->SiswaModel->upload_file($this->filename);

if($upload['result'] == "success"){ // Jika proses upload sukses
// Load plugin PHPExcel nya
include APPPATH.'third_party/PHPExcel/PHPExcel.php';

$excelreader = new PHPExcel_Reader_Excel2007();
$loadexcel = $excelreader->load('excel/'.$this->filename.'.xlsx'); // Load file yang tadi diupload ke folder excel
$sheet = $loadexcel->getActiveSheet()->toArray(null, true, true ,true);

// Masukan variabel $sheet ke dalam array data yang nantinya akan di kirim ke file form.php
// Variabel $sheet tersebut berisi data-data yang sudah diinput di dalam excel yang sudha di upload sebelumnya
$data['sheet'] = $sheet; 
}else{ // Jika proses upload gagal
$data['upload_error'] = $upload['error']; // Ambil pesan error uploadnya untuk dikirim ke file form dan ditampilkan
}
}

$this->load->view('form', $data);
}

public function import(){
// Load plugin PHPExcel nya
include APPPATH.'third_party/PHPExcel/PHPExcel.php';

$excelreader = new PHPExcel_Reader_Excel2007();
$loadexcel = $excelreader->load('excel/'.$this->filename.'.xlsx'); // Load file yang telah diupload ke folder excel
$sheet = $loadexcel->getActiveSheet()->toArray(null, true, true ,true);

// Buat sebuah variabel array untuk menampung array data yg akan kita insert ke database
$data = [];

$numrow = 1;
foreach($sheet as $row){
// Cek $numrow apakah lebih dari 1
// Artinya karena baris pertama adalah nama-nama kolom
// Jadi dilewat saja, tidak usah diimport
if($numrow > 1){
// Kita push (add) array data ke variabel data
array_push($data, [
'nis'=>$row['A'], // Insert data nis dari kolom A di excel
'nama'=>$row['B'], // Insert data nama dari kolom B di excel
'jenis_kelamin'=>$row['C'], // Insert data jenis kelamin dari kolom C di excel
'alamat'=>$row['D'], // Insert data alamat dari kolom D di excel
]);
}

$numrow++; // Tambah 1 setiap kali looping
}

// Panggil fungsi insert_multiple yg telah kita buat sebelumnya di model
$this->SiswaModel->insert_multiple($data);

redirect("Siswa"); // Redirect ke halaman awal (ke controller siswa fungsi index)
}
}

3. Buat Model dengan nama SiswaModel.php

<?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
}

// Fungsi untuk melakukan proses upload file
public function upload_file($filename){
$this->load->library('upload'); // Load librari upload

$config['upload_path'] = './excel/';
$config['allowed_types'] = 'xlsx';
$config['max_size'] = '2048';
$config['overwrite'] = true;
$config['file_name'] = $filename;

$this->upload->initialize($config); // Load konfigurasi uploadnya
if($this->upload->do_upload('file')){ // Lakukan upload dan Cek jika proses upload berhasil
// Jika berhasil :
$return = array('result' => 'success', 'file' => $this->upload->data(), 'error' => '');
return $return;
}else{
// Jika gagal :
$return = array('result' => 'failed', 'file' => '', 'error' => $this->upload->display_errors());
return $return;
}
}

// Buat sebuah fungsi untuk melakukan insert lebih dari 1 data
public function insert_multiple($data){
$this->db->insert_batch('siswa', $data);
}
}

4. Buat file baru beri nama Form.php

<html>
<head>
<title>Form Import</title>

<!-- Load File jquery.min.js yang ada difolder js -->
<script src="<?php echo base_url('js/jquery.min.js'); ?>"></script>

<script>
$(document).ready(function(){
// Sembunyikan alert validasi kosong
$("#kosong").hide();
});
</script>
</head>
<body>
<h3>Form Import</h3>
<hr>

<a href="<?php echo base_url("index.php/excel/format.xlsx"); ?>">Download Format</a>
<br>
<br>

<!-- Buat sebuah tag form dan arahkan action nya ke controller ini lagi -->
<form method="post" action="<?php echo base_url("index.php/Siswa/form"); ?>" enctype="multipart/form-data">
<!-- Buat sebuah input type file class pull-left berfungsi agar file input berada di sebelah kiri-->
<input type="file" name="file">

<!-- BUat sebuah tombol submit untuk melakukan preview terlebih dahulu data yang akan di import-->
<input type="submit" name="preview" value="Preview">
</form>

<?php
if(isset($_POST['preview'])){ // Jika user menekan tombol Preview pada form 
if(isset($upload_error)){ // Jika proses upload gagal
echo "<div style='color: red;'>".$upload_error."</div>"; // Muncul pesan error upload
die; // stop skrip
}

// Buat sebuah tag form untuk proses import data ke database
echo "<form method='post' action='".base_url("index.php/Siswa/import")."'>";

// Buat sebuah div untuk alert validasi kosong
echo "<div style='color: red;' id='kosong'>
Semua data belum diisi, Ada <span id='jumlah_kosong'></span> data yang belum diisi.
</div>";

echo "<table border='1' cellpadding='8'>
<tr>
<th colspan='5'>Preview Data</th>
</tr>
<tr>
<th>NIS</th>
<th>Nama</th>
<th>Jenis Kelamin</th>
<th>Alamat</th>
</tr>";

$numrow = 1;
$kosong = 0;

// Lakukan perulangan dari data yang ada di excel
// $sheet adalah variabel yang dikirim dari controller
foreach($sheet as $row){ 
// Ambil data pada excel sesuai Kolom
$nis = $row['A']; // Ambil data NIS
$nama = $row['B']; // Ambil data nama
$jenis_kelamin = $row['C']; // Ambil data jenis kelamin
$alamat = $row['D']; // Ambil data alamat

// Cek jika semua data tidak diisi
if(empty($nis) && empty($nama) && empty($jenis_kelamin) && empty($alamat))
continue; // Lewat data pada baris ini (masuk ke looping selanjutnya / baris selanjutnya)

// Cek $numrow apakah lebih dari 1
// Artinya karena baris pertama adalah nama-nama kolom
// Jadi dilewat saja, tidak usah diimport
if($numrow > 1){
// Validasi apakah semua data telah diisi
$nis_td = ( ! empty($nis))? "" : " style='background: #E07171;'"; // Jika NIS kosong, beri warna merah
$nama_td = ( ! empty($nama))? "" : " style='background: #E07171;'"; // Jika Nama kosong, beri warna merah
$jk_td = ( ! empty($jenis_kelamin))? "" : " style='background: #E07171;'"; // Jika Jenis Kelamin kosong, beri warna merah
$alamat_td = ( ! empty($alamat))? "" : " style='background: #E07171;'"; // Jika Alamat kosong, beri warna merah

// Jika salah satu data ada yang kosong
if(empty($nis) or empty($nama) or empty($jenis_kelamin) or empty($alamat)){
$kosong++; // Tambah 1 variabel $kosong
}

echo "<tr>";
echo "<td".$nis_td.">".$nis."</td>";
echo "<td".$nama_td.">".$nama."</td>";
echo "<td".$jk_td.">".$jenis_kelamin."</td>";
echo "<td".$alamat_td.">".$alamat."</td>";
echo "</tr>";
}

$numrow++; // Tambah 1 setiap kali looping
}

echo "</table>";

// Cek apakah variabel kosong lebih dari 1
// Jika lebih dari 1, berarti ada data yang masih kosong
if($kosong > 1){
?> 
<script>
$(document).ready(function(){
// Ubah isi dari tag span dengan id jumlah_kosong dengan isi dari variabel kosong
$("#jumlah_kosong").html('<?php echo $kosong; ?>');

$("#kosong").show(); // Munculkan alert validasi kosong
});
</script>
<?php
}else{ // Jika semua data sudah diisi
echo "<hr>";

// Buat sebuah tombol untuk mengimport data ke database
echo "<button type='submit' name='import'>Import</button>";
echo "<a href='".base_url("index.php/Siswa")."'>Cancel</a>";
}

echo "</form>";
}
?>
</body>
</html>

5. Buat File baru dengan nama View.php

<html>
<head>
<title>IMPORT EXCEL CI 3</title>
</head>
<body>
<h1>Data Siswa</h1><hr>
<a href="<?php echo base_url("index.php/siswa/form"); ?>">Import Data</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>
</body>
</html>

buat file excel seperti di atas dan coba import

Semoga tutorialnya berguna, jangan lupa comment dan share artikel membuat Import Excel di Codeigniter. Klik satu iklan untuk donasi website warungcode.com sampai bertemu di tutorial selanjutnya. Anda bisa download juga di sini

 

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
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
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
Codeigniter

Cara Menggunakan Ion Auth dan Bootstrap di Codeigniter

Hallo, coder di tutorial kali ini kita akan membahas tentang Membuath Login di Codeigniter Menggunakan Ion Auth dan Boostrap, ion auth adalah library untuk login dan register, pada tutorial kali ini bahan bahan yang kita harus siapakan adalah

Jika sudah mendownload ke tiga itu sekarang kita buat folder project di htdocs dengan nama loginionauth, setelah itu extrak file Codeigniter dan copy ke folder project tadi, setelah beres, extrak file Ion Auth dan copy ke folder project.

1. Ubah base_url dan language di application/config/config.php

$config['base_url'] = 'http://localhost/loginionauth/';
$config['language']	= 'indonesian';

2. Ubah routes

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

3. Buat database dengan nama ion_auth dan import database yang ada si folder sql di dalam project

4. silahkan coba jalankan untuk loginnya secara default adalah email : admin@admin.com dan password : password

Ion Auth 2

The future of authentication

by Ben Edmunds

Redux Auth 2 had a lot of potential. It’s lightweight, simple, and clean, but had a ton of bugs and was missing some key features. So we refactored the code and added new features.

This version drops any backwards compatibility and makes things even more awesome than you could expect.

mengapa kita memilih ionauth karena sistem yang kita butuhkan sudah ada semua disana

  • Lupa Password
  • Remember Me
  • Login Admin dan User
  • Email Lupa Password

 

Jangan lupa like dan klik 1 iklan kami untuk donasi

[button link=”https://github.com/warungcodeid/login-ionauth-codeigniter” newwindow=”yes”] Download[/button]