Integer (ilmu komputer)

Dalam ilmu komputer, istilah "***Integer***" digunakan untuk merujuk kepada tipe data apa pun yang merepresentasikan bilangan bulat, atau beberapa bagian dari bilangan bulat. Disebut juga sebagai ***Integral Data Type***.
## Nilai dan Representasinya
Nilai sebuah data dari sebuah tipe data *integer* adalah nilai bilangan bulat seperti dalam matematika. Representasi data ini merupakan cara bagaimana nilainya disimpan di dalam memori komputer. Tipe data integer terbagi menjadi dua buah kategori, baik itu bertanda (*signed*) ataupun tidak bertanda (*unsigned*). Bilangan bulat bertanda mampu merepresentasikan nilai bilangan bulat negatif, sementara bilangan bulat tak bertanda hanya mampu merepresentasikan bilangan bulat positif.

Representasi integer positif di dalam komputer sebenarnya adalah untaian bit, dengan menggunakan sistem bilangan biner. Urutan dari bit-bit tersebut pun bervariasi, bisa berupa Little Endian ataupun Big Endian. Selain ukuran, lebar atau ketelitian (presisi) bilangan bulat juga bervariasi, tergantung jumlah bit yang direpresentasikannya. Bilangan bulat yang memiliki *n* bit dapat mengodekan 2n. Jika tipe data integer tersebut adalah bilangan bulat tak bertanda, maka jangkauannya adalah dari 0 hingga 2n-1.

## Jenis-jenis nama Integer dalam bahasa pemrograman
### Bahasa C

Tipe data integer standar yang digunakan dalam bahasa C adalah tipe data **int**. Ukuran dan jangkauan data dari tipe data `int` sering kali tergantung dari kompilator dan komputer yang digunakan, tetapi biasanya setara dengan `short int` atau `long int`.

Selain int, ada beberapa tipe data lain yang dapat menampung bilangan bulat, di antaranya:
* char. Sebenarnya tipe data ini digunakan untuk menyimpan karakter dalam kode ASCII, tetapi dapat juga digunakan untuk menyimpan integer dari 0 sampai 255
* `short int`, ukuran 2 byte, jangkauan -32,768 sampai 32,767
* `int`, ukuran 4 byte, jangkauan -2,147,483,648 hingga 2,147,483,647

Tipe-tipe data di atas dapat menyimpan integer negatif dan positif. Untuk menyimpan bilangan positif dan nol saja, dapat digunakan kata kunci **<code>unsigned</code>** sebelum tipe data. Sebagai contoh:
* `unsigned short int`, ukuran 2 byte, jangkauan 0 sampai 65,535
* `unsigned int`, ukuran 4 byte, jangkauan 0 sampai 4,294,967,295

### Bahasa Pascal
Dalam bahasa Pascal, integer mampu menampung 16-bit data. Walaupun memiliki ukuran 2 byte (16 bit), tetapi karena integer adalah tipe data *signed* maka hanya mampu di-*assign* nilainya antara -215 hingga 215-1, yaitu -32768 sampai 32767. Ini disebabkan karena 1 bit digunakan sebagai penanda positif/negatif. Meskipun memiliki istilah yang sama, tetapi tipe data integer pada bahasa pemrograman Visual Basic.NET dan Borland Delphi memiliki ukuran 4 byte atau 32 bit *signed* sehingga dapat di-*assign* nilainya antara -2,147,483,648 hingga 2,147,483,647.

Selain integer, bahasa Pascal juga memiliki beberapa tipe data lain:

* byte, ukuran 1 byte, jangkauan dari 0 sampai 255
* smallint, ukuran 1 byte, jangkauan dari -128 sampai 127
* word, ukuran 2 byte, jangkauan dari 0 sampai 65,535

Pada kompilator Pascal yang lebih baru, juga dikenal tipe-tipe data yang lebih besar seperti:

* longint, ukuran 4 byte, jangkauan dari -2,147,483,648 sampai 2,147,483,647
* cardinal, ukuran 4 byte, jangkauan dari 0 sampai 4,294,967,295

### Bahasa pemrograman Borland Delphi
* Borland Delphi: smallint
uses crt;
var
begin

write('coba');
readln()
End.

### Bahasa pemrograman Visual Basic .NET
* Visual Basic.NET: `short`

### Bahasa C#

Dalam bahasa pemrograman C#, terdapat beberapa variasi dari tipe data integer, yakni:
* `byte`: bilangan bulat tak bertanda (*unsigned integer*) yang berukuran 8-bit. Ekuivalen dengan tipe data `System.Byte` dalam Microsoft .NET Framework.
* `sbyte`: bilangan bulat bertanda (*signed integer*) yang berukuran 8-bit. Ekuivalen dengan tipe data `System.SByte` dalam Microsoft .NET Framework.
* `short`: bilangan bulat bertanda yang berukuran 16-bit. Ekuivalen dengan tipe data `System.Int16` dalam Microsoft .NET Framework.
* `ushort`: bilangan bulat tak bertanda yang berukuran 16-bit. Ekuivalen dengan tipe data `System.UInt16` dalam Microsoft .NET Framework.
* `int`: bilangan bulat bertanda yang berukuran 32-bit. Ekuivalen dengan tipe data `System.Int32` dalam Microsoft .NET Framework.
* `uint`: bilangan bulat tak bertanda yang berukuran 32-bit. Ekuivalen dengan tipe data `System.UInt32` dalam Microsoft .NET Framework.
* `long`: bilangan bulat bertanda yang berukuran 64-bit. Ekuivalen dengan tipe data `System.Int64` dalam Microsoft .NET Framework.
* `ulong`: bilangan bulat tak bertanda yang berukuran 64-bit. Ekuivalen dengan tipe data `System.UInt64` dalam Microsoft .NET Framework.

## Referensi