Anda di halaman 1dari 10

/* pengrutan data secara acending dengan bubble sor */ #include <stdio.

h> main() { int n, bil[20], a, j, temp; printf("Masukkan jumlah bilangan (Maksimum 20) : "); scanf("%d", &n); for(a=0;a<n;a++) { printf("Masukkan bilangan ke %d: ",a+1); scanf("%d", &bil[a]); } for(a=0;a<=n;++a) { for(j=a;j<n;++j) { if(bil[a-1]>bil[j]) { temp=bil[a-1]; bil[a-1]=bil[j]; bil[j]=temp; } } } printf("Urutan ascendingnya adalah : "); for(a=0;a<n;a++) printf("%d ", bil[a]);

} /* nilai tengah(median) */

#include<stdio.h> #define jumlah 100

int bil[jumlah]; int a,n,x,x1,x2; float x3;

main() { printf("Masukkan jumlah bilangan (Maksimal 20): "); scanf("%d",&n); printf("\n"); //isi array for(a=1;a<=n;a++) { printf("Input bil ke %d = ",a); scanf("%d", &bil[a]); } int j,k; int temp; for(j=1;j<=n;++j) {

for(k=j;k<n+1;++k) { if(bil[j-1] > bil[k]) { temp = bil[j-1]; bil[j-1] = bil[k]; bil[k] = temp; } } } for(a=1;a<=n;a++) { printf("\n Input bil ke %d = %d",a,bil[a]); } ("\n\n");

if(n%2!=0) { x=(n+1)/2; printf("Nilai tengah : bil[%d] = %d", x, bil[x]); } if (n%2==0) { x1=n/2;

x2=(n/2)+1; x3=(bil[x1]+bil[x2])/2; printf("Nilai tengah : bil[%d], bil[%d] = %.2f \n",x1,x2,x3); } }

/*Pengurutkan data secara Descending*/ #include <stdio.h> main() { int a, n, bil[20],j,temp; printf("Masukkan jumlah bilangan (maks 20) : "); scanf("%d", &n); for(a=0;a<n;a++) { printf("Masukkan bilangan ke %d: ",a+1); scanf("%d", &bil[a]); } for(a=1;a<=n-1;a++) { for(j=a;j<n;j++) { if(bil[a-1]<bil[j]) { temp=bil[j]; bil[j]=bil[a-1]; bil[a-1]=temp; } }

} printf("Urutan descending nya adalah : "); for(a=0;a<n;a++) printf("%d ", bil[a]); } /* Menghitung deret fibonaci dengan Array 1 Dimensi */ #include <stdio.h> main () { int n,i,bil[15]; printf("Masukkan jumlah bilangan yang ingin ditampilkan (maks 15): "); scanf("%d",&n); printf("Masukkan bilangan 1: "); scanf("%d", &bil[1]); printf("Masukkan bilangan 2: "); scanf("%d", &bil[2]); printf("Output : %d,%d," ,bil[1],bil[2]); for (i=3;i<=n;i++) { bil[i] = bil[i-2] + bil[i-1]; printf("%d,", bil[i]); } } /* Program 5.4.1 (File prog5-4-1.c) Menampilkan deret Pascal Menggunakan Array Lab.Komp-2011 */ #include<stdio.h> main() { int nilai,a,i,j,k; scanf("%i", &nilai);

for (i=0; i<=nilai; i++) { for (k=0; k<=((2*nilai)-(2*i)); k++) { printf(" "); } for (j=0; j<=i; j++) { if (j==0||i==j) { a=1; } else { a=a*(i+1-j)/j; } printf("%7i", a); } printf("\n"); } } /* Program 5.5.1 (File prog5-5-1.c) Fungsi Nilai Maksimum, Minimum, BubbleSort Lab.Komp-2011 */ #include<stdio.h> void minmax (int bil[], int n) { int i,max,min; min=bil[0]; max=bil[0]; for(i=1;i<n;i++) { if(bil[i]<min) min = bil[i]; if(bil[i]>max) max = bil[i]; } printf("Nilai minimal adalah: %d\n", min); printf("Nilai maximal adalah: %d", max); printf("\n"); } void descending(int bil[], int n) { int i, j, temp;

for(i=1;i<=n-1;++i) { for(j=i;j<n;++j) { if(bil[i-1]<bil[j]) { temp=bil[j]; bil[j]=bil[i-1]; bil[i-1]=temp; } } } printf("Urutan descending nya adalah : "); for(i=0;i<n;i++) printf("%d ", bil[i]); printf("\n"); } void ascending(int bil[], int n) { int i, j, temp; for(i=1;i<=n-1;++i) { for(j=i;j<n;++j) { if(bil[i-1]>bil[j]) { temp=bil[i-1]; bil[i-1]=bil[j]; bil[j]=temp; } } } printf("Urutan ascending nya adalah : "); for(i=0;i<n;i++) printf("%d ", bil[i]); printf("\n"); } main() { int i, n, bil[15],min, max; printf("Masukkan jumlah bilangan (max 15): "); scanf("%d",&n); for(i=0;i<n;i++) { printf("Masukkan bilangan ke %d : ",i+1); scanf("%d", &bil[i]); }

minmax(bil, n); ascending(bil, n); descending(bil, n); } tugas tambahan


#include<conio.h> #include<iomanip.h> #define n 8 class quick{ static int data[n]; public: void tukar(int a,int b); void QuickSort(int l, int r); void tampil(); }; main(){ quick x; cout<<endl<<"Data sebelum diurutkan:"<<endl; x.tampil(); x.QuickSort(0,n-1); cout<<endl<<"Data setelah diurutkan:"<<endl; x.tampil(); getch(); } int quick::data[n]={7,4,98,9,2,1,17,20}; void quick::tukar(int a,int b){ int t; t=data[b]; data [b]=data[a]; data[a]=t; } void quick::QuickSort(int l,int r){ int i,j,mid; i=l; j=r; mid=data[(l+r)/2]; do{ while(data[i]<mid)i++; while(data[j]>mid)j--; if(i<=j){ tukar(i,j); i++;j--; } }while(i<j); if(l<j) QuickSort(l,j); if(i<r) QuickSort(i,r); } void quick::tampil(){ for(int j=0;j<n;j++) cout<<endl; cout<<data[j]<<setw(3);

Tampilan Program

Analisa Program Pada program kali ini metode pengurutan dengan menggunakan quick sort. Dimna programnya hampir sama dengan bubble sort. Cuman dengan menggunakan quick sort ini lebih efisien di bandingkan dengan metode bubble sort dan lainnya. 2.Pengurutan data dengan menggunakan insertion sort Listing Program
#include<conio.h> #include<iostream.h> class sisip{ static int A[10]; public: void pengurutan_sisip(); void tampil(); }; int sisip::A[10]={54,23,12,56,78,50,12,89,10,12}; void sisip::pengurutan_sisip() { int i,j,y; bool ketemu; for(i=1;i<=9;i++) { y=A[i]; j=i-1; ketemu=false; while((j>=0)&&(!ketemu)) { if(y<A[j]) { A[j+1]=A[j]; j--; } else ketemu=true; }A[j+1]=y;

} }

void sisip::tampil(){ for(int a=0;a<10;a++) { cout<<A[a]<<" "; } cout<<endl<<endl; } { main() sisip x; cout<<"PENGURUTAN SISIP"<<endl<<endl; cout<<"Sebelum diurut : "<<endl<<"A = "; x.tampil(); x.pengurutan_sisip(); cout<<"Setelah diurut : "<<endl<<"A = "; x.tampil(); getch(); }

Tampilan Program

Anda mungkin juga menyukai