Selasa, 28 April 2026

Satuan Word dan Bita dalam Pemrograman

Halo!

Pada tulisanku sebelumnya, kita sudah membahas tentang satuan bit dalam pemrograman. Kali ini, kita bahas satuan word dan bita, ya.

Sejarah

Kemampuan tiap sistem/prosesor sangat beragam pada mulanya. Ada yang bisa mengolah hingga 36 bit sekaligus, tetapi juga ada yang hanya bisa mengolah 6 bit dalam sekali jalan. Sebagai contoh, IBM 704 mampu mengolah 36 bit sekaligus, tetapi hanya untuk bilangan. Untuk karakter alfanumerik, IBM 704 mengolah tiap karakter sebagai desimal berkode biner (BCD) berukuran 6 bit. Perbedaan ini baru dalam satu sistem yang sama. Sistem-sistem lain bisa memiliki ketentuan masing-masing sesuai kapasitas masing-masing sehingga tidak ada ukuran pasti untuk satuan word dan bita.

Pada tahun 1964, IBM meluncurkan IBM System/360 sekaligus membuat standar ukuran 1 bita sama dengan 8 bit. Selain itu, sistem ini juga menggunakan alamat memori dalam satuan bita juga alih-alih satuan bit ataupun satuan word. Karena IBM menguasai pasar komputer pada waktu itu, kebanyakan sistem akhirnya juga mengikuti standar 1 bita = 8 bit ini.

Meski satuan bita sudah terstandar, tiap sistem masih memiliki ukuran word yang berbeda-beda. Hanya saja, sejak satuan bita sudah distandardisasi, ukuran word menjadi kelipatan dari bita. Sebagai contoh, IBM System/360 yang dibahas sebelumnya itu memiliki ukuran word sebesar 4 bita (32 bit).

Tahun 1970-an menjadi tahun mikroprosesor dengan ukuran word sebesar 8 bit. Contoh mikroprosesor pada masa ini adalah Intel 8008, Intel 8080, dan Zilog Z80. Komputer/konsol permainan rumahan yang menggunakan ukuran word ini ada Commodore 64, Nintendo Entertainment System, dan Game Boy.

Akhir 1970-an dan awal 1980-an adalah masa ukuran word sebesar 16 bit. Intel meluncurkan mikroprosesor Intel 8086 pada tahun 1978. Intel 8086 menjadi salah satu pelopor ukuran word 16 bit dan menjadi asal mula keluarga/arsitektur x86 yang masih menjadi mayoritas arsitektur prosesor saat ini. IBM juga meluncurkan IBM PC pada tahun 1981 yang menggunakan Intel 8088, variasi dari Intel 8086. IBM PC yang populer pada masa itu menjadi penanda penggunaan ukuran word 16 bit untuk keperluan bisnis di lapangan.

Sebelum lanjut ke masa-masa berikutnya, aku mau cerita tentang Apollo Guidance Computer (AGC), komputer yang memandu wahana Apollo selama misi ke Bulan. AGC pertama kali diumumkan pada tahun 1966, sebelum ukuran word 8 bit menjadi populer. Namun, AGC sudah menggunakan ukuran word 16 bit. Pada praktiknya, yang digunakan hanya 15 bit karena 1 bit digunakan untuk pemeriksaan kesalahan (akibat radiasi di luar angkasa misalnya). Dengan ukuran RAM yang hanya 2.048 word (sekitar 4 kilobita) dan ukuran penyimpanan internal yang hanya 36.864 word (sekitar 72 kilobita), AGC bisa mengantarkan astronot ke Bulan dan pulang ke Bumi lagi. Sebagai perbandingan, foto jepretan kamera HP sekarang berukuran sekitar 3 megabita (sekitar 3 ribu kilobita).

