Memahami operator modulus (%)
- Variabel pada bahasa pemrograman Java
- Aturan penamaan dalam bahasa pemrograman Java
- Operator pada bahasa pemrograman Java
- Memahami operator modulus (%)
- Perulangan menggunakan for pada bahasa pemrograman Java
- Perulangan menggunakan while pada bahasa pemrograman Java
- Array pada bahasa pemrograman Java
- Method pada bahasa pemrograman Java
- Variabel instance, variabel class, dan variabel lokal
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