tipe data pascal

42
TIPE DATA

Upload: ridwan-mudakir

Post on 05-Nov-2015

245 views

Category:

Documents


0 download

DESCRIPTION

dasar pascal

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