Skip to main content

Soal 1 - Perpustakaan

Di sebuah perpustakaan, terdapata Buku dan Pustakawan. Setiap buku memiliki beberapa properti yang menjelaskan tentang buku tersebut, seperti judul, pengarang, dan tahun terbit. Sedangkan setiap pustakawan memiliki beberapa properti yang menjelaskan identitas mereka, seperti nama dan ID karyawan.Tugas Anda adalah mendesain dua class, Buku dan Pustakawan, serta mengatur objek-objek dari kedua class tersebut di dalam class MainPerpustakaan.
1

Class Buku

  • Properti:
    • judul (String): Judul buku.
    • pengarang (String): Nama pengarang buku.
    • tahunTerbit (int): Tahun terbit buku.
2

Class Pustakawan

  • Properti:
    • nama (String): Nama pustakawan.
    • idKaryawan (String): ID unik karyawan pustakawan.
Buatlah sebuah Main Class bernama MainPerpustakaan yang akan mendemonstrasikan pembuatan dan penggunaan objek dari class Buku dan Pustakawan. Ikuti instruksi berikut:
1

Membuat Objek Buku

  • Buat objek pertama dari class Buku dan ubah properti sebagai berikut:
    • Judul Buku: “Pemrograman Java”
    • Pengarang: “John Doe”
    • Tahun Terbit: 2020
  • Buat objek kedua dari class Buku dan ubah properti sebagai berikut:
    • Judul Buku: “Algoritma dan Struktur Data”
    • Pengarang: “Jane Smith”
    • Tahun Terbit: 2022
2

Membuat Objek Pustakawan

  • Buat objek pertama dari class Pustakawan dan ubah properti sebagai berikut:
    • Nama: “Andi”
    • ID Karyawan: “P123”
  • Buat objek kedua dari class Pustakawan dan ubah properti sebagai berikut:
    • Nama: “Siti”
    • ID Karyawan: “P456”
3

Menampilkan Informasi

  • Setelah objek-objek tersebut dibuat dan propertinya diatur, tampilkan informasi dari masing-masing objek ke layar dengan format berikut:
    • Untuk setiap objek buku, tampilkan: Buku [Nomor]: Judul: [judul], Pengarang: [pengarang], Tahun Terbit: [tahunTerbit]
    • Untuk setiap objek pustakawan, tampilkan: Pustakawan [Nomor]: Nama: [nama], ID Karyawan: [idKaryawan]

Contoh Output yang Diharapkan:

Buku 1: Judul: Pemrograman Java, Pengarang: John Doe, Tahun Terbit: 2020
Buku 2: Judul: Algoritma dan Struktur Data, Pengarang: Jane Smith, Tahun Terbit: 2022
Pustakawan 1: Nama: Andi, ID Karyawan: P123
Pustakawan 2: Nama: Siti, ID Karyawan: P456

Soal 2 - Toko Elektronik

Di sebuah toko elektronik, terdapat smartphone yang memiliki informasi seperti merk, model, kapasitas penyimpanan, dan harga. Toko tersebut ingin menampilkan informasi produk serta menghitung harga smartphone berdasarkan persentase diskon.Tugas Anda adalah membuat class untuk smartphone tersebut, menambahkan constructor untuk inisialisasi objek, serta method untuk menampilkan informasi dan menghitung diskon.
1

Class Smartphone

  • Properti:
    • merk (String): Merk smartphone (misalnya “Samsung”, “Apple”).
    • model (String): Model smartphone (misalnya “Galaxy S23”, “iPhone 14”).
    • kapasitasPenyimpanan (int): Kapasitas penyimpanan smartphone (misalnya 128, 256).
    • harga (double): Harga smartphone dalam satuan IDR (misaalnya 10000000).
  • Constructor:
    • Constructor untuk menginisialisasi semua properti objek (merk, model, kapasitasPenyimpanan, harga).
  • Method:
    • tampilkanInfomasi(): Menampilkan informasi lengkap tentang smartphone.
    • hitungHargaDiskon(double persenDiskon): Menghitung harga diskon berdasarkan persentase diskon yang diberikan.
