Tipe data
adalah suatu nilai yang dapat dinyatakan dalam bentuk konstanta atau variabel
dan operator. Konstanta menyatakan nilai yang tetap, sedangkan variabel
menyatakan nilai yang dapat berubah-ubah selama eksekusi berlangsung.
Tipe data dapat didefinisikan dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu variabel sesuai atau tidak dengan nilai yang diberikan oleh user. Saya sebagai penulis kurang tahu berapa pastinya jumlah tipe data, karena tiap sumber yang saya perolah selalu mnyatakan jumlah yang berbeda, namun di pembahasan kali ini tipe data yang dibahasa terbagi 2, yaitu tipe data primitive, dan composite, namun pada Turbo Pascal terdapat satu tipe lainnya, yaitu tipe data terstruktur.
Tipe data dapat didefinisikan dengan istilah tempat untuk menentukan pemberian nilai terhadap suatu variabel sesuai atau tidak dengan nilai yang diberikan oleh user. Saya sebagai penulis kurang tahu berapa pastinya jumlah tipe data, karena tiap sumber yang saya perolah selalu mnyatakan jumlah yang berbeda, namun di pembahasan kali ini tipe data yang dibahasa terbagi 2, yaitu tipe data primitive, dan composite, namun pada Turbo Pascal terdapat satu tipe lainnya, yaitu tipe data terstruktur.
1. Tipe data primitive (Sederhana)
Adalah
tipe data yang hanya mampu menyimpan satu nilai tiap satu variabelnya. Tipe
data primitive merupakan tipe data dasar yang sering dipakai oleh program. Contoh
tipe data primitive adalah tipe numerik
(integer dan real), tipe data karakter/char, tipe data boolean.
A. Numeric
Tipe
data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam
bentuk bilangan atau angka. Semua bahasa pemrograman menyediakan tipe data
numeric, hanya saja berbeda dalam jenis numeric yang diakomodasi. Tipe data ini
terbagi atas integer, dan real.
a) Integer
Merupakan tipe data berupa bilangan bulat,
terbagi atas beberapa kategori seperti terlihat dalam tabel 1. tabel 1
menunjukkan jenis data, ukuran dalam memori dan rentang nilainya.
Tabel 1. Tipe Data Bilangan Integer
Tipe
Data
|
Ukuran
Tempat
|
Rentang
Nilai
|
Byte
|
1 byte
|
0 s/d +255
|
Shortint
|
1 byte
|
-28 s/d +127
|
Integer
|
2 bytes
|
-32768 s/d 32767
|
Word
|
2 bytes
|
0 s/d 65535
|
Longint
|
4 bytes
|
2147483648 s/d 2147483647
|
Contoh penggunaannya pada pascal
VAR a,b,jumlah1,jumlah2 : INTEGER;
BEGIN
jumlah1:=10;
jumlah2:=3;
a:=jumlah1 DIV jumlah2;
b:=jumlah1 MOD jumlah2;
WRITELN('HASIL A = ',a);
WRITELN('HASIL B =',b);
END.
hasil program : hasil a = 3
hasil b = 1
b) Real
Konstanta bertipe real adalah bilangan yang
berisi titik desimal atau jenis bilangan pecahan. Dalam Pascal paling sedikit
harus ada satu digit sebelum dan sesudah titik desimal, tidak boleh ada koma
dan nilainya bisa positif atau negatif. Dapat dituliskan
secara biasa atau model scientific. Contoh bilangan real: 34.265 -3.55 0.0
35.997E+11, dimana E merupakan simbol perpangkatan 10. Jadi 452.13 mempunyai
nilai sama dengan 4.5213e2.
Penggolongan tipe
data bilangan real dapat dilihat pada tabel 2
Tabel 2. Bilangan Real
Tipe
Data
|
Ukuran
Tempat
|
Rentang
Nilai
|
real
|
6 bytes
|
2.9 x 10-39 s/d 1.7 x1038
|
single
|
4 bytes
|
1.5 x 1045 s/d 3.4 x
1038
|
double
|
8 bytes
|
5.0 x 10-324 s/d 1.7 x 10308
|
extended
|
10 bytes
|
3.4 x 10-4932 s/d 1.1 x 104932
|
comp
|
8 bytes
|
-9.2x 1018 s/d 9.2x 1018
|
Contoh penggunaan tipe data real pada
pascal
VAR
nilai1,nilai2 hasil : REAL;
BEGIN
nilai1
:= 2.52;
nilai2
:= 3.2;
hasil
:= nilai1 + nilai2;
WRITE('HASIL
PENJUMLAHAN = ',hasil:4:2);
END.
Output program, sbb : hasil penjumlahan
= 5.72
B. Karakter
(char)
Karakter
merupakan tipe data yang hanya mampu menyimpan 1 digit karakter. Ukuran
untuk tipe data karakter adalah 1 byte (1 byte = 8 bit). Adapun macam karakter
yang ada sejumlah 256 macam karakter yaitu dari kode karakter (ASCII), 0 sampai
dengan 255. Untuk penulisan karakter menggunakan tanda petik tunggal (‘ )
di depan dan belakang karakter yang ditulis. Contoh : ‘a’, ‘A’,’&’ dll.
Nilai-nilai
yang termasuk karakter adalah:
a) Karakter
huruf : ‘a’..’z’,’A’..’Z’
b) Karakter
angka : ‘0’..’9’
c) Karakter
tanda baca : titik, koma, titik koma, titik dua dan sebagainya
d) Karakter
khusus : $, %, #, @ dan sebagainya.
Contoh
pengunaannya dalam bahasa C++
Contoh program tipe data character
#include
#include
#include
#include
void main()
{
char *kalimat=”Institut
Teknologi Padang″;
int
x,jmlupp,jmllow,jmldig,jmlspc;
jmlupp=jmllow=jmldig=jmlspc=0;
clrscr();
for(x=0;x<=strlen(kalimat);x++)
{
if(isupper(kalimat[x]))
jmlupp++;
else
if(islower(kalimat[x])) jmllow++;
else
if(isdigit(kalimat[x])) jmldig++;
else
if(isspace(kalimat[x])) jmlspc++;
}
printf(“Jumlah
Karakter : %d karakter\n”,strlen(kalimat));
printf(“Jumlah
Upper : %d karakter\n”,jmlupp);
printf(“Jumlah
Lower : %d karakter\n”,jmllow);
printf(“Jumlah
Angka : %d karakter\n”,jmldig);
printf(“Jumlah
Spasi : %d karakter\n”,jmlspc);
getch();
}
C. Boolean
Merupakan
tipe data logika, yang berisi dua kemungkinan nilai: TRUE (benar) atau FALSE
(salah). Turbo Pascal for Windows memiliki tiga macam jenis ini yaitu: Boolean,
WordBool, dan LongBool. Tipe boolean memakai memori paling kecil, sedangkan
WordBool dan LongBool dipakai untuk menulis program yang sesuai dengan
lingkungan Windows.
Tabel dibawah ini menunjukkan Tipe Data
Boolean
Tipe Data
|
Ukuran Tempat
|
Boolean
|
1 byte
|
WordBool
|
2 byte
|
Longbool
|
3 byte
|
Contoh pengunaannya
pada pascal:
VAR
benar
: BOOLEAN;
BEGIN
benar
:= TRUE;
WRITELN('benar
= ',benar);
END.
hasil
: benar = TRUE
2. Tipe data Composite
Composite Data Types atau Tipe Data Komposit merupakan tipe
data yang dapat
menampung banyak nilai
A. Array
Array atau sering disebut sebagai larik, adalah tipe data yang sudah terstruktur dengan baik, meskipun masih sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen) dalam sebuah variabel. Sebagai ilustrasi, array mampu menampung banyak data namun dengan satu tipe data yang sama, misalnya integer saja. Setiap lokasi data array diberi nomor indeks yang berfungsi sebagai alamat dari data tersebut.
Array atau sering disebut sebagai larik, adalah tipe data yang sudah terstruktur dengan baik, meskipun masih sederhana. Array mampu menyimpan sejumlah data dengan tipe yang sama (homogen) dalam sebuah variabel. Sebagai ilustrasi, array mampu menampung banyak data namun dengan satu tipe data yang sama, misalnya integer saja. Setiap lokasi data array diberi nomor indeks yang berfungsi sebagai alamat dari data tersebut.
Contoh
pengunaannya pada pascal :
Contoh
penulisan tipe larik berdimensi satu sbb :
CONST batas = 20;
VAR telpon : ARRAY[1..3] OF STRING[7]; { larik dengan nama telpon
mempunyai 3 data dengan tipe
string }
nilai : ARRAY[1..5] OF INTEGER; { larik dengan nama nilai
mempunyai 5 data dengan tipe
integer }
gaji : ARRAY[1..batas] OF REAL; { larik dengan namagaji mempunyai
20 data dengan tipe real }
Contoh larik yang mempunyai tipe data terbilang atau subjangkauan
:
TYPE batas = 0..100;
keadaan = (baru,lama,bagus,jelek);
VAR nilai : ARRAY[1..30] OF 'A'..'B'; { larik dengan nama nilai
mempunyai
30 data, dan pengisian data yang
diperbolehkan hanya A, B, C, D,
E }angka : ARRAY[1..50] OF batas; { larik dengan nama angka
mempunyai 50 data, dan pengisian
data yang diperbolehkan hanya
1,2,3,...,99,100 }
baju : ARRAY[1..10] OF keadaan; { larik dengan nama angka
mempunyai 10 data,dan pengisian
data yang diperbolehkan baru, lama,
bagus, jelek }
Contoh program :
VAR jumlah : INTEGER;
nilai : ARRAY[1..3] OF 'A'..'E';
angka : ARRAY[1..3] OF INTEGER;
BEGIN
nilai[1] := 'C';
nilai[2] := 'B';
nilai[3] := 'A';
angka[1] := 75;
angka[2] := 60;
angka[3] := 90;
jumlah := angka[1]+angka[2]+angka[3];
WRITELN('NILAI = ',angka[2],' MENDAPAT ',nilai[1]);
WRITELN('JUMLAH = ',jumlah);
END.
hasil
: nilai 60 mendapat C
jumlah
= 225
B. Record atau struct
Seperti
halnya Array, Record atau Struct juga termasuk tipe data komposit. Record
dikenal dalam bahasa Pascal/Delphi sedangkan Struct dikenal dalam bahasa C++.
Berbeda dengan array, tipe data record mampu menampung banyak data dengan tipe
data berbeda-beda (heterogen). Misalnya, satu bagian integer, satu bagian lagi
character, dan bagian lainnya Boolean. Biasanya record digunakan untuk
menampung data suatu obyek. Misalnya, siswa memiliki nama, alamat, usia, tempat
lahir, dan tanggal lahir. Nama akan menggunakan tipe data string, alamat
bertipe data string, usia bertipe data single (numeric), tempat lahir bertipe
data string, dan tanggal lahir bertipe data date. Berikut ini contoh pengunaan
record dalam Delphi.
Contoh
pengunaannya pada Delphi.
Type
TRecord_Siswa = Record
Nama_Siswa
: String[30]
Alamat
: String[50]
Usia
: Real
EndRecord
C. Image
Image, atau gambar, atau citra, merupakan tipe data grafik. Misalnya grafik perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan, dan lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang berbasis visual, tipe data ini telah didukung dengan sangat baik.
Image, atau gambar, atau citra, merupakan tipe data grafik. Misalnya grafik perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan, dan lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang berbasis visual, tipe data ini telah didukung dengan sangat baik.
D. Date Time
Nilai
data untuk tanggal (date) dan waktu (time) secara internal disimpan dalam
format yang spesifik. Variabel atau konstanta yang dideklarasikan dengan tipe
data Date dapat digunakan untuk menyimpan, baik tanggal maupun jam. Tipe data
ini masuk dalam kelompok tipe data composite, karena merupakan bentukan dari
beberapa tipe data.
Contoh
pengunaannya dalam Visual Basic.
Dim
WaktuLahir As Date
WaktuLahir
= "01/01/1997"
WaktuLahir
= "13:03:05 AM"
WaktuLahir
= "02/23/1998 13:13:40 AM"
WaktuLahir =
#02/23/1998 13:13:40 AM#
E.
Object
Tipe data object digunakan untuk
menyimpan nilai yang berhubungan dengan obyek-obyek yang disediakan oleh Visual
Basic, Delphi, dan bahasa pemrograman lain yang berbasis GUI. Sebagai contoh,
apabila mempunyai form yang memiliki control Command button, yang kita beri
nama Command1.
Contoh pengunaannya :
Dim A
As CommandButton
Set A
= Command1
A.Caption
= "HEY!!!" A.FontBold = True
F. Subrange
Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan nilai tertentu sesuai dengan yang ditetapkan programmer. Biasanya, tipe data ini mempunyai nilai batas minimum dan nilai batas maksimum. Tipe data ini didukung dengan sangat baik dalam Delphi.
Tipe data subrange merupakan tipe data bilangan yang mempunyai jangkauan nilai tertentu sesuai dengan yang ditetapkan programmer. Biasanya, tipe data ini mempunyai nilai batas minimum dan nilai batas maksimum. Tipe data ini didukung dengan sangat baik dalam Delphi.
Contoh
pendeklarasiannya pada Delphi.
Type
BatasIndeks =
1..20
RentangTahun =
1950..2030
Var
Indeks :
BatasIndeks
Tahun :
RentangTahun
G. Enumerasi
Tipe data ini merupakan tipe data yang mempunyai elemen-elemen yang harus disebut satu persatu, dan bernilai konstanta integer sesuai dengan urutannya. Nilai konstanta integer elemen ini diwakili oleh suatu nama variable yang ditulis di dalam kurung. Tipe data ini juga dijumpai pada Delphi, dan bahasa pemrograman deklaratif seperti SQL.
Tipe data ini merupakan tipe data yang mempunyai elemen-elemen yang harus disebut satu persatu, dan bernilai konstanta integer sesuai dengan urutannya. Nilai konstanta integer elemen ini diwakili oleh suatu nama variable yang ditulis di dalam kurung. Tipe data ini juga dijumpai pada Delphi, dan bahasa pemrograman deklaratif seperti SQL.
Contoh
pendeklarasiannya pada Delphi.
Type
Hari_dlm_Minggu = (Nol, Senin,
Selasa, Rabu,
Kamis, Jumat, Sabtu,
Minggu)
Nama_Bulan = (Nol, Januari,
Pebruari, Maret,
April, Mei, Juni, Juli,
Agustus,
September, Oktober, Nopember,
Desember)
Var
No_Hari : Hari_dlm_Minggu
No_Bulan : Nama_Bulan
Pada contoh di atas, tipe data Hari_dlm_Minggu
termasuk enumerasi dengan rentang nilai Nol, dimana Senin sampai dengan Minggu
dan nilai data dari 0, 1, sampai dengan 7. Sedangkan tipe data Nama_Bulan
termasuk enumerasi dengan rentang nilai Nol, Januari sampai dengan Desember dan
nilai data dari 0, 1, sampai dengan 12.
Tipe Data Lainnya
1. Tipe Data Terstruktur
a) Tipe Data String
Merupakan suatu data yang menyimpan array
(larik), sebagai contoh 'ABCDEF' merupakan sebuah konstanta string yang
berisikan 6 byte karakter. Ukuran Tempat untuk tipe data ini adalah 2 s/d 256
byte, dengan jumlah elemen 1 s/d 255.
String dideklarasikan dengan STRING [ konstanta ] atau STRING.
Bila ukuran
string tidak didefinisikan maka akan banyak memakan ruang, karena ukuran string
menyesuaikan dengan defaultnya.
Misalkan :
VAR KATA: STRING [20]; atau
VAR KATA: STRING;
Contoh penggunaannya pada pascal
VAR kata1 : STRING[5];
kata2 : STING[9];
kata : CHAR;
BEGIN
kata1 :='STMIK';
kata2 :='GUNADARMA';
kata :=' '; { karakter berupa spasi
}
WRITELN(kata1,kata,kata2);
END.
hasil : STMIK GUNADARMA
b) Tipe Data Set
Sebuah
set merupakan suatu himpunan yang berisi nilai (anggota). Set merupakan Tipe
data yang khusus untuk Pascal. Set dalam pemrograman sangat mirip dengan
himpunan dalam ilmu matematika.
contoh: A = { 1,
2, 3, 4, 5 }
Syntax: SET OF
contoh:
type Digits = set of 0..9;
type Digits = set of 0..9;
Letters = set of
'A'..'Z';
Day = (Sun, Mon,
Tue, Wed, Thu, Fri, Sat);
CharSet = set of
Char;
Days = set of Day;
Kita tidak bisa
menulis atau membaca isi dari set, tetapi kita bisa melakukan operasi yang lain
dengan data yang ada pada set (mis. relasional).
Contoh:
Program Cth_Set;
USES WINCRT;
Type HARI = (AHAD, SENIN, SELASA, RABU, KAMIS, JUMAT, SABTU);
VAR SEMUA_HARI : SET OF HARI;
USES WINCRT;
Type HARI = (AHAD, SENIN, SELASA, RABU, KAMIS, JUMAT, SABTU);
VAR SEMUA_HARI : SET OF HARI;
HARI_KERJA : SET OF SENIN.. JUMAT;
HARI_INI : HARI;
BEGIN
HARI_INI := SENIN;
IF HARI _INI IN HARI_KERJA THEN
WRITELN('HARI INI HARI KERJA')
ELSE
WRITELN('HARI LIBUR');
END.
HARI_INI : HARI;
BEGIN
HARI_INI := SENIN;
IF HARI _INI IN HARI_KERJA THEN
WRITELN('HARI INI HARI KERJA')
ELSE
WRITELN('HARI LIBUR');
END.
Salah satu
manfaat dari penggunaan tipe data set adalah untuk mengecek apakah suatu nilai
muncul dalam suatu range tertentu. Misalnya, untuk menentukan apakah suatu
karakter berupa Lower Case Letter (huruf kecil), mis. Ch adalah tipe Char, kita
bisa menulis,
if (Ch >= 'a') and (Ch <= 'z') then Writeln( Ch,' merupakan huruf
kecil.'); atau, dengan notasi set, kita bisa menulis, if Ch in ['a'..'z'] then
Writeln( Ch,' merupakan huruf kecil.');
2. Tipe Data Pointer
Pointer merupakan
variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam
memori. Suatu variabel yang points (menunjuk) ke sesuatu sehingga disebut
pointer.
Ada dua macam
pointer:
·
Typed (tertentu) : merupakan pointer
yang menunjuk pada tipe data tertentu pada variabel.
·
Generic (umum) : merupakan pointer
yang tidak menunjuk pada tipe data tertentu pada variabel.
Contoh deklarasi
pointer:
VAR P : ^INTEGER;
Contoh di atas
merupakan deklarasi variabel p sebagai pointer dari integer. Dengan menambahkan
tanda caret (^) di depan nama tipe data variabel yang dideklarasikan:
Contoh :
Program Pointer1;
USES WINCRT;
VAR P : ^INTEGER;
M, N : INTEGER;
USES WINCRT;
VAR P : ^INTEGER;
M, N : INTEGER;
BEGIN
M:=10;
N:=15;
P:=@M; { P sekarang menunjuk ke M }
P^:=12; { hal ini sama dengan M:=12; }
P:=@n; { M sekarang menunjuk ke N }
P=M; { { hal ini sama dengan N:= M; }
WRITELN('M = ',M,', N = ',N); { M = 12, N = 12 }
END.
M:=10;
N:=15;
P:=@M; { P sekarang menunjuk ke M }
P^:=12; { hal ini sama dengan M:=12; }
P:=@n; { M sekarang menunjuk ke N }
P=M; { { hal ini sama dengan N:= M; }
WRITELN('M = ',M,', N = ',N); { M = 12, N = 12 }
END.
Ketika P menunjuk
ke M ( P:=@M;), mengakses P^ sama dengan mengakses M. Dalam membuat program,
dalam penggunaan pointer kita memerlukan alokasi memori tertentu: Ketika kita
mendeklarasikan variabel pointer dalam "VAR" sehingga merupakan suatu
static variabel, yang mana Static Variabel ini dibatasi oleh kapasitas 64KB
untuk tiap modul. Yang berarti dalam program utama kita hanya bisa menggunakan
hanya 64KB dan tiap unit Pascal hanya bisa memakai 64KB. Sehingga kita perlu
memecahkan program kebeberapa unit.
Tidak ada komentar:
Posting Komentar