Proyek Mini: Analisis Data Nyata
Setelah pertemuan ini, mahasiswa diharapkan mampu:
Pertemuan ini dirancang sebagai proyek akhir mini sebelum UAS. Mahasiswa diminta bekerja dalam kelompok kecil (3โ4 orang) untuk menganalisis dataset publik yang lebih besar.
Tujuan pembelajaran: melatih kolaborasi, komunikasi hasil analisis, dan kemampuan berpikir kritis terhadap data nyata.
Belajar bekerja sama dan membagi tugas
Melatih presentasi dan diskusi hasil
Menganalisis data dengan cara berpikir kritis
Mengelola waktu dan sumber daya proyek
Bentuk kelompok 3-4 orang dan pilih dataset sesuai minat
Minggu 1Bersihkan data, tangani missing values, dan format data
Minggu 1-2Eksplorasi pola, statistik deskriptif, dan korelasi
Minggu 2Buat grafik informatif menggunakan Matplotlib/Seaborn/Plotly
Minggu 2Tarik insight bermakna dari hasil analisis
Minggu 3Presentasikan laporan notebook di kelas
Minggu 3import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
# Load dataset (contoh: E-Commerce)
df = pd.read_csv('ecommerce_data.csv')
print(df.head())
print(df.info())
# Cek missing values
print(df.isnull().sum())
# Handle missing values
df['Age'].fillna(df['Age'].median(), inplace=True)
df.dropna(subset=['Customer_ID'], inplace=True)
# Remove duplicates
df = df.drop_duplicates()
# Format kolom tanggal
df['Purchase_Date'] = pd.to_datetime(df['Purchase_Date'])
print(f"Data setelah cleaning: {df.shape}")
# Statistik deskriptif
print(df.describe())
# Analisis per kategori
category_sales = df.groupby('Category')['Sales'].sum().sort_values(ascending=False)
print(category_sales)
# Korelasi antar variabel numerik
correlation = df[['Age', 'Sales', 'Quantity']].corr()
print(correlation)
# Visualisasi dengan Seaborn
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
# Distribusi Penjualan
sns.histplot(df['Sales'], kde=True, ax=axes[0,0], color='skyblue')
axes[0,0].set_title('Distribusi Penjualan')
# Top 10 Produk
top_products = df.groupby('Product')['Sales'].sum().nlargest(10)
top_products.plot(kind='barh', ax=axes[0,1], color='coral')
axes[0,1].set_title('Top 10 Produk Terlaris')
# Penjualan per Kategori
category_sales.plot(kind='pie', ax=axes[1,0], autopct='%1.1f%%')
axes[1,0].set_title('Proporsi Penjualan per Kategori')
# Trend Penjualan Bulanan
monthly_sales = df.groupby(df['Purchase_Date'].dt.to_period('M'))['Sales'].sum()
monthly_sales.plot(ax=axes[1,1], marker='o', color='green')
axes[1,1].set_title('Trend Penjualan Bulanan')
plt.tight_layout()
plt.show()
# Visualisasi interaktif dengan Plotly
fig = px.scatter(df, x='Age', y='Sales', color='Category',
size='Quantity', hover_data=['Product'],
title='Analisis Penjualan berdasarkan Usia dan Kategori')
fig.show()
# Kesimpulan berdasarkan analisis
insights = """
KESIMPULAN ANALISIS E-COMMERCE:
1. Produk Terlaris:
- Produk kategori Elektronik mendominasi penjualan (45%)
- Top 3 produk: Laptop, Smartphone, Tablet
2. Demografi Pelanggan:
- Rentang usia 25-35 tahun adalah pembeli terbanyak
- Rata-rata transaksi: Rp 500.000
3. Trend Penjualan:
- Penjualan meningkat 20% pada bulan 11-12 (periode promo)
- Penurunan di bulan 2-3 (pasca hari raya)
4. Rekomendasi:
- Fokus marketing pada segmen usia 25-35 tahun
- Tingkatkan stok elektronik menjelang akhir tahun
- Buat program loyalitas untuk meningkatkan repeat purchase
"""
print(insights)
| Aspek | Bobot | Kriteria |
|---|---|---|
| Data Cleaning | 15% |
|
| EDA & Analisis | 30% |
|
| Visualisasi | 25% |
|
| Interpretasi | 20% |
|
| Presentasi | 10% |
|
Proyek ini membantu mahasiswa memahami alur kerja penuh data sains dan memperkuat kemampuan analitis sebelum menghadapi UAS.