Buatlah sebuah Main Class bernama MainTokoElektronik yang akan mendemonstrasikan pembuatan dan penggunaan objek dari class Smartphone dan Laptop. Ikuti instruksi berikut:
1

Membuat Objek Smartphone

  • Buat objek pertama dari class Smartphone dengan informasi berikut:
    • Merk: “Samsung”
    • Model: “Galaxy S23”
    • Kapasitas Penyimpanan: 256 GB
    • Harga: 15000000
  • Buat objek kedua dari class Smartphone dengan informasi berikut:
    • Merk: “Apple”
    • Model: “iPhone 14”
    • Kapasitas Penyimpanan: 128 GB
    • Harga: 17000000
2

Menggunakan Method

  • Tampilkan informasi tentang setiap smartphone menggunakan method tampilkanInformasi().
  • Hitung dan tampilkan harga diskon (misalnya diskon 10%) untuk setiap produk menggunakan method hitungHargaDiskon(double persenDiskon).

Contoh Output yang Diharapkan:

Smartphone 1: Merk: Samsung, Model: Galaxy S23, Kapasitas Penyimpanan: 256 GB, Harga: 15000000
Harga diskon 10%: 13500000.0

Smartphone 2: Merk: Apple, Model: iPhone 14, Kapasitas Penyimpanan: 128 GB, Harga: 17000000
Harga diskon 10%: 15300000.0

Soal 3 - Aplikasi Bank

Di dalam aplikasi bank, setiap pengguna memiliki Akun yang menyimpan informasi sensitif seperti nomor akun, nama, dan saldo. Setiap akun pengguna memiliki fitur-fitur berikut:
  1. Nomor Akun yang hanya bisa dibaca setelah akun dibuat dan tidak bisa diubah.
  2. Nama Pengguna yang dapat diubah oleh pengguna kapan saja.
  3. Saldo yang dapat ditambahkan atau dikurangi melalui transaksi, namun hanya dapat diakses melalui method tertentu untuk menjaga keamanan.
Anda diminta untuk membuat class AkunPengguna yang menggunakan access modifiers untuk melindungi informasi sensitif, dan menambahkan getter dan setter untuk mengakses dan memodifikasi data pengguna.
1

Class AkunPengguna

  • Properti:
    • nomorAkun (String): Nomor akun pengguna, bersifat final (tidak dapat diubah setelah objek dibuat).
    • nama (String): Nama pengguna, dapat diubah setelah objek dibuat.
    • saldo (double): Saldo pengguna dalam rupiah, dapat diubah melalui transaksi.
  • Constructor:
    • Constructor untuk menginisialisasi nomorAkun, nama, dan saldo awal saat objek dibuat.
  • Method:
    • getNomorAkun(): Menampilkan nomor akun (getter).
    • getNama(): Menampilkan nama pengguna (getter).
    • setNama(String nama): Mengubah nama pengguna (setter).
    • getSaldo(): Menampilkan saldo pengguna (getter).
    • tambahSaldo(double jumlah): Menambahkan sejumlah uang ke saldo pengguna.
    • kurangiSaldo(double jumlah): Mengurangi sejumlah uang dari saldo pengguna.
Buatlah sebuah Main Class bernama MainAplikasiBank yang akan mendemonstrasikan pembuatan objek AkunPengguna dan penggunaan method getter, setter, dan transaksi saldo. Ikuti instruksi berikut:
1

Membuat Objek Akun Pengguna

  • Buat objek pertama dari class AkunPengguna dengan informasi berikut:
    • Nomor Akun: “12345”
    • Nama: “Budi Santoso”
    • Saldo: 500000
  • Buat objek kedua dari class AkunPengguna dengan informasi berikut:
    • Nomor Akun: “67890”
    • Nama: “Sarah Wijaya”
    • Saldo: 750000
