• Tidak ada hasil yang ditemukan

variabel). Cara Pendefinisian Contoh: type A = array [1..6] of integer; elemen array misal A[1]:=4;.

N/A
N/A
Protected

Academic year: 2021

Membagikan "variabel). Cara Pendefinisian Contoh: type A = array [1..6] of integer; elemen array misal A[1]:=4;."

Copied!
33
0
0

Teks penuh

(1)

ARRAY DAN

ARRAY DAN

Materi

Materi

ARRAY DAN

ARRAY DAN RECORD

RECORD

Materi

Materi 66

(2)

ARRAY

ARRAY

Sebuah struktur data yang terdiri atas

sama, dimana masing-masing elemen

Setiap elemen array mampu untuk

variabel).

Cara Pendefinisian

Contoh: type A = array [1..6] of integer;

Secara logika pendefinisian array di

dimana tiap kotak mempunyai nilai indeks

array ditandai dengan: A[1], A[2], A[

elemen array misal A[1]:=4;.

1 2 3 4

ARRAY

ARRAY

atas banyak variabel dengan tipe data

elemen variabel mempunyai nilai indeks.

untuk menyimpan satu jenis data (yaitu:

;

atas merupakan sekumpulan kotak,

indeks integer 1, 2, 3, ...,6 tiap elemen

A[3], A[4], A[5], A[6] untuk mengisi

22

(3)

SIFAT ARRAY

Array merupakan struktur data yang statis ditentukan terlebih dahulu dan tak bisa menyatakan array dalam PASCAL kita harus elemen array .

Contoh: const N=10;

type A= array [1..N] of integer;

SIFAT ARRAY

statis, yaitu jumlah elemen yang ada harus bisa diubah saat program berjalan. Untuk harus terlebih dahulu Mendefinisikan jumlah

(4)

Array Satu

Type nama_array = ARRAY[bawah..atas] of tipe_data;

var variabel_array : nama_array;

Atau

var variabel_array :

ARRAY[bawah..atas] of tipe_data;

#jika kita ingin membuat beberapa array dengan tipe/jenis yang sama, kita lebih baik jika mendeklarasikan dengan type selanjutnya dengan deklarasi var.

Satu Dimensi

44

Contoh Program Array 1 dimensi program INT_ARRAY;

uses wincrt; const N=10;

type int_array = ARRAY [1..N] of integer; var bil : int_array; indeks : integer; BEGIN

writeln('masukkan sepuluh bilangan integer.'); for indeks := 1 to 10 do

begin

readln(bil[indeks]);

{ loop untuk memasukkan elemen array } end; writeln('Isi dari array ini adalah');

{ tampilkan setiap elemen } for indeks := 1 to 10 do begin

writeln('bil[', indeks:2,'] adalah ',bil[indeks] ); End

(5)

Array Multidimensi

Dalam array multidimensi terdiri atas baris (row) dan kolom (column). Index pertama adalah baris dan yang kedua adalah kolom.

Sintaks:

Type nama_array =ARRAY[bawah..atas, bawah..atas

of tipe_data; var variabel_array: nama_array;

atau

SYNTAX var variabel_array: ARRAY [bawah..atas

bawah..atas] of tipe_data;

# Pernyataan berikut membentuk suatu array integer dengan nama bilangan , 10 x 10 elemen (100).

type matriks = ARRAY [1..10, 1..10] of integer; var AKU: matriks;

Multidimensi

dan yang atas] atas, integer 55 ARRAY [ 1..5, 1..5]

A[1,1] A[1,2] A[1,3] A[1,4] A[1,5] A[2,1] A[2,2] A[2,5] A[3,1] A[3,3] A[3,5] A[4,1] A[4,4] A[4,5] A[5,1] A[5,5]

(6)

Contoh Program

Procedure ISI_MATRIK(AKU:matriks; m,n:integer); var i,j: integer;

{faktor pengulang} begin for i:=1 to m do begin for j:=1 to n do begin gotoxy(x+2i.y+2y); read(A[i,j]); end; readln ;

{ini memungkinkan kita menulis tiap baris elemen

end; 66

);

(7)

Memproses

Misal diberikan deklarasi suatu array sebagai

VARX : ARRAY [1..10] OF integer; Untuk keperluan membaca variabel X (input)

sebuah data bernilai tunggal, yaitu READ (X) Sebab jika kita membaca/input suatu variabel elemen-elemen array tersebut.

Untuk itu diperlukan suatu bentuk perulangan

FOR I := 1 TO 10 DO READ ( X[1] ); Demikian pula halnya untuk keperluan

ditunjukkan elemen yang akan diproses.

Memproses Array

sebagai berikut :

VARX : ARRAY [1..10] OF integer;

(input) kita tidak bisa melakukan seperti (X).

variabel berjenis array berarti kita membaca

perulangan seperti berikut : FOR I := 1 TO 10 DO READ ( X[1] );

keperluan memproses elemen-elemennya, harus

(8)

Contoh 1:

Misal terdapat 10 bilangan integer positif yang Tentukan integer yang terbesar diantara 10 integer Penyelesaiannya :

PROGRAM MAKS ;

VAR B : ARRAY [1..10] OF integer; I,J,MAX : integer;

Begin

FOR I := 1 TO 10 DO READ(B[I}); MAX := B[1];

FOR J := 2 TO 10 DO

IF MAX <= B[J] THEN MAX := B[I} WRITE (MAX);

End.

yang berbeda disimpan di dalam suatu array B. integer tersebut dengan suatu program Pascal.

;

B[I};

(9)

Contoh 2:

Dari soal contoh 1 di atas, buat program yang Penyelesaiannya :

PROGRAM RATA_RATA; TYPE INDEKS = 1..10;

VAR A : ARRAY [INDEKS] OF INTEGER; I : INTEGER; TOTAL : INTEGER; RATA2 : REAL; BEGIN Total := 0; FOR I := 1 TO 10 DO BEGIN READ (A[I]);

TOTAL := TOTAL + A[I]; END;

RATA2 := TOTAL / 10; WRITE (RATA2);

END.

menghitung rata-rata dari 10 bilangan tersebut.

(10)

RECORD

Record dapat dikatakan sebagai suatu

mempunyai jenis data berbeda.

Data item yang merupakan elemen record

Bentuk Umum:

TYPE identifier = RECORD Nama_field_1 : jenis; Nama_field_2 : jenis; ……….. ……….. nama_field_n : jenis; END;

RECORD

kumpulan data item yang masing-masing biasanya disebut dengan FIELD.

10 10

(11)

Contoh :

1. VAR nilai : RECORD Nilai_1 : integer; Nilai_2 : integer; END;

2. TYPE date = RECORD Tanggal : 1..31; Bulan : 1…12;

Tahun : 1900..2000; END;

VAR event1,event2 : ARRAY [1..10] OF date; 3. END VAR 11 11

TYPE account = RECORD cust_no : integer; cust_type : char; cust_balance : real; END;

(12)

MEMPROSES VARIABEL BERJENIS RECORD Perhatikan deklarasi variabel berikut :

TYPE nilai : RECORD Nilai1 : real;

Nilai2 : real; END;

VAR x,y : nilai;

# Untuk memproses variabel x dan / atauy dilakukan dengan cara menyebutkan field designatornya, yg terdiri dari atas :

Nama_record.nama_field

Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah :

x.nilai1 x.nilai2 y.nilai1 y.nilai2

Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk statement-nya adalah :

READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);

dengan

maka

12 12

Selanjutnya, misal ingin dibuat program sederhana untuk menjumlahkan dua bilangan kompleks a dan b yang hasilnya disimpan di c.

Secara aljabar penjumlahan dua bilangan kompleks adalah sebagai berikut :

a = x1 + iy1 b = x2 + iy2 +

c = (x1 + x2 ) + I(y1 + y2)

Maka bentuk garis besar programnya adalah sebagai berikut : Program contoh ; Type bk = record Bag_nyata : integer; Bag_imajiner : integer; End; Var a,b,c : bk; Begin

Read (a.bag_nyata, a.bag_imajiner, b.bag_nyata, b.bag_imajiner);

c.bag_nyata := a.bag_nyata + b.bag_imajiner; c.bag_imajiner := a.bag_imajiner + b.bag_imajiner; writeln(c.bag_nyata,’ +’,’i’,c.bag_imajiner);

(13)

STATEMENT “WITH”

Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat digunakan statement WITH. Dengan statement ini penulisannya akan lebih sederhana.

Bentuk Umum:

WITH nama_record DO statement Perhatikan deklarasi dibawah ini : TYPE x = RECORD No : integer; Kode : char; Juml : integer; Harga : real; END; VAR p,q : x;

STATEMENT “WITH”

13 13

Untuk membaca variabel p dan q di samping dengan memanfaatkan statement WITH bentuknya menjadi :

WITH p,q DO read (no, kode, juml, harga); Bandingkan jika digunakan cara sebelumnya :

Read (p.no, p.kode, p.juml, p.harga, q.no, q.kode, q.juml, q.harga);

(14)

CONTOH :

Pernyataan seperti : Data.npm :=‘22297566’ Data.Nama:=‘Abdul Kadir’ Data.Fakultas:=‘Teknik’

Dapat diganti dengan : WITH Data Do Begin npm :=‘22297566’ Nama:=‘Abdul Kadir’ Fakultas:=‘Teknik’ end; Apabila di dalam record, haruslah dengan nama yang Type BarangX Batu Kayu END; BarangY Batu Kayu END; Var brg_X brg_Y 14 14

dalam pernyataan WITH terdapat lebih dari satu haruslah pada kedua record tersebut tidak ada field

yang sama. Sebagai contoh :

BarangX=RECORD Batu:integer; Kayu:real; BarangY=RECORD Batu:string[10]; Kayu:char; brg_X:barangX; brg_Y:barangY;

(15)

d) Fungsi standar INT

