• Tidak ada hasil yang ditemukan

Pemrograman Pascal tingkat Dasar POLITEK

N/A
N/A
Protected

Academic year: 2018

Membagikan "Pemrograman Pascal tingkat Dasar POLITEK"

Copied!
20
0
0

Teks penuh

(1)

M

M

M

O

O

O

D

D

D

U

U

U

L

L

L

1

1

1

Mengenal Pemrograman Pascal

T

T

IIPPEE

D

D

AATTAADDAALLAAMM

P

P

AASSCCAALL

Tipe data adalah jenis data yang dipergunakan dalam pascal untuk mengklasifikasikan penyimpanan dan pemrosesan data.

Tipe Data Bilangan Bulat (integer)

Tipe

Memory

Jangkauan nilai

Byte 1

0..255

Shortint 1

-128..127

Integer 2

-32768..32767

Word 2

0..65535

Longint 4

-2147483648..2147483647

Tipe Data Floating Point (REAL)

Tipe

Memory

Jangkauan nilai

Real 6

2.9x10

-39

s/d

1.7x10

+38

Single 4

1.5x10

-45

s/d

3.4x10

+38

Double 8

5.0x10

-324

s/d

1.7x10

+308

Extended 10

3.4x10

-4932

s/d

1.1x10

+4932

Comp 8

-2x10

+63

+1

s/d

+2x10

+63

-1

O

O

PPEERRAATTOORR

D

D

AALLAAMM

P

P

AASSCCAALL

(2)

Operator Aritmatik dan Hirarkinya

Operator

Keterangan

* , /

Perkalian, pembagian

+ , -

Pertambahan, pengurangan

DIV

Pembagian bulat (integer)

MOD

Sisa pembagian

Operator Relasi

Operator

Keterangan

>, >=

Lebih besar, lebih besar sama dengan

<, <=

Lebih kecil, lebih kecil sama dengan

=

Sama dengan

<>

Tidak sama dengan

Operator Logika

Operator

Keterangan

AND

Logika DAN

OR

Logika ATAU

NOT

Logika TIDAK

E

E

KKSSPPRREESSII

Merupakan bentuk penryataan tertentu sesuai dengan tipe data tertentu, contoh : ‘BANDUNG’, 100, 3.1416, ‘Jl Jakarta 12’, 10/12/2002, True/False, ‘a’.

V

V

AARRIIAABBEELLDDAANN

K

K

OONNSSTTAANNTTAA

Variabel merupakan tempat dalam memory komputer yang mempunyai alamat, ukuran, tipe data dan

nilai tertentu yang nilainya dapat berubah, sedangkan adalah konstanta tempat dalam memory komputer yang mempunyai alamat, ukuran, tipe data dan nilai tertentu yang nilainya tetap

S

S

TTRRUUKKTTUURR

P

P

RROOGGRRAAMM

P

P

AASSCCAALL

.

Kepala Program atau Header merupakan bagian kepala program

yang bertugas mendeklarasikan atau mempersiapkan segala kebutuhan yang akan dipakai dalam program

Header Program terdiri dari penyataan :

Program, Uses, Type, Const, Var.

Badan Program atau body merupakan tempat untuk menuliskan

kode program / perintah program yang didesain sesuai dengan permasalahan

Badan Program terdiri dari sub program dan program utama.

PROGRAM Test11; BEGIN

WRITE (’Test Program’); WRITELN(’Turbo Pascal’); WRITELN(’Versi 7.0’); WRITELN;

WRITE (’Borland International’); END.

Setelah program selesai diketik ada beberapa langkah yang harus dilakukan yaitu :

1. Tekan ALT + F9 : berguna untuk meng-compile program yang sedang aktif pada editor 2. Tekan CTRL + F9 : berguna untu menjalankan / run program yang aktif pada editor 3. Tekan ALT + F5 : berguna umtuk melihat (user screen) hasil running dari program

PROGRAM : ...

Keterangan :

(3)

BEGIN  END. : ...

WRITELN(’Kotak pertama berisi bola sebanyak = ’, A); WRITELN(’Kotak kedua berisi bola sebanyak = ’, B1); WRITELN(’Jumlah bola pada kedua kotak sebanyak = ’, B2); B1 := B2 DIV 4;

WRITELN(B2, ’ Bola dibagi untuk 4 orang, masing masing dapat = ’ , B1); B1 := B2 MOD 4;

WRITELN(’Sisa bola yang tidak terbagikan sebanyak = ’ , B1); END.

