ALGORITMA PENGURUTAN (SORTING)

Slides:



Advertisements
Presentasi serupa
BAB III – ARRAY STATIS II
Advertisements

Algoritma Sorting Alpro-2.
- PERTEMUAN 11 - SORTING (PENGURUTAN)
STRUKTUR DATA (3) sorting array
Sorting (Pengurutan).
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
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).
SORTING.
SORTING (PENGURUTAN).
ARRAY SESI 2.
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
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
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
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
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).
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Metode Pengurutan (Sorting)
LANJUTAN DARI SHORTING
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.
KUG1C3 Dasar Algoritma & Pemrograman
Pertemuan 10 SORTING.
Algoritma dan Pemrograman Sorting
Struktur Data Prio Handoko, S. Kom., M.T.I.
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
PENGURUTAN (SORTING).
SORTING (Lanjut).
P.MARPAUNG SORTING(PENGURUTAN)
Sorting.
Sistem Berkas – Sesi 12 dan 13
STRUKTUR DATA Array Statis.
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
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
Algoritma dan Pemrograman Sorting
ARRAY STATIS Sri Nurhayati, MT.
Sorting.
STRUKTUR DATA (3) sorting array
Algoritma & Pemrograman II STT Wastukancana Purwakarta
SORTING ARRAY SESI 2.
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
ARRAY STATIS Sri Nurhayati, MT.
SORTING (PENGURUTAN).
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
IT234 Algoritma dan Struktur Data
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.
Transcript presentasi:

ALGORITMA PENGURUTAN (SORTING) STT Wastukancana Purwakarta Algoritma dan Pemrograman II Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Baik urut menaik (ascending) atau urut menurun (descending) Data yang terurut memiliki beberapa keuntungan. Selain mempercepat waktu pencarian, dari data yang terurut kita dapat langsung memperoleh nilai maksimum dan minimum. Untuk data numerik terurut menurun, nilai maksimum adalah elemen pertama larik, dan nilai minimum adalah elemen terakhir larik. Adanya kebutuhan terhadap proses pengurutan memunculkan bermacam-macam algoritma pengurutan. Dilihat dari tempat penyimpanan data, sort dibedakan antara external sort dan internal sort. External sort bila datanya berada pada media external, atau external storage, seperti hardisk. Internal sort bila datanya ada dalam internal storage atau memory komputer. Salah satunya data yang berada dalam suatu array satu dimensi. Beberapa metode internal sort: Bubble sort Selection sort Insertion sort Shell sort Merge sort Radix sort Quick sort Heap sort

Memanipulasi isi array satu dimensi 1 2 3 4 5 6 Bagaimana caranya memanipulasi Array A agar: elemen yang disebelah kiri diisi dengan isi elemen yang disebelah kanan seperti dibawah ini: A 12 17 10 5 25 7 15 1 2 3 4 5 6 A 17 10 5 25 7 15 Sebelum menggunakan algoritma-algoritma tersebut ada beberapa latihan yang perlu dipelajari sebelum mempelajari sort diatas. Yaitu bagaimana memanipulasi data dalam array satu dimensi.

1 2 3 4 5 6 JAWAB A 12 17 10 5 25 7 15 Isi Awal Array A Algoritma dengan WHILE i = 0; while ( i < 6 ) { A[ i ] = A [ i+1 ]; i++; } 1 17 10 5 25 7 15 Setelah A [0] = A [1] 2 17 10 5 25 7 15 Setelah A [1] = A [2] 3 17 10 5 25 7 15 Setelah A [2] = A [3] Algoritma dengan FOR for ( i=0; i<6 ; i++) A[ i ] = A [ i+1 ]; 4 17 10 5 25 7 15 Setelah A [3] = A [4] 5 17 10 5 25 7 15 Setelah A [4] = A [5] 6 17 10 5 25 7 15 Setelah A [5] = A [6] 1 2 3 4 5 6 A 17 10 5 25 7 15 Isi Terakhir Array A

