NAMA FILE                          : -

NAMA PROGRAM              : -

INPUT / DEKLARASI          :

1.      Variabel    :

 

Bil : integer

Pil : char

n,k : integer

 

2.      Fungsi       :

 

Uses crt = Clrscr,

Faktorial (y : integer):integer ;

Permutasi (a,b :integer):integer;

 

LOGIKA PROGRAM          :

 

¨      Uses crt;

 

Penjelasan :

Menghidupkan fungsi yaitu pada clrscr yang fungsinya membersihkan layar tampilan

 

¨      Function faktorial (y:integer):integer;

Begin

Clrscr;

If y = 1 then faktorial :=1

Else

Faktorial := y *faktorial (y-1);

End;

 

Penjelasan :

Program diatas menggunakan fungsi faktorial dimana disana dijelaskan bahwa rumus faktorial didapat dari apabila y selain satu maka y dikalikan faktorial y-1 dan dalam fungsi faktorial tersebut y bertype data integer dan faktorial itu sendiri juga bertipe integer

 

¨      Funtion permutasi (a,b:integer):real;

Begin

If a=1 then permutasi := 1

Else

Permutasi := (faktorial(a)/faktorial(a-b);

End;

 

Penjelasan :

Program diatas mengunakan fungsi permutasi dimana didalam fungsi permutasi tersebut terdapat fungsi faktorial dan program tersebut dapat dijelaskan yaitu apabila a tidak sama dengan satu maka program akan menggunakan kondisi kedua yaitu permutasi yang rumusnya faktorial a dibagi dengan faktorial (a - b). a dan b diatas bertipe data integer juga perm

utasi itu sendiri juga bertipe data integer. Rumus permutasi diatas masih ada hubungannya dengan rumus faktorial jadi kita tidak usah membuat rumus faktorial lagi.

 

¨      Var

Bil: integer;

Pil : char;

N,k : integer;

 

Penjelasan :

Pada variabel variabel diatas kita memberikan tipe data suatu data yaitu Bil  dan n,k bertipa data integer sedangkan pil bertipa data char karena digunakan untuk satu huruf saja

 

¨      Begin

Repeat

Clrscr;

Writeln ('1. Input');

Writeln ('2. Output faktorial');

Writeln ('3. Output permutasi');

Writeln ('4. Exit');

 

Penjelasan :

Program ini juga menggunakan struktur Repeat Until dimana fungsinya untuk mengulang suatu statement sampai kondisi yang diseleksi tidak terpenuhi.diatas juga sekaligus mencetak beberapa statement untuk sebagai pilihan saja 

 

¨      Case pil of

 

'1' :begin

clrscr;

write ('input [n] :');readln (n);

write ('input [k] :');readln (k);

end;

 

Penjelasan :

Case digunakan untuk bilamana terdapat ada beberapa pilihan dan diatas pilihan pertama yaitu untuk penginputan data yang akan dimasukkan dan akan dicari nilai faktorial juga permutasinya

 

 

 

 

¨      '2' :begin

clrscr;

write ('faktorial dari',n,'!','=',faktorial (n));

end;

 

Penjelasan :

Pada pilihan kedua ini program mencetak suatu statement juga sekaligus memberikan suatu nilai yang dihitung yaitu faktorialnya. Dari adanya fungsi faktorial diawal program kita hanya memasukkan fungsi faktorialnya dan otomatis akan dihitung pada rumus faktorial dalam fungsi tersebut

 

¨      '3' :begin

clrscr;

write ('permutasi dari',n,'!','/','(n-k) !','=', permutasi (n,k));

end;

end;

 

Penjelasan :

Pada pilihan ketiga ini program menghitung dari inputan untuk mencari nilai permutasinya dan cara kerja program ini sama dengan pada pilihan kedua diatas dan kata end kedua kalinya itu untuk menutup dari case

 

 

¨      readkey;

 

Penjelasan :

Readkey merupakan salah satu bagian dari type data yang digunakan apabila pada saat program dijalankan dan readkey berfungsi bila kita menekan sebuah character maka character tersebut akan tampil dan bisa keluar dari program apabila kita menekan enter atau space

 

¨      until pil ='4';

 

Penjelasan :

Until ini fungsinya apabila kondisi yang diseleksi terpenuhi maka program akan berhenti yaitu apabila pil itu sama dengan 4

 

¨      end.

 

Penjelasan :

Perintah bahwa program telah selesai karena dalan satu program end titik cuman ada satu

 

 

 

LISTING PROGRAM

 

uses crt;

function faktorial(y:integer):integer;

begin

     clrscr;

     if y = 1 then faktorial :=1

     else

     faktorial :=y*faktorial(y-1);

end;

 

function permutasi (a,b:integer):real;

begin

     if a=1 then permutasi :=1

     else

     permutasi :=(faktorial(a)/faktorial(a-b));

end;

var bil: integer;

    pil:char;

    n,k:integer;

    yul:char;

begin

     repeat

           clrscr;

           writeln('');write('  ');

           writeln('1. input' );write('  ');

           writeln('2. output faktorial');write('  ');

           writeln('3. output permutasi');write('  ');

           writeln('4. exit');

           pil := readkey;

     case pil of

     '1':begin

              clrscr;writeln('');write('    ');

              write('input [n]:');readln(n);write('    ');

              write('input [k]:');readln(k);

              end;

     '2':begin

         clrscr;writeln('');write('    ');

         write ('faktorial dari ',n,'!','=',faktorial (n));

         end;

     '3':begin

         clrscr;writeln('');write('    ');

         write ('permutasi dari ',n,'!','/','(',n,'-',k,')! =',permutasi(n,k));

         end;

     end;

     readkey;

     until pil='4';

end.