2

Menggunakan Getter dan Setter

  • Tampilkan nomor akun dan nama untuk kedua akun menggunakan method getNomorAkun() dan getNama().
  • Ubah nama untuk akun pertama menjadi “Budi Setiawan” menggunakan method setNama().
  • Tampilkan saldo untuk kedua akun menggunakan method getSaldo().
3

Transaksi Saldo

  • Tambahkan saldo sebesar 100000 untuk akun pertama menggunakan method tambahSaldo().
  • Kurangi saldo sebesar 200000 untuk akun kedua menggunakan method kurangiSaldo().
4

Tampilkan Semua Informasi

  • Tampilkan nomor akun, nama, dan saldo setelah transaksi untuk kedua akun.

Contoh Output yang Diharapkan:

Akun 1: Nomor Akun: 12345, Nama: Budi Santoso, Saldo: 500000
Akun 2: Nomor Akun: 67890, Nama: Sarah Wijaya, Saldo: 750000

Setelah update nama:
Akun 1: Nomor Akun: 12345, Nama: Budi Setiawan, Saldo: 500000

Setelah transaksi saldo:
Akun 1: Nomor Akun: 12345, Nama: Budi Setiawan, Saldo: 600000
Akun 2: Nomor Akun: 67890, Nama: Sarah Wijaya, Saldo: 550000

Soal 4 - Sistem Manajemen Proyek

Di sebuah perusahaan, setiap proyek yang dijalankan memiliki beberapa elemen penting, yaitu tim, budget, dan durasi proyek. Setiap proyek terdiri dari beberapa tugas yang perlu diselesaikan oleh tim. Setiap tugas memiliki informasi tentang nama, tugas, tanggal deadline, dan status apakah tugas tersebut sudah selesai atau belum.Anda diminta untuk membuat sistem yang mengelola Proyek dan Tugas menggunakan Object Composition, di mana setiap Proyek akan memiliki beberapa Tugas dan setiap Tugas akan terkait dengan atribut nama tugas, deadline, dan status. Tim yang bekerja pada proyek juga harus dicatat sebagai bagian dari proyek tersebut.
1

Class Tugas

  • Properti:
    • namaTugas (String): Nama tugas yang harus dikerjakan (misalnya “Desain Website”).
    • deadline (String): Tanggal deadline tugas dalam format “dd-mm-yyyy” (misalnya “25-12-2024”).
    • status (boolean): Status apakah tugas sudah selesai (true jika selesai, false jika belum).
  • Constructor:
    • Constructor untuk menginisialisasi namaTugas, deadline, dan status.
  • Method:
    • getNamaTugas(): Mengambil nama tugas (getter).
    • setNamaTugas(String namaTugas): Mengubah nama tugas (setter).
    • getDeadline(): Mengambil deadline tugas (getter).
    • setDeadline(String deadline): Mengubah deadline tugas (setter).
    • isSelesai(): Menampilkan status apakah tugas sudah selesai atau belum (getter).
    • setStatus(boolean status): Mengubah status tugas (setter).
2

Class Tim

  • Properti:
    • namaTim (String): Nama tim yang bekerja pada proyek (misalnya “Tim Pengembangan”).
    • anggota (List): Daftar nama anggota tim yang bekerja pada proyek ini.
  • Constructor:
    • Constructor untuk menginisialisasi namaTim dan anggota (list nama anggota).
  • Method:
    • getNamaTim(): Mengambil nama tim (getter).
    • setNamaTim(String namaTim): Mengubah nama tim (setter).
    • getAnggota(): Mengambil daftar anggota tim (getter).
    • setAnggota(List<String> anggota): Mengubah daftar anggota tim (setter).
    • tambahAnggota(String namaAnggota): Menambahkan anggota baru ke dalam tim.
