Pemrograman Berorientasi Obyek:Pembuatan interface di Java

Revision as of 15:07, 19 December 2022 by Kangtain (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

1. Interface Phone

package PackIntervace;
public interface Phone {
    int MAX_VOLUME = 100;
    int MIN_VOLUME = 0;
    void powerOn();
    void powerOff();
    void volumeUp();
    void volumeDown();
}

2. Class PhoneUser

package PackIntervace;public class PhoneUser {
    private Phone phone;
    public PhoneUser(Phone phone) {
        this.phone = phone;
    }
    
    void turnOnThePhone(){
        this.phone.powerOn();
    }

    void turnOffThePhone(){
        this.phone.powerOff();
    }

    void makePhoneLouder(){
        this.phone.volumeUp();
    }

    void makePhoneSilent(){
        this.phone.volumeDown();
    }
}

3. Class Xiaomi

package PackIntervace;
public class Xiaomi implements Phone {
    private int volume;
    private boolean isPowerOn;
    
    public Xiaomi() {
        // set volume awal
        this.volume = 50;
    }

    @Override
    public void powerOn() {
        isPowerOn = true;
        System.out.println("Handphone menyala...");
        System.out.println("Selamat datang di XIAOMI");
        System.out.println("Android version 29");
    }

    @Override
    public void powerOff() {
        isPowerOn = false;
        System.out.println("Handphone dimatikan");
    }
    
    @Override
    public void volumeUp() {
        if (isPowerOn) {
            if (this.volume == MAX_VOLUME) {
                System.out.println("Volume FULL!!");
                System.out.println("sudah " + this.getVolume() + "%");
            } else {
                this.volume += 10;
                System.out.println("Volume sekarang: " + this.getVolume());
            }
        } else {
            System.out.println("Nyalakan dulu donk HP-nya!!");
        }
    }

    @Override
    public void volumeDown() {
        if (isPowerOn) {
            if (this.volume == MIN_VOLUME) {
                System.out.println("Volume = 0%");
            } else {this.volume -= 10;
            System.out.println("Volume sekarang: " + this.getVolume());
            }
        } else {
            System.out.println("Nyalakan dulu donk HP-nya!!");
        }
    }

    public int getVolume() {
        return this.volume;
    }
}

4. Class Main

package PackIntervace;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        // membuat objek HP
        Phone redmiNote8 = new Xiaomi();
        // membuat objek user
        PhoneUser dian = new PhoneUser(redmiNote8);
        // kita coba nyalakan HP-nya
        dian.turnOnThePhone();
        // biar enak, kita buat dalam program
        Scanner input = new Scanner(System.in);
        String aksi;
        while (true) {
            System.out.println("=== APLIKASI INTERFACE ===");
            System.out.println("[1] Nyalakan HP");
            System.out.println("[2] Matikan HP");
            System.out.println("[3] Perbesar Volume");
            System.out.println("[4] Kecilkan Volume");
            System.out.println("[0] Keluar");
            System.out.println("--------------------------");
            System.out.print("Pilih aksi> ");
            aksi = input.nextLine();
            if(aksi.equalsIgnoreCase("1")){
                dian.turnOnThePhone();
            } else if (aksi.equalsIgnoreCase("2")){
                dian.turnOffThePhone();
            } else if (aksi.equalsIgnoreCase("3")){
                dian.makePhoneLouder();
            } else if (aksi.equalsIgnoreCase("4")){
                dian.makePhoneSilent();
            } else if (aksi.equalsIgnoreCase("0")){
                System.exit(0);
            } else {
                System.out.println("Kamu memilih aksi yang salah!");
            }
        }
    }
}