RUMUS
NPR = N!/(N-R)!
Catatan: Notasi Faktorial 3! = 3x2x1 5! = 5x4x3x2x1 1! = 1 Def 0! = 1
Contoh soal:
Terdapat tiga orang (X, Y dan Z) yang akan duduk bersama di sebuah bangku. Ada berapa urutan yang dapat trjadi? Jawaban : nPx = n! ; 3P3 = 3! = 1 x 2 x 3 = 6 cara (XYZ, XZY, YXZ, YZX, ZXY, ZYX) .
KOMBINASI Adalah penggabungan beberapa objek dengan tidak memperhatikan urutan, jadi {a,b,c} sama dengan {b,a,c} juga sama dengan {c,a,b} dan sama dengan urutan yang lain asalkan terdiri dari 3 huruf tersebut.
RUMUS
NCR = N!/R!(N-R)!
Contoh soal: Dalam sebuah kantoh terdapat 7 kelereng. Berapa banyak cara mengambil 4 kelereng dari kantong tersebut? Jawaban: 7C4 = 7!/4!(7-4)! = (7×6×5×4!)/4!3! = 35 cara
CONTOH PENERAPAN PERMUTASI DAN KOMBINASI PADA ILMU KOMPUTER:
Program C_P_KPK_FPB;
uses wincrt;
var a,b,i,m,n,r,z:integer;
fn,fr,fn_r,Kombinasi,permutasi:real;
lagi:char;
label ulang;
label baca;
label again;
begin
ulang: clrscr;
writeln(' TUGAS IDIFIDU ');
writeln(' ');
writeln(' Nama:Fuatman NPM:10144100090 ');
writeln(' ');
writeln(' ');
writeln(' Pilihan: ');
writeln(' 1.Mencari FPB dan KPK ');
writeln(' 2.Mencari Kombinasi dan Permutasi');
writeln(' 3.Keluar dari Program ');
writeln(' ');
writeln(' Silahkan pilih. Masukkan angka 1,2 atau 3 untuk keluar program !');
readln(z);
if z>3 then
begin writeln('ANDA KURANG BERUNTUNG!');end else
if z<1 then
begin writeln('ANDA KURANG BERUNTUNG!');end else
label ulang;
label baca;
label again;
begin
ulang: clrscr;
writeln(' TUGAS IDIFIDU ');
writeln(' ');
writeln(' Nama:Fuatman NPM:10144100090 ');
writeln(' ');
writeln(' ');
writeln(' Pilihan: ');
writeln(' 1.Mencari FPB dan KPK ');
writeln(' 2.Mencari Kombinasi dan Permutasi');
writeln(' 3.Keluar dari Program ');
writeln(' ');
writeln(' Silahkan pilih. Masukkan angka 1,2 atau 3 untuk keluar program !');
readln(z);
if z>3 then
begin writeln('ANDA KURANG BERUNTUNG!');end else
if z<1 then
begin writeln('ANDA KURANG BERUNTUNG!');end else
if z=1 then
begin
again: clrscr;
writeln('Program Mencari FPB dan KPK');
writeln('===========================');
write('Masukkan bilangan asli pertama a= ');readln(a);
write('Masukkan bilangan asli kedua b= ');readln(b);
m:=a;n:=b;
repeat
r:=m mod n;
if (r<>0) then
begin
m:=n;
n:=r;
end;
until(r=0);
writeln('Jadi, FPB dari ',a,' dan ',b,' = ',n);
writeln(' dan KPK dari ',a,' dan ',b,' = ',a*b div n);
write('Mau coba lagi? <Y/T>: ');readln(lagi);
if upcase(lagi)='Y' then goto again;
if upcase(lagi)='T' then goto ulang;
donewincrt;
begin
again: clrscr;
writeln('Program Mencari FPB dan KPK');
writeln('===========================');
write('Masukkan bilangan asli pertama a= ');readln(a);
write('Masukkan bilangan asli kedua b= ');readln(b);
m:=a;n:=b;
repeat
r:=m mod n;
if (r<>0) then
begin
m:=n;
n:=r;
end;
until(r=0);
writeln('Jadi, FPB dari ',a,' dan ',b,' = ',n);
writeln(' dan KPK dari ',a,' dan ',b,' = ',a*b div n);
write('Mau coba lagi? <Y/T>: ');readln(lagi);
if upcase(lagi)='Y' then goto again;
if upcase(lagi)='T' then goto ulang;
donewincrt;
end;
if z=2 then
begin
baca:clrscr;
writeln('MENGHITUNG PERMUTASI DAN KOMBINASI');
writeln('=====================================');
write('Masukkan bilangan n =');readln(n);
write('Masukkan bilangan r =');readln(r);
fn:=1;
fr:=1;
fn_r:=1;
for i:= 2 to n do
fn:=fn*i;
for i := 2 to r do
fr:=fr*i;
for i:= 2 to (n-r) do
fn_r:=fn_r*i;
kombinasi:=fn/(fr*fn_r);
permutasi:=fn/(fn_r);
writeln(n,' Kombinasi ',r, ' = ',Kombinasi:0:0);
writeln(n,' Permutasi ',r, ' = ',Permutasi:0:0);
write('Mau coba lagi?<Y/T>:');readln(lagi);
if upcase(lagi)='Y' then goto baca;
if upcase(lagi)='T' then goto ulang;
donewincrt;
end;
if z=3 then
begin
writeln('Tekan Enter untuk keluar');
end;
write('Jika ingin coba lagi tekan Y: ');readln(lagi);
if upcase(lagi)='Y' then goto ulang;
donewincrt;
end.
if z=2 then
begin
baca:clrscr;
writeln('MENGHITUNG PERMUTASI DAN KOMBINASI');
writeln('=====================================');
write('Masukkan bilangan n =');readln(n);
write('Masukkan bilangan r =');readln(r);
fn:=1;
fr:=1;
fn_r:=1;
for i:= 2 to n do
fn:=fn*i;
for i := 2 to r do
fr:=fr*i;
for i:= 2 to (n-r) do
fn_r:=fn_r*i;
kombinasi:=fn/(fr*fn_r);
permutasi:=fn/(fn_r);
writeln(n,' Kombinasi ',r, ' = ',Kombinasi:0:0);
writeln(n,' Permutasi ',r, ' = ',Permutasi:0:0);
write('Mau coba lagi?<Y/T>:');readln(lagi);
if upcase(lagi)='Y' then goto baca;
if upcase(lagi)='T' then goto ulang;
donewincrt;
end;
if z=3 then
begin
writeln('Tekan Enter untuk keluar');
end;
write('Jika ingin coba lagi tekan Y: ');readln(lagi);
if upcase(lagi)='Y' then goto ulang;
donewincrt;
end.