Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

FONDASI PEMROGRAMAN & STRUKTUR DATA #9

Presentasi serupa


Presentasi berjudul: "FONDASI PEMROGRAMAN & STRUKTUR DATA #9"— Transcript presentasi:

1 FONDASI PEMROGRAMAN & STRUKTUR DATA #9
Sorting

2 Sorting: Introduction to Sorting Method (Metode pengurutan)
By: Augury El Rayeb

3 Sorting Sorting artinya pengurutan, baik itu pengurutan dari kecil ke besar atau dari besar ke kecil. Unsorted Unsorted Sorting Sorting Sorted Sorted

4 Sorting Sorting dalam pemrograman yang diurutkan (biasanya) adalah data. Unsorted No Index [0] [1] [2] [3] [4] Nilai 11 9 17 5 12 FYI: Sorting data juga merupakan langkah awal untuk searching data Sorting Sorted No Index [0] [1] [2] [3] [4] Nilai 5 9 11 12 17

5 Algoritma Sorting Berikut adalah 3 algoritma sorting sederhana (yang memiliki metode sorting yang mirip), diantara sekian banyak algoritma sorting: Bubble Sort Selection Sort Insertion Sort Perhatikan method hitungLuas() Method tersebut adalah untuk menghitung luas, untuk menghitung luas bisa dengan beberapa cara sesuai bidang yang ingin dihitung luasnya.

6 Algoritma Sorting Ketiga algoritma tersebut (bubble sort, selection sort dan insertion sort) melibatkan 2 langkah yang dilaksanakan berulang-ulang, yaitu: Bandingkan 2 item Tukar tempat (kedua item tersebut) Namun tiap algoritma tersebut memiliki detil penanganan yang berbeda satu sama lainnya Perhatikan method hitungLuas() Method tersebut adalah untuk menghitung luas, untuk menghitung luas bisa dengan beberapa cara sesuai bidang yang ingin dihitung luasnya.

7 Bubble Sort Diberi nama bubble sort karena dalam melakukan pengurutan tiap elemen cenderung untuk naik ke atas (bubble up) sampai ke urutan yang sesuai, seperti halnya bubble yang naik ke atas permukaan air soda Bubble sort bekerja dengan membandingkan tiap elemen dengan elemen berikutnya (disebelahnya), dan melakukan pertukaran tempat jika urutannya tidak sesuai.

8 Selection Sort Diberi nama selection sort karena pengurutan dilakukan dengan cara berulang kali memilih (select) elemen terkecil berikutnya dan menukar tempatnya. selection sort bekerja dengan memilih elemen dan membandingkannya dengan elemen lain (berikutnya) untuk menemukan yang terkecil atau yang terbesar (tergantung jenis urutan) dan kemudian saling bertukar tempat.

9 Insertion Sort Diberi nama Insertion sort karena pengurutan dilakukan dengan mengambil suatu elemen sebagai kunci kemudian membandingkan dengan elemen-elemen lain untuk disisipkan (insert) pada tempat yang tepat untuk elemen kunci tersebut. Insertion sort bekerja dengan memilih elemen posisi nomor dua sebagai kunci, kemudian dibandingkan dengan elemen pada posisi sebelumnya, jika elemen kunci lebih kecil atau lebih besar (tergantung jenis urutan) maka elemen kunci disisipkan disana. Selanjutnya elemen nomor berikutnya sebagai kunci, kemudian dilakukan pembandingan dengan elemen-elemen pada posisi sebelumnya hingga didapatkan posisi yang tepat untuk disisipkan elemen kunci, demikian seterusnya.

10 Bubble Sort By: Augury El Rayeb

11 Bubble Sort Bubble sort adalah metode pengurutan data dengan cara membandingkan tiap elemen dengan elemen berikutnya (disebelahnya), dan melakukan pertukaran tempat jika urutannya tidak sesuai.

12 Mekanisme Bubble Sort No Index [0] [1] [2] [3] [4] Nilai 11 9 17 5 12 TRIP #1 Misal diinginkan urutan ascending (dari kecil ke besar) Berikut Rule pada Bubble Sort: Mulai dari kiri, bandingkan 2 item. Jika yang di sebelah kiri lebih besar, tukar tempat. Geser satu posisi ke kanan, untuk melakukan pembandingan selanjutnya. Lakukan rule tersebut hingga mencapai posisi paling kanan. 11 > 9 No Index [0] [1] [2] [3] [4] Nilai 9 11 17 5 12 11 < 17 No Index [0] [1] [2] [3] [4] Nilai 9 11 17 5 12 17 > 5 No Index [0] [1] [2] [3] [4] Nilai 9 11 5 17 12 17 > 12 No Index [0] [1] [2] [3] [4] Nilai 9 11 5 12 17

