Anda di halaman 1dari 10

MODUL

PRATIKUM
PERTEMUAN 11
SORTIR di BAHASA C

STRUKTUR DATA DAN ALGORITMA

PENYUSUN
Tim Dosen Struktur Data dan Algoritma
UPN VETERAN JAKARTA

UPN Veteran Jakarta


PRAKTIKUM 11
SORTIR
11.1 TUJUAN PRAKTIKUM
Tujuan Umum
Mahasiswa dapat memahami:
1. Konsep Sortir
2. Mengimplementasikan metode sortir dalam sebuah program.
Tujuan Khusus
Mahasiswa dapat :
1. Menuliskan program Bahasa C/C++ untuk merepresentasikan konsep sortir
2. Menyelesaikan permasalahan tertentu dengan program Bahasa C/C++ yang
memanfaatkan metode sortir
11.2 TEORI SINGKAT
Silahkan pelajari Modul/materi mengenai Sortir di elearning.

11.3 PELAKSANAAN PRAKTIKUM


Latihan 1
1 #include
2 <stdio.h>
3 int main()
4
{
5
int A[11] = {12,15,7,10,5,2,17,25,9,20,14};
6
7 int M, X, N;
8
9 printf("Sebelum pengurutan");
10 for (M=0; M<11; M++) {
11 printf("%4i", A[M]);
12 }
13 //lakukan pengurutan isi array
14
15
for(N=0; N<9; N++) {
16
for(M=0; M<10-N; M++) {
17
18 if(A[M] > A[M+1]) {

UPN Veteran Jakarta


19 //tukar A[M] dengan A[M+1]
20
X = A[M];
21
A[M] = A[M+1];
22
A[M+1] = X;
23
}
24
25 }
26 }
27 //akhir pengurutan
28 printf("\n\nSetelah pengurutan");
29 for (M=0; M<11; M++) {
30
printf("%4i", A[M]);
31
}
32
33
return 0;
34
}
35

Latihan 2
1 #include
2 <stdio.h>
3
int main()
4
{
5
6 int A[11] =

7 {12,15,7,10,5,2,17,25,9,20,14};
8 int M, X;
9
10 printf("Sebelum
11 pengurutan");
12 for (M=0; M<11; M++) {
13 printf("%4i",
14 A[M]);
15
}
16
17 //lakukan pengurutan
18 isi array
19 for(M=0; M<10; M++) {
20 if (A[M] >
21 A[M+1]) {
22 //lakukan
23 penukaran elemen
24 X
25 = A[M];

UPN Veteran Jakarta


26 A[M] =
27 A[M+1];
28 A[M+1] =
29
X;
30
}
31
32 }
33 //akhir pengurutan
34 printf("\n\nSetelah
35 pengurutan");
36 for (M=0; M<11; M++) {
37 printf("%4i",
38 A[M]);
39
}
40
41
return 0;
42
43 }
44
45

Latihan 3 ; Bubble Sort


1 #include
2
<stdio.h>
3
int main()
4
{
5
int A[11] =
6
7 {12,15,7,10,5,2,17,25,9,20,14};
8 int M, X, N, k=0;
9
10 printf("Sebelum
11 pengurutan");
12
for (M=0; M<11; M++) {
13
printf("%4i",
14
A[M]);
15
}
16
//lakukan pengurutan
17
18 isi array
19 for(N=0; N<11; N++) {
20 for(M=0; M<10-N;
21 M++) {
22
UPN Veteran Jakarta
23 if(A[M] >
24 A[M+1]) {
25
26 //tukar A[M] dengan
27
A[M+1]
28
X
29
30 = A[M];
31
32 A[M] = A[M+1];
33
34 A[M+1] = X;
35 }
36 k++;
37
}
38
}
39
40 printf("\nJumlah

41 perulangan: %i", k);


42 //akhir pengurutan
43 printf("\n\nSetelah
44 pengurutan");
45 for (M=0; M<11; M++) {
printf("%4i",
A[M]);
}

return 0;
}

Latihan 4 . Sort Merge


1 #include
2 "stdio.h"
3 int A[10];
4
void merge(int,int,int);
5
void merge_sort(int low,int
6
7 high)
8 {
9 int mid;
10 if(low<high) {
11 mid=(low+high)/2;
12
13

UPN Veteran Jakarta


14
15 merge_sort(low,mid);
16
17
merge_sort(mid+1,high);
18
19
merge(low,mid,high);
20
21 }
22 }
23 void merge(int low,int mid,int
24 high)
25 {
26 int h,i,j,b[10],k;
27 h=low;
28
i=low;
29
j=mid+1;
30
31
32 while((h<=mid)&&(j<=high)
33 ) {
34 if(A[h]<=A[j]) {
35 b[i]=A[h];
36 h++;
37 } else {
38 b[i]=A[j];
39
j++;
40
}
41
42 i++;
43 }
44 if(h>mid) {
45
for(k=j;k<=high;k++) {
b[i]=A[k];
i++;
}
} else {

for(k=h;k<=mid;k++) {
b[i]=A[k];
i++;
}
}
for(k=low;k<=high;k++)
A[k]=b[k];
}

UPN Veteran Jakarta


int main()
{
int num = 10,i, M;
printf("MERGE SORT\n");
//input
printf("Input 10
bilangan:\n");
for (M=0; M<10; M++) {
scanf("%i",
&A[M]);
}

printf("Sebelum
pengurutan");
for (M=0; M<10; M++) {
printf("%4i",
A[M]);
}

merge_sort(0,num-1);

printf("\n\nSetelah
pengurutan");
for (M=0; M<10; M++) {
printf("%4i",
A[M]);
}
return 0;
}

Latihan 6 : Sort Quick


1 #include
2 <iostream.h>

UPN Veteran Jakarta


3 #include <conio.h>
4
5 void tampilkan_larik(int
6
data[], int n)
7
{
8
9 int i;
10 for (i=1;i<=n;i++)
11 cout<<data[i]<<" ";
12 cout<<"\n";
13 }
14
15 int partisi (int data[],
16
int awal, int akhir)
17
{
18
int x,i,j,simpan;
19
20
21 //x=data[awal];
22 i=awal;
23 j=akhir;
24
25 while(1)
26
{
27
28
while(data[i]<data[awal])
29
30 i=i+1;
31
32
33 while(data[j]>data[awal])
34 j=j-1;
35
36 if (i<j)
37
{
38
//tukarkan data
39
simpan=data[i];
40
41 data[i]=data[j];
42 data[j]=simpan;
43 }
44 else
45 return j;
}
}

UPN Veteran Jakarta


void quick_sort(int data[],
int awal, int akhir)
{
int q;
if(awal<akhir)
{

q=partisi(data,awal,akhir);
quick_sort(data,awal,q);
quick_sort(data,
q+1,akhir);
}
}

int main()
{
int i,j,n,data[100];

cout<<"masukkan banyak
data= ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"data ke-"<<i<<"
= ";cin>>data[i];
}

cout<<"Data sebelum
diurut: "<<endl;
for(j=1;j<=n;j++)
{
cout<<data[j]<<" ";
}
quick_sort(data,1,n);

//hasil pengurutan
cout<<endl;
cout<<endl;
cout<<"hasil
pengurutan:\n";
tampilkan_larik(data,n);
getch();
}

UPN Veteran Jakarta


~SELAMAT MENGERJAKAN~

UPN Veteran Jakarta

Anda mungkin juga menyukai