Post on 05-Nov-2015
description
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..zvar
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 (AB)
semua/beberapa anggotanya tidak sama3. set inclusion
A=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)