• Tidak ada hasil yang ditemukan

TIPE DATA DALAM PASCAL

N/A
N/A
Protected

Academic year: 2021

Membagikan "TIPE DATA DALAM PASCAL"

Copied!
14
0
0

Teks penuh

(1)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 1

TIPE DATA DALAM PASCAL

Dalam Pascal, menentukan tipe data suatu variabel, berarti sekaligus menentukan batasan nilai variabel tersebut dan jenis operasi yang dapat dilaksanakan pada variabel tersebut. Tipe data yang terdapat dalam Turbo Pascal dapat digambarkan sebagai berikut :

Integer Shortint Longint Boolean Tipe ordinal Char

Byte Word

Tipe sederhana Subrange (Subjangkauan) (SimpleType) Terbilang (Enumerated)

Tipe string Tipe real Tipe Data

Tipe terstruktur larik (Array) (Structured Type) rekaman (Record)

himpunan (Set) berkas (File) Tipe Pointer

Gambar 1 Bagan tipe data dalam Pascal.

Bentuk umum dari deklarasi tipe adalah

Type pengenal = tipe;

Dalam satu program dapat dideklarasikan beberapa tipe yang berbeda, tapi harus ada pengenal yang dapat membedakan tipe data yang dideklarasikan tersebut. Contoh:

Type Bulat = integer; Jumlah = Byte; Nilai1 = Shortint; Logika = Boolean; Huruf = String[25];

(2)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 2 Dari contoh di atas, tipe data integer, byte, shortint, boolean, dan string dapat digantikan dengan kata Bulat, Jumlah, Nilai1, Logika, dan Huruf dalam deklarasi variabel. Contoh: Var Total : Bulat; Juml : Jumlah; Nilai : Nilai1; Status : Logika; Kata : Huruf;

Selain itu, tipe data dapat juga langsung deklarasikan pada saat pendeklarasian variable. Contoh: Var Total : Integer; Juml : byte; Nilai : Shortint; Status : Boolean; Kata : String;

Tipe data dalam pascal seperti yang terlihat pada gambar 1 dapat dijelaskan sebagai berikut :

1. Data tipe sederhana ( simple-type data).

Tipe data sederhana juga disebut dengan tipe data skalar. Data tipe ini dihubungkan dengan sebuah identifier untuk suatu data. Tipe data sederhana dapat dibagi dua yaitu tipe data ordinal dan tipe data real.

a) Tipe data ordinal.

Tipe data ordinal mempunyai 4 karakteristik yaitu sebagai berikut :

 Nilai dari tipe data ordinal mempunyai nilai yang berurutan. Semua nilai kecuali yang pertama mempunyai nilai pendahulu (predesor) dan semua nilai kecuali yang terakhir mempunyai suksesor.

 Fungsi standard ord dapat diterapkan pada sembarang tipe ordinal untuk mengetahui ordinalitasnya.

 Fungsi standard pred, berfungsi untuk mengetahui predesornya. Jika fungsi ini diterapkan pada nilai pertama, akan menyebabkan kesalahan.

(3)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 3

 Fungsi standard succ, berfungsi untuk mengetahui suksesornya. Jika fungsi ini diterapkan pada nilai yang terakhir akan menyebabkan kesalahan.

Ada beberapa macam tipe data yang dapat diklasifikasikan dalam tipe data ordinal, antara lain adalah sebagai berikut:

Tipe Data Integer

Tipe integer adalah tipe data yang nilainya tidak mempunyai titik desimal. Ada lima tipe data yang termasuk dalam tipe data integer, yaitu shortint, integer, longint, byte, dan word. Batas nilai untuk masing-masing tipe data di atas dapat dilihat pada tabel 1 berikut.

Tabel 1 Batas Nilai Tipe Integer

Tipe Batas Nilai Ukuran dalam byte Byte 0...255 1 Shortint -128…127 1 Integer -32768…32767 2 Word 0…65535 2 Longint -2147483648…214748647 4 Contoh: Type Bulat = integer; Jumlah = Byte; Nilai1 = Shortint; Begin ……… End.

Untuk data tipe integer, Turbo Pacal juga menyediakan konstanta standard bernama MaxInt yang bernilai 32767 dan MaxLongInt yang bernilai 2147483647. Kedua konstanta ini dapat digunakan dalam program tanpa didefinisikan terlebih dahulu.

Tipe Data Boolean

Tipe data boolean mempunyai dua buah nilai, yaitu True (Benar) dan False (Salah). Tipe data boolean dapat digunakan untuk mengendalikan loop, indikator end of file, ataupun kondisi TRUE atau FALSE dalam program.

