Operator Sisa Bagi dalam JavaScript

Dalam tutorial ini, Anda akan mempelajari tentang operator sisa bagi (%) pada JavaScript untuk mendapatkan sisa pembagian suatu angka dengan angka lain.

Pengantar Operator Sisa Bagi pada JavaScript JavaScript menggunakan simbol % untuk merepresentasikan operator sisa bagi. Operator sisa bagi mengembalikan sisa pembagian suatu nilai dengan nilai lainnya.

Berikut adalah sintaks dari operator sisa bagi:

dividen % divisor

Berikut adalah persamaan untuk sisa bagi:

dividen = divisor * quotient + remainder
where |remainder| < |divisor|

Dalam persamaan ini, dividen, divisor, quotient, dan remainder semuanya berupa bilangan bulat. Tanda dari sisa bagi sama dengan tanda dari dividen.

Contoh Penggunaan Operator Sisa Bagi pada JavaScript Mari kita lihat beberapa contoh penggunaan operator sisa bagi pada JavaScript.

1. Menggunakan operator sisa bagi dengan contoh dividen positif

Berikut adalah contoh penggunaan operator sisa bagi dengan dividen positif:

let remainder = 5 % -2;
console.log(remainder); // 1

remainder = 5 % 2;
console.log(remainder); // 1

2. Menggunakan operator sisa bagi dengan contoh dividen negatif

Berikut adalah contoh penggunaan operator sisa bagi dengan dividen negatif:

let remainder = -5 % 3;
console.console.log(remainder); // -2

remainder = -5 % -3;
console.log(remainder); // -2

3. Menggunakan nilai khusus pada operator sisa bagi

Jika dividen adalah Infinity dan divisor adalah angka terbatas, sisa bagi adalah NaN. Contoh:

let remainder = Infinity % 2;
console.log(remainder); // NaN

Jika dividen adalah angka terbatas dan divisor adalah nol, sisa bagi adalah NaN:

let remainder = 10 % 0;
console.log(remainder); // NaN

Jika kedua dividen dan divisor adalah Infinity, sisa bagi adalah NaN:

let remainder = Infinity % Infinity;
console.log(remainder); // NaN

Jika dividen adalah angka terbatas dan divisor adalah Infinity, sisa bagi adalah dividen. Contoh:

let remainder = 10 % Infinity;
console.log(remainder); // 10

Jika dividen adalah nol dan divisor bukan nol, sisa bagi adalah nol:

let remainder = 0 % 10;
console.log(remainder); // 0

Jika salah satu dari dividen atau divisor bukan angka, keduanya dikonversi menjadi angka menggunakan fungsi Number() dan aturan di atas diterapkan. Contoh:

let remainder = '10' % 3;
console.log(remainder); // 1

Menggunakan Operator Sisa Bagi untuk Memeriksa Bilangan Ganjil

Untuk memeriksa apakah suatu angka adalah bilangan ganjil, Anda menggunakan operator sisa bagi (%) seperti contoh berikut:

let num = 13;
let isOdd = num % 2;

Pada contoh ini, jika num adalah bilangan ganjil, sisa bagi adalah satu. Tetapi jika num adalah bilangan genap, sisa bagi adalah nol.

Selanjutnya, Anda akan belajar cara mendefinisikan fungsi yang mengembalikan true jika suatu angka ganjil atau false sebaliknya seperti ini:

function isOdd(num) {
  return num % 2;
}

Atau menggunakan fungsi arrow dalam ES6:

const isOdd = (num) => num % 2;

Operator Sisa Bagi vs. Operator Modulo

Dalam JavaScript, operator sisa bagi (%) bukanlah operator modulo.

Jika Anda telah bekerja dengan Python, mungkin Anda menemukan bahwa % mewakili operator modulo dalam bahasa ini. Namun, hal ini tidak berlaku dalam JavaScript.

Untuk mendapatkan modulo di JavaScript, Anda menggunakan ekspresi berikut:

((dividen % divisor) + divisor) % divisor

Atau bungkus dalam suatu fungsi:

const mod = (dividen, divisor) => ((dividen % divisor) + divisor) % divisor;

Jika pembagian dan divisor memiliki tanda yang sama, operator sisa bagi dan modulo mengembalikan hasil yang sama. Sebaliknya, mereka mengembalikan hasil yang berbeda.

Contoh:

const mod = (dividen, divisor) => ((dividen % divisor) + divisor) % divisor;

// dividen dan divisor memiliki tanda yang sama
console.log('sisa bagi:', 5 % 3); // 2
console.log('modulo:', mod(5, 3)); // 2

// dividen dan divisor memiliki tanda yang berbeda
console.log('sisa bagi:', -5 % 3); // -2
console.log('modulo:', mod(-5, 3)); // 1

Output:

sisa bagi: 2
modulo: 2
sisa bagi: -2
modulo: 1

Ringkasan

Gunakan operator sisa bagi (%) pada JavaScript untuk mendapatkan sisa pembagian suatu nilai dengan nilai lainnya.

Share jika bermanfaat:
Abdan Zam Zam Ramadhan
Abdan Zam Zam Ramadhan

Seorang penggiat teknologi yang menfokuskan diri pada pengembangan aplikasi (web & android), DevOps, Data Tech, Natural Language Processing (NLP) dan ChatBot berbasis NLP. Sedang mendalami di Node.js dan ekosistemnya. Aktif sebagai konstributor library JS (open source) di NPM. Menulis berbagai artikel tips dan tutorial pemrograman di LampungDev.com.

Articles: 32