TIPE DATA PASCAL - lulu_mawadah.staff.gunadarma.ac.idlulu_mawadah.staff.gunadarma.ac.id/Downloads/files/42369/Tipe+data+Pascal.pdfKita telah mengenal tipe-tipe data standar di bab

Post on 07-Aug-2019

252 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

TIPE DATA

Tipe data sederhanaa. standar: integer, char,string, boolean, realb. user defined : enumerated, subrange

Tipe data terstruktur a. array, b. set, c. record,d. file

Tipe data penunjuk (Pointer)

2

TIPE DATA DALAM PASCAL

Kita telah mengenal tipe-tipe data standar di bab sebelumnya yaitu tipe data integer, real, char, string dan boolean

Disamping tipe data standar ini, pascal juga memungkinkan para user untuk mendeklarasikan sendiri tipe data sederhana yang lainnya (user defined data type)

Tipe data user define yg sederhana adalah tipe data enumerated dan subrange

ENUMERATED Deklarasi

tipe data ini harus dideklarasikan terlebih dahulu di bagian deklarasi tipe yg diawali dengan kata cadangan Typecontoh:typebahasa = (basic,fortran,pascal);hari = (senin,selasa,rabu,kamis,jumat,sabtu);

Enumerated (lanj.) Penggunaan tipe data enumerated :

typenmhari=(senin,selasa,rabu,kamis,jumat);

varhari : nmhari;

Beginfor hari:=selasa to kamis do writeln(‘pascal’);

End.

Fungsi standar untuk manipulasi data tipe enumerated di dalam Pascal ada 3 yaitu PRED, SUCC, dan ORD

Fungsi standar pred & succ Pred predecessor (urutan sebelumnya) Succ sucessor (urutan berikutnya)Syntax :

Pred(x);Succ(x);x adalah nilai ordinal yang dapat berupa nilai data tipe standar atau tipe enumerated

Contoh 1:writeln(succ(3));writeln(pred(3));

42

Contoh 2Type hari = (senin,selasa,rabu,kamis,jumat);

Succ(senin) selasasucc(rabu) kamispred(rabu) selasaPred(jumat) kamis

Fungsi standar ord Syntax:

Ord (x);x adalah nilai integer yg merupakan urutan dari data tipe ordinal bersangkutan

Contoh:type hari=(senin,selasa,rabu);var KodeHari : hari;begin

KodeHari :=senin;writeln(ord(KodeHari));

end.0

Program Enum;Type

hari_Kerja = (senin, selasa, rabu, kamis, jumat);Var

hari : hari_Kerja;Begin

hari := senin; if hari = Senin then writeln('Hari Senin')

else writeln('Hari kerja yang lain'); writeln('Hari kerja ke-',ord(hari)); Case hari of

senin : write('I don''t Like Monday'); Rabu : write('Aku sedang giat kuliah'); Jumat : write('Time to party');

end; readlnEnd.

SUBRANGE Suatu range yang menunjukkan nilai terkecil dan nilai terbesar yg

dapat dipergunakan Deklarasi:

type hari = 1..31;nilai = ‘A’..’E’;

Nilai dari subrange dpt juga berupa tipe enumerated yg telah dideklarasikan, seperti di bawah ini:type bulan=(jan,feb,mar,apr,mei,jun,jul,ags,sep,nop,des);semester1=jan..jun;semester2=jul..des;

Program Range;Uses crt;Type bil = 1..30;Var angka : bil;Begin

Clrscr; angka := 2; writeln(ord(angka));angka := angka + 4;Writeln(Angka);readln

End.

ARRAY Array adalah tipe data terstruktur yang terdiri dari

sejumlah komponen-komponen yang mempunyai tipe sama

Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya.

Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data enumerated atau subrange

Tipe array mengartikan isi dari array atau komponen-komponenya mempunyai nilai dengan tipe data tsbContoh: Var nilai : array[1..50] of Integer;

