UTS Struktur Data _ Desi Jasmiati

Nama : Desi Jasmiati
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 :

#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.



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 :

#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

Postingan Populer