Menangani Data NIK atau Nomor Berawalan 0 Pada PhpSpreadsheet

2 Juni 2025
Bagikan:
Menangani Data NIK atau Nomor Berawalan 0 Pada PhpSpreadsheet

PhpSpreadsheet merupakan library php yang cukup banyak digunakan dalam berbagai projek yang membutuhkan export data misal dari database menjadi microsoft excel ataupun sebaliknya. Dalam beberapa kasus seperti misal pada data berupa nomor induk kependudukan (NIK) kalau kamu tidak membuat pengaturan khusus atau pemanggilan data pada saat di exportnya menggunakan cara biasa (default) maka kemungkinan data yang dihasilkan tidak akan sesuai, misal dari nomor 3072070523721127 menjadi 3072070523721130 

Alasan mengapa 3072070523721127 menjadi 3072070523721130 adalah karena keterbatasan presisi pada tipe data numerik dalam PHP.Dalam PHP, tipe data numerik (integer atau float) memiliki batasan presisi tertentu. Ketika kamu bekerja dengan angka yang sangat besar, seperti NIK, PHP mungkin tidak dapat merepresentasikan angka tersebut dengan tepat.

Dalam kasus ini, angka 3072070523721127 terlalu besar untuk direpresentasikan sebagai integer dengan tepat, sehingga PHP mengkonversinya menjadi float. Namun, float memiliki keterbatasan presisi, sehingga angka tersebut dibulatkan menjadi 3072070523721130. Hal ini disebabkan oleh cara kerja komputer dalam merepresentasikan angka, yaitu menggunakan sistem biner. Sistem biner memiliki keterbatasan dalam merepresentasikan angka desimal dengan tepat, sehingga terjadi kesalahan pembulatan.
Lalu pada jenis numerik lain misal NISN yang berawalan 0 akan dihapus 0 didepannya karena php menganggap bahwa data tersebut merupakan data numerik.

Lalu bagaimana cara mengatasinya ? 

Untuk mengatasi masalah tersebut kamu dapat menentukan tipe data pada kolom tertentu seperti nik secara eksplisit. 

Contoh :

$sheet->setCellValueExplicit('kolom_cell' . $rowIndex, $row['nik'], \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);

Jika dirasa terlalu panjang maka kita panggil fungsinya menggunakan use seperti berikut

use PhpOffice\PhpSpreadsheet\Cell\DataType;

Sehingga nanti data dapat dipanggil seperti berikut :

$sheet->setCellValueExplicit('kolom_cell' . $rowIndex, $row['nik'], DataType::TYPE_STRING);

Dengan cara diatas maka nanti hasil data export akan sesuai dengan data yang telah disimpan pada database. Semoga membantu 
 

Menangani Data NIK atau Nomor Berawalan 0 Pada PhpSpreadsheet | Blog Pursem.com | Pursem