Array & String
Array satu dan dua dimensi, utilitas Arrays, method penting String, perbandingan String, dan StringBuilder.
Array
Array menyimpan sejumlah nilai bertipe sama dengan ukuran tetap. Elemennya diakses lewat indeks yang dimulai dari 0.
int[] nilai = {80, 90, 70}; // langsung diisi
int[] kosong = new int[5]; // 5 elemen, semua 0
String[] nama = new String[3]; // semua null
System.out.println(nilai[0]); // 80
nilai[2] = 75; // ubah elemen
System.out.println(nilai.length); // 3 (tanpa tanda kurung!)
Mengakses indeks di luar batas (nilai[3]) melempar ArrayIndexOutOfBoundsException. Nilai awal otomatis: 0 untuk angka, false untuk boolean, null untuk objek.
Menelusuri array
int total = 0;
int tertinggi = nilai[0];
for (int i = 0; i < nilai.length; i++) {
total += nilai[i];
if (nilai[i] > tertinggi) tertinggi = nilai[i];
}
double rataRata = (double) total / nilai.length;
Perhatikan cast (double) agar pembagian tidak dibulatkan ke bawah.
Array 2 dimensi
int[][] matriks = {
{1, 2, 3},
{4, 5, 6}
};
System.out.println(matriks[1][2]); // 6
for (int[] baris : matriks) {
for (int sel : baris) System.out.print(sel + " ");
System.out.println();
}
Utilitas java.util.Arrays
import java.util.Arrays;
int[] a = {5, 2, 9, 1};
Arrays.sort(a); // [1, 2, 5, 9]
System.out.println(Arrays.toString(a)); // cetak isi array dengan rapi
int[] salin = Arrays.copyOf(a, 6); // salin dengan ukuran baru
boolean sama = Arrays.equals(a, salin);
Arrays.fill(salin, 0); // isi semua elemen
Mencetak array langsung dengan println(a) hanya menampilkan alamat seperti [I@1b2c; selalu pakai Arrays.toString.
Method penting String
| Method | Fungsi | Contoh |
|---|---|---|
length() | jumlah karakter | "java".length() → 4 |
charAt(i) | karakter di indeks i | "java".charAt(0) → 'j' |
substring(a, b) | potongan dari a hingga sebelum b | "belajar".substring(0, 3) → "bel" |
indexOf(x) | posisi pertama, -1 jika tidak ada | "halo".indexOf("l") → 2 |
contains(x) | apakah mengandung | "java".contains("av") → true |
replace(a, b) | ganti teks | "a-b".replace("-", "+") |
trim() / strip() | buang spasi tepi | " hi ".trim() → "hi" |
split(x) | pecah jadi array | "a,b,c".split(",") |
toUpperCase() / toLowerCase() | ubah huruf | |
isEmpty() / isBlank() | kosong / hanya spasi | |
String.join(",", ...) | gabung dengan pemisah |
Membandingkan String
String a = "java";
a.equals("java"); // true (peka huruf besar/kecil)
a.equalsIgnoreCase("JAVA"); // true
a.compareTo("kotlin"); // negatif: a lebih dulu secara abjad
Ingat: gunakan equals, bukan ==.
Mengapa StringBuilder?
Karena String immutable, menyambung di dalam loop membuat banyak objek sementara dan lambat. StringBuilder bisa diubah di tempat:
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++) {
sb.append(i).append(", ");
}
sb.append("selesai");
System.out.println(sb.toString()); // 1, 2, 3, 4, 5, selesai
System.out.println(new StringBuilder("java").reverse()); // avaj
Method berguna: append, insert, reverse, deleteCharAt, setLength, toString.
Contoh: cek palindrom
static boolean palindrom(String s) {
String bersih = s.toLowerCase().replace(" ", "");
String balik = new StringBuilder(bersih).reverse().toString();
return bersih.equals(balik);
}