ETS PBO Rafie Zaidan U 5025231245

 Nama: Rafie Zaidan U
NRP: 5025231245
Kelas: Pemrograman Berorientasi Objek (PBO A)

Soal ETS

1. Jelaskan perbedaan antara kelas dan objek dalam pemrograman berorientasi objek, Berikan contoh dengan kode sederhana yang menunjukkan hubungan antara kelas dan objek.

Kelas:

  • Sebuah kelas adalah blueprint atau cetak biru yang mendefinisikan sifat dan perilaku objek. Kelas menggambarkan atribut (variabel) dan metode (fungsi) yang akan dimiliki oleh objek.
  • Sebagai contoh, kelas bisa didefinisikan seperti "Mobil", di mana dalam kelas tersebut kita mendeskripsikan atribut seperti warna, merk, dan model, serta perilaku seperti berjalan dan berhenti.

Objek:

  • Sebuah objek adalah instance dari kelas. Ketika kita membuat objek, kita membuat sebuah instance nyata yang mengikuti blueprint dari kelas tersebut. Objek memiliki data nyata dan dapat melakukan fungsi yang telah didefinisikan dalam kelas.
  • Sebagai contoh, sebuah objek bisa menjadi "Mobil A" yang memiliki warna biru dan merk Toyota.

2. Buatlah aplikasi Coffee Machine yang menyediakan kopi dengan harga tertentu:




Penjelasan Kode:

  1. Kelas CoffeeMachine:

    • saldo: Menyimpan saldo saat ini pada mesin kopi.
    • tambahSaldo(double jumlah): Metode untuk menambah saldo ke mesin kopi. Hanya saldo positif yang diperbolehkan.
    • pilihKopi(String jenisKopi): Metode yang memungkinkan pengguna untuk memilih kopi. Jika saldo mencukupi, saldo dikurangi sesuai dengan harga kopi.
    • cekHargaKopi(String jenisKopi): Metode private yang mengembalikan harga kopi berdasarkan pilihan pengguna. Jika kopi tidak tersedia, metode ini mengembalikan 0.
    • cekSaldo(): Menampilkan saldo saat ini di mesin kopi.
  2. Kelas Main:

    • Program utama yang menampilkan menu interaktif kepada pengguna untuk memilih berbagai opsi: menambah saldo, memilih kopi, mengecek saldo, atau keluar dari aplikasi.
  3. Alur Penggunaan:

    • Pengguna dapat menambah saldo ke mesin kopi.
    • Pengguna memilih kopi dari daftar pilihan (Espresso, Latte, Cappuccino).
    • Jika saldo mencukupi, pengguna akan mendapatkan kopi yang dipilih, dan saldo akan berkurang.
    • Pengguna dapat mengecek saldo kapan saja.
    • Program berlanjut sampai pengguna memilih opsi untuk keluar.
Output Code: 


3. Apa yang dimaksud dengan enkapsulasi dalam pemrograman berorientasi objek? Berikan contoh bagaimana enkapsulasi diterapkan dalam kelas menggunakan modifier private dan metode akses )getter dan setter)
Enkapsulasi adalah salah satu prinsip fundamental dalam pemrograman berorientasi objek (OOP). Enkapsulasi berarti membungkus data (atribut) dan perilaku (metode) dari suatu objek sehingga akses ke data tersebut dibatasi. Tujuan utamanya adalah untuk melindungi data agar tidak diakses atau dimodifikasi secara langsung dari luar kelas, dan untuk menjaga integritas data.

    


4. Buatlah dua kelas, BankAccount dan Customer. Setiap objek Customer memiliki akun bank (BankAccount). Buatlah metode dalam Customer yang memungkinkan nasabah untuk melakukan penyetoran (deposit) dan penarikan (withdraw) melalui akun bank mereka. Pastikan interaksi terjadi melalui metode dalam Customer

Berikut adalahj implementasi dua kelas yaitu BankAccount dan juga Customer, di mana setiap objek Customer memiliki akun bank (objek BankAcoount). Customer memiliki metode untuk melakukan penyetoran (deposit) dan penarikan (withdraw) ke akun bank lainnya melalui metode kelas Customer

 



Contoh Output: 


Penjelasan:

  1. Kelas BankAccount:

    • saldo: Atribut private yang menyimpan saldo akun bank.
    • deposit(double jumlah): Metode untuk menambahkan sejumlah uang ke saldo. Memeriksa apakah jumlah valid (> 0).
    • withdraw(double jumlah): Metode untuk mengurangi saldo dengan memeriksa apakah jumlah yang diminta valid (lebih besar dari 0 dan tidak melebihi saldo).
    • getSaldo(): Metode untuk mendapatkan saldo saat ini.
  2. Kelas Customer:

    • nama: Atribut private yang menyimpan nama nasabah.
    • akunBank: Setiap Customer memiliki satu objek BankAccount yang merepresentasikan akun bank milik nasabah.
    • deposit(double jumlah): Metode untuk melakukan deposit melalui akun bank nasabah. Metode ini memanggil metode deposit() dari kelas BankAccount.
    • withdraw(double jumlah): Metode untuk melakukan penarikan. Ini juga memanggil metode withdraw() dari kelas BankAccount.
    • cekSaldo(): Metode untuk mengecek saldo akun bank nasabah.
  3. Interaksi melalui Customer:

    • Saat nasabah ingin melakukan penyetoran atau penarikan, mereka tidak langsung berinteraksi dengan kelas BankAccount, melainkan melalui metode Customer yang mengelola akun bank mereka. Ini adalah penerapan enkapsulasi.

5. Buatlah Desain Class Diagram unutk Trip Application yang digunakan untuk mengelola perjalanan. Setiap perjalanan memiliki atribut destination, distance, dan costPerKm. Fitur aplikasi sebagai berikut:
a. Menghitung totoal biaya perjalanan berdasarkan jarak dan biaya per kilometer
b. Menambah penumpang dan mencetak daftar penumpang
c. Membatalkan perjalanan jika penumpang kurang dari jumlah minimum


Penjelasan:

  1. Kelas Trip:

    • Menyimpan informasi perjalanan seperti tujuan (destination), jarak (distance), biaya per kilometer (costPerKm), dan daftar penumpang (passengers).
    • Kelas ini juga memiliki metode untuk menghitung total biaya perjalanan (calculateTotalCost()), menambah penumpang (addPassenger()), mencetak daftar penumpang (printPassengerList()), dan membatalkan perjalanan (cancelTrip()) jika jumlah penumpang kurang dari batas minimum (minPassengers).
  2. Kelas Passenger:

    • Menyimpan informasi tentang penumpang, yaitu nama penumpang (name). Kelas ini hanya digunakan untuk representasi penumpang yang akan ditambahkan ke dalam perjalanan.

Penjelasan Fitur Aplikasi:

  • Menghitung Total Biaya: Atribut distance dan costPerKm digunakan untuk menghitung biaya perjalanan dalam metode calculateTotalCost().
  • Menambah Penumpang dan Mencetak Daftar Penumpang: Penumpang dapat ditambahkan melalui metode addPassenger(), dan daftar penumpang dapat dicetak menggunakan printPassengerList().
  • Membatalkan Perjalanan: Metode cancelTrip() memeriksa apakah jumlah penumpang lebih kecil dari jumlah minimal (minPassengers), dan jika demikian, perjalanan dibatalkan.

Desain ini memungkinkan pengelolaan perjalanan secara efisien, mulai dari perhitungan biaya hingga manajemen penumpang dan status perjalanan.



Comments

Popular posts from this blog

Tugas Eksplorasi Perkembangan Teknologi Rafie Zaidan Umara 5025231245

PPB - Pertemuan 10 dan 11 - Marketplace Siswa

Tugas 4 PBO - Clock Display