TUGAS UTS
OPSI 1 BAGIAN 1
Pertanyaan :
Buatlah pengurutan menggunakan metode Bubble short Secara Ascending dari data dibawah ini :
5 2 21 4 9 16 13 3
Contoh:
data[1]=5;
data[2]=2;
data[3]=21;
data[4]=4;
data[5]=9;
data[6]=16;
data[7]=13
data[8]=3;
Perhatikan diatas kita mempunyai 5 elemen data, kita akan coba urutkan dengan teknik bubble sort secara ascending lewat langkah-langkah berikut:
- Data[1] akan dibandingkan dengan data[2] jika nilai dari data[1] lebih besar dari data[2] maka posisinya akan ditukar.
- data[1] selanjutnya akan terus dibandingkan dengan data[3],data[4] dan data[5]. Apabila nilai dari data[1] lebih besar maka posisinya akan terus ditukar.
- Ketika data[1] telah selesai membandingkan dengan semua data yang ada, selanjutnya data[2] akan dibandingkan lagi dengan data[3],data[4] dan data[5]. cara kerjanya sama bila nilai pada data[2] lebih besar dengan data yang dibandingkan maka posisinya akan ditukar. Pada tahap ini data[1] sudah tidak dibandingkan lagi karena sudah mempati posisi pengurutan yang tepat.
- Begitupun dengan Proses pembandingan data lain yang akan terus berjalan hingga memenuhi urutan yang diinginkan.
Implementasi Kedalam Program c++
#include <iostream>
#include <conio.h>
using namespace std;
int data[10], data2[10];
int n;
int tukar (int a,int b){
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
int input(){
cout<<"Masukan Jumlah Data = ";
cin>>n;
cout<<endl;
for (int i=0;i<n;i++){
cout<<"Masukan Data Ke-"<<i+1<<" = ";
cin>>data[i];
data2[i]=data[i];
}
cout<<endl;
}
int tampil(){
for (int i=0;i<n;i++){
cout<<"["<<data[i]<<"] ";
}
cout<<endl;
}
int bubble_sort(){
for (int i=1; i<n;i++){
for (int j=n-1; j>=i;j--){
if (data[j]<data[j-1]){
tukar(j,j-1);
}
}
tampil();
}
cout<<endl;
}
int main()
{
cout<<"ALGORITMA BUBBLE SORT"<<endl;
cout<<"----------------------"<<endl;
input();
cout<<"Proses Bubble Sort"<<endl;
tampil();
bubble_sort();
getch();
}
Hasil Output
Latihan array tiga dimensi :
OPSI 2 BAGIAN 2
Diketahui suatu Array 3 dimensi yang dideklarasikan dengan A[2][5][6] Pada Bahasa C++ Setiap elemen terdiri dari 4 byte. Alamat elemen pertama BC9A H
A. Jumlah Elemen : [2] * [5] * [6] = 60
B. Jumlah Byte Seluruhnya : 60 * 4byte = 240 byte
C1. Row Major Order
Ditanya : &A[1][3][5]
Diketahui : &A[0][0][0]
1 3 5
Pindah kolom = 1 kolom = 1 elemen
Pindah baris = 3 baris x 6 elemen/baris = 18 elemen
Pindah blok = 5 blok x 24 elemen/blok = 120 elemen
Total perpindahan = 1 + 18 + 120 = 139 elemen
Pindah = 139 Elemen
= 139 * 4 Byte
= 556 Byte (Decimal)
= 22C Hexa Dec
Jadi Alamat @A[1],[3],[5] = BC9A + 22C = BEC6
C2. Coloumn Major Order
Ditanya : &A[1][3][5]
Diketahui : &A[0][0][0]
1 3 5
Pindah kolom = 1 kolom x 4 elemen/kolom = 4 elemen
Pindah baris = 3 baris = 3 elemen
Pindah blok = 5 blok x 24 elemen/blok = 120 elemen
Total perpindahan = 4 + 3 + 120 = 127 elemen
Pindah = 127 Elemen
= 127 * 4 Byte
= 508 Byte (Decimal)
= 1FC Hexa Dec
Jadi Alamat @A[1],[3],[5] = BC9A + 1FC = BE96
OPSI 3 BAGIAN 3 : Buble Short
Buatlah pengurutan dari data dibawah ini :
90 145 67 23 189 29 334 92 266 95
Implementasi Kedalam Program c++
#include <iostream> using namespace std; | |
int main(){ | |
//disini kita melakukan pembuatan array yang mana berasal dari inputan user | |
6 | int banyakA; |
7 | int x[100]; |
8 | cout<<"masukann banyak array :"; |
9 | cin>>banyakA; |
10 | for(int m=0;m<banyakA;m++){ |
11 | cout<<"masukan array ke "<<m<<" :"; |
12 | cin>>x[m]; |
13 | } |
//proses pembuatan array | |
//menampilkan array sebelum di sorting | |
16 | cout<<"array awal adalah:"<<endl; |
int y=banyakA-2; | |
int param; | |
for(int m=0;m<banyakA;m++){ | |
cout<<x[m]<<" "; | |
} | |
22 | cout<<endl<<endl<<"mulai proses sorting"<<endl; |
//memulai proses sorting | |
25 | while(y >= 0){ |
int index = 0; | |
while(index <= y){ | |
if(x[index] > x[index+1]){ | |
param = x[index]; | |
x[index] = x[index+1]; | |
x[index+1] = param; | |
} | |
index++; | |
} | |
//disini kita melakukan pengecekan hasil di setiap tahapan sort | |
for(int m=0;m<banyakA;m++){ | |
cout<<x[m]<<" "; | |
} | |
cout<<endl; | |
y--; | |
42 | } |
//processing end | |
//disini kita melakukan looping untuk mengeluarkan hasil sorting | |
46 | cout<<"hasil sortingnya adalah:"<<endl; |
for(int m=0;m<banyakA;m++){ | |
cout<<x[m]<<" "; | |
50 | } |
} |
Keterangan :
line 6-13 : disini kita membuat form input untuk user, dimana user akan memberi inputan banyaknya array dan value dari setiap index array dan array tsb disimpan dalam variable x
line 16-22 : disini kita menampilkan array yang sudah di inputkan oleh user, sebagai pembanding sebelum dan sesudah di sorting.
line 25-42 : disinilah proses sorting terjadi, pertama kita akan melooping sebanyak array, lalu kita akan simpan indexnya di dalam variable index, setelah itu kita akan akan looping dan mengecek apakah setiap array ke index lebih besar dibanding array ke index+1? jika iya maka kita akan lakukan pertukaran
line 46-50 : disini kita tampilkan kembali array yang sudah di sorting.
Komentar
Posting Komentar