UTS Struktur Data _ Desi Jasmiati
Nama : Desi Jasmiati
NIM : 181011450412
Kelas : 03TPLE007
Soal Program No. 1
Soal Program Nomor 2
Soal Program Nomor 3
BUBBLE SORT
NIM : 181011450412
Kelas : 03TPLE007
Soal Program No. 1
SELECTION SORT
Adalah metode sorting dimana elemen- elemen
di perbandingkan satu-persatu sampai pada elemen terakhir dan disusun
berdasarkan ketentuan ketentuan berlaku (terbesar atau terkecil).
Konsep dari selection sort ini adalah sebagai
berikut :
Soal :
Buatlah pengurutan
menggunakan metode selection sort secara descending dari data dibawah ini :
5 , 2 , 21 , 4 , 9
, 16 , 13 , 3
Program Selection Sort secara Descending
Source code :
Source code :
#include<iostream>
using namespace
std;
int main()
{ int a,k,c,d,g;
k=8;
int b[8];
cout<<"Selection Sort
Descending"<<endl<<endl;
for(a=0;a<k;a++)
{
cout<<"Masukkan nilai
ke-"<<a+1<<" : ";cin>>b[a];
}
for(a=0;a<k-1;a++)
{
c=a;
for(d=a+1;d<k;d++)
{
if(b[c]<b[d])
{
c=d;
}
}
g=b[c];
b[c]=b[a];
b[a]=g;
}
cout<<"\n setelah diurutkan akan
menjadi : \n";
for(a=0;a<k;a++)
{
cout<<b[a]<<" ";
}
cout<<"\n";
}
keterangan:
- baris 8 - 10 = adalah pendeklarasian variabel dan array yang akan digunakan
dalam program
- baris 12-15 = Proses inputan yang disimpan dalam array yang dilakukan
dalam perulangan
- baris 16-19 = Proses pengurutan antara elemen satu dengan yang lain dan
apabila elemen satu lebih kecil daripada elemen berikutnya
(mengurtkan besar ke kecil) maka proses pertukaran akan
terjadi pada pada baris 26-28.
- baris 31-35 = Setelah pengurutan berhasil maka nilai akan dicetak/
ditampilkan pada baris ini.
- baris 8 - 10 = adalah pendeklarasian variabel dan array yang akan digunakan
dalam program
- baris 12-15 = Proses inputan yang disimpan dalam array yang dilakukan
dalam perulangan
- baris 16-19 = Proses pengurutan antara elemen satu dengan yang lain dan
apabila elemen satu lebih kecil daripada elemen berikutnya
(mengurtkan besar ke kecil) maka proses pertukaran akan
terjadi pada pada baris 26-28.
- baris 31-35 = Setelah pengurutan berhasil maka nilai akan dicetak/
ditampilkan pada baris ini.
Maka Output nya seperti ini :
Soal Program Nomor 2
Latihan Array tiga
dimensi :
1. Diketahui suatu
Array 3 dimensi yang dideklarasikan dengan A[-2..2,1..4,3..6]. Setiap elemen
terdiri dari 6 Byte. Alamat elemen pertama FC8B H
Ditanya :
A . Jumlah Elemen
B. Jumlah Byte Seluruhnya
C. Alamat A[1,3,5] atau @A[1,3,5] ?
C1. Row Major Order
C2. Column Major Order
Jawab :
A. Jumlah blok = 2 – (-2) + 1 = 5 blok
Jumlah
baris = (4 – 1) + 1 = 4 baris
Jumlah
kolom = (6 – 3) + 1 = 4 kolom
Jumlah
Elemen = 5 * 4 * 4 = 80 Elemen
B. Jumlah byte seluruhnya = 80 * 6 byte = 480
byte
C. C1. Row Major Order
Ditanya
: A [1,3,5]
Diketahui : A [-2,1,3]
3 , 2 , 2 <-(dikurang)
Pindah
3 blok, setiap blok terdiri dari 16 elemen = 3 * 16 = 48 elemen
Pindah
2 baris, setiap baris terdiri dari 4 elemen = 2 * 4 = 8 elemen
Pindah
2 kolom ( 2 elemen ) =
2 elemen
Jumlah
perpindahan =
58 elemen
Pindah
= 58 * 6 byte = 348 byte à 348 Dec à 15C H
Jadi
alamat A [1,3,5] = FC8B H + 15C H = FDE7
C2.
Column Major Order
Ditanya
: A [1,3,5]
Diketahui : A [-2,1,3]
3 , 2 , 2 <-(dikurang)
Pindah
3 blok, setiap blok terdiri dari 16 elemen = 3 * 16 = 48 elemen
Pindah
2 baris, sebanyak 2 elemen
= 2 elemen
Pindah
2 kolom, setiap kolom ada 4 elemen =
2 * 3 = 6 elemen
Jumlah
perpindahan =
56 elemen
Pindah
= 56 * 6 byte = 336 byte à 336 Dec à 150 H
Jadi
alamat A [1,3,5] = FC8B H + 150 H = FDDB
Soal Program Nomor 3
BUBBLE SORT
Bubble Sort adalah salah satu algoritma pengurutan dimana melakukan
penukaran data dengan sebelahnya secara berulang-ulang sampai semua terurut
dengan benar.
Soal :
Buatlah pengurutan
dari data dibawah ini :
90 , 145 , 67 , 23
, 189 , 29 , 334 , 92 , 266 , 95
Program Bubble Sort
Source code :
Source code :
#include
<iostream>
using namespace
std;
void
bubbleSort(int arr[], int n){
int i, j, tmp;
for (i = 0; i < n; i++){
for (j = 0; j < n - i - 1; j++){
if (arr[j] > arr[j + 1]){
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main(){
int array[10], n=10, i, j;
cout<<"Program Bubble
Short"<<"\n"<<endl<<endl;
for (i = 0; i < n; i++){
cout
<< "Masukkan nilai ke-"<<i+1<<" : ";
cin >> array[i];
}
bubbleSort(array, n);
cout << "\nHasil pengurutan
sebagai berikut:\n";
for (i = 0; i < n; i++){
cout << array[i] << "
";
}
cout << "\n";
}
Penjelasan
source algoritma bubble sort di bahasa C++ setiap barisnya :
§
baris 3 : mendeklarasikan fungsi void
bubbleSort dengan menerima inputan arr dan n yang bertipe integer.
§
baris 4 : mendeklarasikan variable i dan j
untuk perulangan dan tmp untuk variable penukaran sementara.
§
baris 5-6 : melakukakan perulangan sebanyak n
dan perulangan sebanyak nilai variable n dikurang i dan dikurang satu.
§
baris 7-11 : cek kondisi jika nilai variable
arr pada index ke j lebih besar dari nilai variable arr pada index ke j+1 maka
melakukan penukaran nilai variable
§
baris 16 : mendeklarasi variable array, n, i
dan j bertipe integer.
§
baris 18-21 : melakukan input nilai dari user
untuk variable array dari setiap data.
§
baris 22 : memanggil fungsi bubbleSort dengan
memasukkan variable array dan n.
§
baris 23-27 : menampilkan hasil pengurutan
bubbleSort.
Maka Output nya seperti ini :
Komentar
Posting Komentar