Cara Mudah Import Data Dari Excel Ke Database Di Framework CodeIgniter
Software Engineer | Blogger | Creator of RubyPedia.com
29 September 2019

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:

  1. CodeIgniter
  2. PHPExcel

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-codeigniter yang tadi kita sudah pindahkan, masukkan folder PHPEXcel ke /application/thridparty/.

Kurang lebih hasilnya seperti ini:

gambar directory PHPEXcel

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:

gambar create tabel dosen

Kemudian masukkan beberapa field ini ke dalam tabel:

  1. id_dosen, tipe data INT dengan value 11 dan dijadikan primary key dan auto increment.
  2. nama_dosen, tipe data VARCHAR dengan value 100.
  3. email, tipe data VARCHAR dengan value 100.
  4. alamat, tipe data TEXT.

Untuk tipe data yang jelas, kurang lebih seperti gambar dibawah ini:

gambar field tabel dosen

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.php 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:

  1. Import.php ( file controller )
  2. v_import ( file view )

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:

gambar format excel

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:

gambar tampilan aplikasi

Jika Upload gagal, maka kurang lebih tampilannya seperti berikut ini:

gambar upload gagal

Jika Upload berhasil, kurang lebih tampilannya seperti berikut ini:

gambar upload berhasil

Dan data yang berhasil tersimpan didatabase, kurang lebih seperti berikut ini:

gambar data databasei

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 :)

Blog ini telah dibaca sebanyak 227 kali
CodeIgniter Import Excel Import Excel CodeIgniter

Sekilas Tentang Penulis

Fika Ridaul Maulayya
Software Engineer | Blogger | Creator of RubyPedia.com

KOMENTAR

blog comments powered by Disqus