(4)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 4 Contoh:

Ada tiga variabel yang bertipe boolean yaitu CheckIn, Tiket, dan Periksa. Ketiga variabel diatas mewakili persyaratan administrasi untuk naik ke pesawat terbang.

Tiket bernilai TRUE jika penumpang mempunyai tiket, jika tidak berarti FALSE.

CheckIn bernilai TRUE jika penumpang sudah melakukan CheckIn dan memperoleh boarder pass, jika tidak maka bernilai FALSE.

Periksa bernilai TRUE jika penumpang telah memeriksakan barang bawaannya, jika tidak berarti FALSE.

Maka deklarasi tipe data untuk variabel tersebut diatas adalah:

Var

Tiket, CheckIn, Periksa : Boolean; Begin

Tiket := TRUE; CheckIn := TRUE; Periksa := TRUE; If Tiket AND CheckIn AND Periksa Then

WriteLn(‘Administrasi lengkap, Anda boleh masuk!’); Else

WriteLn(‘Administrasi Belum Lengkap!’); End.

Tipe Data Char

Tipe data Char dapat digunakan untuk mendefinisikan tipe data yang nilainya merupakan himpunan karakter yang dikenal komputer seperti yang terdapat pada tabel kode ASCII. Nilai data karakter ditulis diantara tanda petik tunggal, seperti misalnya ‘A’, ‘a’, ‘!’, ‘%’, ‘5”, dan sebagainya.

Contoh:

Var

Karakter : Char; Begin

Karakter := ‘A’;

WriteLn(‘Karakter tersebut = ‘,Karakter); End.

(5)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 5 Tipe Data Terbilang (Enumerated Data Types)

Disebut data terbilang karena semua nilai disebut satu per satu. Tipe data ini didefinisikan oleh user di dalam program. Tujuan utama dari dari tipe data ini adalah untuk mengijinkan programmer untuk membuat nama data yang berarti. Kadang lebih mudah menggunakan tipe data terbilang dibanding menginput data sebagai string.

Bentuk umum :

type

datatypeidentifier = typespecification;

Bentuk umum typespecification:

(identifier1, identifier2, ... identifiern)

Contoh:

type

MonthType = (January, February, March, April, May, June,July, August, September, October, November, December);

Vehicle = (Bicycle, Motorcycle, Car, Train);

School = (Primary, Elementary, Junior High, Senior High, College, University);

Dan kemudian dideklarasikan variabel.

var Month : MonthType; Ride : Vehicle; Study : School; Begin ……

for Month := January to December do …… {*Mengerjakan statement perulangan*} end.

Perlu diperhatikan bahwa dalam tipe data terbilang (enumerated data-types), semua data harus diletakkan diantara tanda kurung. Urutan data perlu diperhatikan karena akan mempengaruhi nilai fungsi pred dan succ.

Pred(February) adalah January Succ(February) adalah March

Tipe Data Subjangkauan (Subrange Data-type)

Batasan nilai untuk suatu variabel merupakan bagian dari data yang didefinisikan oleh programmer. Misalnya subrange untuk nilai akademis adalah 0

(6)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 6 sampai 100 atau A sampai E. Data subrange dapat didefinisikan pada data ordinal yang sebelumnya telah didefinisikan terlebih dahulu.

Bentuk umum:

Type pengenal = Nilai Terendah…Nilai tertinggi Nilai terendah < nilai tertinggi.

Contoh: type

DaysOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

{* Menunjukkan nama hari dalam satu minggu*} DaysOfWorkWeek = Monday..Friday;

{*Menunjukkan hari kerja dalam seminggu*}

Type

Nilai = 0…100;{*Jangkauan nilai dari 0 sampai 100*}

b) Tipe Data Real

Data tipe real adalah salah satu dari tipe data sederhana selain tipe ordinal. Konstanta bertipe real adalah bilangan yang berisi titik desimal. Paling sedikit harus ada satu digit sesudah titik desimal. Bilangan real juga bisa dinyatakan dalam bentuk eksponensial. Pangkat dari bilangan dasar 10 (yang digunakan untuk menunjukkan eksponensial) dinyatakan dengan notasi E. Dalam Pascal terdapat lima macam tipe data real yaitu real, single, double, extended, dan comp. Batasan masing-masing tipe dapat dilihat pada tabel 2 berikut.

Tabel 2. Tipe real dan batasannya

Tipe Batasan Nilai Angka Signifikan Byte Real 2.9 x 10E-39 .. 1.7 x 10E38 11 – 12 6 Single 1.5 x 10E-45 .. 3.4 x 10E38 7 – 8 4 Double 5.0 x 10E-324 .. 1.7 x 10E308 15 - 16 8 Extended 1.9 x 10E-4951 .. 1.1 x 10E4932 19 – 20 10

