Minggu, 17 Juni 2012

Tipe Data Pada Bahasa C

TIPE DATA 
Konstanta, kompilator bisa menentukan tipenya 
Variabel, user harus mendeklarasikan tipenya.
Bahasa C menggunakan 7 keyword untuk menset tipe data, yaitu :
- integer : bilangan bulat (int, long, short, unsigned)

- huruf & karakter lain (char)
- bilangan dg titik desimal (float, double)
Tipe - tipe yang dihasilkan oleh keyword tersebut dibagi menjadi 2 kelompok berdasarkan cara mereka disimpan komputer :
5 keyword pertama menghasilkan tipe integer
2 keyword terakhir menghasilkan tipe floating-point.

TIPE INT, LONG, SHORT
§ Ketiganya adalah integer bertanda : yakni bisa bil. bulat negatif, nol atau positif
§ Jika user tidak ingin detail gunakan tipe int.
§ Satu bit dalam integer bertanda digunakan untuk indikasi tanda, sedangkan pada integer tak bertanda (unsigned integer); hanya diperbolehkan bil.nol dan positif. range dari integer bertanda -32768 s/d 32768; sedangkan integer tak bertanda 0 s/d 65535
§ Tipe integer berukuran 1 word, sedangkan tipe short tidak lebih panjang dari integer & tipe long tdk lbh pendek.Untuk IBM PC, TURBO C, ukuran int short

TIPE FLOAT dan DOUBLE
biasanya menggunakan 32 bit untuk , menyimpannya.
8 bit untuk nilai dan tanda eksponen
24 bit untuk bagian non eksponen
menghasilkan presisi 6 atau 7 digit desimal dan range ± (10-37 s/d 10+38)
double digunakan utk memperoleh presisi ganda, biasanya digunakan 2x32 bit untuk penyimpanan .
double ekuivalen dengan long float

7 Tipe Data Dasar Di BahasaC 
 
1. INTEGER
integer adalah bilangan bulat tanpa bagian fraksional dan titik desimal
integer disimpan sebagai bilangan biner
Contoh :
bilangan 7 adalah 111 dalam sistem biner
0 0 0 0 0 1 1 1

KONSTAN INTEGER
Bilangan tanpa titik desimal dan eksponen dikenali oleh kompilator sbg integer
Contoh : 22 dan -273 adalah konstan integer
22.0 bukan konstan integer
22E3 bukan konstan integer
Bila user ingin mengidentifikasikan konstan sebagai tipe long, tambahkan huruf L atau l dibelakang bilangan tersebut
Contoh : 212 l
Bila user ingin suatu konstan diinterpretasikan sebagai oktal,tambahkan digit 0 didepan
Contoh : 020 ekivalen dengan 16 (desimal)
20 ekivalen dengan 20
Jika yang diinginkan bilangan hexadesimal, tambahkan 0x atau 0x di depan
Contoh : 0x20 ekivalen dengan 32

INISIALISASI VARIABEL INTEGER
Contoh : earn = 1024;
stops = -3;
johns = 12345;
dalam statement deklarasi :
int hogs = 23;
int cows = 32, goats = 14;
int dogs, cats = 92;

MENDEKLARASIKAN TIPE INTEGER
int earn;
short stops; atau short int stops;
long johns ; atau long int johns ;
int hogs, cows, goats;
 
2. SHORT
Dalam TURBO C variabel short dan variabel integer tidak dibedakan

3. LONG
Variabel ini digunakkan untuk menaikkan kapasitas dari variabel ybs
 
4. TIPE UNSIGNED
Variabel ini digunakan jika ingin bekerja dengan data yang bernilai positif saja
Contoh : Unsigned int students;
Unsigned players;
Unsigned short ribs = 6;
 
5. TIPE CHAR
- Mendefinisikan integer tak bertanda dalam range 0 - 255
- Disimpan dalam 1 byte
- Sebagian besar menggunakan kode ASCII
Contoh : huruf A dalam ASCII konversinya adalah 65 (desimal)
 
 KONSTAN CHARACTER
