Membuat Import Data Excel PHP - Mysqli dengan Logika Kondisi Tertentu

Membuat Import Data Excel PHP - Mysqli dengan Logika Kondisi Tertentu

Halo sobat ilmu skripsi lama saya tidak upload artikel karena kesibukan pekerjaan, oke langsung saja ya. pada kesempatan kali ini saya akan mengulas tentang bagaimana melakukan import data dengan PHP dan database mysql. 

Import data pada umumnya dibutuhkan untuk menginput data yang berjumlah banyak, sehingga akan sangat lama jika dilakukan penginputan data secara manual / satu persatu. Maka dari itu dibutuhkan import data dan bisanya import data dilakukan dengan menggunakan file excel.

oke langsung saja langkah apa saja yang harus dilakukan, mari simak penjelasan dibawah ini ya sobat.

untuk contoh kasus pada kali ini saya akan membuat contoh kasus import data produk, dan ada beberapa file yang harus dibuat diantaranya bisa anda lihat dibawah ini.


1. file koneksi.php

2. file index.php

3. file import.php

4. file proses-upload.php

5. file download.php

6. file hapus.php


Dari file-file di datas nanti akan saya ulas satu persatu langkah-langkah implementasinya kedalam bentuk koding PHP-Mysqli.

Sebelumnya kita membutuhkan beberapa file yang harus sobat semua download, untuk kebutuhan import data ini seperti file database sql, template excel untuk import data, dan file excel reader yang berfungsi sebagai librari untuk proses import data, sobat semua bisa download filenya dibawah ini.


database sql klik disini

template excel klik disini

excel reader klik disini


Setelah sobat semua download semua file diatas selanjutnya sobat bikin folder didalam folder htdoct dengan nama importdata atau boleh dengan nama lainnya sesuai dengan keinginan sobat semua.

Pindahkan file excel_reader2.php yang sudah di download kedalam folder importdata dan kemudian di dalam folder importdata selanjutnya bikin folder uploadexcel, dan pindahkan file template excel yang bernama dataimport.xls yang sudah di download tadi kedalam folder tersebut.


Langkah selanjutnya adalah mengimport database sql yang sudah sobat download pada link diatas, untuk proses import database caranya mudah. Buka alamat localhost/phpmyadmin dan buat database baru dengan nama sesuai dengan database sql yang di download tadi. 

Dalam nama database tersebut isikan dengan nama "contoh_importdata" kemudian klik create. Langkah selanjutnya sobat tinggal melakukan proses import data dengan mengambil file sql yang sudah didownload tadi.

Berikut ada hasil database jika sudah selesai diimport, didalamnya terdapat tabel mproduk yang nantinya akan kita gunakan untuk penyimpanan data import produk


Membuat Import Data Excel PHP - Mysqli dengan Logika Kondisi Tertentu


Langkah selanjutnya kita akan membuat file koneksi kedatabase, sobat semuanya bisa menyimpan file nya dengan nama koneksi.php . berikut ada file koneksi.php


koneksi.php

1
2
3
4
5
6
7
8
9
<?php 
$koneksi = mysqli_connect("localhost","root","","contoh_importdata");
 
// Check connection
if (mysqli_connect_errno()){
	echo "Koneksi database gagal : " . mysqli_connect_error();
}

?>

Langkah selanjutnya kita membuat file index.php , dimana didalam file index nantinya akan berfungsi untuk menampilkan halaman data produk yang di import.

Berikut ini adalah kode dari file index.php

index.php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<h2 align="center">Import Data Excel PHP-Mysqli by ilmuskripsi.com</h2>

<hr />
<table width="300" border="0">
  <tr>
    <td width="142">
   <a href="hapus.php" onclick="javascript: return confirm('Anda yakin ingin menghapus data ?')"> 
   <input type="button" name="button" class="btn btn-danger" value="Kosongkan Data" />
   </a>
   </td>
    <td width="142">	
	<a href="import.php">
      <input type="button" name="button" class="btn btn-danger" value="Import Data" />
    </a>
	</td>
  </tr>
</table>
<hr />


