Praktikum Komputasi Numerik 2026

Modul 1: Galat Numerik

Dari kalkulus menuju komputasi, dijelaskan dengan bahasa sehari-hari

KBK Multimedia · Jurusan Teknik Komputer dan Informatika
Politeknik Negeri Bandung

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Peta perjalanan hari ini

  1. Mengapa komputer bisa diam-diam "salah hitung" sedikit
  2. Cara mengukur kesalahan: galat absolut dan galat relatif
  3. Rahasia penyimpanan angka: floating point dan epsilon mesin
  4. Catastrophic cancellation: pengurangan dua bilangan nyaris kembar
  5. Kesalahan yang kita pilih sendiri: galat pemotongan deret
  6. Tugas praktikum dan soal latihan HOTS

Tujuan akhirnya satu: tidak lagi memercayai hasil komputer secara buta.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Metode numerik itu apa?

Bayangkan matematika sebagai resep rumit, dan komputer sebagai koki yang sangat cepat tetapi hanya paham langkah sederhana.

  • Metode numerik = seni menerjemahkan resep matematika menjadi rangkaian hitungan berhenti (tambah, kurang, kali, bagi) yang sanggup dikerjakan komputer
  • Konsekuensinya: hasilnya hampir selalu hampiran, bukan jawaban sempurna
  • Selisih antara jawaban sejati dan hasil komputer itulah galat

Komputer itu seperti kalkulator: sangat cepat dan patuh, tetapi "akalnya" sederhana.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Galat: kesalahan kecil yang tak terhindarkan

Ibarat menimbang gula dengan timbangan dapur:

  • Jarum menunjuk 250 gram, padahal berat aslinya 253 gram
  • Selisih 3 gram itulah galat
  • Timbangan lebih halus = galat lebih kecil, tetapi tidak ada timbangan sempurna

Secara formal, untuk nilai sejati dan hampiran :

  • Galat absolut:
  • Galat relatif: (sering dalam persen)
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Absolut vs relatif: bayi dan truk

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
  • Galat absolutnya sama, tetapi artinya jauh berbeda
  • Galat relatif lebih adil karena tidak dipengaruhi satuan dan skala
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Contoh cepat di kepala

Nilai sejati , hampiran :

  • ... "meleset 0,1 satuan"
  • ... "meleset satu perseratus dari besaran aslinya"

Absolut menjawab "berapa jauhnya", relatif menjawab "seberapa serius".

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Dari mana galat datang? Tiga pintu

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.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Komputer menyimpan angka seperti penggaris

  • Floating point presisi ganda = hanya 15 sampai 16 angka penting yang dijamin
  • Ibarat penggaris berskala mm: benda 2,37 mm tidak bisa diukur persis, harus dibulatkan ke tanda 2 mm atau 3 mm terdekat
  • Angka 0.1 ternyata tidak muat persis di kisi biner komputer; yang disimpan adalah tetangga terdekatnya

Setiap angka yang tidak menempel persis di kisi akan dibulatkan, dan tiap pembulatan meninggalkan galat kecil.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Bukti #1: 0.1 + 0.2 tidak sama dengan 0.3

a, b = 0.1, 0.2
print(a + b)          # 0.30000000000000004
print(a + b == 0.3)   # False
  • == bertanya "apakah persis sama?" dan jawabannya False
  • Ini bukan bug Python, melainkan sifat dasar floating point
  • Moral: jangan membandingkan bilangan real dengan ==; pakai toleransi, misal abs(a - b) < tol
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Epsilon mesin: sekecil apa komputer masih peka?

  • Epsilon mesin = jarak terkecil antara 1.0 dan bilangan tetangganya
  • Analogi: turunkan volume musik selangkah demi selangkah (tiap selangkah dibagi dua). Lama-kelamaan telinga tak bisa membedakan suara terakhir dengan hening
  • "Volume terkecil yang masih terdengar" = epsilon mesin
  • Selisih lebih kecil dari itu hilang ditelan pembulatan:
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Mencari epsilon dengan kode (dan mengapa dikali 2)

eps = 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
  • Perulangan berhenti saat eps terakhir gagal menggeser angka 1.0
  • Artinya eps saat berhenti sudah satu langkah terlalu kecil
  • Epsilon sejati = nilai terakhir yang masih menggeser = eps * 2
  • Cocok dengan spesifikasi resmi: np.finfo(float).eps
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Uji ketepatan lima kandidat pi

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%
  • 22/7 kalah dari 3.142 padahal terlihat "lebih matematis"
  • 355/113 memberi 7 digit benar berturut-turut dari pecahan sederhana
  • Pelajaran: penampilan pecahan tidak menjamin akurasi; hitung galatnya untuk membuktikan
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Galat relatif kelima kandidat pi

  • Grafik batang dengan skala logaritmik: tiap anak tangga = 10 kali lebih kecil
  • Batang 355/113 menempati lantai paling bawah, jauh melampaui kandidat lain
  • Skala log dipakai karena galatnya berbeda jutaan kali; skala biasa akan membuat empat batang pertama tampak sama tinggi dengan nol
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Catastrophic Cancellation

