import [Link].
Scanner;
import [Link];
abstract class Distributor {
protected String nama, nik;
protected final double MODAL_AWAL = 20_000_000;
abstract void dataAdmin();
abstract void listBarang();
}
interface Hitung {
double hitung();
}
class BarangMasuk extends Distributor implements Hitung {
private Scanner input = new Scanner([Link]);
private DecimalFormat df = new DecimalFormat("#,###");
private double totalMasuk;
@Override void dataAdmin() {
[Link]("\n=== INPUT DATA ADMIN ===");
[Link]("Nama Admin : "); nama = [Link]();
[Link]("NIK Admin : "); nik = [Link]();
}
@Override void listBarang() {
int pilih;
String[][] barang = {
{"Buku Tulis", "45000"},
{"Buku Gambar", "50000"},
{"Kertas A4", "40000"},
{"Bolpen Biru", "38000"},
{"Pensil Kayu", "22000"}
};
do {
[Link]("\n=== BARANG MASUK ===");
[Link]("+----+----------------+------------+");
[Link]("| No | Nama Barang | Harga |");
[Link]("+----+----------------+------------+");
for (int i = 0; i < [Link]; i++) {
[Link]("| %-2d | %-14s | Rp %-7s |\n",
i+1, barang[i][0], barang[i][1]);
}
[Link]("| 0 | SELESAI | |");
[Link]("+----+----------------+------------+");
[Link]("Pilihan : ");
pilih = [Link]();
if (pilih >= 1 && pilih <= 5) {
[Link]("Jumlah : ");
int qty = [Link]();
int harga = [Link](barang[pilih-1][1]);
int subtotal = qty * harga;
totalMasuk += subtotal;
[Link]("Subtotal: Rp " + [Link](subtotal));
}
} while (pilih != 0);
[Link]("\nTotal Pemasukan: Rp " + [Link](totalMasuk));
[Link]("Total Kas : Rp " + [Link](MODAL_AWAL + totalMasuk));
}
@Override public double hitung() { return totalMasuk; }
}
class BarangKeluar extends Distributor implements Hitung {
private DecimalFormat df = new DecimalFormat("#,###");
private double totalKeluar;
@Override void dataAdmin() {}
@Override void listBarang() {
1
int pilih;
Scanner input = new Scanner([Link]);
do {
[Link]("\n=== BARANG KELUAR ===");
[Link]("1. Biaya Operasional (Rp 400.000)");
[Link]("2. Biaya Distribusi (Rp 200.000)");
[Link]("0. Selesai");
[Link]("Pilihan : ");
pilih = [Link]();
if (pilih == 1) totalKeluar += 400_000;
else if (pilih == 2) totalKeluar += 200_000;
} while (pilih != 0);
[Link]("Total Pengeluaran: Rp " + [Link](totalKeluar));
}
@Override public double hitung() { return totalKeluar; }
}
class Login {
private static final String ID_ADMIN = "admin123";
boolean cekLogin(String id) { return ID_ADMIN.equals(id); }
}
public class UAS_PBO_Distributor {
public static void main(String[] args) {
Scanner input = new Scanner([Link]);
DecimalFormat df = new DecimalFormat("#,###");
[Link]("=== PT. GARUDA ABADI GROUP ===");
[Link]("ID Admin: ");
if (!new Login().cekLogin([Link]())) {
[Link]("Akses ditolak!");
return;
}
BarangMasuk masuk = new BarangMasuk();
BarangKeluar keluar = new BarangKeluar();
[Link]();
[Link]();
[Link]();
double sisaKas = masuk.MODAL_AWAL + [Link]() - [Link]();
[Link]("\n=== LAPORAN ===");
[Link]("Nama Admin: " + [Link]);
[Link]("NIK Admin : " + [Link]);
[Link]("Sisa Kas : Rp " + [Link](sisaKas));
[Link]("=================");
}
}
2
import [Link];
class DataWarga {
protected String nama, nik, alamat, noTelp;
protected String pekerjaan, alamatKantor;
protected String status, namaPasangan;
protected int jumlahAnak;
public void inputData(String n, String ni, String a, String nt) {
nama = n; nik = ni; alamat = a; noTelp = nt;
}
public void inputData(String pekerjaan, String alamatKantor) {
[Link] = pekerjaan;
[Link] = alamatKantor;
}
public void inputData(String status, String namaPasangan, int jumlahAnak) {
[Link] = status;
[Link] = namaPasangan;
[Link] = jumlahAnak;
}
}
class PembayaranIuran extends DataWarga {
private int iuranSampah, iuranKeamanan, sumbangan;
public void inputIuran(int sampah, int keamanan, int sumb) {
iuranSampah = sampah;
iuranKeamanan = keamanan;
sumbangan = sumb;
}
public int hitungTotal() {
return iuranSampah + iuranKeamanan + sumbangan;
}
}
public class MainProgram {
public static void main(String[] args) {
Scanner sc = new Scanner([Link]);
PembayaranIuran warga = new PembayaranIuran();
[Link]("Pendataan dan Pembayaran Iuran Warga");
[Link]("====================================\n");
[Link]("1. Input Data Warga");
[Link]("2. Input Iuran Warga");
[Link]("PILIHAN MENU : ");
int menu = [Link]();
[Link]();
if (menu == 1) {
inputDataWarga(sc, warga);
[Link]("\nLanjut Bayar Iuran? (ya/tidak): ");
if ([Link]().equalsIgnoreCase("ya")) {
inputIuran(sc, warga);
tampilkanTotal(warga);
}
} else if (menu == 2) {
[Link]("Masukan NIK: ");
[Link] = [Link]();
inputIuran(sc, warga);
tampilkanTotal(warga);
}
[Link]();
}
private static void inputDataWarga(Scanner sc, PembayaranIuran warga) {
[Link]("\n*** Data Warga ***");
[Link]("Nama: ");
[Link]([Link](),
promptInput(sc, "NIK"),
promptInput(sc, "Alamat"),
3
promptInput(sc, "No. Tlp"));
[Link]("\n*** Data Pekerjaan ***");
[Link](promptInput(sc, "Pekerjaan"),
promptInput(sc, "Alamat Kantor"));
[Link]("\n*** Data Status ***");
[Link]("Status: ");
String status = [Link]();
[Link]("Nama Suami/Istri: ");
String pasangan = [Link]();
[Link]("Jumlah Anak: ");
int anak = [Link]();
[Link]();
[Link](status, pasangan, anak);
}
private static void inputIuran(Scanner sc, PembayaranIuran warga) {
[Link]("\n*** Data Iuran ***");
int sampah = getIntInput(sc, "Iuran Sampah");
int keamanan = getIntInput(sc, "Iuran Keamanan");
int sumbangan = getIntInput(sc, "Sumbangan");
[Link](sampah, keamanan, sumbangan);
}
private static void tampilkanTotal(PembayaranIuran warga) {
[Link]("\n====================================");
[Link]("NIK: " + [Link]);
[Link]("Total Pembayaran Iuran: Rp. " + [Link]());
[Link]("Terimakasih " + ([Link] != null ? [Link] : "") +
" Iuran Anda sudah dibayarkan");
}
private static String promptInput(Scanner sc, String label) {
[Link](label + ": ");
return [Link]();
}
private static int getIntInput(Scanner sc, String label) {
[Link](label + ": ");
int value = [Link]();
[Link]();
return value;
}
}
4
import [Link];
abstract class abs_laundry {
protected String nPel, nPaket, nLayan; // nPel=Nama, nPaket=Paket, nLayan=Layanan
protected double hPaket, hLayan, total, berat;
Scanner s = new Scanner([Link]); // Scanner dipakai barengan
abstract void jenis();
abstract void pelayanan();
abstract void cetakdata(String nama);
abstract void cetaktotal(); }
class jenis_laundry extends abs_laundry {
@Override
public void jenis() {
[Link]("Pilih Paket (1-3): ");
int p = [Link]();
if(p==1){ nPaket="Cuci"; hPaket=5000; }
else if(p==2){ nPaket="Cuci+Lipat"; hPaket=6000; }
else if(p==3){ nPaket="Cuci+Setrika"; hPaket=8000; }
else { nPaket="-"; hPaket=0; }
[Link]("Banyak Cucian (Kg): "); // Input berat langsung disini
berat = [Link](); }
@Override
public void pelayanan() {
[Link]("Pilih Layanan (1-3): ");
int p = [Link]();
if(p==1){ nLayan="Standart (3 Hari)"; hLayan=1000; }
else if(p==2){ nLayan="Medium (2 Hari)"; hLayan=2500; }
else if(p==3){ nLayan="Express (5 Jam)"; hLayan=5000; }
else { nLayan="-"; hLayan=0; } }
@Override
public void cetakdata(String nama) {
[Link] = nama;
[Link]("\n*** DATA PELANGGAN ***\nNama: " + nPel);
}
@Override
public void cetaktotal() {
total = (hPaket * berat) + hLayan; // Rumus Sesuai Soal
[Link]("Pesanan: " + nPaket + "\nLayanan: " + nLayan);
[Link]("Total Biaya: Rp %,.2f\n====================\n", total);
} }
public class main_laundry {
public static void main(String[] args) {
jenis_laundry l = new jenis_laundry();
Scanner in = new Scanner([Link]);
[Link](" LIST JENIS PAKET (/KG) ");
[Link]("1. Cuci || Rp. 5.000");
[Link]("2. Cuci + Lipat || Rp. 6.000");
[Link]("3. Cuci + Setrika || Rp. 8.000");
[Link]("------------------------------------");
[Link](" LIST PELAYANAN LAUNDRY ");
[Link]("1. Standart (3 Hari) || Rp. 1.000");
[Link]("2. Medium (2 Hari) || Rp. 2.500");
[Link]("3. Express (5 Jam + Antar) || Rp. 5.000");
[Link]("------------------------------------");
[Link]("Nama Pelanggan: "); String nama = [Link]();
[Link]("No Telp: "); [Link](); // Input telp (sekadar lewat)
[Link](); // Input Paket & Berat
[Link](); // Input Layanan
[Link](nama); // Cetak Header Struk
[Link](); // Hitung & Cetak Total
[Link]();
}
}
5
6