Type System
Tipe 'int'
Kita sudah menggunakan int sebelumnya, tetapi kali ini, kita akan membahasnya sedikit lebih detail. int menggunakan 4 byte (32 bit) memori untuk menyimpan bilangan bulat. Di matematika, kita dapat mengisi variabel bilangan bulat dengan nilai sesuka kita, tidak ada batasnya. Akan tetapi pada komputer, kita harus menyimpannya dalam byte, sehingga int harus dibatasi. Tipe int hanya dapat menyimpan bilangan bulat kurang lebih dari -2 miliar hingga 2 miliar. Mungkin memang kelihatannya sangat banyak, tetapi tetap terbatas, jadi tetap diperhatikan batasnya.
Tipe 'byte', 'short', dan 'long'
Selain tipe int , ada juga tipe lain seperti int yang juga menyimpan bilangan bulat, tetapi dengan batas yang berbeda. Mereka adalah tipe byte, short dan long. Tipe byte adalah yang terkecil. Tipe ini hanya menggunakan satu byte saja dan dapat menyimpan nilai dari 0 sampai 255. Tipe short lebih besar dari byte , tetapi tetap lebih kecil dari int. Tipe ini menggunakan dua byte, dan dapat menyimpan nilai dari -32768 hingga 32768. Tipe long adalah yang terbesar, menggunakan 8 byte, tipe ini dapat menyimpan bilangan bulat dari -9 kuintiliun hingga 9 kuintiliun. Itu sungguh jangkauan yang sangat luas, dan sangat jarang sekali itu tidak cukup.
Tipe
Byte
Jangkauan
byte
1
0 sampai 255
short
2
-32768 sampai 32768
int
4
-2147483648 sampai 2147483648
long
8
-9223372036854775808 sampai 9223372036854775808
Jadi itu adalah 4 tipe ( byte , short , int , dan long ) yang menggunakan jumlah byte yang berbeda (1, 2, 4, 8 secara berurutan). Semakin besar mereka, semakin besar angka yang dapat mereka simpan. Kalian dapat membayangkannya seperti sebuah kotak yang ukurannya berbeda beda.
Berikut beberapa contoh untuk membuat variabel dengan tipe-tipe ini. Caranya persis seperti sebelumnya, ketika kita membuat variabel bertipe int :
byte contohByte = 50;
contohByte = 15;
short angkaKecil = 6000;
angkaKecil = -4500;
long contohAngkaYangSangatBesar = 512352135123435;
contohAngkaYangSangatBesar = 0;Tipe 'sbyte', 'ushort', 'uint', dan 'ulong'
Kita sudah membicarakan tentang empat tipe berbeda yang menyimpan bilangan bulat. Sekarang, saya akan mengenalkan beberapa tipe yang berhubungan dengan yang sudah kita diskusikan.
Tapi sebelumnya, kita harus memahami perbedaan antara tipe signed dan tipe unsigned. Jika suatu tipe itu signed, maka tipe tersebut dapat menambahkan tanda + atau – di depan nilainya. Dengan kata lain, nilai dari tipe signed dapat berupa positif maupun negatif. Jika kalian lihat kembali empat tipe sebelumnya, kalian akan tahu bahwa short, int dan long merupakan tipe signed. Kalian dapat menyimpan nilai positif ataupun negatif. Tetapi tipe byte di sisi lain, tidak memiliki tanda. (Biasnya diasumsikan bahwa, tidak ada tanda berarti positif.)
Untuk setiap tipe signed yang sudah kita lihat, kita memiliki versi alternatif di mana kita hanya menggeser jangkauannya untuk hanya menyertakan bilangan positif saja. Ini memungkinkan kita untuk mencapai batas yang dua kali lipat lebih tinggi, dengan mengorbankan penggunaan nilai negatif. Tipe ushort, uint dan ulong dapat melakukan ini. Tipe ushort menggunakan dua byte, sama seperti short , tetapi bukannya dari -32768 sampai 32768, tipe ushort memiliki jangkauan dari 0 sampai 65535. Hal yang sama juga berlaku pada tipe uint dan ulong.
Demikian pula, kita dapat mengambil tipe byte, yang merupakan unsigned, dan geser agar menyertakan angka negatif juga. Jadi bukannya dari 0 sampai 255, tetapi jangkauannya menjadi -128 sampai 127. Ini memberi kita tipe byte yang signed, yaitu sbyte.
Kita juga dapat membuat variabel dengan tipe data ini, seperti kita membuat variabel dengan tipe int :
ushort sebuahVariableUnsignedShort = 60100;Kita sekarang tahu delapan tipe, yang mana semua digunakan untuk menyimpan bilangan bulat. Tipe-tipe ini, dikelompokkan disebut tipe integral (atau biasanya juga tipe integer).
Tipe 'char'
Kita masih memiliki satu lagi tipe integral yang belum dibahas, yaitu char. Tipe ini digunakan untuk menyimpan satu karakter atau huruf saja, bukan angka.
Mungkin aneh menganggap karakter sebagai tipe integral, yang digunakan untuk menyimpan bilangan bulat. Tetapi dibalik layar, setiap karakter dapat di isi oleh angka, karena itulah tipe ini dapat disebut tipe integral. Akan tetapi, ketika kita menggunakan tipe char , komputer akan tahu dan menganggapnya sebagai huruf, bukannya angka.
Char ukurannya adalah dua byte, memberinya lebih dari 64000 nilai. Ini sudah cukup untuk menyimpan seluruh huruf di setiap bahasa.
Kalian dapat membuat variabel bertipe char , dengan cara yang mirip seperti yang sudah kita lakukan sebelumnya, akan tetapi kalian harus menaruh karakter kalian dalam tanda petik tunggal:
char hurufFavorit = 'f';
hurufFavorit = '$';Untuk menyimpulkan sampai di mana kita, kita telah mempelajari 9 tipe integral yang berbeda, yang termasuk empat tipe signed integer, empat tipe unsigned integer, dan satu karakter.
Tipe
Byte
Jangkauan
byte
1
0 sampai 255
short
2
-32768 sampai 32768
int
4
-2147483648 sampai 2147483648
long
8
-9223372036854775808 sampai 9223372036854775808
sbyte
1
-128 sampai 127
ushort
2
0 sampai 65535
uint
4
0 sampai 4294967295
ulong
8
0 sampai 18446744073709551615
char
2
U+0000 sampai U+ffff (semua karakter unicode)
Catatan: kalian tidak perlu mengingat semua isi tabel di atas (hampir tidak mungkin, dan kurang bermanfaat jika hanya mengingat).
Semua tipe yang sudah kita pelajari memiliki jangkauan yang beragam, yang berarti mereka mungkin cocok untuk digunakan untuk beragam jenis informasi pula. Jadi bagaimana kalian dapat menentukan tipe yang akan kalian gunakan? Berikut beberapa hal yang dapat kalian pertimbangkan saat memilih tipe untuk suatu variabel:
Apakah kalian butuh nilai signed? (Apakah kalian perlu negatif?) Jika ya, kalian tidak perlu memikirkan semua tipe unsigned.
Seberapa besar nilainya? Contohnya, jika kalian ingin variabelnya untuk menyimpan total populasi dari suatu negara, kalian akan tahu kalian harus memilih tipe yang lebih besar dari
byteataushort.Ketika bingung, programmer biasanya akan langsung memilih tipe
int(tidak terlalu kecil, tidak terlalu besar pula). Akibatnyaintbiasanya terlalu sering digunakan, tetapi tetap merupakan pilihan yang bagus untuk permulaan.
Tipe 'float', 'double', dan 'decimal'
Mungkin kalian sekarang sudah bosan dengan tipe integral, jadi mari kita lanjutkan ke beberapa tipe untuk menyimpan floating point number("bilangan riil" jika di matematika). Tipe floating point tidak hanya bisa menyimpan nilai integer, tetapi juga angka dengan bagian desimalnya. Contohnya, angka 1.2 bukanlah integer dan tidak dapat di simpan dengan tipe integral apa pun yang sudah kita ketahui. Tetapi angka tersebut dapat di simpan dalam salah satu dari tiga tipe data floating-point yang ada di C#.
Kita akan mulai dengan tipe float. float menggunakan empat byte untuk menyimpan angka floating point. Dengan tipe float , kalian akan mendapat tujuh digit tingkat presisi. Nilai tertinggi yang dapat disimpan pada tipe ini cukup besar: sekitar . Ini lebih tinggi dari semua tipe integral. Tetapi bahkan tipe floating point ini juga memiliki batas. Karena tipe float hanya memiliki tingkat presisi tujuh digit, komputer tidak dapat membedakan 1000000000 dan 1000000001 (Tetapi masih dapat membedakan 1000 dan 1001). Tergantung situasi tertentu, kalian mungkin tidak masalah dengan tingkat presisi ini, dan di situasi lain, mungkin juga tingkat presisi penting. Tetapi perlu diingat bahwa tipe integral tidak memiliki masalah ini, jika dalam jangkauan, tipe integral selalu tepat/akurat.
Ada juga tipe double , menggunakan 8 byte, dua kali lipat dari float (makanya namanya "double"). Tipe ini memiliki tingkat presisi 15 atau 16 digit, dan dapat menyimpan hingga sebesar /
Membuat variabel dengan kedua tipe ini juga cukup mudah:
double pi = 3.14159265358979323846;
float anotherPi = 3.1415926f;Coba perhatikan lebih dekat kedua bilangan tersebut. Tentu saja double memiliki lebih banyak digit, masih dapat ditangani double. Tapi apa kalian lihat di akhir bilangan yang kita gunakan untuk float?
Ada huruf 'f' di situ.
Di kode, ketika kita menuliskan sebuah nilai secara langsung, nilai tersebut disebut dengan literal. Ketika kita menuliskan, misal a = 3 , 3 adalah sebuah integer literal. Di sini, kita menuliskan 3.1415926, ini adalah floating-point literal. Ketika kita menggunakan floating-point literal seperti ini, komputer akan mengasumsikan bilangan tersebut adalah tipe double. Tapi karena kita tahu bahwa tipe double merupakan "kotak" yang sangat besar yang menggunakan 8 byte, kita tidak dapat seenak kita memasukkannya ke variabel yang menggunakan tipe float. Karena terlalu besar. Menambahkan huruf 'f' di akhir floating-point literal akan memberi tahu compiler C# untuk memperlakukannya sebagai sebuah literal dari tipe float. Perlu di ingat pula bahwa kita dapat menggunakan huruf kecil 'f' ataupun huruf kapital 'F' dan mendapat hasil yang sama.
Kedua tipe ini, float dan double , mengikuti standar yang sudah ada selama beberapa dekade (lihat IEEE 754 floating point arithmetic standard).
Tetapi C# menyediakan pula tipe lainnya, yang tidak memenuhi standar yang "kuno". Disebut tipe decimal. Tipe ini di buat dengan tujuan untuk menggunakannya pada perhitungan yang melibatkan uang. Karena tipe ini tidak mempunyai dukungan hardware-level yang float dan double punya, melakukan perhitungan matematika menggunakan decimal akan lebih lambat, tetapi juga tidak memiliki masalah dengan kehilangan akurasi yang dihadapi float dan double. Tipe ini memiliki jangkauan sampai dengan , tetapi memiliki 28 atau 29 significant digit. Pada dasarnya memiliki jangkauan lebih rendah, tetapi dengan tingkat presisi yang lebih tinggi.
Kalian dapat membuat variabel menggunakan tipe decimal dengan cara seperti kalian membuat variabel dengan tipe yang lain. Seperti pada tipe float , kalian juga harus menulis huruf 'm' atau 'M' di akhir semua literal yang kalian inginkan untuk diperlakukan sebagai tipe decimal :
decimal number = 1.495m;
number = 1.44m;Tipe
Byte
Range
Digit Presisi
float
4
hingga
7
double
8
hingga
15-16
decimal
16
hingga
28-29
Tipe 'bool'
Tipe bool digunakan untuk menyimpan sebuah nilai Boolean atau "kebenaran". Mereka hanya bisa true atau false. Nilai boolean dinamakan berdasarkan logika boolean, yang mana dinamakan pula dari penemunya, George Boole. Jika di lihat sekilas, tipe ini mungkin tidak terlihat begitu berguna, tetapi dalam beberapa bab, kita akan membicarakan tentang pengambilan keputusan, yang mana hal tipe ini akan sangat penting.
Kalian dapat membuat dan mengisi ke variabel dengan tipe data bool seperti ini:
bool berhasil = true;
berhasil = false;Tipe 'string'
Tipe terakhir yang akan kita bahas adalah tipe string. Dibalik layar, tipe ini sangat berbeda dengan tipe lainnya, akan tetapi kita tidak akan membahas itu dulu.
Tipe string digunakan untuk menyimpan sebuah teks berapa pun panjangnya. Nama "string" diambil dari bidang bahasa formal, di mana string di definisikan sebagai sebuah rangkaian simbol yang di pilih dari suatu kumpulan simbol. Dalam kasus kita, kumpulan simbol tersebut adalah semua karakter Unicode, yang telah kita diskusikan dalam tipe char.
Untuk membuat dan mengisikan nilai ke sebuah variabel string , kalian harus mengikuti pola seperti tipe-tipe yang lain yang sudah kita lihat. String literal di tandai dengan tanda petik ganda: "
string message = "Hello World!";
message = "Hello there!";Ketika kalian melihat ini, mungkin kalian akan teringat dengan program Hello World yang sudah kita buat, karena kita sudah pernah melihat hal yang sangat mirip. Jadi ternyata, ketika kita menggunakan Console.WriteLine("HelloWorld"); kita sudah menggunakan string di situ juga!
Latihan.
Coba buatlah aplikasi console baru, lalu pada method Main , buatlah setiap variabel untuk setiap tipe yang sudah kalian pelajari di sini. Berarti ada 13 variabel yang berbeda. Lalu isi setiap variabel tersebut dengan nilai sesuai tipenya, dan terakhir, cetak semua nilai variabel tersebut dalam konsol seperti yang sudah kalian lakukan sebelumnya.
Last updated