Anda di halaman 1dari 13

LAPORAN AWAL

STRUKTUR DATA
LAPORAN KE-8

Disusun oleh :
Nama : Hendrik Purnama Yuniar
Nim : 191011401792
Kelas : 04Tple025 Reg-C sabtu

TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PAMULANG

Jl. Surya Kencana No. 1 Pamulang Telp (021)7412566, Fax. (021)7412566


Tangerang Selatan-Banten
PERTEMUAN VIII
SORTING
(Lanjut 1)

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;

cout<<" Pengurutan Secara Menaik" <<endl<<endl;


cout<<"++++++++++++++++++++++++++++++++++++++++"
<<endl<<endl;
int Nilai [20];
int i, j, N, I;
int temp, U, lmaks;
cout<<"Masukan Banyaknya Bilangan:";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<":";
cin>>Nilai [i];
}
//Proses Cetak sebelum diurutkan
cout<<"\nData sebelum diurut:";
for(i=0; i<N; i++)
cout<<setw (3)<<Nilai [i];
//Peroses Pengurutan
U=N-1;
for (i=0; i<=N-2; i++)
{
lmaks =0;
for(j=1; j<=U; j++)
{
if(Nilai [j]>Nilai[lmaks])
lmaks=j;
}
temp=Nilai [U];
Nilai[U]=Nilai[lmaks];
Nilai [lmaks]=temp;
U--;
cout<<endl;
for(I=0; I<N; I++)
cout<<setw(3)<<Nilai [1];
}
cout<<"\nData Setelah di urut:";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
getch ();
}

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 Cetak Sebelum diurutkan


cout<<"\nData sebelum diurut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<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:

c) Buatlah program untuk Pengurutan dengan Metode Minimum Sort


"Pengurutan Secara Menaik" (simpan dengan nama lat8_3.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 Menaik" <<endl<<endl;
cout<<"++++++++++++++++++++++++++++++++++++++++" <<endl<<endl;
int Nilai[20];
int i, j, N, l;
int temp, Imin;
cout<<"Masukkan Banyak Bilangan:";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<":";
cin>>Nilai[i];
}

//Proses Cetak Sebelum diurutkan


cout<<"\nData sebelum diurut:";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
//Proses Pengurutan
for(i=0; i<=N-2; i++)
{
Imin = i;
for(j=i+1; j<N; j++)
{
if(Nilai[j]<Nilai[Imin]);
Imin=j;
}
temp=Nilai[i];
Nilai[i]=Nilai[Imin];
Nilai[Imin]=temp;
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:

d) Buatlah program untuk Pengurutan dengan Metode Minimum Sort


"Pengurutan Secara Menurun" (simpan dengan nama lat8_4.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, Imin;
cout<<"Masukkan Banyak Bilangan : ";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<" : ";
cin>>Nilai[i];
}

//Proses Cetak Sebelum diurutkan


cout<<"\nData sebelum diurut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];

//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:

e) Buatlah program menu untuk menampilkan 4 program di atas,


menggunakan perintah IF (simpan dengan nama lat8_5.cpp)
Programnya:
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iomanip>
using namespace std;
main ()
{
menu:
int data[15]={34,12,56,78,6,43,32,20,90,50,55,75,85,95,25};
int i,u,maks,j,t,min;
int pilihan;

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.

b. Jelaskan perbedaan program Sorting dengan menggunakan antara metode


Maximum Sort dan Minimum Sort!
Jawab:
Perbedaannya maximum sort memilih elemen maximum sebagai basis pengurut, sedangkan
minimum sort memilih elemen minimum sebagai basis pengurutan.
Dan saya juga sudah mencoba program yang ada pada modul bagian sorting lanjut a dan b
dimana program maximum sort menggunakan imaks untuk mengurutkan data secara menurun
(dari besar ke kecil).
Sedangkan minimum sort menggunakan imin dan U-- untuk mengurutkan data secara
menurun pada dasarnya programnya sama yang membedakan hanya itu saja menurut saya
pribadi.

c. Jelaskan tahapan-tahapan Sorting menggunakan metode Maximum Sort!


Jawab:
tahapan-tahapan pada maximum sort seperti dibawah ini.
- Cari elemen maximum didalam [0—(N-1)].
Pertukaran elemen max dengan elemen L[N-1].
- Cari elemen maximum didalam L[0--N-2].
Pertukaran elemen max dengan elemen L[N-2].
- Cari elemen maximum didalam L[0--N-3].
Pertukaran elemen maximum dengan elemen L[N-3].

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.

d. Jelaskan tahapan-tahapan Sorting menggunakan metode Minimum Sort!


Jawab:
- Cari elemen minimum didalam [0--(N-1)].
Pertukaran elemen min dengan elemen L[N-1].
- Cari elemen minimum didalam [0--N-2].
Pertukaran elemen min dengan elemen L[N-2].
- Cari elemen minimum didalam [0-(N-3)].
Pertukaran elemen minimum dengan elemen L[N-3].

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

Anda mungkin juga menyukai