├── README.md ├── absensi.java ├── barbershop.java ├── barbersop.java ├── bioskop.java ├── dealerkartu(blackjacksimplified).java ├── dilerkendaraan.java ├── gaji.java ├── index.html ├── kafe.java ├── kalkulator.java ├── kasir.java ├── kereta.java ├── parkir.java ├── perpustakaan.java ├── raffneptune.jpg ├── rental.java ├── restoran.java ├── spbu.java ├── supermarket.java ├── tictactoe.java ├── timezonegame.java ├── tol.java └── warnet.java /README.md: -------------------------------------------------------------------------------- 1 |

java

2 | tap link 3 | -------------------------------------------------------------------------------- /absensi.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class Absensi { 4 | 5 | // Daftar nama siswa/pegawai 6 | static String[] daftarNama = {"Ali", "Budi", "Citra", "Dewi", "Eka"}; 7 | 8 | // Menyimpan status absensi 9 | static String[] absensi = new String[daftarNama.length]; 10 | 11 | // Fungsi untuk mencatat absensi 12 | public static void catatAbsensi() { 13 | Scanner scanner = new Scanner(System.in); 14 | 15 | System.out.println("Daftar Nama:"); 16 | for (int i = 0; i < daftarNama.length; i++) { 17 | System.out.println((i + 1) + ". " + daftarNama[i]); 18 | } 19 | 20 | // Mencatat absensi untuk setiap nama 21 | for (int i = 0; i < daftarNama.length; i++) { 22 | System.out.print("Apakah " + daftarNama[i] + " hadir? (y/n): "); 23 | String status = scanner.nextLine().trim().toLowerCase(); 24 | 25 | if (status.equals("y")) { 26 | absensi[i] = "Hadir"; 27 | } else if (status.equals("n")) { 28 | absensi[i] = "Tidak Hadir"; 29 | } else { 30 | absensi[i] = "Status Tidak Valid"; 31 | } 32 | } 33 | 34 | // Menampilkan hasil absensi 35 | System.out.println("\nAbsensi Hari Ini:"); 36 | for (int i = 0; i < daftarNama.length; i++) { 37 | System.out.println(daftarNama[i] + ": " + absensi[i]); 38 | } 39 | 40 | scanner.close(); 41 | } 42 | 43 | public static void main(String[] args) { 44 | // Menjalankan fungsi untuk mencatat absensi 45 | catatAbsensi(); 46 | } 47 | } -------------------------------------------------------------------------------- /barbershop.java: -------------------------------------------------------------------------------- 1 | import java.util.LinkedList; 2 | import java.util.Queue; 3 | import java.util.Scanner; 4 | 5 | public class Barbershop { 6 | private Queue antrian; // Antrian pelanggan 7 | private boolean buka; // Status barbershop 8 | 9 | // Konstruktor untuk menginisialisasi Barbershop 10 | public Barbershop() { 11 | antrian = new LinkedList<>(); 12 | buka = true; 13 | } 14 | 15 | // Fungsi untuk membuka Barbershop 16 | public void bukaBarbershop() { 17 | System.out.println("Barbershop sedang buka, silakan masuk!"); 18 | } 19 | 20 | // Fungsi untuk menutup Barbershop 21 | public void tutupBarbershop() { 22 | buka = false; 23 | System.out.println("Barbershop sudah tutup. Terima kasih sudah datang!"); 24 | } 25 | 26 | // Fungsi untuk menambah pelanggan ke dalam antrian 27 | public void tambahPelanggan(String nama) { 28 | if (buka) { 29 | antrian.add(nama); 30 | System.out.println(nama + " telah masuk ke antrian."); 31 | } else { 32 | System.out.println("Barbershop sudah tutup. Anda tidak bisa mendaftar."); 33 | } 34 | } 35 | 36 | // Fungsi untuk memproses pelanggan 37 | public void prosesPelanggan() { 38 | if (!antrian.isEmpty()) { 39 | String pelanggan = antrian.poll(); // Mengambil pelanggan pertama dalam antrian 40 | System.out.println("Sedang melayani " + pelanggan + "..."); 41 | try { 42 | Thread.sleep(2000); // Simulasi pemotongan rambut selama 2 detik 43 | } catch (InterruptedException e) { 44 | e.printStackTrace(); 45 | } 46 | System.out.println(pelanggan + " telah selesai dilayani."); 47 | } else { 48 | System.out.println("Tidak ada pelanggan di antrian."); 49 | } 50 | } 51 | 52 | // Fungsi untuk menampilkan antrian 53 | public void tampilkanAntrian() { 54 | if (!antrian.isEmpty()) { 55 | System.out.println("Antrian pelanggan:"); 56 | int no = 1; 57 | for (String pelanggan : antrian) { 58 | System.out.println(no++ + ". " + pelanggan); 59 | } 60 | } else { 61 | System.out.println("Tidak ada pelanggan di antrian."); 62 | } 63 | } 64 | 65 | public static void main(String[] args) { 66 | Scanner scanner = new Scanner(System.in); 67 | Barbershop barbershop = new Barbershop(); 68 | barbershop.bukaBarbershop(); 69 | 70 | while (true) { 71 | System.out.println("\n--- Menu ---"); 72 | System.out.println("1. Tambah Pelanggan"); 73 | System.out.println("2. Proses Pelanggan"); 74 | System.out.println("3. Lihat Antrian"); 75 | System.out.println("4. Tutup Barbershop"); 76 | System.out.println("5. Keluar"); 77 | 78 | System.out.print("Pilih menu (1-5): "); 79 | int pilihan = scanner.nextInt(); 80 | scanner.nextLine(); // Membersihkan newline setelah nextInt() 81 | 82 | switch (pilihan) { 83 | case 1: 84 | System.out.print("Masukkan nama pelanggan: "); 85 | String nama = scanner.nextLine(); 86 | barbershop.tambahPelanggan(nama); 87 | break; 88 | case 2: 89 | barbershop.prosesPelanggan(); 90 | break; 91 | case 3: 92 | barbershop.tampilkanAntrian(); 93 | break; 94 | case 4: 95 | barbershop.tutupBarbershop(); 96 | return; 97 | case 5: 98 | System.out.println("Terima kasih telah menggunakan program ini!"); 99 | return; 100 | default: 101 | System.out.println("Pilihan tidak valid, coba lagi."); 102 | } 103 | } 104 | } 105 | } -------------------------------------------------------------------------------- /barbersop.java: -------------------------------------------------------------------------------- 1 | import java.util.LinkedList; 2 | import java.util.Queue; 3 | import java.util.Scanner; 4 | 5 | public class Barbershop { 6 | private Queue antrian; // Antrian pelanggan 7 | private boolean buka; // Status barbershop 8 | 9 | // Konstruktor untuk menginisialisasi Barbershop 10 | public Barbershop() { 11 | antrian = new LinkedList<>(); 12 | buka = true; 13 | } 14 | 15 | // Fungsi untuk membuka Barbershop 16 | public void bukaBarbershop() { 17 | System.out.println("Barbershop sedang buka, silakan masuk!"); 18 | } 19 | 20 | // Fungsi untuk menutup Barbershop 21 | public void tutupBarbershop() { 22 | buka = false; 23 | System.out.println("Barbershop sudah tutup. Terima kasih sudah datang!"); 24 | } 25 | 26 | // Fungsi untuk menambah pelanggan ke dalam antrian 27 | public void tambahPelanggan(String nama) { 28 | if (buka) { 29 | antrian.add(nama); 30 | System.out.println(nama + " telah masuk ke antrian."); 31 | } else { 32 | System.out.println("Barbershop sudah tutup. Anda tidak bisa mendaftar."); 33 | } 34 | } 35 | 36 | // Fungsi untuk memproses pelanggan 37 | public void prosesPelanggan() { 38 | if (!antrian.isEmpty()) { 39 | String pelanggan = antrian.poll(); // Mengambil pelanggan pertama dalam antrian 40 | System.out.println("Sedang melayani " + pelanggan + "..."); 41 | try { 42 | Thread.sleep(2000); // Simulasi pemotongan rambut selama 2 detik 43 | } catch (InterruptedException e) { 44 | e.printStackTrace(); 45 | } 46 | System.out.println(pelanggan + " telah selesai dilayani."); 47 | } else { 48 | System.out.println("Tidak ada pelanggan di antrian."); 49 | } 50 | } 51 | 52 | // Fungsi untuk menampilkan antrian 53 | public void tampilkanAntrian() { 54 | if (!antrian.isEmpty()) { 55 | System.out.println("Antrian pelanggan:"); 56 | int no = 1; 57 | for (String pelanggan : antrian) { 58 | System.out.println(no++ + ". " + pelanggan); 59 | } 60 | } else { 61 | System.out.println("Tidak ada pelanggan di antrian."); 62 | } 63 | } 64 | 65 | public static void main(String[] args) { 66 | Scanner scanner = new Scanner(System.in); 67 | Barbershop barbershop = new Barbershop(); 68 | barbershop.bukaBarbershop(); 69 | 70 | while (true) { 71 | System.out.println("\n--- Menu ---"); 72 | System.out.println("1. Tambah Pelanggan"); 73 | System.out.println("2. Proses Pelanggan"); 74 | System.out.println("3. Lihat Antrian"); 75 | System.out.println("4. Tutup Barbershop"); 76 | System.out.println("5. Keluar"); 77 | 78 | System.out.print("Pilih menu (1-5): "); 79 | int pilihan = scanner.nextInt(); 80 | scanner.nextLine(); // Membersihkan newline setelah nextInt() 81 | 82 | switch (pilihan) { 83 | case 1: 84 | System.out.print("Masukkan nama pelanggan: "); 85 | String nama = scanner.nextLine(); 86 | barbershop.tambahPelanggan(nama); 87 | break; 88 | case 2: 89 | barbershop.prosesPelanggan(); 90 | break; 91 | case 3: 92 | barbershop.tampilkanAntrian(); 93 | break; 94 | case 4: 95 | barbershop.tutupBarbershop(); 96 | return; 97 | case 5: 98 | System.out.println("Terima kasih telah menggunakan program ini!"); 99 | return; 100 | default: 101 | System.out.println("Pilihan tidak valid, coba lagi."); 102 | } 103 | } 104 | } 105 | } -------------------------------------------------------------------------------- /bioskop.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class Bioskop { 4 | 5 | // Menampilkan daftar film yang tersedia 6 | public static void showFilms() { 7 | System.out.println("Daftar Film yang Tersedia:"); 8 | System.out.println("1. Film A - Harga: Rp 50000"); 9 | System.out.println("2. Film B - Harga: Rp 60000"); 10 | System.out.println("3. Film C - Harga: Rp 70000"); 11 | System.out.println("4. Film D - Harga: Rp 55000"); 12 | } 13 | 14 | // Memilih film yang diinginkan oleh pengguna 15 | public static int pilihFilm(Scanner scanner) { 16 | int pilihan; 17 | while (true) { 18 | System.out.print("\nPilih film (1-4): "); 19 | if (scanner.hasNextInt()) { 20 | pilihan = scanner.nextInt(); 21 | if (pilihan >= 1 && pilihan <= 4) { 22 | return pilihan; 23 | } else { 24 | System.out.println("Pilihan tidak valid, coba lagi."); 25 | } 26 | } else { 27 | System.out.println("Masukkan angka yang valid."); 28 | scanner.next(); // Clear invalid input 29 | } 30 | } 31 | } 32 | 33 | // Mendapatkan nama film berdasarkan pilihan 34 | public static String getFilmName(int pilihan) { 35 | switch (pilihan) { 36 | case 1: return "Film A"; 37 | case 2: return "Film B"; 38 | case 3: return "Film C"; 39 | case 4: return "Film D"; 40 | default: return "Film Tidak Diketahui"; 41 | } 42 | } 43 | 44 | // Proses membeli tiket 45 | public static void beliTiket(Scanner scanner) { 46 | int pilihan, jumlahTiket, totalHarga; 47 | 48 | while (true) { 49 | showFilms(); 50 | pilihan = pilihFilm(scanner); 51 | 52 | // Menghitung harga berdasarkan film yang dipilih 53 | switch (pilihan) { 54 | case 1: totalHarga = 50000; break; 55 | case 2: totalHarga = 60000; break; 56 | case 3: totalHarga = 70000; break; 57 | case 4: totalHarga = 55000; break; 58 | default: totalHarga = 0; break; 59 | } 60 | 61 | // Input jumlah tiket 62 | System.out.print("Masukkan jumlah tiket yang ingin dibeli: "); 63 | while (!scanner.hasNextInt()) { 64 | System.out.print("Jumlah tiket tidak valid, coba lagi: "); 65 | scanner.next(); // Clear invalid input 66 | } 67 | jumlahTiket = scanner.nextInt(); 68 | 69 | totalHarga *= jumlahTiket; // Menghitung total harga 70 | 71 | // Menampilkan hasil pembelian 72 | System.out.printf("\nTiket untuk film %s (%d tiket) berhasil dipesan.\n", getFilmName(pilihan), jumlahTiket); 73 | System.out.printf("Total harga: Rp %d\n", totalHarga); 74 | 75 | // Tanya apakah ingin membeli tiket lagi 76 | System.out.print("\nApakah Anda ingin membeli tiket lagi? (y/t): "); 77 | char lagi = scanner.next().charAt(0); 78 | 79 | if (Character.toLowerCase(lagi) == 't') { 80 | System.out.println("Terima kasih telah membeli tiket di bioskop kami!"); 81 | break; 82 | } 83 | } 84 | } 85 | 86 | // Program utama 87 | public static void main(String[] args) { 88 | Scanner scanner = new Scanner(System.in); 89 | beliTiket(scanner); 90 | scanner.close(); 91 | } 92 | } -------------------------------------------------------------------------------- /dealerkartu(blackjacksimplified).java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.Collections; 3 | import java.util.Scanner; 4 | 5 | public class Blackjack { 6 | 7 | // Daftar kartu dalam deck 8 | private static final String[] deck = { 9 | "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set pertama 10 | "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set kedua 11 | "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set ketiga 12 | "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" // Set keempat 13 | }; 14 | 15 | // Fungsi untuk menghitung nilai kartu 16 | public static int cardValue(String card) { 17 | switch (card) { 18 | case "J": 19 | case "Q": 20 | case "K": 21 | return 10; 22 | case "A": 23 | return 11; // Menganggap Ace = 11 untuk kesederhanaan 24 | default: 25 | return Integer.parseInt(card); // Kartu angka (2-10) 26 | } 27 | } 28 | 29 | // Fungsi untuk membagikan kartu secara acak 30 | public static String dealCard(ArrayList deck) { 31 | Collections.shuffle(deck); 32 | return deck.remove(0); // Keluarkan kartu pertama dari deck 33 | } 34 | 35 | // Fungsi untuk menghitung total nilai kartu dalam hand 36 | public static int calculateHand(ArrayList hand) { 37 | int total = 0; 38 | for (String card : hand) { 39 | total += cardValue(card); 40 | } 41 | return total; 42 | } 43 | 44 | // Fungsi utama untuk menjalankan permainan 45 | public static void startGame() { 46 | Scanner scanner = new Scanner(System.in); 47 | ArrayList deckCopy = new ArrayList<>(); 48 | Collections.addAll(deckCopy, deck); // Salinan deck untuk permainan 49 | 50 | // Kartu untuk pemain dan dealer 51 | ArrayList playerHand = new ArrayList<>(); 52 | ArrayList dealerHand = new ArrayList<>(); 53 | 54 | // Membagikan dua kartu untuk pemain dan dealer 55 | playerHand.add(dealCard(deckCopy)); 56 | playerHand.add(dealCard(deckCopy)); 57 | dealerHand.add(dealCard(deckCopy)); 58 | dealerHand.add(dealCard(deckCopy)); 59 | 60 | // Menampilkan kartu awal pemain dan dealer (satu kartu dealer tersembunyi) 61 | System.out.println("Kartu Anda: " + playerHand + " dengan nilai " + calculateHand(playerHand)); 62 | System.out.println("Kartu Dealer: " + dealerHand.get(0) + " dan kartu tersembunyi"); 63 | 64 | // Giliran pemain 65 | while (calculateHand(playerHand) < 21) { 66 | System.out.print("Apakah Anda ingin 'Hit' atau 'Stand'? "); 67 | String action = scanner.nextLine().toLowerCase(); 68 | 69 | if (action.equals("hit")) { 70 | playerHand.add(dealCard(deckCopy)); 71 | System.out.println("Kartu Anda sekarang: " + playerHand + " dengan nilai " + calculateHand(playerHand)); 72 | } else if (action.equals("stand")) { 73 | break; 74 | } else { 75 | System.out.println("Pilihan tidak valid. Pilih 'Hit' atau 'Stand'."); 76 | } 77 | } 78 | 79 | // Jika pemain melebihi 21 80 | if (calculateHand(playerHand) > 21) { 81 | System.out.println("Nilai kartu Anda melebihi 21! Anda kalah!"); 82 | return; 83 | } 84 | 85 | // Giliran dealer (dealer akan 'hit' sampai total kartu >= 17) 86 | System.out.println("Kartu Dealer sekarang: " + dealerHand + " dengan nilai " + calculateHand(dealerHand)); 87 | while (calculateHand(dealerHand) < 17) { 88 | System.out.println("Dealer memukul kartu..."); 89 | dealerHand.add(dealCard(deckCopy)); 90 | System.out.println("Kartu Dealer sekarang: " + dealerHand + " dengan nilai " + calculateHand(dealerHand)); 91 | } 92 | 93 | // Menentukan pemenang 94 | int playerTotal = calculateHand(playerHand); 95 | int dealerTotal = calculateHand(dealerHand); 96 | 97 | if (dealerTotal > 21) { 98 | System.out.println("Dealer melebihi 21! Anda menang!"); 99 | } else if (playerTotal > dealerTotal) { 100 | System.out.println("Anda menang!"); 101 | } else if (playerTotal < dealerTotal) { 102 | System.out.println("Dealer menang!"); 103 | } else { 104 | System.out.println("Hasil seri!"); 105 | } 106 | 107 | scanner.close(); 108 | } 109 | 110 | // Fungsi utama untuk menjalankan permainan 111 | public static void main(String[] args) { 112 | System.out.println("Selamat datang di permainan Dealer Kartu!"); 113 | startGame(); 114 | } 115 | } -------------------------------------------------------------------------------- /dilerkendaraan.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | class Vehicle { 4 | private String model; 5 | private int price; 6 | private int stock; 7 | 8 | public Vehicle(String model, int price, int stock) { 9 | this.model = model; 10 | this.price = price; 11 | this.stock = stock; 12 | } 13 | 14 | // Menampilkan informasi kendaraan 15 | public void displayInfo() { 16 | System.out.println("Model: " + model + ", Harga: Rp" + price + ", Stok: " + stock); 17 | } 18 | 19 | // Mengupdate stok setelah pembelian 20 | public void updateStock(int quantity) { 21 | stock -= quantity; 22 | if (stock < 0) { 23 | stock = 0; 24 | } 25 | } 26 | 27 | // Memeriksa ketersediaan stok 28 | public boolean isAvailable(int quantity) { 29 | return stock >= quantity; 30 | } 31 | 32 | public int getPrice() { 33 | return price; 34 | } 35 | 36 | public String getModel() { 37 | return model; 38 | } 39 | 40 | public int getStock() { 41 | return stock; 42 | } 43 | } 44 | 45 | class VehicleDealer { 46 | private Vehicle[] vehicles; 47 | private int vehicleCount; 48 | 49 | public VehicleDealer(int maxVehicles) { 50 | vehicles = new Vehicle[maxVehicles]; 51 | vehicleCount = 0; 52 | } 53 | 54 | // Menambahkan kendaraan ke diler 55 | public void addVehicle(String model, int price, int stock) { 56 | if (vehicleCount < vehicles.length) { 57 | vehicles[vehicleCount] = new Vehicle(model, price, stock); 58 | vehicleCount++; 59 | } else { 60 | System.out.println("Diler sudah penuh, tidak bisa menambah kendaraan."); 61 | } 62 | } 63 | 64 | // Menampilkan semua kendaraan yang tersedia 65 | public void displayVehicles() { 66 | if (vehicleCount == 0) { 67 | System.out.println("Tidak ada kendaraan di diler."); 68 | return; 69 | } 70 | 71 | System.out.println("\nKendaraan yang Tersedia di Diler:"); 72 | for (int i = 0; i < vehicleCount; i++) { 73 | System.out.print((i + 1) + ". "); 74 | vehicles[i].displayInfo(); 75 | } 76 | } 77 | 78 | // Pembelian kendaraan 79 | public void purchaseVehicle() { 80 | displayVehicles(); 81 | 82 | if (vehicleCount == 0) { 83 | return; 84 | } 85 | 86 | Scanner scanner = new Scanner(System.in); 87 | try { 88 | System.out.print("\nPilih kendaraan (masukkan nomor): "); 89 | int choice = scanner.nextInt(); 90 | System.out.print("Berapa banyak yang ingin dibeli? "); 91 | int quantity = scanner.nextInt(); 92 | 93 | if (choice < 1 || choice > vehicleCount) { 94 | System.out.println("Pilihan tidak valid."); 95 | return; 96 | } 97 | 98 | Vehicle selectedVehicle = vehicles[choice - 1]; 99 | if (selectedVehicle.isAvailable(quantity)) { 100 | int totalPrice = selectedVehicle.getPrice() * quantity; 101 | System.out.println("\nPembelian Sukses! Total Harga: Rp" + totalPrice); 102 | selectedVehicle.updateStock(quantity); 103 | } else { 104 | System.out.println("\nStok tidak cukup."); 105 | } 106 | } catch (Exception e) { 107 | System.out.println("Input tidak valid."); 108 | } 109 | } 110 | } 111 | 112 | public class VehicleDealerApp { 113 | public static void main(String[] args) { 114 | Scanner scanner = new Scanner(System.in); 115 | VehicleDealer dealer = new VehicleDealer(10); // Maksimal 10 kendaraan 116 | 117 | // Menambahkan beberapa kendaraan ke diler 118 | dealer.addVehicle("Mobil Sedan", 300000000, 10); 119 | dealer.addVehicle("Motor Sport", 100000000, 5); 120 | dealer.addVehicle("Mobil SUV", 500000000, 3); 121 | 122 | while (true) { 123 | System.out.println("\n--- Menu Diler Kendaraan ---"); 124 | System.out.println("1. Lihat kendaraan yang tersedia"); 125 | System.out.println("2. Pembelian kendaraan"); 126 | System.out.println("3. Keluar"); 127 | 128 | System.out.print("\nPilih menu: "); 129 | int choice = scanner.nextInt(); 130 | 131 | switch (choice) { 132 | case 1: 133 | dealer.displayVehicles(); 134 | break; 135 | case 2: 136 | dealer.purchaseVehicle(); 137 | break; 138 | case 3: 139 | System.out.println("Terima kasih telah mengunjungi diler kami!"); 140 | return; 141 | default: 142 | System.out.println("Pilihan tidak valid."); 143 | } 144 | } 145 | } 146 | } -------------------------------------------------------------------------------- /gaji.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class GajiKaryawan { 4 | 5 | // Fungsi untuk menghitung gaji total 6 | public static double hitungGaji(double gajiPokok, double tunjangan, double potongan) { 7 | return gajiPokok + tunjangan - potongan; 8 | } 9 | 10 | public static void main(String[] args) { 11 | Scanner scanner = new Scanner(System.in); 12 | 13 | // Menampilkan judul program 14 | System.out.println("Program Perhitungan Gaji Karyawan"); 15 | 16 | // Input data 17 | System.out.print("Masukkan gaji pokok: Rp "); 18 | double gajiPokok = scanner.nextDouble(); 19 | 20 | System.out.print("Masukkan tunjangan: Rp "); 21 | double tunjangan = scanner.nextDouble(); 22 | 23 | System.out.print("Masukkan potongan: Rp "); 24 | double potongan = scanner.nextDouble(); 25 | 26 | // Menghitung gaji total 27 | double gajiTotal = hitungGaji(gajiPokok, tunjangan, potongan); 28 | 29 | // Menampilkan hasil perhitungan 30 | System.out.println("\nRingkasan Gaji:"); 31 | System.out.println("Gaji Pokok: Rp " + gajiPokok); 32 | System.out.println("Tunjangan: Rp " + tunjangan); 33 | System.out.println("Potongan: Rp " + potongan); 34 | System.out.println("Gaji Total: Rp " + gajiTotal); 35 | 36 | scanner.close(); 37 | } 38 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Raff | Java 8 | 45 | 46 | 47 | 48 |

Kumpulan Kode Java

49 | 50 |

1. Absensi

51 |

  52 | import java.util.Scanner;
  53 | 
  54 | public class Absensi {
  55 | 
  56 |     // Daftar nama siswa/pegawai
  57 |     static String[] daftarNama = {"Ali", "Budi", "Citra", "Dewi", "Eka"};
  58 |     
  59 |     // Menyimpan status absensi
  60 |     static String[] absensi = new String[daftarNama.length];
  61 |     
  62 |     // Fungsi untuk mencatat absensi
  63 |     public static void catatAbsensi() {
  64 |         Scanner scanner = new Scanner(System.in);
  65 |         
  66 |         System.out.println("Daftar Nama:");
  67 |         for (int i = 0; i < daftarNama.length; i++) {
  68 |             System.out.println((i + 1) + ". " + daftarNama[i]);
  69 |         }
  70 |         
  71 |         // Mencatat absensi untuk setiap nama
  72 |         for (int i = 0; i < daftarNama.length; i++) {
  73 |             System.out.print("Apakah " + daftarNama[i] + " hadir? (y/n): ");
  74 |             String status = scanner.nextLine().trim().toLowerCase();
  75 |             
  76 |             if (status.equals("y")) {
  77 |                 absensi[i] = "Hadir";
  78 |             } else if (status.equals("n")) {
  79 |                 absensi[i] = "Tidak Hadir";
  80 |             } else {
  81 |                 absensi[i] = "Status Tidak Valid";
  82 |             }
  83 |         }
  84 | 
  85 |         // Menampilkan hasil absensi
  86 |         System.out.println("\nAbsensi Hari Ini:");
  87 |         for (int i = 0; i < daftarNama.length; i++) {
  88 |             System.out.println(daftarNama[i] + ": " + absensi[i]);
  89 |         }
  90 |         
  91 |         scanner.close();
  92 |     }
  93 | 
  94 |     public static void main(String[] args) {
  95 |         // Menjalankan fungsi untuk mencatat absensi
  96 |         catatAbsensi();
  97 |     }
  98 | }
  99 | 
100 | 101 |

2. Barbershop

102 |

 103 | import java.util.LinkedList;
 104 | import java.util.Queue;
 105 | import java.util.Scanner;
 106 | 
 107 | public class Barbershop {
 108 |     private Queue antrian;  // Antrian pelanggan
 109 |     private boolean buka;  // Status barbershop
 110 | 
 111 |     // Konstruktor untuk menginisialisasi Barbershop
 112 |     public Barbershop() {
 113 |         antrian = new LinkedList<>();
 114 |         buka = true;
 115 |     }
 116 | 
 117 |     // Fungsi untuk membuka Barbershop
 118 |     public void bukaBarbershop() {
 119 |         System.out.println("Barbershop sedang buka, silakan masuk!");
 120 |     }
 121 | 
 122 |     // Fungsi untuk menutup Barbershop
 123 |     public void tutupBarbershop() {
 124 |         buka = false;
 125 |         System.out.println("Barbershop sudah tutup. Terima kasih sudah datang!");
 126 |     }
 127 | 
 128 |     // Fungsi untuk menambah pelanggan ke dalam antrian
 129 |     public void tambahPelanggan(String nama) {
 130 |         if (buka) {
 131 |             antrian.add(nama);
 132 |             System.out.println(nama + " telah masuk ke antrian.");
 133 |         } else {
 134 |             System.out.println("Barbershop sudah tutup. Anda tidak bisa mendaftar.");
 135 |         }
 136 |     }
 137 | 
 138 |     // Fungsi untuk memproses pelanggan
 139 |     public void prosesPelanggan() {
 140 |         if (!antrian.isEmpty()) {
 141 |             String pelanggan = antrian.poll();  // Mengambil pelanggan pertama dalam antrian
 142 |             System.out.println("Sedang melayani " + pelanggan + "...");
 143 |             try {
 144 |                 Thread.sleep(2000);  // Simulasi pemotongan rambut selama 2 detik
 145 |             } catch (InterruptedException e) {
 146 |                 e.printStackTrace();
 147 |             }
 148 |             System.out.println(pelanggan + " telah selesai dilayani.");
 149 |         } else {
 150 |             System.out.println("Tidak ada pelanggan di antrian.");
 151 |         }
 152 |     }
 153 | 
 154 |     // Fungsi untuk menampilkan antrian
 155 |     public void tampilkanAntrian() {
 156 |         if (!antrian.isEmpty()) {
 157 |             System.out.println("Antrian pelanggan:");
 158 |             int no = 1;
 159 |             for (String pelanggan : antrian) {
 160 |                 System.out.println(no++ + ". " + pelanggan);
 161 |             }
 162 |         } else {
 163 |             System.out.println("Tidak ada pelanggan di antrian.");
 164 |         }
 165 |     }
 166 | 
 167 |     public static void main(String[] args) {
 168 |         Scanner scanner = new Scanner(System.in);
 169 |         Barbershop barbershop = new Barbershop();
 170 |         barbershop.bukaBarbershop();
 171 | 
 172 |         while (true) {
 173 |             System.out.println("\n--- Menu ---");
 174 |             System.out.println("1. Tambah Pelanggan");
 175 |             System.out.println("2. Proses Pelanggan");
 176 |             System.out.println("3. Lihat Antrian");
 177 |             System.out.println("4. Tutup Barbershop");
 178 |             System.out.println("5. Keluar");
 179 | 
 180 |             System.out.print("Pilih menu (1-5): ");
 181 |             int pilihan = scanner.nextInt();
 182 |             scanner.nextLine();  // Membersihkan newline setelah nextInt()
 183 | 
 184 |             switch (pilihan) {
 185 |                 case 1:
 186 |                     System.out.print("Masukkan nama pelanggan: ");
 187 |                     String nama = scanner.nextLine();
 188 |                     barbershop.tambahPelanggan(nama);
 189 |                     break;
 190 |                 case 2:
 191 |                     barbershop.prosesPelanggan();
 192 |                     break;
 193 |                 case 3:
 194 |                     barbershop.tampilkanAntrian();
 195 |                     break;
 196 |                 case 4:
 197 |                     barbershop.tutupBarbershop();
 198 |                     return;
 199 |                 case 5:
 200 |                     System.out.println("Terima kasih telah menggunakan program ini!");
 201 |                     return;
 202 |                 default:
 203 |                     System.out.println("Pilihan tidak valid, coba lagi.");
 204 |             }
 205 |         }
 206 |     }
 207 | }
 208 | 
209 | 210 |

3. Bioskop

211 |

 212 | import java.util.Scanner;
 213 | 
 214 | public class Bioskop {
 215 | 
 216 |     // Menampilkan daftar film yang tersedia
 217 |     public static void showFilms() {
 218 |         System.out.println("Daftar Film yang Tersedia:");
 219 |         System.out.println("1. Film A - Harga: Rp 50000");
 220 |         System.out.println("2. Film B - Harga: Rp 60000");
 221 |         System.out.println("3. Film C - Harga: Rp 70000");
 222 |         System.out.println("4. Film D - Harga: Rp 55000");
 223 |     }
 224 | 
 225 |     // Memilih film yang diinginkan oleh pengguna
 226 |     public static int pilihFilm(Scanner scanner) {
 227 |         int pilihan;
 228 |         while (true) {
 229 |             System.out.print("\nPilih film (1-4): ");
 230 |             if (scanner.hasNextInt()) {
 231 |                 pilihan = scanner.nextInt();
 232 |                 if (pilihan >= 1 && pilihan <= 4) {
 233 |                     return pilihan;
 234 |                 } else {
 235 |                     System.out.println("Pilihan tidak valid, coba lagi.");
 236 |                 }
 237 |             } else {
 238 |                 System.out.println("Masukkan angka yang valid.");
 239 |                 scanner.next(); // Clear invalid input
 240 |             }
 241 |         }
 242 |     }
 243 | 
 244 |     // Mendapatkan nama film berdasarkan pilihan
 245 |     public static String getFilmName(int pilihan) {
 246 |         switch (pilihan) {
 247 |             case 1: return "Film A";
 248 |             case 2: return "Film B";
 249 |             case 3: return "Film C";
 250 |             case 4: return "Film D";
 251 |             default: return "Film Tidak Diketahui";
 252 |         }
 253 |     }
 254 | 
 255 |     // Proses membeli tiket
 256 |     public static void beliTiket(Scanner scanner) {
 257 |         int pilihan, jumlahTiket, totalHarga;
 258 | 
 259 |         while (true) {
 260 |             showFilms();
 261 |             pilihan = pilihFilm(scanner);
 262 | 
 263 |             // Menghitung harga berdasarkan film yang dipilih
 264 |             switch (pilihan) {
 265 |                 case 1: totalHarga = 50000; break;
 266 |                 case 2: totalHarga = 60000; break;
 267 |                 case 3: totalHarga = 70000; break;
 268 |                 case 4: totalHarga = 55000; break;
 269 |                 default: totalHarga = 0; break;
 270 |             }
 271 | 
 272 |             // Input jumlah tiket
 273 |             System.out.print("Masukkan jumlah tiket yang ingin dibeli: ");
 274 |             while (!scanner.hasNextInt()) {
 275 |                 System.out.print("Jumlah tiket tidak valid, coba lagi: ");
 276 |                 scanner.next(); // Clear invalid input
 277 |             }
 278 |             jumlahTiket = scanner.nextInt();
 279 | 
 280 |             totalHarga *= jumlahTiket; // Menghitung total harga
 281 | 
 282 |             // Menampilkan hasil pembelian
 283 |             System.out.printf("\nTiket untuk film %s (%d tiket) berhasil dipesan.\n", getFilmName(pilihan), jumlahTiket);
 284 |             System.out.printf("Total harga: Rp %d\n", totalHarga);
 285 | 
 286 |             // Tanya apakah ingin membeli tiket lagi
 287 |             System.out.print("\nApakah Anda ingin membeli tiket lagi? (y/t): ");
 288 |             char lagi = scanner.next().charAt(0);
 289 | 
 290 |             if (Character.toLowerCase(lagi) == 't') {
 291 |                 System.out.println("Terima kasih telah membeli tiket di bioskop kami!");
 292 |                 break;
 293 |             }
 294 |         }
 295 |     }
 296 | 
 297 |     // Program utama
 298 |     public static void main(String[] args) {
 299 |         Scanner scanner = new Scanner(System.in);
 300 |         beliTiket(scanner);
 301 |         scanner.close();
 302 |     }
 303 | }
 304 | 
305 | 306 |

4. Dealer Kartu (Black Jack Simplified)

307 |

 308 | import java.util.ArrayList;
 309 | import java.util.Collections;
 310 | import java.util.Scanner;
 311 | 
 312 | public class Blackjack {
 313 | 
 314 |     // Daftar kartu dalam deck
 315 |     private static final String[] deck = {
 316 |         "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set pertama
 317 |         "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set kedua
 318 |         "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", // Set ketiga
 319 |         "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"  // Set keempat
 320 |     };
 321 | 
 322 |     // Fungsi untuk menghitung nilai kartu
 323 |     public static int cardValue(String card) {
 324 |         switch (card) {
 325 |             case "J":
 326 |             case "Q":
 327 |             case "K":
 328 |                 return 10;
 329 |             case "A":
 330 |                 return 11; // Menganggap Ace = 11 untuk kesederhanaan
 331 |             default:
 332 |                 return Integer.parseInt(card); // Kartu angka (2-10)
 333 |         }
 334 |     }
 335 | 
 336 |     // Fungsi untuk membagikan kartu secara acak
 337 |     public static String dealCard(ArrayList deck) {
 338 |         Collections.shuffle(deck);
 339 |         return deck.remove(0); // Keluarkan kartu pertama dari deck
 340 |     }
 341 | 
 342 |     // Fungsi untuk menghitung total nilai kartu dalam hand
 343 |     public static int calculateHand(ArrayList hand) {
 344 |         int total = 0;
 345 |         for (String card : hand) {
 346 |             total += cardValue(card);
 347 |         }
 348 |         return total;
 349 |     }
 350 | 
 351 |     // Fungsi utama untuk menjalankan permainan
 352 |     public static void startGame() {
 353 |         Scanner scanner = new Scanner(System.in);
 354 |         ArrayList deckCopy = new ArrayList<>();
 355 |         Collections.addAll(deckCopy, deck); // Salinan deck untuk permainan
 356 | 
 357 |         // Kartu untuk pemain dan dealer
 358 |         ArrayList playerHand = new ArrayList<>();
 359 |         ArrayList dealerHand = new ArrayList<>();
 360 | 
 361 |         // Membagikan dua kartu untuk pemain dan dealer
 362 |         playerHand.add(dealCard(deckCopy));
 363 |         playerHand.add(dealCard(deckCopy));
 364 |         dealerHand.add(dealCard(deckCopy));
 365 |         dealerHand.add(dealCard(deckCopy));
 366 | 
 367 |         // Menampilkan kartu awal pemain dan dealer (satu kartu dealer tersembunyi)
 368 |         System.out.println("Kartu Anda: " + playerHand + " dengan nilai " + calculateHand(playerHand));
 369 |         System.out.println("Kartu Dealer: " + dealerHand.get(0) + " dan kartu tersembunyi");
 370 | 
 371 |         // Giliran pemain
 372 |         while (calculateHand(playerHand) < 21) {
 373 |             System.out.print("Apakah Anda ingin 'Hit' atau 'Stand'? ");
 374 |             String action = scanner.nextLine().toLowerCase();
 375 | 
 376 |             if (action.equals("hit")) {
 377 |                 playerHand.add(dealCard(deckCopy));
 378 |                 System.out.println("Kartu Anda sekarang: " + playerHand + " dengan nilai " + calculateHand(playerHand));
 379 |             } else if (action.equals("stand")) {
 380 |                 break;
 381 |             } else {
 382 |                 System.out.println("Pilihan tidak valid. Pilih 'Hit' atau 'Stand'.");
 383 |             }
 384 |         }
 385 | 
 386 |         // Jika pemain melebihi 21
 387 |         if (calculateHand(playerHand) > 21) {
 388 |             System.out.println("Nilai kartu Anda melebihi 21! Anda kalah!");
 389 |             return;
 390 |         }
 391 | 
 392 |         // Giliran dealer (dealer akan 'hit' sampai total kartu >= 17)
 393 |         System.out.println("Kartu Dealer sekarang: " + dealerHand + " dengan nilai " + calculateHand(dealerHand));
 394 |         while (calculateHand(dealerHand) < 17) {
 395 |             System.out.println("Dealer memukul kartu...");
 396 |             dealerHand.add(dealCard(deckCopy));
 397 |             System.out.println("Kartu Dealer sekarang: " + dealerHand + " dengan nilai " + calculateHand(dealerHand));
 398 |         }
 399 | 
 400 |         // Menentukan pemenang
 401 |         int playerTotal = calculateHand(playerHand);
 402 |         int dealerTotal = calculateHand(dealerHand);
 403 | 
 404 |         if (dealerTotal > 21) {
 405 |             System.out.println("Dealer melebihi 21! Anda menang!");
 406 |         } else if (playerTotal > dealerTotal) {
 407 |             System.out.println("Anda menang!");
 408 |         } else if (playerTotal < dealerTotal) {
 409 |             System.out.println("Dealer menang!");
 410 |         } else {
 411 |             System.out.println("Hasil seri!");
 412 |         }
 413 | 
 414 |         scanner.close();
 415 |     }
 416 | 
 417 |     // Fungsi utama untuk menjalankan permainan
 418 |     public static void main(String[] args) {
 419 |         System.out.println("Selamat datang di permainan Dealer Kartu!");
 420 |         startGame();
 421 |     }
 422 | }
 423 | 
424 | 425 |

5. Diler Kendaraan

426 |

 427 | import java.util.Scanner;
 428 | 
 429 | class Vehicle {
 430 |     private String model;
 431 |     private int price;
 432 |     private int stock;
 433 | 
 434 |     public Vehicle(String model, int price, int stock) {
 435 |         this.model = model;
 436 |         this.price = price;
 437 |         this.stock = stock;
 438 |     }
 439 | 
 440 |     // Menampilkan informasi kendaraan
 441 |     public void displayInfo() {
 442 |         System.out.println("Model: " + model + ", Harga: Rp" + price + ", Stok: " + stock);
 443 |     }
 444 | 
 445 |     // Mengupdate stok setelah pembelian
 446 |     public void updateStock(int quantity) {
 447 |         stock -= quantity;
 448 |         if (stock < 0) {
 449 |             stock = 0;
 450 |         }
 451 |     }
 452 | 
 453 |     // Memeriksa ketersediaan stok
 454 |     public boolean isAvailable(int quantity) {
 455 |         return stock >= quantity;
 456 |     }
 457 | 
 458 |     public int getPrice() {
 459 |         return price;
 460 |     }
 461 | 
 462 |     public String getModel() {
 463 |         return model;
 464 |     }
 465 | 
 466 |     public int getStock() {
 467 |         return stock;
 468 |     }
 469 | }
 470 | 
 471 | class VehicleDealer {
 472 |     private Vehicle[] vehicles;
 473 |     private int vehicleCount;
 474 | 
 475 |     public VehicleDealer(int maxVehicles) {
 476 |         vehicles = new Vehicle[maxVehicles];
 477 |         vehicleCount = 0;
 478 |     }
 479 | 
 480 |     // Menambahkan kendaraan ke diler
 481 |     public void addVehicle(String model, int price, int stock) {
 482 |         if (vehicleCount < vehicles.length) {
 483 |             vehicles[vehicleCount] = new Vehicle(model, price, stock);
 484 |             vehicleCount++;
 485 |         } else {
 486 |             System.out.println("Diler sudah penuh, tidak bisa menambah kendaraan.");
 487 |         }
 488 |     }
 489 | 
 490 |     // Menampilkan semua kendaraan yang tersedia
 491 |     public void displayVehicles() {
 492 |         if (vehicleCount == 0) {
 493 |             System.out.println("Tidak ada kendaraan di diler.");
 494 |             return;
 495 |         }
 496 | 
 497 |         System.out.println("\nKendaraan yang Tersedia di Diler:");
 498 |         for (int i = 0; i < vehicleCount; i++) {
 499 |             System.out.print((i + 1) + ". ");
 500 |             vehicles[i].displayInfo();
 501 |         }
 502 |     }
 503 | 
 504 |     // Pembelian kendaraan
 505 |     public void purchaseVehicle() {
 506 |         displayVehicles();
 507 | 
 508 |         if (vehicleCount == 0) {
 509 |             return;
 510 |         }
 511 | 
 512 |         Scanner scanner = new Scanner(System.in);
 513 |         try {
 514 |             System.out.print("\nPilih kendaraan (masukkan nomor): ");
 515 |             int choice = scanner.nextInt();
 516 |             System.out.print("Berapa banyak yang ingin dibeli? ");
 517 |             int quantity = scanner.nextInt();
 518 | 
 519 |             if (choice < 1 || choice > vehicleCount) {
 520 |                 System.out.println("Pilihan tidak valid.");
 521 |                 return;
 522 |             }
 523 | 
 524 |             Vehicle selectedVehicle = vehicles[choice - 1];
 525 |             if (selectedVehicle.isAvailable(quantity)) {
 526 |                 int totalPrice = selectedVehicle.getPrice() * quantity;
 527 |                 System.out.println("\nPembelian Sukses! Total Harga: Rp" + totalPrice);
 528 |                 selectedVehicle.updateStock(quantity);
 529 |             } else {
 530 |                 System.out.println("\nStok tidak cukup.");
 531 |             }
 532 |         } catch (Exception e) {
 533 |             System.out.println("Input tidak valid.");
 534 |         }
 535 |     }
 536 | }
 537 | 
 538 | public class VehicleDealerApp {
 539 |     public static void main(String[] args) {
 540 |         Scanner scanner = new Scanner(System.in);
 541 |         VehicleDealer dealer = new VehicleDealer(10); // Maksimal 10 kendaraan
 542 | 
 543 |         // Menambahkan beberapa kendaraan ke diler
 544 |         dealer.addVehicle("Mobil Sedan", 300000000, 10);
 545 |         dealer.addVehicle("Motor Sport", 100000000, 5);
 546 |         dealer.addVehicle("Mobil SUV", 500000000, 3);
 547 | 
 548 |         while (true) {
 549 |             System.out.println("\n--- Menu Diler Kendaraan ---");
 550 |             System.out.println("1. Lihat kendaraan yang tersedia");
 551 |             System.out.println("2. Pembelian kendaraan");
 552 |             System.out.println("3. Keluar");
 553 | 
 554 |             System.out.print("\nPilih menu: ");
 555 |             int choice = scanner.nextInt();
 556 | 
 557 |             switch (choice) {
 558 |                 case 1:
 559 |                     dealer.displayVehicles();
 560 |                     break;
 561 |                 case 2:
 562 |                     dealer.purchaseVehicle();
 563 |                     break;
 564 |                 case 3:
 565 |                     System.out.println("Terima kasih telah mengunjungi diler kami!");
 566 |                     return;
 567 |                 default:
 568 |                     System.out.println("Pilihan tidak valid.");
 569 |             }
 570 |         }
 571 |     }
 572 | }
 573 | 
574 | 575 |

6. Gaji

576 |

 577 | import java.util.Scanner;
 578 | 
 579 | public class GajiKaryawan {
 580 | 
 581 |     // Fungsi untuk menghitung gaji total
 582 |     public static double hitungGaji(double gajiPokok, double tunjangan, double potongan) {
 583 |         return gajiPokok + tunjangan - potongan;
 584 |     }
 585 | 
 586 |     public static void main(String[] args) {
 587 |         Scanner scanner = new Scanner(System.in);
 588 |         
 589 |         // Menampilkan judul program
 590 |         System.out.println("Program Perhitungan Gaji Karyawan");
 591 |         
 592 |         // Input data
 593 |         System.out.print("Masukkan gaji pokok: Rp ");
 594 |         double gajiPokok = scanner.nextDouble();
 595 |         
 596 |         System.out.print("Masukkan tunjangan: Rp ");
 597 |         double tunjangan = scanner.nextDouble();
 598 |         
 599 |         System.out.print("Masukkan potongan: Rp ");
 600 |         double potongan = scanner.nextDouble();
 601 |         
 602 |         // Menghitung gaji total
 603 |         double gajiTotal = hitungGaji(gajiPokok, tunjangan, potongan);
 604 |         
 605 |         // Menampilkan hasil perhitungan
 606 |         System.out.println("\nRingkasan Gaji:");
 607 |         System.out.println("Gaji Pokok: Rp " + gajiPokok);
 608 |         System.out.println("Tunjangan: Rp " + tunjangan);
 609 |         System.out.println("Potongan: Rp " + potongan);
 610 |         System.out.println("Gaji Total: Rp " + gajiTotal);
 611 |         
 612 |         scanner.close();
 613 |     }
 614 | }
 615 | 
616 | 617 |

7. Kafe

618 |

 619 | import java.util.Scanner;
 620 | 
 621 | class Cafe {
 622 | 
 623 |     // Daftar menu dan harga
 624 |     private String[] menu = {"Kopi", "Teh", "Espresso", "Cappuccino", "Kue"};
 625 |     private int[] harga = {15000, 10000, 20000, 25000, 12000};
 626 |     private String[] pesanan = new String[10];
 627 |     private int[] jumlahPesanan = new int[10];
 628 |     private int pesananCount = 0;
 629 | 
 630 |     // Menampilkan menu
 631 |     public void tampilkanMenu() {
 632 |         System.out.println("\n--- Menu Kafe ---");
 633 |         for (int i = 0; i < menu.length; i++) {
 634 |             System.out.println((i + 1) + ". " + menu[i] + ": Rp " + harga[i]);
 635 |         }
 636 |     }
 637 | 
 638 |     // Menambahkan pesanan
 639 |     public void tambahPesanan() {
 640 |         Scanner scanner = new Scanner(System.in);
 641 | 
 642 |         while (true) {
 643 |             tampilkanMenu();
 644 |             System.out.print("\nMasukkan nomor item yang ingin dipesan (ketik 0 untuk selesai): ");
 645 |             int pilihan = scanner.nextInt();
 646 | 
 647 |             if (pilihan == 0) {
 648 |                 break;
 649 |             }
 650 | 
 651 |             if (pilihan >= 1 && pilihan <= menu.length) {
 652 |                 System.out.print("Berapa banyak " + menu[pilihan - 1] + " yang ingin dipesan? ");
 653 |                 int jumlah = scanner.nextInt();
 654 | 
 655 |                 // Tambahkan pesanan ke dalam daftar pesanan
 656 |                 if (pesananCount < pesanan.length) {
 657 |                     boolean ditemukan = false;
 658 |                     for (int i = 0; i < pesananCount; i++) {
 659 |                         if (pesanan[i].equals(menu[pilihan - 1])) {
 660 |                             jumlahPesanan[i] += jumlah;
 661 |                             ditemukan = true;
 662 |                             break;
 663 |                         }
 664 |                     }
 665 | 
 666 |                     if (!ditemukan) {
 667 |                         pesanan[pesananCount] = menu[pilihan - 1];
 668 |                         jumlahPesanan[pesananCount] = jumlah;
 669 |                         pesananCount++;
 670 |                     }
 671 | 
 672 |                     System.out.println(jumlah + " " + menu[pilihan - 1] + " telah ditambahkan ke pesanan.");
 673 |                 } else {
 674 |                     System.out.println("Tidak dapat menambahkan pesanan. Maksimal pesanan tercapai.");
 675 |                 }
 676 |             } else {
 677 |                 System.out.println("Pilihan tidak valid. Silakan coba lagi.");
 678 |             }
 679 |         }
 680 |     }
 681 | 
 682 |     // Menghitung total harga pesanan
 683 |     public int hitungTotal() {
 684 |         int total = 0;
 685 |         for (int i = 0; i < pesananCount; i++) {
 686 |             for (int j = 0; j < menu.length; j++) {
 687 |                 if (pesanan[i].equals(menu[j])) {
 688 |                     total += harga[j] * jumlahPesanan[i];
 689 |                 }
 690 |             }
 691 |         }
 692 |         return total;
 693 |     }
 694 | 
 695 |     // Menampilkan pesanan dan total harga
 696 |     public void tampilkanPesanan() {
 697 |         if (pesananCount == 0) {
 698 |             System.out.println("\nTidak ada pesanan.");
 699 |         } else {
 700 |             System.out.println("\n--- Pesanan Anda ---");
 701 |             for (int i = 0; i < pesananCount; i++) {
 702 |                 for (int j = 0; j < menu.length; j++) {
 703 |                     if (pesanan[i].equals(menu[j])) {
 704 |                         System.out.println(pesanan[i] + " x " + jumlahPesanan[i] + " = Rp " + harga[j] * jumlahPesanan[i]);
 705 |                     }
 706 |                 }
 707 |             }
 708 |             System.out.println("\nTotal yang harus dibayar: Rp " + hitungTotal());
 709 |         }
 710 |     }
 711 | }
 712 | 
 713 | public class Main {
 714 |     public static void main(String[] args) {
 715 |         Scanner scanner = new Scanner(System.in);
 716 |         Cafe cafe = new Cafe();
 717 |         int pilihan;
 718 | 
 719 |         while (true) {
 720 |             System.out.println("\n--- Selamat Datang di Kafe! ---");
 721 |             System.out.println("1. Lihat Menu");
 722 |             System.out.println("2. Tambah Pesanan");
 723 |             System.out.println("3. Lihat Pesanan dan Total");
 724 |             System.out.println("4. Keluar");
 725 | 
 726 |             System.out.print("Pilih menu (1-4): ");
 727 |             pilihan = scanner.nextInt();
 728 | 
 729 |             switch (pilihan) {
 730 |                 case 1:
 731 |                     cafe.tampilkanMenu();
 732 |                     break;
 733 |                 case 2:
 734 |                     cafe.tambahPesanan();
 735 |                     break;
 736 |                 case 3:
 737 |                     cafe.tampilkanPesanan();
 738 |                     break;
 739 |                 case 4:
 740 |                     System.out.println("Terima kasih telah mengunjungi kafe kami. Sampai jumpa!");
 741 |                     return;
 742 |                 default:
 743 |                     System.out.println("Pilihan tidak valid. Silakan coba lagi.");
 744 |                     break;
 745 |             }
 746 |         }
 747 |     }
 748 | }
 749 | 
750 | 751 |

8. Kalkulator

752 |

 753 | import java.util.Scanner;
 754 | 
 755 | public class Kalkulator {
 756 | 
 757 |     // Fungsi untuk penjumlahan
 758 |     public static double tambah(double x, double y) {
 759 |         return x + y;
 760 |     }
 761 | 
 762 |     // Fungsi untuk pengurangan
 763 |     public static double kurang(double x, double y) {
 764 |         return x - y;
 765 |     }
 766 | 
 767 |     // Fungsi untuk perkalian
 768 |     public static double kali(double x, double y) {
 769 |         return x * y;
 770 |     }
 771 | 
 772 |     // Fungsi untuk pembagian
 773 |     public static double bagi(double x, double y) {
 774 |         if (y != 0) {
 775 |             return x / y;
 776 |         } else {
 777 |             System.out.println("Tidak bisa membagi dengan nol");
 778 |             return Double.NaN; // Mengembalikan nilai NaN (Not a Number) jika pembagian dengan nol
 779 |         }
 780 |     }
 781 | 
 782 |     public static void main(String[] args) {
 783 |         Scanner scanner = new Scanner(System.in);
 784 |         
 785 |         // Menampilkan menu operasi
 786 |         System.out.println("Pilih operasi:");
 787 |         System.out.println("1. Tambah");
 788 |         System.out.println("2. Kurang");
 789 |         System.out.println("3. Kali");
 790 |         System.out.println("4. Bagi");
 791 | 
 792 |         // Meminta input pilihan operasi
 793 |         System.out.print("Masukkan pilihan (1/2/3/4): ");
 794 |         int pilihan = scanner.nextInt();
 795 |         
 796 |         // Meminta input angka
 797 |         System.out.print("Masukkan angka pertama: ");
 798 |         double num1 = scanner.nextDouble();
 799 |         
 800 |         System.out.print("Masukkan angka kedua: ");
 801 |         double num2 = scanner.nextDouble();
 802 | 
 803 |         // Melakukan operasi sesuai dengan pilihan pengguna
 804 |         switch (pilihan) {
 805 |             case 1:
 806 |                 System.out.println(num1 + " + " + num2 + " = " + tambah(num1, num2));
 807 |                 break;
 808 |             case 2:
 809 |                 System.out.println(num1 + " - " + num2 + " = " + kurang(num1, num2));
 810 |                 break;
 811 |             case 3:
 812 |                 System.out.println(num1 + " * " + num2 + " = " + kali(num1, num2));
 813 |                 break;
 814 |             case 4:
 815 |                 double hasilBagi = bagi(num1, num2);
 816 |                 if (!Double.isNaN(hasilBagi)) {
 817 |                     System.out.println(num1 + " / " + num2 + " = " + hasilBagi);
 818 |                 }
 819 |                 break;
 820 |             default:
 821 |                 System.out.println("Pilihan tidak valid!");
 822 |                 break;
 823 |         }
 824 |         
 825 |         scanner.close();
 826 |     }
 827 | }
 828 | 
829 | 830 |

9. Kasir

831 |

 832 | import java.util.ArrayList;
 833 | import java.util.Scanner;
 834 | 
 835 | class Barang {
 836 |     String nama;
 837 |     double harga;
 838 |     int jumlah;
 839 |     double total;
 840 | 
 841 |     // Constructor untuk membuat objek Barang
 842 |     public Barang(String nama, double harga, int jumlah) {
 843 |         this.nama = nama;
 844 |         this.harga = harga;
 845 |         this.jumlah = jumlah;
 846 |         this.total = harga * jumlah;
 847 |     }
 848 | 
 849 |     // Menampilkan rincian barang
 850 |     public void tampilkanRincian() {
 851 |         System.out.println(nama + " - Harga: " + harga + " - Jumlah: " + jumlah + " - Total: " + total);
 852 |     }
 853 | }
 854 | 
 855 | class Kasir {
 856 |     ArrayList daftarBarang;
 857 |     double totalHarga;
 858 | 
 859 |     // Constructor untuk inisialisasi
 860 |     public Kasir() {
 861 |         daftarBarang = new ArrayList<>();
 862 |         totalHarga = 0;
 863 |     }
 864 | 
 865 |     // Menambah barang ke daftar belanja
 866 |     public void tambahBarang(String nama, double harga, int jumlah) {
 867 |         Barang barang = new Barang(nama, harga, jumlah);
 868 |         daftarBarang.add(barang);
 869 |         totalHarga += barang.total;
 870 |         System.out.println(nama + " x" + jumlah + " ditambahkan ke daftar belanja.");
 871 |     }
 872 | 
 873 |     // Menampilkan rincian belanja
 874 |     public void tampilkanRincian() {
 875 |         System.out.println("\n--- Rincian Belanja ---");
 876 |         for (Barang barang : daftarBarang) {
 877 |             barang.tampilkanRincian();
 878 |         }
 879 |         System.out.println("\nTotal Belanja: " + totalHarga);
 880 |     }
 881 | 
 882 |     // Proses pembayaran dan menghitung kembalian
 883 |     public void bayar(double uangDibayar) {
 884 |         if (uangDibayar >= totalHarga) {
 885 |             double kembalian = uangDibayar - totalHarga;
 886 |             System.out.println("\nTotal yang harus dibayar: " + totalHarga);
 887 |             System.out.println("Uang yang dibayar: " + uangDibayar);
 888 |             System.out.println("Kembalian: " + kembalian);
 889 |         } else {
 890 |             System.out.println("\nUang yang dibayar kurang dari total belanja. Transaksi dibatalkan.");
 891 |         }
 892 |     }
 893 | }
 894 | 
 895 | public class ProgramKasir {
 896 |     public static void main(String[] args) {
 897 |         Scanner scanner = new Scanner(System.in);
 898 |         Kasir kasir = new Kasir();
 899 | 
 900 |         while (true) {
 901 |             System.out.println("\nMenu Kasir");
 902 |             System.out.println("1. Tambah barang");
 903 |             System.out.println("2. Tampilkan rincian belanja");
 904 |             System.out.println("3. Bayar");
 905 |             System.out.println("4. Keluar");
 906 |             System.out.print("Pilih menu (1/2/3/4): ");
 907 |             int pilihan = scanner.nextInt();
 908 |             scanner.nextLine(); // Clear buffer
 909 | 
 910 |             if (pilihan == 1) {
 911 |                 System.out.print("Masukkan nama barang: ");
 912 |                 String namaBarang = scanner.nextLine();
 913 |                 System.out.print("Masukkan harga barang: ");
 914 |                 double harga = scanner.nextDouble();
 915 |                 System.out.print("Masukkan jumlah barang: ");
 916 |                 int jumlah = scanner.nextInt();
 917 |                 kasir.tambahBarang(namaBarang, harga, jumlah);
 918 |             } else if (pilihan == 2) {
 919 |                 kasir.tampilkanRincian();
 920 |             } else if (pilihan == 3) {
 921 |                 kasir.tampilkanRincian();
 922 |                 System.out.print("Masukkan uang yang dibayar: ");
 923 |                 double uangDibayar = scanner.nextDouble();
 924 |                 kasir.bayar(uangDibayar);
 925 |             } else if (pilihan == 4) {
 926 |                 System.out.println("Terima kasih, sampai jumpa!");
 927 |                 break;
 928 |             } else {
 929 |                 System.out.println("Pilihan tidak valid, coba lagi.");
 930 |             }
 931 |         }
 932 |         scanner.close();
 933 |     }
 934 | }
 935 | 
936 | 937 |

10. Kereta

938 |

 939 | import java.util.ArrayList;
 940 | import java.util.Scanner;
 941 | 
 942 | class Kereta {
 943 |     private String namaKereta;
 944 |     private String tujuan;
 945 |     private String waktuBerangkat;
 946 |     private int kapasitas;
 947 |     private int terisi;
 948 | 
 949 |     public Kereta(String namaKereta, String tujuan, String waktuBerangkat, int kapasitas) {
 950 |         this.namaKereta = namaKereta;
 951 |         this.tujuan = tujuan;
 952 |         this.waktuBerangkat = waktuBerangkat;
 953 |         this.kapasitas = kapasitas;
 954 |         this.terisi = 0;
 955 |     }
 956 | 
 957 |     public void tampilkanInfo() {
 958 |         System.out.println("Nama Kereta: " + namaKereta);
 959 |         System.out.println("Tujuan: " + tujuan);
 960 |         System.out.println("Waktu Berangkat: " + waktuBerangkat);
 961 |         System.out.println("Kapasitas: " + kapasitas);
 962 |         System.out.println("Terisi: " + terisi + "/" + kapasitas);
 963 |         System.out.println();
 964 |     }
 965 | 
 966 |     public void pesanTiket(int jumlahTiket) {
 967 |         if (terisi + jumlahTiket <= kapasitas) {
 968 |             terisi += jumlahTiket;
 969 |             System.out.println("Berhasil memesan " + jumlahTiket + " tiket untuk " + namaKereta + ".");
 970 |         } else {
 971 |             System.out.println("Maaf, hanya tersisa " + (kapasitas - terisi) + " tiket untuk " + namaKereta + ".");
 972 |         }
 973 |     }
 974 | 
 975 |     public String getNamaKereta() {
 976 |         return namaKereta;
 977 |     }
 978 | }
 979 | 
 980 | class SistemKereta {
 981 |     private ArrayList keretaList;
 982 | 
 983 |     public SistemKereta() {
 984 |         keretaList = new ArrayList<>();
 985 |     }
 986 | 
 987 |     public void tambahKereta(Kereta kereta) {
 988 |         keretaList.add(kereta);
 989 |     }
 990 | 
 991 |     public void tampilkanJadwal() {
 992 |         System.out.println("Jadwal Kereta:");
 993 |         for (Kereta kereta : keretaList) {
 994 |             kereta.tampilkanInfo();
 995 |         }
 996 |     }
 997 | 
 998 |     public void pesanTiketKereta(String namaKereta, int jumlahTiket) {
 999 |         boolean ditemukan = false;
1000 |         for (Kereta kereta : keretaList) {
1001 |             if (kereta.getNamaKereta().equalsIgnoreCase(namaKereta)) {
1002 |                 kereta.pesanTiket(jumlahTiket);
1003 |                 ditemukan = true;
1004 |                 break;
1005 |             }
1006 |         }
1007 |         if (!ditemukan) {
1008 |             System.out.println("Kereta dengan nama " + namaKereta + " tidak ditemukan.");
1009 |         }
1010 |     }
1011 | }
1012 | 
1013 | public class Main {
1014 |     public static void main(String[] args) {
1015 |         Scanner scanner = new Scanner(System.in);
1016 |         SistemKereta sistemKereta = new SistemKereta();
1017 | 
1018 |         // Menambahkan beberapa kereta ke sistem
1019 |         Kereta kereta1 = new Kereta("Ekspres Jakarta", "Bandung", "10:00", 100);
1020 |         Kereta kereta2 = new Kereta("Argo Bromo", "Surabaya", "15:00", 150);
1021 |         Kereta kereta3 = new Kereta("Kelas Ekonomi", "Yogyakarta", "12:00", 200);
1022 | 
1023 |         sistemKereta.tambahKereta(kereta1);
1024 |         sistemKereta.tambahKereta(kereta2);
1025 |         sistemKereta.tambahKereta(kereta3);
1026 | 
1027 |         int pilihan;
1028 |         String namaKereta;
1029 |         int jumlahTiket;
1030 | 
1031 |         while (true) {
1032 |             System.out.println("\nMenu:");
1033 |             System.out.println("1. Tampilkan Jadwal Kereta");
1034 |             System.out.println("2. Pesan Tiket Kereta");
1035 |             System.out.println("3. Keluar");
1036 | 
1037 |             System.out.print("Pilih menu (1/2/3): ");
1038 |             pilihan = scanner.nextInt();
1039 | 
1040 |             if (pilihan == 1) {
1041 |                 sistemKereta.tampilkanJadwal();
1042 |             } else if (pilihan == 2) {
1043 |                 System.out.print("Masukkan nama kereta yang ingin dipesan: ");
1044 |                 scanner.nextLine(); // Membersihkan newline
1045 |                 namaKereta = scanner.nextLine();
1046 |                 System.out.print("Masukkan jumlah tiket yang ingin dipesan: ");
1047 |                 jumlahTiket = scanner.nextInt();
1048 |                 sistemKereta.pesanTiketKereta(namaKereta, jumlahTiket);
1049 |             } else if (pilihan == 3) {
1050 |                 System.out.println("Terima kasih telah menggunakan sistem kereta.");
1051 |                 break;
1052 |             } else {
1053 |                 System.out.println("Pilihan tidak valid. Silakan coba lagi.");
1054 |             }
1055 |         }
1056 | 
1057 |         scanner.close();
1058 |     }
1059 | }
1060 | 
1061 | 1062 |

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

1063 |

Klik Disini 1064 | 1065 | 1086 | 1087 | 1088 | 1089 | -------------------------------------------------------------------------------- /kafe.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | class Cafe { 4 | 5 | // Daftar menu dan harga 6 | private String[] menu = {"Kopi", "Teh", "Espresso", "Cappuccino", "Kue"}; 7 | private int[] harga = {15000, 10000, 20000, 25000, 12000}; 8 | private String[] pesanan = new String[10]; 9 | private int[] jumlahPesanan = new int[10]; 10 | private int pesananCount = 0; 11 | 12 | // Menampilkan menu 13 | public void tampilkanMenu() { 14 | System.out.println("\n--- Menu Kafe ---"); 15 | for (int i = 0; i < menu.length; i++) { 16 | System.out.println((i + 1) + ". " + menu[i] + ": Rp " + harga[i]); 17 | } 18 | } 19 | 20 | // Menambahkan pesanan 21 | public void tambahPesanan() { 22 | Scanner scanner = new Scanner(System.in); 23 | 24 | while (true) { 25 | tampilkanMenu(); 26 | System.out.print("\nMasukkan nomor item yang ingin dipesan (ketik 0 untuk selesai): "); 27 | int pilihan = scanner.nextInt(); 28 | 29 | if (pilihan == 0) { 30 | break; 31 | } 32 | 33 | if (pilihan >= 1 && pilihan <= menu.length) { 34 | System.out.print("Berapa banyak " + menu[pilihan - 1] + " yang ingin dipesan? "); 35 | int jumlah = scanner.nextInt(); 36 | 37 | // Tambahkan pesanan ke dalam daftar pesanan 38 | if (pesananCount < pesanan.length) { 39 | boolean ditemukan = false; 40 | for (int i = 0; i < pesananCount; i++) { 41 | if (pesanan[i].equals(menu[pilihan - 1])) { 42 | jumlahPesanan[i] += jumlah; 43 | ditemukan = true; 44 | break; 45 | } 46 | } 47 | 48 | if (!ditemukan) { 49 | pesanan[pesananCount] = menu[pilihan - 1]; 50 | jumlahPesanan[pesananCount] = jumlah; 51 | pesananCount++; 52 | } 53 | 54 | System.out.println(jumlah + " " + menu[pilihan - 1] + " telah ditambahkan ke pesanan."); 55 | } else { 56 | System.out.println("Tidak dapat menambahkan pesanan. Maksimal pesanan tercapai."); 57 | } 58 | } else { 59 | System.out.println("Pilihan tidak valid. Silakan coba lagi."); 60 | } 61 | } 62 | } 63 | 64 | // Menghitung total harga pesanan 65 | public int hitungTotal() { 66 | int total = 0; 67 | for (int i = 0; i < pesananCount; i++) { 68 | for (int j = 0; j < menu.length; j++) { 69 | if (pesanan[i].equals(menu[j])) { 70 | total += harga[j] * jumlahPesanan[i]; 71 | } 72 | } 73 | } 74 | return total; 75 | } 76 | 77 | // Menampilkan pesanan dan total harga 78 | public void tampilkanPesanan() { 79 | if (pesananCount == 0) { 80 | System.out.println("\nTidak ada pesanan."); 81 | } else { 82 | System.out.println("\n--- Pesanan Anda ---"); 83 | for (int i = 0; i < pesananCount; i++) { 84 | for (int j = 0; j < menu.length; j++) { 85 | if (pesanan[i].equals(menu[j])) { 86 | System.out.println(pesanan[i] + " x " + jumlahPesanan[i] + " = Rp " + harga[j] * jumlahPesanan[i]); 87 | } 88 | } 89 | } 90 | System.out.println("\nTotal yang harus dibayar: Rp " + hitungTotal()); 91 | } 92 | } 93 | } 94 | 95 | public class Main { 96 | public static void main(String[] args) { 97 | Scanner scanner = new Scanner(System.in); 98 | Cafe cafe = new Cafe(); 99 | int pilihan; 100 | 101 | while (true) { 102 | System.out.println("\n--- Selamat Datang di Kafe! ---"); 103 | System.out.println("1. Lihat Menu"); 104 | System.out.println("2. Tambah Pesanan"); 105 | System.out.println("3. Lihat Pesanan dan Total"); 106 | System.out.println("4. Keluar"); 107 | 108 | System.out.print("Pilih menu (1-4): "); 109 | pilihan = scanner.nextInt(); 110 | 111 | switch (pilihan) { 112 | case 1: 113 | cafe.tampilkanMenu(); 114 | break; 115 | case 2: 116 | cafe.tambahPesanan(); 117 | break; 118 | case 3: 119 | cafe.tampilkanPesanan(); 120 | break; 121 | case 4: 122 | System.out.println("Terima kasih telah mengunjungi kafe kami. Sampai jumpa!"); 123 | return; 124 | default: 125 | System.out.println("Pilihan tidak valid. Silakan coba lagi."); 126 | break; 127 | } 128 | } 129 | } 130 | } -------------------------------------------------------------------------------- /kalkulator.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class Kalkulator { 4 | 5 | // Fungsi untuk penjumlahan 6 | public static double tambah(double x, double y) { 7 | return x + y; 8 | } 9 | 10 | // Fungsi untuk pengurangan 11 | public static double kurang(double x, double y) { 12 | return x - y; 13 | } 14 | 15 | // Fungsi untuk perkalian 16 | public static double kali(double x, double y) { 17 | return x * y; 18 | } 19 | 20 | // Fungsi untuk pembagian 21 | public static double bagi(double x, double y) { 22 | if (y != 0) { 23 | return x / y; 24 | } else { 25 | System.out.println("Tidak bisa membagi dengan nol"); 26 | return Double.NaN; // Mengembalikan nilai NaN (Not a Number) jika pembagian dengan nol 27 | } 28 | } 29 | 30 | public static void main(String[] args) { 31 | Scanner scanner = new Scanner(System.in); 32 | 33 | // Menampilkan menu operasi 34 | System.out.println("Pilih operasi:"); 35 | System.out.println("1. Tambah"); 36 | System.out.println("2. Kurang"); 37 | System.out.println("3. Kali"); 38 | System.out.println("4. Bagi"); 39 | 40 | // Meminta input pilihan operasi 41 | System.out.print("Masukkan pilihan (1/2/3/4): "); 42 | int pilihan = scanner.nextInt(); 43 | 44 | // Meminta input angka 45 | System.out.print("Masukkan angka pertama: "); 46 | double num1 = scanner.nextDouble(); 47 | 48 | System.out.print("Masukkan angka kedua: "); 49 | double num2 = scanner.nextDouble(); 50 | 51 | // Melakukan operasi sesuai dengan pilihan pengguna 52 | switch (pilihan) { 53 | case 1: 54 | System.out.println(num1 + " + " + num2 + " = " + tambah(num1, num2)); 55 | break; 56 | case 2: 57 | System.out.println(num1 + " - " + num2 + " = " + kurang(num1, num2)); 58 | break; 59 | case 3: 60 | System.out.println(num1 + " * " + num2 + " = " + kali(num1, num2)); 61 | break; 62 | case 4: 63 | double hasilBagi = bagi(num1, num2); 64 | if (!Double.isNaN(hasilBagi)) { 65 | System.out.println(num1 + " / " + num2 + " = " + hasilBagi); 66 | } 67 | break; 68 | default: 69 | System.out.println("Pilihan tidak valid!"); 70 | break; 71 | } 72 | 73 | scanner.close(); 74 | } 75 | } -------------------------------------------------------------------------------- /kasir.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.Scanner; 3 | 4 | class Barang { 5 | String nama; 6 | double harga; 7 | int jumlah; 8 | double total; 9 | 10 | // Constructor untuk membuat objek Barang 11 | public Barang(String nama, double harga, int jumlah) { 12 | this.nama = nama; 13 | this.harga = harga; 14 | this.jumlah = jumlah; 15 | this.total = harga * jumlah; 16 | } 17 | 18 | // Menampilkan rincian barang 19 | public void tampilkanRincian() { 20 | System.out.println(nama + " - Harga: " + harga + " - Jumlah: " + jumlah + " - Total: " + total); 21 | } 22 | } 23 | 24 | class Kasir { 25 | ArrayList daftarBarang; 26 | double totalHarga; 27 | 28 | // Constructor untuk inisialisasi 29 | public Kasir() { 30 | daftarBarang = new ArrayList<>(); 31 | totalHarga = 0; 32 | } 33 | 34 | // Menambah barang ke daftar belanja 35 | public void tambahBarang(String nama, double harga, int jumlah) { 36 | Barang barang = new Barang(nama, harga, jumlah); 37 | daftarBarang.add(barang); 38 | totalHarga += barang.total; 39 | System.out.println(nama + " x" + jumlah + " ditambahkan ke daftar belanja."); 40 | } 41 | 42 | // Menampilkan rincian belanja 43 | public void tampilkanRincian() { 44 | System.out.println("\n--- Rincian Belanja ---"); 45 | for (Barang barang : daftarBarang) { 46 | barang.tampilkanRincian(); 47 | } 48 | System.out.println("\nTotal Belanja: " + totalHarga); 49 | } 50 | 51 | // Proses pembayaran dan menghitung kembalian 52 | public void bayar(double uangDibayar) { 53 | if (uangDibayar >= totalHarga) { 54 | double kembalian = uangDibayar - totalHarga; 55 | System.out.println("\nTotal yang harus dibayar: " + totalHarga); 56 | System.out.println("Uang yang dibayar: " + uangDibayar); 57 | System.out.println("Kembalian: " + kembalian); 58 | } else { 59 | System.out.println("\nUang yang dibayar kurang dari total belanja. Transaksi dibatalkan."); 60 | } 61 | } 62 | } 63 | 64 | public class ProgramKasir { 65 | public static void main(String[] args) { 66 | Scanner scanner = new Scanner(System.in); 67 | Kasir kasir = new Kasir(); 68 | 69 | while (true) { 70 | System.out.println("\nMenu Kasir"); 71 | System.out.println("1. Tambah barang"); 72 | System.out.println("2. Tampilkan rincian belanja"); 73 | System.out.println("3. Bayar"); 74 | System.out.println("4. Keluar"); 75 | System.out.print("Pilih menu (1/2/3/4): "); 76 | int pilihan = scanner.nextInt(); 77 | scanner.nextLine(); // Clear buffer 78 | 79 | if (pilihan == 1) { 80 | System.out.print("Masukkan nama barang: "); 81 | String namaBarang = scanner.nextLine(); 82 | System.out.print("Masukkan harga barang: "); 83 | double harga = scanner.nextDouble(); 84 | System.out.print("Masukkan jumlah barang: "); 85 | int jumlah = scanner.nextInt(); 86 | kasir.tambahBarang(namaBarang, harga, jumlah); 87 | } else if (pilihan == 2) { 88 | kasir.tampilkanRincian(); 89 | } else if (pilihan == 3) { 90 | kasir.tampilkanRincian(); 91 | System.out.print("Masukkan uang yang dibayar: "); 92 | double uangDibayar = scanner.nextDouble(); 93 | kasir.bayar(uangDibayar); 94 | } else if (pilihan == 4) { 95 | System.out.println("Terima kasih, sampai jumpa!"); 96 | break; 97 | } else { 98 | System.out.println("Pilihan tidak valid, coba lagi."); 99 | } 100 | } 101 | scanner.close(); 102 | } 103 | } -------------------------------------------------------------------------------- /kereta.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.Scanner; 3 | 4 | class Kereta { 5 | private String namaKereta; 6 | private String tujuan; 7 | private String waktuBerangkat; 8 | private int kapasitas; 9 | private int terisi; 10 | 11 | public Kereta(String namaKereta, String tujuan, String waktuBerangkat, int kapasitas) { 12 | this.namaKereta = namaKereta; 13 | this.tujuan = tujuan; 14 | this.waktuBerangkat = waktuBerangkat; 15 | this.kapasitas = kapasitas; 16 | this.terisi = 0; 17 | } 18 | 19 | public void tampilkanInfo() { 20 | System.out.println("Nama Kereta: " + namaKereta); 21 | System.out.println("Tujuan: " + tujuan); 22 | System.out.println("Waktu Berangkat: " + waktuBerangkat); 23 | System.out.println("Kapasitas: " + kapasitas); 24 | System.out.println("Terisi: " + terisi + "/" + kapasitas); 25 | System.out.println(); 26 | } 27 | 28 | public void pesanTiket(int jumlahTiket) { 29 | if (terisi + jumlahTiket <= kapasitas) { 30 | terisi += jumlahTiket; 31 | System.out.println("Berhasil memesan " + jumlahTiket + " tiket untuk " + namaKereta + "."); 32 | } else { 33 | System.out.println("Maaf, hanya tersisa " + (kapasitas - terisi) + " tiket untuk " + namaKereta + "."); 34 | } 35 | } 36 | 37 | public String getNamaKereta() { 38 | return namaKereta; 39 | } 40 | } 41 | 42 | class SistemKereta { 43 | private ArrayList keretaList; 44 | 45 | public SistemKereta() { 46 | keretaList = new ArrayList<>(); 47 | } 48 | 49 | public void tambahKereta(Kereta kereta) { 50 | keretaList.add(kereta); 51 | } 52 | 53 | public void tampilkanJadwal() { 54 | System.out.println("Jadwal Kereta:"); 55 | for (Kereta kereta : keretaList) { 56 | kereta.tampilkanInfo(); 57 | } 58 | } 59 | 60 | public void pesanTiketKereta(String namaKereta, int jumlahTiket) { 61 | boolean ditemukan = false; 62 | for (Kereta kereta : keretaList) { 63 | if (kereta.getNamaKereta().equalsIgnoreCase(namaKereta)) { 64 | kereta.pesanTiket(jumlahTiket); 65 | ditemukan = true; 66 | break; 67 | } 68 | } 69 | if (!ditemukan) { 70 | System.out.println("Kereta dengan nama " + namaKereta + " tidak ditemukan."); 71 | } 72 | } 73 | } 74 | 75 | public class Main { 76 | public static void main(String[] args) { 77 | Scanner scanner = new Scanner(System.in); 78 | SistemKereta sistemKereta = new SistemKereta(); 79 | 80 | // Menambahkan beberapa kereta ke sistem 81 | Kereta kereta1 = new Kereta("Ekspres Jakarta", "Bandung", "10:00", 100); 82 | Kereta kereta2 = new Kereta("Argo Bromo", "Surabaya", "15:00", 150); 83 | Kereta kereta3 = new Kereta("Kelas Ekonomi", "Yogyakarta", "12:00", 200); 84 | 85 | sistemKereta.tambahKereta(kereta1); 86 | sistemKereta.tambahKereta(kereta2); 87 | sistemKereta.tambahKereta(kereta3); 88 | 89 | int pilihan; 90 | String namaKereta; 91 | int jumlahTiket; 92 | 93 | while (true) { 94 | System.out.println("\nMenu:"); 95 | System.out.println("1. Tampilkan Jadwal Kereta"); 96 | System.out.println("2. Pesan Tiket Kereta"); 97 | System.out.println("3. Keluar"); 98 | 99 | System.out.print("Pilih menu (1/2/3): "); 100 | pilihan = scanner.nextInt(); 101 | 102 | if (pilihan == 1) { 103 | sistemKereta.tampilkanJadwal(); 104 | } else if (pilihan == 2) { 105 | System.out.print("Masukkan nama kereta yang ingin dipesan: "); 106 | scanner.nextLine(); // Membersihkan newline 107 | namaKereta = scanner.nextLine(); 108 | System.out.print("Masukkan jumlah tiket yang ingin dipesan: "); 109 | jumlahTiket = scanner.nextInt(); 110 | sistemKereta.pesanTiketKereta(namaKereta, jumlahTiket); 111 | } else if (pilihan == 3) { 112 | System.out.println("Terima kasih telah menggunakan sistem kereta."); 113 | break; 114 | } else { 115 | System.out.println("Pilihan tidak valid. Silakan coba lagi."); 116 | } 117 | } 118 | 119 | scanner.close(); 120 | } 121 | } -------------------------------------------------------------------------------- /parkir.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.Scanner; 3 | 4 | class Parkir { 5 | private int kapasitas; 6 | private ArrayList kendaraanParkir; 7 | 8 | public Parkir(int kapasitas) { 9 | this.kapasitas = kapasitas; 10 | kendaraanParkir = new ArrayList<>(); 11 | } 12 | 13 | public void masukParkir() { 14 | if (kendaraanParkir.size() < kapasitas) { 15 | Scanner scanner = new Scanner(System.in); 16 | System.out.print("Masukkan nama kendaraan yang ingin parkir: "); 17 | String kendaraan = scanner.nextLine(); 18 | kendaraanParkir.add(kendaraan); 19 | System.out.println(kendaraan + " berhasil masuk ke area parkir."); 20 | } else { 21 | System.out.println("Parkir sudah penuh!"); 22 | } 23 | } 24 | 25 | public void keluarParkir() { 26 | Scanner scanner = new Scanner(System.in); 27 | System.out.print("Masukkan nama kendaraan yang ingin keluar: "); 28 | String kendaraan = scanner.nextLine(); 29 | 30 | if (kendaraanParkir.contains(kendaraan)) { 31 | kendaraanParkir.remove(kendaraan); 32 | System.out.println(kendaraan + " telah keluar dari area parkir."); 33 | } else { 34 | System.out.println(kendaraan + " tidak ditemukan di parkir."); 35 | } 36 | } 37 | 38 | public void statusParkir() { 39 | if (kendaraanParkir.isEmpty()) { 40 | System.out.println("Area parkir kosong."); 41 | } else { 42 | System.out.println("Kendaraan yang terparkir:"); 43 | for (String kendaraan : kendaraanParkir) { 44 | System.out.println(kendaraan); 45 | } 46 | } 47 | } 48 | } 49 | 50 | public class SistemParkir { 51 | public static void main(String[] args) { 52 | Scanner scanner = new Scanner(System.in); 53 | 54 | System.out.print("Masukkan kapasitas parkir: "); 55 | int kapasitasParkir = scanner.nextInt(); 56 | 57 | Parkir parkir = new Parkir(kapasitasParkir); 58 | 59 | int pilihan; 60 | do { 61 | System.out.println("\nPilih menu:"); 62 | System.out.println("1. Masukkan kendaraan"); 63 | System.out.println("2. Keluarkan kendaraan"); 64 | System.out.println("3. Lihat status parkir"); 65 | System.out.println("4. Keluar"); 66 | 67 | System.out.print("Pilihan Anda: "); 68 | pilihan = scanner.nextInt(); 69 | scanner.nextLine(); // Untuk menangani newline setelah memasukkan pilihan 70 | 71 | switch (pilihan) { 72 | case 1: 73 | parkir.masukParkir(); 74 | break; 75 | case 2: 76 | parkir.keluarParkir(); 77 | break; 78 | case 3: 79 | parkir.statusParkir(); 80 | break; 81 | case 4: 82 | System.out.println("Terima kasih telah menggunakan sistem parkir!"); 83 | break; 84 | default: 85 | System.out.println("Pilihan tidak valid, coba lagi."); 86 | } 87 | } while (pilihan != 4); 88 | 89 | scanner.close(); 90 | } 91 | } -------------------------------------------------------------------------------- /perpustakaan.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.List; 3 | import java.util.Scanner; 4 | 5 | class Buku { 6 | private String judul; 7 | private String penulis; 8 | private int tahunTerbit; 9 | 10 | public Buku(String judul, String penulis, int tahunTerbit) { 11 | this.judul = judul; 12 | this.penulis = penulis; 13 | this.tahunTerbit = tahunTerbit; 14 | } 15 | 16 | public String getJudul() { 17 | return judul; 18 | } 19 | 20 | public String getPenulis() { 21 | return penulis; 22 | } 23 | 24 | public int getTahunTerbit() { 25 | return tahunTerbit; 26 | } 27 | 28 | @Override 29 | public String toString() { 30 | return "Judul: " + judul + ", Penulis: " + penulis + ", Tahun Terbit: " + tahunTerbit; 31 | } 32 | } 33 | 34 | class Perpustakaan { 35 | private List daftarBuku = new ArrayList<>(); 36 | 37 | public void tambahBuku(Buku buku) { 38 | daftarBuku.add(buku); 39 | System.out.println("Buku '" + buku.getJudul() + "' berhasil ditambahkan."); 40 | } 41 | 42 | public void hapusBuku(String judul) { 43 | Buku bukuUntukDihapus = null; 44 | for (Buku buku : daftarBuku) { 45 | if (buku.getJudul().equalsIgnoreCase(judul)) { 46 | bukuUntukDihapus = buku; 47 | break; 48 | } 49 | } 50 | 51 | if (bukuUntukDihapus != null) { 52 | daftarBuku.remove(bukuUntukDihapus); 53 | System.out.println("Buku '" + judul + "' berhasil dihapus."); 54 | } else { 55 | System.out.println("Buku '" + judul + "' tidak ditemukan."); 56 | } 57 | } 58 | 59 | public void tampilkanBuku() { 60 | if (daftarBuku.isEmpty()) { 61 | System.out.println("Tidak ada buku di perpustakaan."); 62 | } else { 63 | System.out.println("Daftar Buku Perpustakaan:"); 64 | for (Buku buku : daftarBuku) { 65 | System.out.println(buku); 66 | } 67 | } 68 | } 69 | } 70 | 71 | public class Program { 72 | public static void main(String[] args) { 73 | Scanner scanner = new Scanner(System.in); 74 | Perpustakaan perpustakaan = new Perpustakaan(); 75 | 76 | while (true) { 77 | System.out.println("\nMenu Perpustakaan:"); 78 | System.out.println("1. Tambah Buku"); 79 | System.out.println("2. Hapus Buku"); 80 | System.out.println("3. Tampilkan Daftar Buku"); 81 | System.out.println("4. Keluar"); 82 | System.out.print("Pilih menu (1/2/3/4): "); 83 | int pilihan = scanner.nextInt(); 84 | scanner.nextLine(); // Membersihkan newline yang tertinggal setelah nextInt() 85 | 86 | switch (pilihan) { 87 | case 1: 88 | System.out.print("Masukkan judul buku: "); 89 | String judulTambah = scanner.nextLine(); 90 | 91 | System.out.print("Masukkan penulis buku: "); 92 | String penulisTambah = scanner.nextLine(); 93 | 94 | System.out.print("Masukkan tahun terbit buku: "); 95 | int tahunTerbitTambah = scanner.nextInt(); 96 | scanner.nextLine(); // Membersihkan newline yang tertinggal setelah nextInt() 97 | 98 | Buku bukuBaru = new Buku(judulTambah, penulisTambah, tahunTerbitTambah); 99 | perpustakaan.tambahBuku(bukuBaru); 100 | break; 101 | 102 | case 2: 103 | System.out.print("Masukkan judul buku yang akan dihapus: "); 104 | String judulHapus = scanner.nextLine(); 105 | perpustakaan.hapusBuku(judulHapus); 106 | break; 107 | 108 | case 3: 109 | perpustakaan.tampilkanBuku(); 110 | break; 111 | 112 | case 4: 113 | System.out.println("Terima kasih! Keluar dari program."); 114 | scanner.close(); 115 | return; 116 | 117 | default: 118 | System.out.println("Pilihan tidak valid, coba lagi."); 119 | break; 120 | } 121 | } 122 | } 123 | } -------------------------------------------------------------------------------- /raffneptune.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raffneptune/java/e0edb0bc2dfc9c3a778ca64117cf647989bc0cdf/raffneptune.jpg -------------------------------------------------------------------------------- /rental.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | class RentalItem { 4 | String name; 5 | int ratePerHour; 6 | 7 | public RentalItem(String name, int ratePerHour) { 8 | this.name = name; 9 | this.ratePerHour = ratePerHour; 10 | } 11 | 12 | public int calculateCost(int hours) { 13 | return ratePerHour * hours; 14 | } 15 | } 16 | 17 | class RentalSystem { 18 | RentalItem[] items; 19 | 20 | public RentalSystem() { 21 | items = new RentalItem[] { 22 | new RentalItem("Sepeda", 5000), 23 | new RentalItem("Skuter", 10000), 24 | new RentalItem("Mobil", 50000) 25 | }; 26 | } 27 | 28 | public void displayItems() { 29 | System.out.println("Barang yang tersedia untuk disewa:"); 30 | for (int i = 0; i < items.length; i++) { 31 | System.out.println((i + 1) + ". " + items[i].name + " - Rp" + items[i].ratePerHour + " per jam"); 32 | } 33 | } 34 | 35 | public void rentItem() { 36 | displayItems(); 37 | 38 | Scanner scanner = new Scanner(System.in); 39 | System.out.print("Pilih barang yang ingin disewa (1/2/3): "); 40 | int choice = scanner.nextInt(); 41 | 42 | if (choice < 1 || choice > items.length) { 43 | System.out.println("Pilihan tidak valid!"); 44 | return; 45 | } 46 | 47 | System.out.print("Berapa jam Anda ingin menyewa " + items[choice - 1].name + "? "); 48 | int hours = scanner.nextInt(); 49 | 50 | int totalCost = items[choice - 1].calculateCost(hours); 51 | System.out.println("Total biaya untuk menyewa " + items[choice - 1].name + " selama " + hours + " jam adalah: Rp" + totalCost); 52 | } 53 | } 54 | 55 | public class Main { 56 | public static void main(String[] args) { 57 | RentalSystem rentalSystem = new RentalSystem(); 58 | Scanner scanner = new Scanner(System.in); 59 | 60 | while (true) { 61 | System.out.println("\nSelamat datang di sistem rental!"); 62 | System.out.println("1. Sewa barang"); 63 | System.out.println("2. Keluar"); 64 | System.out.print("Pilih menu: "); 65 | String choice = scanner.nextLine(); 66 | 67 | if (choice.equals("1")) { 68 | rentalSystem.rentItem(); 69 | } else if (choice.equals("2")) { 70 | System.out.println("Terima kasih telah menggunakan sistem rental!"); 71 | break; 72 | } else { 73 | System.out.println("Pilihan tidak valid, coba lagi."); 74 | } 75 | } 76 | } 77 | } -------------------------------------------------------------------------------- /restoran.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.List; 3 | import java.util.Scanner; 4 | 5 | class Menu { 6 | String nama; 7 | int harga; 8 | 9 | public Menu(String nama, int harga) { 10 | this.nama = nama; 11 | this.harga = harga; 12 | } 13 | } 14 | 15 | class Pesanan { 16 | Menu menu; 17 | int jumlah; 18 | 19 | public Pesanan(Menu menu, int jumlah) { 20 | this.menu = menu; 21 | this.jumlah = jumlah; 22 | } 23 | } 24 | 25 | public class Restoran { 26 | 27 | private static List menuList = new ArrayList<>(); 28 | private static List pesananList = new ArrayList<>(); 29 | 30 | static { 31 | menuList.add(new Menu("Nasi Goreng", 25000)); 32 | menuList.add(new Menu("Mie Goreng", 20000)); 33 | menuList.add(new Menu("Sate Ayam", 30000)); 34 | menuList.add(new Menu("Ayam Penyet", 35000)); 35 | menuList.add(new Menu("Es Teh", 5000)); 36 | menuList.add(new Menu("Es Jeruk", 7000)); 37 | } 38 | 39 | public static void tampilkanMenu() { 40 | System.out.println("\nMenu Restoran:"); 41 | for (int i = 0; i < menuList.size(); i++) { 42 | System.out.println((i + 1) + ". " + menuList.get(i).nama + " - Rp" + menuList.get(i).harga); 43 | } 44 | } 45 | 46 | public static int hitungTotal() { 47 | int total = 0; 48 | for (Pesanan pesanan : pesananList) { 49 | total += pesanan.menu.harga * pesanan.jumlah; 50 | } 51 | return total; 52 | } 53 | 54 | public static void tampilkanPesanan() { 55 | if (pesananList.isEmpty()) { 56 | System.out.println("\nBelum ada pesanan."); 57 | } else { 58 | System.out.println("\nPesanan Anda:"); 59 | for (Pesanan pesanan : pesananList) { 60 | System.out.println(pesanan.menu.nama + " x " + pesanan.jumlah + " - Rp" + pesanan.menu.harga * pesanan.jumlah); 61 | } 62 | System.out.println("Total Harga: Rp" + hitungTotal()); 63 | } 64 | } 65 | 66 | public static void main(String[] args) { 67 | Scanner scanner = new Scanner(System.in); 68 | int pilihan; 69 | 70 | while (true) { 71 | System.out.println("\n-- Menu Utama --"); 72 | System.out.println("1. Lihat Menu"); 73 | System.out.println("2. Tambah Pesanan"); 74 | System.out.println("3. Tampilkan Pesanan"); 75 | System.out.println("4. Hitung Total"); 76 | System.out.println("5. Keluar"); 77 | 78 | System.out.print("Pilih opsi (1-5): "); 79 | pilihan = scanner.nextInt(); 80 | 81 | switch (pilihan) { 82 | case 1: 83 | tampilkanMenu(); 84 | break; 85 | case 2: 86 | tampilkanMenu(); 87 | System.out.print("\nPilih nomor menu untuk dipesan (0 untuk selesai): "); 88 | pilihan = scanner.nextInt(); 89 | 90 | if (pilihan == 0) break; 91 | 92 | if (pilihan > 0 && pilihan <= menuList.size()) { 93 | System.out.print("Berapa banyak " + menuList.get(pilihan - 1).nama + " yang ingin dipesan? "); 94 | int jumlah = scanner.nextInt(); 95 | 96 | pesananList.add(new Pesanan(menuList.get(pilihan - 1), jumlah)); 97 | System.out.println(jumlah + " " + menuList.get(pilihan - 1).nama + " ditambahkan ke pesanan."); 98 | } else { 99 | System.out.println("Nomor menu tidak valid!"); 100 | } 101 | break; 102 | case 3: 103 | tampilkanPesanan(); 104 | break; 105 | case 4: 106 | System.out.println("Total Harga: Rp" + hitungTotal()); 107 | break; 108 | case 5: 109 | System.out.println("Terima kasih telah berkunjung!"); 110 | scanner.close(); 111 | return; 112 | default: 113 | System.out.println("Opsi tidak valid!"); 114 | break; 115 | } 116 | } 117 | } 118 | } -------------------------------------------------------------------------------- /spbu.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class SPBU { 4 | 5 | // Menampilkan menu pilihan bahan bakar 6 | public static void displayMenu() { 7 | System.out.println("Selamat datang di SPBU!"); 8 | System.out.println("Pilih jenis bahan bakar:"); 9 | System.out.println("1. Premium (Rp 10.000 per liter)"); 10 | System.out.println("2. Pertalite (Rp 12.000 per liter)"); 11 | System.out.println("3. Pertamax (Rp 15.000 per liter)"); 12 | } 13 | 14 | // Menghitung total harga berdasarkan jenis bahan bakar dan jumlah liter 15 | public static double calculateTotalPrice(int fuelType, double liters) { 16 | double pricePerLiter = 0; 17 | 18 | if (fuelType == 1) { 19 | pricePerLiter = 10000; // Harga Premium 20 | } else if (fuelType == 2) { 21 | pricePerLiter = 12000; // Harga Pertalite 22 | } else if (fuelType == 3) { 23 | pricePerLiter = 15000; // Harga Pertamax 24 | } 25 | 26 | return pricePerLiter * liters; 27 | } 28 | 29 | public static void main(String[] args) { 30 | Scanner scanner = new Scanner(System.in); 31 | 32 | // Menampilkan menu dan meminta input jenis bahan bakar 33 | displayMenu(); 34 | System.out.print("Masukkan pilihan (1/2/3): "); 35 | int fuelType = scanner.nextInt(); 36 | if (fuelType < 1 || fuelType > 3) { 37 | System.out.println("Pilihan tidak valid."); 38 | return; 39 | } 40 | 41 | // Meminta input jumlah liter 42 | System.out.print("Masukkan jumlah liter: "); 43 | double liters = scanner.nextDouble(); 44 | if (liters <= 0) { 45 | System.out.println("Jumlah liter tidak valid."); 46 | return; 47 | } 48 | 49 | // Menghitung total harga 50 | double totalPrice = calculateTotalPrice(fuelType, liters); 51 | 52 | // Menampilkan struk pembayaran 53 | System.out.println("\n--- STRUK PEMBAYARAN ---"); 54 | if (fuelType == 1) { 55 | System.out.println("Bahan Bakar: Premium"); 56 | } else if (fuelType == 2) { 57 | System.out.println("Bahan Bakar: Pertalite"); 58 | } else if (fuelType == 3) { 59 | System.out.println("Bahan Bakar: Pertamax"); 60 | } 61 | System.out.printf("Jumlah Liter: %.2f liter\n", liters); 62 | System.out.printf("Total Pembayaran: Rp %.0f\n", totalPrice); 63 | System.out.println("-------------------------"); 64 | System.out.println("Terima kasih telah menggunakan layanan kami!"); 65 | 66 | // Menutup scanner 67 | scanner.close(); 68 | } 69 | } -------------------------------------------------------------------------------- /supermarket.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.Scanner; 3 | 4 | class Produk { 5 | String nama; 6 | int harga; 7 | 8 | Produk(String nama, int harga) { 9 | this.nama = nama; 10 | this.harga = harga; 11 | } 12 | } 13 | 14 | public class Supermarket { 15 | 16 | // Daftar produk dan harga 17 | static Produk[] produkList = { 18 | new Produk("Apel", 10000), 19 | new Produk("Pisang", 8000), 20 | new Produk("Jeruk", 12000), 21 | new Produk("Mangga", 15000), 22 | new Produk("Semangka", 20000) 23 | }; 24 | 25 | // Fungsi untuk menampilkan daftar produk 26 | public static void tampilkanProduk() { 27 | System.out.println("\nDaftar Produk Supermarket:"); 28 | for (Produk produk : produkList) { 29 | System.out.println(produk.nama + ": Rp " + produk.harga); 30 | } 31 | } 32 | 33 | // Fungsi untuk menambah barang ke keranjang 34 | public static void tambahKeKeranjang(ArrayList keranjang, ArrayList jumlah, String produkNama, int jumlahBarang) { 35 | int index = keranjang.indexOf(produkNama); 36 | if (index != -1) { 37 | jumlah.set(index, jumlah.get(index) + jumlahBarang); 38 | } else { 39 | keranjang.add(produkNama); 40 | jumlah.add(jumlahBarang); 41 | } 42 | } 43 | 44 | // Fungsi untuk menghitung total belanjaan 45 | public static int hitungTotal(ArrayList keranjang, ArrayList jumlah) { 46 | int total = 0; 47 | for (int i = 0; i < keranjang.size(); i++) { 48 | String produkNama = keranjang.get(i); 49 | int qty = jumlah.get(i); 50 | for (Produk produk : produkList) { 51 | if (produk.nama.equals(produkNama)) { 52 | total += produk.harga * qty; 53 | break; 54 | } 55 | } 56 | } 57 | return total; 58 | } 59 | 60 | public static void main(String[] args) { 61 | Scanner scanner = new Scanner(System.in); 62 | ArrayList keranjang = new ArrayList<>(); 63 | ArrayList jumlah = new ArrayList<>(); 64 | String pilihan; 65 | 66 | while (true) { 67 | tampilkanProduk(); 68 | System.out.print("\nMasukkan nama produk yang ingin dibeli (atau ketik 'selesai' untuk keluar): "); 69 | pilihan = scanner.nextLine(); 70 | 71 | if (pilihan.equalsIgnoreCase("selesai")) { 72 | break; 73 | } 74 | 75 | boolean ditemukan = false; 76 | for (Produk produk : produkList) { 77 | if (produk.nama.equalsIgnoreCase(pilihan)) { 78 | ditemukan = true; 79 | System.out.print("Berapa banyak " + pilihan + " yang ingin Anda beli? "); 80 | int jumlahBarang = scanner.nextInt(); 81 | scanner.nextLine(); // Membersihkan buffer 82 | tambahKeKeranjang(keranjang, jumlah, produk.nama, jumlahBarang); 83 | break; 84 | } 85 | } 86 | 87 | if (!ditemukan) { 88 | System.out.println("Produk tidak tersedia. Silakan pilih produk yang ada."); 89 | } 90 | } 91 | 92 | // Menampilkan keranjang belanja 93 | System.out.println("\nKeranjang Belanja Anda:"); 94 | int total = 0; 95 | for (int i = 0; i < keranjang.size(); i++) { 96 | String produkNama = keranjang.get(i); 97 | int qty = jumlah.get(i); 98 | for (Produk produk : produkList) { 99 | if (produk.nama.equals(produkNama)) { 100 | int subtotal = produk.harga * qty; 101 | System.out.println(produk.nama + ": " + qty + " x Rp " + produk.harga + " = Rp " + subtotal); 102 | total += subtotal; 103 | break; 104 | } 105 | } 106 | } 107 | 108 | System.out.println("\nTotal Belanja: Rp " + total); 109 | scanner.close(); 110 | } 111 | } -------------------------------------------------------------------------------- /tictactoe.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | public class TicTacToe { 4 | 5 | // Fungsi untuk menampilkan papan permainan 6 | public static void printBoard(char[] board) { 7 | System.out.println(); 8 | for (int i = 0; i < 3; i++) { 9 | System.out.print(" " + board[i * 3] + " | " + board[i * 3 + 1] + " | " + board[i * 3 + 2] + " "); 10 | System.out.println(); 11 | if (i < 2) { 12 | System.out.println("---|---|---"); 13 | } 14 | } 15 | System.out.println(); 16 | } 17 | 18 | // Fungsi untuk mengecek apakah pemain menang 19 | public static boolean checkWin(char[] board, char player) { 20 | int[][] winConditions = { 21 | {0, 1, 2}, {3, 4, 5}, {6, 7, 8}, // baris 22 | {0, 3, 6}, {1, 4, 7}, {2, 5, 8}, // kolom 23 | {0, 4, 8}, {2, 4, 6} // diagonal 24 | }; 25 | 26 | for (int[] condition : winConditions) { 27 | if (board[condition[0]] == player && board[condition[1]] == player && board[condition[2]] == player) { 28 | return true; 29 | } 30 | } 31 | return false; 32 | } 33 | 34 | // Fungsi untuk mengecek apakah papan penuh 35 | public static boolean isBoardFull(char[] board) { 36 | for (char space : board) { 37 | if (space == ' ') { 38 | return false; 39 | } 40 | } 41 | return true; 42 | } 43 | 44 | // Fungsi utama permainan 45 | public static void playGame() { 46 | char[] board = new char[9]; // papan Tic Tac Toe kosong 47 | for (int i = 0; i < 9; i++) { 48 | board[i] = ' '; 49 | } 50 | 51 | char currentPlayer = 'X'; 52 | Scanner scanner = new Scanner(System.in); 53 | 54 | while (true) { 55 | printBoard(board); 56 | 57 | // Meminta pemain untuk memilih posisi 58 | System.out.print("Player " + currentPlayer + ", pilih posisi (1-9): "); 59 | int move = scanner.nextInt(); 60 | 61 | if (move < 1 || move > 9 || board[move - 1] != ' ') { 62 | System.out.println("Posisi tidak valid atau sudah terisi, coba lagi."); 63 | continue; 64 | } 65 | 66 | // Menandai posisi dengan simbol pemain saat ini 67 | board[move - 1] = currentPlayer; 68 | 69 | // Mengecek apakah pemain menang 70 | if (checkWin(board, currentPlayer)) { 71 | printBoard(board); 72 | System.out.println("Selamat! Pemain " + currentPlayer + " menang!"); 73 | break; 74 | } 75 | 76 | // Mengecek apakah papan penuh (seri) 77 | if (isBoardFull(board)) { 78 | printBoard(board); 79 | System.out.println("Permainan berakhir dengan seri!"); 80 | break; 81 | } 82 | 83 | // Ganti giliran pemain 84 | currentPlayer = (currentPlayer == 'X') ? 'O' : 'X'; 85 | } 86 | } 87 | 88 | // Fungsi utama 89 | public static void main(String[] args) { 90 | playGame(); 91 | } 92 | } -------------------------------------------------------------------------------- /timezonegame.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.List; 3 | import java.util.Random; 4 | import java.util.Scanner; 5 | 6 | public class TimezoneMall { 7 | 8 | // Kelas untuk menyimpan data pengguna 9 | static class User { 10 | String name; 11 | int kredit; 12 | List permainan; 13 | 14 | public User(String name) { 15 | this.name = name; 16 | this.kredit = 0; 17 | this.permainan = new ArrayList<>(); 18 | } 19 | } 20 | 21 | // Daftar pengguna 22 | static List users = new ArrayList<>(); 23 | 24 | // Fungsi untuk mendaftar pengguna baru 25 | static void registerUser() { 26 | Scanner scanner = new Scanner(System.in); 27 | System.out.print("Masukkan nama pengguna: "); 28 | String name = scanner.nextLine(); 29 | 30 | // Cek apakah pengguna sudah terdaftar 31 | for (User user : users) { 32 | if (user.name.equals(name)) { 33 | System.out.println("Pengguna dengan nama " + name + " sudah terdaftar."); 34 | return; 35 | } 36 | } 37 | 38 | // Menambahkan pengguna baru 39 | users.add(new User(name)); 40 | System.out.println("Selamat datang, " + name + "! Akun Anda telah dibuat."); 41 | } 42 | 43 | // Fungsi untuk membeli kredit 44 | static void buyCredits(String userName) { 45 | Scanner scanner = new Scanner(System.in); 46 | System.out.print("Berapa banyak kredit yang ingin Anda beli? (1 kredit = 5000 IDR): "); 47 | int creditAmount = scanner.nextInt(); 48 | 49 | // Cari pengguna berdasarkan nama 50 | for (User user : users) { 51 | if (user.name.equals(userName)) { 52 | user.kredit += creditAmount; 53 | System.out.println(creditAmount + " kredit telah ditambahkan ke akun Anda."); 54 | return; 55 | } 56 | } 57 | 58 | System.out.println("Pengguna tidak ditemukan. Silakan mendaftar terlebih dahulu."); 59 | } 60 | 61 | // Fungsi untuk bermain game 62 | static void playGame(String userName) { 63 | Scanner scanner = new Scanner(System.in); 64 | 65 | // Cari pengguna berdasarkan nama 66 | for (User user : users) { 67 | if (user.name.equals(userName)) { 68 | if (user.kredit < 1) { 69 | System.out.println("Anda tidak memiliki kredit cukup untuk bermain game. Silakan beli kredit terlebih dahulu."); 70 | return; 71 | } 72 | 73 | System.out.println("Pilih permainan yang ingin dimainkan:"); 74 | System.out.println("1. Pac-Man (1 kredit)"); 75 | System.out.println("2. Street Fighter (2 kredit)"); 76 | System.out.println("3. Racing Game (3 kredit)"); 77 | 78 | int gameChoice = scanner.nextInt(); 79 | 80 | if (gameChoice == 1 && user.kredit >= 1) { 81 | user.kredit -= 1; 82 | System.out.println("Anda sedang bermain Pac-Man! Semoga berhasil!"); 83 | } else if (gameChoice == 2 && user.kredit >= 2) { 84 | user.kredit -= 2; 85 | System.out.println("Anda sedang bermain Street Fighter! Bertarunglah dengan kuat!"); 86 | } else if (gameChoice == 3 && user.kredit >= 3) { 87 | user.kredit -= 3; 88 | System.out.println("Anda sedang bermain Racing Game! Gaspol!"); 89 | } else { 90 | System.out.println("Anda tidak memiliki kredit cukup untuk memilih permainan ini."); 91 | return; 92 | } 93 | 94 | // Simulasi hasil permainan (acak) 95 | Random rand = new Random(); 96 | int result = rand.nextInt(2); // 0 = Kalah, 1 = Menang 97 | System.out.println("Memulai permainan..."); 98 | System.out.println("Hasil permainan: " + (result == 1 ? "Menang" : "Kalah")); 99 | 100 | // Menyimpan riwayat permainan 101 | user.permainan.add(result == 1 ? "Menang" : "Kalah"); 102 | return; 103 | } 104 | } 105 | 106 | System.out.println("Pengguna tidak ditemukan. Silakan mendaftar terlebih dahulu."); 107 | } 108 | 109 | // Fungsi untuk mengecek saldo kredit 110 | static void checkBalance(String userName) { 111 | // Cari pengguna berdasarkan nama 112 | for (User user : users) { 113 | if (user.name.equals(userName)) { 114 | System.out.println("Sisa kredit Anda: " + user.kredit + " kredit."); 115 | return; 116 | } 117 | } 118 | 119 | System.out.println("Pengguna tidak ditemukan. Silakan mendaftar terlebih dahulu."); 120 | } 121 | 122 | // Menu utama 123 | public static void main(String[] args) { 124 | Scanner scanner = new Scanner(System.in); 125 | 126 | while (true) { 127 | System.out.println("\nMenu Utama:"); 128 | System.out.println("1. Daftar pengguna baru"); 129 | System.out.println("2. Beli kredit"); 130 | System.out.println("3. Mainkan game"); 131 | System.out.println("4. Cek saldo kredit"); 132 | System.out.println("5. Keluar"); 133 | 134 | System.out.print("Pilih menu (1/2/3/4/5): "); 135 | int choice = scanner.nextInt(); 136 | scanner.nextLine(); // Membersihkan newline 137 | 138 | if (choice == 1) { 139 | registerUser(); 140 | } else if (choice == 2) { 141 | System.out.print("Masukkan nama pengguna untuk membeli kredit: "); 142 | String userName = scanner.nextLine(); 143 | buyCredits(userName); 144 | } else if (choice == 3) { 145 | System.out.print("Masukkan nama pengguna untuk bermain game: "); 146 | String userName = scanner.nextLine(); 147 | playGame(userName); 148 | } else if (choice == 4) { 149 | System.out.print("Masukkan nama pengguna untuk cek saldo: "); 150 | String userName = scanner.nextLine(); 151 | checkBalance(userName); 152 | } else if (choice == 5) { 153 | System.out.println("Terima kasih telah bermain di Timezone Mall! Sampai jumpa lagi!"); 154 | break; 155 | } else { 156 | System.out.println("Pilihan tidak valid. Silakan pilih lagi."); 157 | } 158 | } 159 | } 160 | } -------------------------------------------------------------------------------- /tol.java: -------------------------------------------------------------------------------- 1 | import java.util.ArrayList; 2 | import java.util.List; 3 | 4 | class Kendaraan { 5 | private String nama; 6 | private String golongan; 7 | 8 | public Kendaraan(String nama, String golongan) { 9 | this.nama = nama; 10 | this.golongan = golongan; 11 | } 12 | 13 | public String getNama() { 14 | return nama; 15 | } 16 | 17 | public String getGolongan() { 18 | return golongan; 19 | } 20 | } 21 | 22 | class GerbangTol { 23 | private List antrian; 24 | 25 | public GerbangTol() { 26 | this.antrian = new ArrayList<>(); 27 | } 28 | 29 | // Menambah kendaraan ke antrian 30 | public void tambahAntrian(String nama, String golongan) { 31 | antrian.add(new Kendaraan(nama, golongan)); 32 | System.out.println(nama + " ditambahkan ke antrian."); 33 | } 34 | 35 | // Memproses kendaraan pertama dalam antrian 36 | public void prosesKendaraan() { 37 | if (!antrian.isEmpty()) { 38 | System.out.println(antrian.get(0).getNama() + " sedang diproses."); 39 | antrian.remove(0); // Hapus kendaraan pertama 40 | } else { 41 | System.out.println("Antrian kosong, tidak ada kendaraan yang diproses."); 42 | } 43 | } 44 | 45 | // Menampilkan antrian kendaraan 46 | public void tampilkanAntrian() { 47 | if (!antrian.isEmpty()) { 48 | System.out.println("Antrian kendaraan saat ini:"); 49 | for (Kendaraan kendaraan : antrian) { 50 | System.out.println(kendaraan.getNama() + " - " + kendaraan.getGolongan()); 51 | } 52 | } else { 53 | System.out.println("Antrian kosong."); 54 | } 55 | } 56 | } 57 | 58 | class SistemTol { 59 | private int tarifGolongan1; 60 | private int tarifGolongan2; 61 | private int tarifGolongan3; 62 | 63 | public SistemTol() { 64 | this.tarifGolongan1 = 5000; 65 | this.tarifGolongan2 = 10000; 66 | this.tarifGolongan3 = 15000; 67 | } 68 | 69 | // Menghitung biaya tol berdasarkan golongan dan jarak 70 | public void hitungBiaya(String golongan, int jarak) { 71 | int tarif = 0; 72 | 73 | switch (golongan) { 74 | case "golongan_1": 75 | tarif = tarifGolongan1; 76 | break; 77 | case "golongan_2": 78 | tarif = tarifGolongan2; 79 | break; 80 | case "golongan_3": 81 | tarif = tarifGolongan3; 82 | break; 83 | default: 84 | System.out.println("Golongan kendaraan tidak valid!"); 85 | return; 86 | } 87 | 88 | int biaya = tarif * jarak; 89 | System.out.println("Biaya tol untuk " + golongan + " dengan jarak " + jarak + " km adalah: " + biaya + " IDR"); 90 | } 91 | } 92 | 93 | public class Main { 94 | public static void main(String[] args) { 95 | GerbangTol gerbang = new GerbangTol(); 96 | SistemTol sistem = new SistemTol(); 97 | 98 | // Menambah kendaraan ke antrian 99 | gerbang.tambahAntrian("Mobil Kecil - Golongan 1", "golongan_1"); 100 | gerbang.tambahAntrian("Truk Kecil - Golongan 2", "golongan_2"); 101 | gerbang.tambahAntrian("Truk Besar - Golongan 3", "golongan_3"); 102 | 103 | // Menampilkan antrian kendaraan 104 | gerbang.tampilkanAntrian(); 105 | 106 | // Proses kendaraan pertama 107 | gerbang.prosesKendaraan(); 108 | 109 | // Menghitung biaya tol untuk kendaraan pertama 110 | sistem.hitungBiaya("golongan_1", 10); // Misalnya jarak 10 km 111 | } 112 | } -------------------------------------------------------------------------------- /warnet.java: -------------------------------------------------------------------------------- 1 | import java.util.Scanner; 2 | 3 | class Komputer { 4 | int nomor; 5 | boolean tersedia; 6 | long mulaiSewa; 7 | double durasiSewa; 8 | 9 | public Komputer(int nomor) { 10 | this.nomor = nomor; 11 | this.tersedia = true; 12 | this.mulaiSewa = 0; 13 | this.durasiSewa = 0; 14 | } 15 | 16 | public void sewa() { 17 | if (tersedia) { 18 | tersedia = false; 19 | mulaiSewa = System.currentTimeMillis(); 20 | System.out.println("Komputer " + nomor + " telah disewa."); 21 | } else { 22 | System.out.println("Komputer " + nomor + " sedang disewa."); 23 | } 24 | } 25 | 26 | public void selesaiSewa() { 27 | if (!tersedia) { 28 | long selesaiSewa = System.currentTimeMillis(); 29 | durasiSewa = (selesaiSewa - mulaiSewa) / (1000 * 60); // durasi dalam menit 30 | double biaya = durasiSewa * 2000; // biaya per menit misalnya 2000 IDR 31 | tersedia = true; 32 | System.out.println("Komputer " + nomor + " selesai disewa. Durasi: " + String.format("%.2f", durasiSewa) + " menit."); 33 | System.out.println("Biaya yang harus dibayar: Rp " + String.format("%.2f", biaya)); 34 | } else { 35 | System.out.println("Komputer " + nomor + " belum disewa."); 36 | } 37 | } 38 | } 39 | 40 | class Warnet { 41 | Komputer[] komputer; 42 | 43 | public Warnet(int jumlahKomputer) { 44 | komputer = new Komputer[jumlahKomputer]; 45 | for (int i = 0; i < jumlahKomputer; i++) { 46 | komputer[i] = new Komputer(i + 1); 47 | } 48 | } 49 | 50 | public void tampilkanKomputer() { 51 | System.out.println("\nDaftar Komputer:"); 52 | for (Komputer kom : komputer) { 53 | String status = kom.tersedia ? "Tersedia" : "Sedang disewa"; 54 | System.out.println("Komputer " + kom.nomor + ": " + status); 55 | } 56 | } 57 | 58 | public void sewaKomputer(int nomor) { 59 | if (nomor >= 1 && nomor <= komputer.length) { 60 | komputer[nomor - 1].sewa(); 61 | } else { 62 | System.out.println("Nomor komputer tidak valid!"); 63 | } 64 | } 65 | 66 | public void selesaiKomputer(int nomor) { 67 | if (nomor >= 1 && nomor <= komputer.length) { 68 | komputer[nomor - 1].selesaiSewa(); 69 | } else { 70 | System.out.println("Nomor komputer tidak valid!"); 71 | } 72 | } 73 | } 74 | 75 | public class Main { 76 | public static void menu() { 77 | Warnet warnet = new Warnet(5); // Misalkan ada 5 komputer di warnet 78 | Scanner scanner = new Scanner(System.in); 79 | while (true) { 80 | System.out.println("\n--- Menu Warnet ---"); 81 | System.out.println("1. Tampilkan Daftar Komputer"); 82 | System.out.println("2. Sewa Komputer"); 83 | System.out.println("3. Selesai Sewa Komputer"); 84 | System.out.println("4. Keluar"); 85 | System.out.print("Pilih menu: "); 86 | int pilihan = scanner.nextInt(); 87 | 88 | switch (pilihan) { 89 | case 1: 90 | warnet.tampilkanKomputer(); 91 | break; 92 | case 2: 93 | System.out.print("Masukkan nomor komputer yang ingin disewa: "); 94 | int nomorSewa = scanner.nextInt(); 95 | warnet.sewaKomputer(nomorSewa); 96 | break; 97 | case 3: 98 | System.out.print("Masukkan nomor komputer yang selesai disewa: "); 99 | int nomorSelesai = scanner.nextInt(); 100 | warnet.selesaiKomputer(nomorSelesai); 101 | break; 102 | case 4: 103 | System.out.println("Terima kasih telah menggunakan layanan warnet!"); 104 | scanner.close(); 105 | return; 106 | default: 107 | System.out.println("Pilihan tidak valid!"); 108 | break; 109 | } 110 | } 111 | } 112 | 113 | public static void main(String[] args) { 114 | menu(); 115 | } 116 | } --------------------------------------------------------------------------------