My first Magazine pemrograman-kompetitif-dasar | Page 153

12.5 Presisi Bilangan Riil II Sekilas Info JJ 22 22 Hati-hati! Nilai π tidak sama dengan . Penggunaan hanyalah aproksimasi dari nilai 7 7 π yang sesungguhnya. π = 3.14159265359.. 22 7 = 3.14285714285.. Untuk perhitungan pada kompetisi pemrograman, Anda dapat menggunakan nilai π yang diberikan pada soal. Jika soal tidak memberikan nilai π yang digunakan, Anda dapat mencarinya dengan fungsi arc-cosinus, yaitu fungsi pada trigonometri. Nilai π didapatkan dari: • Pascal: arccos(−1) • C++: acos(−1) (memerlukan include cmath) 12.5 Presisi Bilangan Riil Pada kompetisi pemrograman, disarankan selalu mengutamakan penggunaan bilangan bulat daripada bilangan riil. Hal ini dikarenakan komputer memiliki keterbatasan dalam merepresenta- sikan bilangan riil. Representasi bilangan riil dari angka 1 bisa jadi adalah 0.999999999999 atau 1.00000000001. Akibatnya, perhitungan yang melibatkan bilangan riil kurang akurat jika dibandingkan dengan perhitungan dengan bilangan bulat. Masalah lainnya adalah dalam hal me- meriksa kesamaan dua bilangan. Nilai dari ekspresi (1.0/3 ∗ 3 = 3.0) mungkin saja mengembalikan false. Sebagai ilustrasi, perhatikan contoh soal berikut. Contoh Soal 12.1: Potongan Pizza Pak Dengklek sedang memesan pizza pada suatu restoran. Ia menemukan dua buah menu pizza. Pizza pertama memiliki jari-jari A inci dan akan dibagi menjadi B potong sama rata. Sementara pizza kedua memiliki jari-jari C inci dan akan dibagi menjadi D potong sama rata. Pak Dengklek penasaran, apakah satu potong pada pizza pertama memiliki luas yang sama dengan satu potong pada pizza kedua. Bantulah Pak Dengklek mencari jawabannya! Algoritma 71 Solusi Potongan Pizza versi 1. function CHECK P IZZA (A, B,C, D) 2: return (π × A × A)/B = (π ×C ×C)/D 3: end function 1: Soal Potongan Pizza ini cukup sederhana. Solusi yang mudah terpikirkan adalah dengan menghitung luas masing masing potongan pizza, lalu melakukan perbandingan seperti pada Algoritma 71. 143