Saturday 11 October 2014

Kumpulan Coding Pemrograman

 kali ini saya akan memberikan contoh  kumpulan-kumpulan CODING C++



  • Program Pemangkatan Rekursif

[sourcecode language="cpp"]
#include
#include
using namespace std;
/* Meghitung pangkat a^n, a>0 bilangan bulat tak-negatif
MAsukan : a,n
Keluaran : Nilai Perpangktan */
int pangkat (int a, int n){
if (n==1) return a;   //algoritma
else return (a * pangkat(a,n-1));
}
int main(int argc, char *argv[])
{
int a, n;
cout<<"\tProgram Pemangkatan rekursif";
cout<<"\n\nMasukkan Bilangan \t: "; cin>>a;
cout<<"Masukan Pangkat \t: "; cin>>n;
cout<<"Hasilnya \t\t: "<
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Faktorial Rekursif

[sourcecode language="cpp"]
#include
#include
using namespace std;
/* Meghitung Faktorialt n, n bilangan bulat tak-negatif
dimana faktorial rekursif ,fak= n * faktorial(n-1)
MAsukan : n
Keluaran : Nilai Faktorial rekursif */
int faktorial (int n){
int fak;
if (n<=1) fak=1;
else (fak= n * faktorial(n-1));  return fak;
}
int main(int argc, char *argv[])
{
int n;
cout<<"\tProgram Faktorial rekursif";
cout<<"\n\nMasukkan Bilangan : "; cin>>n;
cout<<"Hasil dari "< system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Penukaran Nilai

[sourcecode language="cpp"]
#include
#include
using namespace std;
/* Mencari nilai tukar a,b,
yang dimana membutuhkan temp untuk memnyimpan tukar sementara
MAsukan : a,b
Keluaran : b,a */
void tukar (int *a, int *b ){
int temp;
temp=*a;
*a=*b;
*b=temp; }
int main(int argc, char *argv[])
{
int a,b;
cout<<"\tProgram Tukar Nilai ";
cout<<"\n\nNilai awal A : "; cin>>a;
cout<<"Nilai awal B : "; cin>>b;
tukar(&a,&b);
cout<<"\nSetelah ditukar\n\nNilai Akhir A : "< cout<<"\nNilai Akhir B : "<
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Pemfaktoran

[sourcecode language="cpp"]
#include
#include
using namespace std;
/* Program Pemfaktoran a,
yang mana i = 2 dan i itu sendiri kurang dari samadengan a-1,
a%i==0
MAsukan : a
Keluaran : Hasil pefaktoran*/
int faktor(int a){
for (int i=2; i<=a-1; i++){
if (a%i==0)
cout<<"\n\t"<
int main(int argc, char *argv[])
{int a;
cout<<"\tProgram Pemfaktoran ";
cout<<"\nAngka Yang Ingin Di faktorkan : ";cin>>a;
cout<<"bilangan faktornya antara lain : ";
faktor(a);
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Sequential Sort
[sourcecode language="cpp"]
#include
#include
using namespace std;
/* Program Sequential Sort a,n,
yang mana n adalah banyak data yang akan di sequensial sort,
dan na adalah masukan data yang nantinya akan di sequensial sort
MAsukan : n, a
Keluaran : Hasil Sequensial sort*/
void Input(int a[], int n){
for (int i=1; i<=n; i++){
cout<<"Masukan data ke-"< cin>>a[i];}}
void Cetak(int a[], int n){
for (int i=1; i<=n; i++){
cout<<"\nData ke-"<
void Sequential( int a[], int x, int n){
int i=1, idx;
while ( (i {i++;}
if (a[i] == x ){
idx=i;
cout<<"data di array ke- "<
else cout<<"data tidak ada!";
}
int main(int argc, char *argv[])
{
int n,a[10],x;
cout<<"\tProgram Sequential Sort 21 Maret 2012";
cout<<"\n\nMasukkan banyak data : "; cin>>n;
Input (a,n);
Cetak (a,n);
cout<<"\n\ndata yg di cari? ";
cin>>x;
Sequential (a,x,n);
system(“PAUSE”);
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Cek Bilangan Prima
[sourcecode language="cpp"]
#include
#include
#include
using namespace std;
/* Program Cek Bilangan Prima x,
dimana x=2 dan x= 3 serta x% i yang habis di bagi tiga
MAsukan : x
Keluaran : HHasil bilangan Prima Atau Bukan*/
int CekPrima(int x){
int y,i;
if(x==1) return false;
if(x==2 || x==3) return true;
else
y = ceil (sqrt(x)); /*pembulatan ke atas akar x*/
for(i=2; i <= y; i++)
if(x % i == 0)
return false;
return true;}
int main(int argc, char *argv[])
{
int x;
cout<<"\tProgram Cek Bil. Prima 21 Maret 2012\n";
cout<<"\nMasukkan angka: ";
cin>>x;
if (CekPrima (x)== true)
cout<<"bilangan prima";
else
cout<<"bukan bilangan prima";
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program pencocokan String/String Matching
[sourcecode language="cpp"]
#include
#include
using namespace std;
/* Program Pencocokan String,
Keluaran : Hasil string yang dicocokkan*/
void FungsiGagal(char P[], int F[],int m){
int i,j;
F[0]=0;    //  inisialisasi awal!
j=0; i=1;
while(i /* jika i kurang dari panjang pola*/
if(P[i]==P[j]){
F[i]=j+1;
i++;
j++;
}else if(j>0){
j=F[j-1];
}else {
F[i]=0;
i++; } }  }
int StringMatch(char T[], char P[]){
int i,j,F[100];
int m=strlen(P);
int n=strlen(T);
FungsiGagal(P,F,m);
i=0; j=0;
while(i if(T[i]==P[j]){
if(j==m-1)
return i-j;
else{
i++;
j++;   }
}else if(j>0){
j=F[j-1];
}else{
i++; }  }
return -1; } // tidak ditemukan
int main(int argc, char *argv[])
{
cout<<"\tProgram String Matching 28  Maret 2012\n "< char T[1000],P[100];
cout<<"teks : ";
while(gets(T)){
cout<<"pola : ";
gets(P);
int pos=StringMatch(T,P);
if(pos!=-1)
cout<<"Ditemukan pada index ke- "< else
cout<<"tidak ketemu"<
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Merge Sort
[sourcecode language="cpp"]
#include
#include
using namespace std;
typedef int larik [10];//tipe data untuk merge
void baca_data(int A[], int n){ /*proses input dan baca data*/
for (int i = 0; i < n; i++){
cout <<"Data ke - " << i + 1 <<" : ";
cin >> A[i];}}
void cetak_data(int A[], int n){ /*cetak data*/
for (int i = 0; i < n; i++){
cout << A[i] <<" ";}}
void tukar_data(int *a, int *b){ /*tukar data*/
int temp;
temp = *a;
*a = *b;
*b = temp;}
void minimum(int A[], int dari, int n, int *tempat){
int i, min;
min = A[dari];
*tempat = dari;
for (i = dari + 1; i < n; i++)
if (A[i] < min){
min = A[i];
*tempat = i;}}
void merge(larik a, int kiri, int tengah, int kanan){
int bagkir, postemp, bykel, i;
larik temp;
bagkir = tengah -1;
postemp = kiri;
bykel = kanan - kiri + 1;
while ((kiri <= bagkir) &&   (tengah <= kanan))
if ((a[kiri] <= a[tengah])){
temp[postemp] = a[kiri];
postemp = postemp + 1;
kiri = kiri + 1;}
else {
temp[postemp] = a[tengah];
postemp = postemp + 1;
tengah = tengah + 1;}
while ((kiri <= bagkir)){
temp[postemp] = a[kiri];
postemp = postemp + 1;
kiri = kiri + 1;}
while ((tengah <= kanan)){
temp[postemp] = a[tengah];
postemp = postemp + 1;
tengah = tengah + 1;}
for (i = 1; i <= bykel; i++){
a[kanan] = temp[kanan];
kanan = kanan -1;}}
void merge_sort(larik A, int kiri, int kanan){
int tengah;
if (kiri < kanan){
tengah = (kiri + kanan) / 2;
merge_sort(A, kiri, tengah);
merge_sort(A, tengah + 1, kanan);
merge(A, kiri, tengah + 1, kanan);}}
int main(int argc, char *argv[]){
int data[10], n;
cout <<"\tMERGE SORT April 2012\n";
cout <<"\nBanyak data : "; cin >> n;
baca_data(data, n);
cout <<"\nData yang anda masukan : ";
cetak_data(data, n);
merge_sort(data, 0, n - 1);
cout <<"\n\nSetelah urutkan : ";
cetak_data(data, n);
system("PAUSE");
return EXIT_SUCCESS; }
[/sourcecode]

  • Program Backtracking N-Queen
[sourcecode language="cpp"]
#include
#include
#define N 5
using namespace std;
/** ukuran papan catur */
void cetak(int letak[N][N]){
int i,j;
cout<<"SUSUNAN PELETAKAN\n\t";
for(i=0; i for(j=0; j cout< cout< }cout<<"\n";
}
/** return true jika letak Ratu di [baris][kolom] diterima, jika tidak return false */
bool accept(int letak[N][N], int baris, int kolom){
int i,j;
for (i=0; i if (letak[baris][i])
return false;}
for (i=0; i if (letak[i][kolom])
return false;}
for (i=baris, j=kolom; i>=0 && j>=0; i–, j–){     /* cek diagonal kiri keatas */
if (letak[i][j])
return false;}
for (i=baris, j=kolom; i=0; ++i, –j){     /* cek diagonal kiri kebawah */
if (letak[i][j])
return false;}
for (i=baris, j=kolom; i>=0 && j if (letak[i][j])
return false;}
for (i=baris, j=kolom; i if (letak[i][j])
return false;}
return true;}                     /* return true jika semua test lewat */
void solve_letak(int letak[N][N], int baris){
int i;
if (baris == N){                          /* jika semua ratu sudah pada posisi yg tepat */
cetak(letak);
return;}
/* letakkan ratu pada baris yang ada and cek jika letak diterima, Lanjutkan proses sampai semua posisi di temukan*/
for(i=0; i if(accept(letak, baris, i)){
letak[baris][i] = 1;
solve_letak(letak, baris+1);}
letak[baris][i] = 0;}
}
int main(int argc, char *argv[])
{
int letak[N][N] = {0};
cout<<"\tProgram Bactracking N Queen 27 MEI 2012\n\n";
solve_letak (letak, 0);
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Titik Terdekat
[sourcecode language="cpp"]
#include
#include
#include
#define SIZE 100
using namespace std;
class Point{
public :
int x, y; };
void closestPair(Point *p, int n, Point &p1, Point &p2 ){
float d, dmin;
int i, j;
dmin = 9999;
for ( i=1; i for ( j=i+1; j<=n; j++ )  {
d = sqrt( pow(( p[i].x - p[j].x ),2) + pow(( p[i].y - p[j].y ),2) );
if ( d < dmin ) {
dmin = d;
p1 = p[i];
p2 = p[j]; } } } }
int main(int argc, char *argv[]){
int n;
Point p[SIZE];
Point p1,p2;
cout<<"\tProgram Titik terdekat 05 april 2012\n";
cout<<"Masukkan banyak titik : "; cin>>n;
for(int i=1;i<=n;i++){
cout<<"x"<>p[i].x;
cout<<"y"<>p[i].y;
cout< closestPair(p,n, p1, p2);
cout<<"titik terdekat "< cout<
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Penjadwalan Antrian
[sourcecode language="cpp"]
#include
#include
#include
using namespace std;
void input(float bil[], int n){
cout< for(int c=1;c<=n;c++){
cout<<"Waktu"<>bil[c];  } }
void urut(float bil[], int n){
for(int c=1;c<=n;c++){
for(int a=(n);a>=0;a–){
if(bil[a] int temp;
temp=bil[a];
bil[a]=bil[a-1];
bil[a-1]=temp;  }    }
}
}
void cetak(float bil[], int n){
cout<<"\nUrutan waktu Dari Tercepat"< cout<<"------------------"< for(int c=1;c<=n;c++){
cout<
getch();}
int main(int argc, char *argv[]){
int n;
float bil[100];
cout<<"\tProgram penjadwalan Antrian Tercepat 05 April 2012\n\n";
cout<<"banyak pelanggan: ";cin>>n;
input(bil,n);
urut(bil,n);
cetak(bil,n);
system(“PAUSE”);
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Knapsack Fragtional
[sourcecode language="cpp"]
#include
#include
using namespace std;
int w[10],p[10],p_no[10],n,m;
float pwr[10];
template
void swap(T *a,int i,int j){
T temp;
temp=a[j];
a[j]=a[i];
a[i]=temp;
return;}
void display(){
cout<<"\n\n\t======Knapsack=======\n";
cout<<"\nBanyak Produk :\t"< cout<<"\nSl.No\t\tBerat\t\tProfit\t\tDensity(P/w)\n";
for(int i=0;i cout< }
void knapsack(){
int u,i;
u=m;
float x[10];
for(i=0;i x[i]=0;
for(i=0;i if(w[i]>u)
break;
else{
x[i]=1;
u=u-w[i];}
}
if(i<=n)
x[i]=(float)u/w[i];
for(i=0;i for(int j=i+1;j if(p_no[i]>p_no[j])    {
swap(p_no,i,j);
swap(x,i,j);
swap(p,i,j);
}
}
}
float opt_solution=0;
cout<<"\nBarang Yang dibawa : \n\n";
cout<<"(";
for(i=0;i cout< cout<<")";
cout<<"\t\t(";
for(i=0;i {
cout< opt_solution=opt_solution+(p[i]*x[i]);
}
cout<<")";
cout<<"\n\nSolusi Optimal : \t"< }
int main(int argc, char *argv[]){
int i;
cout<<"\tProgram Knapsack Fragtional 3 Mei 2012\n\n";
cout<<"\nKapasitas Tas :  ";
cin>>m;
cout<<"Banyak Barang : ";
cin>>n;
cout<<"\nKeterangan ke- "< for(i=0;i {
p_no[i]=i+1;
cout<<"\nBarang "< cin>>w[i];
cout<<"Profit:\t";
cin>>p[i];
pwr[i]=(float)p[i]/w[i];
}
display();
for(i=0;i {
for(int j=i+1;j {
if(pwr[i] {
swap(p_no,i,j);
swap(w,i,j);
swap(p,i,j);
swap(pwr,i,j);
}
}
}
display();
knapsack();
cout<<"\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Perkalian Matriks
[sourcecode language="cpp"]
#include
#include
#include
using namespace std;
void baca(int mat[10][10], int baris, int kolom){
int i,j;
for (i=0; i for (j=0; j cout<<"Data ["< cin>>mat[i][j];}}
void kali(const int M1[10][10], const int M2[10][10], int baris, int kolom, int barkol, int hasil[10][10]){
int i, j, k;
for (i=0; i for (j=0; j hasil[i][j]=0;
for (k=0; k hasil[i][j]=hasil[i][j] +M1[i][k] *M2[k][j];} }
void cetak(const int A[10][10], int baris, int kolom){
int i,j;
for (i=0; i for (j=0; j cout< cout< }
int main(int argc, char *argv[]){
int a,b,c;
int M1[10][10], M2[10][10];
int hasil[10][10];
cout<<"\tProgram Peralian Matriks 19 Maret 2012\n\n";
cout<<"banyak baris matriks 1 : "; cin>>a;
cout<<"banyak baris matriks 2 : "; cin>>b;
cout<<"banyak kolom : "; cin>>c;
cout<<"\nMatriks pertama \n";
baca(M1, a, c); cout< cetak(M1, a, c);
cout<<"\nMatriks Kedua \n";
baca(M2, c, b); cout< cetak(M2, c, b);
kali(M1, M2, a, b, c, hasil);
cout<<"\nHasil Perkalian \n";
cetak(hasil , a, b);
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Algoritma Dijkstra
[sourcecode language="cpp"]
#include
#include
#define max 20
#define infinity 9999
using namespace std;
class dijkstra{
private:
int n,graph[max][max],colour[max],start,distance[max],predecessor[max];
enum {green,yellow,red};
public:
void read_graph();
void initialize();
int select_min_distance_lable();
void update(int);
void output();
void function();
};
void dijkstra::read_graph(){
cout<<"masukkan jumlah node = ";
cin>>n;
cout<<"masukkan nilai matrik untuk graf ::\n";
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
cout<<"["< cin>>graph[i][j];}}
for(i=1;i<=n;i++){
colour[i]=green;}
cout<<"masukkan vertex mulai :: ";
cin>>start;
}
void dijkstra::initialize(){
for(int i=1;i<=n;i++){
if(i==start){
distance[i]=0;}
else{distance[i]=infinity;}
}
for(int j=1;j<=n;j++){
if(graph[start][j]!=0){
predecessor[j]=start;}
else{predecessor[j]=0;}
}
}
int dijkstra::select_min_distance_lable(){
int min=infinity;
int p=0;
for(int i=1;i<=n;i++){
if(colour[i]==green){
if(min>=distance[i]){
min=distance[i];
p=i;
}
}
}
return p;
}
void dijkstra::update(int p){
cout<<"\nupdate jarak = \n";
for(int i=1;i<=n;i++){
if(colour[i]==green){
if(graph[p][i]!=0){
if(distance[i]>graph[p][i]+distance[p]){
distance[i]=graph[p][i]+distance[p];
predecessor[i]=p;
}
}
}
cout< }
}
void dijkstra::output()
{
cout<<"****** The final paths and the distacnes are ******\n\n";
for(int i=1;i<=n;i++)
{
if(predecessor[i]==0 && i!=start)
{
cout<<"path does not exists between "< < exit(1);
}
cout<<"path for node "< int j=i;
int array[max];
int l=0;
while(predecessor[j]!=0)
{
array[++l]=predecessor[j];
j=predecessor[j];
}
for(int k=l;k>=1;k–)
cout<“;
cout< cout<<"distance is "< }
}
void dijkstra::function()
{
cout<<"\n**********************************************************************\n";
cout<<"*This program is to implement dijkstra's algorithm using colour codes* \n";
cout<<"**********************************************************************\n\n";
read_graph();
initialize();  //repeate until all nodes become red
int flag=0;
int i;
cout<<"\n\n******** The working of the algorithm is **********\n\n";
for(i=1;i<=n;i++)
if(colour[i]!=red)
flag=1;
cout<<"The initial distances are ::\n";
for(i=1;i<=n;i++)
cout< cout<
while(flag) {
int p=select_min_distance_lable();
cout<<"\nThe min distance lable that is coloured yellow is "< colour[p]=yellow;
update(p);
cout<<"\nnode ="< colour[p]=red;
flag=0;
for(i=1;i<=n;i++)
if(colour[i]!=red)
flag=1;
cout< }
output();
}
int main(int argc, char *argv[])
{
dijkstra d;
d.function();
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

Program Binary Search
[sourcecode language="cpp"]
#include
#include
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int X,i,j,k,p;
int L[10]={12,14,15,17,23,25,45,67,68,70}; /*Deklarasi isi array*/
/*Program Binary Search 01 juni 2012*/
/*Variabel p digunakan untuk kode, apakah menaik atau menurun*/
/*Jika p=0, maka data terurut menaik*/
/*Jika p=1, maka data terurut menurun*/
if (L[0] printf("\tProgram Binary Search \n");
printf("\tData terurut menarik \n");
p=0;}
else{
printf("Data terurut menurun \n");
p=1;}
/*input data X yang akan dicari*/
printf("Data yang dicari="); scanf("%d",&X);
/*Penentuan indeks awal dan akhir semula*/
i=0;
j=10;
/*proses perulangan untuk menentukan nilai tengah k */
do{
k=(i+j)/2;
if (p==0){           //jika data terurut menaik
if (L[k]==X){
printf ("Data ditemukan di elemen %d",k);
getch();
return 0; //langsung keluar program
}
else if(L[k]==X){
i=k;}
else{
j=k;
}}}
while(k!=0); //sampai nilai k=0, iterasi berakhir
printf("data tidak ada!!");
system("PAUSE");
return EXIT_SUCCESS;
}
[/sourcecode]

  • Program Bubble Sort
[sourcecode language="cpp"]
#include
#include
using namespace std;
typedef int larik [10];//tipe data untuk merge
void baca_data(int A[], int n){ //proses input dan baca data
for (int i = 0; i < n; i++){
cout <<"Data ke - " << i + 1 <<" : ";
cin >> A[i];} }
void cetak_data(int A[], int n){ //cetak data
for (int i = 0; i < n; i++){
cout << A[i] <<" "; } }
void tukar_data(int *a, int *b){ //tukar data
int temp;
temp = *a;
*a = *b;
*b = temp; }
void minimum(int A[], int dari, int n, int *tempat){
int i, min;
min = A[dari];
*tempat = dari;
for (i = dari + 1; i < n; i++)
if (A[i] < min){
min = A[i];
*tempat = i; } }
void bubble_sort(int x[], int n){ // bubble sort
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++){
if (x[i] > x [j]) tukar_data (&x[i], &x[j]);}
}
int main(int argc, char *argv[]){
int data[10], n;
cout <<"\tProgram BUBBLE SORT 06 Juni 2012";
cout <<"\n\nMasukan data : ";
cin >> n;
baca_data(data, n);
cout <<"Data yang anda masukan : ";
cetak_data(data, n);
cout< bubble_sort(data, n);
cout <<"Setelah ditukar (Bubble Sort) : ";
cetak_data(data, n);
cout <
system("PAUSE");
return EXIT_SUCCESS;}
[/sourcecode]

  • Program Partition Sort
[sourcecode language="cpp"]
#include
#include
using namespace std;
typedef int larik [20];             //type data for merge
void read(int A[], int n){     //proses input dan read data
for (int i=0; i cout <<"Data ke - " << i + 1 <<" : ";
cin >> A[i]; } }
void print(int A[], int n){     //print data
for (int i = 0; i < n; i++){
cout << A[i] <<" ";
}}
void partitionSort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
while (i <= j) {       /* partition */
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j–;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
if (left < j)     /* recursion */
partitionSort(arr, left, j);
if (i < right)
partitionSort(arr, i, right);
}
int main(int argc, char *argv[]){
int data[10], n, pilih;
cout <<"\tProgram PARTITION SORT 06 Juni 2012";
cout <<"\n\nBanyak data : ";
cin >> n;
read(data, n);
cout <<”\nData yang anda masukan : “;
print(data, n);
partitionSort(data, 0, n-1);
cout <<”\nSetelah diurutkan (Partition Sort): “;
print(data, n);
system(“PAUSE”);
return EXIT_SUCCESS;}
[/sourcecode]

semoga bermanfaat :)

No comments:

Post a Comment