Kalkulator Modulo

Sisa (a mod b)
Berikutnya

Operasi modulo (atau “mod”) mengembalikan sisa setelah pembagian bilangan bulat: 17 mod 5 = 2 karena 17 = 3·5 + 2. Operasi ini merupakan inti dari aritmetika jam, kriptografi, fungsi hash, serta pola “setiap baris ke-N” dalam SQL. Kalkulator ini menerima operan bilangan bulat atau desimal, menampilkan hasil bagi dan sisa secara eksplisit, serta menangani perbedaan konvensi tanda antar bahasa pemrograman (% di Python ≠ % di C untuk bilangan negatif).

Cara menghitung a mod b

  1. 1

    Masukkan bilangan yang dibagi (a) dan pembagi (b)

    Angka apa pun; desimal dan nilai negatif diperbolehkan.

  2. 2

    Pilih konvensi tanda

    Pembagian pemotongan (C, Java, Go), pembagian pembulatan ke bawah (Python, Ruby, konvensi matematika).

  3. 3

    Baca hasil bagi dan sisa

    a = q·b + r, dengan aturan yang dipilih untuk tanda dari r.

  4. 4

    Lihat ekspresi matematisnya

    Nilai yang disubstitusikan membuat setiap langkah terlihat jelas.

Dua konvensi untuk bilangan negatif

Untuk operan positif, semua konvensi sepakat: 17 mod 5 = 2. Untuk bilangan negatif, bahasa pemrograman berbeda-beda:

Bahasa -17 mod 5 Konvensi
Python, Ruby 3 Pembulatan ke bawah
C, Java, Go, JS -2 Pemotongan
Buku pelajaran matematika 3 Pembulatan ke bawah (biasanya)

Pembagian pembulatan ke bawah: hasil bagi dibulatkan ke arah −∞. Sisa selalu bertanda sama dengan pembagi: sama tanda dengan b. Pembagian pemotongan: hasil bagi dibulatkan ke arah nol. Sisa bertanda sama dengan bilangan yang dibagi: sama tanda dengan a.

Untuk a = -17, b = 5:

  • Pemotongan: q = -3 (dibulatkan ke arah 0), r = -17 − (-3)·5 = -2.
  • Pembulatan ke bawah: q = -4 (dibulatkan ke arah -∞), r = -17 − (-4)·5 = 3.

Keduanya benar sesuai konvensinya. Pilih yang cocok dengan bahasa Anda.

Di mana modulo muncul

  • Waktu. Menit dalam satu jam, hari dalam seminggu, detik dalam sehari, semuanya aritmetika modulo.
  • Tabel hash. hash(key) mod table_size memilih sebuah bucket.
  • Penjadwalan round-robin. task_i mod worker_count menugaskan pekerjaan.
  • Kriptografi. RSA dan Diffie-Hellman dibangun di atas mod n dengan bilangan prima yang sangat besar.
  • Setiap baris ke-N. Dalam SQL: WHERE id % 3 = 0.
  • Pemeriksaan genap/ganjil. n mod 2 == 0 berarti genap.
  • Pola bergantian. Garis-garis baris, mewarnai setiap elemen secara selang-seling.
  • Buffer sirkular. (index + 1) mod size berputar kembali ke awal.

Identitas yang berguna

  • (a + b) mod n = ((a mod n) + (b mod n)) mod n
  • (a · b) mod n = ((a mod n) · (b mod n)) mod n
  • (a^k) mod n dapat dihitung dengan eksponensiasi modular cepat dalam O(log k), penting untuk kriptografi bilangan besar.
  • a mod 1 = 0 untuk setiap bilangan bulat a.
  • a mod a = 0.

Modulo desimal

Untuk bilangan riil, definisi alaminya adalah a mod b = a − b · floor(a/b). 7.5 mod 2.5 = 0 karena 7,5 adalah kelipatan tepat. 7.6 mod 2.5 = 0.1.

Operator % di JavaScript bekerja pada bilangan riil; fmod di Python melakukan modulo riil dengan pemotongan; % di Python melakukan modulo riil dengan pembulatan ke bawah.

Contoh terselesaikan

  • 100 mod 7: 100 = 14·7 + 2, sehingga sisanya 2.
  • 25 mod 4: 25 = 6·4 + 1, sehingga sisanya 1.
  • -10 mod 3 (pembulatan ke bawah): -10 = -4·3 + 2, sisa 2. (Pemotongan akan menghasilkan -1.)
  • 17.5 mod 5: 17,5 = 3·5 + 2,5, sisa 2,5.

Pertanyaan yang Sering Diajukan

Sebagian besar waktu keduanya bersinonim. Secara formal, “modulo” sering menyiratkan konvensi matematis (pembulatan ke bawah), sedangkan “remainder” (sisa) sering merujuk pada varian pemotongan (gaya C). Nama-nama ini terbawa ke dalam dokumentasi bahasa; jika penting, sebutkan konvensinya secara eksplisit.

Python mengikuti konvensi matematis (pembulatan ke bawah), yang menjaga tanda sisa sesuai dengan pembagi. C mengikuti konvensi ALU perangkat keras (pemotongan), di mana tanda sisa sesuai dengan bilangan yang dibagi. Tidak ada yang salah; keduanya hanyalah pilihan yang berbeda.

Tidak, pembagian dengan nol tidak terdefinisi. Kalkulator mengembalikan kesalahan untuk b = 0.

Biasanya, ya. Periksa spesifikasi bahasa Anda untuk penanganan bilangan negatif, Python dan Ruby berbeda dari C, Java, Go, dan JavaScript.

Untuk matematika gaya RSA dengan bilangan 2048-bit, gunakan pustaka khusus (pow(a, b, n) di Python, BigInteger.modPow di Java). Kalkulator ini menangani nilai sehari-hari, bukan nilai tingkat kriptografi.

Alat Terkait

Alat ini tersedia dalam bahasa lain