Soal ETS Pemrograman Berbasis Object (A)

Nama: Azka Rizqullah Ramadhani

NRP: 5025231148

Kelas: Pemrograman Berbasis Object (A)


Soal

  1. Jelaskan Perbedaan Object dan Class. Berikan contoh kode sederhana yang menunjukan hubungan antara kelas dan object.
  2. Buat Aplikasi CoffeMachine yang menyediakan Kopi dengan harga tertentu.
  3. Jelaskan Enkapsulasi. Contoh kode menggunakan private dan metode akses (getter dan setter).
  4. Buat 2 kelas, BankAccount dan Customer. Setiap object Customer memiliki akun bank (BankAccount). Buatlah metode dalam Customer yang memungkingkan nasabah untuk melakukan penyetoran (deposit) dan penarikan (withdraw) melalui akun bank mereka. Pastikan interaksi terjadi melalui metode dalam Customer.
  5. Buatlah desain class diagram untuk trip application yang digunakan untuk mengelola perjalanan.

Jawaban

Nomer 1:

Perbedaan mendasar antara class dan object adalah class itu dimana sebuah blueprint dimana nanti didalamnya akan berisi beberapa atribut dan method kemudian object itu adalah benda atau variabel yang kita panggil di program kita.

Contoh Object
User user = new User("azka", 20);
Contoh Class

public class User {
private String name;
private int age;

User(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public int getAge() {
return age;
}
}
Nomer 2:

Kita akan ada 2 class yaitu CoffeeMachine dan Coffee. Dimana CoffeeMachine ibarat sebuah mesin yang kita bisa menambahkan coffee dan menampilkan list coffee. Coffee adalah kelas untuk coffee itu sendiri dimana didalamnya ada atribut dan method getter setternya.

Class CoffeeMachine
import java.util.ArrayList;

public class CoffeMachine {
private final ArrayList<Coffee> coffee;

CoffeMachine(){
this.coffee = new ArrayList<>();
}

public void getList(){
System.out.println("List of Coffe");
for (Coffee value : coffee) {
System.out.println("-----------------");
value.getDetail();
}
System.out.println();
}

public void addCoffe(String name, int price){
Coffee item = new Coffee(name,price);
coffee.add(item);
}

}
Class Coffee
public class Coffee {
private String name;
private int price;

Coffee(String name, int price){
this.name = name;
this.price = price;
}

public String getName(){
return name;
}

public int getPrice(){
return price;
}

public void getDetail(){
System.out.println("name: " + name);
System.out.println("price: " + name);
}
}
Class Main
public class Main {

public static void main(String[] args) {
CoffeMachine machine = new CoffeMachine();

machine.addCoffe("torabika", 5000);
machine.addCoffe("luwak white coffe", 2000);

machine.getList();
}
}



Hasil



Nomer 3

Enkapsulasi ibarat kita membungkus sebuah komponen yang penting didalam sebuah kapsul. Didalam pemrograman object ini enkapsulasi adalah sebuah kelas yang bertindak untuk membungkus atribut dan method didalamnya. Adapun getter adalah memanggil atribut milik class tersebut sedangkan setter adalah meng-set nilai dari atribut di awal konstruksi class.

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

public int getPrice(){
return price;
}
Contoh Setter
Coffee(String name, int price){
this.name = name;
this.price = price;
}
terdapat this yaitu untuk atribut dan di set sesuai value yang dimasukkan pada classnya.

Nomer 4

Class Customer akan bertindak untuk mengambil dan menyetor deposit. Dimana jika jumlah uang yang di input salah maka akan return error. Kemudian di class BankAccount akan ada atribut deposit yaitu berapa banyak deposit kita. Kemudian kita bisa mengubah deposit itu dengan memanggil method yang ada di customer dengan meletakkan bankaccount sebagai atribut kita.

Class BankAccount
public class BankAccount {
private int deposit;

BankAccount(){
this.deposit = 0;
}

public int getDeposit(){
return deposit;
}

public void withdraw(int money){
deposit -= money;
}

public void addDeposit(int money){
deposit += money;
}
}

Class Customer
public class Customer {
private final BankAccount account;

Customer(){
this.account = new BankAccount();
}

public int deposit(){
return account.getDeposit();
}

public void addDeposit(int money){
if(money < 0){
System.out.println("invalid money value");
}else {
account.addDeposit(money);
System.out.println("deposit add money: " + money);
System.out.println("your deposit now: " + account.getDeposit());
}
}

public void withdraw(int money){
int myDeposit = account.getDeposit();
if(myDeposit < money){
System.out.println("not enough money");
System.out.println("your deposit now: " + account.getDeposit());
}else {
account.withdraw(money);
System.out.println("you get money: " + money);
System.out.println("your deposit now: " + account.getDeposit());
}
}
}
Class Main
public class Main {

public static void main(String[] args) {
Customer customer = new Customer();

customer.addDeposit(50000);
customer.withdraw(10000);
customer.withdraw(50000);

customer.deposit();
}
}

Hasil




Nomer 5





Fitur:
  • countTotal() : method ini akan mengambil destinasi dari trip dan costPerKm nya lalu akan dikalikan untuk tiap kilometernya
  • addCustomer() : ini akan menambahkan jumlah customer dari aplikasi
  • printCustomer(): method ini akan menampilan jumlah customer di aplikasi atau trip sekarang
  • isStart(): ini adalah method untuk mengecek apakah jumlah customer sudah memenuhi minimum customer dengan meng-get atribut minimumCustomer dari trip

Komentar

Postingan populer dari blog ini

Implementasi Unit Test

Implementasi Support System

Tugas Ticket Machine