Skip to content

Instantly share code, notes, and snippets.

@solanoize
Last active November 4, 2025 14:42
Show Gist options
  • Select an option

  • Save solanoize/da45c24e59eac7d2f3e4fe6a8d8cc8e6 to your computer and use it in GitHub Desktop.

Select an option

Save solanoize/da45c24e59eac7d2f3e4fe6a8d8cc8e6 to your computer and use it in GitHub Desktop.
package com.juaracoding.labs;
public class App {
public static void main(String[] args) {
/**
* Implicit casting (casting otomatis)
*/
// int i = 124_000_000; // kapasitas int di i, ukurannya lebih kecil dari kapasitas long di l.
// long l = i;
// System.out.println(i);
// System.out.println(l);
// /**
// * Explicit casting
// */
// short s = 100;
// byte b = (byte) s;
// System.out.println(s);
// System.out.println(b);
// int num1 = 10;
// int num2 = 20;
// double num3 = num1 / (double) num2;
// System.out.println(num3);
// int num4 = num1%3;
// System.out.println(num4);
// increment
// int x = 10;
// System.out.println(x++); // Pakai Dulu x nya, Baru Tambah x nya dengan 1
// int c = 1;
// System.out.println(++c); // Tambah dulu c nya, baru pakai (cetak)
// System.out.println(x);
int total = 140_000;
double discount = (double) 10/100;
double hargaPotongan = total * discount;
double hargaBayar = total - hargaPotongan;
System.out.println(hargaBayar);
}
}
package com.juaracoding.labs;
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
public class App {
public static int getRandomPrice() {
int hargaAwalAcak = ThreadLocalRandom.current().nextInt(100, 1000);
int hargaBulatPasti = hargaAwalAcak * 1000;
return hargaBulatPasti;
}
public static void main(String[] args) {
int hargaTotal = getRandomPrice();
Scanner scanner = new Scanner(System.in);
System.out.println("Harga Total: " + hargaTotal);
// input nama pelanggan
System.out.print("Masukkan nama: ");
String namaCustomer = scanner.nextLine();
System.out.println("Nama pelanggan adalah " + namaCustomer);
// input diskon
System.out.print("Masukkan diskon: ");
double diskon = scanner.nextDouble();
diskon = diskon / 100;
double hargaPotongan = hargaTotal * diskon;
System.out.println("Diskon " + (diskon * 100) + "%");
System.out.println("Harga diskon : " + hargaPotongan);
double hargaBayar = hargaTotal - hargaPotongan;
System.out.println("Perlu di bayar = " + hargaBayar);
}
}
package com.juaracoding.labs;
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
String dbEmail = "[email protected]";
String dbPassword = "c4y4nkc3l4loe";
Scanner scanner = new Scanner(System.in);
System.out.println("Login here...");
System.out.print("email \t\t: ");
String email = scanner.nextLine();
System.out.print("password \t: ");
String password = scanner.nextLine();
boolean hasil = email.equals(dbEmail) && password.equals(dbPassword);
if (hasil) {
System.out.println("Test success");
} else {
throw new Exception("Testing gagal!");
}
}
}
package com.juaracoding.labs;
public class App {
public static void main(String[] args) throws Exception {
int harga = 10000;
int uang = 5000;
if (uang >= harga) {
System.out.println("Saya bisa beli produk tersebut");
} else {
System.out.println("Saya tidak bisa beli produk tersebut");
}
System.out.println("Ini perintah berikutnya.");
String validUsername = "uus";
String validPassword = "123qwe";
String usernameDariUser = "oncom";
String passwordDariUser = "123qwa";
if (usernameDariUser.equals(validUsername) && passwordDariUser.equals(validPassword)) {
System.out.println("Login berhasil.");
} else {
System.out.println("Login gagal.");
}
}
}
package com.juaracoding.labs;
import java.util.InputMismatchException;
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("Masukkan nilai peserta: ");
int nilaiPeserta = scanner.nextInt();
if (nilaiPeserta == 0) {
System.out.println("Nilai peserta tidak boleh kosong");
} else {
int nilaiA = 90;
int nilaiB = 83;
int nilaiC = 70;
int nilaiD = 60;
if (nilaiPeserta >= nilaiA) {
System.out.println("Dapet A");
} else if (nilaiPeserta >= nilaiB) {
System.out.println("Dapet B");
} else if (nilaiPeserta >= nilaiC) {
System.out.println("Dapet C");
} else if (nilaiPeserta >= nilaiD) {
System.out.println("Dapet D");
} else {
System.out.println("Dapet E");
}
}
} catch (InputMismatchException e) {
System.out.println("Ups terjadi masalah!");
System.out.println(e.getMessage());
}
}
}
package com.juaracoding.labs;
public class App {
public static void main(String[] args) throws Exception {
int today = 3;
String task = "";
switch (today) {
case 1:
case 2:
task = "Development";
break;
case 3:
case 4:
task = "QA Test";
break;
case 5:
task = "Deployment";
break;
case 6:
case 7:
task = "Nothing";
break;
default:
task = "Invalid Task";
break;
}
System.out.println(task);
}
}
package com.juaracoding.labs;
public class App {
public static void main(String[] args) throws Exception {
String namaDepan = "Budi";
String namaBelakang = "Andika";
String gelar = "M.Kom";
String namaLengkap = namaDepan.concat(" ").concat(namaBelakang).concat(", ").concat(gelar);
System.out.println(namaLengkap);
String namaPelanggan = "Citra Lestari";
String item = "Kopi Robusta 500gr";
int jumlah = 2;
int hargaSatuan = 120_000;
int total = jumlah * hargaSatuan;
// Pakai Text Blocks (tanda kutip tiga kali) + .formatted()
String struk = """
==================================
MINI MARKET JAYA ABADI
==================================
Pelanggan : %s
Item : %s
Jumlah : %d
Harga : Rp %,d
----------------------------------
TOTAL : Rp %,d
Terima kasih!
==================================
""".formatted(namaPelanggan,
item,
jumlah,
hargaSatuan,
total);
System.out.println(struk);
}
}
package com.juaracoding.labs;
public class App {
public static void main(String[] args) throws Exception {
for (int i = 1; i <= 5; i++) {
int jumlah = 2;
int hargaSatuan = 120_000 * i;
int total = jumlah * hargaSatuan;
String struk = """
==================================
MINI MARKET JAYA ABADI
==================================
Nomor Transaksi: TRX%04d
No. Pelanggan : CST%04d
Jumlah : %d
Harga : Rp %,d
----------------------------------
TOTAL : Rp %,d
Terima kasih!
==================================
""".formatted(i, i, i, hargaSatuan, total);
System.out.println(struk);
}
}
}
package com.juaracoding.labs;
public class App {
public static void main(String[] args) throws Exception {
// int i = 1;
// while (i <= 5) {
// System.out.println(i);
// i++;
// }
// do {
// System.out.println("Ini dari do while, jalan dulu, dicek belakangan!");
// i++;
// } while(i <= 5);
// int i = 0;
// while (true) {
// System.out.println(i);
// i++;
// if (i > 5) {
// break;
// }
// }
int i = 0;
while (i <= 10) {
i++;
if (i % 2 != 0) {
continue;
}
System.out.println(i);
}
}
}
package com.juaracoding.labs;
import java.util.Scanner;
import java.util.concurrent.ThreadLocalRandom;
public class App {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
// --- Setup Variabel ---
int KERTAS = 0;
int GUNTING = 1;
int BATU = 2;
System.out.print("Masukkan angka: (0) Kertas, (1) Gunting, (2) Batu \t");
int playerChoice = scanner.nextInt(); // Input dari Anda (GUNTING)
// Kita acak pilihan komputer (0, 1, atau 2)
int computerChoice = ThreadLocalRandom.current().nextInt(0, 3);
// Konversi angka ke teks agar mudah dibaca
String[] pilihanTeks = {
"Kertas",
"Gunting",
"Batu"
};
System.out.println("Player memilih: " + pilihanTeks[playerChoice]);
System.out.println("Komputer memilih: " + pilihanTeks[computerChoice]);
System.out.println("---");
if (playerChoice == computerChoice) {
System.out.println("Hasil 2: SERI!");
} else if (playerChoice == (computerChoice + 1) % 3) {
System.out.println("Hasil 2: Player MENANG!");
} else {
System.out.println("Hasil 2: Player KALAH!");
}
}
}

