Berikut adalah program kasir sederhana yang dibuat untuk mempraktikkan penggunaan berbagai operator dalam Java.
Program ini akan:
- Menghitung total belanja (Aritmatika).
- Memberi diskon jika total belanja di atas 100.000 DAN dia adalah member (Logika & Relasional).
- Mengupdate total belanja dengan diskon (Penugasan Gabungan).
- Mengecek "fitur" apa saja yang didapat pembeli (Bitwise).
- Menampilkan status member (Ternary).
public class TokoJuaraCoding {
public static void main(String args[]) {
// --- 1. SETUP AWAL (Aritmatika & Penugasan) ---
//
int hargaSatuan = 40000;
int jumlahBarang = 3;
int totalBelanja = hargaSatuan * jumlahBarang; // Operator Aritmatika *
boolean isMember = true;
System.out.println("--- Struk Belanja Toko Juara Coding ---");
System.out.println("Total Belanja Awal: Rp " + totalBelanja);
// --- 2. LOGIKA DISKON (Relasional & Logika) ---
// Kita pakai konsep Gerbang AND.
// Diskon hanya jika (totalBelanja > 100000) DAN (isMember == true)
if (totalBelanja > 100000 && isMember) { // Operator Relasional (>) dan Logika (&&)
System.out.println("Selamat! Anda member dan belanja di atas 100rb, dapat diskon 10%!");
// --- 3. PENUGASAN GABUNGAN ---
// Kita potong harganya 10%
// Ini adalah singkatan dari: totalBelanja = totalBelanja - (totalBelanja / 10);
int besarDiskon = totalBelanja / 10;
totalBelanja -= besarDiskon; // Operator Penugasan Gabungan
System.out.println("Total Belanja setelah diskon: Rp " + totalBelanja);
}
// --- 4. PENGECEKAN FITUR (Bitwise) ---
// Bayangkan toko kita punya fitur:
final int FITUR_FREE_ONGKIR = 1; // Biner: 0001
final int FITUR_VOUCHER_CASHBACK = 2; // Biner: 0010
final int FITUR_GARANSI_PLUS = 4; // Biner: 0100
// Pembeli ini kita set mendapatkan Free Ongkir dan Garansi Plus
// Kita pakai bitwise OR untuk "menambahkan" fitur
int fiturPembeli = FITUR_FREE_ONGKIR | FITUR_GARANSI_PLUS; // Hasil: 1 | 4 = 5 (Biner: 0101)
System.out.println("\n--- Pengecekan Fitur (Bitwise) ---");
// Sekarang kita cek apakah dia punya fitur VOUCHER_CASHBACK?
// Kita pakai bitwise AND
// (fiturPembeli & FITUR_VOUCHER_CASHBACK)
// (Biner: 0101 & 0010) -> Hasilnya 0000 (yaitu 0)
boolean dapatCashback = (fiturPembeli & FITUR_VOUCHER_CASHBACK) > 0;
System.out.println("Dapat Voucher Cashback? " + dapatCashback); // Hasilnya: false
// Kita cek apakah dia punya fitur FREE_ONGKIR?
// (fiturPembeli & FITUR_FREE_ONGKIR)
// (Biner: 0101 & 0001) -> Hasilnya 0001 (yaitu 1)
boolean dapatFreeOngkir = (fiturPembeli & FITUR_FREE_ONGKIR) > 0;
System.out.println("Dapat Free Ongkir? " + dapatFreeOngkir); // Hasilnya: true
// --- 5. OPERATOR TERNARY ---
// Ini adalah operator yang ada di daftar, bentuknya (kondisi ? benar : salah)
// Kita gunakan untuk mencetak status member
String status = (isMember) ? "Member Premium" : "Non-Member";
System.out.println("\nStatus Pelanggan: " + status);
}
}-
Operator Aritmatika & Penugasan (
*,=): Bagianint totalBelanja = hargaSatuan * jumlahBarang;adalah inti dari program kasir, menggunakan perkalian dan penetapan nilai. -
Operator Relasional & Logika (
>,&&): Bagianif (totalBelanja > 100000 && isMember)adalah logika bisnis yang sesungguhnya. Ini menerapkan "Gerbang AND" dari materi Anda. Diskon hanya aktif jika KEDUA kondisi (belanja > 100rb DAN status member) terpenuhi. -
Operator Penugasan Gabungan (
-=): BagiantotalBelanja -= besarDiskon;adalah cara efisien untuk meng-update nilai variabel. Ini jauh lebih umum dipakai daripada menulistotalBelanja = totalBelanja - besarDiskon;. -
Operator Bitwise (
|,&): Ini adalah bagian paling "abstrak" tapi sangat berguna. Bayangkan Anda punya banyak setelan (Ya/Tidak) untuk seorang user. Daripada membuat 10 variabelboolean, Anda bisa pakai 1 variabelint.- Bitwise
|(OR): Digunakan untuk menggabungkan atau menyalakan fitur. - Bitwise
&(AND): Digunakan untuk mengecek apakah suatu fitur spesifik sedang menyala.
- Bitwise
-
Operator Ternary (
? :): BagianString status = (isMember) ? "Member Premium" : "Non-Member";adalah cara singkat untuk melakukanif-elsesederhana yang hasilnya ditampung ke variabel.
Sip. Ini cheatsheet
String.format()(atau.formatted()) yang paling sering dipakai di Java, dalam format Markdown.Format umumnya adalah:
%[flags][width][.precision]specifier📜 Cheat Sheet Format String Java
1. Specifier Utama (Tipe Data)
Ini adalah bagian akhir yang wajib ada, menentukan tipe datanya.
%s"Budi""Budi"%d123"123"%f12.345"12.345000"(default 6 desimal)%btrue"true"%c'A'"A"%n(baris baru)%%"%"2. Flag dan Modifikasi (Ini yang Bikin Keren)
Ini adalah prefix yang Anda tambahkan sebelum specifier di atas untuk mengubah tampilannya.
,(Koma)
(Ini yang Anda pakai)
"%,d".formatted(1000000)"1,000,000".N(Presisi)
(Otomatis membulatkan)
"%.2f".formatted(12.34567)"12.35"[Angka](Width)
(Default: rata kanan)
"%10d".formatted(123)" 123"(Total 10 char)
-(Minus)
(Gabungkan dengan width)
"%-10s".formatted("Budi")"Budi "(Total 10 char)
0(Nol)
(Isi spasi kosong dengan 0)
"%08d".formatted(123)"00000123"(Total 8 char)
+(Plus)
(Positif atau Negatif)
"%+d".formatted(123)"+123"3. Contoh Gabungan (Sering Dipakai)
(Ribuan + 0 Desimal)
"Rp %,.0f"1234500.75"Rp 1,234,501"(Ribuan + 2 Desimal)
"$ %,.2f"1234500.75"$ 1,234,500.75"(Panjang 5 digit, isi 0)
"%05d"42"00042"