Pencocokan Pola
Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 37 dari 59.
Pencocokan pola di Java memungkinkan kamu menguji apakah suatu object memiliki tipe tertentu dan mengekstrak komponennya. Fitur ini menyederhanakan operasi pemeriksaan tipe dan casting.
Mari kita lihat cara menggunakan pencocokan pola dengan instanceof:
Object obj = "Hello";
if (obj instanceof String str) {
// str otomatis dikonversi menjadi String
System.out.println(str.toUpperCase());
}Setelah menjalankan kode di atas, outputnya adalah:
"HELLO"
Kamu juga dapat merangkai pemeriksaan pencocokan pola dengan else if:
Object value = 42;
String result;
if (value instanceof Integer i) {
result = "Number: " + i;
} else if (value instanceof String s) {
result = "Text: " + s;
} else {
result = "Unknown";
}Setelah menjalankan kode di atas, result berisi:
“Number: 42”
Tantangan
MudahBuat method bernama processValue yang menerima satu argumen:
- Sebuah Object (
value) yang bisa memiliki berbagai tipe
Method tersebut harus menggunakan pattern matching dengan instanceof untuk memproses nilai dan mengembalikan string berdasarkan aturan berikut:
- Jika tipenya Integer: kembalikan "Number: " diikuti nilai yang dikalikan dua
- Jika tipenya String: kembalikan "Text: " diikuti nilai dalam huruf kapital
- Jika tipenya Boolean: kembalikan "Boolean: " diikuti nilai kebalikannya (true menjadi false dan sebaliknya)
- Untuk tipe lainnya: kembalikan "Unknown"
Coba sendiri
import java.util.Scanner;
public class Main {
public static String processValue(Object value) {
// TODO: Gunakan pattern matching dengan instanceof untuk memproses nilai
// Jika nilainya Integer: kembalikan "Number: " + (value * 2)
// Jika nilainya String: kembalikan "Text: " + value.toUpperCase()
// Jika nilainya Boolean: kembalikan "Boolean: " + (!value)
// Untuk tipe lainnya: kembalikan "Unknown"
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String type = scanner.nextLine();
String inputValue = scanner.nextLine();
Object value = switch(type) {
case "Integer" -> Integer.parseInt(inputValue);
case "String" -> inputValue;
case "Boolean" -> Boolean.parseBoolean(inputValue);
default -> inputValue;
};
System.out.println(processValue(value));
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Array Multidimensi
Dasar Array 2DMengakses Elemen Array 2DLoop Bersarang dengan Array 2DRangkuman: Array 2DPenjumlahan dan Pengurangan MatriksArray BergerigiArray 3D dan Lebih JauhPola Umum Array 2DRangkuman: Semua tentang Array2HashMap Bagian 1
Apa itu HashMap?Deklarasikan HashMapMengakses nilaiPeriksa apakah key adaMengubah dictionaryRingkasan: HashMap3HashMap Bagian 2
Method HashMapIterasi dengan keySet()Iterasi dengan entrySet()HashMap BersarangRangkuman: Kelola GudangRangkuman: Operasi HashMap6Alur Kontrol Lanjutan
Pernyataan LabelEkspresi SwitchPencocokan PolaKlausa PenjagaRingkasan Alur Kontrol9Proyek: Penghitung Kata Unik
Input dan Penyimpanan TeksPemrosesan KataLatihan sendiri: Compiler Java online