Kumpulan Kode Java

1. Absensi


import java.util.Scanner;

public class Absensi {

    // Daftar nama siswa/pegawai
    static String[] daftarNama = {"Ali", "Budi", "Citra", "Dewi", "Eka"};
    
    // Menyimpan status absensi
    static String[] absensi = new String[daftarNama.length];
    
    // Fungsi untuk mencatat absensi
    public static void catatAbsensi() {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Daftar Nama:");
        for (int i = 0; i < daftarNama.length; i++) {
            System.out.println((i + 1) + ". " + daftarNama[i]);
        }
        
        // Mencatat absensi untuk setiap nama
        for (int i = 0; i < daftarNama.length; i++) {
            System.out.print("Apakah " + daftarNama[i] + " hadir? (y/n): ");
            String status = scanner.nextLine().trim().toLowerCase();
            
            if (status.equals("y")) {
                absensi[i] = "Hadir";
            } else if (status.equals("n")) {
                absensi[i] = "Tidak Hadir";
            } else {
                absensi[i] = "Status Tidak Valid";
            }
        }

        // Menampilkan hasil absensi
        System.out.println("\nAbsensi Hari Ini:");
        for (int i = 0; i < daftarNama.length; i++) {
            System.out.println(daftarNama[i] + ": " + absensi[i]);
        }
        
        scanner.close();
    }

    public static void main(String[] args) {
        // Menjalankan fungsi untuk mencatat absensi
        catatAbsensi();
    }
}

2. Barbershop


