Program Pascal

40
Materi Penyegaran Jurusan Teknik Elektro Universitas Atmajaya Makassar

Transcript of Program Pascal

Materi Penyegaran

Jurusan Teknik Elektro Universitas Atmajaya

Makassar

Pemrograman Dasar

Contoh-1: Hitunglah nilai x, y, z, p, dan q dengan persamaan :x = a + b p = (a² + b²)/ √by = a x b q = ((b² - a) x (a + b))/ (a x b )y = a x b q = ((b² - a) x (a + b))/ (a x b )z = a/b Data masukan adalah nilai a dan b.

Jawab :

Yang perlu diperhatikan adalah tipe variabel dari x,y,z,p,dan q.Variabel z,p, q harus bertipe real karena meyimpan hasil pembagianyang nilainya berupa bil. desimal. Sedangkan a,b,x, dan y bisa bertipeinteger (bil. bulat) atau real (bil. desimal).

� Program

Program Dasar1;

uses crt;

var a,b,x,y : integer;

z:= a/b;p:= (sqr(a) + sqr(b))/sqrt(b);q:= ((sqr(b)-a)*x)/y;

writeln('Hasil Perhitungan');var a,b,x,y : integer;z,p,q : real;

Beginclrscr;write('Nilai a = ');readln(a);write('Nilai b = ');readln(b);

x:= a + b;y:= a*b;

writeln('Hasil Perhitungan');writeln('=================');writeln('x = ',x);writeln('y = ',y);writeln('z = ',z:6:2);writeln('p = ',p:6:2);writeln('q = ',q:6:2);readkey;

End.

Contoh-2:

Carilah hasil bagi dan sisa pembagian dari 2 buahbilangan bulat (integer).bilangan bulat (integer).

Jawab :

Gunakan fungsi div untuk mencari hasil bagi danfungsi mod untuk mecari sisa pembagian dari 2 buahbil. bulat.

� Program

Program Dasar2;

uses crt;

var a,b,x,y,p,q : integer;

p:= a div b;q:= b div a;

writeln;writeln('Hasil Perhitungan');writeln('=================');var a,b,x,y,p,q : integer;

Beginclrscr;write('Nilai a = ');readln(a);write('Nilai b = ');readln(b);

x:= a mod b ;y:= b mod a;

writeln('Hasil Perhitungan');writeln('=================');writeln('x = ',x);writeln('y = ',y);writeln('p = ',p);writeln('q = ',q);readkey;

End.

� IF-THEN

Bentuk : If <kondisi > thenBegin

<pernyataan-1><pernyataan-2>

End;<pernyataan-2>

End;

Digunakan untuk memilih sebuah Pilihan pernyataan. Jika kondisibernilai True, maka kerjakan pernyataan dalam blok Begin-End. Jikasalah, kerjakan pernyataan selanjutnya.

Contoh :

Tentukan 3 buah bil. n, x, dan y. Jika x lebih besar dari n, ganti nilai xmenjadi nilai n. Jika y lebih kecil dari n, ganti nilai y menjadi nilai n.

� Program

Program IFTHEN;Uses crt;

Var x,y,n : real;

write('Masukkan bil. y ='); readln(y);

writeln;

if n>x then x:=n;Var x,y,n : real;

Beginclrscr;

write('Masukkan bil. n ='); readln(n);write('Masukkan bil. x ='); readln(x);

if n>x then x:=n;if y<n then y:=n;

writeln(' Nilai x = ',x:6:2);writeln(' Nilai y = ',y:6:2);

readln;End.

� IF-THEN-ELSE

Bentuk : If <kondisi> thenBegin

<pernyataan-1>;<pernyataan-2>;

Endelse

Endelse

Begin<pernyataan-3>;<pernyataan-4>;

End;

Digunakan untuk memilih salah satu dari 2 pilihan yang ada. Jika kondisibernilai True,maka kerjakan pilihan I (pernyataan 1 & 2). Jika bernilai False,kerjalan pilihan II (pernyataan 3 & 4).

Contoh-2:

Tentukanlah satu nilai input, apakah bil. positip atau negatip.

� Program

Program IFTHEN1;

Uses crt;

Var n : integer;

Beginclrscr;write('Masukkan bilangan n = ');readln(n);writeln;

if n>0 thenwriteln('Anda memasukkan bilangan positip') {titik koma tidak

boleh}else

writeln('Anda memasukkan bilangan negatip');

readln;End.

� Operator AND, OR

Operator AND dan OR digunakan untuk membandingkan duapernyataan logika pada kondisi IF.

Misalnya anda dinyatakan ‘Lulus” jika Nilai Ujian (n) dan NilaiMisalnya anda dinyatakan ‘Lulus” jika Nilai Ujian (n) dan NilaiPraktikum (p) sbb :

IF (n>=80) AND (p>=60) then writeln(‘Lulus’);

Artinya jika kedua kondisi bernilai True, maka dinyatakan “Lulus”.

IF (n>=80) OR (p>=60) then writeln(‘Lulus’);

Artinya jika salah satu kondisi bernilai True, maka dinyatakan “Lulus”.

Contoh

Buatlah program untuk menentukan nilai kelulusan. yang ditentukan sebagai berikut:

0 <= N<= 40 : E40< N <=55 : D55<N <=65 : C65<N<=75 : B75<N<=100 : A

Bila nilai input 55, maka akan ditampilkan nila D.

� Program

Program LOGIKA_AND_DLM_IF;uses crt;

var n: integer;

writeln('Nilai C')elseif(65<n) AND (n<=75) then

writeln('Nilai B')elseif(75<n) AND (n<=100) then

writeln('Nilai A')else

Beginclrscr;write('Input nilai N = ');readln(n);

if(0>=n) AND (n<=40) thenwriteln('Nilai E')else

if(40>n) AND (n<=55) thenwriteln('Nilai D')else

if(55<=n) AND (n<=65) then

elsewriteln('Nilai masukan

salah');readkey;

End.

� Case - of

Bentuk : Case <Variabel> ofLabel-1 : Begin – End;Label-2 : Begin – End;......…Label… : Begin – End;End;

Digunakan untuk memilih salah satu pilihan dari beberapapilihan yang ada. Misalnya, Jika Variabel pada case-ofnilainya sama dengan 4, maka pilihan dengan label 4 yangakan dikerjakan.

Contoh

Tentukan nilai masukan berupa huruf ( A-E). Jikainput salah satu nilai, maka akan diberikanketerangan lulus sbb :keterangan lulus sbb :

'A' : Ket := ' Sangat Baik ' ;'B' : Ket := ' Baik ' ;'C' : Ket := ' Cukup ' ;'D' : Ket := ' Kurang ' ;'E' : Ket := ' Gagal ' ;

� Program

Program Case_Of1;uses crt;Var

'A' : Ket := ' Sangat Baik ' ;'B' : Ket := ' Baik ' ;'C' : Ket := ' Cukup ' ;'D' : Ket := ' Kurang ' ;

Var Nilai : Char;Ket : String [12];

Beginclrscr;Write ('Nilai Huruf (A-E) = ');

Readln(Nilai) ;Case Nilai Of

'D' : Ket := ' Kurang ' ;'E' : Ket := ' Gagal ' ;

End;writeln;

Write (' Nilai Anda = ', Ket) ;Readln ;

End.

Contoh

Nilai Kelulusan ditentukan sebagai berikut:

0 <= N<= 40 : E40< N <=55 : D40< N <=55 : D55<N <=65 : C65<N<=75 : B75<N<=100: A

Buatlah program untuk menentukan nilai kelulusan. Mis. Bilanilai input 55, maka akan ditampilkan nila D.

Bandingkan dengan cara penyelesaian pada IF-Then-Else.

� Program

Program case_of2;uses crt;

var n1 : integer;

0..40 : n2 := 'E';40..55 : n2 := 'D';55..65 : n2 := 'C';65..75 : n2 := 'B';75..100:n2 := 'A';

end;var n1 : integer;n2 : char;

BeginClrscr;write('Input Nilai angka = ');readln(n1);

case n1 of

end;

writeln;writeln('Anda mendapat nilai:',n2);

readln;End.

� Perulangan For-To-Do dan For-Downto-Do

Bentuk :

For n1 to n2 doBegin

<pernyataan-1>;<pernyataan-1>;………

End;

Untuk :

For-to-do : n1 > n2

For-downto-do : n1 < n2

Contoh-1:

Buatlah program untuk menampilkan data pada satu baris seperti berikut.baris seperti berikut.

1 2 3 4 5 6 7 8 9 10

dan

20 19 18 17 16 15 14 13 12 11 10 9

� Program

Program Fortodo1;uses crt;

write(i,' ');

writeln;writeln;writeln;

var i : integer;

Beginclrscr;writeln;writeln;

for i:=1 to 10 do

writeln;writeln;writeln; {pindah baris}

for i:=20 downto 9 dowrite(i,' ');

readkey;End.

Contoh-2

Buatlah program untuk menampilkan data seperti berikut :seperti berikut :

11 12 13 14

11 12 13 14

11 12 13 14

13 12 11 10

13 12 11 10

13 12 11 10

� Program

Program Fortodo2;uses crt;

var i,j : integer;

writeln;writeln; {pindah baris}

for i:=1 to 3 doBeginvar i,j : integer;

Beginclrscr; writeln;writeln;

for i:=1 to 3 doBeginfor j:=11 to 14 do

write(j,' ');writeln; {pindah baris}

End;

Beginfor j:=13 downto 10 do

write(j,' ');writeln; {pindah

baris}End;

readkey;End.

Contoh-2Buatlah program untuk menampilkan data seperti berikut :

1 2 3 4 51 2 3 4

1 1 2 1 2 3 4

1 2 3 1 21

1 2 1 2 31 2 3 41 2 3 4 5

55 45 4 35 4 3 25 4 3 2 1

5 4 3 2 15 4 3 25 4 3 5 45

Program

Program Fortodo3;uses crt;

var i,j : integer;

End;

writeln; {pindah baris}var i,j : integer;

Beginclrscr;writeln;

for i:=5 downto 1 doBegin

for j:=1 to i dowrite(' ',j);writeln; {pindah baris}

for i:=1 to 5 doBegin

for j:=1 to i dowrite(' ',j);writeln; {pindah baris}

End;

writeln; {pindah baris}

for i:=5 downto 1 doBeginfor j:=5 downto i do

write(' ',j);

for i:=1 to 5 doBeginfor j:=5 downto i do

write(' ',j);write(' ',j);writeln; {pindah baris}

End;

writeln; {pindah baris}

write(' ',j);writeln; {pindah baris}

End;

readkey;End.

� Loop While-Do

Bentuk :

While <kondisi> do

Begin

Selama kondisi pada while bernilai True, kerjakan pernyataan dalamblok Begin-End. Jika bernilai False, maka perulangan selesai.

Begin

<pernyataan>;

…………

End;

Contoh :

Buatlah program untuk menampilkan data sbb:1 2 3 4 5 6

4

5

6

7

1 3 5 7 9

10

15

20

25

Program-1

Program Whiledo1;uses crt;

inc(n);End;

writeln;writeln;n:=4;

var n : byte;

Beginclrscr;n:=1;while n<=6 doBegin

write(n,' ');

n:=4;while n<=7 doBegin

writeln(' ',n);inc(n);

End;readln;

End.

Program-2:

Program Whiledo2;uses crt;

var n : byte;

writeln;writeln;n:=10;while n<=25 doBegin

writeln(' ',n);var n : byte;

Beginclrscr;n:=1;while n<=7 doBegin

write(n,' ');n:=n + 2;

End;

writeln(' ',n);n:=n + 5;

End;readln;

End.

Contoh :

Buatlah program untuk menghitung Luas, Volume,dan Keliling balok dengan menggunakan Menudan Keliling balok dengan menggunakan MenuPilihan sbb :

Menu Perhitungan Balok

1. Input Data

2. Luas Balok

3. Volume Balok

4. Keliling Balok

5. Selesai

Pilihan anda(1-5)

Program

Program Menu1;uses crt;

var p,q,r,k,v,l : real;x,ya : char;

label selesai;

gotoxy(20,9);writeln('3. Volume Balok');gotoxy(20,10);writeln('4. Keliling Balok');gotoxy(20,11);writeln('5. Selesai');gotoxy(20,13);write('Pilihan anda(1-5)?

');readln(x);

case x of'1' : Beginlabel selesai;

Beginya:='Y';clrscr;while ya='Y' doBeginclrscr;gotoxy(20,5);writeln('Menu Perhitungan

Balok');gotoxy(20,7);writeln('1. Input Data');gotoxy(20,8);writeln('2. Luas Balok');

'1' : Beginclrscr;gotoxy(20,7);write('Panjang =

');readln(p);gotoxy(20,8);write('Lebar =

');readln(q);gotoxy(20,9);write('Tinggi =

');readln(r);

End;

'2' : Beginclrscr;L := 2*p*q + 2*p*r + 2*q*r;gotoxy(20,9);writeln('Luas = ',L:6:2);readln;

End;

clrscr;K:= 4*p + 4*q + 4*r;gotoxy(20,9);writeln('Keliling = ',k:6:2);readln;

End;'5' : Begin

readln;End;

'3' : Beginclrscr;v:=p*q*r;gotoxy(20,9);writeln('Volume = ',v:6:2);readln;

End;

'4' : Begin

End;'5' : Begin

goto selesai;End;

End;

End;selesai:

End.

� Loop Repeat – Until

Bentuk :Repeat

Begin

Kerjakan blok pernyataan selama kondisi padauntil bernilai salah. Jika kondisi pada until bernilaiTrue, maka proses perulangan akan berhenti.

Begin<pernyataan>…………..

End;Until <kondisi>

Contoh :Buatlah program untuk menampilkan angka sbb:

1 2 3 4 5 6

12 11 10 9 8 7

1 4 7 10 13 16

Program :

Program RepeatUntil1;uses crt;

var n : byte;

writeln;writeln;

n:=12;RepeatBegin

write(' ',n);var n : byte;

Beginclrscr;n:=1;RepeatBegin

write(' ',n);inc(n);

end;until (n=7); {Berhenti jika n = 7}

Beginwrite(' ',n);dec(n);

end;until (n=6); {Berhenti jika n = 6}

readln;End.

Program RepeatUntil2;uses crt;

var n : byte;

n:= n + 3;end;until (n=19); {Berhenti jika n = 19}var n : byte;

Beginclrscr;n:=1;RepeatBegin

write(' ',n);

jika n = 19}

readln;

End.

Buatlah program menu seperti pada while-do untuk menghitung Volume, Luas, dan Keliling Balok dengan Repeat-Until.

Menu Perhitungan Balok

1. Input Data

2. Luas Balok

3. Volume Balok

4. Keliling Balok

5. Selesai

Pilihan anda(1-5)

Program

Program Menu1;uses crt;

var p,q,r,k,v,l : real;x,ya : char;

gotoxy(20,8);writeln('2. Luas Balok');gotoxy(20,9);writeln('3. Volume Balok');gotoxy(20,10);writeln('4. Keliling Balok');gotoxy(20,11);writeln('5. Selesai');x,ya : char;

label selesai;

Beginya:='Y';clrscr;RepeatBeginclrscr;gotoxy(20,5);writeln('Menu Perhitungan Balok');gotoxy(20,7);writeln('1. Input Data');

writeln('5. Selesai');gotoxy(20,13);write('Pilihan anda(1-5)? ');readln(x);

case x of

'1' : Beginclrscr;gotoxy(20,7);write('Panjang = '); readln(p);gotoxy(20,8);write('Lebar = '); readln(q);gotoxy(20,9);write('Tinggi = '); readln(r);

End;'2' : Begin

clrscr;

gotoxy(20,9);writeln('Keliling = ',k:6:2);readln;

End;'5' : Begin

goto selesai;End;

End;

End;clrscr;L := 2*p*q + 2*p*r + 2*q*r;gotoxy(20,9);writeln('Luas = ',L:6:2);readln;

End;'3' : Begin

clrscr;v:=p*q*r;gotoxy(20,9);writeln('Volume = ',v:6:2);readln;

End;

'4' : Beginclrscr;K:= 4*p + 4*q + 4*r;

End;Until (ya='T');selesai:

End.

SelesaiSelesai