Cara Membuat User Baru di VPS Windows Server

Windows Server merupakan Sistem Operasi yang digunakan untuk data center pribadi maupun perusahaan. Windows Server bisa digunakan untuk server networking perusahaan, berbagai layanan berbasis cloud, dan sebagai server website atau web app. Sama halnya seperti Windows 7, 8, dan 10 dalam Windows Server, kita dapat membuat user baru, untuk tujuan keamanan karena terkadang seseorang ingin membagi akses […]

Cara Membuat Import Data Dari Excel dengan Codeigniter dan PHPExcel

Sudah lama tidak update catatan, pada kesempatan ini. Saya akan coba berbagi kembali catatan/tutorial yang mudah-mudahan bisa bermanfaat yakni Cara Membuat Import Data Dari Excel dengan menggunakan Framework Codeigniter 3, librari PHPExcel (berguna untuk membantu kita membaca isi dari file excel yang akan diimport datanya), dan Database MySQL.

Berikut adalah fitur-fitur yang akan kita buat:

  1. View Data dari Database.
  2. Form untuk Import Data.
  3. Preview Data yang akan diimport sebelum di simpan ke database.
  4. Validasi terhadap file yang dipilih oleh User pada form import. Hanya file Microsoft Office 2007 (.xlsx) yang diperbolehkan.
  5. Validasi terhadap input data. Jika ada data yang kosong / belum diisi, sistem akan memberitahu jumlah data yang kosong dan data mana saja.

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