Comp -2E63 +1 .. 2E63 - 1 19 - 20 8

Contoh:

Var

S : single; D : Double; E : Extended;

(7)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 7

C : Comp;

2. Tipe String

Data tipe string merupakan data yang berisi sederetan karakter yang banyaknya karakter bisa berubah-ubah sesuai kebutuhan, yaitu dari 1 sampai 255 karakter. Tipe string yang tidak dinyatakan panjang karakternya dianggap mempunyai 255 karakter. Data string terletak diantara dua tanda petik tunggal.

Bentuk umum:

type pengenal = string[panjang];

Contoh:

Var

Tanggal : string[10]; Hari : string[6];

Spasi : Char;

3. Tipe data terstruktur (structured-type data).

Dalam tipe data terstruktur setiap variabel bisa menyimpan lebih dari satu nilai data yang disebut komponen. Karakteristik tipe data ini ditentukan berdasarkan cara penstrukturan dan tipe data masing-masing komponen. Jika komponennya juga terstruktur maka tipe terstruktur yang dihasilkan juga lebih dari sebuah tingkat perstrukturan dan bisa tidak terbatas. Ada empat buah tipe data terstruktur, yaitu array, record, set, dan file.

a) Tipe Array

Tipe data terstruktur yang mempunyai komponen dalam jumlah tetap dan setiap komponen mempunyai tipe data yang sama. Posisi masing-masing data dalam array dinyatakan sebagai nomor indeks. Array dapat bertipe byte, word, integer, real, boolean, char, atau string dan juga subrange. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi, maupun banyak dimensi.

var

arrayname : array [x..y] of vartype; contoh:

var

ourdata : array[1..100] of byte; myarray : array[5..25] of char;

(8)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 8 Artinya adalah bahwa terdapat 100 elemen dalam array ourdata, indeks array tersebut dimulai dari 1 dan terdapat 20 elemen yang terdapat disarray myarray

dan indeks arrau tersebut dimulai dari 5. Array Multidimensi

Bentuk umum array multidimensi adalah sebagai berikut:

type

datatypeidentifier = array[enum_type1,enum_type2] of datatype;

Contoh:

var

table : array[1..5, 1..3] of byte; {* array dua dimensi *}

Cara mengakses :

table[5,3]:=5; table[1,2]:=4;

table[4,1]:=table[1,2]*table[5,3]; var

table3d : array [1..5, 1..4, 1..6] of byte; {* array tiga dimensi *}

Cara aksesnya sama:

table3d[3,4,5]:=6;

Dan begitu juga dengan array 4 dimensi dan seterusnya:

var

table4d : array[1..2, 1..3, 1..4, 1..5] of byte; {* array empat dimensi *}

Array Of Record

Berhubungan dengan tipe record, maka dapat juga dibuat array of record. Array of record akan dibahas pada pembahasan tipe record.

b) Tipe Record

Tipe data record adalah kumpulan tipe data dengan tipe yang berbeda satu sama lain. Tipe data record dipakai pada data akademis mahasiswa, data gaji pegawai, data persediaan barang, dan lain-lain.

Bentuk umum: Type TypeName = record identifierlist1 : datatype1; ... identifierlistn : datatypen; end;

(9)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 9 Contoh: type TEmployee = record name : string[25]; address : string[40]; age : byte; position : string[10]; commision : real; end; var x : TEmployee;

Deklarasi tipe record diatas dapat diakses dengan cara berikut:

begin

x.name := 'Paul Doherty';

x.address := '11th Kingston Avenue'; x.age := 35;

x.position := 'Salesman'; x.commision := 0.10;

end.

Untuk mengakses data record, statement with...do adalah statement yang tepat. Dapat dilihat pada contoh berikut.

begin

with x do begin

name := 'Paul Doherty';

address := '11th Kingston Avenue'; age := 35; position := 'Salesman'; commision := 0.10; end; end. Array Of Record

Data record dibutuhkan untuk menangani data yang lebih dari satu tipe, dan jumlah data untuk satu deklarasi record bisa lebih dari satu, untuk itu dapat digunakan array of record. Cara mendeklarasikan array of record sama dengan mendeklarasikan array biasa.

Contoh:

var

MyEmployee : array[1..100] of TEmployee;

Misalkan akan diakses elemen array of record yang pertama.

begin

(10)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 10

MyEmployee[1].address := '11th Kingston Avenue'; MyEmployee[1].age := 35;