Program Contoh_Array; Uses Crt; Var Bilangan : array[1..50] of Integer;Begin

ClrScr; Bilangan[1]:=28; Bilangan[2]:=29; Bilangan[3]:=30; Bilangan[4]:=31; Bilangan[5]:=23; Writeln('nilai varibel bilangan ke 2 =',Bilangan[2]); Readln;

End.

Program Array1;Var Tiga : Array[1..3] of integer;

Empat : Array[1..4] of Char;Hasil, I : integer;

BeginTiga[1] := 20; Tiga [2] := 30; Tiga [3] := 10;Hasil := Tiga[1] + Tiga[1] + Tiga[1];Writeln('Nilai Variabel Hasil adalah ',Hasil);Empat[1] := 'A'; Empat[2] := 'B';Empat[3] := 'C'; Empat[4] := 'D';For I:=1 to 4 do writeln('Isi array Empat ke-',I,' :

',Empat[I]);Readln;

End.

DEKLARASI TIPE INDEKSindeks array menunjukkan maksimum banyaknya elemen-elemen dari arrayindeks array dapat berupa tipe subrange atau tipe enumerated apapun kecuali tipe real

Program Deklarasi_Indeks_Array; Uses Crt; Var

Jum : Array[(jan,feb,mar,apr,mei)] of Integer; Begin

Jum[jan]:=25; Jum[feb]:=45; Jum[mar]:=21; Jum[apr]:=23; Jum[mei]:=50; Writeln('Jumlah nilai bulan maret =',Jum[mar]); Readln;

End.

Var Jum : Array[(jan,feb,mar,apr,mei)] of Integer;

dapat juga ditulis :type

Bln = (jan,feb,mar,apr,mei); Var

Jum : Array[bln] of Integer; atau

type Bln =(jan,feb,mar,apr,mei);

Var Jum : Array[jan..mei] of Integer;

Deklarasi Konstanta ArrayArray tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const)

Program Deklarasi_Array_Konstan; Uses Crt; Const

Tetap : Array[1..4] of Integer=(7,10,21,20); Var

i : Integer; Begin

For i:= 1 to 4 Do Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]); Readln;

End.

konstanta array dapat juga berupa konstanta dalam bentuk char

Program Konstan_Char_; Uses Crt; Const

Huruf : Array[0..5] of Char=('A','B','C','D','E','F'); Var

i : Integer; Begin

For i:= 0 to 5 Do Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]); Readln;

End.

Konstanta array dapat juga berupa string Program Constant_String; Uses Crt; Type

A = Array [1..5] of String; Const

Nama : A = ('basic','pascal','cobol','paradox','dbase'); Var

i : Integer; Begin

For i:= 1 to 5 Do Writeln('Nilai Array ke-',i:2,'= ',Nama[i]); readln;

end.

Program Constant_String2;type bulan=(bln0,bln1,bln2,bln3,bln4,bln5);varurutanBulan:bulan;constnamabulan:array[bln1..bln5] of string[9]=(‘januari’,‘februari’, ‘maret’, ‘april’, ‘mei’);Begin

urutanBulan:=bln0;While urutanBulan < bln5 dobegin

urutanBulan:=succ(urutanBulan);writeln(‘bulan ke ‘, ord(urutanBulan):2,’ adalah’, namaBulan[urutanBulan]);

end;End.

program array2;var I, Max : integer;

data : array[1..3] of integer;begin

Max := 0;For I := 1 to 3 Do

BeginWriteln(‘Masukkan data ke-‘, I);

readln(Data[I])End;

For I := 1 to 3 Doif Data[I] > Max then Max := Data[I]else Max := Max;

write (Max);readln

end.

Array Dimensi Banyak Array dapat berdimensi lebih dari satu yang disebut

dengan array dimensi banyak (Multidimensional array). Secara prinsip, array dimensi lebih dari 2 sama dg array dimensi 2 sehingga disini akan dibahas array 2 dimensi saja.

Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.

