Fundamental Series — Part 20 of 20 🎉
Selamat! Ini part terakhir. Kita menggabungkan semua skill dari Part 0–19 dalam satu do-file analisis end-to-end.
Skenario
Kamu mendapat dataset penjualan toko. Tugasmu: import, bersihkan, analisis, dan buat laporan sederhana — semuanya dalam satu do-file terstruktur.
Master Do-file
* ============================================
* mini_project.do
* Analisis Data Penjualan — End-to-End
* ============================================
clear all
set more off
version 17
* Log
capture log close
log using "output/mini_project.log", replaceStep 1 — Import / Buat Data
* Buat data simulasi
clear
set seed 42
set obs 200
generate id = _n
generate tanggal = date("01jan2025", "DMY") + int(runiform() * 365)
format tanggal %td
generate produk = ""
replace produk = "Laptop" if runiform() < 0.2
replace produk = "Mouse" if produk == "" & runiform() < 0.25
replace produk = "Keyboard" if produk == "" & runiform() < 0.33
replace produk = "Monitor" if produk == "" & runiform() < 0.5
replace produk = "Headset" if produk == ""
generate kota = ""
replace kota = "Jakarta" if runiform() < 0.2
replace kota = "Bandung" if kota == "" & runiform() < 0.25
replace kota = "Surabaya" if kota == "" & runiform() < 0.33
replace kota = "Semarang" if kota == "" & runiform() < 0.5
replace kota = "Medan" if kota == ""
generate jumlah = int(runiform() * 10) + 1
generate harga = cond(runiform() < 0.3, 300, cond(runiform() < 0.5, 100, 75))
generate diskon = cond(runiform() < 0.25, ., cond(runiform() < 0.5, 0.05, 0))Step 2 — Eksplorasi
describe
codebook, compact
misstable summarize
tabulate produk
tabulate kotaStep 3 — Cleaning
* Isi missing diskon dengan 0
replace diskon = 0 if missing(diskon)
* Hitung total
generate total = jumlah * harga * (1 - diskon)
* Ekstrak komponen tanggal
generate bulan = month(tanggal)
generate kuartal = quarter(tanggal)
* Filter valid
drop if total <= 0Step 4 — Analisis
* Revenue per kota
preserve
collapse (sum) total_revenue=total (count) n=id (mean) avg=total, by(kota)
gsort -total_revenue
list
restore
* Revenue per bulan
preserve
collapse (sum) total_revenue=total, by(bulan)
sort bulan
list
restore
* Produk terlaris
preserve
collapse (sum) total_terjual=jumlah total_revenue=total, by(produk)
gsort -total_terjual
list
restoreStep 5 — Visualisasi
* Bar chart revenue per kota
preserve
collapse (sum) total=total, by(kota)
graph bar total, over(kota, sort(1) descending) ///
title("Total Revenue per Kota") ///
ytitle("Revenue") ///
bar(1, color(navy))
graph export "output/revenue_kota.png", replace
restore
* Line chart trend bulanan
preserve
collapse (sum) total=total, by(bulan)
twoway line total bulan, ///
title("Revenue Trend Bulanan") ///
xtitle("Bulan") ytitle("Revenue") ///
lwidth(thick) lcolor(navy)
graph export "output/revenue_bulan.png", replace
restoreStep 6 — Export
* Simpan data bersih
save "output/penjualan_clean.dta", replace
* Export ke CSV
export delimited using "output/penjualan_clean.csv", replace
* Tutup log
log closeChecklist Skills yang Digunakan
| Part | Skill | ✓ |
|---|---|---|
| 1 | Variabel & tipe data | ✓ |
| 2 | Macro & scalar | ✓ |
| 3 | Dataset | ✓ |
| 4 | Operator | ✓ |
| 5 | Conditional (cond/replace if) | ✓ |
| 9 | Date & time | ✓ |
| 10 | Missing values | ✓ |
| 12 | Import & export | ✓ |
| 13 | keep/drop/if | ✓ |
| 14 | generate/replace/sort | ✓ |
| 15 | collapse/bysort | ✓ |
| 18 | Log files | ✓ |
| 19 | Project structure | ✓ |
Tantangan Tambahan
BahayaExtend the Project
- Analisis diskon — produk mana yang paling sering didiskon?
- Buat cross-tabulation
table kota produk, statistic(sum total) - Identifikasi bulan terbaik per kota (pakai bysort + egen)
- Buat program
ringkasan_kotayang menerima nama kota dan tampilkan summary - Export tabel ke Excel:
putexcel
Penutup
Selamat menyelesaikan Fundamental Programming Series! 🎉
Kamu sekarang punya fondasi kuat untuk:
- Mengimpor dan membersihkan data
- Memanipulasi dan menganalisis data
- Menulis do-file yang terstruktur dan reproducible
Langkah selanjutnya: Lanjut ke tutorial topik spesifik — regresi, panel data, atau IV estimation.
Sebelumnya: Part 19 — Reproducible Workflow Kembali ke: Index Tutorial Stata