Kalkulator Modulo

Operasi modulo mengembalikan sisa dari sebuah pembagian. Untuk angka positif semua orang sepakat: 17 mod 5 = 2. Namun untuk angka negatif, bahasa pemrograman dan matematikawan memiliki pandangan berbeda. Konvensi matematika mendefinisikan a mod b sedemikian rupa sehingga hasilnya selalu berada dalam rentang [0, |b|) — sehingga -7 mod 3 = 2. Konvensi C/Go/JavaScript menggunakan pembagian yang dipangkas, sehingga sisanya mengikuti tanda dari angka yang dibagi — yang berarti -7 % 3 = -1. Kalkulator ini menampilkan keduanya sehingga Anda dapat memilih yang sesuai dengan kebutuhan domain Anda. Kalkulator ini juga mendukung modulo titik mengambang (digunakan dalam pembatasan sudut, aritmatika jam, dan pemrosesan sinyal) serta menjelaskan setiap langkah penghitungan.

star 4.8
auto_awesome AI
New

Kalkulator Modulo calculator

percent a mod b

The number being divided. Integers or decimals, positive or negative.

The modulus. Must be non-zero.

analytics Result

Modulo (math, floored)
2
Always in range [0, |b|)
Remainder (C-style, truncated) 2

Sign follows dividend. Matches C, C++, Go, Java, JavaScript (%).

