Powered By Blogger

Kamis, 06 Oktober 2011

STRUKTUR PENULISAN PROGRAM

Pemrograman terstruktur pada dasarnya tersusun atas 4struktur program utama yaitu :

1.            STRUKTUR BERURUTAN
Struktur berurutan , dimana perintah atau pernyataan dijalankan dalam suatu urutan yang telah ditentukan. Hanya ada satu cara memulai struktur ini, yaitu dari bagian atas dan hanya satu cara untuk keluar, yaitu pada bagian bawah.
Contoh :
Menghitung luas persegi panjang
Program persegipanjang;
Uses wincrt;
Var
Luas, panjang, lebar:integer;
Begin
Clrscr;
Write(‘masukkan panjang :’);readln(panjang);
Write(‘masukkan lebar :’);readln(lebar);
Luas:=panjang*lebar;
Write(‘luas persegi panjang =’,luas,’cm’);
Realdn;
End.


2.            STRUKTUR SELEKSI
Struktur  seleksi ini digunakan untuk pengujian suatu kondisi dalam suatu program komputer. Struktur penulisan selection control dibagi menjadi 2 macam yaitu :
1.     Branching
Struktur penulisan program yang hanya menggunakansatu kondisi yang harus dieksekusi didalam sebuah program komputer.

