// your code goes here
function hitungNomorBit(angka, nomorBit) {
// Konversi desimal ke biner secara manual (array dari kiri ke kanan)
let biner = [];
let n = angka;
if (n === 0) {
biner.push(0);
}
while (n > 0) {
biner.unshift(n % 2); // Tambahkan ke awal agar urut dari MSB
n = Math.floor(n / 2);
}
// Cek jika panjang bit kurang dari nomorBit + 1
if (biner.length < nomorBit + 1) {
return null;
}
// Ambil (nomorBit + 1) bit dari kiri
let bagian = biner.slice(0, nomorBit + 1);
// Hitung jumlah bit yang bernilai 1
let jumlah = 0;
for (let i = 0; i < bagian.length; i++) {
if (bagian[i] === 1) {
jumlah += 1;
}
}
return jumlah;
}
// output sesuai contoh soal yang diberikan
console.log(hitungNomorBit(13, 0)); // 1
console.log(hitungNomorBit(13, 1)); // 3
console.log(hitungNomorBit(13, 2)); // null
Ly8geW91ciBjb2RlIGdvZXMgaGVyZQpmdW5jdGlvbiBoaXR1bmdOb21vckJpdChhbmdrYSwgbm9tb3JCaXQpIHsKICAgIC8vIEtvbnZlcnNpIGRlc2ltYWwga2UgYmluZXIgc2VjYXJhIG1hbnVhbCAoYXJyYXkgZGFyaSBraXJpIGtlIGthbmFuKQogICAgbGV0IGJpbmVyID0gW107CiAgICBsZXQgbiA9IGFuZ2thOwoKICAgIGlmIChuID09PSAwKSB7CiAgICAgICAgYmluZXIucHVzaCgwKTsKICAgIH0KCiAgICB3aGlsZSAobiA+IDApIHsKICAgICAgICBiaW5lci51bnNoaWZ0KG4gJSAyKTsgLy8gVGFtYmFoa2FuIGtlIGF3YWwgYWdhciB1cnV0IGRhcmkgTVNCCiAgICAgICAgbiA9IE1hdGguZmxvb3IobiAvIDIpOwogICAgfQoKICAgIC8vIENlayBqaWthIHBhbmphbmcgYml0IGt1cmFuZyBkYXJpIG5vbW9yQml0ICsgMQogICAgaWYgKGJpbmVyLmxlbmd0aCA8IG5vbW9yQml0ICsgMSkgewogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIC8vIEFtYmlsIChub21vckJpdCArIDEpIGJpdCBkYXJpIGtpcmkKICAgIGxldCBiYWdpYW4gPSBiaW5lci5zbGljZSgwLCBub21vckJpdCArIDEpOwoKICAgIC8vIEhpdHVuZyBqdW1sYWggYml0IHlhbmcgYmVybmlsYWkgMQogICAgbGV0IGp1bWxhaCA9IDA7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJhZ2lhbi5sZW5ndGg7IGkrKykgewogICAgICAgIGlmIChiYWdpYW5baV0gPT09IDEpIHsKICAgICAgICAgICAganVtbGFoICs9IDE7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBqdW1sYWg7Cn0KCi8vIG91dHB1dCBzZXN1YWkgY29udG9oIHNvYWwgeWFuZyBkaWJlcmlrYW4KY29uc29sZS5sb2coaGl0dW5nTm9tb3JCaXQoMTMsIDApKTsgLy8gMQpjb25zb2xlLmxvZyhoaXR1bmdOb21vckJpdCgxMywgMSkpOyAvLyAzCmNvbnNvbGUubG9nKGhpdHVuZ05vbW9yQml0KDEzLCAyKSk7IC8vIG51bGwK