Modul utama

Materi 02

Bab 2: Komputasi Saintifik dan Representasi Data

Modul pembelajaran Metode Numerik tentang komputasi saintifik, representasi bilangan biner, floating point, rounding error, truncation error, dan stabilitas numerik.

Laboratorium interaktif

Geser, klik, dan bereksperimen dulu — konsep bab ini jauh lebih mudah dipahami setelah kamu melihatnya bergerak.

simulasi · bab 02

Mikroskop Floating Point

Komputer menyimpan angka dalam biner dengan jumlah bit terbatas, sehingga banyak angka desimal hanya bisa disimpan secara hampiran. Geser jumlah bit mantisa dan lihat angka tersimpan 'meleset' dari nilai aslinya — inilah rounding error.

Mantisa biner — 1,bbbb… × 2-4

1,100110011001100110

Bit merah muda ikut disimpan; bit abu-abu dibuang saat pembulatan.

Garis bilangan diperbesar — angka yang bisa diwakili

nilai aslitersimpan

Garis kecil = angka yang dapat diwakili dengan 8bit mantisa. Nilai asli "dijepret" ke garis terdekat.

Angka yang disimpan

Nilai asli

0,1

Nilai tersimpan

0,10009766

Rounding error

0,0000976562

Jarak antar angka

0,0002441406

Uji klasik: dengan 8 bit mantisa, 0,1 + 0,2 tersimpan sebagai 0,30078125TIDAK sama dengan 0,3 yang tersimpan (0,29980469). Inilah sebabnya perbandingan a == b berbahaya untuk bilangan pecahan.

2.1 Deskripsi Bab

Pada Bab 1, Anda telah mempelajari bahwa metode numerik menghasilkan nilai hampiran dan selalu memiliki error. Bab ini membahas sumber error tersebut dari sisi komputer.

Komputer tidak menyimpan angka seperti manusia menuliskan bilangan desimal. Komputer menyimpan semua data dalam bentuk biner, yaitu kombinasi angka 0 dan 1. Akibatnya, beberapa bilangan desimal sederhana seperti (0{,}1) tidak dapat disimpan secara eksak di dalam komputer.

Bab ini membahas konsep komputasi saintifik, representasi data biner, format floating point, error pembulatan, error pemotongan, dan stabilitas numerik. Pemahaman ini penting karena hampir semua algoritma metode numerik dijalankan menggunakan komputer.


2.2 Capaian Pembelajaran

Setelah mempelajari bab ini, mahasiswa diharapkan mampu:

  1. Menjelaskan pengertian komputasi saintifik.
  2. Menjelaskan cara komputer merepresentasikan bilangan menggunakan sistem biner.
  3. Membedakan bilangan desimal dan bilangan biner.
  4. Menjelaskan konsep floating point.
  5. Mengidentifikasi rounding error dan truncation error.
  6. Menjelaskan konsep stabilitas numerik.
  7. Menjelaskan mengapa operasi sederhana seperti (0{,}1 + 0{,}2) dapat menghasilkan nilai yang tidak persis sama dengan (0{,}3).

2.3 Materi Inti

2.3.1 Apa Itu Komputasi Saintifik?

Komputasi saintifik adalah penggunaan algoritma komputer untuk menyelesaikan masalah matematika, sains, dan teknik. Komputasi saintifik digunakan ketika masalah terlalu besar, terlalu kompleks, atau terlalu panjang jika dihitung secara manual.

Contoh penerapan komputasi saintifik antara lain:

BidangContoh Penerapan
Teknik elektroSimulasi rangkaian, analisis sistem tenaga, pengolahan sinyal
FisikaSimulasi gerak benda, perhitungan energi, pemodelan gelombang
Teknik sipilAnalisis struktur jembatan dan gedung
MeteorologiPrediksi cuaca dan iklim
KedokteranRekonstruksi citra medis dan pemrosesan sinyal biologis

Tujuan utama komputasi saintifik bukan hanya memperoleh hasil dengan cepat, tetapi juga memperoleh hasil yang andal. Hasil yang cepat tetapi tidak akurat dapat menyesatkan pengambilan keputusan.


