Sebenarnya artikel ini sudah saya tulis di Medium saya.
Pada umumnya ketika kita membutuhkan operasi untuk menentukan ganjil atau genap pada sebuah angka, kita menggunakan operasi hasil bagi atau modulus. Namun untuk mempermudah dan mempercepat proses kita dapat menggunakan operasi Bitwise yang mengandalkan angka biner.
Pada dasarnya operasi bitwise memiliki logika NOT, AND, OR, dan XOR. Namun untuk pengecekan ganjil genap cukup menggunakan logika AND saja. Perhatikan gambar dibawah ini.
Langkah-langkahnya cukup mudah, hanya membandingkan angka biner dengan 1. Apabila hasilnya bernilai 1, nilai tersebut adalah Ganjil. Lihat contoh dibawah ini.
Berikut contoh implementasinya di bahasa pemrograman Java. Tinggal mengoperasikan nilai integer dengan notasi & . Maka secara otomatis nilai interger akan di convert menjadi biner kemudian dilakukan operasi bitwise AND.
@Test
void testGanjilGenap() {
Integer nilaiA = 3;
Integer nilaiB = 18;
System.out.println("nilai A " + nilaiA + " adalah " + isGanjilGenap(nilaiA));
System.out.println("nilai B " + nilaiB + " adalah " + isGanjilGenap(nilaiB));
}
String isGanjilGenap(Integer nilai) {
int hasil = nilai & 1;
return hasil == 1 ? "Ganjil" : "Genap";
}
// Output
// nilai A 3 adalah Ganjil
// nilai B 18 adalah Genap
Untuk bahasa pemrograman lain, dicoba saja.. harusnya sih tinggal di bandingkan dengan notasi &
untuk mendapatkan hasilnya.