<table width="100%" border="1" align="center" rules="all">
  <tr bgcolor="#CCCCCC">
    <td width="31"><div align="center"><strong>No</strong></div></td>
    <td width="143"><strong>Kode </strong></td>
    <td width="284"><strong>Nama</strong></td>
    <td width="140"><strong>Harga</strong></td>
    <td width="155"><strong>Berat</strong></td>
    <td width="175"><strong>diskon</strong></td>
    <td width="184"><strong>Kondisi</strong></td>
    <td width="171"><strong>Keterangan</strong></td>
   </tr>
  <?php
  		include "koneksi.php";
		$no=1;
		$data=mysqli_query($koneksi,"select * from mproduk");
		while($arraytampil=mysqli_fetch_array($data)){
  ?>
  <tbody id="myTable">
    <tr><td height="42"><div align="center"><?php echo $no++; ?></div></td>
    <td><?php echo "&nbsp; $arraytampil[kode] "; ?></td>
    <td><?php echo "&nbsp; $arraytampil[nama] "; ?></td>
    <td>
	<?php 
	$harga=number_format($arraytampil['harga'],0, ".", ".");
	echo "Rp. $harga "; ?>	</td>
    <td><?php echo "&nbsp; $arraytampil[berat] "; ?></td>
    <td><?php echo "&nbsp; $arraytampil[disc] "; ?> %</td>
    <td><?php echo "&nbsp; $arraytampil[kondisi] "; ?></td>
    <td><?php echo "&nbsp; $arraytampil[ket] "; ?></td>
    </tr>
   </tbody>
  
   <?php 

 } ?>
</table>



Setelah kita melakuan pengkodingan file index.php tahapan selanjutnya kita membuat file import.php , didalam file import ini nantinya proses import data file excel akan dilakukan, berikut adalah kode dari file import.php


import.php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<h2 align="center">Import Data Excel PHP-Mysqli by ilmuskripsi.com</h2>

<hr />
<table width="382" border="0">
  <tr>
    <td width="218"><a href="download.php" target="_blank">
    <input type="submit" name="button" class="btn btn-danger" value="Download Template Excel" /></a></td>
    <td width="154">	<a href="index.php">
      <input type="submit" name="button" class="btn btn-danger" value="Data Produk" />
    </a></td>
  </tr>
</table>
<hr />


<form method="post" enctype="multipart/form-data" action="proses-upload.php">
<table width="1284" border="0">
  <tr>
    <td>&nbsp;</td>
    <td><font color="#FF0000">
*SILAHKAN DOWNLOAD TEMPLATE FILE EXCEL JIKA BELUM MEMPUNYAI FILENYA <BR />
*PASTIKAN KODE PRODUK TIDAK ADA YANG KOSONG JIKA ADA YANG KOSONG MAKA PROSES IMPORT DATA GAGAL <BR />
*PASTIKAN KODE PRODUK DALAM FILE EXCEL TIDAK BOLEH SAMA DENGAN YANG LAIN, JIKA ADA YANG SAMA MAKA SALAH SATU PRODUK TIDAK AKAN MASUK KEDALAM DATABASE<BR />
*PENGISIAN KOLOM HARGA HANYA BOLEH DI ISI ANGKA TIDAK ADA TITIK KOMA
</font></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td width="13">&nbsp;</td>
    <td width="1261">Silahkan Pilih File Excel : </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="filedata" type="file" required="required"></td>
  </tr>
  <tr>
    <td colspan="2"><hr></td>
    </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="upload" type="submit" value="Import" class="btn btn-success"></td>
  </tr>
</table>
</form>


Setelah file import.php selesai kita implementasikan kedalam koding selanjutnya adalah membuat proses upload data, pada file kali ini kita beri nama proses-upload.php, untuk implementasi kodingnya anda bisa melihatnya dibawah ini.


proses-upload.php


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php 
// menghubungkan dengan koneksi
include 'koneksi.php';
// menghubungkan dengan library excel reader
require_once "excel_reader2.php";


//// upload file xls
$target = basename($_FILES['filedata']['name']) ;
move_uploaded_file($_FILES['filedata']['tmp_name'], $target);

// beri permisi agar file xls dapat di baca
chmod($_FILES['filedata']['name'],0777);

// mengambil isi file xls
$data = new Spreadsheet_Excel_Reader($_FILES['filedata']['name'],false);

// menghitung jumlah baris data yang ada 
$jumlah_baris = $data->rowcount($sheet_index=0);

// jumlah default data yang berhasil di import
$berhasil = 0;


