๐ Daftar Isi
Pada artikel sebelumnya kita telah membahas berbagai tipe data pada bahasa pascal. Mari mengingat lagi terkait tipe data pada pascal khususnya tipe data ordinal.
Tipe data ordinal terbagi menjadi dua bagian:
- Tipe data standaar
- Tipe data yang ditentukan oleh user (user-defined)
Tipe data standard termasuk di dalamnya INTEGER, CHAR, dan BOOLEAN yang menjadi pembahasan di artikel-artikel sebelumnya. Sedangkan user-define type terdiri dari enumerated (terbilang) dan subrange. Untuk tipe data lainnya yang masuk dalam kategori tipe data terstruktur seperti array akan dibahas pada artikel selanjutnya.
Enumerated
Nilai dari variabel dituliskan ke dalam daftar. Nilai yang ada di dalam daftar dapat direpresentasikan dalam small integer 0 sampai n-1. Kita bisa menggunakan operasi ORD, PRED, dan SUCC terhadap elemen-elemennya. Contoh tipe data enumerated:
var
bulan : (jan,feb,mar,apr)
{setiap elemen masing-masing bernilai 0,1,2, dan 3}
Operasi pada Enumerated Types
Operasi | Nama |
---|---|
Sama dengan | = |
Tidak sama dengan | <> |
Kurang dari | < |
Kurang dari sama dengan | <= |
Lebih dari | > |
Lebih dari sama dengan | >= |
Predecessor | pred |
Successor | succ |
Ordinal number | ord |
Contoh 1
program Ordnum
var
brand : (Lenovo, HP, Asus, Acer); {ada 4 item}
begin
writeln(ORD(Lenovo)); {output 0}
writeln(ORD(HP))); {output 1}
writeln(ORD(Asus )); {output 2}
writeln(ORD(Acer))); {output 3}
writeln(PRED(Asus)); {output HP}
writeln(SUCC(Asus)); {output Acer}
end.
Contoh 2
program bulanenum;
var
month : (jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov.des);
begin
writeln;
for month:= jan to dec do
write(ord(month),' ');
end.
Subrange
Subrange merupakan salah satu tipe data yangg ditentukan oleh user (user defined). Dapat menghindarkan suatu nilai variabel melebihi batas yang ingin kita tentukan (out of range). Nilai yang berada di luar range tidak diperbolehkan.
var
type-identifier : lowerlimit..upperlimit
Deklarasi
var
month : 1..12; {integer}
uppercase : 'A'..'Z'; {char}
lowercase : 'a'..'z'; {char}
month := 13; {akan menghasilkan error}
Contoh 1
program subrange1;
var
monthnumber : 1..12;
begin
write('Masukkan bulan dalam angka : ');readln(monthnumber);
case monthnumber of
12,1,2 : writeln('Saat ini musim dingin');
3,4,5 : writeln('Saat ini musim semi');
6,7,8 : writeln('Saat ini musim panas');
9,10,11 : writeln('Saat ini musim gugur');
end;
end.
Contoh 2
program totalmark;
type
mark=1..100;
var
s1,s2,s3:mark;
total:integer;
begin
writeln('Masukkan 3 marks');readln(s1,s2,s3);
total:=s1+s2+s3;
writeln('Total marks : ',total);
end.
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Tipe Data Enumerasi dan Subrange, daftar lengkapnya adalah sebagai berikut.