Bagaimana Numerik Pecahan di simpan di Memori ?


Pada postingan sebelumnya kita telah membahas tentang Bagaimana Karakter atau String di Simpan Di Memori dan Bagaimana Numerik Bulat diSimpan di Memori. Kali ini yang kita bahas akan sedikit berbeda dari sebelumnya karena kita akan membahasa Bagaimana Numerik Pecahan di simpan di memori. Konsep Penyimpanan antara Karakter/String dan Numerik Bulat sangatlah berbeda dari yang akan kita bahas pada postingan kali ini, olehnya, silahkan sediakan kopi pahit biar tetap konsen yah… wkwkwkwkwkwkw :p Diharapkan setelah membaca artikel ini, kita dapat memahami bagaimana sebenarnya, data, variabel, konstanta, dapat disimpan dimemori, dan bagaimana komputer membacanya sehingga menampilkan hal yang sesuai dengan yang di inginkan. Hal ini menjadi harapan, karena tentunya kita telah membahas semua Tipe Data yang di simpan di memori karena karakter, bilangan bulat, dan bilangan pecahan, sudah dapat mewakili semua tipe data yang ada pada setiap pemrograman.

Mengacuh pada dua pembahasa sebelumya tentang Karakter/String dan Numerik Bulat, kita dapat mendapatkan sebuah kesimpulan bahwa, komputer hanyalah sebuah mesin yang mengerti 2 buah nilai yakni 1 dan 0. Olehnya itu semua data yang disimpan di dalam komputer/memori tidak lain adalah logika digital 1 dan 0 tadi. Tidak terkecuali bilangan pecahan tentunya.

sebelum kita membahas lebih jauh tentang pecahan, kita akan mengulas kembali Karakter/String dan bilangan Bulat. Karakter/String dan Bilangan Bulat di simpan di memori dengan menulis nilai binary biasa (representase biner). Representase Biner sangatlah mudah seperti yang kita telah Bahas sebelumnya. Misal kita ingin menyimpan nilai 20 pada tipe data dengan lebar ukuran sebesar 1 byte (8 bit). maka dengan sangat muda dengan teknik Representase Biner kita dapat mengetahu bahwa nilai 20 akan di simpan di memori dengan nilai 00010100. Begitupun dengan bilangan bulat yang ukurannya bisalnya 2 byte (16 bit) atau dengan ukuran 4 byte (32 bit). Teknik ini pun tentunya sangat sederhana.

Selanjutnya setelah mengetahui, lantas bagaimana dengan pecahan?? Apakah akan sama dengan teknik sebelum-sebelumnya??? Jawabannya adalah tidak sama sekali.

Sebuah Nilai Pecahan di simpan dimemori bukan dengan Bentuk Representase Biner melainkan dalam bentuk Floating Point. Sehinggal Bilangan Pecahan sering disebut sebagai bilangan floating-point ata bilangan real. Bilangan Floating Point biasanya mempunyai lebar 4 byte yang disebut sebagai single-precision (ketepatan tunggal) dan ada yang mempunyai lebar 8 byte yang disebut sebagai double-precesion (ketepatan ganda). Berikut adalah gambaran Bentuk Floating Point untuk 4 byte dan 8 byte.

Bentuk Floting Point

Mantisa 24 bit sebenarnya mempunyai sebuah 1 bit yang disembunyikan sehingga Mantisa 24 bit ini hanya di simpan 23 bit saja. Bit yang disembunyikan ini adalah bit awal dari bilangan yang sudah dinormalisasi. Pada saat bilangan di normalisasi, bit ini akan diatur sehinggal nilainya sekurang-kurangnya adalah 1 tetapi kurang dari 2. Contoh nilai -14.25 dalam bentuk biner adalah 1110,01 maka dinormalisasi menjadi 1,11001×2^3. Bit 1 yang ada di depan koma tidak akan disimpan dibagian mantisa.

Untuk bagian Eksponen, akan disimpan dalam eksponen terbias. Untuk Ketepatan tunggal berbias 7FH (127) dan untuk Ketepatan Ganda Berbias 3FFH (1023). eksponen bias ini akan dijumlahkan dengan eksponen sebelum di simpan di tempat eksponen dalam memori.

Ada beberapa aturan yang digunakan dalam aturan Bentuk Floating Point, yakni, nilai 0,0 disimpan sebagai 0 semua, dan nilai tak hingga akan disimpan dengan 1 di tempat eksponen dan 0 ditempat mantisa, serta bit tanda akan menyimpan 0 untuk positif dan 1 untuk negatif.

Mungkin penjelasannya sudah cukup, mari kita mengkonversi bilangan pecahan dalam bentuk Floating Point. Contoh yang saya gunakan saat ini adalah bilangan -14,25.

Pecahan        Biner           Normalisasi               Tanda

-14,25         1110,01     -1,11001 * 2^3                1

Nilai Pecahan ini akan di simpan dimemori sebagai berikut :

Penyimpanan Bilangan Pecahan

Trus bagaimana penjelasannya???
Untuk Mendapatkan dari biner -14.25 adalah dengan cara sebagai berikut :

Kita ambil bilangan 14,25, 14 desimal = 1110, sampai disini kita sudah mendapatkan biner 1110. Selanjutnya 0.25 binernya adalah:

0,25   x   2

————-

0,5    x    2            digit 0

————-

1                          digit 1

sehingga untuk bilangan 0,25 binernya adalah 0,01. Hehehe, selanjutnya tinggal ditambahkan Biner dari Desimal 14 dan 0,25. sehingga menjadi 1110,01. Karena ini bernilai negatif (-), maka bentuk binernya menjadi -1110,01. Untuk Normalisasinya, kita akan atur bit awalnya adalah sekurang-kurangnya 1 atau kurang dari 2. Sehingga Hasil Normalisasinya adalah -1,11001 * 2^3. Perhatikan Teks yang sya beri huruf tebal. 11001 akan lansung di simpan ke tempat mantisa. sehingga Mantisa dalam memori menjadi seperti di atas. Selanjutnya untuk Tempat Eksponen didapatkan dengan menjumlahkan Pangkat dari hasil normalisasi dengan Bilangan BIASnya. Karena pada contoh, kita menggunakan Bentuk Floating Point Ketepatan tunggal, maka biasnya adalah 7FH (127). Pada hasil Normalisasi angka 3 atau dalam biner 0b11, adalah pangkat dari hasil normalisasi sehinggal 3 + 127 adalah 130. 130 dalam bentuk Biner adalah 0b10000010. Nilai biner inilah yang akan disimpan di tempat eksponen.

Dari penjelasan diatas kita telah mendapatkan Mantisa sebagai 11001 dan Eksponen 10000010 sehingga Nilai -14,25 disimpan dalam memori dengan Bentuk Floating Point Ketepadan Tunggal (single precision) menjadi 11000001011001000000000000000000

nilai bit 1 pada awal menunjukkan nilai Positif dan 18 bit 0 pada akhir adalh bit-bit yang ditambahkan sehingga semua bit pada mantisa (total 23 bit) terisi semua…

Tolong Koment yah jika ada kekeliruan………🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s