Langsung ke konten utama

UTS STRUKTUR DATA

 

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.


Hasil Output



Komentar