Operasi Modulo tidaklah sama dengan persentase meskipun lambang dari keduanya adalah dua buah bulatan yang dipisahkan oleh sebuah garis miring. Singkatnya, modulo adalah sisa hasil bagi. Kemudian apa fungsionalitasnya? Pertanyaan bagus!
Pengaplikasian dasarnya untuk dijadikan contoh, modulo dari 8 dibagi 5 adalah 3 dikarenakan sisa pembagian dari 8 dengan 5 adalah 3. Pernyataan tersebut jika ditulis dengan kalimat matematika adalah :
8 % 5 = 3 atau 8 mod 5 = 3
Berikut contoh yang lainnya :
24 mod 7 = 3
164 mod 13 = 8
53333 mod 2013 = 125
dan lain sebagainya…
Kadang soal-soal sulit berpangkat seperti contoh terakhir muncul dalam olimpiade sekolah bahkan semenjak tingkat SMP. Teori dasarnya pun tidak sulit, namun pertanyaan terbesar adalah, untuk apa kita mempelajari ini semua? Mungkin beberapa saya akan coba jabarkan beberapa dari sisi pemrograman komputer.
Bagaimana jika ada suatu kasus di mana jika sebuah variabel bilangan harus diketahui ganjil-genapnya? Misalnya, jika bilangan variabel itu ganjil maka harus melakukan perintah tertentu. Maka modulo adalah salah satu solusinya.
Teori dasarnya yaitu segala sesuatu bilangan bulat yang habis dibagi 2 adalah bilangan genap.
if (bilangan % 2 == 0) { //bilangan genap } else { //bilangan ganjil }
Sebenarnya jika memang kita ingin menulis suatu kode yang tidak perlu orang lain tahu, maka cukup ditulis dengan bilangan-bilangan tertentu kemudian modulo dengan bilangan prima. Misalnya, kita ingin jikalau variabel murid hanya dapat menulis dan membaca sebuah tulisan, sementara variabel guru dapat melakukan semua hal. Maka,
/* Berikut adalah daftar variabel, tidak perlu dideklarasikan menulis = 2; membaca = 3; mengecek = 5; menghapus = 7; Di mana untuk hak akses pada sistem, cukup dengan modulo variabel murid dan guru dengan status di atas. Jika hasil modulo 0 atau habis dibagi, itu artinya variabel diperbolehkan untuk mengakses salah satu dari ke-empat fitur di atas. */ // Maka status murid adalah int murid = 6; //murid hanya dapat membaca dan menulis karena 6 habis dibagi 2 dan 3. // dan status guru adalah int guru = 210; //guru dapat melakukan semua hal.
Adapun alternatif dalam menggunakan pengecekan status di atas adalah dengan menggunakan bitwise AND untuk yang telah memahami.
Pernahkah kita melihat suatu tampilan menu baik itu di telepon selular ataupun di komputer bahkan dalam permainan sekalipun, jika kita berada pada menu yang paling bawah dan kita tekan tombol bawah, maka sorotan menu tersebut kembali lagi ke atas atau sebaliknya? Bagi programmer pemula mungkin masih menggunakan :
// Jika tombol bawah ditekan if (posisiMenu > banyakMenu) { posisiMenu = 0; //sorotan menu pindah ke awal } else { posisiMenu++; //posisiMenu bertambah sebanyak 1 } // Jika tombol atas ditekan if (posisiMenu < 0) { posisiMenu = banyakMenu; // sorotan menu pindah ke akhir } else { posisiMenu--; //posisiMenu berkurang sebanyak 1 }
Sebaiknya hal itu ditinggalkan karena hanya akan membuat kode terlihat lebih panjang. Menggunakan modulo adalah pilihan yang paling tepat.
// Jika tombol bawah ditekan posisiMenu ++; // Jika tombol atas ditekan posisiMenu --; posisiMenu %= banyakMenu; //akhirnya, posisi menu dimodulo sebanyak banyakMenu
Sebenarnya tak hanya di pemrograman saja hal ini berlaku. Beberapa soal olimpiade juga banyak yang memakai hal ini. Contohnya adalah, berapa digit terakhir dari 123456 ?
Maka jawabannya adalah cukup modulo soal tadi dengan 10 sehingga menjadi :
123456 mod 10
Mengapa harus mod 10? Karena banyaknya digit untuk bilangan desimal dari 0-9 adalah 10 buah.
OO> Teori Dasar <OO
Sebenarnya teori modulo cukup mudah untuk dipahami, berikut adalah beberapa dari teorinya :
Jika a, b adalah bilangan bulat dan n adalah bilangan asli, maka:
Contoh : (6+11+16) mod 5
= (6 mod 5 + 11 mod 5 + 16 mod 5) mod 5
= (1+1+1) mod 5
= 3 mod 5
= 3
Berapakah digit terakhir dari (1996 x 1997 x 1998 x 1999)?
(1996 x 1997 x 1998 x 1999) mod 10 (ingat poin terakhir di atas)
= ((1996 mod 10) x (1997 mod 10) x (1998 mod 10) x (1999 mod 10)) mod 10
= (6 x 7 x 8 x 9) mod 10
= (42 x 72) mod 10
= (2 x 2) mod 10
= 4
21000 mod 7
= 2(3×333 + 1) mod 7
= 2 x (23)333 mod 7
= 2 x (8)333 mod 7
= 2 x (7+1)333 mod 7
= 2 x (7 mod 7 + 1333 mod 7) mod 7
= 2 x (0 + 1) mod 7
= 2 mod 7
= 2
Semoga Bermanfaat
Nilai
Polling
Sugesti
Permainan
Mohon berikan bintang:
Desk Rate
Kalian juga dapat melihat dan menikmati hasil polling-polling yang lain. 😊
Sebentar ya, Anandastoon muat seluruh galeri pollnya dulu.
Pastikan internetmu tetap terhubung. 😉
Silakan klik salah satu poll yang kamu suka untuk mulai polling!
Galeri poll akan terus Anandastoon tambahkan secara berkala. 😉
Sebentar ya, Anandastoon memuat poll yang kamu pilih.
Pastikan internetmu tetap terhubung. 😉
Anandastoon ingin memastikan bahwa kamu bukan robot.
Mohon agar menjawab pertanyaan keamanan berikut dengan sepenuh hati.
Poll yang 'janggal' berpotensi dihapus oleh Anandastoon.
Sebab poll yang kamu isi mungkin akan bermanfaat bagi banyak orang. 🤗
Mohon jawab pertanyaan keamanan ini. Jika jawaban benar, kamu langsung menuju pollnya.
Atau, sedang tidak ingin mengisi poll?
Sebentar ya... poll kamu sedang di-submit.
Pastikan internetmu terhubung agar dapat melihat hasilnya.
Di sini nantinya Anandastoon akan menebak rekomendasi artikel yang kamu inginkan ~
Selesai membaca artikel Anandastoon? Mari, saya coba sarankan artikel lainnya. 🔮
Di sini nantinya kamu bisa main game langsung di artikelnya.
Bermain dengan artikel yang baru saja kamu baca? 😱 Kek gimana tuh?
Simpel kok, cuma cari kata dalam waktu yang ditentukan.
1. Kamu akan diberikan sebuah kata.
2. Kamu wajib mencari kata tersebut dalam artikel.
3. Kata yang ditemukan harap diblok atau dipilih.
Bisa dengan klik dua kali di laptop, atau di-tap dan tahan sampai kata terblok.
4. Terus begitu sampai kuota habis. Biasanya jumlahnya 10 kuota.
5. Kamu akan berhadapan dengan waktu yang terus berjalan.
6. DILARANG Inspect Element, CTRL + F, atau find and replace. Juga DILARANG berpindah tab/windows.
Terima kasih sharingnya.
Saat ini saya lagi belajar sendiri desain aplikasi web tapi pengetahuan matematika saya seperti anak SD,
jadi kebingungan setengah mati kalo ketemu dengan rumus-rumus matematika seperti ini.
Contohnya sekarang lagi belajar PHP dan ada hubungannya dengan operasi modulo, ada kode seperti ini:
<?php
for ($i=0; $i<=5; $i++) {
if ($i % 2 == 0) { continue; }
for ($k=0; $k<=5; $k++) {
echo $i . "-".$k."”;
}
}
?>
dan kalau di preview outputnya seperti ini:
1-0
1-1
1-2
1-3
1-4
1-5
3-0
3-1
3-2
3-3
3-4
3-5
5-0
5-1
5-2
5-3
5-4
5-5
Yang mau saya tanyakan, apakah betul variable $i=0 tidak sampai masuk ke echo callback karena 0 mod 2 = 0 atau 0%2=0 ??
Terima kasih kembali atas kunjungan dan komentarnya. Iya, mas sudah betul bahwa sisa hasil bagi dari 0 dibagi 2 adalah 0. Dan ini juga berlaku bagi semua bilangan kecuali 0.
Intinya, setiap nol yang dibagi dengan seluruh bilangan selain nol memiliki hasil bagi yang juga nol. Ini sekaligus membuktikan bahwa nol juga termasuk bilangan genap seperti yang telah disebutkan di poin paling awal.
Semoga penjelasan saya mudah dipahami. Terima kasih sekali lagi. 🙂