Deklarasi array Dimensi 2nama-array = array[tipe-indeks1] of array [tipe-

indeks2] of tipe-arrayAtaunama-array=array[tipe-indeks1,tipe-indeks2] of

tipe-array

Contoh

Var Tabel : Array[1..3,1..2] of Integer; i,j : Integer;

Begin Tabel[1,1]:=1; Tabel[1,2]:=2; Tabel[2,1]:=3; Tabel[2,2]:=4; Tabel[3,1]:=5; Tabel[3,2]:=6; For I := 1 to 3 Do Begin

For J:= 1 to 2 Do Begin Writeln('Elemen ',i,',',j,'= ',tabel[i,j]); End;

End; Readln; End.

ALTERNATIF LAIN DEKLARASI ARRAY DIMENSI 2Var Tabel : Array[1..3] of Array[1..2] of Byte;

atauType Matrik = Array[1..3,1..2] of Byte; Var Tabel : Matrik;

atauType

Baris = 1..3; Kolom = 1..2; Matrik = Array[Baris,Kolom] of Byte;

Var Tabel : Matrik; atau

Type Baris = 1..3; Kolom=1..2; Matrik= Array[Baris] of Array[Kolom] of Byte;

Var Tabel : Matrik;

Var Matriks1 : Array [1..3,1..3] of integer;Matriks2 : Array [1..3,1..3] of integer;I, J : integer;

BeginFor I:=1 to 3 do

For J:=1 to 3 doBeginWrite('Masukkan angka pada Matriks1 [',I,',',J,'] = ');Readln(Matriks1[I,J]);

End;For I:=1 to 3 do

For J:=1 to 3 doMatriks2[I,J] := Matriks1[I,J] + 4;

For I:=1 to 3 doFor J:=1 to 3 doWriteln('Isi angka pada Matriks2 [',I,',',J,'] = ',Matriks2[I,J]);

ReadlnEnd.

RECORD Record terdiri dari kumpulan field

yang dapat berbeda tipe.Contoh deklarasi record:

Typepelanggan = record

kode:integer;nama:string[25];alamat:string[45];piutang:real;

end;Var

langganan : pelanggan;

Atau dapat langsung dideklarasikan langsung di variabel, sbb.

Var

langganan : recordkode:integer;nama:string[25];alamat:string[45];piutang:real;

end;

Contoh penggunaan recordType

hasil=recordsisi:real;luas:real;keliling:real;

end;Var

persegi : hasil;Begin

Writeln(‘sisi persegi?’);Readln(persegi.sisi);Persegi.luas:=persegi.sisi*persegi.sisi;Persegi.keliling:=4*persegi.sisi;Writeln(‘luas persegi :’,persegi.luas:5:2);Writeln(‘keliling persegi :’,persegi.keliling:5:2);

End.

Statement WITH

Typehasil=record

sisi:real;luas:real;kell:real;

end;Var

persegi : hasil;

BeginWith persegi dobeginWriteln(‘sisi persegi?’);Readln(sisi);luas:=sisi*sisi;keliling:=4*sisi;Writeln(‘luas persegi :’,luas:5:2);Writeln(‘keliling persegi:’,kell:5:2);end;

End.

SET (HIMPUNAN) Set (himpunan) adalah kumpulan dari obyek yg

mempunyai urutan yg dianggap sebagai satu kesatuan Tiap-tiap obyek di dalam set disebut dg anggota atau

elemen himpunan Anggota-anggota dari set harus mempunyai tipe yang

sama dan disebut dg base type Base type harus bertipe data sederhana, yaitu bertipe

ordinal(integer,boolean,char,enumerated kecuali real)

Deklarasi Setset of tipeordinal;contoh:

typedigit = set of 0..9;hurufkecil= set of ‘a’..’z’;warna= set of (merah,kuning,hijau);karakter=set of char;

