Normalisasi string

Pembersihan Data di Java

Dennis Lee

Software Engineer

Dataset inventaris bahan makanan

  • Gunakan dataset inventaris bahan makanan sepanjang bab
  • Ubah kolom seperti nama produk untuk menunjukkan transformasi data

 

Nama Produk Kategori Status Tanggal Diterima Jumlah
Eggplant Buah & Sayur Dihentikan 3/1/25 46
VEGETABLE OIL Minyak & Lemak Backorder 4/1/25 51
Cheese Susu Aktif 6/1/25 78
Fresh (Organic) *Carrots* Buah & Sayur Dihentikan 5/1/25 51
Bell Pepper Fresh Buah & Sayur Aktif 5/2/25 67
Pembersihan Data di Java

Mengapa normalisasi string penting

  • String berantakan: komputer sulit mengenali teks
  • Contoh: inventaris toko bahan makanan
  • Solusi: normalisasi string

 

String[] messyProducts = {
    "Eggplant ",              // Spasi ekstra di akhir
    "VEGETABLE OIL",             // Huruf tidak konsisten
    "Fresh (Organic) *Carrots*", // Karakter khusus
    "Bell   Pepper    Fresh",    // Spasi berlebih di antara kata
};
Pembersihan Data di Java

Menghapus spasi awal dan akhir

String[] products = {"Eggplant ", "  Vegetable Oil", " Cheese "};
for (String product : products) {
    String cleaned = product.trim(); // Hapus spasi di awal/akhir
    System.out.println(cleaned);
}
Eggplant
Vegetable Oil
Cheese
Pembersihan Data di Java

Menyeragamkan format huruf

List<String> products = Arrays.asList("Eggplant", "VEGETABLE OIL", "cheese");

products.stream()
.map(String::toLowerCase) // Ubah semua ke huruf kecil
.forEach(System.out::println); // Cetak tiap produk
eggplant
vegetable oil
cheese
Pembersihan Data di Java

Pola regex

  • Regular expression (regex): pola khusus untuk mencocokkan teks$^1$
  • [^a-zA-Z\\s]: Menemukan karakter yang bukan huruf atau spasi
// Pola ini mencocokkan karakter yang BUKAN:
[       // Mulai himpunan karakter
^       // BUKAN - cocokkan apa pun di luar himpunan ini
a-z     // huruf kecil
A-Z     // huruf besar
\\s     // karakter spasi (perlu \ ekstra agar Java mengenali \s)
]       // Akhiri himpunan karakter

1 https://www.datacamp.com/cheat-sheet/regular-expresso
Pembersihan Data di Java

Membersihkan karakter khusus

String dirtyName = "Fresh (Organic) *Carrots*"; // Karakter khusus: (, ), *

String cleaned = dirtyName.replaceAll("[^a-zA-Z\\s]", ""); // Hapus non-huruf
System.out.println(cleaned); // Keluaran: "Fresh Organic Carrots"
Fresh Organic Carrots
Pembersihan Data di Java

Membersihkan spasi ganda

import java.util.regex.Pattern;
Pattern pattern = Pattern.compile("\\s+"); // Cocokkan banyak spasi

String messyProduct = "Bell Pepper Fresh"; // Ada spasi berlebih // Ganti banyak spasi menjadi satu spasi String cleanedProduct = pattern.matcher(messyProduct).replaceAll(" ");
System.out.println(cleanedProduct);
Bell Pepper Fresh
Pembersihan Data di Java

Menggabungkan semuanya

List<String> messyProducts = Arrays.asList(
        "Eggplant ", "VEGETABLE OIL",
        "Fresh (Organic) *Carrots*", "Bell   Pepper    Fresh"
); // Nama produk dari dataset inventaris bahan makanan

messyProducts.stream()
        .map(s -> s.trim()                       // Perbaiki spasi luar
                .replaceAll("[^a-zA-Z\\s]", "")  // Hapus karakter khusus
                .replaceAll("\\s+", " ")         // Perbaiki spasi dalam
                .toLowerCase())                  // Standarkan huruf
        .forEach(System.out::println);
Pembersihan Data di Java

Menggabungkan semuanya: keluaran

eggplant
vegetable oil
fresh organic carrots
bell pepper fresh
Pembersihan Data di Java

Ayo berlatih!

Pembersihan Data di Java

Preparing Video For Download...