# Bab D: Metode/Teknik yang Digunakan

Pada bab ini, dijelaskan secara rinci metode transformasi data yang diterapkan. Fokus utama adalah pada teknik Python Pre-processing yang digunakan untuk membersihkan data mentah marketplace menjadi dataset berkualitas tinggi.

## 1. Landasan Teknik & Pemrosesan Data

Data mentah dari hasil scraping memiliki karakteristik yang tidak terstruktur (unstructured). Untuk mengatasi hal ini, dikembangkan algoritma filtering berbasis Python dengan tiga komponen utama:

### A. Ekstraksi Spesifikasi Teknis (Regex)

Rationale (Landasan Pemilihan Teknik): Penggunaan Regular Expressions (Regex) dipilih karena pola teks spesifikasi (seperti Watt/Ampere) memiliki struktur pasti namun posisi acak. Metode ini lebih presisi dibanding pencarian kata kunci biasa.

Implementasi Kode:

    def extract_specs(name):
        """Mengekstraksi Watt dan Ampere dari nama produk."""

        # Regex untuk menangkap angka Watt (e.g., 30W, 65 Watt)
        watts = re.findall(r'(\d+)\s*[Ww]att|(\d+)[Ww]', name, re.IGNORECASE)

        # Regex untuk menangkap angka Ampere (e.g., 2.4A, 3 Amp)
        amps = re.findall(r'(\d+\.?\d*)\s*[Aa]mp|(\d+\.?\d*)[Aa]', name, re.IGNORECASE)

        # Logika pemilihan nilai
        watt_str = f"{next((x for x in watts[0] if x), '')}W" if watts else ""
        amp_str = f"{next((x for x in amps[0] if x), '')}A" if amps else ""

        return watt_str, amp_str

### B. Identifikasi & Klasifikasi Brand

Rationale (Landasan Pemilihan Teknik): Menggunakan metode Dictionary-based Lookup. Karena entitas brand terbatas dan statis, metode ini memberikan kompleksitas O(1) yang jauh lebih cepat daripada model Machine Learning.

Implementasi Kode:

    def clean_brand_name(name):
        # Knowledge Base: Daftar Brand Valid
        brands = ['Baseus', 'Anker', 'Aukey', 'ACMIC', 'Xiaomi']

        name_lower = name.lower()
        for brand in brands:
            if brand.lower() in name_lower:
                return brand

        return "Generic"

### C. Semantic Semantic Title Optimization

Rationale (Landasan Pemilihan Teknik): Teknik Template Construction digunakan untuk menstandarisasi judul produk ("Brand + Keyword + Specs"), menghilangkan spam keywords untuk visualisasi dashboard yang bersih.

Implementasi Kode:

    def generate_title(row):
        # 1. Ekstraksi Fitur Bersih
        brand = clean_brand_name(row['name'])
        watt, amp = extract_specs(row['name'])

        # 2. Penentuan Core Keyword
        if row['category'] == 'Car Charger Adapter':
            keywords = "Car Charger Mobil Fast Charging"

        # 3. Konstruksi Judul Baru
        specs = watt if watt else amp
        new_title = f"{brand} {keywords} {specs}"

        return new_title.strip()

## 2. Kesimpulan Implementasi

Transformasi data dengan script Python di atas menghasilkan dataset `optimized_titles.csv` yang valid, terstruktur, dan siap untuk divisualisasikan.