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:
- Menjelaskan pengertian komputasi saintifik.
- Menjelaskan cara komputer merepresentasikan bilangan menggunakan sistem biner.
- Membedakan bilangan desimal dan bilangan biner.
- Menjelaskan konsep floating point.
- Mengidentifikasi rounding error dan truncation error.
- Menjelaskan konsep stabilitas numerik.
- 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:
| Bidang | Contoh Penerapan |
|---|---|
| Teknik elektro | Simulasi rangkaian, analisis sistem tenaga, pengolahan sinyal |
| Fisika | Simulasi gerak benda, perhitungan energi, pemodelan gelombang |
| Teknik sipil | Analisis struktur jembatan dan gedung |
| Meteorologi | Prediksi cuaca dan iklim |
| Kedokteran | Rekonstruksi 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.
| Desimal | Biner |
|---|---|
| 1 | 1 |
| 2 | 10 |
| 5 | 101 |
| 10 | 1010 |
| 13 | 1101 |
Sebagai contoh:
Artinya:
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:
Dalam sistem desimal, angka ini terlihat sederhana. Namun, dalam sistem biner, bilangan tersebut menjadi deret berulang:
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:
Secara matematis hasilnya benar-benar (0{,}3), tetapi dalam komputer hasilnya dapat menjadi:
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:
Komputer melakukan prinsip yang sama, tetapi menggunakan basis 2. Secara umum, bilangan floating point terdiri atas tiga bagian utama.
| Komponen | Fungsi |
|---|---|
| Sign | Menentukan tanda bilangan, positif atau negatif. |
| Exponent | Menentukan skala atau besar kecilnya bilangan. |
| Mantissa | Menyimpan bagian utama dari bilangan. |
Pada standar IEEE 754 presisi tunggal, sebuah bilangan disimpan dalam 32 bit dengan pembagian sebagai berikut:
| Komponen | Jumlah Bit |
|---|---|
| Sign | 1 bit |
| Exponent | 8 bit |
| Mantissa | 23 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:
tidak memiliki representasi biner yang berhenti. Komputer harus membulatkan nilai tersebut agar dapat disimpan dalam jumlah bit yang terbatas.
Hubungan sederhananya adalah:
| Proses | Dampak |
|---|---|
| Bilangan desimal dikonversi ke biner | Sebagian bilangan menjadi deret tak hingga |
| Memori komputer terbatas | Deret harus dipotong atau dibulatkan |
| Nilai yang tersimpan sedikit berbeda | Muncul 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:
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 Suku | Bentuk Pendekatan | Hasil 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:
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:
| Pilihan | Dampak |
|---|---|
| Suku sedikit | Perhitungan cepat, error lebih besar |
| Suku banyak | Perhitungan lebih lama, error lebih kecil |
2.3.7 Perbedaan Rounding Error dan Truncation Error
| Aspek | Rounding Error | Truncation Error |
|---|---|---|
| Penyebab | Keterbatasan penyimpanan bilangan di komputer | Pemotongan proses matematika atau iterasi |
| Contoh | (0{,}1) tidak tersimpan eksak dalam biner | Deret Taylor dihentikan pada beberapa suku |
| Terjadi kapan | Saat data disimpan atau operasi floating point dilakukan | Saat algoritma menghentikan pendekatan |
| Cara mengurangi | Gunakan presisi lebih tinggi | Tambahkan suku atau iterasi |
| Dapat dihilangkan sepenuhnya? | Tidak selalu | Tidak 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 Algoritma | Ciri Utama |
|---|---|
| Stabil | Error tetap terkendali selama proses perhitungan |
| Tidak stabil | Error 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:
Contoh tampilan hasil:
| Nilai Sebenarnya | Nilai Hampiran | Error Absolut | Error Relatif |
|---|---|---|---|
| 3,14159265 | 3,14 | 0,00159265 | 0,0507% |
2.4.2 Slider Jumlah Digit Signifikan
Mahasiswa dapat menggeser jumlah digit signifikan, lalu sistem menampilkan perubahan hasil pembulatan.
Contoh bilangan:
| Digit Signifikan | Hasil Pembulatan | Error Absolut |
|---|---|---|
| 2 | 3,1 | 0,04159265 |
| 3 | 3,14 | 0,00159265 |
| 4 | 3,142 | 0,00040735 |
| 5 | 3,1416 | 0,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 Error | Visualisasi |
|---|---|
| Rounding error | Garis bilangan yang menunjukkan nilai asli dan nilai hasil pembulatan |
| Truncation error | Grafik fungsi asli dan grafik pendekatan deret Taylor |
| Akumulasi error | Grafik error terhadap jumlah iterasi |
Contoh pertanyaan interaktif:
- Apa yang terjadi jika digit signifikan dikurangi?
- Apa yang terjadi jika jumlah suku deret Taylor ditambah?
- 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 Perhitungan | Hasil |
|---|---|
| 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:
Dalam bentuk pangkat dua:
Maka:
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:
Error absolut:
Error relatif:
Dalam persen:
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:
Jika hanya digunakan dua suku pertama:
Untuk (x = 0{,}5):
Nilai sebenarnya:
Error absolut:
Jika jumlah suku ditambah, hasil pendekatan akan semakin akurat.
2.6 Kuis
Pilihlah satu jawaban yang paling tepat.
-
Komputer menyimpan data dalam bentuk dasar...
a. Desimal
b. Biner
c. Pecahan biasa
d. Persen -
Sistem bilangan biner hanya menggunakan simbol...
a. 0 dan 1
b. 1 dan 2
c. 0 sampai 9
d. A sampai F -
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 -
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 -
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 -
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 -
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 -
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.
-
Jelaskan dengan kalimat sendiri apa yang dimaksud dengan komputasi saintifik.
-
Konversikan bilangan berikut ke bentuk biner:
a. (5_{10})
b. (10_{10})
c. (15_{10}) -
Diketahui nilai sebenarnya (2{,}71828), tetapi komputer menyimpan nilai (2{,}72). Hitung error absolut dan error relatifnya.
-
Jelaskan perbedaan rounding error dan truncation error menggunakan contoh sederhana.
-
Gunakan tiga suku pertama deret berikut untuk mendekati (e^{0{,}2}):
Bandingkan hasilnya dengan nilai sebenarnya (e^{0{,}2} \approx 1{,}22140276).
-
Jelaskan mengapa penjumlahan angka kecil secara berulang dalam program komputer dapat menghasilkan error yang semakin besar.
-
Berikan satu contoh aplikasi teknik elektro yang membutuhkan algoritma numerik stabil. Jelaskan alasannya.
2.8 Rangkuman
- Komputasi saintifik menggunakan algoritma komputer untuk menyelesaikan masalah matematika, sains, dan teknik.
- Komputer menyimpan data dalam bentuk biner, yaitu kombinasi 0 dan 1.
- Bilangan pecahan desimal tertentu, seperti (0{,}1), tidak dapat disimpan secara eksak dalam biner terbatas.
- Floating point adalah format penyimpanan bilangan riil yang terdiri atas sign, exponent, dan mantissa.
- Rounding error muncul karena keterbatasan bit dalam menyimpan bilangan.
- Truncation error muncul karena deret, aproksimasi, atau iterasi dihentikan pada tahap tertentu.
- Rounding error dan truncation error dapat memengaruhi akurasi hasil numerik.
- Stabilitas numerik menjelaskan apakah error kecil tetap terkendali atau membesar selama proses perhitungan.
- Algoritma yang baik tidak hanya benar secara matematis, tetapi juga stabil ketika dijalankan oleh komputer.