Contoh programnya dibawah ini :
{struktur seleksi}
{program branching menentukan bilangan ganjil habis dibagi 3

uses wincrt;
var
a,b :integer;
begin
clrscr;
write('nilai a  :');readln(a);
write('nilai b  :');readln(b);
if a=2 then
begin
a:=a+2;
b:=b*a;
end
else
a:=a+2;
b:=a*2;
write('nilai a:',a);
write('nilai b:',b);
readln;
end.


2.     Multibranching
Struktur penulisan program yang menuliskan kondisi dalam suatu kondisi pada sebuah program komputer.




Contoh programnya dibawah ini :

{program struktur seleksi dengan multibranching}
uses wincrt;
var
a,b,c,d :integer;
begin
clrscr;
write('nilai a:');readln(a);
write('nilai b:');readln(b);
write('nilai c:');readln(c);
if (a=b)and(c>3) then
begin
c:=c+b;
a:=a+3;
write('nilai c:',c);
write('nilai a:',a);
end
else
writeln('keluar');
writeln;
begin
write('nilai d:');readln(d);
if (c>3) and (d=2) then
begin
d:=d+2;
a:=d;
write('cetak nilai a :',a);
write('cetak nilai d :',d);
end
else
write('keluar');
end;
readln;
end.


3.             STRUKTUR PERULANGAN

Pengenalan Pernyataan Perulangan (Loop Statement)
Pernyataan Perulangan memiliki tiga pernyataan, repeat, while, dan for. Pernyataan perulangan dipakai untuk melakukan proses berulang terhadap pernyataan sederhana atau pernyataan terstruktur.

Pernyataan Repeat (Repeat Statements)
Pernyataan repeat (repeat statements) digunakan untuk melakukan perulangan terhadap suatu pernyataan, dimana proses pemeriksaan syaratnya berada pada akhir pernyataan repeat tersebut. Pernyataanpernyataan yang ada pada repeat akan dijalankan (diulang terus) sampai kondisi yang diseleksi di until tidak terpenuhi.

Contoh program :
1.      USES WINCRT;
      VAR
      i : INTEGER;
      BEGIN
      i:=0;
     REPEAT
     i:= i+1;
     WRITELN(i);
     UNTIL i=5;
     END.
2.      uses wincrt;
      var
      a,b,c:integer;
      begin
      writeln('=========================');
      writeln('sisi a    sisi b   sisi c');
      writeln('=========================');
      a:=1;
      repeat
      b:=0;
      repeat
     c:=sqr(a*a+b*b);
     writeln(a:5,b:10,c:10);
     b:=b+5;
     until b>25;
     a:=a+1;
     until a>3;
    writeln('=========================');
    end.

Pernyataan While (While Statements)
Pernyataan while (while statements) hampir sama dengan pernyataan repeat, dengan sedikit perbedaan bahwa pernyataan while melakukan pengujian syarat pada awal proses berulang (pernyataan repeat melakukannya di akhir proses).
Pengujian awal digunakan untuk agar program dapat menyeleksi kondisi, sehingga program dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari kondisi yang diseleksi tersebut. Pada pernyataan-pernyataan yang ada pada while tidak akan dijalankan jika kondisi tidak terpenuhi.

Contoh program :

1.       USES WINCRT;
VAR i : INTEGER;
BEGIN
i := 0;
WHILE i < 5 do
BEGIN
WRITE(i:3);
INC(i); { sama dengan i:=i+1 }
END;
END.



2.       uses wincrt;
var
n,i,jum:integer;
rata:real;
lagi:char;
begin
clrscr;
lagi:='Y';
while lagi='Y' do
begin
clrscr;
write('banyaknya data  :'); readln(n);
begin
jum:=0;
i:=1;
while i<=n do
begin
jum:=jum+i;
i:=i+1;
end;
rata:=jum/n;
writeln('jumlah:',jum);
writeln('rata :',rata:5:2);
writeln;
write('ingin menghitung lagi (Y/T) ?');
readln(lagi);
readln;
end;
end;
end.


Pernyataan For (For Statements)
Pernyataan for (for statements) juga digunakan untuk melakukan proses perulangan. Hanya saja proses perulangan pada pernyataan for langsung dikendalikan oleh suatu peubah yang disebut peubah kendali (control variables) yang harus bertipe berurutan. Jadi pada pernyataan for pada dasar sudah diketahui jumlah perulangannya. Perulangan dengan pernyataan for dapat berupa perulangan positif ('to') dan perulangan negatif ('downto'). Jika pernyataan yang akan mengalami perulangan lebih dari satu pernyataan, maka harus diawali dengan begin dan diakhiri dengan end;.


 Contoh program :
1.      uses wincrt;
      var
      n,i:integer;
      begin
      write('masukkan banyaknya bilangan :');readln(n);
      for i:=1 to n do
     writeln(i);
      end.

2.      uses wincrt;
      var
      n,i:integer;
      begin
      write('masukkan banyaknya bilangan :');readln(n);
      for i:=n downto 1 do
     writeln(i);
      end.

3.      uses wincrt;
var
i,j:integer;
begin
for i:=1 to 4 do
begin
for j:=1 to 2 do
write(i,j);
writeln;
end;
end.

4.             STRUKTUR REKURSI
Rekursi adalah proses dari suatu subprogram (dapat berupa fungsi atau procedure) yang memanggil dirinya sendiri.

Kondisi pengakhiran rekursi :
Contoh berikut ini merupakan proses rekursi yang tidak pernah berakhir karena tidak mengandung kondisi pengakhiran rekursi tersebut

Contoh:
uses wincrt;
procedure rekursi;
begin
write('pascal');
rekursi;
end;
begin
rekursi;
end.

Kondisi pengakhiran rekursi dapat dilakukan dengan menggunakan statemen pebyeleksian kondisi. Rekursi akan dihentikan bila kondisi telah memenuhi syarat :

Contoh:
uses wincrt;
var
akhir :word;
procedure rekursi;
begin
if akhir<5 then
begin
writeln('pascal');
akhir:=akhir+1;
rekursi;
end;
end;
begin
akhir:=0;
rekursi;
end.

FAKTORIAL adalah: 1x2x3x4…x n (dengan asumsi n lebih besar dari 3 dan dapat dirumus kan dengan:
N!=n*(n-1)*(n-2)*….*

Perumusan diatas dapat didefinisikan secara rekursi sebagai berikut :
N!=N*(N-1)!






Contoh :
uses wincrt;
procedure faktorial(n:byte; var hasil:longint);
begin
if n<=1 then
hasil:=1
else
begin
faktorial(n-1,hasil);
hasil:=n*hasil;
end;
end;
var
n:byte;
f:longint;
begin
write('berapa faktorial ?');readln(n);
faktorial(n,f);
writeln('faktorial =',f);
end.

Contoh lain:
          uses wincrt;
          var
          a,x,i,hasil:integer;
          begin
          write('masukkan bilangan yang akan di pangkatkan :');readln(a);
          write('masukkan bilangan pangkat                 :');readln(x);
          hasil:=1;
          for i:=1 to x do       
          hasil:=hasil*A;
          writeln('hasil dari ',A,' pangkat ',x,' adalah :',hasil);
          readln;
          end.

Tidak ada komentar:

Posting Komentar