Fundamental Series — Part 9 of 20
Data tanggal dan waktu sangat umum di data ekonomi dan survei. Python punya modul datetime bawaan dan integrasi kuat dengan pandas untuk time series.
Module datetime
from datetime import date, datetime, timedelta
# Tanggal hari ini
today = date.today()
# Buat tanggal manual
d = date(2026, 2, 26)
# Datetime (tanggal + waktu)
dt = datetime(2026, 2, 26, 14, 30, 0)Parsing String ke Date
from datetime import datetime
# strptime — string ke datetime
d = datetime.strptime("2026-02-26", "%Y-%m-%d")
d = datetime.strptime("26/02/2026", "%d/%m/%Y")
d = datetime.strptime("Feb 26, 2026", "%b %d, %Y")Format Codes
| Code | Arti | Contoh |
|---|---|---|
%Y |
Tahun 4-digit | 2026 |
%m |
Bulan (01-12) | 02 |
%b |
Bulan singkat | Feb |
%B |
Bulan penuh | February |
%d |
Tanggal (01-31) | 26 |
%A |
Nama hari | Thursday |
Mengekstrak Komponen
d = date(2026, 2, 26)
d.year # 2026
d.month # 2
d.day # 26
d.weekday() # 3 (Thursday — Monday=0)
d.isoformat() # '2026-02-26'Aritmetika Tanggal
from datetime import date, timedelta
d = date(2026, 2, 26)
# Tambah/kurang hari
d + timedelta(days=10) # 2026-03-08
d - timedelta(days=30) # 2026-01-27
# Selisih antar tanggal
d2 = date(2026, 12, 31)
delta = d2 - d
delta.days # 308Pandas Timestamps
import pandas as pd
# Parsing otomatis
ts = pd.Timestamp("2026-02-26")
ts = pd.to_datetime("26/02/2026", dayfirst=True)
# Series of dates
dates = pd.to_datetime(["2026-01-01", "2026-02-15", "2026-03-30"])
# Akses komponen via .dt accessor
df = pd.DataFrame({"tanggal": dates})
df["tanggal"].dt.year
df["tanggal"].dt.month
df["tanggal"].dt.day_name()Date Ranges
pd.date_range("2026-01-01", "2026-12-01", freq="MS")
# 12 tanggal: awal setiap bulan
pd.date_range("2026-01-01", periods=52, freq="W")
# 52 tanggal mingguanFormat Output
d = date(2026, 2, 26)
d.strftime("%d %B %Y") # '26 February 2026'
d.strftime("%A, %d %b %Y") # 'Thursday, 26 Feb 2026'
f"Tanggal: {d:%d-%m-%Y}" # 'Tanggal: 26-02-2026'Latihan
BahayaLatihan 9.1 — Parsing
tanggal = ["26-02-2026", "15/03/2025", "2024-12-31", "01 Jan 2023"]
# 1. Parse semua ke datetime objects
# 2. Urutkan dari terlama ke terbaru
# 3. Hitung selisih hari antara pertama dan terakhir
BahayaLatihan 9.2 — Pandas Date
import pandas as pd
# Buat DataFrame dengan kolom tanggal string
df = pd.DataFrame({
"tanggal": ["2026-01-15", "2026-03-20", "2026-07-04", "2026-12-25"]
})
# 1. Convert ke datetime
# 2. Tambah kolom: tahun, bulan, hari
# 3. Hitung selisih hari dari tanggal pertamaRingkasan
| Fitur | Keterangan |
|---|---|
date(y, m, d) |
Buat objek tanggal |
datetime.strptime() |
Parse string ke datetime |
timedelta(days=n) |
Aritmetika tanggal |
pd.to_datetime() |
Pandas parsing otomatis |
pd.date_range() |
Buat sequence tanggal |
.strftime() |
Format ke string |
.dt accessor |
Akses komponen di pandas |
Sebelumnya: Part 8 — String & Teks Selanjutnya: Part 10 — Missing Values