Tipe Data Sederhana Dan Tipe Data Array

C++ Membagi Tipe Data dalam 3 Kategori:
-Simple Data Type (Tipe Data Sederhana)
-Structured Data Type (Tipe Data Terstruktur)
-Pointer (Pointer)

1) Tipe Data Sederhana , yang dimaksud dengan Tipe Data Sederhana ,yaitu variabel dari tipe data sederhana ini hanya dapat menyimpan variabel sebanyak satu nilai dalam suatu waktu. Tipe data sederhana ini sendiri dikategorikan menjadi 3, yaitu Integral (Bulat), Floating-Point (Dengan Pecahan/Desimal), dan Enumerasi (user-defined data tipe).
Tipe Data Sederhana pada bahasa pemrograman yang baru dikategorikan menjadi 5; Int, Char, Bool, Real, dan Enumeration Type.


                                         Tabel Alokasi Memori pada Tipe Data Sederhana


Untuk menggambarkan bilangan Real, C++ menggunakan bentuk Floating-Point Notation(Menggunakan E-> Eksponen)

                        Tabel Bilangan Real yang Dinyatakan dalam Floating-Point Notation


Maksimum Bilangan dari significant digit dinamakan Precision. Nilai Float dinamakan Single Precision, Nilai Double dinamakan Double Precision.

Contoh Kasus: Bagaimana Menghitung Jangkauan Nilai yang dapat direpresentasikan Tipe Data Tersebut?

CHAR
Tipe Data Char memiliki Binary Digit sebanyak 8 Bit yang artinya dapat menghasilkan/menyimpan sebanyak 2 pangkat 8 nilai atau 256 nilai dari -128 s/d 127 .
Nilai 0 dari char dalam kode ASCII menyatakan karakter NULL dengan kombinasi Bit 00000000.
Nilai 65 dari char dalam kode ASCII menyatakan karakter 'A' dengan kombinasi Bit 010000001.
Kombinasi Bit harus sebanyak 8 Bit sesuai dengan Tipe Datanya.

INT
Tipe Data Int memiliki Binary Digit sebanyak 32 Bit yang artinya dapat menghasilkan/menyimpan sebanyak 2 pangkat 32 nilai atau 4,2 Milyar Nilai dari -2,1E+9 s/d 2,1E+9 atau dari 100000000 00000000 00000000 00000000 s/d 011111111 11111111 11111111 11111111.
Bilangan Negatif direpresentasikan dengan metode 2's Complement , dapat dilihat dari MSB(Most Significant bit)nya, apabila MSB=1 , maka itu berarti bilangan tersebut adalah bilangan negatif. Untuk mencari nilai bilangan yang disimpan, caranya adalah dengan merubah semua Bit 0 dengan Bit 1 dan sebaliknya, lalu konversikan ke dalam bilangan desimal, kemudian tambahkan 1.
Contoh: 11111100 , Hasil pengubahan Bit 0 dengan Bit 1 adalah 00000011 , konversikan ke bilangan desimal menjadi 3, tambahkan 1 = 4. Jadi nilai bilangan decimal dari 11111100 adalah -4.


FLOAT
Format Biner dalam bilangan Float SANGAT beragam tergantung dari hardwarenya. Pada dasarnya Format Biner dalam bilangan Float dibagi dalam 2 kelompok;
a. Kelompok Kiri , yang menyatakan Eksponen.
b. Kelompok Kanan , yang menyatakan Mantisa (Besaran Bilangan).

Berikut adalah contoh format floating-point 16 Bit, yang tentu saja bukan merupakan format C++.

                                                            Tabel Format Floating Point
 Keterangan:
SE = Significant bit untuk Eksponen
SM = Significant bit untuk Mantissa

Kelompok Eksponen:
000110 menyatakan 2 pangkat +6 , Jika SE =1 , maka representasi nilai menjadi 2 pangkat -6 .
Representasi Nilai pada Kelompok Eksponen = 64.

Kelompok Mantissa:
0101000000 , dengan digit ke 5 s/d ke 10 bernilai 0 , dapat dianggap bukan nilai penting, maka representasinya adalah 0.101 , Jika SE =1, maka representasinya menjadi -0.101 .
0.101 biner memiliki nilai decimal : 1.(1/2) + 0.(1/4) + 1.(1/8) = 0.625 .
Representasi nilai pada Kelompok Mantissa = 0.625

Jadi, Representasidari bilangan 0001100101000000 adalah 0.625x64 = 40

Tambahan:
Bahasa C++ memiliki Reserved word bernama typedef yang digunakan untuk mengganti nama tipe data;
Contoh: typedef int bulat; Perintah ini memberitahu compiler bahwa tipe data bulat memiliki karateristik yang sama dengan Integer.

ENUMERASI
Enumerasi adalah Tipe Data yang berisi Nilai-nilai buatan User(user defined data type)  , C++ membuat reserved word enum untuk membuat user defined data type.

Bentuk umum pendeklarasian Tipe Data Enum:
enum Enum1
{Lira, Rupiah, Dollar}
MataUang;
Contoh Potongan Program C++ dengan Tipe Data Enum:
MataUang=Lira;
if(MataUang==Lira)
{
     cout<<"Mata uang: Lira";
}
Setiap anggota Tipe Data Enum dinyatakan dengan Nilai Integer secara Internal, dimulai dari 0 untuk Elemen Pertama,1 untuk Elemen kedua, dan Selanjutnya bertambah 1. Nilai Integer ini dapat dirubah dengan memberikan harga dalam Deklarasi tipe datanya.

Berikut ini adalah deklarasi Tipe Data Enumerasi yang dilakukan perubahan Tipe Data di dalamnya:
enum Enum1
{Lira, Rupiah=100,Dollar}
MataUang;
Deklarasi di atas menyebabkan Lira bernilai Integer 0, Rupiah bernilai Integer 100, dan Dollar bernilai Integer 101. Karena Enumerasi pada dasarnya adalah Integer, maka perintah berikut akan menghasilkan keluaran Integer:
cout<<Lira<<" "<<Rupiah<<" "<<Dollar;
Keluaran dari perintah tersebut adalah : 0 100 101

2) Tipe Data Terstruktur
Tipe Data Terstruktur dikelompokkan menjadi 2 bagian ; Array dan Record, yang dimaksud dengan Tipe Data Terstruktur ,yaitu variabel dari tipe data sederhana ini dapat menyimpan variabel lebih dari satu nilai dalam suatu waktu. ;

A.Array
Tipe Data Array adalah suatu himpunan terurut dengan elemen-elemen Homogen (memiliki tipe data yang sama) . Tipe Data Array dapat dibagi menjadi : Array Satu Dimensi, Array Dua Dimensi, Array Tiga Dimensi, dan Array N Dimensi.

B.Record (Struktur)


Instruksi untuk mengakses nilai field bulan pada struktur data_mhs melalui PROGRAM:
- Mahasiswa.TGL_LAHIR.bulan (Variabel Mahasiswa berupa Variabel Biasa)
- mhs->TGL_LAHIR.bulan (Variabel mhs berupa Variabel Pointer)







3)Pointer
Variabel Pointer adalah Variabel yang berisi Alamat dari Variabel Lain yang memiliki Tipe Data Tertentu.
Contoh Program Dengan Pointer:
#include<iostream.h>
void main()
{
     int x;
     char y[2];
     y[0]='a';
     y[1]='b';
     int *p; //Deklarasi Pointer Sesuai dengan Tipe Data yang akan diisikan
     char *q; //Deklarasi Pointer Sesuai dengan Tipe Data yang akan diisikan

     p=&x; //Pointer menunjuk ke int x;
     q=y; //Pointer menunjuk ke char y[0];  ->Penulisan seperti ini digunakan untuk char & array;
     cout<<"Nilai x adalah "<<*p<<endl;
     cout<<"Nilai y[0] adalah "<<*q<<endl;
     cout<<"Nilai y[1] adalah "<<*(q+1)<<endl;
}










Please Click This Link Below to Subscribe Ledakan Lemon or Press CTRL+D (Bookmark)
SUBSCRIBE

0 komentar: (+add yours?)

Posting Komentar