Menu
CoddyTech

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”

challenge icon

Tantangan

Mudah

Buat method bernama processValue yang menerima satu argumen:

  1. 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));
    }
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Compiler Java online