Saturday, November 5, 2011

Tipe Data dan Kelas Memory pada bahasa C/C++ Pemograman Mikrokontroller 8051

Type Data

Setiap bahasa pemrograman pasti mempunyai type data, dan kali ini saya akan membahas type data yang umum didalam C / C++ .
Lalu apa itu type data? dan apa gunanya type data itu?

Lalu apa itu type data?
Type data adalah suatu Storage (Peyimpanan) yang mempunyai ukuran dan satuan, masing-masing type data mempunyai rentang ukuran berbeda-beda dan tentunya satuannya pasti bit, selama yang saya tau satuannya hingga mencapai byte( 8bit ) tergantung anda mendeskripsikan bagaimana untuk masalah satuannya!.


Lalu guna dari type data itu apa ? 
Gunanya / tujuanya adalah agar data yang akan diproses disimpan terlebih dahulu didalam memory sebelum di proses oleh CPU, lihat pada table dibawah type data dan rentang ukuran ruang peyimpanan masing-masing type data tersebut didalam memory , sesuai dengan yang dibahas diatas type data itu pasti nilainya berbeda-beda, Contohnya jika seorang programmer ingin menyimpan data lebih dari 1 byte berarti dia harus menggunakan type data yang lebih besar dari 1 byte berarti dia harus menggunakan type data "int (4byte)" bukan "char (1byte)".
Table 11.10.31 Ukuran Penyimpanan dan Rentang Nilai type data integer standart.

Type
Storage size
Minimum value
Maximum value
char
One byte
-128
255
unsigned char
one byte
0
255
signed char
one byte
-128
127
int
two bytes or four bytes
-32,768 or -2,147,483,648
32,767 or 2,147,483,647
unsigned int
two bytes or four bytes
0
65,535 or 2,147,483,647
short
two bytes
-32,768
32,767
unsigned short
two bytes
0
65,535
long
four bytes
-2,147,483,648
2,147,483,647
unsigned long
four bytes
0
4,294,967,295
long long(C99)
eight bytes
-9,223,372,036, 854,775,808
9,223,372,036, 854,775,807
unsigned long long (C99)
eight bytes
0
18,446,744,073, 709,551,615
Void


Tidak bertipe

Mari kita telusuri size dari tipe data masing-masing dengan menggunakan script simpel berikut:

#include <stdio.h>
#include <windows.h>
#include <winsock.h>
#include <String.h>
#include <iostream>

using namespace std;

int main()
{
  printf(" type int \t\t%d byte \r\n",sizeof(int));
  printf(" type char \t\t%d byte \r\n",sizeof(char));
  printf(" type float \t\t%d byte \r\n",sizeof(float));
  printf(" type long \t\t%d byte \r\n",sizeof(long));
  printf(" type double \t\t%d byte \r\n",sizeof(double));
  printf(" type bool \t\t%d bit \r\n",sizeof(bool));
  printf(" type long double \t\t%d byte \r\n",sizeof(long double));
  printf(" type WORD \t\t%d byte \r\n",sizeof(WORD));
  printf(" type WSADATA \t\t%d byte \r\n",sizeof(WSADATA)); // lib winsock
  printf(" type DWORD \t\t%d byte \r\n",sizeof(DWORD)); //lib windows
  printf(" type SOCKET \t\t%d byte \r\n",sizeof(SOCKET)); //winsock
  printf(" type LPVOID \t\t%d byte \r\n",sizeof(LPVOID)); //windows
  printf(" type LPDWORD \t\t%d byte \r\n",sizeof(LPDWORD)); //windows
  getchar();
  return 0;
}


Result


dan yang dibawah ini adalah type data khusus untuk Microkontroller MCS-51
Type Data Khusus untuk MCS-51
No
Type Data
Lebar Data
Jangkauan
1
bit
1 bit
0 atau 1
2
sfr
8 bit
0 - 255
3
sbit
1 bit
0 atau 1

Kelas Memory
  1. code (memori program)
  2. data (memori data internal)
  3. idata (memori data internal)
  4. bit (memori data internal)
  5. sfr (Special Fungtion Register)
  6. sbit (Special Fungtion Register)
  7. pdata (Memori data eksternal)
  8. xdata (Memori data eksternal)
Sumber:
Totok Budioko, “Belajar Dengan Mudah Dan Cepat Pemrograman Bahasa Dengan SDCC  pada
Mikrokontroler AT89X051/AT89C51/52 Teori, Simulasi dan Aplikasi “ Cetakan
Pertama GAVA MEDIA, Yogyakarta, 2005.

No comments:

Post a Comment

Please Comment