Social Icons

twitterfacebookgoogle pluslinkedinrss feedemail

Monday, April 16, 2012

Berkenalan dengan Integer


Selama ini kita sering menggunakan tipe data Integer, ternyata masih banyak diantara kita yang tidak mengerti dengan tipe data ini. Yang kita tahu tipe data ini untuk bilangan bulat (tidak berkoma).
Panjang range data yang bisa ditampung oleh tipe data ini adalah 4 byte ( -2.147.483.648 s/d 2.147.483.647). sedangkan jika menggunakan unsigned int maka range data yang nya adalah 0 s/d 4.294.967.295 (unsigned artinya nilainya positif semua)
Jika pada bahasa C untuk mencetak nilai %d untuk integer sedangkan untuk unsigned menggunakan %u.
Misalnya ada program seperti ini:

#include<stdlib.h>
#include<stdio.h>

int main(){
       int a= 2147483649;

       printf("a1=%d\n",a);
      

       system("pause");
       return 0;
}


Berapa kah output dari program diatas?? Jika anda menjawab a1=2147483649, maka tentu saja jawab itu salah, karena range seperti yang sudah dijelaskan diatas untuk integer ( -2.147.483.648 s/d 2.147.483.647). jawaban yang benar adalah  -2.147.483.647. tahu kenapa?? Hehe, sabar yaa…
Biar gampangnya kita akan menggunakan simulasi 4 bit ( berpikir sesuatu yang mudah untuk hal yang sulit :)

Maka nilai maximal untuk data integer (Tmax)= 2.147.483.647, sedangkan data yang kita deklarasikan diatas a= 2147483649, kelebihan dua (2) dari daya tamping maximal nya, maka data berikutnya yang bisa ditampung bernilai minus, jika kekurangan dua, maka nilai angka dua berikutnya jika dilihat dari tabel diatas adalah: -2.147.483.647. jadi jangan bingung lagi jika data yang kita deklarasikan tidak tampil seperti yang kita harapkan.

contoh berikutnya :
#include<stdlib.h>
#include<stdio.h>

int main(){
       unsigned int a= 2147483649;
       unsigned int b= 4294967298 ;
       printf("a=%u\n",a);
       printf("b=%u\n",b);

       system("pause");
       return 0;
}

berapa kah outputnya?
jawab yang benar: 
a= 2147483649
b= 2

sudah tahu kenapa bukan? yup benar sekali(emang siapa yang jawab ya :D), karena tipe data kita unsigned int jadi nilai maximal adalah  4294967295. untuk nilai a tidak ada masalah, kenapa nilai b=2 ya :).. itu sama dengan hal penjelasan pada saat penggunanaan tipe data integer tadi. karena batas maximal 4294967295 sedangkan kita mendeklarasikan 4294967298, maka kelebihan 3. jadi tiga digit berikutnya akan dimulai dari nol (karena nilai sudah sampai di Umax, maka akan di ulang lagi mulai dari nol)

 mari berkenalan lebih lanjut dengan integer di posting berikutnya.:)

No comments:

Post a Comment

Searching

 
“Jadilah engkau orang yang berilmu (pandai), atau orang
yang belajar, atau orang yang mau mendengarkan ilmu, atau orang yang menyukai ilmu. Dan
janganlah engkau menjadi orang yang kelima maka kamu akan celaka" (H.R. Baehaqi)
Janganlah kalian menuntut ilmu untuk membanggakannya terhadap para ulama dan untuk diperdebatkan di kalangan orang-orang bodoh dan buruk perangainya. Jangan pula menuntut ilmu untuk penampilan dalam majelis (pertemuan atau rapat) dan untuk menarik perhatian orang-orang kepadamu. Barangsiapa seperti itu maka baginya neraka … neraka. (HR. Tirmidzi dan Ibnu Majah)