3

Class Proyek

  • Properti:
    • namaProyek (String): Nama proyek (misalnya “Proyek Website Baru”).
    • budget (double): Anggaran yang dialokasikan untuk proyek ini.
    • durasi (int): Durasi proyek dalam hari (misalnya 30 hari).
    • timProyek (Tim): Tim yang bekerja pada proyek ini (objek dari class Tim).
    • daftarTugas (List): Daftar tugas yang harus diselesaikan dalam proyek ini (list objek Tugas).
  • Constructor:
    • Constructor untuk menginisialisasi namaProyek, budget, durasi, timProyek, dan daftarTugas.
  • Method:
    • getNamaProyek(): Mengambil nama proyek (getter).
    • setNamaProyek(String namaProyek): Mengubah nama proyek (setter).
    • getBudget(): Mengambil budget proyek (getter).
    • setBudget(double budget): Mengubah budget proyek (setter).
    • getDurasi(): Mengambil durasi proyek (getter).
    • setDurasi(int durasi): Mengubah durasi proyek (setter).
    • getTimProyek(): Mengambil tim yang bekerja pada proyek (getter).
    • setTimProyek(Tim timProyek): Mengubah tim proyek (setter).
    • getDaftarTugas(): Mengambil daftar tugas yang ada dalam proyek (getter).
    • setDaftarTugas(List<Tugas> daftarTugas): Mengubah daftar tugas proyek (setter).
    • tambahTugas(Tugas tugas): Menambahkan tugas baru ke dalam proyek.
    • tambahAnggotaKeTim(String namaAnggota): Menambahkan anggota baru ke tim proyek.
    • cekProyekSelesai(): Mengecek apakah semua tugas dalam proyek sudah selesai (mengembalikan true jika semua tugas selesai, false jika ada tugas yang belum selesai).
Buatlah sebuah Main Class bernama MainSistemManajemenProyek yang akan mendemonstrasikan pembuatan objek Proyek, Tim, dan Tugas, serta penggunaan method Object Composition untuk mengelola proyek dan tugas. Ikuti instruksi berikut:
1

Membuat Objek Tim

  • Buat objek Tim untuk proyek dengan nama tim “Tim Pengembangan” dan daftar anggota sebagai berikut: [“Budi”, “Siti”, “Joko”].
2

Membuat Objek Tugas

  • Buat beberapa objek Tugas dengan informasi berikut:
    1. Tugas 1: Nama tugas: “Desain Website”, Deadline: “10-12-2024”, Status: belum selesai.
    2. Tugas 2: Nama tugas: “Pengembangan Fitur”, Deadline: “20-12-2024”, Status: belum selesai.
    3. Tugas 3: Nama tugas: “Pengujian Website”, Deadline: “25-12-2024”, Status: selesai.
3

Membuat Objek Proyek

  • Buat objek Proyek dengan informasi berikut:
    • Nama Proyek: “Proyek Website Baru”
    • Budget: 50000000 (50 juta)
    • Durasi: 30 hari
    • Tim yang bekerja: Tim Pengembangan
    • Daftar Tugas: Tugas 1, Tugas 2, Tugas 3
4

Menggunakan Method

  • Tampilkan informasi proyek, tim, dan tugas menggunakan method getter.
  • Tambahkan satu tugas baru dengan nama “Pemasaran Website”, deadline “30-12-2024”, dan status belum selesai.
  • Tambahkan satu anggota baru bernama “Ana” ke dalam tim proyek.
  • Cek apakah proyek sudah selesai memanggil method cekProyekSelesai().

Contoh Output yang Diharapkan:

Proyek: Proyek Website Baru, Budget: 50000000, Durasi: 30 hari
Tim: Tim Pengembangan
Anggota Tim: [Budi, Siti, Joko]
Tugas dalam Proyek:
1. Desain Website, Deadline: 10-12-2024, Status: Belum Selesai
2. Pengembangan Fitur, Deadline: 20-12-2024, Status: Belum Selesai
3. Pengujian Website, Deadline: 25-12-2024, Status: Selesai

