Pages

Sabtu, 14 Mei 2011

Tugas Kelompok dari Ebboks

LATIHAN ARRAY DARI EBOOKS

1. Contoh program untuk memanipulasi letak elemen array

     Program c++ 


 #include <cstdlib>
 #include <iostream>
 using namespace std;

      class Manipulasi_array {
            public :
                   Manipulasi_array (){
                    cout<<"Program untuk memanipulasi array"<<endl;
                    cout<<endl;
                    }
                   void input();
                   void cetak();
                   void geser_kiri();         
            private :
                    int i, j, n;
                    int x[100];
            };  
      void Manipulasi_array::input(){
           cout<<"Masukkan sejumlah angka = ";
           cin>>n;
           for(i = 0; i < n; i++){
                 cout<<"masukkan angka ke "<<i + 1<<" = ";
                 cin>>x[i];
                 }
                     }
      void Manipulasi_array::cetak(){
           cout<<"deret data diatas adalah : ";
           for(i = 0; i < n; i++){
                 cout<<x[i]<<"\t";
                 }
           cout<<endl;
           }
     void Manipulasi_array::geser_kiri(){
           int a = x[0];
           for(i = 0; i < n-1; i++){
                 x[i] = x[i+1];
                 }
           x[n-1] = a;
           }       
int main(int argc, char *argv[])
{
    Manipulasi_array urut;
    urut.input();
    urut.cetak();
    urut.geser_kiri();
    urut.cetak();
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

Hasil cOMpiler Dan Run
memanipulasi letak elemen array saya ambil dengan cara elemen mengeser kekiri ketika data inputan selesai sampai ke - n maka hasil manipulasinya data yang ke [i+1] akan menjadi data yang ke [i] sampai seterusnya sedangkan data yang ke[i] akan menjadi data yang ke-n atau data terakhir contoh :

 2.Program untuk mengendalikan isi array
     
program c++
#include <cstdlib>
#include <iostream>
using namespace std;

      class Mengendalikan_array {
            public :
                    Mengendalikan_array (){
                    cout<<"Program Untuk mengendalikan array"<<endl;
                    cout<<endl;
                    }
                   void input();
                   void cetak();
            private :
                    int i, j, n;
                    int x[100];
            };
      void Mengendalikan_array::input(){
           cout<<"Masukkan sejumlah angka = ";
           cin>>n;
           for(i = 0; i < n; i++){
                 in :
                 cout<<"masukkan angka ke "<<i + 1<<" = ";
                 cin>>x[i];
                 for(int j = 0; j < i; j++){
                         if(x[i] == x[j]){
                                 goto in;
                                 }
                         }
                 }
           }
      void Mengendalikan_array::cetak(){
           cout<<"deret data diatas adalah : ";
           for(i = 0; i < n; i++){
                 cout<<x[i]<<"\t";
                 }
           cout<<endl;
           }     
int main(int argc, char *argv[])
{
    Mengendalikan_array urut;
    urut.input();
    urut.cetak();
   
    system("PAUSE");
    return EXIT_SUCCESS;
}


Hasil Compiler dan Run
ketika inputan benilai sama maka program akan terus meminta menginputkan kembali karena angka yang diinputkan sekarang sama seperti data inputan sebelumnya, contoh :
ketika inputan benilai tidak sama maka program akan terus meminta menginputkan kembali karena angka yang diinputkan sekarang tidak sama seperti data inputan sebelumnya, contoh :

3.Program untuk membagi array ke sub array

  Program c++

 #include <cstdlib>
 #include <iostream>
 using namespace std;

      class Membagi_subarray {
            public :
                   Membagi_subarray(){
                    cout<<"Program Untuk Membagi array ke sub array"<<endl;
                    }
                   void input();
                   void cetak();
                   void cetak_y();
                   void cetak_z();
                   void membagi();
                  
            private :
                    int i, j, n;
                    int x[100];
                    int y[100];
                    int z[100];
                    int a,b;
            }; 
      void Membagi_subarray::input(){
           cout<<"Masukkan sejumlah angka = ";
           cin>>n;
           for(i = 0; i < n; i++){
                 cout<<"masukkan angka ke "<<i + 1<<" = ";
                 cin>>x[i];
                 }
           }
      void Membagi_subarray::cetak(){
           cout<<"deret data diatas adalah : ";
           for(i = 0; i < n; i++){
                 cout<<x[i]<<"\t";
                 }
           cout<<endl;
           } 
      void Membagi_subarray::cetak_y(){
           cout<<"deret data y (genap) adalah : ";
           for(i = 0; i < a; i++){
                 cout<<y[i]<<"\t";
                 }
           cout<<endl;
           }     
      void Membagi_subarray::cetak_z(){
           cout<<"deret data z (ganjil) adalah : ";
           for(i = 0; i < b; i++){
                 cout<<z[i]<<"\t";
                 }
           cout<<endl;
           } 
      void Membagi_subarray::membagi(){
           a = 0;
           b = 0;
           for(i = 0; i < n; i++){
                 if(x[i] % 2 == 0){
                     y[a] = x[i];
                     a = a+1;   
                         }
                 else{
                      z[b] = x[i];
                      b = b + 1;
                      }
                 }
           }
int main(int argc, char *argv[])
{
    Membagi_subarray urut;
    urut.input();
    urut.membagi();
    urut.cetak();
    urut.cetak_y();
    urut.cetak_z();
   
    system("PAUSE");
    return EXIT_SUCCESS;
}

Hasil Compiler dan Run
data diinputkan kemudian akan dicetak setelah inputan selesai hingga ke - n maka sederetan data tadi akan dicetak semua dan kemudian dibagikan kedalam fungsi ganjil dan fungsi genap, contoh :

Setelah saya mencoba berkali - kali baru program secara keseluruhan jadi untuk itu sekarang giliran teman - teman !!! Selamat Mencoba yeAChh..................................( ^ . ^)

Tugas kElompok dikelas tentang sorting

Nama anggota :   1. NOVITASARI  ( 10018026 )
                           2. TIKA CHANDRAENI SEPTIANNA ( 10018058 )



PROGRAM SORTING DENGAN CARA BAHASA PEMROGRAMAN SEDERHANA
Diberikan data [ 8, 4, 7, 3, 1, 2, 6, 5 ]
Dilakukan pengurutan data dengan menggunakan 3 cara yaitu :
1.Bubble sort
1.Selection sort
3.insertion sort
 
dalam bahasa pemrogramannya kami menggunakan class untuk mempermudah membuat programnya.

program c++
 
#include <cstdlib>
#include <iostream>
using namespace std;
      class Sorting {
            public :
                   Sorting (){
                    cout<<"Program sorting"<<endl;
                    }
                   void input();
                   void bubble_sort();
                   void insertion_sort();
                   void selection_sort();
                   void cetak();
                   void tukar(int&a, int&b);
                   int minimum(int i);
                   void insert();
                   void geser(int a, int b);
            private :
                    int i, j, n;
                    int x[100];
            };
  void Sorting::input(){
           cout<<"Masukkan sejumlah angka = ";
           cin>>n;
           for(i = 0; i < n; i++){
                 cout<<"masukkan angka ke "<<i + 1<<" = ";
                 cin>>x[i];
                 }        
           }
  void Sorting::cetak(){
           cout<<"deret data diatas adalah : ";
           for(i = 0; i < n; i++){
                 cout<<x[i]<<"\t";
                 }
           cout<<endl;
           }
  void Sorting::tukar(int&a, int&b){
           int temp;
           temp=a;
           a=b;
           b=temp;
           }
  void Sorting::bubble_sort(){
           for(i=0;i<n-1;i++){
               for(j=i+1;j<n;j++){
                    if(x[i]>x[j]){
                        tukar (x[i],x[j]);
                                  }
                                  }
                              }
           }
  void Sorting::insertion_sort(){
           int v;
           for(j=2;j<n;j++){
              v = x[j];
              for(i=j-1;i>=0;i--){
                 if(i >= 0 && x[i] > v ){
                      x[i + 1] = x[i];
                      }
                               }
                             }
           }       
  void Sorting::insert(){
           int t;
           for(i = 0; i < n; i++){
                 t = x[i];
                 for(j=1;j < i; j++){
                           if(j+1 == i){
                                 if((t > x[j])){
                                 geser(j,i);
                                 x[j+1]=t;
                                 }
                                 }
                           else{
                                if((t > x[j]) && (t < x[j+1])){
                                 geser(j+1,i);
                                 x[j+1]=t;
                                 }
                                }                        
                           }
                 }
           }
  void Sorting::geser(int a, int b){
           for(int m = a; m <=b; m++){
                   x[m+1]=x[m];
                   }
           }
   void Sorting::selection_sort(){
           int t;
           for (i=0; i<n; i++){
               t=minimum (i);
               tukar(x[i],x[t]);
               }         
           }
    int Sorting::minimum(int i){
           int min;
           int temp;
           min = x[i];
           temp=i;
           for(i=i+1;i<n;i++){
              if(x[i]<min){
                 min=x[i];
                 temp=i;
                           }
                              }
              return temp;
           }
int main(int argc, char *argv[])
{
    Sorting urut;
    urut.input();
    urut.cetak();
    cout<<"sorting menggunakan bubble sort = ";
    urut.bubble_sort();
    urut.cetak();
    cout<<"sorting menggunakan insertion sort = ";
    urut.insertion_sort();
    urut.cetak();
    urut.selection_sort();
    cout<<"sorting menggunakan selection sort = ";
    urut.cetak();
  
    system("PAUSE");
    return EXIT_SUCCESS;
}

Hasil Compiler Dan Run Program diatas


  Semoga Kita bisaaaa dengan Adanya program diatas untuk mengurutkan data - data.........

Tugas kElompok dikelas tentang sorting

Nama anggota :   1. NOVITASARI  ( 10018026 )
                           2. TIKA CHANDRAENI SEPTIANNA ( 10018058 )


PROGRAM SORTING DENGAN CARA MANUAL MENGGUNAKAN ALGORITMA
Diberikan data [ 8, 4, 7, 3, 1, 2, 6, 5 ]
Dilakukan pengurutan data dengan menggunakan 3 cara, yaitu :
è       
            Bubble sort
Penjelasan Langkahnya :
data [ 8, 4, 7, 3, 1, 2, 6, 5 ],  i=1, j=2
         [ 4, 8, 7, 3, 1, 2, 6, 5 ] --> 4 dibandingkan  8 ,karena  lebih besar 8 sehingga ditukar posisi
         [ 3, 8, 7, 4, 1, 2, 6, 5 ] i=1, j=3
         [ 1, 8, 7, 4, 3, 2, 6, 5 ] i=1, j=4   à ini merupakan tahap pertama
         [ 1, 7, 8, 4, 3, 2, 6, 5 ] i=2, j=3
         [ 1, 4, 8, 7, 3, 2, 6, 5 ] i=2, j=4
         [ 1, 3, 8, 7, 4, 2, 6, 5 ] i=2, j=5
         [ 1, 2, 8, 7, 4, 3, 6, 5 ]  i=2, j=6  à ini merupakan tahap kedua
         [ 1, 2, 7, 8, 4, 3, 6, 5 ] i=3, j=4
         [ 1, 2, 4, 8, 7, 3, 6, 5 ] i=3, j=5
         [ 1, 2, 3, 8, 7, 4, 6, 5 ] i=3, j=6  à ini merupakan tahap ketiga
         [ 1, 2, 3, 7, 8, 4, 6, 5 ] i=4, j=5
         [ 1, 2, 3, 4, 8, 7, 6, 5 ] i=4, j=6 à ini merupakan tahap keempat
         [ 1, 2, 3, 4, 7, 8, 6, 5 ] i=5, j=6
         [ 1, 2, 3, 4, 6, 8, 7, 5 ] i=5, j=7
         [ 1, 2, 3, 4, 5, 8, 7, 6 ] i=5, j=8  à ini merupakan tahap kelima
         [ 1, 2, 3, 4, 5, 7, 8, 6 ] i=6, j=7
         [ 1, 2, 3, 4, 5, 6, 8, 7 ] i=6, j=8  à ini merupakan tahap keenam
         [ 1, 2, 3, 4, 5, 6, 7, 8 ] i=7, j=8  à ini merupakan tahap ketujuh
         [ 1, 2, 3, 4, 5, 6, 7, 8 ] --> ini adalah hasil pengurutan data
Cara kerja :
Ada sederetan data yaitu [ 8, 4, 7, 3, 1, 2, 6, 5 ] dicari urutan datanya dari yang terkecil ke yang terbesar dengan cara bubble sort dimana setiap data dibandingkan antara data yang sebelah kiri dengan data yang sebelah kanan ketika data sebelah kanan lebih besar maka data tersebut bertukar posisinya.

  Insertion sort
  Penjelasan Langkahnya :
  Data       [ 8, 4, 7, 3, 1, 2, 6, 5 ]
  [ 4, 8, 7, 3, 1, 2, 6, 5 ] 4 bertukar posisi dengan 8 karena 4 < 8, ini tahap pertama
  [ 4, 7, 8, 3, 1, 2, 6, 5 ] 7 bertukar posisi dengan 8 karena 7 < 8, ini tahap kedua
  [ 3, 4, 7, 8, 1, 2, 6, 5 ] 3 bertukar posisi dengan 8 karena 3 < 8, ini tahap ketiga
  [ 1, 3, 4, 7, 8, 2, 6, 5 ] 1 bertukar posisi dengan 8 karena 1 < 8, ini tahap keempat
  [ 1, 2, 3, 4, 7, 8, 6, 5 ] 2 akan bergeser kedepan sesudah 1, yang lain bergeser kekanan, ini tahap kelima
  [ 1, 2, 3, 4, 6, 7, 8, 5 ] 6 bertukar dengan 7, yang lain bergeser kekanan, ini tahap keenam
  [ 1, 2, 3, 4, 5, 6, 7, 8 ] 5 akan bertukar posisi dengan 6, yang lain bergeser kekanan, ini tahap ketujuh
  [1, 2, 3, 4, 5, 6, 7, 8 ] tahap akhir semua data terurut
  Cara kerja :
Ada sederetan data yaitu [ 8, 4, 7, 3, 1, 2, 6, 5 ] dicari urutan datanya dengan menyisipkan atau menukarkan angka ke ururan yang tepat dengan mengecek elemen array yang terletak disebelah kirinya. data akan selalu dicek dan dibandikkan hingga mencapai data yang ke - n sehingga data yang awalnya tidak terurut menjadi terurut.

   Selection sort
  Penjelasan Langkahnya :
  Data       [ 8, 4, 7, 3, 1, 2, 6, 5 ]
                [ 1, 4, 7, 3, 8, 2, 6, 5 ] ini tahap pertama
                [ 1, 2, 7, 3, 8, 4, 6, 5 ] ini tahap kedua
                [ 1, 2, 3, 7, 8, 4, 6, 5 ] ini tahap ketiga
                [ 1, 2, 3, 4, 8, 7, 6, 5 ] ini tahap keempat
                [ 1, 2, 3, 4, 5, 7, 6, 8 ] ini tahap kelima
                [ 1, 2, 3, 4, 5, 6, 7, 8 ] ini tahap keenam
                [ 1, 2, 3, 4, 5, 7, 6, 8 ] ini tahap ketujuh
Cara kerjanya :
Ada sederetan data yaitu [ 8, 4, 7, 3, 1, 2, 6, 5 ] dicari urutan datanya dengan cara mencari nilai minimum dan disimpan pada posisi paling awal, kemudian data yang paling awal terkecil sudah dicek lagi namun dari data ke 2 dan sampai dat ke – n dicek dan dicari nilai minimumnya program akan berjalan terus sampai posisi data terurut.

Selamat Mencoba.....