LANJUTAN DARI SHORTING

Slides:



Advertisements
Presentasi serupa
Algoritma Sorting Alpro-2.
Advertisements

STRUKTUR DATA (3) sorting array
Sorting (Pengurutan).
Sorting.
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
PENGURUTAN ( SORTING ) Fajrizal.
STRUKTUR DATA sorting array
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
PENGURUTAN (SORTING).
Dasar Pemrograman MODUL 07 PERULANGAN.
SORTING (PENGURUTAN).
SORT (pengurutan) M. Ajir Muzakki, S.Si.
STRUKTUR DATA (3) sorting array
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Pertemuan – 14 Sorting (Bab 8) Informatics Engineering Department
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,
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
STRUKTUR DATA (4) Sorting dan Searching Array
Algoritma Sorting Tenia Wahyuningrum.
Sorting (Pengurutan).
Sorting 2007/2008 – Ganjil – Minggu 5.
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
Metode Pengurutan (Sorting)
PENGURUTAN (SORTING).
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Bubble Sort Metode pengurutan gelembung diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan.
Sorting Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara.
Pertemuan 10 SORTING.
Algoritma dan Pemrograman Sorting
KUG1A3 Algoritma& Pemrograman
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
PENGURUTAN (SORTING).
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
STRUKTUR DATA (3) sorting array
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
STRUKTUR DATA sorting array
Algoritma dan Pemrograman Sorting
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
Algoritma dan Pemrograman Sorting
Sorting.
Sorting (Pengurutan).
Pengurutan (Shorting)
STRUKTUR DATA (3) sorting array
Algoritma & Pemrograman II STT Wastukancana Purwakarta
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
Algoritma Divide and Conquer
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
SORTING (PENGURUTAN).
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
Struktur Data Oleh: Suhendro
IT234 Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
Pengurutan (sorting).
IT234 Algoritma dan Struktur Data
SORTING Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data.
MODEL SORTING Kelompok V Rahmawati ( )
Sorting.
Sorting (Pengurutan).
SORTING.
FONDASI PEMROGRAMAN & STRUKTUR DATA #9
Transcript presentasi:

LANJUTAN DARI SHORTING YUNI SAFRIANA (1405020047) ALFAN KHAIRA (1405020048) RIZKI FITRIA (1405020046) CUT LISA SANDORA (14050200)

PENGERTIAN SORTING Sorting merupakan suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting: urut naik (ascending) Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar urut turun (descending) Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.

Merge sort merupakan algoritma pengurutan dalam ilmu komputer yang dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data yang tidak memungkinkan untuk ditampung dalam memori komputer karena jumlahnya yang terlalu besar. Algoritma ini ditemukan oleh John von Neumann pada tahun 1945. (id.wikipedia.org) Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara divide and conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian kemudian menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian dimana bagian pertama merupakan setengah (jika data genap) atau setengah minus satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali untuk masing-masing blok sampai hanya terdiri dari satu data tiap blok.

Setelah itu digabungkan kembali dengan membandingkan pada blok yang sama apakah data pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-tengah+1 dipindah sebagai data pertama, kemudian data ke-pertama sampai ke-tengah digeser menjadi data ke-dua sampai ke-tengah+1, demikian seterusnya sampai menjadi satu blok utuh seperti awalnya. Sehingga metode merge sort merupakan metode yang membutuhkan fungsi rekursi untuk penyelesaiannya

contoh penerapan atas sebuah larik/array sebagai data sumber yang akan diurutkan {3, 9, 4, 1, 5, 2} adalah sebagai berikut:     pertama kali larik tersebut dibagi menjadi dua bagian, {3, 9, 4} dan {1, 5, 2}     Kedua larik kemudian diurutkan secara terpisah sehingga menjadi {3, 4, 9} dan {1, 2, 5}     Sebuah larik baru dibentuk yang sebagai penggabungan dari kedua larik tersebut {1}, sementara nilai-nilai dalam masing larik {3, 4, 9} dan {2, 5} (nilai 1 dalam elemen larik ke dua telah dipindahkan ke larik baru  langkah berikutnya adalah penggabungan dari masing-masing larik ke dalam larik baru yang dibuat sebelumnya.     {1, 2} <-> {3, 4, 9} dan {5}     {1, 2, 3} <-> {4, 9} dan {5}     {1, 2, 3, 4} <-> {9} dan {5}     {1, 2, 3, 4, 5} <-> {9} dan {null}     {1, 2, 3, 4, 5, 9} <-> {null} dan {null} )

