Algoritma dan Program Kombinasi

Posted in
Algoritma :
Deklarasi
    n, r, i                                     : integer
    faktorn,  faktorr, faktornr    : integer
    hasil                                    : integer
Deskripsi
    read n
    read r
    faktorn    <- 1
    faktorr    <- 1
    faktornr<- 1
    for i <- n downto 0 do
        faktorn <- faktorn * i
    end for
    for  i <- r  downto 0  do
        faktorr <- faktorr * i
    end for
    for  i <- n – r  downto 0  do
        faktornr <- faktornr * i
    end for
    hasil <- faktorn / (faktorr * faktornr)
    write hasil
    end

Program Biasa :
#include <iostream.h>
#include <conio.h>
int main(){
int n,r,i;
int faktorn=1,faktorr=1,faktornr=1;
cout<<"\t\tKOMBINASI"<<endl;
cout<<"Masukkan n : ";
cin>>n;
cout<<"Masukkan r : ";
cin>>r;
for(i=n;i>0; i--){
faktorn=faktorn*i;}
for(i=r;i>0; i--){
faktorr=faktorr*i;}
for(i=n-r;i>0; i--){
faktornr=faktornr*i;}
cout<<"Kombinasi ("<<n<<","<<r<<") : "<<faktorn/(faktorr*faktornr);
getch();
return 0;}

Program Class :
#include <iostream.h>
#include <conio.h>
class kombinasi{
public:
void masukan();
void proses();
void keluaran();
private:
int n,r,i;
int faktorn,faktorr,faktornr;};
void kombinasi::masukan(){
cout<<"\t\tKOMBINASI"<<endl;
cout<<"Masukkan n : ";
cin>>n;
cout<<"Masukkan r : ";
cin>>r;}
void kombinasi::proses(){
faktorn=1;
faktorr=1;
faktornr=1;
for(i=n;i>0; i--){
faktorn=faktorn*i;}
for(i=r;i>0; i--){
faktorr=faktorr*i;}
for(i=n-r;i>0; i--){
faktornr=faktornr*i;}}
void kombinasi::keluaran(){
cout<<"Kombinasi ("<<n<<","<<r<<") : "<<faktorn/(faktorr*faktornr);}
int main(){
kombinasi x;
x.masukan();
x.proses();
x.keluaran();
getch();
return 0;}

Program Jeliot :
import jeliot.io.*;
public class MyClass {
public static void main() {
kombinasi x = new kombinasi();
x.masukan();
x.proses();
x.keluaran();}}
class kombinasi{
void masukan(){
System.out.print("\t\tKOMBINASI");
System.out.print("\n");
System.out.print("Masukkan n : ");
n = Input.readInt();
System.out.print("Masukkan r : ");
r = Input.readInt();}
void proses(){
faktorn =1;
faktorr =1;
faktornr =1;
for(i =n;i>0; i--){
faktorn =faktorn *i;}
for(i =r;i>0; i--){
faktorr =faktorr *i;}
for(i =n-r;i>0; i--){
faktornr =faktornr *i;}}
void keluaran(){
System.out.print("Kombinasi (");
System.out.print(n);
System.out.print(",");
System.out.print(r);
System.out.print(") : ");
System.out.print(faktorn/(faktorr *faktornr));}
private int n;
private int r;
private int i;
private int faktorn;
private int faktorr;
private int faktornr;}

Penjelasan :
Program di atas adalah program yang digunakan untuk mencari nilai kombinasi dari 2 bilangan yaitu n dan r. kombinasi sendiri mempunyai rumus n!/r!*(n-r)!. Jadi untuk pembilangnya adlah n faktorial dan untuk penyebutnya r faktorial kali dengan n-r faktorial. Untuk mencari nilai faktorial dari suatu bilangan maka digunakan fungsi perulangan atau for, untuk program di atas perulangan yang pertama untuk mencari hasil dari faktorial bilangan n dan perulangannya mengalami pengurangan 1, contoh 5! adalah 5x4x3x2x1=120 dan akan disimpan pada variabel faktorn, begitu pula untuk  mencari nilai r faktorial dan n-r faktorial yang akan disimpan pada variabel faktorr dan faktornr. Jadi kita tinggal menampilkan hasil dari faktorn dibagi dengan faktorr kali faktornr.