Pascal menyediakan beberapa macam tipe data, yang terdiri dari :
1. Tipe data sederhana/skalar, terdiri dari :
1.1. Tipe data standar/predefinisi
1.1.1. bulat (integer)
1.1.2. real
1.1.3. karakter
1.1.4. string
1.1.5. logika (boolean)
1.2. Tipe data didefinisikan pemakai :
1.2.1. subjangkauan (subrange)
1.2.2. terbilang (enumerated)
2. Tipe data terstruktur, terdiri dari :
2.1. larik (array)
2.2. rekaman (record)
2.3. berkas (file)
2.4. himpunan (set)
3. Tipe data penunjuk (pointer)
1.1. Tipe data standar
1.1.1. Tipe data integer
Tipe integer adalah bilangan yang tidak mempunyai titik desimal/bilangan pecahan.
Integer terdiri dari beberapa tipe, yaitu :
- byte, dengan jangkauan nilai 0..255
- shortint, dengan jangkauan nilai -128..127
- integer, dengan jangkauan nilai -32768..32767
- word, dengan jangkauan nilai 0..65535
- longint, dengan jangkauan nilai -2147483648..2147483647
Operator yang dapat digunakan pada data tipe integer :
+, penjumlahan
-, pengurangan
*, perkalian
div, pembagian
mod, sisa pembagian
Contoh :
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
1.1.2. Tipe data real
Tipe real adalah bilangan yang mengandung pecahan, palingsedikit harus ada satu
digit sebelum dan sesudah titik desimal.
Operator yang dapat digunakan pada data tipe real adalah :
+ penjumlahan
- pengurangan
* perkalian
/ pembagian
Contoh :
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
1.1.3. Tipe data karakter
Nilai data karakter berupa sebuah karakter yang ditulis diantara tanda petik
tunggal, misalnya : 'A', 'b', '@', dan sebagainya. Karakter yang dapat diterima oleh
komputer :
huruf besar/kecil : A,B,C,...,Z / a,b,...,z
digit : 1,2,3,...,9
operator aritmatika : * / + -
tanda baca : , . ; : ? !
simbol khusus : $ @ { } ( ) [ ] % #
spasi
Contoh :
VAR nilai : CHAR;
BEGIN
nilai :='A';
WRITELN('NILAI TERBAIK = ',nilai);
END.
hasilnya : nilai terbaik = A
1.1.4. Tipe data string
Nilai data string adalah satu atau lebih karakteryang terletak diantara tanda
petik tunggal, misal : 'GUNADARMA'. Bila panjang dari suatu string di dalam
deklarasi variabel tidak disebutkan, maka dianggap panjangnya 255 karakter.
Contoh :
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
1.1.5. Tipe data boolean
Data tipe boolean mempunyai dua nilai, yaitu True dan False.
Contoh :
VAR
benar : BOOLEAN;
BEGIN
benar := TRUE;
WRITELN('benar = ',benar);
END.
hasil : benar = TRUE
1.2. Tipe data Terdefinisi
1.2.1 Tipe data subjangkauan
Tipe data ini adalah tipe data yang dapat didefinisikan sendiri oleh pemakai. Nilai
data pada tipe ini mempunyai jangkauan tertentu.
Misalkan nilai ujian mempunyai harga 0 sampai 100, maka nilai ujian dapat didefinisikan
sbb :
TYPE
nilai = 0..100;
Contoh :
VAR sks : 1..4;
angkatan : 89..95;
nilai : 'A'..'E';
1.2.2. Tipe data terbilang
Tipe data ini juga dapat didefinisikan sendiri oleh pemakai. Disebut tipe terbilang
karena semua nilai disebut satu persatu.
Contoh :
TYPE hari = (Senin,Selasa,Rabu,Kamis,Jum'at,Sabtu,Minggu);
hari_kerja = (Senin,Selasa,Rabu,Kamis,Jum'at);
situasi = (senang,gembira,sedih,susah);
2.1. Tipe data larik (array)
Larik (array) adalah kumpulan data yang mempunyai tipe data sejenis. Daftar
nomor telpon, daftar kode mata kuliah, vektor, matrik merupakan contoh larik.
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
Contoh penulisan tipe larik berdimensi dua sbb :
VAR tabel : ARRAY[1..3,1..2] OF BYTE; { larik tabel mempunyai 3 baris dan 2
kolom dengan tipe byte }
BEGIN tabel[1,1] := 5; { baris 1, kolom 1 }
tabel[1,2] := 7;
11
tabel[2,1] := 21; { baris 2, kolom 1 }
tabel[2,2] := 18;
tabel[3,1] := 8;
tabel[3,2] := 7;
WRITELN('BARIS 1 KOLOM 2 = ',tabel[1,2]);
END.
hasil : BARIS 1 KOLOM 2 = 7
2.2. Tipe data record dan file
( dibahas pada pembahasan record dan file)
Contoh Program Pascal :
Uses crt;
Var nama:string[20];jabatan:string;
Gaji:longint;
Tunj,ppn,gajibersih:real;
Begin
Clrscr;
Write(‘Nama Karyawan : ‘); readln(nama);
Write(‘Masukkan Jabatan : ‘); readln(jabatan);
If (jabatan=’Direktur’) or (jabatan=’direktur’) then
Begin
Gaji:=3000000;
Tunj:=0.1* gaji;
End
Else If (jabatan=’Manager’) or (jabatan=’manager’) then
Begin
Gaji:=2000000;
Tunj:=0.05* gaji;
End
Else If (jabatan=’Karyawan’) or (jabatan=’karyawan’) then
Begin
Gaji:=1000000;
Tunj:=0.1* gaji;
End
Else
Begin
Gaji:=800000;
Tunj:=0.1* gaji;
End;
Writeln(‘Gaji Bersih : Rp.‘,gaji);
Writeln(‘Tunjangan Jabatan : Rp.‘,tunj:9:2);
Ppn:=0.1*gaji;
Writeln(‘PPN 10 % : Rp.‘,ppn:9:2);
Total:=(gaji+total)-ppn;
Writeln(‘Total Gaji : Rp.‘,total:9:2);
Readln;
End.