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.

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,10{,}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,20{,}1 + 0{,}2 dapat menghasilkan nilai yang tidak persis sama dengan 0,30{,}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,10{,}1 secara sempurna, tetapi nilai yang sangat dekat dengan 0,10{,}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,30{,}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)\sin(0{,}1):

Jumlah SukuBentuk PendekatanHasil Hampiran
1 sukuxx0,10{,}1
2 sukuxx33!x - \frac{x^3}{3!}0,09983333330{,}0998333333
3 sukuxx33!+x55!x - \frac{x^3}{3!} + \frac{x^5}{5!}0,09983341670{,}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
Contoh0,10{,}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,10{,}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,20{,}1 + 0{,}2

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

Mode PerhitunganHasil
Matematika eksak0,30{,}3
Floating point komputer0,300000000000000040{,}30000000000000004

Umpan balik:

Perbedaan ini terjadi karena 0,10{,}1 dan 0,20{,}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 110121101_2.


Contoh 2.2 Menghitung Error Pembulatan

Diketahui nilai sebenarnya π=3,14159265\pi = 3{,}14159265. Jika nilai tersebut dibulatkan menjadi 3,143{,}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,001592650{,}00159265, sedangkan error relatifnya sekitar 0,05069%0{,}05069\%.


Contoh 2.3 Truncation Error pada Deret Taylor

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

Deret Maclaurin untuk exe^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,5x = 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 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. 5105_{10}
    b. 101010_{10}
    c. 151015_{10}

  3. Diketahui nilai sebenarnya 2,718282{,}71828, tetapi komputer menyimpan nilai 2,722{,}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 e0,2e^{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 e0,21,22140276e^{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.7 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,10{,}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.