2.3.2 Representasi Data di Komputer

Manusia biasa menggunakan sistem bilangan desimal atau basis 10. Sistem ini menggunakan sepuluh simbol, yaitu 0 sampai 9.

Komputer menggunakan sistem bilangan biner atau basis 2. Sistem ini hanya menggunakan dua simbol, yaitu 0 dan 1. Semua data, termasuk angka, teks, gambar, dan suara, pada akhirnya disimpan dalam bentuk kombinasi 0 dan 1.

DesimalBiner
11
210
5101
101010
131101

Sebagai contoh:

1310=1101213_{10} = 1101_2

Artinya:

13=1(23)+1(22)+0(21)+1(20)13 = 1(2^3) + 1(2^2) + 0(2^1) + 1(2^0) 13=8+4+0+113 = 8 + 4 + 0 + 1 13=1313 = 13

2.3.3 Mengapa Komputer Tidak Selalu Menyimpan Angka Secara Tepat?

Untuk bilangan bulat, komputer dapat menyimpan banyak angka secara tepat. Namun, masalah muncul ketika komputer menyimpan bilangan pecahan desimal.

Contoh penting adalah bilangan:

0,10{,}1

Dalam sistem desimal, angka ini terlihat sederhana. Namun, dalam sistem biner, bilangan tersebut menjadi deret berulang:

0,110=0,0001100110011001120{,}1_{10} = 0{,}00011001100110011\ldots_2

Deret tersebut tidak berhenti. Karena memori komputer terbatas, komputer harus memotong atau membulatkan representasi tersebut. Akibatnya, nilai yang tersimpan bukan (0{,}1) secara sempurna, tetapi nilai yang sangat dekat dengan (0{,}1).

Inilah alasan mengapa pada beberapa bahasa pemrograman hasil berikut dapat muncul:

0,1+0,20,30{,}1 + 0{,}2 \neq 0{,}3

Secara matematis hasilnya benar-benar (0{,}3), tetapi dalam komputer hasilnya dapat menjadi:

0,300000000000000040{,}30000000000000004

Masalah ini bukan karena komputer rusak, tetapi karena keterbatasan representasi floating point.


2.3.4 Floating Point

Floating point adalah format yang digunakan komputer untuk menyimpan bilangan riil. Idenya mirip dengan notasi ilmiah.

Dalam notasi ilmiah, bilangan besar atau kecil dapat ditulis seperti berikut:

300000000=3×108300000000 = 3 \times 10^8 0,000045=4,5×1050{,}000045 = 4{,}5 \times 10^{-5}

Komputer melakukan prinsip yang sama, tetapi menggunakan basis 2. Secara umum, bilangan floating point terdiri atas tiga bagian utama.

KomponenFungsi
SignMenentukan tanda bilangan, positif atau negatif.
ExponentMenentukan skala atau besar kecilnya bilangan.
MantissaMenyimpan bagian utama dari bilangan.

Pada standar IEEE 754 presisi tunggal, sebuah bilangan disimpan dalam 32 bit dengan pembagian sebagai berikut:

KomponenJumlah Bit
Sign1 bit
Exponent8 bit
Mantissa23 bit

Karena jumlah bit terbatas, tidak semua bilangan desimal dapat disimpan secara eksak. Keterbatasan inilah yang memunculkan error pembulatan.


2.3.5 Rounding Error

Rounding error atau error pembulatan adalah error yang muncul karena komputer tidak dapat menyimpan bilangan tertentu secara eksak.

Contoh:

0,1100{,}1_{10}

tidak memiliki representasi biner yang berhenti. Komputer harus membulatkan nilai tersebut agar dapat disimpan dalam jumlah bit yang terbatas.

Hubungan sederhananya adalah:

ProsesDampak
Bilangan desimal dikonversi ke binerSebagian bilangan menjadi deret tak hingga
Memori komputer terbatasDeret harus dipotong atau dibulatkan
Nilai yang tersimpan sedikit berbedaMuncul rounding error

Rounding error sudah muncul sejak data disimpan, bahkan sebelum operasi matematika dilakukan.


2.3.6 Truncation Error

