โœ…Contoh lengkap sudah tersedia (dari pola yang dipakai di P2)

Proyek ini sudah punya versi contoh lengkap pakai dataset dummy: 16 siswa, 5 mata pelajaran, 4 kali ulangan. Materinya bisa dibuka dan dipelajari alurnya sebelum Abbas kerjakan versi asli pakai data kelasnya sendiri:

Cara mulai: buka Sheet di atas, baca tab Panduan dulu (2 menit), lalu kerjakan tab Latihan_Formula soal demi soal. Jangan lompat ke Kunci_Jawaban sebelum benar-benar coba sendiri minimal 5 menit per soal. Di situ letak belajarnya, bukan di jawabannya.

Pola yang dipakai: 1 pertanyaan dijawab pakai 5 cara berbeda, makin lama makin canggih tapi logikanya sama (filter, group, aggregate, sort). Setiap tahap sengaja pakai tool yang beda supaya Abbas ngerti bahwa fungsi-fungsi ini cuma "kosakata" berbeda untuk pertanyaan yang identik:

  • Formula Spreadsheet (tab Latihan_Formula + Kunci_Jawaban): AVERAGEIF untuk rata-rata bersyarat, RANK untuk urutan, CORREL untuk cek hubungan dua variabel, SPARKLINE untuk mini-grafik tren dalam satu sel. Ini titik masuk paling ramah karena Abbas sudah biasa pakai Sheets.
  • Pivot Table (tab Ringkasan_Pivot): meringkas data berdasarkan 2 kriteria sekaligus (Mapel x Ulangan) tanpa nulis formula manual satu-satu. Ini jembatan konsep ke GROUP BY di SQL: pivot table sebenarnya adalah GROUP BY yang dibungkus antarmuka drag-and-drop.
  • SQL (tab Query_SQL): function QUERY() di Google Sheets memakai bahasa mirip SQL asli (SELECT/WHERE/GROUP BY/ORDER BY). Soal yang identik dengan tab Formula, tapi ditulis sebagai satu baris query, lebih ringkas begitu datanya makin besar.
  • Python/Pandas (tab Lanjutan_Pandas_Looker): soal yang sama, ditulis ulang pakai .groupby() dan .corr() di Google Colab. Di sinilah logika yang sama akhirnya jadi kode yang bisa diskalakan ke data jutaan baris, sesuatu yang mustahil dikerjakan manual di spreadsheet.
  • Dashboard (Looker Studio): sambungkan langsung ke tab Data, chart update otomatis tanpa nulis ulang formula atau kode setiap kali datanya berubah. Ini "muara" dari seluruh proses, biar hasil analisis bisa dilihat orang lain tanpa perlu buka spreadsheet.

Fungsi baru dibanding contoh P2 (Penjualan Kantin): CORREL, dipakai buat cek apakah siswa yang lebih rajin hadir cenderung nilainya lebih baik. Di dataset contoh, angka korelasinya sekitar 0.68 (cukup kuat dan searah). Coba cek juga apakah pola serupa muncul di data kelas Abbas yang sebenarnya. CORREL ini jembatan langsung ke materi Bulan 7 (Statistik Inferensial), tempat Abbas akan belajar seberapa yakin kita boleh percaya angka korelasi seperti ini. Detail lengkap tiap tahap, termasuk urutan mengerjakan yang disarankan, ada di tab Panduan pada Sheet di atas.

๐ŸŽฏPertanyaan yang akan Abbas jawab
  • Mata pelajaran apa yang rata-rata nilainya paling rendah di kelas?
  • Apakah siswa yang hadir lebih sering cenderung punya nilai lebih baik?
  • Siapa 5 siswa yang paling butuh bimbingan tambahan?
  • Apa distribusi nilai untuk setiap mata pelajaran?
  • Apakah ada outlier yang aneh (nilai sangat tinggi atau sangat rendah)?

Deliverable (output wajib)

  • Notebook Google Colab yang berjalan penuh tanpa error
  • Minimal 5 visualisasi (histogram, bar chart, scatter plot)
  • Laporan insight 200 kata
  • CSV data yang sudah dibersihkan