WRITELN(’Isi A dengan Format = ’, A:5:2); WRITELN(’Isi B dengan Format = ’, B:5:2); WRITELN;

WRITELN(’Kemudian’); A := B + 1;

B := B * 12;

WRITELN(’Isi A dengan Format = ’, A:8:0); WRITELN(’Isi B dengan Format = ’, B:8:0); END.

E

E

KKSSPPRREESSII

S

S

TTRRIINNGG

Pernyataan yang berbentuk string (gabungan karakter yang tidak bisa dioperasikan secara aritmatik atau tidak bisa dihitung).

E

E

KKSSPPRREESSII

N

N

UUMMEERRIICC

Pernyataan dalam bentuk angka atau penyataan dalam bentuk perhitungan matematik yang bisa menghasilkan nilai baru.

PROGRAM Test21;

VAR Str1,Str2,Str3,Str4 : STRING[30]; P1,P2,P3 : BYTE;

BEGIN

Str1 := ’PIKMI’;

Str2 := ’PIKMI Garuda Bandung’; P1 := LENGTH(Str1);

P2 := LENGTH(Str2);

WRITELN(’String I = ’, Str1); WRITELN(’String II = ’, Str2); WRITELN(’Panjang String I = ’, P1); WRITELN(’Panjang String II = ’, P2); P3 := POS(’K’ , Str1);

Str3 := COPY(Str2, 7, 6); Str4 := Str2;

DELETE(Str4, 7, 6)

INSERT(’ Nusantara’, Str2, 13);

(4)

WRITELN(’6 huruf dari posisi ke 7 pada string II = ’, Str3); WRITELN(’Hapus 6 huruf dari posisi ke 7 pada string II = ’, Str4); WRITELN(’Sisipkan kata mulai posisi 13 pada string II = ’, Str2); END.

LENGTH(s) : ...

Keterangan :

POS(s,t) : ...

COPY(s,p,b) : ...

DELETE(s,p,b) : ...

INSERT(s,t,b) : ...

PROGRAM Test22;

VAR I1,I2,I3 : INTEGER; C1,C2 : CHAR; BEGIN

I1 := 10;

WRITELN(’Isi I mula-mula : ’, I1); INC(I1);

WRITELN(’Isi I ditambah 1 : ’, I1); DEC(I1);

WRITELN(’Isi I dikurang 1 : ’, I1); C1 := ’A’;

I2 := ORD(C1); C2 := CHR(I2);

WRITELN(’Isi variabel C1 : ’, C1); WRITELN(’Nomor ASCII dari C1 : ’, I2); WRITELN(’Isi variabel C2 : ’, C2); I3 := -120;

WRITELN(’Nilai variabel I3 : ’, I3); WRITELN(’Nilai absolut I3 : ’, ABS(I3)); END.

INC(i) : ...

Keterangan :

DEC(i) : ...

ABS(i) : ...

CHR(i) : ...

ORD(c) : ...

PROGRAM Test23; VAR I1 : INTEGER; R1,R2,R3 : REAL; BEGIN

R1 := 2.5;

I1 := ROUND(R1);

WRITELN(’Bilangan real (R1)= ’, R1:5:1); WRITELN(’Dibulatkan (I1)= ’, I1); R2 := SQR(I1);

R3 := SQRT(R2);

WRITELN(’I2 dipangkat 2 (R2)= ’, R2:5:0); WRITELN(’Akar kuadrat R2(R3)= ’, R3:5:0); WRITELN(’Konstanta PI = ’, PI:5:0); END.

PI : ...

Keterangan :

ROUND(r) : ...

CEIL(r) : ...

FLOOR(r) : ...

SQR(r) : ...

(5)

1 PROGRAM 2latihan;

Latihan mencari kesalahan

2 VAR A,B : BYTE; 3 C,D : REAL; 4 E : CHARACTER; 5 F,G : STRING; 6

7 BEGIN 8 A := 400 9 B := SQRT(A);

10 WRITELN(’Isi A = ’, A:8); 11 WRITELN(’Isi B = ’, B:8:2); 12 WRITELN;

13 C := 7 ; 14 D := PI; 15 E := CHR(C);

16 WRITELN(’Isi C = ’ C); 17 WRITELN(’Isi D = ’ D); 18 WRITELN(’Isi E = ’ E); 19 WRITELN();

20 F := CHR(80)+ CHR(73)+ CHR(75)+ CHR(77)+ CHR(73); 21 G := COPY(F,12,3);

22 WRITELN(’Isi F = ’, F:-8); 23 WRITELN(’Isi G = ’, G:8:0); 24 END;

Baris ( ) : ...

Kesalahan :

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

Baris ( ) : ...

...

Catatan :

... ...

M

M

AANNIIPPUULLAASSII

V

V

AARRIIAABBEELLDDAANN

T

T

AAMMPPIILLAANN

L

L

AAYYAARR

PROGRAM Test31;

VAR pj,lb,ls : INTEGER; R,l,k : REAL; BEGIN

WRITELN(‘Menghitung luas segi empat’);

WRITELN(‘---’); WRITE (‘Panjang segi empat :’); READLN(pj);

WRITE (‘Lebar segi empat :’); READLN(lb); ls := lb * pj;

WRITELN(‘Luas segi empat :’,ls)); WRITELN;

WRITELN(‘Menghitung luas dan keliling lingkaran’); WRITELN(‘---’); WRITE (‘Jari jari lingkaran:’); READLN(r);

l := PI * sqr(r); k := 2 * PI * r;

(6)

READLN : ...

Keterangan :

PROGRAM Latihan3;

Latihan melengkapi program

VAR ...,jumlah : REAL; BEGIN

WRITELN(‘Borong diskonan di Mall);

WRITELN(‘---’); WRITE (‘Beli celana panjang sebanyak :’); READLN(...); WRITE (‘Harga celana panjang Normal :’); READLN(...); WRITE (‘Besar diskon :’); READLN(...); WRITE (‘Beli Jaket Jeans sebanyak :’); READLN(...); WRITE (‘Harga Jaket Jeans normal :’); READLN(...); WRITE (‘Besar diskon :’); READLN(...); Jumlah := ... ?

WRITELN;

WRITELN(‘---’); WRITELN(‘Total ngeborong :’, ...); WRITELN(‘---’); {normalkan warna layar}

(7)

M

M

M

O

O

O

D

D

D

U

U

U

L

L

L

2

2

2

Struktur Berkondisi (Branching)

S

S

YYNNTTAAXX

U

U

MMUUMM

P

P

EENNRRNNYYAATTAAAANN

B

B

EERRKKOONNDDIISSII

I

I

FF

IF [kondisi] THEN

Pernyataan benar

IF [kondisi] THEN

Pernyataan benar

ELSE

Pernyataan salah

IF [kondisi 1] THEN

Pernyataan benar 1

ELSE IF [kondisi 2] THEN

Pernyataan benar 2

ELSE

Pernyataan salah

Pernyataan IF digunakan untuk menyeleksi sebuah kondisi (menghasilkan nilai benar atau salah) yang mempunyai lebih dari satu kemungkinan

Jika sebuah kondisi IF menyatakan nilai benar/TRUE, maka pernyataan benar yang akan dilaksanakan (pernyataan setelah THEN), dan jika kondisi IF menyatakan nilai salah/FALSE, maka pernyataan salah yang akan dilaksanakan (pernyataan setelah ELSE).

PROGRAM Test41; VAR B,C : INTEGER; BEGIN

WRITE(‘Ketikan sebuah bilangan : ’); READLN(B); C := B MOD 2;

IF C = 0 THEN

WRITELN(‘Bilangan genap’) ELSE

WRITELN(‘Bilangan ganjil’); READLN

END.

PROGRAM Test42; VAR B : INTEGER; BEGIN

WRITE(‘Ketikan sebuah bilangan : ’); READLN(B); IF B > 0 THEN

WRITELN(‘Bilangan positif’) ELSE IF B = 0 THEN

WRITELN(‘N o l’) ELSE

WRITELN(‘Bilangan negatif’); READLN

END.

PROGRAM Test43;

VAR Nama, KET1, KET2 : STRING[30]; N1, N2, N3, JN : REAL;

IND : CHAR; BEGIN

WRITE(‘Nama Siswa : ’); READLN(Nama); WRITE(‘Nilai Tugas : ’); READLN(N1); WRITE(‘Nilai U T S : ’); READLN(N2);

(8)

KET1 := ‘Biasa aja’;

WRITELN(‘Predikat Siswa : ’, KET1); WRITELN(‘B o n u s : ’, KET2);

CASE [variabel] OF

[nilai 1] : pernyataan benar 1

Struktur Case biasa digunakan untuk penyeleksian seperti halnya IF, tapi nilai-nilai kemungkinannya adalah nilai-nilai yang pasti.

Variabel yang dapat diuji oleh Case hanya variabrl yang bertipe ORDINAL !

Catatan :

PROGRAM Test44; VAR JWB : CHAR; BEGIN