import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Barbershop {
    private Queue antrian;  // Antrian pelanggan
    private boolean buka;  // Status barbershop

    // Konstruktor untuk menginisialisasi Barbershop
    public Barbershop() {
        antrian = new LinkedList<>();
        buka = true;
    }

    // Fungsi untuk membuka Barbershop
    public void bukaBarbershop() {
        System.out.println("Barbershop sedang buka, silakan masuk!");
    }

    // Fungsi untuk menutup Barbershop
    public void tutupBarbershop() {
        buka = false;
        System.out.println("Barbershop sudah tutup. Terima kasih sudah datang!");
    }

    // Fungsi untuk menambah pelanggan ke dalam antrian
    public void tambahPelanggan(String nama) {
        if (buka) {
            antrian.add(nama);
            System.out.println(nama + " telah masuk ke antrian.");
        } else {
            System.out.println("Barbershop sudah tutup. Anda tidak bisa mendaftar.");
        }
    }

    // Fungsi untuk memproses pelanggan
    public void prosesPelanggan() {
        if (!antrian.isEmpty()) {
            String pelanggan = antrian.poll();  // Mengambil pelanggan pertama dalam antrian
            System.out.println("Sedang melayani " + pelanggan + "...");
            try {
                Thread.sleep(2000);  // Simulasi pemotongan rambut selama 2 detik
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(pelanggan + " telah selesai dilayani.");
        } else {
            System.out.println("Tidak ada pelanggan di antrian.");
        }
    }

    // Fungsi untuk menampilkan antrian
    public void tampilkanAntrian() {
        if (!antrian.isEmpty()) {
            System.out.println("Antrian pelanggan:");
            int no = 1;
            for (String pelanggan : antrian) {
                System.out.println(no++ + ". " + pelanggan);
            }
        } else {
            System.out.println("Tidak ada pelanggan di antrian.");
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Barbershop barbershop = new Barbershop();
        barbershop.bukaBarbershop();

        while (true) {
            System.out.println("\n--- Menu ---");
            System.out.println("1. Tambah Pelanggan");
            System.out.println("2. Proses Pelanggan");
            System.out.println("3. Lihat Antrian");
            System.out.println("4. Tutup Barbershop");
            System.out.println("5. Keluar");

            System.out.print("Pilih menu (1-5): ");
            int pilihan = scanner.nextInt();
            scanner.nextLine();  // Membersihkan newline setelah nextInt()

            switch (pilihan) {
                case 1:
                    System.out.print("Masukkan nama pelanggan: ");
                    String nama = scanner.nextLine();
                    barbershop.tambahPelanggan(nama);
                    break;
                case 2:
                    barbershop.prosesPelanggan();
                    break;
                case 3:
                    barbershop.tampilkanAntrian();
                    break;
                case 4:
                    barbershop.tutupBarbershop();
                    return;
                case 5:
                    System.out.println("Terima kasih telah menggunakan program ini!");
                    return;
                default:
                    System.out.println("Pilihan tidak valid, coba lagi.");
            }
        }
    }
}

3. Bioskop


import java.util.Scanner;

public class Bioskop {

    // Menampilkan daftar film yang tersedia
    public static void showFilms() {
        System.out.println("Daftar Film yang Tersedia:");
        System.out.println("1. Film A - Harga: Rp 50000");
        System.out.println("2. Film B - Harga: Rp 60000");
        System.out.println("3. Film C - Harga: Rp 70000");
        System.out.println("4. Film D - Harga: Rp 55000");
    }

    // Memilih film yang diinginkan oleh pengguna
    public static int pilihFilm(Scanner scanner) {
        int pilihan;
        while (true) {
            System.out.print("\nPilih film (1-4): ");
            if (scanner.hasNextInt()) {
                pilihan = scanner.nextInt();
                if (pilihan >= 1 && pilihan <= 4) {
                    return pilihan;
                } else {
                    System.out.println("Pilihan tidak valid, coba lagi.");
                }
            } else {
                System.out.println("Masukkan angka yang valid.");
                scanner.next(); // Clear invalid input
            }
        }
    }

    // Mendapatkan nama film berdasarkan pilihan
    public static String getFilmName(int pilihan) {
        switch (pilihan) {
            case 1: return "Film A";
            case 2: return "Film B";
            case 3: return "Film C";
            case 4: return "Film D";
            default: return "Film Tidak Diketahui";
        }
    }

    // Proses membeli tiket
    public static void beliTiket(Scanner scanner) {
        int pilihan, jumlahTiket, totalHarga;

        while (true) {
            showFilms();
            pilihan = pilihFilm(scanner);

            // Menghitung harga berdasarkan film yang dipilih
            switch (pilihan) {
                case 1: totalHarga = 50000; break;
                case 2: totalHarga = 60000; break;
                case 3: totalHarga = 70000; break;
                case 4: totalHarga = 55000; break;
                default: totalHarga = 0; break;
            }

            // Input jumlah tiket
            System.out.print("Masukkan jumlah tiket yang ingin dibeli: ");
            while (!scanner.hasNextInt()) {
                System.out.print("Jumlah tiket tidak valid, coba lagi: ");
                scanner.next(); // Clear invalid input
            }
            jumlahTiket = scanner.nextInt();

            totalHarga *= jumlahTiket; // Menghitung total harga

            // Menampilkan hasil pembelian
            System.out.printf("\nTiket untuk film %s (%d tiket) berhasil dipesan.\n", getFilmName(pilihan), jumlahTiket);
            System.out.printf("Total harga: Rp %d\n", totalHarga);

            // Tanya apakah ingin membeli tiket lagi
            System.out.print("\nApakah Anda ingin membeli tiket lagi? (y/t): ");
            char lagi = scanner.next().charAt(0);

            if (Character.toLowerCase(lagi) == 't') {
                System.out.println("Terima kasih telah membeli tiket di bioskop kami!");
                break;
            }
        }
    }

    // Program utama
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        beliTiket(scanner);
        scanner.close();
    }
}

4. Dealer Kartu (Black Jack Simplified)


import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Blackjack {

    // Daftar kartu dalam deck
    private static final String[] deck = {
        "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set pertama
        "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set kedua
        "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set ketiga
        "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"  // Set keempat
    };

    // Fungsi untuk menghitung nilai kartu
    public static int cardValue(String card) {
        switch (card) {
            case "J":
            case "Q":
            case "K":
                return 10;
            case "A":
                return 11; // Menganggap Ace = 11 untuk kesederhanaan
            default:
                return Integer.parseInt(card); // Kartu angka (2-10)
        }
    }

    // Fungsi untuk membagikan kartu secara acak
    public static String dealCard(ArrayList deck) {
        Collections.shuffle(deck);
        return deck.remove(0); // Keluarkan kartu pertama dari deck
    }

    // Fungsi untuk menghitung total nilai kartu dalam hand
    public static int calculateHand(ArrayList hand) {
        int total = 0;
        for (String card : hand) {
            total += cardValue(card);
        }
        return total;
    }

    // Fungsi utama untuk menjalankan permainan
    public static void startGame() {
        Scanner scanner = new Scanner(System.in);
        ArrayList deckCopy = new ArrayList<>();
        Collections.addAll(deckCopy, deck); // Salinan deck untuk permainan

        // Kartu untuk pemain dan dealer
        ArrayList playerHand = new ArrayList<>();
        ArrayList dealerHand = new ArrayList<>();

        // Membagikan dua kartu untuk pemain dan dealer
        playerHand.add(dealCard(deckCopy));
        playerHand.add(dealCard(deckCopy));
        dealerHand.add(dealCard(deckCopy));
        dealerHand.add(dealCard(deckCopy));

        // Menampilkan kartu awal pemain dan dealer (satu kartu dealer tersembunyi)
        System.out.println("Kartu Anda: " + playerHand + " dengan nilai " + calculateHand(playerHand));
        System.out.println("Kartu Dealer: " + dealerHand.get(0) + " dan kartu tersembunyi");

        // Giliran pemain
        while (calculateHand(playerHand) < 21) {
            System.out.print("Apakah Anda ingin 'Hit' atau 'Stand'? ");
            String action = scanner.nextLine().toLowerCase();

            if (action.equals("hit")) {
                playerHand.add(dealCard(deckCopy));
                System.out.println("Kartu Anda sekarang: " + playerHand + " dengan nilai " + calculateHand(playerHand));
            } else if (action.equals("stand")) {
                break;
            } else {
                System.out.println("Pilihan tidak valid. Pilih 'Hit' atau 'Stand'.");
            }
        }

        // Jika pemain melebihi 21
        if (calculateHand(playerHand) > 21) {
            System.out.println("Nilai kartu Anda melebihi 21! Anda kalah!");
            return;
        }

        // Giliran dealer (dealer akan 'hit' sampai total kartu >= 17)
        System.out.println("Kartu Dealer sekarang: " + dealerHand + " dengan nilai " + calculateHand(dealerHand));
        while (calculateHand(dealerHand) < 17) {
            System.out.println("Dealer memukul kartu...");
            dealerHand.add(dealCard(deckCopy));
            System.out.println("Kartu Dealer sekarang: " + dealerHand + " dengan nilai " + calculateHand(dealerHand));
        }

        // Menentukan pemenang
        int playerTotal = calculateHand(playerHand);
        int dealerTotal = calculateHand(dealerHand);

        if (dealerTotal > 21) {
            System.out.println("Dealer melebihi 21! Anda menang!");
        } else if (playerTotal > dealerTotal) {
            System.out.println("Anda menang!");
        } else if (playerTotal < dealerTotal) {
            System.out.println("Dealer menang!");
        } else {
            System.out.println("Hasil seri!");
        }

        scanner.close();
    }

    // Fungsi utama untuk menjalankan permainan
    public static void main(String[] args) {
        System.out.println("Selamat datang di permainan Dealer Kartu!");
        startGame();
    }
}

5. Diler Kendaraan


import java.util.Scanner;

class Vehicle {
    private String model;
    private int price;
    private int stock;

    public Vehicle(String model, int price, int stock) {
        this.model = model;
        this.price = price;
        this.stock = stock;
    }

    // Menampilkan informasi kendaraan
    public void displayInfo() {
        System.out.println("Model: " + model + ", Harga: Rp" + price + ", Stok: " + stock);
    }

    // Mengupdate stok setelah pembelian
    public void updateStock(int quantity) {
        stock -= quantity;
        if (stock < 0) {
            stock = 0;
        }
    }

    // Memeriksa ketersediaan stok
    public boolean isAvailable(int quantity) {
        return stock >= quantity;
    }

    public int getPrice() {
        return price;
    }

    public String getModel() {
        return model;
    }

    public int getStock() {
        return stock;
    }
}

class VehicleDealer {
    private Vehicle[] vehicles;
    private int vehicleCount;

    public VehicleDealer(int maxVehicles) {
        vehicles = new Vehicle[maxVehicles];
        vehicleCount = 0;
    }

    // Menambahkan kendaraan ke diler
    public void addVehicle(String model, int price, int stock) {
        if (vehicleCount < vehicles.length) {
            vehicles[vehicleCount] = new Vehicle(model, price, stock);
            vehicleCount++;
        } else {
            System.out.println("Diler sudah penuh, tidak bisa menambah kendaraan.");
        }
    }

    // Menampilkan semua kendaraan yang tersedia
    public void displayVehicles() {
        if (vehicleCount == 0) {
            System.out.println("Tidak ada kendaraan di diler.");
            return;
        }

        System.out.println("\nKendaraan yang Tersedia di Diler:");
        for (int i = 0; i < vehicleCount; i++) {
            System.out.print((i + 1) + ". ");
            vehicles[i].displayInfo();
        }
    }

    // Pembelian kendaraan
    public void purchaseVehicle() {
        displayVehicles();

        if (vehicleCount == 0) {
            return;
        }

        Scanner scanner = new Scanner(System.in);
        try {
            System.out.print("\nPilih kendaraan (masukkan nomor): ");
            int choice = scanner.nextInt();
            System.out.print("Berapa banyak yang ingin dibeli? ");
            int quantity = scanner.nextInt();

            if (choice < 1 || choice > vehicleCount) {
                System.out.println("Pilihan tidak valid.");
                return;
            }

            Vehicle selectedVehicle = vehicles[choice - 1];
            if (selectedVehicle.isAvailable(quantity)) {
                int totalPrice = selectedVehicle.getPrice() * quantity;
                System.out.println("\nPembelian Sukses! Total Harga: Rp" + totalPrice);
                selectedVehicle.updateStock(quantity);
            } else {
                System.out.println("\nStok tidak cukup.");
            }
        } catch (Exception e) {
            System.out.println("Input tidak valid.");
        }
    }
}

public class VehicleDealerApp {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        VehicleDealer dealer = new VehicleDealer(10); // Maksimal 10 kendaraan

        // Menambahkan beberapa kendaraan ke diler
        dealer.addVehicle("Mobil Sedan", 300000000, 10);
        dealer.addVehicle("Motor Sport", 100000000, 5);
        dealer.addVehicle("Mobil SUV", 500000000, 3);

        while (true) {
            System.out.println("\n--- Menu Diler Kendaraan ---");
            System.out.println("1. Lihat kendaraan yang tersedia");
            System.out.println("2. Pembelian kendaraan");
            System.out.println("3. Keluar");

            System.out.print("\nPilih menu: ");
            int choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    dealer.displayVehicles();
                    break;
                case 2:
                    dealer.purchaseVehicle();
                    break;
                case 3:
                    System.out.println("Terima kasih telah mengunjungi diler kami!");
                    return;
                default:
                    System.out.println("Pilihan tidak valid.");
            }
        }
    }
}

