Tema
MODUL PRAKTIKUM MATA KULIAH
KOMPUTASI NUMERIK
MODUL 1: GALAT NUMERIK (DARI KALKULUS MENUJU KOMPUTASI)
JURUSAN TEKNIK KOMPUTER DAN INFORMATIKA
POLITEKNIK NEGERI BANDUNG
2026
LEMBAR PERSETUJUAN
GALAT NUMERIK (DARI KALKULUS MENUJU KOMPUTASI)
| Proses | Jabatan | Nama | Tanda Tangan |
|---|---|---|---|
| Disusun Oleh | Pengampu Praktikum Mata Kuliah Komputasi Numerik | ||
| Diperiksa oleh | Ketua Kelompok Bidang Keahlian (KBK) Multimedia | ||
| Disahkan oleh | Ketua Program Sarjana Terapan Teknik Informatika |
PUBLISHED BY
Jurusan Teknik Komputer & Informatika Politeknik Negeri Bandung
Jl. Gegerkalong Hilir, Desa Ciwaruga, Kecamatan Parongpong, Kabupaten Bandung Barat, Jawa Barat 40559
Copyright © 2026 by JTK POLBAN
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
| Penanggung jawab | : Iwan Awaludin |
| Penanggung jawab | : Muhammad Rizqi Sholahuddin |
| Tim Penulis | : Tim Praktikum Komputasi Numerik |
KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa, karena berkat karunia dan ridho-NYA "GALAT NUMERIK (DARI KALKULUS MENUJU KOMPUTASI)" telah selesai disusun.
Penyusunan "GALAT NUMERIK (DARI KALKULUS MENUJU KOMPUTASI)" ini bertujuan untuk memberikan petunjuk dan prosedur operasional baku (POB) mengenai proses kegiatan praktikum, mulai dari tahap persiapan, pelaksanaan, pelaporan, dan evaluasi untuk penilaian. Melalui modul ini diharapkan proses praktikum dapat mudah dipahami, baik oleh mahasiswa dan dosen di lingkungan Jurusan Teknik Komputer dan Informatika Politeknik Negeri Bandung.
Komputasi Numerik adalah mata kuliah yang menjembatani matematika analitik dengan komputasi digital. Mudahnya: matematika bekerja dengan bilangan yang "sempurna" tanpa batas digit, sedangkan komputer bekerja dengan ruang simpan yang terbatas. Setiap bilangan riil yang aslinya punya tak hingga angka di belakang koma harus "dipangkas" agar muat di dalam memori yang jumlah bitnya terbatas. Akibatnya, hasil hitung komputer hampir selalu sedikit berbeda dari nilai sejatinya; selisih kecil inilah yang disebut galat. Memahami dari mana galat berasal, seberapa besar ia, dan bagaimana ia menjalar dari satu perhitungan ke perhitungan berikutnya adalah bekal paling dasar sebelum mahasiswa mempelajari metode-metode numerik lanjutan seperti pencarian akar, integrasi numerik, hingga optimasi. Pada Modul 1 ini mahasiswa tidak hanya menghitung galat di atas kertas, tetapi juga membuktikannya sendiri melalui program Python yang sederhana dan mudah diikuti.
Semoga modul ini bermanfaat untuk memperkuat pelaksanaan pengajaran di Jurusan Teknik Komputer & Informatika Politeknik Negeri Bandung, sehingga transparansi dan akuntabilitas kinerja bidang akademik dapat tercapai.
Bandung, 2026
DAFTAR ISI
| Judul | Halaman |
|---|---|
| LEMBAR PERSETUJUAN | i |
| KATA PENGANTAR | iii |
| DAFTAR ISI | iv |
| DAFTAR GAMBAR | v |
| DAFTAR TABEL | vi |
| IDENTITAS MATA KULIAH, PROGRAM STUDI DAN KURIKULUM | vii |
| CAPAIAN PEMBELAJARAN | viii |
| BAGIAN I. BAHAN KAJIAN | 1 |
| I.1. Penggunaan Pedoman | 1 |
| I.2. Ruang Lingkup | 1 |
| I.3. Teknologi | 1 |
| I.4. Studi Kasus | 2 |
| I.5. Konsep yang Digunakan | 2 |
| BAGIAN II. PENYIAPAN PELAKSANAAN PRAKTIKUM (PREPARATION) | 3 |
| II.1. Peralatan Praktikum | 3 |
| II.2. Keamanan & Keselamatan Kerja | 4 |
| BAGIAN III. PROSEDUR PELAKSANAAN PRAKTIKUM (STEP BY STEP) | 6 |
| III.1. Teori Singkat: Galat dalam Komputasi Numerik | 6 |
| III.2. Environment & Setup Praktikum | 8 |
| III.3. Task 0: Hello World & Verifikasi Environment | 9 |
| III.4. Task I: Galat Pembulatan & Representasi Floating Point | 10 |
| III.5. Task II: Galat Absolut dan Galat Relatif | 12 |
| III.6. Task III: Catastrophic Cancellation | 14 |
| III.7. Task IV: Galat Pemotongan Deret | 16 |
| III.8. Kesimpulan Praktikum | 18 |
| III.9. Tugas Praktikum | 19 |
| III.10. Soal Latihan HOTS (Pengayaan) | 20 |
| BAGIAN IV. MEDIA DAN MEKANISME PENGUMPULAN | 21 |
| BAGIAN V. PEMBAHASAN DAN EVALUASI HASIL PRAKTIKUM | 22 |
| DAFTAR PUSTAKA | 23 |
| LAMPIRAN | 1 |
DAFTAR GAMBAR
Gambar 1. Grafik Batang Galat Relatif Berbagai Aproksimasi π (Skala Logaritmik)
Gambar 2. Perbandingan Nilai 1 − cos(x) Dihitung Langsung vs Identitas Trigonometri vs Nilai Eksak
Gambar 3. Konvergensi Galat Pemotongan Deret Taylor e^x pada x = 1
DAFTAR TABEL
Tabel 1. Pemetaan Capaian Pembelajaran Mata Kuliah (CPMK) Terhadap Modul Praktikum Komputasi Numerik
Tabel 2. Standar Penamaan Proyek dan Berkas Pengumpulan Praktikum Komputasi Numerik
Tabel 3. Tiga Sumber Utama Galat dalam Komputasi Numerik
Tabel 4. Ilustrasi Galat Absolut dan Relatif pada Aproksimasi π
Tabel 5. Hasil Iterasi Pencarian Epsilon Mesin
Tabel 6. Ringkasan Perbandingan Galat Pembulatan dan Galat Pemotongan
Tabel 7. Rubrik dan Matriks Kriteria Penilaian Evaluasi Praktikum
IDENTITAS MATA KULIAH, PROGRAM STUDI DAN KURIKULUM
| Atribut | Keterangan |
|---|---|
| Mata Kuliah | : Komputasi Numerik (Praktikum) |
| Mata Kuliah (Inggris) | : Numerical Computing (Practicum) |
| Kode Mata Kuliah | : 25TI3101 |
| SKS | : 3 (2 Teori, 1 Praktikum) |
| Sifat Pengambilan | : Wajib |
| Bentuk Pembelajaran | : Tutorial, Praktik |
| Metode Pembelajaran | : Problem Based Learning, Project Based Learning |
| Media | : Offline / Daring (Google Colab) |
| Semester | : V |
| Kelompok Mata Kuliah | : Mata Kuliah KBK Multimedia |
| Program Pendidikan | : Sarjana Terapan (D-4) Prodi Teknik Informatika |
| Jurusan | : Teknik Komputer & Informatika |
| Penyusun | : Iwan Awaludin |
CAPAIAN PEMBELAJARAN
Tabel 1. Pemetaan Capaian Pembelajaran Mata Kuliah (CPMK) Terhadap Modul Praktikum Komputasi Numerik
| CAPAIAN PEMBELAJARAN MATA KULIAH | INTEGRASI DENGAN MODUL PRAKTIKUM |
|---|---|
| CPMK 1 Mahasiswa mampu menjelaskan konsep galat numerik, galat pemotongan, dan galat pembulatan dalam komputasi. | MODUL 1 |
| CPMK 2 Mahasiswa mampu menerapkan algoritma numerik untuk menyelesaikan masalah matematika yang kompleks. | MODUL 3, 4, 5, 6 |
| CPMK 3 Mahasiswa mampu menganalisis kestabilan, akurasi, dan konvergensi suatu metode numerik. | MODUL 2, 3, 5, 6 |
| CPMK 4 Mahasiswa mampu mengimplementasikan metode numerik menggunakan bahasa pemrograman. | MODUL 2, 4, 5, 8 |
| CPMK 5 Mahasiswa mampu menyelesaikan permasalahan rekayasa dan sains secara numerik dengan pendekatan yang sistematis dan kritis. | MODUL 7, 9, 10, 11 |
BAGIAN I. BAHAN KAJIAN
I.1. Penggunaan Pedoman
Pedoman ini memberikan instruksi sistematis mengenai tata cara persiapan, pengoperasian, penyelesaian tugas praktikum galat numerik untuk mata kuliah Komputasi Numerik, hingga mekanisme evaluasi. Baca bagian BAGIAN II sebelum praktikum dimulai, kerjakan BAGIAN III secara berurutan dari Task 0, lalu kumpulkan hasil pekerjaan sesuai BAGIAN IV.
I.2. Ruang Lingkup
Kegiatan mencakup setup environment komputasi Python (Google Colab / Jupyter Notebook), penguasaan konsep galat absolut dan galat relatif, representasi bilangan riil dalam floating point IEEE 754 (presisi ganda), galat pembulatan dan epsilon mesin, fenomena catastrophic cancellation pada pengurangan bilangan hampir sama besar, serta galat pemotongan yang muncul ketika proses matematis kontinu (deret tak hingga) dipangkas menjadi berhingga.
I.3. Teknologi
Berikut adalah teknologi yang digunakan pada modul praktikum ini:
- Bahasa Pemrograman Python (versi 3.10 atau 3.11).
- Google Colaboratory (Google Colab), yaitu lingkungan komputasi berbasis cloud yang tampilannya seperti Jupyter Notebook, atau Jupyter Notebook / JupyterLab yang terinstal lokal.
- Library NumPy, terpasang otomatis pada Google Colab atau via
pip install numpy. - Library Matplotlib untuk visualisasi hasil (
pip install matplotlib). - Peramban modern (Google Chrome / Mozilla Firefox) untuk mengakses Google Colab.
I.4. Studi Kasus
Mahasiswa diminta membangun sebuah notebook audit numerik untuk mengukur akurasi beberapa aproksimasi terhadap konstanta matematika (π). Selanjutnya mahasiswa membuktikan secara eksperimental dua fenomena khas komputasi: (1) galat pembulatan yang muncul karena representasi floating point, dan (2) catastrophic cancellation pada perhitungan
I.5. Konsep yang Digunakan
Galat (Error): Selisih antara nilai sejati dan nilai aproksimasi. Karena representasi bilangan pada komputer terbatas (berhingga bit), tidak ada perhitungan numerik yang sepenuhnya bebas galat; yang bisa dilakukan adalah mengukur, mengendalikan, dan meminimalkannya. Ibaratnya seperti menimbang gula memakai timbangan dapur: jarum menunjuk angka 250 gram, padahal berat sesungguhnya 253 gram. Selisih 3 gram itulah galat. Semakin halus skala timbangan, semakin kecil galatnya; tetapi bagaimanapun halusnya, tidak ada timbangan yang sempurna.
Galat Absolut dan Relatif: Galat absolut
Floating Point IEEE 754 & Galat Pembulatan: Bilangan riil disimpan dalam format
Catastrophic Cancellation: Pengurangan dua bilangan yang hampir sama besar menggugurkan angka signifikan sehingga galat relatif melonjak. Ibaratnya mengukur tebal satu lembar kertas dengan cara mengukur tinggi dua tumpukan besar yang ketinggiannya nyaris sama lalu mengurangkannya: masing-masing pengukuran besar sudah menyimpan kesalahan kecil, dan pada saat dikurangkan, kesalahan kecil itu justru menjadi dominan pada hasil akhir. Solusinya adalah reformulasi aljabar (misalnya menggunakan identitas trigonometri atau rasionalisasi) agar pengurangan berbahaya tersebut dihindari sejak awal.
Galat Pemotongan (Truncation Error): Galat yang timbul karena proses matematis tak hingga (misalnya deret Taylor) dipotong menjadi sejumlah suku berhingga. Ibaratnya menuliskan π = 3.14159265... cukup dengan 3.14: praktis dan mudah, tetapi ada "sisa" yang dibuang, dan sisa itulah galat pemotongan. Semakin banyak suku (atau digit) yang dipertahankan, semakin kecil galatnya; di sinilah muncul trade-off klasik antara akurasi hasil dan biaya komputasi.
BAGIAN II. PENYIAPAN PELAKSANAAN PRAKTIKUM (PREPARATION)
II.1. Peralatan Praktikum
Kebutuhan peralatan praktikum dapat dilihat pada list berikut:
Perangkat Hardware:
- PC/Laptop (Processor Dual-Core 2.0 GHz+, RAM minimal 4 GB, Ruang Disk minimal 2 GB).
- Koneksi internet yang stabil (wajib apabila menggunakan Google Colab).
System Software:
- Sistem Operasi Windows 10/11 64-bit, Linux, atau macOS.
Development Tools:
- Akun Google (Gmail) aktif untuk mengakses Google Colab, atau instalasi Python 3.10/3.11 beserta Jupyter Notebook/JupyterLab untuk penggunaan lokal.
- Library NumPy dan Matplotlib (terpasang otomatis di Colab;
pip install numpy matplotlibuntuk penggunaan lokal). - Peramban modern (Google Chrome / Mozilla Firefox).
II.2. Keamanan & Keselamatan Kerja
Komputer merupakan perangkat teknologi komunikasi dan informasi yang sering digunakan dewasa ini. Pada saat bekerja dengan komputer ada beberapa hal yang harus diperhatikan agar tidak berdampak buruk bagi kesehatan bahkan keselamatan kita. Komputer dapat menyebabkan penggunanya menderita nyeri otot dan tulang terutama bahu, pergelangan tangan, leher, punggung, pinggang bagian bawah, mata merah berair, bahkan gangguan penglihatan.
Beberapa hal yang bisa dilakukan untuk menghindari efek negatif dari bekerja dengan komputer:
- Aturlah posisi tubuh saat bekerja dengan komputer sehingga merasa nyaman.
- Aturlah posisi perangkat komputer dan ruangan sehingga memberi rasa nyaman.
- Makan, minum, dan istirahatlah yang cukup.
- Gerakkan badan untuk mengurangi ketegangan otot dan pikiran, dan olahragalah secara teratur.
- Sesekali alihkan pandangan ke luar ruangan untuk menyegarkan mata.
Mengatur posisi tubuh:
- Posisi Kepala & Leher harus tegak lurus dengan wajah menghadap langsung ke komputer, jangan menengadah atau membungkuk.
- Posisi Punggung yang baik adalah tegak, tidak miring ke kanan/kiri, tidak membungkuk dan tidak menyandar terlalu ke belakang.
- Posisi Pundak tidak terlalu terangkat dan tidak terlalu ke bawah, pastikan otot pundak tidak tegang.
- Posisi Lengan & Siku yang baik adalah apabila mengetik dan menggunakan mouse dengan nyaman.
- Posisi Kaki harus bebas, diluruskan sesekali agar aliran darah lancar.
Mengatur Posisi Komputer:
- Monitor harus diletakkan di tempat yang tidak memantulkan cahaya lain.
- Letakkan monitor lebih rendah dari garis horizontal mata.
- Aturlah cahaya monitor (contrast/brightness) agar tidak terlalu gelap dan terang.
- Sering-seringlah mengedipkan mata (minimal 5 detik setiap 10 menit).
Istirahat Mata: Terapkan aturan 20-20-20, yaitu setiap 20 menit alihkan pandangan ke objek yang berjarak 20 kaki (±6 meter) selama 20 detik, untuk mencegah kelelahan mata akibat paparan monitor visual.
BAGIAN III. PROSEDUR PELAKSANAAN PRAKTIKUM (STEP BY STEP)
III.1. Teori Singkat: Galat dalam Komputasi Numerik
Metode numerik adalah teknik penyederhanaan masalah matematika menjadi operasi aritmetika berhingga agar dapat dikerjakan komputer. Konsekuensinya, hasil numerik hampir selalu berupa aproksimasi yang menyimpan galat, yaitu selisih antara nilai sejati dan nilai hampiran. Secara formal, untuk nilai sejati
- Galat absolut:
- Galat relatif:
(sering dinyatakan dalam persen)
Sebagai contoh cepat: jika nilai sejati
Ada tiga sumber galat utama dalam komputasi numerik:
Tabel 3. Tiga Sumber Utama Galat dalam Komputasi Numerik
| Sumber Galat | Penyebab | Contoh |
|---|---|---|
| Galat data (inkonsistensi input) | Kesalahan pengukuran/pembacaan data | Sensor suhu terbaca 24.9°C padahal 25.0°C |
| Galat pembulatan (round-off) | Representasi bilangan riil dengan bit berhingga | |
| Galat pemotongan (truncation) | Proses tak hingga dipangkas jadi berhingga | Deret Taylor |
Tabel di atas bisa dibaca dengan santai: galat bisa masuk melalui tiga pintu berbeda. Bisa dari awal (data masukan sudah salah), bisa dari cara komputer menyimpan angka (pembulatan), dan bisa dari cara kita menyederhanakan rumus (pemotongan). Ketiganya akan kita buktikan sendiri dengan kode pada task berikutnya.
Bilangan Floating Point. Standar IEEE 754 presisi ganda menyimpan bilangan dalam bentuk
Epsilon Mesin. Didefinisikan sebagai jarak floating point terkecil antara 1.0 dan bilangan berikutnya yang dapat direpresentasikan:
Untuk presisi ganda,
Pendekatan Kalkulus vs Komputasi. Kalkulus bekerja dengan limit dan proses kontinu (turunan sebagai limit, integral sebagai limit jumlah Riemann). Komputer bekerja secara diskret dan berhingga (selisih hingga, jumlah berhingga). Contoh konkretnya: menghitung luas daerah di bawah kurva secara analitik memakai rumus integral, sedangkan komputer memotong daerah itu menjadi jutaan persegi panjang kecil lalu menjumlahkan luasnya satu per satu. Seluruh mata kuliah ini pada dasarnya adalah kajian tentang bagaimana memangkas proses kontinu menjadi operasi berhingga secara terkendali, dan galat adalah alat ukurnya.
III.2. Environment & Setup Praktikum
Untuk praktikum Komputasi Numerik, media komputasi yang sangat disarankan adalah Google Colaboratory (Google Colab) karena bersifat cloud-based, tidak memerlukan instalasi, dan sudah menyertakan Python serta library ilmiah populer (NumPy, Matplotlib) secara bawaan. Tampilannya mirip Google Docs, tetapi setiap cell dapat berisi kode Python yang bisa dijalankan langsung. Alternatif lain adalah Jupyter Notebook/JupyterLab yang dijalankan secara lokal dengan Python 3.10 atau 3.11.
A. Menggunakan Google Colab (Direkomendasikan)
- Buka peramban, lalu akses
https://colab.research.google.com. - Login menggunakan akun Google (Gmail).
- Klik menu File → New notebook untuk membuat notebook baru. Beri nama notebook, misalnya
KN2026_Modul1_Nama_NIM, melalui klik judul di kiri atas.
B. Menggunakan Jupyter Notebook (Lokal)
- Pastikan Python 3.10/3.11 terinstal. Verifikasi melalui Command Prompt/PowerShell:Perintah ini meminta Python memperkenalkan dirinya; jika muncul
python --versionPython 3.10.xatauPython 3.11.xberarti aman. - Instal Jupyter, NumPy, dan Matplotlib:
pip install jupyter numpy matplotlibpipadalah asisten pemasang paket Python; satu baris ini memasang ketiga alat sekaligus dari internet. - Jalankan server Jupyter:Perintah ini menjalankan server lokal dan otomatis membuka halaman kerja Jupyter di peramban.
jupyter notebook - Pada peramban yang terbuka, klik New → Python 3 (ipykernel) untuk membuat notebook baru.
C. Mengenal Anatomi Cell
Notebook tersusun atas cell (sel) yang dieksekusi satu per satu, seperti rangkaian kotak kerja yang diisi bergantian:
- Code Cell berisi kode Python; hasil eksekusinya muncul sebagai Output Cell di bawahnya, lengkap dengan teks, tabel, atau grafik.
- Markdown Cell berisi teks naratif/penjelasan (mendukung penulisan rumus matematika LaTeX), berguna untuk memberi catatan pada kode agar laporan mudah dibaca.
Untuk mengeksekusi sebuah cell, tekan Shift + Enter (jalankan cell dan pindah ke cell berikutnya) atau Ctrl + Enter (jalankan tanpa berpindah cell).
III.3. Task 0: Hello World & Verifikasi Environment
TASK 0: HELLO WORLD & VERIFIKASI ENVIRONMENT
Sebelum masuk ke materi, kita pastikan dulu lingkungan kerja kita siap: Python dan NumPy siap dipakai selama satu semester.
- Buat notebook baru di Google Colab / Jupyter Notebook.
- Pada Code Cell pertama, ketik dan jalankan kode berikut:
python
print("Hello, Komputasi Numerik!")
import sys
print("Python version:", sys.version.split()[0])
import numpy as np
print("NumPy version:", np.__version__)Cara membaca kode (bahasa awam):
print("Hello, ...")= perintah mencetak teks ke layar. Kalau baris ini jalan tanpa error, artinya notebook Anda sudah menyala dan siap dipakai.import sys= membuka kotak alat bawaan Python bernamasysyang menyimpan informasi tentang program Python itu sendiri.sys.version.split()[0]= mengambil teks versi Python yang panjang, memotongnya per kata dengansplit(), lalu mengambil kata pertama saja ([0]), yaitu nomor versinya.import numpy as np= memuat library NumPy (alat hitung angka andalan praktikum ini) dan memberinya nama pendeknpsupaya pemanggilannya tidak panjang.np.__version__= menanyakan kepada NumPy "kamu versi berapa?"; jawabannya dicetak ke layar.
Output:
Hello, Komputasi Numerik!
Python version: 3.10.12
NumPy version: 1.21.5- Amati output yang dihasilkan. Catat versi Python dan NumPy pada catatan praktikum (versi di komputer Anda boleh sedikit berbeda dari contoh; yang penting tidak ada pesan error).
- Tambahkan sebuah Markdown Cell berisi identitas mahasiswa (Nama, NIM, Kelas) sebagai judul notebook.
III.4. Task I: Galat Pembulatan & Representasi Floating Point
TASK I: EKSPLORASI GALAT PEMBULATAN PADA FLOATING POINT
Pada task ini kita membuktikan bahwa komputer "curang" sedikit pada bilangan desimal, lalu mengukur seberapa kecil "kecurangan" yang masih bisa dideteksi.
- Pada notebook, buat Code Cell berikut untuk membuktikan bahwa
0.1 + 0.2tidak persis sama dengan0.3:
python
a = 0.1
b = 0.2
print(a + b)
print(a + b == 0.3)Cara membaca kode (bahasa awam):
a = 0.1danb = 0.2= menyimpan angka ke dalam dua "kotak bernama", yaituadanb.print(a + b)= meminta komputer menjumlahkan isi kedua kotak lalu menampilkan hasilnya.print(a + b == 0.3)= tanda==di sini bukan menjumlah, melainkan bertanya: "apakah ruas kiri persis sama dengan 0.3?" Jawabannya selaluTrue(benar) atauFalse(salah). HasilFalsepada output di bawah justru penemuan penting kita, bukan kesalahan program.
Output:
0.30000000000000004
FalseTeks False di atas bukan bug, melainkan bukti bahwa hasil simpanan 0.1 + 0.2 memang tidak identik dengan hasil simpanan 0.3.
- Tampilkan representasi biner-desimal dari
0.1hingga 20 digit untuk melihat bahwa bilangan ini tidak tersimpan persis:
python
print(f"{a:.20f}")Cara membaca kode (bahasa awam):
f"..."= f-string, yaitu kalimat templat yang lubangnya bisa diisi angka atau teks.:.20f= aturan tampilan di dalam lubang templat: tulis angka dengan 20 digit di belakang titik. Padahal biasanya Python hanya menampilkan belasan digit, sehingga sisa pembulatan yang tersembunyi ikut terlihat melalui trik ini.
Output:
0.10000000000000000555Nilai yang benar-benar tersimpan di memori adalah 0.1000000000000000055511151231257827..., sehingga operasi penjumlahannya mewarisi galat pembulatan tersebut. Angka ...0555 di ujung itulah sisa pembulatan yang tidak pernah hilang.
- Cari epsilon mesin secara eksperimental dengan membagi dua suatu bilangan terus-menerus hingga tidak lagi bisa dibedakan dari 1.0. Idenya seperti menurunkan volume musik selangkah demi selangkah (tiap selangkah volumenya dibagi dua): pada satu titik telinga tidak lagi bisa membedakan suara terakhir itu dengan hening total. "Volume terkecil yang masih terdengar" itulah padanan epsilon mesin.
python
eps = 1.0
while 1.0 + eps != 1.0:
eps = eps / 2.0
print("epsilon mesin (loop) =", eps * 2)
import numpy as np
print("epsilon mesin (numpy) =", np.finfo(float).eps)Cara membaca kode (bahasa awam, per baris):
eps = 1.0= mulai dari bilangan besar yang pasti masih "terlihat" komputer ketika ditambahkan ke 1.0.while 1.0 + eps != 1.0:= arti harfiahnya "selama 1.0 + eps masih tidak sama dengan 1.0, kerjakan blok di bawahnya". Dengan kata lain: ulangi terus selamaepsmasih cukup besar untuk menggeser angka 1.0 dari tempatnya.eps = eps / 2.0= isi perulangannya cuma satu: potongepsjadi setengahnya. Deretnya: 1.0, 0.5, 0.25, 0.125, ... mengecil cepat.- Mengapa berhenti? Pada suatu putaran
epsmenjadi begitu kecil sehingga1.0 + epshasilnya "diserap" pembulatan kembali menjadi tepat 1.0; syarat!=tidak terpenuhi lagi dan perulangan berhenti. - Mengapa dicetak
eps * 2? Karena saat perulangan berhenti, nilaiepsterakhir sudah satu langkah TERLALU KECIL (gagal menggeser 1.0). Epsilon mesin adalah nilai tepat sebelumnya yang MASIH bisa menggeser, yaitueps * 2. np.finfo(float).eps= jalan pintas untuk memastikan: NumPy membacakan spesifikasi pabrik tipefloat64-bit, termasuk epsilon resminya. Dua cara yang berbeda harus menghasilkan angka yang sama persis.
Output:
epsilon mesin (loop) = 2.220446049250313e-16
epsilon mesin (numpy) = 2.220446049250313e-16Tabel 5. Hasil Iterasi Pencarian Epsilon Mesin
| Iterasi | eps yang diuji | Masih | |
|---|---|---|---|
| 1 | 1.0 | 2.0 | Ya |
| 2 | 0.5 | 1.5 | Ya |
| ... | ... | ... | ... |
| 52 | 1.0000000000000002 | Ya | |
| 53 | 1.0 (dibulatkan) | Tidak (berhenti) |
- Bandingkan dengan nilai resmi
pada standar IEEE 754 presisi ganda. Keduanya harus identik. - Tuliskan Lesson Learnt mengenai mengapa perbandingan bilangan real dengan
==adalah praktik yang berbahaya dan bagaimana seharusnya membandingkan dua bilangan floating point (petunjuk: toleransiabs(a-b) < tol).
Penjelasan: Loop pada langkah 3 berhenti ketika eps menjadi lebih kecil daripada setengah jarak antar bilangan floating point di sekitar 1.0, sehingga hasil penjumlahannya "diserap" pembulatan kembali menjadi 1.0; intinya 1.0 ditambah sesuatu yang terlalu kecil tetap terbaca 1.0. Epsilon mesin menandai batas akurasi relatif perhitungan presisi ganda: tidak ada algoritma yang mungkin menghasilkan galat relatif di bawah decimal/mpmath). Anggaplah ini batas kepekaan komputer: selisih lebih kecil dari itu dianggap tidak ada.
III.5. Task II: Galat Absolut dan Galat Relatif
TASK II: MENGHITUNG GALAT ABSOLUT DAN RELATIF APROKSIMASI π
Kali ini kita memakai π, konstanta yang paling akrab di matematika, sebagai bahan uji. Nilai sejatinya sudah disediakan Python dengan hampir 16 digit presisi.
- Nilai sejati yang menjadi acuan adalah
math.pi(nilai π hingga presisi penuh Python). Evaluasi lima aproksimasi π yang umum digunakan:
python
import math
pi_aproks = [3.0, 3.14, 3.142, 22/7, 355/113]
for p in pi_aproks:
Ea = abs(math.pi - p) # galat absolut
Er = Ea / abs(math.pi) * 100 # galat relatif (%)
print(f"aproks = {p:<12.8f} Ea = {Ea:.10f} Er = {Er:.8f}%")Cara membaca kode (bahasa awam):
import math= membuka kotak alat matematika, di dalamnya adamath.piyaitu nilai π dengan hampir 16 digit ketelitian yang kita pakai sebagai "nilai sejati".pi_aproks = [...]= membuat daftar (list) berisi lima "kandidat" hampiran π; dua yang terakhir adalah pecahan yang langsung dihitung Python (22/7dan355/113).for p in pi_aproks:= ambil kandidat pertama, kerjakan seluruh perhitungan di bawahnya, lalu ulangi untuk kandidat berikutnya sampai habis.Ea = abs(math.pi - p)= galat absolut: selisih mutlak antara π sejati dan kandidat;absmemastikan hasilnya tidak pernah negatif.Er = Ea / abs(math.pi) * 100= galat relatif dalam persen: galat absolut dibagi nilai sejati lalu dikali 100.- Bagian
f"...{p:<12.8f}..."= teknik mencetak rapi:<12menyediakan kolom selebar 12 karakter rata kiri, sedangkan.8fdan.10fmenampilkan 8 dan 10 digit di belakang titik supaya hasilnya sejajar seperti tabel.
Output:
aproks = 3.00000000 Ea = 0.1415926536 Er = 4.50703414%
aproks = 3.14000000 Ea = 0.0015926536 Er = 0.05069574%
aproks = 3.14200000 Ea = 0.0004073464 Er = 0.01296624%
aproks = 3.14285714 Ea = 0.0012644893 Er = 0.04024994%
aproks = 3.14159292 Ea = 0.0000002668 Er = 0.00000849%
Tabel 4. Ilustrasi Galat Absolut dan Relatif pada Aproksimasi π
| Aproksimasi | Nilai | Galat Absolut | Galat Relatif |
|---|---|---|---|
| Bulat kasar | 3.0 | 0.1415926536 | 4.5070% |
| Dua desimal | 3.14 | 0.0015926536 | 0.0507% |
| Tiga desimal (lebih) | 3.142 | 0.0004073464 | 0.0130% |
| Rasio 22/7 | 3.1428571429 | 0.0012644893 | 0.0402% |
| Rasio 355/113 | 3.1415929204 | 0.0000002668 | 0.0000085% |
- Amati bahwa
22/7memiliki galat lebih besar daripada3.142meskipun pecahan itu tampak "alami", sedangkan355/113, pecahan sederhana penemuan Zu Chongzhi, memberikan 7 digit benar berturut-turut. Pelajarannya: penampilan pecahan yang rapi tidak menjamin akurasi; besar galatnyalah yang menentukan. - Tuliskan Lesson Learnt mengapa galat relatif lebih informatif daripada galat absolut saat membandingkan aproksimasi besaran yang berbeda skala (mis. mengukur panjang jalan dalam km vs ketebalan rambut dalam mm).
Penjelasan: Galat absolut bergantung pada satuan, seperti kilometer atau milimeter, sehingga maknanya berubah kalau satuan diganti. Galat 1 mm fatal untuk komponen presisi, namun sepele untuk survei jalan. Galat relatif membebaskan pengukuran dari satuan (karena selisih dibagi besaran aslinya), sehingga menjadi tolok ukur kualitas aproksimasi yang adil untuk semua skala.
III.6. Task III: Catastrophic Cancellation
TASK III: DETEKSI DAN MENGATASI CATASTROPHIC CANCELLATION
Task ini memperlihatkan fenomena catastrophic cancellation pada floating point: pengurangan dua bilangan yang nyaris kembar.
- Hitung
untuk dengan dua cara: langsung, dan melalui identitas setengah sudut :
python
import math
x = 1e-8
langsung = 1.0 - math.cos(x) # cara langsung
bagus = 2.0 * math.sin(x/2) ** 2 # identitas trigonometri
eksak = x ** 2 / 2 # pendekatan eksak: x^2/2
print("1 - cos(x) =", langsung)
print("2 sin^2(x/2) =", bagus)
print("eksak x^2/2 =", eksak)
print("galat relatif langsung =", abs(langsung - eksak) / eksak * 100, "%")
print("galat relatif bagus =", abs(bagus - eksak) / eksak * 100, "%")Cara membaca kode (bahasa awam):
x = 1e-8= notasi ilmiah untuk 0.00000001 (dibaca "satu dikali sepuluh pangkat minus delapan"); menulis1e-8jauh lebih singkat daripada menghitung jumlah nolnya.langsung = 1.0 - math.cos(x)= cara pertama: hitung cos(x) lebih dulu, baru kurangkan dari 1.0. Ini rumus "apa adanya" yang ternyata berbahaya secara numerik.bagus = 2.0 * math.sin(x/2) ** 2= cara kedua: pakai identitas trigonometri yang hasilnya sama persis di atas kertas. Tanda**berarti pangkat, jadisin(x/2)dikuadratkan.eksak = x ** 2 / 2= nilai pembanding yang sangat dekat ke jawaban sejati (untuk x kecil berlaku ).- Empat baris pertama
print= memajang ketiga hasil berdampingan supaya mudah dibandingkan. - Dua baris
printterakhir = menghitung galat relatif (dalam persen) tiap cara terhadap nilai eksak; semakin kecil angkanya, semakin tepat caranya.
Output:
1 - cos(x) = 0.0
2 sin^2(x/2) = 5.0000000000000005e-17
eksak x^2/2 = 5.0000000000000005e-17
galat relatif langsung = 100.0 %
galat relatif bagus = 0.0 %- Perhatikan: nilai sejati
, namun cara langsung menghasilkan 0.0, artinya galat relatifnya 100% dan seluruh informasi hilang. Ini terjadi karena sangat dekat ke 1 sehingga dibulatkan menjadi tepat1.0; pengurangan kemudian menggugurkan semua angka penting. Rumusnya benar secara matematis, tetapi rawan secara numerik. - Visualisasikan fenomena ini pada rentang
hingga :

