Evaluasi Tengah Semester Pemrograman Berbasis Objek (PBO) A 2024

Nama : Amadeo Yesa

NRP : 5025231160

Kelas : A

Tahun : 2024


1. Perbedaan antara kelas dan objek adalah kelas merupakan suatu blueprint dari suatu objek. Suatu kelas memiliki property-property dan method-method yang apabila kelas ini diinstansiasi menjadi suatu objek menjadi variabel-variabel dan fungsi-fungsi objek tersebut. Contoh:

Kelas

// Class
class Vehicle {
    private String mode;

    public Vehicle(String mode){
        this.mode = mode;
    }

    public String getMode(){
        return mode;
    }

    public void informationOut(){
        System.out.println("I move from one position to another through...");
    }
}
Di atas merupakan contoh suatu kelas yaitu kelas kendaraan dimana di dalamnya terdapat atribut mode dan beberapa method termasuk method constructornya.

Objek
public class Main {
    public static void main(String[] args){

        // Objects, Instantiation of Classes
        Vehicle boat = new Vehicle("Water");

    }
}
Di atas merupakan contoh instansiasi suatu kelas menjadi suatu objek. Di sini objek dari kelas kendaraan sebagai contoh adalah kapal, yaitu kendaraan dengan media transportasi di air.

2. Aplikasi CoffeeMachine
Class CoffeeMachine
import java.util.Scanner;

public class CoffeeMachine{
    private int balance;

    public CoffeeMachine(){
        this.balance = 0;
    }

    public int getBalance(){
        return balance;
    }

    public void insertMoney(int amount){
        if(amount > 0){
            balance += amount;
            System.out.println("Inserted Money: " + amount);
        }else{
            System.out.println("Insert a positive amount of money!");
        }
    }

    public void start(){
        Scanner scanner = new Scanner(System.in);

        printCoffee();
        System.out.println();
        System.out.println("Please insert your money: ");

        System.out.print("> ");
        int input = scanner.nextInt();

        insertMoney(input);
        
        printCoffee();

        System.out.print("> ");
        input = scanner.nextInt();

        getCoffee(input);
    }

    public void printCoffee(){
        System.out.println();
        System.out.println("Please choose your coffee:");
        System.out.println("1. Americano        Rp 30.000");
        System.out.println("2. Latte            Rp 35.000");
        System.out.println("3. Cappuccino       Rp 35.000");
        System.out.println("4. Espresso         Rp 15.000");
    }

    public void getCoffee(int choice){
        switch (choice) {
            case 1:
                if(balance >= 30000){
                    System.out.println("Here is your Americano");
                    System.out.println("Your change: " + (this.getBalance()-30000));
                }else{
                    System.out.println("Insufficient balance.");
                    System.out.println("Here is your money: " + this.getBalance());
                }
                break;

            case 2:
                if(balance >= 35000){
                    System.out.println("Here is your Latte");
                    System.out.println("Your change: " + (this.getBalance()-35000));
                }else{
                    System.out.println("Insufficient balance.");
                    System.out.println("Here is your money: " + this.getBalance());
                }
                break;

            case 3:
                if(balance >= 35000){
                    System.out.println("Here is your Cappucino");
                    System.out.println("Your change: " + (this.getBalance()-35000));
                }else{
                    System.out.println("Insufficient balance.");
                    System.out.println("Here is your money: " + this.getBalance());
                }
                break;

            case 4:
                if(balance >= 15000){
                    System.out.println("Here is your Espresso");
                    System.out.println("Your change: " + (this.getBalance()-15000));
                }else{
                    System.out.println("Insufficient balance.");
                    System.out.println("Here is your money: " + this.getBalance());
                }
                break;
        
            default:
                break;
        }
    }
}

Main
public class Main {
    public static void main(String[] args) {
        CoffeeMachine machine = new CoffeeMachine();
        machine.start();
    }
}

Hasil




























3. Yang dimaksud dengan enkapsulasi adalah membungkus data dalam satu unit. Dalam hal ini, dalam OOP, data yang dimaksud adalah property dan method yang dibungkus dalam satu kelas. Enkapsulasi memungkinkan data suatu kelas disembunyikan dari kelas lain kecuali dideklarasikan untuk suatu data dapat dibagi dengan kelas lain. Contoh:

class Vehicle {
    private String name;
    private String colour;
    private int age;

    public Vehicle(String name, String colour, int age){
        this.name = name;
        this.colour = colour;
        this.age = age;
    }

    // Getter
    public String getName(){
        return name;
    }

    public String getColour(){
        return colour;
    }

    public int getAge(){
        return age;
    }

    // Setter
    public void setName(String name){
        this.name = name;
    }

    public void setColour(String colour){
        this.colour = colour;
    }

    public void setAge(int age){
        if(age > 0){
            this.age = age;
        }else{
            System.out.println("Age must be positive.");
        }
    }

    public void displayVehicle() {
        System.out.println("Name: " + name + ", Colour: " + colour + ", Age: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle car = new Vehicle("Nissan Skyline R-34", "Blue", 5);

        // Accessing private fields using getters and setters
        System.out.println("Initial Name: " + car.getName());
        System.out.println("Initial Colour: " + car.getName());
        System.out.println("Initial Age: " + car.getAge());

        // Updating fields using setters
        car.setName("Mazda RX-7");
        car.setColour("White");
        car.setAge(8);

        // Display updated car details
        car.displayVehicle();
    }
}

4. Aplikasi Bank
Class BankAccount
public class BankAccount {
    private int balance;

    public BankAccount(){
        this.balance = 0;
    }

    public void deposit(int amount){
        this.balance += amount;
        System.out.println("Deposit success!");
    }

    public void withdrawal(int amount){
        if(this.balance < amount){
            System.out.println("Balance insufficient!");
        }else{
            this.balance -= amount;
            System.out.println("Withdrawal success!");
        }
    }

    public int getBalance(){
        return balance;
    }
}

Class Customer
import java.util.Scanner;

public class Customer {
    private String name;
    private int age;
    private BankAccount account;

    public Customer(String name, int age){
        this.name = name;
        this.age = age;
        this.account = new BankAccount();
    }

    public void start(){
        while(true){
            boolean finished = false;

            System.out.println();
            printOptions();

            Scanner scanner = new Scanner(System.in);

            System.out.print("> ");
            int input = scanner.nextInt();

            switch (input) {
                case 1:
                    System.out.println("Your balance: " + account.getBalance());
                    break;

                case 2:
                    System.out.println("Deposit: ");
                    System.out.print("> ");
                    input = scanner.nextInt();
                    account.deposit(input);
                    System.out.println("Your balance: " + account.getBalance());
                    break;

                case 3:
                    System.out.println("Withdrawal: ");
                    System.out.print("> ");
                    input = scanner.nextInt();
                    account.withdrawal(input);
                    System.out.println("Your balance: " + account.getBalance());
                    break;

                case 4:
                    finished = true;
                    break;
            
                default:
                    break;
            }

            if(finished){
                System.out.println("Thank You!");
                break;
            }
        }
    }

    public void printOptions(){
        System.out.println("Welcome to Lalala Bank!");
        System.out.println("Please choose what you want to do:");
        System.out.println("1. Check balance");
        System.out.println("2. Make a deposit");
        System.out.println("3. Make a withdrawal");
        System.out.println("4. Quit");
    }
}

Main
public class Main {
    public static void main(String[] args) {
        Customer customer = new Customer("Budi", 22);
        customer.start();
    }
}
Hasil





























5. Class Diagram TripApplication

















Dokumentasi Video


Comments

Popular posts from this blog

Tugas Pertemuan 7 Pemrograman Berbasis Objek (PBO) A 2024

Evaluasi Akhir Semester Pemrograman Berbasis Objek (PBO) A 2024