Program Sortinng Dengan Metode Insertion

Dengan Dev C++:

#include <iostream>
#include <conio.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Sorting {
      friend istream& operator>>(istream& in, Sorting& a);
      friend ostream& operator<<(ostream& out, Sorting& a);
public:
       void baca_data();
       void cetak_data();
       void buble_sort();
       void insertion_sort();
       void selection_sort();
private:
        void minimum(int , int, int&);
        void tukar (int&, int&);
        int data[10], n;
};
  istream& operator>>(istream& in, Sorting& a) {
    cout<<"Banyak data : ";
    in>>a.n;
    for (int i = 0; i < a.n; i++) {
    cout<<"Data ke-" <<i+1<< " : ";
    in>>a.data[i];
}
  return in;
}
  ostream& operator<<(ostream& out, Sorting& a) {
    for (int i = 0; i < a.n; i++)
    out<<a.data[i] << " ";
    out<<"\n";
  return out;
}
  void Sorting::tukar (int &a, int &b){
       int temp;
       temp = a;
       a = b;
       b = temp;
  }
  void Sorting::insertion_sort(){
       int i, j, temp;
       cout<<"Data pertama sudah ada ditangan kiri, yaitu : " << data[0] << '\n';
       for(j = 1; j < n; j++){
           temp = data[j];
           cout<<"\nData ke-" << j+1 << " yaitu " << data[j] << " diambil dari meja\n";
           cout<<"Dilakukan penggeseran elemen :\n";
       for(i = j - 1; (i >= 0) && (data[i] > temp); i--){
           cout<<"data pd posisi ke-[" << i+1 << "] digeser ke posisi [" << i+2 << "]\n";
           data[i+1] = data[i];
       }
        cout<<"Data baru masuk pada posisi ke-[" << i+2 << "]\n";
        data[i+1] = temp; //Insert key into proper position
        cout<<"Data saat ini adalah : ";
        for (int k=0; k<=j; k++) cout << data[k] << " ";
            getch();
            }
  }
int main(int argc, char** argv) {

Sorting angka;
    cin>>angka;
    angka.insertion_sort();
    cout<<"\nHasil akhir adalah : \n";
    cout<<angka;

return 0;
}

Hasil Compilenya :



Algoritma :

procedure insertion_sort(input/output data:larik; input n:integer)

Deklarasi
       k, j, temp : integer
Deskripsi
       for k <-- 2 to n do
            temp := data [k];
            j := k-1;
       while (temp <= data [j]) and (j > 1) do
               data [j+1] := data [j];
               j := j-1;
       endwhile
       if (temp >= data [j]) then data [j+1] := temp
       else
             data [j+1] := data [j];
             data [j] := temp;
        endif

   endfor

KASUS 6.4. BUATLAH ALGORITMA UNTUK MENENTUKAN NILAI MAKSIMUM DAN MINIMUM DARI N BILANGAN

 Algoritma :

  1. compile program C++nya 
  2. Masukkan bilangan pertama yang akan dimasukan 
  3. kemudian program akan menentukan bilangan minimum dan maksimum dari bilangan yang kita inputkan
  4. tekan enter untuk  mengakhirinya
Berikut adalah program C++ dari kasus diatas :





Berikut adalah outputnya :


Dan berikut inii adalah program flowchartnya :



Dan berikut adalah gambar hasil dari program flowchartnya :


KASUS 6.3. BUATLAH ALGORITMA UNTUK MENENTUKAN NILAI MAKSIMUM DARI N BILANGAN


Algoritma;

  1.  langkah pertama kita harus menjalankan atau mengcompile program
  2.  kita harus menentukan berapa banyak data yang kita inginkan
  3. lalu masukkan data yamg ada kedalamm perintah dalam program
  4. kemudian tekan enter jika akan mengetahui berapa nilai maksimumnya dari sebuah bilangan tersebut.
  5. jika sudah mengetahuinya maka tekan enter untuk mengakhiri program tersebut.
Berikut adalah program C++ dari kasus  diatas:
 



Berikut adalah hasil output dari program diatas:


dan berikut adalah program flowchart dari program diatas :



Dan berikut adalah hasil outputnya :