Contoh program sedehana merge sort public class mergeSort{     public static void main(String a[]){     int i;     int array[] = {7,5,1,3,6,4,9,8};     System.out.println("\n\n Kelompok 3\n\n");     System.out.println(" Pengurutan dengan Merge Sort\n\n");     System.out.println("Data Sebelum Diurutkan:\n");     for(i = 0; i < array.length; i++)         System.out.print( array[i]+"  ");     System.out.println();     mergeSort_srt(array,0, array.length-1);     System.out.print("Data Setelah Diurutkan:\n");     for(i = 0; i <array.length; i++)         System.out.print(array[i]+"  ");     System.out.println();  }     public static void mergeSort_srt(int array[],int lo, int n){     int low = lo;

 ;     int high = n;     if (low >= high)      {return; }     int middle = (low + high) / 2;     mergeSort_srt(array, low, middle);     mergeSort_srt(array, middle + 1, high);     int end_low = middle;     int start_high = middle + 1;     while ((lo <= end_low) && (start_high <= high))      {         if (array[low] < array[start_high]) {             low++; }          else {             int Temp = array[start_high];             for (int k = start_high- 1; k >= low; k--)                   {array[k+1] = array[k]; }                 array[low] = Temp;                 low++;                 end_low++;                 start_high++;  }         }     }  

- Selection Sort Teknik sorting ini dibuat dengan cara melakukan pengecek'an 1 persatu, bila kita akan mengurutkan secara ascending maka kita lakukan pengecek'an nilai tempat yang pertama (index pertama pada array)kita bandingkan dengan semua nilai yang ada kita cari nilai minimalnya. lalu simpan index/ letak nilai minimum itu di temukan, setelah pengecekan selesai tukar index awal pengecekan dengan nilai minimum yang telah di simpan tadi. Proses ini dilakukan terus menerus sampai pada pengecekan index terakhir min 1 dengan index terakhir. beda dengan streith selection sort adalah dengan teknik ini melakukan pertukaran nilai lebih sedikit, hanya jumlah data - 1 pertukaran. jadi waktu untuk melakukan proses sorting lebih cepat.

Contoh Selection Sort : Ascending  Cek seluruh elemen array, temukan nilai terkecil (1) dan tukarkan posisinya dengan posisi nilai yang tersimpan pada posisi pertama dari array (3)

Temukan nilai kedua (2), dan tukarkan posisinya dengan nilai yang berada paterkecil da posisi kedua (10). Dua elemen biru pertama tidak akan berubah lagi sebab mereka sudah merupakan nilai terkecil pertama dan kedua dalam array tsb. Sekarang, ulangi dengan cara/proses “pilih dan tukar” 

Pengurutan Selesai.

Contoh Program Selection Sort menggunakan bahasa pemrograman C++ berikut kode programnya : #include <iostream> #include <conio.h> int main(void) { int array[5]; // An array of integers. int length = 5; // Lenght of the array. int i, j; int firstelement, temp; //Some input for (i = 0; i < length; i++) { cout << "Enter a number: "; cin >> array[i]; }

//Algorithm for (i= length - 1; i > 0; i--)  { firstelement = 0; for (j=1; j<=i; j++) { if (array[j] < array[firstelement]) firstelement = j; } temp = array[firstelement]; array[firstelement] = array[i]; array[i] = temp; } //Some output for (i = 0; i < 5; i++) { cout << array[i] << endl; } getch(); }

Program Setelah dieksekusi

Shell Sort Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959. Dalam metode ini jarak antara dua elemen  yang dibandingkan dan ditukarkan tertentu. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dan kita bandingkan dengan elemen pada jarak tertentu dari elemen pertama tersebut. Kemudain elemen kedua kita bandingkan dengan eleen lain dengan jarak yang sama seperti jarak yang sama seperti diatas. Demikian seterusnya sampai seluruh elemen dibandingkan. Pada langkah kedua proses diulang dengan langkah yang lebih kecil, pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses dihentikan jika jarak sudah sama dengan satu.

Contoh dari proses Sorting dengan menggunakan metode Shell Sort :

Dalam Procedure Pascal : Procedure Shell(Var Temp : Data; JmlData : Integer);  Var I,J, Jarak : Integer;          Begin               Jarak := JmlData Div 2;                While Jarak > 0 Do                      Begin                          For I:=1 To JmlData-Jarak Do                               Begin                                   J := I + Jarak;                                   If Temp[I] > Temp[J] Then                                    SWAP(Temp[I], Temp[Lok]);                               End;                               Jarak := Jarak Div 2;                      End;            End;

Penerapan teknik sort ke dalam program SELECTION SORT   Algoritma Selection sort memilih elemen maksimum/minimum array, lalu menempatkan elemen maksimum/minimum itu pada awal atau akhir array (tergantung pada urutannya ascending/descending). Selanjutnya elemen tersebut tidak disertakan pada proses selanjutnya. Karena setiap kali selection sort harus membandingkan elemen-elemen data, algoritma ini termasuk dalam comparison-based sorting. Seperti pada algoritma Bubble Sort, proses memilih nilai maksimum /minimum dilakukan pada setiap pass. Jika array berukuran N, maka jumlah pass adalah N-1.

Terdapat dua pendekatan dalam metode pengurutan dengan Selection Sort : Algoritma pengurutan maksimum (maximum selection sort), yaitu memilih elemen maksimum sebagai basis pengurutan. Algoritma pengurutan minimum (minimum selection sort), yaitu memilih elemen minimum sebagai basis pengurutan

Maximum Selection Sort Ascending Untuk mendapatkan array yang terurut menaik (ascending), algoritma maximum selection sort dapat ditulis sebagai berikut : Jumlah Pass = N-1 (jumlah pass) Untuk setiap pass ke – I = 0,1,….., jumlah pass lakukan : Ÿ  cari elemen maksimum (maks) mulai dari elemen ke – I sampai elemen ke – (N-1) Ÿ  pertukarkan maks dengan elemen ke – I Ÿ  kurangi N dengan satu

Rincian setiap pass adalah sebagai berikut : Langkah 1     :     Cari elemen maksimum di dalam L[0..(N-1)] Pertukarkan elemen maksimum dengan elemen L[N-1] Langkah 2     :     Cari elemen maksimum di dalam L[0..N-2] Pertukarkan elemen maksimum dengan elemen  L[N-2] Langkah 3     :     Cari elemen maksimum di dalam L[0..N-3] Pertukarkan elemen maksimum dengan elemen   L[N-3] ………….. Langkah N-1      :     Tentukan elemen maksimum di dalam L[0..1] Pertukarkan elemen maksimum dengan elemen L[0] (elemen yang tersisa adalah L[0], tidak perlu diurut karena hanya satu-satunya). Jadi , pada setiap pass pengurutan terdapat proses mencari harga maksimum dan  proses pertukaran dua buah elemen array.

Misal, terdapat array L dengan N = 5 buah elemen yang belum terurut Misal, terdapat array L dengan N = 5 buah elemen yang belum terurut. Array akan diurutkan secaraAscending (menaik), dengan algoritma maximum selection sort. 9 7 12 6 1 2 3 4 Pass 1 : Ÿ  Cari elemen maksimum di dalam array L[0..4]. Maks=L[2]=12 Ÿ  Tukar Maks dengan L[4], diperoleh            : 9 7 1 6 12 2 3 4

Ada 5 metode dalam teknik sorting, diantaranya adalah : 1 Ada 5 metode dalam teknik sorting, diantaranya adalah : 1. Comparison-Based Sorting (pengurutan berdasarkan perbandingan) # Bubble sort, exchange sort 2. Priority Queue Sorting Method (pengurutan berdasarkan prioritas) # Selection sort, heap sort 3. Insert and Keep Sorted Method (pengurutan berdasarkan penyisipan dan penjagaan terurut) # Insertion sort, tree sort 4. Devide and Conquer Method(pengurutan berdasarkan pembagian dan penguasaan) # Quick sort, merge sort 5. Diminishing Increment Sort Method (pengurutan berkurang menurun) # Shell sort

Soal: Jelaskan yang di maksud dengan shell sort! Buatlah satu program tentang merge sort? Sebutkan kelebihan dan kelemahan sort? Sebutkan metode-metode teknik sort? Siapakah yang pertama kali menemukan algoritma merge sort?

Terima kasih Wasalam