Kembali ke artikel
Bangun4 menit baca

Merancang Ekspor CSV yang Siap Dibuka di Spreadsheet

Sepakati kolom, cakupan data, identitas, tanggal, dan pengujian formula sebelum menjadikan ekspor CSV bagian dari alur kerja aplikasi bisnis.

Tabel pada layar laptop mengarah ke berkas CSV

Tombol Ekspor terlihat sederhana: pengguna menekan, berkas diunduh, lalu dibuka di spreadsheet. Namun, berkas yang berhasil diunduh belum tentu mempertahankan arti data. Kode dapat kehilangan nol awal, tanggal terbaca berbeda, atau teks diperlakukan sebagai formula.

Rancang ekspor sebagai bagian alur kerja, bukan tambahan terakhir. Saat merancang web app, tanyakan siapa yang menggunakan berkas, aplikasi pembacanya, dan pekerjaan setelah ekspor. Jawaban itu membantu menentukan struktur dan cara menguji hasilnya.

Mulai dari tujuan berkas

Ekspor untuk pemeriksaan manusia berbeda dari berkas yang akan diimpor ke sistem lain. Pemeriksa mungkin membutuhkan judul kolom yang mudah dipahami. Sistem tujuan mungkin membutuhkan nama kolom dan urutan yang sudah disepakati serta nilai yang stabil.

Contoh fiktif: tim administrasi ingin memeriksa permintaan yang belum selesai. Mereka membutuhkan identitas permintaan, tanggal, status, penanggung jawab, dan jumlah. Mereka tidak otomatis membutuhkan seluruh catatan internal atau informasi pribadi yang kebetulan tersedia di database.

Tuliskan tujuan, pengguna, dan aplikasi tujuan dalam brief. Jika berkas memiliki dua fungsi yang berbeda, pertimbangkan dua format yang jelas. Jangan mengubah satu ekspor diam-diam sehingga pekerjaan manusia tetap berjalan tetapi integrasi lain rusak.

Sepakati kontrak kolom

Buat daftar kolom beserta maknanya. “Tanggal” terlalu umum jika aplikasi memiliki tanggal dibuat, disetujui, dan selesai. Nama yang spesifik mengurangi tebakan. Tetapkan pula urutan, bidang wajib, dan representasi nilai kosong.

Pisahkan label tampilan dari nilai yang dibutuhkan proses lanjutan. Status yang diterjemahkan dapat nyaman dibaca, tetapi kode status stabil mungkin diperlukan oleh integrasi. Putuskan secara sadar apakah berkas memuat label, kode, atau keduanya dengan nama kolom berbeda.

Catat versi kontrak ketika perubahan berpengaruh pada pengguna berkas. Tambahan kolom, perubahan satuan, atau pemisahan bidang dapat mengubah rumus dan pemrosesan berikutnya. Sampaikan perubahan melalui jalur yang memang digunakan tim, bukan hanya catatan pengembang.

Pertahankan arti kode, angka, dan tanggal

Identitas seperti 00127 adalah kode, bukan jumlah. Jika aplikasi pembaca menganggapnya angka, tampilan dapat berubah. Uji contoh yang memiliki nol awal dan kode panjang. Jelaskan langkah impor yang sesuai aplikasi tujuan ketika format CSV tidak membawa tipe data secara tegas.

Untuk jumlah, tentukan satuan dan aturan desimal. Hindari mencampur angka dengan teks satuan dalam kolom yang akan dihitung tanpa alasan. Dua kolom berbeda dapat lebih jelas: jumlah dan satuan, selama kontrak pengguna memang memerlukan keduanya.

Tanggal membutuhkan format yang disepakati. Jika waktu penting, cantumkan zona atau jelaskan acuannya. Uji tanggal yang mudah tertukar antara hari dan bulan. Keberhasilan membuka berkas belum membuktikan bahwa aplikasi membaca tanggal seperti yang dimaksud penulis.

Bedakan teks dari formula

Sel kiri menampilkan teks sama dengan dua tambah dua, sedangkan sel kanan menampilkan hasil empat
Isi yang sama dapat dibaca sebagai teks atau dihitung sebagai formula, tergantung cara spreadsheet menginterpretasikannya.

Contoh sederhana dan tidak berbahaya adalah teks =2+2. Pembaca mungkin mengharapkan tulisan tersebut tetap terlihat, sementara spreadsheet dapat menghitungnya sebagai empat. Perbedaan ini perlu diperhatikan pada bidang yang menerima masukan pengguna.

OWASP membahas risiko CSV injection ketika isi dibaca sebagai formula. Membungkus nilai dengan tanda kutip saja bukan jaminan aman untuk semua aplikasi dan alur simpan ulang. Pilih perlakuan yang sesuai penggunaan berkas dan verifikasi hasilnya pada pembaca tujuan.

Jangan menggunakan contoh berbahaya pada berkas operasional. Tim dapat menguji interpretasi dengan data contoh yang aman. Periksa hasil saat pertama dibuka serta setelah disimpan dan dibuka kembali, karena perilaku dapat bergantung pada aplikasi dan langkah pengguna.

Hormati cakupan akses dan filter

Pengguna yang melihat satu cabang tidak seharusnya memperoleh seluruh organisasi hanya karena menekan Ekspor. Hubungkan cakupan berkas dengan hak akses yang telah disepakati. Terapkan pemeriksaan pada proses yang menghasilkan data, bukan hanya menyembunyikan tombol.

Jelaskan apakah ekspor mengikuti filter layar, seluruh hasil pencarian, atau baris yang dipilih. Sertakan ringkasan sebelum pengunduhan bila membantu. Ketidakjelasan ini dapat membuat pengguna menganggap data hilang atau membagikan lebih banyak data daripada yang dimaksud.

Untuk berkas besar, tentukan status pemrosesan dan cara menerima hasil. Jangan menjanjikan unduhan langsung jika proses memang membutuhkan waktu. Nama berkas juga perlu membantu identifikasi tanpa membocorkan informasi yang tidak diperlukan.

Periksa berkas di alur penggunaan nyata

Siapkan data contoh dengan koma, tanda kutip, baris baru, karakter Indonesia, nilai kosong, kode bernol awal, dan tanggal. Periksa apakah setiap baris masih memiliki kolom yang benar. Cocokkan jumlah catatan dengan cakupan yang dipilih.

Dokumentasi elemen tautan MDN menjelaskan perilaku unduhan pada browser. Atribut unduhan membantu pengalaman pengguna, tetapi tidak menggantikan pemeriksaan isi berkas atau izin akses. Uji pengunduhan dan pembacaan sebagai dua langkah berbeda.

Simpan contoh kontrak yang dapat dipakai tim saat perubahan berikutnya. Jika aplikasi juga menerima berkas, bahas preview impor CSV secara terpisah. Ekspor yang baik membantu pengguna memindahkan data dengan arti yang tetap jelas, bukan sekadar menghasilkan berkas.

Sumber resmi

Bangun

Lanjutkan dengan panduan terkait.

Bangun

Menyiapkan Proyek Website Bisnis

Panduan mendalam untuk menyelaraskan tujuan, pengguna, konten, kepemilikan, ruang lingkup, dan kesiapan operasional sebelum proyek website dimulai.

Bangun

Website, Web App, atau Aplikasi Mobile

Kerangka keputusan untuk memilih website, web app, atau aplikasi mobile berdasarkan tugas pengguna, kebutuhan perangkat, data, distribusi, dan biaya operasional.