Bentuk umum : INT(x:real):real;

Digunakan untuk menghasilkan nilai integer dengan nilai yang berupa pembulatan ke bawah Contoh :

Begin

X:=9.99;

Write(‘Nilai yang akan dibulatkan = ‘ ,X); Writeln(‘Nilai pembulatannya = ‘,Int(X):3:2); End.

Hasil :

Nilai yang akan dibulatkan = 9.99 Nilai pembulatannya = 9.00

integer dari x. hasil dari fungsi adalah tipe real bawah (nilai pecahan dibuang) dari nilai x.

= ‘ ,X); (X):3:2);

15 15

(16)

e) Fungsi standar FRAC

Bentuk umum : FRAC(x:):real;

Digunakan untuk mendapatkan nilai pecahan bernilai real maupun integer dan hasil dari

Contoh : Begin

X:=9.99;

Write(‘Nilai X = ‘,X, ‘Nilai pecahannya End.

Hasilnya : Nilai X = 9.99 Nilai pecahannya

pecahan dari argumen x. Argumen x dapat dari fungsi adalah real.

= ‘,Frac(X):4:3);

pecahannya = 0.990

16 16

(17)

f) Fungsi standar SQR Bentuk umum : SQR(x);

Digunakan untuk menghitung nilai pangkat kuadrat dari Real atau Integer dan hasil Fungsinya akan sama dengan Contoh :

