Kamis, 23 Juni 2011

Program permutasi dan kombinasi


1.    Program permutasi dan kombinasi

Permutasi merupakan penyusunan obyek-obyek yang ada ke dalam suatu urutan tertentu. Hal yang perlu diperhatikan dalam permutasi adalah bahwa obyek-obyek yang ada harus dapat “dibedakan” antara yang satu dengan yang lain. Permutasi dapat dirumuskan : nPx = (n!)/(n-x)! ; dimana n = banyaknya seluruh obyek, dan x = banyaknya obyek yang dipermutasikan.
Nilai n dan x masing-masing harus lebih besar dari nol. Jika nilai x < n disebut dengan Permutasi Sebagian Obyek. Jika nilai x = n, maka disebut Permutasi Seluruh Obyek, sehingga rumus tersebut dapat disederhanakan menjadi : nPx = n! .
          Perbedaan antara Permutasi dan Kombinasi terletak pada masalah “urutan atau kedudukan” penyusunan dari sekelompok obyek. Dalam permutasi masalah urutan atau kedudukan menjadi sangat penting, sedangkan dalam kombinasi tidak mementingkan urutan atau kedudukan dari sekelompok obyektersebut.
Pada permutasi urutan obyek XYZ; XZY; ZYX adalah berbeda, tetapi untuk kombinasi urutan tersebut dianggap sama. Dengan demikian kombinasi merupakan cara pemilihan obyek yang bersangkutan dengan tidak memperhatikan urutan dari obyek tersebut. Untuk menghitung banyaknya hasil kombinasi dari obyek dapat diformulasikan : nCx = (n!)/(x!(n-x)!) ; dimana n : banyaknya seluruh obyek yang ada, dan x : banyaknya obyek yang dikombinasikan.
Nilai x < n dan jika x = n formulasi tersebut menjadi nCn = 1.


#include <iostream.h>
#include <stdio.h>
#include <conio.h>
long int fak (long int x);
void main()
{
int n,r, Prts,pilihan,p;
char ulang;
do
{
clrscr();
cout<<"TUTIK LESTARI<<endl<<endl;
cout<<"PERHITUNGAN KOMBINASI DAN PERMUTASI"<<endl;
cout<<"1. KOMBINASI"<<endl;
cout<<"2. PERMUTASI"<<endl;
cout<<"3. EXIT"<<endl;
cout<<endl<<endl;
cout<<"Pilihan Anda : ";cin>>pilihan;
switch (pilihan)
{
case 1 :
cout<<" Program Menghitung Kombinasi(nCr)";
cout<<endl;
cout<<" Masukkan Nilai n : "; cin>>n;
cout<<endl;
cout<<" Masukkan Nilai r : "; cin>>r;
cout<<endl;
if (n>r){
Prts = fak(n)/(fak(n-r)*fak (r));
cout<<endl;
printf(" Kombinasinya adalah: %d",Prts);
cout<<endl; }
else if (n<r){
cout<<"data tak valid";}
cout<<endl ;
break;
case 2 :
cout<<" Program Menghitung Permutasi(nPr)";
cout<<endl;
cout<<" Masukkan Nilai n : "; cin>>n;
cout<<endl;
cout<<" Masukkan Nilai r : "; cin>>r;
cout<<endl;
if (n>r){
Prts = fak (n)/fak(n-r);
cout<<endl;

printf(" Permutasinya adalah: %d",Prts);
cout<<endl; }
else if (n<r){
cout<<"data tak valid";}
cout<<endl ;
break;
case 3 :
cout<<"Exitâ¦"<<endl;
break;
default:
cout<<"Menu tidak tersedia"<<endl;
break;
}
cout<<"Kembali ke Menu Utama (y/n)?";cin>>ulang;
}while(ulang == 'y');
}

getch();
long int fak (long int n)
{
int f;
if (n<=1)
{
f=1;
}
else
{
f=n*fak(n-1);
}
return (f);
}

1 komentar: