
Menerapkan OOP ke dalam Aplikasi Kasir (Class Barang & Transaksi)
Setelah sebelumnya merapikan kode aplikasi kasir menjadi lebih modular, sekarang kita akan melangkah lebih jauh dengan menerapkan prinsip OOP. Kita akan membuat dua class utama: Barang dan Transaksi. Ini akan membantu kita menyusun kode yang lebih profesional, terstruktur, dan siap dikembangkan menjadi aplikasi lebih besar.
1. Kenapa Perlu OOP?
Dengan OOP, kita bisa memisahkan tanggung jawab antara data dan logika. Barang
akan menyimpan data produk, sedangkan Transaksi
akan menangani proses pembelian dan perhitungan.
2. Class Barang
Kelas ini menyimpan informasi tentang barang yang dibeli.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class Barang { String nama; double harga; int jumlah; public Barang(String nama, double harga, int jumlah) { this.nama = nama; this.harga = harga; this.jumlah = jumlah; } public double total() { return harga * jumlah; } } |
3. Class Transaksi
Kelas ini akan mengatur alur transaksi, termasuk perhitungan pajak dan pencetakan struk.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
public class Transaksi { Barang barang; public Transaksi(Barang barang) { this.barang = barang; } public double hitungPajak() { return barang.total() * 0.1; } public double totalBayar() { return barang.total() + hitungPajak(); } public void cetakStruk() { System.out.println("--- Struk ---"); System.out.println("Barang : " + barang.nama); System.out.println("Harga : " + barang.harga); System.out.println("Jumlah : " + barang.jumlah); System.out.println("Total : " + totalBayar()); } } |
4. Penggunaan di Main
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.Scanner; public class AplikasiKasir { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Nama Barang: "); String nama = input.nextLine(); System.out.print("Harga: "); double harga = input.nextDouble(); System.out.print("Jumlah: "); int jumlah = input.nextInt(); Barang b = new Barang(nama, harga, jumlah); Transaksi t = new Transaksi(b); t.cetakStruk(); } } |
5. Keuntungan dari OOP
- Kode lebih terstruktur dan terpisah dengan jelas
- Mudah dikembangkan ke fitur baru seperti diskon, member, atau cetak nota PDF
- Lebih mudah diuji dan dipelihara
6. Kesimpulan
Dengan mengubah aplikasi kasir menjadi berbasis OOP, kita telah mengambil langkah penting dalam membuat kode yang bersih, modular, dan profesional. Di artikel berikutnya, kita akan menambahkan fitur diskon sebagai simulasi pengembangan fitur baru dalam sistem yang sudah di-OOP-kan.
Ditulis sebagai bagian dari Seri Tujuh: Studi Kasus dan Refactoring Mini Project di Java