Program Java Menampilkan Bilangan Ganjil dan Genap: Panduan Lengkap dengan 3 Metode

By | August 16, 2025

Dalam dunia pemrograman Java, program java menampilkan bilangan ganjil dan genap merupakan salah satu konsep fundamental yang wajib dikuasai setiap programmer pemula. Program ini tidak hanya mengajarkan logika dasar pemrograman, tetapi juga memperkenalkan konsep penting seperti operator modulus, struktur kontrol, dan perulangan.

Artikel ini akan membahas secara mendalam bagaimana membuat program java menampilkan bilangan ganjil dan genap dengan tiga metode berbeda, mulai dari yang paling sederhana hingga yang lebih advanced. Setiap metode dilengkapi dengan penjelasan detail, contoh kode yang dapat langsung dipraktikkan, dan tips optimasi.

Pengertian Bilangan Ganjil dan Genap dalam Pemrograman

Sebelum masuk ke implementasi kode, penting untuk memahami konsep dasar bilangan ganjil dan genap:

  • Bilangan Genap: Bilangan yang habis dibagi 2 (sisa pembagian = 0)
  • Bilangan Ganjil: Bilangan yang tidak habis dibagi 2 (sisa pembagian ≠ 0)

Contoh bilangan genap: 0, 2, 4, 6, 8, 10, 12…
Contoh bilangan ganjil: 1, 3, 5, 7, 9, 11, 13…

💡 Tips: Dalam pemrograman Java, kita menggunakan operator modulus (%) untuk menentukan sisa pembagian. Jika bilangan % 2 == 0, maka bilangan tersebut genap.

Metode 1: Program Dasar Mengecek Satu Bilangan

Mari kita mulai dengan program java menampilkan bilangan ganjil dan genap yang paling sederhana. Program ini akan meminta input dari user dan menentukan apakah bilangan tersebut ganjil atau genap.

import java.util.Scanner;

public class CekGanjilGenap {
    public static void main(String[] args) {
        // Membuat objek Scanner untuk input
        Scanner input = new Scanner(System.in);
        
        // Meminta input dari user
        System.out.print("Masukkan sebuah bilangan: ");
        int bilangan = input.nextInt();
        
        // Mengecek apakah bilangan ganjil atau genap
        if (bilangan % 2 == 0) {
            System.out.println(bilangan + " adalah bilangan GENAP");
        } else {
            System.out.println(bilangan + " adalah bilangan GANJIL");
        }
        
        // Menutup Scanner
        input.close();
    }
}

Penjelasan Kode:

  1. Scanner input = new Scanner(System.in) – Membuat objek untuk menerima input dari keyboard
  2. bilangan % 2 – Menggunakan operator modulus untuk mendapatkan sisa pembagian
  3. if (bilangan % 2 == 0) – Kondisi untuk mengecek apakah sisa pembagian sama dengan 0
  4. input.close() – Menutup Scanner untuk mencegah memory leak

Contoh Output:

Masukkan sebuah bilangan: 7
7 adalah bilangan GANJIL

Masukkan sebuah bilangan: 12
12 adalah bilangan GENAP

Metode 2: Program Menampilkan Deret Bilangan Ganjil dan Genap

Metode kedua dari program java menampilkan bilangan ganjil dan genap ini akan menampilkan semua bilangan ganjil dan genap dalam rentang tertentu menggunakan perulangan.

