Belajar Math - Mengapa Matematika itu Penting untuk Pemrograman
Episode 1 of 28

Belajar Math - Mengapa Matematika itu Penting untuk Pemrograman

Matematika muncul di mana-mana dalam kode: if/else adalah logika proposisional, array adalah himpunan, loop adalah deret dan rekrusi, grafik game adalah geometri, dan database adalah aljabar relasional. Di episode ini kalian belajar mengenali konsep matematika di balik potongan kode sehari-hari.

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

Pendahuluan

Setelah di episode 0 kita menyiapkan environment — Python terinstall dan math_lab.py siap — pada episode ini kita menarik napas sejenak dari hands-on dan memahami mengapa matematika itu penting untuk pemrograman. Banyak programmer berpikir matematika hanya relevan untuk data science atau game development — padahal matematika muncul di setiap lapisan kode yang kalian tulis.

Mengapa harus memahami hubungan ini? Karena ketika kalian menyadari bahwa if/else adalah logika proposisional, kalian akan menulis kondisi yang lebih benar dan efisien. Ketika kalian sadar bahwa loop adalah deret aritmatik atau geometrik, kalian bisa memprediksi kompleksitas tanpa menghitung manual. Pemahaman ini membedakan programmer yang "bisa bikin jalan" dari programmer yang "bisa bikin benar dan cepat."

Matematika di Balik Kode Sehari-hari

if/else Adalah Logika Proposisional

Setiap if/else dalam kode kalian pada dasarnya adalah ekspresi logika boolean — kombinasi AND, OR, NOT yang menghasilkan True atau False. Ini bukan analogi, ini matematika formal.

PythonLogika boolean dalam if/else
is_admin = True
has_permission = False
 
# Ekspresi logika: (is_admin AND NOT has_permission)
if is_admin and not has_permission:
    print("Grant access — admin bypass")
elif is_admin and has_permission:
    print("Grant access — normal admin flow")
else:
    print("Deny access")

Operator and, or, not di Python adalah representasi langsung dari AND, OR, NOT dalam logika proposisional. Kita akan mempelajari ini secara mendalam di episode 5 — lengkap dengan truth table dan short-circuit evaluation.

Array Adalah Himpunan (Set)

Array atau list dalam program adalah representasi dari himpunan (set) dalam matematika — kumpulan elemen yang bisa dioperasikan: union, intersection, difference. Bedanya, array punya urutan (ordered) dan boleh duplikat, sedangkan set matematika tidak.

PythonOperasi himpunan pada list
backend_devs = ["Alice", "Bob", "Charlie"]
frontend_devs = ["Bob", "Diana", "Eve"]
 
# Union: semua developer
all_devs = set(backend_devs) | set(frontend_devs)
 
# Intersection: fullstack
fullstack = set(backend_devs) & set(frontend_devs)
 
# Difference: hanya backend
only_backend = set(backend_devs) - set(frontend_devs)
 
print(f"All: {all_devs}")
print(f"Fullstack: {fullstack}")
print(f"Only backend: {only_backend}")

Operasi |, &, - pada set Python adalah operasi himpunan yang persis sama dengan yang dipelajari di matematika diskrit. Kita bedah ini di episode 7.

Loop Adalah Deret dan Rekrusi

Sebuah for loop menghitung deret — penjumlahan berulang. Fungsi rekursif adalah rekurensi yang menyelesaikan masalah dengan memecahnya menjadi sub-masalah lebih kecil.

PythonLoop sebagai deret, fungsi sebagai rekurensi
# Deret aritmatik: jumlah 1 sampai n
def jumlah_manual(n: int) -> int:
    total = 0
    for i in range(1, n + 1):
        total += i
    return total
 
# Rekurensi: fibonacci
def fib(n: int) -> int:
    if n <= 1:
        return n
    return fib(n - 1) + fib(n - 2)
 
print(f"Jumlah 1..100 = {jumlah_manual(100)}")  # 5050
print(f"Fibonacci(10) = {fib(10)}")              # 55

Gauss menemukan rumus n*(n+1)/2 untuk deret aritmatik — mengubah operasi O(n) menjadi O(1). Ini jenis insight yang akan kalian dapatkan di episode 4 tentang fungsi.

Grafik Game Adalah Geometri

Setiap game 2D yang menampilkan posisi karakter, menghitung jarak, atau memutar sprite — menggunakan geometri dan aljabar vektor di balik layar.

PythonGeometri di balik game 2D
import math
 
# Posisi karakter
player_x, player_y = 3, 4
enemy_x, enemy_y = 6, 8
 
# Jarak Euclidean (Pythagoras)
distance = math.sqrt((enemy_x - player_x)**2 + (enemy_y - player_y)**2)
 
# Arah ke musuh (normalisasi vektor)
dx, dy = enemy_x - player_x, enemy_y - player_y
length = math.sqrt(dx**2 + dy**2)
direction = (dx / length, dy / length)
 
print(f"Jarak: {distance:.2f}")          # 5.00
print(f"Arah: ({direction[0]:.2f}, {direction[1]:.2f})")

Kita akan membangun Vec2 class lengkap di episode 16 — termasuk dot product, normalisasi, dan rotasi.

Database Adalah Aljabar Relasional

Query SQL adalah operasi aljabar relasional: SELECT adalah projection, WHERE adalah selection, JOIN adalah natural join, dan GROUP BY adalah aggregation.

sql
-- Projection: pilih kolom tertentu
SELECT name, email FROM users;
 
-- Selection: filter baris
SELECT * FROM orders WHERE total > 1000000;
 
-- Natural join: gabung dua tabel
SELECT u.name, o.total
FROM users u
JOIN orders o ON u.id = o.user_id;

Ini bukan kebetulan — Edgar Codd merancang relational database berdasarkan aljabar relasional di tahun 1970-an. Memahami matematika di balik SQL membuat query kompleks lebih mudah dirancang.

Pola Pikir Matematika untuk Programmer

Abstraksi

Matematika melatih abstraksi — kemampuan melihat pola di balik detail yang berbeda. Ketika kalian menulis fungsi yang bisa menangani berbagai tipe input, itu abstraksi. Ketika kalian merancang interface yang bisa diimplementasikan dengan cara berbeda, itu abstraksi. Matematika dan programming berbagi keterampilan inti ini.

Pemecahan Masalah Sistematis

Matematika mengajarkan pendekatan sistematis: definisikan masalah → identifikasi yang diketahui → pilih metode → eksekusi → verifikasi. Sama persis dengan menulis kode: definisikan requirement → pahami input/output → pilih algoritma → implementasi → testing.

Berpikir dengan Jelas

Matematika memaksa kalian berpikir dengan presisi — tidak ada "kurang lebih" atau "kira-kira" di matematika formal. Kemampuan ini langsung ter transfer ke programming: spesifikasi yang ambigu menghasilkan bug, sama seperti bukti matematika yang tidak ketat menghasilkan kesimpulan salah.

Tip

Latihan mingguan: pilih satu baris kode yang kalian tulis minggu ini, identifikasi konsep matematika di baliknya, dan cari tahu istilah formalnya. Dalam sebulan, kalian akan melihat matematika di mana-mana.

Mengapa Matematika Membuat Kalian Programmer Lebih Baik

Berikut ringkasan hubungan antara konsep matematika dan应用场景 dalam programming:

Konsep MatematikaRepresentasi dalam KodeContoh Nyata
Logika proposisionalif/else, boolean expressionsKondisi dalam kontrol alur
HimpunanArray, list, setFilter data, deduplicate
Deret & rekurensiLoop, fungsi rekursifAggregasi data, fibonacci
Geometri & vektorKoordinat, jarak, rotasiGame physics, grafika
Aljabar relasionalSQL queryDatabase operations
GrafGraph traversalDependency resolution, social network
ProbabilitasRandom number, statistikA/B testing, machine learning
KalkulusTurunan, integralGradient descent, optimization

Setiap baris dari tabel ini akan dibahas secara mendalam di episode-episode selanjutnya.

Penutup

Inti yang harus dibawa pulang:

  • Matematika bukan hanya untuk data science — ia muncul di if/else, array, loop, grafik game, dan SQL.
  • if/else adalah logika proposisional, array adalah himpunan, loop adalah deret, game adalah geometri, database adalah aljabar relasional.
  • Pola pikir matematika — abstraksi, pemecahan masalah sistematis, presisi — secara langsung meningkatkan kualitas kode.
  • Kalian tidak perlu menguasai semua sekarang; series ini akan membawa kalian dari nol ke advanced secara bertahap.

Di episode 2 selanjutnya kita akan mempelajari number systems untuk komputer — desimal, biner, oktal, heksadesimal, two's complement, dan bagaimana konsep ini muncul dalam warna hex, bitwise operators, IP address, dan UTF-8 encoding. Mulailah melihat kode kalian dengan mata baru — matematika sudah ada di sana!