Studi Kasus: Program Kasir "Toko Juara Coding"

Berikut adalah program kasir sederhana yang dibuat untuk mempraktikkan penggunaan berbagai operator dalam Java.

Program ini akan:

  1. Menghitung total belanja (Aritmatika).
  2. Memberi diskon jika total belanja di atas 100.000 DAN dia adalah member (Logika & Relasional).
  3. Mengupdate total belanja dengan diskon (Penugasan Gabungan).
  4. Mengecek "fitur" apa saja yang didapat pembeli (Bitwise).
  5. Menampilkan status member (Ternary).

Kode Program (TokoJuaraCoding.java)

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);
        
    }
}

Penjelasan Singkat

  1. Operator Aritmatika & Penugasan (* , =): Bagian int totalBelanja = hargaSatuan * jumlahBarang; adalah inti dari program kasir, menggunakan perkalian dan penetapan nilai.

  2. Operator Relasional & Logika (> , &&): Bagian if (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.

  3. Operator Penugasan Gabungan (-=): Bagian totalBelanja -= besarDiskon; adalah cara efisien untuk meng-update nilai variabel. Ini jauh lebih umum dipakai daripada menulis totalBelanja = totalBelanja - besarDiskon;.

  4. Operator Bitwise (| , &): Ini adalah bagian paling "abstrak" tapi sangat berguna. Bayangkan Anda punya banyak setelan (Ya/Tidak) untuk seorang user. Daripada membuat 10 variabel boolean, Anda bisa pakai 1 variabel int.

    • Bitwise | (OR): Digunakan untuk menggabungkan atau menyalakan fitur.
    • Bitwise & (AND): Digunakan untuk mengecek apakah suatu fitur spesifik sedang menyala.
  5. Operator Ternary (? :): Bagian String status = (isMember) ? "Member Premium" : "Non-Member"; adalah cara singkat untuk melakukan if-else sederhana yang hasilnya ditampung ke variabel.

@C-Moons
Copy link

C-Moons commented Nov 3, 2025

ok done

@solanoize
Copy link
Author

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.

Specifier Tipe Data Contoh Input Contoh Output
%s String "Budi" "Budi"
%d Integer (int, long) 123 "123"
%f Desimal (double, float) 12.345 "12.345000" (default 6 desimal)
%b Boolean true "true"
%c Character 'A' "A"
%n (Tidak ada) (pindah baris) (baris baru)
%% (Tidak ada) (untuk nulis %) "%"

2. Flag dan Modifikasi (Ini yang Bikin Keren)

Ini adalah prefix yang Anda tambahkan sebelum specifier di atas untuk mengubah tampilannya.

Modifikasi Arti Contoh Kode Contoh Output
,
(Koma)
Pemisah Ribuan
(Ini yang Anda pakai)
"%,d".formatted(1000000) "1,000,000"
.N
(Presisi)
Ambil N Angka Desimal
(Otomatis membulatkan)
"%.2f".formatted(12.34567) "12.35"
[Angka]
(Width)
Lebar Minimum Karakter
(Default: rata kanan)
"%10d".formatted(123) " 123"
(Total 10 char)
-
(Minus)
Rata Kiri
(Gabungkan dengan width)
"%-10s".formatted("Budi") "Budi "
(Total 10 char)
0
(Nol)
Zero-Padding
(Isi spasi kosong dengan 0)
"%08d".formatted(123) "00000123"
(Total 8 char)
+
(Plus)
Selalu Tampilkan Tanda
(Positif atau Negatif)
"%+d".formatted(123) "+123"

3. Contoh Gabungan (Sering Dipakai)

Kebutuhan Format Contoh Input Contoh Output
Uang Rupiah
(Ribuan + 0 Desimal)
"Rp %,.0f" 1234500.75 "Rp 1,234,501"
Uang Dolar
(Ribuan + 2 Desimal)
"$ %,.2f" 1234500.75 "$ 1,234,500.75"
Kolom Tabel Rata Kiri `" %-15s "`
Kolom Angka Rata Kanan `" %10d "`
Nomor Seri / ID
(Panjang 5 digit, isi 0)
"%05d" 42 "00042"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment