01 SOAL      1. Pengurutan menggunakan metode Bubble Sort secara Ascending : Fungsi : //mengurutkan data menggunakan metode bubble ...

UTS

01 SOAL

    1. Pengurutan menggunakan metode Bubble Sort secara Ascending :

Fungsi :

//mengurutkan data menggunakan metode bubble sort secara ascending

//Nama : Dwicky Oktavian

//NIM : 181011450428


#include<iostream>

#include<conio.h>

using namespace std;

void bubblesort(int data[],int n);

main(){

cout<<"\t\t \tPengurutan Data Bubble Sort secara Ascending"<<endl; cout<<endl;

 

int  i;

int n=7;

int data[]={5,2,21,4,9,16,13,3};

cout<<"Data sebelum diurutkan :"<<endl;

for(i=0;i<=n;i++)

cout<<data[i]<<" ";

cout<<endl;

 

cout<<"____________________"<<endl;

bubblesort(data,n);

cout<<"Data setelah diurutkan :"<<endl;

for(i=0;i<=n;i++)

cout<<data[i]<<" ";

cout<<endl;

}

 

void bubblesort(int array1[], int n){ int i,k,tmp;

for(i=1;i<=n;i++){

for(k=n;k>=i;k--){

if(array1[k]<array1[k-1]){ tmp=array1[k];

                                                            array1[k]=array1[k-1];

                                                            array1[k-1]=tmp;

}

}

}

}

 

Hasil



2. Pengurutan menggunakan metode Selection Sort secara Descending :

 

Fungsi :

//mengurutkan data menggunakan metode selection sort secara descending

//Nama : Dwicky Oktavian

//NIM : 181011450428

 

#include<iostream>

#include<conio.h>

using namespace std;

 

int main()

{

cout<<"\t\t \tPengurutan Data Selection Sort secara Descending"<<endl;

cout<<"\t\t \t================================================\n";

int i,j,Imaks,maks,temp;

int L[8]={5,2,21,4,9,16,13,3};

 

for (i=7;i>=1;i--){

Imaks=0; maks=L[0];

for (j=1;j<=i;j++){

if (L[j]<maks){

Imaks=j; maks=L[j];

}

}

temp=L[i]; L[i]=maks;

L[Imaks]=temp;

}

 

cout<<"\nData Sebelum diurutkan : "<<endl; int data[]={5,2,21,4,9,16,13,3};

for(i=0;i<=7;i++) cout<<data[i]<<" "; cout<<endl;

cout<<"           "<<endl;

 

cout<<"Data setelah diurutkan :"<<endl; for (i=0;i<=7;i++){

cout<<L[i]<<" ";

}

cout<<endl; getch();

}

 

Hasil :


3. Pengurutan menggunakan metode Insertion Sort secara Descending :

 

Fungsi :

//mengurutkan data menggunakan metode insertion sort secara descending

//Nama : Dwicky Oktavian

//NIM : 181011450428

 

#include <iostream>

#include <conio.h>

#include <iomanip>

using namespace std;

 

 

void insertion (int data[])

{

int temp,j;

for(int i=1;i<8;i++)

{

temp=data[i]; j=i-1;

while(data[j]<temp && j>=0)

{

data[j+1]=data[j]; j--;

}

data[j+1]=temp;

}

}

 

int main()

{

//deklarasi variabel

int data [8]={5,2,21,4,9,16,13,3};

 

cout<<"\t\t \tPengurutan Data Insertion Sort secara Descending"<<endl;

cout<<"\t\t \t================================================\n";

cout<<endl;

cout<<"\nData Sebelum diurutkan : "<<endl; cout<<"     \n";

for(int n=0;n<8;n++) cout<<data[n]<<" ";

cout<<endl;

 

cout<<"\nData Setelah diurutkan\n"; cout<<"     \n"; insertion(data);

for(int x=0;x<8;x++) cout<<data[x]<<" ";

cout<<endl;

 

getch();

}

 

Hasil :



02. SOAL
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:
Tentukan :
A. Jumlah elemen:
B. Jumlah byte seluruhnya
C. Alamat A[1,3,5] atau @A[1,3,5]?
     C1 Row Major Order (RMO)
     C2 Column Major Order (CMO)

