Kasus
Buatlah program sorting Dinamis menggunakan metode selection sort atau insertion sort (pilih salah satu) untuk mengurutkan Nilai mahasiswa dengan banyak elemen dinamis (lebih dari 3), kemudian tampilkan data sebelum dan sesudah di urutkan. lalu jelaskan secara singkat dari proses pengurutannya... [+] nilai yang di inputkan bebas [+] Di urutkan secara ascending (Nilai terkecil ke Besar)
Source code dan Logika
Apa itu sorting ?
Sorting adalah mengurutkan data atau sebuah nilai yang dulunya acak, menjadi berurutan
Logika
Deklarasi var
a : array [1..100] of integer
i, j, n, min, temp : integer
Algoritma :
Output(‘Masukkan banyak data : ‘)
Input(n)
i traversal [1..n]
Output(‘Masukkan data ke-‘,i,’ : ‘);
Input(ai)
i traversal [1..n-1]
min <= i
j traversal [i+1..n]
if (aj < amin) then
min <= j
temp <= amin
amin := ai
ai := temp
i traversal [1..n]
Output(ai,’ ‘)
Source Code
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a[100];
int i,j,n,min,temp;
cout <<"Banyak Data : ";
cin >> n;
for (i=1;i<=n;i++)
{
cout <<"Data ke - " << i <<": ";
cin >> a[i];
}
//=== sebelum urut ===
cout <<"Data sebelum urut\n";
for (i=1;i<=n;i++)
{
cout << a[i] <<" ";
}
cout <<"\n";
//=== Proses selection sort ===
for (i=1;i<=n-1;i++)
{
min=i;
for (j=i+1;j<=n;j++)
{
if (a[j]<a[min])
{
min=j;
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
}
//=== menampilkan hasil sorting ===
cout <<"Data Setelah urut\n";
for (i=1;i<=n;i++)
{
cout << a[i] << " ";
}
getch();
}
Penjelasan
Prinsip kerja selection sort adalah
Cari nilai ekstrim (maksimum/minimum) pada array A (misalkan array A adalah
array yang ingin diurutkan) dan tukar dengan indeks pertama, lalu isolasi indeks
pertama. Kemudian tentukan nilai ekstrim selanjutnya dan tukarkan dengan indeks kedua,
lalu isolasi indeks kedua. Terus ulangi langkah tersebut hingga data terakhir.
pertama buat header, iostream dll
Kedua using namespace std supaya tidak ada cout dan cin
Ketiga deklarasi var
Ke empat input data
Ke lima loop, hasil inputan di atas, lalu input data baru sesuai. Dengan batas loop yang tadi di awal input
Sete;ahnya akan ada, data sebelum di urutkan, dengan cara loop jadi si a var penampung nilai tadi akan di outputkan, dengan hasil input yg sudah di isi tadi
Ke enam proses selection, pada dasarnya dengan cara nested loop. Kita sudah jelaskan apa itu nested jadi langsung gas saja. Setelah itu ada percabangan atau if. Jika var [j] < a[min], maka akan di usut.
Langsung saja untuk mempersingkat dan mengehamat waktu. Simplenya seperti ini
Input(ai)
i traversal [1..n-1]
min <= i
j traversal [i+1..n]
if (aj < amin) then
min <= j
temp <= amin
amin := ai
ai := temp
i traversal [1..n]
Output(ai,’ ‘)
Terakhir tinggal nampilkan hasil sorting dengan cara loop. Jika ingin tambah searching, bisa pakai loop, hasil tadi kita fillterasi atau untuk menemukan index array dari value nilai tersebut
Ouput
*Beware click the link!
NONE
Wkwkw pelajaran dulu gw nih kwkw gampang bet
Reply
Hahaha
Reply