SORTING (BAGIAN II) Proses kelima

dokumen-dokumen yang mirip
STRUKTUR DATA SORTING ARRAY

SORTING (Pengurutan)

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

STRUKTUR DATA (3) sorting array. M.Cs

ALGORITMA PENGURUTAN. Oleh : S. Thya Safitri, MT

ALGORITMA PENGURUTAN & PENCARIAN

Modul 8 SORTING (PENGURUTAN)

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Sorting Algorithms. Divide and Conquer

STRATEGI DIVIDE AND CONQUER

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

Pengertian Algoritma Pengurutan

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

BAB 8 SORTING DAN SEARCHING

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

SORTING (PENGURUTAN DATA)

7. SORTING DAN SEARCHING

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

Politeknik Elektronika Negeri Surabaya

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

BAB VI Pengurutan (Sorting)

Algoritma dan Struktur Data. Searching dan Sorting

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Algoritma dan Struktur Data

Outline STRUKTUR DATA. VII. Sorting

PERTEMUAN 10 METODE DEVIDE AND CONQUER

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

SORTING. Brigida Arie Minartiningtyas, M.Kom

Analisis Algoritma Bubble Sort

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

Konsep Sorting dalam Pemrograman Saniman dan Muhammad Fathoni

Operasi File. Chapter 13

Modul Praktikum 6 Pemograman Berorientasi Objek

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Sorting. Quick Sort

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

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

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

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

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

Analisis Kecepatan Sorting Dengan Notasi Big O

# TEN Sorting PENDAHULUAN

ANALISIS ALGORITMA BINARY SEARCH

A. TUJUAN PEMBELAJARAN

DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Modul Praktikum Algoritma dan Struktur Data

BAB VI SORTIR ATAU PENGURUTAN

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Gambar 13.1 Ilustrasi proses algoritma sorting

Algoritma Sorting (Selection Insertion)

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

Simple Sorting Techniques

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

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

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

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

Kompleksitas Algoritma Sorting yang Populer Dipakai

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Sorting. Selection Sort. Straight insertion Sort. Merge Sort Paradigma Divide-and-Conquer. Quicksort

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

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

Bubble Sort dan Shell-Sort. Yuliana Setiowati

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Algoritma Bubble Sort dan Quick Sort

ALGORITMA PEMOGRAMAN SEMESTER GENAP 2017/2018

Bab Tujuan. 6.2 Insertion Sort

Politeknik Elektronika Negeri Surabaya

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Algoritma dan Pemrograman Sorting (Pengurutan) IS1313. Oleh: Eddy Prasetyo N

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

Algoritme dan Pemrograman

BAB VII ALGORITMA DIVIDE AND CONQUER

Sorting Algorithms. Definisi

Simulasi Pengurutan Data Dengan Metode Seleksi

Algoritma dan Pemrograman Array/Tabel[2] Oleh: Eddy Prasetyo N

SORTING. Struktur Data S1 Sistem Informasi. Ld.Farida

UJIAN AKHIR SEMESTER GANJIL 2005/2006 ALGORITMA & STRUKTUR DATA / CS2014

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

KOMPARASI ALGORITMA QUICKSORT DAN BUCKET SORT PENGURUTAN DATA INTEGER MENGGUNAKAN BAHASA C++

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

BAB 2 LANDASAN TEORI

Sorting Algorithms. Buble Sort

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

A. TUJUAN PEMBELAJARAN

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

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

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

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

BAB 2 SORTING (PENGURUTAN)

BAB 2 LANDASAN TEORI

QUICKSORT: METODE PENGURUTAN ARRAY SATU DIMENSI YANG CEPAT DAN EFISIEN. (Quicksort: Quick and Efficient One-Dimension Array Sorting Method)

A. TUJUAN PEMBELAJARAN

Pengurutan (Sorting) Algoritma Pemrograman

Sorting. Pertemuan ke 14.

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Algoritma dan Pemrograman Array/Tabel[3] Oleh: Eddy Prasetyo N

Teknik Pengurutan Kartu Remi

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

BAB II PEMBAHASAN. A. USE CASE 1. Pengertian Use Case

Transkripsi:

SORTING (BAGIAN II) I. INSERTION SORT Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang. Proses Pertama Proses kedua Proses Ketiga Proses Keempat Proses kelima

Sintaks program fungsi Insertion Sort : Contoh 5.1 ( Program Insertion Sort)

Hasil :

II. QUICK SORT (cara pertama dengan pivot indeks ke-0) Metode Quick sering disebut juga metode partisi (partition exchange sort). Metode ini diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1962. Ide dasar dari algoritma Insertion Sort ini adalah mencari tempat yang "tepat" untuk setiap elemen array, dengan cara sequential search. Proses ini kemudian menyisipkan sebuah elemen array yang diproses ke tempatnya yang seharusnya. Langkah-langkah Quick Sort : 1. Pivot: Pivot dapat dipilih dari semua angka yang ada di array. Angka ini bisa yang pertama, angka yang ditengah maupun angka yang terakhir. Dalam contoh program di bawah ini, pivot diambil dari nilai tengah sebuah array. 2. Partition: Pivot digunakan untuk membagi nilai di dalam array menjadi 2 bagian (pembagian yang dilakukan tidak harus seimbang) yaitu left array dan right array. Pembagian dilakukan dengan menggunakan partisi sedemikian hingga dimana pada akhirnya Left array berisi angka yang nilainya lebih kecil dari pivot dan right array memiliki angka yang lebih besar dari angka 3. Cara kerja partisi Pada awal partisi terdapat dua variabel yaitu i dan j. variabel i menunjukkan elemen pertama dari angka (indeks yang pertama dari array), dan variabel j menunjukkan elemen yang terakhir dari angka (indeks terakhir dari array). variabel i digerakkan maju sampai menemukan nilai/angka yang lebih besar dari variabel j pun demikian. Variabel j digerakkan mundur sampai menemukan nilai atau angka yang lebih kecil atau sama dengan Ketika angka-angka ini telah ditemukan, dan nilai i There are two indices i and j and at the beginning of the partition algorithm where i points to the first element and j points to the last one. Then i moves forward until an element with value greater or equal to the pivot is found.