WRITE(‘Ngerti nggak program ini ? [Y/T] ’); READLN(JWB); CASE JWB OF

‘Y’, ‘y’ : WRITELN(‘Itu baru OK !!!’);

‘T’, ‘t’ : WRITELN(‘Perhatiin dong ! jangan ngelamun aja !’); ELSE WRITELN(‘Ngaco lu !!!!’);

WRITE(‘Umur kamu berapa ? ’); READLN(UM); CASE UM OF

(9)

VAR status : CHAR;

lembar, bayar, diskon : REAL; BEGIN

WRITELN(‘Foto copy catetan kuliah’); WRITELN(‘========================’); WRITELN(‘(L=Langganan, B=Bukan)’);

WRITE (‘Status Pembeli [L/B] : ’); READLN(status); WRITE (‘Banyak Foto Copy : ’); READLN(lembar); CASE Lembar OF

0..100 : bayar:=harga*lembar; ELSE

CASE UPCASE(status) OF ‘L’ : BEGIN

diskon := (Lembar*harga)*0.2; bayar := (HARGA*LEMBAR)-DISKON; END;

‘B’ : BEGIN

diskon := (Lembar*harga)*0.1; bayar := (HARGA*LEMBAR)-DISKON; END;

END; END;

WRITELN(‘Status : ’, status); WRITELN(‘Jumlah Bayar : ’, bayar:2:2); READLN

WRITELN(‘Perusahaan punya babe gue’);

WRITELN(‘Menghitung Gaji Karyawan Yang Cakep Aja’); WRITELN(‘---’); WRITE(‘Nama Karyawan :’); READLN(nama);

WRITE(‘Golongan [A/B/C/D] :’); READLN(gol); WRITE(‘Lama bekerja :’); READLN(lama); WRITE(‘Status kawin [K/T] :’); READLN(st); IF UPCASE(st) = ‘T’ THEN BEGIN CASE UPCASE(Gol) OF

(10)

TA := anak * 0.1 * gp;

PPH := (GP + TSI + TA + TJ) * 0.1; Gaji := GP + TSI + TA + TJ – PPH

WRITELN(‘Gaji Pokok : ’, GP:12:2); WRITELN(‘Tunj Suami/Istri : ’, TSI:12:2); WRITELN(‘Tunj Anak : ’, TA:12:2); WRITELN(‘Tunj Jabatan : ’, TJ:12:2); WRITELN(‘PPH (10%) : ’, PPH:12:2); WRITELN(‘Gaji Total : ’, Gaji:12:2); READLN

END.

Buatlah program dengan tampilan hasil sebagai berikut :

Latihan

--- Menghitung Honor dan Bonus Sales ---

Nama Sales : ... //input

Lama Kerja : ... //input

Kode Area (1/2/3) : ... //input

Kehadiran bulan ini : ... //input

Penjualan bulan ini : ... //input

Target per bulan : ... //output

Gaji Pokok : ... //output

Transportasi : ... //output

Komisi : ... //output

Bonus : ... //output

Gaji Kotor : ... //output

Dengan ketentuan sebagai berikut :

1. Jika lama kerja 0 s/d 1 tahun maka gaji pokok 300 000 Jika lama kerja 1 s/d 3 tahun maka gaji pokok 350 000 Jika lama kerja 4 tahun keatas maka gaji pokok 400 000 2. Area 1, target penjualan 20 000 000, komisi 1 % dari penjualan

Area 2, target penjualan 22 000 000, komisi 1,5 % dari penjualan Area 3, target penjualan 20 000 000, komisi 2 % dari penjualan 3. Komisi bisa didapat jika penjualan mencapai target

(11)

M

M

M

O

O

O

D

D

D

U

U

U

L

L

L

3

3

3

Struktur Pengulangan (Looping)

S

S

YYNNTTAAXX

U

U

MMUUMM

P

P

EENNRRNNYYAATTAAAANN

P

P

EENNGGUULLAANNGGAANN

FOR [init] TO [batas] DO

<Pernyataan diulang> atau

FOR [init] DOWNTO [batas] DO

<Pernyataan diulang>

WHILE [kondisi] DO

<Pernyataan diulang>

REPEAT

<Pernyataan diulang>

UNTIL [kondisi]

Pernyataan pengulangan digunakan untuk mengulang perintah/statement yang kita maksud sebanyak kondisi yang diinginkan.

Pernyataan FOR .. TO digunakan untuk mengulang ‘Pernyataan diulang’ dimulai dari init/inisialisasi (pemberian nilai awal) hingga batas yang ditentukan. Dan bilangan pencacahnya bergerak naik satu per satu.