MyEmployee[1].position := 'Salesman'; MyEmployee[1].commision := 0.10;

end.

Cara mengaksesnya dengan statement with.

begin

with MyEmployee[1] do begin

name := 'Paul Doherty';

address := '11th Kingston Avenue'; age := 35;

position := 'Salesman'; commision := 0.10;

end; end.

c) Tipe Himpunan (Set).

Himpunan adalah kumpulan obyek dengan mempunyai tipe data yang sama dan urutan penulisannya tidak diperhatikan. Setiap obyek di dalam suatu himpunan disebut anggota atau elemen-elemen himpunan. Sifat-sifat himpunan dalam pascal sama dengan sifat himpunan dalam matematika.

Bentuk umum:

Type pengenal = set of type;

Himpunan dapat juga dideklarasikan dalam deklarasi variabel.

Variabel

pengenal : set of tipe_data;

Contoh:

type

days = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

var

allday : set of days;

workday : set of Monday .. Friday; thisday : days;

begin

thisday:=Monday;

if thisday in workday then

writeln('This day I''m in work') else

writeln('This day I''m on holiday'); end.

Misalkan ada variabel myday, didefinisikan sebagai set sebagai berikut.

(11)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 11

myday : set of days;

Biasanya isi myday adalah Sunday, Monday,… Saturday. Seandainya kita tidak ingin memasukkan Wednesday dan Friday ke dalam set, maka dapat dilakukan sebagai berikut.

exclude(myday,Wednesday);

exclude(myday,Friday);

Untuk memasukkan Friday kembali ke dalam set dapat dilakukan seperti contoh berikut.

include(myday,Friday);

d) Tipe Berkas (File).

Tipe data berkas adalah kumpulan sejumlah komponen yang bertipe sama, yang jumlahnya tidak tertentu, dan biasanya tersimpan dalam suatu media penyimpanan luar. Jumlah dalam komponen berkas dapat ditambah jika diperlukan. Data yang ada di dalam berkas dapat digunakan oleh sembarang program yang tipe datanya disesuaikan dengan kebutuhan. Dalam Pascal dikenal juga berkas teks. Komponen-komponen dalam berkas teks membentuk suatu baris dan setiap baris diakhiri dengan tanda akhir baris (end Of Line, Carriage return, atau line feed). Dan setiap berkas selalu diakhiri dengan end of file atau Ctrl Z.

Bentuk umum:

Type pengenal = file of pengenal1;

Contoh:

Const Jumlah_Mk = 5; Type Nilai = record

Nama_Mhs : String[25]; No-Mhs : String[5]; Angkatan : String[5];

Nilai_Ujian : array[1..Jumlah_Mk] Of Integer; Rata_Rata : real;

D_Nilai = File of Nilai; Var

Daf_Nilai : D_Nilai;

(12)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 12 Data ini digunakan untuk membuat data terstruktur tipe dinamik.Variabel akan dialokasikan pada saat dibutuhkan dan setelah selesai dapat didealokasikan kembali.

Bentuk umum:

Var <NamaVar> : <^TipeData>;

Contoh: Type StringType = String[15]; StringPointer = ^StringType; Var Name : StringPointer; NameData : String; Begin Name^ := ‘Samples’; NameData := ‘Samples’; End;

Dalam contoh diatas variabel Name adalah variabel pointer. Variabel ini tidak berisi data, tetapi berisi alamat letak dari data yang ditunjuk. Variabel nama adalah variabel pointer dengan tipe StringPointer, sedang StringPointer adalah suatu tipe data pointer yang mnunjukkan letak dari nilai String[15]. Sedang Name^ menunjukkan isi dari memori yang alamatnya ditunjukkan oleh variabel pointer Name atau dengan kata lain menunjukkan nilai String[15] tersebut. Sedangkan Variabel NameData berisi data berupa string yaitu ‘Samples’.

Pendeklarasian variabel pointer tidak jauh berbeda dengan pendeklarasian variabel biasa, hanya perlu ditambahkan simbol topi (^) sebelum tipe datanya. Simbol topi tersebut menandakan bahwa variabel tersebut menunjuk ke lokasi tertentu pada memori.

Variabel pointer dapat juga dibuat bertipe record. Pendeklarasiannya adalah seperti berikut ini.

Bentuk Umum: Type <NamaPointer> = <^NamaRecord>; <NamaRecord> = Record <Item1>:<tipeData1>; <Item2>:<tipeData2>; ……. <ItemN>:<TipeDataN>; End; Var <NamaVar> : <NamaPointer>;

