Kali ini saya akan membahas tipe data subrange / sub-jangkauan. Tipe
data subrange adalah tipe data yang mengambil sebagian nilai dari tipe
ordinal lainnya. Format penulisannya :
Nilai terendah .. Nilai tertinggi
Nilai tertinggi harus benar-benar lebih tinggi dibandingkan dengan nilai terendahdan keduanya berada pada rentang nilai minimum dan maksimum dari tipe data ordinal.Sebagai contoh jika kita mendeklarasikan tipe data yang berisi hari-hari dalam seminggu dan angka dari satu sampai dengan sembilan :
type
DaysOfWeek = (Minggu, Senin, Selasa, Rabu,
Kamis, Jum'at, Sabtu);
Harikerja = Senin..Sabtu;
Angka = 1..9
Kalian juga bisa menggunakan tipe subranges untuk tipe data ordinal lain seperti integer, dan char. Pecahan tidak bisa digunakan pada tipe data subrange.
Satu hal yang perlu diperhatikan saat memberi nilai pada tipe data subrange adalah nilainya tidak boleh kurang atau lebih dari batas yg ditentukan. Kode program berikut ini akan menghasilkan error karena salah satu variabel diberi nilai tidak sesuai batas yg ditentukan.
Nilai terendah .. Nilai tertinggi
Nilai tertinggi harus benar-benar lebih tinggi dibandingkan dengan nilai terendahdan keduanya berada pada rentang nilai minimum dan maksimum dari tipe data ordinal.Sebagai contoh jika kita mendeklarasikan tipe data yang berisi hari-hari dalam seminggu dan angka dari satu sampai dengan sembilan :
type
DaysOfWeek = (Minggu, Senin, Selasa, Rabu,
Kamis, Jum'at, Sabtu);
Harikerja = Senin..Sabtu;
Angka = 1..9
Kalian juga bisa menggunakan tipe subranges untuk tipe data ordinal lain seperti integer, dan char. Pecahan tidak bisa digunakan pada tipe data subrange.
Satu hal yang perlu diperhatikan saat memberi nilai pada tipe data subrange adalah nilainya tidak boleh kurang atau lebih dari batas yg ditentukan. Kode program berikut ini akan menghasilkan error karena salah satu variabel diberi nilai tidak sesuai batas yg ditentukan.
program tipe_subrange;
uses crt;
type
satuan= 1..9;
nama_hari= (senin, selasa, rabu, kamis, jumat, sabtu, minggu);
hari_kerja= senin..sabtu;
var
a:hari_kerja;
b:satuan;
begin
clrscr;
a:= kamis;
b:= 9;
writeln('a: ', a);
writeln('b: ', b);
readln;
end.
Mana
yg salah dan menyebabkan error? Jawabannya adalah variabel a yg diberi
nilai minggu, padahal tipe data hari_kerja hanya punya nilai senin
sampai dengan sabtu. Coba ubah kode programnya menjadi seperti berikut
ini.
program tipe_subrange;
uses crt;
type
satuan= 2..9;
nama_hari= (senin, selasa, rabu, kamis, jumat, sabtu, minggu);
hari_kerja= senin..sabtu;
var
a:hari_kerja;
b:satuan;
begin
clrscr;
a:= senin;
b:= 9;
writeln('a: ', a);
writeln('b: ', ord(b));
readln;
end.