Tipe Data
Macam-macam Tipe Data
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 bisa diartikan sebagai tempat untuk menentukan pemberian nilai terhadap
suatu variabel sesuai atau tidak dengan nilai yang akan diberikan oleh user.
Tipe data yang dibahas 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)
Tipe data primitive dalah tipe data yang hanya mampu
menyimpan satu nilai tiap satu variabelnya. Tipe data primitive merupakan tipe
data dasar yang sering dipakai oleh program. Contoh nya: 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.
1) Integer
Integer merupan 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
|
Contohnya pada pascal.
VAR a,b,jumlah1,jumlah2 : INTEGER;
BEGIN
jumlah1:=10;
jumlah2:=3;
a:=jumlah1 DIV jumlah2;
b:=jumlah1 MOD jumlah2;
WRITELN(‘MAKA A = ‘,a);
WRITELN(‘MAKA B =’,b);
END.
hasil program : maka a = 3
maka b = 1
2) 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
|
Contohnya 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=”Fakultas Teknologi dan Ilmu Komputer
UNPRI″;
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
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
|
Contonya 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.
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_Mahasiswa = Record
Nama_Mahasiswa : 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 = 2000..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
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 :=’Fakultas’;
kata2 :=’Teknologi’;
kata :=’ ‘; { karakter berupa spasi }
WRITELN(kata1,kata,kata2);
END.
hasil : Fakultas Teknolgi
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:
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.
Komentar
Posting Komentar