Pernyataan FOR .. DOWNTO digunakan untuk mengulang ‘Pernyataan diulang’ dimulai dari init/inisialisasi (pemberian nilai awal) hingga batas yang ditentukan. Dan bilangan pencacahnya bergerak turun satu per satu.

Variabel yang berfungsi sebagai counter/pencacah pad for hanya variabel yang bertipe Bilangan Bulat!

Catatan :

Pernyataan WHILE .. DO digunakan untuk mengulang ‘Pernyataan diulang’ selama kondisi bernilai benar / TRUE

Pernyataan REPEAT .. UNTIL digunakan untuk mengulang ‘Pernyataan diulang’ sampai kondisi bernilai benar / TRUE

PROGRAM Test50; VAR i,x : BYTE; BEGIN

WRITE(‘Ketik sembarang angka : ’); READLN(x); WRITELN;

WRITE(‘Ketik sembarang angka : ’); READLN(x); WRITELN;

FOR i := 1 TO x DO

WRITELN(I:3, ‘PIKMI Garuda’); READLN;

END.

PROGRAM Test52;

VAR i,x, Hasil : BYTE; BEGIN

WRITE(‘Ketik sembarang angka : ’); READLN(x); WRITELN;

Hasil := 0;

FOR i := x DOWNTO 1 DO Hasil := Hasil + i;

WRITELN(‘Hasil perhitungan: ’, Hasil); READLN;

(12)

AB := 1;

WRITELN(‘A pangkat B : ’, AB:10:0); WRITELN(‘B pangkat A : ’, BA:10:0); READLN;

WRITE(‘Ketik sembarang angka : ’); READLN(x); WRITELN;

WRITELN(‘Faktorial bilangan : ’, Hasil:10:0); READLN;

WRITE(‘Variabel A : ’); READLN(A); WRITE(‘Variabel B : ’); READLN(B); WRITELN;

WRITELN(‘A pangkat B : ’, AB:10:0); WRITELN(‘B pangkat A : ’, BA:10:0); READLN;

WRITE(‘Ketik sembarang angka : ’); READLN(x); WRITELN;

WRITELN(‘Faktorial bilangan : ’, Hasil:10:0); READLN;

(13)

WRITELN; AB := 1; i := 0; REPEAT

INC(i);

AB := AB * A; UNTIL i = B; BA := 1; i := a + 1; REPEAT

DEC(i);

BA := BA * B; UNTIL i = 1;

WRITELN(‘A pangkat B : ’, AB:10:0); WRITELN(‘B pangkat A : ’, BA:10:0); READLN;

END.

PROGRAM Test58; VAR i,j,x : BYTE; BEGIN

WRITE(‘Ketik angka antara 1..25 : ’); READLN(x); WRITELN;

FOR i := 1 TO x DO BEGIN FOR j := 1 TO i DO

WRITE(j:3); WRITELN;

(14)

M

M

M

O

O

O

D

D

D

U

U

U

L

L

L

4

4

4

Sub Program / Sub Rutin

Sub Program merupakan program kecil, bagian dari program utama, yang digunakan untuk mempersingkat penulisan kumpulan perintah yang ditulis ber ulang-ulang.

Perbedaan Procedure dan Function Procedure : tidak menghasilkan nilai baru Function : menghasilkan nilai baru

Catatan :

procedure dan function selalu di tulis diatas program utama !

PROGRAM Test61;

VAR huruf : CHAR; Ket : STRING[20];

PROCEDURE Proses; BEGIN

IF UPCASE(huruf) IN [‘A’..’Z’]) THEN BEGIN

IF UPCASE(huruf) IN [‘A’, ‘I’, ‘U’, ‘E’, ‘O’] THEN Ket := ‘Huruf Vokal’

ELSE

Ket := ‘Huruf Konsonan’; END

ELSE Ket := ‘Karakter lain’; END:

BEGIN

WRITE(‘Ketik 1 huruf : ’); READLN(huruf); PROSES;

WRITELN;

WRITELN(‘Anda mengetikan : ’,Ket); READLN;

END.

PROGRAM Test62;

VAR a, b : LONGINT;

PROCEDURE Input; BEGIN

WRITE(‘Ketik 1 Angka: ’); READLN(a); END;

PROCEDURE Proses; VAR i : INTEGER; BEGIN

b := 1;

FOR i := 1 TO a DO b := b * i; END;

BEGIN Input; Proses;

