SORTING (PENGURUTAN)
Oleh :
S1 PTI’17 OFF A
#include <conio.h>
#include <windows.h>
#include <iostream.h>
int n;
int temp;
temp = data[b];
data[b] = data[a];
data[a] = temp;
cout<<"\n";
void bubble_sort () {
tukar(j,j-1);
void exchange_sort () {
tukar(i,j);
void selection_sort () {
int pos, i, j;
pos = i;
pos = j;
void insertion_sort () {
int temp, i, j;
temp = data[i];
j = i-1;
data[j+1] = data[j];
j--;
data[j+1] = temp;
void Input () {
cin>>n;
cin>>data[i];
data2[i] = data[i];
}
void AcakLagi () {
data[i] = data2[i];
void Tampil () {
cout<<" "<<data[i];
cout<<"\n";
int main() {
system("cls");
int pil;
do {
system("cls");
cout<<"6. Acak"<<endl;
cout<<"7. Exit"<<endl;
cin>>pil;
switch(pil) {
getch();
while (pil!=7);
Output Program :
Analisis :
Pada program di atas Merupakan kombinasi antara sorting dan searching, gabungan
antara input data, bubble sort, selection sort, exchange sort, Pada program di atas
menggunakan header file #include <windows.h>. kemudian program tersebut, Pada
penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang. Dan begantian
sesuai yang dimasukkan pada inputan ( void tukar (int a, int b) { int
temp; ) dan dari bubble sort (void bubble_sort () {) tetapi menggunakan for
((int i=1; i<n; i++)), kemudian menggunakan selection sort menggunakan
(int pos, i, j;) dan exchange sort menggunakan for (int pos, i, j;).
ulangi terus secara rekursif terhadap kedua pruh struktur tersebut.
A. LATIHAN PRAKTIKUM
1. Latiihan 1
a. Nama Program : Program Sorting Data dengan Metode buble sort.
/*Bubble Sorting*/
#include <iostream.h>
#include <iomanip.h>
b. Output Program
c. Analisis
Program diatas mengurutkan data yang sudah ada dengan menggunakan
bubble sort. int NumList[10]={12,29,56,4,31,9,17,19,48,3}; bubble
sort membandingkan dua elemen berdekatan yang dilakukan dari belakang,
tergantung perintahnya. yang diminta asscending atau desscending.
cout<<"Data Angka Sebelum diurutkan : \n"; . maka membandingkan
mana angka yang lebih kecil atau lebih besar sesusai urutan tata letaknya . jika
lebih besar atau lebih kecil (tata urutannya salah) maka lakukan
pertukaran(swap). jika tidak lanjutkan ke proses traversal lainnya sampai
urutannya benar. Penggunaan iostream dalam kode blocks tidak menggunakan
“.h” dan ditambah dengan using namespace std. algoritma program diatas
singkatnya adalah terdapat 10 data maka akan terjadi 9 langkah. Langkah
pertama adalah menentukan 12 dan 29 apakah sudah benar posisinya, karena
ascending maka A[i]>A[i+1] geser kanan. Maka 12 dan 29 berpindah logikanya
12>29 tidak ada 12<29. Kemudian seterusnya sampai 9 kali tahap hingga
menghasilkan output terurut secara urut dari utrutan terkecil menuju urutan
terbesar.
2. Latihan 2
a. Nama Progam : Program sorting data dengan selection sort.
/*Selection Sorting*/
#include <iostream.h>
#include <iomanip.h>
using namespace std;
c. Analisis :
//some input
for(i=0;i<length;i++)
{
cout<<"enter a number : ";
cin>>array[i];
}
//algorithm
d=length;
flag=1;
flag=1;
while (flag||(d>1))
{
flag=0;
d=(d+1)/2;
for (i=0;i<(length-d);i++)
{
if (array[i+d]>array[i])
{
tmp=array[i+d];
array[i+d]=array[i];
array[i]=tmp;
flag=1;
}
}
}
for(i=0;i<5;i++)
{
cout<<array[i]<<endl;
}
}
b. Output Program :
c. Analisis :
Program di atas digunakan untuk menampilkan kalimat. Pada program di atas
menggunakan header file #include <iostream.h> yang berfungsi untuk
memanggil fungsi dari cin dan cout Program diatas menggunakan metode sheel
short yang sistematika membandingkan elemen pertama dengan elemen lain
yang berada dalam jarak yang sama namun yang lingkupnya paling jauh.
Algroitma program diatas adalah karena sistematikanya membandingkan
antar elemen yang letaknya berjauhan sampai terdekat maka seperti ini
ilustrasinya : angka yang diinputkan tergantung pengguna. Memanggilan
Array (array[i+d]=array[i];)Misalnya ingin menginputkan 4 data maka
aka nada 4 data , misalnya 6 9 7 4 maka sistematika kerjanya adlaah 6 akan
dibandingkan dengan 4 , 7, 9 dari jarak terjauh-terdekat. Kemudian tentukan
jika ascending atau descending pernyataan bilangannya seperti apa contoh
6<4 dan lain sebagainya.
4. Latihan 4
a. Nama Program : Program Quick Sort
/*Quick Sort*/
#include<iostream>
#include<iomanip>
#include <conio.h>
using namespace std;
int main()
{
int NumList[10]={12,29,56,4,31,9,17,19,48,3};
int temp;
cout<<"Data Sebelum Diurutkan: \n";
for(int d=0; d<10; d++)
{
cout<<setw(3)<<NumList[d];
}
cout<<"\n\n";
quickSort (NumList,10);
cout<<"Data Setelah Diurutkan: \n";
for (int iii=0; iii<10; iii++)
cout<<setw(3)<<NumList[iii]<<endl<<endl;
}
5. Latihan 5
a. Nama Program : Program Radix Sort
/*Radix Sort*/
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
index[0]=0;
for(int i=1; i<256; i++)index[i]=index[i-1]+count[i-1];
for(int i=0; i<N; i++) dest
[index[((source[i])>>(byte*8))&0xff]++]=
source[i];
}
int main(void)
{
make_random(data, 100);
radixsort(data, temp, 100);
for(int i=0; i<100; i++) cout<<data[i]<<'\n';
}
b. Output Program :
c. Analisis :
Program di atas digunakan untuk menampilkan kalimat. Pada program di atas
menggunakan header file #include <iostream.h> yang berfungsi untuk
memanggil fungsi dari cin dan cout Program diatas meggunakan metode radix sort
yang sistematikanya adalah mengkategorikan data-data menjadi sub kumpulan
data sesuai dengan nilai radix-nya, mengkonkatenasinya, kemudian
mengkategorikannya kembali berdasar nilai radix lainnya. (void radixsort
(long *source, long *temp, long N)) dan (radixsort(data, temp,
100);)
B. TUGAS RUMAH
a. Nama Program : Program Sorting untuk abjad
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
main()
{
int angka[20],a,b,c;
char huruf[20],kedua[20][20],pilihan;
cout<<"==============================\n";
cout<<"\t PROGRAM SORTING \n";
cout<<"==============================\n\n";
cout<<"Masukan jumlah maksimal: ";cin>>a;
for(b=0;b<a;b++)
{
cout<<"Masukan huruf ke "<<b+1<<" : ";cin>>huruf[b];
cout<<"Masukan angka ke "<<b+1<<" : ";cin>>angka[b];
cout<<"\n";
}
system("cls");
cout<<"\n tampilkan sebelum sorting: \n";
for(b=0;b<a;b++)
{
cout<<huruf[b]<<" ";
}
cout<<"\n";
for(b=0;b<a;b++)
{
cout<<angka[b]<<" ";
}
for(b=0;b<a-1;b++){
for(c=0;c<a-1-b;c++){
if(huruf[c]<huruf[c+1])
{
int tmp,tmp1;
tmp=huruf[c];
tmp1=angka[c];
huruf[c]=huruf[c+1];
huruf[c+1]=tmp;
angka[c]=angka[c+1];
angka[c+1]=tmp1;
}
}
}
cout<<"\n\nsetelah di sorting berdasarkan huruf\n";
cout<<"\n";
for(b=0;b<a;b++){
cout<<huruf[b]<<" ";
}
cout<<"\n";
for(b=0;b<a;b++){
cout<<angka[b]<<" ";
}
}
b. Output Program :
c. Analisis :
Untuk program diatas yang menggunakan jenis descending menggunakan fungsi
typdef struct untuk peletakan tipe data char dan int yang dijadikan dalam satu
fungsi. Menggunakan array data untuk syarat metode sorting yang digunakan.
Menggunakan fungsi min. menggunakan perulangan for untuk fungsi sorting.
(cout<<"\n tampilkan sebelum sorting: \n";) dan (for(b=0;b<a;b++))
Menggunakan fungsi temp untuk penyimpanan sementara.( int
tmp,tmp1;tmp=huruf[c];tmp1=angka[c];) Menggunakan perulang for untuk
proses temp. menggunakan perulangan for untuk proses hasil sorting.
C. KESIMPULAN