for ($i=2; $i<=$jumlah_baris; $i++){

	// menangkap data dan memasukkan ke variabel sesuai dengan kolumnya masing-masing
	

	$kode 		= $data->val($i, 1); //kode
	$nama  		= $data->val($i, 2); //nama
	$berat 		= $data->val($i, 3); //berat
	$harga 	 	= $data->val($i, 4); //harga
	$disc  		= $data->val($i, 5); //disc
	$kondisi 	= $data->val($i, 6); //kondisi
	$ket 		= $data->val($i, 7); //ket


//mengecek jika kolom kode produk pada template excel ada yang kosong
$cari = mysqli_num_rows(mysqli_query($koneksi,"SELECT kode FROM mproduk WHERE kode='$kode'"));

if (empty($kode)){
 		
 	 echo "<script>window.alert('import gagal kode produk tidak boleh ada yang kosong !')</script>";
	 echo "<script>window.location='".$_SERVER['HTTP_REFERER']."'</script>";
	 
}
elseif ($cari > 0){
  	
		$query=mysqli_query($koneksi,"UPDATE mproduk SET kode='$kode',
										nama='$nama',
										berat='$berat',
										harga='$harga',
										disc='$disc',
										kondisi='$kondisi',
										ket='$ket'
										WHERE kode='$kode'");
													
													
 }
 else{
  		// input data ke database (table mproduk)
		$query=mysqli_query($koneksi,"INSERT into mproduk (kode,nama,berat,harga,disc,kondisi,ket)
							values('$kode','$nama','$berat','$harga','$disc', '$kondisi','$ket')");
		
 }

																									
													
$berhasil++;
 	
}


// hapus kembali file .xls yang di upload tadi
unlink($_FILES['filedata']['name']);

// alihkan halaman ke index.php
echo "<script>window.alert('sukses import $berhasil data!')</script>";
echo "<script>window.location='index.php'</script>";


?>


Inti dari proses upload data dengan excel ini adalah pada file diatas dimana fungsi logika kita masukan pada file proses-upload.php.

Ketentuan logika dengan kondisi yang kita buat yaitu

  1. Jika didalam tabel mproduk belum ada data dengan kode produk yang berada dalam file excel, maka sistem akan menginputkan data baru.
  2. Jika status didalam tabel mproduk sudah ada kode produk yang tersimpan dan sama dengan kode produk didalam file excel maka sistem akan mengupdate, dengan kata lain. Data yang lama tidak terhapus akantetapi terupdate sesuai dengan kode produk yang sama.
  3. Jika didalam file excel ada kode produk yang belum terisi/kosong maka proses import akan gagal.
Untuk keterangan kode program diatas sobat bisa baca langsung di file yang sudah saya kasih komentar pada script diatas.

Untuk tahap selanjutnya adalah membuat file download.php dan hapus.php , untuk filenya sobat bisa lihat pada kodingan dibawah ini.

download.php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// Downloads files
// Tentukan folder file yang boleh di download
$folder = "uploadexcel/";
$filename = "dataimport.xls";
$file_extension = strtolower(substr(strrchr($filename,"."),1));

// Lalu cek menggunakan fungsi file_exist
			if (!file_exists($folder.$filename)) {
					 echo "<h1>Access forbidden!</h1>
					 <p>File Sudah Tidak Ada</p>";
					 exit;
			}
			else if ($file_extension=='php'){
					 echo "<h1>Access forbidden!</h1>
					 <p>Maaf, file yang Anda download sudah tidak tersedia atau filenya (direktorinya) telah diproteksi. <br />.</p>";
					 exit;
			}
			// Apabila mendownload file di folder 
			else {
			 
					 //header("Cache-Control: public");
					 //header("Content-Description: File Transfer");
					 header("Content-Disposition: attachment; filename=".basename($filename));
					 header("Content-Type: application/octet-stream;");
					 //header("Content-Transfer-Encoding: binary");
					 readfile("uploadexcel/".$filename);
			}
?>



hapus.php

1
2
3
4
5
6
7
<?php 
include "koneksi.php";

mysqli_query($koneksi,"TRUNCATE TABLE mproduk");
echo "<script>window.alert('data berhasil di hapus!')</script>";
echo "<script>window.location='".$_SERVER['HTTP_REFERER']."'</script>";
?>



Pada file download.php berfungsi untuk mendownload template excel yang nantinya akan kita isi data produk yang akan kita import. Sedangkan pada file hapus.php berfungsi untuk mengosongkan data dalam tabel mproduk yang kita buat.

Setelah semuanya selesai kita implementasikan kedalam bentuk koding selanjutnya sobat tinggal mencoba kedalam browser dengan mengakses url localhost/importdata.

Dan berikut adalah tampilan dari hasil kodingan diatas.

Membuat Import Data Excel PHP - Mysqli dengan Logika Kondisi Tertentu
Tampilan file index.php


Membuat Import Data Excel PHP - Mysqli dengan Logika Kondisi Tertentu
tampilan file import.php



Membuat Import Data Excel PHP - Mysqli dengan Logika Kondisi Tertentu
Tampilan data setelah di import


Untuk proses upload data sobat semua tinggal browse file template excel yang sobat download diawal tadi.

Jika sobat semua ingin file lengkapnya sobat bisa minta file langsung ke admin dengan syarat sudah subscribe channel youtube dibawah ini, dan tinggalkan pesan positif dikolom komentar dengan meninggalkan email yang sudah subcribe channel yang disediakan.

File akan dikirim langsung setelah komentar masuk dan status email sudah subsribe.

nb : komentar akan di shortir terlebih dahulu jadi tidak langsung tampil di kolom komentar ya sobat.

Terimakasih semoga bermanfaat

SUBSCRIBE DISINI