6. Gaji


import java.util.Scanner;

public class GajiKaryawan {

    // Fungsi untuk menghitung gaji total
    public static double hitungGaji(double gajiPokok, double tunjangan, double potongan) {
        return gajiPokok + tunjangan - potongan;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Menampilkan judul program
        System.out.println("Program Perhitungan Gaji Karyawan");
        
        // Input data
        System.out.print("Masukkan gaji pokok: Rp ");
        double gajiPokok = scanner.nextDouble();
        
        System.out.print("Masukkan tunjangan: Rp ");
        double tunjangan = scanner.nextDouble();
        
        System.out.print("Masukkan potongan: Rp ");
        double potongan = scanner.nextDouble();
        
        // Menghitung gaji total
        double gajiTotal = hitungGaji(gajiPokok, tunjangan, potongan);
        
        // Menampilkan hasil perhitungan
        System.out.println("\nRingkasan Gaji:");
        System.out.println("Gaji Pokok: Rp " + gajiPokok);
        System.out.println("Tunjangan: Rp " + tunjangan);
        System.out.println("Potongan: Rp " + potongan);
        System.out.println("Gaji Total: Rp " + gajiTotal);
        
        scanner.close();
    }
}

7. Kafe


import java.util.Scanner;

class Cafe {

    // Daftar menu dan harga
    private String[] menu = {"Kopi", "Teh", "Espresso", "Cappuccino", "Kue"};
    private int[] harga = {15000, 10000, 20000, 25000, 12000};
    private String[] pesanan = new String[10];
    private int[] jumlahPesanan = new int[10];
    private int pesananCount = 0;

