Belajar Math - Integral & Fundamental Theorem
Series/Belajar Math/Episode 23
Episode 23 of 28

Belajar Math - Integral & Fundamental Theorem

Integral definite (area di bawah kurva) dan indefinite (antiderivative), Riemann sum逼近, dan Fundamental Theorem of Calculus — konsep ini muncul dalam area/volume numerik, probability dari PDF, accumulated cost, dan numerical methods.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 22 kita mempelajari turunan — laju perubahan instan — pada episode ini kita mempelajari integral: kebalikan dari turunan. Jika turunan memberitahu kita "seberapa cepat" sesuatu berubah, integral memberitahu kita "berapa total" yang telah terakumulasi. Dalam programming, integral muncul dalam menghitung area, volume, probability dari PDF, dan accumulated cost.

Mengapa integral penting? Karena banyak masalah dunia nyata melibatkan akumulasi dari rate yang terus berubah: jarak dari kecepatan, total biaya dari marginal cost, probability dari density function. Integral memberikan cara untuk menghitung total ini secara presisi.

Riemann Sum

Integral didefinisikan sebagai Riemann sum: jumlah area dari banyak persegi panjang tipis yang mendekati kurva.

PythonRiemann sum —逼近 integral
import math
 
def riemann_sum(f, a, b, n):
    """Riemann sum: n persegi panjang dari a ke b."""
    dx = (b - a) / n
    total = 0
    for i in range(n):
        x = a + i * dx
        total += f(x) * dx
    return total
 
# Integral x² dari 0 ke 2 = 8/3 ≈ 2.6667
f = lambda x: x**2
exact = 8/3
 
print("Riemann sum: ∫₀² x² dx = 8/3 ≈ 2.6667\n")
for n in [10, 100, 1000, 10000]:
    approx = riemann_sum(f, 0, 2, n)
    error = abs(approx - exact)
    print(f"  n={n:>5}: {approx:.6f} (error: {error:.2e})")

Integral Definite

∫[a,b] f(x) dx = area di bawah kurva f(x) dari a ke b.

Beberapa Integral yang Perlu Dihafal

PythonIntegral dasar
import math
 
# ∫xⁿ dx = x^(n+1)/(n+1) + C
# ∫sin(x) dx = -cos(x) + C
# ∫cos(x) dx = sin(x) + C
# ∫eˣ dx = eˣ + C
# ∫(1/x) dx = ln|x| + C
 
def integral_xn(n, a, b):
    """∫[a,b] xⁿ dx = [x^(n+1)/(n+1)]_a^b."""
    return (b**(n+1) - a**(n+1)) / (n+1)
 
def integral_sin(a, b):
    """∫[a,b] sin(x) dx = [-cos(x)]_a^b."""
    return -math.cos(b) + math.cos(a)
 
print("Verifikasi integral dasar:")
print(f"  ∫[0,1] x² dx = {integral_xn(2, 0, 1):.4f} (exact: 1/3)")
print(f"  ∫[0,π] sin(x) dx = {integral_sin(0, math.pi):.4f} (exact: 2)")
print(f"  ∫[0,1] x³ dx = {integral_xn(3, 0, 1):.4f} (exact: 1/4)")

Fundamental Theorem of Calculus

Part 1: Jika F(x) adalah antiderivative dari f(x), maka ∫[a,b] f(x) dx = F(b) - F(a).

Part 2: d/dx ∫[a,x] f(t) dt = f(x) — turunan dari integral adalah fungsi asli.

PythonFundamental theorem — antiderivative
# Jika f(x) = 2x, maka F(x) = x² + C
# ∫[1,3] 2x dx = F(3) - F(1) = 9 - 1 = 8
 
def f(x):
    return 2*x
 
def F(x):
    """Antiderivative of 2x = x²."""
    return x**2
 
a, b = 1, 3
result = F(b) - F(a)
print(f"∫[{a},{b}] 2x dx = F({b}) - F({a}) = {result}")
 
# Verifikasi dengan Riemann sum
approx = riemann_sum(f, a, b, 10000)
print(f"Riemann sum (n=10000): {approx:.4f}")

