Tutorial Belajar Pascal Part 18: Pengertian dan Cara Penggunaan Tipe Data Subrange Pascal

60

Yodha.web.id – Sama seperti tipe data enumerated, tipe data subrange juga merupakan tipe data yang dibentuk sendiri. Kali ini saya akan membahas lebih dalam tentang pengertian dan cara penggunaan tipe data subrange pascal.


Pengertian Tipe Data Subrange Pascal

Sesuai dengan namanya, tipe data subrange merupakan tipe data bentukan yang berasal dari bagian (sub) tipe data lain yang berada dalam sebuah jangkauan (range).

Sebagai contoh, kita bisa membatasi sebuah tipe data “satuan” dimana hanya bisa diisi dengan angka 1 hingga 9. Angka 1 sampai dengan 9 merupakan bagian (sub) dari tipe data integer. Jika kita mencoba mengisi tipe data “satuan” ini dengan angka selain 1-9, Pascal akan memberikan error.


Cara Penggunaan Tipe Data Subrange Pascal

Untuk membuat tipe data subrange, caranya hampir sama dengan tipe data enumerated, dimana kita harus mendefenisikannya di bagian type, kemudan baru membuatnya sebagai variabel di bagian var. Berikut contohnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program tipe_subrange;
uses crt;
type
  satuan= 1..9;
var
  a,b: satuan;
begin
  clrscr;
 
  a:= 2;
  writeln('a: ',a);
 
  b:= 7;
  writeln('b: ',b);
 
  readln;
end.

Dalam kode program diatas, saya mendefenisikan sebuah tipe data subrangesatuan’ dengan angka 1 hingga 9. Tanda titik dua ‘..’ digunakan untuk membatasi seberapa jauh jangkauan untuk satuan ini.

 Jika saya ingin membuat tipe data ‘puluhan’ yang terdiri dari angka 11 hingga 99 maka penulisannya adalah sebagai berikut:
1
2
type
  satuan= 11..99;

Apa yang terjadi jika kita memberikan angka diluar jangkauan tipe data subrange? Berikut contohnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
program tipe_subrange;
uses crt;
type
  satuan= 1..9;
var
  a,b: satuan;
begin
  clrscr;
 
  a:= 10;
  writeln('a: ',a);
 
  readln;
end.

Hasilnya, compiler FreePascal akan menghasilkan error: range check error while evaluating constants, yang artinya nilai tersebut berada di luar range (jangkauan) yang telah ditetapkan, dimana saya mencoba memberikan nilai 10.

Kita tidak dibatasi untuk menggunakan angka saja, tapi bisa juga menggunakan karakter huruf sebagai tipe data subrange. Berikut contohnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program tipe_subrange;
uses crt;
type
  huruf= 'A'..'F';
var
  a,b: huruf;
begin
  clrscr;
 
  a:= 'A';
  writeln('a: ',a);
 
  B:= 'C';
  writeln('b: ',b);
 
  readln;
end.

Kali ini saya membuat tipe data subrange ‘huruf’ yang dibatasi dari huruf ‘A’ hingga ‘F’. Perhatikan tanda kutip untuk huruf-huruf ini, karena huruf tersebut adalah bagian (subrange) dari tipe data char yang harus dibuat dengan tanda kutip.

Yang juga perlu diperhatikan, huruf ‘A’ tidak sama dengan huruf ‘a’, seperti contoh kasus berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
program tipe_subrange;
uses crt;
type
  huruf= 'A'..'F';
var
  a,b: huruf;
begin
  clrscr;
 
  a:= 'a';
  writeln('a: ',a);
 
  readln;
end.

Kali ini saya mencoba memberikan nilai ‘a’ kepada variabel a yang didefenisikan sebagai subrange ‘huruf’. Hasilnya?

Yup, Pascal kembali komplain karena huruf ‘a’ tidak ada di dalam subrange.

Walaupun sehari-hari kita menyamakan ‘A’ (huruf A besar) dengan ‘a’ (huruf ‘a’ kecil), komputer tidak memahami hal ini. Jika anda telah mempelajari tutorial tentang tipe data char, kedua karakter ini sebenarnya memiliki nomor ASCII yang berbeda, sehingga hasilnya tidak sama.


Cara Penggunaan Tipe Data Subrange dari Enumerated

Untuk membuatnya lebih kompleks (dan juga lebih fleksibel), kita bisa membuat tipe data subrange dari yang isinya berasal dari tipe data enumerated. Langsung saja kita masuk ke contoh programnya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program tipe_enumeration;
uses crt;
type
  nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
  hari_kerja= senin..jumat;
  weekend= sabtu..minggu;
var
  a:hari_kerja;
  b:weekend;
begin
  clrscr;
 
  a:= kamis;
  writeln('a: ',a);
 
  b:= sabtu;
  writeln('b: ',b);
 
  readln;
end.

Contoh diatas saya ambil dari kode program dari tutorial tipe data enumeration, dimana saya mendefenisikan nama_hari sebagai tipe data enumerated. Namun kali ini saya membuat tipe data subrange hari_kerja dan weekend dari nama_hari.

Konsep penggabungan enumerated dan subrange ini mungkin cukup rumit, tapi jika anda telah memahami tutorial sebelumnya tentang enumeration, saya rasa bisa memahami cara kerja kode program diatas. Silahkan diubah-ubah dan lihat bagaimana hasilnya.


Selanjutnya, kita akan membahas tipe data array, yang (hampir) selalu hadir dalam setiap bahasa pemrograman.