Pada tahun 1986, Intel meluncurkan prosesor yang menjadi salah satu pelopor ukuran word 32 bit, yaitu Intel 80386 atau i386. Prosesor ini dikembangkan bersama dengan AMD dan IBM. Ukuran word 32 bit ini cukup lama menjadi standar komputer, bahkan hingga tahun 2010-an. Prosesor lainnya yang mungkin teman-teman masih ingat ada Intel Pentium, Intel Core i3, i5, dan i7 juga bermula dari sini. Sistem operasi yang kita kenal dahulu seperti Windows XP utamanya disusun dengan memperhatikan ukuran word ini. (Catatan untuk Windows: Meski demikian, tipe data WORD dalam API Windows berukuran 16 bit, DWORD [double word] berukuran 32 bit, dan QWORD [quad word] berukuran 64 bit.)

Pada tahun 2003, AMD meluncurkan prosesor Athlon 64 yang menjadi salah satu pelopor ukuran word 64 bit. Apple juga menyusul segera dengan Power Mac G5. Ukuran word 64 bit ini juga menjadi titik awal dukungan untuk RAM berukuran lebih dari 4 gigabita. Per tahun 2010-an, hampir semua komputer yang dirakit sudah menggunakan ukuran word ini. Sekarang, ponsel pintar pun sudah menggunakan ukuran word ini juga.

Untuk keluarga/arsitektur x86, meski sudah ada dukungan untuk ukuran word yang lebih besar, tiap prosesor yang lebih baru mendukung operasi untuk data dengan ukuran yang lebih kecil.

Ukuran Data dalam Pemrograman

Keragaman ukuran word ini bisa membuat hasil jalan program tidak sesuai rancangan awal. Sebagai contoh, sebuah program didesain untuk bisa menerima data sampai 1 kuintiliun (1018) karena ditujukan untuk prosesor yang mendukung 64 bit. Namun, program itu akan gagal jalan atau tidak memberikan hasil yang sesuai jika dijalankan pada prosesor yang hanya mendukung 32 bit.

Tiap bahasa pemrograman memiliki cara masing-masing dalam menyatakan ukuran sebuah variabel. Sebagai contoh, standar bahasa C tidak memberikan ukuran pasti untuk char, int, dan long, tetapi hanya mengatur ukuran minimalnya (≥8, ≥16, dan ≥32 bit masing-masing). Ukuran pastinya bergantung pada implementasi di tiap-tiap komputer. Pada tahun 1999, standar C99 akhirnya memberikan tipe data baru untuk menyatakan dengan pasti ukuran tiap variabel. Contohnya ada int8_t, int16_t, int32_t, dan int64_t untuk ukuran 8, 16, 32, dan 64 bit.

Bahasa Java mengatur ukuran tiap tipe data secara pasti untuk short, int, dan long dengan ukuran 16, 32, dan 64 bit. Bahasa Go bahkan tidak lagi menggunakan nama-nama seperti C dan Java, tetapi langsung menyatakan ukurannya secara tersurat. Contohnya ada int16, int32, dan int64 untuk ukuran 16, 32, dan 64 bit..

Selain bahasa-bahasa yang mengatur ukuran tiap variabel itu, ada juga bahasa yang menyeragamkan untuk semua ukuran. Bahasa JavaScript menggunakan tipe data Number untuk bilangan bulat dan bilangan pecahan serta BigInt untuk bilangan yang berukuran besar. Bahasa Python menggunakan tipe data int yang akan secara otomatis memperbanyak jumlah bit yang diperlukan sesuai bilangan yang dimuat oleh variabel tersebut.

Secara ringkas, berikut tabel yang menunjukkan contoh cara-cara bahasa pemrograman menyatakan ukuran variabel.

Bahasa 8 bit 16 bit 32 bit 64 bit
Ccharshortintlong
C (C99)int8_tint16_tint32_tint64_t
Javabyteshortintlong
Goint8int16int32int64
JavaScriptNumberBigInt
Pythonint

Penutup

Cukup sampai di sini bahasa tentang satuan word dan bita dalam pemrograman. Lebih banyak bahas sejarahnya ternyata kali ini. Semoga membantu, ya!

1 komentar: