STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

dokumen-dokumen yang mirip
STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. Literatur

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

BAB VI Pengurutan (Sorting)

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

ALGORITMA PENGURUTAN & PENCARIAN

STRUKTUR DATA SORTING ARRAY

STRUKTUR DATA (3) sorting array. M.Cs

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

Pengertian Algoritma Pengurutan

BAB VI SORTIR ATAU PENGURUTAN

Materi 4: SORTING (PENGURUTAN) Dosen:

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

Pengurutan (Sorting) Algoritma Pemrograman

Gambar 13.1 Ilustrasi proses algoritma sorting

BAB 8 SORTING DAN SEARCHING

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Algoritma dan Struktur Data. Algoritma Pengurutan (Sorting)

7. SORTING DAN SEARCHING

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

Sub Pokok Bahasan dan Sasaran Belajar

PENGURUTAN (SORTING) 1. Introduction 2. Bubble Sort 3. Selection Sort 4. Insertion Sort

BAB I PENDAHULUAN.

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 2 x 3 x 50 Menit Pertemuan : 12 & 13

SATUAN ACARA PENGAJARAN

SORTING (PENGURUTAN DATA)

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Sorting. Quick Sort

Modul 8 SORTING (PENGURUTAN)

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

Pengurutan (Sorting) Keuntungan Data Terurut. Pengurutan Terbagi Dua Kelompok:

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

MODUL IV PENCARIAN DAN PENGURUTAN

DATA SORTING. Altien Jonathan Rindengan, S.Si, M.Kom

Data Structure SORTING. Chapter 11. Dahlia Widhyaestoeti, S.Kom

PERTEMUAN 10 METODE DEVIDE AND CONQUER

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Sorting Algorithms. Definisi

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Algoritme dan Pemrograman

BAB V SORTING (PENGURUTAN) INTERNAL

METODE DEVIDE AND CONQUER

Alpro & Strukdat 1 C++ (Sorting) Dwiny Meidelfi, M.Cs

Algoritma Bubble Sort dan Quick Sort

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil

Sorting Algorithms. Divide and Conquer

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

PENGURUTAN DATA 2.1 Definisi Pengurutan 2.2 Metode-metode Pengurutan

Modul Praktikum Algoritma dan Struktur Data

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

Heap Tree dan Kegunaannya dalam Heap Sort

Algoritma dan Struktur Data. Searching dan Sorting

SORTING. Brigida Arie Minartiningtyas, M.Kom

RENCANA PEMBELAJARAN SEMESTER (RPS)

ARRAY STATIS. Type namatype_array = array [1..maks_array] of tipedata. nama_var_array : namatype_array {indeks array dari 1 sampai maksimum array}

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

SORTING (Pengurutan)

BAB 8 SORTIR. Pengurutan data (sorting) adalah suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu.

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Bubble Sort dan Shell-Sort. Yuliana Setiowati

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

12/26/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Sorting. Data untuk sorting. Contoh. Algoritme #1: BUBBLE SORT.

Algoritma dan Struktur Data

BAB V SORT. Proses penukaran tidak dapat langsung dilakukan dengan cara : nilai[1] = nilai[2]; nilai[2] = nilai[1];

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

A. TUJUAN PEMBELAJARAN

Praktikum 9. Pengurutan (Sorting) Quick Sort, Merge Sort

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

BAB 2 TINJAUAN PUSTAKA

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

Kompleksitas Algoritma Sorting yang Populer Dipakai

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PENGURUTAN DATA DENGAN ALGORITMA HEAP SORT

Politeknik Elektronika Negeri Surabaya

STRATEGI DIVIDE AND CONQUER

RENCANA PEMBELAJARAN SEMESTER

RENCANA PEMBELAJARAN SEMESTER

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

RENCANA PEMBELAJARAN

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

BUANA. Distribusi 01 September 2017

ANALISIS PERBANDINGAN ALGORITMA METODE PENGURUTAN QUICKSORT, METODE PENGURUTAN SELECTIONSORT DAN METODE PENGURUTAN HEAPSORT

Penerapan Pohon Dalam Heap Sort

Program Studi Pendidikan Ilmu Komputer Fakultas Ilmu Pendidikan Universitas Ubudiyah Indonesia

SORTING ALGORITMA. Bubble Sort JANUARY 14, 2016

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

Transkripsi:

STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS

Literatur Sjukani Moh., (2007), Struktur Data (Algoritma & Struktur Data 2) dengan C, C++, Mitra Wacana Media Utami Ema. dkk, (2007), Struktur Data (Konsep & Implementasinya Dalam Bahasa C & Free Pascal di GNU/Linux), Graha Ilmu Hubbard Jhon, R., Ph.D, (2000), Schaum s Outline Of Theory and Problems of Data Structures With C++ McGraw-Hill Bambangworawan Paulus., (2004), Struktur Data Dengan C, Andi Yogyakarta

1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree 10. Heap dan B-Tree 11. Sorting 12. Search 13. Hashing 14. Graph Materi

SORT Pertemuan 12 2 SKS

SORTING & SEARCHING Sort adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga menjadi tersusun secara teratur menurut suatu aturan tertentu Pada umumnya terdapat 2 jenis pengurutan, yaitu : Ascending (naik) Descending (turun)

SORTING & SEARCHING Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara/ metoda. Beberapa metoda diantaranya adalah : Selection Sort Insertion Sort Bubble/Exchange Sort Shell Sort Merge Sort Heap Sort Quick Sort

1. Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukarkan

Selection Sort (Metode pengurutan seleksi) Algoritmanya sebagai berikut : 1. i 1 2. Selama (i <= N-1) kerjakan baris 3 s.d. 9 3. k i 4. j i + 1 5. Selama (j <= N) kerjakan baris 6 s.d. 7 6. Jika (Data[k] > Data[j]) maka k j 7. j j + 1 8. Tukar Data [i] dengan Data [k] 9. i i + 1

Selection Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera Data Data Data Data Data Data Data Data Data si [1] [2] [3] N/2 = 10/2 = 5 [4] [5] [6] [7] [8] [9] Awal 23A :[23,17,14,6,13] 14 6 13 10 1 5 7 i=1 23A :[10,1,5,7,12] 17 14 6 13 10 1 5 7 i=2 1 17 14 6 13 10 23 5 7 i=3 1 5 14 6 13 10 23 17 7 i=4 1 5 6 14 13 10 23 17 7 i=5 1 5 6 7 13 10 23 17 14 i=6 1 5 6 7 10 13 23 17 14 i=7 1 5 6 7 10 13 23 17 14 i=8 1 5 6 7 10 13 14 17 23 Akhir 1 5 6 7 10 13 14 17 23

Selection Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera Data Data Data Data Data Data Data Data Data si [1] [2] [3] N/2 = 10/2 = 5 [4] [5] [6] [7] [8] [9] Awal 16 16 31 A :[23,17,14,6,13] 24 3 29 28 3 30 27 i=1 16 A :[10,1,5,7,12] 16 31 24 3 29 28 3 30 27 i=2 3 16 31 24 16 29 28 3 30 27 i=3 3 3 31 24 16 29 28 16 30 27 i=4 3 3 16 24 31 29 28 16 30 27 i=5 3 3 16 16 31 29 28 24 30 27 i=6 3 3 16 16 24 29 28 31 30 27 i=7 3 3 16 16 24 27 28 31 30 29 i=8 3 3 16 16 24 27 28 31 30 29 Akhir 3 3 16 16 24 27 28 29 30 31

Selection Sort - Descending A: [ 23,17,14,6,13,10,1,5,7] Itera Data Data Data Data Data Data Data Data Data si [1] [2] [3] N/2 = 10/2 = 5 [4] [5] [6] [7] [8] [9] Awal 16 16 31 A :[23,17,14,6,13] 24 3 29 28 3 30 27 i=1 16 A :[10,1,5,7,12] 16 31 24 3 29 28 3 30 27 i=2 31 16 16 24 3 29 28 3 30 27 i=3 31 30 16 24 3 29 28 3 16 27 i=4 31 30 29 24 3 16 28 3 16 27 i=5 31 30 29 28 3 16 24 3 16 27 i=6 31 30 29 28 27 16 24 3 16 3 i=7 31 30 29 28 27 24 16 3 16 3 i=8 31 30 29 28 27 24 16 3 16 3 Akhir 31 30 29 28 27 24 16 16 3 3

