Kalkulator Modulo (Sisa Bagi)
Hitung sisa bagi (modulo) dari dua bilangan secara instan. Berguna untuk pemrograman, kriptografi, dan matematika. Kalkulator online gratis, tanpa daftar.
Berikut adalah terjemahan HTML ke bahasa Indonesia:
Apakah Operasi Modulo?
Operasi modulo (mod, atau %) mengembalikan sisa setelah membagi satu bilangan dengan bilangan lain. Untuk a mod b: bagi a dengan b, dan hasilnya adalah sisa. Misalnya, 17 mod 5 = 2 (karena 17 = 3×5 + 2). Hasil selalu dalam rentang [0, b-1] untuk nilai positif.
Hubungan fundamental: a = q×b + r, di mana q adalah hasil bagi (floor(a/b)) dan r adalah sisa (0 ≤ r < b). Modulo adalah operasi teman sejawat bagi pembagian integer — jika a ÷ b = q dengan sisa r, maka a mod b = r. Kalkulator ini menggunakan definisi modulo matematika yang sebenarnya (selalu tidak negatif untuk pembagi positif), bukan sisa tanda yang digunakan oleh beberapa bahasa pemrograman.
Aritmatika modul — aritmatika dengan modulus tetap di mana angka "mengelilingi" — membentuk dasar dari aritmatika jam. Jam pada jam digunakan mod 12 atau mod 24. Jika jam 10 pagi dan Anda menambahkan 5 jam: (10 + 5) mod 12 = 3 (PM). Sifat mengelilingi ini sangat penting dalam berbagai algoritma di ilmu komputer, kriptografi, dan teori bilangan.
Contoh dan Langkah-Langkah Modulo
Memahami modulo menjadi intuitif dengan contoh-contoh yang bekerja. Untuk setiap perhitungan di bawah, rumusnya adalah: sisa = a - floor(a ÷ b) × b.
| Ekspresi | Hasil Bagi (floor) | Sisa (a mod b) | Verifikasi |
|---|---|---|---|
| 17 mod 5 | 3 | 2 | 3×5 + 2 = 17 ✓ |
| 20 mod 4 | 5 | 0 | 5×4 + 0 = 20 ✓ |
| 7 mod 3 | 2 | 1 | 2×3 + 1 = 7 ✓ |
| 100 mod 7 | 14 | 2 | 14×7 + 2 = 100 ✓ |
| 13 mod 13 | 1 | 0 | 1×13 + 0 = 13 ✓ |
| 1 mod 5 | 0 | 1 | 0×5 + 1 = 1 ✓ |
| 256 mod 16 | 16 | 0 | 16×16 + 0 = 256 ✓ |
| 365 mod 7 | 52 | 1 | 52×7 + 1 = 365 ✓ |
Perhatikan 365 mod 7 = 1: ini memberitahu kita bahwa tahun biasa memiliki 52 minggu lengkap plus 1 hari tambahan, sehingga hari dalam seminggu bergeser 1 setiap tahun biasa. Tahun kabisat (366 hari) mod 7 = 2, sehingga hari bergeser 2.
Aplikasi Aritmatika Modul
Modulo muncul di seluruh pemrograman dan matematika. Cek ganjil/genap: jika n % 2 == 0, n adalah genap. Array lingkaran dan buffer lingkaran: indeks = (indeks_sekarang + 1) % ukuran_array mengelilingi ke awal. Tabung hash: bucket = hash(key) % jumlah_bucket meneruskan nilai hash ke indeks bucket yang valid, memastikan tidak ada akses di luar batas.
Dalam perhitungan kalender, aritmatika hari-minggu menggunakan mod 7. Rumus Zeller dan algoritma Doomsday sama-sama bergantung pada aritmatika modulo untuk menentukan hari dalam seminggu untuk tanggal mana saja. Kedua algoritma ini bekerja karena ada 7 hari dalam seminggu — modulus tetap. Perbedaan zona waktu menggunakan mod 24 untuk mengelilingi nilai jam dengan benar di batas tengah malam.
Dalam sistem digital, modulo digunakan di mana-mana alamat memori terlibat. Masukan tabel halaman, pilihan set cache, dan I/O map memory semuanya bergantung pada indeks modulo. Set instruksi CPU biasanya termasuk instruksi sisa (modulo-tertandingi) di samping pembagian, dan instruksi vektor SIMD menggunakan modulo untuk melipat-lipat di dalam shuffles.
Dalam deteksi kesalahan, cek kesalahan siklik (CRC) dan cek cincin (checksum) dihitung menggunakan aritmatika polinomial modulo atas GF(2). Nomor kartu kredit melewati algoritma Luhn (cek modulo-10). Nomor ISBN-10 buku menggunakan mod 11. Cek cincin ini menangkap kesalahan transposisi dan kesalahan digit tunggal dalam kode numerik.
Modulo dalam Kriptografi
Aritmatika modus adalah dasar matematika dari kriptografi publik modern. Tiga algoritma kriptografi paling penting — RSA, Diffie-Hellman, dan Elliptic Curve Cryptography — semua bergantung pada operasi yang dilakukan modus besar prima atau komposit.
Enkripsi RSA menggunakan eksponensiasi modus: untuk mengenkripsi pesan M dengan kunci publik (e, n), komputasi C = M^e mod n. Untuk mendekripsi, komputasi M = C^d mod n di mana d adalah kunci pribadi. Keamanan bergantung pada kesulitan memfaktorkan n (sempurna besar) — hanya mengetahui n, memulihkan p dan q tidak dapat dilakukan secara komputasional untuk ukuran kunci di atas 2048 bit.
Perjanjian kunci Diffie-Hellman memungkinkan dua pihak untuk menentukan rahasia bersama melalui saluran tidak aman: Alice mengirim A = g^a mod p, Bob mengirim B = g^b mod p. Setiap pihak komputasi rahasia bersama: Alice komputasi B^a mod p = g^(ab) mod p, Bob komputasi A^b mod p = g^(ab) mod p. Seorang pencuri yang menangkap g^a mod p dan g^b mod p tidak dapat memulihkan g^(ab) mod p tanpa menyelesaikan masalah logaritma diskrit.
Keamanan sistem ini bergantung pada sifat satu arah dari eksponensiasi modus: komputasi g^a mod p cepat (menggunakan kuadrat berulang, O(log a) perkalian), tetapi membalikannya — menemukan g^a mod p yang diberikan — diyakini memerlukan waktu eksponensial untuk prima besar p.
Modus dengan Bilangan Negatif dan Kasus Pengecualian
Modus perilaku dengan bilangan negatif bervariasi oleh bahasa pemrograman, yang menyebabkan banyak bug sulit ditemukan. Memahami perbedaan ini sangat penting bagi pengembang perangkat lunak.
| Bahasa | -7 % 3 | 7 % -3 | Definisi |
|---|---|---|---|
| Python | 2 | -2 | Tanda mengikuti pembagi (modus sebenarnya) |
| JavaScript | -1 | 1 | Tanda mengikuti pembilang (sisa) |
| C / C++ | -1 | 1 | Tanda mengikuti pembilang (C99+) |
| Java | -1 | 1 | Tanda mengikuti pembilang |
| Ruby | 2 | -2 | Tanda mengikuti pembagi (modus sebenarnya) |
| Matematika (definisi) | 2 | 1 (atau tidak terdefinisi) | Semua hasil modus non-negatif untuk pembagi positif |
Dalam matematika, modus selalu mengembalikan hasil non-negatif: -7 mod 3 = 2 (karena -7 = -3×3 + 2, dan 0 ≤ 2 < 3). Ini kalkulator menggunakan definisi matematika.
Cara aman untuk memastikan hasil non-negatif dalam bahasa apapun: ((a % b) + b) % b. Ini menangani input negatif dengan benar dan digunakan secara internal oleh kalkulator kami. Pola ini sangat penting ketika menggunakan modus untuk indeks array atau perhitungan hari kalender di mana hasil negatif akan menyebabkan kesalahan.
Kasus pengecualian untuk diingat: (1) Apapun mod 1 = 0 — membagi dengan 1 meninggalkan tidak ada sisa. (2) Apapun mod dirinya sendiri = 0. (3) 0 mod apapun non-nol = 0. (4) Pembagian (dan modus) dengan nol tidak terdefinisi — selalu validasi pembagi sebelum menghitung modus. Kalkulator kami menampilkan pesan kesalahan jelas untuk modus dengan nol.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Modulo in Cryptography",
"image": "https://example.com/image.jpg",
"description": "Modulo in cryptography is the mathematical foundation of modern public-key cryptography.",
"keywords": "modulo, cryptography, RSA, Diffie-Hellman, elliptic curve cryptography"
}
Modulo dan Uji Kekelurusan
Salah satu penggunaan yang paling berguna dari modulo adalah uji kekelurusan tanpa melakukan pembagian lengkap. Angka a adalah kelurusan oleh b jika dan hanya jika a mod b = 0. Ini memungkinkan periksa kekelurusan cepat:
| Kelurusan oleh | Uji | Contoh |
|---|---|---|
| 2 | n mod 2 = 0 (digit terakhir genap) | 128 mod 2 = 0 ✓ |
| 3 | Jumlah digit mod 3 = 0 | 123: 1+2+3=6, 6 mod 3 = 0 ✓ |
| 4 | Dua digit terakhir mod 4 = 0 | 312: 12 mod 4 = 0 ✓ |
| 5 | Digit terakhir adalah 0 atau 5 | 735 mod 5 = 0 ✓ |
| 9 | Jumlah digit mod 9 = 0 | 369: 3+6+9=18, 18 mod 9 = 0 ✓ |
| 10 | n mod 10 = 0 (digit terakhir adalah 0) | 500 mod 10 = 0 ✓ |
Aturan kekelurusan ini adalah singkat-singkat yang diperoleh dari sifat aritmatika modulo. Aturan jumlah digit untuk 3 dan 9 berfungsi karena 10 ≡ 1 (mod 3) dan 10 ≡ 1 (mod 9), artinya nilai posisi digit tidak relevan untuk kekelurusan oleh 3 atau 9. Ini diajarkan di sekolah dasar tanpa konteks aritmatika modulo, tetapi mekanisme di baliknya adalah modulo.
Modular Exponentiation: Kuadrat Cepat
Menghitung a^b mod n secara langsung dengan terlebih dahulu menghitung a^b, kemudian mengambil mod n, tidak praktis untuk eksponen besar — a^100 dapat memiliki ribuan digit. Modular exponentiation menggunakan identitas (a×b) mod n = ((a mod n) × (b mod n)) mod n untuk menjaga hasil sementara kecil.
Algoritma cepat menggunakan kuadrat ulang (eksponen biner):
- Tulis b dalam biner: misalnya, b=13 = 1101₂
- Hitung a, a², a⁴, a⁸ masing-masing diambil mod n
- Kalikan kuadrat yang sesuai dengan bit 1: a¹³ = a⁸ × a⁴ × a¹ (mod n)
Ini mengurangi jumlah perkalian dari b ke O(log₂ b). Untuk b = eksponen RSA 2048-bit (~10^600), ini adalah perbedaan antara triliun perkalian dan hanya ~2000. Tanpa optimasi ini, enkripsi RSA akan menjadi tidak praktis.
Banyak Pertanyaan yang Sering Ditanyakan
Apakah 15 mod 4?
15 mod 4 = 3. Karena 15 = 3×4 + 3, sisa adalah 3. Verifikasi: 3×4 = 12, dan 15 − 12 = 3. ✓
Apakah mod 0 berarti apa?
Modulo dengan nol tidak dapat dihitung, sama seperti pembagian dengan nol. Kalkulator kami akan mengembalikan pesan kesalahan dalam kasus ini. Setiap operasi berbasis pembagian memerlukan pembagi yang tidak nol.
Bagaimana modulo terkait dengan ketepatan?
Bilangan a dapat dibagi oleh b jika dan hanya jika a mod b = 0. Misalnya, 24 mod 6 = 0, jadi 24 dapat dibagi oleh 6. 25 mod 6 = 1, jadi 25 tidak dapat dibagi oleh 6. Ini membuat modulo alat dasar untuk tes ketepatan dalam ilmu komputer.
Apakah perbedaan antara mod dan sisa?
Untuk bilangan positif, mod dan sisa sama. Untuk bilangan negatif, mereka berbeda: modulo matematika selalu mengembalikan hasil positif (tanda mengikuti pembagi), sementara sisa mengambil tanda dari pembagi. Misalnya, -7 mod 3 = 2 (matematika), tetapi -7 sisa 3 = -1 (seperti di C, Java, JavaScript).
Apakah hasil dari 10 mod 3?
10 mod 3 = 1. Karena 10 = 3×3 + 1, sisa adalah 1. Anda dapat memverifikasi: 3×3 = 9, dan 10 − 9 = 1. Ini berarti 10 meninggalkan sisa 1 ketika dibagi oleh 3, jadi 10 tidak dapat dibagi oleh 3.
Apakah 0 mod 5?
0 mod 5 = 0. Nol dibagi oleh bilangan mana pun memberikan hasil pembagian 0 dan sisa 0. Secara umum, 0 mod n = 0 untuk setiap n ≠ 0. Ini konsisten dengan definisi: 0 = 0×5 + 0.
Bagaimana modulo digunakan dalam pemrograman?
Penggunaan umum termasuk: memeriksa genap/ganjil (n%2==0), mengelilingi indeks array (indeks%panjang), menerapkan buffer lingkaran, mendistribusikan item ke dalam ember dalam tabel hash (hash%ukuran), mengelilingi melalui keadaan dalam mesin keadaan, dan memastikan acara periodik terjadi setiap ke-n (penghitung%n==0).
Apakah aritmatika jam?
Aritmatika jam adalah aritmatika modulo sehari-hari. Jam 12 jam menggunakan mod 12: 11 jam + 3 jam = (11+3) mod 12 = 2 jam. Sifat melengkung ini tepatnya adalah aritmatika modulo. Demikian pula, hari dalam seminggu menggunakan mod 7, dan waktu militer menggunakan mod 24 untuk jam.
Mengapa modulo penting dalam kriptografi?
Aritmatika modulo membuat fungsi satu arah mungkin. Mencari g^a mod p (diberikan g, a, p) cepat, tetapi menemukan g^a mod p dan p (masalah logaritma diskrit) tidak dapat dihitung secara komputasional untuk prima besar. Asimetri ini merupakan dasar untuk pertukaran kunci Diffie-Hellman, RSA, dan kebanyakan kriptografi publik yang melindungi komunikasi internet.
Apakah hasil dari bilangan mana pun mod 1?
Bilangan mana pun mod 1 = 0. Membagi dengan 1 selalu meninggalkan sisa 0 — setiap bilangan dapat dibagi sempurna oleh 1. Ini konsisten secara matematika: a = a×1 + 0, sehingga sisa selalu 0. Kasus sampingan ini penting untuk ditangani dalam implementasi aritmatika modulo.
Modulo dalam Kehidupan Sehari-hari: Contoh-Contoh Praktis
Aritmatika moduler muncul lebih sering dalam kehidupan sehari-hari daripada yang banyak orang pikirkan. Saat Anda membaca jam, menghitung kapan acara mingguan berulang, memeriksa apakah sebuah bilangan dapat dibagi oleh 9, atau melihat digit terakhir tahun untuk menentukan hari apa seorang pasangan ulang tahun Anda, Anda melakukan aritmatika moduler — bahkan jika Anda tidak menggunakan nama itu.
Pengaturan Jadwal dan Ulangan: Jika sebuah acara terjadi setiap 7 hari dan hari ini adalah Selasa (hari ke-2, dihitung dari Minggu=0), maka 30 hari dari sekarang adalah (2+30) mod 7 = 32 mod 7 = 4, yang merupakan Kamis. Perhitungan langsung ini lebih cepat daripada menghitung minggu dan hari terpisah. Jika langganan berbayar pada tanggal 28 setiap bulan dan saat ini tanggal 15, hari-hari hingga pembayaran ulang adalah (28-15) mod 31 = 13 hari.
Cek Digit Digital: Standar barcode ISBN-13 menggunakan modulo 10. Digit terakhir dari setiap ISBN-13 dipilih sehingga jumlah berat dari semua 13 digit dapat dibagi oleh 10. Jika Anda salah mengetik satu digit saat memasukkan ISBN buku, cek akan gagal (mod 10 ≠ 0) dan kesalahan akan ditandai. Nomor kartu kredit menggunakan algoritma Luhn — cek mod-10 — untuk tujuan yang sama. Standar ISBN-10 menggunakan mod 11, memungkinkan deteksi transposisi tunggal.
Memori Komputer dan Alamat: Memori RAM biasanya dialamatkan dalam kuadrat 2 (1024, 2048, 4096 byte per halaman). Ketika sebuah program mengakses memori, OS menggunakan modulo untuk menghitung halaman memori mana alamat tersebut jatuh: page_number = alamat mod page_size. Pemilihan garis cache dalam cache CPU menggunakan modulo serupa. Buffer wrap-around dalam pengolahan audio, antrian paket jaringan, dan streaming video semua menggunakan matematika buffer lingkaran: write_position = (write_position + 1) % buffer_size.
Polakan Seni dan Musik: Pola ritme dalam teori musik dianalisis menggunakan aritmatika moduler. Pola waktu 4/4 memiliki irama 0, 1, 2, 3 yang berulang — siklus mod-4. Poliritme terjadi ketika dua irama independen dengan periode m dan n bermain secara bersamaan; mereka sinkronisasi setiap lcm(m,n) irama. Pola visual seperti tesselasi ubin berulang dengan periode moduler dalam dua dimensi.
Perhitungan Wilayah dan Zona Waktu: Selisih UTC berkisar dari -12 hingga +14. Mengonversi antara zona waktu: waktu T dalam UTC, waktu lokal = (T + offset) mod 24. Nilai hasil mungkin tampak tidak masuk akal (misalnya, 23 + 5 = 28, mod 24 = 4, berarti 4:00 pagi esok hari), tetapi operasi mod mengatasi batasan tengah malam dengan benar. Perlintasan garis tanggal internasional menggunakan mod 24 dalam kombinasi dengan perhitungan hari seminggu menggunakan mod 7.
Pemahaman modulo membuat perhitungan sehari-hari ini lebih jelas, lebih cepat, dan kurang rentan kesalahan. Setelah Anda melihat pola, Anda akan menyadari aritmatika moduler dalam optimasi kompiler, algoritma rotasi dalam permainan video, jadwal turnamen putaran-putaran, dan penyeimbangan beban di kumpulan server — semua bergantung pada konsep sederhana tetapi kuat dari sisa setelah pembagian.