modulo operation    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.

 

  • Modulo berfungsi untuk mengecek ganjil-genap

     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
}

 

  • Modulo berfungsi untuk mengecek status khusus

     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.

 

  • Modulo berfungsi sebagai pengulangan praktis

     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

 

  • Mengecek digit terakhir

     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:

  • (a+b) mod n = (a mod n + b mod n) mod n.

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

  • (ab) mod n = ((a mod n) * (b mod n)) mod n.

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

  • (ab) mod n = ((a mod n)b) mod n, untuk b bilangan bulat positif.

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

Suka
Komentar
pos ke FB
pos ke Twitter
🤗 Selesai! 🤗

Nilai

Polling

Sugesti

Permainan


  • Sebelumnya
    Parallax Scrolling, Pengertian dan Pengaplikasiannya

    Berikutnya
    10+ Tips dan Trik Memaksimalkan Akun Instagram


  • 2 Jejak Manis yang Ditinggalkan

    1. 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. 🙂

    Minta Komentarnya Dong...

    Silakan tulis komentar kalian di sini, yang ada bintangnya wajib diisi ya...
    Dan jangan khawatir, email kalian tetap dirahasiakan. 😉

    Kembali
    Ke Atas

    Terima kasih telah membaca artikel Anandastoon!

    Apakah artikelnya mudah dimengerti?

    Mohon berikan bintang:

    Judul Rate

    Desk Rate

    Terima kasih telah membaca artikel Anandastoon!

    Dan terima kasih juga sudah berkontribusi menilai kemudahan bacaan Anandastoon!

    Ada saran lainnya untuk Anandastoon? Atau ingin request artikel juga boleh.

    Selamat datang di Polling Anandastoon.

    Kalian dapat iseng memberi polling seperti di Twitter, Facebook, atau Story Instagram. Pollingnya disediakan oleh Anandastoon.

    Kalian juga dapat melihat dan menikmati hasil polling-polling yang lain. 😊


    Memuat Galeri Poll...

    Sebentar ya, Anandastoon muat seluruh galeri pollnya dulu.
    Pastikan internetmu tetap terhubung. 😉

    Asik poll ditemukan!

    Silakan klik salah satu poll yang kamu suka untuk mulai polling!

    Galeri poll akan terus Anandastoon tambahkan secara berkala. 😉

    Judul Poll Galeri

    Memuat poll...

    Sebentar ya, Anandastoon memuat poll yang kamu pilih.
    Pastikan internetmu tetap terhubung. 😉

    Masih memuat ~

    Sebelum memulai poll,

    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. 🤗

    Apakah nama hari sebelum hari Kamis?

    Mohon jawab pertanyaan keamanan ini. Jika jawaban benar, kamu langsung menuju pollnya.

    Senin
    Rabu
    Jumat
    Sabtu

    Atau, sedang tidak ingin mengisi poll?

     

    Wah, poll telah selesai. 🤗

    Sebentar ya... poll kamu sedang di-submit.
    Pastikan internetmu terhubung agar dapat melihat hasilnya.

    Hasil poll 👇

    Menunggu ~

    Ups, sepertinya fitur ini masih dikembangkan Anandastoon

    Di sini nantinya Anandastoon akan menebak rekomendasi artikel yang kamu inginkan ~

    Heihei maihei para pembaca...

    Selesai membaca artikel Anandastoon? Mari, saya coba sarankan artikel lainnya. 🔮

     

    Ups, sepertinya fitur ini masih dikembangkan Anandastoon

    Di sini nantinya kamu bisa main game langsung di artikelnya.

    Permainan di Artikel

    Bermain dengan artikel yang baru saja kamu baca? 😱 Kek gimana tuh?
    Simpel kok, cuma cari kata dalam waktu yang ditentukan.

    Mempersiapkan game...

    Aturan Permainan

    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.