2. Insertion Sort Pengurutan dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya

Insertion Sort (Metode penyisipan) Algoritmanya sebagai berikut : 1. i 2 2. Selama (i <= N) kerjakan baris 3 s.d. 10 3. x data[i] 4. Data[0] x 5. j i -1 6. Selama (x < data[j]) kerjakan baris 7 s.d. 8 7. data[j+1] > data[j] 8. j j - 1 9. data [j+1] x 10.i i + 1

Insertion Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Awal 23 17 14 6 13 10 1 5 7 i=2 23 17 14 6 13 10 1 5 7 i=3 17 23 14 6 13 10 1 5 7 i=4 14 17 23 6 13 10 1 5 7 i=5 6 14 17 23 13 10 1 5 7 i=6 6 13 14 17 23 10 1 5 7 i=7 6 10 13 14 17 23 1 5 7 i=8 1 6 10 13 14 17 23 5 7 i=9 1 5 6 10 13 14 17 23 7 Akhir 1 5 6 7 10 13 14 17 23

Iter asi Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt Dt [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] Awal 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20 i=2 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20 i=3 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20 i=4 16 16 31 24 3 29 28 3 30 27 20 21 4 27 20 N/2 = 10/2 = 5 i=5 16 16 24 31 3 29 28 3 30 27 20 21 4 27 20 A :[23,17,14,6,13] i=6 3 16 16 24 31 29 28 3 30 27 20 21 4 27 20 i=7 3 16 16 24 29 31 28 3 30 27 20 21 4 27 20 A :[10,1,5,7,12] i=8 3 16 16 24 28 29 31 3 30 27 20 21 4 27 20 i=9 3 3 16 16 24 28 29 31 30 27 20 21 4 27 20 i=10 3 3 16 16 24 28 29 30 31 27 20 21 4 27 20 i=11 3 3 16 16 24 27 28 29 30 31 20 21 4 27 20 i=12 3 3 16 16 20 24 27 28 29 30 31 21 4 27 20 i=13 3 3 16 16 20 21 24 27 28 29 30 31 4 27 20 i=14 3 3 4 16 16 20 21 24 27 28 29 30 31 27 20 i=15 3 3 4 16 16 20 21 24 27 27 28 29 30 31 20 Akhir 3 3 4 16 16 20 20 21 24 27 27 28 29 30 31

Bubble/Exchange Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya, jika elemen sekarang > elemen berikutnya, maka ditukar. Metode pengurutan gelembung (Bubble Sort), menginginkan larik terurut menaik, maka elemen larik yang berharga paling kecil, dipindahkan ke ujung kiri larik melalui proses pertukaran. Proses metode ini dilakukan sebanyak N-1 langkah(pass) dengan N adalah ukuran larik. Pada akhir setiap langkah ke-i, larik L[1..N] akan terdiri atas dua bagian yaitu bagian yang sudah terurut, yaitu L[1..I], dan bagian yang belum terurut L[I+1..N]. Sedangkan langkah terakhir, diperoleh larik L[1..N] yang terurut menaik

Bubble Sort (Metode Gelembung) Algoritmanya sebagai berikut : 1. i 2 2. Selama (i <= N-1) kerjakan baris 3 s.d. 7 3. j N 4. Selama (j >= i) kerjakan baris 5 s.d. 7 5. Jika (data[j-1] > data[j]) maka tukar data[j-1] dengan data[j] 6. j j - 1 7. i i + 1

Bubble Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Awal 23 17 14 6 13 10 1 5 7 i=2 23 17 14 6 13 10 1 5 7 j=9 23 17 14 6 13 10 1 5 7 j=8 23 17 14 6 13 10 1 5 7 j=7 23 17 14 6 13 1 10 5 7 j=6 23 17 14 6 1 13 10 5 7 j=5 23 17 14 1 6 13 10 5 7 j=4 23 17 1 14 6 13 10 5 7 j=3 23 1 17 14 6 13 10 5 7 j=2 1 23 17 14 6 13 10 5 7

