public class AntarmukaTerpisah {
    public static void main(String[] args) {
        antreCetak(new PrinterSederhana());
        antreCetak(new MesinFotokopi());
    }

    // Klien hanya membutuhkan kemampuan mencetak
    static void antreCetak(Pencetak mesin) {
        System.out.println(mesin.cetak("Laporan bulanan"));
    }
}

interface Pencetak {
    String cetak(String dokumen);
}

interface Pemindai {
    String pindai(String dokumen);
}

class PrinterSederhana implements Pencetak {
    public String cetak(String dokumen) {
        return "Mencetak: " + dokumen;
    }
}

class MesinFotokopi implements Pencetak, Pemindai {
    public String cetak(String dokumen) {
        return "Menyalin: " + dokumen;
    }

    public String pindai(String dokumen) {
        return "Memindai: " + dokumen;
    }
}