Menambahkan tugas baru: Pemasaran Website, Deadline: 30-12-2024
Menambahkan anggota baru: Ana

Setelah perubahan:
Anggota Tim: [Budi, Siti, Joko, Ana]

Proyek Selesai: false

Soal 5 - Sistem Manajemen Kendaraan

Di sebuah perusahaan penyewaaan kendaraan, terdapat beberapa jenis kendaraan yang dapat disewa, seperti Mobil dan Motor. Setiap kendaraan memiliki informasi dasar seperti nomor plat, merk, dan tahun pembuatan. Namun, mobil dan motor memiliki karakteristik tambahan yang berbeda. Mobil memiliki jumlah pintu dan kapasitas penumpang, sedangan motor memiliki jenis transmisi (manual atau otomatis) dan kapasitas mesin.Anda diminta untuk membuat sistem manajemen kendaraan yang menggunakan konsep Inheritance. Anda akan membuat class dasar Kendaraan, yang memiliki atribut umum untuk semua kendaraan, dan dua class turunan Mobil dan Motor yang menambahkan atribut khusus sesuai dengan tipe kendaraan.
1

Class Kendaraan (superclass)

  • Properti:
    • noPlat (String): Nomor plat kendaraan (misalnya “B 1234 XYZ”).
    • merk (String): Merk kendaraan (misalnya “Toyota”).
    • tahunPembuatan (int): Tahun pembuatan kendaraan (misalnya 2020).
  • Constructor:
    • Constructor untuk menginisialisasi noPlat, merk, dan tahunPembuatan.
  • Method:
    • getNoPlat(): Mengambil nomor plat kendaraan (getter).
    • setNoPlat(String noPlat): Mengubah nomor plat kendaraan (setter).
    • getMerk(): Mengambil merk kendaraan (getter).
    • setMerk(String merk): Mengubah merk kendaraan (setter).
    • getTahunPembuatan(): Mengambil tahun pembuatan kendaraan (getter).
    • setTahunPembuatan(int tahunPembuatan): Mengubah tahun pembuatan kendaraan (setter).
    • tampilkanInfo(): Menampilkan informasi dasar kendaraan (nomor plat, merk, tahun pembuatan).
2

Class Mobil (subclass dari Kendaraan)

  • Properti:
    • jumlahPintu (int): Jumlah pintu mobil (misalnya 4).
    • kapasitasPenumpang (int): Kapasitas penumpang mobil (misalnya 5).
  • Constructor:
    • Constructor untuk menginisialisasi noPlat, merk, tahunPembuatan, jumlahPintu, dan kapasitasPenumpang.
  • Method:
    • getJumlahPintu(): Mengambil jumlah pintu mobil (getter).
    • setJumlahPintu(int jumlahPintu): Mengubah jumlah pintu mobil (setter).
    • getKapasitasPenumpang(): Mengambil kapasitas penumpang mobil (getter).
    • setKapasitasPenumpang(int kapasitasPenumpang): Mengubah kapasitas penumpang mobil (setter).
    • tampilkanInfo(): Menampilkan informasi lengkap kendaraan mobil, termasuk atribut dasar dari superclass Kendaraan dan atribut tambahan mobil.
3

Class Motor (subclass dari Kendaraan)

  • Properti:
    • jenisTransmisi (String): Jenis transmisi motor (misalnya “Manual” atau “Otomatis”).
    • kapasitasMesin (double): Kapasitas mesin motor dalam liter (misalnya 1.5L).
  • Constructor:
    • Constructor untuk menginisialisasi noPlat, merk, tahunPembuatan, jenisTransmisi, dan kapasitasMesin.
  • Method:
    • getJenisTransmisi(): Mengambil jenis transmisi motor (getter).
    • setJenisTransmisi(String jenisTransmisi): Mengubah jenis transmisi motor (setter).
    • getKapasitasMesin(): Mengambil kapasitas mesin motor (getter).
    • setKapasitasMesin(double kapasitasMesin): Mengubah kapasitas mesin motor (setter).
    • tampilkanInfo(): Menampilkan informasi lengkap kendaraan motor, termasuk atribut dasar dari superclass Kendaraan dan atribut tambahan motor.
