Sahabat blogger, mungkin sudah pernah menggunakan yang
namany bahasa pemograman yang satu ini yaitu Turbo Pascal. Nah sebelum atau
jika ingin lebih dalam lagi untuk menggunakan bahasa pemrograman ini, sebelumnya
harus mengetahui jenis-jenis tipe data yang digunakan pada bahasa pemrograman
ini.
Berikut jenis-jenis tipe
datanya:
1. Tipe Data Sederhana
Merupakan tipe data dasar yang sering dipakai oleh program, meliputi:
integer (bilangan bulat), real (bilangan pecahan), char (alphanumerik dan tanda
baca), dan boolean (logika). Untuk data integer dan real masing-masing terbagi
menjadi beberapa kategori
a.
Bilangan 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 bilangan integer adalah: 34, 6458, -90,
0, 1112
Penggolongan tipe data integer
tersebut dimaksudkan untuk membatasi alokasi memori yang dibutuhkan, misalkan
untuk suatu perhitungan dari suatu variabel bilangan diperkirakan nilai
maksimumnya 32767 kita cukup mendeklarasikan variabel bilangan sebagai integer
(2 byte), daripada sebagai longint(4 byte).
b.
Bilangan Real
Bilangan real atau nyata merupakan jenis bilangan pecahan, 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
|
c. Char
Tipe data ini menyimpan karakter yang diketikkan dari keyboard, memiliki 255 macam yang terdapat dalam tabel ASCII (American Standard Code for Information Interchange). Contoh: 'a' 'B' '+', dsb. Yang perlu diingat bahwa dalam menuliskannya harus dengan memakai tanda kutip tunggal.
Jenis data ini memerlukan
alokasi memori sebesar 1(satu) byte untuk masing-masing data.
d.
Tipe Data 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 3.
Tipe Data Boolean
Tipe Data
|
Ukuran Tempat
|
Boolean
|
1 byte
|
WordBool
|
2 byte
|
Longbool
|
3 byte
|
2.
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:
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.');
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.
Operator
Beberapa operator yang disediakan oleh PASCAL:
1. Aritmatika
2. Boolean
3. Relasional
4. Set
1. Aritmatika
2. Boolean
3. Relasional
4. Set
Tabel 4.
Operator Aritmatika PASCAL
Operator
|
Operasi
|
Tipe Operand
|
Tipe Hasil Operasi
|
+
|
Penjumlahan
|
Integer, real
|
Integer, real
|
-
|
Pengurangan
|
Integer, real
|
Integer, real
|
*
|
Perkalian
|
Integer, real
|
Integer, real
|
/
|
Pembagian
|
Integer, real
|
Integer, real
|
div
|
Pembagian
|
integer, integer
|
integer
|
mod
|
Sisa pembagian
|
integer, integer
|
integer
|
Contoh :
9 + 2 (hasil: 11)
9 - 2 (hasil: 7)
9 * 2 (hasil: 18) 9 / 2 (hasil: 4.5)
9 div 2 (hasil: 4)
9 mod 2 (hasil: 1)
9 + 2 (hasil: 11)
9 - 2 (hasil: 7)
9 * 2 (hasil: 18) 9 / 2 (hasil: 4.5)
9 div 2 (hasil: 4)
9 mod 2 (hasil: 1)
Tabel 5.
Operator Boolean PASCAL
Operator
|
Operasi
|
Tipe Operand
|
Tipe Hasil Operasi
|
not
|
negasi
|
boolean
|
boolean
|
and
|
logika ‘and’
|
boolean
|
boolean
|
or
|
logika ‘or’
|
boolean
|
boolean
|
xor
|
logika ‘xor’
|
boolean
|
boolean
|
Contoh: A dan B suatu variabel boolean
A
|
not (A)
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
A
|
B
|
A and B
|
A or B
|
A xor B
|
TRUE
|
TRUE
|
TRUE
|
TRUE
|
FALSE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
TRUE
|
FALSE
|
TRUE
|
FALSE
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
FALSE
|
FALSE
|
FALSE
|
Tabel 6.
Operator Relasional
Operator
|
Operasi
|
Tipe Operand
|
Tipe Hasil Operasi
|
=
|
Sama dengan
|
tipe sederhana,
string, pointer dan set
|
boolean
|
<>
|
Tidak sama dengan
|
tipe sederhana,
string, pointer dan set
|
boolean
|
<
|
Lebih kecil dari
|
tipe sederhana, string
|
boolean
|
>
|
Lebih besar dari
|
tipe sederhana, string
|
boolean
|
<=
|
Lebih kecil atau =
|
tipe sederhana, string
|
boolean
|
>=
|
Lebih besar atau =
|
tipe sederhana, string
|
boolean
|
Contoh: Misal suatu variabel A:=9 dan B:=2,
maka: A = B (hasil: FALSE);
A <= B (hasil: FALSE) A <> B (hasil: TRUE);
A >= B (hasil: TRUE)
A < B (hasil: FALSE)
A > B (hasil: TRUE)
maka: A = B (hasil: FALSE);
A <= B (hasil: FALSE) A <> B (hasil: TRUE);
A >= B (hasil: TRUE)
A < B (hasil: FALSE)
A > B (hasil: TRUE)
Operasi pada Set
a. Operasi Relasional pada Set
Ada empat perbandingan relasional yang diperkenankan pada set.
a. Operasi Relasional pada Set
Ada empat perbandingan relasional yang diperkenankan pada set.
Tabel 7.
Operator Relasional pada set
Operator
|
Operasi
|
Tipe Operand
|
Tipe Hasil Operasi
|
=
|
Sama dengan
|
Set, set
|
boolean
|
<>
|
Tidak sama dengan
|
Set, set
|
boolean
|
<=
|
Lebih kecil atau =
|
Set, set
|
boolean
|
>=
|
Lebih besar atau =
|
Set, set
|
boolean
|
Misal A dan B adalah merupakan dua buah set.
A = B : mempunyai hasil True jika A dan B memiliki anggota-anggota yang
sama.
Contoh: [Sun, Tue, Fri] = [Tue, Fri, Sun].
A <> B: mempunyai hasil True jika A dan B memiliki anggota-anggota yang tidak sama.
A <= B : menunjukkan bahwa A adalah subset dari B.
A <> B: mempunyai hasil True jika A dan B memiliki anggota-anggota yang tidak sama.
A <= B : menunjukkan bahwa A adalah subset dari B.
Contoh: Jika A berisi [Sun, Mon, Tue] dan B berisi [Sun, Mon, Tue, Wed,
Thu], maka A adalah merupakan subset dari B dan ekspresi menghasilkan nilai
True.
A >= B : menunjukkan bahwa A adalah superset dari B.
A >= B : menunjukkan bahwa A adalah superset dari B.
Contoh: Jika A berisi [Sun..Sat] dan B berisi
[Mon..Fri], maka A adalah merupakan superset dari B dan ekspresi menghasilkan
nilai True.
b. Operasi Logika pada Set
Ada tiga operasi logika pada set.
Ada tiga operasi logika pada set.
Tabel 8.
Operator Logika pada set
Operator
|
Operasi
|
Tipe Operand
|
Tipe Hasil Operasi
|
+
|
Union
|
Set
|
Set
|
-
|
Difference
|
Set
|
Set
|
*
|
Intersection
|
Set
|
Set
|
Misal:
+ atau Union: [Sun, Mon, Tue, Wed] + [Mon, Thu, Fri] menghasilkan [Sun, Mon, Tue, Wed, Thu, Fri].
+ atau Union: [Sun, Mon, Tue, Wed] + [Mon, Thu, Fri] menghasilkan [Sun, Mon, Tue, Wed, Thu, Fri].
atau Difference: [Sun, Mon, Tue, Wed] - [Mon, Tue, Fri] menghasilkan
[Sun, Tue, Wed], yang merupakan anggota adari set pertama yang bukan anggota
set yang kedua.
* atau Intersection: [Sun, Mon, Tue, Wed] *
[Mon, Tue, Fri] menghasilkan [Mon,Tue], yang merupakan anggota kedua set.
Ekspresi
Ekspresi merupakan kombinasi antara operator dan
operand.
Ekspresi matematik yang
terjadi dalam dunia nyata diterjemahkan kedalam bahasa Pascal dengan sedikit
perubahan tanda.
Contoh:
Ekspresi matematika
|
Ekspresi PASCAL
|
• a + b
|
• a + b
|
• x ( y + z )
|
• x * ( y + z )
|
• b2 - 4ac
|
• b * b - 4*a*c
|
Contoh: Bila dideklarasikan var i, j: integer;
maka, i + j adalah ekspresi aritmatik
(menghasilkan suatu bilangan integer)
i < j adalah ekspresi boolean (menghasilkan
logika TRUE atau FALSE)
Fungsi Matematik Standar dalam PASCAL
Tabel 9.
Beberapa fungsi matematik standar yang disediakan oleh PASCAL
Nama Fungsi
|
Deskripsi
|
Tipe Argumen
|
Tipe Hasil Operasi
|
abs
|
absolute value
|
real/integer
|
real/integer
|
arctan
|
arctan (radian)
|
Real/integer
|
real
|
cos
|
cosine (radian)
|
real/integer
|
real
|
sin
|
sin (radian)
|
real/integer
|
real
|
exp
|
fungsi Perpangkatan e
|
real/integer
|
real
|
ln
|
ln
|
real/integer
|
real
|
round
|
Pembulatan terdekat
|
real
|
integer
|
sqr
|
kuadrat
|
real/integer
|
real/integer
|
sqrt
|
Akar kuadrat
|
real/integer
|
real
|
trunc
|
Pembulatan ke bawah
|
real/integer
|
integer
|
Contoh :
Abs(-11) (hasil: 11)
Round(10.6) (hasil: 11)
Trunc(10.6) (hasil: 10)
Sqrt(4) (hasil: 2)
Sqr(4) (hasil: 16)
Abs(-11) (hasil: 11)
Round(10.6) (hasil: 11)
Trunc(10.6) (hasil: 10)
Sqrt(4) (hasil: 2)
Sqr(4) (hasil: 16)
TIPE DATA DALAM BAHASA PEMROGRAMAN TURBO PASCAL
Reviewed by Pak Gulo
on
April 14, 2015
Rating:
Tidak ada komentar: