Tipe data sederhana
a. standar: integer, char,string, boolean, real
b. user defined : enumerated, subrange
Tipe data terstruktur
a. array,
b. set,
c. record,
d. file
Tipe data penunjuk (Pointer)
2
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
ENUMERATED
Deklarasi
tipe data ini harus dideklarasikan terlebih dahulu di
bagian deklarasi tipe yg diawali dengan kata cadangan
Type
contoh:
type
bahasa = (basic,fortran,pascal);
Enumerated (lanj.)
Penggunaan tipe data enumerated :type
nmhari=(senin,selasa,rabu,kamis,jumat);
var
hari : nmhari; Begin
for hari:=selasa to kamis do writeln(‘pascal’); End.
Fungsi standar untuk manipulasi data tipe enumerated di dalam
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));
4
2
Contoh 2
Type hari = (senin,selasa,rabu,kamis,jumat);
Succ(senin) selasa succ(rabu) kamis pred(rabu) selasa Pred(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.
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; readln End.
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;
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 tsb
Contoh:
Var
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;
Program Array1;
Var Tiga : Array[1..3] of integer; Empat : Array[1..4] of Char; Hasil, I : integer;
Begin
Tiga[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 INDEKS
indeks array menunjukkan maksimum banyaknya
elemen-elemen dari array
indeks 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;
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
Deklarasi Konstanta Array
Array 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;
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;
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;
Program Constant_String2;
type bulan=(bln0,bln1,bln2,bln3,bln4,bln5); var
urutanBulan:bulan; const
namabulan:array[bln1..bln5] of string[9]=(‘januari’,‘februari’, ‘maret’, ‘april’, ‘mei’); Begin urutanBulan:=bln0; While urutanBulan < bln5 do begin 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 Begin
Writeln(‘Masukkan data ke-‘, I); readln(Data[I])
End;
For I := 1 to 3 Do
if Data[I] > Max then Max := Data[I] else Max := Max;
write (Max); readln
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 2
nama-array =
array
[tipe-indeks1]
of array
[tipe-indeks2]
of
tipe-array
Atau
nama-array=
array
[tipe-indeks1,tipe-indeks2]
of
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 2
Var Tabel : Array[1..3] of Array[1..2] of Byte;
atau
Type Matrik = Array[1..3,1..2] of Byte; Var Tabel : Matrik;
atau
Type
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;
Begin
For I:=1 to 3 do
For J:=1 to 3 do Begin
Write('Masukkan angka pada Matriks1 [',I,',',J,'] = '); Readln(Matriks1[I,J]); End; For I:=1 to 3 do For J:=1 to 3 do Matriks2[I,J] := Matriks1[I,J] + 4; For I:=1 to 3 do For J:=1 to 3 do
Writeln('Isi angka pada Matriks2 [',I,',',J,'] = ',Matriks2[I,J]); Readln
RECORD
Record terdiri dari kumpulan field
yang dapat berbeda tipe. Contoh deklarasi record: Type pelanggan = 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 : record kode:integer; nama:string[25]; alamat:string[45]; piutang:real; end;
Contoh penggunaan record Type hasil=record sisi: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 Type hasil=record sisi:real; luas:real; kell:real; end; Var persegi : hasil; Begin With persegi do begin Writeln(‘sisi persegi?’); Readln(sisi); luas:=sisi*sisi; keliling:=4*sisi;
Writeln(‘luas persegi :’,luas:5:2); Writeln(‘keliling persegi:’,kell:5:2); 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
Deklarasi Set
set of
tipeordinal;
contoh:
type
digit = 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
Contoh
type
karakter= set of ‘a’..’z’
var
hurufku : karakter;
atau
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’
Contoh:
var
hurufku : set of ‘a’..’z’;
begin
Operasi Set
1.
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)
Penyeleksian Set
1. kesamaan set (A=B)
semua anggota di kedua set sama 2. ketidaksamaan set (A<>B)
semua/beberapa anggotanya tidak sama 3. set inclusion
A<=B : semua anggota set A mjd anggota di set B A>=B : semua anggota set B mjd anggota di set A 4. keanggotaan set
Program Sets( input, output ); type himpunan = set of 1..40; var himp1, himp2,
Gabung, Selisih, Irisan : himpunan; nilai : integer;
begin
himp1 := [2..6]; himp2 := [4..10];
Gabung := himp1 + himp2 + [14..20]; Selisih := himp1 - himp2;
Irisan := himp1 * himp2 * [5..7]; nilai := 1;
while( nilai <> 0 ) do begin
writeln('Masukkan suatu nilai integer, (0 untuk keluar)'); readln( nilai );
if nilai <> 0 then begin
if nilai IN Gabung then
writeln('Nilai dalam Gabungan himpunan') else
writeln('Nilai tidak dalam Gabungan himpunan'); if nilai IN Selisih then
writeln('Nilai dalam Selisih himpunan') else
writeln('Nilai tidak dalam Selisih himpunan'); if nilai IN Irisan then
writeln('Nilai dalam Irisan himpunan') else
writeln('Nilai tidak dalam Irisan himpunan') end;
writeln; 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 pointer contoh: type catatankaryawan = record kode : string[5]; nama : string[25]; gaji : real; end; penunjukkaryawan = ^catatankaryawan; var datakaryawan = penunjukkaryawan;
Type tipestring = string[15]; penunjukstring=^tipestring; Var nama:penunjukstring; Begin nama^:=‘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