Algoritma dan Struktur Data

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

BAB III – ARRAY STATIS II
Algoritma Sorting Alpro-2.
- PERTEMUAN 11 - SORTING (PENGURUTAN)
STRUKTUR DATA (3) sorting array
Sorting.
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
Pengurutan Data Nurdiansah PTIK 09 UNM.
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).
QUICK SORT Kelompok 9.
Algoritma Sorting (Selection – Insertion)
SORTING (PENGURUTAN).
STRUKTUR DATA (3) sorting array
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Quick Sort dan Merge Sort
Sorting Pertemuan ke 14..
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Searching.
Source: Sorting Algorithms source:
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
Algoritma dan Struktur Data
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Algoritma Sorting Tenia Wahyuningrum.
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Sorting (Pengurutan).
Sorting 2007/2008 – Ganjil – Minggu 5.
SORTING Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
Metode Pengurutan (Sorting)
Sorting Algorithm Norma Amalia, ST, M.Eng.
Insertion Sort Dilakukan dengan cara membandingkan data ke-i (di mana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya.
LANJUTAN DARI SHORTING
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Sorting Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara.
Struktur Data Prio Handoko, S. Kom., M.T.I.
PENGURUTAN (SORTING).
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
Sorting.
STRUKTUR DATA (3) sorting array
Metode pemecahan masalah
STRUKTUR DATA sorting array
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
Pengurutan Rekaman SUB Pengurutan Gelembung.
Shorting (Pengurutan)
IT234 Algoritma dan Struktur Data
Sorting.
Algoritma sorting.
Sorting (Pengurutan).
STRUKTUR DATA (3) sorting array
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
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
MODEL SORTING Kelompok V Rahmawati ( )
Sorting.
Sorting (Pengurutan).
SORTING.
FONDASI PEMROGRAMAN & STRUKTUR DATA #9
Transcript presentasi:

Algoritma dan Struktur Data Algoritma Pengurutan (Sorting) Teknik Informatika Universitas Muhammadiyah Malang 2011

Tujuan Instruksional Memahami algoritma pengurutan Mengerti algoritma bubble, selection, insertion, merge sort

Topik Algoritma pengurutan Bubble sort Selection sort Insertion sort merge sort

Sorting (Pengurutan) Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang dikehendaki. Pengurutan dapat dilakukan secara ascending (urut naik) maupun descending (urut turun).

Contoh : Misal suatu kumpulan DATA berisi 8 elemen : Setelah diurutkan : Ascending : 11 22 33 44 55 66 77 88 Descending : 88 77 66 55 44 33 22 11

Algoritma Pengurutan Ada banyak metode yang digunakan untuk melakukan pengurutan. Algoritma yang dapat digunakan antara lain : Bubble Sort Selection Sort Insertion Sort Merge Sort

Bubble Sort Metode sorting termudah Cara pengurutannya : bandingkan dua data kemudian swap. Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung.

Bubble Sort Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Ascending : Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar/swap. Descending : Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar/swap.

Ilustrasi Bubble Sort (1)

Ilustrasi Bubble Sort (2)

Ilustrasi Bubble Sort (3)

Ilustrasi Bubble Sort (4)

Algoritma Bubble Sort (tanpa flag) for (i=0; i < n-1; i++){ for (j=n-1; j > i; j--) { if (X[j] < X[j-1]) { tmp = X[j]; X[j] = X[j-1]; X[j-1] = tmp; } SWAP

Time Complexity (Bubble) Proses swap worst case : T(n) = n(n-1)/2 = (n2 –n) /2 = O(n2) best case : T(n) = 0 Proses perbandingan best case : T(n) = n(n-1)/2 = (n2 –n) /2 = O(n2)

Algoritma Bubble Sort (dengan flag) for (i=0; i < n-1 && status; i++){ status = false; for (j=n-1; j > i; j--) { if (X[j] < X[j-1]) { tmp = X[j]; X[j] = X[j-1]; X[j-1] = tmp; status = true; } SWAP Flag

Time Complexity (Bubble) Proses swap worst case : T(n) = n(n-1)/2 = (n2 –n) /2 = O(n2) best case : T(n) = 0 Proses perbandingan best case : T(n) = n-1 = O(n)

Latihan Urutkan data berikut dengan bubble sort : 2, 10, 3, 1, 17, 25, 16, 9, 18 Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!

Selection Sort Cara pengurutannya : seleksi data yang ada kemudian dilakukan swap (pertukaran posisi). Pada Ascending : seleksi data terkecil kemudian swap. Pada descending : seleksi data terbesar kemudian swap.

Ilustrasi Selection Sort (1)

Ilustrasi Selection Sort (2)

Ilustrasi Selection Sort (3)

Ilustrasi Selection Sort (4)

Algoritma Selection Sort (Ascending) Tampung data ke-i Seleksi data terkecil Cek apakah data yang ditampung lebih besar dari data hasil seleksi (data terkecil). Jika pengecekan langkah 3 bernilai “true” : lakukan pertukaran posisi antara data yang ditampung dengan data terkecil. Ulangi langkah 1 sampai 4, hingga nilai i sama dengan n.

Selection Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = 7 3 4 1 8 2 6 5 M = data terkecil sementara, K = data terkecil (hasil seleksi) Hasil : 1 2 3 4 5 6 7 8 (data telah terurut secara ascending) Proses Swap A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] Data awal 7 3 4 1 8 2 6 5 m=A[0], k = 1 m=A[1], k = 2 M=A[2], k = 3 m=A[3], k = 4 m=A[4], k = 5 m=A[5], k = 6 m=A[6], k = 7 1 2 3 4 5 6 7

Pseudocode Selection Sort (ascending) Cari elemen terkecil dari unsorted list. for (i=0; i < n-1; i++) { min = i; for (j = i+1; j < n; j++) { if (X[min] > X[j]) min = j; } t = X[min]; X[min] = X[i]; X[i] = t; } SWAP

Time Complexity (Selection) Proses swap worst case : T(n) = n = O(n) best case : T(n) = n = O(n) Proses perbandingan worst case : T(n) = n(n-1)/2 = (n2 –n) /2 = O(n2) best case : T(n) = n(n-1)/2 = (n2 –n) /2 = O(n2)

Effisiensi Selection Sort for (i=0; i < n-1; i++) { min = i; for (j = i+1; j < n; j++) { if (X[min] > X[j]) min = j; } if (min != i) { t = X[min]; X[min] = X[i]; X[i] = t; } Pengecekkan min untuk memaksimalkan proses swap

Time Complexity (Selection) Proses swap worst case : T(n) = n/2 = O(n) best case : T(n) = 0

Latihan Urutkan data berikut dengan selection sort : 2, 10, 3, 1, 17, 25, 16, 9, 18 Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!

Insertion Sort Cara pengurutannya : dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Ascending : ketika perbandingan ambil data yang paling kecil. Descending : ketika perbandingan ambil data yang paling besar.

Algoritma Insertion Sort (Ascending) Ambil satu data ke-i simpan di temp Bandingkan data temp dengan data yang ada disebelah kiri satu per-satu Cek apakah data temp lebih kecil dari data sebelah kiri. Jika langkah nomor 3 bernilai “true” : lakukan pergeseran data satu-persatu kemudian pada posisi yang tepat sisipkan data temp. Ulangi langkah 1 sampai 4, hingga i sama dengan n

Insertion Sort (Ascending) Misalkan sekumpulan data disimpan pada A[8] dengan urutan awal = 7 3 4 1 8 2 6 5 temp = variabel penampung Hasil : 1 2 3 4 5 6 7 8 (data telah terurut secara ascending) Proses Tampung A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] Data awal 7 3 4 1 8 2 6 5 temp = A[1] temp = A[2] temp = A[3] temp = A[4] temp = A[5] temp = A[6] temp = A[7]

Ilustrasi Insertion Sort (1)

Ilustrasi Insertion Sort (2)

Ilustrasi Insertion Sort (3)

Algoritma Insertion Sort Pergeseran data for(i=1;i<n;i++){ t=X[i]; for (j =i-1; j >= 0; j--) { if (t < X[j]){ X[j+1] = X[j]; X[j]=t; } else { X[j+1] = t; break; Ambil data pertama

Time Complexity Proses pergeseran (copy) worst case : T(n) = n(n-1)/2 = (n2 –n) /2 = O(n2) best case : T(n) = 0 Proses perbandingan best case : T(n) = n-1 = O(n)

Latihan Urutkan data berikut dengan insertion sort : 2, 10, 3, 1, 17, 25, 16, 9, 18 Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!

Merge Sort Cara pengurutannya : memecah proses menjadi sub-proses. Bagi dua deret data, bandingkan, kemudian gabungkan (begitu seterusnya sampai selesai). Teknik pemecahan proses menggunakan rekursif.

Merge Sort (Merging) Permasalahan utama dipecah menjadi sub-masalah, kemudian solusi dari sub-masalah akan membimbing menuju solusi permasalahan utama. Mengimplementasikan konsep rekursi. Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

Contoh : Merge Sort Array A berisi 6 elemen sbb : 15 12 45 56 13 10 15 12 45 56 13 10 Masing-masing proses dalam algoritma merge sort akan dimulai dari elemen awal dalam A dan menggabungkan (merge) pasangan subarray yang terurut.

Ilustrasi Merge Sort (1)

Ilustrasi Merge Sort (2)

Ilustrasi Merge Sort (2)

Ilustrasi Merge Sort (2)

Ilustrasi Merge Sort (2)

Ilustrasi Merge Sort (3)

Ilustrasi Merge Sort (3)

Ilustrasi Merge Sort (3)

Algoritma Merge Sort static void mergeSort(int l,int r) { if(l==r) return; else{ int mid = (l+r)/2; mergeSort(l, mid); mergeSort(mid+1,r); Merging(l,mid+1,r); }

Algoritma Merging static void Merging(int kiri,int tengah, int kanan) { int j=0; int batasBawah = kiri; int mid = tengah-1; int n=kanan-batasBawah+1; int tampung[] = new int[X.length]; while(kiri <=mid && tengah <= kanan){ if(X[kiri] < X[tengah]) tampung[j++]=X[kiri++]; else tampung[j++]=X[tengah++]; } while(kiri<=mid) while(tengah<=kanan) for(int i=0;i<n;i++) X[batasBawah+i]=tampung[i];

Latihan Urutkan data berikut dengan merge sort : 2, 10, 3, 1, 17, 25, 16, 9, 18 Buatlah ilustrasi proses pengurutannya secara ascending maupun descending!

Pustaka Sartaj Sahni , “Data Structures & Algorithms”, Presentation L20-24. Mitchell Waite, “Data Structures & Algorithms in Java”, SAMS, 2001