09/02/19

Contoh Program Pascal Procedure,Function,Rekursi dan Iterasi


Contoh Procedure

Contoh 1: buatlah prosedur yang menuliskan bintang (*) sebanyak n kali, dimana n adalah parameter inputnya.
Penyelesaian:
Program bintang;
Uses crt;
Procedure tulisbintang (n:integer);                                                     
Var i : integer;
begin
for i:=1 to n do
write (‘*’);
writeln;
end;
var a:integer;
begin
write(‘masukan banyak bintang’);readln(a);
tulisbintang(a);
end.

OUTPUTNYA



contoh 2 : buatlah program yang membaca dua buah integer yang disimpan pada dua buah variable dan menukar nilai variable tersebut.


program pertukaran;
uses crt;
var          angka1,angka2:integer;
procedure tukar (var a, b : integer);
{menukar isi a menjadi b dan sebaliknya}
Var temp: integer;

Begin                                                                           
Temp:=a;
a:=b;
b:= temp;
end;
{program utama}
Begin
Writeln(‘sebelum pertukaran’);
Write(‘angka 1:’);readln(angka1);
Write(‘angka2:’);readln(angka2);
Tukar(angka1,angka2);
Writeln;
Writeln(‘setelah pertukaran’);
Write(‘angka1:’, angka1);
Write(‘angka2:’,angka2);

End.

OUTPUTNYA






Contoh Function


Contoh 1: buat program yang menerima dua buah integer dan dan lakukan penjumlah terhadap interger tersebuat
program f_jumlah;

Uses crt;

Var
   X, Y : integer ;

Function Hitung(Var A,B : integer): integer;
Begin
     Hitung := A + B;
End;    

Begin
     Write('Nilai X ?   '); readln(X);
     Write('Nilai Y ?   '); readln(Y);
     Writeln;
     Writeln(X,' + ',Y,' = ', Hitung(X,Y));
End.


outputnya




Contoh 2: buat Program Menghitung Luas Persegi Panjang

program fungsi1;
uses crt;
function luas (a,b:integer):integer;
begin
        luas :=a*b;
        end;
var
x,y:integer;
begin
clrscr;
        writeln('Program Menghitung Luas Persegi Panjang');
        writeln;
        write('Masukan Lebar= ');readln(x);
        write('Masukan Panjang= ');readln(y);
        writeln;
        writeln('Luas Persegi Panjang adalah= ',luas(x,y));
        readln;
        end.

outputnya




Contoh 3: buat program yang menerima dua buah integer dan menentukan integer terbesar diantara keduanya menggunakan fungsi.
Program terbesar;
Uses crt

Var angka1,angka2:integer;
Terbesar:integer;
Function maks(a,b : integer) : integer;
Begin
If  a>b then
Maks:=a
Else maks:=b;
End;
{program utama}
Begin
Write (‘angka pertama=’);readln(angka1);
Write (‘angka kedua=’);readln(angka2);
Terbesar:=maks(angka1,angka2);
Write (‘angka terbesar adalah’,terbesar);
End.

OUTPUT


Contoh 4:

Buatlah sebuah fungsi untuk mengkonversi nilai mata uang dalam rupiah ke dolar, yang menerima dua buah integer yang masing masing menyatakan nilai uang dalam rupiah dan nilai tukar 1 dolar dalam rupiah, serta mengirimkan nilai rupiah tersebut dalam dolar

Penyelesain:
Program kurs_uang;
Var         rupiah,kursdolar:integer;
Dolar:real;
Function nilaidolar(rp,kurs : integer) : real
Begin
Nilaidolar:=rp/kurs;
End;
{program utama}
Begin
Write(‘masukan nilai rupiah=’);readln(rupiah);
Write(‘kurs 1 dolar=’);readln(kursdolar);
Dolar:=nilaidolar(rupiah,kursdolar);
Write(‘Rp’, rupiah, ‘=’, dolar:3:2, ‘dolar’);
End.

Output



Contoh Rekusi
Contoh 1:
Proses rekursif yang tidak pernah berakhir (karena tidak mengandung kondisi untuk mengakhirkan rekursi tersebut)