public class DeretGanjilGenap {
    public static void main(String[] args) {
        int batasAwal = 1;
        int batasAkhir = 20;
        
        // Menampilkan bilangan ganjil
        System.out.println("=== BILANGAN GANJIL ===");
        System.out.print("Dari " + batasAwal + " sampai " + batasAkhir + ": ");
        for (int i = batasAwal; i <= batasAkhir; i++) {
            if (i % 2 != 0) {
                System.out.print(i + " ");
            }
        }
        
        System.out.println("\n"); // Baris kosong
        
        // Menampilkan bilangan genap
        System.out.println("=== BILANGAN GENAP ===");
        System.out.print("Dari " + batasAwal + " sampai " + batasAkhir + ": ");
        for (int i = batasAwal; i <= batasAkhir; i++) {
            if (i % 2 == 0) {
                System.out.print(i + " ");
            }
        }
        
        System.out.println("\n"); // Baris kosong
        
        // Menampilkan statistik
        int jumlahGanjil = 0, jumlahGenap = 0;
        for (int i = batasAwal; i <= batasAkhir; i++) {
            if (i % 2 == 0) {
                jumlahGenap++;
            } else {
                jumlahGanjil++;
            }
        }
        
        System.out.println("=== STATISTIK ===");
        System.out.println("Total bilangan ganjil: " + jumlahGanjil);
        System.out.println("Total bilangan genap: " + jumlahGenap);
    }
}

Contoh Output:

=== BILANGAN GANJIL ===
Dari 1 sampai 20: 1 3 5 7 9 11 13 15 17 19 

=== BILANGAN GENAP ===
Dari 1 sampai 20: 2 4 6 8 10 12 14 16 18 20 

=== STATISTIK ===
Total bilangan ganjil: 10
Total bilangan genap: 10

Metode 3: Program dengan Method Terpisah (Best Practice)

Metode ketiga menunjukkan program java menampilkan bilangan ganjil dan genap dengan pendekatan yang lebih profesional menggunakan method terpisah. Ini adalah best practice dalam pemrograman Java.

import java.util.Scanner;

public class GanjilGenapAdvanced {
    
    /**
     * Method untuk mengecek apakah bilangan ganjil
     * @param bilangan - bilangan yang akan dicek
     * @return true jika ganjil, false jika genap
     */
    public static boolean isGanjil(int bilangan) {
        return bilangan % 2 != 0;
    }
    
    /**
     * Method untuk mengecek apakah bilangan genap
     * @param bilangan - bilangan yang akan dicek
     * @return true jika genap, false jika ganjil
     */
    public static boolean isGenap(int bilangan) {
        return bilangan % 2 == 0;
    }
    
    /**
     * Method untuk menampilkan semua bilangan ganjil dalam rentang
     * @param awal - batas awal
     * @param akhir - batas akhir
     */
    public static void tampilkanBilanganGanjil(int awal, int akhir) {
        System.out.print("Bilangan Ganjil (" + awal + "-" + akhir + "): ");
        for (int i = awal; i <= akhir; i++) {
            if (isGanjil(i)) {
                System.out.print(i + " ");
            }
        }
        System.out.println();
    }
    
    /**
     * Method untuk menampilkan semua bilangan genap dalam rentang
     * @param awal - batas awal
     * @param akhir - batas akhir
     */
    public static void tampilkanBilanganGenap(int awal, int akhir) {
        System.out.print("Bilangan Genap (" + awal + "-" + akhir + "): ");
        for (int i = awal; i <= akhir; i++) {
            if (isGenap(i)) {
                System.out.print(i + " ");
            }
        }
        System.out.println();
    }
    
    /**
     * Method untuk menghitung jumlah bilangan ganjil dan genap
     * @param awal - batas awal
     * @param akhir - batas akhir
     */
    public static void hitungStatistik(int awal, int akhir) {
        int ganjil = 0, genap = 0;
        
        for (int i = awal; i <= akhir; i++) {
            if (isGanjil(i)) {
                ganjil++;
            } else {
                genap++;
            }
        }
        
        System.out.println("\n=== STATISTIK LENGKAP ===");
        System.out.println("Rentang: " + awal + " - " + akhir);
        System.out.println("Jumlah bilangan ganjil: " + ganjil);
        System.out.println("Jumlah bilangan genap: " + genap);
        System.out.println("Total bilangan: " + (ganjil + genap));
        System.out.println("Persentase ganjil: " + String.format("%.1f", (double)ganjil/(ganjil+genap)*100) + "%");
        System.out.println("Persentase genap: " + String.format("%.1f", (double)genap/(ganjil+genap)*100) + "%");
    }
    
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        System.out.println("=== PROGRAM JAVA GANJIL GENAP ADVANCED ===");
        System.out.print("Masukkan batas awal: ");
        int awal = input.nextInt();
        System.out.print("Masukkan batas akhir: ");
        int akhir = input.nextInt();
        