Aplikasi

Area Numerik — SciPy

PythonSciPy integral — quad
from scipy import integrate
import math
 
# ∫[0,π] sin(x) dx
result, error = integrate.quad(math.sin, 0, math.pi)
print(f"∫[0,π] sin(x) dx = {result:.6f} (error: {error:.2e})")
print(f"Exact: 2.0")
 
# ∫[0,∞] e^(-x²) dx = √π/2 (Gaussian integral)
result, error = integrate.quad(lambda x: math.exp(-x**2), 0, float('inf'))
print(f"\n∫[0,∞] e^(-x²) dx = {result:.6f}")
print(f"√π/2 = {math.sqrt(math.pi)/2:.6f}")

Probability dari PDF

Probability dari Probability Density Function
import math
from scipy import integrate
 
def normal_pdf(x, mu=0, sigma=1):
    """Normal distribution PDF."""
    return (1 / (sigma * math.sqrt(2 * math.pi))) * math.exp(-0.5 * ((x - mu) / sigma)**2)
 
# P(-1 < X < 1) untuk normal(0,1)
prob, _ = integrate.quad(normal_pdf, -1, 1)
print(f"P(-1 < X < 1) for N(0,1) = {prob:.4f}")
print(f"Expected: ~0.6827 (68-95-99.7 rule)")
 
# P(-2 < X < 2)
prob2, _ = integrate.quad(normal_pdf, -2, 2)
print(f"P(-2 < X < 2) for N(0,1) = {prob2:.4f}")
print(f"Expected: ~0.9545")

Accumulated Cost

PythonAccumulated cost — integral dari marginal cost
import math
from scipy import integrate
 
# Marginal cost: MC(q) = 2q + 10 (biaya tambahan untuk unit ke-q)
def marginal_cost(q):
    return 2*q + 10
 
# Total cost = ∫[0,Q] MC(q) dq + fixed_cost
fixed_cost = 1000
 
total_cost, _ = integrate.quad(marginal_cost, 0, 100)
print(f"Marginal cost: MC(q) = 2q + 10")
print(f"Total cost untuk Q=100: {total_cost + fixed_cost:,.0f}")
 
# Verifikasi: ∫(2q+10)dq = q² + 10q, dari 0 ke 100 = 10000+1000 = 11000
exact = 100**2 + 10*100
print(f"Exact: {exact + fixed_cost:,.0f}")

Volume of Revolution

PythonVolume — disk method
from scipy import integrate
import math
 
# Volume of revolution: ∫[a,b] π × [f(x)]² dx
def f(x):
    return math.sqrt(x)  # Rotasi y = √x dari 0 ke 4
 
def volume_integrand(x):
    return math.pi * f(x)**2
 
volume, _ = integrate.quad(volume_integrand, 0, 4)
print(f"Volume of revolution (y=√x, 0 to 4): {volume:.4f}")
# Exact: π × ∫[0,4] x dx = π × 8 = 25.13...
print(f"Exact: {8 * math.pi:.4f}")

Note

Riemann sum dengan n persegi panjang memberikan逼近 yang cukup baik untuk banyak aplikasi. Tetapi untuk akurasi tinggi, gunakan library numerik seperti SciPy yang menggunakan adaptive quadrature — otomatis menyesuaikan jumlah titik berdasarkan kompleksitas fungsi.

Penutup

Inti yang harus dibawa pulang:

  • Riemann sum:逼近 integral dengan menjumlahkan area persegi panjang tipis.
  • Integral definite ∫[a,b] f(x) dx = area di bawah kurva dari a ke b.
  • Fundamental Theorem: ∫ f(x) dx = F(b) - F(a) di mana F adalah antiderivative.
  • Integral muncul dalam area numerik, probability dari PDF, accumulated cost, dan volume.
  • Gunakan SciPy integrate.quad() untuk integral numerik yang akurat.

Di episode 24 selanjutnya kita akan mempelajari multivariable calculus dan gradients — gradient vector, directional derivative, dan bagaimana ini menjadi fondasi dari backpropagation di neural networks!