Kombinasi adalah menggabungkan beberapa objek dari suatu grup tanpa memperhatikan urutan. Di dalam kombinasi, urutan tidak diperhatikan.
{1,2,3} adalah sama dengan {2,3,1} dan {3,1,2}.
Contoh: Seorang anak hanya diperbolehkan mengambil dua buah amplop dari tiga buah amplop yang disediakan yaitu amplop A, amplop B dan amplop C. Tentukan ada berapa banyak kombinasi untuk mengambil dua buah amplop dari tiga buah amplop yang disediakan?
Solusi: Ada 3 kombinasi yaitu; A-B, A-C dan B-C.
Sedangkan permutasi adalah menggabungkan beberapa objek dari suatu grup dengan memperhatikan urutan. Di dalam permutasi, urutan diperhatikan.
{1,2,3} tidak sama dengan {2,3,1} dan {3,1,2}
Contoh: Ada sebuah kotak berisi 3 bola masing-masing berwarna merah, hijau dan biru. Jika seorang anak ditugaskan untuk mengambil 2 bola secara acak dan urutan pengambilan diperhatikan, ada berapa permutasi yang terjadi?
Solusi: Ada 6 permutasi yaitu; M-H, M-B, H-M, H-B, B-M, B-H.
Salah satu aplikasi kombinasi dan permutasi adalah digunakan untuk mencari probabilitas suatu kejadian.
contoh program:
program permutasi;
uses wincrt;
type data = array[1..10] of char;
var
ax : data;
i,n : byte;
procedure permutas(a : data; mulai : byte);
var
i : byte;
temp : char;
begin
if mulai=n then
begin
for i:=1 to n do
write(a[i]);
writeln;
end
else
begin
for i:= mulai to n do
begin
temp:=a[i];
a[i]:=a[mulai];
a[mulai]:=temp;
permutas(a,mulai+1);
end;
end;
end;
begin
writeln ('NAMA : MUKLISIN');
writeln ('NIM : 11295100');
writeln;
writeln ('=====================');
writeln (' PROGRAM PERMUTASI ');
writeln ('=====================');
write('Masukan jumlah (N) = ');readln(n);
for i:=1 to n do
ax[i]:=chr(i+64);
permutas(ax,1);
end.
contoh program permutasi yang lengkap:
(*******************************)
(* Pogram permutasi dari sekelompok karakter *)
(*******************************)
program susun_Permutasi;
Uses wincrt;
const Max= 5;
type larik = array [1..Max] of char;
Var A : Larik;
c_Permutasi,
C_elemen,I : integer;
lagi : char;
(*********************************)
(* Procedure penyusunan permutasi *)
(*********************************)
Procedure permutasi (Var B : integer ; A : larik;
K,N : integer);
var I : integer;
Temp : char;
begin
if K = N then
begin
B := succ(B);
write('Permutasi ke', B:2,':');
for I := 1 to N do
write(A[I]:3);
writeln;
end
else
for I := K to N do
begin
Temp := A[I];
A[I] := A[K];
A[K] := Temp;
permutasi (B, A, K+1 ,N)
end
end; (* Procedure permutasi *)
(**********************************)
(* PROGRAM UTAMA *)
(**********************************)
begin
repeat
clrscr;
writeln(' NAMA : MUKLISN ');
writeln(' NIM : 11295100');
WRITEln('=========================================');
write('berapa karakter yang akan dipermutasikan?');
repeat
gotoxy(47,4);write(' ');
gotoxy(47,4);readln(c_elemen);
until c_elemen <= max;
{* menyusun karakter yang akan dipermutasikan *}
for I := 1 to C_elemen do
A[I] := chr(I+64);
clrscr;
write('menyusun permutasi untuk');
writeln(C_elemen:2, 'karakter');
writeln('-------------------------------------');
writeln;
(* proses mencari permutasi *)
c_permutasi:=0;
permutasi(c_permutasi, A, 1, C_elemen);
(* mencetak hasil *)
writeln;
writeln('banyaknya permutasi: ', C_Permutasi:3);
writeln;
write('akan coba lagi? (Y/T) or (y/t): ');readln(lagi);
until not (lagi in [ 'Y' , 'y']);
end.
hasilnya:
{1,2,3} adalah sama dengan {2,3,1} dan {3,1,2}.
Contoh: Seorang anak hanya diperbolehkan mengambil dua buah amplop dari tiga buah amplop yang disediakan yaitu amplop A, amplop B dan amplop C. Tentukan ada berapa banyak kombinasi untuk mengambil dua buah amplop dari tiga buah amplop yang disediakan?
Solusi: Ada 3 kombinasi yaitu; A-B, A-C dan B-C.
Sedangkan permutasi adalah menggabungkan beberapa objek dari suatu grup dengan memperhatikan urutan. Di dalam permutasi, urutan diperhatikan.
{1,2,3} tidak sama dengan {2,3,1} dan {3,1,2}
Contoh: Ada sebuah kotak berisi 3 bola masing-masing berwarna merah, hijau dan biru. Jika seorang anak ditugaskan untuk mengambil 2 bola secara acak dan urutan pengambilan diperhatikan, ada berapa permutasi yang terjadi?
Solusi: Ada 6 permutasi yaitu; M-H, M-B, H-M, H-B, B-M, B-H.
Salah satu aplikasi kombinasi dan permutasi adalah digunakan untuk mencari probabilitas suatu kejadian.
contoh program:
program permutasi;
uses wincrt;
type data = array[1..10] of char;
var
ax : data;
i,n : byte;
procedure permutas(a : data; mulai : byte);
var
i : byte;
temp : char;
begin
if mulai=n then
begin
for i:=1 to n do
write(a[i]);
writeln;
end
else
begin
for i:= mulai to n do
begin
temp:=a[i];
a[i]:=a[mulai];
a[mulai]:=temp;
permutas(a,mulai+1);
end;
end;
end;
begin
writeln ('NAMA : MUKLISIN');
writeln ('NIM : 11295100');
writeln;
writeln ('=====================');
writeln (' PROGRAM PERMUTASI ');
writeln ('=====================');
write('Masukan jumlah (N) = ');readln(n);
for i:=1 to n do
ax[i]:=chr(i+64);
permutas(ax,1);
end.
contoh program permutasi yang lengkap:
(*******************************)
(* Pogram permutasi dari sekelompok karakter *)
(*******************************)
program susun_Permutasi;
Uses wincrt;
const Max= 5;
type larik = array [1..Max] of char;
Var A : Larik;
c_Permutasi,
C_elemen,I : integer;
lagi : char;
(*********************************)
(* Procedure penyusunan permutasi *)
(*********************************)
Procedure permutasi (Var B : integer ; A : larik;
K,N : integer);
var I : integer;
Temp : char;
begin
if K = N then
begin
B := succ(B);
write('Permutasi ke', B:2,':');
for I := 1 to N do
write(A[I]:3);
writeln;
end
else
for I := K to N do
begin
Temp := A[I];
A[I] := A[K];
A[K] := Temp;
permutasi (B, A, K+1 ,N)
end
end; (* Procedure permutasi *)
(**********************************)
(* PROGRAM UTAMA *)
(**********************************)
begin
repeat
clrscr;
writeln(' NAMA : MUKLISN ');
writeln(' NIM : 11295100');
WRITEln('=========================================');
write('berapa karakter yang akan dipermutasikan?');
repeat
gotoxy(47,4);write(' ');
gotoxy(47,4);readln(c_elemen);
until c_elemen <= max;
{* menyusun karakter yang akan dipermutasikan *}
for I := 1 to C_elemen do
A[I] := chr(I+64);
clrscr;
write('menyusun permutasi untuk');
writeln(C_elemen:2, 'karakter');
writeln('-------------------------------------');
writeln;
(* proses mencari permutasi *)
c_permutasi:=0;
permutasi(c_permutasi, A, 1, C_elemen);
(* mencetak hasil *)
writeln;
writeln('banyaknya permutasi: ', C_Permutasi:3);
writeln;
write('akan coba lagi? (Y/T) or (y/t): ');readln(lagi);
until not (lagi in [ 'Y' , 'y']);
end.
hasilnya: