Salah 3 gram dalam dua situasi berbeda:
| Situasi | Berat | Galat absolut | Galat relatif | Makna |
|---|---|---|---|---|
| Menimbang bayi | ±3.000 g | 3 g | 0,1% | lumayan terasa |
| Menimbang truk | ±3.000.000 g | 3 g | 0,000001% | nyaris tak terasa |
Nilai sejati
Absolut menjawab "berapa jauhnya", relatif menjawab "seberapa serius".
| Sumber | Penyebab | Contoh sehari-hari |
|---|---|---|
| Galat data | masukan sudah salah sejak awal | sensor suhu terbaca 24.9 padahal 25.0 |
| Galat pembulatan | komputer menyimpan angka dengan bit terbatas | 0.1 + 0.2 = 0.30000000000000004 |
| Galat pemotongan | proses tak hingga dipangkas jadi berhingga | deret Taylor dihentikan di suku ke-n |
Hari ini kita buktikan sendiri pintu kedua dan ketiga dengan kode.
Setiap angka yang tidak menempel persis di kisi akan dibulatkan, dan tiap pembulatan meninggalkan galat kecil.
a, b = 0.1, 0.2
print(a + b) # 0.30000000000000004
print(a + b == 0.3) # False
== bertanya "apakah persis sama?" dan jawabannya False==; pakai toleransi, misal abs(a - b) < toleps = 1.0
while 1.0 + eps != 1.0: # selama 1 + eps masih "terlihat"
eps = eps / 2.0 # potong eps jadi setengahnya
print(eps * 2) # 2.220446049250313e-16
eps terakhir gagal menggeser angka 1.0eps saat berhenti sudah satu langkah terlalu kecileps * 2np.finfo(float).eps| Kandidat | Nilai | Galat relatif |
|---|---|---|
| 3.0 | sangat kasar | 4.5% |
| 3.14 | hafalan SD | 0.051% |
| 3.142 | tiga desimal | 0.013% |
| 22/7 | pecahan "alami" | 0.040% |
| 355/113 | legendaris dari Zu Chongzhi | 0.0000085% |
Pengurangan dua bilangan yang nyaris sama besar
Ibarat menentukan tebal satu lembar kertas dari dua tumpukan raksasa:
x = 1e-8 # 0.00000001
langsung = 1.0 - math.cos(x) # rumus apa adanya
bagus = 2.0 * math.sin(x/2)**2 # identitas: 1 - cos(x) = 2 sin^2(x/2)
eksak = x**2 / 2 # pembanding hampir sempurna
Hasilnya:
| Cara | Hasil | Galat relatif |
|---|---|---|
| Langsung | 0.0 | 100% (semua informasi lenyap) |
| Identitas | 5.0000000000000005e-17 | nyaris 0% |
Dua rumus yang sama di atas kertas bisa berbeda jauh hasilnya di komputer.
Setiap suku tambahan ibarat satu lapis cat baru: celah makin tertutup rapat, tetapi pengerjaannya makin lama.
def taylor_exp(x, n):
s = 0.0 # kotak penampung, mula-mula kosong
for k in range(n + 1): # ulangi k = 0, 1, ..., n
s += x**k / math.factorial(k) # tambahkan suku x^k / k!
return s # kirim hasil keluar fungsi
def = membuat fungsi sendiri dengan dua masukan: titik x dan jumlah suku nn: makin teliti, makin lama dihitung| n | aproksimasi | Galat relatif |
|---|---|---|
| 1 | 2.0000 | 26.42% |
| 3 | 2.6667 | 1.90% |
| 8 | 2.7182788 | 0.00011% |
| 10 | 2.7182818 | 0.000001% |
| Aspek | Pembulatan | Pemotongan |
|---|---|---|
| Sumber | perangkat menyimpan bit terbatas | kita memangkas proses tak hingga |
| Pemegang kendali | perangkat (tidak bisa ditawar) | pemrogram (bisa diatur) |
| Saat langkah ditambah | menumpuk, membesar | mengecil, konvergen |
| Batas bawah | sekecil apa pun (sampai kena pembulatan) |
Setiap metode numerik mencari titik seimbang di antara keduanya.
3.1415, 22/7, 355/113; mana yang paling akurat?0.01 sebanyak 100.000 kali dalam float32 vs float64; mengapa float32 melenceng jauh?1 - cos(x) dan solusinya 2 sin^2(x/2)Format berkas: [KN2026_5A_D4_2024]_Modul1_001.zip via Microsoft Teams.
[1e16, 1.0, -1e16, 1.0]Materi lengkap: modul praktikum di repositori
Situs: kyeiki.github.io/komputasi-numerik-2026
Kumpulkan tugas melalui Microsoft Teams sebelum tenggat
DEK PRESENTASI MARP, ringkasan bahasa awam Modul 1. Siap pakai (gambar sudah tertanam): buka slide/dist/modul-01-galat-numerik.html Ekspor ulang: npx @marp-team/marp-cli slide/modul-01-galat-numerik.md -o slide/dist/modul-01-galat-numerik.html --allow-local-files PPTX : tambah opsi --pptx (butuh Chrome/Chromium terpasang) PDF/PNG: --pdf / --png (butuh Chrome/Chromium) Catatan: gambar lokal hanya tampil jika pratinjau/ekspor mengizinkan akses berkas lokal. Pratinjau di VS Code: pasang ekstensi "Marp for VS Code".