Setelah membahas tipe data integer pascal pada tutorial sebelumnya, kali ini kita akan membahas tentang pengertian dan cara penggunaan tipe data real dalam bahasa pemrograman pascal.
Pengertian Tipe Data Real Pascal
Dalam bahasa pemrograman Pascal, tipe data real digunakan untuk angka desimal (pecahan), seperti 0.11, 3.14, atau 999.99. Tipe data ini dikenal juga dengan tipe data float atau floating point.
Karena menggunakan format amerika, penulisan nilai real di dalam Pascal menggunakan karakter titik sebagai penanda angka ‘desimal’, bukan karakter koma sebagaimana yang kita gunakan sehari-hari.
Pascal mendukung beberapa tipe data yang termasuk kategori float, yakni: Real, Single, Double, Extended, Comp dan Currency.
Cara Penggunaan Tipe Data Real Pascal
Untuk melihat cara penggunaan tipe data real, langsung saja kita lihat contoh kode programnya:
program tipe_real; uses crt; var  a:real; begin  clrscr;  a:=3.14;  writeln('a: ',a);   a:=999.99;  writeln('a: ',a);   a:= a + 0.01;  writeln('a: ',a);  readln; end.
Dalam kode program diatas, saya mendeklarasikan variabel a sebagai tipe data real (baris ke-4). Sepanjang kode program, variabel a ini diubah-ubah nilainya dan ditampilkan menggunakan perintah writeln. Seperti apa hasilnya? Mari kita lihat:
Apa yang terjadi? Angka apa ini? Apakah kode kita terdapat error?
Tidak, ini memang format tampilan default dari Pascal, dimana tipe data real akan ditampilkan dalam format angka scientific. Huruf E disini mewakili pangkat sepuluh, sehingga angka:
- 3.14000000000000E+000Â = 3.14 * 100 = 3.14
- 9.99990000000000E+002 = 9.9999 * 102 = 999.99
- 1.00000000000000E+003 = 1 * 103 = 1000
Bagaimana jika kita ingin menampilkan angka-angka tersebut dengan tampilan ‘normal’? Cukup dengan menambahkan beberapa karakter khusus di dalam perintah writeln. Berikut contohnya:
program tipe_real; uses crt; var a:real; begin clrscr; a:=3.14; writeln('a: ',a:4:2); Â a:=999.99; writeln('a: ',a:4:2); Â a:= a + 0.01; writeln('a: ',a:4:2); readln; end.
Kali ini angka kita tampil sebagaimana mestinya.
Perintah tambahan di dalam writeln digunakan untuk menformat tampilan angka-angka ini. Sebagai contoh, writeln(‘a: ‘,a:4:2) berarti saya ingin menampilkan angka dari variabel a dengan 4 digit sebelum tanda koma (tanda pemisah bilangan desimal), dan 2 digit setelah tanda koma.
Sebagai contoh lain, writeln(‘b: ‘,b:6:3) berarti saya ingin menampilkan angka dari variabel b dengan 6 digit sebelum tanda koma dan 3 digit setelah tanda koma.
Contoh berikut ini akan memperjelas cara menformat tampilan angka real:
program tipe_real; uses crt; var a,b,c:real; begin clrscr; a:=123.456; writeln('a: ',a:4:2); Â b:=999.999; writeln('b: ',b:4:2); Â c:=6782.555555; writeln('c: ',c:6:4); readln; end.
Seperti yang terlihat, tampilan variabel real akan diformat sesuai dengan jumlah digit yang ditetapkan. Selain itu, nilai-nilai ini juga akan dibulatkan. Sebagai contoh, variabel b akan ditampilan dengan nilai 1000, bukan 999.999. Ini karena kita hanya menyediakan 2 angka dibelakang koma, sehingga angka 9 yang ‘terpotong’ akan dibulatkan menjadi 10.
Contoh lain, angka 6782.555555 akan dibulatkan menjadi 6782.5556 karena perintah writeln(‘c: ‘,c:6:4) hanya menyediakan 4 digit dibelakang koma, sehingga digit ke-5 dibulatkan menjadi 6.
Jenis-jenis Tipe Data Real di dalam Pascal
Sama seperti tipe data integer, Pascal mendukung berbagai jenis tipe data real yang dibedakan menurut jangkauannya. Tabel berikut merangkum tipe-tipe data real yang terdapat di dalam compiler Free Pascal:
Type | Range | Significant digits | Ukuran (dalam byte) |
---|---|---|---|
Real | platform dependant* | ???* | 4 – 8 |
Single | 1.5E-45 s/d 3.4E38 | 7-8 | 4 |
Double | 5.0E-324 s/d 1.7E308 | 15-16 | 8 |
Extended | 1.9E-4932 s/d 1.1E4932 | 19-20 | 10 |
Comp | -2E64+1 s/d 2E63-1 | 19-20 | 8 |
Currency | -922337203685477.5808 s/d 922337203685477.5807 | 19-20 | 8 |
*Khusus untuk jangkauan tipe data real, bergantung kepada processor yang digunakan, dan akan berbeda-beda.
Berikut contoh penggunaan berbagai tipe data ini:
program tipe_real; uses crt; var a:real; b:single; c:double; d:extended; e:comp; begin clrscr; a:=12345.6789; b:=12345.6789; c:=12345.6789; d:=12345.6789; e:=12345.6789; Â writeln('a: ',a:6:4); writeln('b: ',b:6:4); writeln('c: ',c:6:4); writeln('d: ',d:6:4); writeln('e: ',e:6:4); readln; end.
Dalam contoh diatas saya membuat 5 variabel: a, b, c, d, dan e dengan berbagai tipe data real. Hampir semua memberikan hasil yang sama (kecuali single dan comp). Selain jangkauan, setiap tipe data ini juga bisa memberikan hasil yang berbeda terutama untuk proses perhitungan yang butuh ketelitian. Kita akan membahas hal ini pada tutorial tentang operator Pascal.
Dalam lanjutan tutorial belajar pascal kali ini kita telah membahas tipe data real, yang digunakan untuk menampung angka yang berbentuk pecahan (desimal). Dalam tutorial selanjutnya kita akan membahas tipe data Char Pascal.
Bisa gak seorang programmer itu MTKnya gak begitu jago?
soalnya saya gak begitu jago, tapi saya bertekad ingin sekali menjadi programmer
Bisa banget! Untuk jadi programmer g perlu kuat di matematika. Malah sepanjang saya membuat program, yang kepakai hanya matematika dasar "kabataku" saja. G akan ketemu matematika rumit macam kalkulus, logaritma, trigonometri, dll. Yang penting kuat di logika.
Matematika baru perlu jika agan masuk kuliah IT/Ilmu Komputer. Itupun menurut saya juga g akan kepakai jika nanti jadi programmer…
Gan mau nanya masalah real di atas. Kalau misal 123.456 terus di tulis di writeln nya 1:2 kenapa yg sebelum desimalnya gak keluar 1 tapi malah semuanya? Jadi tetep 123.46? Maaf newbie gan… Hehe
1:2 artinya 1: untuk jumlah karakter setelah tanda ' (koma di atas). dan 2 adalah jumlah digit setelah titik. 123.456 karena agan minta di belakang (.) adalah 2 maka itu akan otomatis dibulatkan menjadi 123.46
Kalau mau bikin game 3D harus belajar aljabar linear, dan kalau mau bikin AI juga wajib belajar kalkulus.
Tapi kalau mau bikin program sederhana yang tidak memiliki fitur yang kompleks, gak perlu matematika tingkat lanjut.
Siip, terimakasih tambahannya…
itu di sinkronasikan oleh writeln nya jadi itu penyelsaian nya begitu misalnya nulis di writeln nya 1:2 doang pasti bakal keluar semua angka desimalnya…………………………..
saya punya variable a:= 334.14
begitu saya write(a:1:2) kenapa tampilnya malah tetep 334.14. kalo nulisnya (a:1:2) berarti kan harusnya bakal menampilkan hanya 1 digit angka sebelum koma dan hanya 2 digit angka setelah koma, tapi kok hasilnya malah menampilkan 3 digit angka setelah koma bukannya 1 digit
Mohon penjelasannya saya masih bingung di bagian itu
Pengecualian penulisan format adalah jika total digit angka bulat melebihi format yang di tulis,
Misal jika 334.14 di set dengan 1 angka bulat, hasilnya akan jadi 3. Ini sudah mengubah keseluruhan angka sehingga tim pengembang bahasa Pascal tidak mengizinkan hal ini terjadi (format 1 itu akan diabaikan). Yang bisa dibulatkan hanya di bagian pecahan.
Ehh gan a:=6.00 itu bisa juga berarti bisa kita buat tipe real,,kalau integrnya kan a:=6,,gimana??berarti real juga berlaku semua bilangan masalanya 6=6.00(tanda titik Maksudnya 'koma'),,gimana????
Gan kalah mau buat statement 5/9 × (a-b),bahasaa programnya jadi gimana ya????????
kenapa ya kalo saya gunakan C:4:2 itu muncul Error: Illegal use of ':?
Kemungkinan besar ada kode yang salah ketik, bisa tes copy paste contoh yang ada di halaman ini.
Atau menggunakan compiler apa ya? karena saya memang tidak tes di Turbo Pascal (disarankan pakai Free Pascal)
Progam Bayar_Pertalite;
const pertalite = 7300;
var uang : integer;
var liter : real;
begin
write ('Mau beli berapa ? -> ');
readln (uang);
liter := uang/pertalite;
writeln ('—————–);
write (liter:4:2);
write ('L')
End.
Ada yang tau letak kesalahan progamnya dimanakah?
Dengan situs online Pascal compiler tolong bantuannya makasi
tanda petik pada writeln(‘———————); kurang satu
titik koma setelah write(‘L’)