STRUKTUR DATA
LAPORAN KE-8
Disusun oleh :
Nama : Hendrik Purnama Yuniar
Nim : 191011401792
Kelas : 04Tple025 Reg-C sabtu
TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
RANGKUMAN
1. TEORI DASAR
a) Metode Maximum I Minimum Sort
Metode Maximum I Minimum Sort dilakukan berdasarkan pemilihan elemen maksimum
I minimum, maka metode ini disebut juga dengan metode pemilih/seleksi (Selection
Sort).
b) Metode Maximum Sort
Metode ini disebut juga dengan metode Maksimum karena didasarkan pada
pemilihan elemen maksimum sebagai dasar pengurutan. Konsepnya adalah
memilih elemen maksimum kemudian mempertukarkan elemen maksimum tersebut
dengan elemen paling akhir untuk urut menaik dan elemen pertama untuk urut menurun.
Demikian seterusnya hingga semua elemen terurut.
c) Metode Minimum Sort
Metode ini disebut juga dengan metode mmimum karena didasarkan pada
pemilihan elemen minimum sebagai dasar pengurutan. Konsepnya adalah memilih
elemen minimum kemudian mempertukarkan elemen minimum tersebut dengan elemen
paling akhir untuk urut menaik dan elemen pertama untuk urut menurun. Demikian
seterusnya hingga semua elemen terurut.
2. TUGAS PRAKTIKUM
a) Buatlah program untuk Pengurutan dengan Metode Maximum Sort
"Pengurutan Secara Menaik" (simpan dengan nama lat8_1.cpp)
Programnya:
#include<iostream>
#include<conio.h>
#include<iomanip>
using namespace std;
main()
{
cout<<endl;
cout<<" Nama : Hendrik Purnama Yuniar "<<endl;
cout<<" NIM : 191011401792"<<endl;
cout<<" Kelas : 04TPLE025"<<endl;
cout<<" Mata Kuliah : Praktikum Struktur Data "<<endl<<endl;
Outputnya:
b) Buatlah program untuk Pengurutan dengan Metode Maximum
Sort "Pengurutan Secara Menurun" (simpan dengan nama lat8_2.cpp)
Programnya:
#include<iostream>
#include<conio.h>
#include<iomanip>
using namespace std;
main()
{
cout<<endl;
cout<<" Nama : Hendrik Purnama Yuniar "<<endl;
cout<<" NIM : 191011401792"<<endl;
cout<<" Kelas : 04TPLE025"<<endl;
cout<<" Mata Kuliah : Praktikum Struktur Data "<<endl<<endl;
cout<<"++++++++++++++++++++++++++++++++++++++++" <<endl<<endl;
cout<<" Pengurutan Secara Menurun" <<endl<<endl;
cout<<"++++++++++++++++++++++++++++++++++++++++" <<endl<<endl;
int Nilai[20];
int i, j, N, l;
int temp, U, Imaks;
cout<<"Masukkan Banyak Bilangan : ";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<" : ";
cin>>Nilai[i];
}
//Proses Pengurutan
U=N-1;
for(i=0; i<=N-2; i++)
{
Imaks = 0;
for(j=1; j<=U; j++)
{
if(Nilai[j] > Nilai[Imaks])
Imaks = j;
}
temp = Nilai[U];
Nilai[U] = Nilai[Imaks];
Nilai[Imaks] = temp;
U--;
cout<<endl;
for(l=0; l<N; l++)
cout<<setw(3)<<Nilai[l];
}
cout<<"\nData Setelah di urut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
getch();
}
Outputnya:
Outputnya:
//Proses Pengurutan
U=N-1;
for(i=0; i<=N-2; i++)
{
Imin = 0;
for(j=1; j<=U; j++)
{
if(Nilai[j] < Nilai[Imin])
Imin = j;
}
temp=Nilai[U];
Nilai[U]=Nilai[Imin];
Nilai[Imin]=temp;
cout<<endl;
U--;
for(l=0; l<N; l++)
cout<<setw(3)<<Nilai[l];
}
cout<<"\nData Setelah di urut:";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
getch();
}
Outputnya:
cout<<"===================================================\n";
cout<<"\t\tNAMA : Hendrik Purnama Yuniar\n";
cout<<"\t\tNIM : 191011401792\n";
cout<<"\t\tKELAS : 04TPLE025\n\n";
cout<<"===================================================\n\n";
cout<<"--------Menu----------\n";
cout<<" 1.Metode Maximum Sort (Pengurutan secara menaik)\n";
cout<<" 2.Metode Maximum Sort (Pengurutan secara menurun)\n";
cout<<" 3.Metode Minimum Sort (Pengurutan secara menaik)\n";
cout<<" 4.Metode Minimum Sort (Pengurutan secara menurun)\n";
cout<<" 5.Exit\n";
cout<<"----------------------\n";
cout<<"Masukan Pilihan anda : ";cin>>pilihan;
cout<<endl;
switch (pilihan)
{
case 1:
cout<<"Data sebelum di urut\n\n";
for (i=0;i<15;i++)
{
cout<<setw(3)<<data[i]<<" ";
}
cout<<endl;
//Proses Pengurutan
u=15-1;
for(i=0;i<=15-2;i++)
{
maks=0;
for(j=1;j<=u;j++)
{
if(data[j]>data[maks])
maks=j;
}
t=data[u];
data[u]=data[maks];
data[maks]=t;
u--;
cout<<endl;
for(int a=0;a<15;a++)
cout<<setw(3)<<data[a];
}
cout<<"\n\nData setelah di urut : \n\n";
for(i=0;i<15;i++)
cout<<setw(3)<<data[i];
cout<<endl<<endl;
lanjut:
cout<<"Tekan ENTER untuk kembali ke menu";
getch();
goto menu;
case 2:
cout<<"Data sebelum di urut\n\n";
for (i=0;i<15;i++)
{
cout<<setw(3)<<data[i]<<" ";
}
cout<<endl;
//Proses Pengurutan
u=15-1;
for(i=0;i<=15-2;i++)
{
maks=i;
for(j=i+1;j<=u;j++)
{
if(data[j]>data[maks])
maks=j;
}
t=data[i];
data[i]=data[maks];
data[maks]=t;
cout<<endl;
for(int a=0;a<15;a++)
cout<<setw(3)<<data[a];
}
cout<<"\n\nData setelah di urut : \n\n";
for(i=0;i<15;i++)
cout<<setw(3)<<data[i];
cout<<endl<<endl;
goto lanjut;
getch();
goto menu;
case 3:
cout<<"Data sebelum di urut\n\n";
for (i=0;i<15;i++)
{
cout<<setw(3)<<data[i]<<" ";
}
cout<<endl;
//Proses Pengurutan
for(i=0;i<=15-2;i++)
{
min=i;
for(j=i+1;j<15;j++)
{
if(data[j]<data[min])
min=j;
}
t=data[i];
data[i]=data[min];
data[min]=t;
cout<<endl;
for(int a=0;a<15;a++)
cout<<setw(3)<<data[a];
}
cout<<"\n\nData setelah di urut : \n\n";
for(i=0;i<15;i++)
cout<<setw(3)<<data[i];
cout<<endl<<endl;
goto lanjut;
getch();
goto menu;
case 4:
cout<<"Data sebelum di urut\n\n";
for (i=0;i<15;i++)
{
cout<<setw(3)<<data[i]<<" ";
}
cout<<endl;
//Proses Pengurutan
u=15-1;
for(i=0;i<=15-2;i++)
{
min=0;
for(j=1;j<=u;j++)
{
if(data[j]<data[min])
min=j;
}
t=data[u];
data[u]=data[min];
data[min]=t;
cout<<endl;
u--;
for(int a=0;a<15;a++)
cout<<setw(3)<<data[a];
}
cout<<"\n\nData setelah di urut : \n\n";
for(i=0;i<15;i++)
cout<<setw(3)<<data[i];
cout<<endl<<endl;
goto lanjut;
getch();
goto menu;
case 5:
(0);
}
}
Outpunya:
3. TUGAS PENDAHULUAN
a. Jelaskan kekurangan menggunakan metode Maximum/Minimum Sort dengan
metode-metode Sorting lainnya!
Jawab:
Kekurangan menggunakan metode maximum/minimum sort dengan metode-metode sorting
lainnya :
- Membutuhkan method tambahan.
- Sulit untuk digabungkan kembali.
- Perlu dihindari untuk penggunaan data lebih dari 1000 tabel karena akan menyebabkan
kompleksitas yang lebih tinggi dan kurang praktis.
Elemen yang tersisa adalah L[0], tidak perlu diurut hanya satu-satunya, jadi pada setiap
untuk pengurutan terdapat proses pencari harga max dan proses pertukaran dua buah
elemen array.
Pada dasarnya metode maximum dan minimum sort itu sama saja yang membedakan
adalah metode pencariannya, dimana metode maximum mencari nilai yang besar dan
metode minimum hanya mencari nilai yang terkecil saja.
Terima kasih