DasProg Modul 12 TipeDataBentukan
DasProg Modul 12 TipeDataBentukan
Pengguna juga dapat memberikan nilai dari data bentukan tersebut terhadap variabel yang
didefinisikan.
Month := January;
Fungsi ordinal juga dapat digunakan untuk tipe data bentukan, seperti
pernyataan berikut:
ord(January) = 0, and ord(December) = 11.
Kelemahan tipe data bentukan adalah tidak dapat dibaca ataupun ditulis langsung ke
sebuah file. Data tersebut harus dikonversi terlebih dahulu ke dalam tipe data bentukan. Selain
itu juga tipe data bentukan tidak dapat digunakan untuk tipe data yang lainnya.
12.2 Subrange
Tipe data ordinal lainnya adalah subrange. Hampir sama dengan Type, subrange pun
memiliki format sebagai berikut:
type
datatypeidentifier = typespecification;
Format type spesificationnya adalah
lowest_value .. highest_value
Sebagai contoh bila ingin mendefinisikan hari dengan menggunakan subrange , seperti
dibawah ini :
type
DaysOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday);
DaysOfWorkWeek = Monday..Friday;
Subrange dapat juga digunakan untuk tipe data karakter dan integer.
12.3 ARRAY
Array dimensi 1
Andaikan Anda harus membaca 5000 angka dan melakukan operasi yang sama
terhadap data tersebut, bagaimana Anda mendeklarasikan ke 5000 angka tersebut kedalam
variabel?
Anda dapat saja mendeklarasikan variabel untuk 5000 angka tersebut dengan cara
aa, ab, ac, ad, ... aaa, aab, ... aba, ... : integer
Walaupun hal tersebut dapat dilakukan, tapi akan memerlukan waktu yang lama untuk
mendefiinisikannya. Ada cara lain yang dapat digunakan yaitu dengan menggunakan array.
Array adalah tipe data berstruktur yang terdiri dari beberapa elemen data, dimana etiap
elemen data tersebut memiliki tipe data yang sama. Untuk mengacu setiap elemen di dalam
array dapat dilakukan dengan menggunakan nama array dan index
Tipe data array dapat dideklarasikan sebagai berikut :
type
typename = array [enumerated_type] of another_data_type;
Array dapat dideklarasikan dengan menggunakan tipe data apapun bahkan dengan tipe
data bentukan sekalipun. Sebagai contoh :
type
enum_type
1..50;
50 bilangan
Array dimensi n
Untuk array berdimensi n, dideklarasikan dengan cara :
type
datatypeidentifier = array [enum_type1, enum_type2] of datatype;
Kurung siku digunakan untuk memisahkan dimensi dari array.
a [5, 3]
Contoh :
type
StatusType = (X, O, Blank);
BoardType = array[1..3,1..3] of StatusType;
var
Board : BoardType;
(*Inisialisasi*)
for count1 := 1 to 3 do
for count2 := 1 to 3 do
Board[count1, count2] := Blank;
12.4 Records
Record adalah salah satu tipe data terstruktur, dimana elemen-elemen data di dalamnya
memiliki tipe data yang berbeda. Sebagai contoh data mengenai orang yang terdiri dari nama,
umur, kota, dan alamat.
Record dapat dituliskan dalam format berikut :
TYPE
TypeName=record
identifierlist1:datatype_1;
...
identifierlis:datatype_n;
end;
Maka data orang dapat dinyatakan dengan record, seperti dibawah ini :
type
InfoType = record
Nama : string;
Umur : integer;
kota : String;
alamat :string;
end;
Setiap elemen data yang terdapat didalam record dapat dinyatakan sebagai sebuah field. Cara
untuk mengakses field tersebut adalah sebagai berikut :
VariableIdentifier.FieldIdentifier
Tanda titik memisahkan antara nama variabel record dengan nama field. Ada cara lain yang
dapat digunakan untuk mengakses field dalam record yaitu dengan menggunakan kata WITH
. DO, seperti dibawah ini :
WITH Info DO
BEGIN
Age := 18;
ZIP := 90210;
END;
Contoh:
1. Dibaca dua buah titik P1(x1, y1) dan P2(x2, y2). Tulislah algoritma untuk menghitung titik
tengah dari P1 dan P2, dan buatlah programnya dalam Pascal.
Titik tengah dua P1 dan P2 adalah P3(x3, y3) yang dihitung dengan rumus:
x3 = x1 + x2
dan
y3 = y1 + y2
2
Jawab:
Algoritma Titik_Tengah
Deklarasi
Type Titik : record < x: real
y: real
>
P1, P2, P3 : titik
Deskripsi
Read (P1.x, P1.y)
Latihan:
Referensi:
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Teori dan Aplikasi Program Komputer Bahasa Turbo Pascal, Andi Offset, Yogyakarta,
1997
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004