- diapit oleh single quote (' ')
contoh : jika variabel broiled mempunyai tipe char, maka bisa dituliskan
broiled = 'T';
tidak bisa dituliskan
broiled = T;
-  variabel atau konstan char hanya boleh mempunyai nilai sebuah karakter.
contoh : char bovine;
bovine = 'ox'; /*salah*/
- beberapa karakter tidak dicetak
contoh : 7 menyebabkan terminal berbunyi
Cara Penulisan :
1. Menggunakan kode ASCII nya didahului backslash.
contoh : beep = '\007';
2. Menggunakan "escape sequence";
\n newline
\t tab (default 8 karakter)
\b backspace
\r carriage return
\f formfeed
\\ backslash (\)
\' single quote (')
\" double quote (")
\xoa kode ASCII dalam hexadesimal (aa = angka ASCII ybs)
\aaa kode ASCII dalam oktal (aaa = angka ASCII ybs)
disebut escape sequence karena notasi '\' dianggap sebagai karakter "escape" (menghindar) dalam arti bahwa karakter yang terdapat setelah tanda '\' dianggap bukan merupakan teks biasa. Jadi karakter ini dilarikan dari pengertian teks biasa.
Contoh : char nerf;
nerf = '\n';
Contoh :
main()
{
clrscr();
printf ("\'DPR\' singkatan dari \"Dewan Perwakilan Rakyat\"");
}
OUTPUT:
'DPR' singkatan dari Dewan Perwakilan Rakyat

MENCETAK KODE ASCII
- agar output yang dihasilkan dapat lebih menarik dapat digunakan karakter grafis dari kode ASCII .
- Dalam TURBO C dan IBM untuk mencetak kode ASCII digunakan kode hexa.
- Kode oktal banyak digunakan di UNIX
Contoh :
main()
{
clrscr();
printf ("bel berbunyi, setelah teks ini \x07");
}
OUTPUT :
bel berbunyi, setelah teks ini

