{Kurung Kurawal}

Menentukan Bilangan Ganjil/Genap dengan operasi binari AND

Dalam programming, pasti pernah atau sering berada dalam kondisi dimana harus menentukan apakah sebuah bilangan itu ganjil atau genap. Sebagaimana kita ketahui, bilangan genap adalah bilangan bulat yang habis dibagi 2 (kita masukkan 0 sebagai bilangan genap), dan bilangan ganjil adalah bilangan bulat yang apabila dibagi 2 akan menyisakan 1.

Sisa bagi ini dikenal dengan nama modulus atau modulo, yang saya kutip dari wikipedia sebagai berikut

In computing, the modulo operation finds the remainder of division of one number by another (sometimes called modulus).
Given two positive numbers, a (the dividend) and n (the divisor), a modulo n (abbreviated as a mod n) is the remainder of the Euclidean division of a by n. For instance, the expression “5 mod 2” would evaluate to 1 because 5 divided by 2 leaves a quotient of 2 and a remainder of 1, while “9 mod 3” would evaluate to 0 because the division of 9 by 3 has a quotient of 3 and leaves a remainder of 0; there is nothing to subtract from 9 after multiplying 3 times 3. (Note that doing the division with a calculator won’t show the result referred to here by this operation; the quotient will be expressed as a decimal fraction.)

Dalam pemrograman, cara yang umum digunakan untuk menentukan bilangan genap atau ganjil adalah kurang lebih sebagai berikut

1
2
3
dengan n adalah integer,
if ( n % 2 == 0 ) then bilangan genap
else then bilangan ganjil

Nah, Saya ingin mencoba memberikan pendekatan lain dalam menentukan bilangan Ganjil atau Genap, dengan Bitwise Operation, atau operasi Binari.

Binari adalah angka berbasis 2, yang hanya terdiri dari 0 dan 1, dan ini merupakan angka yang dikenal oleh processor komputer. Beberapa bahasa pemrograman akan langsung menyerahkan operasi binari ini kepada processor (hardware) sehingga dipercaya waktu kalkulasi akan jauh lebih cepat dibandingkan oleh system (software).

Contoh bilangan desimal dengan korelasi bilangan binari

0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
7 = 0111
8 = 1000
9 = 1001

Dari contoh bilangan binari tersebut, terlihat bahwa setiap bilangan desimal ganjil, maka binari nya pasti berakhiran dengan angka 1. Dengan demikian untuk menentukan bilangan ganjil atau genap, kita dapat menggunakan bitwise operator AND.

Sederhana saja, operator AND antara x dan y akan bernilai 1 apabila x = 1 dan y = 1, dengan demikian, algoritma yang akan digunakan untuk menentukan apakah x adalah genap atau ganjil adalah di-AND-kan dengan bilangan 1. Sebagai berikut

1
2
3
dengan x adalah integer, dan simbol & adalah operator AND
if ( x & 1 == 1 ) then bilangan ganjil
else if ( x & 1 = 0 ) then bilangan genap

Sederhana bukan ?

Semoga post ini bisa berguna untuk kita semua.