Anda di halaman 1dari 8

12

TIPE DATA BENTUKAN

12.1 Tipe Data Type


Bahasa pemrograman seperti Pascal, sudah mendefinisikan tipe data yang dapat
digunakan, akan tetapi pengguna/user dapat juga mendefinisikan sendiri tipe data. Caranya
adalah dengan mendeklarasikan TYPE pada program. Sintak yang dapat digunakan untuk
mendefinisilkan TYPE adalah sebagai berikut :
type
datatypeidentifier = typespecification;
Format typespecification adalah :
(identifier1, identifier2, ... identifiern)
Sebagai contoh tipe data bentukan untuk mendefinisikan nama bulan satu tahun. Perhatikan
contoh berikut :
type
MonthType = (January, February, March, April, May, June, July,
August, September, October, November, December);
Setelah mendeklarasikan tipe maka tipe data bentukan itu dapat digunakan untuk variabel,
seperti dibawah ini :
var
Month : MonthType;

Pengguna juga dapat memberikan nilai dari data bentukan tersebut terhadap variabel yang
didefinisikan.

Dasar pemrograman/ Modul_12_TipeDataBentukan

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

Dasar pemrograman/ Modul_12_TipeDataBentukan

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;

arraytype = array [enum_type] of integer


Deklarasi diatas dapat juga didefinisikan dengan cara berikut :
type
arraytype = array [1..50] of integer;
Tipe data array akan sangat berguna jika data yang akan disimpan berukuran besar.
Array juga pada umumnya digunakan dengan menggunakan bentuk perulangan (loop) karena

Dasar pemrograman/ Modul_12_TipeDataBentukan

dapat diakses dengan menggunakan index. Sebagai contoh untuk membaca

50 bilangan

integer, maka dapat dikodekan sebagai berikut :


type arraytype = array[1..50] of integer;
var myarray : arraytype;
(*membaca 50 bilangan*)
for count := 1 to 50 do
read (myarray[count]);
Kurung siku digunakan diantara index pada saat mengakses elemen array.
myarray[5] := 6;

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

Dasar pemrograman/ Modul_12_TipeDataBentukan

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

Dasar pemrograman/ Modul_12_TipeDataBentukan

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)

{baca titik P1}

Read (P2.x, P2.y)

{baca titk P2}

P3.x (P1.x + P2.x) / 2


P3.y (P1.y + P2.y) / 2
Write (P3.x, P3.y)

Dasar pemrograman/ Modul_12_TipeDataBentukan

Berikut ini adalah Program yang dituliskan dengan Bahasa Pascal:


Program Titik_Tengah;
Type Titik = record
x : real;
y: real;
end;
var
P1, P2, P3 : Titik;
Begin
Write(Nilai x pada P1 (x1) : ); readln(P1.x);
Write(Nilai y pada P1 (y1) : ); readln(P1.y);
Write(Nilai x pada P2 (x2) : ); readln(P2.x);
write(Nilai y pada P2 (y2) : ); readln(P2.y);
P3.x := (P1.x + P2.x) / 2;
P3.y := (P1.y + P2.y) / 2;
Writeln(Koordinat P1 = (,P1.x,, ,P1.y,));
Writeln(Koordinat P2 = (,P2.x,, ,P2.y,));
Writeln(Titik tengah dari P1 dan P2= (,P3.x,, ,P3.y,));
End.

Jika Program dijalankan maka akan memberikan hasil seperti berikut:


Nilai x pada P1 (x1) : 4
Nilai y pada P1 (y1) : 8
Nilai x pada P2 (x2) : 2
Nilai y pada P2 (y2) : 6
Koordinat P1 = (4, 8)
Koordinat P2 = (2, 6)
Titik tengah dari P1 dan P2= (3, 7)

Latihan:

Dasar pemrograman/ Modul_12_TipeDataBentukan

1. Apakah perbedaan record dengan array?


2. Dapatkah sebuah record mempunyai elemen sebuah record juga? Bagaimana cara mengaksesnya?
3. Tulislah program untuk menampilkan sejumlah data pegawai yang terdiri dari Nomor pegawai, nama
pegawai, alamat, jabatan, gaji dan jenis kelamin. Banyaknya jumlah pegawai ditentukan oleh
pengguna.
4. Buatlah algoritma untuk menghitung rata-rata dari beberapa nilai mahasiswa, banyaknya nilai yang
akan dihitung berdasarkan masukan dari pengguna program.

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

Dasar pemrograman/ Modul_12_TipeDataBentukan

Anda mungkin juga menyukai