Grafik memperlihatkan kurva identitas menempel pada kurva eksak
- Tuliskan Lesson Learnt: strategi apa yang dapat dilakukan ketika rumus fisika/matematika mengandung pengurangan dua bilangan hampir sama (petunjuk: rasionalisasi, identitas trigonometri, seri Taylor alternatif).
Penjelasan: Catastrophic cancellation tidak diakibatkan oleh kesalahan algoritma, melainkan oleh bentuk rumus. Dua rumus yang setara di atas kertas dapat berbeda nasib di dalam komputer. Programmer numerik yang baik memilih formulasi yang numerically stable: menghindari pengurangan bilangan yang besarnya sebanding, menjumlahkan dari bilangan terkecil, dan memanfaatkan identitas aljabar untuk menghindari titik rawan.
III.7. Task IV: Galat Pemotongan Deret
TASK IV: ANALISIS GALAT PEMOTONGAN DERET TAYLOR e^x
Sekarang kita berpindah dari galat yang dipaksakan perangkat (pembulatan) ke galat yang sengaja kita pilih sendiri (pemotongan), dan melihat bagaimana galat ini bisa kita kendalikan.
- Implementasikan deret Maclaurin
yang dipotong pada suku ke- :
python
import math
def taylor_exp(x, n):
s = 0.0
for k in range(n + 1):
s += x ** k / math.factorial(k)
return sCara membaca kode (bahasa awam):
def taylor_exp(x, n):= membuat fungsi buatan sendiri bernamataylor_expdengan dua masukan: titikxtempat kita menghitung , dannyaitu banyaknya suku deret yang dipakai (makin besarn, makin teliti tetapi makin lama dihitung).s = 0.0= menyiapkan "kotak penampung" hasil penjumlahan yang mula-mula kosong (berisi nol).for k in range(n + 1):= mengulang untuk k = 0, 1, 2, ..., n. Catatan:range(n + 1)berhenti sebelum angka n + 1, makanya kita menambah satu agar suku ke-n ikut terhitung.s += x ** k / math.factorial(k)= inti deretnya: tambahkan satu suku ke kotak penampung. Tanda+=artinya "tambahkan ke isi sebelumnya",x ** kadalah x pangkat k, danmath.factorial(k)menghitung k! = 1×2×...×k.return s= mengirim isi kotak penampung keluar dari fungsi supaya hasilnya bisa dicetak atau dipakai perhitungan lain.
- Amati konvergensi aproksimasi terhadap nilai eksak
math.exp(1.0):
python
x = 1.0
print(f"{'n':>3} {'aproks':>14} {'eksak':>14} {'Er (%)':>14}")
for n in [1, 2, 3, 5, 8, 10]:
aproks = taylor_exp(x, n)
Ea = abs(math.exp(x) - aproks)
Er = Ea / math.exp(x) * 100
print(f"{n:>3} {aproks:>14.10f} {math.exp(x):>14.10f} {Er:>14.8f}")Cara membaca kode (bahasa awam):
x = 1.0= pengujian dilakukan di titik x = 1, sehingga target yang dicari adalah nilai e ≈ 2.71828...- Baris
printpertama = mencetak kepala tabel; kode:>3dan:>14membuat tiap judul kolom rata kanan dengan lebar tetap supaya tabelnya lurus rapi. for n in [1, 2, 3, 5, 8, 10]:= mencoba beberapa jumlah suku yang makin banyak; dengan begitu tren "makin banyak suku, makin dekat ke nilai eksak" bisa terlihat.math.exp(x)= nilai "resmi" dari Python yang kita perlakukan sebagai nilai eksak pembanding.- Baris
printterakhir = mencetak satu baris tabel untuk tiap n: jumlah suku, hasil hampiran, nilai eksak, dan galat relatifnya dalam persen.
Output:
n aproks eksak Er (%)
1 2.0000000000 2.7182818285 26.42411177
2 2.5000000000 2.7182818285 8.03013971
3 2.6666666667 2.7182818285 1.89881569
5 2.7166666667 2.7182818285 0.05941848
8 2.7182787698 2.7182818285 0.00011252
10 2.7182818011 2.7182818285 0.00000100
- Setiap penambahan satu suku memperkecil galat dengan faktor yang semakin besar (karena faktorial tumbuh sangat cepat; ibarat menambah lapis cat, tiap lapisan baru menutup lubang yang tersisa). Pada
, galat relatif sudah di bawah %. - Tuliskan Lesson Learnt mengenai trade-off antara jumlah suku (biaya komputasi) dan akurasi, serta mengapa galat pemotongan dapat dikendalikan oleh pemrogram berbeda dengan galat pembulatan yang melekat pada perangkat.
III.8. Kesimpulan Praktikum
Tabel 6. Ringkasan Perbandingan Galat Pembulatan dan Galat Pemotongan
| Aspek | Galat Pembulatan | Galat Pemotongan |
|---|---|---|
| Sumber | Representasi floating point berhingga | Pemangkasan proses matematis tak hingga |
| Bergantung pada | Perangkat (presisi IEEE 754) | Pilihan algoritma (jumlah suku/langkah) |
| Perilaku saat langkah ditambah | Menumpuk / membesar | Menurun (konvergen) |
| Cara meminimalkan | Rumus stabil, presisi lebih tinggi, Kahan summation | Tambah suku / perkecil langkah |
| Batas bawah | Sekecil apa pun (hingga kena galat pembulatan) |
Dari seluruh task dapat disimpulkan bahwa: (1) komputer tidak pernah menyimpan bilangan riil secara persis, sehingga setiap hasil komputasi wajib dibaca dengan kesadaran akan galat; (2) galat relatif adalah ukuran akurasi yang lebih objektif daripada galat absolut karena tidak dipengaruhi satuan; (3) rumus yang setara secara analitik belum tentu setara secara numerik, sehingga pemilihan formulasi yang stabil menentukan mutu hasil; dan (4) galat pemotongan dan galat pembulatan bergerak berlawanan arah, sehingga setiap metode numerik memiliki titik keseimbangan optimum yang akan dijumpai berulang kali pada modul-modul selanjutnya.
III.9. Tugas Praktikum
Kerjakan soal berikut pada notebook yang sama, kemudian kumpulkan sesuai mekanisme pada BAGIAN IV. Kunci jawaban tersedia pada dosen/tim praktikum dan dibahas pada pertemuan berikutnya.
- Analisis aproksimasi π. Hitunglah galat absolut dan galat relatif (dalam persen) dari tiga aproksimasi berikut:
, , dan . Gunakanmath.pisebagai nilai sejati. Manakah aproksimasi terbaik? Tunjukkan perhitungan Anda dalam bentuk tabel. - Akumulasi galat pembulatan. Jumlahkan bilangan
0.01sebanyak 100.000 kali dalam tipenp.float32(gunakannp.full(100000, 0.01, dtype=np.float32)lalu.sum(dtype=np.float32)) dan bandingkan dengan penjumlahan yang sama dalam tipefloat64. Hitung galat relatif keduanya terhadap nilai eksak 1000.0. Mengapa hasilfloat32menyimpang cukup jauh sedangkanfloat64nyaris tepat? - Catastrophic cancellation. Untuk
, hitung dengan cara langsung dan dengan identitas , lalu bandingkan keduanya dengan nilai eksak . Hitung galat relatif masing-masing dan jelaskan penyebab perbedaannya. - Menentukan jumlah suku deret. Dengan fungsi
taylor_exp(x, n)dari Task IV, tentukan banyaknya suku minimum agar aproksimasi memiliki galat relatif lebih kecil dari . Tuliskan program perulangan pencarian tersebut beserta output-nya.
III.10. Soal Latihan HOTS (Pengayaan)
Soal-soal berikut melatih kemampuan berpikir tingkat tinggi (Higher Order Thinking Skills, HOTS): menganalisis (C4), mengevaluasi (C5), dan mencipta (C6). Kerjakan mandiri atau berkelompok kecil. Soal ini tidak wajib dikumpulkan, tetapi akan dibahas bersama pada pertemuan berikutnya. Petunjuk: mulailah dari percobaan kecil di notebook, catat hasilnya, lalu tarik kesimpulan.
- [C4 Analisis] Detektif pecahan. Pecahan
22/7dan355/113sama-sama terkenal sebagai hampiran π, tetapi355/113jauh lebih akurat. Analisislah mengapa hal ini bisa terjadi dengan membandingkan galat relatif keduanya terhadap nilai eksak. Jelaskan pula dengan bahasa awam mengapa pecahan berpenyebut besar cenderung (tetapi tidak selalu) lebih akurat, dan kapan dugaan itu bisa keliru. - [C4 Analisis] Kisah roket Ariane 5. Pada tahun 1996 roket Ariane 5 meledak belasan detik setelah peluncuran karena sebuah angka yang aman di komputer 64-bit dikonversi ke ruang 16-bit sehingga meluap (overflow). Pelajari kasus tersebut dari sumber tepercaya, kemudian jelaskan kaitannya dengan materi galat representasi pada modul ini: di titik mana persisnya angka "tidak muat", dan mengapa pengujian ulang perangkat lunak tidak menangkapnya? Tuliskan kesimpulan satu paragraf.
- [C5 Evaluasi] Menilai saran teman. Seorang teman berpendapat: "Kalau ingin membandingkan dua bilangan float, bulatkan saja keduanya dengan
round(x, 2)lalu bandingkan dengan==." Evaluasilah pendapat itu: buat satu contoh kasus di mana saran ini berhasil dan satu contoh kasus di mana saran ini gagal atau justru menyesatkan (petunjuk: angka yang sangat besar, sangat kecil, atau dua angka yang berbeda tipis di digit ketiga). Berikan rekomendasi praktik pembandingan yang lebih aman beserta alasannya. - [C5 Evaluasi] Memilih rumus yang stabil. Diberikan persamaan kuadrat
yang memiliki satu akar besar dan satu akar sangat kecil (sekitar ). Hitung akar kecil tersebut dengan rumus abc secara langsung, lalu bandingkan dengan rumus alternatif . Evaluasi galat relatif kedua cara, putuskan rumus mana yang layak dipakai, dan jelaskan alasannya memakai konsep catastrophic cancellation. - [C6 Mencipta] Merancang eksperimen epsilon sendiri. Rancang dan jalankan eksperimen untuk menjawab: berapa epsilon mesin tipe
np.float32, dan bagaimana perbandingannya denganfloat64? Aturannya, Anda tidak boleh menyalin pola bagi dua dari modul; gunakan strategi lain (misalnya membagi suatu bilangan dengan tiga berulang kali, atau memanfaatkannp.nextafter). Sajikan hasil dalam tabel dan grafik batang berskala logaritmik, lalu jelaskan makna kedua angka tersebut bagi praktikan. - [C6 Mencipta] Fungsi penjumlahan stabil. Buatlah fungsi
rata_rata_stabil(data)yang menghitung rata-rata dengan strategi yang tahan terhadap galat pembulatan (misalnya mengurutkan data dari terkecil ke terbesar sebelum dijumlahkan, atau menerapkan penjumlahan Kahan). Buktikan keunggulannya dengan data uji[1e16, 1.0, -1e16, 1.0]dibandingkan penjumlahan biasasum(data), dan jelaskan dengan bahasa awam mengapa urutan penjumlahan bisa mengubah hasil. - [C5 Evaluasi] Kapan menambah suku menjadi sia-sia? Pada Task IV, galat memotongan mengecil saat suku ditambah. Perluas eksperimen hingga
dan amati apakah galat terus mengecil atau justru berhenti mengecil di sekitar batas tertentu. Evaluasilah: pada n berapa penambahan suku berikutnya praktis tidak lagi memberi manfaat, dan apa kaitan titik berhentinya itu dengan epsilon mesin? Kemukakan juga implikasinya jika diperbesar menjadi 10 atau 100.
BAGIAN IV. MEDIA DAN MEKANISME PENGUMPULAN
IV.1. Media Pengumpulan
Media pengumpulan menggunakan Microsoft Teams (MS Teams) yang dapat diakses pada link berikut:
https://teams.microsoft.com
Kemudian masuk ke dalam Tim (Team) khusus untuk mata kuliah Komputasi Numerik.
IV.2. Mekanisme Pengumpulan
Mekanisme proses pengumpulan untuk modul praktikum ini mengikuti tahapan berikut:
Format penamaan notebook/berkas: gunakan format standar berikut.
Tabel 2. Standar Penamaan Proyek dan Berkas Pengumpulan Praktikum Komputasi Numerik
Kode Penjelasan KN2026Komputasi Numerik tahun 2026 5A/5BKelas D4Prodi D-4 Sarjana Terapan 2024Angkatan Modul1Nomor Modul 0013 Digit NIM Terakhir Format berkas:
[KN2026_5A_D4_2024]_Modul1_001.ipynbEkspor notebook Google Colab/Jupyter menjadi berkas
.ipynb(File → Download → Download .ipynb). Apabila diperlukan, lampirkan juga hasil output dalam format.pdfatau.html.Susun Laporan Praktikum (.pdf) yang mencakup:
- Tangkapan layar (screenshot) notebook dan output yang dihasilkan.
- Code snippet Python (Task 0, I, II, III, IV) beserta penjelasan fungsinya.
- Analisis hasil eksekusi (Lesson Learnt) untuk tiap task.
- Jawaban Tugas Praktikum (III.9).
Kompresi seluruh berkas menjadi satu arsip
.zipdengan nama[KN2026_5A_D4_2024]_Modul1_001.zip.Unggah arsip tersebut pada slot Tugas (Assignment) "Pengumpulan Praktikum Modul 1" di Microsoft Teams sebelum batas waktu berakhir.
BAGIAN V. PEMBAHASAN DAN EVALUASI HASIL PRAKTIKUM
Penilaian pada praktikum berdasarkan kriteria berikut:
Tabel 7. Rubrik dan Matriks Kriteria Penilaian Evaluasi Praktikum
| Kriteria Penilaian | Skor ≥ 80 (A) | Skor 70–79.99 (AB/B) | Skor 60–69.99 (BC/C) | Skor < 60 (D/E) |
|---|---|---|---|---|
| Setup Environment (10%) | Python/Colab, NumPy & Matplotlib terkonfigurasi sempurna tanpa kendala eksekusi. | Environment terkonfigurasi, terdapat masalah minor yang berhasil diatasi. | Setup kurang, memerlukan bantuan untuk menjalankan cell/notebook. | Environment gagal dikonfigurasi / kode tidak dapat berjalan. |
| Galat Pembulatan & Epsilon Mesin (22.5%) | Mampu mendemonstrasikan fenomena 0.1+0.2, menjelaskan representasi floating point, dan menemukan epsilon mesin dengan benar. | Demonstrasi berjalan namun penjelasan konsep floating point kurang mendalam. | Hanya sebagian demonstrasi berhasil; konsep epsilon mesin keliru. | Gagal mendemonstrasikan galat pembulatan. |
| Galat Absolut & Relatif (22.5%) | Perhitungan Ea dan Er tepat untuk semua aproksimasi, interpretasi hasil kritis dan tepat. | Perhitungan tepat namun interpretasi kurang lengkap. | Terdapat kesalahan perhitungan pada sebagian aproksimasi. | Perhitungan galat salah total / tidak dikerjakan. |
| Cancellation & Galat Pemotongan (25%) | Membuktikan cancellation 100% dengan benar, menawarkan solusi identitas, dan analisis konvergensi deret tajam. | Fenomena terbukti namun analisis penyebab kurang mendalam. | Hanya menjalankan kode tanpa mampu menjelaskan fenomena. | Gagal membuktikan kedua fenomena. |
| Pelaporan & Lesson Learnt (20%) | Laporan sangat lengkap: screenshot, analisis kode, lesson learnt mendalam, dan jawaban tugas benar semua. | Laporan lengkap dengan screenshot dan penjelasan kode standar. | Laporan kurang detail, sebagian lesson learnt tidak dicantumkan. | Tidak mengumpulkan laporan / tidak sesuai format. |
DAFTAR PUSTAKA
Burden, R. L., & Faires, J. D. (2011). Numerical Analysis (9th ed.). Brooks/Cole, Cengage Learning.
Chapra, S. C., & Canale, R. P. (2015). Numerical Methods for Engineers (7th ed.). McGraw-Hill Education.
Goldberg, D. (1991). What every computer scientist should know about floating-point arithmetic. ACM Computing Surveys, 23(1), 5–48. https://doi.org/10.1145/103162.103163
Harris, C. R., et al. (2020). Array programming with NumPy. Nature, 585(7825), 357–362. https://doi.org/10.1038/s41586-020-2649-2
Munir, R. (2021). Metode Numerik (Edisi Revisi). Informatika, Bandung.
LAMPIRAN
Jika Ada