Apa itu Epoch Timestamp (Unix Time) dan Mengapa Digunakan?
Asal-usul Waktu Unix
Untuk benar-benar memahami epoch timestamp, yang sering disebut sebagai waktu Unix, waktu POSIX, atau sekadar epoch, kita harus melihat kembali asal-usul sistem operasi Unix pada awal tahun 1970-an. Waktu Unix adalah sistem untuk melacak waktu sebagai akumulasi total detik. Secara khusus, ini mewakili jumlah detik yang telah berlalu sejak epoch Unix. Epoch itu sendiri didefinisikan sebagai 00:00:00 Coordinated Universal Time (UTC) pada hari Kamis, 1 Januari 1970.
Ketika Ken Thompson dan Dennis Ritchie mengembangkan versi pertama Unix di Bell Labs, mereka membutuhkan cara yang sederhana dan efisien bagi komputer untuk merepresentasikan dan menyimpan tanggal serta waktu. Format tanggal yang dapat dibaca manusia (seperti '29 Juli 2026') sangat rumit untuk diproses oleh komputer. Format tersebut melibatkan bulan yang tidak teratur (ada yang 28, 29, 30, atau 31 hari), tahun kabisat, zona waktu, dan penyesuaian waktu musim panas (daylight saving time). Dengan merepresentasikan waktu sebagai satu bilangan bulat (integer) yang terus bertambah, pengembang Unix menciptakan standar waktu universal yang tidak ambigu dan dapat dengan mudah disimpan, dibandingkan, serta dimanipulasi secara matematis.
Mengapa Pengembang Menggunakan Epoch Timestamp Hari Ini
Bahkan puluhan tahun kemudian, waktu epoch tetap menjadi tulang punggung infrastruktur komputasi modern. Berikut adalah alasan mengapa format ini diadopsi secara universal:
- Keserhanaan dan Efisiensi: Menyimpan integer 32-bit atau 64-bit membutuhkan ruang disk dan memori yang jauh lebih sedikit daripada menyimpan string tanggal yang diformat. Ketika basis data berisi miliaran catatan, menghemat beberapa byte per baris menghasilkan pengurangan biaya penyimpanan yang masif dan meningkatkan kinerja indeks basis data.
- Independen dari Zona Waktu (Time Zone Agnostic): Timestamp epoch secara inheren terikat pada UTC. Format ini tidak memedulikan lokasi fisik pengguna. Ketika server di Tokyo berkomunikasi dengan klien di New York, mentransmisikan integer epoch mencegah kebingungan terkait zona waktu. Klien cukup mengonversi integer tersebut ke zona waktu lokal mereka setelah menerimanya.
- Operasi Matematika yang Mudah: Menghitung durasi antara dua peristiwa sereda mengurangkan satu timestamp dari timestamp lainnya. Jika Anda ingin mengetahui berapa detik yang berlalu di antara dua entri log,
timestamp2 - timestamp1memberi Anda jawaban yang tepat secara instan, tanpa logika parsing tanggal yang rumit. - Pengurutan Basis Data: Mengurutkan catatan secara kronologis berdasarkan kolom integer jauh lebih cepat bagi mesin basis data daripada memproses dan mengurutkan string timestamp berbasis teks.
Dampak Detik Kabisat (Leap Seconds)
Satu nuansa teknis dari waktu Unix adalah caranya menangani detik kabisat. Detik kabisat adalah penyesuaian satu detik yang sesekali diterapkan pada Coordinated Universal Time (UTC) untuk menjaga waktu hari tetap dekat dengan waktu matahari rata-rata. Menariknya, waktu Unix tidak memperhitungkan detik kabisat. Dalam sistem waktu Unix, setiap hari dianggap memiliki panjang tepat 86.400 detik. Ketika detik kabisat terjadi, jam Unix pada dasarnya mengulang detik yang sama sebanyak dua kali. Pilihan desain yang disengaja ini mencegah timestamp menjadi tidak menentu, meskipun itu berarti waktu Unix bukanlah ukuran linier yang ketat dari waktu fisik yang berlalu sejak 1970. Bagi sebagian besar aplikasi rekayasa perangkat lunak, ketidaksesuaian kecil ini sepenuhnya dapat diterima.

