Hari 27: Pengenalan NumPy & Pandas
65 min
Last updated 26 Mar 2026
NumPy — Komputasi Numerik
NumPy menyediakan array N-dimensi yang jauh lebih cepat dari list Python untuk operasi matematika.
import numpy as np
# Membuat array
a = np.array([1, 2, 3, 4, 5])
b = np.array([[1,2,3],[4,5,6],[7,8,9]]) # 2D
print(a.shape) # (5,)
print(b.shape) # (3, 3)
print(a.dtype) # int64
# Array khusus
np.zeros((3, 4)) # matriks nol
np.ones((2, 3)) # matriks satu
np.eye(3) # matriks identitas
np.arange(0, 10, 2) # [0, 2, 4, 6, 8]
np.linspace(0, 1, 5) # [0, .25, .5, .75, 1]
np.random.rand(3, 3) # acak 0-1
Operasi NumPy
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])
# Operasi elemen-per-elemen (broadcasting)
print(a + b) # [11 22 33 44 55]
print(a * 2) # [2 4 6 8 10]
print(a ** 2) # [1 4 9 16 25]
print(np.sqrt(a)) # [1. 1.41 1.73 2. 2.24]
# Statistik
print(a.sum()) # 15
print(a.mean()) # 3.0
print(a.std()) # 1.41...
print(a.max()) # 5
# Indexing & slicing (seperti list tapi lebih powerful)
m = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(m[1, 2]) # 6 — baris 1, kolom 2
print(m[:, 1]) # [2 5 8] — semua baris, kolom 1
print(m[m > 5]) # [6 7 8 9] — boolean indexing
Pandas — Manipulasi Data
import pandas as pd
# DataFrame — tabel 2D
data = {
"nama" : ["Budi", "Ani", "Citra", "Doni"],
"nilai" : [88, 75, 92, 68],
"kelas" : ["A", "B", "A", "B"],
}
df = pd.DataFrame(data)
print(df)
print(df.dtypes)
print(df.describe()) # statistik deskriptif
Operasi DataFrame
import pandas as pd
df = pd.DataFrame({
"nama" : ["Budi","Ani","Citra","Doni","Eva"],
"nilai": [88, 75, 92, 68, 85],
"kelas": ["A","B","A","B","A"],
})
# Seleksi kolom
print(df["nama"]) # Series satu kolom
print(df[["nama","nilai"]]) # DataFrame multi kolom
# Filter baris
print(df[df["nilai"] >= 80])
print(df[df["kelas"] == "A"])
# Tambah kolom
df["grade"] = df["nilai"].apply(lambda n: "A" if n>=90 else "B" if n>=80 else "C")
# Agregasi
print(df.groupby("kelas")["nilai"].mean())
# Sort
print(df.sort_values("nilai", ascending=False))
# Baca/tulis CSV
# df.to_csv("output.csv", index=False)
# df2 = pd.read_csv("output.csv")Assignment
Gunakan Pandas untuk menganalisis data penjualan: buat DataFrame dari data yang diberikan, hitung total revenue per produk, tampilkan produk terlaris, dan buat ringkasan statistik.
Expected output:
=== DATA PENJUALAN ===
...
=== REVENUE PER PRODUK ===
Laptop : Rp 25,500,000
Mouse : Rp 1,950,000
Keyboard : Rp 1,050,000
Total revenue keseluruhan: Rp 28,500,000
Produk terlaris (qty) : Mouse
PY
main.py
Solution
Output