Bagaimana caranya kalo memanipulasi Array A agar: elemen yang di sebelah kanan diisi dengan isi elemen yang di sebelah kiri 1 2 3 4 5 6 A 12 17 10 5 25 7 15 Isi Awal Array A 1 12 10 5 25 7 15 Setelah A [1] = A [0] 2 12 5 25 7 15 Setelah A [2] = A [1] JAWAB Algoritma dengan WHILE 3 12 25 7 15 Setelah A [3] = A [2] i = 0; while ( i < 6 ){ A[ i+1 ] = A [ i ]; i++; } 4 12 7 15 Setelah A [4] = A [3] 5 12 15 Setelah A [5] = A [4] Algoritma dengan FOR for (i=0; i<6; i++) A[ i+1 ] = A [ i ]; 6 12 Setelah A [6] = A [5] 1 2 3 4 5 6 A 12 Isi Terakhir Array A

1 2 3 4 5 6 Gambarkan kembali isi array A dengan algoritma dibawah ini A 12 17 10 5 25 7 15 Isi Awal Array A i= 0 ( A[0] > A[1] )? False Tidak mengisi A[ 1 ] for (i=0; i<6; i++){ if (A[ i ] > A [ i+1 ] ) A[ i+1 ] = A[ i ]; } 1 12 17 10 5 25 7 15 i = 1 ( A[1] > A[2] )? True A[ 2 ] = A[ 1 ] 2 12 17 5 25 7 15 i = 3 ( A[2] > A[3] )? True A[ 2 ] = A[ 3 ] 3 12 17 25 7 15 i = 3 ( A[3] > A[4] )? False Tidak Mengisi A[ 4 ] 4 12 17 25 7 15 i= 4 ( A[4] > A[5] )? True A[ 5] = A[ 4 ] 5 12 17 25 15 i = 5 ( A[5] > A[6] )? True A[ 6 ] = A[ 5 ] A 12 17 25