Program REKURSI_DENGAN_AKHIR;
Uses crt;
Var
ulang : integer;
procedure Rekursi;
Begin
if ulang < 5 then
begin
write(‘UNINDRA’);
ulang := ulang + 1;
Rekursi;
end;
end;
Begin
ulang := 0;
Rekursi;
End.

Hasil Output :
Bila program dijalankan, maka proses rekursi akan terus dijalankan tanpa berhenti sebagai berikut:
UNINDRA UNINDRA UNINDRA UNINDRA UNINDRA . . .


Contoh 2:
Proses rekursi sebanyak 5 kali, yaitu dengan menyeleksi kondisi dari peubah ulang sampai dengan bernilai 5

Program REKURSI_DENGAN_AKHIR;
Uses crt
Var
ulang : integer;
procedure Rekursi;
Begin
if ulang < 5 then
begin
write(‘Informatika ’);
ulang := ulang + 1;
Rekursi;
end;
end;
Begin
ulang := 0;
Rekursi;
End.

OUTPUT



Contoh 3:

Prosedur Deret untuk menampilkan suatu deret bilangan bulat N dari 0 sampai dengan 5

Program DERET_BILANGAN;
var
N : integer;
procedure Deret(N : integer);
begin
write(N:3);
if N < 5 then
Deret(N+1);
end;
            end;
begin
N := 0;
Deret(N);
end.

Hasil Output:
0 1 2 3 4 5


Contoh 4: (Faktorial)
  • Faktorial adalah 1x2x3x4x...N (dengan asumsi N lebih besar dari 3) dan dapat dirumuskan dengan:

PROGRAM HITUNG_FAKTORIAL;
var
N : integer;
function Faktorial(N: integer):
integer;                                             

begin

if N <= 1 then
Faktorial := 1
else
Faktorial := N * Faktorial(N-1);
end;
begin
write(‘Berapa faktorial ?’);
readln(N);
write(‘Faktorial= ‘,Faktorial(N));
end.



Contoh Iterasi
Angka
Fungsi: Tak ada fungsi khusus, hanya menampilkan pola-pola angka saja…
Hint : Begitu jalan, langsung masukan angka saja, Jangan masukan angka terlalu kecil atau besar.
Contoh outputnya


uses crt;
var inp,i,a,t,r:integer;
begin
 readln(inp);
 t:=inp;
 for i:=1 to inp do
   begin
   for a:=1 to inp do
     write(a-t);
     writeln;
    t:=t-1;
  end;
 readln;
end.


Jumlah Pangkat

Fungsi:  untuk menghasilkan deret pangkat, misal : 1, 4, 9, 16, 25 dst dan menjumlahkannya
Hint : Masukan jumlah deret pangkat yang akan ditampilkan untuk di jumlah…





uses crt;

var k,jum:double;
  i,n:longint;
begin
 clrscr;
 readln(n);
 jum:=0;
 for i:=1 to n do
  begin
   k:=sqr(i);
   write(k:0:0);
    if i<>n then
    write('+');
   jum:=jum+k;
  end;
 write('=',jum:0:0);
 readln;
end.


Tebak Angka
Fungsi:  Permainan Tebak angka, masukan angka rahasia dan suruh teman untuk menebaknya
Hint :  Permainan ini tidak akan asik bila dilakukan sendirian.


uses crt;
var a,teb,c,d,rhs:integer;
begin
 Write('Bilangan Rahasia : ');readln(rhs);
 clrscr;
 repeat
  write('masukan Tebakan anda : ');readln(teb);
  if (teb<>rhs) and (teb>rhs) then
   writeln('Bilangan terlalu besar!')
  else if (teb<>rhs) and (teb
   writeln('bilangan terlalu kecil');
 until (teb=rhs);
 writeln('Tebakan Anda Benar!!!!, selamat!!!!');
 readln;
 end.

Z
Fungsi:  Melukis huruf Z dengan karakter ‘*’ sebesar jumlah perulangan yang di inputkan
Hint : Masukan angka untuk menentukan besar huruf Z

uses crt;
var n,i,a:integer;
begin
 readln(n);
 for i:=1 to n do
  begin
   for a:=1 to n do
    begin
       if (i=1) or (i=n) then
        write('#')
       else if (i<>1) and (i<>n) then
         begin
          if a+i=n then
            write('#')
           else
          write(' ');
        end;
       end;
       writeln;
     end;
 readln;
 end.




1 komentar: