FONDASI PEMROGRAMAN & STRUKTUR DATA #9

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA (3) sorting array
Advertisements

Sorting (Pengurutan).
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
STRUKTUR DATA sorting array
PENGURUTAN (SORTING).
STRUKTUR DATA (3) sorting array
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
Searching.
- PERTEMUAN 4 - PERULANGAN
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
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.
Sort Insert Sort.
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Metode Pengurutan (Sorting)
Algoritma sorting dasar (lanjutan) Pertemuan 11
Sort Pertemuan 8.
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.
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
Fondasi Pemrograman & Struktur Data
LANJUTAN DARI SHORTING
Struktur Data Algoritma Sorting
PENGURUTAN (SORTING).
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Fondasi Pemrograman & Struktur Data
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
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Shorting (Pengurutan)
IT234 Algoritma dan Struktur Data
Bubble sort.
Sorting.
Sorting (Pengurutan).
STRUKTUR DATA (3) sorting array
Algoritma & Pemrograman II STT Wastukancana Purwakarta
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
Pertemuan 4 Sorting (1) jual [Valdo] Lunatik Chubby Stylus.
Algoritme dan Pemrograman
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.
Defri Kurniawan SORTING Defri Kurniawan
Sorting (Pengurutan).
SORTING.
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Transcript presentasi:

FONDASI PEMROGRAMAN & STRUKTUR DATA #9 Sorting

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

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

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

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.

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.

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.

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.

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.

Bubble Sort By: Augury El Rayeb

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.

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

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

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 1 - 2 selagi kurang dari jumlah item-1 (n-1) Ulangi langkah 1 - 3 selagi kurang dari jumlah item-1 (n-1) Langkah 1 Langkah 2 Langkah 3 Langkah 4

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.

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]

Selection Sort By: Augury El Rayeb

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.

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

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

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 3 - 4 selagi next index < jumlah item (n) Tukar tempat data pada next index sekarang dengan data pada index terkecil. Index sekarang + 1 Ulangi langkah 1 - 7 selagi index sekarang < jumlah item-1 (n-1) Langkah 3 Langkah 4 Langkah 5 Langkah 6 Langkah 7 Langkah 8

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.

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]

Insertion Sort By: Augury El Rayeb

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.

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

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

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

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

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]

See You Next Topic Thanks