    // Menampilkan menu
    public void tampilkanMenu() {
        System.out.println("\n--- Menu Kafe ---");
        for (int i = 0; i < menu.length; i++) {
            System.out.println((i + 1) + ". " + menu[i] + ": Rp " + harga[i]);
        }
    }

    // Menambahkan pesanan
    public void tambahPesanan() {
        Scanner scanner = new Scanner(System.in);

        while (true) {
            tampilkanMenu();
            System.out.print("\nMasukkan nomor item yang ingin dipesan (ketik 0 untuk selesai): ");
            int pilihan = scanner.nextInt();

            if (pilihan == 0) {
                break;
            }

            if (pilihan >= 1 && pilihan <= menu.length) {
                System.out.print("Berapa banyak " + menu[pilihan - 1] + " yang ingin dipesan? ");
                int jumlah = scanner.nextInt();

                // Tambahkan pesanan ke dalam daftar pesanan
                if (pesananCount < pesanan.length) {
                    boolean ditemukan = false;
                    for (int i = 0; i < pesananCount; i++) {
                        if (pesanan[i].equals(menu[pilihan - 1])) {
                            jumlahPesanan[i] += jumlah;
                            ditemukan = true;
                            break;
                        }
                    }

                    if (!ditemukan) {
                        pesanan[pesananCount] = menu[pilihan - 1];
                        jumlahPesanan[pesananCount] = jumlah;
                        pesananCount++;
                    }

                    System.out.println(jumlah + " " + menu[pilihan - 1] + " telah ditambahkan ke pesanan.");
                } else {
                    System.out.println("Tidak dapat menambahkan pesanan. Maksimal pesanan tercapai.");
                }
            } else {
                System.out.println("Pilihan tidak valid. Silakan coba lagi.");
            }
        }
    }

    // Menghitung total harga pesanan
    public int hitungTotal() {
        int total = 0;
        for (int i = 0; i < pesananCount; i++) {
            for (int j = 0; j < menu.length; j++) {
                if (pesanan[i].equals(menu[j])) {
                    total += harga[j] * jumlahPesanan[i];
                }
            }
        }
        return total;
    }

    // Menampilkan pesanan dan total harga
    public void tampilkanPesanan() {
        if (pesananCount == 0) {
            System.out.println("\nTidak ada pesanan.");
        } else {
            System.out.println("\n--- Pesanan Anda ---");
            for (int i = 0; i < pesananCount; i++) {
                for (int j = 0; j < menu.length; j++) {
                    if (pesanan[i].equals(menu[j])) {
                        System.out.println(pesanan[i] + " x " + jumlahPesanan[i] + " = Rp " + harga[j] * jumlahPesanan[i]);
                    }
                }
            }
            System.out.println("\nTotal yang harus dibayar: Rp " + hitungTotal());
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Cafe cafe = new Cafe();
        int pilihan;

        while (true) {
            System.out.println("\n--- Selamat Datang di Kafe! ---");
            System.out.println("1. Lihat Menu");
            System.out.println("2. Tambah Pesanan");
            System.out.println("3. Lihat Pesanan dan Total");
            System.out.println("4. Keluar");

            System.out.print("Pilih menu (1-4): ");
            pilihan = scanner.nextInt();

            switch (pilihan) {
                case 1:
                    cafe.tampilkanMenu();
                    break;
                case 2:
                    cafe.tambahPesanan();
                    break;
                case 3:
                    cafe.tampilkanPesanan();
                    break;
                case 4:
                    System.out.println("Terima kasih telah mengunjungi kafe kami. Sampai jumpa!");
                    return;
                default:
                    System.out.println("Pilihan tidak valid. Silakan coba lagi.");
                    break;
            }
        }
    }
}

8. Kalkulator


import java.util.Scanner;

public class Kalkulator {

    // Fungsi untuk penjumlahan
    public static double tambah(double x, double y) {
        return x + y;
    }

    // Fungsi untuk pengurangan
    public static double kurang(double x, double y) {
        return x - y;
    }

    // Fungsi untuk perkalian
    public static double kali(double x, double y) {
        return x * y;
    }

    // Fungsi untuk pembagian
    public static double bagi(double x, double y) {
        if (y != 0) {
            return x / y;
        } else {
            System.out.println("Tidak bisa membagi dengan nol");
            return Double.NaN; // Mengembalikan nilai NaN (Not a Number) jika pembagian dengan nol
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Menampilkan menu operasi
        System.out.println("Pilih operasi:");
        System.out.println("1. Tambah");
        System.out.println("2. Kurang");
        System.out.println("3. Kali");
        System.out.println("4. Bagi");

        // Meminta input pilihan operasi
        System.out.print("Masukkan pilihan (1/2/3/4): ");
        int pilihan = scanner.nextInt();
        
        // Meminta input angka
        System.out.print("Masukkan angka pertama: ");
        double num1 = scanner.nextDouble();
        
        System.out.print("Masukkan angka kedua: ");
        double num2 = scanner.nextDouble();

        // Melakukan operasi sesuai dengan pilihan pengguna
        switch (pilihan) {
            case 1:
                System.out.println(num1 + " + " + num2 + " = " + tambah(num1, num2));
                break;
            case 2:
                System.out.println(num1 + " - " + num2 + " = " + kurang(num1, num2));
                break;
            case 3:
                System.out.println(num1 + " * " + num2 + " = " + kali(num1, num2));
                break;
            case 4:
                double hasilBagi = bagi(num1, num2);
                if (!Double.isNaN(hasilBagi)) {
                    System.out.println(num1 + " / " + num2 + " = " + hasilBagi);
                }
                break;
            default:
                System.out.println("Pilihan tidak valid!");
                break;
        }
        
        scanner.close();
    }
}

9. Kasir


import java.util.ArrayList;
import java.util.Scanner;

class Barang {
    String nama;
    double harga;
    int jumlah;
    double total;

    // Constructor untuk membuat objek Barang
    public Barang(String nama, double harga, int jumlah) {
        this.nama = nama;
        this.harga = harga;
        this.jumlah = jumlah;
        this.total = harga * jumlah;
    }

    // Menampilkan rincian barang
    public void tampilkanRincian() {
        System.out.println(nama + " - Harga: " + harga + " - Jumlah: " + jumlah + " - Total: " + total);
    }
}

class Kasir {
    ArrayList daftarBarang;
    double totalHarga;

    // Constructor untuk inisialisasi
    public Kasir() {
        daftarBarang = new ArrayList<>();
        totalHarga = 0;
    }

    // Menambah barang ke daftar belanja
    public void tambahBarang(String nama, double harga, int jumlah) {
        Barang barang = new Barang(nama, harga, jumlah);
        daftarBarang.add(barang);
        totalHarga += barang.total;
        System.out.println(nama + " x" + jumlah + " ditambahkan ke daftar belanja.");
    }

    // Menampilkan rincian belanja
    public void tampilkanRincian() {
        System.out.println("\n--- Rincian Belanja ---");
        for (Barang barang : daftarBarang) {
            barang.tampilkanRincian();
        }
        System.out.println("\nTotal Belanja: " + totalHarga);
    }

    // Proses pembayaran dan menghitung kembalian
    public void bayar(double uangDibayar) {
        if (uangDibayar >= totalHarga) {
            double kembalian = uangDibayar - totalHarga;
            System.out.println("\nTotal yang harus dibayar: " + totalHarga);
            System.out.println("Uang yang dibayar: " + uangDibayar);
            System.out.println("Kembalian: " + kembalian);
        } else {
            System.out.println("\nUang yang dibayar kurang dari total belanja. Transaksi dibatalkan.");
        }
    }
}

public class ProgramKasir {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Kasir kasir = new Kasir();

        while (true) {
            System.out.println("\nMenu Kasir");
            System.out.println("1. Tambah barang");
            System.out.println("2. Tampilkan rincian belanja");
            System.out.println("3. Bayar");
            System.out.println("4. Keluar");
            System.out.print("Pilih menu (1/2/3/4): ");
            int pilihan = scanner.nextInt();
            scanner.nextLine(); // Clear buffer

            if (pilihan == 1) {
                System.out.print("Masukkan nama barang: ");
                String namaBarang = scanner.nextLine();
                System.out.print("Masukkan harga barang: ");
                double harga = scanner.nextDouble();
                System.out.print("Masukkan jumlah barang: ");
                int jumlah = scanner.nextInt();
                kasir.tambahBarang(namaBarang, harga, jumlah);
            } else if (pilihan == 2) {
                kasir.tampilkanRincian();
            } else if (pilihan == 3) {
                kasir.tampilkanRincian();
                System.out.print("Masukkan uang yang dibayar: ");
                double uangDibayar = scanner.nextDouble();
                kasir.bayar(uangDibayar);
            } else if (pilihan == 4) {
                System.out.println("Terima kasih, sampai jumpa!");
                break;
            } else {
                System.out.println("Pilihan tidak valid, coba lagi.");
            }
        }
        scanner.close();
    }
}

10. Kereta


import java.util.ArrayList;
import java.util.Scanner;

class Kereta {
    private String namaKereta;
    private String tujuan;
    private String waktuBerangkat;
    private int kapasitas;
    private int terisi;

    public Kereta(String namaKereta, String tujuan, String waktuBerangkat, int kapasitas) {
        this.namaKereta = namaKereta;
        this.tujuan = tujuan;
        this.waktuBerangkat = waktuBerangkat;
        this.kapasitas = kapasitas;
        this.terisi = 0;
    }

    public void tampilkanInfo() {
        System.out.println("Nama Kereta: " + namaKereta);
        System.out.println("Tujuan: " + tujuan);
        System.out.println("Waktu Berangkat: " + waktuBerangkat);
        System.out.println("Kapasitas: " + kapasitas);
        System.out.println("Terisi: " + terisi + "/" + kapasitas);
        System.out.println();
    }

    public void pesanTiket(int jumlahTiket) {
        if (terisi + jumlahTiket <= kapasitas) {
            terisi += jumlahTiket;
            System.out.println("Berhasil memesan " + jumlahTiket + " tiket untuk " + namaKereta + ".");
        } else {
            System.out.println("Maaf, hanya tersisa " + (kapasitas - terisi) + " tiket untuk " + namaKereta + ".");
        }
    }

    public String getNamaKereta() {
        return namaKereta;
    }
}

class SistemKereta {
    private ArrayList keretaList;

    public SistemKereta() {
        keretaList = new ArrayList<>();
    }

    public void tambahKereta(Kereta kereta) {
        keretaList.add(kereta);
    }

    public void tampilkanJadwal() {
        System.out.println("Jadwal Kereta:");
        for (Kereta kereta : keretaList) {
            kereta.tampilkanInfo();
        }
    }

    public void pesanTiketKereta(String namaKereta, int jumlahTiket) {
        boolean ditemukan = false;
        for (Kereta kereta : keretaList) {
            if (kereta.getNamaKereta().equalsIgnoreCase(namaKereta)) {
                kereta.pesanTiket(jumlahTiket);
                ditemukan = true;
                break;
            }
        }
        if (!ditemukan) {
            System.out.println("Kereta dengan nama " + namaKereta + " tidak ditemukan.");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        SistemKereta sistemKereta = new SistemKereta();

        // Menambahkan beberapa kereta ke sistem
        Kereta kereta1 = new Kereta("Ekspres Jakarta", "Bandung", "10:00", 100);
        Kereta kereta2 = new Kereta("Argo Bromo", "Surabaya", "15:00", 150);
        Kereta kereta3 = new Kereta("Kelas Ekonomi", "Yogyakarta", "12:00", 200);

        sistemKereta.tambahKereta(kereta1);
        sistemKereta.tambahKereta(kereta2);
        sistemKereta.tambahKereta(kereta3);

        int pilihan;
        String namaKereta;
        int jumlahTiket;

        while (true) {
            System.out.println("\nMenu:");
            System.out.println("1. Tampilkan Jadwal Kereta");
            System.out.println("2. Pesan Tiket Kereta");
            System.out.println("3. Keluar");

            System.out.print("Pilih menu (1/2/3): ");
            pilihan = scanner.nextInt();

            if (pilihan == 1) {
                sistemKereta.tampilkanJadwal();
            } else if (pilihan == 2) {
                System.out.print("Masukkan nama kereta yang ingin dipesan: ");
                scanner.nextLine(); // Membersihkan newline
                namaKereta = scanner.nextLine();
                System.out.print("Masukkan jumlah tiket yang ingin dipesan: ");
                jumlahTiket = scanner.nextInt();
                sistemKereta.pesanTiketKereta(namaKereta, jumlahTiket);
            } else if (pilihan == 3) {
                System.out.println("Terima kasih telah menggunakan sistem kereta.");
                break;
            } else {
                System.out.println("Pilihan tidak valid. Silakan coba lagi.");
            }
        }

        scanner.close();
    }
}

Mau Lebih Banyak Kode? Lihat Di Github Saya (Kode 11 - 20)

Klik Disini