Jawab :
A. Jumlah elemen:
Jumlah blok  : (2 – (-2)) + 1 = 5 blok
Jumlah baris  : (4 – 1) + 1 = 4 Baris
Jumlah kolom : (6 – 3) + 1 = 4 kolom

Jumlah elemen  : 5 x 4 x 4 = 80 Elemen

B. Jumlah Byte  : 80 x 6 = 480 Byte

C. C1 Row Major Order (RMO) ;
Pindah 3 blok, setiap blok terdiri dari 16 elemen          = 3 x 16 = 48 elemen
Pindah 2 baris, setiap baris terdiri dari 4 elemen  = 2 x 4 = 8 elemen
Pindah 2 kolom                  = 2 elemen
Jumlah Pindah  = 58 elemen
        = 58 x 6 byte
        = 348 Byte
        = 15C
Jadi, alamat @A[1,3,5] = FC8B + 15C = FDE7

C. C2 Column Major Order (CMO) ;
Pindah 3 blok, setiap blok ada 16 elemen  = 3 x 16 = 48 elemen
Pindah 2 baris          = 2 elemen
Pindah 2 kolom, setiap kolom 4 elemen = 2 x 4 = 8 elemen
Jumlah pindah  = 58 elemen
        = 58 x 6 byte
        = 348 Byte
        = 15C
Jadi, alamat @A[1,3,5] = FC8B + 15C = FDE7

2. Diketahui suatu array 3 dimensi yang dideklarasikan dengan A[2][5][6] pada bahasa C++. Setiap elemen terdiri 4 byte. Alamat elemen pertama BC9A H.
Tentukan :
A. Jumlah elemen:
B. Jumlah byte seluruhnya
C. Alamat A[1,3,5]?
    C1 Row Major Order (RMO)
    C2 Column Major Order (CMO)

Jawab :
A. Jumlah elemen:
Jumlah blok  : 2 Blok
Jumlah baris  : 5 Baris
Jumlah kolom : 6 Kolom

Jumlah elemen  : 2 x 5 x 6 = 60 elemen

B. Jumlah Byte  : 60 x 4 byte = 240 byte

C. C1 Row Major Order (RMO) ;
Pindah 1 blok, setiap blok terdiri dari 30 elemen      = 1 x 30 = 30 elemen
Pindah 3 baris, setiap baris terdiri dari 6 elemen  = 3 x 6 = 18 elemen
Pindah 5 kolom                  = 5 elemen
Jumlah Pindah  = 53 elemen
        = 53 x 4 byte
        = 212 byte
            = D4
Jadi, alamat @A[1,3,5] = BC9A + D4 = BD6E

C. C2 Column Major Order (CMO) ;
Pindah 1 blok, setiap blok ada 30 elemen  = 1 x 30 = 30 elemen
Pindah 3 baris          = 3 elemen
Pindah 5 kolom, setiap kolom 5 elemen = 5 x 5 = 25 elemen
Jumlah pindah  = 58 elemen
        = 58 x 4 byte
        = 232 byte
        = E8
Jadi, alamat @A[1,3,5] = BC9A + E8 = BD82


03. SOAL

Buatlah pengurutan dari data dibahah ini

90     145      67        23        189      29        334      92        266      95

 

//mengurutkan data menggunakan metode insertion sort secara descending

//Nama : Dwicky Oktavian

//NIM : 181011450428

 

#include <iostream>

#include <conio.h>

#include <iomanip>

using namespace std;

 

void insertion (int data[])

{

int temp,j;

for(int i=1;i<10;i++)

{

temp=data[i]; j=i-1;

while(data[j]<temp && j>=0)

{

data[j+1]=data[j]; j--;

}

data[j+1]=temp;

}

}

 

int main()

{

//deklarasi variabel

int data [10]={90,145,67,23,189,29,334,92,266,95};

 

cout<<"\t\t \tPengurutan Data Insertion Sort secara Descending"<<endl;

cout<<"\t\t \t================================================\n";

cout<<endl;

cout<<"\nData Sebelum diurutkan : "<<endl; cout<<"             \n";

for(int n=0;n<10;n++) cout<<data[n]<<" ";

cout<<endl;

 

cout<<"\nData Setelah diurutkan\n"; cout<<" \n"; insertion(data);

for(int x=0;x<10;x++) cout<<data[x]<<" ";

cout<<endl;

 

getch();

}

 

Hasil :


 


0 komentar: