Menu
CoddyTech

Rekap: Sistem Pembayaran

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 40 dari 87.

challenge icon

Tantangan

Mudah

Mari kita bangun sistem pemrosesan pembayaran lengkap yang menggabungkan semua yang telah kamu pelajari tentang interface di bab ini. Kamu akan membuat sistem fleksibel yang dapat memproses berbagai metode pembayaran secara seragam melalui interface umum.

Kamu akan mengatur kodemu dalam lima file:

  • Payable.java: Definisikan interface inti yang harus diimplementasikan oleh semua metode pembayaran. Interface ini harus mendeklarasikan satu method pay(double amount) yang mengembalikan String untuk menjelaskan tindakan pembayaran.
  • CreditCard.java: Buat class yang mengimplementasikan Payable dan mewakili pembayaran kartu kredit. CreditCard memiliki field cardNumber (String) yang menyimpan 4 digit terakhir. Sertakan constructor untuk menginisialisasinya. Method pay harus mengembalikan: Paid [amount] using Credit Card ending in [cardNumber]
  • PayPal.java: Buat class lain yang mengimplementasikan Payable untuk pembayaran PayPal. Akun PayPal memiliki field email (String). Sertakan constructor untuk menginisialisasinya. Method pay harus mengembalikan: Paid [amount] via PayPal account [email]
  • PaymentProcessor.java: Buat class pemroses yang dapat menangani object Payable apa pun. Class ini harus memiliki method processPayment(Payable paymentMethod, double amount) yang memanggil method pay pada metode pembayaran dan mengembalikan hasilnya. Ini menunjukkan bagaimana interface memungkinkan perilaku polimorfik: pemroses tidak perlu mengetahui tipe pembayaran tertentu!
  • Main.java: Satukan semuanya. Kamu akan menerima tiga input: nomor kartu (4 digit terakhir), alamat email, dan jumlah pembayaran. Buat PaymentProcessor, lalu gunakan untuk memproses pembayaran dengan akun CreditCard dan PayPal untuk jumlah yang diberikan. Cetak setiap hasil pada baris terpisah.

Kamu akan menerima tiga input: 4 digit terakhir nomor kartu (String), email PayPal (String), dan jumlah pembayaran (double).

Format jumlah dengan dua angka desimal pada outputmu. Perhatikan bagaimana PaymentProcessor yang sama menangani tipe pembayaran yang benar-benar berbeda dengan memanfaatkan interface!

Coba sendiri

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Baca input
        String cardNumber = scanner.nextLine();  // 4 digit terakhir
        String email = scanner.nextLine();       // Email PayPal
        double amount = scanner.nextDouble();    // Jumlah pembayaran
        
        // TODO: Buat PaymentProcessor
        
        // TODO: Buat CreditCard dengan cardNumber
        
        // TODO: Buat akun PayPal dengan email
        
        // TODO: Proses pembayaran dengan CreditCard dan cetak hasilnya
        
        // TODO: Proses pembayaran dengan PayPal dan cetak hasilnya
    }
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Java online