Belajar Java - Kontrol Alur & Struktur Data Dasar
Episode 5 of 24

Belajar Java - Kontrol Alur & Struktur Data Dasar

Episode ini membahas kontrol alur dan struktur data dasar: if, else, dan switch expression modern, loop for, while, do-while, enhanced for, dan iterator, koleksi dasar array, ArrayList, LinkedList, Set, dan Map, serta pengenalan Stream API untuk iterasi koleksi.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Program yang berguna hampir selalu perlu mengambil keputusan dan mengulang pekerjaan. Episode 5 membahas kontrol alur dan struktur data dasar — dua pilar yang menggerakkan logika aplikasi. Kalian akan belajar percabangan, perulangan, koleksi, dan Stream API.

Menguasai topik ini berarti kalian bisa menulis program yang menanggapi kondisi berbeda dan memproses kumpulan data. Hampir semua kode produksi berputar di sekitar pola-pola ini, jadi jangan terburu-buru — pahami dengan baik.

Pernyataan Bersyarat: if, else, dan Switch Expression

if dan else

if mengeksekusi blok ketika kondisi true, dan bisa dilanjutkan dengan else if serta else:

Percabangan if-else
int nilai = 82;
if (nilai >= 90) {
    System.out.println("Nilai A");
} else if (nilai >= 80) {
    System.out.println("Nilai B");
} else {
    System.out.println("Nilai C");
}

Switch Expression Modern

Sejak Java 14, switch bisa dipakai sebagai expression yang menghasilkan nilai, tanpa keyword break:

Switch expression modern
String hari = "Sabtu";
String kategori = switch (hari) {
    case "Sabtu", "Minggu" -> "Akhir pekan";
    case "Senin" -> "Mulai minggu";
    default -> "Hari biasa";
};
System.out.println(kategori);

Switch expression memakai panah -> dan mendukung beberapa label sekaligus dengan tanda koma. Jauh lebih ringkas dan aman dibanding switch klasik.

Perulangan: for, while, do-while, Enhanced For, dan Iterator

for dan while

for cocok untuk iterasi dengan jumlah yang diketahui, while untuk perulangan berbasis kondisi:

Perulangan for dan while
for (int i = 0; i < 5; i++) {
    System.out.println("Iterasi " + i);
}
 
int counter = 0;
while (counter < 3) {
    System.out.println("While " + counter);
    counter++;
}

do-while dan Enhanced For

do-while menjalankan blok minimal sekali sebelum memeriksa kondisi. Enhanced for (for-each) adalah cara paling umum untuk mengiterasi koleksi:

do-while dan enhanced for
int n = 1;
do {
    System.out.println(n);
    n++;
} while (n <= 3);
 
int[] angka = {10, 20, 30};
for (int a : angka) {
    System.out.println(a);
}

Iterator

Iterator memberi kontrol lebih atas koleksi, termasuk penghapusan elemen saat iterasi:

Iterasi dengan Iterator
List<String> nama = new ArrayList<>(List.of("Andi", "Budi", "Citra"));
Iterator<String> it = nama.iterator();
while (it.hasNext()) {
    String n = it.next();
    System.out.println(n);
}

Koleksi Dasar: Array, ArrayList, LinkedList, Set, dan Map

Array dan ArrayList

Array berukuran tetap; ArrayList tumbuh dinamis. Untuk penyisipan dan penghapusan di tengah yang intensif, LinkedList lebih efisien:

Array, ArrayList, dan LinkedList
int[] angka = new int[3];
angka[0] = 7;
 
List<String> daftar = new ArrayList<>();
daftar.add("Java");
daftar.add("JVM");
 
List<Integer> antrian = new LinkedList<>();
antrian.add(1);

Set dan Map

Set menyimpan elemen unik tanpa urutan; Map menyimpan pasangan key-value untuk pencarian cepat:

Set dan Map
Set<String> kota = new HashSet<>();
kota.add("Jakarta");
kota.add("Bandung");
kota.add("Jakarta");  // duplikat diabaikan
 
Map<String, Integer> stok = new HashMap<>();
stok.put("Laptop", 12);
stok.put("Monitor", 30);
int jumlah = stok.get("Laptop");

Koleksi ini adalah fondasi dari hampir semua struktur data yang akan kalian jumpai.

Pengenalan Stream API

Iterasi Koleksi secara Deklaratif

Stream API memperkenalkan pemrosesan koleksi secara deklaratif dan fungsional. Alih-alih menulis loop manual, kalian menyusun pipeline operasi:

Stream API untuk filter dan map
List<Integer> angka = List.of(1, 2, 3, 4, 5, 6);
List<Integer> genap = angka.stream()
        .filter(n -> n % 2 == 0)
        .toList();
System.out.println(genap);

angka.stream().filter(n -> n % 2 == 0) menghasilkan stream yang hanya berisi bilangan genap, lalu .toList() mengumpulkannya kembali menjadi list.

Operasi Umum Stream

Stream mendukung berbagai operasi: filter untuk menyaring, map untuk mengubah, sorted untuk mengurutkan, dan collect untuk mengumpulkan hasil. Contoh menggabungkan beberapa operasi:

Pipeline stream
List<String> hasil = List.of("apel", "jeruk", "pisang", "anggur")
        .stream()
        .filter(buah -> buah.length() > 4)
        .map(String::toUpperCase)
        .sorted()
        .toList();

Stream API akan kembali muncul di banyak episode berikutnya, jadi pastikan kalian nyaman dengan pola ini.

Penutup

Episode 5 membekali kalian kontrol alur dan struktur data: percabangan dengan if-else dan switch expression modern, perulangan for, while, do-while, enhanced for, dan iterator, koleksi array, List, Set, dan Map, serta pengenalan Stream API.

Inti yang harus dibawa pulang:

  • Switch expression modern memakai panah dan tidak butuh break.
  • Enhanced for adalah cara paling ringkas mengiterasi koleksi.
  • Iterator memungkinkan penghapusan elemen saat iterasi.
  • Set menjamin keunikan; Map memberi pencarian berbasis key.
  • ArrayList untuk pertumbuhan dinamis; LinkedList untuk operasi tengah.
  • Stream API membuat iterasi koleksi deklaratif dengan filter dan map.

Di episode 6 selanjutnya kita akan membahas OOP dasar dan class design — konsep objek dan class, enkapsulasi dengan accessor dan mutator, inheritance, polymorphism, abstract class, serta interface modern dengan default method, static method, dan functional interface. Inilah inti paradigma pemrograman Java.

Belajar Java - Kontrol Alur & Struktur Data Dasar | Belajar Java