Dalam dunia komputasi, operasi perkalian seringkali menjadi salah satu operasi aritmatika fundamental. Kecepatan dan efisiensi dalam melakukan perkalian dapat sangat memengaruhi kinerja keseluruhan sebuah sistem. Salah satu algoritma yang dirancang untuk mencapai efisiensi ini, terutama dalam perkalian bilangan biner, adalah Algoritma Booth.
Algoritma Booth adalah sebuah algoritma yang digunakan untuk mengalikan dua bilangan bertanda (signed numbers) dalam representasi pelengkap dua (two's complement). Algoritma ini dikembangkan oleh Andrew Donald Booth pada tahun 1951. Keunggulan utama Algoritma Booth terletak pada kemampuannya untuk mengurangi jumlah langkah perkalian jika terdapat urutan bit nol atau satu yang berulang dalam pengali (multiplier), sehingga menjadikannya lebih efisien dibandingkan metode perkalian biner langsung yang sederhana.
Algoritma Booth bekerja dengan memproses bit-bit pengali dari kanan ke kiri. Algoritma ini menggunakan empat nilai utama yang dipertahankan selama proses iterasi:
Setiap iterasi melibatkan pemeriksaan dua bit terakhir dari pengali (bit terendah Q dan Q-1). Berdasarkan kombinasi kedua bit ini, operasi berikut akan dilakukan:
Setelah operasi yang sesuai dilakukan, nilai Q-1 diperbarui dengan bit terendah Q, dan kemudian Q digeser ke kanan (Arithmetic Right Shift) bersama dengan A. Proses ini diulang sebanyak jumlah bit pada pengali.
Misalkan kita ingin mengalikan $5 \times 3$ dalam representasi 4-bit:
Inisialisasi:
Iterasi 1:
Iterasi 2:
Iterasi 3:
Iterasi 4:
Hasil akhir: A = $1111$, Q = $0000$. Hasil perkaliannya adalah $11110000$. Namun, dalam representasi 4-bit, hasil yang relevan adalah 8 bit teratas, yaitu $00001111$, yang merupakan $15$ dalam desimal. Perlu diingat bahwa hasil sebenarnya dari $5 \times 3$ adalah $15$. Algoritma ini bekerja dengan benar untuk bilangan bertanda.
Keuntungan:
Kerugian:
Algoritma Booth telah banyak digunakan dalam desain sirkuit digital, terutama pada Unit Aritmatika dan Logika (ALU) mikroprosesor dan unit pemrosesan digital sinyal (DSP) yang membutuhkan operasi perkalian cepat. Implementasinya memungkinkan perangkat keras untuk melakukan perhitungan matematika yang kompleks dengan lebih efisien.
Secara keseluruhan, Algoritma Booth adalah metode yang cerdas dan efisien untuk melakukan perkalian bilangan biner bertanda, menawarkan peningkatan performa dalam banyak skenario komputasi.