Bubble Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7, 12] Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] i=3 1 23 17 14 6 13 10 5 7 j=9 1 23 17 14 6 13 10 5 7 j=8 1 23 17 14 6 13 5 10 7 j=7 1 23 17 14 6 5 13 10 7 j=6 1 23 17 14 5 6 13 10 7 j=5 1 23 17 5 14 6 13 10 7 j=4 1 23 5 17 14 6 13 10 7 j=3 1 5 23 17 14 6 13 10 7

Bubble Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7, 12] Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] i=4 1 5 23 17 14 6 13 10 7 j=9 1 5 23 17 14 6 13 7 10 j=8 1 5 23 17 14 6 7 13 10 j=7 1 5 23 17 14 6 7 13 10 j=6 1 5 23 17 6 14 7 13 10 j=5 1 5 23 6 17 14 7 13 10 j=4 1 5 6 23 17 14 7 13 10

Bubble Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7, 12] Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] i=5 1 5 6 23 17 14 7 13 10 j=9 1 5 6 23 17 14 7 10 13 j=8 1 5 6 23 17 14 7 10 13 j=7 1 5 6 23 17 7 14 10 13 j=6 1 5 6 23 7 17 14 10 13 j=5 1 5 6 7 23 17 14 10 13

Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] i=6 1 5 6 7 23 17 14 10 13 j=9 1 5 6 7 23 17 14 10 13 j=8 j=7 N/2 = 10/2 = 5 1 5 6 A :[23,17,14,6,13] 1 5 6 A :[10,1,5,7,12] 7 7 23 23 17 10 10 17 14 14 13 13 j=6 1 5 6 7 10 23 17 14 13 Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] i=7 1 5 6 7 10 23 17 14 13 j=9 1 5 6 7 10 23 17 13 14 j=8 1 5 6 7 10 23 13 17 14 j=7 1 5 6 7 10 13 23 17 14

Bubble Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7, 12] Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] i=8 1 5 6 7 10 13 23 17 14 j=9 1 5 6 7 10 13 23 14 17 j=8 1 5 6 7 10 13 14 23 17

Bubble Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7, 12] Itera si Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] i=8 1 5 6 7 10 13 14 23 17 j=9 1 5 6 7 10 13 14 17 23 j=8 1 5 6 7 10 13 14 17 23 Akhir 1 5 6 7 10 13 14 17 23

Shell Sort Metode Shell sering disebut juga metode pertambahan menurun. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu, kemudian dilakukan penukaran jika diperlukan.

Shell Sort Pada metode ini pertama-tama adalah menentukan jarak mula-mula dari data yang akan dibandingkan, yaitu N/2. Setelah itu, dilakukan pengulangan dari 1 sampai dengan N/2. Pada masing-masing pengulangan dilakukan pembandingan antara data ke-j dengan data ke-(j+n/2). Apabila data ke-j lebih besar dari data ke-(j+n/2) maka kedua data tersebut ditukar. Pengulangan dari 1 sampai dengan N/2 ini dilakukan sampai semua data ke-j selalu lebih kecil dari data ke-(j+n/2)

Shell Sort Pada proses berikutnya, digunakan jarak (N/2)/2 atau N/4 Kemudian dilakukan pengulangan dari 1 s.d. (N-N/4) atau 3N/4 Pada masing-masing pengulangan dilakukan pembandingan antara data ke-j dengan data ke-(j+n/4) Apabila diperlukan, kedua data tersebut ditukar Pengulangan dari 1 s.d. 3N/4 ini dilakukan sampai semua data ke-j < dari pada data ke-(j+n/4) Pada proses berikutnya, digunakan jarak (N/4)/2 atau N/8 Demikian seterusnya sampai jarak yang digunakan adalah 1