di dalam Pascal, jumlah max elemen/anggota adalah 256 dan nilai-nilai ordinal dari base type harus bernilai dari 0 sampai 255

Contohtype

karakter= set of ‘a’..’z’var

hurufku : karakter;atau

var hurufku : set of ‘a’..’z’;

Pembentuk SET (Set Constructor)[1,2,3,4] nilai integer 1 sampai 4[1..4] nilai integer 1 sampai 4[2,3,5] nilai integer 2,3,dan 5[‘A’..’D’] karakter ‘A,’B’,’C’ dan ‘D’[‘Y’,’y’,’T’,’t’] karakter ‘Y,’y’,’T’ dan ‘t’[] set kosong tidak punya anggota[‘0’..’9’,’A’..’D’] karakter ‘0’ sampai ‘9’ dan

karakter ‘A’ sampai ‘D’[1..3,5,9..12] nilai integer 1,2,3,5,9,10,11 dan 12

Contoh:

var hurufku : set of ‘a’..’z’;begin

hurufku:=[‘i’..’l’,’o’..’q’];

Operasi Set1. Union atau sum (penggabungan)

[1,2,3,4]+[3,4,5,6,7]=[1,2,3,4,5,6,7]2. Set difference (selisih)

[1,2,3,4]-[3,4,5,6]=[1,2]3. Intersection atau product (irisan)

[1,2,3,4]*[3,4,5,6]=[3,4]

Penyeleksian Set1. kesamaan set (A=B)

semua anggota di kedua set sama2. ketidaksamaan set (A<>B)

semua/beberapa anggotanya tidak sama3. set inclusion

A<=B : semua anggota set A mjd anggota di set BA>=B : semua anggota set B mjd anggota di set A

4. keanggotaan setMenggunakan operator in

Program Sets( input, output );type himpunan = set of 1..40;var himp1, himp2,

Gabung, Selisih, Irisan : himpunan;nilai : integer;

beginhimp1 := [2..6];himp2 := [4..10];Gabung := himp1 + himp2 + [14..20];Selisih := himp1 - himp2;Irisan := himp1 * himp2 * [5..7];nilai := 1;while( nilai <> 0 ) do

beginwriteln('Masukkan suatu nilai integer, (0 untuk keluar)');readln( nilai );

if nilai <> 0 thenbegin

if nilai IN Gabung then writeln('Nilai dalam Gabungan himpunan')

elsewriteln('Nilai tidak dalam Gabungan himpunan');

if nilai IN Selisih thenwriteln('Nilai dalam Selisih himpunan')

elsewriteln('Nilai tidak dalam Selisih himpunan');

if nilai IN Irisan thenwriteln('Nilai dalam Irisan himpunan')

elsewriteln('Nilai tidak dalam Irisan himpunan')

end;writeln;

end;end.

POINTER Pointer adalah variabel yg menunjuk lokasi memori tertentu Pendeklarasian pointer dilakukan dengan cara yg hampir sama dg pendeklarasian

variabel biasa, bedanya anda harus menambahkan tanda ^ di depan tipe pointercontoh:type

catatankaryawan = recordkode : string[5];nama : string[25];gaji : real;

end;penunjukkaryawan = ^catatankaryawan;

var datakaryawan = penunjukkaryawan;Datakaryawan adalah var pointer yg menunjuk pd letak record catatankaryawan

Typetipestring = string[15];penunjukstring=^tipestring;

Varnama:penunjukstring;

Beginnama^:=‘pascal’;writeln(nama^);

End.

Variabel nama adl var pointer dg tipe penunjukstring

Penunjukstring adl tipe data pointer yg menunjukkan letak dari suatu nilai string[15]

Var pointer nama jg menunjukkan alamat dari letak nilai string[15]

Nama^ menunjukkan isi dari memori yg alamatnya ditunjukkan oleh variabel pointer nama (menunjukkan nilai string[15] tsb)

top related