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.