Truncation error atau error pemotongan adalah error yang muncul karena proses perhitungan dihentikan pada tahap tertentu.

Banyak fungsi matematika didefinisikan menggunakan deret tak hingga. Contohnya fungsi sinus:

sin(x)=xx33!+x55!x77!+\sin(x) = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \frac{x^7}{7!} + \cdots

Komputer tidak mungkin menghitung suku tak hingga. Oleh karena itu, deret tersebut harus dipotong sampai jumlah suku tertentu.

Misalnya untuk menghitung (\sin(0{,}1)):

Jumlah SukuBentuk PendekatanHasil Hampiran
1 suku(x)(0{,}1)
2 suku(x - \frac{x^3}{3!})(0{,}0998333333)
3 suku(x - \frac{x^3}{3!} + \frac{x^5}{5!})(0{,}0998334167)

Nilai sebenarnya:

sin(0,1)0,0998334166\sin(0{,}1) \approx 0{,}0998334166

Semakin banyak suku yang digunakan, hasilnya semakin dekat dengan nilai sebenarnya. Namun, semakin banyak suku berarti semakin banyak operasi komputasi.

Inilah kompromi penting dalam metode numerik:

PilihanDampak
Suku sedikitPerhitungan cepat, error lebih besar
Suku banyakPerhitungan lebih lama, error lebih kecil

2.3.7 Perbedaan Rounding Error dan Truncation Error

AspekRounding ErrorTruncation Error
PenyebabKeterbatasan penyimpanan bilangan di komputerPemotongan proses matematika atau iterasi
Contoh(0{,}1) tidak tersimpan eksak dalam binerDeret Taylor dihentikan pada beberapa suku
Terjadi kapanSaat data disimpan atau operasi floating point dilakukanSaat algoritma menghentikan pendekatan
Cara mengurangiGunakan presisi lebih tinggiTambahkan suku atau iterasi
Dapat dihilangkan sepenuhnya?Tidak selaluTidak selalu, tetapi dapat dikontrol

Kedua jenis error ini sering muncul bersamaan dalam algoritma numerik. Oleh karena itu, hasil komputasi perlu ditafsirkan dengan hati-hati.


2.3.8 Stabilitas Numerik

Stabilitas numerik membahas bagaimana error berkembang selama proses perhitungan.

Sebuah algoritma disebut stabil jika error kecil tetap kecil selama perhitungan berlangsung. Sebaliknya, algoritma disebut tidak stabil jika error kecil membesar dan mengganggu hasil akhir.

Jenis AlgoritmaCiri Utama
StabilError tetap terkendali selama proses perhitungan
Tidak stabilError kecil dapat membesar secara cepat

Contoh sederhana dapat terjadi pada penjumlahan berulang. Jika sebuah program menambahkan (0{,}1) sebanyak satu juta kali, error pembulatan yang sangat kecil dapat terakumulasi menjadi error yang terlihat.

Karena itu, dalam metode numerik, kita tidak hanya bertanya:

Apakah rumusnya benar?

Tetapi juga bertanya:

Apakah algoritmanya stabil ketika dijalankan oleh komputer?


2.4 Fitur Interaktif

Bagian ini dapat digunakan sebagai rancangan komponen interaktif pada halaman web.

2.4.1 Simulator Error Absolut dan Relatif

Input yang disediakan:

  • Nilai sebenarnya
  • Nilai hasil pembulatan atau hasil hampiran

Output yang ditampilkan:

  • Error absolut
  • Error relatif
  • Error relatif dalam persen

Rumus yang digunakan:

Ea=xsebenarnyaxhampiranE_a = |x_{\text{sebenarnya}} - x_{\text{hampiran}}| Er(%)=xsebenarnyaxhampiranxsebenarnya×100%E_r(\%) = \frac{|x_{\text{sebenarnya}} - x_{\text{hampiran}}|}{|x_{\text{sebenarnya}}|} \times 100\%

Contoh tampilan hasil:

Nilai SebenarnyaNilai HampiranError AbsolutError Relatif
3,141592653,140,001592650,0507%

2.4.2 Slider Jumlah Digit Signifikan

Mahasiswa dapat menggeser jumlah digit signifikan, lalu sistem menampilkan perubahan hasil pembulatan.

Contoh bilangan:

π3,14159265\pi \approx 3{,}14159265
Digit SignifikanHasil PembulatanError Absolut
23,10,04159265
33,140,00159265
43,1420,00040735
53,14160,00000735

Tujuan simulasi ini adalah menunjukkan bahwa semakin banyak digit signifikan yang digunakan, hasil pembulatan biasanya semakin akurat.


2.4.3 Visual Rounding Error vs Truncation Error

Fitur visual yang disarankan:

Jenis ErrorVisualisasi
Rounding errorGaris bilangan yang menunjukkan nilai asli dan nilai hasil pembulatan
Truncation errorGrafik fungsi asli dan grafik pendekatan deret Taylor
Akumulasi errorGrafik error terhadap jumlah iterasi

Contoh pertanyaan interaktif:

  1. Apa yang terjadi jika digit signifikan dikurangi?
  2. Apa yang terjadi jika jumlah suku deret Taylor ditambah?
  3. Mengapa error kecil dapat menjadi besar setelah iterasi berulang?

2.4.4 Kasus Interaktif: (0{,}1 + 0{,}2)

Mahasiswa menekan tombol "Hitung", lalu sistem menampilkan dua hasil:

Mode PerhitunganHasil
Matematika eksak(0{,}3)
Floating point komputer(0{,}30000000000000004)

Umpan balik:

Perbedaan ini terjadi karena (0{,}1) dan (0{,}2) tidak dapat direpresentasikan secara eksak dalam biner. Komputer menyimpan nilai yang sangat dekat, bukan nilai yang benar-benar sama.


2.5 Contoh Soal

Contoh 2.1 Konversi Desimal ke Biner

Konversikan bilangan desimal 13 ke bentuk biner.

Penyelesaian

Bilangan 13 dapat ditulis sebagai:

13=8+4+113 = 8 + 4 + 1

Dalam bentuk pangkat dua:

13=23+22+2013 = 2^3 + 2^2 + 2^0

Maka:

1310=1101213_{10} = 1101_2

Jadi, bentuk biner dari 13 adalah (1101_2).


Contoh 2.2 Menghitung Error Pembulatan

Diketahui nilai sebenarnya (\pi = 3{,}14159265). Jika nilai tersebut dibulatkan menjadi (3{,}14), hitung error absolut dan error relatifnya.

Penyelesaian

Diketahui:

xsebenarnya=3,14159265x_{\text{sebenarnya}} = 3{,}14159265 xhampiran=3,14x_{\text{hampiran}} = 3{,}14

Error absolut:

Ea=3,141592653,14E_a = |3{,}14159265 - 3{,}14| Ea=0,00159265E_a = 0{,}00159265

Error relatif:

Er=0,001592653,14159265E_r = \frac{0{,}00159265}{3{,}14159265} Er0,0005069E_r \approx 0{,}0005069

Dalam persen:

Er0,05069%E_r \approx 0{,}05069\%

Jadi, error absolutnya adalah (0{,}00159265), sedangkan error relatifnya sekitar (0{,}05069%).


Contoh 2.3 Truncation Error pada Deret Taylor

Gunakan dua suku pertama deret Maclaurin untuk mendekati (e^{0{,}5}).

Deret Maclaurin untuk (e^x) adalah:

ex=1+x+x22!+x33!+e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots

Jika hanya digunakan dua suku pertama:

ex1+xe^x \approx 1 + x

Untuk (x = 0{,}5):

e0,51+0,5=1,5e^{0{,}5} \approx 1 + 0{,}5 = 1{,}5

Nilai sebenarnya:

e0,51,648721e^{0{,}5} \approx 1{,}648721

Error absolut:

Ea=1,6487211,5E_a = |1{,}648721 - 1{,}5| Ea=0,148721E_a = 0{,}148721

Jika jumlah suku ditambah, hasil pendekatan akan semakin akurat.


2.6 Kuis