(13)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 13 Dalam Pointer dikenal variabel dinamik yang dapat dibuat dan dialokasikan dengan prosedur standar NEW.

Bentuk umum: New(Variabel) Contoh : Type Str20 = String[20]; PointMhs = ^RecMhs; RecMhs = record; Nama : String[25]; NIM : String[10]; Alm : String[30]; IPK : real; End; Var

DataMhs1, DataMhs2, DataMhs3,

DataMhs4, DataMhs5, DataMhs6 : PointMhs; Begin New(DataMhs1); New(DataMhs2); New(DataMhs3); New(DataMhs4); New(DataMhs5); New(DataMhs6); . . .

Prosedure New hanya mengalokasikan variabel dinamik di heap, belum mengisi dengan nilai datanya. Untuk memasukkan data ke variabel dinamik dapat dilakukan seperti biasa pada variabel statik.

Misalnya : DataMhs1^.Nama := ‘Deviyanti’; DataMhs1^.NIM := ‘00403’;

Deviyanti 00403

DataMhs1

DataMhs2

Jika diberi Statemen: DataMhs1 := DataMhs2 maka gambar diatas akan berubah menjadi.

(14)

Pusat Pengembangan Pendidikan – Universitas Gadjah Mada 14

Deviyanti 00403

DataMhs1

DataMhs2

Operasi diatas disebut operasi mengkopi pointer, konsekuensinya, simpul yang semula ditunjuk oleh suatu pointer akan bisa terlepas dan tidak bisa dimasup lagi. Kembali ke gambar sebelumnya. Jika statemen DataMhs1^ := DataMhs2^

dibuat maka gambar tersebut akan berubah menjadi:

Deviyanti 00403

DataMhs1

DataMhs2 Deviyanti 00403

Operasi diatas disebut operasi mengkopi isi simpul. Konsekuensinya adalah isi kedua simpul sama.

Variabel dinamik dapat dihapus dari heap dengan menggunakan prosedur standar Dispose dan prosedur standar Mark dan Release.

Contoh :

Dispose(DataMhs3^);

Prosedur Standar release digunakan untuk menghapus sejumlah variabel dinamik mulai dari suatu variabel dinamik tertentu sampai dengan variabel dinamik terakhir. Contoh : New(DataMhs1); New(DataMhs2); New(DataMhs3); Mark(Hapus); New(DataMhs4); New(DataMhs5); New(DataMhs6); Release(Hapus);

Statement diatas akan menyebabkan enam buah data dinamik dialokasikan ke heap dan variabel hapus akan menandai letak dari data variabel yang akan dihapus. Dengan adanya statemen Release maka variabel dinamik dimulai dari letak yang ditunjukkan variabel pointer hapus akan dihapus. Dalam hal ini yang terhapus adalah DataMhs4, DataMhs5, dan DataMhs6.

Gambar

Gambar 1 Bagan tipe data dalam Pascal.
Tabel 1 Batas Nilai Tipe Integer

Referensi

Dokumen terkait

Bahkan dalam Pasal 29 butir (e) disebutkan bahwa konsumen listrik berhak mendapat ganti rugi apabila terjadi pemadaman listrik akibat kesalahan/ kelalaian

Berikut adalah daftar Abstrak yang diterima untuk dipresentasikan pada Seminar Nasional Matematika II yang diselenggarakan oleh Jurusan Matematika FMIPA Universitas

Sampel pada penelitian eksperimental ini adalah ekstrak bawang putih ( Allium sativum Linn ) yang dibuat dengan cara maserasi.. Hasil : Hasil untuk uji aktivitas antibakteri

Jika nyamuk tersebut menggigit anak yang sedang mengandung virus demam berdarah di darahnya, nyamuk itu akan dapat menyebarkannya kepada anak yang lain..

Tumbuh optimum pada suhu 30-37˚C dan tumbuh baik pada NaCl 1-3% serta pendapat Nguyen et al (2006) yang menyatakan bahwa bakteri Bacillus sp tidak mampu tumbuh pada media

Dalam mencapai tujuan yang diharapkan, kegiatan PPMT periode II di Lingkungan Bandung dilakukan pemanfaatan lahan atau pekarangan kosong sebagai tempat untuk

Retnaningati (2011), melakukan penelitian di SMA Negeri 3 Surakarta menggunakan Model Pembelajaran Siklus Belajar (Learning Cycle) Untuk Meningkatkan Ke- terampilan Proses

Penelitian mengenai Program Perbaikan Kampung: Proyek Muhammad Husni Thamrin di Jakarta Tahun 1969-1979 ini ditujukan untuk melengkapi penulisan tentang sejarah