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

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:

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.

Contoh kode program untuk tipe data subrange pascal

Dalam kode program diatas, saya mendefenisikan sebuah tipe data subrange 'satuan' 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:

type
  satuan= 11..99;

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

program tipe_subrange;
uses crt;
type
  satuan= 1..9;
var
  a,b: satuan;
begin
  clrscr;
 
  a:= 10;
  writeln('a: ',a);
 
  readln;
end.

Error untuk tipe data subrange

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:

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.

Contoh kode program untuk tipe data subrange pascal

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:

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?

Error untuk tipe data subrange

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:

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 kode program untuk tipe data subrange dari enumeration pascal

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.


eBook Pascal Uncover Duniailkom
Apabila anda serius ingin mempelajari Pascal dan butuh materi Pascal yang jauh lebih lengkap, Duniailkom telah menerbitkan eBook Pascal Uncover yang membahas bahasa pemrograman Pascal dari dasar hingga procedure, function dan contoh kasus. Penjelasan lebih lanjut bisa ke eBook Pascal Uncover Duniailkom.

6 Comments

  1. Muhammad Ihsan
    02 Nov 15
    • Andre
      02 Nov 15
      • Muhammad Ihsan
        05 Nov 15
        • Andre
          05 Nov 15
    • Vina
      22 Jun 22
  2. Chandra
    06 Dec 19

Add Comment