Halo teman-teman developer semuanya, pada kesempatan artikel kali ini, saya ingin memberikan tutorial mudah bagaimana cara mengimport data dari file excel kemudian menyimpannya di database di framework CodeIgniter.
oke kita langsung mulai saja ke tutorial bagaimana cara membuatnya, jadi apa saja yang perlu kita persiapkan ?, berikut ini beberapa tools yang akan kita pakai:
Silahkan teman-teman unduh famework CodeIgniter dan PHPExcelnya, setelah semua berhasil terunduh, mari kita mulai.
Silahkan kalian extract file CodeIgniter.zip dan rename dengan nama import-codeigniter
, copy hasil extract ke folder C:/XAMPP/htdocs/ (jika kalian menggunakan XAMPP).
Langkah selanjutnya, silahkan kalian copykan folder PHPExcel ke dalam project import-codeignite
r yang tadi kita sudah pindahkan, masukkan folder PHPEXcel ke /application/thridparty/.
Kurang lebih hasilnya seperti ini:
Oke, sekarang kita lanjutkan membuat sebuah database baru dulu, didalam database ini kita akan buat sebuah tabel baru juga, yang manan nantinya tabel inilah yang berfungsi untuk menyimpan data yang dari excel.
Silahkan buat database dengan nama import_codeigniter
, untuk cara membuat database baru, kalian bisa buka http://localhost/phpmyadmin, kemudian klik new
, dan masukkan nama databasenya import_codeigniter
.
Setelah database berhasil terbuat, selanjutnya kita membuat sebuah tabel baru, klik database import_codeigniter
, dan buat tabel baru dengan nama tbl_dosen
dengan 4 coloumn
.
Kurang lebih tampilannya seperti berikut ini:
Kemudian masukkan beberapa field ini ke dalam tabel:
INT
dengan value 11
dan dijadikan primary key
dan auto increment
.VARCHAR
dengan value 100
.VARCHAR
dengan value 100
.TEXT
.Untuk tipe data yang jelas, kurang lebih seperti gambar dibawah ini:
Oke setelah semua konfigurasi database selesai, sekarang kita konfigurasi beberapa pengaturan di famework CodeIgniter, silahkan buka file config.php
di /application/config/config.php
.
Silahkan cari kode berikut ini:
$config['base_url'] = '';
Ubahlah menjadi seperti ini:
$config['base_url'] = "http://".$_SERVER['HTTP_HOST'].
str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
Kemudian buka file autoload.php
di folder /application/config/autoload.php
Silahkan cari kode berikut ini:
$autoload['libraries'] = array('’);
$autoload['helper'] = array('');
Ubahlah menjadi seperti berikut ini:
$autoload['libraries'] = array('database', 'session’);
$autoload['helper'] = array('url');
Selanjutnya buka file database.ph
p di folder /application/config/database.php
, silahkan ubah beberapa kode dibawah ini:
Cari kode dibawah ini:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => '',
'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
);
Ubahlah menjadi seperti berikut ini:
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => ‘', //sesuaikan dengan password database kalian, secara bawaan dikosongi
'database' => ‘import_codeigniter’, //seseuaikan dengan nama database kalian
'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
);
Oke setelah semua selesai, sekarang kita lanjutkan ke proses koding, jadi ada beberapa file yang akan dika buat, diantaranya adalah:
Oke untuk yang pertama, kita akan buat sebuah controller baru dengan nama Import.php
di folder /application/controllers/
, kemudian silahkan kalian masukkan kode dibawah ini:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Import extends CI_Controller {
public function index()
{
$this->load->view('v_import');
}
public function upload()
{
// Load plugin PHPExcel nya
include APPPATH.'third_party/PHPExcel/PHPExcel.php';
$config['upload_path'] = realpath('excel');
$config['allowed_types'] = 'xlsx|xls|csv';
$config['max_size'] = '10000';
$config['encrypt_name'] = true;
$this->load->library('upload', $config);
if (!$this->upload->do_upload()) {
//upload gagal
$this->session->set_flashdata('notif', '<div class="alert alert-danger"><b>PROSES IMPORT GAGAL!</b> '.$this->upload->display_errors().'</div>');
//redirect halaman
redirect('import/');
} else {
$data_upload = $this->upload->data();
$excelreader = new PHPExcel_Reader_Excel2007();
$loadexcel = $excelreader->load('excel/'.$data_upload['file_name']); // Load file yang telah diupload ke folder excel
$sheet = $loadexcel->getActiveSheet()->toArray(null, true, true ,true);
$data = array();
$numrow = 1;
foreach($sheet as $row){
if($numrow > 1){
array_push($data, array(
'nama_dosen' => $row['A'],
'email' => $row['B'],
'alamat' => $row['C'],
));
}
$numrow++;
}
$this->db->insert_batch('tbl_dosen', $data);
//delete file from server
unlink(realpath('excel/'.$data_upload['file_name']));
//upload success
$this->session->set_flashdata('notif', '<div class="alert alert-success"><b>PROSES IMPORT BERHASIL!</b> Data berhasil diimport!</div>');
//redirect halaman
redirect('import/');
}
}
}
Selanjutnya, setelah berhasil membuat controller, sekarang kita lanjutkan membuat sebuah view baru dengan nama v_import.php
di folder /application/views
, kemduain masukkan kode dibawah ini:
<!DOCTYPE html>
<html>
<head>
<title>Import Excel CodeIgniter</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container" style="margin-top: 100px">
<div class="row">
<div class="col-md-8 offset-2">
<?php echo $this->session->flashdata('notif') ?>
<form method="POST" action="<?php echo base_url() ?>index.php/import/upload" enctype="multipart/form-data">
<div class="form-group">
<label for="exampleInputEmail1">UNGGAH FILE EXCEL</label>
<input type="file" name="userfile" class="form-control">
</div>
<button type="submit" class="btn btn-success">UPLOAD</button>
</form>
</div>
</div>
</div>
</body>
</html>
Untuk format file Excel, kalian bisa membuatnya seperti berikut ini:
Oke, sebelum kita mencoba aplikasinya, silahkan kita buat folder dengan nama excel
, di dalam root folder project kita, jadi folder excel
ini sejajar dengan folder application
dan systems
, gunanya folder excel ini digunakan untuk termporary sementara file excel yang diupload.
Oke sekarang, coba kalian jalankan aplikasinya dengan mengakses http://localhost/import-codeigniter/index.php/import, maka kurang lebih tampilannya seperti berikut ini:
Jika Upload gagal, maka kurang lebih tampilannya seperti berikut ini:
Jika Upload berhasil, kurang lebih tampilannya seperti berikut ini:
Dan data yang berhasil tersimpan didatabase, kurang lebih seperti berikut ini:
Jadi kurang lebih seperti itu cara mudah membuat import file excel dan menyimpannya kedatabase di framework codeigniter, untuk kalian yang masih kebingungan atau mengalami kendala saat mencobanya, silahkan bertanya melalui kolom komentar di akhir artikel ini.
Terima kasih :)