Pertemuan ke -12 Khoiriya Latifa, M.Kom.

Slides:



Advertisements
Presentasi serupa
- PERTEMUAN 11 - SORTING (PENGURUTAN)
Advertisements

STRUKTUR DATA (3) sorting array
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
STRUKTUR DATA (3) sorting array
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
ARRAY Dr. Lily Wulandari.
SORTING.
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
BAB 6 S O R T I R Sebelum mengetahui lebih jauh tentang sorting, sebaiknya kita ingat kembali pengertian file dan record. File adalah kumpulan record,
STRUKTUR DATA (4) Sorting dan Searching Array
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Sorting (Pengurutan).
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Metode Pengurutan (Sorting)
Matakuliah : T0016 / Algoritma dan Pemrograman Tahun : 2007 Versi : 6
Universitas Budi Luhur
PEMROGRAMAN DASAR.
Fondasi Pemrograman & Struktur Data
KUG1A3 Algoritma& Pemrograman
LANJUTAN DARI SHORTING
Bab & 7.3 NESTED LOOP Array 1 Dimensi 273.
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
SORTING (Lanjut).
Algoritme dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Algoritme dan Pemrograman
06.3 Hari-6.
Struktur Data Khoiriya Latifa, M.Kom.
Sorting.
ARRAY (LARIK).
PEMROGRAMAN DASAR (BAHASA C)
STRUKTUR DATA (3) sorting array
09.5 Hari-9.
09.4 Hari-9.
Algoritme dan Pemrograman
ALGORITMA & STRUKTUR DATA I
STRUKTUR DATA sorting array
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
Struktur Data Khoiriya Latifa, M.Kom.
10.5 Nested loop 6.3 & 7.3 NESTED LOOP 255.
291.
Review Array Sri Nurhayati, MT.
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Linked List 6.3 & 7.3 NESTED LOOP.
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
09.3 Hari-9.
Sorting.
mencetak Total kedua bilangan tersebut
STRUKTUR DATA (3) sorting array
Algoritma & Pemrograman II STT Wastukancana Purwakarta
SORTING ARRAY SESI 2.
INSERTION SORT Diketahui array satu dimensi yang telah dibuat dengan int A[n] dimana n=7, elemennya sudah terisi sebagai berikut: A[ ]
ALGORITMA PENGURUTAN (SORTING)
Review Array Sri Nurhayati, MT.
Algoritme dan Pemrograman
Bab 08 Menghitung Total Data yang Diinput Dari Keyboard
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
Struktur Data Oleh: Suhendro
Pengurutan (sorting).
IT234 Algoritma dan Struktur Data
MODEL SORTING Kelompok V Rahmawati ( )
Sorting.
SEARCHING Universitas Dian Nuswantoro Semarang 12/7/2018.
SORTING.
Transcript presentasi:

Pertemuan ke -12 Khoiriya Latifa, M.Kom. Search, Merge dan Sort Pertemuan ke -12 Khoiriya Latifa, M.Kom.

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.

Definisi Searching Pengertian search adalah mencari data dengan cara menelusuri tempat penyimpanan data tersebut. Searching adalah proses mencari atau pencarian

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.

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”)

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”)

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”)

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”)

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.

scanf(“%i”, &n) jum=0; for(i=0; i<=10; i++) { if(A[i]==n) jum=jum+1; } printf(“%i buah”, jum);

scanf(“%i, &n); jum=0; i=0; while(i<=10) { if (A[i] ==n) jum=jum+1; i++ } Printf(“%i buah”, jum);

Mengetahui lokasi mana saja yang nilai nya sama dengan input data yng kita masukkan : Contoh program :

scanf(“%i”, n); jum=0; for(i=0; i<=10; i++) { if(A[i]==n) printf(“%i”, i); }

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);

max = A[0]; // max=0 for(i=1; i<10; i++) { If(A[i]>max) max=A[i]; } printf(“%i”, max);

i=0; j=0; while(i<=10) { if(A[i]>A[j]) j=1; i++; } printf(“%i”, A[j])

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);

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);

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 = 1 2 3 4 B = 11 12 13 14 15 16 17

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;

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] }

I 12 17 10 5 25 7 15 Isi array awal 1 2 3 4 5 17 17 10 5 25 7 15 17 10 10 5 25 7 15 17 10 5 5 25 7 15 17 10 5 25 25 7 15 17 10 5 25 7 7 15 17 10 5 25 7 15 15 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

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; }

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]

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; }

#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]);

#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;

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.

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++;

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

#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;

Insertion Sort Konsep dari Insertion Sort adalah : Dimulai dari A[1] : simpan nilai A[1] ke variabel X. TAHAP -1 : 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

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++;

#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;