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
Post a Comment