Senin, 15 Juli 2024

Gimmick

Post oleh : http://muhajirkelanasaputra.blogspot.com/ | Rilis : 23.30 | Series :

 package utstech.parent;


public abstract class AbstractDeveloper {

    protected String genreGame = "RPG";


    public abstract String getDeveloperInfo

();

}



package utstech.parent;


public class Developer extends AbstractDeveloper {

    private String[] membersName = {"Muhajir", "Rifki lutfiansyah", "Rendy Satria", "Qalwani", "Gibran"};

    protected short numOfMembers;

    protected double memberPerformance;


    public Developer() {

        System.out.println("Ini lah Karya terbaru Kami");

    }


    public Developer(short inputNumOfMembers, double inputMemberPerformance) {

        this.numOfMembers = inputNumOfMembers;

        this.memberPerformance = inputMemberPerformance;

    }


    private double getPerformance() {

        return memberPerformance;

    }


    public void setPerformance(int input) {

        this.memberPerformance = (double) input;

    }


    protected void developerInfo() {

        System.out.println("Projek yang akan kami buat merupakan genre " + genreGame);

        System.out.println("Tim kami terdiri dari " + numOfMembers + " orang");

        System.out.println("\t\t\t\t\t terdiri dari");

        for (String member : membersName) {

            System.out.println("\t\t" + member);

        }

        System.out.println();

    }


    @Override

    public String getDeveloperInfo() {

        return "Developer info: " + genreGame + "

, Members: " + numOfMembers;

    }

}


package utstech.parent;


public class Game extends Developer {

    private String gameTitle;

    protected double ratingGame;

    protected short numberOfBuyer;

    private final double gameCost = 0.03;

    protected boolean profit;


    public Game(short numOfMembers, double memberPerformance, String inputGameTitle, short inputNumberOfBuyer) {

        super(numOfMembers, memberPerformance);

        this.gameTitle = inputGameTitle;

        this.numberOfBuyer = inputNumberOfBuyer;

    }


    public double getRating() {

        if (numberOfBuyer > 8000) {

            ratingGame = 5;

        } else if (numberOfBuyer > 4000) {

            ratingGame = 4;

        } else if (numberOfBuyer > 3000) {

            ratingGame = 3;

        } else if (numberOfBuyer > 1000) {

            ratingGame = 2;

        } else {

            ratingGame = 1;

        }

        return ratingGame;

    }


    public void setGameTitle(String inputTitle) {

        this.gameTitle = inputTitle;

    }


    public boolean isProfit() {

        double total = (double) numberOfBuyer * gameCost;

        profit = total > 80;

        return profit;

    }


    public void gameInfo() {

        super.developerInfo();

        System.out.println("Game = " + gameTitle);

        System.out.println("Dengan rating = " + getRating());

    }


    @Override

    public String getDeveloperInfo() {

        return super.getD

eveloperInfo() + ", Game: " + gameTitle;

    }

}


package utstech.parent;


public class Game extends Developer {

    private String gameTitle;

    protected double ratingGame;

    protected short numberOfBuyer;

    private final double gameCost = 0.03;

    protected boolean profit;


    public Game(short numOfMembers, double memberPerformance, String inputGameTitle, short inputNumberOfBuyer) {

        super(numOfMembers, memberPerformance);

        this.gameTitle = inputGameTitle;

        this.numberOfBuyer = inputNumberOfBuyer;

    }


    public double getRating() {

        if (numberOfBuyer > 8000) {

            ratingGame = 5;

        } else if (numberOfBuyer > 4000) {

            ratingGame = 4;

        } else if (numberOfBuyer > 3000) {

            ratingGame = 3;

        } else if (numberOfBuyer > 1000) {

            ratingGame = 2;

        } else {

            ratingGame = 1;

        }

        return ratingGame;

    }


    public void setGameTitle(String inputTitle) {

        this.gameTitle = inputTitle;

    }


    public boolean isProfit() {

        double total = (double) numberOfBuyer * gameCost;

        profit = total > 80;

        return profit;

    }


    public void gameInfo() {

        super.developerInfo();

        System.out.println("Game = " + gameTitle);

        System.out.println("Dengan rating = " + getRating());

    }


    @Override

    public String getDeveloperInfo() {

        return super.getD

eveloperInfo() + ", Game: " + gameTitle;

    }

}


package utstech.child;


import utstech.parent.Game;


public class GamePlatform extends Game implements GameInterface {

    private String namePlatform;

    private double userExperience;


    public GamePlatform(short numOfMembers, double memberPerformance, String gameTitle, short numberOfBuyer, String inputGamePlatform, double inputExperience) {

        super(numOfMembers, memberPerformance, gameTitle, numberOfBuyer);

        this.namePlatform = inputGamePlatform;

        this.userExperience = inputExperience;

    }


    @Override

    public void platformInfo() {

        super.gameInfo();

        System.out.println("Dapat dimainkan dengan platform " + namePlatform);

        if (userExperience >= 4 && userExperience <= 5) {

            System.out.println("Game ini sangat bagus");

        } else if (userExperience >= 2.5) {

            System.out.println("Game ini cukup baik");

        } else {

            System.out.println("Game tidak bagus");

        }

    }


    @Override

    public void showMessage(String message) {

        System.out.println(message);

    }


    @Override

    public String getGameInfo() {

        return "Game Platform: " + namePlatform + ", User Experience: " + userExperience;

    }


    @Override

    public double calculateCost(double baseCost) {


        return baseCost + 50;

    }

}


package utstech.child;


import utstech.parent.Game;


public class MovieAdaption extends Game implements GameInterface {

    private String actor;

    private short memberOfStaff;

    private double ratingMovie;

    private double userExperience;


    public MovieAdaption(short numOfMembers, double memberPerformance, String gameTitle, short numberOfBuyer, String inputActor, short inputMemberOfStaff, double inputRatingMovie) {

        super(numOfMembers, memberPerformance, gameTitle, numberOfBuyer);

        this.actor = inputActor;

        this.memberOfStaff = inputMemberOfStaff;

        this.ratingMovie = inputRatingMovie;

    }


    @Override

    public void movieInfo() {

        super.gameInfo();

        System.out.println("Actor: " + actor + ", Staff Members: " + memberOfStaff);

        if (userExperience >= 4 && userExperience <= 5) {

            System.out.println("Game ini sangat bagus");

        } else if (userExperience >= 2.5) {

            System.out.println("Game ini cukup baik");

        } else {

            System.out.println("Game tidak bagus");

        }

    }


    @Override

    public void showMessage(String message) {

        System.out.println(message);

    }


    @Override

    public String getGameInfo() {

        return "Movie Adaption: " + actor + ", Rating Movie: " + ratingMovie;

    }


    @Override

    public double calculateCost(double baseCost

) {

        return baseCost + 30;

    }

}


package utstech.child;


import utstech.parent.Game;


public class MovieAdaption extends Game implements GameInterface {

    private String actor;

    private short memberOfStaff;

    private double ratingMovie;

    private double userExperience;


    public MovieAdaption(short numOfMembers, double memberPerformance, String gameTitle, short numberOfBuyer, String inputActor, short inputMemberOfStaff, double inputRatingMovie) {

        super(numOfMembers, memberPerformance, gameTitle, numberOfBuyer);

        this.actor = inputActor;

        this.memberOfStaff = inputMemberOfStaff;

        this.ratingMovie = inputRatingMovie;

    }


    @Override

    public void movieInfo() {

        super.gameInfo();

        System.out.println("Actor: " + actor + ", Staff Members: " + memberOfStaff);

        if (userExperience >= 4 && userExperience <= 5) {

            System.out.println("Game ini sangat bagus");

        } else if (userExperience >= 2.5) {

            System.out.println("Game ini cukup baik");

        } else {

            System.out.println("Game tidak bagus");

        }

    }


    @Override

    public void showMessage(String message) {

        System.out.println(message);

    }


    @Override

    public String getGameInfo() {

        return "Movie Adaption: " + actor + ", Rating Movie: " + ratingMovie;

    }


    @Override

    public double calculateCost(double baseCost

) {

        return baseCost + 30;

    }

}


package utstech.child;


public interface GameInterface {

    void showMessage(String message);

    String getGameInfo();

    double calculateCost(double baseCos

t);

}


import utstech.child.GamePlatform;

import utstech.child.MovieAdaption;

import utstech.parent.Developer;

import utstech.parent.Game;


import java.util.ArrayList;

import java.util.List;


public class App {

    public static void main(String[] args) {

        // Create objects from subclasses

        GamePlatform gamePlatform = new GamePlatform((short) 5, 8.5, "GameTitle1", (short) 5000, "PC", 4.5);

        MovieAdaption movieAdaption = new MovieAdaption((short) 5, 8.5, "GameTitle2", (short) 3000, "Actor1", (short) 10, 4.8);

        

        gamePlatform.platformInfo();

        movieAdaption.movieInfo();


        // Collection of superclass objects

        List<Developer> developers = new ArrayList<>();

        developers.add(new Developer((short) 5, 8.5));

        developers.add(new Game((short) 5, 8.5, "GameTitle3", (short) 2000));


        for (Developer developer : developers) {

            System.out.println(developer.getDeveloperInf

o());

        }

    }

}

google+

linkedin