Cheat Sheet Java
Terakhir diperbarui
Hello World & struktur program
Setiap program Java dijalankan dari method main di dalam sebuah class.
| Elemen | Kode |
|---|---|
| Deklarasi class | public class Main { ... } |
| Titik masuk program | public static void main(String[] args) { ... } |
| Mencetak satu baris | System.out.println("Hello, World!"); |
| Mencetak tanpa baris baru | System.out.print("text"); |
| Membaca input | Scanner sc = new Scanner(System.in); |
| Mengimpor class | import java.util.ArrayList; |
| Komentar | // line dan /* block */ |
Tipe data
Tipe primitif ditulis dengan huruf kecil; wrapper class-nya diawali huruf besar.
| Tipe | Keterangan |
|---|---|
int | Bilangan bulat bertanda 32 bit |
long | Bilangan bulat bertanda 64 bit |
double / float | Bilangan floating point |
boolean | true atau false |
char | Satu karakter Unicode 16 bit |
byte / short | Bilangan bulat 8 bit / 16 bit |
String | Teks yang tidak bisa diubah (sebuah class, bukan primitif) |
Integer, Double, Boolean | Wrapper class untuk tipe primitif |
var | Tipe lokal yang disimpulkan (Java 10+) |
Variabel
| Operasi | Sintaks |
|---|---|
| Mendeklarasikan & menginisialisasi | int x = 5; |
| Inferensi tipe (lokal) | var name = "Ada"; |
| Konstanta | final double PI = 3.14159; |
| Penggabungan string | String s = "Hi " + name; |
| Mengonversi string ke int | int n = Integer.parseInt("42"); |
| Mengonversi int ke string | String s = String.valueOf(42); |
| String dengan format | String.format("%d items", n) |
Operator
Operator aritmetika, perbandingan, logika, dan penugasan.
| Operator | Arti |
|---|---|
+ - * / % | Tambah, kurang, kali, bagi, modulo |
++ -- | Increment / decrement |
== != | Sama dengan / tidak sama dengan (membandingkan reference untuk object) |
> < >= <= | Perbandingan lebih besar / lebih kecil |
&& || ! | Logika AND, OR, NOT (short-circuit) |
& | ^ ~ | Bitwise AND, OR, XOR, NOT |
<< >> >>> | Geser kiri, geser kanan bertanda, geser kanan tanpa tanda |
+= -= *= /= | Penugasan gabungan |
? : | Ternary: x > 0 ? "pos" : "neg" |
instanceof | Pemeriksaan tipe: if (o instanceof String s) |
Alur kontrol
| Pernyataan | Sintaks |
|---|---|
| If / else | if (x > 0) { ... } else { ... } |
| Pernyataan switch | switch (n) { case 1: ...; break; default: ...; } |
| Ekspresi switch | var s = switch (n) { case 1 -> "one"; default -> "other"; }; |
| While loop | while (i < n) { ... } |
| Do-while loop | do { ... } while (i < n); |
| For loop | for (int i = 0; i < n; i++) { ... } |
| Enhanced for (for-each) | for (String item : list) { ... } |
| Break / continue | break; keluar dari loop, continue; lompat ke iterasi berikutnya |
Method string
String tidak bisa diubah, jadi setiap method mengembalikan string baru. Pakai StringBuilder saat kamu menggabungkan string di dalam perulangan.
| Method | Kegunaan |
|---|---|
s.length() | Jumlah karakter |
s.charAt(i) | Karakter di indeks i |
s.substring(a, b) | Potongan dari a (termasuk) sampai b (tidak termasuk) |
s.indexOf("x") | Indeks pertama sebuah substring, atau -1 |
s.contains("x") | true jika substring-nya ada |
s.replace("a", "b") | Mengganti semua kemunculan |
s.split(",") | Memecah menjadi String[] |
s.trim() / s.strip() | Menghapus spasi di awal/akhir |
s.toUpperCase() / toLowerCase() | Mengubah huruf besar/kecil |
s.equals(t) / equalsIgnoreCase(t) | Membandingkan nilai (bukan ==) |
s.startsWith("x") / endsWith("x") | Menguji awalan / akhiran |
String.join(",", list) | Menggabungkan elemen dengan pemisah |
Math & utilitas umum
Fungsi bantu static dari java.lang.Math dan wrapper angka.
| Pemanggilan | Hasil |
|---|---|
Math.max(a, b) / Math.min(a, b) | Yang lebih besar / lebih kecil dari dua nilai |
Math.abs(x) | Nilai mutlak |
Math.pow(x, y) | x pangkat y (mengembalikan double) |
Math.sqrt(x) | Akar kuadrat |
Math.round(x) / floor / ceil | Membulatkan ke terdekat / ke bawah / ke atas |
Math.random() | double acak dalam [0.0, 1.0) |
Integer.parseInt("42") | Mengubah string menjadi int |
Integer.MAX_VALUE / MIN_VALUE | int terbesar / terkecil |
Arrays.sort(arr) | Mengurutkan array di tempat |
Arrays.toString(arr) | Isi array yang mudah dibaca |
Method
| Operasi | Sintaks |
|---|---|
| Mendefinisikan method | int add(int a, int b) { return a + b; } |
| Tanpa nilai kembalian | void greet() { ... } |
| Method static | static int square(int x) { return x * x; } |
| Method public | public String getName() { return name; } |
| Varargs | int sum(int... nums) { ... } |
| Memanggil method | int r = add(2, 3); |
| Memanggil method static | Math.max(a, b); |
| Method overloading | int max(int a, int b) dan double max(double a, double b) |
Class & OOP
| Operasi | Sintaks |
|---|---|
| Mendefinisikan class | public class Dog { ... } |
| Field | private String name; |
| Constructor | public Dog(String name) { this.name = name; } |
| Membuat object | Dog d = new Dog("Rex"); |
| Getter / setter | public String getName() { return name; } |
| Inheritance | class Puppy extends Dog { ... } |
| Interface | interface Runnable { void run(); } |
| Mengimplementasikan interface | class Task implements Runnable { ... } |
| Override method | @Override public void speak() { ... } |
Record, enum & Java modern
Sintaks modern yang ringkas (Java 14+) untuk pembawa data dan kumpulan nilai tetap.
| Fitur | Sintaks |
|---|---|
| Record (data yang tidak bisa diubah) | record Point(int x, int y) {} |
| Memakai record | var p = new Point(1, 2); p.x(); |
| Enum | enum Day { MON, TUE, WED } |
| Enum dengan nilai | enum Coin { PENNY(1), DIME(10); ... } |
| Text block | String s = """\n multi\n line\n """; |
Pattern matching instanceof | if (o instanceof String s) { s.length(); } |
| Pattern pada switch (Java 21) | case Integer i -> ...; case String s -> ...; |
| Sealed class | sealed interface Shape permits Circle, Square {} |
Collection
Collection generik dari java.util.
| Tipe | Kegunaan & contoh |
|---|---|
ArrayList<T> | Array dinamis: list.add(1); list.get(0); list.size(); |
HashMap<K, V> | Key-value: map.put("a", 1); map.get("a"); |
HashSet<T> | Nilai unik: set.add(5); set.contains(5); |
LinkedList<T> | Doubly linked list, cocok sebagai queue/deque |
ArrayDeque<T> | Stack/queue: dq.push(x); dq.pop(); |
| Array | int[] nums = {1, 2, 3}; |
| Iterasi list | for (T x : list) { ... } |
| Iterasi map | for (var e : map.entrySet()) { e.getKey(); e.getValue(); } |
Stream & lambda
Pipeline bergaya fungsional atas collection (Java 8+).
| Operasi | Sintaks |
|---|---|
| Ekspresi lambda | x -> x * 2 |
| Membuat stream | list.stream() |
| Menyaring | .filter(n -> n > 0) |
| Map / mengubah | .map(n -> n * 2) |
| Mengurutkan | .sorted() atau .sorted(Comparator.reverseOrder()) |
| Reduce / menjumlahkan | .reduce(0, Integer::sum) |
| Menghitung / mencocokkan | .count(), .anyMatch(n -> n > 5) |
| Mengumpulkan ke list | .collect(Collectors.toList()) |
| For each | .forEach(System.out::println) |
Pola umum (try/catch, generic)
| Pola | Sintaks |
|---|---|
| Try / catch | try { ... } catch (Exception e) { ... } |
| Menangkap exception tertentu | catch (IOException e) { ... } |
| Finally | finally { ... } selalu dijalankan |
| Try-with-resources | try (Scanner sc = new Scanner(...)) { ... } |
| Melempar exception | throw new IllegalArgumentException("bad"); |
| Class generic | class Box<T> { T value; } |
| Method generic | <T> T first(List<T> list) { ... } |
| Tipe dengan batasan (bounded) | <T extends Number> |
Sintaks Java, collection, dan operasi stream yang paling sering kamu pakai, dalam satu halaman. Cheat sheet Java ini adalah referensi cepat untuk menulis Java: tipe data, alur kontrol, class, collection ArrayList/HashMap, Streams API, serta pola exception dan generic yang kamu pakai setiap hari.
Semua yang ada di sini adalah Java standar (Java 8 ke atas) dan bisa kamu compile dengan javac. Salin yang kamu butuhkan, atau coba potongan kode apa pun langsung di playground Java, tanpa perlu menginstal JDK. Baru mengenal bahasanya? Kursus Java interaktif gratis dari Coddy membangun konsep yang sama langkah demi langkah.
FAQ cheat sheet Java
Apakah cheat sheet Java ini gratis?
Ya. Cheat sheet Java ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark dan kembali kapan pun kamu perlu mencari sintaks, collection, atau operasi stream.
Apa perbedaan == dan .equals() di Java?
== membandingkan reference, yaitu apakah dua variabel menunjuk ke object yang persis sama, sedangkan .equals() membandingkan isinya. Dua object String berbeda dengan teks yang sama bernilai .equals(), tetapi belum tentu ==. Selalu pakai .equals() untuk membandingkan nilai string dan object lain; pakai == hanya untuk tipe primitif (int, boolean, dan lainnya) atau untuk memeriksa null.Untuk apa stream dipakai di Java?
filter, map, sorted, reduce, collect, sebagai ganti perulangan manual. Kamu memulai dengan list.stream(), merangkai operasi perantara, lalu mengakhirinya dengan operasi terminal seperti collect(Collectors.toList()) atau forEach. Hasilnya, kode pengolahan data tetap ringkas dan ekspresif.Bisakah saya berlatih Java secara online?
Bisa. Buka playground Java untuk compile dan menjalankan potongan kode apa pun dari cheat sheet ini di browsermu, tanpa perlu menginstal JDK. Kalau kamu ingin belajar terarah, kursus Java interaktif gratis dari Coddy membawamu dari variabel dan perulangan sampai class, collection, dan stream, langkah demi langkah.
Apakah cheat sheet ini cocok untuk pemula?
Cocok. Isinya disusun mulai dari komponen dasar yang paling umum (tipe, alur kontrol, method) sampai yang lanjutan (stream, generic, exception), jadi kamu bisa memakai bagian atas sejak hari pertama dan pelan-pelan menguasai sisanya.
Bagaimana cara mengubah String menjadi int di Java?
Integer.parseInt("42") untuk mendapatkan int primitif, atau Integer.valueOf("42") untuk mendapatkan object Integer. Keduanya melempar NumberFormatException jika string-nya bukan angka yang valid, jadi bungkus dengan try / catch saat input-nya tidak bisa dipercaya. Untuk arah sebaliknya, pakai String.valueOf(n) atau Integer.toString(n).Apa perbedaan ArrayList dan array di Java?
int[] a = new int[5]) punya panjang tetap yang ditentukan saat dibuat dan bisa langsung menyimpan tipe primitif. ArrayList<T> bisa bertambah dan berkurang secara dinamis dengan add() dan remove(), tetapi hanya menyimpan object, jadi tipe primitif otomatis dibungkus (ArrayList<Integer>). Pakai array saat ukurannya sudah diketahui dan tetap; pakai ArrayList saat ukuran collection-nya berubah.