Sebelum tahun 2000 menyingkat angka tahun dengan hanya menuliskan dua digit terakhir sudah menjadi hal yang biasa. Hal serupa juga terjadi dalam dunia komputer pada awal perkembangannya, para pemrogram bahasa komputer era sebelum tahun 1970-an sengaja menghilangkan dua digit pertama.
Langkah yang diambil para pemrogram ini bertujuan untuk menghemat pemakaian memori yang ada waktu itu masih sangat terbatas dalam kapasitasnya dan mahal harganya. Selain penghematan ruang memori pemrosesan data menjadi lebih sederhana dan cepat, apalagi kecepatan prosesor waktu itu juga tidaklah secepat sekarang.
Namun, persoalan ini kemudian menjadi problem yang sangat serius ketika memasuki tahun 2000. Bukan hanya menulis angka 00 untuk tahun 2000 menjadi aneh, tetapi dalam mesin prosesor komputer juga bingung mengalkulasi angka 00 dalam berbagai macam perhitungan aritmatika, termasuk mengomparasi ataupun dalam mengurutkan.
ADVERTISEMENT
SCROLL TO RESUME CONTENT
Angka 00 bukan hanya tidak bisa membedakan antara tahun 2000 dengan 1900 juga diperlakukan sebagai angka 0 dan akibatnya tidak terbayangkan jika ada fungsi perkalian atau pembagian dengan 0. Kesalahan yang menyebabkan kegagalan inilah yang disebut dengan kutu dalam bahasa pemrograman komputer yang dalam hal ini terjadi pada saat perulangan ribuan tahun atau milenium.
Persoalan menjadi tidak sederhana karena komputer yang sudah berkembang selama sekitar 40 tahun itu sudah sangat menggurita. Pada waktu itu masih ada ribuan sistem komputer tua yang masih digunakan dan mungkin tidak terdeteksi pemakaiannya. Khususnya dalam industri asuransi maupun keuangan yang tentu bisa menciptakan kekacauan jika tidak diketahui pemakaiannya.
JITET
Sekalipun bencana yang juga lazim disebut dengan Y2k itu bisa terlewati, tetapi para pakar komputer sekarang sudah kembali berancang-ancang menghadapi ancaman serupa, yaitu “Kutu 2038”. Komputer dengan program waktu UNIX yang berbasis arsitektur 32 bit akan menghadapi masalah serupa pada 19 Januari 2038, tepatnya setelah pukul 03:14:07.
Basis waktu UNIX yang dimulai 1 Januari 1970 pukul 12:00:00 setiap hari akan bertambah 86400 detik dan menjelang detik bermasalah itu waktu sudah berjalan 2.146.483.547 detik pada 19 Januari 2038 03:14:07. Ini merupakan angka tertinggi dalam sistem waktu UNIX dalam pemrosesan bahasa mesin berbasis bilangan biner yang dikenal dalam sistem digital yang hanya memiliki angka 0 dan 1.
Detik (dalam desimal) 2.146.483.547 menjadi tertinggi dalam pemrograman jika dikonversikan dalam angka biner yang dikenal oleh mesin mikroprosesor 32 bit menjadi 01111111 11111111 11111111 11111110.
Maka satu detik berikutnya menjadi 2.146.483.548, ini bukan lagi detik tertinggi, di mana dalam pemrograman bahasa biner menjadi 10000000 00000000 00000000 00000000.
Perlu diketahui, dalam bahasa pemrograman, apabila bit penanda (yang paling kiri) bernilai 1 atau hidup (on), maka bilangan diperlakukan sebagai bilangan negatif. Jadi nilai bilangan itu sebenarnya -2.146.483.548 dan nilai minus ini jika dihitung mundur mulai dari 1 Januari 1970, maka bilangan itu menunjukkan tanggal 13 Desember 1901. Jelas ini akan menjadi ancaman kekacauan kedua bagi komputer setelah kutu milenium jika tidak diantisipasi.
Padahal, arsitektur komputer kebanyakan saat ini masih 32 bit dan bahkan masih ada yang 16 bit, sedangkan transisi ke 64 bit juga baru dimulai dua tahun lalu. Sementara sistem komputerisasi sudah semakin tertanam dalam hampir sebagian besar perangkat yang sebelumnya dikendalikan secara elektronik dan sekarang sudah semakin sulit dikenali satu per satu lagi.–AW SUBARKAH
—————–
Versi cetak artikel ini terbit di harian Kompas edisi 26 Juni 2015, di halaman 74 dengan judul “Kutu Milenium yang Menggegerkan”.