Tipe Data Pada Bahasa Pascal
Penggunaan
tipe data ini sangat penting pada semua bahasa pemrograman bukan pascal
saja. Karena pengunaan tipe data yang benar akan menjamin kesuksesan
program yang tepat. Tipe data juga berpengaruh terhadap memori yang dibutuhkan
oleh suatu program.
1.
Tipe Data Bilangan Bulat (Integer)
Untuk
tipe data bilangan bulat pada pascal disebut dengan integer. Bilangan bulat
merupakan bilangan yang tidak terdapat bilangan pecahan, contohnya -15, 0, 4,
573 dan seterusnya. Tipe data bilangan bulat dibagi lagi menjadi beberapa
kategori seperti pada tabel berikut.
Tipe
Data
|
Ukuran
Tempat
|
Rentang
Nilai
|
|
Minimum
|
Maksimum
|
||
Shortint
|
1
byte
|
-128
|
127
|
Integer
|
2
bytes
|
-32768
|
32767
|
Longint
|
4
bytes
|
-2147483648
|
2147483647
|
Byte
|
1
byte
|
0
|
255
|
Word
|
2
bytes
|
0
|
65535
|
Penggolongan
tipe data bilangan bulan tersebut dimaksudkan untuk membatasi alokasi memori
yang dibutuhkan, misalkan untuk suatu perhitungan dari suatu variabel bilangan
diperkirakan nilai maksimumnya adalah 32767, kita cukup mendeklarasikan
variabel bilangan sebagai integer, daripada sebagai longint yang nilai
maksimumnya jauh lebih besar. Penggunaan tipe data yang tidak sesuai dengan
tipe data yang diinginkan atau melebihi rentang maksimum akan menghasilkan
keluaran yang tidak sesuai, misalkan dibutuhkan nilai x sadalah 255 dan tipe
data yang digunakan adalah shortint maka akan menghasilkan angka -1. Karena
rentang maksimum tipe data shortint adalah 127, dan total rentang nilai dari
-128 sampai dengan 127 adalah 256. Jadi nilai -1 berasal dari 255 – 256.
2.
Tipe Data Bilangan Pecahan
Nama
dari tipe data bilangan pecahan adalah real. Bilangan real merupakan jenis
bilangan pecahan, dapat dituliskan secara biasa ataupun model scientific. Tipe
data bilangan real dibagi menjadi beberapa kategori seperti pada tabel berikut:
Tipe
Data
|
Ukuran
Tempat
|
Rentang
Nilai
|
|
Minimum
|
Maksimum
|
||
Real
|
6
bytes
|
2.9e-39
|
1.7e38
|
Single
|
4
bytes
|
1.5e-45
|
3.4e38
|
Double
|
8
bytes
|
5.0e-324
|
1.7e308
|
Extended
|
10
bytes
|
3.4e-4932
|
1.1e4932
|
Comp
|
8
bytes
|
-9.2e18
|
9.2e18
|
Pada
bilangan real 2.9e-39, huruf e merupakan simbol perpangkatan 10.
Jadi bilangan 2.9e-39 mempunyai nilai sama dengan 2.9 x 10-39.
3.
Tipe Data String
Nama
dari tipe data string adalah string. Tipe data string adalah kumpulan dari
beberapa karakter dan panjangnya tidak boleh melebihi 255 karakter. Jika string
mengandung tanda kutip satu (‘), maka tanda kutip tersebut harus diberi tanda
kutip lagi, atau dengan kata lain sebuah tipe data string harus diapit tanda
kutip satu. Ukuran tempat untuk tipe data ini adalah 2 sampai dengan 256 byte,
dengan jumlah elemen 1 sampai dengan 255. Bila ukuran string tidak
didefinisikan maka akan banyak memakan ruang, karena ukuran string menyesuaikan
dengan defaultnya. Misalkan, var x : string [10], karena string merupakan larik
dari karakter. Maka x[1] merupakan karakter pertama dari string, kemudian x[2],
merupakan elemen kedua, dan seterusnya. Jumlah dari karakter yang dapat
diinputkan dibatasi sampai 10 karakter saja.
4.
Tipe Data Karakter
Untuk
tipe data karakter ditulis dengan nama char. Tipe data ini menyimpan karakter
yang diketikkan dari keyboard, memiliki 266 macam yang terdapat dalam tabel
ASCII (American Standard Code for Information Interchange). Contohnya ‘a’, ‘Y’,
‘+’, ♥, dan sebagainya. Domain karakter adalah huruf di dalam alphabet,
tanda baca, operator aritatmatika dan karakter-karakter khusus. 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.
5.
Tipe Data Logika
Untuk
nama tipe data logika adalah boolean (berasal dari nama seorang ilmuan
matematika , George Boole). Tipe data logika memiliki 2 tetapan yaitu True
(benar) dan False (salah), karena pada tipe data ini hanya memiliki dua domain
nilai. Sebagai bilangan ordinal boolean True mempunyai nilai 1(satu), sedangkan
False nilainya adalah 0(nol). Berikut adalam macam-macam tipe data boolean dan
operasi yang dapat dilakukan dengan tipe data logika adalah sebagai berikut:
Tipe
Data
|
Ukuran
|
Boolean
|
1 byte
|
ByteBool
|
1 byte
|
WordBool
|
2 byte
(1 word)
|
LongBool
|
4 byte
(2 word)
|
Definisi
|
Pascal
|
Negasi
|
Not
|
Konjungsi
|
And
|
Disjungsi Inklusif
|
Or
|
Disjungsi Eksklusif
|
Xor
|
Operator penghubung untuk tipe
logika adalah =, <>, >, <, >=, <=, IN
6. Tipe Data Structured
Tipe
data structured merupakan tipe data yang terdiri lebih dari satu nilai. Jadi
misalkan kita menginputkan 2 nilai maka kita dapat membuat 2 nilai yang berbeda.
Tipe data structured masih dibagi lagi menjadi beberapa bagian yaitu:
Tipe Array
Tipe
data array atau larik adalah suatu bentuk struktur data yang menampung satu
atau lebih dari satu data yang sejenis (bertipe data sama), yang diwakili oleh
satu nama variabel yang sama. Posisi masing-masing komponen dalam array
dinyatakan dengan nomer indeks. Array mempunyai tipe indeks yang merupakan
batasan nilai.
Tipe Record
Sama
seperti tipe array yang memiliki fungsi untuk menampung lebih dari 1 data,
namun tipe data record dapat menampung data dengan variabel yang berbeda. Jadi
dengan tipe data record, dapat dikumpulkan beberapa item data yang
masing-masing mempunyai tipe data berbeda-beda. Masing- masing item data
disebut field.
Tipe
Data Pada Bahasa Pemograman Turbo Pascal
Tipe data yang disediakan oleh PASCAL meliputi:
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.
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
|
Demikian Tipe
Data Pada Bahasa Pascal, semoga bermanfaat…
Salam
Sahabat Dowerr :)
0 Response to "Tipe Data Bahasa Pascal"
Post a Comment