Modul Praktikum Pascal PDF
Modul Praktikum Pascal PDF
MODUL I
PENGENALAN
BAHASA PEMROGRAMAN PASCAL
• Program
Kumpulan instruksi berdasarkan suatu aturan yang berdasarkan algoritma tertentu.
• Algoritma
Langkah-langkah yang logis dalam menyelesaikan masalah dalam batas-batas
tertentu.
• Pemrograman
Kegiatan untuk membuat program.
• Bahasa Pemrograman
Bahasa komputer yang digunakan dalam menulis program.
(* JUDUL *)
Program JUDUL (* nama program *)
(* Penjelasan tentang program yang berisi uraian singkat
mengenai apa yang dilakukan oleh program *)
(* KAMUS *)
procedure SATU;
procedure DUA;
function TAMBAH;
(* ALGORITMA *)
begin
writeln(‘Hello, dunia’);
readkey;
end.
Keterangan :
1. Bagian program yang diletakan diantara [(* … *)] disebut komentar, komentar
bukan instruksi sehingga tidak akan dilaksanakan komputer.
2. Anda harus selalu menyertakan uses crt dalam setiap program. crt disebut file
Unit.
3. Instruksi writeln digunakan untuk mencetak apa yang ada di antara tanda
kurung.
4. Yang ditulis diantara tanda (‘’) disebut string/kalimat.
5. Setiap penulisan instruksi diakhiri dengan tanda semicolon/titik koma (‘;’)
6. readkey digunakan agar tampilan program dapat dilihat.
var
i : integer;
Shello : string;
Modul Praktikum Pascal Pemrograman Komputer
begin
Shello := ‘Hello, dunia’;
i:=1234;
writeln(SHello);
writeln(‘Nilai i = ’,i);
readkey;
end.
Keterangan :
1. Kata var adalah kata kunci dalam pascal, kata ini menyatakan bahwa yang
dibawahnya adalah variabel, jadi i dan j adalah variabel bertipe masing-masing
integer dan string.
2. Tanda (‘:=’) adalah tanda assigment/penugasaan untuk memberi nilai variabel.
Keterangan :
1. Angka setelah titik dua dibelakang variabel adalah format panjang bilangan
bulat dan panjang angka dibelakang koma.
Modul Praktikum Pascal Pemrograman Komputer
begin
clrscr;
writeln(‘Contoh membaca dan menulis’);
write(‘Masukkan nilai integer : ’);readln(i);
write(‘Masukkan nilai real : ‘);readln(j);
write(‘Masukkan nilai karakter : ‘);readln(kar);
write(‘Masukkan nilai string : ‘);readln(Nstring);
writeln(‘Nilai integer yang dibaca =‘,i);
writeln(‘Nilai real yang dibaca =‘,j);
writeln(‘Nilai karakter yang dibaca =‘,kar);
writeln(‘Nilai string yang dibaca =‘,NString);
readkey;
end.
Keterangan :
1. Instruksi readln() digunakan untuk meminta inputan dari keyboard dan
memasukkan nilai yang dibaca dari keyboard ke variabel yang bersesuaian.
begin
clrscr;
(* proses boolean *)
writeln('tabel kebenaran');
Modul Praktikum Pascal Pemrograman Komputer
writeln('-----------------------------------------------------');
writeln('| x1 | x2 | x1 and x2 | x1 or x2 |');
writeln('----------------------------------------------------');
writeln('| true | true |',(true and true):12,'|':8,
(true or true):10,'|':8);
writeln('| true | false |',(true and false):12,'|':8,
(true or false):10,'|':8);
writeln('| false | true |',(false and true):12,'|':8,
(false or true):10,'|':8);
writeln('| false | false |',(false and false):12,'|':8,
(false or false):10,'|':8);
writeln('----------------------------------------------------');
x:=5.0;y:=2.0;
writeln('operasi numerik pada tipe data float');
writeln('---------------------------');
writeln('| operasi | hasil operasi |');
writeln('---------------------------');
writeln('| ',x:3:1,' + ',y:3:1,' | ',(x+y):6:1,' |');
writeln('| ',x:3:1,' - ',y:3:1,' | ',(x-y):6:1,' |');
writeln('| ',x:3:1,' * ',y:3:1,' | ',(x*y):6:1,' |');
writeln('| ',x:3:1,' / ',y:3:1,' | ',(x/y):6:1,' |');
writeln('---------------------------');
2. OPERATOR ASSIGNMENT
Simbol Keterangan
:= Memberi Nilai
3. OPERATOR RELASI
Simbol Keterangan
= Equal(sama dengan)
<> Not Equal(tidak sama dengan)
< Less Than(lebih kecil)
<= Less Than Or Equal (lebih kecil atau sama dengan)
> Greater Than(lebih besar)
>= Greater Than Or Equal (lebih besar atau sama dengan)
4. OPERATOR LOGIKA
Simbol Keterangan
AND AND
OR OR
NOT NOT
Modul Praktikum Pascal Pemrograman Komputer
TIPE DATA
Tipe Data Byte Batasan
byte 1 Bilangan bulat antara 0 s.d. 255
shortint 1 Bilangan bulat antara -128 s.d. 127
word 2 Bilangan bulat antara 0 s.d. 65.535
integer 2 Bilangan bulat antara -32.768 s.d. 32.767
unsign long 4 Bilangan bulat antara 0 s.d. 4.294.967.295
longint 4 Bilangan bulat antara -2.147.483.648 s.d. 2.147.483.647
Real 6 Bilangan real antara 2.9*10-39 s.d. 1.7*1038
single 4 Bilangan real antara 1.5*10-45 s.d. 3.4*1038
double 8 Bilangan real antara 5.0*10-324 s.d. 1.7*10308
extended 10 Bilangan real antara 3.4*10-4932 s.d. 1.1*104932
TUGAS
1. Apa tampilan akhir dari program dibawah ini.
uses wincrt;
var
i,b,c,d: real;
begin
i:=3.0;
b:=2.0;
c:=0.0;
i:=i+i;
b:=b+i;
c:=c*i;
write('Nilai i=',i,' b=',b,' c=',c);
end.
2. Buat program yang tampilannya sebagai berikut.
Masukkan nilai i : 1
Masukkan nilai j : 2
----------------------------
| operasi | hasil operasi |
----------------------------
| 1 + 2 | 3 |
| 1 - 2 | -1 |
| 1 * 2 | 2 |
| 1 div 2 | 0 |
| 1 mod 2 | 1 |
----------------------------
MODUL II
PEMILIHAN / SELEKSI
1. PENJELASAN
1. IF … THEN …
Jika kondisi bernilai benar maka instruksi setelah then akan dijalankan. Cara
penulisan 1 digunakan jika instruksi hanya satu baris jika banyak gunakan cara
penulisan 2.
Contoh :
Cara Penulisan 1 :
(* Nama Program : Tunja1.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : menghitung besarnya jumlah tunjangan *)
(* --------------------------------------------------- *)
uses crt;
var
JumlahAnak : integer;
GajiKotor,Tunjangan,PersenTunjangan : real ;
begin
PersenTunjangan:=0.2;
write(‘Gaji Kotor ?’);readln(GajiKotor);
write(‘Jumlah Anak ?’);readln(JumlahAnak);
if JumlahAnak>2 then
PersenTunjangan:=0.3;
Tunjangan := PersenTunjangan*GajiKotor;
writeln(‘Besar Tunjangan = Rp ’,Tunjangan:10:2);
readkey;
end.
Modul Praktikum Pascal Pemrograman Komputer
Cara Penulisan 2 :
(* Nama Program :
Tunja2.pas *)
(* NPM …: *)
(* Nama …: *)
(* Tgl buat …: *)
(* Deskripsi :
menghitung besarnya jumlah tunjangan dan
potongan *)
(* --------------------------------------------------- *)
uses crt;
var
JumlahAnak : integer;
GajiKotor,Tunjangan,PersenTunjangan,PersenPotongan : real ;
Potongan:Real;
begin
PersenTunjangan:=0.2;
PersenPotongan:=0.05;
write(‘Gaji Kotor ?’);readln(GajiKotor);
write(‘Jumlah Anak ?’);readln(JumlahAnak);
if JumlahAnak>2 then
begin
PersenTunjangan:=0.3;
PersenPotongan:=0.07;
end;
Tunjangan := PersenTunjangan*GajiKotor;
Potongan:= PersenPotongan*GajiKotor;
writeln(‘Besar Tunjangan = Rp ’,Tunjangan:10:2);
writeln(‘Besar Potongan = Rp ’,Potongan:10:2);
readkey;
end.
2. IF … THEN … ELSE …
if <kondisi> then
if <kondisi> then begin
<instruksi> <instruksi ke 1>;
else <instruksi ke 2>;
<instruksi>; …
<instruksi ke n>;
end
else
begin
<instruksi ke 1>;
<instruksi ke 2>;
…
<instruksi ke n>;
end;
Jika kondisi bernilai benar maka instruksi setelah then akan dijalankan, bila
kondisi salah maka instruksi setelah else yang dijalankan. Cara penulisan 1
digunakan jika instruksi hanya satu baris jika banyak gunakan cara penulisan 2.
Modul Praktikum Pascal Pemrograman Komputer
Contoh :
Cara Penulisan 1 :
(* Nama Program : MasukA.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : memeriksa inputan *)
(* --------------------------------------------------- *)
uses crt;
var
A : char;
begin
write(‘Masukkan Suatu Karakter :’);
A:=readkey;
writeln;
if A=’A’ then
writeln(‘Anda menekan A besar’)
else
writeln(‘Anda tidak menekan A besar’);
readkey;
end.
Cara Penulisan 2 :
(* Nama Program : MasukAbj.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : memeriksa inputan *)
(* --------------------------------------------------- *)
uses crt;
var
A : char;
begin
write(‘Masukkan Suatu Karakter :’);
A:=readkey;
writeln;
if (A>=’A’)and(A<=’Z’) then
begin
writeln(‘Anda menekan huruf besar’);
writeln(‘Huruf yang anda tekan, Huruf ’,A);
end
else
begin
writeln(‘Anda tidak menekan huruf besar’);
writeln(‘Karakter yang anda tekan, Karakter ’,A);
end;
readkey;
end.
Modul Praktikum Pascal Pemrograman Komputer
if <kondisi> then
if <kondisi> then begin
<instruksi> <instruksi ke 1>;
else <instruksi ke 2>;
if <kondisi> then …
<instruksi>; <instruksi ke n>;
end
else
if <kondisi> then
begin
<instruksi ke 1>;
<instruksi ke 2>;
…
<instruksi ke n>;
end;
Contoh :
Cara Penulisan 1 :
(* Nama Program : Akar1.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : menentukan jenis akar persamaan kuadrat*)
(* --------------------------------------------------- *)
uses crt;
var
a,b,c,D : real;
begin
writeln(‘Menentukan Jenis Akar Persamaan Kuadrat’);
writeln(‘ Persamaan Umum : ax^2+bx+c ’);
writeln;
write(‘a = ’);readln(a);
write(‘b = ’);readln(b);
write(‘c = ’);readln(c);
writeln;
D:=(b*b)-(4*a*c);
writeln(‘Nilai Diskriminan : ’,D);
write(‘Jenis Akar : ’);
if D=0 then
write(‘Kembar’)
else
if D>0 then
write(‘Berlainan’)
else
if D<0 then
write(‘imajiner berlainan’);
readkey;
end.
Modul Praktikum Pascal Pemrograman Komputer
Cara Penulisan 2 :
(* Nama Program : Akar2.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : mencari akar persamaan kuadrat*)
(* --------------------------------------------------- *)
uses crt;
var
a,b,c,D,x1,x2 : real;
begin
writeln(‘ Mencari Akar Persamaan Kuadrat ’);
writeln(‘ Persamaan Umum : ax^2+bx+c ’);
writeln;
write(‘a = ’);readln(a);
write(‘b = ’);readln(b);
write(‘c = ’);readln(c);
writeln;
D:=(b*b)-(4*a*c);
writeln(‘Nilai Diskriminan : ’,D);
write(‘Jenis Akar : ’);
if D=0 then
begin
X1:=(-b)/(2*a);
writeln(‘Kembar’);
writeln(‘x1=x2=’,x1:10:2);
end
else
if D>0 then
begin
x1:=((-b)+ sqrt(D))/(2*a);
x2:=((-b)+ sqrt(D))/(2*a);
writeln(‘Berlainan’);
writeln(‘x1 = ’,x1:10:2);
writeln(‘x2 = ’,x2:10:2);
end
else
if D<0 then
begin
x1:=(-b)/(2*a);
x2:=sqrt(-d)/(2*a);
writeln(‘2 akar imajiner berlainan’);
writeln(‘x1 = ’,x1:5:2,’+‘,x2:5:2,’i’);
writeln(‘x2 = ’,x1:5:2,’-’,x2:5:2,’i’);
end;
end.
Modul Praktikum Pascal Pemrograman Komputer
4. CASE … OF …
case <nama> of
<kondisi ke 1> : begin
<instruksi ke 1>;
…
<instruksi ke n>;
case <nama> of end;
<kondisi ke 1> : <instruksi ke 1>; <kondisi ke 2> : begin
<kondisi ke 2> : <instruksi ke 2>; <instruksi ke 1>;
… …
<kondisi ke n> : <instruksi ke n>; <instruksi ke n>;
else <instruksi> end;
end; …
<kondisi ke n> : begin
<instruksi ke 1>;
…
<instruksi ke n>;
end;
else
begin
<instruksi ke 1>;
…
<instruksi ke n>;
end;
end;
Contoh :
Cara Penulisan 1 :
(* Nama Program :
upah.pas *)
(* NPM … : *)
(* Nama … : *)
(* Tgl buat … : *)
(* Deskripsi :
menentukan upah karyawan berdasarkan
golongan dan tunjangan anak*)
(* --------------------------------------------------- *)
uses crt;
var
Nama : string;
Gol : char;
JmlAnak : integer;
Upahkotor,upahbersih : real;
PersenTunjangan:real;
Begin
Write(‘Nama : ’);readln(Nama);
Write(‘Gol (A - D) : ’);readln(Gol);
Write(‘Jumlah Anak : ’);readln(JmlAnak);
Case Gol of
‘A’ : Upahkotor:=1000000;
‘B’ : Upahkotor:=800000;
‘C’ : Upahkotor:=600000;
‘D’ : Upahkotor:=400000;
end;
Modul Praktikum Pascal Pemrograman Komputer
if(JmlAnak>2)then
PersenTunjangan := 0.3
else
PersenTunjangan := 0.2;
Cara Penulisan 2 :
(* Nama Program : Menu.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : membuat menu*)
(* --------------------------------------------------- *)
uses crt;
const
pi = 3.14;
var
pilih : integer;
sisi,jari,tinggi : real;
begin
writeln(‘ <<< Menu >>> ’);
writeln;
writeln(‘1. Menghitung Isi Kubus’);
writeln(‘2. Menghitung Luas Lingkaran’);
writeln(‘3. Menghitung Isi Silisnde’);
writeln;
write(‘Pilih Nomor : ’);readln(pilih);
case pilih of
1 : begin
write(‘Panjang Sisi Kubus : ’);readln(sisi);
writeln(‘Isi Kubus : ’,sisi*sisi*sisi);
end;
2 : begin
write(‘Jari-jari lingkaran : ’);readln(jari);
writeln(‘Luas Lingkaran : ’,pi*jari*jari);
end;
3 : begin
write(‘Jari-jari lingkaran : ’);readln(jari);
write(‘Tinggi Silinder : ’);readln(tinggi);
writeln(‘Isi Silinder : ’,pi*jari*jari*tinggi);
end;
end;
end.
Modul Praktikum Pascal Pemrograman Komputer
TUGAS
1. Apa tampilan akhir dari program dibawah ini.
Uses wincrt;
var
nilai,quiz,absen,uts,uas,tugas:real;
Huruf_Mutu:char;
begin
quiz:=40;absen:=100;uts:=60;uas:=50;tugas:=80;
writeln(‘Absen = ‘,absen:5:2,’ UTS = ‘,uts:5:2);
writeln(‘Tugas = ‘,tugas:5:2,’ UAS = ‘,uas:5:2);
writeln(‘Quiz = ‘,quiz:5:2);
nilai:=((0.1*absen)+(0.2*tugas)+(0.3*quiz)
+(0.4*uts)+(0.5*uas))/2;
if (nilai>85) and (nilai<=100) then
Huruf_Mutu:=’A’
else if (nilai>70) and (nilai<=85) then
Huruf_Mutu:=’B’
else if (nilai>55) and (nilai<=70) then
Huruf_Mutu:=’C’
else if (nilai>40) and (nilai<=55) then
Huruf_Mutu:=’D’
else if (nilai>=0) and (nilai<=40) then
Huruf_Mutu:=’E’;
writeln(‘Huruf Mutu : ‘,Huruf_Mutu);
end.
2. Buat program untuk menghitung gaji karyawan dengan ketentuan sebagai berikut.
MODUL III
PERULANGAN / LOOPING
1. PENJELASAN
1. FOR
Contoh :
Cara Penulisan 1 :
For naik :
(* Nama Program :
Pangkat.pas *)
(* NPM …: *)
(* Nama …: *)
(* Tgl buat …: *)
(* Deskripsi :
memangkatkan bilangan dengan pangkat
tertentu *)
(* --------------------------------------------------- *)
uses crt;
var
i,pangkat:integer;
hasilpangkat,dipangkatkan:real;
begin
write(‘Bilangan yang akan dipangkatkan : ‘);
readln(dipangkatkan);
write(‘Masukkan pangkatnya : ‘);readln(pangkat);
hasilpangkat:=1;
for i:=1 to pangkat do
hasilpangkat:=hasilpangkat*dipangkatkan;
write(dipangkatkan,‘^’,pangkat,’ : ‘,hasilpangkat);
readkey;
end.
For turun :
(* Nama Program : cdown.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : menghitung mundur *)
(* N,N-1,N-2,… ,1,0 *)
(* --------------------------------------------------- *)
uses crt;
Var
N : integer; (* angka awal *)
i: integer;(* counter *)
begin
write(‘Masukan angka : ‘);readln(N);
for i:=N downto 1 do
write(i,’, ’);
write(‘0’);
end.
Modul Praktikum Pascal Pemrograman Komputer
Cara Penulisan 2 :
For naik :
(* Nama Program : rata2.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : menghitung rata-rata *)
(* --------------------------------------------------- *)
uses crt;
Var
i,N : integer;(* counter dan jumlah data *)
Data,Rata,Total : real;
begin
write(‘Banyaknya data : ’);readln(N);
for i:=1 to N do
begin
write(‘Data ke ’,i,’ : ‘);readln(Data);
Total:=Total+Data;
end;
Rata:=Total/N;
writeln(‘Banyaknya Data : ‘,N);
writeln(‘Total Nilai Data : ‘,Total:5:2);
writeln(‘Rata-rata nilai Data : ’,Rata:5:2)
end.
For turun :
(* Nama Program : bintang.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : mencetak bintang *)
(* --------------------------------------------------- *)
uses crt;
Var
N : integer; (* u *)
I,j: integer;(* counter *)
begin
write(‘Masukan jumlah awal bintang : ‘);readln(N);
for i:=N downto 0 do
begin
for j:=1 to i do
write(‘*’);
writeln;
end;
end.
Modul Praktikum Pascal Pemrograman Komputer
2. WHILE … DO …
Cara Penulisan :
while (kondisi) do
begin
<instruksi ke 1>;
…
<instruksi ke n>;
end;
Bentuk perulangan ini dipakai bila anda tidak mengetahui berapa kali akan
melakukan perulangan/ bila ingin melakukan perulangan dengan kondisi
tertentu.
Contoh :
(* Nama Program : tabel.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : *)
(* *)
(* --------------------------------------------------- *)
uses crt;
var
x,i,pangkat,hasilpangkat:integer;
begin
writeln(‘ x 1/x x^2 x^3’);
writeln(‘-----------------------------------’);
x:=1;
while (x<=10) do
begin
write(x:5,(1.0/x):8:5);
pangkat:=2;
while(pangkat<=3) do
begin
hasilpangkat:=1;
for i:=1 to pangkat do
hasilpangkat:=hasilpangkat*x;
write(hasilpangkat:8);
pangkat:=pangkat+1;
end;
writeln;
x:=x+1;
end;
end.
Modul Praktikum Pascal Pemrograman Komputer
3. REPEAT … UNTIL
Cara Penulisan :
repeat
<instruksi ke 1>;
…
<instruksi ke n>;
until (kondisi);
Bentuk perulangan ini dipakai bila anda tidak mengetahui berapa kali akan
melakukan perulangan/ bila ingin melakukan perulangan dengan kondisi
tertentu.
Contoh :
(* Nama Program : Menu2.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : membuat menu*)
(* --------------------------------------------------- *)
uses crt;
const
pi = 3.14;
var
pilih : integer;
sisi,jari,tinggi : real;
begin
repeat
writeln(‘ <<< Menu >>> ’);
writeln;
writeln(‘1. Menghitung Isi Kubus’);
writeln(‘2. Menghitung Luas Lingkaran’);
writeln(‘3. Menghitung Isi Silinder’);
writeln(‘0. Keluar Program‘);
write(‘Pilih Nomor : ’);readln(pilih);
case pilih of
1 : begin
write(‘Panjang Sisi Kubus : ’);readln(sisi);
writeln(‘Isi Kubus : ’,sisi*sisi*sisi);
end;
2 : begin
write(‘Jari-jari lingkaran : ’);readln(jari);
writeln(‘Luas Lingkaran : ’,pi*jari*jari);
end;
3 : begin
write(‘Jari-jari lingkaran : ’);readln(jari);
write(‘Tinggi Silinder : ’);readln(tinggi);
writeln(‘Isi Silinder : ’,pi*jari*jari*tinggi);
end;
end;
readkey;
until pilih=0;
end.
Modul Praktikum Pascal Pemrograman Komputer
TUGAS
Uses crt;
var
i:integer;
begin
i:=2345;
writeln(‘Bilangan : ’,i);
write(‘Dibalik : ‘);
while(i<>0)do
begin
write(i mod 10);
i:=i div 10;
end;
end.
x sin(x) cos(x)
-----------------------
0 0.00 1.00
30 0.50 0.87
60 0.87 0.50
90 1.00 0.00
120 0.87 -0.50
150 0.50 -0.87
180 0.00 -1.00
210 -0.50 -0.87
240 -0.87 -0.50
270 -1.00 0.00
300 -0.87 0.50
330 -0.50 0.87
360 0.00 1.00
petunjuk : gunakan fungsi sin dan cos dengan terlebih dahulu membagi x dengan
57,2958.
MODUL IV
FUNGSI & PROCEDURE
FUNGSI
Suatu bagian dari program yang dimaksudkan untuk mengerjakan suatu tugas
tertentu dan letaknya dipisahkan dari bagian program yang menggunakannya.
Seperti halnya fungsi dalam matematika fungsi dalam program juga menghasilkan
suatu nilai.
(* Nama Program :
pangkat.pas *)
(* NPM … : *)
(* Nama … : *)
(* Tgl buat … : *)
(* Deskripsi :
memangkatkan bilangan dengan pangkat
tertentu *)
(* --------------------------------------------------- *)
uses crt;
function fpangkat(dipangkatkan:real;pangkat:integer):real;
var
(* variabelnya anda tentukan sendiri *)
begin
(* pahami program pangkat.pas dan kemudian lengkapi bagian
ini*)
end;
Modul Praktikum Pascal Pemrograman Komputer
var
(* lengkapi bagian ini *)
begin
write(‘Bilangan yang akan dipangkatkan : ‘);
readln(dipangkatkan);
write(‘Masukkan pangkatnya : ‘);readln(pangkat);
write(dipangkatkan,‘^’,pangkat,’ : ‘,
fpangkat(dipangkatkan,pangkat));
readkey;
end.
FUNGSI REKURSIF
Contoh :
(* Nama Program : torial2.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : menghitung n! secara rekrusif*)
(* --------------------------------------------------- *)
uses crt;
function fakt(n:longint):longint;
begin
if (n=0) then
fakt:=1
else
begin
n:=n*fakt(n-1);
fakt:=n;
end;
end;
var
n:longint;
begin
write(‘Masukkan n : ‘);readln(n);
writeln(n,‘! = ‘,fakt(n));
end.
Modul Praktikum Pascal Pemrograman Komputer
PROCEDURE
var
(* variabelnya anda tentukan sendiri *)
begin
write(‘Masukkan banyaknya data : ’);readln(x);
cetak(x);
readkey;
end.
Modul Praktikum Pascal Pemrograman Komputer
Latihan :
Lihat program upah.pas di modul 2, dan rubah menjadi seperti di bawah ini :
(* Nama Program :
upah.pas *)
(* NPM … : *)
(* Nama … : *)
(* Tgl buat … : *)
(* Deskripsi :
menentukan upah karyawan berdasarkan
golongan dan tunjangan anak*)
(* --------------------------------------------------- *)
uses crt;
function Upahkotor(gol:char):real;
begin
(* definisikan sendiri *)
end;
function Persentunjangan(jmlanak:integer)real;
begin
(* definisikan sendiri *)
end;
var
(* definisikan sendiri *)
Begin
input(Nama,Gol,jmlanak);
Upahbersih:= upahkotor(Gol) –
(upahkotor(Gol)*persentunjangan(jmlanak));
writeln(‘Upah : ’,upahbersih);
end.
Modul Praktikum Pascal Pemrograman Komputer
TUGAS
1. Tuliskan proses yang terjadi pada procedure cetak yang ada di program tabel.pas,
tahap pertahap untuk nilai-nilai x = 1, 2, 3, …. 5
MODUL V
TIPE DATA BENTUKKAN
ARRAY
PENJELASAN
ARRAY
Cara Pendeklarasian :
Var type
Var:array [indeks]of <tipe>; var_baru=array[indeks]of <tipe>;
Begin var
<instruksi>; var:var_baru;
end. begin
<instruksi>;
end.
Contoh :
(* Nama Program : isicetak.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : mengisi dan mencetak array*)
(* --------------------------------------------------- *)
uses crt;
var
i : integer;
nilai:array[1..3]of integer;
begin
writeln(‘Mengisi elemen array’);
i:=1;
while(i<=3) do
begin
write(‘Nilai ke ‘,i,’ = ‘);readln(nilai[i]);
i:=i+1;
end;
writeln(‘Mencetak elemen array’);
for i:=1 to 3 do
writeln(‘Nilai ke ‘,i,’ = ‘,nilai[i]);
Modul Praktikum Pascal Pemrograman Komputer
end.
Contoh :
(* Nama Program : isictk2.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : mengisi dan mencetak array*)
(* --------------------------------------------------- *)
uses crt;
type
Tarray=array[1..3] of integer;
procedure cetak(nilai:Tarray);
var
i:integer;
begin
for i:=1 to 3 do
begin
writeln(‘Nilai ke ‘,i,’ = ‘,nilai[i]);
end;
end;
var
nilai:Tarray;
n:integer;(*data yang dicari*)
begin
writeln(‘Mengisi elemen array’);
isi(nilai);
writeln(‘Mencetak elemen array’);
cetak(nilai);
end.
Modul Praktikum Pascal Pemrograman Komputer
Contoh :
(* Nama Program : matrik.pas *)
(* NPM : … *)
(* Nama : … *)
(* Tgl buat : … *)
(* Deskripsi : mengisi dan mencetak matrik*)
(* --------------------------------------------------- *)
uses crt;
type
tmatrik=array[1..3,1..3]of integer;
procedure cetak(matrik:tmatrik);
var
i,j:integer;
begin
for i:=1 to 3 do
begin
for j:=1 to 3 do
write(matrik[i,j]:3);
writeln;
end;
end;
var
matrik:tmatrik;
begin
writeln(‘Mengisi elemen matrik A’);
isi(matrik);
writeln(‘Mencetak elemen matrik A’);
cetak(matrik);
end.
TUGAS
DIKUMPULKAN 22 MEI 2004
1. Procedure di bawah ini untuk mengurut elemen larik.
Type
Tarray= array[1..16] of integer;
procedure urut(A:Tarray)
var
i,j,tmp:integer;
begin
for i:=1 to 15 do
begin
for j:=i+1 to 16 do
if (A[i] >A[j]) then
begin
tmp=A[i];
A[i]=A[j];
A[j]=tmp;
end;
end;
end;
Dengan menggunakan procedure di atas lengkapi tabel berikut.
Nilai
NILAI A
i j
0 0 A[0]=561 A[4]=508 A[8]=400 A[12]=301
A[1]=329 A[5]=375 A[9]=561 A[13]=390
A[2]=455 A[6]=508 A[10]=473 A[14]=329
A[3]=561 A[7]=455 A[11]=346 A[15]=301
… …. A[0]=… A[4]=… A[8]=… A[12]=…
A[1]=… A[5]=… A[9]=… A[13]=…
A[2]=… A[6]=… A[10]=… A[14]=…
A[3]=… A[7]=… A[11]=… A[15]=…
15 16 A[0]=301 A[4]=346 A[8]=455 A[12]=508
A[1]=301 A[5]=375 A[9]=455 A[13]=561
A[2]=329 A[6]=390 A[10]=473 A[14]=561
A[3]=329 A[7]=400 A[11]=508 A[15]=561
9 8 7 2 5 7
6 5 6 setelah diurut akan menjadi 3 6 8
4 3 2 4 6 9
3. Tulis sebuah procedure untuk mengganti karakter-karakter dari kalimat yang diinput
dengan abjad setelahnya menurut urutan abjad latin. a diganti dengan b, b diganti
dengan c, …, z diganti dengan a.
Contoh :
Misal kalimat yang diinput : AsepSopian
Setelah digeser : BtfqTpqjbo
Modul Praktikum Pascal Pemrograman Komputer
MODUL VI
TIPE DATA BENTUKKAN
RECORD
RECORD
Cara Pendeklarasian :
Type
Tnama=record
var_1:<tipe 1>;
…
var_n:<tipe n>;
end;
var
var: Tnama ;
begin
<instruksi>;
end.
Contoh:
(* Nama Program :
upah.pas *)
(* NPM … : *)
(* Nama … : *)
(* Tgl buat … : *)
(* Deskripsi :
menentukan upah karyawan berdasarkan
golongan dan tunjangan anak*)
(* --------------------------------------------------- *)
uses crt;
type
Tpegawai=record
Nama : string[20];
Gol : char;
JmlAnak : integer;
end;
var
pegawai:tpegawai;
Upahkotor,upahbersih : real;
PersenTunjangan:real;
Begin
Write(‘Nama : ’);readln(pegawai.Nama);
Write(‘Gol (A - D) : ’);readln(pegawai.Gol);
Write(‘Jumlah Anak : ’);readln(pegawai.JmlAnak);
Case pegawai.Gol of
‘A’ : Upahkotor:=1000000;
‘B’ : Upahkotor:=800000;
‘C’ : Upahkotor:=600000;
‘D’ : Upahkotor:=400000;
Modul Praktikum Pascal Pemrograman Komputer
end;
if(pegawai.JmlAnak>2)then
PersenTunjangan := 0.3
else
PersenTunjangan := 0.2;
Contoh :
(* Nama Program :
upah2.pas *)
(* NPM … : *)
(* Nama … : *)
(* Tgl buat … : *)
(* Deskripsi :
menentukan upah karyawan berdasarkan
golongan dan tunjangan anak*)
(* --------------------------------------------------- *)
uses crt;
type
Tpegawai=record
Nama : string[20];
Gol : char;
JmlAnak : integer;
end;
procedure input(var pegawai:tpegawai);
begin
with pegawai do
begin
write(‘Nama : ’);readln(Nama);
write(‘Gol (A - D) : ’);readln(Gol);
write(‘Jumlah Anak : ’);readln(JmlAnak);
end;
end;
function upahkotor(gol:char):real;
begin
Case Gol of
‘A’ : upahkotor:=1000000;
‘B’ : upahkotor:=800000;
‘C’ : upahkotor:=600000;
‘D’ : upahkotor:=400000;
end;
end;
function persentunjangan(jmlanak:integer):real;
begin
if(JmlAnak>2)then
persenTunjangan := 0.3
else
persenTunjangan := 0.2;
Modul Praktikum Pascal Pemrograman Komputer
end;
procedure cetak(pegawai:tpegawai);
var
upahbersih : real;
begin
clrscr;
with pegawai do
begin
writeln(‘Nama : ’,Nama);
writeln(‘Gol (A - D) : ’,Gol);
writeln(‘Jumlah Anak : ’,JmlAnak);
upahbersih:= upahkotor(gol) –
(upahkotor(gol)*persentunjangan(jmlanak));
writeln(‘Upah : ’,upahbersih:5:2);
end;
end;
var
pegawai:tpegawai;
Begin
input(pegawai);
cetak(pegawai);
end.
Contoh :
(* Nama Program :
upah3.pas *)
(* NPM … : *)
(* Nama … : *)
(* Tgl buat … : *)
(* Deskripsi :
menentukan upah karyawan berdasarkan
golongan dan tunjangan anak*)
(* --------------------------------------------------- *)
uses crt;
type
Tpegawai=record
Nama : string[20];
Gol : char;
JmlAnak : integer;
end;
Tdaf_peg=array[1..5]of Tpegawai;
function upahkotor(gol:char):real;
Modul Praktikum Pascal Pemrograman Komputer
begin
Case Gol of
‘A’ : upahkotor:=1000000;
‘B’ : upahkotor:=800000;
‘C’ : upahkotor:=600000;
‘D’ : upahkotor:=400000;
end;
end;
function persentunjangan(jmlanak:integer):real;
begin
if(JmlAnak>2)then
persenTunjangan := 0.3
else
persenTunjangan := 0.2;
end;
procedure cetak(pegawai:tpegawai);
var
upahbersih : real;
begin
clrscr;
with pegawai do
begin
writeln(‘Nama : ’,Nama);
writeln(‘Gol (A - D) : ’,Gol);
writeln(‘Jumlah Anak : ’,JmlAnak);
upahbersih:= upahkotor(gol) –
(upahkotor(gol)*persentunjangan(jmlanak));
writeln(‘Upah : ’,upahbersih:5:2);
end;
end;
var
daf_pegawai:tdaf_peg;
i:integer;
Begin
For i:=1 to 5 do
begin
writeln('Data ke ',i,':');
input(daf_pegawai[i]);
end;
For i:=1 to 5 do
begin
writeln('Data ke ',i,':');
cetak(daf_pegawai[i]);
readkey;
end;
end.