13 Mekanisme Bubble Sort TRIP #2 TRIP #3 No Index [0] [1] [2] [3] [4]
Nilai 9 11 5 12 17 No Index [0] [1] [2] [3] [4] Nilai 9 5 11 12 17 TRIP #2 TRIP #3 9 < 11 9 > 5 No Index [0] [1] [2] [3] [4] Nilai 9 11 5 12 17 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 12 17 9 < 11 11 > 5 No Index [0] [1] [2] [3] [4] Nilai 9 5 11 12 17 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 12 17 11 < 12 11 < 12 No Index [0] [1] [2] [3] [4] Nilai 9 5 11 12 17 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 12 17 12 < 17 12 < 17 No Index [0] [1] [2] [3] [4] Nilai 9 5 11 12 17 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 12 17

14 Algoritma Bubble Sort Misal diinginkan urutan ascending (dari kecil ke besar). Terdapat data sebanyak n dalam array. (ingat index array dimulai dari 0) Pengurutan data dilakukan dengan cara: Bandingkan elemen sekarang dengan elemen berikutnya (mulai dari kiri), jika elemen sekarang > elemen berikutnya maka tukar tempat. Geser posisi sekarang ke posisi berikutnya. Ulangi langkah selagi kurang dari jumlah item-1 (n-1) Ulangi langkah selagi kurang dari jumlah item-1 (n-1) Langkah 1 Langkah 2 Langkah 3 Langkah 4

15 Potongan Kode untuk Bubble Sort
//Bubble Sort i=0; do { j=0; if(data[j]>data[j+1]) { temp=data[j]; data[j]=data[j+1]; data[j+1]=temp; } j++; }while (j<n-1); i++; } while (i<n-1); Perhatikan method hitungLuas() Method tersebut adalah untuk menghitung luas, untuk menghitung luas bisa dengan beberapa cara sesuai bidang yang ingin dihitung luasnya.