Shell Sort (Metode pengurutan penambahan menurun) Algoritmanya sebagai berikut : 1. i 2 2. Selama (i > 1) kerjakan baris 3 s.d. 10 3. i i/2 4. Selesai false 5. Kerjakan baris 5 s.d. 9 sampai (Selesai=true) 6. Selesai true 7. j 1 8. Selama (j <= N i) kerjakan baris 9 dan 10 9. Jika (Data[j] > Data[j+i] maka tukar Data[j], Data[j+i], Selesai false 10. j j + 1

Shell Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera Data Data Data Data Data Data Data Data Data si [1] [2] [3] [4] [5] [6] [7] [8] [9] N/2 = 10/2 = 5 Awal 23 17 14 6 13 10 1 5 7 A :[23,17,14,6,13] jrk=4 23 17 14 6 13 10 1 5 7 A :[10,1,5,7,12] j=1 23 17 14 6 13 10 1 5 7 j=2 13 17 14 6 23 10 1 5 7 j=3 13 10 14 6 23 17 1 5 7 j=4 13 10 1 6 23 17 14 5 7 j=5 13 10 1 5 23 17 14 6 7

Shell Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera Data Data Data Data Data Data Data Data Data si [1] [2] [3] [4] [5] [6] [7] [8] [9] N/2 = 10/2 = 5 jrk=2 13 10 1 5 7 17 14 6 23 A :[23,17,14,6,13] j=1 13 10 1 5 7 17 14 6 23 A :[10,1,5,7,12] j=2 1 10 13 5 7 17 14 6 23 j=3 1 5 13 10 7 17 14 6 23 j=4 1 5 7 10 13 17 14 6 23 j=5 1 5 7 10 13 17 14 6 23 j=6 1 5 7 10 13 17 14 6 23 j=7 1 5 7 10 13 6 14 17 23

Shell Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera Data Data Data Data Data Data Data Data Data si [1] [2] [3] [4] [5] [6] [7] [8] [9] N/2 = 10/2 = 5 jrk=2 1 5 7 10 13 6 14 17 23 A :[23,17,14,6,13] j=1 1 5 7 10 13 6 14 17 23 A :[10,1,5,7,12] j=2 1 5 7 10 13 6 14 17 23 j=3 1 5 7 10 13 6 14 17 23 j=4 1 5 7 10 13 6 14 17 23 j=5 1 5 7 6 13 10 14 17 23 j=6 1 5 7 6 13 10 14 17 23 j=7 1 5 7 6 13 10 14 17 23

Shell Sort - Ascending A: [ 23,17,14,6,13,10,1,5,7] Itera Data Data Data Data Data Data Data Data Data si [1] [2] [3] [4] [5] [6] [7] [8] [9] N/2 = 10/2 = 5 jrk=1 1 5 7 6 13 10 14 17 23 A :[23,17,14,6,13] j=1 1 5 7 6 13 10 14 17 23 A :[10,1,5,7,12] j=2 1 5 7 6 13 10 14 17 23 j=3 1 5 7 6 13 10 14 17 23 j=4 1 5 6 7 13 10 14 17 23 j=5 1 5 6 7 13 10 14 17 23 j=6 1 5 6 7 10 13 14 17 23 j=7 1 5 6 7 10 13 14 17 23 j=8 1 5 6 7 10 13 14 17 23 Akhir 1 5 6 7 10 13 14 17 23

Merge Sort Metode ini sering digunakan pada pengurutan berkas. Mula-mula diberikan dua kumpulan data yang sudah dalam keadaan terurut. Kedua kumpulan data tersebut harus dijadikan satu tabel sehingga dalam keadaan terurut

Merge Sort (Metode Penggabungan) Penggabungan ini digunakan pada pengurutan berkas Syaratnya ada dua kumpulan data yang sudah dalam keadaan urut Kedua kumpulan data tersebut harus dijadikan satu tabel sehingga dalam keadaan urut Misalnya : T1 2, 19, 26, 44, 65 T2 3, 5, 12, 22

Merge Sort (Metode Penggabungan) Misalnya : T1 65, 44, 26, 19, 2 T2 22, 12, 5, 3

Merge Sort (Metode Penggabungan) Proses pengurutan dengan metode penggabungan : 1. Mula-mula diambil data pertama dari T1, 2, dan data pertama dari T2, yaitu 3 2. Data ini dibandingkan, kemudian yang lebih kecil diletakkan sebagai data pertama hasil hasil pengurutan, misalnya T3 3. Jadi T3 akan memiliki satu data, yaitu 2 4. Data yang lebih besar, yaitu 3, kemudian dibandingkan dengan data kedua dari T1, yaitu 19 5. Karena lebih kecil, maka 3 diletakkan sebagai data kedua dari T3

Merge Sort Algoritmanya sebagai berikut : 1. i 1 2. j 1 3. J3 1 4. Kerjakan baris 5 s.d. 7 sampai (i > J1) atau (j > J2) 5. J3 J3 +1 6. Jika (T1[j] <T2[j]) maka T3[J3] T1[i], i i+1 7. Jika (T1[j] >=T2[j]) maka T3[J3] T2[j], j j+1 8. Jika (i > J) maka kerjakan baris 9, jika tidak dikerjakan baris 15 9. i j 10. Selama (i <= J2) kerjakan baris 11 s.d. 13 11. J3 J3 + 1 12. T3[J3] T2[i] 13. i i + 1 14. Selesai 15. j i 16. Selama (j <= J1) kerjakan baris 17 s.d. 19 17. J3 J3 + 1 18. T3[J3] T1[j] 19. j j + 1

Pengurutan Merge Sort Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 1 T1 2 19 26 44 65 T2 3 5 12 22 T3 2 Tahap : 2 T1 19 26 44 65 T2 3 5 12 22 T3 2 3

Pengurutan Merge Sort Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 3 T1 19 26 44 65 T2 5 12 22 T3 2 3 5 Tahap : 4 T1 19 26 44 65 T2 12 22 T3 2 3 5 12

Pengurutan Merge Sort Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 5 T1 19 26 44 65 T2 22 T3 2 3 5 12 19 Tahap : 6 T1 26 44 65 T2 T3 2 3 5 12 19 22 26

Pengurutan Merge Sort Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Tahap : 7 T1 44 65 T2 T3 2 3 5 12 19 22 26 44 Akhir T3 2 3 5 12 19 22 26 44 65

Heap Sort Seperti metode struktur organisasi, nilai ditukar-kan dari root ke level yang paling rendah

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 23 17 14 6 13 10 1 5 7 12

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] i=5 23 17 14 6 13 i=5 10 1 5 7 12

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] i=4 23 17 14 7 i=4 13 10 1 5 6 12

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] i=3 23 17 14 i=3 7 13 10 1 5 6 12

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] i=2 23 17 i=2 14 7 13 10 1 5 6 12

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] i=1 23 i=1 17 14 7 13 10 1 5 6 12

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 17 13 14 7 12 10 1 5 6 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 14 13 10 7 12 6 1 5 17 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 13 12 10 7 5 6 1 14 17 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 12 7 10 1 5 6 13 14 17 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 10 7 6 1 5 12 13 14 17 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 7 5 6 1 10 12 13 14 17 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 6 5 1 7 10 12 13 14 17 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 1 5 6 7 10 12 13 14 17 23

