# your code goes here
def hitungNomorBit(angka, nomorBit):
if nomorBit != 0 and nomorBit != 1:
return None
if angka == 0:
return 1 if nomorBit == 0 else 0
jumlah_bit = 0
temp_angka = angka
while temp_angka > 0:
sisa = temp_angka % 2
if sisa == nomorBit:
jumlah_bit += 1
temp_angka = temp_angka // 2
return jumlah_bit
# Representasi bilangan biner dari angka 13 adalah 1101
print(f"hitungNomorBit(13, 0) -> {hitungNomorBit(13, 0)}")
print(f"hitungNomorBit(13, 1) -> {hitungNomorBit(13, 1)}")
print(f"hitungNomorBit(13, 2) -> {hitungNomorBit(13, 2)}")
# Representasi biner dari 20 adalah 10100
print("-" * 20)
print(f"hitungNomorBit(20, 0) -> {hitungNomorBit(20, 0)}")
print(f"hitungNomorBit(20, 1) -> {hitungNomorBit(20, 1)}")
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmRlZiBoaXR1bmdOb21vckJpdChhbmdrYSwgbm9tb3JCaXQpOgogICAgaWYgbm9tb3JCaXQgIT0gMCBhbmQgbm9tb3JCaXQgIT0gMToKICAgICAgICByZXR1cm4gTm9uZQoKICAgIGlmIGFuZ2thID09IDA6CiAgICAgICAgcmV0dXJuIDEgaWYgbm9tb3JCaXQgPT0gMCBlbHNlIDAKCiAgICBqdW1sYWhfYml0ID0gMAogICAgdGVtcF9hbmdrYSA9IGFuZ2thCgogICAgd2hpbGUgdGVtcF9hbmdrYSA+IDA6CiAgICAgICAgc2lzYSA9IHRlbXBfYW5na2EgJSAyCiAgICAgICAgaWYgc2lzYSA9PSBub21vckJpdDoKICAgICAgICAgICAganVtbGFoX2JpdCArPSAxCiAgICAgICAgdGVtcF9hbmdrYSA9IHRlbXBfYW5na2EgLy8gMgoKICAgIHJldHVybiBqdW1sYWhfYml0CgojIFJlcHJlc2VudGFzaSBiaWxhbmdhbiBiaW5lciBkYXJpIGFuZ2thIDEzIGFkYWxhaCAxMTAxCgpwcmludChmImhpdHVuZ05vbW9yQml0KDEzLCAwKSAtPiB7aGl0dW5nTm9tb3JCaXQoMTMsIDApfSIpCnByaW50KGYiaGl0dW5nTm9tb3JCaXQoMTMsIDEpIC0+IHtoaXR1bmdOb21vckJpdCgxMywgMSl9IikKcHJpbnQoZiJoaXR1bmdOb21vckJpdCgxMywgMikgLT4ge2hpdHVuZ05vbW9yQml0KDEzLCAyKX0iKQoKIyBSZXByZXNlbnRhc2kgYmluZXIgZGFyaSAyMCBhZGFsYWggMTAxMDAKcHJpbnQoIi0iICogMjApCnByaW50KGYiaGl0dW5nTm9tb3JCaXQoMjAsIDApIC0+IHtoaXR1bmdOb21vckJpdCgyMCwgMCl9IikKcHJpbnQoZiJoaXR1bmdOb21vckJpdCgyMCwgMSkgLT4ge2hpdHVuZ05vbW9yQml0KDIwLCAxKX0iKQ==