Program Misal5; Var

X : Real; Begin

Write(‘Nilai yang akan dikuadratkan ?’); Readln Writeln(‘Nilai kuadratnya =’, SQR(X):9:2);

End. Output :

Nilai yang akan dikuadratkan ? 5 Nilai kuadratnya = 25.00

dari argumen X. Argumen X dapat berbentuk tipe dengan tipe argumennya.

Readln(X);

17 17

(18)

Karena kedua variabel record brg_X dan brg_Y kemudian dikenakan pernyataan :

WITH brg_X, brg_Y Do Begin

writeln(batu); writeln(kayu); End;

dapat menyebabkan hasil tidak seperti yang diharapkan

brg_Y memiliki nama field yang sama, Jika misalnya

diharapkan.

18 18

(19)

Record yang

Suatu record dengan field yang bisa

berubah pada saat program berjalan. Hal yang perlu diperhatikan adalah bahwa beberapa field yang berada dalam record tidak pernah muncul dalam serempak hanya akan ada satu field yang terpakai dalam satu saat.

Record varian akan memberikan fasilitas

untuk menentukan field yang diperlukan pada saat program berjalan (RUN-TIME), berdasarkan keperluannya.

Record yang Bervariasi

bisa Hal bahwa record serempak, terpakai fasilitas diperlukan TIME), 19 19