STEP 1 – PERSIAPAN

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

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

  1. Buat sebuah database dengan nama mynotescode
  2. Buat sebuah tabel dengan nama siswa. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Membuat Import Data Dari Excel dengan Codeigniter dan PHPExcel
    CREATE TABLE `siswa` (
      `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
      `nis` varchar(11) NOT NULL,
      `nama` varchar(50) NOT NULL,
      `jenis_kelamin` varchar(10) NOT NULL,
      `alamat` text NOT NULL
    )

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

Baca Juga:
  • Tutorial PHP Bahasa Indonesia Lengkap Plus Source Code
  • Cara Mudah Menghitung Nilai IPK Menggunakan Pascal
  1. Buka folder xampp/htdocs/import_excel_ci/application/config/
  2. Buka file config.php
    Cari kode berikut $config['base_url'] = '';Ubah kode tersebut jadi seperti ini :

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

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

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

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

    Ubah jadi seperti ini :

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

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

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

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

    Ubah jadi seperti ini :

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

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

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

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

    Ubah jadi seperti ini :

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

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


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

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);
  }
}

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

Lalu terdapata function upload_file($filename), fungsi ini berfungsi untuk melakukan upload file excel yang akan di import datanya. Ada beberapa konfigurasi dalam uploadnya antara lain :

  1. $config[‘upload_path’] = ‘./excel/’;
    Berfungsi untuk menentukan folder untuk menyimpan file yang akan diupload. Dalam catatn ini, kita akan menguploadnya di folder excel yang berada di root direktori web (xampp/htdocs/import_excel_ci/excel).
  2. $config[‘allowed_types’] = ‘xlsx’;
    Berfungsi untuk memvalidasi file tipe apa saja yang boleh diupload.
  3. $config[‘max_size’]    = ‘2048’;
    Berfungsi untuk menentukan maksimal ukuran file yang boleh diupload dalam satuan Kb. Disini saya tentukan 2048 Kb = 2 MB.
  4. $config[‘overwrite’] = true;
    Berfungsi untuk me-replace file apabila di dalam folder (tempat menyimpan file uploadnya) sudah ada file dengan nama tersebut.
  5. $config[‘file_name’] = $filename;
    Berfungsi untuk menentukan dan me-rename file yang akan diupload sesuai keinginan. Dalam catatan ini, kita set nama filenya menjadi import_data.xlsx
  6. Untuk lebih lengkapnya mengenai konfiurasi apa saja yang bisa kita gunakan, Anda bisa lihat pada dokumentasi Codeigniternya langsung disini.

$this->upload->data()
Berfungsi untuk mengambil output dari hasil proses upload. outputnya berupa array seperti contoh berikut :

Array
(
  [file_name]     => mypic.jpg
  [file_type]     => image/jpeg
  [file_path]     => /path/to/your/upload/
  [full_path]     => /path/to/your/upload/jpg.jpg
  [raw_name]      => mypic
  [orig_name]     => mypic.jpg
  [client_name]   => mypic.jpg
  [file_ext]      => .jpg
  [file_size]     => 22.2
  [is_image]      => 1
  [image_width]   => 800
  [image_height]  => 600
  [image_type]    => jpeg
  [image_size_str] => width="800" height="200"
)

$this->upload->display_errors()
Berfungsi untuk mengambil pesan error apabila proses upload gagal.

$this->db->insert_batch(‘siswa’, $data);
Berfungsi untuk melakukan insert lebih dari 1 data sekaligus. Terdapat 2 parameter yang dibutuhkan oleh fungsi ini yakni :

  1. Parameter 1 : diisi dengan nama tabel
  2. Parameter 2 : diisi dengan array data yang akan di insert, contoh array nya :
    array(
      array('field1'=>'isi_field1','field2'=>'isi_field2'), // Data ke 1
      array('field1'=>'isi_field1','field2'=>'isi_field2') // Data ke 2
    )

Untuk lebih jelasnya mengenai insert_batch, silahkan anda lihat di dokumentasi nya langsung : klik disini.


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

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

Saya akan sedikit jelaskan mengenai kode diatas.

$excelreader = new PHPExcel_Reader_Excel2007();
$loadexcel = $excelreader->load(‘excel/’.$this->filename.’.xlsx’);
$sheet = $loadexcel->getActiveSheet()->toArray(null, true, true ,true);
Kode ini berfungsi untuk membaca isi dari file excel yang telah kita upload sebelumnya. Hasilnya nanti akan menjadi array yang akan kit looping menggunakan foreach pada file form.php.

array_push($data, [
    ‘nis’=>$row[‘A’],
    ‘nama’=>$row[‘B’],
    ‘jenis_kelamin’=>$row[‘C’],
    ‘alamat’=>$row[‘D’],
]);
Kode ini berfungsi untuk menambahkan array baru ke dalam variabel $data. Nantinya variabel data akan terisi array seperti berikut :

array(
  array('nis'=>'isi dari nis 1', 'nama'=>'isi dari nama 1', 'jenis_kelamin'=>'isi dari jenis kelamin 1', 'alamat'=>'isi dari alamat 1'),
  array('nis'=>'isi dari nis 2', 'nama'=>'isi dari nama 2', 'jenis_kelamin'=>'isi dari jenis kelamin 2', 'alamat'=>'isi dari alamat 2'),
  array('nis'=>'isi dari nis 3', 'nama'=>'isi dari nama 3', 'jenis_kelamin'=>'isi dari jenis kelamin 3', 'alamat'=>'isi dari alamat 3'),
)

STEP 6 – VIEW
Langkah selanjutnya adalah membuat file view untuk menampilkan interface / antarmukanya. Buat sebuah file dengan nama view.php, lalu simpan pada folder xampp/htdocs/import_excel_ci/application/views/. Berikut tampilan dan kodenya :

View - Cara Membuat Import Data Dari Excel dengan Codeigniter dan PHPExcel



  IMPORT EXCEL CI 3


  

Data Siswa


">Import Data

"; echo ""; echo ""; echo ""; echo ""; echo ""; } }else{ // Jika data tidak ada echo ""; } ?>
NIS Nama Jenis Kelamin Alamat
".$data->nis."".$data->nama."".$data->jenis_kelamin."".$data->alamat."
Data tidak ada

Pada kode diatas terdapat kode foreach($siswa as $data){, kode tersebut akan manampilkan satu per satu data siswa sampai data siswa yang terakhir.
echo “

”.$data->nis.”

”;
echo “

”.$data->nama.”

”;
echo “

”.$data->jenis_kelamin.”

”;
echo “

”.$data->alamat.”

”;
Pada kode diatas, yang saya beri tanda merah. Itu harus sama dengan nama kolom / field yang ada di database tabel siswa.


STEP 7 – FORM
Terakhir, kita akan buat form untuk import datanya. Buat sebuah file dengan nama form.php, lalu simpan pada folder xampp/htdocs/import_excel_ci/application/views/. Berikut tampilan dan kodenya :

Form - Cara Membuat Import Data Dari Excel dengan Codeigniter dan PHPExcel



  Form Import
  
  
  
  
  


  

Form Import


">Download Format

" enctype="multipart/form-data">
".$upload_error."
"; // Muncul pesan error upload die; // stop skrip } // Buat sebuah tag form untuk proses import data ke database echo "
"; // Buat sebuah div untuk alert validasi kosong echo "
Semua data belum diisi, Ada data yang belum diisi.
"; echo ""; $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 ""; echo "".$nis.""; echo "".$nama.""; echo "".$jenis_kelamin.""; echo "".$alamat.""; echo ""; } $numrow++; // Tambah 1 setiap kali looping } echo "
Preview Data
NIS Nama Jenis Kelamin Alamat
"; // Cek apakah variabel kosong lebih dari 1 // Jika lebih dari 1, berarti ada data yang masih kosong if($kosong > 1){ ?> "; // Buat sebuah tombol untuk mengimport data ke database echo ""; echo "Cancel"; } echo "
"; } ?>

Saya tidak akan menjelaskan soal skrip diatas, karena sudah saya jelaskan per masing-masing skrip (dengan komentar). Tapi saya akan jelaskan alur form import diatas. Pertama, User harus mendownload Format File Excel yang sudah kita buat sebelumnya. Kedua, User megisi data yang akan diimport pada file excel yang telah di download tadi. Ketiga, user memilih file excel yang akan diimport datanya lalu klik tombol preview. Keempat, Ketika user mengklik tombol preview, sistem akan melakukan:

  1. Validasi apakah file yang dipilih memiliki format microsoft excel 2007 (.xlsx) atau tidak
  2. Validasi apakah user telah mengisi semua data yang diperlukan pada file excel tersebut. Jika masih ada yang kosong / belum diisi, sistem akan memberi informasi berupa jumlah data yang masih kosong dan memberi tahu user data mana saja yang kosong dengan cara memberi background merah pada kolom / baris yang kosong (pada tabel preview)
  3. Apabila lolos dari kedua validasi yang saya sebutkan diatas, sistem akan memunculkan tombol Import untuk melakukan proses import data. Tapi apabila ternyata tidak lolos validasi, tombol import tidak akan muncul.

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

Happy Coding ^_^


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


SUMBER & REFERENSI
Dokumentasi Codeigniter : https://www.codeigniter.com/user_guide
Dokumentasi PHPExcel : https://github.com/PHPOffice/PHPExcel/wiki/User%20Documentation
Tutorial membuat import data dari excel dengan codeigniter dan phpexcel, tutorial import excel dengan codeigniter 3 dan mysql, cara mudah membuat import data dari excel dengan codeignite 3 dan phpexcel, cara mudah membuat import excel dengan codeigniter 3 dan mysql.

Import Excel

The post Cara Membuat Import Data Dari Excel dengan Codeigniter dan PHPExcel appeared first on My Notes Code.