Quotient (floor)
3
Quotient (trunc)
3
Step by step

    tips_and_updates Tips

    • • Gunakan modulo matematika (dibulatkan ke bawah) untuk aritmatika modular, hashing, dan pembatasan sudut
    • • Gunakan modulo gaya C (dipangkas) saat mencocokkan perilaku C, C++, Go, Java, atau JavaScript
    • • Untuk a dan b positif, kedua konvensi sepakat, sehingga perbedaannya hanya penting pada angka negatif
    • • Modulo dengan nol tidak terdefinisi — pembagi tidak boleh bernilai nol
    • • Operator % Python menggunakan modulo matematika (dibulatkan ke bawah): -7 % 3 = 2

    The Formula

    Modulo matematika menggunakan pembagian lantai sehingga sisa baginya selalu 0 <= r < |b|. Modulo gaya C menggunakan pembagian terpotong sehingga sisa baginya memiliki tanda yang sama dengan bilangan yang dibagi.

    r = a - b * q, where q = floor(a/b) (math) or trunc(a/b) (C-style)

    lightbulb Variables Explained

    • a Bilangan yang dibagi
    • b Pembagi (modulus)
    • q Hasil bagi (dibulatkan ke bawah atau dipotong)
    • r Sisa / hasil modulo

    tips_and_updates Pro Tips

    1

    Gunakan modulo matematika (dibulatkan ke bawah) untuk aritmatika modular, hashing, dan pembatasan sudut

    2

    Gunakan modulo gaya C (dipangkas) saat mencocokkan perilaku C, C++, Go, Java, atau JavaScript

    3

    Untuk a dan b positif, kedua konvensi sepakat, sehingga perbedaannya hanya penting pada angka negatif

    4

    Modulo dengan nol tidak terdefinisi — pembagi tidak boleh bernilai nol

    5

    Operator % Python menggunakan modulo matematika (dibulatkan ke bawah): -7 % 3 = 2

    Operasi modulo (sering ditulis sebagai a mod b atau a % b) menghasilkan sisa pembagian dari suatu angka dengan angka lainnya dan merupakan salah satu operasi yang paling sering digunakan dalam matematika dan ilmu komputer. Kalkulator waktu dan berbagai alat bantu pemrograman menggunakan kalkulator modulo untuk menghitung sisa ini bagi setiap bilangan yang dibagi dan pembagi, termasuk angka negatif dan desimal, sekaligus menampilkan proses pembagian langkah demi langkah. Untuk angka positif, hasilnya sangat mudah: 17 mod 5 sama dengan 2 karena 17 dibagi 5 adalah 3 dengan sisa 2. Namun, angka negatif menghadirkan perbedaan penting antara dua konvensi: konvensi matematis (lantai) selalu menghasilkan nilai non-negatif, sementara konvensi pemrograman (terpotong) yang digunakan dalam C, Java, dan JavaScript mempertahankan tanda dari bilangan yang dibagi. Ini berarti negatif 7 mod 3 sama dengan 2 dalam matematika tetapi negatif 1 di sebagian besar bahasa pemrograman. Memahami kedua konvensi ini sangat penting bagi programmer, kriptografer, atau siapa saja yang bekerja dengan pola siklik, aritmatika jam, atau fungsi hash.

    Modulo Matematika vs Pemrograman: Masalah Angka Negatif

    Perbedaan antara konvensi modulo matematika dan pemrograman berasal dari cara keduanya menangani pembagian bilangan bulat. Modulo matematis menggunakan pembagian lantai (pembulatan ke arah tak hingga negatif), sehingga hasil bagi negatif 7 dibagi 3 dibulatkan ke bawah menjadi negatif 3, menghasilkan sisa negatif 7 dikurangi 3 kali negatif 3 sama dengan 2. Modulo pemrograman menggunakan pembagian terpotong (pembulatan ke arah nol), sehingga hasil bagi dipotong menjadi negatif 2, menghasilkan sisa negatif 7 dikurangi 3 kali negatif 2 sama dengan negatif 1.

    Python secara unik menggunakan modulo matematis (lantai), yang cocok dengan konvensi yang diharapkan dalam aljabar abstrak dan teori bilangan. C, C++, Java, JavaScript, Go, dan Rust menggunakan modulo terpotong. Ruby dan Perl mengikuti perilaku Python.

    Perbedaan ini penting dalam kode nyata: mengonversi sudut negatif ke rentang 0-359 memerlukan modulo matematika (negatif 90 mod 360 sama dengan 270), tetapi operator persen C menghasilkan negatif 90, yang memerlukan penyesuaian manual.

    Aplikasi Praktis Aritmatika Modular

    Aritmatika modular mendasari begitu banyak sistem dunia nyata yang mungkin mengejutkan:

    • Aritmatika jam bersifat modular: pukul 10 pagi ditambah 5 jam sama dengan pukul 3 sore karena 15 mod 12 sama dengan 3.
    • Hari dalam seminggu berputar dengan siklus modulo 7.
    • Tabel hash menggunakan modulo untuk memetakan kunci ke indeks wadah: hash(key) mod table_size.
    • Algoritma kriptografi seperti RSA sangat bergantung pada eksponensial modular dan kesulitan mencari invers modular untuk bilangan prima besar.
    • Digit pemeriksa ISBN dan kartu kredit menggunakan operasi deteksi kesalahan modulo (ISBN-13 menggunakan mod 10, algoritma Luhn untuk kartu kredit).
    • Struktur data siklik seperti ring buffer menggunakan modulo untuk membungkus indeks susunan: next_index sama dengan (current plus 1) mod buffer_size.

    Tugas sederhana seperti menentukan apakah suatu angka genap (n mod 2 sama dengan 0) atau mengambil digit terakhir (n mod 10) juga mengandalkan modulo.

    Modulo dengan Desimal dan Kasus Khusus

    Operasi modulo meluas secara alami ke bilangan real menggunakan rumus yang sama: r sama dengan a dikurangi b kali floor(a dibagi b). Sebagai contoh, 5.5 mod 2 sama dengan 1.5 karena floor(5.5/2) sama dengan 2, dan 5.5 dikurangi 2 kali 2 sama dengan 1.5.

    Modulo titik mengambang banyak digunakan dalam grafika komputer untuk pembungkusan tekstur (u mod 1.0 memetakan koordinat apa pun ke rentang 0 hingga 1), normalisasi sudut (theta mod 360 menjaga sudut tetap dalam satu putaran penuh), dan pemrosesan sinyal untuk perhitungan fase.

    Kasus khusus yang penting:

    • Modulo dengan nol tidak terdefinisi dan akan menyebabkan galat pembagian dengan nol dalam bahasa apa pun.
    • Modulo di mana bilangan yang dibagi adalah nol selalu mengembalikan nol (0 mod b sama dengan 0 untuk setiap b bukan nol).
    • Ketika kedua operan bernilai positif dan bilangan yang dibagi lebih kecil dari pembagi, hasilnya sama dengan bilangan yang dibagi tersebut (3 mod 7 sama dengan 3).

    Sifat-sifat ini membuat modulo dapat diprediksi untuk angka positif tetapi memerlukan penanganan yang cermat dengan masukan negatif atau desimal.

    Apa Itu Operasi Modulo dan Bagaimana Cara Kerjanya?

    Operasi modulo menghasilkan sisa dari pembagian satu bilangan bulat dengan bilangan bulat lainnya, ditulis sebagai a mod b atau a % b. Mengingat bilangan yang dibagi a dan pembagi bukan nol b, operasi ini menjawab pertanyaan: setelah mengurangikan salinan utuh b sebanyak mungkin dari a, berapa sisanya?

    Sebagai contoh, 17 mod 5 = 2 karena 5 pas masuk ke dalam 17 sebanyak tiga kali (15), menyisakan 2. Menurut Wolfram MathWorld, fungsi modulo didefinisikan secara formal sebagai sisa dari a dibagi b, dan selalu memenuhi 0 <= r < |b| di bawah konvensi matematis.

    Operasi sederhana ini adalah landasan teori bilangan, kriptografi, dan pemrograman sehari-hari, yang memungkinkan Anda mendeteksi keterbagian, membungkus nilai ke dalam rentang tetap, dan membangun perilaku siklik.

    Rumus Modulo: r = a - b * floor(a/b)

    Untuk menghitung a mod b secara manual, gunakan rumus r = a - b * q, di mana q adalah hasil bagi. Kedua konvensi hanya berbeda dalam cara q dihitung. Modulo matematis (lantai) menetapkan q = floor(a/b), dibulatkan ke arah tak hingga negatif; modulo gaya C (terpotong) menetapkan q = trunc(a/b), dibulatkan ke arah nol.

    Penjabaran untuk setiap kasus:

    • Untuk 17 mod 5: floor(17/5) = 3, maka r = 17 - 5*3 = 2.
    • Untuk -7 mod 3 (matematika): floor(-7/3) = floor(-2.33) = -3, maka r = -7 - 3*(-3) = 2.
    • Untuk -7 % 3 (gaya C): trunc(-2.33) = -2, maka r = -7 - 3*(-2) = -1.

    Sebagaimana dicatat oleh NIST Digital Library of Mathematical Functions, pembulatan lantai dan pemotongan berimpit untuk operan positif, itulah sebabnya kedua konvensi sepakat ketika a dan b sama-sama positif.

    Cara Menghitung Modulo Langkah demi Langkah Beserta Contoh Pengerjaannya

    Menghitung a mod b adalah proses empat langkah. Pertimbangkan 23 mod 6.

    • Langkah 1: bagi, 23 / 6 = 3.833.
    • Langkah 2: ambil hasil bagi berupa bilangan bulat, floor(3.833) = 3.
    • Langkah 3: kalikan kembali, 3 * 6 = 18.
    • Langkah 4: kurangi, 23 - 18 = 5.

    Jadi 23 mod 6 = 5, dan memang benar 23 = 6*3 + 5. Untuk bilangan yang dibagi negatif seperti -23 mod 6 (konvensi matematika), floor(-23/6) = floor(-3.833) = -4, maka -23 - 6*(-4) = -23 + 24 = 1.

    Khan Academy mengajarkan metode pengurangan yang sama ini saat memperkenalkan aritmatika modular, dengan menekankan bahwa sisa harus selalu lebih kecil dalam besarannya daripada pembagi. Verifikasikan jawaban Anda dengan memeriksa apakah a sama dengan b dikali hasil bagi ditambah sisa.

    Apa Itu Aritmatika Modular dan Kongruensi?

    Aritmatika modular adalah sistem aritmatika untuk bilangan bulat di mana angka berputar kembali ke awal setelah mencapai nilai tetap yang disebut modulus. Dua bilangan bulat a dan b dikatakan kongruen modulo n, ditulis a ≡ b (mod n), ketika keduanya menyisakan sisa yang sama setelah dibagi dengan n, atau secara ekuivalen ketika n membagi selisih keduanya.

    Sebagai contoh, 17 ≡ 5 (mod 12) karena keduanya menyisakan sisa 5 saat dibagi 12, itulah sebabnya waktu pukul 17:00 terbaca sebagai pukul 5 sore pada jam 12-jam.

    Encyclopaedia Britannica mendeskripsikan aritmatika modular sebagai aritmatika pada sekumpulan residu yang terbatas, dan diformalkan oleh Carl Friedrich Gauss dalam karyanya tahun 1801 Disquisitiones Arithmeticae. Relasi kongruensi mempertahankan penjumlahan dan perkalian, menjadikannya tulang punggung aljabar untuk kriptografi dan kode deteksi kesalahan.

    Kegunaan Nyata Modulo dalam Pemrograman dan Kehidupan Sehari-hari

    Modulo muncul jauh lebih sering daripada yang disadari kebanyakan orang:

    • Untuk menguji apakah suatu angka genap, periksa n mod 2 == 0; untuk mengambil digit terakhir dari bilangan bulat, hitung n mod 10.
    • Ring buffer dan antrean melingkar membungkus posisi penulisan mereka dengan index = (index + 1) mod capacity, sehingga penunjuk tidak pernah keluar dari batas akhir susunan.
    • Tabel hash memetakan kunci ke slot menggunakan hash mod table_size.
    • Matematika waktu dan kalender bersifat modular: hari dalam seminggu bertambah sebesar (day + shift) mod 7, dan jam berjalan pada mod 12 atau mod 24.
    • Digit pemeriksa untuk ISBN-13 (mod 10) dan nomor perutean bank, ditambah algoritma Luhn di balik validasi kartu kredit, semuanya mengandalkan modulo untuk mendeteksi salah ketik.
    • Dalam kriptografi, eksponensial modular mendukung pertukaran kunci RSA dan Diffie-Hellman.

    Sifat Utama dan Identitas Operasi Modulo

    Operasi modulo memiliki beberapa sifat aljabar yang berguna untuk menyederhanakan perhitungan dan pembuktian.

    Aturan mirip distributif untuk kongruensi menyatakan bahwa (a + b) mod n = ((a mod n) + (b mod n)) mod n, dan begitu pula (a * b) mod n = ((a mod n) * (b mod n)) mod n; aturan ini memungkinkan Anda memperkecil nilai antara yang besar sebelum dikalikan, sehingga mencegah *overflow*.

    Identitas penting yang perlu diingat:

    • Jika angka yang dibagi lebih kecil daripada pembaginya dan keduanya bernilai positif, hasilnya adalah angka yang dibagi itu sendiri, jadi 3 mod 7 = 3.
    • Angka yang dibagi nol selalu menghasilkan nol: 0 mod b = 0.
    • Kelipatan berapa pun dari modulus akan menghasilkan nol, jadi 20 mod 5 = 0.
    • Hasil dari a mod b selalu bernilai lebih kecil secara mutlak daripada |b| menurut konvensi matematika.

    Identitas-identitas ini, yang tercatat dalam sumber seperti entri kongruensi Wolfram MathWorld, membuat reduksi modular menjadi cepat dan dapat diprediksi.

    Kesalahan Umum Saat Menghitung Modulo

    Waspadai kesalahan-kesalahan yang sering terjadi ini:

    • Menganggap setiap bahasa pemrograman mengembalikan tanda yang sama untuk operan negatif. Modulo -7 % 3 pada Python menghasilkan 2, tetapi Java, C, dan JavaScript menghasilkan -1, sehingga menyalin rumus antarbahasa tanpa menyesuaikannya dapat menimbulkan *bug* tersembunyi, terutama dalam pembungkusan sudut (*angle wrapping*) atau *hashing*.
    • Mencoba melakukan modulo dengan nol, yang tidak terdefinisi dan akan memicu *runtime error* di semua bahasa; selalu pastikan pembaginya bukan nol.
    • Salah mengira arah pembulatan hasil bagi, lupa bahwa pembagian dengan pembumian (*floored*) dan pemangkasan (*truncated*) berbeda untuk angka negatif.
    • Menerapkan modulo bilangan bulat ke nilai pecahan desimal tanpa memperhitungkan pembulatan dapat menghasilkan kesalahan kecil; 5.5 mod 2 tepat 1.5, tetapi akumulasi pergeseran pecahan desimal bisa menghasilkan 1.4999999.
    • Menggunakan n mod 2 == 1 untuk mendeteksi angka ganjil akan gagal untuk angka negatif pada bahasa berpembangkasan, di mana -3 % 2 = -1; ujilah dengan n mod 2 != 0 sebagai gantinya.

    Perbedaan Modulo di Berbagai Bahasa Pemrograman

    Karena tanda sisa bagi untuk operan negatif adalah pilihan desain, bahasa-bahasa pemrograman terbagi menjadi dua kubu.

    • Modulo terpangkas (tanda mengikuti angka yang dibagi) digunakan oleh C, C++, C#, Java, JavaScript, Go, Rust, dan Swift, sehingga -7 % 3 menghasilkan -1 pada semuanya.
    • Modulo berbumi (tanda mengikuti pembagi, selalu nonnegatif untuk pembagi positif) digunakan oleh Python, Ruby, dan Perl, sehingga -7 % 3 menghasilkan 2.

    Beberapa bahasa menyediakan keduanya: Python memiliki math.fmod untuk hasil terpangkas gaya C, dan banyak pustaka standar menyediakan fungsi khusus modulo-lantai seperti Math.floorMod milik Java, yang menghasilkan 2 untuk floorMod(-7, 3).

    Saat memindahkan kode numerik, selalu pastikan konvensi mana yang digunakan oleh bahasa target. Kalkulator waktu ini menunjukkan hasil matematika (berbumi) dan gaya C (terpangkas) secara berdampingan sehingga Anda dapat menyesuaikannya dengan apa pun yang diharapkan oleh lingkungan Anda.

    Frequently Asked Questions

    sell

    Tags