        System.out.println();
        tampilkanBilanganGanjil(awal, akhir);
        tampilkanBilanganGenap(awal, akhir);
        hitungStatistik(awal, akhir);
        
        input.close();
    }
}

Tips dan Optimasi Program

1. Penggunaan Operator Modulus yang Efisien

Operator modulus (%) adalah kunci dalam program java menampilkan bilangan ganjil dan genap. Berikut beberapa tips penggunaannya:

  • Untuk bilangan positif: bilangan % 2 == 0 (genap), bilangan % 2 == 1 (ganjil)
  • Untuk bilangan negatif: Hasil modulus bisa negatif, gunakan Math.abs(bilangan % 2) == 0
  • Alternative check: (bilangan & 1) == 0 untuk genap (menggunakan bitwise operation, lebih cepat)

2. Validasi Input

Selalu validasi input user untuk mencegah error:

// Contoh validasi input
Scanner input = new Scanner(System.in);
int bilangan;

do {
    System.out.print("Masukkan bilangan bulat: ");
    while (!input.hasNextInt()) {
        System.out.print("Input tidak valid! Masukkan bilangan bulat: ");
        input.next();
    }
    bilangan = input.nextInt();
} while (false);

3. Handling Bilangan Besar

Untuk bilangan yang sangat besar, gunakan tipe data long atau BigInteger:

// Untuk bilangan besar
public static boolean isGenapLong(long bilangan) {
    return bilangan % 2L == 0L;
}

Variasi Program Lanjutan

Program dengan GUI (Swing)

Untuk membuat program java menampilkan bilangan ganjil dan genap dengan interface grafis:

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GanjilGenapGUI extends JFrame {
    private JTextField inputField;
    private JLabel resultLabel;
    
    public GanjilGenapGUI() {
        setTitle("Program Ganjil Genap");
        setSize(300, 150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(null);
        
        JLabel label = new JLabel("Masukkan bilangan:");
        label.setBounds(20, 20, 120, 25);
        add(label);
        
        inputField = new JTextField();
        inputField.setBounds(140, 20, 100, 25);
        add(inputField);
        
        JButton checkButton = new JButton("Cek");
        checkButton.setBounds(100, 60, 80, 25);
        add(checkButton);
        
        resultLabel = new JLabel("");
        resultLabel.setBounds(20, 90, 250, 25);
        add(resultLabel);
        
        checkButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    int bilangan = Integer.parseInt(inputField.getText());
                    String hasil = (bilangan % 2 == 0) ? "GENAP" : "GANJIL";
                    resultLabel.setText(bilangan + " adalah bilangan " + hasil);
                } catch (NumberFormatException ex) {
                    resultLabel.setText("Input tidak valid!");
                }
            }
        });
    }
    
    public static void main(String[] args) {
        new GanjilGenapGUI().setVisible(true);
    }
}

Artikel Terkait

Untuk memperdalam pemahaman Anda tentang pemrograman Java, baca juga artikel-artikel berikut:

Frequently Asked Questions (FAQ)

❓ Bagaimana cara kerja operator modulus (%) dalam Java?

Jawab: Operator modulus (%) mengembalikan sisa hasil pembagian dua bilangan. Contoh: 7 % 2 = 1 (karena 7 ÷ 2 = 3 sisa 1), 8 % 2 = 0 (karena 8 ÷ 2 = 4 sisa 0). Dalam konteks program java menampilkan bilangan ganjil dan genap, jika bilangan % 2 == 0 maka bilangan tersebut genap, jika tidak maka ganjil.