MENCETAK PADA BARIS BARU
Contoh :
1. main() main()
{ {
clrscr(); clrscr();
printf ("baris 1 \n"); printf ("baris 1");
printf ("baris 2"); printf ("\nbaris 2");
}
OUTPUT: OUTPUT:
baris 1 baris 1

baris 2 baris 2
2. Contoh :
main() main()
{ {
clrscr(); clrscr();
printf ("baris 1"); printf ("baris 1 \nbaris2");
printf ("\n baris 2"); }
}
OUTPUT: OUTPUT:
baris 1 baris 1

baris 2 baris 2

MENDEKLARASIKAN VARIABEL CHARACTER
char response;
char itable, latan;
char isma = 'S';

6. FLOATING POINT
Koresponden dengan bilangan nya (real number);
Contoh : 2.75, 3.16 E7, 7.00, 2e-8
3.16x107
Dalam penyimpanan berbeda dengan integer yaitu :
dipecah dalam bagian fraksional dan eksponen, dan disimpan terpisah menggunakan bilangan biner.
Perbedaan Praktikal dari integer dan Floating-Point
1. Integer adalah bilangan bulat sedangkan bilangan floating-point dapat merepresentasikan baik bilangan bulat maupun fraksional.
2. Bilangan floating-point dapat merepresentasikan nilai yang rangenya jauh lebih besar daripada integer.
3. Untuk operasi aritmetika, bil. floating-point bisa kehilangan presisinya.
4. Operasi thd bilangan floating-point lebih lambat drpd terhadap integer
Contoh penyimpanan bil.floating-point dalam versi desimal :
+ .314159 1

KONSTAN FLOATING POINT
Contoh : -1.56E+12 3.14159 4E16 100
2.87e-3 .2 .8E-5
Salah : 1.56 E+12

MENDEKLARASIKAN VARIABEL FLOATING-POINT
float noah,jonah;
double trouble;
float planck = 6.63e-34;
OPERATOR SIZE OF memberikan ukuran argumennya dalam satuan byte.
Karena sistem yang berbeda, mungkin mempunyai ukuran tipe yang berbeda untuk C environment, maka user perlu melihatnya:
#include <stdio.h>
main()
{
printf ("type int has a size of %d bytes.\n",size of (int));
printf ("type char has a size of %d bytes.\n",size of (char));
:
}
operator bulit-in C yang disebut sizeof memberikan ukuran dari argumennya dalam byte
OUTPUTNYA :
Type int has a size of 2 bytes
Type char has a size of 1 bytes
:
CATATAN :
Dlm menginisialisasikan variabel, cocokkan tipe konstan dgn tipe variabel.
int apples = 3; /*ok*/
int oranges = 3.00; /*wrong*/

VARIABEL 
Variabel adalah data yang nilainya selalu berubah-rubah selama proses ekse program berlangsung. Sebuah variabel yang sama dapat mengandung data yang berbeda pada saat yang berbeda .Variabel memegang peranan yang penting dalam pembuatan program.
NAMA VARIABEL
Batasan-batasan  yang perlu  diperhatikan dalam memilih nama variable adalah:
1. Nama variabel hanya boleh terdiri dari abjad(A-Z atau a-z),angka(0-9) dan tanda hubung(_).
Contoh : GAJI (benar)
               Bayar1 (benar)
2. Karakter pertama harus berupa huruf (A-Z) atau (a-z) atau tanda hubung(_) tidak boleh berupa angka.
contoh : nama1, kode2 (benar)
              _gaji_pokok (benar)
              1nama (salah)
3. Tidak boleh mengandung simbol khusus seperti (@,!,$,%,*,&,dll) kecuali tanda hubung  (_).
contoh : nama_mahasiswa (benar)
              kode-wilayah (salah)
              total& (salah)
4. Tidak boleh sama dengan kata kunci (reserved word)Turbo C
contoh : alamat,status (benar)
              auto, break, main, printf, float, char (salah)
5. Nama variabel boleh terdiri dari kata kunci (reserved word) yang digabung dengan kata lain .
contoh : char_pertama
               data_float
6. Huruf besar dan kecil dari nama variabel akan dibedakan oleh bahasa C
contoh : nama,Nama,NAMA adalah 3 variabel yang berbeda
7. Nama variabel tidak boleh menggunakan operator aritmetika  seperti(+, -, /, *, %)
contoh : jumlah+anak(salah)
              potongan%(salah)
8. Nama variabel tidak boleh mengandung spasi
contoh : gaji pokok
9.Gunakan 8 karakter, apabila lebih karakter ke 9 dan seterusnya akan diabaikan
Contoh :stmikdar dan stmikdarmajaya akan dianggap sama.

DEKLARASI VARIABEL
Variabel yang akan digunakan dalam program harus diperkenalkan (dideklarasikan) terlebih dahulu, sifat deklarasi variable adalah mutlak, tanpa adanya deklarasi variabel Turbo C tidak akan menerima variabel tersebut.
Deklarasi berarti memesan memori dan menentukan jenis data yang bisa disimpan di dalamnya. Deklarasi variabel meliputi tipe variabel seperti integer(int), floating point (float), double precision (double) dan character (char) dan nama variabel itu sendiri.
Bentuk pendeklarasian variabel :
 
tipe-variabel nama-variabel  ;
Contoh: int gaji ;
Beberapa variabel yang bertipe sama dapat dideklarasikan sekaligus dengan memberikan koma diantara nama-nama variable tersebut.
Contoh :
int a;
int b;
digabung penulisannya menjadi
int a,b;
Variabel dengan nama yang sama TIDAK BOLEH dideklarasikan ulang.
Contoh : int nilai;
float nilai;
Program ini akan memberikan pesan kesalahan redeclaration, yang berarti adanya deklarasi ulang atas variabel yang sama.

 INISIALISASI VARIABEL
 Inisialisasi variable adalah  memberikan nilai ke variabel yang telah dideklarasikan,  dinyatakan dengan tanda =.
 
variabel = nilai;
Contoh :  gaji = 100000;
Contoh Program :
main()
{
float harga,jumlah,hrg_tot; /*deklarasi*/
clrscr();
jumlah = 10; /*inisialisai*/
harga = 15.50;
hrg_tot = jumlah * harga;
printf ("harga total = %f",hrg_tot);
Penjelasan program
Variabel harga dan jumlah yang bertipe float lebih dulu akan diberi nilai sebesar 15.50 dan 10 sebelum digunakan untuk menghitung  hrg_tot yang juga bertipe float.
Inisialisasi variabel dapat dilakukan bersamaan dengan  deklarasi variable.
Contoh :
 float a;  -----------------àdeklarasi variabel
a=100;  -----------------àinisialisasi variable
float a=100; ----------àinisialisasi bersamaan dengan deklarasi

JENIS - JENIS VARIABEL
 
1.VARIABEL NUMERIK
Variabel numerik adalah variabel yang hanya dapat menampung data berupa angka, biasanya digunakan untuk proses aritmatika.
Terbagi :
1. Bilangan bulat / integer
bilangan ini mampu menampung bil bulat berkisar antara -32.768 s/d +32.767
2. Bilangan desimal berpresisi tunggal / floating point
bilangan ini mampu menampung data dari 10-38 s/d 1038, sedang dalam bentuk desimal dapat menampung hingga 6 desimal (6 angka di belakang koma)
contoh : nilai_maks = 2.3e-20
std_dev = 100.123456
3. Bilangan desimal berpresisi ganda / double precision
bila data numerik yang akan diolah melebihi kapasitas yang dimiliki oleh floating-point dan bila diperlukan tingkat ketelitian yang tinggi dapat digunakan double precision. Dalam bentuk bilangan berpangkat , double precision dapat mengolah angka dengan ketelitian antara 10-308 s/d 10308. Sedang dalam bentuk desimal mampu menampung hingga 15 digit
 
2.VARIABEL STRING
Variabel string adalah variabel yang menampung segala karakter yang termasuk karakter ASCII yaitu 0 - 255
1. Karakter (untuk karakter tunggal)
selain dapat digunakan untuk menampung sebuah karakter, variabel ini dapat pula dikonversikan dalam bentuk bilangan (ASCII code) . Bilangan hasil konversi data ini dinyatakan dengan bilangan bulat yg berkisar dari 128 s/d +127.
2. String (untuk rangkaian karakter)
merupakan rangkaian karakter yang diakhiri dengan karakter null ('\0')
 

JENIS

RANGE
int / sign int -32768 - 32767 (215 - 1)
unsign int 0 - 65535
short int / signed short int - 28 - 127
unsigned short int 0 - 255
long int / signed long int -2147483648 - 2147483648
unsigned long int 0 - 4294967296
char
karakter ASCII
unsigned char 0 - 255
signed char -128 - 127
Float
maksimum nilai 32 digit
Double
maksimum nilai 64 digit
 
Setiap variabel yang dideklarasikan akan memakai memori dan besarnya berlainan untuk setiap jenis data. Seringkali tipe variabel yang memiliki ketelitian tinggi memerlukan memori yang lebih besar. Jumlah memori yang dialokasikan untuk variabel - variabel sangat tergantung pada sistim komputer serta kompiler yang digunakan. Untuk mengetahui jumlah memori yang dipakai oleh suatu variabel, dapat memakai fungsi sizeof. Bentuk pernyataannya sebagai berikut :
 
sizeof namavariabel
Sebagai standar perhitungan jumlah pemakaian memori oleh suatu variabel dapat dipakai tabel dibawah ini :
 

TYPE DATA

MEMORY YG DIPERLUKAN

(DALAM BYTES)
Integer
2
Short Integer
2
Long Integer
4
Floating point
4
Double Precision
8
Unsigned Integer
2
Unsigned Long Integer
4
Character
1
String Sesuai jml char + 1 (utk char 'null')

KONSTANTA
Konstanta digunakan untuk menyatakan nilai yang tetap, tidak berubah selama eksekusi program berlangsung. Berbeda dengan variabel, suatu konstanta tidak dideklarasikan . 
 
JENIS-JENIS KONSTANTA
 
1.KONSTANTA NUMERIK
1 Bilangan bulat (Integer)
2. Bilangan desimal berpresisi tunggal (Floating Point)
3.Bilangan Desimal berpresisi ganda (Double Precision)
serupa dengan floating-point, hanya tingkat ketelitian yang dimiliki lebih tinggi.

2.KONSTANTA STRING
1.Data Karakter.
Data ini hanya terdiri dari sebuah karakter saja dan ditandai dengan dua tanda kutip tunggal ('). Karakter dapat berupa abjad baik huruf besar maupun huruf kecil,angka, ataupun notasi - notasi lain seperti : ^, %, * dan lain – lain.
contoh : 'A'
'r'
2.Data String
Data ini merupakan rangkaian dari beberapa karakter dan ditandai dengan petik ganda (") :
contoh : "AMIR"
"bahasa"

DEKLARASI KONSTANTA
Cara mendeklarasikan konstanta , cukup dengan menambahkan kata const di depan tipe dan nama variabel.
Contoh : variabel bilangan  yang bertipe float dideklarasikan dengan nilai konstan sebesar 2.50;
const float bil = 2.50;
 
Perbedaan antara Variabel dan Konstanta :
1. Variabel nilainya bisa berubah selama program berjalan
Konstan nilainya tidak berubah
2. Variabel harus didefinisikan
Konstan tidak perlu didefinisikan