Memahami operator modulus (%)

This entry is part 5 of 9 in the series Pengantar Pemrograman Java

Pada pemrograman, dikenal operator % atau yang disebut dengan modulo/modulus. Operator ini digunakan untuk mendapatkan sisa hasil bagi dari suatu bilangan terhadap bilangan lainnya.

Contoh:

  • 5 % 2 = 1
  • 10 % 4 = 2
  • 12 % 3 = 0
  • 84 % 9 = 3
  • 5 % 8 = 5

Memahami modulus

Untuk memahami modulus, perhatikan contoh berikut ini.

Seorang paman memiliki 9 buah buku tulis. Ia ingin membagikan buku tersebut kepada 4 keponakannya. Karena ingin adil, ia membagi rata buku tersebut. Tentunya masing-masing keponakan akan mendapatkan 2 buah buku, dan 1 buku sebagai sisanya. Sisa 1 buku inilah yang disebut sisa hasil bagi, dan cerita di atas dapat ditulis dalam kalimat matematika 9 % 4 = 1.

Penggunaan modulus

Modulus seringkali dibutuhkan oleh kasus-kasus tertentu pada pemrograman. Berikut adalah beberapa contoh praktisnya:

Menentukan genap/ganjil

Untuk memperoleh apakah sebuah bilangan genap/ganjil dapat digunakan modulus 2. Jika bersisa berarti bilangan ganjil, jika tidak berarti bilangan genap. Salah satu contoh kebutuhan sederhana yang memanfaatkan apakah suatu bilangan itu ganjil atau genap adalah saat memberi warna latar belakang baris pada sebuah tabel, yang berselang-seling setiap barisnya. Lihat contoh kodenya pada cuplikan berikut ini, jalankan pada replit bila perlu.

    for (int i=1;i<10;i++) {      
      if (i%2==0) {
        tipe = "genap";
      } else {
        tipe = "ganjil";
      }
      System.out.println(i+" bilangan "+tipe);
    }

Menentukan hari

Operator modulus dapat digunakan untuk menentukan hari. Jika hari ini adalah hari h, maka akan dapat diketahui n hari kemudian adalah hari apa. Caranya adalah dengan menggunakan modulus 7. Lihat cuplikan kode di bawah, jalankan pada replit bila dibutuhkan.

String[] hari = {
      "senin","selasa","rabu","kamis","jumat","sabtu","minggu"
    };
    int jumlahHariKedepan = 7931;
    int idxHari = jumlahHariKedepan % 7;
    System.out.println("Jika hari ini hari senin," 
        +" maka "+ jumlahHariKedepan+ " hari lagi"
        +" adalah hari "+hari[idxHari]);

Pelompokkan objek ke dalam kategori

Modulus dapat digunakan untuk mengelompokkan ke dalam beberapa kelompok dengan tujuan bahwa setiap kelompok mendapatkan jumlah anggota yang sama, atau maksimal lebih satu dari kelompok yang lain. Pada contoh di bawah, n mahasiswa dikelompokkan untuk mengikuti ujian pada tiga shift berbeda. Jalankan kode lengkapnya pada replit untuk lebih jelasnya.

String[] mhs = {
      "Upik","Romi","Jalal","Sabo",
      "Renata","Syafiq","Bryan","Monica",
      "Linda","Syifa","Reina","Alfred",
      "Wahid","Fatih","Usop","Shinta",
      "Patrick","Sandy"
      };
    String[] shift = {"pagi","siang","sore"};
    for (int i=0;i<mhs.length;i++) {
      int tugasIdx = i % shift.length;
      System.out.println(
        mhs[i]+" mengikuti ujian pada shift "+shift[tugasIdx]
        );
    }

Konversi satuan pengukuran (Unit of Measurement)

Modulus dapat digunakan untuk melakukan konversi suatu nilai pada suatu satuan unit pengukuran ke satuan unit pengukuran lainnya. Pada cuplikan kode berikut diberikan contoh konversi detik menjadi jam, menit, dan detik sisanya. Jalankan pada replit untuk lebih jelasnya.

int totalDetik = 86399;
    int jam = totalDetik / 3600;
    int sisaDetik = totalDetik % 3600;
    int menit = sisaDetik / 60;
    sisaDetik = sisaDetik % 60;
    System.out.println(
      totalDetik+" detik setara dengan "
      + jam+" jam, "
      + menit+" menit, "
      + sisaDetik+" detik");

Semoga bermanfaat,

Salam

Series Navigation<< Operator pada bahasa pemrograman JavaPerulangan menggunakan for pada bahasa pemrograman Java >>

You may also like...

Berikan komentar