❓ Apakah bilangan 0 (nol) termasuk ganjil atau genap?

Jawab: Bilangan 0 termasuk bilangan genap karena 0 % 2 = 0. Secara matematis, 0 dapat dibagi habis oleh 2 (0 ÷ 2 = 0), sehingga memenuhi definisi bilangan genap. Ini penting diingat saat membuat program java menampilkan bilangan ganjil dan genap.

❓ Bagaimana menangani bilangan negatif dalam program ganjil genap?

Jawab: Bilangan negatif tetap mengikuti aturan yang sama. Contoh: -4 % 2 = 0 (genap), -3 % 2 = -1 (ganjil). Namun, di beberapa bahasa pemrograman, hasil modulus bilangan negatif bisa berbeda. Untuk memastikan, gunakan Math.abs(bilangan % 2) == 0 untuk mengecek bilangan genap.

❓ Apa keuntungan menggunakan method terpisah dalam program?

Jawab: Menggunakan method terpisah dalam program java menampilkan bilangan ganjil dan genap memberikan beberapa keuntungan: (1) Kode lebih terstruktur dan mudah dibaca, (2) Method dapat digunakan kembali (reusable), (3) Memudahkan debugging dan testing, (4) Mengikuti prinsip DRY (Don’t Repeat Yourself), (5) Memudahkan maintenance kode di masa depan.

❓ Bagaimana cara mengoptimalkan program untuk bilangan yang sangat besar?

Jawab: Untuk bilangan besar, pertimbangkan: (1) Gunakan tipe data long atau BigInteger untuk bilangan yang melebihi kapasitas int, (2) Untuk performa lebih baik, gunakan bitwise operation: (bilangan & 1) == 0 untuk mengecek genap, (3) Jika memproses array besar, pertimbangkan penggunaan parallel processing dengan Stream API Java 8+.

❓ Bisakah program ini dimodifikasi untuk mengecek bilangan prima?

Jawab: Ya, konsep dasar program java menampilkan bilangan ganjil dan genap dapat dikembangkan untuk mengecek bilangan prima. Namun, algoritma untuk bilangan prima lebih kompleks karena harus mengecek pembagian dengan semua bilangan dari 2 hingga akar kuadrat bilangan tersebut, bukan hanya pembagian dengan 2.

Kesimpulan

Program java menampilkan bilangan ganjil dan genap merupakan fondasi penting dalam mempelajari pemrograman Java. Melalui tiga metode yang telah dibahas – dari yang sederhana hingga advanced – Anda telah mempelajari:

  1. Konsep dasar: Penggunaan operator modulus, struktur kondisional if-else, dan perulangan for
  2. Best practices: Penggunaan method terpisah, dokumentasi kode, dan validasi input
  3. Optimasi: Teknik-teknik untuk meningkatkan performa dan menangani edge cases
  4. Variasi implementasi: Dari console application hingga GUI application

Ketiga metode yang dijelaskan memiliki kegunaan masing-masing:

  • Metode 1 cocok untuk pemula yang baru belajar konsep dasar
  • Metode 2 berguna untuk memahami perulangan dan menampilkan deret bilangan
  • Metode 3 menunjukkan praktik pemrograman profesional dengan method terpisah

Untuk mengembangkan kemampuan lebih lanjut, cobalah modifikasi program dengan menambahkan fitur seperti:

  • Input validation yang lebih robust
  • Penyimpanan hasil ke file
  • Interface grafis yang lebih menarik
  • Integrasi dengan database
  • Web-based application menggunakan Spring Boot

Terus berlatih dan eksperimen dengan kode-kode di atas. Semakin sering Anda praktik, semakin mahir kemampuan pemrograman Java Anda. Jangan lupa untuk selalu mengikuti best practices dan terus belajar konsep-konsep baru dalam pemrograman Java!

Leave a Reply

Your email address will not be published. Required fields are marked *