1 2 3 4 5 6 Gambarkan kembali isi array A dengan algoritma dibawah ini A 12 17 10 5 25 7 15 Isi Awal Array A i = 0 ( A[0] > A[2] )? False Tidak tukar for(i=0; i<6; i++){ if (A[ i ] > A [ i+1 ] ){ X = A[ i ]; A[ i ] = A[ i+1 ]; A[ i+1 ] = X; } 1 12 17 10 5 25 7 15 i = 1 ( A[1] > A[2] )? True tukar A[ 1 ] & A[ 2 ] 2 12 10 17 5 25 7 15 i = 2 ( A[2] > A[3] )? True tukar A[ 2 ] & A[ 3 ] 3 12 10 5 17 25 7 15 Menukar Isi elemen A [ i ] dengan elemen A [ i + 1 ] i = 3 ( A[3] > A[4] )? False Tidak tukar 4 12 10 5 17 25 7 15 i= 4 ( A[4] > A[5] )? True tukar A[ 4 ] & A[ 5] 5 12 10 5 17 7 25 15 Konsep ini yang Mendasari BUBBLE SORT i = 5 ( A[5] > A[6] )? True tukar A[ 5 ] & A[ 6 ] A 12 10 5 17 7 15 25

BUBBLE SORT ( Algoritma Pengurutan Apung ) Bubble artinya gelembung. Gelembung selalu mengapung keatas Proses Sorting dilakukan tahap per tahap Jika jumlah elemen suatu array adalah n maka akan dilakukan n-1 tahap Prinsip proses BUBBLE SORT adalah menempatkan (mengapungkan) nilai terbesar pada elemen ujung paling kanan pada setiap tahap (untuk hasil akhir array ascending) Algoritma pengurutan apung diinspirasi oleh gelembung sabun yang berada di atas permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Secara umum, benda-benda yang berat akan terbenam dan benda-benda yang ringan akan terapung ke atas permukaan. Prinsip pengapungan tersebut digunakan pada pengurutan apung. Apabila kita menginginkan larik terurut menaik, maka elemen larik yang berharga paling kecil “diapungkan”, Artinya diangkat ke atas atau ke ujung kiri/kanan larik melalui proses pertukaran. Proses pengapungan ini dilakukan sebanyak n – 1 langkah. ( dalam buku rinaldi munir satu langkah disebut juga satu kali pass ) Dengan n adalah ukuran lariknya.

1 2 3 4 5 6 Data Awal: 15 10 7 22 17 5 12 Hasil pd Tahap-I: 22 Diproses kolom: 0-6, Nilai terbesar di kolom 6 Hasil pd Tahap-II: 17 22 Diproses kolom: 0-5, Nilai terbesar di kolom 5 Hasil pd Tahap-III: 15 17 22 Diproses kolom: 0-4, Nilai terbesar di kolom 4 Hasil pd Tahap-IV: 12 15 17 22 Diproses kolom: 0-3, Nilai terbesar di kolom 3 Hasil pd Tahap-V: 10 12 15 17 22 Diproses kolom: 0-2, Nilai terbesar di kolom 2 Hasil pd Tahap-VI: 5 7 10 12 15 17 22 Diproses kolom: 0-1, Nilai terbesar di kolom 1 Dan tentu saja sisa yang terkecil ada di kolom 0 Setelah melewati 6 tahap data akan menjadi terurut

const n = 7 for(k=0; k<n-1 ; k++){ for (i=0; i<n-k-1; i++ ) { } Maka akan dilakukan 6 kali looping Algoritma dalam kotak ini dilaksanakan sebanyak n-k-1 kali setiap kali mengerjakan satu tahap Perhatikan: Setiap tahap, nilai i berubah mulai dari 0 sampai dengan n-k-1

k = nomor tahap Untuk tahap-1, k=0 Proses tahap per tahap k=0; for(k=0; k<n-1 ; k++){ for (i=0; i<n-k-1; i++ ){ if (A[i] > A[i+1]){ X = A[ i ]; A[ i ] = A [ i + 1 ]; A [ i + 1 ] = X; } Proses dilakukan bukan semata- mata menempatkan nilai terbesar pada ujung paling kanan tapi dilakukan sebagai berikut: Bila isi A[0] > A[1] maka tukar Isi A[0] dengan A[1], Kemudian lanjutkan Bila isi A[1] > A[2] maka tukar isi A[1] dengan A[2], Dan seterusnya sampai A[n-1] Untuk n=7 dan tahap-1, Maka proses dilakukan 6 kali Menukar isi A [ i ] dengan A [ i + 1 ] Bila A[ i ] > A[ i +1 ] Untuk tahap selanjutnya k=1,2,3,4 dan terakhir = 5

True, tukar A[0] dengan A[1] TAHAP-I Keadaan Awal Nilai i if Proses A[0] > A[1] True, tukar A[0] dengan A[1] 1 A[1] > A[2] True, tukar A[1] dengan A[2] 2 A[2] > A[3] False, tidak ada penukaran 3 A[3] > A[4] True, tukar A[3] dengan A[4] 4 A[4] > A[5] True, tukar A[4] dengan A[5] 5 A[5] > A[6] True, tukar A[5] dengan A[6] 15 10 7 22 17 5 12 Tukar 10 15 7 22 17 5 12 Tukar 10 7 15 22 17 5 12 10 7 15 22 17 5 12 Tukar 10 7 15 17 22 5 12 Tukar 10 7 15 17 5 22 12 Tukar 10 7 15 17 5 12 22 Pada tahap berikutnya A[6] Tidak ikut diproses. 10 7 15 17 5 12 22

TAHAP-II Awal = hasil akhir tahap-I 10 7 15 17 5 12 22 TAHAP-II k=1 While ( i < 5) i=0 7 10 15 17 5 12 22 10 tukar dengan 7 i: 0 - 4 i=1 7 10 15 17 5 12 22 Tidak ada penukaran TAHAP-II Ada 3 kali pertukaran i=2 7 10 15 17 5 12 22 Tidak ada penukaran i=3 7 10 15 5 17 12 22 17 tukar dengan 5 i=4 7 10 15 5 12 17 22 17 tukar dengan 12 17 berada di ujung paling kanan Tahap-II

TAHAP-III Awal = hasil akhir tahap-II A[5] dan A[6] Tidak ikut diproses 7 10 15 5 12 17 22 TAHAP-III k= 2 While ( i < 4) i = 0-3 Tidak ada penukaran i=0 7 10 15 5 12 17 22 i=1 7 10 15 5 12 17 22 Tidak ada penukaran TAHAP-II Ada 2 kali pertukaran i=2 7 10 5 15 12 17 22 15 tukar dengan 5 i=3 7 10 5 12 15 17 22 15 tukar dengan 12 15 berada di ujung paling kanan Tahap-III

LATIHAN Urutkan array di bawah ini dengan algoritma bubble sort