WRITELN(‘Hasil faktorial : ’, a); READLN;

END.

PROGRAM Test63;

VAR a1, a2, p1, p2 : LONGINT; PROCEDURE Input(VAR n : LONGINT); BEGIN

WRITE(‘Ketik Angka : ’); READLN(n); END;

PROCEDURE Proses(p,q : LONGINT; VAR r : LONGINT); VAR i : INTEGER;

(15)

FOR i := 1 TO q DO r := r * p; END;

PROCEDURE Output(m : LONGINT); BEGIN

WRITE(‘Hasil perpangkatan : ’, m); END;

BEGIN

Input(a1); Input(a2);

Proses(a1,a2,p1); Proses(a2,a1,p2); Output(p1);

Output(p2); READLN; END.

PROGRAM Test64;

VAR a, b, c : REAL;

FUNCTION Luas(x,y : REAL) : REAL; BEGIN

Luas := x * y / 2; END;

BEGIN

WRITE(‘Panjang alas segitiga : ’); READLN(a); WRITE(‘Tinggi segitiga : ’); READLN(b); c := Luas(a,b);

WRITE(‘Luas Segitiga : ’, c:12,2); READLN;

END.

PROGRAM Test65;

VAR b1, b2, f1, f2 : LONGINT;

PROCEDURE Input(VAR n : LONGINT); BEGIN

WRITE(‘Ketik Angka : ’); READLN(n); END;

FUNCTION Faktorial(x : LONGINT) : LONGINT; VAR a, t : LONGINT;

BEGIN t := 1;

FOR a := 1 TO x DO t := t * a; Faktorial := t; END;

PROCEDURE Output(m : LONGINT); BEGIN

WRITE(‘Hasil faktorial : ’, m); END;

BEGIN

Input(b1); Input(a2);

f1 := Faktorial(b1); f2 := Faktorial(b2); Output(f1);

Output(f2); READLN; END.

1. Buatlah program untuk menghitung deret fibonaci dengan menggunakan function !

(16)

M

M

M

O

O

O

D

D

D

U

U

U

L

L

L

5

5

5

Array / Larik

Array adalah jajaran variabel yang mempunyai indeks atau sebuah variabel yang mempunyai banyak tempat.

Illustrasi

PROGRAM Test71; VAR n,a : INTEGER;

ar : ARRAY[1..20] OF INTEGER;

BEGIN

WRITE(‘Jumlah array : ’); READLN(n); FOR a := 1 TO n DO BEGIN

WRITE(‘Ketik array ke ’, a:2, ‘ = ’); READLN(ar[a]); END;

CLRSCR;

FOR a := 1 TO n DO BEGIN

WRITELN(‘Isi array ke ’, a:2, ‘ = ’, ar[a]:3);

READLN; END.

PROGRAM Test72;

TYPE a20 = ARRAY[1..20] OF INTEGER; VAR n : INTEGER;

Jum, Rata : REAL; ar : a20;

PROCEDURE IsiArray(VAR ary : a20; x : INTEGER); VAR i : INTEGER;

BEGIN

FOR i := 1 TO x DO BEGIN

WRITE(‘Ketik array ke ’, i:2, ‘ = ’); READLN(ary[i]); END;

END;

PROCEDURE Hitung(ary : a20; x : INTEGER; VAR j, r : REAL); VAR i : INTEGER;

BEGIN

j := 0;

FOR i := 1 TO x DO j := j + ary[i];

r := j / x; END;

PROCEDURE Tulis(a : a20, z : INTEGER); VAR b : INTEGER;

BEGIN

FOR b := 1 TO z DO BEGIN

WRITELN(‘Isi array ke ’, b:2, ‘ = ’, a[b]:3); END;

BEGIN

WRITE(‘Jumlah array : ’); READLN(n); IsiArray(ar, n);

Hitung(ar, n, Jum, Rata); Tulis(ar);

WRITELN(‘Jumlah seluruh nilai : ’, Jum:12:2);

1 2 3 4 5

Variabel X

Array Z[1..5]

Hanya mempunyai 1 tempat untuk nilai

(17)

WRITELN(‘Rata rata nilai : ’, Rata:12:2); READLN;

END.

TYPE : ...

Keterangan :

PROGRAM Test73;

TYPE a20 = ARRAY[1..20] OF INTEGER; VAR i, n, M1, M2 : INTEGER;

ar : a20;

PROCEDURE IsiArray(VAR ary : a20); BEGIN

FOR i := 1 TO n DO BEGIN