Bentuk umum Record Varian :

TYPE namarecord = RECORD Nama_field_1 : jenis;

Nama_field_2 : jenis; ………..

nama_field_n : jenis; Case Tagfield: jenis Of

nama_tagfield : (Nama_field:jenis); nama_tagfield: (Nama_field_1, Nama_field_2:jenis); ……….. nama_tagfield: (Nama_field_n:jenis); END;

(20)

Contoh :

Type status=(T,P,J);

gaji=RECORD

napeg :string[25];

nopeg :string[10];

bagian :string[15];

CASE stat :status OF

T:(gaji:integer);

P:(gajiperjam,jmlmax:integer)

J:(upahperjam,lembur:integer

end;

);

integer);

20 20

(21)

Array tipe record type barang=RECORD namabrg:string[20]; jmlbrg:byte; hargabrg:real; total:real; end;

var jual:array [1..10] of barang i,j:integer;

tot1:real; Begin

I:=1;

write(‘Nama barang :’);readln(jual[i].nmbrg); Repeat

write(‘Jumlah barang :’);readln(jual[i].jmlbrg); write(‘Harga barang :’);readln(jual[i].hrgbrg); jual[i].total:=jual[i].jmlbrg* jual[i]. jual[i].hrg.brg; inc (I);

write(‘Nama barang :’);readln(jual[i].nmbrg); until (jual[i].nmbrg=‘0’) or (I=11);

dec clrscr writeln writeln writeln for begin gotoxy gotoxy gotoxy gotoxy gotoxy tot end writeln writeln writeln end 21 21 dec(i); clrscr; writeln (‘---’); writeln (‘No nama barang jumlah harga total’);

writeln (‘---’); for j:=1 to I do begin gotoxy(1,j+3);write (j); gotoxy(5,j+3);write(jual[i].nmbrg); gotoxy(26,j+3);write(jual[i].jmlbrg:10); gotoxy(37,j+3);write(jual[i].hrgbrg:10:2); gotoxy(48,j+3);write(jual[i].total:10:2); tot1:=tot1 + jual[j].total ; end; writeln (‘---’); writeln(‘ Total :’,tot1:10:2’);

writeln (‘---’); end.

(22)

Array dalam record

Type barang= RECORD nmbrg:string[20]; jmlbrg:array[1..3]of byte; hrgbrg:real; total:real; end; var jual:barang; tbarang, i:integer; Begin clrscr;

write(‘Nama Barang :’);readln(jual.nmbrg); for i:=1to 3 do

otal Harga Barang = ‘, jual.total:10:2);

end. 2222

begin

write(‘Jumlah barang ’,I,’ : ’);readln(jual.jmlbrg[i]); tbarang:=tbarang+jual.jmlbrg[i]; end;

write(‘Harga barang :’);readln(jual.hrgbrg); jual.total:=tbarang*jual.hrgbrg;

writeln(‘Total Harga Barang = ‘, jual.total:10:2);

(23)

SET (HIMPUNAN)

Set adalah kumpulan dari nilai-nilai yang

yang sama dan urutan penulisannya tidak diperhatikan disebut dengan anggota atau elemen himpunan

1. Huruf vokal dalam alfabet 2. kendaraan bermotor

3. binatang menyusui

4. bilangan genap 1 sampai 100 5. dan sebagainya

Set termasuk ke dalam tipe data terstruktur

sama dan harus bertipe data ordinal yang memiliki Berbeda dengan tipe data array, tipe data SET

kedua dan seterusnya. Pada tipe data SET tidak

SET (HIMPUNAN)

