Panduan Lengkap Fungsi round() Python: Presisi & Pembulatan Angka

1. Dasar Fungsi round() Python

Ikhtisar Fungsi round()

Fungsi round() Python adalah fungsi dasar untuk membulatkan angka. Ini terutama digunakan untuk membulatkan angka ke jumlah tempat desimal tertentu. Dengan ini, Anda dapat dengan mudah menyesuaikan tampilan data dan hasil perhitungan.

Sintaks Dasar

round(number[, ndigits])
     

  • number: Angka yang akan dibulatkan.
  •  

  • ndigits: Jumlah tempat desimal (opsional). Jika dihilangkan, angka akan dibulatkan ke bilangan bulat terdekat.

Contoh Penggunaan

print(round(3.14159))    # Hasil: 3
print(round(3.14159, 2)) # Hasil: 3.14
print(round(1.5))        # Hasil: 2

Seperti yang ditunjukkan, fungsi round() dapat membulatkan ke jumlah digit yang ditentukan, dan jika ndigits tidak ditentukan, itu akan dibulatkan ke bilangan bulat terdekat.

2. Metode Pembulatan Python: “Pembulatan Bankir”

Apa itu Pembulatan Bankir?

Fungsi round() Python menggunakan metode yang disebut “Pembulatan Bankir (Banker’s Rounding)”. Ini adalah metode di mana ketika bagian desimal adalah 0.5, angka dibulatkan ke bilangan genap terdekat. Misalnya, 2.5 dibulatkan menjadi 2, dan 3.5 dibulatkan menjadi 4. Metode ini digunakan dalam data statistik dan perhitungan keuangan untuk mencegah bias data.

Contoh Spesifik Pembulatan Bankir

print(round(2.5))  # Hasil: 2
print(round(3.5))  # Hasil: 4

Dengan cara ini, pembulatan bankir membulatkan ke bilangan genap ketika bagian desimal adalah 0.5, mencegah akumulasi kesalahan.

Keuntungan Pembulatan Bankir

Metode ini dapat mengurangi kesalahan kumulatif yang disebabkan oleh pembulatan ke atas atau pembulatan ke bawah sederhana. Ini sangat membantu dalam menjaga keseimbangan data secara keseluruhan saat memproses sejumlah besar data.

侍エンジニア塾

3. Masalah Bilangan Pecahan (Floating-Point)

Representasi Internal dan Kesalahan Bilangan Pecahan

Di Python, bilangan pecahan direpresentasikan dalam basis biner. Karena itu, angka desimal mungkin tidak direpresentasikan secara akurat, dan hasil yang tidak terduga dapat diperoleh selama proses pembulatan. Secara khusus, hasil fungsi round() mungkin tidak sesuai harapan jika angka tidak dapat direpresentasikan secara akurat secara internal.

Contoh Masalah Bilangan Pecahan

n = 3.15
print(round(n, 1))  # Hasil: 3.1 (Perkiraan: 3.2)

Dalam contoh ini, 3.15 direpresentasikan secara internal sebagai 3.149999..., sehingga hasil yang diharapkan tidak diperoleh. Ini disebabkan oleh keterbatasan bilangan pecahan.

Alasan Terjadinya Kesalahan Bilangan Pecahan

Bilangan pecahan direpresentasikan dalam basis biner, dan angka seperti 1.15 atau 3.15 tidak dapat direpresentasikan secara akurat. Hal ini menyebabkan kesalahan selama pembulatan. Untuk menghindari masalah ini, disarankan untuk melakukan pemrosesan angka presisi tinggi seperti modul decimal yang akan dijelaskan selanjutnya.

4. Modul decimal untuk Menjaga Presisi

Ikhtisar Modul decimal

Dengan menggunakan modul decimal, Anda dapat menghindari kesalahan bilangan pecahan dan melakukan perhitungan numerik presisi tinggi. Ini sangat berguna ketika hasil yang akurat diperlukan dalam perhitungan keuangan dan ilmiah.

Contoh Penggunaan

from decimal import Decimal, ROUND_HALF_UP
n = Decimal('3.15')
print(n.quantize(Decimal('0.1'), rounding=ROUND_HALF_UP))  # Hasil: 3.2

Kelas Decimal digunakan untuk menghindari kesalahan bilangan pecahan dan melakukan perhitungan presisi tinggi. ROUND_HALF_UP berfungsi sama dengan pembulatan ke atas biasa.

Mode Pembulatan Lainnya

Modul decimal memiliki berbagai mode pembulatan. Misalnya:

     

  • ROUND_DOWN: Selalu membulatkan ke bawah.
  •  

  • ROUND_CEILING: Membulatkan angka positif ke atas, dan angka negatif ke bawah.
  •  

  • ROUND_FLOOR: Selalu membulatkan ke bawah (termasuk angka negatif).

Menggunakan mode-mode ini memungkinkan pemrosesan pembulatan yang fleksibel sesuai dengan kebutuhan.

年収訴求

5. Metode Pembulatan Lainnya: math.floor() dan math.ceil()

math.floor(): Pembulatan ke Bawah (Truncate)

Fungsi math.floor() membulatkan nilai desimal ke bawah ke bilangan bulat terdekat. Untuk angka negatif, ia dibulatkan ke arah bawah.

import math
print(math.floor(3.9))  # Hasil: 3

math.ceil(): Pembulatan ke Atas (Round Up)

Di sisi lain, fungsi math.ceil() selalu membulatkan nilai desimal ke atas.

import math
print(math.ceil(3.1))   # Hasil: 4

Perbedaan dengan round()

Sementara round() membulatkan ke bilangan bulat terdekat, math.floor() dan math.ceil() selalu membulatkan ke satu arah, membuat hasilnya lebih mudah diprediksi. Fungsi-fungsi ini efektif ketika pembulatan yang akurat diperlukan bahkan untuk angka negatif.

6. Contoh Aplikasi Praktis

Aplikasi dalam Perhitungan Mata Uang

Perhitungan mata uang memerlukan perhitungan presisi tinggi. Misalnya, menggunakan modul decimal untuk menghitung total atau diskon dapat menghasilkan jumlah yang akurat.

from decimal import Decimal, ROUND_HALF_UP
price = Decimal('19.995')
print(price.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP))  # Hasil: 20.00

Aplikasi dalam Perhitungan Ilmiah

Dalam perhitungan ilmiah, kesalahan bilangan pecahan menjadi masalah, oleh karena itu penting untuk menggunakan modul decimal untuk perhitungan yang akurat. Ini membantu menjaga presisi hasil pengukuran dan data eksperimen.

Aplikasi dalam Analisis Data

Dalam analisis data, pembulatan angka yang tepat diperlukan untuk mencegah akumulasi kesalahan. Menggunakan decimal dan round() secara tepat saat mengumpulkan data statistik dan big data dapat menghasilkan hasil yang akurat.

7. Kesimpulan

Fungsi round() Python adalah alat yang nyaman untuk membulatkan angka desimal dengan mudah, tetapi perhatian khusus harus diberikan pada kesalahan bilangan pecahan. Dalam situasi yang membutuhkan presisi keuangan dan ilmiah, penting untuk memanfaatkan modul decimal untuk meningkatkan akurasi pembulatan. Selain itu, memahami metode pembulatan lainnya seperti math.floor() dan math.ceil(), dan menggunakannya secara tepat sesuai dengan kebutuhan, memungkinkan pemrosesan numerik yang fleksibel.