WRITE(‘Ketik array ke ’, i:2, ‘ = ’); READLN(ary[i]); END;

END;

FUNCTION CariMax(ar : a20); VAR j : INTEGER;

BEGIN

j := 0;

FOR i := 1 TO n DO BEGIN IF ar[i] > j THEN j := ar[i] END;

CariMax := j; END;

FUNCTION CariMin(ar : a20); VAR j : INTEGER;

BEGIN

j := 1000;

FOR i := 1 TO n DO BEGIN IF ar[i] < j THEN j := ar[i] END;

CariMin := j; END;

PROCEDURE Tulis(a : a20); BEGIN

FOR i := 1 TO n DO BEGIN

WRITELN(‘Isi array ke ’, b:2, ‘ = ’, a[b]:3); END;

BEGIN

WRITE(‘Jumlah array : ’); READLN(n); IsiArray(ar);

M1 := CariMax(ar); M2 := CariMin(ar); Tulis(ar);

WRITELN(‘Isi Array Tertinggi: ’, M1:12:2); WRITELN(‘Isi Array Terendah : ’, M2:12:2); READLN;

END.

PROGRAM Test74;

TYPE a20 = ARRAY[1..20] OF INTEGER; VAR n : INTEGER;

ar : a20;

PROCEDURE IsiArray(VAR ary : a20); VAR i : INTEGER;

BEGIN

FOR i := 1 TO n DO BEGIN

WRITE(‘Ketik array ke ’, i:2, ‘ = ’); READLN(ary[i]); END;

(18)

PROCEDURE Urutkan(VAR ary : a20); VAR i, j, tmp : INTEGER;

BEGIN

FOR i := 1 TO n-1 DO

FOR j := i+1 TO n BEGIN

IF ary[i] > ary[j] THEN BEGIN Tmp := ary[i];

Ary[i] := ary[j]; Ary[j] := tmp; END;

END; END;

PROCEDURE Tulis(a : a20, z : INTEGER); VAR b : INTEGER;

BEGIN

FOR b := 1 TO n DO BEGIN

WRITELN(‘Isi array ke ’, b:2, ‘ = ’, a[b]:3); END;

BEGIN CLRSCR;

WRITE(‘Jumlah array : ’); READLN(n); IsiArray(ar);

Urutkan(ar); Tulis(ar); READLN; END.

Buatlah pengurutan array (ascending & descending) dengan peta pertukaran isi array sebagai berikut :

Latihan

1 2 3 4 5 6 7

3 3 3 2 2 2 2 2 1

1 2

12 2 2 3 3 3 3 1 1 2

2 2 12 12 4 4 4 1 1 3 3

4 4 4 12 12 1 1 4 4 4

3 4

34 21 21 1 1 12 5

5 5 5

2 1

21 34 1

1 21 5

5 12 12 12 12

1 1 34 5 5 21 21 21 21 21

(19)

M

M

M

O

O

O

D

D

D

U

U

U

L

L

L

6

6

6

R e c o r d

Record adalah sekumpulan variabel yang ditampung pada sebuah nama

PROGRAM Test81; TYPE brs = RECORD

Nama : STRING[15]; Umur : BYTE;

Hobi : STRING[15]; END;

VAR Rekam : Brs;

BEGIN

WRITE(‘Nama : ’); READLN(Rekam.Nama); WRITE(‘Umur : ’); READLN(Rekam.Umur); WRITE(‘Hobi : ’); READLN(Rekam.Hobi); CLRSCR;

WITH Rekam DO BEGIN

WRITELN(‘Test record’); WRITELN(‘===========’);

WRITELN(‘Nama anda : ’, Nama); WRITELN(‘Umur : ’, Umur); WRITELN(‘H o b i : ’, Hobi); END;

READLN; END.

PROGRAM Test82; TYPE rek = RECORD

Nama, Jurusan : STRING[15]; Nilai : ARRAY[1..3] OF REAL; Rata : REAL;

Ket : STRING[12]; END;

VAR Siswa : Rek;

BEGIN

WRITE(‘Nama : ’); READLN(Siswa.Nama); WRITE(‘Jurusan : ’); READLN(Siswa.Jurusan); WRITE(‘Nilai 1 : ’); READLN(Siswa.Nilai[1]); WRITE(‘Nilai 2 : ’); READLN(Siswa.Nilai[2]); WRITE(‘Nilai 3 : ’); READLN(Siswa.Nilai[3]);

Siswa.Rata := (Siswa.Nilai[1] + Siswa.Nilai[1] + Siswa.Nilai[1])/3; IF Siswa.Rata >= 90 THEN Siswa.Ket := ‘Sempurna’

