Senin, 23 Mei 2011

BUBLE SORT

Ø  BUBLE SORT

            Bubble sort adalah sederhana algoritma sorting. Bekerja dengan berulang kali melakukan melalui daftar akan di sortir, membandingkan dua item sekaligus dan swapping mereka jika mereka berada di salah pesanan. Yang melewati daftar diulang sampai swap tidak diperlukan, yang menunjukkan bahwa daftar disaring. Algoritma yang mendapatkan namanya dari jalan kecil elemen "gelembung" ke bagian atas daftar. Karena hanya menggunakan perbandingan untuk beroperasi pada elemen, ia adalah perbandingan menyortir. 
Metode Bubble Sort
Perhatikan bahwa jumlah pertukaran dan perbandingan data tidaklah tetap, perbedaan tergantung pada keadaan awal data setelah diacak. Tabel berikut memperlihatkan tabulasi hasil visualisasi menggunakan metode bubble sort.
Pengacakan
Jumlah Total
Pertukaran Data
Perbandingan Data
1
155
279
2
127
272
3
137
245
4
142
297
5
151
294
6
138
285
7
178
300
8
165
272
9
156
285
10
175
300
Rata-rata
152
283
Jumlah rata-rata pertukaran untuk 10 kali pengacakan adalah 152 kali, sedangkan rata-rata jumlah perbandingan adalah sebanyak 283 kali. Tetapi bila data pada awalnya terurut, maka untuk 25 jumlah data, jumlah pertukaran data sebanyak 0 kali dengan jumlah perbandingan sebanyak 24 kali.


contoh program

#include <cstdlib>
#include <iostream>

using namespace std;
void tampilkan_larik(int data[], int n){
     int i;
     for (i = 0; i < n; i++)
     cout << data[i] << " ";
     cout << "\n";
     }
    
 void bubble_sort(int data[], int n){
      int tahap, j, temp;
      int ada_penukaran;
     
      tahap = 1;
      ada_penukaran = 1;
      while (tahap < n-1 && ada_penukaran){
            ada_penukaran = 0;
            for (j = 0; j<n-tahap; j++)
            if (data[j] > data[j+1]){
                        ada_penukaran = 1;
                        temp = data[j];
                        data[j] = data[j+1];
                        data[j+1]=temp;
                        }
                        cout << "Tahap" << tahap << ":";
                        tampilkan_larik(data, n);
                       
                        tahap++;
                        }
                        }
                           
int main()
{
    char JUM_DATA = 6;
    int i;
    int data[] = {6,3,10,2,9,7};
    bubble_sort(data, JUM_DATA);
    cout<<"Tampilan Hasil pengurutan:\n";
    tampilkan_larik(data, JUM_DATA);
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Algoritma untuk mencari Deret aritmatika dan Deret Fibonacci

a)Algoritma deret aritmatika
Deklarasi:
float a,b,n,un,sn : Integer
int x;

Deskripsi:
For ←(x=a;x<=un;x=x+b) a ← 1.0; b ← 2.0; printf ← ("+%i ",x); endfor write(Deret aritmatika) Program (Deret Aritmatika) #include
#include

using namespace std;

int main(int argc, char *argv[])
{
//deklarasi data
float a,b,n,un,sn;
int x;
//badan program
printf("Program Penghitung Deret Aritmatika");
printf("\nMasukkan:");
printf("\nSuku ke n = ",n);
scanf("%f",&n);

a = 1.0;
b = 2.0;

un = a + (n-1)*b;
sn = (0.5*n)*(a+un);

printf("\nMaka Nilai dari Un = %f\n",un);
printf("\nNilai Sn = %f\n",sn);

printf("\nSelanjutnya\n");
printf("\nUn = %f\n",un);
printf("\nDeret aritmatika untuk %f adalah :\n\n",un);

for(x=a;x<=un;x=x+b) { printf("+%i ",x); } system("PAUSE"); return EXIT_SUCCESS; } b)Deret Fibonacci
1. Inisialisasikan a=0, b=1, c, i
2. Masukkan banyaknya deret bilangan Fibonacci dalam n
3. Cetak nilai b
4. Proses looping
- Untuk i=1 sampai n-1
- Tambahkan a dengan b dalam variable c, c = a + b
- Cetak nilai c
- Nilai b dimasukkan ke dalam nilai a
- Nilai c dimasukkan ke dalam nilai b
- Kembali ke proses 4a
5. Program selesai
Deklarasi:
int s0, s1, s2, fib, nsuku : integer

