Inserction Sort (Penyisipan) di Bahasa C++

Halo semuanya dipostingan kali ini saya akan membahas mengenai algoritma yang dapat kalian gunakan untuk mengurutkan suatu data dan juga mengenai algoritma pencarian. Mari kita kupas mengenai kedua algoritma tersebut.
Inserction Sort (Penyisipan) di Bahasa C++

Algoritma Pengurutan

Pengurutan data merupakan hal yang penting dalam kehidupan nyata untuk memudahkan pengelolaan data. Pengurutan dapat dilakukan dengan urutan menaik atau dengan urutan menurun. Sebagai contoh, jika ada data angka sebagai berikut.
5
3
7
2
0
9
4
1
8
6

Jika data diurutkan secara menaik akan menjadi sebagai berikut.
0 1 2 3 4 5 6 7
8
9
Jika data diurutkan secara menaik akan menjadi sebagai berikut.
9876543210

Ada beberapa metode pengurutan, yaitu:
1. Metode Penyisipan (inserction sort)
2. Metode Seleksi (selection sort)
3. Metode Gelembung (bubble sort)

Pada pembahasan di bawah ini, akan dijelaskan algoritma - algoritma pengurutan, serta penerapan di dalam C++.

a. Inserction Sort (Penyisipan) di Bahasa C++

Metode penyisipan langsung adalah metode pengurutan yang mengambil sebuah data arsip pada data yang diurutkan dan menggeser data yang lebih besar dari data sisip agar data sisip dapat ditempatkan pada tempat yang benar. Sebagai contoh, jika ada sebuah larik yang berisi angka - angka sebaga berikut.
5
3
7
2
0
9
4
1
8
6
Jika data di atas akan diurutkan dengan urutan menaik menggunakan metode penyisipan langsung maka prosesnya sebagai berikut:

Data Sisip
Hasil Pengurutan
3
5
3
7
2
0
9
4
1
8
6
Pada perulangan ke-1, data index 1 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Terdapat satu data yang lebih besar daripada data sisip, maka satu data tersebut harus digeser satu tempat dan data sisip dipindah ke tempat paling depan.
7
3
5
7
2
0
9
4
1
8
6
Pada perulangan ke-2, data index 2 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Jika data sebelumnya tidak ada yang lebih besar dari data sisip maka tidak ada data yang harus digeser ke belakang.
2
3
5
7
2
0
9
4
1
8
6
Pada perulangan ke-3, data index 3 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Terdapat tiga data yang lebih besar daripada data sisip, maka tiga data tersebut harus digeser satu tempat dan data sisip dipindah ke tempat paling depan.
0
2
3
5
7
0
9
4
1
8
6
Pada perulangan ke-4, data index 4 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Terdapat empat data yang lebih besar daripada data sisip, maka empat data tersebut harus digeser satu tempat dan data sisip dipindah ke tempat paling depan.
9
0
2
3
5
7
9
4
1
8
6
Pada perulangan ke-5, data index 5 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Jika data sebelumnya tidak ada yang lebih besar dari data sisip maka tidak ada data yang harus digeser ke belakang.
4
0
2
3
5
7
9
4
1
8
6
Pada perulangan ke-6, data index 6 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Terdapat tiga data yang lebih besar daripada data sisip, maka tiga data tersebut harus digeser satu tempat dan data sisip dipindah ke sebelum tiga data yang digeser.
1
0
2
3
4
5
7
9
1
8
6
Pada perulangan ke-7, data index 7 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Terdapat enam data yang lebih besar daripada data sisip, maka enam data tersebut harus digeser satu tempat dan data sisip dipindah ke sebelum enam data yang digeser.
8
0
1
2
3
4
5
7
9
8
6
Pada perulangan ke-8 data index 8 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Terdapat satu data yang lebih besar daripada data sisip, maka satu data tersebut harus digeser satu tempat dan data sisip dipindah ke sebelum satu data yang digeser.
6
0
1
2
3
4
5
7
8
9
6
Pada perulangan ke-9 data index 9 dijadikan sebagai data sisip, kemudian dibandingkan dengan data sebelumnya. Terdapat tiga data yang lebih besar daripada data sisip, maka tiga data tersebut harus digeser satu tempat dan data sisip dipindah ke sebelum tiga data yang digeser.
Hasil Akhri
0
1
2
3
4
5
6
7
8
9
Langkah - langkah datas jika dituangkan di dalam C++ menjadi sebagai berikut.

Sorces Code Inserction Sort (Penyisipan) di Bahasa C++:

#include <bits/stdc++.h>
using namespace std;

int main(){
int data[]={5,3,7,2,0,9,4,1,8,6};
int i, dataSize=sizeof(data) /sizeof(data[0]), temp;
for (int j=1; j<dataSize; j++){
i=j-1;
temp=data[j];
while (data[i] > temp&&i>=0){
data[i+1]=data[i];
i--;
}
data[i+1]=temp;
}
for (int j=0; j<dataSize; j++){
cout << j<<" ";
}
return 0;
}


Untuk Melihat Hasil dari codingan diatas kalian hanya perlu copy coding diatas menggunakan dev c++. Semoga membantu kalian daam belajar>

Demikian pembahasan mengenai inserction sort atau metode penyisipan yang digunakan untuk pegurutkan data dari yang kecil, ke yang besar. tunggu postingan saya selanjutnya. Jika ada pertanyaan ataupun saran bisa tulis di kolom komentar.
Sekian dan Terimakasih.

Subscribe to receive free email updates:

0 Response to "Inserction Sort (Penyisipan) di Bahasa C++"

Post a Comment