Dataset

๐Ÿ“Opsi 1 (tercepat): pakai dataset yang sudah disiapkan

Tab Data di Google Sheet pada bagian atas halaman ini sudah berisi 320 baris nilai dummy siap pakai: 16 siswa, 5 mata pelajaran, 4 kali ulangan (kolom: Nama, Mapel, Ulangan_Ke, Nilai, Kehadiran_Persen). Download tab itu ke CSV (File > Download > Comma Separated Values) kalau mau langsung dipakai di Colab.

๐Ÿ“Opsi 2: buat dataset sendiri (untuk deliverable final)

Buat dataset sendiri: kumpulkan nilai 15-25 siswa fiktif dengan 5 mata pelajaran dan data kehadiran. Atau gunakan data nilai kelas Abbas yang sebenarnya (dengan izin). Kalau pakai data siswa asli, kerjakan di sheet privat, jangan di folder publik ini.

Scaffold Kode

Ini kerangka awal. Abbas kembangkan sendiri sesuai kebutuhan analisis.

python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

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

# EDA
print(df.info())
print(df.describe())

# Visualisasi distribusi per mata pelajaran
fig, axes = plt.subplots(2, 3, figsize=(15, 8))
mapel = ['matematika', 'bahasa_indo', 'bahasa_ing', 'biologi', 'fisika']
for i, m in enumerate(mapel):
    ax = axes[i//3, i%3]
    ax.hist(df[m], bins=8, color='steelblue', edgecolor='white')
    ax.axvline(df[m].mean(), color='red', linestyle='--', label='Mean')
    ax.set_title(m.replace('_', ' ').title())
    ax.legend()
plt.tight_layout()
plt.show()

# Siapa yang butuh bimbingan?
df['rata_rata'] = df[mapel].mean(axis=1)
butuh_bimbingan = df[df['rata_rata'] < 70].sort_values('rata_rata')
print("Siswa yang butuh bimbingan:")
print(butuh_bimbingan[['nama', 'rata_rata']])
๐ŸVersi paling sederhana (sudah dites, dataset dummy long-format)

Ini bukan pengganti scaffold di atas. Scaffold di atas pakai data format lebar (1 siswa = 1 baris, tiap mapel jadi kolom terpisah). Versi ini pakai format panjang (1 baris = 1 nilai), lebih cocok untuk latihan groupby() dan sejalan dengan tab Data di Sheet contoh.

python
import pandas as pd

df = pd.read_csv("nilai_sekolah.csv")  # export tab "Data" di Sheet ke CSV dulu

# rata-rata nilai per mapel, cari yang paling rendah
df.groupby("Mapel")["Nilai"].mean().sort_values()

# rata-rata nilai per siswa, 5 yang paling butuh bimbingan
rata_siswa = df.groupby("Nama")["Nilai"].mean().sort_values()
rata_siswa.head(5)

# korelasi kehadiran vs rata-rata nilai per siswa
kehadiran = df.groupby("Nama")["Kehadiran_Persen"].mean()
kehadiran.corr(rata_siswa)

# tren rata-rata nilai per ulangan
df.groupby("Ulangan_Ke")["Nilai"].mean().plot(kind="line", title="Tren Rata-rata Nilai per Ulangan")

Catatan: di Jupyter/Colab, cuma baris terakhir dalam satu cell yang otomatis ditampilkan hasilnya. Kalau mau lihat semua hasil sekaligus, pecah jadi cell terpisah per soal, atau bungkus tiap baris dengan print().

๐Ÿค”Sebelum mulai, pikirkan ini
  • Apa yang Abbas harapkan akan ditemukan? Tulis hipotesis awal sebelum melihat data.
  • Siapa yang akan membaca hasil analisis ini? Bagaimana cara penyajian yang paling tepat untuk mereka?
  • Apa yang akan Abbas lakukan jika data tidak mendukung hipotesis awal?
P2: Penjualan Kantin โ†’