Deskripsi:

f1 ß f2
f2 ß f3
if (nsuku<=1) while← (s2<=nsuku) endfor write(Deret fibonacci) Program(Deret Fibonacci) #include
#include

main()
{
int s0, s1, s2, fib, nsuku;

clrscr();
printf("Masukkan Suku ke: ");
scanf("%d", &nsuku);

if (nsuku<=1)
fib=nsuku;
else
{
s0=0;
s1=1;
s2=2;
while (s2<=nsuku)
{
fib=s0+s1;
s0=s1;
s1=fib;
s2++;
}
}
printf("Bilangan Fibonacci ke-%d adalah %d\n", nsuku, fib);
getch();
}

Selasa, 17 Mei 2011

CONTOH PROGRAM BUBBLE SORT

#include
#include

using namespace std;
void tampilkan_larik(int data[], int n){
int i;
for (i = 0; i < n; i++) cout << data[i] << " "; cout << "\n"; } void bubble_sort(int data[], int n){ int tahap, j, temp; int ada_penukaran; tahap = 1; ada_penukaran = 1; while (tahap < n-1 && ada_penukaran){ ada_penukaran = 0; for (j = 0; j data[j+1]){
ada_penukaran = 1;
temp = data[j];
data[j] = data[j+1];
data[j+1]=temp;
}
cout << "Tahap" << tahap << ":";
tampilkan_larik(data, n);

tahap++;
}
}

int main()
{
char JUM_DATA = 6;
int i;
int data[] = {6,3,10,2,9,7};
bubble_sort(data, JUM_DATA);
cout<<"Tampilan Hasil pengurutan:\n";
tampilkan_larik(data, JUM_DATA);

system("PAUSE");
return EXIT_SUCCESS;
}

Senin, 16 Mei 2011

Fungsi Enskripsi & Deskripsi

#include <cstdlib>
#include <iostream>
#include <math.h>
#include <string.h>

using namespace std;

int main(int argc, char *argv[])
{
    lagi:
    char plain[100];
    char chiper[100];
    int key;
    int pilih;
    cout << "Masukkan Pillihan  " << endl;
    cout << "1. Enkripsi" << endl;
    cout << "2. deskripsi" << endl;
    cout << "Masukkan sidini : ";
    cin >> pilih;
    if(pilih=1){
    cout << "Enkripsi " << endl       ;
    cout << "Masukkan kata : ";
    cin >> plain;
    cout << "Masukkan Key nya : ";
    cin >> key;
   
    for(int i=0;i<strlen(plain);i++){
            //cout << plain[i] << "(" << int (plain[i]) << ")";
            chiper[i]=((plain[i]+key)%128);
 
            }
           
           
    for(int i=0;i<strlen(chiper);i++){
            cout << endl;
            cout << chiper[i];
            cout << endl;
            }
            }
    else{
           
    cout << "Deskripsi :" << endl       ;
    cout << "Masukkan kata : ";
    cin >> plain;
    cout << "Masukkan Key nya : ";
    cin >> key;
    cout << "Enkripsi :"        ;
    for(int i=0;i<strlen(chiper);i++){
            //cout << chiper[i] << "(" << int (chiper[i]) << ")";
            plain[i]=((chiper[i]-key)%128);

 
            }
           
           
    for(int i=0;i<strlen(plain);i++){
            cout << endl;
            cout << plain[i];
            cout << endl;
            }
}

/*cout << "Pilih lagi?? " << endl;
cout << "tekan y jika Ya, tekan n jika tidak " << endl;
char a;
char y, Y;
cin >> a;

if(a==y||a==Y){
               goto lagi;
               }
               else{
                    cout << "terima kasih" << endl;
                        system("PAUSE");
    return EXIT_SUCCESS;

                   
                    }*/
                   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Kamis, 12 Mei 2011

ARRAY SATU DIMENSI CLASS FAKTOR

#include
#include

using namespace std;

void masukkan(int[100], int);
void penjumlahan(const int[100], const int[100], int, int[100]);
void pengurangan(const int[100], const int[100], int, int[100]);
void cetak_bigInteger(const int A[100],int);

int main(int argc, char *argv[])
{
int n;
int bil1[100], bil2[100];
int jumlah[100];
int kurang[100];


cout<<"Masukkan bilangan : \n"; cin>>n;
cout<<"Bilangan pertama : \n"; masukkan(bil1, n); cetak_bigInteger (bil1, n); cout<< "\nBilangan kedua : \n" <
}
}