Nama : Afel Allaric Absor
NRP : 5025231140
Kelas : Pemrograman Berbasis Objek (A)
ETS Studi Kasus Coffee Machine
1). Perbedaan kelas dan objek :
- Pengertian :
> Kelas adalah blueprint untuk membuat sesuatu di dalam pemrograman berbasis objek.
> Objek adalah suatu objek yang akan didefinisikan sifat-sifatnya melalui atribut-atribut yang akan diberikan kepada objek tersebut dan objek juga memiliki pengertian sebagai perwujudan dari class.
- Contoh Kode :
___________________________________________________________________________________
class Item {
String nama;
String ukuran;
public static void main(String args[])
{
Item Kotak = new Item();
System.out.println("Nama item : " + Kotak.nama);
System.out.println("Ukuran item : " + Kotak.ukuran);
}
}
___________________________________________________________________________________
Dari kode diatas dapat dilihat bahwa kelas adalah item dan objeknya baru dibuat saat line Item Kotak = new Item(); yaitu objek dari Item bernama Kotak.
2). Membuat aplikasi CoffeeMachine :
___________________________________________________________________________________
import java.util.Scanner;
public class Mesin_kopi_otomatis {
private static final int Harga_kopi = 10000;
private static final int Harga_kopi_susu = 15000;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean start = true;
while (start) {
System.out.println("\nSelamat datang di mesin kopi otomatis!");
System.out.println("\nPilihlah opsi dibawah ini!");
System.out.println("1. Kopi (Rp " + Harga_kopi + ")");
System.out.println("2. Kopi susu (Rp " + Harga_kopi_susu + ")");
System.out.println("3. Exit");
System.out.println("\n >");
int pilih = scanner.nextInt();
switch (pilih) {
case 1:
System.out.println("Anda telah memilih menu kopi.");
bayar(Harga_kopi);
break;
case 2:
System.out.println("Anda telah memilih menu kopi susu.");
bayar(Harga_kopi_susu);
break;
case 3:
System.out.println("Terima kasih telah menggunakan mesin kopi otomatis, silahkan datang kembali");
start = false;
break;
default:
System.out.println("Pilih dari 1-3.");
}
}
scanner.close();
}
public static void bayar(int harga) {
Scanner scanner = new Scanner(System.in);
System.out.print("Mohon Lakukan Pembayaran (10000 untuk kopi dan 15000 untuk kopi susu): ");
int bayar = scanner.nextInt();
if (bayar >= harga) {
int kembalian = bayar - harga;
System.out.println("Pembayaran telah diproses, " + kembalian + " adalah kembalian anda. Selamat menikmati.");
} else {
System.out.println("Pembayaran anda masih kurang, Silahkan pesan kembali.");
}
}
}
___________________________________________________________________________________
Code diatas adalah implementasi kode mesin kopi otomatis yang dimana nanti mesin kopi otomatis akan memberikan 3 pilihan untuk user (Membeli menu kopi, membeli menu kopi susu, dan exit) nantinya jika user memilih untuk membeli menu kopi/kopi susu maka mesin kopi otomatis akan meminta pembayaran sesuai dengan harga kopi dan kopi susu nanti mesin akan menghitung kembaliannya dan menampilkan kembalian dari pembeli. Jika ternyata uangnya kurang maka akan mesin akan memberikan menu awal dan memberi notifikasi bahwa pembayaran kurang.
Harga kopi ditetapkan 10000
Harga kopi susu ditetapkan 15000
3). Apa itu enkapsulasi dan berikan contoh dalam kelas menggunakan modifier private dan metode akses (getter dan setter)
- enkapsulasi adalah cara mendeklarasikan suatu nilai dari atribut class dalam class itu. yang mana data dari atribut tersebut hanya bisa diakses dalam class tersebut.
- Berikut adalah contoh kodenya
___________________________________________________________________________________
public class Kopi {
private String jenis;
private int harga;
public Kopi(String jenis, int harga) {
this.jenis = jenis;
this.harga = harga;
}
public String getJenis() {
return jenis;
}
public void setJenis(String jenis) {
this.jenis = jenis;
}
public int getHarga() {
return harga;
}
public void setHarga(int harga) {
if (harga>0) {
this.harga = harga;
} else {
System.out.println("Harga tidak valid!");
}
}
}
public class Main {
public static void main(String[] args) {
Kopi kopi = new Kopi("Kopi Susu", 18000);
System.out.println("Jenis: " + kopi.getJenis());
System.out.println("Harga: " + kopi.getHarga());
kopi.setJenis("Kopi Hitam");
kopi.setHarga(15000);
System.out.println("Jenis baru: " + kopi.getJenis());
System.out.println("Harga baru: " + kopi.getHarga());
}
}
___________________________________________________________________________________
Dari kode diatas bisa dilihat untuk kopi susu saat system.out.println menggunakan metode getter.
Untuk metode setter bisa dilihat pada line kopi.setJenis("Kopi Hitam"); yang mana line code ini melakukan set nama jenis menjadi Kopi Hitam.
4). Buatlah dua kelas BankAccount dan Customer. Setiap Customer memiliki BankAccount. Buat metode dalam customer melakukan penyetoran (deposit) dan penarikan (withdraw) melalui akun bank mereka.
- BankAccount.java :
___________________________________________________________________________________
public class BankAccount {
private double saldo;
public BankAccount(double saldoAwal) {
this.saldo = saldoAwal;
}
public void deposit(double jumlah) {
if (jumlah > 0) {
saldo += jumlah;
}
}
public boolean withdraw(double jumlah) {
if (jumlah > 0 && jumlah <= saldo) {
saldo -= jumlah;
return true;
}
return false;
}
public double getSaldo() {
return saldo;
}
}
___________________________________________________________________________________
- Customer.java :
___________________________________________________________________________________
public class Customer {
private String nama;
private BankAccount akunBank;
public Customer(String nama, double saldoAwal) {
this.nama = nama;
this.akunBank = new BankAccount(saldoAwal);
}
public void setor(double jumlah) {
if (jumlah > 0) {
akunBank.deposit(jumlah);
System.out.println(nama + " melakukan setoran sebesar Rp " + jumlah);
cekSaldo();
} else {
System.out.println("Jumlah setoran harus lebih dari 0.");
}
}
public void tarikanTunai(double jumlah) {
if (akunBank.withdraw(jumlah)) {
System.out.println(nama + " melakukan penarikan sebesar Rp " + jumlah);
} else {
System.out.println("Penarikan gagal! Saldo tidak mencukupi atau jumlah tidak valid.");
}
cekSaldo();
}
public void cekSaldo() {
System.out.println("Saldo saat ini untuk " + nama + ": Rp " + akunBank.getSaldo());
}
}
___________________________________________________________________________________
- Main.java :
___________________________________________________________________________________
public class Main {
public static void main(String[] args) {
Customer nasabah1 = new Customer("Afel", 75000);
nasabah1.setor(200000);
nasabah1.tarikanTunai(100000);
nasabah1.cekSaldo();
}
}
___________________________________________________________________________________
Bisa dilihat dari 3 kode diatas, interaksi dilakukan lewat metode yang ada di customer yang mana customer membuat objek dari kelas BankAccount.
5). Buatlah Desain Class Diagram untuk Trip Application yang digunakan untuk mengelola perjalanan. Setiap perjalanan memiliki atribut destination, distance, dan costPerKm. Fitur aplikasi sebagai berikut:
a. Menghitung total biaya perjalanan berdasarkan jarak dan biaya per kilometer
b. Menambah penumpang dan mencetak datar penumpang.
c. Membatalkan perjalanan jika penumpang kurang dari jumlah minimum.
Method Mengatur_Status perjalanan untuk mengatur apakah dibatalkan atau tidak
dan Untuk metode lainnya harus mengakses class penumpang.
Komentar
Posting Komentar