Meskipun banyak tipe data pada C#, tipe-tipe data yang paling sering digunakan adalah int, double, string, bool dan object. Masing-masing memiliki kegunaannya sendiri:
- int, digunakan untuk menyatakan suatu bilangan bulat, positif maupun negatif, sebagai contoh jumlah murid dalam satu kelas.
- double, digunakan ketika kita perlu menyatakan suatu bilangan pecahan, misalkan nilai, harga atau berat. Akan tetapi, double adalah data dengan ketelitian 15-16 digit. Sehingga terkadang tipe data float dengan ketelitian 7 digit lebih disukai untuk contoh contoh tadi, dengan alasan menghemat memori.
- string, digunakan ketika menyatakan sekumpulan karakter, baik itu nama, kalimat, password ataupun kode. String sesungguhnya merupakan suatu array dari char.
- bool, bernilai true atau false. Paling sering digunakan untuk menyatakan suatu kondisi, misalnya IsEnabled, IsVisible, SedangHujan, SedangLapar, dan lain lain.
- object, adalah class dasar dari semua tipe data dalam C#. Digunakan untuk menyatakan tipe data yang tidak pasti.
Tipe-tipe data lainnya adalah:
- Mirip dengan int: sbyte, short, long, untuk tipe bertanda, byte, ushort, uint, ulong untuk tipe yang tak bertanda
- Mirip dengan double: float dan decimal
- char, untuk menyimpan satu karakter
Konversi tipe data antar angka pada C#
Terkadang kita dapat langsung menugaskan nilai antar tipe data yang
berbeda. Misalnya jika kita menubaskan suatu nilai int ke variabel long,
tidak ada perintah khusus yang dibutuhkan. Jika kita menugaskan tipe
data yang lebih kecil ke tipe data yang lebih besar, C# akan secara
implisit mengkonversi nilai tersebut. Akan tetapi jika tipe data yang
lebih besar ditugaskan ke tipe data yang lebih kecil, diperlukan
konversi tipe data. Sebagai contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| int anInt = 10; long aLong = 2000000000; long luarBatas = 3000000000; //3 milyar, melebihi batas int anInt = ( int )aLong; Console.WriteLine(anInt); //Akan tampil 2000000000 anInt = ( int )overLimit; Console.WriteLine(anInt); //Akan tampil -1294967296 Console.ReadKey(); |
Penting diketahui bahwa jika suatu tipe data yang lebih besar dikonversi
ke tipe data yang lebih kecil, dapat terjadi kehilangan data. Hal-hal
ini juga berlaku ketika mengkonversi antara tipe data bilangan bulat
dengan tipe data floating point. Selalu ingat bahwa
berkurangnya ketelitian dapat terjadi.
Konversi tipe data string pada C#
Tipe yang paling banyak digunakan untuk input, output dan penyimpanan
sebetulnya adalah string. Untuk mengkonversi tipe data apapun ke string
sesungguhnya cukup sederhana karena setiap tipe data di C# memiliki
metode ToString(). Sebagai contoh:
1
2
3
4
5
6
7
8
9
| bool AdaMatahari = true ; int angka = 15; double pecahan = 70.88; Console.WriteLine(AdaMatahari.ToString()); //True Console.WriteLine(angka.ToString()); //15 Console.WriteLine(pecahan.ToString()); //70.88 Console.ReadKey(); |
Di sisi lain, agak sulit mengkonversi dari string ke tipe lain. Semua
tipe data numerik memiliki metoda Parse dan TryParse. Kita menggunakan
ini untuk mengkonversi string ke tipe data numerik. Kita menggunakan
Parse ketika kita SANGAT yakin mengenai string yang bersangkutan, ketika
kita tidak yakin, kita gunakan TryParse. Sebagai contoh:
1
2
3
4
5
6
7
8
9
10
11
12
13
| string strBool = Console.ReadLine(); bool aBool = Boolean.Parse(strBool); Console.WriteLine(aBool); string strInt = Console.ReadLine(); Console.WriteLine(Int32.Parse(strInt)); string strDouble = Console.ReadLine(); double aDouble; bool BisaParse = double .TryParse(strDouble, out aDouble); if (BisaParse) Console.WriteLine(aDouble); else Console.WriteLine( "Tolong input suatu angka" ); Console.ReadKey(); |
Coba masukkan "True" atau "FaLsE" pada prompt pertama, dan input yang
valid pada prompt kedua dan ketiga. Program akan mengeluarkan kembali
input yang diterima. Kemudian coba masukkan string yang bukan boolean ke
dalam prompt pertama, akan terjadi runtime error. Dan terakhir, coba
input string yang bukan angka pada prompt ketiga, program akan dengan
rapi menampilkan "Tolong input suatu angka". Perlu diperhatikan bahwa
runtime error pada saat debugging berarti Critical Error pada software
yang sudah jadi. Hal ini harus dihindari semampunya.
Literal pada C#
Istilah literal atau literal constant merujuk pada suatu nilai pada
program yang tidak dapat diubah. Kita menggunakan literal untuk
menyatakan nilai-nilai. Literal-literal pada C# dijelaskan dalam tabel
di berikut:
Tipe data | Literal | Contoh |
---|---|---|
bool | true atau false | true |
int | Bilangan bulat | 0, -200, 87329 |
int | Awalan 0x untuk menyatakan bilangan heksadesimal | 0xF, 0xaeaeae |
double | Bilangan pecahan dengan titik untuk menyatakan koma | 72.59034 |
double | e untuk menyatakan pangkat sepuluh | 6.02e23, 1.602e-19 |
string | Karakter-karakter yang diapit oleh petik dua | "6f8c11# ^_^ <3" |
char | Satu karakter yang diapit oleh petik satu | 'K' |
Untuk tipe data string, terdapat karakter karakter yang tidak dapat
diketik langsung ke dalam petik dua. Untuk mewakili karakter-karakter
tersebut, digunakan escape sequences. Escape sequence yang umum
digunakan antara lain:
Escape Sequence | Karakter yang diwakili |
---|---|
\' | Single quote |
\" | Double quote |
\\ | Backslash |
\0 | Null, not the C# null value |
\a | Bell |
\b | Backspace |
\f | Form feed |
\n | Newline |
\r | Carriage Return |
\t | Horizontal Tab |
\v | Vertical Tab |
Sebagai contoh apabila kita ingin menampung
mysql < "path\ke\file\sqldump"
ke dalam suatu string:string command = "mysql < \"path\\ke\\file\\sqldump\"";
Batas nilai tipe-tipe data numerik pada C#
Bagian ini tidak terlalu penting, jika Anda lebih menghargai waktu
dibanding pengetahuan, lewati bagian ini. Salah satu alasan untuk
menggunakan tipe data lainnya adalah karena batasan nilai. Batasan nilai
pada tiap tipe data di C# dipaparkan pada tabel berikut:
Tipe data | Penjelasan | Batas nilai |
---|---|---|
sbyte | Bilangan bulat 8 bit bertanda | −128 sampai 127 |
short | Bilangan bulat 16 bit bertanda | −32,768 sampai 32,767 |
int | Bilangan bulat 32 bit bertanda | −2,147,483,648 sampai 2,147,483,647 |
long | Bilangan bulat 64 bit bertanda | −9,223,372,036,854,775,808 sampai 9,223,372,036,854,775,807 |
byte | Bilangan bulat 8 bit tak bertanda | 0 sampai 255 |
ushort | Bilangan bulat 16 bit tak bertanda | 0 sampai 65,535 |
uint | Bilangan bulat 32 bit tak bertanda | 0 sampai 4,294,967,295 |
ulong | Bilangan bulat 64 bit tak bertanda | 0 sampai 18,446,744,073,709,551,615 |
float | Floating point berketelitian 7 digit | ±1.5e−45 sampai ±3.4e38 |
double | Floating point berketelitian 15-16 digit | ±5.0e−324 sampai ±1.7e308 |
decimal | Bilangan dengan 28-29 angka penting | (-7.9 x 1028 sampai 7.9 x 1028) / (100 to 28) |
Bilangan bulat bertanda sesungguhnya menggunakan 1 bit dari ukuran data
mereka untuk menyatakan tanda (negatif atau positif). Itulah kenapa
batas nilai positif dari tipe tak bertanda dua kali lebih besar dari
tipe yang bertanda dengan ukuran data yang sama. Akan tetapi bilangan
bulat bertanda sudah jarang digunakan kecuali ketika berurusan dengan
antarmuka hardware, pengolahan citra, atau pemrograman tingkat rendah
lainnya. Dan juga, saya sarankan hindari menggunakan tipe data decimal
karena tipe data ini tidak lazim pada bahasa pemrograman yang lain.
0 comments:
Post a Comment