Rabu, 01 Juli 2020

UTS Struktur Data _ Atep Taufik Rianto

Nama : Atep Taufik Rianto
NIM : 181011450383
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 :






Program Selection Sort secara Descending


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

BUBBLE SORT


Bubble Sort adalah salah satu algoritma pengurutan dimana melakukan penukaran data dengan sebelahnya secara berulang-ulang sampai semua terurut dengan benar.



Program Bubble Sort :


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 :



Soal Program Nomor 3

Merge sort

Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk ditampung dalam memori komputer karena jumlahnya yang terlalu besar.

Program merge sort secara Descending






Penjelasannya Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort.

 Divide, Memilah elemen – elemen dari rangkaian data menjadi dua bagian.
 Conquer, Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif
Kombinasi, Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan


Maka Output nya seperti ini :




C. SOAL 03
Program Pengurutan/Sorting ;
Fungsi :
//Nama : Atep Taufik Rianto
//NIM : 181011450383

#include<time.h>
#include<iostream>
#include<conio.h>
#include<windows.h>

using namespace std;
int main(){
 int pil;
 cout << "======= Program Sorting (Bubble, Insertion, Selection) =========="<<endl<<endl;
 cout << "1. Bubble sort" <<endl;
 cout << "2. Insertion sort" <<endl;
 cout << "3. Selection sort" <<endl<<endl;
 cout << "==============================="<<endl<<endl;

 cout << "Masukan pilihan anda = "; cin >> pil;

switch(pil) {
 ////////////////////////////////////

 ////  Bubble start /////////////

 ////////////////////////

 case 1:
 system("cls");
 cout << endl;
 cout << "Bubble sort"<<endl;
 cout << "=============="<<endl;

 int t1,t2;
    int hold;
 int array[5];
 cout<<"Masukan 5 angka :"<<endl;

 for(int i=0; i<5; i++) {
 cout << "  angka ke " <<i+1 <<" = ";cin>>array[i];
 }
  cout<<endl;
  cout<<endl;
  t1=GetTickCount();
  cout<<"Sebelum di sortir = ";

  for(int j=0; j<5; j++) {
   cout<<array[j];
   cout<<"  ";
 }
 cout<<endl;
 cout <<endl<< "Urutan program"<<endl;
 for(int i=0; i<4; i++) {
  for(int j=0; j<4; j++) {
   if(array[j]<array[j+1]) {
       hold=array[j];
       array[j]=array[j+1];
       array[j+1]=hold;   
        for(int i=0; i<5; i++) {
      cout<<array[i]<<"  ";
       }
   cout<<endl;
   }
    } 
 }
 cout<<endl;
 cout<<"Setelah di sortir = ";

  for(int i=0; i<5; i++) {
  cout<<array[i]<<"  ";
  }
    cout<<endl;
  t2=GetTickCount();
  cout << endl <<"Lama proses = " << (int)(t2 - t1) << " ms";
  cout<<endl;
  break;

//////////////////////////////////////////////////////////

///////     Insertion start               /////////

////////////////////////////////////////////////

 case 2:
  system("cls");
  cout << "Insertion sort";
  cout <<endl<<"============="<<endl;
  cout<<endl;
  int t3,t4;
  int Key;
  int array1[5];

  cout<<"Masukan 5 angka : "<<endl;

 for(int i=0; i<5; i++)  {
    cout << "  angka ke " <<i+1 <<" = ";cin>>array1[i];
 }

 cout<<endl;
 t3=GetTickCount();
 cout<<"Angka sebelum di sortir = ";

 for(int j=0; j<5; j++) {
   cout<<array1[j]<<"  ";
 }

 cout<<endl;
 cout<<endl<< "Data proses "<<endl;
 for(int j=1 ; j < 5 ; j++) {
   Key = array1[j];              
   int i = j-1;                  
   while(i >= 0 && array1[i] < Key) {
     array1[i + 1] = array1[i];
     i = i - 1;
   }
   array1[i + 1] = Key;
   for(int l=0; l<5; l++) {
     cout<<array1[l]<<"  ";
  
   }
  cout<<endl;
 }
 cout<<endl<<"Angka setelah disortir = ";

 for(int i=0; i<5; i++) {
   cout<<array1[i]<<"  ";
 }
 t4=GetTickCount();
 cout << endl<<endl <<"Lama proses = " << (int)(t4 - t3) << " ms";
  cout<<endl;

  break;
////////////////////////////////////////////////////////

//////////////   Selection start /////////////////////

///////////////////////////////////// 
  case 3:
  system("cls");
  cout << "Selection sort";
  cout <<endl<< "================="<<endl<<endl;
  int t5,t6;
  int arr[5];
 int mini,temp;

 cout<<"masukan 5 angka ="<<endl;

 for(int i=0; i<5; i++) {
   cout << "  angka ke " <<i+1 <<" = ";cin>>arr[i];
 }
 t5=GetTickCount();
 cout<<endl;
 cout<<"Angka sebelum di sortir = ";

 for(int j=0; j<5; j++) {
   cout<<arr[j]<<"  ";
 }

 for(int r1=0;r1<4;r1++) {
   mini=r1;
   for(int r2=r1+1; r2<5; r2++)
     if(arr[r2]>arr[mini])
      mini=r2;
     if(mini !=r1) {
       temp=arr[r1];
       arr[r1]=arr[mini];
       arr[mini]=temp;
     }
 }
 cout<<endl;
 cout<<endl;
 cout<<"Setelah di sortir = ";
 for(int q=0; q<5; q++) {
   cout<<arr[q]<< "  " ; 
 }
 t6=GetTickCount();
 cout << endl<<endl <<"Lama proses = " << (int)(t6 - t5) << " ms";
  cout<<endl;
  break;

//////////////////////////////////////////

//////           PILIHAN TIDAK ADA   /////////

////////////////////////////////////////// 
  default:
  system("cls");
  cout << "Pilihan tidak ada";
  break;
 }   
  getch ();
}

Maka Output nya seperti ini :














Tidak ada komentar:

Posting Komentar

PERTEMUAN 18 SORTING

SORTING Sorting  adalah proses pengurutan atas sekumpulan data sejenis. Pengurutan dapat dilakukan dari yang terkecil hingga terbesar ( a...