-->
KOMPUTER67
Lebih dari sekedar belajar !

Tipe Data Integer | Belajar Struktur Data C & C++



Tipe data integer ini sangat sering digunakan dalam berbagai macam bahasa pemrograman termasuk C dan C++. Tapi kebanyakan dari kita tidak terlalu memperhatikan tipe data integer hingga detail. Mengapa ? Karena kita berpikir yang penting bisa deklarasi variabel yang menyimpan angka, itu sudah cukup.

Ok, hal tersebut memang benar, tapi tidak ada salahnya jika kita mempelajari tipe data integer ini lebih dalam. Data yang disimpan dengan menggunakan tipe data integer, yang penulisannya dalam bahasa pemrograman C dinyatakan dengan int.

2 Macam Tipe Data Integer

1. Tipe : signed int

Tipe data integer yaitu signed int ini memiliki kapasitas 2 byte atau 16 bit. Jadi ada 2 pangkat 16 kemungkinan yaitu 65536. Tapi walaupun memiliki kapasitas 65536, itu bukan berarti nilainya dari 0 - 65535 loh.. Mengapa ?
Namanya saja signed artinya bertanda. Jadi kalau signed int, maka artinya integer yang memiliki tanda positif dan negatif. Jadi singkatnya, jangkauan nilai dari signed int ini adalah dari :
-32768 hingga 32767

2. Tipe : unsigned int


Tipe data integer yang satu ini kebalikan dari signed. Yang tadinya bisa bertanda negativ, sekarang selalu positif alias dari 0 - 65535 ( BUKAN 65536 karena dihitung dari 0).

Contoh Program Dalam C Dan C++

Contoh 1


#include <stdio.h>

int main()
{
    signed int N;
    N = 65535;
    printf("%i\n");
    printf("%u\n");
}
Nah output dari kode diatas adalah :
-1
65535

Mengapa outputnya bisa seperti itu ? Mari kita bahas sedikit demi sedikit.
Pertama kan kita mendeklarasikan variabel N dengan signed int. Artinya bilangan bertanda, jadi jangkauannya antara -32768 hingga 32767.
Tapi kita ketahui nilai tersebut adalah salah. Maka secara otomatis, nilai tersebut akan digantikan sesuai aturan signed int, yaitu dari 65535 akan menjadi -1. Kok bisa jadi -1 ?
Karena nilai maksimal adalah -1, sedangkan jika nilainya adalah 32768 maka akan menjadi -32768. Mengertikan ? Bila belum mengerti saya beri rumus cepat merubah unsigned menjadi signed :
Rumusnya :
Nilai Signed = Nilai unsigned int - 65536
Nah setelah nilainya jadi -1, sekarang di printf dengan format %i. %i adalah format untuk signed integer. Jadi output pertama ya -1. Lalu di printf lagi dengan format %u. %u adalah format untuk unsigned integer. Jadi dari -1 harus dipaksa menjadi unsigned, yaitu 65535. maka munculah output 65535.

Contoh 2


#include <stdio.h>

int main()
{
    signed int N;
    N = 98304;
    printf("%i\n");
    printf("%u\n");
    //output : 
    //-32768
    //32768
}
Mengapa outputnya bisa -32768 dan 32768 ? Ya karena melebihi batas. Mari kita bahas sedikit demi sedikit. (Padahal kodenya pendek, tapi penjelasannya panjang hahahaha)

Pertama kita mendeklarasikan variabel bertipe signed int dengan nilai 98304. Ingat di dalam C dan C++ bila ada nilai yang melebihi batas seperti diatas, maka akan otomatis dikurangi dengan total jangkauan hingga nilai tersebut masuk ke dalam jangkauannya. Ngerti ?
98304 dikurangi total jangkauan signed int (-32768 hingga 32767 jadi total jangkauan 65536)
98304 dikurangi  65536 = 32768
32768 sudah masuk dalam jangkauan signed int ? belum ! Maka kurangi lagi
32768 - 65536 = -32768 sudah masuk dalam jangkauan signed int ? Sudah ! Stop. Maka outputnya adalah -32768.
Begitu juga untuk unsigned int :
98304 dikurangi total jangkauan unsigned int yaitu 65536
98304 - 65536 = 32768. Sudah masuk jangkauan unsigned int ? Sudah ! Stop. Maka outputnya adalah 32768.

LONG INTEGER

Singkatnya, tipe data long integer sebenarnya hampir sama dengan tipe data integer. Hanya yang membedakan jangkauannya saja. Kalau tipe data long integer memiliki jangkauan antara -2147483648 hingga 2147483647 untuk signed long integer. Sedangkan untuk unsigned long integer memiliki jangkauan antara 0 hingga 4294967295.

Banyak sekali ya ? Tapi singkat saja, sebenarnya di dalam long integer juga ada 2 macam yaitu signed dan unsigned, untuk jangkauannya sudah dijelaskan diatas. Untuk nilai yang over atau melebihi batas, maka nilainya akan dikurangi dengan 4294967295 (total kemungkinan long integer) . Demikian juga halnya pada integer. Jika ada integer yang melebihi batas maka akan dikurangi dengan total kemungkinan integer hingga masuk kedalam jangkauan pada tipe data tersebut.

Kesimpulan

Jadi, dapat kita simpulkan bahwa walaupun kita mendeklarasikan signed atau unsigned pada dasarnya kombinasi dari bilangan binernya sama kok. Cuman yang membedakannya saat kita ingin mencetak dengan format %i (signed int) atau %u (unsigned int). Mudah kan ?
Sekian untuk penjelasan dari tipe data integer. Semoga dapat dimengerti, dipahami, dan dipraktekan. Terimakasih

INGIN LIVE CHAT ? INGIN TANYA JAWAB GRATIS ? YUK LANGSUNG SAJA CHAT DENGAN KAMI DI FANSPAGE KOMPUTER67

    Blogger Comment
    Facebook Comment

0 komentar :

Post a Comment