Similarly j moves backward, until an element with value lesser or equal to the pivot is found. Once the elements found and i j then they are swapped. i is incremented to next position (i + 1) and j is decremented to the previous one (j - 1). The partition algorithm stops when i becomes greater than j. 3. Recursion: Once partition is done then recursively sort the new sub-arrays till all the elements are sorted. Example. Sort {1, 12, 5, 26, 7, 14, 3, 7, 2} using quicksort.

Notice, that we show here only the first recursion step, in order not to make example too long. But, in fact, {1, 2, 5, 7, 3} and {14, 7, 26, 12} are sorted then recursively. Jika diketahui n buah data integer (dalam array) Jika n=1, selesai Else, pilih satu elemen sebagai pivot dan partisi data menjadi dua bagian sedemikian hingga elemen-elemen yang lebih besar atau sama dengan pivot berada di bagian sebelah kanan dan elemen-elemen yang lebih kecil berada dibagian sebelah kiri Ulangi Quick Sort secara rekursif terhadap kedua sub bagian tersebut 1. Buku Algoritma dan Pemograman Oleh : Antony Pranata Cara pengambilan pivot didapat dari L = 1 (data 1) dijumlahkan dengan R = N(jumlah data), kemudian dibagi 2. Misal data : 1 2 3 4 5 6 7 16 12 23 50 19 49 31 x data[(l + R) div 2] x data[(1 + 7) div 2] x data[8 div 2] x data[4] Jadi, pivot pada tahap pertama adalah data ke-4 yaitu 50.

2. Buku Algoritma dan Struktur Data dengan C++ Oleh : Indra Yatini B, Erliansyah Nasution. Untuk memilih pivot, kita tidak harus memilih item pertama dalam daftar. Kita bisa memilih setiap item yang kita inginkan dan menukarkannya dengan item pertama sebelum memulai loop yang memisahkan daftar. Sebenarnya, item pertama dalam daftar sering merupakan pilihan buruk untuk dijadikan pivot, karena jika daftar telah terurut, maka tidak ada kunci yang kurang darinya sehingga satu subdaftar akan kosong. Lebih baik memilih pivot dekat dengan tengah daftar, dengan harapan pilihan kita akan memisahkan kunci masing-masing separuh bagian. Menggunakan Referensi 1 Diketahui : Bila terdapat data acak sebagai berikut : 16 12 23 50 19 49 31 Data tersebut akan diselesaikan dengan metode quicksort secara descending. Langkah 1 : Tentukan pivot pada array. Misalkan pivot adalah x. x data[(l+r) div 2] x data[(1 + 7) div 2] x data[8 div 2] x data[4] i L j R i j 1 2 3 4 5 6 7 16 12 23 (50) 19 49 31

i bergerak dari sudut kiri ke kanan sampai mendapatkan nilai yang <= j bergerak dari sudut kanan ke kiri sampai mendapatkan nilai yang >= i berhenti pada data ke-1 krn langsung menemukan nilai yang lebih kecil dari j berhenti pada data ke-4 krn tidak menemukan nilai yang lebih besar daripada Karena i < j maka data yang ditunjuk oleh i ditukar dengan data yang ditunjuk oleh j sehingga menjadi: 50 12 23 16 19 49 31 Langkah 2 : data 1 2 3 4 5 6 7 50 12 23 (16) 19 49 31 i j i berhenti pada data ke-2 karena menemukan nilai yang lebih kecil dari j berhenti pada data ke-7 karena langsung menemukan nilai yang lebih besar dari Karena i < j maka data yang ditunjuk oleh i ditukar dengan data yang ditunjuk oleh j sehingga menjadi: 50 31 23 16 19 49 12

Langkah 3 : Data 1 2 3 4 5 6 7 50 31 23 (16) 19 49 12 i j i berhenti pada data ke-4 karena tidak menemukan nilai yang lebih kecil dari j berhenti pada data ke-6 karena menemukan nilai yang lebih besar dari Karena i < j maka data yang ditunjuk oleh i ditukar dengan data yang ditunjuk oleh j sehingga menjadi: 50 31 23 49 19 16 12 Langkah 4 : Data 1 2 3 4 5 6 7 50 31 23 (49) 19 16 12 i j i berhenti pada data ke-2 karena menemukan nilai yang lebih kecil dari j berhenti pada data ke-4 karena tidak menemukan nilai yang lebih besar dari Karena i < j maka data yang ditunjuk oleh i ditukar dengan data yang ditunjuk oleh j sehingga menjadi: 50 49 23 (31) 19 16 12

Langkah 5 : Data 1 2 3 4 5 6 7 50 49 23 (31) 19 16 12 i j i berhenti pada data ke-3 karena menemukan nilai yang lebih kecil dari j berhenti pada data ke-4 karena tidak menemukan nilai yang lebih besar dari Karena i < j maka data yang ditunjuk oleh i ditukar dengan data yang ditunjuk oleh j sehingga menjadi: 50 49 31 23 19 16 12 Proses pengurutan berhenti karena i tidak menemukan data yang lebih kecil dari x dan j tidak menemukan data yang lebih besar dari x.