Assalamu’alaikum w.w.,
Pada kesempatan ini saya akan memposting Program dari materi SEARCHING
AND SORTING , program ini akan dibuat dalam bentuk Flowchart dan C++ .
Program yang akan di buat yaitu : Tentang : Insertion Sort.
Algoritma :
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
Berikut ini adalah Gambar Program Flowchart yang
menggunakan Aplikasi RAPTOR :
Dan yang ini Gambar Program C++ yang Menggunakan Aplikasi
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;
}
#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;
}
Output/hasil compiler dari program tersebut :
Langkah-Langkah Pengerjaan:
Terdapat angka yang acak di bawah ini :
[7,5,6,3,4,1,2]
-Cara pengerjaanya pertama-tama kita menggambil angka pertama di sebelah kiri yaitu [7]
[7]
-Kemudian kita ambil angka ke dua yaitu [5] , karena angka [5] lebih
kecil
dari [7], kita ditaruh di
sebelah kiri:
[5, 7]
[5,6,7]
-Selanjutya kita ambil angka ke empat yaitu [3] karena tiga lebih kecil dari angka yang kita cari sebelumnya, maka angka [3] kita taruh di paling kiri, seperti di bawah ini:
[3,5,6,7]
-Selanjutnya kita ambil angka ke lima yaitu [4], karena angka [4] lebih kecil dari angka [5,6,7] dan lebih besar angka [3] maka kita taruh seperti di bawah ini:
[3,4,5,6,7]
-Selanjutya kita ambil angka ke enam yaitu [1] karena [1] lebih kecil dari angka yang kita cari sebelumnya, maka angka [1] kita taruh di paling kiri, seperti di bawah ini:
[1,3,4,5,6,7]
-Selanjutya kita ambil angka ke tujuh yaitu [2], karena [2] lebih kecil dari angka [3,4,5,6,7] dan lebih besar dari angka [1] maka kita taruh seperti di bawah ini:
[1,2,3,4,5,6,7]
Selseai sudah karena angka-angka sudah terurut, begitulah langkah-langkah pengerjaannya. terimakasih.
Selamat mencoba, dan Semoga bermanfaat ....
Untuk pembahasan Bubble Sort dan Selection Sort silakan kunjungi link blog teman kelompok saya:-)
klik disini!
klik disini!
klik disini!
klik disini!
Wassalamu’alaikum w.w.
Tidak ada komentar:
Posting Komentar