Buatlah sebuah Main Class bernama MainSistemManajemenKendaraan yang akan mendemonstrasikan pembuatan objek Kendaraan, Mobil, dan Motor, serta penggunaan konsep Inheritance. Ikuti instruksi berikut:
1

Membuat Objek Kendaraan

  • Buat objek Kendaraan dengan informasi berikut:
    • Nomor Plat: “B 4321 XYZ”
    • Merk: “Honda”
    • Tahun Pembuatan: 2019
2

Membuat Objek mobil

  • Buat objek Mobil dengan informasi berikut:
    • Nomor Plat: “B 1234 ABC”
    • Merk: “Toyota”
    • Tahun Pembuatan: 2021
    • Jumlah Pintu: 4
    • Kapasitas Penumpang: 5
3

Membuat Objek Motor

  • Buat objek Motor dengan informasi berikut:
    • Nomor Plat: “B 5678 DEF”
    • Merk: “Yamaha”
    • Tahun Pembuatan: 2022
    • Jenis Transmisi: “Manual”
    • Kapasitas Mesin: 1.2L
4

Menggunakan Method

  • Tampilkan informasi dari objek Kendaraan, Mobil, dan Motor menggunakan method tampilkanInfo().
  • Ubah nomor plat dari objek Mobil menjadi “B 9999 XYZ”.
  • Ubah kapasitas mesin dari objek Motor menjadi 1.5L dan tampilkan kembali informasi motor tersebut.

Contoh Output yang Diharapkan:

Kendaraan: No Plat: B 4321 XYZ, Merk: Honda, Tahun Pembuatan: 2019
Mobil: No Plat: B 1234 ABC, Merk: Toyota, Tahun Pembuatan: 2021, Jumlah Pintu: 4, Kapasitas Penumpang: 5
Motor: No Plat: B 5678 DEF, Merk: Yamaha, Tahun Pembuatan: 2022, Jenis Transmisi: Manual, Kapasitas Mesin: 1.2L

Setelah Perubahan:
Mobil Baru: No Plat: B 9999 XYZ, Merk: Toyota, Tahun Pembuatan: 2021, Jumlah Pintu: 4, Kapasitas Penumpang: 5
Motor Baru: No Plat: B 5678 DEF, Merk: Yamaha, Tahun Pembuatan: 2022, Jenis Transmisi: Manual, Kapasitas Mesin: 1.5L

Soal 6 - Sistem Pembayaran Toko Online

Di sebuah toko online, terdapat berbagai metode pembayaran yang dapat digunakan oleh pelanggan. Setiap metode pembayaran memiliki cara yang berbeda untuk memproses transaksi. Misalnya, Pembayaran dengan Kartu Kredit akan memerlukan informasi kartu kredit, sementara Pembayaran dengan Transfer Bank akan memerlukan nomor rekening bank. Semua metode pembayaran ini memiliki fungsi dasar untuk memproses pembayaran, tetapi implementasinya berbeda tergantung pada jenis metode pembayaran.Anda diminta untuk membuat sistem pembayaran yang menggunakan konsep Polymorphism. Anda akan membuat class Pembayaran sebagai class dasar yang memiliki method prosesPembayaran(), dan class turunan KartuKredit dan TransferBank yang mengimplementasikan cara masing-masing untuk memproses pembayaran. Anda akan mendemonstrasikan penggunaan polymorphism melalui overriding method prosesPembayaran().
1

