1) Identifikasi masalah
=>Menukar 6 bilangan yang masih acak dengan metode selection.
Data Awal [ 9,8,7,6,5,4 ]
Step 1 [ 4,8,7,6,5,9 ] 4 terkecil, 9 <--> 4
Step 2 [ 4,5,7,6,8,9 ] 5 terkecil, 8 <--> 5
Step 3 [ 4,5,6,7,8,9 ] 6 terkecil, 7 <--> 6
Step 4 [ 4,5,7,6,8,9 ] sudah terurut,maka akan berhenti saat data sudah terurut
Step 5 [ 4,5,7,6,8,9 ] Selesai
1. Temukan nilai yang paling minimum di dalam struktur data.
2. Tukar nilai tersebut dengan nilai pada posisi pertama di bagian struktur data yang belum diurutkan( letak sebelah kiri lebih kecil daripada sebelah kanan).
3. Ulangi langkah di atas untuk bagian struktur data yang tersisa sampai terurut.
2) Menentukan input dan output
- Input : i , A , temp , min, t,
- Output : tukar(&A[i], &A[t])
3) Flowchart
4) Test menggunakan data
- input = 9,8,7,6,5,4
- output = 4,5,6,7,8,9
5) Implementasi C++
#include <iostream>
using namespace std;
void baca_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-: "<<i+1<<"= ";
cin >> A[i];
}
}
void cetak_data(const int A[], int n)
{ int i;
for (i = 0; i < n; i++)
cout << A[i];
cout << "\n";
}
void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
void minimum(int A[], int dari, int n, int * tempat)
{ int i, min;
min = A[dari];
*tempat = dari;
for (i = dari+1; i<n; i++)
if (A[i] < min)
{ min = A[i];
*tempat = i;
}
}
using namespace std;
void baca_data(int A[], int n)
{ int i;
for (i = 0; i < n; i++)
{ cout << "Data ke-: "<<i+1<<"= ";
cin >> A[i];
}
}
void cetak_data(const int A[], int n)
{ int i;
for (i = 0; i < n; i++)
cout << A[i];
cout << "\n";
}
void tukar (int *a, int *b)
{ int temp;
temp = *a;
*a = *b;
*b = temp;
}
void minimum(int A[], int dari, int n, int * tempat)
{ int i, min;
min = A[dari];
*tempat = dari;
for (i = dari+1; i<n; i++)
if (A[i] < min)
{ min = A[i];
*tempat = i;
}
}
void selection_sort(int A[], int n)
{ int i, t;
for (i = 0; i<n; i++)
{ minimum(A, i, n, &t);
tukar(&A[i], &A[t]);
}
}
main() {
int data[10], n;
cout<<"Desita Putri Niranda\n";
cout << "Banyak data : ";
cin >> n;
baca_data(data,n);
cetak_data(data,n);
selection_sort(data,n);
cout<<endl;
cout<<"setelah diurutkan"<<endl;
cetak_data(data,n);
return 0;
}
{ int i, t;
for (i = 0; i<n; i++)
{ minimum(A, i, n, &t);
tukar(&A[i], &A[t]);
}
}
main() {
int data[10], n;
cout<<"Desita Putri Niranda\n";
cout << "Banyak data : ";
cin >> n;
baca_data(data,n);
cetak_data(data,n);
selection_sort(data,n);
cout<<endl;
cout<<"setelah diurutkan"<<endl;
cetak_data(data,n);
return 0;
}
6) Eksekusi
Bubble Sort => Khoiriyatus S
Insertion Sort => Rahmasari Adi P.I
-Semoga Bermanfaat-
~Thank You~
XOXO
0 komentar
Posting Komentar