Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehDevi Farida Salim Telah diubah "6 tahun yang lalu
1
Pertemuan ke -12 Khoiriya Latifa, M.Kom.
Search, Merge dan Sort Pertemuan ke -12 Khoiriya Latifa, M.Kom.
2
Pertemuan ke 12 Kompetensi Dasar :
Mahasiswa mampu menjelaskan definisi pencarian, penggabungan dan pengurutan data Mahasiswa dapat melakukan dan mengimplementasikan pencarian, penggabungan, pengurutan data dalam bahasa pemrograman.
3
Definisi Searching Pengertian search adalah mencari data dengan cara menelusuri tempat penyimpanan data tersebut. Searching adalah proses mencari atau pencarian
4
Array satu dimensi adalah array yang memiliki 1 index.
Array bertipe integer Isian dari elemen array ke 4 Index Array Array Integer Nama Array 17 9 12 30 2 1 3 4 array bertype integer yang bernama ArrayInteger dan memiliki kapasitas 5 buah bilangan Integer.
5
Mencari ADA atau tidak ADA suatu nilai : scanf(“%d”, &n); flag =0; i=0; while (i<=10) { if(A[i]==N) flag = 1; i++; } If (flag ==1) printf(“ADA”); else printf(“TIDAK ADA”)
6
Perintah Menggunakan For :
scanf(“%d”, &n); flag =0; for(i=0; i<=10; i++) { if(A[i]==n) flag=1 } If (flag ==1) printf(“ADA”); else printf(“TIDAK ADA”)
7
scanf(“%d”, &n); jum =0; i=0; while (i<=10) { if(A[i]==n) jum=jum+1; **************** > untuk menghitung indeks i++ } If (jum>0) printf(“ADA”); else printf(“TIDAK ADA”)
8
scanf(“%d”, &n); flag=0; i=0; While (i<=10 && Flag ==0) { if(A[i]==n) flag =1; i++ } If (flag=1) printf(“ADA”); Else printf(“TIDAK ADA”)
9
Contoh Soal Sebuah array yang mempunyi 10 kapasitas
Contoh Soal Sebuah array yang mempunyi 10 kapasitas. A[10] dan sudah ada isinya. Bagaimana program untuk menginput sebuah nilai baru dan mencocokan apakah ada isi array yang sama dengan input yang baru saja kita masukkan.
10
scanf(“%i”, &n) jum=0; for(i=0; i<=10; i++) { if(A[i]==n) jum=jum+1; } printf(“%i buah”, jum);
11
scanf(“%i, &n); jum=0; i=0; while(i<=10) { if (A[i] ==n) jum=jum+1; i++ } Printf(“%i buah”, jum);
12
Mengetahui lokasi mana saja yang nilai nya sama dengan input data yng kita masukkan :
Contoh program :
13
scanf(“%i”, n); jum=0; for(i=0; i<=10; i++) { if(A[i]==n) printf(“%i”, i); }
14
Mencari nilai maximal dan minimal dalam array max A[0]; // max=0; i=1; // i=0; while(i<=10) { if(A[i]>max) max=A[i]; i++ } printf(“%i”, max);
15
max = A[0]; // max=0 for(i=1; i<10; i++) { If(A[i]>max) max=A[i]; } printf(“%i”, max);
16
i=0; j=0; while(i<=10) { if(A[i]>A[j]) j=1; i++; } printf(“%i”, A[j])
17
max = A[0]; i=1; while(i<=10) { if(A[i]>max) max=A[i] i++
Contoh kasus : program untuk menghitung brp angka terbesar dan brp jumlah angka terbesar tersebut max = A[0]; i=1; while(i<=10) { if(A[i]>max) max=A[i] i++ printf(“%i”, max); jum=0; i=0 { if (A[i]==max) jum++ } printff (“\n%i”, jum);
18
jum =1; max = A[0]; for (i=1; i<=10; i++) { if (A[i]>max) { max = A[i]; jum=1; } else { if(A[i]==max) jum = jum+1; printf(‘\nBil terbesar : %i “, max); printf(“\n ada sebanyak : %i buah”, jum);
19
Merge Merge artinya menggabungkan. Dalam bahasa pemrograman biasanya dimaksudkan untuk menggabungkan dua file. Contoh merge dalam array : Menggabugkan array A[5] dan B[7] menjadi array C. ilustrasi proses adalah sebagai berikut : A = B =
20
Merge 2 buah array K=0 i=0; j=0; While(A[i] != 999 && B[j] !=999) { if(A[i] <= B[j]) {C[k]=A[i] k++ i++ Else { C[k]=B[j]; j++ } While(A[i] !=999) { c[k]=a[i]; i++; While(b[j] !=999) { C[k] = B[j] i++ } C[k]=999;
21
Sort dalam Array Pengertian Sort adalah mengurutkan data yang berada dalam suatu tempat penyimpanan dengan urutan tertentu baik urut dari yang kecil ke besar (Ascending) atau sebaliknya dari besar ke kecil (Descending) Proses pengurutannya disebut sorting. Contoh : array satu dimensi misalnya A[7]={12, 17, 10, 5, 25, 7, 15} jika array diatas dikenakan program sebagai berikut for (I=0; I<=5; I++) { A[I]= A[I+1] }
22
I Isi array awal 1 2 3 4 5 Setelah A[0] = A[1] Setelah A[1] = A[2] Setelah A[2] = A[3] Setelah A[3] = A[4] Setelah A[4] = A[5] Setelah A[5] = A[6] Isi array terakhir ;isi A[6] tidak berubah dan terlihat seperti digesr ke kiri
23
Bubble Sort Sudah ada array satu dimensi yang dibuat dengan int A[n] dimana n = 7 sudah disi dengan ilustrasi sebagai berikut ; A[7]={15, 10, 7, 22, 17, 5, 12} sehingga hasil sorting menjadi {5, 7, 10, 12, 15, 17, 22} Maka algorithma Bubble sort dalam bahasa C adalah sebagai berikut : #define n 7 for (K=0; K<=n-2; K++) { for (I=0; I<=n-2-K; I++) If(A[1] > A[I+1]) X=A[I]; A[I] = A[I+1]; A[I+1]=X; }
24
Keterangan : Define n 7 artinya kita mendefinisikan array dengan kapasitas 7 elemen yang akan mengisi array yang kita buat n = jumlah elemen = 7 Proses loop dilaksanakan sebanyak 6 kali yaitu K : dari 0 –(n-2) Menukar isi A[1] dengan A[I=1] SWAP bila A[1] > A[I+1] Ada dua komponen pokok algortihma sorting yaitu Comapare yang dilakukan dengan if() dan SWAP yaitu pertukaran isi 2 buah elemen Proses tahap per tahap : K=0 - K adalah nomor tahap , untuk tahap -1 , K=0 L=n-2-K; for(i=0; i<=L; i++) { If(A[i] > A[i+1] X=A[i]; A[i]=A[i+1]; A[i+1]=X; } Bila A[0] > A[1] maka tukar isi A[1] dengan A[0], kemudian lanjutkan sampai A[n-2]
25
Bila menggunakan for maka penulisan program bubble sort adalah sebagai berikut :
for (K=0; K<=n-2; K++) { for(i=0; i<=n-1-K ; i++) if (A[i]>A[i+1] X=A[i]; A[i]=A[i+1]; A[i+1]=X; }
26
#include <stdio.h>
#include <string.h> #define n 7 void main () { int A[n] = { 15, 10, 7, 22, 17, 5, 12}; int X, i, K; printf(“Sebelum Sort :\n”); for (i=0; i<=n-1; i++) printf(“%d”, A[I]); printf(“\n”); K=0 While (K<=n-2) i=0; while(i <= n-i-K) If(A[i]>A[i+1]); X=A[i]; A[i]=A[i+1]; A[i+1=X; } i++; K++; Printf(“Sesudah Sort :\n”); For(i=0; i<=n-1; i++) Printf(“%d”, A[i]);
27
#include<stdio.h>
int main(){ int s,temp,i,j,a[20]; printf("Masukkan Jumlah Elemen Yang Akan Di Sorting : "); scanf("%d",&s); printf(" Masukkan %d elements: ",s); for(i=0;i<s;i++) { scanf("%d",&a[i]); printf("Tampilkan Elements sebelum Sorting : %d \n ", a[i]); } //Bubble sorting algorithm for(i=s-2;i>=0;i--){ for(j=0;j<=i;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; printf("Setelah sorting: "); printf(" \n %d",a[i]); return 0;
28
Selection Sort Proses sort dilakukan tahap pertahap . untuk n=7 maka akan dilakukan (n-1)=6 tahap. Konsep proses selection sort adalah mencari (memilih) nilai terkecil dan menukarnya dengan elemen paling awal (paling kiri) pada setiap tahap.
29
Algorithma dari selection sort adalah sebagai berikut :
#define n 7 K=0; While (K <=n-2) { J=K; i=K+1; while (i<=n-1) If(A[i] < A[J]) J=i; i++; } X=A[J]; A[J]=A[K]; A[K]=X; K++;
30
J selalu menunjuk elemen yang berisi nilai kecil dalam bagian array yang diperiksa (dari 1 sampai 6)
Nilai terkecil yang ditunjuk oleh J ditukar dengan isi elemen yang sedang ditunjuk oleh K. Dengan demikian A[K] akan berisi nilai terkecil
31
#include<stdio.h>
int main(){ int s,i,j,temp,a[20]; printf("Enter total elements: "); scanf("%d",&s); printf("Enter %d elements: ",s); for(i=0;i<s;i++) scanf("%d",&a[i]); for(i=0;i<s;i++){ for(j=i+1;j<s;j++){ if(a[i]>a[j]){ temp=a[i]; a[i]=a[j]; a[j]=temp; } printf("After sorting is: "); printf(" %d",a[i]); return 0;
32
Insertion Sort Konsep dari Insertion Sort adalah :
Dimulai dari A[1] : simpan nilai A[1] ke variabel X. TAHAP : geser (move) masing-masing satu langkah ke kanan semua nilai yang ada disebelah kiri A[1] satu persatu apabila nilai tersebut lebih besar dari X. Setelah itu insert – kan (sisipkan) X di bekas tempat nilai yang terakhir di geser. Instruksi unuk menggeser satu langkah ke kanan adalah : A[i]=A[i-1]; Dengan resiko isi A[i] sebelumnya hilang. Tetapi sudah disimpan dalam variabel X. Lanjutkan ke A[2] : simpan nilai A[2] ke variabel X geser (move) masing-masing satu langkah ke kanan semua nilai yang ada disebelah kiri A[2] satu persatu apabilai nilai tersebut lebih besar dari X. Setelah itu insert kan (sisipkan) X di bekas tempat nilai yang terakhir digeser
33
Algorithma insertion Sort mengunakan while adalah sebagai berikut :
#define n 7 K=1; While (K <=n-1) { i=K; X=A[i]; While(I >=1 && A[i-1] >X) A[i] = A[i-1]; i--; } A[i]=X; K++;
34
#include<stdio.h>
int main(){ int i,j,s,temp,a[20]; printf("Enter total elements: "); scanf("%d",&s); printf("Enter %d elements: ",s); for(i=0;i<s;i++) scanf("%d",&a[i]); for(i=1;i<s;i++){ temp=a[i]; j=i-1; while((temp<a[j])&&(j>=0)){ a[j+1]=a[j]; j=j-1; } a[j+1]=temp; printf("After sorting: "); printf(" %d",a[i]); return 0;
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.