ETS Pemrograman Berbasis Objek A

Nama  : Moh. Rizky Rahmadian Makkani

NRP    : 5025231035

Kelas : PBO A

ETS PBO A

1.  Class adalah konsep dasar dalam pemrograman berbasis objek (OOP) yang berfungsi sebagai cetak biru atau blueprint untuk menciptakan objek, membuat pemrograman menjadi lebih terstruktur dan efisien. Analoginya, class seperti gambar desain yang digunakan oleh seorang arsitek untuk membangun sebuah rumah. Gambar arsitektur tersebut mendefinisikan struktur, tata letak, dan bentuk rumah yang akan dibangun. Secara serupa, class dalam pemrograman mendefinisikan struktur dan perilaku dari object yang akan diciptakan.

Sedangkan yang dimaksud dengan objek pada java adalah sekumpulan software yang terdiri dari variable dan method-method yang terkait. Objek juga merupakan benda nyata yang di buat berdasarkan rancangan yang di definisikan di dalam class. Object adalah instance dari class. Jika class secara umum mepresentasikan (template) sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri. Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel, dan lain-lain.

dari contoh di atas animal adalah class dan dog adalah object.

2. 

import java.util.Scanner;

// Kelas untuk mendefinisikan kopi
class Coffee {
private String name;
private double price;

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

public String getName() {
return name;
}

public double getPrice() {
return price;
}
}

// Kelas utama CoffeeMachine
class CoffeeMachine {
// Daftar kopi yang tersedia
private Coffee[] menu = {
new Coffee("Espresso", 15000),
new Coffee("Cappuccino", 20000),
new Coffee("Latte", 18000)
};

// Menampilkan menu kopi
public void displayMenu() {
System.out.println("Menu Kopi:");
for (int i = 0; i < menu.length; i++) {
System.out.println((i + 1) + ". " + menu[i].getName() + " - Rp" + menu[i].getPrice());
}
}

// Menyediakan kopi berdasarkan pilihan pengguna
public void serveCoffee(int choice, double payment) {
if (choice > 0 && choice <= menu.length) {
Coffee selectedCoffee = menu[choice - 1];
double price = selectedCoffee.getPrice();
if (payment >= price) {
System.out.println("Anda telah membeli " + selectedCoffee.getName());
double change = payment - price;
if (change > 0) {
System.out.println("Kembalian Anda: Rp" + change);
}
} else {
System.out.println("Uang Anda tidak cukup untuk membeli " + selectedCoffee.getName());
}
} else {
System.out.println("Pilihan tidak valid!");
}
}
}

// Kelas utama untuk menjalankan program
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
CoffeeMachine coffeeMachine = new CoffeeMachine();

System.out.println("Selamat datang di CoffeeMachine!");

while (true) {
coffeeMachine.displayMenu();
System.out.print("Pilih kopi (masukkan nomor): ");
int choice = scanner.nextInt();

System.out.print("Masukkan jumlah uang: Rp");
double payment = scanner.nextDouble();

coffeeMachine.serveCoffee(choice, payment);

System.out.print("Ingin membeli kopi lagi? (y/n): ");
char repeat = scanner.next().charAt(0);
if (repeat != 'y' && repeat != 'Y') {
System.out.println("Terima kasih telah menggunakan CoffeeMachine!");
break;
}
}
scanner.close();
}
}

3. Encapsulation adalah salah satu konsep dasar OOP yang menyembunyikan detail suatu objek dari akses luar. Encapsulation membantu dalam menciptakan kode yang lebih aman dengan mencegah modifikasi data yang tidak disengaja.

Code Main.java:

public class Main {
public static void main(String[] args) {
// Membuat objek Mahasiswa
Mahasiswa mhs = new Mahasiswa("Budi", 20);

// Mengakses atribut melalui getter
System.out.println("Nama: " + mhs.getNama());
System.out.println("Umur: " + mhs.getUmur());

// Mengubah nilai atribut melalui setter
mhs.setNama("Andi");
mhs.setUmur(21);

System.out.println("\nSetelah melakukan Setter :\n");

// Menampilkan nilai setelah diubah
System.out.println("Nama baru: " + mhs.getNama());
System.out.println("Umur baru: " + mhs.getUmur());
}
}

Code Mahasiswa.java :

public class Mahasiswa {
// Atribut private hanya dapat diakses dalam kelas ini
private String nama;
private int umur;

// Constructor untuk menginisialisasi objek
public Mahasiswa(String nama, int umur) {
this.nama = nama;
this.umur = umur;
}

// Getter untuk mendapatkan nilai nama
public String getNama() {
return nama;
}

// Setter untuk mengubah nilai nama
public void setNama(String nama) {
this.nama = nama;
}

// Getter untuk mendapatkan nilai umur
public int getUmur() {
return umur;
}

// Setter untuk mengubah nilai umur
public void setUmur(int umur) {
// Bisa menambahkan logika tambahan, misalnya validasi
if(umur > 0) {
this.umur = umur;
} else {
System.out.println("Umur tidak valid.");
}
}
}

4. 

import java.util.Scanner;

// Kelas BankAccount
class BankAccount {
private double balance;

public BankAccount(double initialBalance) {
this.balance = initialBalance;
}

public void deposit(double amount) {
if (amount > 0) {
balance += amount;
System.out.println("Rp" + amount + " telah disetor. Saldo saat ini: Rp" + balance);
}
}

public void withdraw(double amount) {
if (amount > 0 && amount <= balance) {
balance -= amount;
System.out.println("Rp" + amount + " telah ditarik. Saldo saat ini: Rp" + balance);
} else if (amount > balance) {
System.out.println("Saldo tidak mencukupi.");
}
}

public double getBalance() {
return balance;
}
}

// Kelas Customer
class Customer {
private String name;
private BankAccount bankAccount;

public Customer(String name, double initialBalance) {
this.name = name;
this.bankAccount = new BankAccount(initialBalance);
}

public void depositToAccount(double amount) {
bankAccount.deposit(amount);
}

public void withdrawFromAccount(double amount) {
bankAccount.withdraw(amount);
}

public void checkBalance() {
System.out.println("Saldo saat ini untuk " + name + ": Rp" + bankAccount.getBalance());
}
}

// Kelas utama untuk menjalankan program
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

// Membuat objek Customer baru menggunakan input dari pengguna
System.out.print("Masukkan nama customer: ");
String name = scanner.nextLine();

System.out.print("Masukkan saldo awal: ");
double initialBalance = scanner.nextDouble();

// Membuat objek Customer baru dengan input dari pengguna
Customer customer = new Customer(name, initialBalance);

// Menampilkan informasi saldo awal
customer.checkBalance();

// Contoh penyetoran
System.out.print("Masukkan jumlah setoran: ");
double depositAmount = scanner.nextDouble();
customer.depositToAccount(depositAmount);

// Menampilkan saldo setelah setoran
customer.checkBalance();

// Contoh penarikan
System.out.print("Masukkan jumlah penarikan: ");
double withdrawAmount = scanner.nextDouble();
customer.withdrawFromAccount(withdrawAmount);

// Menampilkan saldo setelah penarikan
customer.checkBalance();

scanner.close();
}
}

5. 




Video : Link YouTube Video Demo








Komentar

Postingan populer dari blog ini

Tugas 2 PBO : Konsep OOP

Tugas Pertemuan 14 PBO

Tugas Pertemuan 10 PBO