16 Contoh Aplikasi Sort dengan Bubble Sort
do { j=0; if(array[j] < array[j+1]) { temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } j++; }while (j<n-1); i++; } while (i<n-1); return array; public class SortClass { private int temp; public int[] ascBubbleSort(int[] array) { int i=0; int j=0; int n=array.length; do { j=0; if(array[j] > array[j+1]) { temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } j++; }while (j<n-1); i++; } while (i<n-1); return array; public int[] descBubbleSort(int[] array) { import java.util.Arrays; public class TestSortClass { public static void main(String [] args) { int[] data = {5, 2, 7, 9, 2, 14, 1} ; SortClass data1 = new SortClass(); data = data1.ascBubbleSort(data); System.out.print("asc sorted: "); System.out.println(Arrays.toString(data)); } Output: asc sorted: [1, 2, 2, 5, 7, 9, 14]

17 Selection Sort By: Augury El Rayeb

18 Selection Sort Selection sort adalah metode pengurutan data dengan cara memilih elemen dan membandingkannya dengan elemen-elemen lain (berikutnya) untuk menemukan yang terkecil atau yang terbesar (tergantung jenis urutan) dan kemudian saling bertukar tempat.

19 Mekanisme Selection Sort
Misal diinginkan urutan ascending (dari kecil ke besar) Berikut Rule pada Selection Sort: Mulai dari index sekarang=index 0 (kiri), Lakukan pencarian nilai terkecil ke arah index-index berikutnya. Lakukan pertukaran nilai pada index sekarang dengan nilai terkecil tersebut. Geser index sekarang satu posisi ke kanan, index sekarang = index sekarang + 1, untuk melakukan pencarian selanjutnya. Lakukan rule tersebut hingga index sekarang mencapai posisi index terakhir-1. No Index [0] [1] [2] [3] [4] Nilai 11 9 17 5 12 TRIP #1 9 < 11 No Index [0] [1] [2] [3] [4] Nilai 11 9 17 5 12 9 < 17 No Index [0] [1] [2] [3] [4] Nilai 11 9 17 5 12 5 < 9 No Index [0] [1] [2] [3] [4] Nilai 11 9 17 5 12 5 < 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 17 11 12

20 Mekanisme Selection Sort
No Index [0] [1] [2] [3] [4] Nilai 5 9 17 11 12 TRIP #3 11 < 17 No Index [0] [1] [2] [3] [4] Nilai 5 9 17 11 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 17 11 12 TRIP #2 9 < 17 11 < 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 17 11 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 17 12 9 < 11 No Index [0] [1] [2] [3] [4] Nilai 5 9 17 11 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 17 12 TRIP #4 9 < 12 12 < 17 No Index [0] [1] [2] [3] [4] Nilai 5 9 17 11 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 17 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 12 17

21 Algoritma Selection Sort
Langkah 1 Langkah 2 Misal diinginkan urutan ascending (dari kecil ke besar). Terdapat data sebanyak n dalam array. (ingat index array dimulai dari 0) Mulai dari index sekarang=0 Pengurutan data dilakukan dengan cara: index terkecil = index sekarang next index = index sekarang + 1 Jika data pada next index < data pada index terkecil, index terkecil = next index. next index + 1 Ulangi langkah selagi next index < jumlah item (n) Tukar tempat data pada next index sekarang dengan data pada index terkecil. Index sekarang + 1 Ulangi langkah selagi index sekarang < jumlah item-1 (n-1) Langkah 3 Langkah 4 Langkah 5 Langkah 6 Langkah 7 Langkah 8

22 Potongan Kode untuk Selection Sort
//Selection Sort indexSekarang=0; do { terkecil=indexSekarang; nextIndex=indexSekarang+1; if(data[nextIndex] < data[terkecil]) { terkecil = nextIndex; } nextIndex++; } while(nextIndex<n); temp = data[indexSekarang]; data[indexSekarang] = data[terkecil]; data[terkecil] = temp; indexSekarang++; } while(indexSekarang<n-1); Perhatikan method hitungLuas() Method tersebut adalah untuk menghitung luas, untuk menghitung luas bisa dengan beberapa cara sesuai bidang yang ingin dihitung luasnya.

23 Contoh Aplikasi Sort dengan Selection Sort
do { terbesar=indexSekarang; nextIndex=indexSekarang+1; if(array[nextIndex] > array[terbesar]) { terbesar = nextIndex; } nextIndex++; } while(nextIndex<n); temp = array[indexSekarang]; array[indexSekarang] = array[terbesar]; array[terbesar] = temp; indexSekarang++; } while(indexSekarang<n-1); return array; public class SortClass { private int temp; public int[] ascSelectionSort(int[] array) { int indexSekarang, nextIndex; int terkecil; int n=array.length; indexSekarang=0; do { terkecil=indexSekarang; nextIndex=indexSekarang+1; if(array[nextIndex] < array[terkecil]) { terkecil = nextIndex; } nextIndex++; } while(nextIndex<n); temp = array[indexSekarang]; array[indexSekarang] = array[terkecil]; array[terkecil] = temp; indexSekarang++; } while(indexSekarang<n-1); return array; public int[] descSelectionSort(int[] array) { int terbesar; import java.util.Arrays; public class TestSortClass { public static void main(String [] args) { int[] data = {5, 2, 7, 9, 2, 14, 1} ; SortClass data1 = new SortClass(); data = data1.descSelectionSort(data); System.out.print(“desc sorted: "); System.out.println(Arrays.toString(data)); } Output: desc sorted: [14, 9, 7, 5, 2, 2, 1]

24 Insertion Sort By: Augury El Rayeb

25 Insertion Sort Insertion sort adalah metode pengurutan data dengan cara memilih elemen sebagai kunci (posisi nomor dua), kemudian dibandingkan dengan elemen pada posisi sebelumnya, jika elemen kunci lebih kecil atau lebih besar (tergantung jenis urutan) maka elemen kunci disisipkan disana. Selanjutnya elemen nomor berikutnya sebagai kunci, kemudian dilakukan pembandingan dengan elemen-elemen pada posisi sebelumnya hingga didapatkan posisi yang tepat untuk disisipkan elemen kunci, demikian seterusnya.

26 Mekanisme Insertion Sort
No Index [0] [1] [2] [3] [4] Nilai 11 9 17 5 12 TRIP #1 Misal diinginkan urutan ascending (dari kecil ke besar) Berikut Rule pada Bubble Sort: Mulai dari index 1 (elemen kedua dari kiri) sebagai kunci, Simpan nilai pada index kunci dalam temporary. Index sekarang = index kunci Geser index sekarang ke kiri (index sekarang-1), Bandingkan index sekarang dengan nilai temporary, Jika nilai pada index sekarang > nilai temporary, isikan nilai index sekarang ke sebelah kanannya (index sekarang + 1), ulangi langkah 2 – 3 sampai index sekarang = 0, Isikan nilai temporary pada index 0 Jika nilai pada index sekarang < nilai temporary, Isikan nilai temporary pada index sekarang + 1. Geser kunci ke kanan (index kunci + 1), Ulangi langkah 1 – 4, hingga index terakhir 11>9 9 No Index [0] [1] [2] [3] [4] Nilai 9 11 17 5 12 TRIP #2 11<17 17 No Index [0] [1] [2] [3] [4] Nilai 9 11 17 5 12 TRIP #3 17>5 5 No Index [0] [1] [2] [3] [4] Nilai 9 11 17 12 11 > 5 5 No Index [0] [1] [2] [3] [4] Nilai 9 11 17 12 9 > 5 5 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 17 12

27 Mekanisme Insertion Sort
Misal diinginkan urutan ascending (dari kecil ke besar) Berikut Rule pada Bubble Sort: Mulai dari index 1 (elemen kedua dari kiri) sebagai kunci, Simpan nilai pada index kunci dalam temporary. Index sekarang = index kunci Geser index sekarang ke kiri (index sekarang-1), Bandingkan index sekarang dengan nilai temporary, Jika nilai pada index sekarang > nilai temporary, isikan nilai index sekarang ke sebelah kanannya (index sekarang + 1), ulangi langkah 2 – 3 sampai index sekarang = 0, Isikan nilai temporary pada index 0 Jika nilai pada index sekarang < nilai temporary, Isikan nilai temporary pada index sekarang + 1. Geser kunci ke kanan (index kunci + 1), Ulangi langkah 1 – 4, hingga index terakhir No Index [0] [1] [2] [3] [4] Nilai 5 9 11 17 12 TRIP #4 17>12 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 17 11<12 12 No Index [0] [1] [2] [3] [4] Nilai 5 9 11 12 17

28 Algoritma Insertion Sort
Misal diinginkan urutan ascending (dari kecil ke besar). Terdapat data sebanyak n dalam array. (ingat index array dimulai dari 0) Mulai dari indexKunci= 1 ulangi langkah berikut selagi indexKunci<n: Data[indexKunci] diisi ke temp indexSekarang = indexKunci Ulangi langkah berikut selagi indexSekarang>0 dan data[indexSekarang-1]>temp: data[indexSekarang]=data[indexSeka rang-1] indexSekarang=indexSekarang-1 data[indexSekarang]=temp indexKunci++

29 Potongan Kode untuk Insertion Sort
//Insertion Sort // i: index kunci, // j: index sekarang i = 1; while( i < n ) { temp = data[i]; j = i; while( j > 0 && data[j-1] > temp) { data[j] = data[j-1]; j = j - 1; } data[j]=temp; i++;

30 Contoh Aplikasi Sort dengan Insertion Sort
while(indexKunci<n) { temp=array[indexKunci]; indexSekarang=indexKunci; while( indexSekarang>0 && array[indexSekarang-1]<temp) { array[indexSekarang] = array[indexSekarang-1]; indexSekarang=indexSekarang-1; } array[indexSekarang]=temp; indexKunci++; return array; Contoh Aplikasi Sort dengan Insertion Sort public class SortClass { private int temp; public int[] ascInsertionSort(int[] array) { int indexKunci, indexSekarang; int n=array.length; indexKunci=1; while(indexKunci<n) { temp=array[indexKunci]; indexSekarang=indexKunci; while( indexSekarang>0 && array[indexSekarang-1]>temp) { array[indexSekarang] = array[indexSekarang-1]; indexSekarang=indexSekarang-1; } array[indexSekarang]=temp; indexKunci++; return array; public int[] descInsertionSort(int[] array) { import java.util.Arrays; public class TestSortClass { public static void main(String [] args) { int[] data = {5, 2, 7, 9, 2, 14, 1} ; SortClass data1 = new SortClass(); data = data1.ascInsertionSort(data); System.out.print(“asc sorted: "); System.out.println(Arrays.toString(data)); } Output: asc sorted: [1, 2, 2, 5, 7, 9, 14]

31 See You Next Topic Thanks


Download ppt "FONDASI PEMROGRAMAN & STRUKTUR DATA #9"

Presentasi serupa


Iklan oleh Google