Heap Sort -Max/Descending A: [ 23,17,14,6,13,10,1,5,7, 12] 1 5 6 7 10 12 13 14 17 23

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 8 17 14 6 13 10 1 5 7 12

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] i=5 8 17 14 6 13 i=5 10 1 5 7 12

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] i=4 8 17 14 i=4 6 12 10 1 5 7 13

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] i=3 8 17 14 i=3 5 12 10 1 6 7 13

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] i=2 8 i=2 17 1 5 12 10 14 6 7 13

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] i=1 8 i=1 5 1 17 12 10 14 6 7 13

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 1 5 8 17 12 10 14 6 7 13

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 5 12 8 17 13 10 14 6 7 1

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 5 12 8 17 13 10 14 6 7 1

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 7 12 8 17 13 10 14 6 5 1

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 7 12 8 17 13 10 14 6 5 1

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 8 12 14 17 13 10 7 6 5 1

Heap Sort-Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 10 12 14 17 13 8 7 6 5 1

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 12 13 14 17 10 8 7 6 5 1

Heap Sort-Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 13 17 14 12 10 8 7 6 5 1

Heap Sort -Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 14 17 13 12 10 8 7 6 5 1

Heap Sort-Min/Ascending A: [ 8,17,14,6,13,10,1,5,7, 12] 17 14 13 12 10 8 7 6 5 1

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 22 61 15 66 18 25 34 87 55 45 10

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] i=5 22 61 15 66 18 25 34 87 55 45 10 i=5

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] i=4 22 61 15 66 45 25 34 87 55 18 10 i=4

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] i=3 22 61 15 87 45 25 34 66 55 18 10 i=3

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] i=2 22 61 34 87 45 25 15 66 55 18 10 i=2

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] i=1 22 87 34 61 45 25 15 66 55 18 10 i=1

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 66 22 34 61 45 25 15 10 55 18 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 61 22 34 18 45 25 15 10 55 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 55 22 34 18 45 25 15 10 61 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 45 22 34 18 10 25 15 55 61 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 34 22 15 18 10 25 45 55 61 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 25 22 15 18 10 34 45 55 61 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 22 10 15 18 25 34 45 55 61 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 18 10 15 22 25 34 45 55 61 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 15 10 18 22 25 34 45 55 61 66 87

Heap Sort -Max/Descending A: [ 22, 61, 15, 66, 18, 25, 34, 87, 55, 45, 10] 10 15 18 22 25 34 45 55 61 66 87

Quick Sort Membandingkan suatu elemen (disebut pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil daripada pivot tersebut terletak di sebelah kirinya dan elemen-elemen lain yang lebih besar daripada pivot tersebut terletak di sebelah kanannya. Sehingga dengan demikian telah terbentuk dua sublist, yang terletak di sebelah kiri dan kanan dari pivot. Lalu pada sublist kiri dan sublist kanan kita anggap sebuah list baru dan kita kerakan proses yang sama seperti sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi. Sehingga di dalamnya telah terjadi proses Rekursif

Quick Sort (Metode Pengurutan Cepat) Suatu metode pengurutan yang membandingkan suatu elemen (pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen yang lain yang lebih kecil daripada pivot terletak disebelah kiri pivot sedangkan elemen yang lebih besar dari pivot diletakkan disebelah kanan pivot Sehingga dengan demikian terbentuk dua sub list yaitu yang terletak disebelah kiri pivot dan sebelah kanan pivot

Quick Sort (Metode Pengurutan Cepat) List yang sebelah kiri pivot juga diterapkan aturan seperti pivot, yaitu membandingkan elemen yang lainnya lagi, kalau lebih kecil diletakkan sebelah kiri, kalau lebih besar diletakkan disebelah kanan. Hal ini juga berlaku untuk list yang letaknya disebelah kanan Disebut juga dengan metode partisi Pada metode quick jarak dari kedua elemen yang ditukarkan dibuat cukup besar dengan tujuan untuk mempertinggi efektifitasnya.

Quick Sort (Metode Pengurutan Cepat) Proses pengurutan dengan metode pengurutan cepat : 1. Pilih data tertentu yang dinamakan pivot, misalnya x. 2. Pivot ini harus diletakkan pada posisi ke-j sedemikian hingga data antara 1 s.d. (j-1) lebih kecil daripada x, sedangkan data pada posisi ke (j+1) s.d. N lebeih besar dari pada x 3. Cara pengaturannya adalah menukarkan data diantara posisi 1 s.d. (j-1) yang lebih besar daripada x dengan data diantara posisi (j+1) s.d. N yang lebih kecil daripada x

Quick Sort Algoritmanya sebagai berikut : 1. x Data[(L+R)/2)] 2. i L 3. j R 4. Selama (i <= j) kerjakan baris 5 s.d. 12 5. Selama (Data[i] < x) kerjakan i i+1 6. Selama (Data[i] > x) kerjakan j j-1 7. Jika (I <= j) maka kerjakan baris 8 s.d. 10; jika tidak dikerjakan baris 11 8. Tukar Data [i] dengan Data [j] 9. i i + 1 10.j j 1 11.Jika (L < j) kerjakan lagi baris 1 dengan R=j 12.Jika (i < R) kerjakan lagi baris 1 dengan L=i

Quick Sort Atau algoritmanya yang lain mengatakan : 1. Tentukan data-data yang akan diurutkan dan disimpan dalam array 2. Lakukan pengulangan dari data-data tersebut 3. Data-data yang ada dibagi menjadi 2 bagian dimana bagian yang satu dengan yang lain dilakukan proses pengecekan 4. Pada bagian yang pertama, lakukan pembandingan antara data yang satu dengan data yang lain, dimana kalau data yang satu lebih kecil dari data yang lain, maka posisinya ditukar. Kalau datanya lebih kecil diletakkan disebelah kiri, kalai datanya lebih besar diletakkan disebelah kanan. Hal ini berlaku pada bagian yang kedua 5. Tampilkan data hasil pembandingan 6. Ulangi langkah 4, sampai semua data dibandingkan 7. Selesai

Pengurutan Quick Sort Iterasi Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Awal 65 2 44 26 19 22 5 3 12 L=1, R=9 65 2 44 26 19 22 5 3 12 L=1, R=5 12 2 44 26 19 22 5 3 65 L=1, R=4 12 2 44 26 19 22 5 3 65 L=1, R=3 12 2 44 26 19 22 5 3 65 L=1, R=2 12 2 44 26 19 22 5 3 65

Pengurutan Quick Sort Iterasi Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Awal 2 12 44 26 19 22 5 3 65 L=2, R=9 2 12 44 26 19 22 5 3 65 L=2, R=8 2 12 44 26 19 22 5 3 65 L=2, R=5 2 3 44 26 19 22 5 12 65 L=2, R=4 2 3 44 26 19 22 5 12 65 L=2, R=3 2 3 44 26 19 22 5 12 65

Pengurutan Quick Sort Iterasi Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Awal 2 3 44 26 19 22 5 12 65 L=3, R=9 2 3 44 26 19 22 5 12 65 L=3, R=8 2 3 44 26 19 22 5 12 65 L=3, R=7 2 3 12 26 19 22 5 44 65 L=3, R=5 2 3 5 26 19 22 12 44 65 L=3, R=4 2 3 5 26 19 22 12 44 65

Pengurutan Quick Sort Iterasi Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Awal 2 3 5 26 19 22 12 44 65 L=4, R=9 2 3 5 26 19 22 12 44 65 L=4, R=8 2 3 5 26 19 22 12 44 65 L=4, R=7 2 3 5 26 19 22 12 44 65 L=4, R=6 2 3 5 12 19 22 26 44 65 L=4, R=5 2 3 5 12 19 22 26 44 65 Iterasi Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Akhir 2 3 5 12 19 22 26 44 65

Pengurutan Quick Sort Iterasi Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Awal 2 3 5 12 19 22 26 44 65 L=5, R=9 2 3 5 12 19 22 26 44 65 L=5, R=8 2 3 5 12 19 22 26 44 65 L=5, R=7 2 3 5 12 19 22 26 44 65 L=5, R=6 2 3 5 12 19 22 26 44 65 L=5, R=5 2 3 5 12 19 22 26 44 65 Iterasi Data Data Data Data Data Data Data Data Data [1] [2] [3] [4] [5] [6] [7] [8] [9] Akhir 2 3 5 12 19 22 26 44 65

SOAL 1. 2, 50, 11, 7, 38, 87, 14, 26, 31, 9, 42 2. 10, 13, 9, 7, 16, 19, 15, 5, 3, 20, 14 3. 3, 58, 10, 70, 11, 12, 90, 1, 7, 13, 2 4. 95, 1, 20, 35, 11, 7, 50, 8, 81, 9, 10 5. 1,82,4,11,29,5,20,11,8,10,3 6. 87,5,8,48,2,38,25,3,6,68,10

1. Bubble Sort 2. Shell Short 3. Merge Sort 4. Heap Sort 5. Quick Sort Tugas