• Tidak ada hasil yang ditemukan

TIPE DATA DALAM PASCAL

N/A
N/A
Protected

Academic year: 2021

Membagikan "TIPE DATA DALAM PASCAL"

Copied!
42
0
0

Teks penuh

(1)
(2)

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

(3)

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

(4)

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);

(5)

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

(6)

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

(7)

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

(8)

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.

(9)

 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.

(10)

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;

(11)

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.

(12)

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.

(13)

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

(14)

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;

(15)

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.

(16)

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

(17)

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;

(18)

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

(19)

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;

(20)

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;

(21)

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;

(22)

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.

(23)

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

(24)

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.

(25)

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

(26)

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.

(27)

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;

(28)

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

(29)

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;

(30)

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.

(31)

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;

(32)

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

(33)

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

(34)

Contoh

type

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

var

hurufku : karakter;

atau

(35)

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’

(36)

Contoh:

var

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

begin

(37)

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)

(38)

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

(39)

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 );

(40)

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;

(41)

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;

(42)

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

Referensi

Dokumen terkait

Secara keseluruhan Manajemen Pengembangan Pariwisata Kabupaten Semarang di Dinas Pemuda, Olahraga, Kebudayaan dan Pariwisata Kabupaten Semarang sudah baik, disini

Hal tersebut akan menyebabkan kerusakan habitat ikan sehingga kuantitas ikan akan mengalami penurunan dan bahkan bisa punah.Guna mengurangi dampak adanya kegiatan tangkap

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

Melaui model pembelajaran Kooperatif (Cooperative Learning) tipe Number Head Together (NHT) dan Student Team Achievment Division (STAD), siswa diharapkan dapat

data sekunder, kemudian dilanjutkan dengan penelitian data primer di lapangan atau masyarakat., yaitu tentang praktik perlindungan hukum terhadap saksi dalam proses

Penelitian yang akan dilakukan berpijak pada landasan teori yang ada dan setelah disandingkan dengan fenomena yang berkembang di Kantor Penanaman Modal dan Pelayanan Terpadu

Yang dimaksud dengan Pejabat Fungsional Perekayasa yang disesuaikan Penetapan Angka Kreditnya dengan Peraturan Kepala Badan Pengkajian dan Penerapan Teknologi ini adalah