Pilihlah satu jawaban yang paling tepat.

  1. Komputer menyimpan data dalam bentuk dasar...

    a. Desimal
    b. Biner
    c. Pecahan biasa
    d. Persen

  2. Sistem bilangan biner hanya menggunakan simbol...

    a. 0 dan 1
    b. 1 dan 2
    c. 0 sampai 9
    d. A sampai F

  3. Penyebab utama rounding error adalah...

    a. Rumus matematika selalu salah
    b. Komputer tidak dapat menjalankan operasi aritmetika
    c. Keterbatasan bit untuk menyimpan bilangan riil
    d. Pengguna salah memasukkan data

  4. Bilangan (0{,}1) dapat menimbulkan error dalam komputer karena...

    a. (0{,}1) adalah bilangan negatif
    b. (0{,}1) tidak dapat direpresentasikan secara eksak dalam biner terbatas
    c. (0{,}1) lebih besar dari 1
    d. (0{,}1) tidak boleh digunakan dalam metode numerik

  5. Truncation error terjadi ketika...

    a. Komputer membulatkan angka karena memori terbatas
    b. Deret atau proses iteratif dihentikan sebelum mencapai bentuk eksak
    c. Program tidak dapat dijalankan
    d. Data sensor tidak tersedia

  6. Jika jumlah suku deret Taylor ditambah, maka biasanya...

    a. Error bertambah besar
    b. Error menjadi tidak dapat dihitung
    c. Hasil pendekatan semakin mendekati nilai sebenarnya
    d. Komputer berhenti menghitung

  7. Algoritma numerik disebut stabil jika...

    a. Error kecil tetap terkendali selama proses perhitungan
    b. Error selalu bernilai nol
    c. Algoritma tidak membutuhkan komputer
    d. Algoritma hanya menggunakan bilangan bulat

  8. Kasus (0{,}1 + 0{,}2 = 0{,}30000000000000004) berkaitan langsung dengan...

    a. Truncation error
    b. Rounding error pada floating point
    c. Kesalahan rumus aljabar
    d. Kesalahan operator penjumlahan


2.7 Latihan

Kerjakan latihan berikut secara sistematis.

  1. Jelaskan dengan kalimat sendiri apa yang dimaksud dengan komputasi saintifik.

  2. Konversikan bilangan berikut ke bentuk biner:

    a. (5_{10})
    b. (10_{10})
    c. (15_{10})

  3. Diketahui nilai sebenarnya (2{,}71828), tetapi komputer menyimpan nilai (2{,}72). Hitung error absolut dan error relatifnya.

  4. Jelaskan perbedaan rounding error dan truncation error menggunakan contoh sederhana.

  5. Gunakan tiga suku pertama deret berikut untuk mendekati (e^{0{,}2}):

    ex=1+x+x22!+x33!+e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots

    Bandingkan hasilnya dengan nilai sebenarnya (e^{0{,}2} \approx 1{,}22140276).

  6. Jelaskan mengapa penjumlahan angka kecil secara berulang dalam program komputer dapat menghasilkan error yang semakin besar.

  7. Berikan satu contoh aplikasi teknik elektro yang membutuhkan algoritma numerik stabil. Jelaskan alasannya.


2.8 Rangkuman

  1. Komputasi saintifik menggunakan algoritma komputer untuk menyelesaikan masalah matematika, sains, dan teknik.
  2. Komputer menyimpan data dalam bentuk biner, yaitu kombinasi 0 dan 1.
  3. Bilangan pecahan desimal tertentu, seperti (0{,}1), tidak dapat disimpan secara eksak dalam biner terbatas.
  4. Floating point adalah format penyimpanan bilangan riil yang terdiri atas sign, exponent, dan mantissa.
  5. Rounding error muncul karena keterbatasan bit dalam menyimpan bilangan.
  6. Truncation error muncul karena deret, aproksimasi, atau iterasi dihentikan pada tahap tertentu.
  7. Rounding error dan truncation error dapat memengaruhi akurasi hasil numerik.
  8. Stabilitas numerik menjelaskan apakah error kecil tetap terkendali atau membesar selama proses perhitungan.
  9. Algoritma yang baik tidak hanya benar secara matematis, tetapi juga stabil ketika dijalankan oleh komputer.