Menu
CoddyTech

Cheat Sheet Java

Terakhir diperbarui

Hello World & struktur program

Setiap program Java dijalankan dari method main di dalam sebuah class.

ElemenKode
Deklarasi classpublic class Main { ... }
Titik masuk programpublic static void main(String[] args) { ... }
Mencetak satu barisSystem.out.println("Hello, World!");
Mencetak tanpa baris baruSystem.out.print("text");
Membaca inputScanner sc = new Scanner(System.in);
Mengimpor classimport java.util.ArrayList;
Komentar// line dan /* block */

Tipe data

Tipe primitif ditulis dengan huruf kecil; wrapper class-nya diawali huruf besar.

TipeKeterangan
intBilangan bulat bertanda 32 bit
longBilangan bulat bertanda 64 bit
double / floatBilangan floating point
booleantrue atau false
charSatu karakter Unicode 16 bit
byte / shortBilangan bulat 8 bit / 16 bit
StringTeks yang tidak bisa diubah (sebuah class, bukan primitif)
Integer, Double, BooleanWrapper class untuk tipe primitif
varTipe lokal yang disimpulkan (Java 10+)

Variabel

OperasiSintaks
Mendeklarasikan & menginisialisasiint x = 5;
Inferensi tipe (lokal)var name = "Ada";
Konstantafinal double PI = 3.14159;
Penggabungan stringString s = "Hi " + name;
Mengonversi string ke intint n = Integer.parseInt("42");
Mengonversi int ke stringString s = String.valueOf(42);
String dengan formatString.format("%d items", n)

Operator

Operator aritmetika, perbandingan, logika, dan penugasan.

OperatorArti
+ - * / %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"
instanceofPemeriksaan tipe: if (o instanceof String s)

Alur kontrol

PernyataanSintaks
If / elseif (x > 0) { ... } else { ... }
Pernyataan switchswitch (n) { case 1: ...; break; default: ...; }
Ekspresi switchvar s = switch (n) { case 1 -> "one"; default -> "other"; };
While loopwhile (i < n) { ... }
Do-while loopdo { ... } while (i < n);
For loopfor (int i = 0; i < n; i++) { ... }
Enhanced for (for-each)for (String item : list) { ... }
Break / continuebreak; 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.

MethodKegunaan
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.

PemanggilanHasil
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 / ceilMembulatkan 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_VALUEint terbesar / terkecil
Arrays.sort(arr)Mengurutkan array di tempat
Arrays.toString(arr)Isi array yang mudah dibaca

Method

OperasiSintaks
Mendefinisikan methodint add(int a, int b) { return a + b; }
Tanpa nilai kembalianvoid greet() { ... }
Method staticstatic int square(int x) { return x * x; }
Method publicpublic String getName() { return name; }
Varargsint sum(int... nums) { ... }
Memanggil methodint r = add(2, 3);
Memanggil method staticMath.max(a, b);
Method overloadingint max(int a, int b) dan double max(double a, double b)

Class & OOP

OperasiSintaks
Mendefinisikan classpublic class Dog { ... }
Fieldprivate String name;
Constructorpublic Dog(String name) { this.name = name; }
Membuat objectDog d = new Dog("Rex");
Getter / setterpublic String getName() { return name; }
Inheritanceclass Puppy extends Dog { ... }
Interfaceinterface Runnable { void run(); }
Mengimplementasikan interfaceclass 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.

FiturSintaks
Record (data yang tidak bisa diubah)record Point(int x, int y) {}
Memakai recordvar p = new Point(1, 2); p.x();
Enumenum Day { MON, TUE, WED }
Enum dengan nilaienum Coin { PENNY(1), DIME(10); ... }
Text blockString s = """\n multi\n line\n """;
Pattern matching instanceofif (o instanceof String s) { s.length(); }
Pattern pada switch (Java 21)case Integer i -> ...; case String s -> ...;
Sealed classsealed interface Shape permits Circle, Square {}

Collection

Collection generik dari java.util.

TipeKegunaan & 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();
Arrayint[] nums = {1, 2, 3};
Iterasi listfor (T x : list) { ... }
Iterasi mapfor (var e : map.entrySet()) { e.getKey(); e.getValue(); }

Stream & lambda

Pipeline bergaya fungsional atas collection (Java 8+).

OperasiSintaks
Ekspresi lambdax -> x * 2
Membuat streamlist.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)

PolaSintaks
Try / catchtry { ... } catch (Exception e) { ... }
Menangkap exception tertentucatch (IOException e) { ... }
Finallyfinally { ... } selalu dijalankan
Try-with-resourcestry (Scanner sc = new Scanner(...)) { ... }
Melempar exceptionthrow new IllegalArgumentException("bad");
Class genericclass 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?
Untuk object, == 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?
Streams API (Java 8+) memungkinkan kamu memproses collection dengan rangkaian operasi yang mudah dibaca, seperti 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?
Pakai 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?
Array (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.
Ilustrasi bahasa pemrograman di Coddy

Belajar Java bersama Coddy

Mulai