stdsquare²
🎓 Kelas
stdsquare / materi / slides / pertemuan-04
Tema
Japan
Arcade
Dark Retro
Font
‹ Daftar slide Pertemuan 4: Operasi tools Data Analytics dasar

Operasi tools Data Analytics dasar

Big Data Analysis  |  Pertemuan 4  |  Program Studi Bisnis Digital

CPMK 1 & 2 & 3 150 Menit Python · R · Hands-on

Agenda Pertemuan

Teori (60 menit)
  • Ekosistem Python & R untuk Analytics
  • Library utama: pandas, NumPy, tidyverse
  • Konsep data cleaning & preprocessing
  • Strategi penanganan missing values
  • Deteksi dan penanganan outliers
Praktik & Diskusi (90 menit)
  • Demo: load & eksplorasi dataset nyata
  • Latihan: cleaning dataset transaksi e-commerce
  • Studi kasus: data operasional Gojek/BCA
  • Diskusi kelompok & Q&A
  • Preview tugas minggu depan

Tujuan Pembelajaran

01
  • Menjelaskan perbedaan Python dan R serta kapan menggunakan masing-masing dalam proyek Analytics
02
  • Mengoperasikan library pandas dan tidyverse untuk membaca, mengeksplorasi, dan memanipulasi dataset
03
  • Menerapkan teknik handling missing values dan outliers pada data bisnis nyata secara sistematis
Sub-CPMK: Mahasiswa mampu mengoperasikan tools dasar Data Analytics untuk mengolah dan menganalisis data bisnis secara efektif.
Topik 1

Tools Python dan R untuk Data Analytics

Python vs R: Perbandingan Ekosistem

DimensiPythonR
Orientasi utamaGeneral-purpose + ML/AIStatistik & riset akademik
Library analitikpandas, NumPy, scikit-learntidyverse, ggplot2, caret
Kurva belajarLebih mudah bagi pemulaLebih curam, tapi konsisten
Visualisasimatplotlib, seaborn, plotlyggplot2 (kuat untuk publikasi)
Penggunaan industriGojek, Tokopedia, TravelokaRiset, perbankan, BPS
Deployment modelSangat mudah (Flask/FastAPI)Terbatas (Shiny/Plumber)

Library Utama dan Fungsinya

Python Ecosystem
pandas — manipulasi DataFrame: filter, groupby, merge, pivot
NumPy — operasi array numerik, matriks, komputasi vektor
Jupyter Notebook — environment interaktif untuk eksplorasi & dokumentasi
R Ecosystem
dplyr — manipulasi data: select, filter, mutate, summarise
tidyr — reshape data: pivot_wider, pivot_longer, unnest
readr / readxl — import data dari CSV, Excel, database

Setup Environment dan Workflow Dasar

Instalasi Python (Anaconda)
# Buat environment baru
conda create -n bigdata python=3.11
conda activate bigdata

# Install library utama
pip install pandas numpy jupyter
pip install matplotlib seaborn
Workflow Analitik Standar
  1. Import library yang dibutuhkan
  2. Load dataset (CSV/Excel/DB)
  3. Eksplorasi awal: shape, dtypes, head()
  4. Identifikasi masalah data
  5. Cleaning & preprocessing
  6. Analisis & visualisasi
Topik 2

Proses Data Cleaning dan Preprocessing

Mengapa Data Perlu Dibersihkan?

Sumber Masalah Data Umum
  • Input manual: typo, format tidak konsisten
  • Integrasi sistem: encoding berbeda, delimiter tidak seragam
  • Sensor/IoT: noise, dropout, packet loss
  • Legacy system: field kosong, kode usang
  • Human error: duplikasi entri, satuan berbeda
Dampak Data Kotor di Bisnis
  • Rekomendasi produk tidak akurat (e-commerce)
  • Scoring kredit keliru (perbankan)
  • Prediksi demand salah (supply chain)
  • Laporan manajemen menyesatkan
Prinsip: Data quality = Decision quality

Tahapan Data Preprocessing

