- SELECTION SORT
- INSERTION SORT
- BUBBLE SORT
1. 1.
Identifikasi Masalah
=> melakukan penukaran data dengan tepat
disebelahnya secara terus meneru
2. Menentukan input dan output
Input:
A[i]=i, A[i+1]=j
Output:
A[i]= A[i+1], A[i+1]=A[i]
3. Membuat flowchart 4. Tes menggunakan data
→ input banyak data : 6
Input data ke 1 : 9
Input
data ke 2 : 8
Input
data ke 3 : 7
Input
data ke 4 : 6
Input
data ke 5 : 5
Input
data ke 6 : 4
Output
: Data setelah diurutkan : 4 5 6 7 8 9
Hasil tersebut diperoleh dari :
For I ← 1 to n-1
If A[i]>A[i+1] then
Tukar (A[i], A[i+1])
Jika elemen kiri > elemen kanan maka kita pindahkan.
Data awal : 9 8 7 6 5 4
Step 1 : 8 9 7 6 5 4 (9>8)
Step 2 : 8 7 9 6 5 4 (9>7)
Step 3 : 8 7 6 9 5 4 (9>5)
Step 4 : 8 7 6 5 9 4 (9>4)
Step 5 : 8 7 6 5 4 9 (8>7)
Step 6 : 7 8 6 5 4 9 (8>6)
Step 7 : 7 6 8 5 4 9 (8>5)
Step 8 : 7 6 5 8 4 9 (8>4)
Step 9 : 7 6 5 4 8 9 (7>6)
Step 10 : 6 7 5 4 8 9 (7>5)
Step 11 : 6 5 7 4 8 9 (7>4)
Step 12 : 6 5 4 7 8 9 (6>5)
Step 13 : 5 6 4 7 8 9 (6>4)
Step 14 : 5 4 6 7 8 9 (5>4)
Step 15 : 4 5 6 7 8 9
5. Implementasi c++
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( 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 buble_sort (int x[], int n)
{ int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j])
tukar(&x[i], &x[j]);
}
main() {
//
nilai variable " nilai[100], n " disni digunakan untuk mengisi
nilai parameter dalm prosedur
int nilai[100], n;
cout << "Banyak data : ";
cin >> n;
baca_data(nilai,n); //
pemgilan prosedur
cout<<endl;
cout<<"data
awal"<<endl;
cetak_data(nilai,n); //
pemgilan prosedur
buble_sort(nilai,n); //
pemgilan prosedur
cout<<"data stelah
diurutkan"<<endl;
cetak_data(nilai,n); //
pemgilan prosedur
}
Menggeser elememn array ada dua cara yaitu dengan
menggeser ke kiri dan menggeser ke kanan
berikut ini adalah algoritma mengeser ke kiri:
4. Test menggunakan data
| 4 | 6 | |
a = 4
b = 6
temp = a
a = b
b = c
A[4] = A[3]
A[3] = A[2]
A[2] = A[1]
1. Identifikasi masalah
Menggeser element array
2. Menentukan input dan output
Input a, b, temp
Output kiri
3. Membuat flowchart
Menggeser element array
2. Menentukan input dan output
Input a, b, temp
Output kiri
3. Membuat flowchart
4. Test menggunakan data
| 4 | 6 | |
a = 4
b = 6
temp = a
a = b
b = c
A[4] = A[3]
A[3] = A[2]
A[2] = A[1]
MENGGESER KIRI
#include <cstdlib>
#include <iostream>
#define maks5
using namespace std;
class array{
friend ostream& operator<<(ostream&,
const array&);
friend istream& operator>>(istream&,
array&);
public:
array();
void
cetak();
void
geser_kiri();
private:
char a[5];
int posisi;
};
array::array(){
for(int i=0;i<5;i++)
a[i]='O';
}
void array::cetak(){
for(int i=0;i<5;i++)
cout<<a[i]<<" ";
}
ostream& operator<<(ostream& out, const array&
keluar){
for(int i=0;i<5;i++)
out<<keluar.a[i]<<" ";
out<<endl;
return out;
}
istream& operator>>(istream& in, array& masuk){
int posisi;
cout<<" \t\tMenggeser elemen array
ke kiri"<<endl;
for (int posisi=1; posisi<=5; posisi++){
cout<<endl;
cout<<"Masukkan nilai array posisi ke
"<<posisi<<"= ";
//in>>masuk.posisi;
if(posisi >= 0 && posisi <= 5){
//cout<<"masukkan elemen arraynya :";
in>>masuk.a[posisi-1];
}
}
return in;
}
void array::geser_kiri(){
int n=5;
int temp=a[0];
for(int i=0;i<n;i++)
a[i]=a[i+1];
a[n-1]=temp;
}
int main(int argc, char *argv[])
{
array X;
// cout<<"Array masih kosong : "<<X;
cin>>X;
cout<<"Isi Array saat ini :
"<<X<<endl;
X.geser_kiri();
cout<<endl;
cout<<"Isi Array setelah di geser kiri :
"<<X;
return 0;
}
2. RAPTOR
- MENCARI MEAN,MEDIAN,MODUS,MAX,MIN DARI BANYAKNYA NILAI YANG DI INPUTKAN Bisa Klik disini
- MENGHILANGKAN DUPLIKASI DARI DATA YANG DIINPUTKAN Bisa Klik disini
Tidak ada komentar:
Posting Komentar