Pengurangan dua bilangan yang nyaris sama besar

Ibarat menentukan tebal satu lembar kertas dari dua tumpukan raksasa:

  1. Ukur tinggi tumpukan A (1.000.000 lembar): hasilnya menyimpan kesalahan kecil
  2. Ukur tinggi tumpukan B (999.999 lembar): hasilnya juga menyimpan kesalahan kecil
  3. Kurangkan: selisihnya didominasi kesalahan dari kedua pengukuran besar
  • Mengurangkan dua bilangan nyaris kembar = catastrophic cancellation
  • Angka penting saling menggugurkan, galat relatif bisa meledak
  • Solusinya: ubah bentuk rumus agar pengurangan itu tidak pernah terjadi
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Bukti #2: hitung 1 − cos(x) untuk x kecil

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.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Kurva langsung yang "terkunci"

  • Kurva identitas (hijau) menempel rapi pada kurva eksak
  • Kurva cara langsung "menginjak anak tangga" nilai diskret untuk
  • Itulah tanda seluruh angka pentingnya sudah habis digugurkan pembulatan
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Galat pemotongan: salah yang kita pilih sendiri

  • Menulis π = 3.14159265... cukup jadi 3.14: praktis, tetapi ada sisa yang dibuang
  • Deret Taylor dipotong di suku ke-: sisanya jadi galat pemotongan
  • Bedanya dengan galat pembulatan: kendali ada di tangan kita (banyak suku = banyak biaya)

Setiap suku tambahan ibarat satu lapis cat baru: celah makin tertutup rapat, tetapi pengerjaannya makin lama.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

taylor_exp dalam 6 baris (cara membacanya)

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 n
  • Makin besar n: makin teliti, makin lama dihitung
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Konvergensi: tiap suku menutup celah

n aproksimasi Galat relatif
1 2.0000 26.42%
3 2.6667 1.90%
8 2.7182788 0.00011%
10 2.7182818 0.000001%
  • Target:
  • Galat turun tajam karena faktorial di penyebut tumbuh sangat cepat
  • Pada , galat relatifnya tinggal persen
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Dua galat yang berkebalikan

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.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Kesimpulan (versi bahasa awam)

  1. Komputer tidak pernah menyimpan bilangan riil secara persis, maka baca semua hasil dengan kesadaran akan galat
  2. Galat relatif lebih jujur daripada galat absolut karena tidak terpaut satuan
  3. Rumus yang sama di atas kertas bisa berbeda nasib di komputer; pilih formulasi yang stabil
  4. Galat pemotongan dan pembulatan berjalan berlawanan arah; tugas kita mencari titik seimbangnya
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Tugas praktikum (dikumpulkan)

  1. Hitung galat absolut dan relatif tiga hampiran π: 3.1415, 22/7, 355/113; mana yang paling akurat?
  2. Jumlahkan 0.01 sebanyak 100.000 kali dalam float32 vs float64; mengapa float32 melenceng jauh?
  3. Untuk : buktikan ulang fenomena catastrophic cancellation pada 1 - cos(x) dan solusinya 2 sin^2(x/2)
  4. Cari minimum agar galat relatif aproksimasi di bawah (petunjuk: buat perulangan pencarian )

Format berkas: [KN2026_5A_D4_2024]_Modul1_001.zip via Microsoft Teams.

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Latihan HOTS (pengayaan, dibahas minggu depan)

  • C4: mengapa 355/113 jauh lebih akurat daripada 22/7?
  • C4: pelajari ledakan roket Ariane 5 (1996): di titik mana angkanya "tidak muat"?
  • C5: evaluasi saran "bandingkan float dengan round(x, 2) dulu": kapan gagal?
  • C5: pilih rumus stabil untuk akar kecil
  • C6: rancang eksperimen epsilon versi Anda sendiri (tanpa menyalin pola bagi dua)
  • C6: buat fungsi penjumlahan yang tahan terhadap galat, buktikan dengan [1e16, 1.0, -1e16, 1.0]
Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

Terima kasih

Selamat mencoba!

Materi lengkap: modul praktikum di repositori

Situs: kyeiki.github.io/komputasi-numerik-2026

Kumpulkan tugas melalui Microsoft Teams sebelum tenggat

Komputasi Numerik (25TI3101) · Modul 1: Galat Numerik · JTK POLBAN

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".