Jenis Tipe Data Bahasa C
Jenis Data
Peranan data dalam sebuah program sangat besar sekali. Jika pemberian dan penggunaan data tidak dilakukan secara benar. GIGO (garbage in, garbage out), yaitu apabila yang masuk adalah “sampah”, yang keluar akan berupa “sampah” pula.
Dalam memproses data, program harus pula mengetahui jenis-jenis data tertentu, seperti: bilangan, karakter, atau untaian karakter (string). Intruksi-intruksi yang disusun haruslah menggunakan simbol-simbol dan kata-kata tertentu sesuai dengan aturan sintaksis yang berlaku.
Kata kunci merupakan komponen pembentuk pernyataan (statement) yang memiliki arti khusus bagi sebuah bahasa pemrograman dan digunakan untuk maksud-maksud yang telah tertentu pula. Penggunaannya harus sesuai dengan yang dimaksudkan, tidak boleh diubah. Sebagai contoh, kata kuncibreak hanya dapat digunakan untuk keluar dari struktur pengulangan dan pernyataan switch.
Pengenal adalah kata yang digunakan oleh pemrogram untuk maksud-maksud tertentu yang diperlukan dalam menyusun program. Sebuah pengenal terdiri dari kombinasi huruf, angka, dan garis bawah yng karakter petamanya harus huruf atau garis bawah. Pengenal-pengenal yang digunakan dalam sebuah program dapat mengacu ke nama variabel, kosntanta, bernama, nama fungsi, atau nama array.
Konstanta adalah data objek yang memiliki nilai tertentu yang tidak dapat diubah. Sebuah konstanta buatan pemrogram (programmer-defined constant) yang harus memiliki nama, atau dapat pula berupa konstanta literal (literal constant) yang hanya merupakan representasi tertulis dari nilainya. Konstanta terbagi atas beberapa jenis, yaitu :
1. Konstanta karakter. Adalah sebuah karakter yang diapit oelh tanda petik tunggal.
2. Konstanta integer. Terdiri dari untaian bilangan bulat. Konstanta integer biasanya digunakan dalam C dibagi menjadi tiga jenis: desimal, oktal, dan heksadesimal.
3. Konstanta floating-point. Adalah bilangan-bilangan yang direpresentasikan dengan sebuah tanda positif atau negatif, diikuti oleh bagian integer, titik desimal, bagian fraksional, dan bagian eksponensial.
4. Konstanta string. Adalah untaian karakter yang diapit oleh tanda kutip ganda. Karakter ini dapat berupa huruf, angka, karakter khusus, dan atau spasi.
Variabel adalah sebuah objek data yang didefinisikan dan dinamai oelh pemrogram secara eksplisit. Sebuah variabel yang menempati satu lokasi memori yang disisihkan untuk satu jenis data tertentu dan diberi nama untuk memudahkan pengacuannya.
Auto
|
Double
|
Int
|
struct
|
Break
|
Else
|
Long
|
switch
|
Case
|
Enum
|
Register
|
typedef
|
Char
|
Extern
|
Return
|
union
|
Const
|
Float
|
Short
|
unsigned
|
Continue
|
For
|
Signed
|
void
|
Default
|
Goto
|
Sizeof
|
volatile
|
Do
|
If
|
Static
|
while
|
Tabel 2.4.1 kata kunci program C
Jenis data char
Jenis data karakter digunakan untuk menyajikan karakter. Masing-masing karakter menempati memori sebesar 1 byte. Satu byte terdiri dari 8 bit, sehingga dapat menampung 28 = 256 nilai yang berbeda. Jumlah ini sesuai dengan jumlah karakter ASCII yang digunakan pada mikrokomputer, dan di beri nomor 0 hingga 255.
Kelompok char dibagi dalam dua kelompok: signed char dan unsignedchar. Pendeklarasian jenis data char dan unsigned char dapat dilihat pada contoh berikut ini:
char ch;
unsigned char huruf1, huruf2;
unsigned char tblKar[80];
Jenis data int
Jenis data int digunakan untuk menyajikan nilai integer. Jenis data integertersimpan di dalam memori sebesar 2 byte (16 bit). Pada komputer 16-bit, jenis data integer menempati satu word memori, sehingga besarnya bilangan yang dapat ditampung oleh int adalah 216 = 65.536.
Kelompok integer terdiri atas tiga jenis: int, short, dan long, masing-masing di bagi dalam dua kelompok: signed dan unsigned. Pendeklarasian variabel-variabel yang termasuk ke dalam jenis data int dapat dilihat pada contoh berikut ini:
int i, j, k; /* i, j, dan k berjenis signed integer */
short a, b, c; /* a, b, dan c berjenis short integer */
long fibonacci; /* fibonacci berjenis integer */
unsigned umur; /* umur berjenis integer tak bertanda */
unsigned short usia; /* usia berjenis short tak bertanda */
unsigned long fibo; /* fibo berjenis long int tak bertanda */
Jenis data float
Variabel berjenis float termasuk dalam kelompok floating-point yang menampung bilangan-bilangan riil. Bilangan riil adalah bilangan yang memiliki bagian desimal, titik, bagian fraksional dan bagian eksponensial.
Jenis data float menempati 4 byte memori, karena itu hanya dapat menyajikan bilangan dengan tingkat ketelitian yang relatif kecil (single precision), yaitu hingga 6 tempat desimal.
Pendeklarasian variabel berjenis float mempunyai format yang sama seperti pada jenis integer. Perhatikan contoh di bawah ini:
float volume_bola, laba1, laba2;
Jenis data double
Variabel berjenis double termasuk dalam kelompok floating-point, tetapi memiliki angka ketelitian ganda (double precision). Tingkat ketelitiannya hingga 15 angka di belakang koma. Di samping itu, terdapat pula variabel berjenis long double yang memiliki tingkat ketelitian hingga 18 angka di belakang koma. Kedua jenis double ini masing-masing menempati 8 dan 10byte lokasi memori.
Pendeklarasian jenis data double dapat dilakukan seperti pada contoh berikut ini:
double luas;
long double sinus_x;
Jenis data enum
Penentu jenis data enum digunakan untuk membentuk jenis data enumerasi(daftar). Disebut demikian karena jenis data ini sebenarnya hanya merupakan daftar konstanta integer bernama yang terkumpul dalam sebuah himpunan berhingga. Masing-masing elemen himpunan ini disebut enumerator. Bentuk umum deklarasi jenis data enum adalah:
enum bln {jan,feb,mar,apr,mei,jun,jul,agt,sep,okt,nop,des};
enum bln bln_sekarang, bln_lalu;
Jenis data typedef
Bentuk pendefinisian jenis data buatan pemrogram yang kedua adalah menggunakan kata kunci typedef. Kata kunci ini pada prinsipnya hanya digunakan untuk memberikan nama baru pada jenis data yang telah ada sebelumnya. Hal ini hendaklah diperhatikan benar, karena dalam sebuah bahasa pemrograman kita tidak dapat menciptakan jenis data baru, selain daripada jenis data yang telah tersedia.
Bentuk umum deklarasi jenis data dengan menggunakan jenis datatypedef adalah:
typedef jenis_data pengenal;
typedef float bilangan;
Konversi Jenis Data
Pernyataan dan ekspresi biasanya hanya menggunakan variabel-variabel dan konstanta-konstanta sejenis. Akan tetapi hal ini dapat diubah dengan melakukan campuran dari beberapa jenis variabel. Pencampuran jenis data ini jika dilakukan dengan sengaja dapat menguntungkan, tetapi jika dilakukan dengan tidak sengaja dapat menimbulkan hal-hal yang tidak menyenangkan.
Kesalahan-kesalahan akibat pengkonversian jenis data didalam sebuah program, antara lain terdiri dari:
1. Kesalahan pembulatan (round-off error)
2. Kesalahan pemotongan (truncation error)
3. Kesalahan propagasi (propagation error)
Kajian lengkap tentang kesalahan-kesalahan ini dapat ditemukan pada buku-buku mengenai analisa numerik. Dalam melakukan pengkonversian data, C mengikuti ketentuan-ketentuan sebagai berikut:
1. Jenis char dan short baik bertanda maupun tidak, secara otomatis akan dikonversi menjadi int atau jika perlu menjdai unsigned int.
2. Jika short dan int memiliki ukuran yang sama, maka unsigned short lebih besar daripada int, dalam hal ini unsigned short dikonversi menjadi unsigned int.
3. Jenis float dikonversi ke jenis yang lebih besar, yaitu double, konversi ini disebut juga promosi (promotion).
4. Dalam operasi yang melibatkan dua jenis data, kedua jenis data akan dikonversi ke ranking yang lebih besar.
5. Urutan ranking data dari tinggi ke rendah adalah: long double, double, float, unsigned long, long, unsigned int, dan int. jenis short dan int tidak masuk dalam urutan karena kedua jenis ini kemungkinan sudah terkonversi menjadi int atau unsigned int.
6. Dalam pernyataan penugasan, hasil perhitungan terakhir dikonversike jenis variabel yang diberi nilai. Proses ini bisa mengakibatkan promosi, atau sebaliknya demosi (demotion), yaitu sebuah nilai dikonversi ke jenis yang memiliki nilai lebih rendah.
7. Jika dikirim sebagai argument fungsi, char dan short di konversi ke int, danfloat dikonversi ke double.
0 komentar