Kutu (komputer)Sebuah ilustrasi maskot kekutu Bugzilla.Sebuah halaman dari buku log komputer elektromekanik Harvard Mark II, terdapat ngengat mati yang diambil dari komputer tersebut
Kutu atau kekutu[1] (bahasa Inggris:bugcode: en is deprecated ) adalah suatu cacat desain pada perangkat keras atau perangkat lunak yang mengakibatkan terjadinya galat pada peralatan atau program sehingga tidak berfungsi sebagaimana mestinya. Kekutu umumnya ditemukan pada perangkat lunak, bukan perangkat keras. Karena sifatnya yang subjektif, apa yang dianggap kekutu oleh satu pihak bisa jadi dianggap fitur oleh pihak lain, sehingga muncul ungkapan yang terkenal di kalangan pengembang perangkat lunak: "It's not a bug, it's a feature" (bukan kutu, melainkan fitur).[2]
Etimologi
Kata "bug" berasal dari bahasa Inggris Pertengahan yaitu "bugge" yang berarti monster atau makhluk menakutkan.[3] Kata ini menjadi akar dari istilah seperti bugbear, bugaboo, dan boogeyman dalam bahasa Inggris.[4] Pada abad ke-16, kata "bug" mulai digunakan untuk menyebut serangga, khususnya yang dianggap sebagai hama.[5]
Penggunaan istilah "bug" dalam konteks teknik sudah berlangsung sejak setidaknya tahun 1870-an, jauh sebelum komputer elektronik ditemukan.[6] Penemu Thomas Edison adalah salah satu orang pertama yang mendokumentasikan penggunaan istilah ini secara teknis. Dalam suratnya kepada William Orton, presiden Western Union, tertanggal 3 Maret 1878, Edison menulis bahwa ia menemukan "bug" pada peralatan teleponnya.[7] Edison juga menciptakan komponen yang ia sebut "bug trap" untuk mengatasi gangguan sinyal pada telegraf kuadruplex yang ia kerjakan.[8] Pada tahun 1892, insinyur Thomas Sloane meresmikan istilah ini dalam kamus teknik standar pertama, mendefinisikan "bug" sebagai segala jenis kerusakan atau masalah pada sambungan atau kerja peralatan listrik.[6]
Pada Perang Dunia II, istilah bug (atau glitch) digunakan ketika senjata yang digunakan untuk perang mengalami masalah dalam pengoperasiannya.[9]
Istilah bug kemudian dipopulerkan lebih luas di dunia komputasi oleh ilmuwan komputer Grace Hopper.[10] Lebih lengkapnya, terdapat pada kutipan berikut:
Pada tahun 1946, ketika Hopper sudah selesai bertugas, ia bergabung di Harvard untuk melanjutkan pekerjaannya pada komputer Mark II dan Mark III. Operator memeriksa gangguan yang terjadi di Mark II, lalu diketahui bahwa ada ngengat yang terperangkap di dalamnya dan ini disebut sebagai bug. Serangga tersebut secara hati-hati diambil dan ditempelkan pada buku log. Karena kejadian itu, kami menyebut gangguan atau galat sebagai bug.[11]
Lebih tepatnya, pada tanggal 9 September 1947, tim insinyur yang bekerja pada komputer Harvard Mark II di Universitas Harvard, Cambridge, Massachusetts, menemukan seekor ngengat yang terselip di antara kontak relai komputer tersebut dan menyebabkan gangguan operasional. Ngengat itu diambil dan ditempelkan pada buku log dengan catatan: "First actual case of bug being found" (kasus nyata pertama ditemukannya bug).[12] Buku log beserta ngengat tersebut kini tersimpan di National Museum of American History di Washington, D.C.[13]
Perlu dicatat bahwa buku log tersebut kemungkinan bukan milik Hopper sendiri, namun ia dan timnya turut berperan dalam mempopulerkan istilah bug dan debug dalam dunia komputasi.[14] Hopper kelak dikenal sebagai pelopor bahasa pemrograman dan menjadi perempuan pertama yang menyandang pangkat laksamana muda di Angkatan Laut Amerika Serikat.[15]
Jenis-jenis kekutu
Kekutu dapat bersifat persisten, sporadis, berkala, atau sementara. Dalam komputasi, crash, freeze, dan glitch merupakan beberapa jenis kekutu.[6] Berdasarkan asal penyebabnya, kekutu umumnya dapat dikategorikan sebagai:
Kekutu logika — kesalahan dalam alur atau kondisi logika program.
Kekutu aritmatika — kesalahan dalam perhitungan, seperti integer overflow atau kesalahan konversi satuan.
Kekutu konkurensi (race condition) — kesalahan yang timbul akibat dua proses berjalan secara bersamaan dan saling bertabrakan.
Kekutu memori — seperti memory leak atau akses ke area memori yang tidak valid.
Kekutu antarmuka — ketidaksesuaian antara komponen sistem, misalnya perbedaan satuan ukuran.
Kejadian kekutu yang terkenal
Y2K — kekutu yang berhubungan dengan kebiasaan banyak pemrogram yang menyimpan tahun dalam format 2 angka pada tahun 1960-an hingga 1980-an untuk menghemat ruang penyimpanan. Kebiasaan ini menimbulkan masalah saat mendekati tahun 2000, yaitu kesadaran bahwa tahun 2000 akan ditafsirkan sebagai tahun 1900. Kekutu ini mengancam berbagai sektor penting seperti perbankan, utilitas, transportasi, dan pemerintahan. Diperkirakan sekitar $300 miliar dihabiskan di seluruh dunia untuk memperbaiki sistem yang terdampak.[16] Di Indonesia, dampaknya antara lain sistem tampilan Bank Indonesia sempat salah membaca tahun sebagai 1900.[17]
Therac-25 (1985–1987) — perangkat terapi radiasi yang mengalami kekutu serius pada perangkat lunaknya, berupa race condition yang menyebabkan alat memberikan dosis radiasi jauh di atas batas aman. Insiden ini mengakibatkan setidaknya enam pasien meninggal dunia dan menjadi studi kasus penting dalam keselamatan perangkat lunak medis.[18]
Ariane 5, Penerbangan 501 (1996) — roket senilai $500 juta milik Badan Antariksa Eropa meledak hanya 40 detik setelah peluncuran perdananya akibat kekutu perangkat lunak pada sistem panduan. Kekutu tersebut terjadi karena perangkat lunak mencoba mengonversi angka floating-point 64-bit ke variabel integer 16-bit yang tidak cukup menampungnya, sehingga menyebabkan overflow dan sistem panduan mati.[19]
Mars Climate Orbiter (1999) — wahana antariksa NASA senilai $125 juta hancur terbakar di atmosfer Mars akibat kekutu konversi satuan. Perangkat lunak di wahana menggunakan satuan imperial (pon), sementara tim di darat menggunakan satuan metrik (newton), sehingga wahana memasuki atmosfer Mars pada lintasan yang salah.[20]
Intel Pentium FDIV Bug (1994) — kekutu pada prosesor Intel Pentium yang menyebabkan ketidakakuratan pada operasi pembagian bilangan floating-point tertentu. Insiden ini mengguncang kepercayaan konsumen dan mengakibatkan penarikan produk yang sangat merugikan Intel.[21]