ELSE IF Siswa.Rata >= 70 THEN Siswa.Ket := ‘Bagus’ ELSE IF Siswa.Rata >= 60 THEN Siswa.Ket := ‘Cukup’ ELSE IF Siswa.Rata >= 40 THEN Siswa.Ket := ‘Kurang’ ELSE Siswa.Ket := ‘Tidak Lulus’

CLRSCR;

WRITELN(‘Data Nilai Siswa’); WRITELN(‘================’);

WRITELN(‘Nama siswa : ’, Siswa.Nama); WRITELN(‘Jurusan : ’, Siswa.Jurusan); WRITELN(‘Nilai 1 : ’, Siswa.Nilai[1]); WRITELN(‘Nilai 2 : ’, Siswa.Nilai[2]); WRITELN(‘Nilai 3 : ’, Siswa.Nilai[3]); WRITELN(‘Rata rata : ’, Siswa.Rata); WRITELN(‘Keterangan : ’, Siswa.Ket); READLN;

END.

PROGRAM Test83;

TYPE rekaman = RECORD Nama: STRING[15];

(20)

END;

VAR Siswa : ARRAY[1..10] OF rekaman; j : BYTE;

BEGIN J := 1;

WHILE j <= 10 BEGIN

WRITE(‘Nama Siswa : ’); READLN(Siswa[j].Nama); WRITE(‘Nilai Absen : ’); READLN(Siswa[j].N[1]); WRITE(‘Nilai Tugas : ’); READLN(Siswa[j].N[2]); WRITE(‘Nilai Quis : ’); READLN(Siswa[j].N[3]); WRITE(‘Nilai UTS : ’); READLN(Siswa[j].N[4]); WRITE(‘Nilai UAS : ’); READLN(Siswa[j].N[5]);

Siswa[j].N[6] := 0.1*Siswa[j].N[1] + 0.1*Siswa[j].N[2] + 0.1*Siswa[j].N[3] + 0.3*Siswa[j].N[4] + 0.4*Siswa[j].N[5];

IF Siswa[j].N[6] >= 90 THEN Siswa[j].Ind := ‘A’ ELSE IF Siswa[j].N[6] >= 75 THEN Siswa[j].Ind := ‘B’ ELSE IF Siswa[j].N[6] >= 55 THEN Siswa[j].Ind := ‘C’ ELSE IF Siswa[j].N[6] >= 40 THEN Siswa[j].Ind := ‘D’ ELSE Siswa[j].Ind := ‘E’

INC(j); END;

CLRSCR;

WRITELN(‘Data Nilai Siswa Per Kelas’);

WRITELN(‘========================================================’); WRITELN(‘Nama Absen Tugas Quis UTS UAS Akhir Ind’); WRITELN(‘---’); FOR j := 1 TO 10 DO BEGIN

WITH Siswa[j] DO BEGIN

WRITELN(Nama:10, N[1]:6:2, N[2]:6:2, N[3]:6:2, N[4]:6:2, N[5]:6:2, N[6]:6:2, Ind);

Referensi

Dokumen terkait

Tujuan: untuk mengetahui hubungan antara persepsi mahasiswa terhadap lingkungan belajar, jum- lah kasus yang dijumpai selama pendidikan klinik, umpan balik yang diterima

Dengan demikian tidak bisa diungkapkan hanya dengan satu faktor saja, yaitu “g”, ketika mendefinisikannya dalam pengertian yang paling umum sebagai energi mental,

Selain program radio tersebut yang rutin disiarkan radio Xchannel, media sosialnya juga turut berperan dalam mempromosikan program-program tersebut dengan dijadikan

Keterdapatan cinnabar dan stibnit yang tinggi pada daerah Longkowala menunjukkan bahwa emas orogenik berlangsung pada kedalaman dangkal (± 5km dari paleosurface) diantara zona

seharusnya jernih dan tembus cahaya tembus cahaya menjadi keruh, akibatny menjadi keruh, akibatnya obyek yang a obyek yang dilihat dilihat menjadi kabur dan menyebabkan

[r]

Saham merupakan salah satu alternatif investasi di pasar modal yang paling banyak digunakan oleh investor karena keuntungan yang lebih besar dan dana yang dibutuhkan untuk

Berdasarkan Undang-Undang Nomor 17 Tahun 2000 tentang Pajak Penghasilan, yang menjadi objek Pajak Penghasilan adalah penghasilan yaitu setiap tambahan kemampuan ekonomis yang