Class Pembayaran (superclass)

  • Properti:
    • jumlah (double): Jumlah yang akan dibayar (misalnya 100000).
  • Constructor:
    • Constructor untuk menginisialisasi jumlah.
  • Method:
    • getJumlah(): Mengambil jumlah pembayaran (getter).
    • setJumlah(double jumlah): Mengubah jumlah pembayaran (setter).
    • prosesPembayaran(): Method umum untuk memproses pembayaran yang akan di-override pada subclass. Pada class ini, implementasinya kosong (akan di-override pada subclass).
2

Class KartuKredit (subclass dari Pembayaran)

  • Properti:
    • nomorKartu (String): Nomor kartu kredit pelanggan.
    • namaPemegangKartu (String): Nama pemegang kartu kredit.
  • Constructor:
    • Constructor untuk menginisialisasi jumlah, nomorKartu, dan namaPemegangKartu.
  • Method:
    • prosesPembayaran(): Implementasi spesifik untuk pembayaran dengan Kartu Kredit: Menampilkan pesan “Pembayaran dilakukan dengan Kartu Kredit: [nomor kartu].”
    • getNomorKartu(): Mengambil nomor kartu kredit (getter).
    • setNomorKartu(String nomorKartu): Mengubah nomor kartu kredit (setter).
    • getNamaPemegangKartu(): Mengambil nama pemegang kartu kredit (getter).
    • setNamaPemegangKartu(String namaPemegangKartu): Mengubah nama pemegang kartu kredit (setter).
3

Class TransferBank (subclass dari Pembayaran)

  • Properti:
    • nomorRekening (String): Nomor rekening bank pelanggan.
    • namaBank (String): Nama bank tempat rekening tersebut berada.
  • Constructor:
    • Constructor untuk menginisialisasi jumlah, nomorRekening, dan namaBank.
  • Method:
    • prosesPembayaran(): Implementasi spesifik untuk pembayaran dengan Transfer Bank: Menampilkan pesan “Pembayaran dilakukan melalui Transfer Bank ke nomor rekening: [nomor rekening] di [nama bank].”
    • getNomorRekening(): Mengambil nomor rekening bank (getter).
    • setNomorRekening(String nomorRekening): Mengubah nomor rekening bank (setter).
    • getNamaBank(): Mengambil nama bank (getter).
    • setNamaBank(String namaBank): Mengubah nama bank (setter).
Buatlah sebuah Main Class bernama MainSistemPembayaran yang akan mendemonstrasikan penggunaan Polymorphism dengan cara memanggil method prosesPembayaran() pada objek dari berbagai jenis metode pembayaran. Ikuti instruksi berikut:
1

Membuat Objek Pembayaran dengan Kartu Kredit

  • Buat objek KartuKredit dengan informasi berikut:
    • Jumlah: 150000
    • Nomor Kartu: “1234-5678-9101-1121”
    • Nama Pemegang Kartu: “John Doe”
2

Membuat Objek Pembayaran dengan Transfer Bank

  • Buat objek TransferBank dengan informasi berikut:
    • Jumlah: 250000
    • Nomor Rekening: “9876543210”
    • Nama Bank: “Bank Mandiri”
3

Menggunakan Polymorphism

  • Tampilkan informasi dan panggil method prosesPembayaran() untuk masing-masing objek (KartuKredit dan TransferBank).
  • Demonstrasikan polymorphism dengan memanggil prosesPembayaran() pada objek Pembayaran, KartuKredit, dan TransferBank secara bergantian, meskipun mereka memiliki tipe yang berbeda.

Contoh Output yang Diharapkan:

Pembayaran dengan Kartu Kredit:
Pembayaran dilakukan dengan Kartu Kredit: 1234-5678-9101-1121

Pembayaran dengan Transfer Bank:
Pembayaran dilakukan melalui Transfer Bank ke nomor rekening: 9876543210 di Bank Mandiri