> 0]
TahapAktivitasFungsi pandas/R
1. InspeksiCek shape, tipe data, distribusidf.info(), df.describe()
2. DuplikasiTemukan dan hapus baris duplikatdf.duplicated(), df.drop_duplicates()
3. Tipe dataKonversi ke tipe yang benardf.astype(), pd.to_datetime()
4. StandardisasiFormat teks konsisten, strip whitespacestr.strip(), str.lower()
5. ValidasiCek range nilai, constraint bisnisdf[df
age
6. TransformasiNormalisasi, encoding kategoriMinMaxScaler, get_dummies()

Teknik Standardisasi Data

Standarisasi Format Teks
# Python: bersihkan kolom nama
dfnama= dfnama.str.strip()
dfnama= dfnama.str.title()
dfkota= dfkota.str.lower()

# R: tidyverse
df %>% mutate(
  nama = str_trim(str_to_title(nama)),
  kota = str_to_lower(kota)
)
Konversi Tipe Data
# Konversi tanggal
dftanggal= pd.to_datetime(
  dftanggal, format='%d/%m/%Y'
)

# Konversi harga (hapus 'Rp' dan koma)
dfharga= dfharga
  .str.replace('Rp','').str.replace(',','')
  .astype(float)
Topik 3

Handling Missing Values & Outliers

Strategi Penanganan Missing Values

Identifikasi Missing Values
# Hitung missing per kolom
df.isnull().sum()

# Persentase missing
(df.isnull().sum() / len(df) * 100).round(2)
Aturan praktis:
<5% missing → bisa impute atau drop
5–30% missing → impute dengan hati-hati
>30% missing → pertimbangkan hapus kolom
Teknik Imputasi
TeknikKapan dipakai
Mean imputationData numerik, distribusi normal
Median imputationData numerik, ada outlier
Mode imputationData kategorikal
Forward fillTime series, nilai cenderung stabil
KNN imputationPola kompleks, data cukup besar

Implementasi Imputasi di Python

Imputasi Sederhana
import pandas as pd
from sklearn.impute import SimpleImputer

# Median untuk kolom numerik
dfpendapatan.fillna(
  dfpendapatan.median(), inplace=True
)

# Mode untuk kolom kategori
dfkota.fillna(
  dfkota.mode()[0], inplace=True
)

# Forward fill untuk time series
dfharga_saham.fillna(method='ffill')
Imputasi Berbasis Model (KNN)
from sklearn.impute import KNNImputer
import numpy as np

# KNN imputer (k=5 neighbor)
imputer = KNNImputer(n_neighbors=5)
df_numeric = df.select_dtypes(
  include=[np.number]
)
df_imputed = pd.DataFrame(
  imputer.fit_transform(df_numeric),
  columns=df_numeric.columns
)

Coba Sendiri: Bandingkan Hasil Mean vs Median Imputation

Masukkan deretan angka bermasalah lalu bandingkan hasil imputasi mean dan median saat ada outlier.

Deteksi dan Penanganan Outliers

Metode Deteksi Outlier
IQR Method (non-parametrik):
Outlier = nilai di bawah Q1 - 1.5×IQR
atau di atas Q3 + 1.5×IQR
Z-Score (parametrik):
Outlier = |z-score| > 3
(lebih dari 3 standar deviasi dari mean)
Implementasi IQR di Python
Q1 = dfnilai_transaksi.quantile(0.25)
Q3 = dfnilai_transaksi.quantile(0.75)
IQR = Q3 - Q1

lower = Q1 - 1.5 * IQR
upper = Q3 + 1.5 * IQR

# Filter: pertahankan yang dalam range
df_clean = df[
  (dfnilai_transaksi>= lower) &
  (dfnilai_transaksi<= upper)
]

Coba Sendiri: Uji Batas Outlier Metode IQR

Masukkan deretan nilai transaksi lalu amati bagaimana batas bawah/atas IQR menandai titik mana yang dianggap outlier.

Coba Sendiri: Hitung Z-Score dan Ambang 3 Standar Deviasi

Masukkan nilai data lalu lihat berapa standar deviasi jaraknya dari rata-rata, dan kapan ia dianggap outlier.

Studi Kasus: Cleaning Data Transaksi GoPay

Skenario: Dataset berisi 500.000 transaksi GoPay selama 1 bulan. Tim analytics menemukan beberapa masalah sebelum dapat membangun model deteksi fraud.
Masalah DitemukanProporsiPenanganan
Kolom 'merchant_id' kosong~2.3%Impute dengan 'UNKNOWN', flag sebagai kategori terpisah
Nilai transaksi negatif~0.1%Validasi: refund → pertahankan; error → hapus
Duplikasi transaction_id~0.8%Hapus duplikat, log untuk audit sistem
Outlier nilai transaksi (>Rp 50 juta)~0.05%Pertahankan — bisa transaksi B2B yang valid

Pipeline Cleaning Lengkap: Contoh BRImo

import pandas as pd
import numpy as np

# 1. Load data
df = pd.read_csv('brimo_transactions.csv')

# 2. Inspeksi awal
print(df.shape)   # (1200000, 15)
print(df.isnull().sum())

# 3. Hapus duplikat
df = df.drop_duplicates(subset=transaction_id)

# 4. Standardisasi format tanggal
dfcreated_at= pd.to_datetime(dfcreated_at)

# 5. Impute missing amount dengan median per kategori
dfamount= df.groupby('category')amount.transform(
  lambda x: x.fillna(x.median())
)

# 6. Filter outlier ekstrem (99.9th percentile)
cap = dfamount.quantile(0.999)
df = df[dfamount<= cap]

Diagram Alur Data Preprocessing

Raw DataCSV / Excel / DBInspeksishape, dtypes, infoHapus Duplikatdrop_duplicates()Handle MissingHandle OutlierTransformasinormalize, encodeCleanDataPipeline Data PreprocessingAlur standar dari raw data menuju clean data siap analisisSTEP 1STEP 2STEP 3STEP 4-5STEP 6Proses bersifat iteratif — evaluasi kembali ke tahap sebelumnya jika ditemukan masalah baru

Rangkuman Pertemuan 4

Key Takeaways Hari Ini:
  • Python vs R: Python unggul untuk deployment produksi; R unggul untuk analisis statistik mendalam. Keduanya saling melengkapi.
  • Library utama: pandas (Python) dan dplyr (R) adalah tools manipulasi data primer yang wajib dikuasai.
  • Data cleaning bukan opsional: 60-80% waktu analis dihabiskan di sini. Kualitas cleaning = kualitas keputusan.
  • Missing values: Pilih strategi imputasi berdasarkan jenis data dan distribusinya, bukan sembarang hapus.
  • Outliers: Tanya konteks bisnis sebelum hapus. Outlier bisa jadi sinyal penting (fraud, transaksi besar B2B).
Prinsip utama: Setiap keputusan cleaning harus dapat Anda jelaskan secara logis dan bisnis, bukan sekadar "mengikuti rumus".

Tugas & Diskusi

Tugas Individu (dikumpul minggu depan)
  1. Download dataset transaksi retail dari Kaggle (link di LMS)
  2. Lakukan inspeksi awal dan dokumentasikan temuan
  3. Identifikasi dan tangani missing values dengan teknik yang tepat (justify pilihan Anda)
  4. Deteksi outlier menggunakan metode IQR dan Z-score
  5. Buat laporan singkat (PDF) berisi kode Python + penjelasan keputusan
Diskusi Kelompok (hari ini)
Pertanyaan diskusi:
Dataset penjualan Tokopedia memiliki 15% missing values pada kolom 'harga_setelah_diskon'. Seorang analis mengusulkan imputasi dengan mean. Analis lain mengusulkan median. Manakah yang lebih tepat dan mengapa? Apa risiko masing-masing pendekatan?
Pertanyaan & Diskusi

Gunakan waktu ini untuk bertanya atau mendiskusikan tantangan yang Anda temui dalam eksplorasi data hari ini.

Preview Pertemuan 5: Exploratory Data Analysis (EDA) dan Visualisasi Data
  • Teknik EDA sistematis: univariat, bivariat, multivariat
  • Visualisasi dengan matplotlib, seaborn, dan ggplot2
  • Storytelling dengan data: dari insight ke keputusan bisnis
  • Persiapan: pastikan library matplotlib dan seaborn sudah terinstal