yang memiliki kesamaan sifat, yaitu tipe data diperhatikan. Setiap obyek dalam himpunan himpunan. Contoh :

terstruktur, terdiri dari sejumlah elemen yang bertipe memiliki nilai terletak antara 0 sampai 255. SET tidak mengenal elemen pertama, elemen tidak terdapat elemen yang bernilai sama.

23 23

(24)

Deklarasi SET (

Dapat dideklarasikan dalam deklarasi tipe data : Type variabel_set = SET OF tipe_data;

Dapat pula dideklarasikan dalam deklarasi Var variabel_set = SET OF tipe_data;

SET (Himpunan)

data : ; var data : 24 24

(25)

Contoh : Type

kata = set of char; {tipe dasar} huruf besar =‘A’..’Z’; {subrange} Perintah = set of hurufbesar ;

Hari = (senin,selasa,rabu,kamis,jumat,sabtu,minggu Hari2 = set of Hari;

Pilihan = set of 1..7 {subrange dalam bentuk bilangan Var

hurufkecil :set of‘a’..’z’; kapital : hurufbesar; hariseminggu : hari2; Kalimat : kata;

Dalam keadaan awal, suatu variabel yang bertipe merupakan suatu variabel kosong, dinyatakan dengan

senin,selasa,rabu,kamis,jumat,sabtu,minggu); {enumerasi}

bilangan};

bertipe data SET belum terisi. Variabel tersebut dengan tanda[ ]. 2525

(26)

Contoh program memberikan nilai untuk tipe Program SET1;

type

Hari = (senin,selasa,rabu,kamis,jumat,sabtu,minggu Hari2 = set of Hari;

var hariseminggu:hari2; begin hariseminggu:=[selasa, kamis,sabtu]; end. data SET : senin,selasa,rabu,kamis,jumat,sabtu,minggu); {enumerasi} 26 26

(27)

Operasi SET (

1. Operasi Penjumlahan

Disebut juga operasi penggabungan (UNION), Operatornya (+).

Contoh :

A:= [‘B’,’F’,’J’,’L’];

A:= A + [‘a’,’B’,’b’,’c’,’d’,’e’,’f’,’j’,’k’,’l’];

maka nilai A sekarang adalah [‘B’,’F’,’J’,’L’,‘a’,’b’,’c’,’d’,’e’,’f’,’j’,’k’,’l’]

Maka nilai W adalah [1,2,3]

SET (Himpunan)

27 27

2. Operasi Pengurangan

Disebut juga operasi selisih SET, operatornya (-).

Misal :

SET1 - SET2, menghasilkan elemen yang merupakan anggota SET1 yang bukan

anggota SET2. Contoh :

A:=[1,2,3,4,5]; B:=[4,5,6,7]; W:=A-B;

(28)

3. Operasi Perkalian

Disebut juga operasi Intersection (irisan), operatornya Misal :

SET1 - SET2, menghasilkan elemen yang merupakan merupakan anggota SET2.

Contoh :

1. A:=[1,2,3,4,5]; B:=[1,3,5,6,7]; C:=A*B;

Maka nilai C adalah [1,3,5]

operatornya (*).

merupakan anggota SET1 dan sekaligus

28 28

2. D:=[1,2,3,4,5]; E:=[6,7,8,9,10]; F:=A*B;

(29)

Perbandingan dalam

Contoh :

1. [3,4,5]=[4,5,3] hasil TRUE 2. [c,d]=[d,g,c] hasil FALSE 3. [2,4]< >[2,3] hasil TRUE 4. f in [‘a’..’z’] hasil TRUE

dalam SET (Himpunan)

29 29 5. [2,1] < = [1,2,3] hasil TRUE 6. [5,6,7] > = [7,6] hasil TRUE 7. 3 in [4,5,3,2] hasil TRUE 8. [2,1] > = [1,2] hasil TRUE

(30)

Contoh

Contoh Program

Program Perbandingan

Perbandingan

Program Set1; Uses crt;

Type kbil=set of byte; var kbil1,kabil2:kabil;

a,b:byte; begin

clrscr;

write(‘Tentukan batas bawah :’);readln(a); {Input Himpunan write(‘Tentukan batas Atas:’);readln(b);

Kbil1:=[a..b];

write(‘Tentukan batas bawah :’);readln(a); {Input Himpunan write(‘Tentukan batas Atas:’);readln(b);

Kbil2:=[a..b];

if kbil1= kbil2 then writeln(‘Himpunan 1 sama dengan if kbil1 < > kbil2 then writeln(‘Himpunan 1 tidak sama if kbil1< = kbil2 then writeln(‘Himpunan 1 anggota dari if kbil1> = kbil2 then writeln(‘Himpunan 1 mempunyai end.

Perbandingan

Perbandingan SET

SET

Himpunan Pertama} Himpunan Kedua} Himpunan 2’); dengan Himpunan 2’); dari Himpunan 2’); anggota Himpunan 2’); 30 30

(31)

Contoh

Contoh Program Operator IN

Program Operator IN

Program set2; uses crt;

type karakter= set of char; var kapital : karakter;

hidup : karakter; jumlahh,jumlahk : integer; kalimat : string; i:integer; begin clrscr; kapital:=[‘A’..’Z’]; hidup:=[‘A’,’E’,’I’,’O’,’U’,’a’,’e’,’i’,’o’,’u’]; jumlahh:=0;

Program Operator IN

Program Operator IN

31 31 jumlahk:=0;

writeln(‘Masukkan suatu kalimat :’); readlne (kalimat);

for I:=1 to length(kalimat) do begin

if kalimat[i] in kapital then inc(jumlahk); if kalimat[i] in hidup then inc(jumlahh); end;

writeln(‘Jumlah kapital =‘,jumlahk);

writeln(‘Jumlah huruf hidup =‘,jumlahh); end.

(32)

Aplikasi Penggunaan

Program bacakarakter; uses crt;

type karakter=set of char; var pilihan:char; function bacakar(pesan:string;pilihansah:karakter):char; var ch:char; begin write(pesan); repeat ch:=upcase(readkey); until(ch in pilihansah); writeln(ch); bacakar:=ch; end;

SET dalam Program

):char; 32 32 {Program utama} Begin clrscr; repeat

Pilihan:=bacakar(‘Anda :(T)ulis Halo, (B)el,(S)elesai’,[‘T’,’B’,’S’]); Case pilihan of ‘T’:writeln(‘Hallo...’); ‘B’:writeln(‘bel’+ #7); ‘S’:writeln(‘Terimakasih’); end; Until pilihan =‘S’; end.

(33)

TERIMAKASIH

TERIMAKASIH

Lilis Setyowati

33 33

Referensi

Dokumen terkait

pembudidaya di kelurahan Meruya Selatan atau tepatnya di kawasan Kayon, dengan bapak H.Gupron,…..saya mulai usaha penjualan dan budidaya sejak tahun 1980 sebelum dibangunnya

Secara terinci, matriks aktualisasi telah mencoba menjabarkan masing-masing sila dari Pancasila mulai dari perwujudan dan aktualisasinya, hingga implikasinya dalam penanganan

Segala puji syukur penyusun panjatkan kehadirat Allah SWT, karena dengan rahmat dan karunia-Nya dapat menyelesaikan skripsi yang berjudul “Pemberian Mulsa dan

Pembangunan Rumah Oleh Perum Perumnas Provinsi Jawa Barat Tahun 2011. No Nama

Pertumbuhan : Merupakan tanaman vigor, type semi determinate,toleran layu bakteri dan cocok didataran rendah dan tinggi.. Cabai

Permainan ini sesuai dengan terjemahannya, bermain peran, memiliki penekanan pada tokoh/peran perwakilan pemain di dalam game, yang biasanya adalah tokoh utamanya, dimana

Islam tempat penting tentang memaafkan individu sehingga seseorang dapat menerima pengampunan dari Allah atas dosa-dosa sendiri, dan dapat memiliki kebahagiaan pada

Berdasarkan tahapan dan hasil penelitian yang telah dilakukan, terdapat beberapa simpulan yang dapat diambil. Kemudian setelah dilakukan pencarian undisturbed bit